@font-face{font-family:Saira Semi Condensed;src:url(/assets/saira-semi-condensed-400-DBFPQfhT.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Saira Semi Condensed;src:url(/assets/saira-semi-condensed-700-DrSnQFZS.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans JP Subset;src:url(/assets/noto-sans-jp-subset-400-D1P4XzbI.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans JP Subset;src:url(/assets/noto-sans-jp-subset-700-DYnfBf-9.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--bg: #000;--fg: #fff;--dim: rgba(255, 255, 255, .42);--faint: rgba(255, 255, 255, .14);--accent: #ff1f2d;--font-display: "Saira Semi Condensed", "Bahnschrift", "DIN Alternate", "Arial Narrow", "Helvetica Neue", sans-serif;--font-ui: "Saira Semi Condensed", "Noto Sans JP Subset", "Hiragino Sans", "Yu Gothic UI", system-ui, sans-serif;--digit-size: min(50vw, 78vh);--digit-shift: -.005em;--leader-size: 92vmin}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-ui);overflow:hidden;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;user-select:none}body.cursor-hidden{cursor:none}#app{position:fixed;inset:0}.screen{position:absolute;inset:0;display:grid;place-items:center;opacity:0;visibility:hidden;transition:opacity .22s ease,visibility 0s linear .22s}.screen.is-active{opacity:1;visibility:visible;transition:opacity .38s ease .18s,visibility 0s}.screen--timer.is-active{transition:opacity .16s ease .12s,visibility 0s}.loader{width:min(340px,70vw);text-align:center}.loader__label{font-family:var(--font-display);font-size:.82rem;letter-spacing:.44em;text-indent:.44em;color:var(--dim);margin-bottom:1.1rem}.loader__track{height:2px;background:var(--faint);overflow:hidden}.loader__fill{height:100%;background:var(--fg);transform-origin:left center;transform:scaleX(0);transition:transform .18s linear}.loader__pct{margin-top:.9rem;font-family:var(--font-display);font-size:.78rem;letter-spacing:.2em;color:var(--dim);font-variant-numeric:tabular-nums}.loader__err{margin-top:1.4rem;font-size:.78rem;line-height:1.7;color:var(--accent)}.idle{text-align:center;padding:2rem}.idle__title{font-family:var(--font-display);font-weight:700;font-size:clamp(1.6rem,5.2vw,3.4rem);letter-spacing:.3em;text-indent:.3em;line-height:1}.idle__sub{margin-top:.95rem;font-family:var(--font-display);font-size:clamp(.66rem,1.5vw,.9rem);letter-spacing:.5em;text-indent:.5em;color:var(--dim)}.start{position:relative;display:grid;place-items:center;width:clamp(180px,30vmin,280px);aspect-ratio:1;margin:clamp(2.4rem,6vh,4rem) auto 0;border:0;border-radius:50%;background:transparent;color:var(--fg);cursor:pointer;transition:transform .25s cubic-bezier(.2,.8,.3,1)}.start__ring{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(255,255,255,.7);transition:border-color .3s ease,box-shadow .35s ease,transform .35s ease}.start__ring:after{content:"";position:absolute;inset:-14px;border-radius:50%;border:1px solid var(--faint);animation:breathe 3.2s ease-in-out infinite}.start__label{position:relative;font-family:var(--font-display);font-weight:700;font-size:clamp(1.1rem,3vmin,1.7rem);letter-spacing:.26em;text-indent:.26em}.start:hover .start__ring,.start:focus-visible .start__ring{border-color:var(--accent);box-shadow:0 0 0 1px #ff1f2d59,0 0 70px #ff1f2d52}.start:active{transform:scale(.965)}.start:focus-visible{outline:none}@keyframes breathe{0%,to{transform:scale(1);opacity:.55}50%{transform:scale(1.045);opacity:1}}.picker{margin-top:clamp(1.5rem,4vh,2.4rem);display:flex;align-items:center;justify-content:center;gap:.85rem}.picker__label{font-family:var(--font-display);font-size:.66rem;letter-spacing:.3em;text-indent:.3em;color:#ffffff52;white-space:nowrap}.picker__list{display:flex;gap:.45rem}.track{min-width:3.1rem;padding:.5rem .7rem;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:transparent;color:#ffffff9e;font-family:var(--font-display);font-weight:700;font-size:.85rem;letter-spacing:.1em;cursor:pointer;transition:color .2s ease,border-color .2s ease,box-shadow .3s ease,transform .2s cubic-bezier(.2,.8,.3,1)}.track:hover,.track:focus-visible{color:#fff;border-color:var(--accent);box-shadow:0 0 30px #ff1f2d47;outline:none}.track:active{transform:scale(.94)}.idle__hint{margin-top:clamp(1.4rem,4vh,2.4rem);font-size:.72rem;letter-spacing:.14em;color:#ffffff4d}.leader{position:relative;display:grid;place-items:center;width:100%;height:100%}.leader__cross{position:absolute;background:#ffffff38}.leader__cross--h{left:0;right:0;top:50%;height:1px;transform:translateY(-.5px)}.leader__cross--v{top:0;bottom:0;left:50%;width:1px;transform:translate(-.5px)}.leader__svg{position:absolute;width:var(--leader-size);height:var(--leader-size);overflow:visible}.leader__ring{fill:none;stroke:#ffffffd9;stroke-width:3}.leader__ring--in{stroke:#ffffff2e;stroke-width:2}.leader__sweep{fill:#ffffff17}.leader__hand{stroke:#fff;stroke-width:4}.leader__hub{fill:#fff}.leader__ticks line{stroke:#ffffff4d;stroke-width:2}.leader__ticks line.is-major{stroke:#fff9;stroke-width:3}.leader__num{position:relative;top:var(--digit-shift);font-family:var(--font-display);font-weight:700;font-size:var(--digit-size);line-height:1;letter-spacing:0;opacity:0;will-change:transform;text-shadow:0 0 60px rgba(255,255,255,.25)}.leader__ready{position:absolute;top:calc(50% + 20vmin);left:0;right:0;transform:translateY(-50%);text-align:center;font-family:var(--font-display);font-size:clamp(.7rem,1.6vw,.95rem);letter-spacing:.62em;text-indent:.62em;color:var(--dim);transition:opacity .3s ease;animation:blink 1.6s steps(1,end) infinite}@keyframes blink{0%,60%{opacity:1}61%,to{opacity:.28}}.timer{display:grid;place-items:center}.timer__digits{display:flex;align-items:baseline;font-family:var(--font-display);font-weight:700;font-size:var(--digit-size);line-height:1;color:#fff;will-change:transform,color}.timer__sec{display:flex}.timer__digits{position:relative;top:var(--digit-shift)}.timer__cs{display:flex;font-size:.333em}.timer__digits .cell{display:inline-block;width:.6em;text-align:center}.timer__digits .cell--colon{width:.3em}.timer__finish{position:absolute;left:0;right:0;top:max(8vh,2.6rem);text-align:center;font-family:var(--font-display);font-size:clamp(.72rem,1.7vw,1rem);letter-spacing:.6em;text-indent:.6em;color:var(--dim);opacity:0;transform:translateY(-6px);transition:opacity .6s ease .35s,transform .6s ease .35s}.timer__finish.is-on{opacity:1;transform:translateY(0)}.flash{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at center,#ffffff73,#fff0 68%);opacity:0}.flash.is-on{animation:flash .34s ease-out}@keyframes flash{0%{opacity:.85}to{opacity:0}}.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,#0000 52%,#0000008c)}.reset{position:absolute;left:50%;bottom:max(6vh,2.2rem);transform:translate(-50%,12px);padding:.95rem 2.6rem;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:#0006;color:var(--fg);font-family:var(--font-ui);font-size:.92rem;letter-spacing:.14em;cursor:pointer;opacity:0;pointer-events:none;backdrop-filter:blur(6px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.3,1),border-color .25s ease,background-color .25s ease}.reset.is-on{opacity:1;transform:translate(-50%);pointer-events:auto}.reset:hover{border-color:#fff;background:#ffffff1f}.reset:active{background:#fff3}.controls{position:absolute;left:50%;bottom:max(4vh,1.5rem);transform:translate(-50%);display:flex;gap:.7rem;opacity:0;pointer-events:none;transition:opacity .35s ease}body[data-phase=countdown] .controls,body[data-phase=running] .controls{opacity:1;pointer-events:auto}body.cursor-hidden .controls{opacity:0;pointer-events:none}.ctrl{display:inline-flex;align-items:center;gap:.6rem;padding:.6rem 1.15rem;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:#0000008c;color:#ffffffb8;font-family:var(--font-ui);font-size:.8rem;letter-spacing:.1em;cursor:pointer;backdrop-filter:blur(6px);transition:color .2s ease,border-color .2s ease,background-color .2s ease}.ctrl:hover{color:#fff;border-color:#fff9;background:#ffffff1a}.ctrl--stop:hover{color:#fff;border-color:var(--accent);background:#ff1f2d38}.ctrl__key{font-family:var(--font-display);font-size:.66rem;letter-spacing:.08em;padding:.1rem .38rem;border:1px solid rgba(255,255,255,.22);border-radius:4px;color:#ffffff80}.fs{display:inline-flex;align-items:center;gap:.55rem;margin-top:clamp(1.1rem,3vh,1.8rem);padding:.6rem 1.3rem;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:transparent;color:#ffffff9e;font-family:var(--font-ui);font-size:.82rem;letter-spacing:.12em;cursor:pointer;transition:color .2s ease,border-color .2s ease,background-color .2s ease}.fs:hover,.fs:focus-visible{color:#fff;border-color:#ffffffb3;background:#ffffff14;outline:none}.fs__icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.fs__out,body.is-fullscreen .fs__in{display:none}body.is-fullscreen .fs__out{display:inline}@media(prefers-reduced-motion:reduce){.start__ring:after,.leader__ready{animation:none}}
