:root{--k-ink: #f3eee4;--k-ink-dim: rgba(243, 238, 228, .76);--k-ink-faint: rgba(243, 238, 228, .6);--k-line: rgba(243, 238, 228, .2);--k-night: #0b0c22;--k-coral: #ff6b4a;--k-coral-deep: #c4442b;--k-coral-ink: #1b1d3a;--k-amber: #ffbf5e;--k-teal: #5fe0d8;--k-display: "Unbounded Variable", "Unbounded", system-ui, sans-serif;--k-mono: "JetBrains Mono Variable", "JetBrains Mono", ui-monospace, monospace;--k-body: "Inter Variable", "Inter", system-ui, sans-serif;--k-gutter: clamp(16px, 3.2vw, 36px);--k-wordmark-space: clamp(150px, 34vh, 360px)}#stage{position:fixed;inset:0;z-index:0;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#ui{position:fixed;inset:0;z-index:1;pointer-events:none;color:var(--k-ink);font-family:var(--k-body);-webkit-font-smoothing:antialiased}#ui [hidden]{display:none!important}.k-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.k-primary,.k-secondary,.k-icon,.k-switch{pointer-events:auto;font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.k-primary:focus-visible,.k-secondary:focus-visible,.k-icon:focus-visible,.k-switch:focus-visible{outline:2px solid var(--k-ink);outline-offset:3px}.k-primary{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:54px;padding:0 28px 3px;border:0;border-radius:16px;background:var(--k-coral);color:var(--k-coral-ink);font:700 18px/1 var(--k-display);letter-spacing:.01em;box-shadow:inset 0 -4px 0 var(--k-coral-deep),0 14px 34px -14px #ff6b4abf;transition:transform .08s ease,box-shadow .08s ease,filter .15s ease}.k-primary:hover{filter:brightness(1.06)}.k-primary:active{transform:translateY(3px);box-shadow:inset 0 -1px 0 var(--k-coral-deep),0 8px 20px -12px #ff6b4ab3}.k-primary kbd{padding:5px 7px 4px;border-radius:6px;border:1px solid rgba(27,29,58,.34);background:#1b1d3a1a;font:600 12px/1 var(--k-mono)}.k-primary svg{margin-left:-4px}.k-secondary{min-height:54px;padding:0 22px;border-radius:14px;border:1px solid rgba(243,238,228,.36);background:#0b0c2280;font:600 16px/1 var(--k-body);transition:background-color .15s ease,border-color .15s ease}.k-secondary:hover{border-color:#f3eee48c;background:#f3eee414}.k-icon{display:grid;place-items:center;width:44px;height:44px;padding:0;border-radius:12px;border:1px solid var(--k-line);background:#0b0c228c}.k-icon:hover{border-color:#f3eee473}.k-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px}.k-title{position:absolute;inset:0;overflow-y:auto;pointer-events:auto;display:flex;flex-direction:column;align-items:center;padding:var(--k-wordmark-space) var(--k-gutter) calc(28px + env(safe-area-inset-bottom));background:radial-gradient(ellipse 78% 62% at 50% 72%,#0b0c22d6,#0b0c2200 74%)}.k-title__body{display:flex;flex-direction:column;align-items:center;gap:22px;width:min(100%,960px)}.k-tagline{max-width:44ch;text-wrap:balance;margin:0 0 4px;text-align:center;font:500 clamp(17px,2vw,22px)/1.4 var(--k-body);text-shadow:0 2px 18px rgba(11,12,34,.9)}.k-modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;width:100%;margin:0;padding:0;border:0;min-inline-size:0}.k-mode{position:relative;display:block;cursor:pointer}.k-mode input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.k-mode__card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name dot" "line line";align-items:center;align-content:start;gap:8px 10px;height:100%;box-sizing:border-box;padding:16px 16px 15px;border-radius:14px;border:1px solid var(--k-line);background:#0b0c2299;transition:border-color .15s ease,background-color .15s ease}.k-mode__name{grid-area:name;font:600 17px/1.15 var(--k-display)}.k-mode__line{grid-area:line;font:400 14px/1.4 var(--k-body);color:var(--k-ink-dim);text-wrap:balance}.k-mode__dot{grid-area:dot;box-sizing:border-box;width:16px;height:16px;border-radius:50%;border:2px solid rgba(243,238,228,.45);transition:border-color .15s ease,background-color .15s ease}.k-mode:hover .k-mode__card{border-color:#f3eee466}.k-mode input:checked+.k-mode__card{border-color:var(--k-coral);background:#ff6b4a24;box-shadow:inset 0 0 0 1px var(--k-coral)}.k-mode input:checked+.k-mode__card .k-mode__dot{border-color:var(--k-coral);background:var(--k-coral);box-shadow:inset 0 0 0 3px var(--k-night)}.k-mode input:focus-visible+.k-mode__card{outline:2px solid var(--k-ink);outline-offset:3px}.k-best{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:4px 12px;min-height:22px;margin:0;font:500 14px/1.3 var(--k-mono);font-variant-numeric:tabular-nums;color:var(--k-ink-dim)}.k-best__score{font-size:17px;font-weight:700;color:var(--k-ink)}.k-touch{display:flex;align-items:flex-start;gap:12px;max-width:46ch;margin:0;padding:12px 16px;border-radius:12px;border:1px solid rgba(95,224,216,.38);background:#0d2b2a9e;font:400 15px/1.45 var(--k-body);text-wrap:pretty}.k-touch svg{flex:none;margin-top:-1px;color:var(--k-teal)}.k-title__actions{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:18px 40px;width:100%;padding-bottom:28px}.k-sound{position:relative;display:flex}.k-switch{display:inline-flex;align-items:center;gap:10px;min-height:54px;padding:0 16px 0 14px;border-radius:14px;border:1px solid var(--k-line);background:#0b0c228c;font:600 15px/1 var(--k-body)}.k-switch__icon{display:grid;color:var(--k-ink-dim)}.k-switch__state{padding:4px 7px;border-radius:6px;background:#f3eee41a;color:var(--k-ink-dim);font:600 12px/1 var(--k-mono);letter-spacing:.08em;text-transform:uppercase}.k-switch[aria-checked=true] .k-switch__icon,.k-switch[aria-checked=true] .k-switch__state{color:var(--k-teal)}.k-switch[aria-checked=true] .k-switch__state{background:#5fe0d829}.k-sound__line{position:absolute;top:calc(100% + 8px);left:50%;translate:-50% 0;margin:0;white-space:nowrap;text-align:center;font:400 14px/1.4 var(--k-body);color:var(--k-ink-dim)}.k-hud{--k-hud-value: 50px;position:absolute;top:0;left:0;right:0;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;gap:12px;padding:calc(16px + env(safe-area-inset-top)) var(--k-gutter) 0;pointer-events:none;font-variant-numeric:tabular-nums;text-shadow:0 0 2px rgba(11,12,34,.95),0 1px 4px rgba(11,12,34,.8),0 2px 16px rgba(11,12,34,.7)}.k-hud:before{content:"";position:absolute;inset:0 0 auto;z-index:-1;height:calc(100% + 48px);background:linear-gradient(#0b0c22bd,#0b0c226b 62%,#0b0c2200);pointer-events:none}.k-hud__value{display:flex;align-items:flex-end;gap:10px;height:var(--k-hud-value)}.k-hud__label{display:flex;align-items:center;gap:8px;min-height:18px;margin-top:7px;font:500 13px/1.2 var(--k-mono);color:var(--k-ink-dim)}.k-score{font:700 clamp(24px,3.2vw,38px)/1 var(--k-mono)}.k-mult{padding-bottom:2px;font:700 clamp(15px,1.6vw,19px)/1 var(--k-mono);color:var(--k-coral)}.k-combo{font-size:16px;font-weight:700;color:var(--k-ink)}.k-hud__hour{text-align:center;transition:opacity .3s ease}.k-hud--banner .k-hud__hour{opacity:.16}.k-hud__hour .k-hud__value,.k-hud__hour .k-hud__label{justify-content:center}.k-clock{font:700 clamp(19px,2vw,24px)/1 var(--k-mono)}.k-hourname{max-width:18ch;font:600 13px/1.25 var(--k-mono);letter-spacing:.06em;text-transform:uppercase;color:#f3eee4e0}.k-hud__right{display:flex;align-items:flex-start;justify-content:flex-end;gap:18px}.k-kpm .k-hud__value,.k-kpm .k-hud__label{justify-content:flex-end}.k-kpm__value{font:700 clamp(30px,4.2vw,50px)/1 var(--k-mono);color:var(--k-amber)}.k-kpm__label{letter-spacing:.04em}.k-hud__buttons{display:flex;gap:8px}.k-banner{position:absolute;top:clamp(96px,17vh,170px);left:var(--k-gutter);right:var(--k-gutter);display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;pointer-events:none;text-shadow:0 2px 22px rgba(11,12,34,.92)}.k-banner__head{font:700 clamp(26px,4.4vw,50px)/1.1 var(--k-display)}.k-banner__adds{max-width:40ch;font:500 clamp(15px,1.8vw,19px)/1.4 var(--k-body);color:var(--k-ink-dim);animation:k-fade .4s .15s ease-out both}.k-callout{position:absolute;top:clamp(200px,36vh,340px);left:var(--k-gutter);right:var(--k-gutter);text-align:center;font:700 clamp(21px,3.2vw,36px)/1.2 var(--k-display);color:var(--k-amber);pointer-events:none;text-shadow:0 2px 22px rgba(11,12,34,.92)}.k-overlay{position:absolute;inset:0;display:grid;place-items:center;padding:var(--k-gutter);overflow-y:auto;pointer-events:auto}.k-pause{background:#0b0c22ad;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.k-results{background:radial-gradient(ellipse 80% 72% at 50% 50%,#0b0c22e6,#0b0c2299)}.k-panel{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:640px;text-align:center}.k-panel h2{margin:0}.k-pause__title{font:700 clamp(34px,6vw,56px)/1.05 var(--k-display)}.k-pause__line{margin:0 0 14px;font:500 18px/1.4 var(--k-body);color:var(--k-ink-dim)}.k-results__title{font:600 clamp(20px,3vw,28px)/1.2 var(--k-display);color:var(--k-ink-dim)}.k-results__score{margin:0;font:800 clamp(56px,11vw,112px)/1 var(--k-display);font-variant-numeric:tabular-nums;letter-spacing:-.02em;text-shadow:0 6px 40px rgba(255,107,74,.28)}.k-badge{margin:0;padding:7px 12px 6px;border-radius:999px;background:var(--k-amber);color:var(--k-coral-ink);font:700 13px/1 var(--k-mono);letter-spacing:.1em;text-transform:uppercase}.k-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 32px;margin:10px 0 4px}.k-stats div{display:flex;flex-direction:column-reverse;align-items:center;gap:7px}.k-stats dt{font:500 13px/1.25 var(--k-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--k-ink-dim)}.k-stats dd{margin:0;font:700 clamp(22px,3vw,30px)/1 var(--k-mono);font-variant-numeric:tabular-nums}.k-heard{margin:4px 0 18px;font:500 17px/1.45 var(--k-body)}.k-error{position:absolute;top:50%;left:50%;max-width:36ch;margin:0;translate:-50% -50%;text-align:center;font:500 18px/1.5 var(--k-body);pointer-events:auto}.k-fx-word{display:inline-block;white-space:nowrap}.k-fx-letter{display:inline-block}.k-fx-wave .k-fx-letter{animation:k-wave .62s cubic-bezier(.2,.9,.25,1.15) both;animation-delay:calc(var(--i) * 26ms)}.k-fx-blur{animation:k-blur .55s ease-out both}.k-fx-stamp{animation:k-stamp .42s cubic-bezier(.2,1.4,.4,1) both}.k-fx-slide{animation:k-slide .5s cubic-bezier(.2,.8,.2,1) both}.k-fx-fade{animation:k-fade .3s ease-out both}.k-fx-out{animation:k-leave .4s ease-in both}@keyframes k-wave{0%{opacity:0;transform:translateY(.7em)}60%{opacity:1;transform:translateY(-.12em)}to{opacity:1;transform:none}}@keyframes k-blur{0%{opacity:0;filter:blur(16px);letter-spacing:.18em}to{opacity:1;filter:none}}@keyframes k-stamp{0%{opacity:0;transform:scale(1.9) rotate(-3deg)}70%{opacity:1}to{opacity:1;transform:none}}@keyframes k-slide{0%{opacity:0;transform:translate(-1.4em);clip-path:inset(-60% 100% -60% -20%)}to{opacity:1;transform:none;clip-path:inset(-60% -20% -60% -20%)}}@keyframes k-fade{0%{opacity:0}to{opacity:1}}@keyframes k-leave{to{opacity:0;transform:translateY(-.3em)}}@keyframes k-fade-out{to{opacity:0}}@media(max-width:720px){:root{--k-wordmark-space: clamp(118px, 21vh, 200px)}.k-title__body{gap:16px}.k-modes{grid-template-columns:1fr;gap:8px}.k-mode__card{grid-template-columns:5.4em minmax(0,1fr) auto;grid-template-areas:"name line dot";gap:12px;padding:13px 14px 13px 16px}.k-mode__name{font-size:16px}.k-touch{font-size:14px}.k-title__actions{flex-wrap:nowrap;gap:12px}.k-sound__line{left:0;translate:none;text-align:left}.k-title__actions .k-primary{flex:1 1 auto;min-width:0}}@media(max-width:560px){.k-hud{--k-hud-value: 44px;gap:8px}.k-score{font-size:24px}.k-hud__right{flex-direction:column-reverse;align-items:flex-end;gap:0}.k-kpm{display:flex;align-items:baseline;gap:6px;min-height:18px;margin-top:7px}.k-kpm .k-hud__value,.k-kpm .k-hud__label{height:auto;min-height:0;margin:0}.k-kpm__value{font-size:18px}.k-hourname{max-width:11ch;font-size:12px}.k-stats{gap:12px 16px}.k-actions{flex-direction:column;align-items:stretch;width:100%}}@media(prefers-reduced-motion:reduce){.k-fx-wave .k-fx-letter,.k-fx-blur,.k-fx-stamp,.k-fx-slide,.k-banner__adds{animation:k-fade .3s ease-out both}.k-fx-out{animation:k-fade-out .3s ease-in both}.k-primary,.k-secondary,.k-mode__card,.k-mode__dot{transition:none}.k-primary:active{transform:none}}
