:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0e11;--surface:#13181d;--surface-2:#1b2228;--line:#2e3842;--text:#f3efe6;--muted:#a4adb6;--accent:#7cc9b0;--accent-soft:#7cc9b029;--accent-ink:#06201a;--warn:#f0c36a;--warn-soft:#f0c36a1f;--radius:18px;--gap:12px;--tap:64px;-webkit-text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0}body{min-height:100vh;-webkit-tap-highlight-color:transparent;min-height:100dvh;overflow-x:hidden}[hidden]{display:none!important}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{width:100%;max-width:34rem;min-height:100vh;min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));flex-direction:column;gap:16px;margin:0 auto;display:flex}.status{justify-content:space-between;align-items:center;gap:16px;min-height:36px;display:flex}.listen{min-width:0;color:var(--muted);align-items:center;gap:10px;margin:0;font-size:1.05rem;font-weight:500;display:flex}.listen-dot{background:var(--line);border-radius:50%;flex:none;width:12px;height:12px}.listen[data-on=true]{color:var(--text)}.listen[data-on=true] .listen-dot{background:var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}.meter{background:var(--surface-2);border-radius:4px;flex:none;width:92px;height:8px;overflow:hidden}.meter-fill{border-radius:inherit;background:var(--accent);height:100%;transform:scaleX(var(--level,0));transform-origin:0}.app[data-listening=false] .meter{opacity:.4}.app[data-listening=false] .meter-fill{transform:scaleX(0)}.clock{text-align:center;flex-direction:column;flex:1 0 auto;justify-content:center;align-items:center;display:flex}.timer{font-variant-numeric:tabular-nums;letter-spacing:-.04em;margin:0;font-size:clamp(8rem,min(56vw,34vh),20rem);font-weight:600;line-height:.95}.timer-caption{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin:6px 0 0;font-size:1.15rem;font-weight:500}.app[data-state=done] .timer,.app[data-state=done] .timer-caption{color:var(--accent)}.app[data-state=enrolling] .timer{color:var(--muted);font-size:clamp(4.5rem,min(26vw,16vh),8rem)}.notice{border-left:3px solid var(--warn);background:var(--warn-soft);color:var(--warn);white-space:pre-line;border-radius:10px;margin:0;padding:10px 14px;font-size:.95rem;line-height:1.4}.app[data-state=enrolling] .clock{flex:none}.app[data-state=enrolling] .status,.app[data-state=enrolling] .enroll{margin-bottom:auto}.controls{gap:var(--gap);flex-direction:column;display:flex}.btn{width:100%;min-height:var(--tap);border-radius:var(--radius);background:var(--surface-2);color:var(--text);font:inherit;cursor:pointer;touch-action:manipulation;-webkit-appearance:none;appearance:none;border:2px solid #0000;padding:0 20px;font-size:1.25rem;font-weight:600}.btn-begin{background:var(--accent);min-height:72px;color:var(--accent-ink);font-size:1.3rem}.btn-start{border-color:var(--line)}.btn-quiet{min-height:52px;color:var(--muted);background:0 0;font-size:1.05rem;font-weight:500}.btn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.duration:focus-visible{outline:3px solid var(--accent);outline-offset:3px}input:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.durations{gap:var(--gap);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.duration{border:2px solid var(--line);border-radius:var(--radius);min-height:72px;color:var(--text);font:inherit;white-space:nowrap;cursor:pointer;touch-action:manipulation;-webkit-appearance:none;appearance:none;background:0 0;padding:0 4px}.duration-n{font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:600}.duration-unit{color:var(--muted);margin-left:4px;font-size:.95rem}.duration[aria-checked=true]{border-color:var(--text);background:var(--text);color:var(--bg)}.duration[aria-checked=true] .duration-unit{color:#3b424a}.sensitivity label{color:var(--muted);justify-content:space-between;align-items:baseline;font-size:1rem;display:flex}.sensitivity output{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.sensitivity input[type=range]{-webkit-appearance:none;appearance:none;background:0 0;width:100%;height:44px;margin:2px 0 0;display:block}.sensitivity input[type=range]::-webkit-slider-runnable-track{background:var(--surface-2);border-radius:4px;height:8px}.sensitivity input[type=range]::-webkit-slider-thumb{background:var(--text);-webkit-appearance:none;appearance:none;border:0;border-radius:50%;width:32px;height:32px;margin-top:-12px}.sensitivity input[type=range]::-moz-range-track{background:var(--surface-2);border-radius:4px;height:8px}.sensitivity input[type=range]::-moz-range-thumb{background:var(--text);border:0;border-radius:50%;width:32px;height:32px}.enroll{background:var(--surface);text-align:center;border-radius:24px;flex-direction:column;align-items:center;gap:14px;padding:24px 20px 20px;display:flex}.enroll-title{color:var(--muted);letter-spacing:.02em;margin:0;font-size:1.05rem;font-weight:600}.enroll-prompt{margin:0;font-size:clamp(1.75rem,8vw,2.5rem);font-weight:600;line-height:1.15}.dots{gap:14px;margin:4px 0 0;padding:0;list-style:none;display:flex}.dots li{border:2px solid var(--line);border-radius:50%;width:22px;height:22px}.dots li[data-current=true]{border-color:var(--text)}.dots li[data-filled=true]{border-color:var(--accent);background:var(--accent)}.enroll-progress{color:var(--muted);font-variant-numeric:tabular-nums;margin:0}.enroll-result{border-radius:12px;margin:0;padding:10px 16px;font-weight:600}.enroll-result[data-match=true]{background:var(--accent-soft);color:var(--accent)}.enroll-result[data-match=false]{background:var(--warn-soft);color:var(--warn)}.enroll-actions{gap:var(--gap);width:100%;margin-top:6px;display:flex}.enroll-actions .btn{flex:1}@media (prefers-reduced-motion:no-preference){.meter-fill{transition:transform 90ms linear}.listen[data-on=true] .listen-dot,.dots li[data-current=true]{animation:2.4s ease-in-out infinite breathe}.btn:active,.duration:active{transform:scale(.98)}}@keyframes breathe{50%{opacity:.45}}
