@import url("data:text/css,");
.legal-page{background:linear-gradient(180deg,#fff7ef,#f6f7f4)}
.legal-shell{width:min(760px,94vw);margin:auto;padding:calc(2rem + env(safe-area-inset-top)) 0 calc(2rem + env(safe-area-inset-bottom))}
.legal-card{padding:clamp(1.3rem,5vw,3rem);line-height:1.75}
.legal-card h1{font-size:clamp(2rem,6vw,3.2rem);letter-spacing:-.05em;margin-bottom:.25rem}
.legal-card h2{font-size:1.05rem;margin:1.8rem 0 .45rem}
.legal-card p,.legal-card li{font-size:.88rem;color:#655c60}
.legal-card li+li{margin-top:.35rem}
.legal-date{color:var(--muted)!important;font-size:.72rem!important}
.legal-back{display:inline-block;margin-bottom:1.3rem;color:var(--coral-dark);font-size:.8rem;font-weight:700;text-decoration:none}
.legal-links{display:flex;justify-content:center;gap:.65rem;margin-top:2.3rem;padding-top:1.2rem;border-top:1px solid var(--line);font-size:.78rem}
.account-summary,.danger-zone{margin-top:1.5rem;padding:1.2rem;border-radius:20px;background:#fffaf6}
.danger-zone{border:1px solid #ffd7d3;background:#fff5f4}
.btn.danger{background:#bd514c;color:#fff}
.account-result{text-align:center;padding:1.5rem 0}
.account-result .big-icon{margin:0 auto 1.2rem;background:#e7f7ed;color:#287c55}
.app-footer p{margin-bottom:.35rem}
.app-footer nav{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap}
html{min-height:100%;background:var(--bg)}body{min-height:100dvh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}button{min-height:44px}.pet-shell{padding-bottom:calc(1.4rem + env(safe-area-inset-bottom))}.offline-toast{bottom:calc(1rem + env(safe-area-inset-bottom))!important}.pet-3d-message{display:none;position:absolute;z-index:8;left:50%;top:50%;width:min(280px,80%);transform:translate(-50%,-50%);padding:.8rem 1rem;border-radius:16px;background:rgba(63,57,64,.88);color:white;text-align:center;font-size:.75rem}.pet-3d-message.show{display:block}.pet-3d-message.retry{cursor:pointer}
@media(hover:hover) and (pointer:fine){.btn:hover{transform:translateY(-2px)}}

:root{--bg:#fff8f1;--card:#fffefd;--ink:#3f3940;--muted:#8e8487;--coral:#ff8c82;--coral-dark:#ed716b;--line:#eee4dd;--shadow:0 18px 50px rgba(109,75,71,.11);font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}h1,h2,h3,p{margin-top:0}a{color:inherit}.card,.admin-card{background:rgba(255,255,255,.9);border:1px solid rgba(255,255,255,.95);box-shadow:var(--shadow);border-radius:28px}.eyebrow{font-size:.7rem;letter-spacing:.2em;font-weight:800;color:var(--coral);margin-bottom:.5rem}.muted{color:var(--muted)}.btn{border:0;border-radius:14px;padding:.85rem 1.2rem;font-weight:800;transition:.2s}.btn:hover{transform:translateY(-2px)}.btn.primary{background:linear-gradient(135deg,var(--coral),#ffaea0);color:white;box-shadow:0 10px 24px rgba(255,140,130,.3)}.btn.ink{background:#474048;color:white}.btn.small{padding:.6rem .85rem;font-size:.82rem}.alert{padding:.85rem 1rem;border-radius:14px;margin:1rem 0}.alert.error{background:#fff0ef;color:#bd514c}.alert.success{background:#edfaf3;color:#287c55}.form-stack{display:grid;gap:1rem}.form-stack label,.form-grid label{display:grid;gap:.45rem;font-size:.82rem;font-weight:700;color:#6f6568}input,select{width:100%;border:1px solid var(--line);border-radius:13px;background:#fffcfa;padding:.78rem .9rem;outline:none;color:var(--ink)}input:focus,select:focus{border-color:var(--coral);box-shadow:0 0 0 3px rgba(255,140,130,.13)}.offline-toast{position:fixed;z-index:100;left:50%;bottom:1rem;transform:translate(-50%,150%);background:#403a3f;color:white;padding:.7rem 1.1rem;border-radius:20px;transition:.25s}.offline-toast.show{transform:translate(-50%,0)}

/* 登录 */
.login-page{background:radial-gradient(circle at 15% 15%,#ffe8dc 0,transparent 30%),radial-gradient(circle at 90% 80%,#dff4ef 0,transparent 30%),#fff9f3}.login-shell{width:min(920px,92vw);min-height:100vh;margin:auto;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:4rem}.login-shell.compact{width:min(800px,92vw)}.brand-panel h1{font-size:clamp(2.8rem,7vw,5.2rem);letter-spacing:-.08em;margin-bottom:1rem}.brand-panel>p:last-child{color:var(--muted);font-size:1.05rem}.mini-pets{display:flex;gap:.5rem;margin-bottom:2rem}.mini-pets span{width:62px;height:62px;border-radius:22px;background:white;display:grid;place-items:center;font-size:2rem;box-shadow:var(--shadow);transform:rotate(-5deg)}.mini-pets span:nth-child(2){transform:translateY(-10px) rotate(5deg)}.admin-mark,.big-icon{display:grid;place-items:center;width:72px;height:72px;border-radius:24px;background:#403a3f;color:#ffd76a;font-size:2rem;margin-bottom:1.5rem}.login-card{padding:2.3rem}.login-card h2{font-size:1.65rem;margin-bottom:.35rem}.login-note{font-size:.75rem;color:var(--muted);line-height:1.6;margin:1.4rem 0 0;text-align:center}.center-shell{min-height:100vh;display:grid;place-items:center;padding:1rem}.password-card{width:min(450px,94vw);padding:2.2rem}.password-card h1{font-size:1.8rem}

/* 用户宠物页 */
.pet-app{background:linear-gradient(180deg,#fff4e9 0,#f9f9f5 48%,#f4f7f3 100%)}.pet-shell{width:min(720px,100%);margin:auto;padding:1.4rem 1rem 3rem}.pet-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.2rem .5rem}.pet-topbar h1{font-size:2rem;margin:0;letter-spacing:-.04em}.pet-kind{font-size:.78rem;color:var(--muted)}.icon-btn{border:0;background:white;width:45px;height:45px;border-radius:16px;box-shadow:0 9px 26px rgba(90,70,67,.09);font-size:1.3rem}.toast-message{padding:.7rem 1rem;border-radius:18px;background:#453e45;color:white;text-align:center;margin-bottom:.7rem;animation:toast-in .3s ease}.pet-room{position:relative;overflow:hidden;min-height:425px;background:linear-gradient(180deg,#fee8d6 0,#fff8ed 63%,#cfe4d6 64%,#bdd7c8 100%)}.pet-room:before{content:"";position:absolute;left:7%;top:8%;width:85px;height:105px;border:12px solid rgba(255,255,255,.78);border-radius:40px 40px 5px 5px;background:linear-gradient(90deg,transparent 48%,rgba(255,255,255,.7) 49% 53%,transparent 54%),linear-gradient(0deg,transparent 48%,rgba(255,255,255,.7) 49% 53%,transparent 54%),#a8d8de;box-shadow:0 10px 25px rgba(90,80,80,.1)}.pet-room:after{content:"";position:absolute;right:7%;top:9%;width:55px;height:55px;border-radius:50%;background:#ffd971;box-shadow:0 0 0 13px rgba(255,255,255,.28)}.pet-stage{position:relative;height:350px;display:grid;place-items:end center;z-index:2}.pet-shadow{position:absolute;bottom:36px;width:185px;height:35px;background:rgba(77,83,75,.16);border-radius:50%;filter:blur(5px)}.room-sparkles i{position:absolute;width:8px;height:8px;background:white;border-radius:50%;animation:sparkle 2s infinite}.room-sparkles i:nth-child(1){left:22%;top:42%}.room-sparkles i:nth-child(2){right:18%;top:36%;animation-delay:.7s}.room-sparkles i:nth-child(3){right:25%;top:56%;animation-delay:1.2s}.action-prop{position:absolute;right:20%;top:43%;font-size:2.2rem;z-index:3}.action-eat .action-prop span:after{content:"🐟"}.action-clean .action-prop span:after{content:"🫧"}.action-play .action-prop span:after{content:"🌈"}.action-sleep .action-prop span:after{content:"💤"}.quick-actions{position:absolute;z-index:5;right:1rem;bottom:1rem;display:flex;gap:.6rem}.round-action{border:0;border-radius:18px;padding:.55rem .75rem;background:rgba(255,255,255,.85);backdrop-filter:blur(8px);color:#675e62;font-size:.74rem;font-weight:700;box-shadow:0 6px 16px rgba(73,66,66,.08)}.round-action span{display:block;font-size:1.35rem}.status-card{padding:1.3rem;margin-top:1rem}.section-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:1rem}.section-title h2{font-size:1.05rem;margin:0}.section-title span{font-size:.7rem;color:var(--muted)}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.stat-label{display:flex;justify-content:space-between;font-size:.78rem;margin-bottom:.4rem}.stat-label b{font-size:.75rem}.bar{height:8px;background:#f1ece8;border-radius:10px;overflow:hidden}.bar i{display:block;height:100%;border-radius:10px;transition:width .5s}.bag-card{margin-top:1.5rem}.item-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.item-card{padding:1rem;display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:center}.item-card form{grid-column:1/-1}.item-card .btn{width:100%}.item-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:17px;background:#fff4e7;font-size:1.55rem}.item-card h3{font-size:.9rem;margin:0 0 .25rem}.item-card p{font-size:.7rem;color:var(--muted);margin:0}.empty-state{text-align:center;padding:2rem;color:var(--muted);font-size:2rem}.empty-state p{font-size:.85rem;margin:.5rem}.unequip-form{text-align:center;margin-top:1rem}.text-btn{border:0;background:transparent;color:var(--coral-dark);font-weight:700}.app-footer{text-align:center;color:#aaa0a3;font-size:.68rem;margin-top:2.5rem}

.remember-options{display:flex;justify-content:space-between;gap:1rem;font-size:.75rem;color:#665d62}.remember-options label{display:flex;align-items:center;gap:.35rem;cursor:pointer}.remember-options input{width:auto;accent-color:var(--coral)}.remember-note{display:block;color:var(--muted);font-size:.63rem;line-height:1.5;margin-top:-.35rem}

/* 管理台 */
.admin-app{background:#f6f5f2;display:grid;grid-template-columns:240px 1fr;min-height:100vh}.admin-sidebar{position:sticky;top:0;height:100vh;background:#3f3a40;color:white;padding:1.5rem 1rem;display:flex;flex-direction:column}.sidebar-brand{display:flex;gap:.75rem;align-items:center;padding:.5rem}.sidebar-brand>span{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--coral);color:#fff}.sidebar-brand b,.sidebar-brand small{display:block}.sidebar-brand small{color:#aaa1aa;font-size:.65rem;margin-top:.2rem}.admin-sidebar nav{display:grid;gap:.35rem;margin-top:2rem}.admin-sidebar nav button{border:0;background:transparent;color:#c8c1c8;text-align:left;padding:.8rem 1rem;border-radius:12px;font-size:.82rem}.admin-sidebar nav button span{display:inline-block;width:28px}.admin-sidebar nav button:hover,.admin-sidebar nav button.active{background:#514b52;color:white}.sidebar-logout{margin-top:auto}.sidebar-logout button{width:100%;border:1px solid #625c63;background:transparent;color:#bdb5bd;border-radius:12px;padding:.7rem}.admin-main{padding:2.2rem;width:min(1450px,100%);overflow:hidden}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.admin-header h1{font-size:1.8rem;margin:0 0 .3rem}.admin-header>div>p:last-child{color:var(--muted);font-size:.8rem;margin:0}.live-pill{background:white;padding:.55rem .85rem;border-radius:20px;font-size:.72rem;color:#4f6958}.live-pill i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#56bd7c;margin-right:.35rem}.admin-panel{display:none}.admin-panel.active{display:block}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1rem}.metric{position:relative;background:white;border:1px solid #eeeae6;border-radius:20px;padding:1.2rem}.metric span,.metric b{display:block}.metric span{font-size:.72rem;color:var(--muted)}.metric b{font-size:2rem;margin-top:.5rem}.metric i{position:absolute;right:1rem;top:1rem;font-style:normal;font-size:1.4rem}.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.admin-card{border:1px solid #eeeae6;border-radius:20px;box-shadow:none;padding:1.2rem;background:white}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.form-grid .wide{grid-column:1/-1}.table-card{padding:0;overflow:hidden}.table-card>.section-title{padding:1.2rem;margin:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.76rem;white-space:nowrap}th{text-align:left;background:#faf9f7;color:#8b8287;font-size:.68rem}th,td{padding:.8rem 1rem;border-top:1px solid #f0ece8}td small{display:block;color:#aaa;font-size:.62rem;margin-top:.18rem}.status{display:inline-block;padding:.28rem .55rem;border-radius:12px;font-size:.65rem}.status.on{background:#eaf8ef;color:#39855a}.status.off{background:#f5eeee;color:#9a6767}.row-actions{display:flex;gap:.5rem;align-items:center}.row-actions summary{cursor:pointer;color:#756b70}.inline-reset{position:absolute;right:1rem;background:white;padding:.7rem;box-shadow:var(--shadow);border-radius:12px;display:flex;z-index:5}.inline-reset input{width:160px}.search{display:flex}.search input{width:180px;border-radius:12px 0 0 12px}.search button,.inline-reset button{border:0;background:#4b454c;color:white;border-radius:0 12px 12px 0;padding:0 .7rem}.positive{color:#319260;font-weight:800}.negative{color:#c55f5b;font-weight:800}.empty-cell{text-align:center;color:var(--muted);padding:2rem}.catalog-list{display:grid;max-height:410px;overflow:auto}.catalog-list>div{display:flex;align-items:center;gap:.7rem;padding:.7rem 0;border-bottom:1px solid #f1eeeb}.catalog-list p{margin:0;flex:1}.catalog-list small{display:block;color:var(--muted);font-size:.64rem;margin-top:.25rem}.avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#e7e2f4;color:#62598c;font-weight:900}

@keyframes wag{50%{transform:rotate(12deg)}}@keyframes breathe{50%{transform:translateY(3px)}}@keyframes blink{0%,45%,50%,100%{transform:scaleY(1)}47%{transform:scaleY(.08)}}@keyframes sparkle{50%{transform:scale(1.8);opacity:.3}}@keyframes happy{50%{transform:translateY(-22px) rotate(3deg)}}@keyframes eat{50%{transform:rotate(4deg) translateY(5px)}}@keyframes clean{50%{transform:rotate(-6deg) scale(1.03)}}@keyframes play{50%{transform:translateX(15px) rotate(5deg)}}@keyframes sleep{50%{transform:translateY(7px) rotate(-2deg)}}@keyframes toast-in{from{transform:translateY(-10px);opacity:0}}

.popover-form{position:absolute;right:1rem;background:white;padding:.7rem;box-shadow:var(--shadow);border-radius:12px;display:grid;grid-template-columns:130px 80px 70px auto;gap:.4rem;z-index:6}.popover-form input,.popover-form select{padding:.5rem}.popover-form button{border:0;border-radius:8px;background:#4b454c;color:white}.catalog-list button.status{border:0}.offline-card{text-align:center}.offline-card .big-icon{margin-left:auto;margin-right:auto}.offline-card .btn{width:100%}

/* 首次领取宠物 */
.claim-page{background:radial-gradient(circle at 10% 10%,#ffe7d6 0,transparent 27%),radial-gradient(circle at 90% 35%,#dff1ea 0,transparent 28%),#fff9f3}.claim-shell{width:min(760px,94vw);margin:auto;padding:3rem 1rem 4rem}.claim-header{text-align:center;margin-bottom:2rem}.claim-header h1{font-size:clamp(2rem,6vw,3.5rem);letter-spacing:-.06em;margin-bottom:.7rem}.claim-header>p:last-child,.claim-note{color:var(--muted)}.claim-form{display:grid;gap:1.2rem}.claim-form>section{background:rgba(255,255,255,.9);padding:1.25rem;border-radius:24px;box-shadow:var(--shadow)}.claim-form h2{font-size:1rem;margin-bottom:1rem}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}.gender-choice{grid-template-columns:1fr 1fr}.choice-grid label{cursor:pointer}.choice-grid input{position:absolute;opacity:0;pointer-events:none}.choice-grid label>span{display:grid;place-items:center;gap:.25rem;border:2px solid transparent;background:#fff7ef;border-radius:19px;padding:1rem .5rem;transition:.2s}.choice-grid label>span b{font-size:2.1rem}.choice-grid label>span strong{font-size:.9rem}.choice-grid label>span small{font-size:.65rem;color:var(--muted)}.choice-grid input:checked+span{border-color:var(--coral);background:#fff0e9;transform:translateY(-2px);box-shadow:0 10px 24px rgba(255,140,130,.16)}.pet-name-input{text-align:center;font-size:1.1rem;padding:1rem}.claim-submit{padding:1rem;font-size:1rem}.claim-note{text-align:center;font-size:.72rem;margin-top:1.3rem}.status.pending{background:#fff3d8;color:#936f27}

@media(max-width:760px){
  .login-shell{grid-template-columns:1fr;gap:1rem;padding:3rem 0}.brand-panel{text-align:center}.mini-pets{justify-content:center}.brand-panel h1{font-size:3rem}.login-card{padding:1.5rem}
  .item-grid{grid-template-columns:1fr}.pet-room{min-height:405px}.stats-grid{gap:.8rem}.pet-shell{padding-top:.8rem}
  .admin-app{display:block}.admin-sidebar{position:relative;height:auto;padding:.8rem;display:block}.sidebar-brand{margin-bottom:.6rem}.admin-sidebar nav{display:flex;overflow:auto;margin:0;gap:.3rem}.admin-sidebar nav button{white-space:nowrap;padding:.65rem}.sidebar-logout{position:absolute;right:1rem;top:1.1rem}.sidebar-logout button{font-size:0;border:0}.sidebar-logout button:after{content:"退出";font-size:.7rem}.admin-main{padding:1rem}.admin-header{align-items:flex-start}.admin-header h1{font-size:1.4rem}.live-pill{display:none}.metric-grid{gap:.5rem}.metric{padding:.9rem}.metric b{font-size:1.4rem}.metric i{display:none}.admin-columns{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr 1fr}.table-card{margin-left:-1rem;margin-right:-1rem;border-radius:0}.search{display:none}
}
@media(max-width:390px){.stats-grid,.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.quick-actions{right:.5rem}.pet-stage{height:340px}}
@media(max-width:520px){.choice-grid{grid-template-columns:1fr}.gender-choice{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}

/* 萌币与商店 */
.top-actions{display:flex;align-items:center;gap:.55rem}.coin-pill{display:flex;gap:.35rem;align-items:center;background:#fff6d9;color:#725d28;border:1px solid #f5dfa0;padding:.55rem .7rem;border-radius:16px}.shop-section{margin-top:1.5rem;padding:1.2rem;border-radius:28px;background:rgba(255,255,255,.48)}.shop-section .section-title .eyebrow{margin-bottom:.25rem}.shop-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}.shop-card{display:grid;grid-template-columns:auto 1fr;gap:.7rem;padding:1rem;align-items:center}.shop-icon{width:58px;height:58px;border-radius:19px;background:linear-gradient(145deg,#fff1d8,#fff9ed);display:grid;place-items:center;font-size:1.8rem}.shop-copy span{font-size:.6rem;color:var(--coral-dark);font-weight:800}.shop-copy h3{font-size:.9rem;margin:.15rem 0}.shop-copy p{font-size:.68rem;color:var(--muted);margin:0}.shop-card form{grid-column:1/-1}.buy-btn{width:100%;border:0;border-radius:12px;background:#4a4349;color:white;padding:.65rem;font-weight:800}.buy-btn:disabled{background:#e8e2de;color:#a69da1}
@media(max-width:760px){.shop-grid{grid-template-columns:1fr}}

.pet-outfit-badge{
  position:absolute;
  z-index:4;
  top:19px;
  left:50%;
  transform:translateX(-50%);
  display:grid;
  place-items:center;
  min-width:54px;
  min-height:54px;
  font-size:2.7rem;
  filter:drop-shadow(0 5px 4px rgba(82,61,55,.22));
  pointer-events:none;
}
.pet-3d-view{position:absolute;z-index:3;left:50%;bottom:15px;width:min(350px,96%);height:325px;transform:translateX(-50%);cursor:grab;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.pet-3d-view:active{cursor:grabbing}
.pet-3d-view canvas{display:block;width:100%;height:100%;outline:0}
.pet-3d-view:focus-visible{outline:4px solid rgba(115,183,177,.62);outline-offset:3px;border-radius:42%}
.pet-stage.pet-3d-ready .petting-hand{z-index:6}.petting-hand,.action-prop,.room-sparkles,.pet-outfit-badge{pointer-events:none}
.tap-sparkles{position:absolute;z-index:5;inset:0;pointer-events:none}
.tap-sparkles i{position:absolute;left:50%;top:55%;width:12px;height:12px;opacity:0;background:#fff9ca;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);filter:drop-shadow(0 2px 4px rgba(255,174,75,.45))}
.tap-sparkles i:nth-child(2){width:8px;height:8px;margin:-23px 0 0 73px}
.tap-sparkles i:nth-child(3){width:7px;height:7px;margin:22px 0 0 -82px}
.action-direct-tap .tap-sparkles i{animation:tap-spark 1.45s ease-in-out both}
.action-direct-tap .tap-sparkles i:nth-child(2){animation-delay:.08s}.action-direct-tap .tap-sparkles i:nth-child(3){animation-delay:.15s}
@keyframes tap-spark{0%,15%{opacity:0;transform:scale(.3) rotate(0)}35%,67%{opacity:1;transform:scale(1) rotate(70deg)}100%{opacity:0;transform:scale(.25) rotate(145deg)}}
@media(max-width:430px){
  .pet-outfit-badge{top:24px;font-size:2.4rem}
}

.pet-room{background:linear-gradient(180deg,#fff 0,#fff 63%,#cfe4d6 64%,#bdd7c8 100%)}
.pet-room:before,.pet-room:after{content:none}
.pet-shadow{display:none}

.native-pull-refresh{overscroll-behavior-y:contain}
.pull-refresh{position:fixed;z-index:1000;left:50%;top:calc(env(safe-area-inset-top) + 6px);transform:translate(-50%,-58px);padding:.5rem .85rem;border-radius:999px;background:rgba(69,62,69,.9);color:#fff;font-size:.7rem;font-weight:700;box-shadow:0 8px 24px rgba(69,62,69,.18);pointer-events:none;transition:transform .18s ease,background .18s ease}
.pull-refresh.dragging{transition:none}.pull-refresh.ready{background:#ff8177}.pull-refresh.refreshing{background:#ff8177}

.action-eat .action-prop span:after{content:none}
.action-eat .action-prop{animation:food-to-mouth 1.1s cubic-bezier(.2,.8,.2,1) forwards}
.action-eat .action-prop span{display:block;animation:food-bites 1.1s steps(3,end) forwards}
@keyframes food-to-mouth{
  0%{opacity:0;transform:translate3d(15px,-10px,0) scale(1.15)}
  12%{opacity:1}
  72%{opacity:1;transform:translate3d(-105px,22px,0) scale(.72)}
  100%{opacity:0;transform:translate3d(-118px,28px,0) scale(.1)}
}
@keyframes food-bites{
  0%{transform:scale(1)}
  34%{transform:scale(.78)}
  67%{transform:scale(.5)}
  100%{transform:scale(.15)}
}

/* 30 FPS 手部抚摸：宠物本体保持原位。 */
.petting-hand{
  position:absolute;
  z-index:6;
  top:35px;
  left:50%;
  width:84px;
  opacity:0;
  pointer-events:none;
  transform:translate3d(-95px,-24px,0) rotate(-18deg);
  transform-origin:65% 80%;
  will-change:transform,opacity;
}
.petting-hand svg{display:block;width:100%;height:auto;filter:drop-shadow(0 7px 5px rgba(74,49,44,.2))}
.action-pet .petting-hand{animation:pet-hand-stroke .7s ease-out 1}
@keyframes pet-hand-stroke{
  0%{opacity:0;transform:translate3d(-100px,-28px,0) rotate(-20deg)}
  10%{opacity:1}
  35%{opacity:1;transform:translate3d(-45px,-2px,0) rotate(-6deg)}
  62%{opacity:1;transform:translate3d(16px,-8px,0) rotate(10deg)}
  88%{opacity:1;transform:translate3d(-42px,-2px,0) rotate(-7deg)}
  100%{opacity:0;transform:translate3d(-92px,-25px,0) rotate(-18deg)}
}

/* 休息时用闭眼帧，并以被子覆盖身体。 */
.sleep-scene{position:absolute;inset:0;z-index:4;opacity:0;pointer-events:none}
.action-sleep .sleep-scene{opacity:1}
.sleep-pillow{
  position:absolute;
  left:50%;
  bottom:92px;
  width:245px;
  height:82px;
  transform:translateX(-50%) rotate(-2deg);
  border:5px solid rgba(255,255,255,.72);
  border-radius:48% 52% 34% 34%;
  background:#fff0dd;
  box-shadow:0 10px 18px rgba(76,56,62,.12);
}
.sleep-blanket{
  position:absolute;
  left:50%;
  bottom:-5px;
  width:min(310px,88%);
  height:143px;
  transform:translateX(-50%);
  overflow:hidden;
  border:5px solid rgba(255,255,255,.46);
  border-radius:48% 48% 28px 28px;
  background:linear-gradient(145deg,#788fd2,#566eaf);
  box-shadow:0 -8px 18px rgba(39,50,93,.15),inset 0 10px 20px rgba(255,255,255,.12);
  animation:blanket-breathe 3.4s steps(408,end) infinite;
}
.sleep-blanket:before{content:"";position:absolute;inset:18px;background:radial-gradient(circle,#f9df86 0 5px,transparent 6px) 0 0/48px 38px;opacity:.72}
.sleep-blanket i{position:absolute;width:10px;height:10px;border-radius:50%;background:#fff2bd;opacity:.8}
.sleep-blanket i:nth-child(1){left:24%;top:28%}.sleep-blanket i:nth-child(2){right:24%;top:48%}.sleep-blanket i:nth-child(3){left:48%;top:65%}
.sleep-zzz{position:absolute;right:18%;top:27%;color:#6578bd;font-size:2rem;font-weight:900;animation:zzz-float 3s steps(360,end) infinite}
.sleep-zzz small{font-size:1rem;margin-left:.15rem}
@keyframes blanket-breathe{50%{transform:translateX(-50%) translateY(-5px) scaleY(1.035)}}
@keyframes zzz-float{50%{transform:translateY(-10px);opacity:.45}}

@media(max-width:430px){
  .petting-hand{top:42px;width:75px}
  .sleep-blanket{height:135px}
}

.pet-room{background:linear-gradient(180deg,#fff 0,#fff 63%,#cfe4d6 64%,#bdd7c8 100%)}
.pet-room:before,.pet-room:after{content:none}
.pet-shadow{display:none}
