@import "https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600&family=Geist+Mono:wght@400;500&family=Instrument+Serif:ital@0;1&display=swap";:root{color:#1a1714;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f4f1ec;font-family:Geist,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100svh}button,input{font:inherit}button:focus-visible,input:focus-visible{outline-offset:3px;outline:2px solid}.app{--bg:#f4f1ec;--bg-elev:#faf8f4;--panel:#faf8f4c7;--ink:#1a1714;--time-ink:#2f2a25;--ink-soft:#6b645c;--ink-faint:#aaa39a;--line:#e3ddd2;--line-strong:#d3ccc0;--accent:oklch(62% .12 38);--accent-soft:oklch(62% .12 38/.13);--break:oklch(62% .07 165);--break-soft:oklch(62% .07 165/.13);--long:oklch(55% .09 250);--long-soft:oklch(55% .09 250/.13);--shadow-sm:0 1px 2px #1a17140a, 0 0 0 1px #1a17140a;--shadow-md:0 12px 32px -8px #1a17141f, 0 2px 6px #1a17140a;--shadow-lg:0 40px 80px -20px #1a171440, 0 4px 12px #1a17140f;background-color:var(--bg);height:100dvh;min-height:100dvh;color:var(--ink);background-position:50%;background-size:cover;grid-template-rows:auto minmax(0,1fr) auto;transition:background .6s cubic-bezier(.4,0,.2,1),color .3s;display:grid;position:relative;overflow:hidden}.app[data-theme=dark]{--bg:#11100f;--bg-elev:#1e1b18;--panel:#1e1b18cc;--ink:#faf8f4;--time-ink:#e3ddd2;--ink-soft:#c9c0b5;--ink-faint:#8f877d;--line:#34302b;--line-strong:#514a42;--shadow-sm:0 1px 2px #0000002e, 0 0 0 1px #ffffff0a;--shadow-md:0 16px 36px -12px #00000080, 0 2px 6px #0003;--shadow-lg:0 40px 90px -24px #000000b8, 0 4px 12px #00000052}.app[data-mode=focus]{--tint:var(--accent);--tint-soft:var(--accent-soft)}.app[data-mode=short]{--tint:var(--break);--tint-soft:var(--break-soft)}.app[data-mode=long]{--tint:var(--long);--tint-soft:var(--long-soft)}.background-softener,.ambient{pointer-events:none;position:absolute;inset:0}.background-softener{z-index:0;background:color-mix(in srgb, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(1px)saturate(.9);backdrop-filter:blur(1px)saturate(.9)}.ambient{z-index:1;background:radial-gradient(60% 50% at 50% 35%, var(--tint-soft), transparent 70%);opacity:.92;transition:background .6s}.topbar,.stage,.footer{z-index:2;position:relative}.topbar{justify-content:space-between;align-items:center;gap:clamp(10px,2vw,20px);min-width:0;padding:clamp(16px,2.6vh,28px) clamp(18px,3vw,32px);display:flex;position:relative}.brand{letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:10px;font-family:Instrument Serif,Georgia,serif;font-size:22px;display:flex}.brand-dot{background:var(--tint);border-radius:50%;width:9px;height:9px;transition:background .4s}.brand em,.drawer-head em{color:var(--ink-soft);font-style:italic}.topbar-center em{color:var(--ink-soft);font-style:normal}.topbar-center{color:var(--ink);letter-spacing:.04em;pointer-events:none;white-space:nowrap;font-family:Instrument Serif,Georgia,serif;font-size:14px;font-weight:500;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.topbar-actions{align-items:center;gap:8px;min-width:0;display:flex}.session-pill{background:color-mix(in srgb, var(--ink) 5%, transparent);color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:6px 12px;font-family:Geist Mono,Consolas,monospace;font-size:11px}.session-pill b{color:var(--ink);font-weight:500}.icon-btn,.round-btn,.theme-switch,.mode-btn,.sound-chip,.background-choice,.drawer-foot button,.cookie-popover button{font:inherit}.icon-btn{width:38px;height:38px;color:var(--ink-soft);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;transition:transform .16s,background .16s,color .16s;display:inline-flex}.icon-btn:hover{background:color-mix(in srgb, var(--ink) 5%, transparent);color:var(--ink)}.icon-btn:active{transform:scale(.96)}.icon-btn svg{width:18px;height:18px}.theme-switch{border:1px solid var(--line);background:var(--panel);width:72px;height:38px;color:var(--ink-soft);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:999px;justify-content:space-between;align-items:center;padding:4px;display:flex;position:relative}.theme-switch span{background:var(--ink);border-radius:50%;width:28px;height:28px;transition:transform .22s cubic-bezier(.4,.1,.2,1.2);position:absolute;top:4px;left:4px;transform:translate(0)}.theme-switch[aria-pressed=true] span{transform:translate(36px)}.theme-switch svg{z-index:1;width:28px;height:28px;padding:6px;transition:color .18s;position:relative}.theme-switch[aria-pressed=false] svg:first-child,.theme-switch[aria-pressed=true] svg:last-child{color:var(--bg-elev)}.stage{place-items:center;min-height:0;padding:clamp(10px,2vh,18px) clamp(16px,2.5vw,24px);display:grid;overflow:hidden}.timer-wrap{flex-direction:column;align-items:center;gap:clamp(16px,4vh,34px);width:min(100%,720px);min-height:0;max-height:100%;display:flex}.modes{z-index:3;border:1px solid var(--line);background:color-mix(in srgb, var(--ink) 5%, transparent);border-radius:999px;flex:none;gap:2px;max-width:100%;padding:4px;display:inline-flex;position:relative;overflow:hidden}.mode-btn{z-index:1;min-width:112px;color:var(--ink-soft);cursor:pointer;letter-spacing:0;white-space:nowrap;background:0 0;border:0;border-radius:999px;flex:none;padding:9px 18px;font-size:13px;font-weight:500;transition:background .2s,color .2s,box-shadow .2s;position:relative}.mode-btn[aria-selected=true]{background:var(--bg-elev);color:var(--ink);box-shadow:var(--shadow-sm)}.dial{aspect-ratio:1;flex:0 auto;place-items:center;width:min(440px,72vw,88dvh - 220px);min-width:min(280px,100%);display:grid;position:relative}.dial svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.ticks line{stroke:var(--line-strong);stroke-width:1px}.ticks line.major{stroke:var(--ink-faint);stroke-width:1.5px}.ring-track{fill:none;stroke:var(--line);stroke-width:1.5px}.ring-progress{fill:none;stroke:var(--tint);stroke-linecap:round;stroke-width:2px;transition:stroke .4s}.ring-progress.is-running{filter:drop-shadow(0 0 8px var(--tint-soft))}.dial-inner{z-index:1;text-align:center;-webkit-user-select:none;user-select:none}.dial-time{width:max-content;max-width:82%;color:var(--time-ink);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "lnum" 1;letter-spacing:0;flex-direction:column;align-items:center;gap:0;margin-inline:auto;font-family:Instrument Serif,Georgia,serif;font-size:clamp(68px,11.5vmin,104px);line-height:.95;display:flex}.dial-minutes{grid-template-columns:repeat(2,.58em);justify-content:center;align-items:center;display:grid;transform:translate(-.01em)}.dial-seconds{opacity:.42;grid-template-columns:repeat(2,.58em);justify-content:center;align-items:center;margin-top:.18em;font-size:.36em;display:grid}.time-digit{text-align:center;place-items:center;width:.58em;height:.95em;display:inline-grid;position:relative;overflow:hidden}.digit{will-change:transform, filter, opacity;grid-area:1/1;display:block}.digit-new{animation:1.4s cubic-bezier(.22,1,.36,1) both digit-flow-in}.digit-old{animation:1.4s cubic-bezier(.22,1,.36,1) both digit-flow-out}@keyframes digit-flow-in{0%{opacity:0;filter:blur(1.4px);transform:translateY(.16em)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes digit-flow-out{0%{opacity:1;filter:blur();transform:translateY(0)}to{opacity:0;filter:blur(1.4px);transform:translateY(-.16em)}}.dial-sep{opacity:.4;text-align:center;width:.32em;display:inline-block;transform:translateY(-.08em)}.dial-meta{color:var(--ink-soft);letter-spacing:.16em;text-transform:uppercase;margin-top:14px;font-family:Geist Mono,Consolas,monospace;font-size:11px}.dial-meta b{color:var(--tint);font-weight:500}.ripple{aspect-ratio:1;border:1px solid var(--tint);opacity:.5;border-radius:50%;width:60%;animation:1.2s ease-out forwards ripple;position:absolute}@keyframes ripple{to{opacity:0;width:130%}}.controls{flex:none;align-items:center;gap:12px;padding:2px;display:flex}.round-btn{border:1px solid var(--line);background:var(--bg-elev);width:48px;height:48px;color:var(--ink);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex}.round-btn:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.round-btn:active{transform:translateY(0)}.round-btn.primary{border-color:var(--ink);background:var(--ink);width:68px;height:68px;color:var(--bg-elev)}.round-btn svg{width:19px;height:19px}.round-btn.primary svg{width:23px;height:23px}.footer{justify-content:space-between;align-items:center;gap:18px;min-width:0;padding:clamp(14px,2vh,22px) clamp(18px,3vw,32px) clamp(16px,2.8vh,30px);display:flex}.cycle{color:var(--ink-soft);align-items:center;gap:10px;font-family:Geist Mono,Consolas,monospace;font-size:12px;display:inline-flex}.cycle-dots{align-items:center;gap:8px;display:inline-flex}.cycle-dots span{border:1px solid var(--line-strong);border-radius:50%;width:8px;height:8px;transition:background .3s,border-color .3s,box-shadow .3s}.cycle-dots .filled{border-color:var(--tint);background:var(--tint)}.cycle-dots .current{box-shadow:0 0 0 3px var(--tint-soft)}.keyboard-hint{color:var(--ink-soft);opacity:.75;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:Geist Mono,Consolas,monospace;font-size:12px;overflow:hidden}kbd{border:1px solid var(--line);background:var(--bg-elev);color:var(--ink);border-bottom-width:2px;border-radius:5px;margin:0 2px;padding:2px 6px;font-family:Geist Mono,Consolas,monospace;font-size:10px}.drawer-shell{z-index:20;pointer-events:none;position:fixed;inset:0}.drawer-shell.open{pointer-events:auto}.drawer-scrim{opacity:0;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1a17142e;border:0;transition:opacity .26s;position:absolute;inset:0}.drawer-shell.open .drawer-scrim{opacity:1}.drawer{border-left:1px solid var(--line);background:var(--bg-elev);width:min(420px,92vw);height:100%;box-shadow:var(--shadow-lg);color:var(--ink);flex-direction:column;transition:transform .38s cubic-bezier(.2,.7,.2,1);display:flex;position:absolute;top:0;right:0;transform:translate(100%)}.drawer-shell.open .drawer{transform:translate(0)}.drawer-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:26px 28px 18px;display:flex}.drawer-head h2{color:var(--ink);letter-spacing:-.01em;margin:0;font-family:Instrument Serif,Georgia,serif;font-size:26px;font-weight:400}.drawer-body{flex:1;padding:22px 28px 28px;overflow:auto}.drawer-section{margin-bottom:30px;animation:.42s both section-in}.drawer-section:nth-child(2){animation-delay:60ms}.drawer-section:nth-child(3){animation-delay:.12s}.drawer-section:nth-child(4){animation-delay:.18s}@keyframes section-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.drawer-section h3{color:var(--ink-faint);letter-spacing:.16em;text-transform:uppercase;margin:0 0 14px;font-family:Geist Mono,Consolas,monospace;font-size:10px;font-weight:500}.setting-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:14px 0;display:grid}.setting-row:last-child{border-bottom:0}.setting-row strong,.setting-row span{display:block}.setting-row strong{color:var(--ink);font-size:14px;font-weight:500}.setting-row span{color:var(--ink-soft);margin-top:2px;font-size:12px}.stepper{border:1px solid var(--line);background:color-mix(in srgb, var(--ink) 4%, var(--bg-elev));border-radius:10px;align-items:center;display:inline-flex;overflow:hidden}.stepper button{width:30px;height:32px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;font-size:16px}.stepper button:hover:not(:disabled){background:color-mix(in srgb, var(--ink) 5%, transparent);color:var(--ink)}.stepper button:disabled{cursor:not-allowed;opacity:.3}.stepper b{min-width:34px;color:var(--ink);text-align:center;font-family:Geist Mono,Consolas,monospace;font-size:13px;font-weight:500}.stepper small{color:var(--ink-faint);padding-right:10px;font-family:Geist Mono,Consolas,monospace;font-size:11px}.switch{background:var(--line-strong);cursor:pointer;border:0;border-radius:999px;width:38px;height:22px;padding:0;line-height:0;transition:background .2s;display:block;position:relative}.switch[aria-checked=true]{background:var(--ink)}.app[data-theme=dark] .switch[aria-checked=true]{background:var(--ink-soft)}.switch span{background:#fff;border-radius:50%;width:18px;height:18px;margin-top:0;transition:transform .22s cubic-bezier(.4,.1,.2,1.2);display:block;position:absolute;top:50%;left:2px;transform:translateY(-50%);box-shadow:0 1px 3px #00000026}.switch[aria-checked=true] span{transform:translate(16px,-50%)}.sound-grid,.background-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.sound-chip,.background-choice{border:1px solid var(--line);background:color-mix(in srgb, var(--ink) 4%, var(--bg-elev));color:var(--ink);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;padding:10px 12px;font-size:13px;display:flex}.sound-chip[aria-pressed=true],.background-choice[aria-pressed=true]{border-color:var(--ink);background:var(--bg-elev);box-shadow:inset 0 0 0 1px var(--ink)}.sound-chip span{border:1px solid var(--line-strong);border-radius:50%;width:14px;height:14px}.sound-chip[aria-pressed=true] span{border:4px solid var(--ink);background:var(--bg-elev)}.background-choice span{border:1px solid var(--line);background:var(--bg);background-image:var(--preview-image);background-position:50%;background-size:cover;border-radius:6px;width:28px;height:22px}.background-choice.none span{background-image:linear-gradient(135deg, var(--bg), var(--bg-elev))}.background-choice.custom span{background-image:linear-gradient(135deg, var(--line), var(--tint-soft))}.url-field{gap:8px;margin-top:6px;display:grid}.url-field span{color:var(--ink-soft);font-size:12px}.url-field input{border:1px solid var(--line);background:color-mix(in srgb, var(--ink) 4%, var(--bg-elev));width:100%;color:var(--ink);font:inherit;border-radius:10px;outline:none;padding:11px 12px;font-size:13px}.url-field input:focus{border-color:var(--tint);box-shadow:0 0 0 3px var(--tint-soft)}.drawer-foot{border-top:1px solid var(--line);justify-content:space-between;gap:16px;padding:18px 28px;display:flex}.drawer-foot button,.cookie-popover button{color:var(--ink-soft);cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;background:0 0;border:0;font-size:13px}.drawer-foot button:hover,.cookie-popover button:hover{color:var(--ink)}.cookie-popover{z-index:30;border:1px solid var(--line);background:var(--bg-elev);max-width:min(360px,100vw - 32px);box-shadow:var(--shadow-md);color:var(--ink-soft);border-radius:14px;align-items:center;gap:12px;padding:12px 14px;font-size:13px;display:flex;position:fixed;bottom:24px;right:24px}.cookie-popover button{color:var(--ink);font-weight:500;text-decoration:none}@media (width<=760px){.app{height:auto;min-height:100dvh;overflow:clip}.topbar{padding:18px 16px}.brand{font-size:20px}.topbar-center,.session-pill{display:none}.theme-switch{width:66px}.theme-switch[aria-pressed=true] span{transform:translate(30px)}.stage{padding:10px 16px 14px;overflow:visible}.timer-wrap{gap:clamp(16px,4.5vh,26px)}.modes{width:100%;overflow:visible}.mode-btn{white-space:nowrap;flex:1 1 0;min-width:0;padding:9px 10px;font-size:12px}.dial{width:min(360px,88vw,48svh);min-width:0}.dial-time{font-size:clamp(60px,17vw,88px)}.footer{flex-direction:column;align-items:flex-start;padding:18px}.keyboard-hint{display:none}.drawer-head,.drawer-body,.drawer-foot{padding-left:20px;padding-right:20px}.setting-row{gap:12px}.sound-grid,.background-grid{grid-template-columns:1fr}.cookie-popover{bottom:16px;left:16px;right:16px}}@media (height<=720px) and (width>=761px){.topbar{padding-block:14px}.timer-wrap{gap:12px}.dial{width:min(340px,54vmin,84dvh - 176.4px)}.dial-time{font-size:clamp(56px,10vmin,82px)}.round-btn{width:42px;height:42px}.round-btn.primary{width:58px;height:58px}.footer{padding-block:10px 12px}.keyboard-hint{display:none}}@media (height<=620px) and (width>=761px){.topbar-center{display:none}.session-pill{padding-block:5px}.modes{padding:3px}.mode-btn{min-width:98px;padding-block:7px}.dial{width:min(280px,48vmin,80dvh - 120px)}.round-btn{width:38px;height:38px}.round-btn.primary{width:52px;height:52px}.footer{padding-block:8px}}@media (height<=520px) and (width>=761px){.footer{display:none}.dial{width:min(240px,44vmin,76dvh - 91.2px)}}
