@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/jetbrains-mono-300-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/jetbrains-mono-300-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/space-grotesk-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/space-grotesk-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/space-grotesk-500-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/space-grotesk-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/space-grotesk-600-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/space-grotesk-600-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-grotesk-700-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-grotesk-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg-page:#08090b;--bg-card-top:#1a1d21;--bg-card-bottom:#121517;--bg-input-top:#1e2226;--bg-input-bottom:#15181b;--bg-inset:#15181b;--accent:#f5a524;--accent-light:#ffc15e;--accent-glow:#f5a5248c;--blue:#4cc9f0;--blue-glow:#4cc9f080;--text-primary:#e8eaed;--text-secondary:#9aa2a9;--text-muted:#6e767e;--text-dim:#5f676e;--border:#262a2f;--border-input:#2e3339;--border-hover:#3a4048;--font-ui:"Space Grotesk", system-ui, sans-serif;--font-mono:"JetBrains Mono", monospace;--radius-sm:8px;--radius-md:12px;--radius-lg:15px;--radius-xl:20px;--transition:.16s cubic-bezier(.2, .7, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-page);color:var(--text-primary);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;overflow-x:hidden}::selection{background:#f5a52433}select option{color:var(--text-primary);background:#16191c}@keyframes rt-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.app-root{background:var(--bg-page);min-height:100vh;color:var(--text-primary);font-family:var(--font-ui);padding:clamp(16px,3vw,36px) clamp(14px,3vw,36px) 120px;position:relative;overflow-x:hidden}.app-content{z-index:1;max-width:1160px;margin:0 auto;position:relative}.bloom{pointer-events:none;z-index:0;filter:blur(60px);border-radius:50%;position:fixed}.bloom-a{opacity:.55;background:radial-gradient(circle,#4cc9f033,#0000 68%);width:58vw;height:58vw;top:-18vw;left:-12vw}.bloom-b{opacity:.5;filter:blur(70px);background:radial-gradient(circle,#f5a5242e,#0000 68%);width:66vw;height:66vw;bottom:-26vw;right:-16vw}.bloom-sheen{pointer-events:none;z-index:0;background:radial-gradient(120% 80% at 50% -10%,#ffffff0b,#0000 60%);position:fixed;inset:0}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:clamp(18px,2.4vw,28px);display:flex}.logo{align-items:center;gap:14px;display:flex}.logo-icon{background:linear-gradient(#24282d,#15181b);border:1px solid #2e3339;border-radius:11px;place-items:center;width:38px;height:38px;display:grid;box-shadow:inset 0 1px #ffffff12,0 4px 10px #0009}.logo-mark{filter:drop-shadow(0 0 7px #f5a52459);width:22px;height:22px;display:block}.logo-name{font:600 15px/1 var(--font-ui);letter-spacing:.22em;text-transform:uppercase}.logo-sub{font:400 9px/1 var(--font-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--text-dim);margin-top:3px}.tab-switcher{background:linear-gradient(#101315,#171b1e);border:1px solid #23272b;border-radius:14px;gap:4px;padding:4px;display:flex;box-shadow:inset 0 2px 6px #000000b3}.tab-btn{cursor:pointer;font:500 12.5px/1 var(--font-ui);letter-spacing:.04em;transition:all var(--transition);color:var(--text-muted);background:0 0;border:none;border-radius:10px;padding:9px 16px}.tab-btn.active{color:var(--text-primary);background:linear-gradient(#2a2f34,#1e2226);box-shadow:inset 0 1px #ffffff17,0 2px 6px #00000080}.setup-btn{cursor:pointer;border-radius:var(--radius-md);color:var(--text-secondary);font:500 12px/1 var(--font-ui);letter-spacing:.06em;background:linear-gradient(#1c2024,#14171a);border:1px solid #2a2e33;align-items:center;gap:9px;padding:10px 15px;transition:all .14s;display:flex;box-shadow:inset 0 1px #ffffff0d,0 3px 8px #00000080}.setup-btn:hover{border-color:var(--border-hover);color:var(--text-primary)}.main-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));align-items:start;gap:clamp(14px,1.6vw,20px);display:grid}.mode-col{flex-direction:column;gap:clamp(14px,1.6vw,20px);display:flex}.card{background:linear-gradient(180deg, var(--bg-card-top) 0%, var(--bg-card-bottom) 100%);border:1px solid var(--border);border-radius:var(--radius-xl);padding:24px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0d,0 30px 60px -30px #000000f2}.card-top-line{background:linear-gradient(90deg,#0000,#ffffff24,#0000);height:1px;position:absolute;top:0;left:0;right:0}.section-label{font:500 10px/1 var(--font-ui);letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted)}.section-label-blue{color:var(--blue)}.section-label-amber{color:var(--accent)}.knob-wrap{aspect-ratio:1;touch-action:none;place-items:center;width:100%;max-width:320px;margin:0 auto;display:grid;position:relative}.knob-tick-marks{pointer-events:none;background:repeating-conic-gradient(from -135deg,#31363c 0deg .7deg,#0000 .7deg 5.4deg);border-radius:50%;position:absolute;inset:0;-webkit-mask:radial-gradient(circle,#0000 0 40.5%,#000 41% 45.5%,#0000 46%);mask:radial-gradient(circle,#0000 0 40.5%,#000 41% 45.5%,#0000 46%)}.knob-arc-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.knob-arc-track{fill:none;stroke:#1e2226;stroke-width:4px;stroke-linecap:round}.knob-arc-fill{fill:none;stroke:var(--accent);stroke-width:4px;stroke-linecap:round;filter:drop-shadow(0 0 6px var(--accent-glow));transition:stroke-dasharray 90ms linear}.knob-timer-ring{fill:none;stroke:var(--blue);stroke-width:2px;stroke-linecap:round;filter:drop-shadow(0 0 5px var(--blue-glow));transition:stroke-dasharray .4s linear}.knob-body{cursor:ns-resize;background:radial-gradient(circle at 50% 22%,#3a4046 0%,#22262a 46%,#14171a 100%),repeating-conic-gradient(#ffffff07 0deg 1.6deg,#0000 1.6deg 3.4deg);border:1px solid #2c3136;border-radius:50%;place-items:center;width:66%;height:66%;display:grid;position:relative;box-shadow:inset 0 2px 3px #ffffff14,inset 0 -14px 26px #0009,0 18px 34px -14px #000000f2}.knob-inner-ring{border:1px solid #ffffff09;border-radius:50%;position:absolute;inset:9px;box-shadow:inset 0 1px #ffffff0d}.knob-indicator{border-radius:50%;transition:transform 90ms cubic-bezier(.2,.7,.2,1);position:absolute;inset:0}.knob-indicator-line{background:var(--accent);border-radius:2px;width:3px;height:18px;margin-left:-1.5px;position:absolute;top:12px;left:50%;box-shadow:0 0 10px #f5a524cc}.knob-display{pointer-events:none;flex-direction:column;align-items:center;gap:2px;display:flex;position:relative}.knob-bpm{font:300 clamp(44px, 9.5vw, 62px)/1 var(--font-mono);letter-spacing:-.03em;color:#f2f4f6;font-variant-numeric:tabular-nums;text-shadow:0 2px 10px #0009}.knob-bpm-label{font:400 9px/1 var(--font-mono);letter-spacing:.32em;color:var(--text-muted)}.knob-controls{justify-content:center;align-items:center;gap:10px;margin-top:14px;display:flex}.knob-btn{cursor:pointer;border:1px solid var(--border-input);color:#c7ccd1;width:38px;height:38px;font:400 18px/1 var(--font-mono);background:linear-gradient(#23272c,#181b1e);border-radius:11px;transition:border-color .14s;box-shadow:inset 0 1px #ffffff0f,0 3px 6px #00000080}.knob-btn:hover{border-color:var(--border-hover)}.knob-btn.wide{width:auto;height:38px;font:500 11px/1 var(--font-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--text-secondary);padding:0 18px}.led-bar{align-items:center;gap:4px;height:12px;display:flex}.led{background:#22262a;border-radius:3px;flex:1;min-width:3px;height:10px;transition:background 70ms linear,box-shadow 70ms linear;box-shadow:inset 0 1px 2px #0009}.led.on-loop1{background:var(--blue);box-shadow:0 0 14px #4cc9f0b3}.led.on-loop2{background:var(--accent);box-shadow:0 0 14px #f5a524b3}.led.on-rest{background:var(--text-muted);box-shadow:0 0 14px #6e767e80}.led.on-countin{background:#9aa2a9;box-shadow:0 0 14px #9aa2a980}.led.on-bar{background:var(--accent);box-shadow:0 0 14px #f5a524b3}.led.dim-loop1{background:#4cc9f029}.led.dim-loop2{background:#f5a52429}.led.dim-rest{background:#6e767e29}.led.dim-countin{background:#9aa2a929}.led.dim-bar{background:#22262a}.tick-grid{align-items:flex-end;gap:2px;display:flex;overflow:hidden}.tick{border-radius:2px;flex:none;width:3px;transition:background 70ms linear,height 70ms linear}.tick.active-loop1{background:var(--blue);box-shadow:0 0 12px #4cc9f0cc}.tick.active-loop2,.tick.active-bar{background:var(--accent);box-shadow:0 0 12px #f5a524cc}.tick.dim-loop1{background:#4cc9f038}.tick.dim-loop2{background:#f5a52438}.tick.dim-bar{background:#c7ccd12e}.ramp-chart{align-items:flex-end;gap:3px;height:74px;margin-bottom:18px;display:flex}.ramp-bar{background:#242a2f;border-radius:3px 3px 1px 1px;flex:1;transition:background .16s,height .2s cubic-bezier(.2,.7,.2,1)}.ramp-bar.done{background:var(--accent);box-shadow:0 0 12px #f5a52466}.mini-stepper{align-items:center;gap:6px;display:flex}.mini-stepper-btn{cursor:pointer;border:1px solid var(--border-input);color:#c7ccd1;width:34px;height:38px;font:400 16px/1 var(--font-mono);background:linear-gradient(#23272c,#181b1e);border-radius:10px;transition:border-color .14s;box-shadow:inset 0 1px #ffffff0f}.mini-stepper-btn:hover{border-color:var(--border-hover)}.mini-stepper-value{text-align:center;min-width:52px}.mini-stepper-num{font:400 17px/1 var(--font-mono);color:var(--text-primary);font-variant-numeric:tabular-nums}.mini-stepper-label{font:400 8px/1 var(--font-mono);letter-spacing:.18em;color:var(--text-dim);margin-top:4px}.speed-bpm-box{border-radius:var(--radius-md);background:var(--bg-inset);border:1px solid #23272b;padding:12px 13px}.speed-bpm-row{justify-content:space-between;align-items:center;gap:6px;display:flex}.speed-bpm-btn{cursor:pointer;background:var(--bg-input-top);border:1px solid var(--border-input);color:#c7ccd1;width:28px;height:28px;font:400 14px/1 var(--font-mono);border-radius:8px}.speed-bpm-btn:hover{border-color:var(--border-hover)}.speed-bpm-val{font:400 17px/1 var(--font-mono);color:var(--text-primary);font-variant-numeric:tabular-nums}.speed-bpm-val.target{color:var(--accent)}.custom-select-wrap{position:relative}.custom-select{appearance:none;cursor:pointer;background:linear-gradient(180deg, var(--bg-input-top), var(--bg-input-bottom));border:1px solid var(--border-input);width:100%;color:var(--text-primary);font:500 13px/1 var(--font-ui);border-radius:11px;padding:11px 34px 11px 13px;box-shadow:inset 0 1px #ffffff0d}.custom-select:focus{border-color:var(--accent);outline:none}.custom-select-arrow{pointer-events:none;color:var(--text-muted);font-size:10px;position:absolute;top:50%;right:13px;transform:translateY(-50%)}.session-card{padding:20px 24px 22px}.timer-pills{flex-wrap:wrap;gap:6px;margin-top:16px;display:flex}.timer-pill{cursor:pointer;font:400 11px/1 var(--font-mono);letter-spacing:.06em;color:var(--text-muted);background:#181b1e;border:1px solid #26292e;border-radius:100px;padding:7px 12px;transition:all .14s}.timer-pill.active{color:var(--blue);background:#4cc9f01f;border-color:#4cc9f080}.timer-pill:hover{border-color:var(--border-hover);color:var(--text-secondary)}.vol-slider-track{cursor:pointer;touch-action:none;background:#22262a;border-radius:3px;width:100%;height:5px;position:relative;box-shadow:inset 0 1px 2px #000000b3}.vol-slider-fill{border-radius:3px;position:absolute;top:0;bottom:0;left:0}.vol-slider-fill.accent{background:var(--accent);box-shadow:0 0 8px var(--accent-glow)}.vol-slider-fill.normal{background:#c7ccd1}.vol-slider-fill.sub{background:var(--blue);box-shadow:0 0 8px var(--blue-glow)}.vol-slider-row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.vol-slider-label{font:500 11px/1 var(--font-ui);letter-spacing:.08em;color:var(--text-secondary)}.vol-slider-val{font:400 10px/1 var(--font-mono);color:var(--text-muted)}.toggle-track{cursor:pointer;border-radius:100px;width:44px;height:25px;transition:background .18s;position:relative;box-shadow:inset 0 1px 3px #0009}.toggle-track.on{background:var(--accent)}.toggle-track.off{background:#2a2e33}.toggle-knob{background:#f2f4f6;border-radius:50%;width:19px;height:19px;transition:left .18s cubic-bezier(.2,.7,.2,1);position:absolute;top:3px;box-shadow:0 2px 4px #00000080}.toggle-knob.on{left:22px}.toggle-knob.off{left:3px}.toggle-row{cursor:pointer;justify-content:space-between;align-items:center;padding-top:6px;display:flex}.toggle-row-label{font:500 12.5px/1 var(--font-ui);color:var(--text-secondary)}.loop-card{border-radius:14px;padding:14px;transition:opacity .2s}.loop-card.loop1{background:#4cc9f00a;border:1px solid #4cc9f029}.loop-card.loop2{background:#f5a5240a;border:1px solid #f5a52429}.loop-card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.loop-card-label{align-items:center;gap:8px;display:flex}.loop-dot{border-radius:50%;width:7px;height:7px}.loop-dot.loop1{background:var(--blue);box-shadow:0 0 8px #4cc9f0b3}.loop-dot.loop2{background:var(--accent);box-shadow:0 0 8px #f5a524b3}.loop-nps{font:400 10px/1 var(--font-mono);color:var(--text-muted)}.drawer-scrim{z-index:8;-webkit-backdrop-filter:blur(4px);background:#040506b8;transition:opacity .26s cubic-bezier(.2,.7,.2,1);position:fixed;inset:0}.drawer{z-index:9;background:linear-gradient(#15181b,#0e1113);border-left:1px solid #24282c;width:min(400px,100%);padding:26px 24px 40px;transition:transform .32s cubic-bezier(.2,.7,.2,1);position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-30px 0 70px #000000b3}.drawer-section{margin-bottom:24px}.drawer-section-title{font:500 9.5px/1 var(--font-ui);letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);border-bottom:1px solid #212529;margin-bottom:14px;padding-bottom:11px}.drawer-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.drawer-row-label{flex-direction:column;gap:3px;display:flex}.drawer-row-name{font:500 12.5px/1 var(--font-ui);color:#c7ccd1}.drawer-row-hint{font:400 9.5px/1 var(--font-mono);color:var(--text-dim)}.drawer-mini-stepper-btn{cursor:pointer;background:var(--bg-input-top);border:1px solid var(--border-input);color:#c7ccd1;width:30px;height:30px;font:400 14px/1 var(--font-mono);border-radius:9px}.drawer-mini-stepper-btn:hover{border-color:var(--border-hover)}.drawer-mini-stepper-val{text-align:center;min-width:26px;font:400 15px/1 var(--font-mono);color:var(--text-primary);font-variant-numeric:tabular-nums}.preset-save-row{gap:8px;margin-bottom:12px;display:flex}.preset-input{background:var(--bg-input-top);border:1px solid var(--border-input);color:var(--text-primary);border-radius:var(--radius-sm);font:400 13px/1 var(--font-ui);flex:1;padding:8px 12px}.preset-input:focus{border-color:var(--accent);outline:none}.preset-save-btn{border-radius:var(--radius-sm);cursor:pointer;background:var(--accent);color:#1a1207;font:600 12px/1 var(--font-ui);border:none;padding:8px 14px}.preset-list{flex-direction:column;gap:6px;display:flex}.preset-item{border-radius:var(--radius-sm);background:var(--bg-inset);border:1px solid #23272b;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.preset-item-name{font:500 12px/1 var(--font-ui);color:var(--text-secondary);cursor:pointer}.preset-item-name:hover{color:var(--text-primary)}.preset-delete{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:14px}.preset-delete:hover{color:#d94848}.app-footer{flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;margin-top:26px;display:flex}.footer-hints{font:400 9.5px/1 var(--font-mono);letter-spacing:.18em;color:#3f464c;text-transform:uppercase}.footer-links{align-items:center;gap:14px;display:flex}.footer-link{font:400 9.5px/1 var(--font-mono);letter-spacing:.12em;color:#5f676e;align-items:center;gap:5px;text-decoration:none;transition:color .16s;display:inline-flex}.footer-link:hover{color:var(--text-secondary)}.toast-container{z-index:100;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{border-radius:var(--radius-md);border:1px solid var(--border-input);color:var(--text-primary);font:500 13px/1 var(--font-ui);background:linear-gradient(#1c2024,#14171a);padding:12px 18px;animation:.2s rt-fade;box-shadow:0 10px 30px #0009}.toast.success{border-left:3px solid #3cb371}.toast.accent{border-left:3px solid var(--accent)}.toast.danger{border-left:3px solid #d94848}@media (width<=700px){.app-header{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.article-page{animation:.32s cubic-bezier(.2,.7,.2,1) both rt-fade}.article-brand{color:inherit;text-decoration:none}.article-back{font:400 9.5px/1 var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);transition:color var(--transition);text-decoration:none}.article-back:hover{color:var(--accent)}.article-intro{margin:48px 0 30px}.article-list-title{font:600 clamp(26px, 4vw, 38px)/1.1 var(--font-ui);letter-spacing:.16em;text-transform:uppercase}.article-list-sub{max-width:56ch;font:400 14px/1.7 var(--font-ui);color:var(--text-secondary);margin-top:12px}.article-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;display:grid}.article-card{background:linear-gradient(180deg, var(--bg-card-top), var(--bg-card-bottom));border:1px solid var(--border);border-radius:var(--radius-xl);color:inherit;transition:border-color var(--transition), transform var(--transition);flex-direction:column;gap:10px;padding:24px;text-decoration:none;display:flex;box-shadow:inset 0 1px #ffffff0d}.article-card:hover{border-color:var(--border-hover);transform:translateY(-2px)}.article-card-meta{font:400 9.5px/1 var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);align-items:center;gap:8px;display:flex}.article-dot{color:var(--accent)}.article-card-title{font:600 17px/1.35 var(--font-ui);color:var(--text-primary)}.article-card-summary{font:400 13px/1.65 var(--font-ui);color:var(--text-secondary)}.article-tags{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.article-tag{font:400 9px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);background:var(--bg-inset);border:1px solid var(--border);border-radius:999px;padding:5px 9px}.article-body{max-width:68ch;margin:48px auto 0}.article-title{font:600 clamp(24px, 3.6vw, 34px)/1.2 var(--font-ui);letter-spacing:.01em;margin-top:12px}.article-lede{border-left:2px solid var(--accent);font:400 15px/1.7 var(--font-ui);color:var(--text-secondary);margin-top:14px;padding-left:16px}.article-prose{font:400 15px/1.8 var(--font-ui);color:#c7ccd1;margin-top:34px}.article-prose>*+*{margin-top:20px}.article-prose h2{font:600 13px/1.4 var(--font-ui);letter-spacing:.2em;text-transform:uppercase;color:var(--text-primary);margin-top:42px}.article-prose h3{font:600 15px/1.4 var(--font-ui);color:var(--text-primary);margin-top:30px}.article-prose strong{color:var(--text-primary);font-weight:600}.article-prose a{color:var(--accent);border-bottom:1px solid #f5a52455;text-decoration:none}.article-prose a:hover{color:var(--accent-light);border-bottom-color:var(--accent-light)}.article-prose ul,.article-prose ol{padding-left:22px}.article-prose li+li{margin-top:8px}.article-prose li::marker{color:var(--accent)}.article-prose blockquote{border-left:2px solid var(--border-hover);color:var(--text-secondary);padding-left:18px}.article-prose code{font:400 13px/1 var(--font-mono);color:var(--accent-light);background:var(--bg-inset);border:1px solid var(--border);border-radius:6px;padding:2px 6px}.article-prose pre{border-radius:var(--radius-md);background:#0d1012;border:1px solid #212529;padding:16px;overflow-x:auto}.article-prose pre code{color:var(--text-secondary);background:0 0;border:none;padding:0;line-height:1.75}.article-prose hr{border:none;border-top:1px solid var(--border);margin:34px 0}.article-prose img{border-radius:var(--radius-md);max-width:100%}.article-prose table{border-collapse:collapse;width:100%;font:400 13px/1.6 var(--font-ui);display:block;overflow-x:auto}.article-prose th,.article-prose td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:9px 12px}.article-prose th{font:500 9.5px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);background:var(--bg-inset)}.article-foot{border-top:1px solid var(--border);justify-content:center;gap:18px;max-width:68ch;margin:56px auto 0;padding-top:22px;display:flex}@media (prefers-reduced-motion:reduce){.article-page{animation:none}.article-card:hover{transform:none}}.header-actions{align-items:center;gap:8px;display:flex}.manual-link{border-radius:var(--radius-md);color:var(--text-muted);font:500 12px/1 var(--font-ui);letter-spacing:.06em;align-items:center;gap:8px;padding:10px 13px;text-decoration:none;transition:color .14s;display:flex}.manual-link:hover{color:var(--text-primary)}.latest-note{color:inherit;background:0 0;border:1px solid #191c1f;border-radius:14px;flex-wrap:wrap;align-items:center;gap:18px;margin-top:26px;padding:15px 20px;text-decoration:none;transition:all .18s;display:flex}.latest-note:hover{border-color:var(--border-input);background:#ffffff05}.latest-note-label{font:400 9px/1 var(--font-mono);letter-spacing:.24em;text-transform:uppercase;color:#4a5158;flex:none}.latest-note-rule{background:#1f2327;flex:none;width:1px;height:22px}.latest-note-title{min-width:0;font:400 13.5px/1.45 var(--font-ui);color:#8b939a;text-wrap:pretty;flex:320px}.latest-note-meta{font:400 9.5px/1 var(--font-mono);letter-spacing:.14em;color:#4a5158;flex:none}.latest-note-arrow{font:400 13px/1 var(--font-ui);color:var(--text-dim);flex:none;transition:transform .18s}.latest-note:hover .latest-note-arrow{transform:translate(3px)}.app-footer{margin-top:18px}@media (prefers-reduced-motion:reduce){.latest-note:hover .latest-note-arrow{transform:none}}.article-notes{border-radius:var(--radius-md);background:#ffffff03;border:1px solid #191c1f;flex-direction:column;gap:18px;margin-top:46px;padding:18px 20px;display:flex}.article-note{flex-direction:column;gap:8px;display:flex}.article-note-label{font:400 9px/1 var(--font-mono);letter-spacing:.24em;text-transform:uppercase;color:#4a5158}.article-note p{font:400 12.5px/1.65 var(--font-ui);color:var(--text-dim);max-width:62ch}.article-note a{color:#7e858c;border-bottom:1px solid #2e3339;text-decoration:none}.article-note a:hover{color:var(--accent);border-bottom-color:var(--accent)}.knob-body{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.knob-body:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.knob-hint{color:#4cc9f0;background:linear-gradient(#060a0e8c,#0c121840);border:1px solid #4cc9f038;border-radius:100px;align-items:center;gap:6px;margin-top:7px;padding:6px 12px;transition:all .2s;display:flex;box-shadow:inset 0 2px 3px #000000bf,inset 0 -1px #ffffff0d,inset 0 0 10px #4cc9f01f}.knob-hint.playing{color:#8b939a;border-color:#8c98a429;box-shadow:inset 0 2px 3px #000000bf,inset 0 -1px #ffffff0d}.knob-hint-icon{font-size:9px;line-height:1}.knob-hint-label{font:600 8.5px/1 var(--font-ui);letter-spacing:.18em;text-transform:uppercase}.session-length-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.session-est{font:400 11px/1 var(--font-mono);color:var(--text-dim)}.tempo-session{justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:13px;display:flex}.tempo-session-left{flex-direction:column;gap:6px;min-width:0;display:flex}.tempo-session-meter{font:400 10px/1 var(--font-mono);letter-spacing:.1em;color:var(--text-dim)}.tempo-session-right{flex-direction:column;flex:none;align-items:flex-end;gap:5px;display:flex}.tempo-session-time{font:300 26px/1 var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-secondary);transition:color .2s}.tempo-session-time.active{color:var(--blue)}.tempo-session-label{font:400 8px/1 var(--font-mono);letter-spacing:.24em;color:var(--text-dim)}.limit-switcher{border-radius:var(--radius-md);background:linear-gradient(#101315,#171b1e);border:1px solid #23272b;gap:4px;margin-bottom:16px;padding:4px;display:flex;box-shadow:inset 0 2px 6px #000000b3}.limit-btn{cursor:pointer;font:500 12px/1 var(--font-ui);letter-spacing:.05em;color:var(--text-muted);transition:all var(--transition);background:0 0;border:none;border-radius:9px;flex:1;padding:10px 12px}.limit-btn.active{color:#f2f4f6;background:linear-gradient(#2a2f34,#1e2226);box-shadow:inset 0 1px #ffffff17,0 2px 6px #00000080}.limit-row{border-radius:var(--radius-md);background:var(--bg-inset);border:1px solid #23272b;justify-content:space-between;align-items:center;gap:12px;padding:13px 15px;display:flex}.limit-row-text{flex-direction:column;gap:4px;display:flex}.limit-row-label{font:500 12.5px/1 var(--font-ui);color:#c7ccd1}.limit-row-hint{font:400 9.5px/1 var(--font-mono);color:var(--text-dim)}.limit-stepper{align-items:center;gap:8px;display:flex}.limit-step-btn{cursor:pointer;border:1px solid var(--border-input);color:#c7ccd1;width:34px;height:34px;font:400 16px/1 var(--font-mono);background:linear-gradient(#23272c,#181b1e);border-radius:10px;transition:border-color .14s;box-shadow:inset 0 1px #ffffff0f}.limit-step-btn:hover{border-color:var(--border-hover)}.limit-step-value{text-align:center;min-width:28px;font:400 17px/1 var(--font-mono);color:var(--text-primary);font-variant-numeric:tabular-nums}.limit-caption{border-radius:var(--radius-md);background:var(--bg-inset);border:1px solid #23272b;flex-direction:column;gap:5px;padding:13px 15px;display:flex}.limit-caption-text{font:400 9.5px/1.5 var(--font-mono);color:var(--text-dim)}.article-page+.app-footer,.app-content>.app-footer{margin-top:40px}
