:root{--color-white:#fff;--color-premium-text:#f6eee1;--color-premium-muted:#c6cfde;--color-premium-current:#ffe1a6;--color-premium-error:#ffaaa2;--color-premium-success:#b2dac8;--surface-premium-glass:#060f23d1;--surface-premium-glass-soft:#060f23bd;--border-premium-glass:#efd3a93d;--color-ink:#191725;--color-muted:#35567d;--color-muted-on-dark:#9fb4d0;--color-paper:#fff4dd;--color-room-wall:#24244c;--color-room-fabric:#35567d;--color-lamp-light:#ffe2a1;--color-wood:#714632;--color-wood-dark:#3d2630;--color-frame:#101126;--color-frame-soft:#59606d;--color-cat-coat:#a9afb7;--color-cat-shadow:#59606d;--color-cat-muzzle:#fff4dd;--color-prompt-current:#191725;--color-prompt-pending:#59606d;--color-success:#2f6b59;--color-error:#9f241f;--pixel-focus:#2f7f9c;--color-button-bg:#714632;--color-button-text:#fff4dd;--surface-panel-light:#fff4ddf5;--surface-panel-dark:#101126f5;--shadow-room:0 1.2rem 2.8rem #10112685;--shadow-button:0 .35rem 0 var(--color-wood-dark);--radius-frame:8px;--font-display:Georgia, "Times New Roman", serif;--font-mono:"Courier New", ui-monospace, monospace;--viewport-height:100vh;color:var(--color-ink);background:var(--color-room-wall);font-synthesis:none;text-rendering:optimizelegibility;font-family:Trebuchet MS,Avenir Next,Avenir,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{background:linear-gradient(180deg, #35567d61 0 36%, transparent 62%), linear-gradient(180deg, transparent 0 67%, #1011268f 67% 100%), repeating-linear-gradient(90deg, #59606d38 0 1px, transparent 1px 5.5rem), var(--color-room-wall);min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}@supports (height:100dvh){:root{--viewport-height:100dvh}}button,input{font:inherit}button{min-height:2.75rem}button:focus-visible,input:focus-visible{outline:4px solid var(--pixel-focus);outline-offset:4px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.game-input-bridge__native-input{opacity:0;width:1px;max-width:1px;height:1px;position:fixed;top:0;left:0}.game-input-bridge>button{right:max(1rem, env(safe-area-inset-right));bottom:max(1rem, env(safe-area-inset-bottom));z-index:10;position:fixed}.game-input-bridge:has(.game-input-bridge__native-input:focus-visible):after{z-index:10;border:3px solid var(--pixel-focus);border-radius:var(--radius-frame);background:var(--color-paper);box-shadow:0 .22rem 0 var(--color-frame-soft);color:var(--color-ink);content:"入力中";pointer-events:none;padding:.65rem .85rem;font-weight:800;position:fixed;bottom:1rem;right:1rem}#root,.app-shell{min-height:100vh}.app-shell{padding:max(1.5rem, env(safe-area-inset-top)) max(1.5rem, env(safe-area-inset-right)) max(1.5rem, env(safe-area-inset-bottom)) max(1.5rem, env(safe-area-inset-left));place-items:center;display:grid;overflow-x:hidden}.game-frame{width:min(100%,70rem);max-width:100%}.night-room-stage{--scene-layout:desktop;border:3px solid var(--color-frame);border-radius:var(--radius-frame);background:var(--color-room-wall);min-height:min(42rem,100vh - 3rem);box-shadow:var(--shadow-room), inset 0 0 0 3px #fff4dd29;grid-template-columns:minmax(0,1fr);grid-template-areas:"scene";display:grid;position:relative;overflow:hidden}.night-room-stage:before{z-index:0;content:"";pointer-events:none;background:linear-gradient(145deg,#ffe2a11f 0 28%,#0000 47%),linear-gradient(#0000 0 70%,#10112652 70% 100%);position:absolute;inset:0}.night-room-stage>*{z-index:1;min-width:0;position:relative}.scene-plane--background,.scene-plane--midground{position:absolute;inset:0}.room-environment,.room-environment__background,.room-environment__midground,.room-environment__foreground{pointer-events:none;position:absolute;inset:0}.room-environment__background{z-index:0}.room-environment__midground{z-index:1}.room-environment__foreground{z-index:2}.room-environment__layer{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.pixelated{image-rendering:pixelated}.room-environment[data-ambient-motion=on] .room-environment__layer--city-lights{animation:11s ease-in-out infinite alternate room-city-lights}.room-environment[data-ambient-motion=on] .room-environment__layer--props{animation:15s ease-in-out infinite alternate room-props}.room-environment[data-ambient-motion=on] .room-environment__layer--lamp-glow{animation:8s ease-in-out infinite alternate room-lamp-glow}@keyframes room-city-lights{to{opacity:.9}}@keyframes room-props{to{transform:translateY(-2px)}}@keyframes room-lamp-glow{to{opacity:.88;transform:translateY(1px)}}.scene-plane--foreground{grid-area:scene}.scene-plane--gameplay,.scene-plane--hud,.scene-plane--controls,.scene-plane--overlay{pointer-events:none;grid-area:scene}.scene-plane--gameplay>*,.scene-plane--hud>*,.scene-plane--controls>*,.scene-plane--overlay>*{pointer-events:auto}.scene-plane--foreground>.cat-stage{height:100%}.cat-stage{background-color:#0000;background-image:linear-gradient(#ffe2a11a 0 58%,#0000 58%),linear-gradient(90deg,#1011261f 0 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:auto,2.25rem 100%,auto;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;flex-direction:column;grid-area:scene;justify-content:flex-end;align-items:center;min-height:28rem;padding:2rem 1.5rem 8rem;display:flex;position:relative}.cat-stage:before{z-index:2;border:2px solid var(--color-frame);border-radius:var(--radius-frame);background:var(--color-paper);color:var(--color-muted);content:"REST";letter-spacing:0;padding:.35rem .55rem;font-size:.72rem;font-weight:800;position:absolute;top:1rem;left:1rem}.cat-stage:has(.pixel-cat[data-base-state=typing]):before{content:"TYPE"}.cat-stage:has(.pixel-cat[data-expression=surprised]):before{border-color:var(--color-error);color:var(--color-error);content:"MISS"}.cat-stage:has(.pixel-cat[data-base-state=focused]):before{content:"10s"}.cat-stage:has(.pixel-cat[data-celebration=true]):before{border-color:var(--color-success);color:var(--color-success);content:"BEST"}.cat-stage:after{border:3px solid var(--color-wood-dark);border-radius:var(--radius-frame);background:linear-gradient(180deg, #ffffff24, transparent 48%), repeating-linear-gradient(90deg, transparent 0 4.5rem, #5a332533 4.5rem calc(4.5rem + 2px)), var(--color-wood);content:"";width:min(100%,24rem);height:4.25rem;box-shadow:inset 0 .45rem #ffe4a338}.pixel-cat{z-index:1;width:384px;height:384px;margin-bottom:-.75rem;overflow:hidden}.pixel-cat__viewport{transform-origin:0 0;width:96px;height:96px;position:relative;overflow:hidden;transform:scale(4)}.pixel-cat__atlas{image-rendering:pixelated;display:block;position:absolute}.v2-cat{z-index:1;pointer-events:none;width:clamp(11rem,30vw,24rem);margin-bottom:-.75rem}.v2-cat__image{width:100%;height:auto;image-rendering:pixelated;display:block}@keyframes v2-cat-breathe{to{transform:translateY(-3px)}}.pixel-effect{z-index:3;pointer-events:none;position:absolute}.pixel-effect img{max-width:7.5rem;image-rendering:pixelated;display:block}.start-screen,.play-screen,.result-panel{grid-area:scene;min-width:0;padding:2.5rem}.start-screen,.result-panel{flex-direction:column;justify-content:center;gap:1.25rem;display:flex}.start-screen__controls .sound-toggle,.result-panel .sound-toggle,.play-screen .sound-toggle{place-self:start end}.night-room-stage[data-phase=ready] .start-screen__overlay{pointer-events:none}.night-room-stage[data-phase=ready] .scene-plane--controls{z-index:2;align-content:start;justify-self:end;width:min(18rem,48%);display:grid}.start-screen h1,.result-panel h2{color:var(--color-ink);font-family:var(--font-display);letter-spacing:0;margin:0;font-size:3.35rem;font-weight:700;line-height:1}.difficulty-selector{border:2px solid var(--color-frame-soft);border-radius:var(--radius-frame);background:var(--surface-panel-light);gap:.65rem;min-width:0;margin:0;padding:1rem;display:grid}.difficulty-selector legend,.best-record h2,.game-timer dt,.game-stats dt{color:var(--color-muted);letter-spacing:0;font-size:.78rem;font-weight:800;line-height:1.2}.difficulty-selector legend{padding-inline:.35rem}.difficulty-selector label{min-width:0;color:var(--color-ink);cursor:pointer;align-items:center;gap:.65rem;font-weight:800;display:flex}.difficulty-selector input{width:1.15rem;height:1.15rem;accent-color:var(--color-button-bg)}.difficulty-selector input:checked+span{text-decoration:underline;-webkit-text-decoration-color:var(--color-button-bg);text-decoration-color:var(--color-button-bg);text-underline-offset:.22em;text-decoration-thickness:.18em}.best-record{border:2px solid var(--color-frame-soft);border-radius:var(--radius-frame);background:var(--surface-panel-light);padding:1rem}.best-record h2,.best-record p,.best-record dl,.result-stats{margin:0}.best-record p,.start-screen>p,.result-panel__message{color:var(--color-muted);line-height:1.6}.best-record dl,.result-stats,.game-stats dl{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.best-record dl{gap:.75rem}.best-record dt,.result-stats dt{color:var(--color-muted);font-size:.72rem;font-weight:800}.best-record dd,.result-stats dd{color:var(--color-ink);font-family:var(--font-display);font-variant-numeric:tabular-nums;margin:.25rem 0 0;font-size:1.45rem;font-weight:700}.start-screen>p{border-left:4px solid var(--pixel-focus);margin:0;padding-left:.8rem}.start-screen__controls>button,.retry-button,.result-panel>button,.sound-toggle{border:2px solid var(--color-wood-dark);border-radius:var(--radius-frame);background:var(--color-button-bg);box-shadow:var(--shadow-button);color:var(--color-button-text);cursor:pointer;letter-spacing:0;padding:.85rem 1.15rem;font-weight:900;line-height:1.15;transition:transform .14s,box-shadow .14s,background-color .14s}.start-screen__controls>button,.retry-button{align-self:flex-start;min-width:10.5rem}.result-panel>button:not(.retry-button),.sound-toggle{background:var(--color-paper);box-shadow:0 .22rem 0 var(--color-frame-soft);color:var(--color-ink)}button:hover{transform:translateY(-2px)}button:active{box-shadow:none;transform:translateY(.2rem)}.play-screen{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"hud sound""prompt prompt""milestone milestone";align-content:center;gap:1.25rem;display:grid}.play-screen__gameplay{align-content:end;justify-items:center;gap:1.25rem;min-height:100%;padding:2.5rem;display:grid}.play-screen__hud{pointer-events:none;min-height:100%;position:relative}.play-screen__hud .game-hud{display:contents}.play-screen__hud .game-timer,.play-screen__hud .game-stats{border:3px solid var(--color-frame);border-radius:var(--radius-frame);background:var(--surface-panel-dark);position:absolute;box-shadow:inset 0 -.3rem #ffb34f3d}.play-screen__hud .game-timer dt,.play-screen__hud .game-stats dt{color:var(--color-muted-on-dark)}.play-screen__hud .game-timer{top:1.5rem;left:50%;transform:translate(-50%)}.play-screen__hud .game-stats{top:6.5rem;left:1.5rem}.play-screen__controls,.start-screen__controls{justify-items:start;gap:1rem;padding:1.5rem;display:grid}.play-screen__controls{justify-items:end}.play-screen__difficulty{border:2px solid var(--color-frame-soft);border-radius:var(--radius-frame);background:var(--surface-panel-dark);color:var(--color-muted-on-dark);margin:0;padding:.45rem .65rem;font-size:.72rem;font-weight:800}.play-screen__prompt{border:3px solid var(--color-frame);border-radius:var(--radius-frame);background:var(--color-paper);width:min(100%,36rem);min-width:0;padding:1.4rem;box-shadow:inset 0 -.35rem #ffb34f47}.typing-prompt{overflow-wrap:anywhere;text-align:center;gap:.45rem;max-width:100%;margin:0;display:grid}.typing-prompt__text,.typing-prompt__reading,.typing-prompt__guide{margin:0}.typing-prompt__text{color:var(--color-prompt-current);font-size:clamp(1.6rem,3vw,2.4rem);font-weight:800;line-height:1.25}.typing-prompt__reading{color:var(--color-muted);font-size:clamp(.85rem,1.5vw,1.1rem);font-weight:700;line-height:1.25}.typing-prompt__guide{color:var(--color-prompt-pending);font-family:var(--font-mono);letter-spacing:0;flex-wrap:wrap;justify-content:center;gap:.08em;font-size:clamp(4rem,5vw,4.75rem);font-weight:800;line-height:1.45;display:flex}.typing-prompt__character{min-width:.62em;color:var(--color-prompt-pending);text-align:center;border-bottom:.11em solid #0000;justify-content:center;padding:0 .02em .38em;transition:color .1s,transform .1s,border-color .1s;display:inline-flex;position:relative}.typing-prompt__character--completed{color:var(--color-success)}.typing-prompt__character--completed:before{width:.28em;height:.12em;color:var(--color-success);content:"";border-bottom:.06em solid;border-left:.06em solid;position:absolute;bottom:.05em;transform:rotate(-45deg)}.typing-prompt__character--current{border-bottom:.11em solid var(--color-button-bg);color:var(--color-prompt-current)}.typing-prompt__character--current:after{border:1px solid var(--color-frame-soft);border-radius:var(--radius-frame);background:var(--color-paper);color:var(--color-muted);content:"現在";white-space:nowrap;padding:.18rem .28rem;font-family:Trebuchet MS,Avenir Next,Avenir,ui-sans-serif,system-ui,sans-serif;font-size:.7rem;font-weight:800;line-height:1;position:absolute;bottom:-1.08rem;right:50%;transform:translate(50%)}.typing-prompt__character--error{border-bottom-color:var(--color-error);color:var(--color-error);-webkit-text-decoration:underline wavy var(--color-error);text-decoration:underline wavy var(--color-error);text-underline-offset:.2em;text-decoration-thickness:.08em;transform:translateY(-.08em)}.typing-prompt__character--error:after{border-color:var(--color-error);color:var(--color-error);content:"ミス"}.game-hud{border:3px solid var(--color-wood-dark);border-radius:var(--radius-frame);background:var(--surface-panel-light);grid-area:hud;grid-template-columns:auto minmax(0,1fr);display:grid;overflow:hidden;box-shadow:inset 0 -.3rem #c8a98457}.game-hud .game-timer,.game-hud .game-stats{min-width:0;padding:.65rem .85rem}.game-timer dl,.game-timer dd,.game-stats dl,.game-stats dd{margin:0}.game-timer dl>div{align-items:baseline;gap:.65rem;min-width:0;display:flex}.game-timer dd{color:var(--color-lamp-light);font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700}.play-screen .sound-toggle{grid-area:sound}.play-screen__milestone{border:2px dashed var(--color-success);border-radius:var(--radius-frame);color:var(--color-success);grid-area:milestone;margin:0;padding:.65rem .85rem;font-weight:900}.game-stats dl{grid-template-columns:repeat(4,minmax(0,1fr));display:grid;overflow:hidden}.game-stats dl>div,.result-stats>div{min-width:0;padding:.15rem .65rem}.game-stats dl>div+div,.result-stats>div:nth-child(2n){border-left:2px solid var(--color-frame-soft)}.game-stats dt{overflow-wrap:anywhere}.game-stats dd{color:var(--color-paper);font-family:var(--font-display);font-variant-numeric:tabular-nums;margin-top:.25rem;font-size:1.55rem;font-weight:700}.result-panel h2{font-size:3rem}.result-panel{border:3px solid var(--color-frame);border-radius:var(--radius-frame);background:var(--surface-panel-dark);place-self:center;width:min(100% - 3rem,38rem);box-shadow:0 .55rem #3d2630e0}.result-panel h2,.result-panel__message,.result-panel .result-stats dd{color:var(--color-paper)}.result-panel .result-stats{border-color:var(--color-frame-soft);background:#fff4dd1a}.result-panel .result-stats dt{color:var(--color-lamp-light)}.result-panel__message{margin:0}.result-panel__metrics{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;display:grid}.result-panel__celebration{place-items:center;min-width:7.5rem;display:grid}.result-panel__celebration .pixel-effect{position:static}@media (width>=48.0625rem){.night-room-stage[data-phase=ready] .start-screen__overlay{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(12rem,16rem) minmax(0,1fr) minmax(14rem,18rem);gap:1.25rem;height:100%;padding:1.5rem;display:grid}.night-room-stage[data-phase=ready] .start-screen h1{max-width:18rem;color:var(--color-paper);text-align:center;text-shadow:3px 3px 0 var(--color-frame);grid-area:1/2;justify-self:center}.night-room-stage[data-phase=ready] .best-record{grid-area:2/1;align-self:start}.night-room-stage[data-phase=ready] .start-screen__overlay>p{border:2px solid var(--color-frame-soft);border-radius:var(--radius-frame);background:var(--surface-panel-dark);color:var(--color-paper);grid-area:3/2;justify-self:center;padding:.65rem .85rem}.scene-plane--hud{grid-area:scene;position:relative;inset:auto}.night-room-stage[data-phase=finished] .scene-plane--overlay{grid-area:auto;position:absolute;inset:0}.scene-plane--hud .play-screen__hud{width:100%;height:100%}.play-screen__hud .game-stats{top:5.75rem}.play-screen__hud .game-stats dl{grid-template-columns:1fr}.play-screen__hud .game-stats dl>div+div{border-top:2px solid var(--color-frame-soft);border-left:0}.night-room-stage[data-phase=finished] .scene-plane--overlay{place-items:center;display:grid}.night-room-stage[data-phase=finished] .scene-plane--overlay>.result-panel{grid-area:auto}}.result-stats{border:2px solid var(--color-frame-soft);border-radius:var(--radius-frame);background:#fff8ecc7;overflow:hidden}.result-stats>div:nth-child(n+3){border-top:2px solid var(--color-frame-soft)}.result-stats dd{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.result-stats dd span+span{border:2px solid var(--color-success);border-radius:var(--radius-frame);color:var(--color-success);padding:.18rem .28rem;font-family:Trebuchet MS,Avenir Next,Avenir,ui-sans-serif,system-ui,sans-serif;font-size:.72rem;font-weight:900;line-height:1}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=48rem){.night-room-stage[data-phase=ready] .start-screen__achievements-button{display:none}body{overflow-x:hidden}.app-shell{min-height:var(--viewport-height);padding:max(.75rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(.75rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));display:block;overflow-x:hidden}.game-frame{width:100%;max-width:100%}.night-room-stage{--scene-layout:mobile;max-width:100%;min-height:0;padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex}.night-room-stage[data-phase=playing]{min-height:min(var(--viewport-height), 52rem)}.scene-plane--background,.scene-plane--midground,.scene-plane--overlay{position:absolute;inset:0}.scene-plane--foreground,.scene-plane--gameplay,.scene-plane--hud,.scene-plane--controls{width:100%}.scene-plane--foreground{order:1}.scene-plane--gameplay{order:2}.scene-plane--hud{order:3}.scene-plane--controls{order:4}.room-environment__layer--props,.room-environment__layer--city-lights{display:none}.cat-stage{border-right:0;border-bottom:3px solid var(--color-frame);min-height:10.75rem;padding:1.1rem .85rem 1rem}.pixel-cat{width:144px;height:144px}.pixel-cat__viewport{transform:scale(1.5)}.v2-cat{width:min(66vw,18rem)}.cat-stage:after{width:min(100%,15rem);height:2.7rem}.start-screen,.play-screen,.result-panel{padding:1rem}.start-screen h1{font-size:2.45rem}.night-room-stage[data-phase=ready] .start-screen__overlay{padding-bottom:15rem;padding-right:1rem}.night-room-stage[data-phase=ready] .scene-plane--controls{align-content:end;width:100%}.start-screen>p{display:block}.play-screen{grid-template-columns:1fr;grid-template-areas:"hud""sound""prompt""milestone";align-content:start}.play-screen .sound-toggle{justify-self:start}.play-screen__gameplay,.play-screen__hud,.play-screen__controls{min-height:0;padding:.75rem 1rem}.play-screen__gameplay{align-content:start}.play-screen__hud .game-timer,.play-screen__hud .game-stats{width:100%;position:static;transform:none}.play-screen__hud .game-timer{border-bottom:2px solid var(--color-frame-soft)}.play-screen__hud .game-stats{border-top:0}.play-screen__hud .game-stats dl{grid-template-columns:repeat(2,minmax(0,1fr))}.play-screen__hud .game-stats dl>div:nth-child(odd){border-left:0}.play-screen__hud .game-stats dl>div:nth-child(n+3){border-top:2px solid var(--color-frame-soft)}.play-screen__prompt{padding:1rem .8rem 1.35rem}.typing-prompt__guide{font-size:clamp(2rem,10vw,2.5rem);line-height:1.35}.game-hud{grid-template-columns:1fr}.game-hud .game-timer{border-bottom:2px solid var(--color-frame-soft)}.game-input-bridge>button{right:max(.75rem, env(safe-area-inset-right));bottom:max(.75rem, env(safe-area-inset-bottom))}.game-input-bridge:has(.game-input-bridge__native-input:focus-visible):after{right:max(.75rem, env(safe-area-inset-right));bottom:max(.75rem, env(safe-area-inset-bottom))}.game-stats dl,.best-record dl,.result-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=23rem){.app-shell{padding:.5rem}.start-screen,.play-screen,.result-panel{padding:.85rem}.typing-prompt__guide{font-size:2.1rem}.game-stats dl,.best-record dl,.result-stats{grid-template-columns:1fr}.game-stats dl>div+div,.result-stats>div:nth-child(2n){border-left:0;border-top:2px solid var(--color-frame-soft)}}.app-shell{color:var(--color-premium-text);padding:0;display:block}.desktop-brand-logo{z-index:6;top:max(1.5rem, env(safe-area-inset-top));left:max(1.5rem, env(safe-area-inset-left));pointer-events:none;width:min(17.5rem,28vw);height:auto;position:fixed}@media (width<=48.0624rem){.desktop-brand-logo{display:none}}.night-room-stage{height:var(--viewport-height);min-height:42rem;box-shadow:none;isolation:isolate;border:0;border-radius:0;display:block}.night-room-stage>.scene-plane{pointer-events:none;width:100%;position:absolute;inset:0}.scene-plane--background{z-index:0}.scene-plane--midground{z-index:1}.scene-plane--foreground{z-index:2}.room-environment__layer{object-position:50% 50%;image-rendering:auto}.v2-cat{width:min(38vw,31rem);margin:0;position:absolute;bottom:23%;left:58%;translate:-50%}.v2-cat__image{image-rendering:auto}.v2-cat[data-motion=animated]{animation:none}.v2-cat[data-cat-asset=miss]{filter:drop-shadow(0 0 5px #c75e541f)}.v2-cat[data-cat-asset^=typing]{filter:drop-shadow(0 0 4px #f4c0711a)}.typing-panel,.result-panel,.start-screen__panel,.game-hud__top-metrics,.play-screen__controls{border:1px solid var(--border-premium-glass);background:linear-gradient(135deg, #ffdda60d, transparent 42%), var(--surface-premium-glass);-webkit-backdrop-filter:blur(9px)saturate(108%);backdrop-filter:blur(9px)saturate(108%);border-radius:14px;box-shadow:inset 0 1px #ffedcf0d,0 9px 32px #0000002e,0 0 20px #e5a7560a}.app-shell button{color:var(--color-premium-text);box-shadow:none;background:#283347;border:1px solid #e8ca9a61;border-radius:8px;min-height:2.75rem;padding:.6rem 1rem;font-weight:700;transform:none}.app-shell button:hover{background:#36465e;border-color:#e8c99c}.app-shell button:focus-visible,.app-shell input:focus-visible{box-shadow:0 0 0 2px var(--color-paper)}.app-shell .start-screen__start-button,.app-shell .retry-button{color:var(--color-paper);background:#714632}.app-shell .sound-toggle{font-size:.72rem}.night-room-stage[data-phase=ready] .scene-plane--controls{z-index:4;width:100%;display:block}.night-room-stage[data-phase=ready] .scene-plane--overlay{z-index:4}.night-room-stage[data-phase=ready] .start-screen__overlay{pointer-events:auto;grid-template-columns:minmax(12rem,.8fr) minmax(29rem,1.4fr);grid-template-areas:"intro controls""best best";align-items:center;gap:.8rem 1.6rem;width:min(61rem,100% - 3rem);height:auto;min-height:0;padding:1.05rem 1.35rem .9rem;display:grid;position:absolute;bottom:2rem;left:50%;translate:-50%}.night-room-stage[data-phase=ready] .start-screen h1{max-width:none;color:var(--color-premium-text);text-align:left;text-shadow:none;margin:0 0 .45rem;font-family:inherit;font-size:1.7rem;font-weight:600}.start-screen__intro>p{color:var(--color-premium-muted);background:0 0;border:0;margin:0;padding:0;font-size:.75rem;line-height:1.45}.best-record{background:0 0;border:0;border-top:1px solid #efd3a91f;grid-area:best;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem 1rem;padding:.65rem 0 0;display:grid}.best-record p,.best-record h2{color:var(--color-premium-muted);letter-spacing:.06em;margin:0;font-size:.64rem}.best-record dt{color:var(--color-premium-muted);font-size:.58rem}.start-screen__controls{grid-area:controls;grid-template-columns:minmax(10.5rem,.8fr) minmax(18rem,1.4fr);place-items:center stretch;gap:.7rem 1rem;width:auto;min-height:0;padding:0;display:grid;position:static}.difficulty-selector label{color:var(--color-premium-text);gap:.3rem;min-height:1.9rem;font-size:.7rem}.difficulty-selector input:checked+span{-webkit-text-decoration-color:var(--color-premium-current);text-decoration-color:var(--color-premium-current)}.start-screen__controls>.start-screen__start-button{letter-spacing:.11em;background:linear-gradient(#ffe0b114,#0000),#805039;border-color:#f8ca867a;min-width:0;min-height:3.2rem;font-size:.84rem;box-shadow:0 6px 20px #28130d3d}.start-error{color:var(--color-premium-error);grid-column:1/-1;margin:0}.play-screen__gameplay{text-align:center;background:linear-gradient(135deg, #ffdda60a, transparent 42%), var(--surface-premium-glass-soft);gap:.9rem;width:min(42rem,100% - 4rem);min-height:0;padding:1rem 2rem;position:absolute;bottom:2rem;left:50%;translate:-50%}.typing-prompt__text{color:var(--color-premium-text);text-shadow:0 1px 4px #00000094}.typing-prompt__reading{color:var(--color-premium-muted);text-shadow:0 1px 4px #00000094}.typing-prompt__guide{justify-content:center;font-size:clamp(2rem,3.2vw,3rem);font-weight:700;line-height:1.25}.typing-prompt__character{color:var(--color-premium-muted);padding-bottom:.25em}.typing-prompt__character--completed,.typing-prompt__character--completed:before{color:var(--color-premium-success)}.typing-prompt__character--current{color:var(--color-premium-current);border-bottom-color:var(--color-premium-current)}.typing-prompt__character--current:after{content:none;color:var(--color-premium-current);background:0 0;border:0;padding:0;font-size:.6rem;display:none;bottom:-.85rem}.typing-prompt__character--error,.typing-prompt__character--error:after{color:var(--color-premium-error);border-color:var(--color-premium-error);-webkit-text-decoration-color:var(--color-premium-error);text-decoration-color:var(--color-premium-error)}.play-screen__live-stats{width:100%}.play-screen__live-stats dl{grid-template-columns:repeat(3,1fr);gap:1rem;margin:0;display:grid}.play-screen__live-stats dt,.game-hud__label,.game-hud__score dt{color:var(--color-premium-muted);letter-spacing:.12em;font-size:.65rem}.play-screen__live-stats dd{font-variant-numeric:tabular-nums;margin:.3rem 0 0;font-size:1rem}.play-screen__milestone{color:var(--color-premium-current);border:0;margin:0;padding:0;font-size:.68rem;position:absolute;top:.6rem;right:1rem}.game-hud__top-metrics{background:linear-gradient(135deg,#ffdda60d,#0000 52%),#081121bd;gap:2rem;min-width:11rem;padding:.68rem 1rem;display:flex;position:absolute;top:1.5rem;left:1.5rem}.game-hud__time{gap:.2rem;display:grid}.play-screen__hud .game-timer{box-shadow:none;background:0 0;border:0;padding:0;position:static;transform:none}.game-timer dd{color:var(--color-premium-current);font-family:inherit;font-size:1.5rem}.game-hud__score{margin:0}.game-hud__score dd{font-variant-numeric:tabular-nums;margin:.2rem 0 0;font-size:1.5rem}.play-screen__controls{align-items:center;justify-items:initial;background:#081121a8;border-radius:10px;flex-direction:row;gap:.35rem;padding:.3rem;display:flex;position:absolute;top:1.5rem;bottom:auto;right:1.5rem}.play-screen__difficulty{color:var(--color-premium-muted);white-space:nowrap;background:0 0;border:0;border-radius:6px;margin:0;padding:.25rem .4rem;font-size:.6rem}.night-room-stage[data-phase=finished] .scene-plane--overlay{display:block}.result-panel{grid-template-columns:minmax(0,1fr) auto;gap:.4rem 1rem;width:min(52rem,100% - 3rem);padding:1.1rem 1.5rem;display:grid;position:absolute;bottom:1.5rem;left:50%;translate:-50%}.result-panel__header{grid-column:1/-1;justify-content:flex-start;align-items:center;gap:1rem;display:flex}.result-panel h2{margin:0;font-family:inherit;font-size:1.4rem;font-weight:600}.result-panel__message{color:var(--color-premium-muted);grid-column:1/-1;margin:.2rem 0 .8rem;font-size:.8rem}.result-panel__metrics{display:block}.result-panel .result-stats{background:0 0;border:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:0;display:grid}.result-stats>div,.result-stats>div:nth-child(n){border:0;padding:0}.result-stats>.result-stats__item--new{background:linear-gradient(135deg,#efb15b1f,#0000 78%);border-radius:8px;margin:0;padding:.35rem .45rem;animation:.72s ease-out both result-new-best;box-shadow:inset 0 0 0 1px #f4c07121}.result-panel .result-stats dt{color:var(--color-premium-muted);letter-spacing:.08em;font-size:.65rem}.result-panel .result-stats dd{font-family:inherit;font-size:1.3rem}.result-stats dd span+span{color:var(--color-premium-current);background:#92582b2e;border:1px solid #f4c0716b;padding:.12rem .2rem;font-size:.58rem;box-shadow:0 0 12px #efb15b1f}.result-panel__actions{grid-area:3/2;justify-content:center;align-items:end;gap:.75rem;margin:0;display:flex}.result-panel__utility{grid-area:4/2;justify-self:end;margin-top:.35rem}.result-panel__utility .sound-toggle{min-height:2.75rem;color:var(--color-premium-muted);padding:.35rem .65rem;font-size:.62rem}.result-panel__actions button{letter-spacing:.08em;min-width:7rem;min-height:2.75rem;font-size:.75rem}.result-panel__celebration{display:none}.game-input-bridge:has(.game-input-bridge__native-input:focus-visible):after{content:none;display:none}@keyframes result-new-best{0%{background-color:#efb15b21;box-shadow:inset 0 0 0 1px #f4c07133,0 0 18px #efb15b26}}@media (width<=48rem){.app-shell{padding:0}.night-room-stage,.night-room-stage[data-phase=playing]{--scene-layout:mobile;min-height:500px;height:var(--viewport-height)}.room-environment__layer{object-position:54% 50%;height:120%;top:-20%}.v2-cat{width:min(86vw,23rem);bottom:32%;left:51%}.night-room-stage[data-phase=ready] .start-screen__overlay{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro""controls""best";gap:.65rem;width:calc(100% - 2rem);min-height:0;padding:.85rem 1rem .75rem;bottom:1rem;left:50%;translate:-50%}.night-room-stage[data-phase=ready] .start-screen h1{margin-bottom:.3rem;font-size:1.3rem}.start-screen__controls{grid-template-columns:minmax(0,1fr);gap:.5rem;width:100%;padding:0}.difficulty-selector label{min-height:2.75rem}.start-screen__utilities{justify-content:space-between;align-items:end}.difficulty-selector{justify-content:flex-start;gap:.5rem}.best-record{grid-template-columns:auto minmax(0,1fr);gap:.5rem .75rem;padding-top:.5rem}.play-screen__gameplay{gap:.6rem;width:calc(100% - 2rem);padding:.8rem 1rem;bottom:4.75rem}.typing-prompt__guide{font-size:2rem}.play-screen__live-stats dl{gap:.4rem}.scene-plane--hud .play-screen__hud{padding:0}.game-hud__top-metrics{top:max(1rem, env(safe-area-inset-top));gap:1.5rem;min-width:10rem;padding:.5rem .75rem;left:1rem}.play-screen__controls{top:max(1rem, env(safe-area-inset-top));bottom:auto;left:auto;right:1rem}.play-screen__difficulty{display:none}.result-panel{width:calc(100% - 2rem);padding:.85rem 1rem;display:block;bottom:1rem}.result-panel h2{font-size:1.12rem}.result-panel__header{gap:.5rem}.result-panel__message{font-size:.7rem}.result-panel .result-stats{gap:.5rem}.result-panel .result-stats dt{letter-spacing:0;font-size:.56rem}.result-panel .result-stats dd{font-size:1.05rem}.result-panel__actions{margin-top:.75rem}.result-panel__utility{margin-top:.45rem}}@media (width<=48rem) and (height<=600px){.night-room-stage,.night-room-stage[data-phase=playing]{min-height:0}.v2-cat{width:min(46vw,30vh);bottom:51%}.room-environment__layer{object-position:54% 100%;height:165%;top:-65%}.night-room-stage[data-phase=ready] .start-screen__overlay{gap:.4rem;padding:.55rem .8rem;bottom:.5rem}.start-screen__intro>p{display:none}.start-screen__controls{gap:.35rem;padding:0}.start-screen__controls>.start-screen__start-button{min-height:2.75rem;padding-block:.55rem}.start-screen__utilities{align-items:center}.best-record dl{gap:.4rem}.play-screen__gameplay{padding:.6rem 1rem;bottom:4.4rem}.typing-prompt__guide{font-size:1.8rem}.play-screen__live-stats dd{font-size:.9rem}.result-panel{padding:.65rem 1rem}.result-panel__utility{margin-top:.3rem}}@media (prefers-reduced-motion:reduce){.room-environment__layer--city-lights,.room-environment__layer--props,.room-environment__layer--lamp-glow{animation:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation:none!important}.result-stats>.result-stats__item--new{animation:none}}.app-shell{min-height:var(--viewport-height);color:var(--color-premium-text);background:#0b1020;padding:0;display:block}.game-frame{width:100%}.night-room-stage{--scene-camera:desktop;width:100%;height:var(--viewport-height);min-height:42rem;box-shadow:none;isolation:isolate;background:#0b1020;border:0;border-radius:0;display:block;position:relative;overflow:hidden}.night-room-stage:before,.cat-stage:before,.cat-stage:after{display:none}.night-room-stage>.scene-plane{pointer-events:none;width:100%;min-width:0;position:absolute;inset:0}.scene-plane--background{z-index:0;overflow:hidden}.scene-plane--midground{z-index:1;overflow:hidden}.scene-plane--foreground{z-index:2;overflow:hidden}.scene-plane--gameplay,.scene-plane--hud{z-index:3}.scene-plane--controls,.scene-plane--overlay{z-index:4}.scene-plane--gameplay>*,.scene-plane--controls>*,.scene-plane--overlay>*{pointer-events:auto}.room-environment,.v2-cat{width:max(100%, calc(var(--viewport-height) * 1.7779));aspect-ratio:1672/941;pointer-events:none;position:absolute;top:50%;left:50%;translate:-50% -50%}.room-environment__art,.room-environment__layer{width:100%;height:100%;display:block;position:absolute;inset:0}.room-environment__layer{object-fit:fill;image-rendering:pixelated}.cat-stage{pointer-events:none;background:0 0;border:0;min-height:0;padding:0;position:absolute;inset:0}.v2-cat{z-index:1;margin:0;overflow:visible}.v2-cat__subject-envelope{width:39.3541%;height:59.5112%;position:absolute;top:23.1668%;left:46.6507%}.v2-sprite,.v2-cat__desk-occlusion{position:absolute;overflow:hidden}.v2-sprite__sheet,.v2-cat__desk-occlusion img{max-width:none;display:block;position:absolute;top:0;left:0}.v2-cat__body{z-index:10;width:39.8923%;height:72.3698%;top:22.9543%;left:36.6627%}.v2-cat__body .v2-sprite__sheet{width:300%;height:100%}.v2-cat__body[data-frame=base] .v2-sprite__sheet{transform:translate(0)}.v2-cat__body[data-frame=miss] .v2-sprite__sheet{transform:translate(-33.3333%)}.v2-cat__body[data-frame=finished] .v2-sprite__sheet{transform:translate(-66.6667%)}.v2-cat__paw{width:10.6459%;height:13.8151%;top:53.3475%;left:65.0718%}.v2-cat__paw--left{z-index:20}.v2-cat__paw--right{z-index:21}.v2-cat__paw .v2-sprite__sheet{width:300%;height:200%}.v2-cat__paw[data-frame$=rest] .v2-sprite__sheet{transform:translate(0)}.v2-cat__paw[data-frame$=down] .v2-sprite__sheet{transform:translate(-33.3333%)}.v2-cat__paw[data-frame$=release] .v2-sprite__sheet{transform:translate(-66.6667%)}.v2-cat__paw--right .v2-sprite__sheet{margin-top:-73.0337%}.v2-cat__desk-occlusion{z-index:30;width:13.9354%;height:3.8257%;top:62.168%;left:67.7033%}.v2-cat__desk-occlusion img{width:100%;height:100%}.v2-cat[data-motion=animated],.v2-cat[data-cat-asset=miss],.v2-cat[data-cat-asset^=typing]{filter:none;animation:none}.pixel-effect{display:none}.night-room-stage[data-phase=ready] .start-screen__overlay,.play-screen__gameplay,.result-panel{width:min(48rem,100% - 4rem);left:50%;right:auto;translate:-50%}.night-room-stage[data-phase=ready] .start-screen__overlay{grid-template-columns:12rem minmax(0,1fr);grid-template-areas:"intro controls""best best";align-items:center;gap:.75rem 1rem;width:min(48rem,100% - 4rem);min-height:0;padding:1rem 1.2rem;display:grid;position:absolute;bottom:2rem}.start-screen__intro{grid-area:intro}.start-screen__controls{grid-area:controls}.best-record{grid-area:best}.night-room-stage[data-phase=ready] .start-screen h1{color:var(--color-premium-text);text-align:left;text-shadow:none;margin:0 0 .35rem;font-family:inherit;font-size:1.55rem;font-weight:600;line-height:1.1}.start-screen__intro>p{color:var(--color-premium-muted);border:0;margin:0;padding:0;font-size:.75rem}.start-screen__controls{grid-template-columns:minmax(0,1fr);align-items:center;gap:.55rem;width:auto;min-height:0;padding:0;display:grid;position:static}.start-screen__utilities{justify-content:flex-end;align-items:end;gap:.5rem;display:flex}.difficulty-selector{background:0 0;border:0;flex:1;justify-content:flex-end;gap:.5rem;padding:0;display:flex}.difficulty-selector legend{color:var(--color-premium-muted);margin-bottom:.25rem;padding:0;font-size:.62rem}.difficulty-selector label{min-height:2.75rem;color:var(--color-premium-text);white-space:nowrap;flex:none;gap:.25rem;font-size:.7rem}.difficulty-selector input{accent-color:#e9c38b;width:.9rem;height:.9rem;margin:0}.best-record{background:0 0;border:0;border-top:1px solid #efd3a91f;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.5rem .75rem;padding:.6rem 0 0;display:grid}.best-record p,.best-record h2,.best-record dt{color:var(--color-premium-muted);font-size:.6rem}.best-record dl{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.best-record dd{color:var(--color-premium-text);font-family:inherit;font-size:.8rem}.play-screen__gameplay{text-align:left;gap:.65rem;min-height:0;padding:.9rem 1.25rem;display:grid;position:absolute;bottom:2rem}.play-screen__prompt{width:100%;box-shadow:none;background:0 0;border:0;padding:0 0 .55rem}.typing-prompt{text-align:left}.typing-prompt__guide{justify-content:flex-start;font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.2}.play-screen__live-stats dl{grid-template-columns:repeat(3,1fr);gap:.75rem;display:grid}.play-screen__live-stats dt,.game-hud__label,.game-hud__score dt{color:var(--color-premium-muted);font-size:.65rem}.play-screen__live-stats dd{margin:.2rem 0 0;font-size:.95rem}.game-hud__top-metrics{gap:1.5rem;min-width:11rem;padding:.6rem .9rem;display:flex;position:absolute;top:1.5rem;left:1.5rem}.play-screen__hud .game-timer,.play-screen__hud .game-stats{box-shadow:none;background:0 0;border:0;padding:0;position:static}.game-timer dt{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.game-timer dd,.game-hud__score dd{color:var(--color-premium-current);margin:.15rem 0 0;font-family:inherit;font-size:1.4rem}.play-screen__controls{flex-direction:row;align-items:center;gap:.35rem;padding:.3rem;display:flex;position:absolute;inset:1.5rem 1.5rem auto auto}.play-screen__difficulty{color:var(--color-premium-muted);white-space:nowrap;background:0 0;border:0;margin:0;padding:.25rem .4rem;font-size:.6rem}.result-panel{grid-template-columns:minmax(0,1fr) auto;gap:.4rem 1rem;padding:1rem 1.25rem;display:grid;position:absolute;bottom:2rem}.result-panel__header,.result-panel__message{grid-column:1/-1}.result-panel__actions{grid-area:3/2}.result-panel__utility{grid-area:4/2}@media (width>=192rem) and (height>=100rem){.night-room-stage[data-phase=ready] .start-screen__overlay,.play-screen__gameplay,.result-panel{transform-origin:bottom;scale:1.5}.game-hud__top-metrics{transform-origin:0 0;scale:1.5}.play-screen__controls{transform-origin:100% 0;scale:1.5}}@media (width>=48.0625rem){.night-room-stage[data-phase=ready] .start-screen__overlay,.play-screen__gameplay,.result-panel{position:fixed;bottom:32px}.play-screen__gameplay,.typing-prompt{text-align:center}.typing-prompt__guide{justify-content:center}.result-panel .result-stats>div:first-child dd{color:var(--color-premium-current);font-size:1.55rem}}@media (width>=48.0625rem) and (width<=96rem){.night-room-stage[data-phase=ready] .start-screen__overlay{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro""controls""best"}.start-screen__controls{grid-template-columns:minmax(0,1fr)}.start-screen__utilities{justify-content:space-between}.difficulty-selector{justify-content:flex-start}.night-room-stage[data-phase=ready] .best-record{grid-area:3/1}}@media (width>=48.0625rem) and (width<=120rem) and (height<=1080px){.play-screen__gameplay:has(.typing-prompt__character:nth-child(45)){left:calc(50% + -1*max(0rem,min(9rem,50vw - 26rem)))}}@media (width<=48rem){body{background:#0b1020}.ambient-layer{display:none}.result-panel .result-panel__mobile-result{display:block}.result-panel>.result-panel__wpm,.result-panel>.result-panel__highlight,.result-panel>.result-panel__metrics,.result-panel>.result-panel__progress{display:none}.night-room-stage,.night-room-stage[data-phase=playing]{--scene-camera:mobile-normal;min-height:max(var(--viewport-height), 46rem);height:max(var(--viewport-height), 46rem);overflow:visible}.night-room-stage>.scene-plane--background,.night-room-stage>.scene-plane--midground,.night-room-stage>.scene-plane--foreground{width:358px;height:317.961px;inset:410px auto auto 50%;overflow:hidden;translate:-50%}.night-room-stage>.scene-plane--gameplay,.night-room-stage>.scene-plane--hud,.night-room-stage>.scene-plane--controls,.night-room-stage>.scene-plane--overlay{width:100%;inset:0}.room-environment,.v2-cat{aspect-ratio:auto;width:220%;height:139.407%;top:-26.6667%;left:-93.4211%;translate:0}.room-environment__art{width:47.2488%;height:74.389%;inset:18.0659% auto auto 41.866%}.night-room-stage[data-phase=ready] .start-screen__overlay,.play-screen__gameplay,.result-panel{right:auto;left:max(1rem, env(safe-area-inset-left));width:calc(100% - max(1rem, env(safe-area-inset-left)) - max(1rem, env(safe-area-inset-right)));translate:0}.night-room-stage[data-phase=ready] .start-screen__overlay{top:max(1rem, env(safe-area-inset-top));grid-template-columns:minmax(0,1fr);grid-template-areas:"intro""controls""best";gap:.6rem;padding:.8rem 1rem;bottom:auto}.night-room-stage[data-phase=ready] .start-screen h1{font-size:1.3rem}.start-screen__controls{grid-template-columns:minmax(0,1fr) auto;gap:.45rem}.start-screen__utilities,.start-error{grid-column:1/-1;justify-content:space-between}.difficulty-selector{justify-content:flex-start}.difficulty-selector label{min-height:2.75rem}.play-screen__gameplay{top:max(5.5rem, calc(env(safe-area-inset-top) + 4.5rem));padding:.75rem 1rem;bottom:auto}.typing-prompt__guide{font-size:clamp(1.7rem,8vw,2rem)}.game-hud__top-metrics{top:max(1rem, env(safe-area-inset-top));left:max(1rem, env(safe-area-inset-left));gap:1.25rem;padding:.45rem .7rem}.play-screen__controls{top:max(1rem, env(safe-area-inset-top));right:max(1rem, env(safe-area-inset-right))}.play-screen__difficulty{display:none}.result-panel{top:max(1rem, env(safe-area-inset-top));padding:.8rem 1rem;display:block;bottom:auto}.night-room-stage .history-panel{top:calc(1rem + env(safe-area-inset-top));right:max(1rem, env(safe-area-inset-right));bottom:auto;left:max(1rem, env(safe-area-inset-left));width:auto;max-height:calc(100dvh - 2rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:.8rem 1rem;position:fixed;translate:0}.night-room-stage .history-panel__header{padding-right:6.5rem}.night-room-stage .history-panel__stats{grid-template-columns:repeat(2,minmax(0,1fr))}.night-room-stage .history-panel__entry{grid-template-columns:minmax(0,1fr)}.night-room-stage .history-panel__entry-header{justify-content:space-between;display:flex}.night-room-stage .history-panel__entry dl{grid-template-columns:repeat(2,minmax(0,1fr))}.result-panel__actions{margin-top:.7rem}.result-panel__utility{margin-top:.4rem}.music-settings{top:max(1rem, env(safe-area-inset-top));right:max(1rem, env(safe-area-inset-right))}.night-room-stage[data-phase=ready] .start-screen__intro,.night-room-stage[data-phase=finished] .result-panel__header{padding-right:6.5rem}.night-room-stage[data-phase=playing] .play-screen__controls{top:max(1rem, env(safe-area-inset-top));right:max(8rem, calc(env(safe-area-inset-right) + 8rem))}}@media (width<=48rem) and (height<=600px){.night-room-stage,.night-room-stage[data-phase=playing]{--scene-camera:mobile-compact}.night-room-stage>.scene-plane--background,.night-room-stage>.scene-plane--midground,.night-room-stage>.scene-plane--foreground{width:240px;height:213.177px}.room-environment,.v2-cat{width:245.882%;height:155.795%;top:-33.9404%;left:-113.235%}}@media (prefers-reduced-motion:reduce){.v2-cat,.room-environment,.v2-sprite__sheet{transition:none!important;animation:none!important}}.scene-plane--utility{z-index:5}.scene-plane--utility>*{pointer-events:auto}.ambient-layer,.ambient-layer *{pointer-events:none}.ambient-layer{z-index:1;contain:layout paint;position:absolute;inset:0;overflow:hidden}.room-environment__art{z-index:0}.room-environment[data-asset-state=failed] .ambient-layer{display:none}.ambient-rain,.ambient-steam,.ambient-city-lights{position:absolute;inset:0}.ambient-rain{opacity:.46;height:48%;-webkit-mask-image:linear-gradient(90deg,#0000 0 31%,#000 31.5% 42.1%,#0000 42.6% 44.1%,#000 44.6% 94.1%,#0000 94.6%);mask-image:linear-gradient(90deg,#0000 0 31%,#000 31.5% 42.1%,#0000 42.6% 44.1%,#000 44.6% 94.1%,#0000 94.6%)}.ambient-rain i{top:-12%;left:var(--ambient-left);opacity:0;width:max(1px,.08%);height:9%;animation:ambient-rain-fall var(--ambient-duration) linear var(--ambient-delay) infinite;will-change:transform, opacity;background:linear-gradient(#0000,#a6cce8bd);border-radius:999px;position:absolute;rotate:9deg}.ambient-steam{width:6.4%;height:13%;top:51.5%;left:83.4%}.ambient-steam i{bottom:0;left:calc(14% + var(--ambient-offset));border:max(1px,.08rem) solid #e1e5e952;opacity:0;width:10%;height:42%;animation:ambient-steam-rise var(--ambient-duration) ease-in-out var(--ambient-delay) infinite;will-change:transform, opacity;border-block-color:#0000;border-radius:50%;position:absolute}.ambient-city-lights i{top:var(--ambient-top);left:var(--ambient-left);aspect-ratio:1/1.35;opacity:.26;width:.36%;min-width:2px;animation:ambient-city-breathe var(--ambient-duration) ease-in-out var(--ambient-delay) infinite alternate;will-change:opacity;background:#f4b868db;border-radius:1px;position:absolute;box-shadow:0 0 .34rem #ee9d513d}.ambient-layer[data-ambient-motion=off] .ambient-rain,.ambient-layer[data-ambient-motion=off] .ambient-steam{display:none}.ambient-layer[data-ambient-motion=off] .ambient-city-lights i{opacity:.34;animation:none}.result-panel__wpm,.result-panel__highlight,.result-panel__progress{min-width:0}.result-panel__mobile-result{display:none}.result-panel__wpm{background:linear-gradient(145deg,#efb15b24,#0811211f);border:1px solid #f4c0713d;border-radius:10px;flex-direction:column;justify-content:center;padding:.65rem 1rem;display:flex}.result-panel__wpm-label,.result-panel__highlight>span,.result-panel__previous span{color:var(--color-premium-muted);letter-spacing:.08em;font-size:.62rem}.result-panel__wpm>strong{color:var(--color-premium-current);font-variant-numeric:tabular-nums;font-size:clamp(2.5rem,4vw,3.8rem);line-height:1}.result-panel__new-best{color:#ffd393;letter-spacing:.09em;text-shadow:0 0 12px #efb15b57;margin-top:.45rem;font-size:.72rem;font-weight:900}.result-panel__highlight{overflow-wrap:anywhere;flex-direction:column;justify-content:center;gap:.2rem;margin:0;display:flex}.result-panel__highlight>strong{color:var(--color-paper);font-size:1rem;font-weight:700}.result-panel__progress{flex-wrap:wrap;align-items:center;gap:.45rem 1rem;display:flex}.result-panel__previous{flex-wrap:wrap;gap:.4rem 1rem;display:flex}.result-panel__previous p{align-items:baseline;gap:.35rem;margin:0;display:flex}.result-panel__previous strong{color:var(--color-paper);font-variant-numeric:tabular-nums;font-size:.78rem}.result-panel__best-progress{color:var(--color-premium-muted);overflow-wrap:anywhere;margin:0;font-size:.72rem}.result-panel__actions{flex-wrap:wrap}.result-panel__unlocks{display:none}@media (width>=48.0625rem){.result-panel{grid-template:"wpm highlight header""wpm metrics metrics""progress progress actions""progress progress utility"/minmax(7.5rem,.7fr) minmax(16rem,1.65fr) auto;gap:.55rem 1rem;max-height:calc(100vh - 4rem);overflow:auto}.result-panel__header{grid-area:header;justify-content:flex-end;align-self:start}.result-panel h2{color:var(--color-premium-muted);letter-spacing:.12em;font-size:.72rem}.result-panel__wpm{grid-area:wpm}.result-panel__highlight{grid-area:highlight}.result-panel__metrics{grid-area:metrics}.result-panel__progress{grid-area:progress}.result-panel__actions{grid-area:actions}.result-panel__utility{grid-area:utility}.result-panel .result-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.result-panel:has(>.result-panel__unlocks){grid-template-rows:auto auto auto auto auto;grid-template-areas:"wpm highlight header""wpm metrics metrics""unlocks unlocks unlocks""progress progress actions""progress progress utility"}.result-panel__unlocks{background:linear-gradient(110deg,#734b305c,#08112152);border:1px solid #f4c0714d;border-radius:8px;grid-area:unlocks;gap:.35rem;min-width:0;padding:.55rem .75rem;animation:.48s ease-out both result-achievement-enter;display:grid}.result-panel__unlocks h3{color:var(--color-premium-current);letter-spacing:.1em;margin:0;font-size:.68rem}.result-panel__unlock-list{flex-wrap:wrap;gap:.25rem .45rem;max-height:5rem;margin:0;padding:0 .25rem 0 0;list-style:none;display:flex;overflow-y:auto}.result-panel__unlock-list:focus-visible{outline:3px solid var(--pixel-focus);outline-offset:-3px}.result-panel__unlock-list li{min-width:0;color:var(--color-premium-text);background:#ffe6b514;border-radius:4px;align-items:center;gap:.3rem;padding:.12rem .4rem;font-size:.72rem;display:inline-flex}}@media (prefers-reduced-motion:reduce){.ambient-rain,.ambient-steam{display:none!important}.ambient-city-lights i{opacity:.34;animation:none!important}.result-stats>.result-stats__item--new,.result-panel__unlocks{animation:none!important}}@keyframes result-achievement-enter{0%{opacity:0;transform:translateY(.3rem)}to{opacity:1;transform:translateY(0)}}@keyframes ambient-rain-fall{0%{opacity:0;transform:translateY(-12%)}14%{opacity:.58}84%{opacity:.4}to{opacity:0;transform:translate(-1.4rem,940%)}}@keyframes ambient-steam-rise{0%{opacity:0;transform:translateY(18%)scale(.85)}28%{opacity:.34}72%{opacity:.22}to{opacity:0;transform:translate(.85rem,-205%)scale(1.2)}}@keyframes ambient-city-breathe{0%,22%{opacity:.23}78%,to{opacity:.68}}.music-settings{top:max(1.5rem, env(safe-area-inset-top));right:max(1.5rem, env(safe-area-inset-right));color:var(--color-premium-text);justify-items:end;display:grid;position:absolute}.music-settings__button{justify-content:center;align-items:center;gap:.45rem;min-width:6rem;font-size:.72rem;display:inline-flex}.music-settings__button>[aria-hidden=true]{color:var(--color-premium-current);font-size:1rem}.music-settings__panel{-webkit-backdrop-filter:blur(9px)saturate(108%);backdrop-filter:blur(9px)saturate(108%);background:#081121f0;border:1px solid #e8ca9a61;border-radius:10px;gap:.75rem;width:min(16rem,100vw - 2rem);margin-top:.5rem;padding:.75rem;display:grid;box-shadow:0 12px 30px #00000052}.app-shell .music-settings__toggle{width:100%;color:var(--color-premium-current)}.music-settings__volume{color:var(--color-premium-muted);grid-template-columns:auto minmax(5rem,1fr) 3ch;align-items:center;gap:.6rem;font-size:.65rem;font-weight:700;display:grid}.music-settings__volume input{width:100%;accent-color:var(--color-premium-current)}.music-settings__volume output{color:var(--color-premium-text);font-variant-numeric:tabular-nums;text-align:right}@media (width>=48.0625rem){.night-room-stage[data-phase=playing] .play-screen__controls{right:8rem}}@media (width>=192rem) and (height>=100rem){.music-settings{transform-origin:100% 0;scale:1.5}}.history-panel{z-index:4;border:1px solid var(--border-premium-glass);background:linear-gradient(135deg, #ffdda60d, transparent 42%), var(--surface-premium-glass);-webkit-backdrop-filter:blur(9px)saturate(108%);backdrop-filter:blur(9px)saturate(108%);width:min(50rem,100% - 4rem);min-height:0;max-height:calc(100% - 8rem);color:var(--color-premium-text);pointer-events:auto;border-radius:14px;grid-template-rows:auto auto minmax(0,1fr);gap:.8rem;padding:1rem 1.2rem;display:grid;position:absolute;bottom:2rem;left:50%;right:auto;overflow:hidden;translate:-50%;box-shadow:inset 0 1px #ffedcf0d,0 9px 32px #0000002e}.history-panel__header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.history-panel h1,.history-panel h2,.history-panel p,.history-panel dl,.history-panel ol{margin:0}.history-panel h1{font-size:1.25rem;font-weight:600}.history-panel h1:focus{outline:none}.history-panel h2{color:var(--color-premium-muted);letter-spacing:.08em;font-size:.72rem}.history-panel__stats{border-block:1px solid #efd3a91f;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;padding:.7rem 0;display:grid}.history-panel__stats>div,.history-panel__entry dl>div{min-width:0}.history-panel dt{color:var(--color-premium-muted);font-size:.62rem;font-weight:700}.history-panel dd{font-variant-numeric:tabular-nums;margin:.2rem 0 0;font-size:.86rem;font-weight:700}.history-panel__recent{grid-template-rows:auto minmax(0,1fr);gap:.5rem;min-height:0;display:grid}.history-panel__empty{color:var(--color-premium-muted);padding:1rem 0}.history-panel__list{scrollbar-color:#e8ca9a6b transparent;gap:.45rem;min-height:0;padding:0 .25rem 0 0;list-style:none;display:grid;overflow:auto}.history-panel__entry{background:#070f1d6b;border:1px solid #efd3a91a;border-radius:8px;grid-template-columns:minmax(8rem,.7fr) minmax(0,2fr);align-items:center;gap:.75rem;padding:.55rem .65rem;display:grid}.history-panel__entry-header{gap:.2rem;font-size:.72rem;display:grid}.history-panel__entry-header time{color:var(--color-premium-text);font-variant-numeric:tabular-nums}.history-panel__entry-header span{color:var(--color-premium-muted)}.history-panel__entry dl{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;display:grid}.achievements-modal__backdrop{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overscroll-behavior:contain;background:#040a18c2;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.achievements-modal{width:min(58rem,100%);height:min(46rem, calc(var(--viewport-height) - 2rem));border:1px solid var(--border-premium-glass);background:linear-gradient(135deg, #ffdda60f, transparent 45%), var(--surface-premium-glass);min-width:0;min-height:0;box-shadow:var(--shadow-room), inset 0 1px 0 #ffedcf14;color:var(--color-premium-text);border-radius:14px;grid-template-rows:auto minmax(0,1fr);gap:1rem;padding:clamp(.8rem,2vw,1.4rem);display:grid;overflow:hidden}.achievements-modal__header{justify-content:space-between;align-items:start;gap:1rem;display:flex}.achievements-modal h1,.achievements-modal h2,.achievements-modal p,.achievements-modal ol{margin:0}.achievements-modal h1{font-family:var(--font-display);letter-spacing:.08em;font-size:clamp(1.1rem,2.2vw,1.5rem)}.achievements-modal .achievements-modal__progress{color:var(--color-premium-current);font-family:var(--font-mono);margin-top:.35rem;font-size:.8rem;font-weight:700}.achievements-modal__header button{border:1px solid var(--border-premium-glass);border-radius:var(--radius-frame);color:var(--color-premium-text);cursor:pointer;background:#fff4dd1a;padding:.35rem .8rem}.achievements-modal__header button:hover{background:#fff4dd2e}.achievements-modal__list{overscroll-behavior:contain;scrollbar-color:#e8ca9a80 transparent;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:.7rem;min-height:0;padding:0 .3rem 0 0;list-style:none;display:grid;overflow-y:auto}.achievements-modal__list:focus-visible{outline:3px solid var(--pixel-focus);outline-offset:-3px}.achievements-modal__item{border-radius:var(--radius-frame);background:#070f1d7a;border:1px solid #efd3a92e;grid-template-columns:2.2rem minmax(0,1fr);gap:.4rem .7rem;min-width:0;padding:.8rem;display:grid}.achievements-modal__item[data-unlocked=true]{background:#322b2b85;border-color:#ffe1a675}.achievements-modal__icon{font-size:1.5rem;line-height:1.2}.achievements-modal__copy{min-width:0}.achievements-modal h2{color:var(--color-premium-text);font-size:.94rem}.achievements-modal__copy p{color:var(--color-premium-muted);margin-top:.25rem;font-size:.76rem;line-height:1.5}.achievements-modal__state{color:var(--color-premium-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;grid-column:2;gap:.2rem .6rem;font-size:.72rem;display:flex}.achievements-modal__item[data-unlocked=true] .achievements-modal__state{color:var(--color-premium-current)}@media (width<=42rem){.achievements-modal__list{grid-template-columns:minmax(0,1fr)}}@media (width>=48.0625rem){.night-room-stage[data-phase=ready] .start-screen__overlay{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"start history achievements""utilities utilities utilities""best best best";align-items:center;gap:.5rem 1rem;width:min(44rem,100% - 4rem);padding:.75rem 1rem}.night-room-stage[data-phase=ready] .start-screen__intro{display:contents}.night-room-stage[data-phase=ready] .start-screen h1{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.night-room-stage[data-phase=ready] .start-screen__controls{display:contents}.night-room-stage[data-phase=ready] .start-screen__start-button{grid-area:start;min-height:3rem}.night-room-stage[data-phase=ready] .start-screen__history-button{grid-area:history;align-self:stretch}.night-room-stage[data-phase=ready] .start-screen__achievements-button{grid-area:achievements;align-self:stretch}.night-room-stage[data-phase=ready] .start-screen__utilities{grid-area:utilities;justify-content:space-between}.night-room-stage[data-phase=ready] .best-record{grid-area:best;padding-top:.4rem}.night-room-stage[data-phase=ready] .start-error{grid-area:error}.night-room-stage[data-phase=ready] .start-screen__overlay:has(.start-error){grid-template-areas:"start history achievements""utilities utilities utilities""error error error""best best best"}}
