:root{--dither-dark:#333319;--dither-light:#fff;--ui-enter:cubic-bezier(.22, 1, .36, 1);--ui-move:cubic-bezier(.25, 1, .5, 1)}.game-ui{color:var(--dither-light);pointer-events:none;z-index:1000;width:100%;height:100%;font-family:VT323,monospace;position:fixed;top:0;left:0}.game-ui__hud{letter-spacing:.04em;justify-content:space-between;padding:16px 20px;font-size:clamp(18px,2.5vw,22px);display:flex;position:absolute;top:0;left:0;right:0}.game-ui__score{display:inline-block}.game-ui__score--tick{animation:ui-score-tick .14s var(--ui-enter)}.game-ui__hint{letter-spacing:.06em;opacity:.85;text-align:center;transition:opacity .5s var(--ui-move);font-size:clamp(16px,2.2vw,20px);position:absolute;top:calc(50% + 36px);left:50%;transform:translate(-50%)}.game-ui__hint--gone{opacity:0}.game-ui__crosshair{width:28px;height:28px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.game-ui__crosshair-h,.game-ui__crosshair-v{background:var(--dither-light);position:absolute}.game-ui__crosshair-h{width:100%;height:2px;top:50%;left:0;transform:translateY(-50%)}.game-ui__crosshair-v{width:2px;height:100%;top:0;left:50%;transform:translate(-50%)}.game-ui__crosshair-gap{box-shadow:inset 0 0 0 2px var(--dither-dark);background:0 0;width:10px;height:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.game-ui__crosshair--pulse{animation:ui-crosshair-pulse .12s var(--ui-enter)}.game-ui__crosshair--hit .game-ui__crosshair-h,.game-ui__crosshair--hit .game-ui__crosshair-v{background:var(--dither-light);box-shadow:0 0 0 1px var(--dither-dark);outline:1px solid var(--dither-light)}.game-ui__stage{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.game-ui__stage--death{animation:ui-death-settle .28s var(--ui-enter) both}.game-ui__brand{animation:ui-attract-pulse 2.4s var(--ui-enter) 1;letter-spacing:.08em;text-shadow:2px 2px 0 var(--dither-dark);margin:0 0 12px;font-size:clamp(40px,10vw,72px);font-weight:700;line-height:1}.game-ui__tagline{letter-spacing:.12em;opacity:.9;text-transform:uppercase;margin:0 0 36px;font-size:clamp(18px,3vw,24px)}.game-ui__title{letter-spacing:.06em;text-shadow:2px 2px 0 var(--dither-dark);margin:0 0 16px;font-size:clamp(48px,12vw,80px);font-weight:700}.game-ui__stat{letter-spacing:.06em;margin:0 0 8px;font-size:clamp(22px,4vw,32px)}.game-ui__stat--best{opacity:.85;margin-bottom:28px}.game-ui__cta{background:var(--dither-light);border:2px solid var(--dither-light);color:var(--dither-dark);cursor:pointer;letter-spacing:.1em;pointer-events:all;text-transform:uppercase;touch-action:manipulation;min-width:200px;min-height:48px;transition:background-color .12s var(--ui-enter), color .12s var(--ui-enter), transform .12s var(--ui-enter);padding:14px 40px;font-family:VT323,monospace;font-size:clamp(20px,3.5vw,28px);font-weight:700}.game-ui__cta:hover{background:var(--dither-dark);color:var(--dither-light)}.game-ui__cta:active{transform:scale(.97)}.game-ui__cta:focus-visible{outline:3px solid var(--dither-light);outline-offset:4px}.game-ui__controls{letter-spacing:.08em;opacity:.75;margin-top:20px;font-size:clamp(14px,2vw,18px)}.game-ui__streak{animation:ui-streak-pulse .4s var(--ui-enter) both;border:2px solid var(--dither-light);pointer-events:none;position:absolute;inset:10px}body.game-phase-playing footer{opacity:.35;transition:opacity .2s var(--ui-move)}body.game-phase-attract footer,body.game-phase-gameOver footer{opacity:.7;transition:opacity .2s var(--ui-move)}@keyframes ui-attract-pulse{0%{opacity:.55;transform:scale(.98)}40%{opacity:1;transform:scale(1)}to{opacity:1;transform:scale(1)}}@keyframes ui-score-tick{0%{opacity:.5;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes ui-crosshair-pulse{0%{transform:translate(-50%,-50%)scale(1.25)}to{transform:translate(-50%,-50%)scale(1)}}@keyframes ui-death-settle{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes ui-streak-pulse{0%{opacity:.9}to{opacity:0}}@media (prefers-reduced-motion:reduce){.game-ui__brand,.game-ui__score--tick,.game-ui__crosshair--pulse,.game-ui__stage--death,.game-ui__streak,.game-ui__cta{transition:none!important;animation:none!important}.game-ui__hint{transition:opacity .2s linear}}
