.pet-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;transition:transform var(--t-slow) var(--ease),filter var(--t-norm) var(--ease)}.pet-wrap[role=button]{cursor:pointer}.pet-wrap[role=button]:active{transform:scale(.97)}.pet-shadow{position:absolute;bottom:4%;left:50%;width:62%;height:10px;transform:translate(-50%);background:radial-gradient(ellipse,rgba(80,60,40,.28),transparent 70%);filter:blur(3px);animation:shadowBreathe 3.4s var(--ease) infinite}.pet-svg{display:block;overflow:visible;animation:breathe 3.6s var(--ease) infinite}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}@keyframes shadowBreathe{0%,to{transform:translate(-50%) scale(1);opacity:.75}50%{transform:translate(-50%) scale(.92);opacity:.55}}.aura-core{animation:auraCore 2.8s var(--ease) infinite;transform-origin:100px 34px}@keyframes auraCore{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.25)}}.blinking .eye-ball{transform:scaleY(.12);transform-origin:center;transform-box:fill-box;transition:transform 80ms var(--ease)}.blinking .eye-shine{opacity:0}.eye-ball,.eye-shine{transition:transform .24s var(--ease),opacity .24s var(--ease);transform-origin:center;transform-box:fill-box}.ears .ear{transform-origin:100px 75px;transform-box:fill-box;transition:transform .3s var(--ease)}.ear-perky .ear-left{transform:rotate(-6deg) translateY(-4px)}.ear-perky .ear-right{transform:rotate(6deg) translateY(-4px)}.ear-droop .ear-left{transform:rotate(18deg) translateY(3px)}.ear-droop .ear-right{transform:rotate(-18deg) translateY(3px)}.ear-tuck .ear-left{transform:rotate(35deg) translate(3px,8px)}.ear-tuck .ear-right{transform:rotate(-35deg) translate(-3px,8px)}.ear-tilt .ear-left{transform:rotate(-4deg)}.ear-tilt .ear-right{transform:rotate(4deg)}.ear-tilt-left .ear-left{transform:translateY(6px) rotate(8deg)!important}.ear-tilt-right .ear-right{transform:translateY(6px) rotate(-8deg)!important}.tail{transform-origin:155px 130px;transform-box:fill-box;transition:transform .4s var(--ease)}.tail-wag{animation:tailWag .8s var(--ease) infinite}.tail-curl{transform:rotate(-10deg)}.tail-up{transform:rotate(-40deg) translateY(-6px)}.tail-drop{transform:rotate(20deg) translateY(6px)}@keyframes tailWag{0%,to{transform:rotate(-12deg)}50%{transform:rotate(12deg)}}.pet-droplet .body ellipse{transform:translateY(-4px) scaleY(1.06);transform-origin:center;transform-box:fill-box}.pet-mochi .body ellipse{transform:scale(1.04,.95);transform-origin:center;transform-box:fill-box}.emotion-sad .pet-svg{filter:hue-rotate(-8deg) saturate(.85)}.emotion-sad .eye-ball{transform:translateY(2px) scaleY(.82)}.emotion-sad .eye-shine{transform:translateY(2px)}.emotion-sad .aura-core{opacity:.5}.emotion-happy .pet-svg{filter:saturate(1.08) brightness(1.03)}.emotion-happy .eye-ball{transform:scaleY(.55) translateY(1px)}.emotion-anxious .aura-core{animation:auraFlicker .9s var(--ease) infinite}@keyframes auraFlicker{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.4)}}.emotion-angry .pet-svg{filter:saturate(1.2)}.emotion-angry .ears .ear{transform:translateY(-5px)!important}.emotion-calm .pet-svg{filter:saturate(.95)}.emotion-calm .eye-ball{transform:scaleY(.7)}.phase-awake .pet-svg{animation:awaken 1.6s var(--ease) both}@keyframes awaken{0%{opacity:0;transform:scale(.8);filter:blur(8px)}60%{opacity:.8;filter:blur(2px)}to{opacity:1;transform:scale(1);filter:blur(0)}}.phase-listening .pet-svg{filter:saturate(.9) brightness(.97)}.phase-listening .eye-ball{transform:scaleY(.18)}.phase-listening .aura-core{animation:listeningPulse 1.8s var(--ease) infinite}@keyframes listeningPulse{0%,to{opacity:.55;transform:scale(.9)}50%{opacity:1;transform:scale(1.3)}}.phase-mirror .pet-svg{animation:mirrorBlip .6s var(--ease)}@keyframes mirrorBlip{0%{transform:scale(1)}30%{transform:scale(1.08)}to{transform:scale(1)}}.action-spin .pet-svg{animation:spin 1.4s var(--ease)}@keyframes spin{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.08)}to{transform:rotate(360deg) scale(1)}}.action-jump-scatter .pet-svg{animation:jumpScatter 1.2s var(--ease)}@keyframes jumpScatter{0%,to{transform:translateY(0)}30%{transform:translateY(-18px) scale(1.05)}50%{transform:translateY(0) scale(.96)}70%{transform:translateY(-10px)}}.action-hop .pet-svg{animation:hop .6s var(--ease)}@keyframes hop{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.action-roll .pet-svg{animation:roll 1.4s var(--ease)}@keyframes roll{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.action-tail-wiggle .tail{animation:tailWag .4s var(--ease) infinite}.action-paw-wave .paws{animation:pawWave 1s var(--ease) infinite;transform-origin:center;transform-box:fill-box}@keyframes pawWave{0%,to{transform:rotate(0)}50%{transform:rotate(-10deg) translateY(-4px)}}.action-tap-react .pet-svg{animation:tapReact .45s cubic-bezier(.34,1.56,.64,1)}@keyframes tapReact{0%{transform:scale(1) translateY(0)}35%{transform:scale(1.08,.86) translateY(5px)}70%{transform:scale(.98,1.05) translateY(-3px)}to{transform:scale(1) translateY(0)}}.action-curl-near .pet-svg{animation:curl 1.4s var(--ease) forwards}@keyframes curl{0%{transform:translateY(0) scale(1)}to{transform:translateY(6px) scale(.93)}}.action-walk-close .pet-svg{animation:walkClose 1.6s var(--ease) forwards}@keyframes walkClose{0%{transform:translate(-40px) scale(.9);opacity:.7}to{transform:translate(0) scale(1);opacity:1}}.action-stand-guard .pet-svg{animation:standGuard 1.2s var(--ease)}@keyframes standGuard{0%{transform:translateY(0)}40%{transform:translateY(-6px) scale(1.04)}to{transform:translateY(0)}}.action-block-forward .pet-svg{animation:blockForward 1.2s var(--ease)}@keyframes blockForward{0%{transform:translateY(0)}50%{transform:translateY(-2px) scale(1.08,.95)}to{transform:translateY(0)}}.action-deep-breath .pet-svg{animation:deepBreath 3s var(--ease) infinite}@keyframes deepBreath{0%,to{transform:scale(1)}50%{transform:scale(1.07)}}.action-lie-down .pet-svg{animation:lieDown 1.4s var(--ease) forwards}@keyframes lieDown{0%{transform:scaleY(1)}to{transform:scale(1.08,.85) translateY(6px)}}.action-slow-breath .pet-svg{animation:deepBreath 4s var(--ease) infinite}.action-gentle-pulse .aura-core{animation:auraCore 1.5s var(--ease) infinite}.action-gaze .eye-ball{transform:translateY(-1px)}.action-slow-sway .pet-svg{animation:sway 2s var(--ease) infinite}@keyframes sway{0%,to{transform:translate(-3px)}50%{transform:translate(3px)}}.action-protective-stance .pet-svg{transform:scale(1.06)}.action-soft-call .aura-core{animation:auraFlicker 1.3s var(--ease) infinite}.action-tail-toward .tail{transform:rotate(20deg)}.action-gentle-approach .pet-svg{animation:walkClose 1.8s var(--ease)}.action-eyes-star .eye-ball{fill:#f4c95d}.idle-stretch .pet-svg{animation:stretch 1.4s var(--ease)}@keyframes stretch{0%,to{transform:scale(1)}50%{transform:scale(1.04,.94)}}.idle-wiggle .pet-svg{animation:wiggle .9s var(--ease)}@keyframes wiggle{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.idle-tail-curl .tail{animation:tailWag 1s var(--ease)}.peek-left .pet-svg{transform:translate(-8px) rotate(-4deg)}.peek-right .pet-svg{transform:translate(8px) rotate(4deg)}.peek-left .eyes,.peek-right .eyes{transform:translate(0)}.phase-mirror.emotion-sad .eye-ball{transform:translateY(3px) scaleY(.7)}.phase-mirror.emotion-happy .eye-ball{transform:scaleY(.4)}.phase-mirror.emotion-anxious .pet-svg{animation:tremble .3s ease-in-out 3}@keyframes tremble{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}.phase-mirror.emotion-angry .ears .ear{transform:translateY(-6px)!important}.adoption{position:relative;width:100%;height:100%;overflow:hidden}.wake-screen{position:absolute;top:0;right:0;bottom:0;left:0;background:#1a1614;filter:brightness(calc(.25 + .75 * var(--bright, .2)));transition:filter .6s var(--ease);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#f7f2e8;text-align:center;padding:24px;cursor:pointer}.heartbeat{position:absolute;top:50%;left:50%;width:220px;height:220px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(247,242,232,.06),transparent 65%);animation:heartbeat 1.6s var(--ease) infinite}@keyframes heartbeat{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.5}40%{transform:translate(-50%,-50%) scale(1.15);opacity:.9}60%{transform:translate(-50%,-50%) scale(1.05);opacity:.7}}.fog{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 50%,rgba(200,180,150,.08),transparent 60%);animation:fogDrift 8s var(--ease) infinite}@keyframes fogDrift{0%,to{transform:translate(0)}50%{transform:translate(10px,-5px)}}.silhouette{position:relative;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle at 50% 60%,rgba(247,242,232,.2),transparent 65%);filter:blur(6px)}.silhouette-inner{position:absolute;top:15%;right:15%;bottom:15%;left:15%;background:#f7f2e826;border-radius:50%}.wake-caption{margin-top:40px;font-size:17px;letter-spacing:2px;line-height:1.8;color:#f7f2e8d9}.wake-hint{position:absolute;bottom:40px;font-size:12px;color:#f7f2e866;letter-spacing:1px}.q-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;padding:32px 24px;background:linear-gradient(180deg,var(--bg-card),var(--bg-base))}.q-progress{display:flex;gap:6px;margin-bottom:16px}.q-progress .dot{width:24px;height:4px;background:var(--line);border-radius:999px;transition:background var(--t-norm) var(--ease)}.q-progress .dot.active{background:var(--c-happy)}.q-preview{margin:12px 0 20px}.q-title{font-size:19px;font-weight:500;text-align:center;margin:0 0 24px;line-height:1.5}.q-options{display:flex;flex-direction:column;gap:12px;width:100%}.q-option{padding:16px 20px;background:var(--bg-card);border-radius:var(--r-md);font-size:15px;text-align:left;color:var(--ink);box-shadow:var(--shadow-soft);transition:transform var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.q-option:active{transform:scale(.98);background:var(--bg-soft)}.q-palettes{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%}.palette-card{background:var(--bg-card);padding:16px;border-radius:var(--r-md);display:flex;flex-direction:column;gap:10px;align-items:center;box-shadow:var(--shadow-soft);transition:transform var(--t-fast) var(--ease)}.palette-card:active{transform:scale(.96)}.palette-chips{display:flex;gap:4px}.chip{width:24px;height:24px;border-radius:50%;box-shadow:inset 0 1px 3px #0000001a}.palette-label{font-size:13px;color:var(--ink-soft)}.awake-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(180deg,#f5ecd8,#e8dcc1);padding:24px;gap:24px}.awake-babble{font-size:32px;letter-spacing:4px;color:var(--ink);font-weight:300}.awake-caption{color:var(--ink-soft);font-size:14px;letter-spacing:2px}.name-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:32px 24px;background:linear-gradient(180deg,var(--bg-card),var(--bg-base))}.name-babble{font-size:22px;color:var(--ink);letter-spacing:3px}.name-caption{color:var(--ink-soft);font-size:14px}.name-input{padding:14px 20px;font-size:17px;background:var(--bg-card);border-radius:var(--r-pill);text-align:center;width:220px;box-shadow:var(--shadow-soft);letter-spacing:4px}.primary-btn{padding:14px 32px;background:var(--ink);color:var(--bg-card);border-radius:var(--r-pill);font-size:15px;box-shadow:var(--shadow-soft);transition:transform var(--t-fast) var(--ease),opacity var(--t-fast) var(--ease)}.primary-btn:active{transform:scale(.97)}.primary-btn:disabled{opacity:.4;cursor:not-allowed}.ghost-btn{padding:8px 16px;color:var(--ink-soft);font-size:13px;border-bottom:1px dashed var(--ink-mute);border-radius:0}.sheet-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#1a161461;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .28s var(--ease);z-index:20}.sheet{position:relative;width:100%;background:var(--bg-card);border-radius:var(--r-lg) var(--r-lg) 0 0;padding:12px 24px 32px;box-shadow:0 -8px 32px #00000026;animation:sheetIn .36s var(--ease);max-height:86%;overflow-y:auto}@keyframes sheetIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-handle{width:36px;height:4px;background:var(--ink-mute);border-radius:999px;margin:0 auto 14px;opacity:.5}.sheet-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.sheet-header h3{margin:0;font-size:17px;font-weight:500;letter-spacing:1px}.close-btn{width:30px;height:30px;border-radius:50%;font-size:22px;color:var(--ink-soft);line-height:1}.mode-tabs{display:flex;padding:4px;background:var(--bg-soft);border-radius:var(--r-pill);margin-bottom:22px;width:fit-content;margin-left:auto;margin-right:auto}.tab{padding:8px 24px;border-radius:var(--r-pill);color:var(--ink-soft);font-size:13px;transition:all var(--t-fast) var(--ease)}.tab.active{background:var(--bg-card);color:var(--ink);box-shadow:var(--shadow-soft)}.emoji-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:24px}.emoji-cell{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;background:var(--bg-soft);border-radius:var(--r-md);transition:all var(--t-fast) var(--ease)}.emoji-cell.picked{background:var(--bg-card);box-shadow:0 0 0 2px var(--c-happy),var(--shadow-soft);transform:scale(1.03)}.e-svg{width:36px;height:36px;display:flex;align-items:center;justify-content:center}.e-svg svg{width:36px;height:36px}.e-label{font-size:11px;color:var(--ink-soft)}.submit-btn{width:100%;padding:16px;background:var(--ink);color:var(--bg-card);border-radius:var(--r-pill);font-size:15px;letter-spacing:2px;transition:transform var(--t-fast) var(--ease),opacity var(--t-fast) var(--ease)}.submit-btn:active{transform:scale(.98)}.submit-btn:disabled{opacity:.4}.text-area{width:100%;padding:16px;background:var(--bg-soft);border-radius:var(--r-md);font-size:15px;color:var(--ink);line-height:1.6;resize:none;margin-bottom:8px}.text-hint{text-align:center;font-size:12px;color:var(--ink-soft);margin-bottom:18px;letter-spacing:2px}.qep{padding:6px 12px 64px;z-index:3}.qep-cats{display:flex;gap:6px;align-items:stretch}.qep-cat{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 4px 7px;border-radius:var(--r-sm);background:var(--bg-card);box-shadow:var(--shadow-soft);transition:transform .2s cubic-bezier(.34,1.56,.64,1),background var(--t-fast) var(--ease);min-width:0}.qep-cat:active{transform:scale(.9)}.qep-cat--active{transform:scale(1.05)}.qep-cat--happy{border-bottom:2.5px solid var(--c-happy)}.qep-cat--calm{border-bottom:2.5px solid var(--c-calm)}.qep-cat--sad{border-bottom:2.5px solid var(--c-sad)}.qep-cat--angry{border-bottom:2.5px solid var(--c-angry)}.qep-cat--anxious{border-bottom:2.5px solid var(--c-anxious)}.qep-cat--happy.qep-cat--active{background:#ffd76a38}.qep-cat--calm.qep-cat--active{background:#a9d09d3d}.qep-cat--sad.qep-cat--active{background:#8cb6cf3d}.qep-cat--angry.qep-cat--active{background:#e67e4333}.qep-cat--anxious.qep-cat--active{background:#ad8dc73d}.qep-cat-emoji{font-size:19px;line-height:1}.qep-cat-label{font-size:11px;color:var(--ink-soft);letter-spacing:.5px}.qep-text-btn{flex-shrink:0;width:42px;border-radius:var(--r-sm);background:var(--bg-card);box-shadow:var(--shadow-soft);font-size:16px;display:flex;align-items:center;justify-content:center;transition:transform var(--t-fast) var(--ease);align-self:stretch}.qep-text-btn:active{transform:scale(.88)}.qep-sub-row{display:flex;gap:7px;justify-content:center;flex-wrap:wrap;padding:0 4px 8px}.qep-sub-chip{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 12px 6px;border-radius:var(--r-sm);background:var(--bg-card);box-shadow:var(--shadow-soft);min-width:62px;animation:chipIn .3s cubic-bezier(.34,1.56,.64,1) both;animation-delay:calc(var(--chip-i, 0) * 38ms);transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}@keyframes chipIn{0%{opacity:0;transform:translateY(14px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}.qep-sub-chip:active{transform:scale(.9)}.qep-sub-chip--tapped{transform:scale(.86)!important;transition:transform 80ms ease!important}.qep-sub-chip--happy{border-top:2px solid var(--c-happy)}.qep-sub-chip--calm{border-top:2px solid var(--c-calm)}.qep-sub-chip--sad{border-top:2px solid var(--c-sad)}.qep-sub-chip--angry{border-top:2px solid var(--c-angry)}.qep-sub-chip--anxious{border-top:2px solid var(--c-anxious)}.qep-sub-icon{width:26px;height:26px;display:flex;align-items:center;justify-content:center}.qep-sub-icon svg{width:26px;height:26px}.qep-sub-label{font-size:11px;color:var(--ink-soft);letter-spacing:.5px;white-space:nowrap}.home.time-night .qep-cat,.home.time-night .qep-sub-chip,.home.time-night .qep-text-btn{background:#fffaf014;box-shadow:0 2px 8px #0000004d}.home.time-night .qep-cat-label,.home.time-night .qep-sub-label{color:#f7f2e899}.calendar-sheet{max-height:92%}.cal-nav{display:flex;justify-content:center;align-items:center;gap:20px;margin-bottom:16px}.nav-btn{width:32px;height:32px;border-radius:50%;background:var(--bg-soft);color:var(--ink);font-size:20px;line-height:1}.month-label{font-size:15px;letter-spacing:2px;color:var(--ink)}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:6px}.weekday{text-align:center;font-size:11px;color:var(--ink-soft);padding:6px 0}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px;background:var(--bg-soft);border-radius:var(--r-sm);font-size:13px;color:var(--ink-mute);transition:all var(--t-fast) var(--ease)}.cal-cell.empty{background:transparent}.cal-cell.future{opacity:.3}.cal-cell.today{box-shadow:inset 0 0 0 2px var(--ink);color:var(--ink)}.cal-cell.has-em{color:var(--ink);background:var(--bg-card)}.cal-cell.has-em:active{transform:scale(.94)}.cal-num{font-size:12px}.mini-dot{width:8px;height:8px;border-radius:50%;box-shadow:0 0 6px currentColor}.em-happy .mini-dot{color:var(--c-happy)}.em-calm .mini-dot{color:var(--c-calm)}.em-sad .mini-dot{color:var(--c-sad)}.em-angry .mini-dot{color:var(--c-angry)}.em-anxious .mini-dot{color:var(--c-anxious)}.day-detail{position:absolute;left:16px;right:16px;bottom:16px;padding:20px;background:var(--bg-card);border-radius:var(--r-lg);box-shadow:var(--shadow-card);animation:giftPop .3s var(--ease);max-height:70%;overflow-y:auto}.day-head{display:flex;justify-content:space-between;align-items:center;font-size:15px;color:var(--ink);margin-bottom:12px}.day-pet{display:flex;justify-content:center;margin-bottom:10px}.day-main-emotion{text-align:center;font-size:14px;color:var(--ink);margin-bottom:14px;letter-spacing:2px}.day-count{color:var(--ink-soft);font-size:12px;margin-left:6px}.day-records{display:flex;flex-direction:column;gap:10px}.day-rec{padding:10px 12px;background:var(--bg-soft);border-radius:var(--r-sm)}.rec-meta{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft);margin-bottom:3px}.rec-emoji{font-size:14px}.rec-note{font-size:13px;color:var(--ink)}.gifts-empty{text-align:center;padding:40px 20px 20px;color:var(--ink-soft);font-size:13px;line-height:2}.empty-icon{font-size:48px;margin-bottom:14px;opacity:.6}.gifts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.gift-card{display:flex;flex-direction:column;align-items:center;gap:3px;padding:14px 8px;background:var(--bg-soft);border-radius:var(--r-md);transition:transform var(--t-fast) var(--ease)}.gift-card:active{transform:scale(.96)}.gift-card-emoji{font-size:30px}.gift-card-name{font-size:12px;color:var(--ink)}.gift-card-word{font-size:11px;color:var(--c-happy);letter-spacing:2px}.gift-card-date{font-size:10px;color:var(--ink-mute);margin-top:2px}.gift-float-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:14;cursor:pointer}.gift-float{position:absolute;top:60%;left:calc(50% + 70px);display:flex;flex-direction:column;align-items:center;pointer-events:none;transform:translate(-50%,-50%);animation:giftDrop 1s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes giftDrop{0%{opacity:0;transform:translate(-50%,-120vh) rotate(-14deg)}35%{opacity:1}60%{transform:translate(-50%,-42%) rotate(10deg)}74%{transform:translate(-50%,-56%) rotate(-5deg)}86%{transform:translate(-50%,-48%) rotate(3deg)}to{opacity:1;transform:translate(-50%,-50%) rotate(0)}}.gift-float.is-closing{animation:giftFade .35s ease-out forwards}@keyframes giftFade{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-60%) scale(.92)}}.gift-float-emoji{font-size:76px;line-height:1;filter:drop-shadow(0 8px 18px rgba(0,0,0,.18));display:block}.gift-float-name{margin-top:8px;padding:4px 14px;font-size:13px;font-weight:600;letter-spacing:2.5px;color:var(--ink);background:#fffcf5e0;border-radius:999px;box-shadow:0 2px 8px #0000001a;white-space:nowrap}.env{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;overflow:hidden}.particle{position:absolute;top:-12px;border-radius:50%;opacity:.7;animation:fallDrift linear infinite}@keyframes fallDrift{0%{transform:translateY(-20px) translate(0) rotate(0);opacity:0}20%{opacity:.8}to{transform:translateY(110vh) translate(40px) rotate(180deg);opacity:0}}.env-happy .particle{background:radial-gradient(circle,#f9d677,#f4c95d);box-shadow:0 0 8px #f4c95d99}.env-calm .particle{background:radial-gradient(circle,#d7e9ce,#b7d8b1)}.env-sad .particle{background:radial-gradient(circle,#d2e4f0,#9ec3d8);opacity:.5}.env-angry .particle{background:radial-gradient(circle,#f5bb95,#e89b6d)}.env-anxious .particle{background:radial-gradient(circle,#dcc9eb,#c6b0d6)}.rain-layer{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(100deg,transparent 0 12px,rgba(158,195,216,.12) 12px 13px);animation:rainShift .8s linear infinite;-webkit-mask-image:radial-gradient(ellipse at center,transparent 30%,black 70%);mask-image:radial-gradient(ellipse at center,transparent 30%,black 70%)}@keyframes rainShift{to{background-position:100px 100px}}.star-layer{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(2px 2px at 20% 30%,white,transparent),radial-gradient(1px 1px at 70% 40%,white,transparent),radial-gradient(1.5px 1.5px at 40% 70%,white,transparent),radial-gradient(1px 1px at 85% 80%,white,transparent),radial-gradient(1.5px 1.5px at 15% 90%,white,transparent);opacity:.5;animation:twinkle 4s ease-in-out infinite}@keyframes twinkle{0%,to{opacity:.3}50%{opacity:.65}}.home{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow:hidden;transition:background var(--t-slow) var(--ease)}.home.time-morning{background:linear-gradient(180deg,#fff5e3,#f4e9d0)}.home.time-day{background:linear-gradient(180deg,#f7f2e8,#ece0c6)}.home.time-evening{background:linear-gradient(180deg,#f5ddc5,#ddbfa4)}.home.time-night{background:linear-gradient(180deg,#3a3141,#2a2535);color:#f7f2e8}.home.time-night .pet-name,.home.time-night .stage-label,.home.time-night .calendar-btn{color:#f7f2e8}.home.time-night .babble-bubble,.home.time-night .pet-speech-bubble{background:#1e1828e6;color:#f0ece4;box-shadow:0 4px 20px #00000059}.home.time-night .pet-speech-bubble:after{border-top-color:#1e1828e6}.home-header{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 24px 0;z-index:3}.header-actions{display:flex;gap:10px;align-items:center;flex-shrink:0}.name-block{display:flex;flex-direction:column;gap:4px}.pet-name{font-size:22px;font-weight:500;letter-spacing:1px;color:var(--ink)}.stage-label{font-size:11px;color:var(--ink-soft);letter-spacing:2px}.icon-btn{position:relative;width:44px;height:44px;border-radius:50%;background:var(--bg-card);box-shadow:var(--shadow-soft);display:flex;align-items:center;justify-content:center;font-size:20px;transition:transform var(--t-fast) var(--ease)}.icon-btn:active{transform:scale(.92)}.badge{position:absolute;top:-2px;right:-2px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--c-angry);color:#fff;font-size:10px;line-height:18px;text-align:center}.pet-stage{flex:1;position:relative;display:flex;align-items:center;justify-content:center;z-index:2}.babble-bubble{position:absolute;top:14%;left:50%;transform:translate(-50%);padding:8px 16px;background:var(--bg-card);border-radius:var(--r-pill);font-size:15px;letter-spacing:2px;color:var(--ink);box-shadow:var(--shadow-soft);white-space:normal;word-break:break-word;max-width:calc(100vw - 48px);width:max-content;text-align:left;animation:bubbleIn .3s var(--ease)}@keyframes bubbleIn{0%{opacity:0;transform:translateY(8px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.pet-speech-bubble{position:absolute;top:10%;left:50%;transform:translate(-50%);padding:10px 20px;background:var(--bg-card);border-radius:18px;font-size:14px;line-height:1.65;letter-spacing:1.5px;color:var(--ink);box-shadow:0 4px 18px #503c2829;white-space:normal;word-break:break-word;max-width:calc(100vw - 48px);width:max-content;text-align:left;animation:speechIn .36s var(--ease);z-index:5}.pet-speech-bubble:after{content:"";position:absolute;bottom:-9px;left:50%;transform:translate(-50%);border:9px solid transparent;border-top-color:var(--bg-card);border-bottom:0}@keyframes speechIn{0%{opacity:0;transform:translate(-50%) translateY(-6px) scale(.92)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.home-footer{position:relative;z-index:3}.app-version{position:absolute;bottom:16px;left:50%;transform:translate(-50%);font-size:10px;letter-spacing:1px;opacity:.25;pointer-events:none;white-space:nowrap}.toast{position:absolute;bottom:140px;left:50%;transform:translate(-50%);padding:10px 20px;background:#3d342aeb;color:var(--bg-card);border-radius:var(--r-pill);font-size:13px;letter-spacing:2px;animation:toastIn .3s var(--ease),toastOut .4s var(--ease) 1.6s forwards;z-index:10}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}@keyframes toastOut{to{opacity:0;transform:translate(-50%,-10px)}}:root{--bg-base: #f7f2e8;--bg-card: #fffaf0;--bg-soft: #faf3e4;--ink: #3d342a;--ink-soft: #7a6b5a;--ink-mute: #b5a894;--line: #ebe0cc;--c-happy: #f4c95d;--c-calm: #b7d8b1;--c-sad: #9ec3d8;--c-angry: #e89b6d;--c-anxious: #c6b0d6;--shadow-soft: 0 4px 16px rgba(122, 107, 90, .08);--shadow-card: 0 8px 28px rgba(122, 107, 90, .12);--r-sm: 12px;--r-md: 18px;--r-lg: 28px;--r-pill: 999px;--ease: cubic-bezier(.4, 0, .2, 1);--t-fast: .18s;--t-norm: .32s;--t-slow: .6s}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;background:var(--bg-base);color:var(--ink);overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.55}button{font-family:inherit;border:none;background:none;color:inherit;cursor:pointer;padding:0}input,textarea{font-family:inherit;color:inherit;border:none;outline:none;background:transparent}#root{display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#efe5d2,#ddd0b8)}.app-shell{position:relative;width:100%;max-width:440px;height:100%;max-height:900px;background:var(--bg-base);overflow:hidden;box-shadow:var(--shadow-card)}@media(max-width:440px){.app-shell{max-width:100%;max-height:100%;box-shadow:none}}.stack{display:flex;flex-direction:column}.row{display:flex;align-items:center}.gap-sm{gap:8px}.gap-md{gap:16px}.gap-lg{gap:24px}.screen-fade-enter{animation:fadeUp .4s var(--ease)}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .5s var(--ease)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.pulse{animation:pulse 3s var(--ease) infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}
