:root{--void:#04050b;--cyan:#22d3ee;--cyan-soft:#6ee7f9;--cyan-glass:#22d3ee1f;--cyan-line:#22d3ee61;--ink:#e8feff;--muted:#d5dfea;--muted-deep:#9fadbc;--amber:#f5b544;--danger:#fb4d63;--font:-apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--pad-edge:max(20px, env(safe-area-inset-left));--ease:cubic-bezier(.22, .61, .36, 1)}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%}body{background:var(--void);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;margin:0}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;margin:0}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:4px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.icon{width:18px;height:18px}.glow{z-index:0;pointer-events:none;background:radial-gradient(58% 44% at 50% 42%,#22d3ee21,#0000 72%),radial-gradient(70% 50% at 50% 108%,#d946ef1a,#0000 70%);position:fixed;inset:0}.app{z-index:1;min-height:100vh;flex-direction:column;min-height:100dvh;display:flex;position:relative}.home{padding:max(28px, env(safe-area-inset-top)) var(--pad-edge) max(24px, env(safe-area-inset-bottom));animation:rise .42s var(--ease) both;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:24px;display:flex}.brand{text-align:center;flex-direction:column;align-items:center;display:flex}.brand__mark{width:46px;height:46px;color:var(--cyan);filter:drop-shadow(0 0 14px #22d3ee8c)}.brand__name{letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;margin:14px 0 0;font-size:30px;font-weight:600}.brand__tagline{letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin:8px 0 0;font-size:12px}.modes{flex-direction:column;gap:10px;width:min(100%,380px);display:flex}.mode{text-align:left;transition:border-color .18s var(--ease), background-color .18s var(--ease), transform .14s var(--ease);background:#ffffff08;border:1px solid #94a3b829;border-radius:14px;align-items:center;gap:14px;padding:14px 15px 14px 18px;display:flex}@media (hover:hover){.mode:hover{border-color:var(--cyan-line);background:#ffffff0f}}.mode:active{transform:scale(.985)}.mode.is-last{border-color:var(--cyan-line);background:var(--cyan-glass)}.mode__text{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.mode__row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.mode__name{letter-spacing:.16em;text-transform:uppercase;color:var(--ink);font-size:15px;font-weight:600}.mode__best{letter-spacing:.14em;color:var(--muted-deep);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px}.mode__desc{color:var(--muted);font-size:12.5px;line-height:1.5}.mode__go{border:1px solid var(--cyan-line);width:40px;height:40px;color:var(--cyan);transition:transform .2s var(--ease);background:#22d3ee24;border-radius:50%;flex:0 0 40px;justify-content:center;align-items:center;display:flex;box-shadow:0 0 22px -6px #22d3eee6}.icon-play{margin-left:2px}.mode[aria-expanded=true] .mode__go{transform:rotate(180deg)}.lockrow{width:min(100%,380px);animation:rise .26s var(--ease) both;flex-direction:column;gap:10px;margin-top:-8px;display:flex}.lockrow__label{letter-spacing:.28em;text-transform:uppercase;color:var(--muted-deep);font-size:10px}.chips{flex-wrap:wrap;gap:7px;display:flex}.chip{border:1px solid var(--cyan-line);font-variant-numeric:tabular-nums;min-width:46px;color:var(--cyan-soft);text-align:center;transition:background-color .16s var(--ease), transform .14s var(--ease);background:#22d3ee14;border-radius:10px;padding:11px 4px;font-size:13px}@media (hover:hover){.chip:hover{background:#22d3ee2e}}.chip:active{transform:scale(.96)}.chip.is-last{color:var(--ink);background:#22d3ee38}.fineprint{text-align:center;max-width:340px;color:var(--muted-deep);margin:0;font-size:11px;line-height:1.6}.footer{flex-direction:column;align-items:center;gap:10px;display:flex}.lang{border:1px solid #94a3b824;border-radius:999px;gap:4px;padding:3px;display:flex}.lang__btn{letter-spacing:.14em;color:var(--muted-deep);transition:background-color .16s var(--ease), color .16s var(--ease);border-radius:999px;padding:5px 12px;font-size:10.5px;font-weight:600}.lang__btn.is-selected{background:var(--cyan-glass);color:var(--cyan-soft)}.clear{letter-spacing:.2em;text-transform:uppercase;color:var(--muted-deep);transition:color .16s var(--ease);border-radius:999px;padding:7px 14px;font-size:10px}@media (hover:hover){.clear:hover{color:var(--muted)}}.clear.is-armed{color:var(--danger)}.stage{padding:var(--pad-edge);touch-action:none;-webkit-user-select:none;user-select:none;flex:1;justify-content:center;align-items:center;display:flex;position:relative}.back{letter-spacing:.24em;text-indent:.24em;text-transform:uppercase;color:var(--ink);transition:background-color .16s var(--ease), border-color .16s var(--ease);border:1px solid #94a3b866;border-radius:999px;margin-top:3px;padding:9px 18px;font-size:10px;font-weight:600}@media (hover:hover){.back:hover{background:#ffffff0f;border-color:#94a3b89e}}.core{opacity:1;transition:opacity .14s var(--ease);flex-direction:column;align-items:center;gap:20px;display:flex}.waiter{width:84px;height:84px;position:relative}.waiter:before{content:"";background:radial-gradient(circle,#22d3ee1a,#0000 68%);border:1.5px solid #94a3b829;border-radius:50%;position:absolute;inset:0}.waiter__arc{border:1.5px solid #0000;border-top-color:var(--cyan);border-radius:50%;animation:1.25s linear infinite spin;position:absolute;inset:0;box-shadow:0 0 18px #22d3ee4d}.cue{letter-spacing:.36em;text-indent:.36em;text-transform:uppercase;color:var(--cyan-soft);text-align:center;margin:0;font-size:13px;font-weight:600}.cue-sub{text-align:center;max-width:300px;color:var(--muted);margin:-12px 0 0;font-size:12.5px;line-height:1.55}.cue-sub:empty{display:none}.cue-target{letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--cyan-soft);text-shadow:0 0 36px #22d3ee8c;margin:4px 0 0;font-size:clamp(44px,13vmin,76px);font-weight:700;line-height:1}.cue-target:empty{display:none}.counting{text-align:center;opacity:0;transition:opacity .16s var(--ease) .16s;pointer-events:none;flex-direction:column;align-items:center;gap:14px;margin:0;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.counting__label{letter-spacing:.36em;text-indent:.36em;text-transform:uppercase;color:var(--muted);margin:0;font-size:13px;font-weight:600}.counting__target{letter-spacing:-.025em;font-variant-numeric:tabular-nums;color:var(--ink);text-shadow:0 0 44px #22d3ee73;margin:0;font-size:clamp(60px,17vmin,104px);font-weight:700;line-height:1}.stage[data-phase=flashPending] .core,.stage[data-phase=signal] .core,.stage[data-phase=counting] .core{opacity:0}.stage[data-phase=counting] .counting{opacity:1}.stage[data-phase=counting] .waiter__arc{animation:none}.stage .verdict,.stage .retry,.stage[data-phase=result] .core,.stage[data-phase=falseStart] .core,.stage[data-phase=tooEarly] .core,.stage[data-phase=abandoned] .core,.stage[data-phase=result] .counting,.stage[data-phase=falseStart] .counting,.stage[data-phase=tooEarly] .counting,.stage[data-phase=abandoned] .counting{display:none}.stage[data-phase=result] .verdict,.stage[data-phase=falseStart] .verdict,.stage[data-phase=tooEarly] .verdict,.stage[data-phase=abandoned] .verdict,.stage[data-phase=result] .retry,.stage[data-phase=falseStart] .retry,.stage[data-phase=tooEarly] .retry,.stage[data-phase=abandoned] .retry{display:flex}.verdict{text-align:center;animation:rise .24s var(--ease) both;flex-direction:column;align-items:center;padding-bottom:132px}.verdict__label{letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;color:var(--cyan);margin:0 0 4px;font-size:12px;font-weight:600}.verdict.is-fail .verdict__label{letter-spacing:.1em;text-indent:.1em;color:var(--danger);margin-bottom:14px;font-size:clamp(26px,7vw,40px)}.verdict.is-fail .dial,.verdict.is-fail .verdict__record{display:none}.dial{--dial-size:clamp(168px, 42vmin, 236px);width:var(--dial-size);height:var(--dial-size);margin-top:4px;position:relative}.dial__svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.dial__ring{fill:none;stroke:var(--cyan);stroke-width:2.5px;stroke-dasharray:7 7;transition:stroke .3s var(--ease)}.dial__disc{fill:#f5b54433;stroke:var(--amber);stroke-width:2.5px;transition:r .42s var(--ease), fill .3s var(--ease), stroke .3s var(--ease)}.dial.is-record .dial__ring{stroke:var(--muted-deep)}.dial.is-record .dial__disc,.dial.is-first .dial__disc{fill:#22d3ee38;stroke:var(--cyan)}.dial.is-first .dial__ring{display:none}.dial__number{color:var(--ink);text-shadow:0 0 34px #22d3ee73;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.dial__figure{align-items:baseline;line-height:1;display:inline-flex}.dial__value{font-size:calc(var(--dial-size) * .145);letter-spacing:-.035em;font-variant-numeric:tabular-nums;font-weight:700}.dial__symbol{font-size:calc(var(--dial-size) * .062);letter-spacing:0;margin-left:.06em;font-weight:600}.verdict__record{letter-spacing:.06em;font-variant-numeric:tabular-nums;color:var(--amber);margin:16px 0 0;font-size:12.5px}.verdict__record.is-better{color:var(--cyan)}.verdict__record.is-neutral{color:var(--muted-deep)}.verdict__detail{letter-spacing:.06em;font-variant-numeric:tabular-nums;color:var(--muted);margin:8px 0 0;font-size:12.5px}.verdict__detail:empty{display:none}.retry{bottom:max(5vh, calc(20px + env(safe-area-inset-bottom)));z-index:20;animation:pop .26s var(--ease) both;flex-direction:column;align-items:center;gap:9px;position:fixed;left:50%;transform:translate(-50%)}.again{border:1px solid var(--cyan-line);letter-spacing:.22em;text-indent:.22em;text-transform:uppercase;min-width:172px;color:var(--cyan-soft);white-space:nowrap;background:#22d3ee1f;border-radius:999px;padding:17px 30px;font-size:12.5px;font-weight:600;box-shadow:0 0 0 9px #22d3ee0a,0 20px 60px -26px #22d3eee6}.retry__hint{letter-spacing:.16em;color:var(--muted-deep);text-align:center;margin:0;font-size:10px}.flash{z-index:40;opacity:0;pointer-events:none;will-change:opacity;transition:opacity .14s var(--ease);background:radial-gradient(circle,#e2f5ff38,#e2f5ff0f 46%,#e2f5ff08 100%);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.flash.is-on{opacity:1;transition:none}.flash__disc{aspect-ratio:1;background:#eaf7ff;border-radius:50%;justify-content:center;align-items:center;width:clamp(190px,54vmin,430px);display:flex}.flash__word{letter-spacing:.4em;text-indent:.4em;text-transform:uppercase;color:#0b3b45;font-size:15px;font-weight:700}@keyframes spin{to{transform:rotate(360deg)}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:translate(-50%)scale(.86)}to{opacity:1;transform:translate(-50%)scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}@media (max-height:720px){.home{gap:16px}.brand__mark{width:36px;height:36px}.brand__name{margin-top:10px;font-size:24px}.mode{padding:12px 13px 12px 16px}.verdict{padding-bottom:118px}.dial{--dial-size:clamp(150px, 34vmin, 200px)}.cue-target{font-size:clamp(38px,10vmin,58px)}.counting__target{font-size:clamp(52px,14vmin,80px)}}
