/* styles.css */
:root{--ink:#493c58;--muted:#806f89;--cream:#fff7e8;--paper:#fffdf8;--pink:#ff9fbd;--peach:#ffb887;--mint:#8ee4d2;--sky:#87d9ff;--purple:#bca2f6;--yellow:#ffd874;--line:rgba(73,60,88,.17);--shadow:0 12px 0 rgba(73,60,88,.12),0 25px 55px rgba(73,60,88,.13)}*{box-sizing:border-box}html{min-width:320px;background:#fff5df}body{margin:0;color:var(--ink);font-family:"Microsoft YaHei","PingFang SC",sans-serif;background:linear-gradient(145deg,#fff5df,#ffe9ee 52%,#e6fff8);min-height:100vh;overflow-x:hidden}.paw-field{position:fixed;inset:0;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='190' height='190'%3E%3Cpath d='M60 100c0-18 14-32 32-32s32 14 32 32c0 23-32 52-32 52s-32-29-32-52zM111 63c0-9 7-16 16-16s16 7 16 16-16 25-16 25-16-16-16-25zM29 63c0-9 7-16 16-16s16 7 16 16-16 25-16 25-16-16-16-25z' fill='%23493c58'/%3E%3C/svg%3E")}.cloud{position:fixed;z-index:0;background:#fff;border-radius:50%;opacity:.7;box-shadow:68px 20px 0 #fff}.c1{width:78px;height:78px;left:2%;top:16%}.c2{width:58px;height:58px;right:4%;top:19%}.c3{width:90px;height:90px;right:16%;bottom:4%;opacity:.38}.app-shell{position:relative;z-index:2;width:min(1540px,calc(100% - 36px));margin:auto;padding:24px 0 18px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 18px;border:3px solid var(--ink);border-radius:26px;background:rgba(255,253,248,.94);box-shadow:var(--shadow);backdrop-filter:blur(15px)}.brand{display:flex;align-items:center;gap:13px}.brand-mark{width:59px;height:59px;display:grid;place-items:center;border:3px solid var(--ink);border-radius:20px;background:var(--yellow);font-size:29px;transform:rotate(-5deg);box-shadow:4px 5px 0 rgba(73,60,88,.14)}.eyebrow,.step{margin:0;color:#a05a75;font-size:10px;font-weight:900;letter-spacing:.16em}.brand h1{margin:2px 0;font-size:29px}.brand-sub{margin:0;color:var(--muted);font-size:11px}.top-actions{display:flex;align-items:center;gap:9px}.shop-tag{padding:8px 11px;border:2px solid var(--ink);border-radius:999px;background:#e9fff8;font-size:11px;font-weight:900}.owner-btn,.plain-btn,.adopt-small,.owner-pet-actions button{border:2px solid var(--ink);border-radius:12px;background:#fff;padding:9px 11px;color:var(--ink);font-weight:900;box-shadow:0 4px 0 rgba(73,60,88,.13);cursor:pointer}.owner-btn{background:#ffd874}.shop-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:20px;margin-top:20px;align-items:start}.shelf-panel,.profile-panel{border:3px solid var(--ink);border-radius:28px;background:rgba(255,253,248,.95);box-shadow:var(--shadow);min-width:0}.shelf-panel{padding:20px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.section-head h2{margin:4px 0 0;font-size:24px}.swipe-tip{font-size:10px;color:var(--muted)}.shelf-note{margin:11px 0 15px;color:var(--muted);font-size:12px}.pet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;min-width:0}.pet-card{position:relative;border:3px solid var(--ink);border-radius:22px;background:linear-gradient(160deg,#fff,color-mix(in srgb,var(--pet-color) 18%,#fff));padding:11px;text-align:center;box-shadow:0 6px 0 rgba(73,60,88,.13);cursor:pointer;transition:.2s;overflow:hidden}.pet-card:hover{transform:translateY(-5px) rotate(-.5deg)}.pet-card.selected{background:color-mix(in srgb,var(--pet-color) 32%,#fff);box-shadow:0 0 0 5px color-mix(in srgb,var(--pet-color) 45%,transparent),0 7px 0 rgba(73,60,88,.16)}.pet-card.selected::after{content:'✓ 已选中';position:absolute;right:6px;top:7px;padding:3px 6px;border:2px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);font-size:8px;font-weight:900}.pet-card img{width:100%;aspect-ratio:1;object-fit:contain;display:block}.pet-card h3{margin:5px 0 2px;font-size:17px}.pet-card p{margin:0;color:var(--muted);font-size:11px}.pet-card .price{margin-top:7px;font-size:11px;font-weight:900}.pet-card .delete-pet,.pet-card .edit-pet{position:absolute;top:6px;z-index:5;width:25px;height:25px;border:2px solid var(--ink);border-radius:50%;font-size:14px;line-height:1;font-weight:900}.pet-card .delete-pet{left:6px;background:#ffd2dc}.pet-card .edit-pet{right:6px;background:#dff9f2}.pet-card.selected .edit-pet{right:6px}.pet-card.selected::after{top:37px}.shelf-bottom{display:flex;justify-content:space-between;gap:12px;margin-top:17px;padding-top:12px;border-top:2px dashed var(--line);color:var(--muted);font-size:10px}
.profile-panel{padding:21px;position:sticky;top:16px;min-height:660px}.empty-profile{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:600px;padding:25px}.empty-cat{font-size:72px;margin-bottom:13px;animation:float 3s ease-in-out infinite}.empty-profile h2{margin:7px 0;font-size:24px}.empty-profile p:last-child{color:var(--muted);font-size:12px;line-height:1.7}.pet-profile{animation:pop .28s ease}.profile-top{display:flex;justify-content:space-between;align-items:center}.status-pill,.pet-code{padding:5px 8px;border:2px solid var(--ink);border-radius:999px;font-size:9px;font-weight:900}.status-pill{background:#dff9f2}.pet-code{background:#fff;color:var(--muted)}.portrait-wrap{position:relative;width:230px;height:230px;margin:15px auto 5px}.portrait-wrap img{width:100%;height:100%;object-fit:contain}.collar{position:absolute;left:50%;bottom:5px;transform:translateX(-50%);padding:5px 11px;border:2px solid var(--ink);border-radius:999px;background:var(--yellow);font-size:10px;font-weight:900}.pet-profile h2{text-align:center;margin:4px 0;font-size:29px}.personality{text-align:center;margin:0;color:#a05a75;font-size:12px;font-weight:900}.tag-row{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin:12px 0}.tag{padding:5px 8px;border:2px solid var(--ink);border-radius:999px;background:#fff0b8;font-size:9px;font-weight:900}.pet-desc{margin:13px 0;padding:13px;border:2px dashed var(--line);border-radius:14px;background:#fff;color:var(--muted);font-size:11px;line-height:1.7;min-height:70px}.audio-card{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;padding:11px;border:2px solid var(--ink);border-radius:16px;background:#eafbf7}.audio-card button{width:42px;height:42px;border:2px solid var(--ink);border-radius:50%;background:#ffd874;font-weight:900;font-size:16px}.audio-card b{display:block;font-size:11px}.wave{display:flex;align-items:center;gap:3px;height:16px;margin-top:4px}.wave i{display:block;width:3px;height:7px;border-radius:4px;background:#69cdbb}.wave.playing i{animation:wave .65s ease-in-out infinite alternate}.wave i:nth-child(2){height:14px;animation-delay:-.2s}.wave i:nth-child(3){height:10px;animation-delay:-.4s}.wave i:nth-child(4){height:16px;animation-delay:-.1s}.wave i:nth-child(5){height:8px;animation-delay:-.3s}.wave i:nth-child(6){height:13px;animation-delay:-.5s}.wave i:nth-child(7){height:9px}.wave i:nth-child(8){height:15px;animation-delay:-.25s}.wave i:nth-child(9){height:7px;animation-delay:-.45s}#audioTime{font-size:10px;color:var(--muted)}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:14px 0}.service-grid div{padding:9px;border:2px solid var(--ink);border-radius:12px;background:#fff;text-align:center}.service-grid span{display:block;color:var(--muted);font-size:9px}.service-grid b{display:block;margin-top:3px;font-size:11px;line-height:1.35;overflow-wrap:anywhere;word-break:break-word}.adopt-btn{width:100%;border:3px solid var(--ink);border-radius:16px;padding:14px;background:#ffd874;color:var(--ink);font-size:15px;font-weight:900;box-shadow:0 6px 0 rgba(73,60,88,.15);cursor:pointer}.adopt-btn:hover{transform:translateY(-2px)}.owner-pet-actions{display:flex;gap:7px;margin-top:12px}.owner-pet-actions button{flex:1;background:#fff}.owner-pet-actions button:last-child{background:#ffd2dc}.footer{text-align:center;padding:16px;color:var(--muted);font-size:10px}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:18px;background:rgba(63,46,70,.52);backdrop-filter:blur(9px);opacity:0;visibility:hidden;transition:.22s}.modal-backdrop.show{opacity:1;visibility:visible}.editor-card,.success-card{width:min(560px,100%);max-height:calc(100vh - 36px);overflow:auto;padding:22px;border:4px solid var(--ink);border-radius:26px;background:#fffaf3;box-shadow:0 14px 0 rgba(73,60,88,.18),0 35px 80px rgba(0,0,0,.3);transform:translateY(15px) scale(.97);transition:.22s}.modal-backdrop.show .editor-card,.modal-backdrop.show .success-card{transform:none}.modal-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.modal-head h3{margin:4px 0 0;font-size:24px}.modal-close{width:36px;height:36px;border:3px solid var(--ink);border-radius:50%;background:#ffd2dc;font-size:22px;font-weight:900}.editor-card label{display:block;margin:9px 0;font-size:11px;font-weight:900}.editor-card label>span{display:block;margin:0 0 5px 3px}.editor-card input,.editor-card textarea{width:100%;border:3px solid var(--ink);border-radius:12px;padding:10px;background:#fff;color:var(--ink);font:inherit;font-weight:700;outline:none}.editor-card textarea{resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.preview-note{padding:9px;border:2px dashed var(--line);border-radius:11px;color:var(--muted);font-size:10px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.adopt-small{background:#ffd874}.success-card{text-align:center}.success-icon{font-size:68px}.success-card h3{margin:5px 0;font-size:26px}.success-card>p{color:var(--muted);font-size:12px}.receipt{display:grid;grid-template-columns:1fr auto;gap:7px;margin:16px 0;padding:14px;border:2px dashed var(--line);border-radius:14px;background:#fff;text-align:left}.receipt span{color:var(--muted);font-size:10px}.receipt b{font-size:11px}.toast{position:fixed;left:50%;bottom:20px;z-index:120;transform:translate(-50%,20px);opacity:0;pointer-events:none;padding:10px 15px;border:3px solid var(--ink);border-radius:14px;background:#fff;font-size:11px;font-weight:900;box-shadow:0 6px 0 rgba(73,60,88,.16);transition:.22s}.toast.show{opacity:1;transform:translate(-50%,0)}.customer-mode .owner-btn,.customer-mode .owner-pet-actions,.customer-mode .delete-pet,.customer-mode .edit-pet{display:none!important}@keyframes float{50%{transform:translateY(-8px) rotate(3deg)}}@keyframes pop{from{opacity:0;transform:scale(.97)}}@keyframes wave{to{transform:scaleY(.35)}}
@media(max-width:1000px){.shop-layout{grid-template-columns:1fr}.profile-panel{position:relative;top:auto}.pet-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){.shelf-panel,.profile-panel{overflow:hidden}.pet-grid{width:100%;max-width:100%;min-width:0}.app-shell{width:calc(100% - 14px);padding-top:10px}.topbar{padding:11px}.brand-mark{width:48px;height:48px;font-size:24px}.brand h1{font-size:22px}.brand-sub,.top-actions .shop-tag{display:none}.shelf-panel,.profile-panel{border-radius:22px;padding:14px}.section-head{display:block}.section-head h2{font-size:20px}.swipe-tip{display:inline-block;margin-top:7px}.pet-grid{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 1px 14px;scrollbar-width:thin}.pet-card{flex:0 0 142px;width:142px;padding:8px;scroll-snap-align:start}.pet-card h3{font-size:15px}.profile-panel{min-height:0}.empty-profile{min-height:420px}.portrait-wrap{width:190px;height:190px}.pet-profile h2{font-size:25px}.service-grid{grid-template-columns:1fr 1fr 1fr}.form-row{grid-template-columns:1fr}.owner-btn{padding:8px}.footer{display:none}}
.pet-filter{display:flex;gap:8px;margin:12px 0 14px;padding:8px;border:2px solid var(--ink);border-radius:16px;background:#fff;box-shadow:inset 0 3px 0 rgba(255,255,255,.8)}.pet-filter button{flex:1;border:2px solid var(--ink);border-radius:11px;background:#fff;padding:8px 10px;color:var(--ink);font-weight:900;cursor:pointer}.pet-filter button span{display:inline-block;margin-left:5px;padding:1px 5px;border-radius:999px;background:#ece7f0;font-size:9px}.pet-filter button.active{background:#ffd874;transform:translateY(-1px)}.pet-filter button[data-game="三角洲行动"].active{background:#ffd0a4}.pet-filter button[data-game="无畏契约"].active{background:#ffb8ca}.kennel-sign{position:absolute;z-index:4;left:50%;top:7px;transform:translateX(-50%);padding:3px 8px;border:2px solid var(--ink);border-radius:999px;background:#fff;font-size:8px;font-weight:900;white-space:nowrap}.kennel-sign i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#52dc91;margin-right:4px;box-shadow:0 0 0 3px rgba(82,220,145,.18)}.kennel-sign small{margin-left:4px;color:#a05a75}.kennel-scene{position:relative;height:196px;margin:33px 3px 6px;border:3px solid var(--ink);border-radius:16px 16px 12px 12px;background:linear-gradient(#dfeff4 0 62%,#dfcbae 62% 100%);overflow:hidden}.cage-bars{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 24px,rgba(73,60,88,.14) 25px 27px,transparent 28px 49px);pointer-events:none;z-index:3}.cage-bars::after{content:'';position:absolute;left:0;right:0;top:52%;height:4px;background:rgba(73,60,88,.16)}.pet-bed{position:absolute;left:11%;right:11%;bottom:9px;height:68px;border:3px solid var(--ink);border-radius:50px 50px 28px 28px;background:linear-gradient(#ffb4c8,#ff8eae);box-shadow:inset 0 7px 0 rgba(255,255,255,.32)}.bed-pillow{position:absolute;left:8%;top:-13px;width:38%;height:38px;border:3px solid var(--ink);border-radius:50%;background:#fff0b8;transform:rotate(-7deg)}.bed-cushion{position:absolute;right:8%;bottom:-4px;width:54%;height:28px;border:2px dashed rgba(73,60,88,.32);border-radius:50%}.pet-bed img{position:absolute;z-index:2;left:50%;bottom:21px;width:130px;height:166px;object-fit:contain;transform:translateX(-50%);filter:drop-shadow(0 6px 0 rgba(73,60,88,.12))}.pet-nameplate{margin:8px 2px 0;padding:8px 7px;border:2px solid var(--ink);border-radius:12px;background:#fff}.pet-nameplate h3{margin:0;font-size:16px}.pet-nameplate p{margin:2px 0 0;color:var(--muted);font-size:10px}.pet-nameplate .price{margin-top:5px;font-size:10px}.no-pets{grid-column:1/-1;padding:50px 15px;text-align:center;border:2px dashed var(--line);border-radius:18px;color:var(--muted)}.pet-card{min-height:320px;padding:0 8px 9px;background:linear-gradient(160deg,#fff,color-mix(in srgb,var(--pet-color) 12%,#fff))}.pet-card.selected::after{top:35px}.pet-card .delete-pet,.pet-card .edit-pet{top:35px}.pet-card.selected .delete-pet,.pet-card.selected .edit-pet{top:35px}.pet-card.selected::after{top:68px}@media(max-width:720px){.pet-filter{position:sticky;top:2px;z-index:20;overflow-x:auto}.pet-filter button{flex:0 0 auto}.pet-card{flex-basis:160px;width:160px;min-height:318px}.kennel-scene{height:190px}.pet-bed img{width:126px;height:160px}}
.audio-card{grid-template-columns:42px 1fr auto auto}.replace-audio{border:2px solid var(--ink);border-radius:9px;background:#fff0b8;padding:5px 7px;font-size:9px;font-weight:900;cursor:pointer}.customer-mode .replace-audio{display:none}.service-grid{grid-template-columns:1.15fr .85fr .9fr .85fr}.service-grid b{white-space:nowrap}.pet-bed img{width:128px;height:150px;object-fit:cover;border:3px solid var(--ink);border-radius:50% 50% 42% 42%;background:#fff}.profile-top>span:first-child{display:flex;gap:5px;align-items:center}.portrait-wrap img{border:4px solid var(--ink);border-radius:50%;object-fit:cover;background:#fff}@media(max-width:720px){.audio-card{grid-template-columns:40px 1fr auto}.replace-audio{grid-column:2/4;width:100%;margin-top:3px}.service-grid{grid-template-columns:1fr 1fr}.pet-bed img{width:122px;height:146px}}
.pet-label-filter{display:flex;gap:7px;flex-wrap:wrap;margin:-4px 0 14px}.label-chip{border:2px solid var(--ink);border-radius:999px;background:#fff;padding:7px 11px;color:var(--ink);font-size:10px;font-weight:900;cursor:pointer}.label-chip.active{background:#dff9f2;transform:translateY(-1px);box-shadow:0 3px 0 rgba(73,60,88,.12)}.label-editor{margin:9px 0;padding:10px;border:2px dashed var(--line);border-radius:12px}.label-editor>span{display:block;margin-bottom:7px;font-size:11px;font-weight:900}.label-checks{display:flex;gap:8px;flex-wrap:wrap}.label-checks label{display:flex!important;align-items:center;gap:5px;margin:0!important;padding:6px 9px;border:2px solid var(--ink);border-radius:999px;background:#fff;font-size:10px}.label-checks input{width:15px!important;height:15px!important;margin:0;accent-color:#69cdbb}.pet-label-mini{display:flex;justify-content:center;gap:3px;flex-wrap:wrap;margin-top:5px}.pet-label-mini span{padding:2px 5px;border-radius:999px;background:#eafbf7;color:#765b80;font-size:7px;font-weight:900}
.pet-mode-filter{display:flex;flex-wrap:wrap;gap:7px;margin:-7px 0 10px}.mode-chip{flex:0 0 auto;border:2px solid var(--ink);border-radius:999px;background:#fff;padding:7px 13px;font-size:10px;font-weight:900;cursor:pointer}.mode-chip.active{background:#ffd0a4}.mode-chip[data-mode$="娱乐"].active{background:#ffb8ca}.mode-chip[data-mode$="技术"].active{background:#ffd0a4}.pet-card .pet-label-mini{min-height:13px}
.pet-bed video{position:absolute;z-index:2;left:50%;bottom:21px;width:128px;height:150px;object-fit:cover;border:3px solid var(--ink);border-radius:50% 50% 42% 42%;background:#fff;transform:translateX(-50%);filter:drop-shadow(0 6px 0 rgba(73,60,88,.12))}.portrait-wrap video{width:100%;height:100%;object-fit:cover;border:4px solid var(--ink);border-radius:50%;background:#fff}.service-contact{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:14px;margin:15px 0;padding:12px;border:2px dashed var(--line);border-radius:16px;background:#eafbf7;text-align:left}.service-contact img{width:150px;height:150px;object-fit:cover;border:3px solid var(--ink);border-radius:16px;background:#fff}.service-contact span{display:block;color:var(--muted);font-size:10px}.service-contact b{display:block;margin:5px 0 10px;font-size:18px}.service-contact button{border:2px solid var(--ink);border-radius:10px;background:#fff0b8;padding:7px 10px;font-weight:900;cursor:pointer}@media(max-width:520px){.service-contact{grid-template-columns:100px 1fr}.service-contact img{width:100px;height:100px}}
.arrival-stage{position:relative;min-height:620px;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:30px 20px}.arrival-stage[hidden]{display:none}.arrival-house{position:absolute;left:8%;bottom:80px;width:180px;height:175px;border:4px solid var(--ink);border-radius:22px;background:linear-gradient(#ffd7a5,#d89563);box-shadow:0 9px 0 rgba(73,60,88,.14)}.house-roof{position:absolute;left:-12%;right:-12%;top:-58px;height:70px;background:#ff8eae;border:4px solid var(--ink);clip-path:polygon(50% 0,100% 100%,0 100%)}.house-door{position:absolute;left:28%;right:28%;bottom:0;height:85px;border:4px solid var(--ink);border-bottom:0;border-radius:70px 70px 0 0;background:#493c58}.house-sign{position:absolute;left:50%;top:35px;transform:translateX(-50%);padding:4px 9px;border:2px solid var(--ink);border-radius:999px;background:#fff;font-size:10px;font-weight:900}.arrival-path{position:absolute;left:4%;right:4%;bottom:66px;height:8px;border-radius:50%;background:repeating-linear-gradient(90deg,rgba(73,60,88,.22) 0 8px,transparent 8px 18px)}.arrival-pet{position:absolute;z-index:3;left:12%;bottom:95px;width:145px;height:165px;object-fit:contain;opacity:0;transform:translateX(-120px) scale(.55);filter:drop-shadow(0 8px 0 rgba(73,60,88,.13))}.arrival-stage.playing .arrival-pet{animation:walkOut 1.55s cubic-bezier(.22,.8,.3,1) forwards}.arrival-copy{position:relative;z-index:4;text-align:center;padding:11px 18px;border:3px solid var(--ink);border-radius:18px;background:#fff7e8;box-shadow:0 6px 0 rgba(73,60,88,.14)}.arrival-copy b{display:block;font-size:20px}.arrival-copy span{display:block;margin-top:3px;color:var(--muted);font-size:11px}.pet-profile.reveal{animation:profileReveal .55s ease both}@keyframes walkOut{0%{left:12%;opacity:0;transform:translateX(-80px) scale(.55)}18%{opacity:1}55%{left:45%;transform:translateX(-50%) translateY(-12px) scale(.95)}70%{transform:translateX(-50%) translateY(0) scale(1.05)}100%{left:50%;transform:translateX(-50%) translateY(-25px) scale(1.12);opacity:1}}@keyframes profileReveal{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}.qr-lightbox{position:fixed;inset:0;z-index:140;display:grid;place-items:center;padding:25px;background:rgba(45,32,52,.86);backdrop-filter:blur(12px);opacity:0;visibility:hidden;transition:.22s}.qr-lightbox.show{opacity:1;visibility:visible}.qr-lightbox img{max-width:min(720px,92vw);max-height:82vh;border:5px solid #fff;border-radius:24px;box-shadow:0 18px 60px rgba(0,0,0,.45)}.qr-lightbox button{position:absolute;right:24px;top:22px;width:46px;height:46px;border:3px solid #fff;border-radius:50%;background:#ff8eae;color:#fff;font-size:28px;font-weight:900}


/* ---- Realistic pet arrival: peek out, step onto the mat, then reveal the profile ---- */
.arrival-stage{
  position:relative;
  display:block;
  min-height:620px;
  padding:0;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 72% 24%,rgba(255,244,199,.98) 0 5%,rgba(255,235,184,.38) 6% 17%,transparent 33%),
    linear-gradient(180deg,#eee3d8 0 55%,#c28d65 55% 56%,#dfbb95 56% 100%);
}
.arrival-stage[hidden]{display:none}
.arrival-stage::before{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:44%;
  z-index:0;
  border-top:8px solid #956044;
  background:
    repeating-linear-gradient(96deg,rgba(83,48,27,.11) 0 2px,transparent 2px 45px),
    repeating-linear-gradient(8deg,rgba(255,255,255,.055) 0 1px,transparent 1px 52px),
    linear-gradient(180deg,#e1bc96,#c68e65);
  box-shadow:inset 0 24px 36px rgba(86,47,25,.13);
}
.arrival-stage::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:12;
  pointer-events:none;
  box-shadow:inset 0 0 68px rgba(76,42,28,.17),inset 0 -36px 62px rgba(102,56,33,.12);
}
.arrival-light{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(105deg,rgba(255,255,255,.23),transparent 32%),
    radial-gradient(ellipse at 64% 64%,rgba(255,224,163,.52),transparent 48%);
}
.arrival-house{
  position:absolute;
  z-index:6;
  left:4.5%;
  bottom:76px;
  width:210px;
  height:205px;
  border:5px solid #705044;
  border-radius:31px 31px 19px 19px;
  background:
    linear-gradient(90deg,transparent 0 7%,rgba(255,255,255,.12) 7% 9%,transparent 9% 91%,rgba(91,55,39,.12) 91% 93%,transparent 93%),
    repeating-linear-gradient(90deg,rgba(109,67,43,.09) 0 2px,transparent 2px 18px),
    linear-gradient(155deg,#e2bd8e,#bf8a61 72%,#a87455);
  box-shadow:
    0 18px 17px rgba(72,39,24,.25),
    inset 0 0 0 5px rgba(255,246,224,.25),
    inset 0 -18px 24px rgba(91,53,35,.16);
  transform:perspective(680px) rotateY(-4deg);
  transform-origin:right bottom;
}
.arrival-house::before{
  content:"";
  position:absolute;
  inset:9px;
  z-index:1;
  border:2px solid rgba(104,66,49,.42);
  border-radius:22px 22px 12px 12px;
  background:repeating-linear-gradient(90deg,transparent 0 21px,rgba(112,71,46,.075) 21px 23px);
  pointer-events:none;
}
.house-roof{
  position:absolute;
  left:-9%;right:-9%;top:-52px;height:61px;
  z-index:5;
  border:4px solid #705044;
  border-radius:11px 11px 7px 7px;
  background:
    repeating-linear-gradient(90deg,rgba(255,255,255,.14) 0 2px,transparent 2px 24px),
    linear-gradient(180deg,#c77d78,#956065);
  clip-path:polygon(50% 0,100% 100%,0 100%);
  filter:drop-shadow(0 7px 0 rgba(73,41,29,.15));
}
.house-door{
  position:absolute;
  left:50%;bottom:0;
  z-index:4;
  width:108px;height:124px;
  transform:translateX(-50%);
  border:5px solid #654a43;
  border-bottom:0;
  border-radius:68px 68px 0 0;
  background:
    radial-gradient(ellipse at 50% 92%,#160f1c 0 45%,#231728 46% 72%,#100b16 78% 100%);
  box-shadow:inset 0 16px 22px rgba(0,0,0,.78),0 0 0 4px rgba(255,237,207,.22);
}
.house-door::before{
  content:"";
  position:absolute;
  left:12px;right:12px;top:13px;bottom:0;
  border:2px solid rgba(255,226,189,.16);
  border-bottom:0;
  border-radius:48px 48px 0 0;
}
.house-door::after{
  content:"";
  position:absolute;
  left:50%;bottom:-7px;
  width:86px;height:18px;
  transform:translateX(-50%);
  border:2px solid rgba(76,48,39,.42);
  border-radius:50%;
  background:repeating-linear-gradient(90deg,#efd5b7 0 10px,#d8ac7f 10px 20px);
  box-shadow:0 5px 8px rgba(75,43,27,.22);
}
.house-sign{
  position:absolute;
  left:50%;top:24px;
  z-index:7;
  transform:translateX(-50%) rotate(-2deg);
  padding:5px 12px;
  border:3px solid #705044;
  border-radius:999px;
  background:#fff5dc;
  color:#584050;
  font-size:10px;
  font-weight:900;
  box-shadow:0 4px 0 rgba(81,50,38,.2);
  white-space:nowrap;
}
.arrival-path{
  position:absolute;
  z-index:1;
  left:17%;right:2%;bottom:30px;
  height:82px;
  border-radius:50%;
  background:
    radial-gradient(ellipse at 45% 50%,rgba(255,247,224,.5),rgba(255,229,188,.18) 48%,transparent 72%),
    repeating-linear-gradient(90deg,rgba(111,72,48,.11) 0 3px,transparent 3px 34px);
  filter:blur(.15px);
}
.arrival-path::after{
  content:"";
  position:absolute;
  left:25%;right:7%;top:35%;
  height:17px;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(83,47,29,.16),transparent 70%);
  filter:blur(6px);
}
.arrival-pet-wrap{
  position:absolute;
  z-index:3;
  left:7%;
  bottom:73px;
  width:242px;
  height:270px;
  opacity:0;
  pointer-events:none;
  transform-origin:50% 100%;
  will-change:left,transform,opacity;
}
.arrival-stage.playing .arrival-pet-wrap{
  animation:walkOut 2.45s cubic-bezier(.2,.78,.24,1) forwards;
}
.arrival-pet-shadow{
  position:absolute;
  left:50%;bottom:2px;
  width:68%;height:17px;
  transform:translateX(-50%);
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(40,24,19,.43),rgba(40,24,19,.19) 46%,transparent 74%);
  filter:blur(3px);
  opacity:.58;
}
.arrival-stage.playing .arrival-pet-shadow{
  animation:petShadow .36s ease-in-out infinite alternate;
}
.arrival-pet{
  position:absolute;
  left:0;bottom:0;
  width:100%;height:100%;
  object-fit:contain;
  object-position:center bottom;
  display:block;
  transform-origin:50% 94%;
  filter:drop-shadow(0 10px 7px rgba(63,36,25,.19)) saturate(1.03) contrast(1.015);
}
.arrival-stage.playing .arrival-pet{
  animation:petWalk .36s ease-in-out infinite alternate;
}
.arrival-copy{
  position:absolute;
  left:50%;bottom:24px;
  z-index:9;
  min-width:190px;
  transform:translate(-50%,12px);
  padding:11px 18px;
  border:3px solid var(--ink);
  border-radius:18px;
  background:rgba(255,247,232,.95);
  box-shadow:0 6px 0 rgba(73,60,88,.14);
  opacity:0;
}
.arrival-stage.playing .arrival-copy{
  animation:arrivalCopy .42s ease .92s forwards;
}
.arrival-copy b{display:block;font-size:20px}
.arrival-copy span{display:block;margin-top:3px;color:var(--muted);font-size:11px}
@keyframes walkOut{
  0%{left:7%;opacity:0;transform:translate3d(-102px,20px,0) scale(.58) rotate(1deg)}
  6%{opacity:1}
  19%{left:8%;transform:translate3d(-84px,9px,0) scale(.68) rotate(.5deg)}
  35%{left:15%;transform:translate3d(-62px,2px,0) scale(.78) rotate(-.8deg)}
  50%{left:27%;transform:translate3d(-50px,0,0) scale(.9) rotate(.9deg)}
  64%{left:39%;transform:translate3d(-50%,-4px,0) scale(.98) rotate(-.55deg)}
  79%{left:48%;transform:translate3d(-50%,1px,0) scale(1.02) rotate(.35deg)}
  100%{left:52%;opacity:1;transform:translate3d(-50%,-4px,0) scale(1.04) rotate(0)}
}
@keyframes petWalk{
  from{transform:translateY(0) rotate(-.25deg) scale(1)}
  to{transform:translateY(-5px) rotate(.3deg) scale(1.008)}
}
@keyframes petShadow{
  from{opacity:.62;transform:translateX(-50%) scaleX(1)}
  to{opacity:.38;transform:translateX(-50%) scaleX(.86)}
}
@keyframes arrivalCopy{
  from{opacity:0;transform:translate(-50%,12px)}
  to{opacity:1;transform:translate(-50%,0)}
}
@media(max-width:720px){
  .arrival-stage{min-height:560px}
  .arrival-house{left:3%;bottom:72px;width:186px;height:190px}
  .house-door{width:96px;height:114px}
  .arrival-pet-wrap{left:6%;bottom:69px;width:218px;height:244px}
  .arrival-copy{bottom:20px}
}


/* ---- Guaranteed cute arrival animation: built-in cat/dog vector scene ---- */
.profile-panel{
  min-height:calc(100vh - 32px);
  display:flex;
  flex-direction:column;
}
.pet-profile{
  width:100%;
  min-height:calc(100vh - 78px);
  display:flex;
  flex-direction:column;
}
.pet-profile[hidden]{display:none}
.portrait-wrap{width:min(282px,72vw);height:min(282px,72vw);margin-top:20px}
.pet-profile .adopt-btn{margin-top:12px}
.owner-pet-actions{margin-top:auto;padding-top:12px}
.arrival-stage{
  min-height:max(620px,calc(100vh - 80px));
  background:
    radial-gradient(circle at 74% 24%,rgba(255,245,198,.98) 0 5%,rgba(255,230,176,.42) 6% 18%,transparent 34%),
    linear-gradient(180deg,#efe4d9 0 54%,#c58d66 54% 55%,#dfba93 55% 100%);
}
.arrival-house{
  left:3.5%;
  bottom:77px;
  width:196px;
  height:198px;
  z-index:5;
}
.house-door{
  width:102px;
  height:120px;
  background:radial-gradient(ellipse at 50% 94%,#140e19 0 45%,#25182b 46% 74%,#0f0a13 78% 100%);
}
.house-sign{
  top:25px;
  background:#fff8e8;
}
.arrival-path{
  left:13%;right:2%;bottom:34px;
  height:95px;
  background:
    radial-gradient(ellipse at 52% 52%,rgba(255,247,224,.65),rgba(255,223,180,.26) 48%,transparent 73%),
    repeating-linear-gradient(90deg,rgba(111,72,48,.1) 0 3px,transparent 3px 34px);
}
.arrival-pet-wrap{
  z-index:8;
  left:8%;
  bottom:103px;
  width:242px;
  height:244px;
  opacity:0;
  transform-origin:50% 100%;
}
.arrival-stage.playing .arrival-pet-wrap{
  animation:walkOutCute 2.62s cubic-bezier(.2,.78,.24,1) forwards;
}
.arrival-pet{
  position:absolute;
  left:0;bottom:0;
  width:100%;height:100%;
  object-fit:contain;
  transform-origin:50% 94%;
  filter:drop-shadow(0 11px 7px rgba(63,36,25,.18));
}
.arrival-pet svg{
  display:block;
  width:100%;height:100%;
  overflow:visible;
}
.arrival-stage.playing .arrival-pet{
  animation:petWalkCute .38s ease-in-out infinite alternate;
}
.arrival-pet-shadow{
  bottom:7px;
  width:72%;height:18px;
  opacity:.5;
}
.arrival-stage.playing .arrival-pet-shadow{
  animation:petShadowCute .38s ease-in-out infinite alternate;
}
.arrival-copy{
  bottom:24px;
}
.arrival-stage.playing .arrival-copy{
  animation-delay:.55s;
}
.pet-leg{transform-box:fill-box;transform-origin:50% 4%}
.pet-tail{transform-box:fill-box;transform-origin:5% 85%}
.pet-head{transform-box:fill-box;transform-origin:75% 82%}
.arrival-stage.playing .pet-leg-front-a,
.arrival-stage.playing .pet-leg-back-b{animation:legStepA .36s ease-in-out infinite alternate}
.arrival-stage.playing .pet-leg-front-b,
.arrival-stage.playing .pet-leg-back-a{animation:legStepB .36s ease-in-out infinite alternate}
.arrival-stage.playing .pet-tail{animation:tailWag .3s ease-in-out infinite alternate}
.arrival-stage.playing .pet-head{animation:headBob .38s ease-in-out infinite alternate}
@keyframes walkOutCute{
  0%{left:8%;opacity:0;transform:translate3d(-58px,40px,0) scale(.3) rotate(-3deg)}
  8%{opacity:1}
  25%{left:10%;transform:translate3d(-62px,18px,0) scale(.52) rotate(-2deg)}
  44%{left:23%;transform:translate3d(-62px,4px,0) scale(.74) rotate(2deg)}
  61%{left:36%;transform:translate3d(-54px,-3px,0) scale(.88) rotate(-2deg)}
  79%{left:48%;transform:translate3d(-50%,0,0) scale(.98) rotate(1deg)}
  91%{left:51%;transform:translate3d(-50%,-5px,0) scale(1.03) rotate(-.5deg)}
  100%{left:52%;opacity:1;transform:translate3d(-50%,0,0) scale(1) rotate(0)}
}
@keyframes petWalkCute{
  from{transform:translateY(1px) rotate(-.6deg) scaleY(.985)}
  to{transform:translateY(-6px) rotate(.6deg) scaleY(1.01)}
}
@keyframes petShadowCute{
  from{opacity:.55;transform:translateX(-50%) scaleX(1)}
  to{opacity:.32;transform:translateX(-50%) scaleX(.86)}
}
@keyframes legStepA{from{transform:rotate(-14deg)}to{transform:rotate(15deg)}}
@keyframes legStepB{from{transform:rotate(15deg)}to{transform:rotate(-14deg)}}
@keyframes tailWag{from{transform:rotate(-8deg)}to{transform:rotate(10deg)}}
@keyframes headBob{from{transform:translateY(0) rotate(-1deg)}to{transform:translateY(-4px) rotate(1.5deg)}}
@media(max-width:1000px){
  .profile-panel{position:relative;top:auto;min-height:auto}
  .pet-profile{min-height:calc(100vh - 90px)}
}
@media(max-width:720px){
  .profile-panel{min-height:100vh;border-radius:0}
  .pet-profile{min-height:calc(100vh - 55px)}
  .portrait-wrap{width:min(250px,72vw);height:min(250px,72vw)}
  .arrival-stage{min-height:100vh;border-radius:0}
  .arrival-house{left:2%;bottom:70px;width:178px;height:184px}
  .house-door{width:92px;height:108px}
  .arrival-pet-wrap{left:7%;bottom:94px;width:218px;height:220px}
  .arrival-copy{bottom:18px}
}

.brand .eyebrow{display:inline-flex;width:max-content;padding:3px 9px;border:2px solid #ffb7cc;border-radius:999px;background:#ffe9f1;color:#b34f77;box-shadow:0 3px 0 rgba(179,79,119,.12)}.brand h1{text-shadow:0 2px 0 #fff}

.random-adopt-btn{position:relative;border:2px solid var(--ink);border-radius:999px;padding:8px 13px;background:linear-gradient(135deg,#ffd2e3,#fff0b8 52%,#c9f6e8);color:var(--ink);font-weight:900;font-size:11px;box-shadow:0 4px 0 rgba(73,60,88,.13);cursor:pointer;white-space:nowrap;transition:transform .18s ease,box-shadow .18s ease}
.random-adopt-btn span{display:inline-block;margin-right:2px;animation:gachaWiggle 2.2s ease-in-out infinite}
.random-adopt-btn:hover{transform:translateY(-2px) rotate(-1deg);box-shadow:0 6px 0 rgba(73,60,88,.13)}
.random-adopt-btn:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(73,60,88,.13)}
@keyframes gachaWiggle{0%,70%,100%{transform:rotate(0)}76%{transform:rotate(-12deg) scale(1.08)}82%{transform:rotate(12deg) scale(1.08)}88%{transform:rotate(-7deg)}94%{transform:rotate(7deg)}}

.random-adopt-btn .gacha-icon{display:inline-flex;align-items:center;justify-content:center;width:23px;height:23px;margin-right:3px;vertical-align:-5px}.random-adopt-btn .gacha-icon svg{width:100%;height:100%;display:block;overflow:visible}
.finder-cat{position:fixed;right:20px;bottom:20px;z-index:220;width:124px;height:124px;border:0;border-radius:50%;background:radial-gradient(circle at 50% 45%,#fff 0 53%,#ffe7ef 54% 68%,rgba(255,247,232,.92) 69% 100%);padding:5px;cursor:pointer;filter:drop-shadow(0 12px 10px rgba(73,60,88,.24)) drop-shadow(0 0 15px rgba(255,159,189,.34));box-shadow:inset 0 0 0 3px rgba(73,60,88,.14)}
.finder-cat img{width:100%;height:100%;display:block;animation:finderFloat 3.2s ease-in-out infinite;transition:filter .2s ease;filter:drop-shadow(0 3px 1px rgba(73,60,88,.12))}.finder-cat:hover img,.finder-cat:focus-visible img{animation-play-state:paused;filter:brightness(1.05) drop-shadow(0 4px 3px rgba(73,60,88,.16))}
.finder-tooltip{position:absolute;right:116px;bottom:20px;white-space:nowrap;padding:8px 11px;border:2px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);font-size:11px;font-weight:900;box-shadow:0 5px 0 rgba(73,60,88,.13);opacity:0;transform:translateX(8px) scale(.96);pointer-events:none;transition:.18s ease}
.finder-tooltip::after{content:"";position:absolute;right:-7px;top:50%;width:10px;height:10px;border-top:2px solid var(--ink);border-right:2px solid var(--ink);background:#fff;transform:translateY(-50%) rotate(45deg)}
.finder-cat:hover .finder-tooltip,.finder-cat:focus-visible .finder-tooltip{opacity:1;transform:translateX(0) scale(1)}
@keyframes finderFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.finder-modal{position:fixed;inset:0;z-index:520;display:grid;place-items:center;padding:18px;background:rgba(52,34,58,.60);backdrop-filter:blur(9px);opacity:0;visibility:hidden;transition:.22s ease}.finder-modal.show{opacity:1;visibility:visible}
.finder-card{position:relative;width:min(560px,100%);padding:24px;border:4px solid var(--ink);border-radius:28px;background:linear-gradient(155deg,#fffdf8,#fff0f5 58%,#e9fff8);box-shadow:0 14px 0 rgba(73,60,88,.16),0 30px 80px rgba(0,0,0,.25);transform:translateY(12px) scale(.98);transition:.22s}.finder-modal.show .finder-card{transform:none}.finder-close{position:absolute;right:14px;top:14px;width:36px;height:36px;border:2px solid var(--ink);border-radius:50%;background:#ffd2dc;color:var(--ink);font-size:21px;font-weight:900;cursor:pointer}.finder-mascot{font-size:44px;line-height:1;margin-bottom:4px}.finder-card h3{margin:5px 0 6px;font-size:25px}.finder-copy{margin:0 0 13px;color:var(--muted);font-size:12px;line-height:1.65}.finder-card textarea{width:100%;min-height:108px;resize:vertical;border:3px solid var(--ink);border-radius:15px;padding:12px;background:#fff;color:var(--ink);font:inherit;font-size:12px;font-weight:700;outline:none}.finder-examples{display:flex;gap:6px;flex-wrap:wrap;margin:9px 0 13px}.finder-examples button{border:2px solid var(--ink);border-radius:999px;padding:6px 9px;background:#fff;color:var(--ink);font-size:9px;font-weight:900;cursor:pointer}.finder-submit{width:100%;border:3px solid var(--ink);border-radius:15px;padding:13px;background:#ffd874;color:var(--ink);font-size:14px;font-weight:900;box-shadow:0 5px 0 rgba(73,60,88,.14);cursor:pointer}.finder-submit:hover{transform:translateY(-2px)}

.finder-cat::before,.finder-cat::after{position:absolute;z-index:2;color:#ff8fb3;text-shadow:0 0 8px rgba(255,159,189,.65);font-size:18px;font-weight:900;pointer-events:none;animation:finderSparkle 1.8s ease-in-out infinite}.finder-cat::before{content:"✦";left:2px;top:16px}.finder-cat::after{content:"✧";right:0;top:8px;animation-delay:.65s;color:#bca2f6}
@keyframes finderSparkle{0%,100%{opacity:.35;transform:scale(.8) rotate(0)}50%{opacity:1;transform:scale(1.18) rotate(18deg)}}
/* arrival-cute.css */
/* Head-peek first, then slow walk-out; detailed cozy pet house */
.arrival-stage{
  background:
    radial-gradient(circle at 74% 20%,rgba(255,248,211,.98) 0 4%,rgba(255,231,179,.45) 5% 17%,transparent 33%),
    repeating-linear-gradient(90deg,rgba(127,89,62,.035) 0 1px,transparent 1px 42px),
    linear-gradient(180deg,#f1e6db 0 53%,#bd815d 53% 54%,#e1bc94 54% 100%);
}
.arrival-house{
  left:3.2%;
  bottom:76px;
  width:204px;
  height:205px;
  border-width:6px;
  border-color:#69483e;
  border-radius:34px 34px 20px 20px;
  background:
    linear-gradient(90deg,rgba(255,255,255,.18),transparent 13% 87%,rgba(73,41,29,.13)),
    repeating-linear-gradient(90deg,rgba(103,61,40,.11) 0 2px,transparent 2px 22px),
    repeating-linear-gradient(0deg,rgba(255,255,255,.055) 0 2px,transparent 2px 26px),
    linear-gradient(150deg,#edcba0,#c89166 68%,#a96e51);
  box-shadow:0 20px 20px rgba(72,39,24,.26),inset 0 0 0 6px rgba(255,248,228,.25),inset 0 -22px 28px rgba(91,53,35,.17);
  transform:perspective(720px) rotateY(-3deg);
}
.arrival-house::before{
  inset:11px;
  border-color:rgba(103,65,47,.35);
  border-radius:24px 24px 13px 13px;
  background:radial-gradient(circle at 18% 18%,rgba(255,255,255,.15) 0 2px,transparent 3px),repeating-linear-gradient(90deg,transparent 0 24px,rgba(112,71,46,.065) 24px 26px);
}
.house-roof{
  top:-56px;height:67px;
  border-color:#69483e;
  border-radius:13px 13px 5px 5px;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.16) 0 3px,transparent 3px 28px),repeating-linear-gradient(0deg,rgba(83,45,48,.11) 0 2px,transparent 2px 17px),linear-gradient(180deg,#d18a84,#9d6269);
}
.house-window{
  position:absolute;z-index:3;right:18px;top:54px;width:57px;height:53px;
  display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:5px;
  border:4px solid #69483e;border-radius:13px;background:#9b7059;
  box-shadow:0 4px 0 rgba(76,45,34,.15),inset 0 0 0 3px rgba(255,245,218,.22);
}
.house-window i{position:relative;display:block;border-radius:4px;background:linear-gradient(145deg,#caeeff,#8bcbe7);box-shadow:inset 0 0 10px rgba(73,60,88,.16)}
.house-window i::after{content:"";position:absolute;left:2px;right:2px;top:2px;height:10px;border-radius:3px 3px 8px 8px;background:linear-gradient(180deg,#ffd0dc,#ff9fbd);opacity:.8}
.house-door{
  width:106px;height:122px;border-color:#654a43;
  background:radial-gradient(ellipse at 50% 94%,#120b16 0 45%,#211527 46% 73%,#0d0810 79% 100%);
  box-shadow:inset 0 18px 25px rgba(0,0,0,.83),inset 0 -12px 18px rgba(255,205,151,.08),0 0 0 5px rgba(255,239,211,.26);
}
.house-door::after{width:91px;height:20px;opacity:.55}
.house-cushion{
  position:absolute;z-index:5;left:50%;bottom:2px;width:88px;height:28px;transform:translateX(-50%);
  border:3px solid #6b4a45;border-radius:50% 50% 42% 42%;
  background:repeating-linear-gradient(90deg,#ffd3df 0 12px,#f5b8c9 12px 24px);
  box-shadow:0 -4px 0 rgba(255,255,255,.3),0 5px 8px rgba(54,31,26,.24);
}
.house-sign{top:23px;padding:5px 12px;border-color:#69483e;background:#fff8e8;box-shadow:0 4px 0 rgba(81,50,38,.2),inset 0 -3px 0 rgba(255,193,111,.22)}
.house-paw{
  position:absolute;z-index:4;left:15px;top:62px;width:34px;height:34px;display:grid;place-items:center;
  border:3px solid #69483e;border-radius:50%;background:#fff4d8;font-size:17px;
  box-shadow:0 3px 0 rgba(81,50,38,.14);transform:rotate(-9deg);
}
.arrival-peek{
  position:absolute;z-index:11;left:13%;bottom:143px;width:126px;height:112px;
  opacity:0;pointer-events:none;transform-origin:50% 100%;filter:drop-shadow(0 7px 5px rgba(65,37,27,.16));
}
.arrival-peek svg{display:block;width:100%;height:100%;overflow:visible}
.arrival-stage.playing .arrival-peek{animation:peekSequence 1.72s cubic-bezier(.22,.75,.28,1) both}
.arrival-stage.playing .arrival-peek svg{animation:peekLook 1.72s ease-in-out both}
.arrival-stage.playing .arrival-pet-wrap{animation:walkOutCute 2.9s cubic-bezier(.18,.75,.22,1) 1.5s forwards}
.arrival-stage.playing .arrival-pet{animation-delay:.08s}
.arrival-stage.playing .arrival-copy{animation-delay:1.9s}
.arrival-path{
  left:11%;right:1%;bottom:31px;height:104px;
  border:2px dashed rgba(117,75,51,.25);
  background:radial-gradient(ellipse at 52% 52%,rgba(255,248,225,.76),rgba(255,224,180,.31) 48%,transparent 74%),repeating-linear-gradient(90deg,rgba(111,72,48,.09) 0 4px,transparent 4px 31px),repeating-linear-gradient(0deg,rgba(255,255,255,.08) 0 2px,transparent 2px 18px);
  box-shadow:inset 0 0 20px rgba(102,57,32,.08),0 5px 8px rgba(102,57,32,.08);
}
.arrival-path::before{content:"🐾  🐾  🐾";position:absolute;left:38%;top:34px;color:rgba(111,72,48,.25);font-size:13px;letter-spacing:14px;transform:rotate(-6deg)}
.arrival-bowl{right:6%;bottom:46px;width:76px;height:28px}
.arrival-bowl::before{content:"";position:absolute;inset:0;border:4px solid #62483f;border-radius:50% 50% 42% 42%;background:linear-gradient(180deg,#ff9fbd,#d96e98);box-shadow:0 6px 0 rgba(76,43,30,.18),inset 0 4px 0 rgba(255,255,255,.3)}
.bowl-water,.bowl-food{position:absolute;top:2px;width:25px;height:13px;border:2px solid rgba(73,60,88,.45);border-radius:50%;background:#bcecff}
.bowl-water{left:10px}.bowl-food{right:10px;background:#f2c879}
.arrival-plant{right:4%;bottom:86px;width:58px;height:88px}
.arrival-plant::before{content:"";position:absolute;left:12px;bottom:0;width:35px;height:37px;border:4px solid #62483f;border-radius:8px 8px 16px 16px;background:linear-gradient(145deg,#efb77d,#c9805e);box-shadow:0 6px 0 rgba(76,43,30,.15)}
.arrival-plant i{position:absolute;left:27px;bottom:29px;width:18px;height:38px;border:3px solid #493c58;border-radius:90% 10% 90% 10%;background:#79cca7;transform-origin:50% 100%}
.arrival-plant i:nth-child(1){transform:rotate(-30deg)}.arrival-plant i:nth-child(2){height:45px;transform:translateX(2px) rotate(4deg)}.arrival-plant i:nth-child(3){transform:translateX(8px) rotate(32deg)}
@keyframes peekSequence{
  0%{opacity:0;transform:translateY(58px) scale(.55)}
  10%{opacity:1}
  24%{opacity:1;transform:translateY(4px) scale(.82) rotate(0)}
  34%{transform:translateY(-15px) scale(.98) rotate(-2deg)}
  46%{transform:translateY(15px) scale(.72) rotate(1deg)}
  59%{opacity:1;transform:translateY(-13px) scale(1) rotate(-2deg)}
  72%{transform:translateY(10px) scale(.8) rotate(1deg)}
  88%{opacity:1;transform:translateY(-8px) scale(.94) rotate(-1deg)}
  100%{opacity:0;transform:translateY(55px) scale(.5) rotate(0)}
}
@keyframes peekLook{0%,18%,48%,100%{transform:rotate(0)}28%{transform:rotate(-6deg)}38%{transform:rotate(5deg)}66%{transform:rotate(-5deg)}76%{transform:rotate(4deg)}}
@media(max-width:720px){
  .arrival-house{left:1.5%;bottom:70px;width:184px;height:192px}
  .house-window{right:14px;top:51px;width:52px;height:49px}
  .house-door{width:96px;height:110px}
  .house-paw{left:12px;top:57px;width:30px;height:30px;font-size:15px}
  .arrival-peek{left:12%;bottom:132px;width:112px;height:100px}
  .arrival-bowl{right:4%;bottom:42px;width:64px;height:25px}
  .arrival-plant{right:3%;bottom:79px;width:50px;height:78px}
}

/* Desktop-first vertical approach animation */
@media (min-width:721px){
  .arrival-stage{
    min-height:max(760px,calc(100vh - 80px));
    background:
      radial-gradient(ellipse at 50% 12%,rgba(255,250,221,.98) 0 8%,rgba(255,232,181,.52) 9% 24%,transparent 49%),
      radial-gradient(ellipse at 50% 66%,rgba(255,231,194,.46),transparent 52%),
      repeating-linear-gradient(90deg,rgba(127,89,62,.035) 0 1px,transparent 1px 42px),
      linear-gradient(180deg,#f3e9df 0 38%,#d8ad87 38% 39%,#e5c8a6 39% 100%);
  }
  .arrival-stage::before{
    left:0;right:0;bottom:0;height:61%;
    border-top:8px solid #9b6749;
    background:
      repeating-linear-gradient(96deg,rgba(83,48,27,.11) 0 2px,transparent 2px 48px),
      repeating-linear-gradient(5deg,rgba(255,255,255,.06) 0 1px,transparent 1px 55px),
      linear-gradient(180deg,#e5c4a1,#c88f67);
    box-shadow:inset 0 30px 45px rgba(86,47,25,.13);
  }
  .arrival-house{
    left:50%;top:22px;bottom:auto;
    width:204px;height:205px;
    margin-left:-102px;
    transform:perspective(720px) rotateX(2deg) rotateY(-2deg);
    transform-origin:center top;
  }
  .arrival-peek{
    left:50%;top:164px;bottom:auto;
    width:126px;height:112px;
    margin-left:-63px;
  }
  .arrival-stage.playing .arrival-peek{
    animation:peekDown 1.75s cubic-bezier(.22,.75,.28,1) both;
  }
  .arrival-stage.playing .arrival-peek svg{
    animation:peekLook 1.75s ease-in-out both;
  }
  .arrival-pet-wrap{
    left:50%;top:112px;bottom:auto;
    width:242px;height:244px;
    margin-left:-121px;
    transform-origin:50% 100%;
  }
  .arrival-stage.playing .arrival-pet-wrap{
    animation:walkDownCute 3.08s cubic-bezier(.18,.72,.22,1) 1.5s forwards;
  }
  .arrival-path{
    left:50%;right:auto;top:225px;bottom:61px;
    width:236px;height:auto;
    margin-left:-118px;
    border:2px dashed rgba(111,70,48,.24);
    border-radius:48% 48% 36% 36%;
    background:
      radial-gradient(ellipse at 50% 40%,rgba(255,249,229,.78),rgba(255,220,176,.33) 51%,transparent 76%),
      repeating-linear-gradient(0deg,rgba(111,72,48,.09) 0 4px,transparent 4px 34px),
      repeating-linear-gradient(90deg,rgba(255,255,255,.075) 0 2px,transparent 2px 28px);
    box-shadow:inset 0 0 28px rgba(102,57,32,.09),0 7px 11px rgba(102,57,32,.09);
  }
  .arrival-path::before{
    content:"🐾\A🐾\A🐾";
    left:50%;top:12%;
    width:auto;
    white-space:pre;
    text-align:center;
    line-height:1.55;
    letter-spacing:0;
    font-size:15px;
    transform:translateX(-50%) rotate(5deg);
  }
  .arrival-path::after{
    left:50%;top:auto;bottom:12%;width:78%;height:24px;
    transform:translateX(-50%);
  }
  .arrival-bowl{right:8%;bottom:47px}
  .arrival-plant{right:7%;bottom:91px}
  .arrival-copy{bottom:22px}
}

@keyframes peekDown{
  0%{opacity:0;transform:translateY(-55px) scale(.54)}
  10%{opacity:1}
  24%{opacity:1;transform:translateY(-8px) scale(.8) rotate(0)}
  34%{transform:translateY(13px) scale(.98) rotate(-2deg)}
  46%{transform:translateY(-22px) scale(.72) rotate(1deg)}
  59%{opacity:1;transform:translateY(10px) scale(1) rotate(-2deg)}
  72%{transform:translateY(-17px) scale(.8) rotate(1deg)}
  88%{opacity:1;transform:translateY(8px) scale(.94) rotate(-1deg)}
  100%{opacity:0;transform:translateY(-52px) scale(.5) rotate(0)}
}

@keyframes walkDownCute{
  0%{top:11%;opacity:0;transform:translateY(-30px) scale(.2) rotate(-1deg)}
  9%{opacity:1}
  27%{top:18%;transform:translateY(-6px) scale(.36) rotate(1deg)}
  48%{top:30%;transform:translateY(0) scale(.58) rotate(-1deg)}
  69%{top:43%;transform:translateY(-5px) scale(.79) rotate(1deg)}
  87%{top:54%;transform:translateY(1px) scale(.97) rotate(-.5deg)}
  100%{top:60%;opacity:1;transform:translateY(-7px) scale(1.08) rotate(0)}
}

/* realistic-arrival.css */
/* Full-screen realistic pet arrival and full adoption profile */
.real-arrival-overlay{
  position:fixed;inset:0;z-index:310;display:grid;place-items:center;padding:18px;
  background:rgba(42,29,48,.72);backdrop-filter:blur(8px);
  opacity:0;visibility:hidden;transition:opacity .24s ease,visibility .24s ease;
}
.real-arrival-overlay.show{opacity:1;visibility:visible}
.real-arrival-overlay[hidden]{display:none}
.real-arrival-scene{
  position:relative;width:min(540px,94vw);height:min(820px,94vh);min-height:580px;overflow:hidden;
  border:5px solid #493c58;border-radius:28px;background:radial-gradient(ellipse at 70% 12%,rgba(255,249,215,.98) 0 6%,rgba(255,230,178,.5) 7% 21%,transparent 40%),linear-gradient(180deg,#f1e6db 0 38%,#c58d66 38% 39%,#dfba93 39% 100%);
  box-shadow:0 14px 0 rgba(52,34,58,.18),0 35px 90px rgba(21,13,30,.42);
}
.real-arrival-scene::before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,rgba(117,80,58,.05) 0 2px,transparent 2px 38px),linear-gradient(90deg,rgba(255,255,255,.13),transparent 42%)}
.real-arrival-scene::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 75px rgba(80,44,29,.16)}
.real-house{position:absolute;z-index:7;left:50%;top:24px;width:210px;height:206px;margin-left:-105px;border:5px solid #705044;border-radius:34px 34px 20px 20px;background:repeating-linear-gradient(90deg,rgba(109,67,43,.09) 0 2px,transparent 2px 22px),linear-gradient(150deg,#e5c196,#ba825e);box-shadow:0 19px 18px rgba(72,39,24,.25),inset 0 0 0 6px rgba(255,248,228,.24),inset 0 -20px 25px rgba(91,53,35,.16);transform:perspective(700px) rotateX(3deg)}
.real-house::before{content:"";position:absolute;inset:11px;border:2px solid rgba(103,65,47,.35);border-radius:25px 25px 14px 14px;background:repeating-linear-gradient(90deg,transparent 0 25px,rgba(112,71,46,.06) 25px 27px)}
.real-roof{position:absolute;left:-18px;right:-18px;top:-55px;height:67px;border:5px solid #705044;border-radius:13px 13px 5px 5px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.16) 0 3px,transparent 3px 28px),linear-gradient(180deg,#cf8580,#9d6269);clip-path:polygon(50% 0,100% 100%,0 100%);filter:drop-shadow(0 7px 0 rgba(73,41,29,.15))}
.real-window{position:absolute;z-index:2;right:18px;top:57px;width:58px;height:54px;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:5px;border:4px solid #69483e;border-radius:13px;background:#9b7059}
.real-window i{display:block;border-radius:4px;background:linear-gradient(145deg,#d4f4ff,#8bcbe7);box-shadow:inset 0 0 10px rgba(73,60,88,.16)}
.real-door{position:absolute;z-index:5;left:50%;bottom:0;width:108px;height:124px;margin-left:-54px;border:5px solid #654a43;border-bottom:0;border-radius:68px 68px 0 0;background:radial-gradient(ellipse at 50% 94%,#140e19 0 45%,#25182b 46% 73%,#0d0810 79% 100%);box-shadow:inset 0 18px 25px rgba(0,0,0,.83),0 0 0 5px rgba(255,239,211,.26)}
.real-house-sign{position:absolute;z-index:6;left:50%;top:24px;transform:translateX(-50%) rotate(-2deg);padding:5px 12px;border:3px solid #69483e;border-radius:999px;background:#fff8e8;color:#584050;font-size:10px;font-weight:900;box-shadow:0 4px 0 rgba(81,50,38,.2);white-space:nowrap}
.real-cushion{position:absolute;z-index:6;left:50%;bottom:2px;width:90px;height:28px;margin-left:-45px;border:3px solid #6b4a45;border-radius:50%;background:repeating-linear-gradient(90deg,#ffd3df 0 12px,#f5b8c9 12px 24px);box-shadow:0 -4px 0 rgba(255,255,255,.3),0 5px 8px rgba(54,31,26,.24)}
.real-paw{position:absolute;z-index:6;left:15px;top:62px;width:34px;height:34px;display:grid;place-items:center;border:3px solid #69483e;border-radius:50%;background:#fff4d8;font-size:17px;transform:rotate(-9deg)}
.real-peek{position:absolute;z-index:10;left:50%;top:174px;width:145px;height:125px;margin-left:-72px;opacity:0;overflow:hidden;transform-origin:50% 100%;filter:drop-shadow(0 8px 7px rgba(65,37,27,.2))}
.real-peek img{display:block;width:100%;height:220px;object-fit:contain;object-position:center top;clip-path:inset(0 0 55% 0);image-rendering:auto}
.real-walk{position:absolute;z-index:9;left:50%;top:135px;width:210px;height:245px;margin-left:-105px;opacity:0;transform-origin:50% 100%;filter:drop-shadow(0 16px 10px rgba(65,37,27,.2))}
.real-walk img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom}
.real-pet-shadow{position:absolute;left:50%;bottom:3px;width:68%;height:19px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(ellipse,rgba(41,24,19,.42),rgba(41,24,19,.18) 48%,transparent 74%);filter:blur(3px);opacity:.58}
.real-path{position:absolute;z-index:2;left:50%;top:238px;bottom:55px;width:240px;margin-left:-120px;border:2px dashed rgba(111,70,48,.22);border-radius:48% 48% 34% 34%;background:radial-gradient(ellipse at 50% 43%,rgba(255,249,229,.72),rgba(255,220,176,.3) 51%,transparent 76%),repeating-linear-gradient(0deg,rgba(111,72,48,.08) 0 4px,transparent 4px 34px);box-shadow:inset 0 0 28px rgba(102,57,32,.08)}
.real-path::before{content:"🐾\A🐾\A🐾";position:absolute;left:50%;top:13%;width:auto;white-space:pre;text-align:center;line-height:1.58;font-size:15px;letter-spacing:0;transform:translateX(-50%) rotate(5deg);opacity:.34}
.real-caption{position:absolute;left:50%;bottom:20px;z-index:14;min-width:250px;transform:translateX(-50%);padding:12px 18px;border:4px solid #493c58;border-radius:16px;background:rgba(255,247,223,.96);text-align:center;box-shadow:0 7px 0 rgba(73,60,88,.15)}
.real-caption b{display:block;font-size:20px}.real-caption span{display:block;margin-top:3px;color:#806f89;font-size:11px}
.real-arrival-overlay.show .real-peek{animation:realPeek 1.75s cubic-bezier(.2,.75,.25,1) both}
.real-arrival-overlay.show .real-walk{animation:realWalkDown 3.05s cubic-bezier(.18,.72,.22,1) 1.45s forwards}
.real-arrival-overlay.show .real-pet-shadow{animation:realShadow 3.05s ease-in-out 1.45s both}
@keyframes realPeek{0%{opacity:0;transform:translateY(-58px) scale(.6)}10%{opacity:1}24%{transform:translateY(-6px) scale(.84)}34%{transform:translateY(14px) scale(1)}46%{transform:translateY(-22px) scale(.7)}59%{transform:translateY(13px) scale(1)}74%{transform:translateY(-14px) scale(.82)}88%{opacity:1;transform:translateY(7px) scale(.94)}100%{opacity:0;transform:translateY(-50px) scale(.6)}}
@keyframes realWalkDown{0%{top:12%;opacity:0;transform:translateY(-25px) scale(.24)}9%{opacity:1}25%{top:19%;transform:translateY(-4px) scale(.4)}48%{top:31%;transform:translateY(0) scale(.64)}70%{top:44%;transform:translateY(-4px) scale(.96)}88%{top:55%;transform:translateY(2px) scale(1.35)}100%{top:60%;opacity:1;transform:translateY(-8px) scale(1.78)}}
@keyframes realShadow{from{opacity:.58;transform:translateX(-50%) scaleX(1)}to{opacity:.28;transform:translateX(-50%) scaleX(.86)}}
@media(max-width:720px){.real-arrival-scene{width:96vw;height:94vh;min-height:0;border-radius:20px}.real-house{top:18px;width:178px;height:184px;margin-left:-89px}.real-roof{top:-49px;height:59px}.real-door{width:94px;height:110px;margin-left:-47px}.real-window{right:14px;top:50px;width:52px;height:48px}.real-paw{left:12px;top:57px;width:30px;height:30px;font-size:15px}.real-peek{top:153px;width:126px;height:110px;margin-left:-63px}.real-walk{top:120px;width:185px;height:218px;margin-left:-92px}.real-path{top:210px;width:205px;margin-left:-102px}.real-caption{min-width:210px;bottom:16px}}

/* full-profile.css */
.pet-full-overlay{position:fixed;inset:0;z-index:260;display:grid;place-items:center;padding:18px;background:rgba(52,34,58,.72);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:opacity .28s ease,visibility .28s ease}.pet-full-overlay.show{opacity:1;visibility:visible}.pet-full-overlay[hidden]{display:none}.pet-full-shell{position:relative;width:min(1240px,96vw);height:min(850px,94vh);overflow:hidden;display:grid;grid-template-columns:1.08fr .92fr;border:4px solid #493c58;border-radius:30px;background:#fffaf3;box-shadow:0 18px 0 rgba(52,34,58,.18),0 40px 100px rgba(18,12,29,.42)}.pet-full-close{position:absolute;right:16px;top:15px;z-index:20;width:44px;height:44px;border:3px solid #493c58;border-radius:50%;background:#ffd2dc;color:#493c58;font-size:25px;font-weight:900;cursor:pointer;box-shadow:0 5px 0 rgba(73,60,88,.15)}.full-visual{position:relative;min-width:0;overflow:hidden;background:radial-gradient(ellipse at 50% 39%,rgba(255,246,211,.96),rgba(255,219,174,.58) 42%,transparent 70%),linear-gradient(150deg,#f6e7d3,#e7c4a0 62%,#d29e77);display:flex;align-items:flex-end;justify-content:center}.full-visual::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(117,80,58,.055) 0 2px,transparent 2px 46px),linear-gradient(0deg,rgba(100,61,43,.12),transparent 27%);box-shadow:inset 0 0 80px rgba(91,53,35,.12)}.full-visual::after{content:"🐾  🐾  🐾";position:absolute;left:8%;bottom:7%;color:rgba(108,70,50,.17);font-size:20px;letter-spacing:15px;transform:rotate(-7deg)}.full-shelf{position:absolute;left:5%;right:5%;top:5%;height:18px;border:4px solid #664a42;border-radius:6px;background:#c98f66;box-shadow:0 7px 0 rgba(82,49,34,.12)}.full-shelf::before{content:"";position:absolute;left:5%;right:5%;top:18px;height:105px;background:repeating-linear-gradient(90deg,#f3d4ae 0 48px,transparent 48px 62px),repeating-linear-gradient(90deg,#ffd8e3 0 38px,transparent 38px 54px);opacity:.82}.full-media-bed{position:relative;z-index:3;width:min(520px,84%);height:80%;display:flex;align-items:flex-end;justify-content:center;padding-bottom:5%}.full-media-bed::after{content:"";position:absolute;left:50%;bottom:2.5%;width:70%;height:38px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(ellipse,rgba(50,30,22,.38),transparent 72%);filter:blur(5px)}.full-media-bed img,.full-media-bed video{position:relative;z-index:3;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 16px 13px rgba(64,36,26,.21));animation:fullPetBreath 3.8s ease-in-out infinite}.full-media-bed video{object-fit:cover;border:5px solid #493c58;border-radius:28px;background:#fff;animation:none}.full-pet-badge{position:absolute;z-index:8;left:6%;top:13%;padding:9px 13px;border:3px solid #493c58;border-radius:999px;background:#fff7df;font-size:11px;font-weight:900;box-shadow:0 5px 0 rgba(73,60,88,.14)}.full-hearts{position:absolute;z-index:2;left:50%;top:19%;transform:translateX(-50%);font-size:28px;letter-spacing:20px;opacity:.42;animation:heartFloat 2.8s ease-in-out infinite}.full-info{min-width:0;overflow:auto;padding:30px 28px 26px;background:rgba(255,253,248,.97);display:flex;flex-direction:column;gap:11px}.full-topline{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-right:48px}.full-topline>span:first-child{display:flex;gap:5px;align-items:center}.full-status,.full-code{padding:5px 8px;border:2px solid #493c58;border-radius:999px;font-size:9px;font-weight:900}.full-status{background:#dff9f2}.full-code{background:#fff;color:#806f89}.full-info h2{margin:4px 0 0;font-size:38px;line-height:1.12}.full-info .full-personality{margin:0;color:#a05a75;font-size:13px;font-weight:900}.full-tags{display:flex;gap:6px;flex-wrap:wrap;margin:5px 0}.full-tags span{padding:5px 8px;border:2px solid #493c58;border-radius:999px;background:#fff0b8;font-size:9px;font-weight:900}.full-desc{margin:3px 0;padding:13px;border:2px dashed rgba(73,60,88,.17);border-radius:14px;background:#fff;color:#806f89;font-size:12px;line-height:1.75;min-height:82px}.full-audio{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:10px;padding:11px;border:2px solid #493c58;border-radius:16px;background:#eafbf7}.full-audio button{width:44px;height:44px;border:2px solid #493c58;border-radius:50%;background:#ffd874;font-weight:900;font-size:16px}.full-audio b{display:block;font-size:11px}.full-audio-time{font-size:10px;color:#806f89}.full-audio .wave{display:flex;align-items:center;gap:3px;height:16px;margin-top:4px}.full-audio .wave i{display:block;width:3px;height:7px;border-radius:4px;background:#69cdbb}.full-audio .wave.playing i{animation:wave .65s ease-in-out infinite alternate}.full-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.full-services div{padding:9px;border:2px solid #493c58;border-radius:12px;background:#fff;text-align:center}.full-services span{display:block;color:#806f89;font-size:9px}.full-services b{display:block;margin-top:3px;font-size:11px;line-height:1.35;overflow-wrap:anywhere;word-break:break-word}.full-adopt{width:100%;border:3px solid #493c58;border-radius:16px;padding:15px;background:#ffd874;color:#493c58;font-size:16px;font-weight:900;box-shadow:0 7px 0 rgba(73,60,88,.15);cursor:pointer}.full-owner-actions{display:flex;gap:8px}.full-owner-actions button{flex:1;border:2px solid #493c58;border-radius:12px;background:#fff;padding:9px;color:#493c58;font-weight:900;cursor:pointer}.full-owner-actions button:last-child{background:#ffd2dc}.customer-mode .full-owner-actions{display:none!important}#successModal{z-index:420!important}.qr-lightbox{z-index:500!important}@keyframes fullPetBreath{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-7px) scale(1.012)}}@keyframes heartFloat{0%,100%{transform:translate(-50%,0);opacity:.35}50%{transform:translate(-50%,-10px);opacity:.6}}@media(max-width:900px){.pet-full-shell{grid-template-columns:1fr;overflow:auto}.full-visual{min-height:43vh}.full-media-bed{height:94%;width:78%}.full-info{overflow:visible;padding:22px}.full-info h2{font-size:30px}.full-services{grid-template-columns:1fr 1fr}}@media(max-width:720px){.pet-full-overlay{padding:0}.pet-full-shell{width:100vw;height:100vh;border:0;border-radius:0}.full-visual{min-height:39vh}.full-media-bed{width:86%;height:98%;padding-bottom:2%}.full-pet-badge{left:4%;top:4%;font-size:9px}.full-info{padding:18px 15px 26px}.full-topline{padding-right:45px}.full-info h2{font-size:27px}}

.service-grid.rank-hidden{grid-template-columns:repeat(2,minmax(0,1fr))}.full-services.rank-hidden{grid-template-columns:repeat(2,minmax(0,1fr))}

/* mobile-customer.css */
/* 宠物头像强制居中 */
@media(max-width:720px){.customer-mode .brand h1{font-size:16px;white-space:nowrap;letter-spacing:-.02em}.customer-mode .pet-bed img{left:50%!important;right:auto!important;margin:0 auto!important;transform:translateX(-50%)!important;object-position:center center!important}.customer-mode .full-media-bed img{display:block;margin:0 auto!important;object-position:center center!important}.customer-mode .portrait-wrap img{margin:0 auto!important;object-position:center center!important}}

/* Mobile customer experience */
@media(max-width:720px){
  html{background:#fff5df}
  body{-webkit-tap-highlight-color:transparent}
  .app-shell{width:calc(100% - 10px);padding:6px 0 0}
  .cloud{display:none}
  .topbar{padding:9px 10px;border-width:2px;border-radius:18px;gap:8px;position:sticky;top:4px;z-index:30;background:rgba(255,253,248,.97)}
  .brand{gap:8px}.brand-mark{width:43px;height:43px;border-width:2px;border-radius:14px;font-size:22px}.brand h1{font-size:19px;margin:0}.eyebrow{font-size:8px;letter-spacing:.10em}.brand-sub{display:none}.top-actions{gap:6px}.owner-btn{font-size:10px;padding:7px 9px}
  .shop-layout{gap:10px;margin-top:10px}
  .shelf-panel{border-width:2px;border-radius:18px;padding:10px}
  .section-head h2{font-size:18px;margin-top:2px}.swipe-tip{font-size:9px;margin-top:3px}
  .pet-filter{top:0;margin:8px -2px 7px;padding:6px;border-width:2px;border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 5px 0 rgba(73,60,88,.08)}
  .pet-filter button{min-width:72px;padding:7px 9px;font-size:10px;border-width:2px}
  .pet-mode-filter,.pet-label-filter{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:6px;margin:6px -2px;padding:2px 2px 7px;scrollbar-width:none}.pet-mode-filter::-webkit-scrollbar,.pet-label-filter::-webkit-scrollbar,.pet-grid::-webkit-scrollbar{display:none}
  .mode-chip,.label-chip{flex:0 0 auto;padding:6px 10px;font-size:9px;white-space:nowrap}
  .shelf-note{font-size:10px;line-height:1.5;margin:6px 0 5px}
  .pet-grid{gap:9px;padding:4px 1px 10px;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}
  .pet-card{flex:0 0 154px;width:154px;min-height:292px;border-width:2px;border-radius:18px;padding:0 7px 8px}.kennel-scene{height:174px;margin-top:31px}.pet-bed img{width:118px;height:142px}.pet-nameplate{padding:6px}.pet-nameplate h3{font-size:14px}.kennel-sign{font-size:7px;padding:3px 6px;max-width:145px;overflow:hidden;text-overflow:ellipsis}
  .shelf-bottom{font-size:9px;margin-top:9px;padding-top:8px}
  .profile-panel{border-width:2px;border-radius:18px;padding:10px}
  .full-visual{min-height:42dvh;max-height:44dvh}.full-media-bed{width:94%;height:98%;padding-bottom:1%}.full-media-bed img,.full-media-bed video{filter:drop-shadow(0 9px 8px rgba(64,36,26,.18))}.full-media-bed video{border-width:4px;border-radius:20px}
  .full-pet-badge{left:10px;top:10px;padding:6px 9px;font-size:8px;border-width:2px;box-shadow:0 3px 0 rgba(73,60,88,.12)}
  .full-hearts{top:12%;font-size:22px}.full-info{padding:14px 13px calc(92px + env(safe-area-inset-bottom));gap:9px}.full-topline{padding-right:42px}.full-info h2{font-size:26px}.full-info .full-personality{font-size:12px}
  .full-tags{gap:5px;margin:3px 0}.full-tags span{font-size:8px;padding:4px 7px}.full-desc{font-size:11px;line-height:1.65;padding:11px;min-height:0}
  .full-audio{grid-template-columns:40px 1fr auto;gap:8px;padding:9px}.full-audio button{width:40px;height:40px}.full-audio b{font-size:10px}
  .full-services{grid-template-columns:1fr 1fr;gap:6px}.full-services div{padding:8px 5px}.full-services b{font-size:10px}
  .full-adopt{position:sticky;bottom:calc(7px + env(safe-area-inset-bottom));z-index:30;padding:14px;border-width:3px;margin-top:2px;box-shadow:0 0 0 8px rgba(255,253,248,.95),0 7px 0 rgba(73,60,88,.15)}
  .pet-full-close{right:10px;top:10px;width:40px;height:40px;font-size:23px;background:rgba(255,210,220,.96)}
  .real-arrival-scene{width:100vw;height:100dvh;border:0;border-radius:0}.real-caption{bottom:calc(16px + env(safe-area-inset-bottom));width:min(280px,82vw);min-width:0}.real-caption b{font-size:18px}
  .modal-backdrop{padding:8px}.editor-card,.success-card{max-height:calc(100dvh - 16px);border-width:3px;border-radius:18px;padding:16px}.receipt{gap:5px}.service-contact{grid-template-columns:100px 1fr;gap:10px}.service-contact img{width:100px;height:100px}
}
/* Customer mobile: vertical pet browsing; details open only after selection */
@media(max-width:720px){
  .customer-mode .profile-panel{display:none!important}
  .customer-mode .shelf-panel{min-height:calc(100dvh - 86px);padding-bottom:18px}
  .customer-mode .pet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;overflow:visible;padding:4px 1px 18px;scroll-snap-type:none}
  .customer-mode .pet-card{width:auto;flex:none;min-width:0;min-height:286px;scroll-snap-align:none}
  .customer-mode .kennel-scene{height:166px;margin-left:2px;margin-right:2px}
  .customer-mode .pet-bed img{width:112px;height:136px}
  .customer-mode .pet-nameplate h3{font-size:14px}.customer-mode .pet-nameplate p,.customer-mode .pet-nameplate .price{font-size:9px}
  .customer-mode .pet-label-mini span{font-size:7px}.customer-mode .shelf-bottom{display:none}
  .customer-mode .full-audio{outline:3px solid rgba(255,216,116,.65);outline-offset:2px}
  .customer-mode .full-audio button{width:50px;height:50px;font-size:19px;background:#ffd874;box-shadow:0 0 0 6px rgba(255,216,116,.24)}
  .customer-mode .full-audio b{font-size:12px}
}

.real-audio-fallback{position:absolute;left:50%;bottom:125px;z-index:25;transform:translateX(-50%);border:3px solid #493c58;border-radius:999px;background:#ffd874;color:#493c58;padding:11px 18px;font-weight:900;font-size:13px;box-shadow:0 7px 0 rgba(73,60,88,.18);animation:audioPulse 1.3s ease-in-out infinite}
.real-audio-fallback[hidden]{display:none}@keyframes audioPulse{50%{transform:translateX(-50%) scale(1.06)}}

/* Mobile performance */
@media(max-width:720px){
  .customer-mode .pet-card{content-visibility:auto;contain:layout paint style;contain-intrinsic-size:286px;box-shadow:0 3px 0 rgba(73,60,88,.10)}
  .customer-mode .pet-card img{backface-visibility:hidden;transform:translateZ(0)}
  .customer-mode .real-arrival-overlay,.customer-mode .pet-full-overlay{backdrop-filter:none!important}
  .customer-mode .real-walk,.customer-mode .real-peek,.customer-mode .full-media-bed img{will-change:transform,opacity}
  .customer-mode .real-walk img,.customer-mode .real-peek img{filter:none!important}
  .customer-mode .full-media-bed img{filter:none!important;animation:none!important;transform:none!important;will-change:auto!important}
  .customer-mode .full-visual::before{box-shadow:none}
  .customer-mode .full-adopt{box-shadow:0 0 0 6px rgba(255,253,248,.94),0 5px 0 rgba(73,60,88,.14)}
}

.customer-mode .mobile-native-audio{display:flex;flex-direction:column;gap:7px;padding:10px;border:3px solid #493c58;border-radius:15px;background:#fff3c9;box-shadow:0 5px 0 rgba(73,60,88,.12)}.customer-mode .mobile-native-audio button{border:2px solid #493c58;border-radius:12px;padding:12px;background:#ffd874;color:#493c58;font-size:14px;font-weight:900}.customer-mode .mobile-native-audio audio{width:100%;height:38px}.customer-mode .mobile-native-audio span{text-align:center;color:#806f89;font-size:9px}.customer-mode .full-audio{display:none!important}.customer-mode .pet-card,.customer-mode .mode-chip,.customer-mode .label-chip{transition:none!important}.customer-mode .pet-grid{scroll-behavior:auto}.customer-mode .full-media-bed img{animation:none!important}.mobile-native-audio{display:none}
.customer-mode .load-more-pets{grid-column:1/-1;width:100%;margin:6px 0 4px;padding:12px;border:3px solid #493c58;border-radius:14px;background:#ffd874;color:#493c58;font-size:13px;font-weight:900;box-shadow:0 5px 0 rgba(73,60,88,.13)}.customer-mode .load-more-pets span{display:block;margin-top:2px;color:#806f89;font-size:9px}

.customer-mode .brand h1{font-size:20px}.customer-mode .brand .eyebrow{font-size:8px;padding:2px 7px}

@media(max-width:720px){
  .topbar{flex-wrap:wrap}
  .top-actions{width:100%;justify-content:space-between}
  .shop-tag{font-size:9px;padding:6px 8px}
  .random-adopt-btn,.owner-btn{font-size:9px;padding:7px 8px}
  .random-adopt-btn{flex:1;max-width:130px}
}

@media(max-width:720px){
  .finder-cat{right:10px;bottom:calc(10px + env(safe-area-inset-bottom));width:102px;height:102px;z-index:210;padding:4px}
  .finder-tooltip{right:auto;left:50%;bottom:96px;transform:translateX(-50%) translateY(5px);font-size:9px;padding:6px 8px}
  .finder-cat:hover .finder-tooltip,.finder-cat:focus-visible .finder-tooltip{transform:translateX(-50%) translateY(0)}
  .finder-modal{padding:8px}.finder-card{padding:18px;border-width:3px;border-radius:20px}.finder-card h3{font-size:21px}.finder-card textarea{min-height:92px}.finder-mascot{font-size:36px}
}

@media(max-width:720px){
  .finder-cat{top:calc(92px + env(safe-area-inset-top));right:7px;bottom:auto;width:86px;height:86px;z-index:80;padding:3px;filter:none;box-shadow:0 6px 10px rgba(73,60,88,.20),0 0 0 2px rgba(73,60,88,.10)}
  .finder-cat img{animation:none!important;will-change:auto!important}
  .finder-cat::before,.finder-cat::after{animation:none!important;opacity:.55}
  .finder-tooltip{left:auto;right:74px;top:50%;bottom:auto;opacity:1;transform:translateY(-50%) scale(.96);font-size:9px;padding:6px 8px}
  .finder-cat:hover .finder-tooltip,.finder-cat:focus-visible .finder-tooltip{transform:translateY(-50%) scale(1)}
  .pet-grid{scroll-behavior:auto}
}

/* mobile-smoothness-pass2 */
@media (max-width:720px){
  .customer-mode .pet-card,.customer-mode .pet-filter,.customer-mode .mode-chip,.customer-mode .label-chip,.customer-mode .load-more-pets,.customer-mode .random-adopt-btn,.customer-mode .full-adopt,.customer-mode .full-audio button,.customer-mode .mobile-native-audio button,.customer-mode .pet-full-close,.customer-mode .finder-cat{touch-action:manipulation;user-select:none;-webkit-user-select:none}
  .customer-mode .pet-card img{pointer-events:none}
  .customer-mode .pet-grid{contain:layout style}
  .customer-mode .pet-full-overlay,.customer-mode .real-arrival-overlay,.customer-mode .finder-modal,.customer-mode .modal-backdrop{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .customer-mode .pet-card{overflow:hidden}
}

/* mobile-perf-pass3 : 去掉手机端最吃性能的三样东西 */
@media (max-width:720px){
  /* 吸顶栏的毛玻璃每滚一帧都要重算，手机端直接关掉（背景本来就 97% 不透明） */
  .topbar{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  /* 全屏固定纹理层会额外合成一次，5.5% 透明度几乎看不出来 */
  .paw-field{display:none}
  /* 主面板的超大模糊阴影（0 25px 55px）很贵，换成轻量阴影 */
  .shelf-panel,.profile-panel{box-shadow:0 6px 0 rgba(73,60,88,.10)}
  /* 弹窗滚动更跟手 */
  .catfood-card,.editor-card,.success-card{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  /* 转盘交给合成层，别再重绘 */
  .cat-music-disc{will-change:transform}
}

/* 小奇猫：可以拖着走 */
.finder-cat{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;will-change:transform}
.finder-cat.is-dragging{cursor:grabbing;opacity:.94}
.finder-cat.is-dragging img{animation-play-state:paused}
.finder-cat.is-dragging .finder-tooltip{opacity:0!important;transform:translateX(6px) scale(.96)!important}
.finder-cat.is-settling{transition:transform .18s cubic-bezier(.22,.61,.36,1)}
.finder-cat.is-positioned{right:auto;bottom:auto;top:auto}
.finder-cat img{-webkit-user-drag:none;user-drag:none;pointer-events:none}



/* mobile-smoothness-pass4 : 小奇猫苹果悬浮球吸附 + 更轻的合成层 */
@media (max-width:720px){
  .finder-cat{
    contain:layout style;
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
    will-change:auto;
    transform:translateZ(0);
  }
  .finder-cat img{filter:none!important}
  .finder-cat.is-dragging,
  .finder-cat.is-snapping{will-change:transform}
    .finder-modal{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    background:rgba(52,34,58,.74);
  }
  .pet-full-overlay,
  .real-arrival-overlay,
  .qr-lightbox{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .pet-full-overlay{background:rgba(52,34,58,.86)}
  .real-arrival-overlay{background:rgba(42,29,48,.86)}
  .qr-lightbox{background:rgba(45,32,52,.92)}
  .full-media-bed img,
  .full-media-bed video{filter:none!important;animation:none!important}
  .full-media-bed::after{filter:none!important;background:rgba(50,30,22,.22)}
  .full-hearts,.random-adopt-btn span,.empty-cat{animation:none!important}
  .pet-card{
    content-visibility:auto;
    contain:layout style;
    contain-intrinsic-size:154px 292px;
  }
  .pet-grid{contain:layout style}
  .pet-card:hover{transform:none}
  .pet-profile.reveal{animation:none!important}
}
@media (prefers-reduced-motion: reduce){
  .finder-cat.is-snapping{transition:none!important}
  .pet-card,.full-media-bed img,.full-hearts{animation:none!important}
}


/* mobile-smoothness-pass5 : 防止手机输入框自动放大 */
@media (max-width:720px){
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  input:not([type="range"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),
  textarea,
  select{
    font-size:16px!important;
  }
  .finder-card textarea{
    min-height:96px;
    padding:12px;
    line-height:1.5;
    border-radius:15px;
    resize:none;
  }
  .catfood-input{
    font-size:16px!important;
    padding:10px 12px;
  }
  .finder-modal{
    align-items:flex-start;
    padding:calc(14px + env(safe-area-inset-top)) 8px calc(14px + env(safe-area-inset-bottom));
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }
  .finder-card{
    margin:0 auto;
  }
  .finder-card h3{font-size:20px}
  .finder-copy{font-size:12px}
  .finder-submit{font-size:15px}
}

/* cat-music.css */
/* ========== 喵喵猫咪电台 · 本地店长版 ========== */
.cat-music{position:relative;display:inline-flex;align-items:center;font-family:inherit}

/* 迷你唱片机：底座 + 转盘 + 唱针 */
.cat-music-face{position:relative;width:50px;height:50px;padding:0;border:2px solid var(--ink,#493c58);border-radius:50%;
  background:radial-gradient(circle at 50% 50%,#f7f2ee 0 60%,#ece3e7 100%);
  cursor:pointer;display:grid;place-items:center;box-shadow:0 4px 0 rgba(73,60,88,.13);
  transition:transform .18s ease,box-shadow .18s ease}
.cat-music-face:hover{transform:translateY(-2px) rotate(-1deg);box-shadow:0 6px 0 rgba(73,60,88,.13)}
.cat-music-face:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(73,60,88,.13)}
.cat-music-face:focus-visible{outline:3px solid #a9d5c7;outline-offset:3px}

/* 会转的唱片 */
.cat-music-disc{position:absolute;inset:4px;border-radius:50%;overflow:hidden;pointer-events:none;
  background:conic-gradient(from 0deg,
    #f0dee5 0deg,#f2ebd9 45deg,#e0ebe7 90deg,#e3e9f1 135deg,
    #e8e4f0 180deg,#f0e2e8 225deg,#f0ecdc 270deg,#e1ebe7 315deg,#f0dee5 360deg);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.42),inset 0 0 0 5px rgba(73,60,88,.06);
  animation:catMusicSpin 12s linear infinite}
/* 放射状唱片纹 + 一道扫光：转起来一眼就看得到 */
.cat-music-disc::before{content:'';position:absolute;inset:0;border-radius:50%;
  background:
    linear-gradient(118deg,rgba(255,255,255,0) 36%,rgba(255,255,255,.42) 44%,rgba(255,255,255,0) 52%),
    repeating-conic-gradient(from 0deg,
      rgba(73,60,88,.22) 0deg 2.6deg,
      rgba(255,255,255,.34) 2.6deg 5.2deg,
      rgba(255,255,255,0) 5.2deg 30deg)}
/* 盘边的小贴纸，跟着唱片一起绕圈 */
.cat-music-disc::after{content:'';position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;
  border-radius:50%;background:#dfb0c3;border:1.5px solid rgba(73,60,88,.36);box-shadow:0 0 0 2px rgba(255,255,255,.45);
  transform:translate(-12px,11px)}

/* 播放时只是稍微快一点，依旧很慢 */
.cat-music.is-playing .cat-music-disc{animation-duration:9s}
.cat-music.is-playing .cat-music-face{box-shadow:0 4px 0 rgba(73,60,88,.13),0 0 0 4px rgba(198,226,217,.45)}
@keyframes catMusicSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}

/* 唱针：固定不动，唱片在下面转，才有"唱片机"的感觉 */
.cat-music-arm{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;overflow:visible;
  transform-origin:39px 11px}
.cat-music.is-playing .cat-music-arm{animation:catMusicArm 3.6s ease-in-out infinite}
@keyframes catMusicArm{0%,100%{transform:rotate(0deg)}50%{transform:rotate(-4deg)}}

.cat-music-cat{position:relative;z-index:2;width:29px;height:29px;display:block;overflow:visible}
.catMusicEye{transform-box:fill-box;transform-origin:center;animation:catMusicBlink 8s ease-in-out infinite}
@keyframes catMusicBlink{0%,90%,100%{transform:scaleY(1)}93%{transform:scaleY(.08)}96%{transform:scaleY(1)}}

.cat-music-note{position:absolute;right:-5px;top:-8px;font-size:13px;line-height:1;color:#c3a0b4;z-index:5;
  text-shadow:0 1px 0 #fff,0 0 6px rgba(255,255,255,.95);pointer-events:none}
.cat-music-note-2{right:auto;left:-7px;top:-2px;font-size:10px;color:#a9bede;opacity:0}
.cat-music.is-playing .cat-music-note{animation:catMusicNote 2.4s ease-in-out infinite}
.cat-music.is-playing .cat-music-note-2{animation:catMusicNote2 3s ease-in-out infinite}
@keyframes catMusicNote{0%,100%{transform:translateY(0) rotate(-6deg);opacity:.7}50%{transform:translateY(-5px) rotate(7deg);opacity:1}}
@keyframes catMusicNote2{0%{transform:translateY(3px);opacity:0}35%{opacity:.75}100%{transform:translateY(-10px);opacity:0}}

/* 展开面板 */
.cat-music-panel{position:absolute;top:62px;right:0;width:306px;z-index:60;padding:13px;
  border:3px solid var(--ink,#493c58);border-radius:20px;background:#fffdf8;
  box-shadow:0 10px 0 rgba(73,60,88,.13),0 20px 36px rgba(73,60,88,.20);
  animation:catMusicPop .18s ease-out}
.cat-music-panel[hidden]{display:none}
@keyframes catMusicPop{from{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:none}}
.cat-music-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.cat-music-head b{font-size:13px;color:var(--ink,#493c58)}
.cat-music-close{width:24px;height:24px;padding:0;border:2px solid var(--ink,#493c58);border-radius:50%;
  background:#f5ecf1;color:var(--ink,#493c58);font-size:14px;font-weight:900;line-height:1;cursor:pointer}
.cat-music-close:hover{background:#e9d9e2}

.cat-music-now{border:2px dashed #e3c9dd;border-radius:14px;background:#fff8fb;padding:8px 10px;margin-bottom:9px}
.cat-music-label{display:block;font-size:8px;letter-spacing:.12em;color:#a98fb5;font-weight:900;margin-bottom:2px}
.cat-music-now b{display:block;font-size:12px;color:var(--ink,#493c58);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.cat-music-bar{position:relative;height:9px;border:2px solid var(--ink,#493c58);border-radius:999px;background:#fffaf5;cursor:pointer;overflow:hidden}
.cat-music-bar i{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#c3e2d8,#f0e4c4,#eccdd9);transition:width .12s linear}
.cat-music-time{display:flex;justify-content:space-between;font-size:9px;color:#9b88a8;font-weight:900;margin:4px 2px 9px}

.cat-music-ctrl{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:9px}
.cat-music-ctrl button{width:34px;height:34px;padding:0;border:2px solid var(--ink,#493c58);border-radius:12px;
  background:#fff;color:var(--ink,#493c58);font-size:13px;font-weight:900;cursor:pointer;box-shadow:0 3px 0 rgba(73,60,88,.13);
  transition:transform .12s ease}
.cat-music-ctrl button:hover{transform:translateY(-1px)}
.cat-music-ctrl button:active{transform:translateY(1px);box-shadow:0 1px 0 rgba(73,60,88,.16)}
.cat-music-ctrl .cat-music-play{width:44px;height:44px;border-radius:50%;font-size:16px;background:linear-gradient(135deg,#f6e8c9,#f4dde8)}
.cat-music-ctrl .is-on{background:linear-gradient(135deg,#e4f2ee,#d8ece5)}
.cat-music-ctrl .is-loop-one{background:linear-gradient(135deg,#ebe7f5,#e0d9f0)}

.cat-music-vol{display:grid;grid-template-columns:20px 1fr;align-items:center;gap:6px;margin-bottom:10px}
.cat-music-vol span{font-size:12px;text-align:center}
.cat-music-vol input[type=range]{-webkit-appearance:none;appearance:none;height:8px;border:2px solid var(--ink,#493c58);
  border-radius:999px;background:#fff;outline:none;cursor:pointer}
.cat-music-vol input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border:2px solid var(--ink,#493c58);
  border-radius:50%;background:#ecc4d4;cursor:pointer}
.cat-music-vol input[type=range]::-moz-range-thumb{width:14px;height:14px;border:2px solid var(--ink,#493c58);
  border-radius:50%;background:#ecc4d4;cursor:pointer}

.cat-music-list-wrap{border:2px solid #eee4ef;border-radius:14px;background:#fffbf7;padding:7px;margin-bottom:9px}
.cat-music-list-head{display:flex;justify-content:space-between;font-size:9px;font-weight:900;color:#a98fb5;margin:1px 3px 6px}
.cat-music-list{list-style:none;margin:0;padding:0;max-height:150px;overflow-y:auto}
.cat-music-list li{display:flex;align-items:center;gap:6px;padding:5px 6px;border-radius:10px;cursor:pointer;font-size:11px;
  color:var(--ink,#493c58);font-weight:800}
.cat-music-list li:hover{background:#fdeff5}
.cat-music-list li.is-active{background:#fff5d9;box-shadow:inset 0 0 0 2px #f0dfae}
.cat-music-list li .cat-music-dot{width:14px;flex:0 0 14px;text-align:center;font-size:10px}
.cat-music-list li .cat-music-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cat-music-list li .cat-music-del{width:20px;height:20px;flex:0 0 20px;padding:0;border:2px solid #e6d2e0;border-radius:50%;
  background:#fff;font-size:10px;line-height:1;cursor:pointer;color:#b98aa2}
.cat-music-list li .cat-music-del:hover{background:#fbdce8;border-color:#cf9fb4}
.cat-music-empty{padding:10px;text-align:center;font-size:10px;color:#b5a3bf;font-weight:800}

.cat-music-add{width:100%;padding:9px;border:2px solid var(--ink,#493c58);border-radius:13px;
  background:linear-gradient(135deg,#f2dce5,#f4ecdc 52%,#e2f0ec);
  color:var(--ink,#493c58);font-size:12px;font-weight:900;cursor:pointer;box-shadow:0 4px 0 rgba(73,60,88,.14)}
.cat-music-add:hover{filter:brightness(1.03)}
.cat-music-add:active{transform:translateY(1px);box-shadow:0 2px 0 rgba(73,60,88,.16)}
.cat-music-tip{margin:8px 2px 0;font-size:9px;line-height:1.5;color:#b5a3bf;font-weight:800;text-align:center}

/* 把音乐拖到唱片上 */
.cat-music.is-dropping .cat-music-face{transform:scale(1.12);box-shadow:0 0 0 6px rgba(201,246,232,.75),0 6px 0 rgba(73,60,88,.18)}

/* 展开面板要盖在右侧宠物详情卡上面（仅桌面端） */
@media (min-width:721px){
  .topbar{position:relative;z-index:50}
  .cat-music-panel{max-height:calc(100vh - 150px);overflow-y:auto}
}

/* 手机端：面板不要跑出屏幕 */
@media (max-width:720px){
  .cat-music-panel{left:0;right:auto;width:min(306px,calc(100vw - 24px));max-height:min(72vh,470px);overflow-y:auto}
}

/* 系统开启"减少动态效果"就不转 */
@media (prefers-reduced-motion:reduce){
  .cat-music-disc,.cat-music-arm,.catMusicEye,.cat-music-note,.cat-music-note-2{animation:none}
}

/* 没有喜欢的歌？去网易云翻翻 */
.cat-music-actions{display:flex;flex-direction:column;gap:7px;margin-top:2px}
.cat-music-actions .cat-music-add{flex:1 1 auto;margin:0}
.cat-music-netease{display:flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 11px;border:2px solid var(--ink,#493c58);
  border-radius:13px;background:#fff;color:var(--ink,#493c58);font-size:11px;font-weight:900;text-decoration:none;
  white-space:nowrap;box-shadow:0 4px 0 rgba(73,60,88,.14);cursor:pointer}
.cat-music-netease img{width:18px;height:18px;display:block;border-radius:50%;pointer-events:none}
.cat-music-netease:hover{background:#ffeceb;box-shadow:0 6px 0 rgba(73,60,88,.14);transform:translateY(-1px)}
.cat-music-netease:active{transform:translateY(1px);box-shadow:0 2px 0 rgba(73,60,88,.16)}

/* 手机端加载歌曲时，进度条来回扫描，避免看起来没反应 */
.cat-music.is-loading .cat-music-bar i{animation:catMusicLoading 1.1s ease-in-out infinite}
@keyframes catMusicLoading{0%,100%{width:18%}50%{width:72%}}
/* catfood.css */
/* ========== 🐟 猫粮小铺 · 本地试用版 ========== */
.catfood-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:2px solid var(--ink,#493c58);
  border-radius:999px;background:linear-gradient(135deg,#fff2c9,#ffe3ee);color:var(--ink,#493c58);
  font-size:11px;font-weight:900;cursor:pointer;white-space:nowrap;
  box-shadow:0 4px 0 rgba(73,60,88,.13);transition:transform .18s ease,box-shadow .18s ease}
.catfood-pill:hover{transform:translateY(-2px) rotate(-1deg);box-shadow:0 6px 0 rgba(73,60,88,.13)}
.catfood-pill:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(73,60,88,.13)}
.catfood-pill .catfood-icon{font-size:14px;line-height:1}
.catfood-pill b{font-size:12px}
/* 可领取时的呼吸光环：只用 transform + opacity，不再每帧重绘 box-shadow */
.catfood-pill{position:relative}
.catfood-pill.is-ready::after{content:'';position:absolute;inset:-2px;border-radius:999px;border:2px solid #ffd874;
  pointer-events:none;animation:catFoodRing 2.4s ease-out infinite}
@keyframes catFoodRing{0%{transform:scale(1);opacity:.7}70%{transform:scale(1.16);opacity:0}100%{transform:scale(1.16);opacity:0}}

.catfood-modal{position:fixed;inset:0;z-index:500;display:none;align-items:center;justify-content:center;padding:16px;
  background:rgba(73,60,88,.34)}
.catfood-modal.show{display:flex}
.catfood-card{position:relative;width:min(440px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;
  padding:18px;border:3px solid var(--ink,#493c58);border-radius:24px;background:#fffdf8;
  box-shadow:0 12px 0 rgba(73,60,88,.14),0 25px 50px rgba(73,60,88,.24);animation:catFoodPop .2s ease-out}
@keyframes catFoodPop{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
.catfood-close{position:absolute;right:14px;top:14px;width:32px;height:32px;padding:0;border:2px solid var(--ink,#493c58);
  border-radius:50%;background:#ffe6ee;color:var(--ink,#493c58);font-size:18px;font-weight:900;line-height:1;cursor:pointer}
.catfood-close:hover{background:#ffd3e2}

.catfood-head{display:flex;align-items:center;gap:11px;margin-bottom:13px;padding-right:40px}
.catfood-mascot{font-size:30px;line-height:1}
.catfood-step{margin:0 0 2px;font-size:9px;letter-spacing:.12em;font-weight:900;color:#b39ac0}
.catfood-head h3{margin:0;font-size:19px;color:var(--ink,#493c58)}

.catfood-balance{display:grid;grid-template-columns:1.2fr 1fr;gap:9px;margin-bottom:11px}
.catfood-balance div{border:2px solid var(--ink,#493c58);border-radius:16px;padding:10px 12px;
  background:linear-gradient(135deg,#fff6d9,#ffe9f2)}
.catfood-balance div:last-child{background:linear-gradient(135deg,#e8f8f2,#f2ecff)}
.catfood-balance span{display:block;font-size:9px;font-weight:900;color:#8f7a9c;margin-bottom:2px}
.catfood-balance b{font-size:24px;line-height:1.1;color:var(--ink,#493c58)}
.catfood-balance small{font-size:11px;font-weight:900;margin-left:3px}

.catfood-streak{display:flex;gap:5px;margin-bottom:12px}
.catfood-streak i{flex:1;height:30px;display:grid;place-items:center;border:2px solid #e6d9ea;border-radius:11px;
  background:#fffaf6;font-size:9px;font-style:normal;font-weight:900;color:#b6a4c0}
.catfood-streak i.done{background:linear-gradient(135deg,#ffe9b8,#ffd6e6);border-color:#d8c3d2;color:#8a6f94}
.catfood-streak i.today{box-shadow:0 0 0 3px rgba(255,216,116,.5)}

.catfood-claim{width:100%;padding:13px;border:3px solid var(--ink,#493c58);border-radius:16px;
  background:linear-gradient(135deg,#ffd9e6,#fff0b8 52%,#c9f6e8);color:var(--ink,#493c58);
  font-size:14px;font-weight:900;cursor:pointer;box-shadow:0 5px 0 rgba(73,60,88,.15);margin-bottom:14px}
.catfood-claim:hover{filter:brightness(1.03)}
.catfood-claim:active{transform:translateY(2px);box-shadow:0 3px 0 rgba(73,60,88,.16)}
.catfood-claim:disabled{background:#f1eaf0;color:#a99bb2;cursor:default;box-shadow:0 4px 0 rgba(73,60,88,.08);filter:none;transform:none}
.catfood-claim.pop{animation:catFoodPop2 .5s ease-out}
@keyframes catFoodPop2{0%{transform:scale(1)}35%{transform:scale(1.045)}100%{transform:scale(1)}}

.catfood-shop-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:7px}
.catfood-shop-head span{font-size:12px;font-weight:900;color:var(--ink,#493c58)}
.catfood-shop-head b{font-size:9px;font-weight:900;color:#b39ac0}
.catfood-shop{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:7px}
.catfood-shop li{display:flex;align-items:center;gap:9px;padding:9px 11px;border:2px solid #ece0ef;border-radius:14px;
  background:#fffaf6}
.catfood-shop li .catfood-item-icon{font-size:19px;line-height:1;flex:0 0 auto}
.catfood-shop li .catfood-item-name{flex:1;min-width:0;font-size:12px;font-weight:900;color:var(--ink,#493c58)}
.catfood-shop li .catfood-item-cost{font-size:11px;font-weight:900;color:#c47d9a;white-space:nowrap}
.catfood-shop li button{padding:7px 11px;border:2px solid var(--ink,#493c58);border-radius:11px;background:#ffd874;
  color:var(--ink,#493c58);font-size:11px;font-weight:900;cursor:pointer;white-space:nowrap;box-shadow:0 3px 0 rgba(73,60,88,.13)}
.catfood-shop li button:hover{filter:brightness(1.04)}
.catfood-shop li button:disabled{background:#f1eaf0;color:#b3a5bb;cursor:default;box-shadow:none;filter:none}

.catfood-codes{margin-bottom:10px}
.catfood-codes:empty{display:none}
.catfood-codes-head{font-size:10px;font-weight:900;color:#b39ac0;margin-bottom:6px}
.catfood-code{display:flex;align-items:center;gap:8px;padding:8px 10px;border:2px dashed #e0cfe6;border-radius:12px;
  background:#fff8fc;margin-bottom:6px}
.catfood-code b{font-family:Consolas,Menlo,monospace;font-size:12px;letter-spacing:.04em;color:#a05a75}
.catfood-code span{flex:1;min-width:0;font-size:10px;font-weight:800;color:#8f7a9c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.catfood-code em{font-size:9px;font-style:normal;color:#b9a8c2;white-space:nowrap}

.catfood-tip{margin:0;font-size:9px;line-height:1.6;font-weight:800;color:#b5a3bf;text-align:center}
.catfood-reset{display:block;width:100%;margin-top:9px;padding:8px;border:2px dashed #ddd0e2;border-radius:12px;
  background:transparent;color:#b5a3bf;font-size:10px;font-weight:900;cursor:pointer}
.catfood-reset:hover{border-color:#c9b6d2;color:#8f7a9c}
.catfood-toast{position:fixed;left:50%;bottom:28px;z-index:520;transform:translateX(-50%) translateY(14px);
  padding:11px 18px;border:3px solid var(--ink,#493c58);border-radius:999px;background:#ffd874;color:var(--ink,#493c58);
  font-size:13px;font-weight:900;box-shadow:0 7px 0 rgba(73,60,88,.18);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}
.catfood-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* 猫粮卡 */
.catfood-newtip{margin:0 0 11px;padding:9px 11px;border:2px dashed #f0c9a0;border-radius:13px;background:#fff8e8;
  font-size:10px;line-height:1.55;font-weight:800;color:#9a7a55}
.catfood-newtip[hidden]{display:none}
.catfood-cardbox{display:flex;align-items:center;gap:12px;padding:11px;border:2px solid var(--ink,#493c58);
  border-radius:16px;background:linear-gradient(135deg,#fff3e8,#f3ecff);margin-bottom:9px}
.catfood-cardinfo{flex:1;min-width:0}
.catfood-cardlabel{display:block;font-size:9px;font-weight:900;color:#a98fb5;margin-bottom:3px}
.catfood-cardno{display:block;font-family:Consolas,Menlo,monospace;font-size:15px;letter-spacing:.02em;
  color:var(--ink,#493c58);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px}
.catfood-copy{padding:6px 10px;border:2px solid var(--ink,#493c58);border-radius:10px;background:#fff;
  color:var(--ink,#493c58);font-size:10px;font-weight:900;cursor:pointer;box-shadow:0 3px 0 rgba(73,60,88,.12)}
.catfood-copy:active{transform:translateY(1px);box-shadow:0 1px 0 rgba(73,60,88,.14)}
.catfood-qr{width:96px;height:96px;flex:0 0 96px;border:2px solid var(--ink,#493c58);border-radius:12px;background:#fffdf8}
.catfood-restore{display:flex;gap:7px;margin-bottom:12px}
.catfood-input{flex:1;min-width:0;padding:9px 11px;border:2px solid #ddd0e2;border-radius:12px;background:#fffaf6;
  font-size:11px;font-weight:800;color:var(--ink,#493c58);outline:none}
.catfood-input:focus{border-color:#b9a4c6;background:#fff}
.catfood-input::placeholder{color:#c0b0c8}
.catfood-find{padding:9px 14px;border:2px solid var(--ink,#493c58);border-radius:12px;background:#c9f6e8;
  color:var(--ink,#493c58);font-size:11px;font-weight:900;cursor:pointer;box-shadow:0 3px 0 rgba(73,60,88,.13)}
.catfood-find:active{transform:translateY(1px);box-shadow:0 1px 0 rgba(73,60,88,.15)}

/* 长按二维码保存引导 */
.catfood-saveguide{display:flex;align-items:center;gap:10px;padding:9px 11px;border:2px dashed #cfe9e0;
  border-radius:14px;background:#f3fbf8;margin-bottom:10px}
.catfood-guideimg{width:66px;height:55px;flex:0 0 66px;display:block}
.catfood-guidetext{flex:1;min-width:0}
.catfood-guidetext b{display:block;font-size:11px;font-weight:900;color:#3f7f6f;margin-bottom:3px}
.catfood-guidetext span{display:block;font-size:9px;line-height:1.55;font-weight:800;color:#84a79d}

.catfood-cycle-tip{margin:-5px 2px 10px;font-size:9px;font-weight:800;color:#b39ac0;text-align:center}

@media (max-width:720px){
  .catfood-card{padding:14px;border-radius:20px}
  .catfood-head h3{font-size:16px}
  .catfood-mascot{font-size:26px}
  .catfood-balance{gap:7px}
  .catfood-balance div{padding:9px 10px;border-radius:14px}
  .catfood-balance span{font-size:8px}
  .catfood-balance b{font-size:20px}
  .catfood-streak i{height:26px;font-size:8px;border-radius:9px}
  .catfood-claim{padding:11px;font-size:13px;margin-bottom:11px}
  .catfood-shop li{gap:7px;padding:8px 10px;border-radius:12px}
  .catfood-shop li .catfood-item-icon{font-size:17px}
  .catfood-shop li .catfood-item-name{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .catfood-shop li .catfood-item-cost{font-size:10px}
  .catfood-shop li button{padding:6px 9px;font-size:10px;border-radius:10px;box-shadow:0 2px 0 rgba(73,60,88,.13)}
  .catfood-code b{font-size:11px}
  .catfood-code span{font-size:9px}
  .catfood-code em{display:none}
  .catfood-cardbox{gap:9px;padding:9px}
  .catfood-cardno{font-size:13px}
  .catfood-qr{width:82px;height:82px;flex:0 0 82px}
  .catfood-newtip{font-size:9px;padding:8px 10px}
  .catfood-guideimg{width:56px;height:47px;flex:0 0 56px}
  .catfood-guidetext b{font-size:10px}
  .catfood-guidetext span{font-size:8.5px}
  .catfood-cycle-tip{font-size:8px;margin:-4px 2px 9px}
}
