@font-face{font-family:Zilla Slab;font-style:normal;font-display:swap;font-weight:600;src:url(./zilla-slab-latin-ext-600-normal-9hyyVsz0.woff2) format("woff2"),url(./zilla-slab-latin-ext-600-normal-DTnoEnY3.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Zilla Slab;font-style:normal;font-display:swap;font-weight:600;src:url(./zilla-slab-latin-600-normal-BRgn6X7z.woff2) format("woff2"),url(./zilla-slab-latin-600-normal-iLPAhCz6.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Zilla Slab;font-style:normal;font-display:swap;font-weight:700;src:url(./zilla-slab-latin-ext-700-normal-C1-U_e_0.woff2) format("woff2"),url(./zilla-slab-latin-ext-700-normal-DQD_oLH8.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Zilla Slab;font-style:normal;font-display:swap;font-weight:700;src:url(./zilla-slab-latin-700-normal-CEKI1vVu.woff2) format("woff2"),url(./zilla-slab-latin-700-normal-C8aaVMsA.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:500;src:url(./libre-franklin-cyrillic-ext-500-normal-CEScqsDp.woff2) format("woff2"),url(./libre-franklin-cyrillic-ext-500-normal-DNjvXlO5.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:500;src:url(./libre-franklin-cyrillic-500-normal-DmkkefNM.woff2) format("woff2"),url(./libre-franklin-cyrillic-500-normal-BbpetOLr.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:500;src:url(./libre-franklin-vietnamese-500-normal-RIIoSqy6.woff2) format("woff2"),url(./libre-franklin-vietnamese-500-normal-r-ir2lkU.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:500;src:url(./libre-franklin-latin-ext-500-normal-B0aoLQ4L.woff2) format("woff2"),url(./libre-franklin-latin-ext-500-normal-BEjoZNRk.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:500;src:url(./libre-franklin-latin-500-normal-Cbta7Jiu.woff2) format("woff2"),url(./libre-franklin-latin-500-normal-BQKhRarp.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:700;src:url(./libre-franklin-cyrillic-ext-700-normal-DR5N6Ba7.woff2) format("woff2"),url(./libre-franklin-cyrillic-ext-700-normal-CF39TNs6.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:700;src:url(./libre-franklin-cyrillic-700-normal-CCiRtMb4.woff2) format("woff2"),url(./libre-franklin-cyrillic-700-normal-CsIUO3b6.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:700;src:url(./libre-franklin-vietnamese-700-normal-C4s2DR1-.woff2) format("woff2"),url(./libre-franklin-vietnamese-700-normal-tr4w5WCD.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:700;src:url(./libre-franklin-latin-ext-700-normal-DaqAYsRT.woff2) format("woff2"),url(./libre-franklin-latin-ext-700-normal-CccHi4gv.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:700;src:url(./libre-franklin-latin-700-normal-TBBKpXzk.woff2) format("woff2"),url(./libre-franklin-latin-700-normal-CP58KLQO.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--tone-1: #FFFFFF;--tone-2: #FFF8E7;--tone-3: #F1E9DA;--tone-4: #DDD3C2;--tone-5: #6B6580;--tone-6: #4A4560;--tone-7: #2E2A3F;--page: var(--tone-2);--surface: var(--tone-1);--ink: var(--tone-7);--ink-2: var(--tone-5);--line: var(--tone-4);--tile-light: #F1E9DA;--tile-dark: #9DB4A0;--wall: #E4D9C6;--wall-line: #C9BCA4;--accent: #6AAA64;--accent-press: #578B52;--accent-text: #4E7D49;--gold-foil: #EFBF04;--danger: #FF746C;--danger-text: #C93E37;--safe: #7DD4A8;--card-casual: #FBEDB9;--card-normal: #D3DEF5;--card-hard: #E3C8E9;--foil-12: rgba(239, 191, 4, .12);--foil-25: rgba(239, 191, 4, .25);--foil-40: rgba(239, 191, 4, .4);--danger-wash: rgba(255, 116, 108, .24);--safe-glow: rgba(125, 212, 168, .35);--veil: rgba(46, 42, 63, .45);--shadow-ink: rgba(46, 42, 63, .14);--font-display: "Zilla Slab", Georgia, serif;--font-ui: "Libre Franklin", system-ui, sans-serif;--fs-12: 12px;--fs-14: 14px;--fs-16: 16px;--fs-20: 20px;--fs-24: 24px;--fs-28: 28px;--fs-44: 44px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--radius: 14px;--radius-sm: 8px;--ease-glide: cubic-bezier(.05, .7, .1, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-out-back: cubic-bezier(.34, 1.56, .64, 1);--focus-ring: 0 0 0 2px var(--page), 0 0 0 4px var(--accent);--z-board-fx: 20;--z-toast: 30;--z-sheet: 50;--z-card: 60;--z-splash: 90}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--page);color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-16);line-height:1.45;-webkit-font-smoothing:antialiased;overflow-x:hidden}.stage{min-height:100%;position:relative;background:var(--page)}h1,h2,h3,p{margin:0}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}.display{font-family:var(--font-display);font-weight:700;color:var(--ink)}.numeric{font-variant-numeric:tabular-nums}.smoke{color:var(--ink-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:44px;padding:10px 22px;border-radius:var(--radius);font-weight:700;font-size:var(--fs-16);transition:transform .6s var(--ease-out),box-shadow .6s var(--ease-out),background .15s ease,color .15s ease,border-color .15s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.btn:disabled{opacity:.4;cursor:default;pointer-events:none}.btn-primary{background:var(--accent);color:var(--ink);box-shadow:0 4px 0 var(--accent-press)}.btn-primary:hover{filter:brightness(1.04)}.btn-primary:active{transform:translateY(4px);box-shadow:0 0 0 var(--accent-press);transition-duration:34ms}.btn-quiet{background:var(--surface);border:2px solid var(--line);color:var(--ink);box-shadow:0 2px 0 var(--line)}.btn-quiet:hover{border-color:var(--tone-5)}.btn-quiet:active{transform:translateY(2px);box-shadow:0 0 0 var(--line);transition-duration:34ms}.btn-ghost{color:var(--ink-2);min-height:44px;padding:8px 12px}.btn-ghost:hover{color:var(--ink)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 16px var(--shadow-ink)}.hairline{height:1px;background:var(--line);border:none;margin:0}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--veil);display:flex;align-items:center;justify-content:center;padding:var(--sp-4);z-index:var(--z-sheet);animation:overlay-in .18s ease}@keyframes overlay-in{0%{opacity:0}}.sheet{width:min(440px,100%);max-height:min(86vh,720px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--tone-4) transparent;padding:var(--sp-5);animation:sheet-rise .22s var(--ease-out)}@keyframes sheet-rise{0%{opacity:0;transform:translateY(10px)}}.sheet h2{font-family:var(--font-display);font-size:var(--fs-24);font-weight:700;color:var(--ink);margin-bottom:var(--sp-4);text-wrap:balance}.toast{position:absolute;left:50%;top:max(60px,calc(env(safe-area-inset-top) + 52px));transform:translate(-50%);background:var(--tone-7);color:#fff;font-weight:700;font-size:var(--fs-14);padding:10px 18px;border-radius:var(--radius-sm);white-space:normal;text-align:center;max-width:calc(100vw - 32px);width:max-content;box-shadow:0 4px 16px var(--shadow-ink);animation:toast-in .22s var(--ease-glide);z-index:var(--z-toast);pointer-events:none}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(-8px)}}.toast-leave{animation:toast-out .16s ease forwards}@keyframes toast-out{to{opacity:0;transform:translate(-50%) translateY(-6px)}}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){*:not(.rm-keep),*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.rm-keep{animation-duration:.12s!important;transition-duration:.12s!important}}[data-rm="1"] *:not(.rm-keep),[data-rm="1"] *:before,[data-rm="1"] *:after{animation-duration:.01ms!important;transition-duration:.01ms!important}[data-rm="1"] .rm-keep{animation-duration:.12s!important;transition-duration:.12s!important}.board-shell{position:relative;width:100%;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;--frame-w: clamp(16px, 4.6vw, 38px);border:var(--frame-w) solid transparent;border-image-slice:204 217 201 201;border-image-width:var(--frame-w);border-image-repeat:round}.board-svg{position:relative;display:block;width:100%;height:auto;border-radius:14px;box-shadow:0 12px 32px var(--shadow-ink)}.board-kbd-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:14px}.board-kbd-layer:focus-visible{outline:none;box-shadow:var(--focus-ring)}.thief-track{transition:transform var(--glide-ms, .2s) var(--ease-glide);will-change:transform}.thief-bounce{transition-duration:var(--bounce-ms, .3s);transition-timing-function:var(--ease-out-back)}.thief-land .thief-inner{animation:land-pop var(--land-pop-ms, .2s) var(--ease-out-back);transform-origin:50px 92px}@keyframes land-pop{0%{transform:scale(1)}40%{transform:scale(1.1,.88)}to{transform:scale(1)}}.thief-win-hop .thief-inner{animation:win-hop var(--win-hop-ms, .26s) var(--ease-glide);transform-origin:50px 92px}@keyframes win-hop{0%,to{transform:translateY(0)}25%{transform:translateY(-14px)}50%{transform:translateY(0) scale(1.06,.94)}75%{transform:translateY(-9px)}}.piece-pop{animation:piece-pop .28s var(--ease-out-back) backwards;transform-box:fill-box;transform-origin:center 90%}@keyframes piece-pop{0%{transform:scale(0)}to{transform:scale(1)}}.thief-breathe{animation:breathe 4s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 100%}@keyframes breathe{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.025)}}.start-glow{animation:start-breathe 2s ease-in-out infinite;pointer-events:none}@keyframes start-breathe{0%,to{opacity:.55}50%{opacity:1}}@media (prefers-reduced-motion: reduce){.start-glow{animation:none!important;opacity:.8}}[data-rm="1"] .start-glow{animation:none!important;opacity:.8}.confetti-bit{opacity:0;animation:confetti-fly var(--confetti-ms, .9s) var(--ease-out) forwards;pointer-events:none}@keyframes confetti-fly{0%{opacity:1;transform:translate(0) rotate(0)}to{opacity:0;transform:translate(var(--cx),var(--cy)) rotate(260deg) scale(.5)}}.thief-hop .thief-inner{animation:thief-hop var(--glide-ms, .2s) var(--ease-glide);transform-origin:50px 60px}@keyframes thief-hop{45%{transform:translateY(-13px) scale(1.05)}}.zzz text{animation:zzz-float 2.6s ease-in-out infinite}.zzz text:last-child{animation-delay:1.3s}@keyframes zzz-float{0%,to{transform:translateY(0);opacity:.5}50%{transform:translateY(-4px);opacity:1}}.zzz-z{animation:zzz-rise 2.7s ease-in-out infinite}.zzz-z.z2{animation-delay:.9s}.zzz-z.z3{animation-delay:1.8s}@keyframes zzz-rise{0%,to{opacity:.55;transform:translateY(0)}50%{opacity:1;transform:translateY(-6px)}}@media (prefers-reduced-motion: reduce){.zzz-z,.zzz text{animation:none!important;opacity:.9}}[data-rm="1"] .zzz-z,[data-rm="1"] .zzz text{animation:none!important;opacity:.9}.crown-gleam{filter:brightness(1.55) saturate(1.1) drop-shadow(0 0 3px rgba(255,250,235,.6));pointer-events:none}.sparkle{animation:sparkle 2s ease-in-out infinite;transform-origin:center;transform-box:fill-box}.sparkle.s2{animation-delay:1s}@keyframes sparkle{0%,to{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1)}}.exit-armed{animation:exit-pulse 1.6s ease-in-out infinite}@keyframes exit-pulse{0%,to{opacity:.85}50%{opacity:1}}.exit-underglow{transform-box:fill-box;transform-origin:center}.exit-swell{animation:door-swell .42s var(--ease-out)}@keyframes door-swell{0%{transform:scale(.7);opacity:.45}55%{transform:scale(1.3);opacity:1}to{transform:scale(1);opacity:1}}.exit-open-img{opacity:0;transition:opacity var(--exit-open-ms, .26s) var(--ease-out)}.exit-opening .exit-open-img{opacity:1}.exit-burst{animation:exit-burst var(--exit-open-ms, .26s) var(--ease-out) forwards;transform-box:fill-box;transform-origin:center;pointer-events:none}@keyframes exit-burst{0%{opacity:0;transform:scale(.35)}to{opacity:1;transform:scale(1)}}.thief-exiting .thief-inner{animation:thief-exit var(--exit-enter-ms, .48s) var(--ease-glide) forwards;transform-origin:50px 82px}@keyframes thief-exit{to{transform:translateY(-14px) scale(.25);opacity:0}}.sight-dots{stroke:var(--danger);stroke-width:5;stroke-linecap:round;stroke-dasharray:.1 14}.sight-knight{stroke:var(--danger);stroke-width:4;stroke-dasharray:.1 11;stroke-linecap:round;opacity:.8}.sight{animation:watch-breathe-slow 2s ease-in-out infinite}.sight-preview{opacity:.9}.sight-preview-sleeper{opacity:.55}.sight-revealed{opacity:.6}.sight-alarm{opacity:1;animation:none}.watch-tile{pointer-events:none;opacity:.24;animation:watch-breathe-slow 2s ease-in-out infinite}@keyframes watch-breathe-slow{0%,to{opacity:.2}50%{opacity:.3}}.watch-tile.watch-preview-sleeper{opacity:.13;animation:none}.watch-tile.watch-alarm{opacity:.38;animation:none}.watch-eye{pointer-events:none;opacity:.95}.watch-eye.watch-preview-sleeper{opacity:.5}.guard-ring{fill:none;stroke:var(--danger);stroke-width:3;opacity:0;pointer-events:none}.ring-preview,.ring-preview-sleeper{animation:ring-breathe 2s ease-in-out infinite}.ring-alarm{opacity:.9}@keyframes ring-breathe{0%,to{opacity:.5}50%{opacity:.9}}.guard-startle{animation:guard-startle .48s var(--ease-out) backwards;transform-box:fill-box;transform-origin:50% 92%}@keyframes guard-startle{0%{transform:rotate(0)}22%{transform:rotate(-7deg) scale(1.05,.94)}50%{transform:rotate(5deg) scale(.97,1.04)}76%{transform:rotate(-2deg)}to{transform:rotate(0) scale(1)}}.wake-burst{pointer-events:none;opacity:0;animation:wake-burst .62s var(--ease-out) backwards;transform-box:fill-box;transform-origin:50% 100%}.guard-track{transition:transform var(--responder-ms, .42s) var(--ease-glide);will-change:transform}.ghost-path{stroke:var(--ink-2);stroke-width:3;stroke-dasharray:2 8;stroke-linecap:round;opacity:.7}.ghost-ring{fill:none;stroke:var(--ink-2);stroke-width:3;stroke-dasharray:6 6;opacity:.8}@keyframes wake-burst{0%{opacity:0;transform:scale(.3)}25%{opacity:1;transform:scale(1.1)}55%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.02)}}.spot-badge{transform-box:fill-box;transform-origin:center;animation:badge-pop var(--catch-badge-ms, .25s) var(--ease-out-back) backwards;pointer-events:none}@keyframes badge-pop{0%{transform:scale(0)}to{transform:scale(1)}}.board-dim{fill:#fff8e7a6;animation:dim-in .15s ease forwards}@keyframes dim-in{0%{opacity:0}to{opacity:1}}.dest-marker{fill:var(--accent);opacity:.9;pointer-events:none;animation:dest-in .2s var(--ease-glide)}@keyframes dest-in{0%{opacity:0;transform:scale(.85);transform-origin:center;transform-box:fill-box}}.kbd-cursor{fill:none;stroke:var(--ink);stroke-width:3;pointer-events:none}.game-screen{--board-w: min(92vw, calc(100dvh - 236px) , 880px);min-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:max(10px,env(safe-area-inset-top)) 12px max(10px,env(safe-area-inset-bottom));position:relative}.hud-top{width:min(calc(var(--board-w) + 40px),100%);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:6px 2px 10px}.hud-title{display:flex;flex-direction:column;line-height:1.15}.hud-heist{font-family:var(--font-display);font-weight:700;font-size:var(--fs-16);color:var(--ink);white-space:nowrap}.hud-sub{font-size:var(--fs-12);color:var(--ink-2)}.hud-stats{display:flex;align-items:center;gap:var(--sp-4);font-size:var(--fs-16)}.hud-chip{display:inline-flex;align-items:center;gap:6px;color:var(--ink)}.hud-chip.alarmed{color:var(--danger-text)}.try-pip{color:var(--accent);font-size:12px;line-height:1}.try-pip.spent{color:var(--danger-text);opacity:.55}.hud-haul{gap:4px}.hud-loot{display:inline-flex;color:var(--ink-2);opacity:.8;transition:opacity .2s ease,color .2s ease,transform .2s var(--ease-glide)}.hud-loot.held{opacity:1;transform:scale(1.12)}.loot-crown.held{color:var(--gold-foil)}.loot-gem.held{color:var(--accent-text)}.board-frame{width:var(--board-w);min-width:280px;margin:auto 0;position:relative}@media (max-width: 520px){.game-screen{--board-w: min( calc(100vw - 12px) , calc(100dvh - 236px) );padding-left:6px;padding-right:6px}.board-shell{--frame-w: clamp(10px, 3.3vw, 16px)}}.hud-bottom{width:min(calc(var(--board-w) + 40px),100%);display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding-top:12px;flex-wrap:wrap}.hint-line{position:relative;min-height:22px;font-size:var(--fs-14);color:var(--ink-2);text-align:center;padding-top:8px}.hint-sizer{display:inline-block;transition:opacity .25s ease}.hint-sizer.hint-off{opacity:0}.hint-overlay{position:absolute;top:8px;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.review-bar{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding-top:12px;flex-wrap:wrap}.step-btn{width:44px;min-width:44px;padding:0}.review-count{min-width:118px;text-align:center;font-size:var(--fs-14);font-weight:700;color:var(--ink-2)}.landing{min-height:100dvh;width:min(500px,100%);margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);padding:max(16px,env(safe-area-inset-top)) 20px max(28px,env(safe-area-inset-bottom));text-align:center}.masthead{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding-bottom:2px;border-bottom:1px solid var(--line)}.masthead-title{display:flex;align-items:baseline;gap:10px}.wordmark-sm{font-family:var(--font-display);font-weight:700;font-size:var(--fs-24);color:var(--ink)}.masthead-icons{display:flex;gap:2px}.icon-btn{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--ink-2)}.icon-btn:hover{color:var(--ink);background:var(--tone-3)}.greeting{font-family:var(--font-display);font-weight:600;font-size:15px;color:var(--ink-2);margin:-6px 0 -4px}.landing-divider{width:100%;margin:var(--sp-2) 0 0}.keyart-slot{position:relative;width:min(560px,94vw);aspect-ratio:1280 / 714;overflow:hidden;border-radius:var(--radius);border:1px solid var(--line);box-shadow:0 12px 40px var(--shadow-ink);background:var(--tone-3)}.keyart{width:100%;height:100%;display:block}.keyart-blur{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;filter:blur(16px) saturate(1.05);transform:scale(1.08)}.keyart-banner{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s ease}.keyart-banner.is-loaded{opacity:1}.keyart-watch polygon{animation:watch-breathe 4s ease-in-out infinite alternate}.keyart-watch polygon:nth-child(n+3){animation-delay:1.4s}@keyframes watch-breathe{to{opacity:.75}}.daily-list{display:flex;flex-direction:column;gap:var(--sp-3);width:100%}.daily-row{display:flex;align-items:center;gap:var(--sp-3);padding:12px 14px;border:none;box-shadow:0 2px 8px #2e2a3f1a;transition:transform .18s var(--ease-out),box-shadow .18s var(--ease-out);animation:card-in .3s var(--ease-out) backwards}@keyframes card-in{0%{opacity:0;transform:translateY(12px)}}.daily-row.card-casual{background:var(--card-casual)}.daily-row.card-normal{background:var(--card-normal)}.daily-row.card-hard{background:var(--card-hard)}.daily-row:has(.daily-play:not(:disabled):hover),.daily-row:has(.daily-play:focus-visible){transform:translateY(-2px);box-shadow:0 8px 24px var(--shadow-ink)}.daily-row.is-done{opacity:.85;filter:saturate(.8)}.daily-badge{flex:none;width:52px;height:52px;border-radius:50%;background:#ffffffbf;display:flex;align-items:center;justify-content:center}.daily-main{flex:1;display:flex;flex-direction:column;gap:2px;text-align:left;min-width:0}.daily-title{font-family:var(--font-display);font-weight:700;color:var(--ink);font-size:var(--fs-20)}.daily-sub{font-size:var(--fs-12);color:var(--tone-6)}.daily-done{font-size:var(--fs-12);color:var(--tone-6);font-weight:700;display:inline-flex;align-items:center;gap:6px;padding-top:2px}.daily-busted{color:var(--danger-text)}.daily-play{flex:none;min-height:44px;padding:0 20px;background:var(--surface);border-radius:12px;box-shadow:0 2px #2e2a3f2e;font-weight:700;font-size:15px;color:var(--ink);transition:transform .6s var(--ease-out),box-shadow .6s var(--ease-out)}.daily-play:active{transform:translateY(2px);box-shadow:0 0 #2e2a3f2e;transition-duration:34ms}.daily-play:disabled{opacity:.5;cursor:default}.daily-streak-inline{flex:none;display:flex;align-items:center;gap:5px;color:var(--ink)}.daily-streak-inline .streak-count{font-size:20px;font-weight:700}.landing-section{font-family:var(--font-display);font-weight:700;font-size:22px;color:var(--ink);margin:var(--sp-2) 0 calc(-1 * var(--sp-1))}.practice-row{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.practice-word{font-size:14px;font-weight:600;color:var(--tone-6)}.practice-pill{min-height:44px;padding:0 14px;border:2px solid var(--line);border-radius:12px;background:var(--surface);font-size:13px;font-weight:700;color:var(--ink)}.practice-pill:hover{border-color:var(--tone-5)}.practice-pill:disabled{opacity:.4;cursor:default}.countdown{font-size:var(--fs-14);color:var(--ink-2)}.tier-table{display:flex;flex-direction:column}.tier-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);padding:6px 0;border-bottom:1px solid var(--line);font-size:var(--fs-14)}.tier-row:last-child{border-bottom:none}.tier-name{font-weight:700;color:var(--ink);white-space:nowrap}.tier-stats{color:var(--ink-2);text-align:right}.win-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-card);display:flex;align-items:center;justify-content:center;padding:var(--sp-4);background:var(--veil);animation:overlay-in .2s ease}.win-card{width:min(420px,100%);padding:var(--sp-6) var(--sp-5) var(--sp-5);text-align:center;display:flex;flex-direction:column;gap:var(--sp-4);align-items:center;position:relative;overflow:hidden;animation:card-rise var(--card-rise-ms, .3s) var(--ease-out) backwards}@keyframes card-rise{0%{opacity:0;transform:translateY(24px)}}.win-stat{animation:stat-in .26s var(--ease-out) backwards}@keyframes stat-in{0%{opacity:0;transform:translateY(8px)}}.win-headline{font-family:var(--font-display);font-weight:700;font-size:var(--fs-28);color:var(--ink);line-height:1.25;text-wrap:balance}.verdict-chip{display:inline-block;margin:6px auto 2px;padding:3px 12px;border:1.5px solid var(--gold-foil);border-radius:999px;font-size:var(--fs-12);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--tone-6);background:var(--foil-12)}.medal-row{display:flex;gap:var(--sp-4);justify-content:center}.medal-slot{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:var(--fs-12);font-weight:700;letter-spacing:.06em;color:var(--ink-2)}.medal-slot.earned{color:var(--tone-6)}.medal-earned{animation:medal-pop .5s var(--ease-glide),foil-shine .7s ease-out .5s}@keyframes medal-pop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.08)}}@keyframes foil-shine{50%{filter:brightness(1.35)}}.win-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3);width:100%}.win-stat{display:flex;flex-direction:column;gap:2px}.win-stat .value{font-size:var(--fs-20);font-weight:700;color:var(--ink)}.win-stat .label{font-size:var(--fs-12);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}.win-streak{display:flex;align-items:center;gap:8px;color:var(--ink);font-weight:700}.win-actions{display:flex;flex-direction:column;gap:var(--sp-2);width:100%}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:var(--sp-3);width:100%}.stat-tile{padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:2px}.stat-tile .value{font-size:var(--fs-28);font-weight:700;color:var(--ink)}.stat-tile .label{font-size:var(--fs-12);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}.empty-state{color:var(--ink-2);text-align:center;padding:var(--sp-5) 0;line-height:1.6}.stats-heading{font-size:var(--fs-12);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin:var(--sp-4) 0 var(--sp-2)}.tries-dist{display:flex;flex-direction:column;gap:6px}.tries-row{display:flex;align-items:center;gap:var(--sp-2)}.tries-label{flex:none;width:56px;text-align:right;font-size:var(--fs-12);color:var(--ink-2)}.tries-bar-track{flex:1}.tries-bar{background:var(--tone-4);color:var(--ink);font-size:var(--fs-12);font-weight:700;border-radius:var(--radius-sm);padding:3px 8px;min-width:26px;text-align:right}.tries-bar.is-today{background:var(--accent);color:var(--ink)}.stats-footer{display:flex;padding-top:var(--sp-4);margin-top:var(--sp-4);border-top:1px solid var(--line)}.stats-footer .btn{width:100%}.howto-row{display:flex;gap:var(--sp-3);align-items:flex-start;padding:var(--sp-2) 0}.howto-glyph{flex:none;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--tone-3)}.howto-row p{font-size:var(--fs-14);line-height:1.55}.howto-row b{color:var(--ink);font-weight:700}.coach-bubble{position:relative;border:2px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:var(--sp-4);font-size:var(--fs-14);line-height:1.55;width:min(420px,100%);box-shadow:0 8px 24px var(--shadow-ink)}.coach-actions{display:flex;justify-content:space-between;align-items:center;padding-top:var(--sp-3)}.tutorial-screen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);padding:20px 14px 30px}.tutorial-step{font-size:var(--fs-12);font-weight:700;letter-spacing:.06em;color:var(--ink-2);text-transform:uppercase}.practice-option .name{font-weight:700;color:var(--ink)}.practice-option .desc{font-size:var(--fs-12);color:var(--ink-2)}@media (max-width: 420px){.hud-stats{gap:var(--sp-3);font-size:var(--fs-14)}.win-stats{grid-template-columns:repeat(3,1fr);gap:var(--sp-2)}}.win-card.is-failed{border-color:var(--danger);box-shadow:0 12px 40px var(--shadow-ink),0 0 24px var(--danger-wash)}.share-fallback{width:100%;resize:none;font-family:var(--font-ui);font-size:var(--fs-14);line-height:1.5;color:var(--ink);background:var(--tone-3);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;-webkit-user-select:all;user-select:all}.crash-screen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);padding:var(--sp-6);text-align:center;color:var(--ink)}.crash-screen p{color:var(--ink-2)}
