.char{will-change:transform}.char .flipper{transition:transform .22s ease-in-out}.char .flipper.left{transform:scaleX(-1)}.zzz{pointer-events:none;font:700 13px/1 var(--font-display);color:#2c5a8a;text-shadow:0 0 2px #fff,0 0 2px #fff,0 1px 3px #ffffffe6;position:absolute}.zzz i{opacity:0;font-style:normal;animation:3s ease-out infinite zzz;position:absolute;top:0;left:0}.zzz i:nth-child(2){font-size:14px;animation-delay:1s}.zzz i:nth-child(3){font-size:17px;animation-delay:2s}.item g,.item path,.item circle,.item text{transform-box:fill-box}.item.radio.is-on .speaker{transform-box:fill-box;transform-origin:50%;animation:.45s ease-in-out infinite alternate speaker}.item.radio.is-on .body{transform-origin:50% 100%;animation:.45s ease-in-out infinite alternate radio-hop}.item.radio .glow{transform-origin:50%;animation:.9s ease-in-out infinite alternate glow}.item.radio .notes text{opacity:0;animation:2.1s ease-out infinite note}.item.radio .notes text:nth-child(2){animation-delay:.7s}.item.radio .notes text:nth-child(3){animation-delay:1.4s}.item.alarm.is-ringing .body{transform-origin:50% 100%;animation:.12s linear infinite alternate shake}.item.phone.is-ringing .body{transform-origin:50% 100%;animation:.1s linear infinite alternate shake}.item.phone .ring-lines,.item.alarm .ring-lines{animation:.3s steps(2,end) infinite blinkop}.item.kettle.is-whistling .body{transform-origin:50% 100%;animation:.18s linear infinite alternate kettle-rattle}.item.kettle .steam circle{transform-origin:50%;opacity:0;animation:1.6s ease-out infinite steam}.item.kettle .steam circle:nth-child(2){animation-delay:.53s}.item.kettle .steam circle:nth-child(3){animation-delay:1.06s}.item.kettle .whistle{animation:.25s steps(2,end) infinite blinkop}.item.bowl .food{transform-origin:50% 100%;opacity:0;transition:transform .5s cubic-bezier(.3,1.6,.5,1),opacity .2s;transform:scaleY(0)}.item.bowl.is-full .food{opacity:1;transform:scaleY(1)}.door2{z-index:1;pointer-events:none;width:6px;height:50px;position:absolute}.door2 .gap{opacity:.32;background:#3b2a20;border-radius:1px;position:absolute;inset:0}.door2 .leaf{background:linear-gradient(90deg,#8a5c3a,#a8734b 55%,#8a5c3a);border-radius:1.5px;transition:transform .42s cubic-bezier(.3,1.35,.5,1),filter .3s;position:absolute;inset:0;box-shadow:inset 0 0 0 .8px #3b2a2073}.door2.hinge-r .leaf{transform-origin:100%}.door2.hinge-l .leaf{transform-origin:0}.door2.open .leaf{filter:brightness(.85);transform:scaleX(.22)}.door2 .knob{background:var(--accent-causal);border-radius:2px;width:3px;height:3px;margin-left:-1.5px;position:absolute;top:26px;left:50%}.door2.open .knob{opacity:0}.door2 .lintel{background:var(--house-wood);border-radius:1px;height:3px;position:absolute;top:-3px;left:-1.5px;right:-1.5px}.door2 .lock{background:var(--state-danger);width:18px;height:18px;color:var(--ink-on-accent);box-shadow:0 0 0 2px var(--surface-card);border-radius:9px;place-items:center;margin-left:-9px;animation:.3s cubic-bezier(.3,1.6,.5,1) badge-in;display:grid;position:absolute;top:8px;left:50%}.door2.front .leaf{background:linear-gradient(#a8734b,#8a5c3a);border-radius:3px 3px 1px 1px}.door2.front .pane{background:var(--win-sky,var(--bg-sky));border-radius:2px;height:11px;position:absolute;top:5px;left:5px;right:5px;box-shadow:inset 0 0 0 1px #6f4a2e}.door2.front .knob{width:3.4px;height:3.4px;top:24px;left:auto;right:4px}.door2.front .lintel{top:-3px;left:-2px;right:-2px}.door2.front .mat{background:var(--accent-action);opacity:.7;border-radius:2px;height:3px;position:absolute;bottom:-2px;left:-3px;right:-3px}.itemwrap{transition:transform .2s cubic-bezier(.3,1.6,.5,1)}.itemwrap.lift{transform:translateY(-3px)}.itemwrap.plop{transform-box:fill-box;transform-origin:50% 100%;animation:.5s cubic-bezier(.3,1.6,.5,1) plop}.door2.glow{border-radius:2px;box-shadow:0 0 0 1.5px #f2a93a,0 0 8px 2px #f2a93abf}.preview .reach{animation:.25s ease-out fade}.preview .route{animation:1.2s linear infinite dash}.wave{fill:none;stroke:#d98414;stroke-width:2.8px;transform-box:fill-box;transform-origin:50%;opacity:0;animation:1.8s ease-out infinite wave}.smoke circle{transform-box:fill-box;transform-origin:50%;opacity:0;animation:4.5s ease-out infinite smoke}.smoke circle:nth-child(2){animation-delay:1.5s}.smoke circle:nth-child(3){animation-delay:3s}.cloud{animation:40s ease-in-out infinite alternate cloud}.cloud.c2{animation-duration:55s;animation-delay:-20s}.cloud.c3{animation-duration:47s;animation-delay:-9s}.light-beam{opacity:calc((.06 + var(--day,1) * .26) * var(--sunny,1))}@keyframes zzz{0%{opacity:0;transform:translate(0)scale(.6)}20%{opacity:1}to{opacity:0;transform:translate(10px,-22px)scale(1.1)}}@keyframes speaker{0%{transform:scale(.92)}to{transform:scale(1.1)}}@keyframes radio-hop{0%{transform:translateY(0)}to{transform:translateY(-1px)rotate(-1.5deg)}}@keyframes glow{0%{opacity:.15;transform:scale(.85)}to{opacity:.3;transform:scale(1.1)}}@keyframes note{0%{opacity:0;transform:translateY(4px)}25%{opacity:1}to{opacity:0;transform:translate(8px,-16px)rotate(15deg)}}@keyframes shake{0%{transform:rotate(-9deg)}to{transform:rotate(9deg)}}@keyframes kettle-rattle{0%{transform:rotate(-2deg)translateY(0)}to{transform:rotate(2deg)translateY(-.8px)}}@keyframes steam{0%{opacity:.9;transform:translate(0)scale(.4)}to{opacity:0;transform:translate(6px,-20px)scale(1.6)}}@keyframes blinkop{0%{opacity:1}to{opacity:.2}}@keyframes wave{0%{opacity:.9;transform:scale(.15)}to{opacity:0;transform:scale(1)}}@keyframes smoke{0%{opacity:.6;transform:translate(0)scale(.5)}to{opacity:0;transform:translate(10px,-30px)scale(1.8)}}@keyframes cloud{0%{transform:translate(-30px)}to{transform:translate(30px)}}@keyframes pop-in{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}.scene.shake{animation:.42s ease-in-out scene-shake}.bus.departing{animation:1.8s cubic-bezier(.5,0,.8,.6) forwards bus-go}.bus svg{animation:.25s ease-in-out infinite alternate bus-idle}@keyframes scene-shake{0%,to{transform:translate(0)}20%{transform:translate(-3px,1px)}40%{transform:translate(3px,-1px)}60%{transform:translate(-2px)}80%{transform:translate(1px,1px)}}@keyframes bus-go{0%,25%{opacity:1;transform:translate(0)}90%{opacity:1}to{opacity:0;transform:translate(-170px)}}@keyframes bus-idle{0%{transform:translateY(0)}to{transform:translateY(-.6px)}}@media (prefers-reduced-motion:reduce){.bus.departing{display:none}}@keyframes plop{0%{transform:translateY(-14px)scale(.9,1.1)}45%{transform:translateY(0)scale(1.25,.75)}70%{transform:scale(.92,1.08)}to{transform:none}}.door2.wardrobe .leaf{background:linear-gradient(90deg,#b9875c,#a8774f 60%,#8e6240);border-radius:2px}.door2.wardrobe .knob{top:24px;left:auto;right:3px}.puff-cloud{pointer-events:none;z-index:3;width:0;height:0;position:absolute}.puff-cloud i{opacity:0;background:#fff;border-radius:50%;width:22px;height:22px;margin:-11px;animation:.9s ease-out infinite puff-cloud;position:absolute;box-shadow:0 2px 6px #3b2a2033}.puff-cloud i:first-child{top:4px;left:-10px}.puff-cloud i:nth-child(2){width:26px;height:26px;margin:-13px;animation-delay:.15s;top:-2px;left:9px}.puff-cloud i:nth-child(3){animation-delay:.3s;top:-14px;left:0}@keyframes puff-cloud{0%{opacity:0;transform:scale(.3)}30%{opacity:.95;transform:scale(1)}to{opacity:0;transform:scale(1.4)translateY(-6px)}}.weather .fog{opacity:.55;background:radial-gradient(at 30%,#ffffffd9,#0000 60%),radial-gradient(at 75%,#ffffffb3,#0000 55%);width:160%;height:90px;animation:26s ease-in-out infinite alternate fog-drift;position:absolute;left:-30%}.weather .fog.g1{top:60px}.weather .fog.g2{opacity:.45;animation-duration:34s;animation-direction:alternate-reverse;top:150px}.fog-front{z-index:4;background:linear-gradient(#0000,#f0f2f459 40%,#f0f2f473)}@keyframes fog-drift{0%{transform:translate(-6%)}to{transform:translate(6%)}}.storm-cloud{opacity:.85;background:radial-gradient(at 20% 60%,#2a2d44 0 30%,#0000 62%),radial-gradient(at 55% 45%,#34364f 0 28%,#0000 60%),radial-gradient(at 85% 60%,#2c2e47 0 30%,#0000 62%);border-radius:50%;width:140%;height:120px;animation:70s ease-in-out infinite alternate cloud-drift;position:absolute;left:-20%}.storm-cloud.k1{top:-40px}.storm-cloud.k2{opacity:.7;animation-duration:95s;animation-direction:alternate-reverse;top:10px}.storm-cloud.k3{opacity:.45;height:90px;animation-duration:120s;top:70px}@keyframes cloud-drift{0%{transform:translate(-5%)}to{transform:translate(5%)}}.win-flash{opacity:var(--flash,0);transition:opacity 80ms}.lamp-glow{opacity:var(--lamps,0)}:root{--bg-paper:#f4ebdd;--bg-sky:#d3e4e6;--surface-card:#fff9f0;--surface-sunken:#ebdfcc;--ink-primary:#3b2a20;--ink-secondary:#6e5747;--ink-on-accent:#fff9f0;--line-soft:#d8c6ae;--accent-action:#b84f2a;--accent-causal:#e3a033;--accent-causal-soft:#f8e4b8;--accent-time:#4f7ca8;--state-success:#5f8f5a;--state-danger:#c2453a;--house-wood:#a8774f;--house-roof:#8a4a33;--room-kitchen:#f5ddb0;--room-bath:#cfe5e1;--room-bedroom:#dbe2f1;--room-neighbor:#f1d8da;--room-stairs:#e8d5bb;--char-sleepy:#5e7fa6;--char-grumpy:#9c4458;--char-cat:#e0913f;--char-skin:#f3d2b3;--space-4:4px;--space-8:8px;--space-12:12px;--space-16:16px;--space-24:24px;--radius-s:8px;--radius-m:14px;--radius-l:22px;--radius-pill:999px;--tap-min:44px;--shadow-soft:0 2px 8px #3b2a201f;--shadow-toy:0 2px 0 #3b2a2029, 0 3px 8px #3b2a2014;--shadow-pop:0 10px 28px #3b2a203d, 0 2px 6px #3b2a201f;--font-display:"Fredoka", "Nunito", system-ui, sans-serif;--font-ui:"Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}:root{--sa-l:env(safe-area-inset-left,0px);--sa-r:env(safe-area-inset-right,0px);--sa-t:env(safe-area-inset-top,0px);--sa-b:env(safe-area-inset-bottom,0px)}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body{background:var(--ink-primary);height:100%;margin:0;overflow:hidden}body{font-family:var(--font-ui);color:var(--ink-primary);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:default}:focus-visible{outline:3px solid var(--accent-time);outline-offset:2px}#app{place-items:center;display:grid;position:fixed;inset:0}.viewport{background:linear-gradient(var(--sky-top,var(--bg-sky)) 50%, var(--bg-paper) 50%);transition:background-color .5s;position:fixed;inset:0;overflow:hidden}.stage{background:var(--bg-paper);width:844px;height:390px;position:absolute;top:0;left:0;overflow:hidden}.abs{position:absolute}.t-display-xl{font:600 32px/1.1 var(--font-display)}.t-display-l{font:600 26px/1.15 var(--font-display)}.t-title-m{font:600 18px/1.2 var(--font-display)}.t-title-s{font:800 15px/1.25 var(--font-ui)}.t-body-m{font:600 14px/1.35 var(--font-ui)}.t-body-s{font:600 12px/1.35 var(--font-ui)}.t-label-m{font:800 13px/1.2 var(--font-ui)}.t-label-s{font:800 11px/1.2 var(--font-ui);letter-spacing:.04em}.t-clock{font:600 18px/1 var(--font-display);font-variant-numeric:tabular-nums}.c-secondary{color:var(--ink-secondary)}.c-action{color:var(--accent-action)}.c-time{color:var(--accent-time)}.c-success{color:var(--state-success)}.c-danger{color:var(--state-danger)}.ibtn{background:var(--surface-card);width:44px;height:44px;box-shadow:var(--shadow-toy), inset 0 0 0 1.5px var(--line-soft);border-radius:22px;flex:none;place-items:center;transition:transform .18s cubic-bezier(.3,1.6,.5,1),opacity .15s,background-color .2s;display:inline-grid}.ibtn:active:not(:disabled){transition-duration:50ms;transform:translateY(1px)scale(.92)}@media (hover:hover){.ibtn:hover:not(:disabled),.btn:hover:not(:disabled){transform:translateY(-1px)}}.ibtn.primary{background:var(--accent-action);color:var(--ink-on-accent);box-shadow:var(--shadow-toy)}.ibtn.active{background:var(--accent-causal-soft);box-shadow:var(--shadow-toy), inset 0 0 0 2px var(--accent-causal)}.ibtn:disabled{opacity:.4}.ibtn.pulse{animation:1.4s ease-in-out infinite pulse}.btn{height:48px;font:800 15px/1 var(--font-ui);white-space:nowrap;border-radius:24px;flex:none;justify-content:center;align-items:center;gap:8px;padding:0 22px 0 20px;transition:transform .18s cubic-bezier(.3,1.6,.5,1),filter .15s;display:inline-flex}.btn:active:not(:disabled){transition-duration:50ms;transform:translateY(1px)scale(.95)}.btn.primary:active:not(:disabled){filter:brightness(.92)}.btn.primary{background:var(--accent-action);color:var(--ink-on-accent);box-shadow:var(--shadow-toy)}.btn.secondary{background:var(--surface-card);box-shadow:var(--shadow-toy), inset 0 0 0 1.5px var(--line-soft)}.btn.ghost{color:var(--accent-action)}.btn.small{height:44px;padding:0 16px 0 14px;font-size:14px}.btn:disabled{opacity:.45}.moves{background:var(--surface-card);height:44px;box-shadow:var(--shadow-toy), inset 0 0 0 1.5px var(--line-soft);border-radius:22px;flex:none;align-items:center;gap:8px;padding:0 12px 0 14px;display:flex}.moves .lbl{flex-direction:column;display:flex}.pips{gap:6px;display:flex}.pip{border-radius:9px;width:18px;height:18px;transition:transform .3s cubic-bezier(.3,1.6,.5,1),opacity .2s}.pip.off{transform:scale(.85)}.pip.on{background:var(--accent-action);box-shadow:inset 0 0 0 3px var(--ink-on-accent), 0 1px 0 #3b2a2040}.pip.off{border:2px dashed var(--ink-secondary);opacity:.8}.card{background:var(--surface-card);box-shadow:var(--shadow-soft);border-radius:18px}.card.pop{box-shadow:var(--shadow-pop)}.bubble{white-space:nowrap;background:var(--surface-card);color:var(--ink-primary);box-shadow:0 2px 6px #3b2a2029, 0 0 0 1.5px var(--line-soft);font:800 11px/1.25 var(--font-ui);pointer-events:none;z-index:6;box-sizing:border-box;--bd:var(--line-soft);--bg:var(--surface-card);border-radius:11px;justify-content:center;align-items:center;gap:5px;padding:4px 10px 4px 7px;display:inline-flex;position:absolute;transform:translate(-50%,-100%)}.bubble>svg{color:var(--ink-secondary);flex:none}.bubble>span{text-overflow:ellipsis;min-width:0;overflow:hidden}.bubble:after{content:"";left:calc(50% + var(--tail,0px));background:var(--bg);width:8px;height:8px;box-shadow:1.5px 1.5px 0 0 var(--bd);border-radius:0 0 2px;margin-left:-4px;position:absolute;bottom:-4px;transform:rotate(45deg)}.bubble:before{content:"";left:calc(50% + var(--tail,0px));width:1.5px;height:var(--lead,0px);background:var(--bd);opacity:.8;margin-left:-.75px;position:absolute;top:100%}.bubble.causal{--bd:var(--accent-causal);--bg:var(--accent-causal-soft);background:var(--bg);box-shadow:0 2px 6px #3b2a2029, 0 0 0 1.5px var(--bd)}.bubble.alert{--bd:var(--state-danger);box-shadow:0 2px 6px #3b2a2029, 0 0 0 1.5px var(--bd)}.bubble.alert>svg{color:var(--state-danger)}.bubble.two{white-space:normal;align-items:center;padding:4px 10px 4px 7px;line-height:1.22}.bubble.two>span{-webkit-line-clamp:2;text-align:left;-webkit-box-orient:vertical;display:-webkit-box}.bubble-mini{background:var(--surface-card);width:22px;height:22px;color:var(--ink-secondary);box-shadow:0 2px 5px #3b2a2029, 0 0 0 1.5px var(--line-soft);pointer-events:none;z-index:6;border-radius:11px;place-items:center;display:grid;position:absolute;transform:translate(-50%,-100%)}.bubble-mini.causal{background:var(--accent-causal-soft);box-shadow:0 0 0 1.5px var(--accent-causal)}.bubble-mini.alert{color:var(--state-danger);box-shadow:0 0 0 1.5px var(--state-danger)}.bubble-mini.pop{transform-origin:50% 100%;animation:.3s ease-out bubble-in}.bubble.pop{transform-origin:50% 100%;animation:.32s ease-out bubble-in}.evc{background:var(--surface-card);min-height:34px;box-shadow:inset 0 0 0 1px var(--line-soft);border-radius:12px;align-items:center;gap:8px;padding:6px 10px;animation:.3s ease-out evc-in;display:flex}.evc .tm{width:30px;color:var(--accent-time);flex:none}.evc .dot{background:var(--accent-causal);border-radius:5px;flex:none;width:10px;height:10px}.evc .tx{flex:1;min-width:0}.evc.player{box-shadow:inset 0 0 0 2px var(--accent-action)}.evc.player .tm{color:var(--accent-action)}.evc.player .dot{background:var(--accent-action)}.evc.now{background:var(--accent-causal-soft);box-shadow:inset 0 0 0 2px var(--accent-causal)}.evc.next{opacity:.55}.evc.next .dot{background:var(--line-soft)}.evc.fail .dot{background:var(--state-danger)}.evc.ok .dot{background:var(--state-success)}.roomtag{color:var(--ink-secondary);font:800 9.5px/1.3 var(--font-ui);letter-spacing:.05em;pointer-events:none;z-index:5;background:#fff9f0d9;border-radius:8px;padding:2px 7px;position:absolute}.chip{background:var(--surface-sunken);border-radius:10px;align-items:center;gap:4px;padding:4px 9px 4px 7px;display:inline-flex}.hit{z-index:4;border-radius:22px;width:44px;height:44px;margin:-22px 0 0 -22px;position:absolute}.hit.tall{border-radius:16px;height:56px;margin-top:-28px}.slot-hit{z-index:6;place-items:center;width:44px;height:44px;margin:-22px 0 0 -22px;display:grid;position:absolute}.slot-hit span{width:26px;height:26px;box-shadow:inset 0 0 0 2.5px var(--accent-causal);background:#e3a03359;border-radius:13px;animation:1.2s ease-in-out infinite breathe}.coach{z-index:30;background:var(--ink-primary);color:var(--ink-on-accent);font:800 11px/1.25 var(--font-ui);box-shadow:var(--shadow-pop);border-radius:14px;align-items:center;gap:6px;padding:6px 12px 6px 10px;display:flex;position:absolute}.hint{background:var(--accent-causal-soft);box-shadow:inset 0 0 0 1.5px var(--accent-causal);border-radius:14px;align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.hint svg{flex:none;margin-top:1px}.scrim{z-index:40;background:#3b2a2080;position:absolute;inset:0}.fade-in{animation:.2s ease-out fade}.screen-enter{animation:.35s ease-out screen-in}.dialog-in{animation:.32s cubic-bezier(.3,1.4,.5,1) dialog-in}.menu-in{transform-origin:bottom;animation:.22s cubic-bezier(.3,1.4,.5,1) dialog-in}.rotate-hint{display:none}@media (orientation:portrait) and (width<=600px){.rotate-hint{z-index:100;background:var(--ink-primary);color:var(--ink-on-accent);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex;position:fixed;inset:0}.rotate-hint b{font:600 20px/1.3 var(--font-display)}.rotate-hint span{font:600 13px/1.4 var(--font-ui);opacity:.7;max-width:260px}.rotate-phone{animation:2.4s ease-in-out infinite rotate-phone}}@keyframes rotate-phone{0%,25%{transform:rotate(0)}55%,85%{transform:rotate(-90deg)}to{transform:rotate(0)}}html.embed,html.embed body,html.embed .viewport{background:0 0}html.embed .stage{border-radius:18px}html.embed .rotate-hint{color:#f8fafc;background:#0a0e17}@keyframes pulse{0%,to{box-shadow:var(--shadow-toy), 0 0 0 0 #b84f2a80}50%{box-shadow:var(--shadow-toy), 0 0 0 9px #b84f2a00}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes bubble-in{0%{opacity:0;transform:translate(-50%,-70%)scale(.6)}70%{opacity:1;transform:translate(-50%,-104%)scale(1.05)}to{opacity:1;transform:translate(-50%,-100%)scale(1)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes screen-in{0%{opacity:0;transform:scale(1.015)}to{opacity:1;transform:none}}@keyframes dialog-in{0%{opacity:0;transform:translateY(10px)scale(.94)}to{opacity:1;transform:none}}@keyframes evc-in{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:none}}@keyframes dash{to{stroke-dashoffset:-26px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.moves.bump{animation:.45s cubic-bezier(.3,1.6,.5,1) bump}.susp{border-radius:8px}.susp.flash{animation:.9s ease-out susp-flash}.star-pop{animation:.5s cubic-bezier(.3,1.8,.5,1) both star-pop;display:inline-block}.confetti{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.confetti i{opacity:0;animation:2.4s cubic-bezier(.25,.6,.4,1) forwards confetti;position:absolute;top:-16px}.scrim>.card{z-index:2;position:relative}.sound-set{border-top:1.5px solid var(--line-soft);flex-direction:column;gap:2px;margin-top:4px;padding:6px 0 2px;display:flex}.switch{justify-content:space-between;align-items:center;min-height:40px;padding:0 2px;display:flex}.switch .track{background:var(--surface-sunken);width:42px;height:24px;box-shadow:inset 0 0 0 1.5px var(--line-soft);border-radius:12px;transition:background-color .2s;position:relative}.switch .knob{background:var(--surface-card);width:18px;height:18px;box-shadow:var(--shadow-toy);border-radius:9px;transition:transform .25s cubic-bezier(.3,1.6,.5,1);position:absolute;top:3px;left:3px}.switch.on .track{background:var(--state-success);box-shadow:none}.switch.on .knob{transform:translate(18px)}.vol{justify-content:space-between;align-items:center;gap:12px;min-height:40px;padding:0 2px;display:flex}.vol input{max-width:170px;accent-color:var(--accent-action);flex:1;height:28px}@keyframes bump{0%{transform:scale(1)}35%{transform:scale(1.12)rotate(-2deg)}to{transform:scale(1)}}@keyframes susp-flash{0%{background:#c2453a38;box-shadow:0 0 #c2453ab3}to{background:0 0;box-shadow:0 0 0 10px #c2453a00}}@keyframes star-pop{0%{opacity:0;transform:scale(.2)rotate(-40deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes confetti{0%{opacity:1;transform:translate(0)rotate(0)}85%{opacity:1}to{opacity:0;transform:translate(var(--dx,0), 420px) rotate(var(--rot,360deg))}}@media (prefers-reduced-motion:reduce){.confetti{display:none}.star-pop{opacity:1}}.hit{cursor:pointer}.hit.grab{cursor:grab;touch-action:none}.hit:focus-visible{outline:none}.tip{white-space:nowrap;pointer-events:none;z-index:12;background:var(--ink-primary);color:var(--ink-on-accent);font:800 10.5px/1.3 var(--font-ui);box-shadow:var(--shadow-soft);border-radius:8px;padding:3px 8px;animation:.15s ease-out fade;position:absolute;transform:translate(-50%,-100%)}.tip.below{transform:translate(-50%)}.char-hit{z-index:3;cursor:pointer;border-radius:10px;position:absolute}.char-hit:focus-visible,.hit:focus-visible{outline:none}.char.glow{filter:drop-shadow(0 0 2px #f2a93a)drop-shadow(0 0 4px #f2a93acc)}.glint{pointer-events:none;z-index:3;opacity:0;background:radial-gradient(circle, #fff 0 18%, transparent 20%), conic-gradient(from 45deg, transparent 0 10%, #fff7d6 12% 13%, transparent 15% 35%, #fff7d6 37% 38%, transparent 40% 60%, #fff7d6 62% 63%, transparent 65% 85%, #fff7d6 87% 88%, transparent 90%);filter:drop-shadow(0 0 2px #e3a033e6);width:12px;height:12px;margin:-6px 0 0 -6px;animation:9s ease-in-out infinite glint;position:absolute}.move-badge{z-index:5;pointer-events:none;background:var(--accent-action);width:16px;height:16px;color:var(--ink-on-accent);font:800 9.5px/1 var(--font-ui);box-shadow:0 0 0 2px var(--surface-card), var(--shadow-toy);border-radius:8px;place-items:center;margin:-8px 0 0 -8px;animation:.4s cubic-bezier(.3,1.8,.5,1) badge-in;display:grid;position:absolute}.drop-slot{z-index:6;pointer-events:none;width:34px;height:34px;box-shadow:inset 0 0 0 2.5px var(--accent-causal);background:#e3a03340;border-radius:17px;margin:-17px 0 0 -17px;transition:transform .15s;animation:1s ease-in-out infinite breathe;position:absolute}.drop-slot.near{background:#e3a0338c;animation:none;transform:scale(1.3)}.drag-ghost{filter:drop-shadow(0 6px 6px #3b2a2040)}.ear{z-index:4;pointer-events:none;background:var(--accent-causal);width:22px;height:22px;color:var(--ink-primary);box-shadow:0 0 0 2px var(--surface-card);border-radius:11px;place-items:center;margin:-22px 0 0 -11px;animation:.35s cubic-bezier(.3,1.8,.5,1) badge-in;display:grid;position:absolute}.pv-chip{z-index:4;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-soft);font:700 10.5px/1.35 var(--font-ui);color:var(--ink-primary);background:#fff9f0f2;border-radius:8px;padding:2px 8px;animation:.2s ease-out fade;position:absolute;transform:translate(-50%)}.pv-chip b{color:var(--accent-time)}.ctx-scrim{background:radial-gradient(circle at var(--cx) var(--cy), transparent 70px, #3b2a2014 140px, #3b2a2042 420px)}.ctx-ring{pointer-events:none;width:60px;height:60px;box-shadow:0 0 0 3px var(--accent-causal), 0 0 14px #e3a03399;border-radius:30px;margin:-30px 0 0 -30px;animation:.3s cubic-bezier(.3,1.6,.5,1) pop-ring;position:absolute}.ctx{border-radius:20px;flex-direction:column;gap:6px;padding:8px 10px;animation:.24s cubic-bezier(.3,1.5,.5,1) dialog-in;display:flex}.ctx.above{transform-origin:var(--tail) 100%}.ctx.below{transform-origin:var(--tail) 0}.ctx:after{content:"";left:var(--tail);background:var(--surface-card);border-radius:2px;width:14px;height:14px;margin-left:-7px;position:absolute;transform:rotate(45deg)}.ctx.above:after{bottom:-6px}.ctx.side:after{display:none}.ctx.below:after{top:-6px}.ctx-head{flex-wrap:wrap;align-items:baseline;gap:8px;padding:0 4px;display:flex}.ctx-acts{justify-content:center;gap:8px;display:flex}.ctx-act{border-radius:14px;flex-direction:column;align-items:center;gap:3px;width:64px;padding:2px 0;transition:transform .18s cubic-bezier(.3,1.6,.5,1);display:flex;position:relative}.ctx-act .ic{background:var(--accent-causal-soft);width:52px;height:52px;color:var(--accent-action);box-shadow:var(--shadow-toy), inset 0 0 0 2px var(--accent-causal);border-radius:26px;place-items:center;transition:background-color .15s,transform .18s cubic-bezier(.3,1.6,.5,1);display:grid}.ctx-act .lb{font:800 10.5px/1.15 var(--font-ui);text-align:center;max-width:64px}.ctx-act .cost{background:var(--accent-action);min-width:22px;height:18px;color:var(--ink-on-accent);font:800 10px/1 var(--font-ui);box-shadow:0 0 0 2px var(--surface-card);border-radius:9px;place-items:center;padding:0 4px;display:grid;position:absolute;top:-2px;right:2px}.ctx-act .cost.lock{background:var(--ink-secondary)}@media (hover:hover){.ctx-act:not(.off):hover .ic{background:var(--accent-causal);color:var(--ink-primary);transform:translateY(-2px)scale(1.06)}}.ctx-act:active:not(.off) .ic{transform:scale(.92)}.ctx-act.on .ic{background:var(--accent-causal);color:var(--ink-primary)}.ctx-act.off{opacity:.55;cursor:not-allowed}.ctx-act.off .ic{background:var(--surface-sunken);color:var(--ink-secondary);box-shadow:inset 0 0 0 2px var(--line-soft)}.ctx-act.off:active .ic{animation:.3s nope}.ctx-times{flex-wrap:wrap;justify-content:center;gap:6px;animation:.2s fade;display:flex}.ctx-note{text-align:center;justify-content:center;align-items:center;min-height:30px;padding:0 4px;font-size:11.5px;display:flex}.char-card{border-radius:20px;flex-direction:column;gap:8px;padding:10px 10px 8px 12px;display:flex;overflow:hidden}.cc-head{align-items:center;gap:10px;display:flex}.cc-ava{background:var(--surface-sunken);border-radius:14px;flex:none;place-items:end center;width:44px;height:44px;display:grid;overflow:hidden}.cc-sub{color:var(--ink-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cc-sub b{color:var(--ink-primary);font-weight:800}.cc-chips{flex-wrap:wrap;gap:5px;display:flex}.cc-chip{background:var(--surface-sunken);font:800 10.5px/1.2 var(--font-ui);color:var(--ink-secondary);border-radius:999px;align-items:center;gap:4px;padding:3px 8px;display:inline-flex}.cc-chip.ok{color:var(--state-success)}.cc-chip.bad{color:var(--state-danger);background:#c448381a}.cc-list{overscroll-behavior:contain;flex:auto;min-height:0;margin:0;padding:0 4px 6px 0;list-style:none;overflow-y:auto;-webkit-mask-image:linear-gradient(#000 calc(100% - 14px),#0000);mask-image:linear-gradient(#000 calc(100% - 14px),#0000)}.cc-list li{border-radius:12px;grid-template-columns:34px 22px 1fr;align-items:start;column-gap:6px;padding:4px 6px 6px 4px;transition:opacity .2s;display:grid;position:relative}.cc-list li.past{opacity:.5}.cc-list li.now{background:var(--accent-causal-soft)}.cc-time{font:800 11px/22px var(--font-ui);color:var(--accent-time);font-variant-numeric:tabular-nums}.cc-rail{justify-content:center;align-self:stretch;display:flex;position:relative}.cc-rail:before{content:"";background:var(--line-soft);border-radius:1px;width:2px;position:absolute;top:0;bottom:-6px}.cc-list li:first-child .cc-rail:before{top:11px}.cc-list li:last-child .cc-rail:before{bottom:calc(100% - 11px)}.cc-ic{background:var(--surface-card);width:22px;height:22px;color:var(--ink-secondary);box-shadow:inset 0 0 0 2px var(--line-soft);border-radius:11px;place-items:center;display:grid;position:relative}.cc-list li.now .cc-ic{background:var(--accent-causal);color:var(--ink-primary);box-shadow:none}.cc-text{flex-direction:column;gap:1px;min-width:0;padding-top:3px;display:flex}.cc-what{font:800 12px/1.25 var(--font-ui);color:var(--ink-primary)}.cc-what:first-letter{text-transform:uppercase}.cc-where{font:600 10.5px/1.2 var(--font-ui);color:var(--ink-secondary)}.cc-foot{font:600 10.5px/1.2 var(--font-ui);color:var(--ink-secondary);text-align:center;margin:0}@keyframes glint{0%,88%,to{opacity:0;transform:scale(.3)rotate(0)}92%{opacity:1;transform:scale(1.1)rotate(30deg)}96%{opacity:.6;transform:scale(.8)rotate(60deg)}}@keyframes badge-in{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@keyframes pop-ring{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes nope{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.moment{z-index:6;pointer-events:none;flex-direction:column;align-items:center;animation:1.6s ease-out forwards moment;display:flex;position:absolute;transform:translate(-50%,-100%)}.mbadge{background:var(--accent-causal);width:24px;height:24px;color:var(--ink-primary);box-shadow:0 0 0 2.5px var(--surface-card), 0 3px 8px #3b2a2040;border-radius:12px;place-items:center;display:grid}.moment.player .mbadge{background:var(--accent-action);color:var(--ink-on-accent)}.moment.hot .mbadge{background:var(--state-danger);color:var(--ink-on-accent)}.moment.ok .mbadge{background:var(--state-success);color:var(--ink-on-accent)}.moment.fail .mbadge{background:var(--state-danger);color:var(--ink-on-accent)}.moment.ok,.moment.fail{animation:.5s ease-out forwards moment-stay}.mlabel{background:var(--ink-primary);max-width:180px;color:var(--ink-on-accent);font:800 10.5px/1.3 var(--font-ui);text-align:center;border-radius:9px;order:-1;margin-bottom:4px;padding:3px 8px}.thread{animation:1.6s ease-out forwards thread-fade}.thread-path{stroke-dasharray:100;stroke-dashoffset:100px;animation:.5s ease-out forwards thread-draw}.evc.hl{box-shadow:inset 0 0 0 2px var(--accent-causal), var(--shadow-soft)}@keyframes moment{0%{opacity:0;transform:translate(-50%,-60%)scale(.4)}15%{opacity:1;transform:translate(-50%,-100%)scale(1.1)}25%{transform:translate(-50%,-100%)scale(1)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-130%)scale(.9)}}@keyframes moment-stay{0%{opacity:0;transform:translate(-50%,-60%)scale(.4)}to{opacity:1;transform:translate(-50%,-100%)scale(1)}}@keyframes thread-draw{to{stroke-dashoffset:0}}@keyframes thread-fade{0%,70%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.moment{opacity:1}.thread-path{stroke-dashoffset:0}}.bonus-line{align-items:center;gap:6px;padding-left:3px;display:flex}.star-lines{flex-wrap:wrap;justify-content:center;gap:6px;margin:4px 0 0;padding:0;list-style:none;display:flex}.star-lines li{background:var(--surface-sunken);color:var(--ink-secondary);font:700 11.5px/1.2 var(--font-ui);border-radius:10px;align-items:center;gap:4px;padding:3px 9px 3px 7px;animation:.3s ease-out both fade;display:inline-flex}.star-lines li.ok{background:var(--accent-causal-soft);color:var(--ink-primary)}.star-lines li.ok svg{color:var(--accent-causal)}.sol-banner{background:var(--surface-sunken);font:800 12px/1.3 var(--font-ui);color:var(--ink-secondary);border-radius:12px;margin-top:4px;padding:4px 12px;animation:.4s 1s both fade}.sol-banner.new{background:var(--state-success);color:var(--ink-on-accent);animation:.5s cubic-bezier(.3,1.6,.5,1) 1.2s both badge-in}.hint-card{overscroll-behavior:contain;border-radius:18px;flex-direction:column;gap:8px;max-height:324px;padding:10px 12px 12px;display:flex;overflow-y:auto}.hint-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.hint-list li{background:var(--accent-causal-soft);border-radius:10px;padding:6px 8px}.result-actions{background:var(--surface-card);z-index:1;border-radius:0 0 24px 24px;margin:0 -20px -18px;padding:10px 20px 14px;position:sticky;bottom:-18px;box-shadow:0 -6px 12px -8px #3b2a2033}.goal-card .bonus-line{font-size:11px}.goal-card .bonus-line .t-body-s{font-size:11px;line-height:1.2}.title-plate{background:#fff9f0d1;border-radius:14px;padding:3px 12px 4px;box-shadow:0 1px 6px #3b2a201f}.fs-ask{z-index:95;background:#14100c8c;place-items:center;display:grid;position:absolute;inset:0}.fs-ask-card{text-align:center;border-radius:24px;flex-direction:column;align-items:center;gap:10px;width:360px;padding:20px 22px 18px;display:flex}.fs-ask-card>svg{color:var(--accent-action)}
