:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body{-webkit-user-select:none;user-select:none;background:#0d0908;width:100%;height:100%;font-family:Consolas,Courier New,monospace;overflow:hidden}#app{width:100vw;height:100vh;position:relative}canvas{display:block}body:after{content:"";z-index:100;pointer-events:none;mix-blend-mode:multiply;background:radial-gradient(circle,#0000 52%,#14060099 100%);position:fixed;inset:0}.hud{pointer-events:none;z-index:10;-webkit-backdrop-filter:blur(8px);background:#1c100880;border:1px solid #ffb45a2e;border-radius:12px;flex-direction:column;align-items:center;padding:10px 28px;display:flex;position:absolute;top:20px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000080}.hud__score{letter-spacing:2px;color:#ffe4bf;text-shadow:0 0 12px #ff8a3d80;font-size:32px;font-weight:700;line-height:1.1}.hud__best{letter-spacing:2px;color:#ffb45a;opacity:.8;font-size:11px}.hud__best:not(:empty){text-align:center;border-top:1px solid #ffffff14;width:100%;margin-top:4px;padding-top:4px}.overlay{text-align:center;pointer-events:auto;z-index:20;background:radial-gradient(circle,#280c0080 0%,#060302ed 78%);flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:24px;transition:opacity .3s;display:flex;position:absolute;inset:0}.overlay.hidden{display:none}.overlay__title{letter-spacing:8px;color:#ff8a3d;text-shadow:0 0 12px #ff7a1a,0 0 32px #ff4500,0 0 60px #ff2000;font-size:54px;animation:3s infinite flicker}.overlay__subtitle{letter-spacing:3px;color:#ffd08a;text-shadow:0 0 8px #ff7a1a;font-size:16px}.overlay__score{letter-spacing:2px;color:#ffe4bf;font-size:20px}.overlay__hint{letter-spacing:2px;color:#ffb45a;opacity:.85;margin-top:12px;font-size:13px}@keyframes flicker{0%,18%,22%,54%,56%,to{opacity:1}20%,55%{opacity:.55}}.countdown{pointer-events:none;z-index:25;letter-spacing:6px;color:#ffe4bf;text-shadow:0 0 30px #ff7a1a,0 6px 26px #0009;opacity:0;justify-content:center;align-items:center;font-size:150px;font-weight:700;display:flex;position:absolute;inset:0}.countdown.is-shown{animation:.75s ease-out countdown-pop}@keyframes countdown-pop{0%{opacity:0;transform:scale(.4)}20%{opacity:1;transform:scale(1.12)}40%{transform:scale(1)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}.banner{pointer-events:none;z-index:24;letter-spacing:6px;color:#ff3018;text-shadow:0 0 20px #ff2000,0 0 44px red;opacity:0;font-size:44px;font-weight:700;position:absolute;top:26%;left:50%;transform:translate(-50%)scale(.6)}.banner.is-shown{animation:1.4s ease-out banner-flash}@keyframes banner-flash{0%{opacity:0;transform:translate(-50%)scale(.6)}15%{opacity:1;transform:translate(-50%)scale(1.1)}30%{transform:translate(-50%)scale(1)}70%{opacity:1}to{opacity:0;transform:translate(-50%)scale(1.05)}}.touch-controls{z-index:15;pointer-events:none;justify-content:space-between;padding:0 20px 24px;display:none;position:absolute;inset:auto 0 0}.touch-cluster{pointer-events:auto;gap:14px;display:flex}.touch-btn{color:#ffd08a;letter-spacing:1px;-webkit-backdrop-filter:blur(6px);touch-action:none;background:#28160a8c;border:1px solid #ffb45a66;border-radius:50%;width:66px;height:66px;font-family:inherit;font-size:24px;font-weight:700}.touch-btn:active{background:#ff7a1a66}@media (hover:none),(pointer:coarse){.touch-controls{display:flex}}
