:root{--bg: #141d19;--bg2: #0f1714;--surface: #1d2924;--surface2: #243330;--surface3: #2c3d38;--ink: #ece3d4;--muted: #93a097;--faint: #6f7d75;--brass: #c9a35e;--terra: #cd6f4c;--sage: #7fa386;--line: rgba(236,227,212,.1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:radial-gradient(90% 36% at 50% 108%,#cd6f4c0d,#cd6f4c00 70%),radial-gradient(120% 80% at 50% -10%,#1c2a24 0%,var(--bg) 45%,var(--bg2) 100%);background-attachment:fixed;color:var(--ink);min-height:100dvh}::selection{background:#c9a35e52}button:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.wrap{width:100%;max-width:560px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding:max(16px,env(safe-area-inset-top)) 18px max(20px,env(safe-area-inset-bottom))}.topbar{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line);flex:0 0 auto}.brand{font-family:Fraunces,serif;font-weight:500;font-size:19px;letter-spacing:.2px}.brand .dot{color:var(--brass)}.phase-tag{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:600}.build{flex:1;display:flex;flex-direction:column;gap:22px;animation:fade .4s ease}.lede{font-family:Fraunces,serif;font-size:27px;line-height:1.16;font-weight:500}.lede em{font-style:italic;color:var(--brass)}.sub{color:var(--muted);font-size:14px;line-height:1.6;margin-top:10px}.opt-label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:9px;display:flex;justify-content:space-between;align-items:baseline}.opt-label span{text-transform:none;letter-spacing:0;color:var(--faint);font-weight:400;font-size:11.5px}.focus-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:3px;scrollbar-width:none;margin:0 -18px;padding-left:18px;padding-right:18px;mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%)}.focus-row::-webkit-scrollbar{display:none}.fpill{flex:0 0 auto;background:var(--surface);border:1px solid var(--line);color:var(--ink);padding:10px 16px;border-radius:22px;font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap;font-family:inherit;transition:.18s;box-shadow:inset 0 1px #ece3d40a}.fpill.on{background:var(--brass);border-color:var(--brass);color:#1a130a;box-shadow:0 3px 12px #c9a35e38}.fpill:active{transform:scale(.96)}.fpill.suggested:not(.on):after{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--brass);margin-left:7px;vertical-align:2px}.group{display:flex;flex-direction:column;gap:9px}.group-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:1px}.group-title{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);font-weight:600}.group-count{font-size:12px;color:var(--faint)}.exrow{background:var(--surface);border:1px solid var(--line);border-radius:13px;overflow:hidden;transition:border-color .2s;box-shadow:inset 0 1px #ece3d40a,0 1px 3px #00000029}.exrow.on{border-color:#c9a35e66}.exrow-top{display:flex;align-items:center;gap:12px;padding:13px 14px}.tog{flex:0 0 auto;width:25px;height:25px;border-radius:50%;border:2px solid var(--faint);background:transparent;cursor:pointer;display:grid;place-items:center;transition:.18s}.tog svg{width:13px;height:13px;stroke:#1a130a;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:.15s}.exrow.on .tog{background:var(--brass);border-color:var(--brass)}.exrow.on .tog svg{opacity:1}.exmain{flex:1;min-width:0;cursor:pointer}.exname{font-family:Fraunces,serif;font-size:16.5px;font-weight:500}.exmeta{font-size:12px;color:var(--muted);margin-top:1px}.chev{flex:0 0 auto;color:var(--faint);transition:transform .25s;cursor:pointer;padding:4px}.chev svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.exrow.open .chev{transform:rotate(180deg)}.exdetail{max-height:0;overflow:hidden;transition:max-height .3s ease;border-top:1px solid transparent}.exrow.open .exdetail{max-height:680px;border-top-color:var(--line)}.exdetail-in{padding:13px 15px 16px}.how{list-style:none;display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.how li{position:relative;padding-left:24px;font-size:13.5px;line-height:1.5;color:var(--ink)}.how li .num{position:absolute;left:0;top:0;font-family:Fraunces,serif;font-size:13px;color:var(--brass);font-weight:600}.note{display:flex;gap:8px;font-size:12.5px;line-height:1.5;color:var(--muted);margin-top:7px}.note b{color:var(--ink);font-weight:600}.note .ic{color:var(--brass);flex:0 0 auto;font-family:Fraunces,serif;font-weight:600}.tempo-chip{display:inline-flex;align-items:center;gap:6px;background:var(--surface3);border-radius:20px;padding:5px 11px;font-size:12px;color:var(--ink);margin-top:11px}.tempo-chip b{color:var(--brass);font-weight:600}.settings{display:flex;flex-direction:column;gap:18px}.seg{display:flex;gap:8px}.seg button{flex:1;background:var(--surface);border:1px solid var(--line);color:var(--ink);padding:12px 0;border-radius:11px;font-size:14.5px;font-weight:600;cursor:pointer;transition:.18s;font-family:inherit}.seg button.on{background:var(--brass);border-color:var(--brass);color:#1a130a}.seg button:active{transform:scale(.97)}.switch-row{display:flex;align-items:center;justify-content:space-between;background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:13px 15px;width:100%;cursor:pointer;font-family:inherit;text-align:left;box-shadow:inset 0 1px #ece3d40a,0 1px 3px #00000029}.switch-row .lbl{font-size:14.5px;color:var(--ink)}.switch-row .lbl small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.switch{width:48px;height:28px;border-radius:20px;background:var(--surface3);border:none;position:relative;transition:.2s;flex:0 0 auto}.switch.on{background:var(--brass)}.switch i{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--ink);transition:.2s}.switch.on i{left:23px;background:#1a130a}.summary{background:linear-gradient(180deg,var(--surface2) 0%,var(--surface) 55%);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:14px;box-shadow:inset 0 1px #ece3d40d,0 4px 16px #0003}.summary-stats{display:flex;gap:20px;flex-wrap:wrap}.stat .v{font-family:Fraunces,serif;font-size:26px;font-weight:500;line-height:1}.stat .k{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:4px}.begin{background:linear-gradient(180deg,#d5b26e 0%,var(--brass) 100%);color:#1a130a;border:none;border-radius:12px;padding:15px;font-size:16px;font-weight:600;cursor:pointer;font-family:inherit;width:100%;transition:.18s;box-shadow:0 5px 18px #c9a35e3d,inset 0 1px #ffffff2e}.begin:active{transform:scale(.98)}.begin:disabled{background:var(--surface3);color:var(--faint);cursor:not-allowed;box-shadow:none}.run{flex:1;display:none;flex-direction:column;animation:fade .4s ease;min-height:0}.run.show{display:flex}.roundrow{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex:0 0 auto}.pip{height:4px;flex:1;border-radius:2px;background:var(--surface2);overflow:hidden}.pip i{display:block;height:100%;width:0;background:var(--brass);transition:width .3s}.dial{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;gap:2px}.run-head{text-align:center;margin-bottom:6px}.kindlbl{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600}.exname-run{font-family:Fraunces,serif;font-size:clamp(21px,6vw,27px);line-height:1.1;font-weight:500;margin-top:3px}.ring-wrap{position:relative;width:min(60vw,236px);aspect-ratio:1;flex:0 0 auto}svg.ringsvg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transform:rotate(-90deg)}.track{fill:none;stroke:var(--surface2);stroke-width:3.5}.prog{fill:none;stroke:var(--brass);stroke-width:3.5;stroke-linecap:round;transition:stroke .3s}.breath{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:80%;height:80%;border-radius:50%;background:radial-gradient(circle,#cd6f4c4d,#cd6f4c1f 64%,#cd6f4c00 70%);border:2.5px solid var(--terra);transform:scale(.4);transition:transform .09s linear,border-color .25s,background .25s,opacity .25s;will-change:transform}.breath.ease{border-color:var(--sage);background:radial-gradient(circle,#7fa3864d,#7fa3861f 64%,#7fa38600 70%)}.center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;z-index:2}.clock{font-family:Fraunces,serif;font-weight:500;font-size:clamp(40px,12.5vw,56px);line-height:1;font-variant-numeric:tabular-nums}.pacer{flex:0 0 auto;text-align:center;margin-top:16px}.pacer-phase{font-family:Fraunces,serif;font-size:23px;font-weight:500;letter-spacing:.4px;transition:color .15s;min-height:1.3em}.pacer-meta{font-size:12.5px;color:var(--muted);display:flex;justify-content:center;gap:14px;min-height:1.2em;margin-top:7px}.pacer-meta b{color:var(--ink);font-weight:600}.cue-run{font-size:12.5px;color:var(--faint);line-height:1.45;margin-top:8px;max-width:340px;margin-left:auto;margin-right:auto;min-height:2.4em}.nextup{text-align:center;margin-top:10px;flex:0 0 auto}.nextup .l{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-weight:600}.nextup .n{font-family:Fraunces,serif;font-size:15px;margin-top:1px}.controls{display:flex;align-items:center;justify-content:center;gap:15px;margin-top:12px;flex:0 0 auto}.ctl{background:var(--surface);border:1px solid var(--line);color:var(--ink);width:50px;height:50px;border-radius:50%;display:grid;place-items:center;cursor:pointer;transition:.18s}.ctl:active{transform:scale(.92)}.ctl svg{width:20px;height:20px;stroke:var(--ink);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.play{width:70px;height:70px;background:linear-gradient(180deg,#d5b26e 0%,var(--brass) 100%);border-color:var(--brass);box-shadow:0 5px 20px #c9a35e47}.play svg{width:28px;height:28px;stroke:#1a130a;fill:#1a130a}.play.paused{background:linear-gradient(180deg,#d67e5a 0%,var(--terra) 100%);border-color:var(--terra);box-shadow:0 5px 20px #cd6f4c47}.footline{text-align:center;margin-top:11px;flex:0 0 auto}.footline button{background:none;border:none;color:var(--faint);text-decoration:underline;font-size:12px;cursor:pointer;font-family:inherit}.streak-line{font-size:12.5px;color:var(--muted);text-align:center;min-height:1.1em}.streak-line b{color:var(--brass);font-family:Fraunces,serif;font-size:14px;font-weight:500}.done-screen{flex:1;display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;animation:fade .5s ease}.done-screen.show{display:flex}.done-screen .big{font-family:Fraunces,serif;font-size:33px;font-weight:500;line-height:1.15}.done-screen .big em{font-style:italic;color:var(--brass)}.done-next{font-size:12px;color:var(--faint);text-align:center;letter-spacing:.04em;min-height:1.1em}.done-milestone{font-family:Fraunces,serif;font-size:15px;font-weight:500;color:var(--brass);text-align:center}.done-stats{width:100%;max-width:300px;display:flex;flex-direction:column;gap:14px}.done-stat-row{display:flex;justify-content:center;gap:28px}.done-stat .v{font-family:Fraunces,serif;font-size:30px;font-weight:500;line-height:1}.done-stat .k{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}.heatmap{display:grid;grid-template-columns:repeat(12,1fr);gap:3px}.hm-cell{aspect-ratio:1;border-radius:3px;background:var(--surface2);box-shadow:inset 0 1px #ece3d408}.hm-cell.lv1{background:var(--sage);opacity:.55}.hm-cell.lv2{background:var(--sage)}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1}}.pulse{animation:pulse .9s ease infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.effort-row{display:flex;flex-direction:column;align-items:center;gap:10px}.effort-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:600}.effort-btns{display:flex;gap:10px}.effort-btn{background:var(--surface);border:1px solid var(--line);color:var(--ink);padding:10px 18px;border-radius:22px;font-size:14px;cursor:pointer;font-family:inherit;transition:.18s}.effort-btn:disabled{opacity:.35;cursor:not-allowed}.effort-btn.on{background:var(--brass);border-color:var(--brass);color:#1a130a}.effort-btn:not(:disabled):active{transform:scale(.95)}.preset-desc{font-size:12px;color:var(--faint);min-height:1.1em;margin-top:8px;padding:0 2px}.rest-banner{display:flex;align-items:flex-start;gap:10px;background:linear-gradient(180deg,#7fa3861a,#7fa3860a),var(--surface);border:1px solid rgba(127,163,134,.25);border-radius:12px;padding:12px 14px;box-shadow:inset 0 1px #ece3d40a}.rest-banner[hidden]{display:none}.rest-ic{color:var(--sage);font-size:16px;flex:0 0 auto;line-height:1.3}.rest-banner-text{font-size:13.5px;color:var(--ink);line-height:1.4}.rest-banner-text small{display:block;font-size:12px;color:var(--muted);margin-top:3px}.hist-link{background:none;border:none;color:var(--faint);font-size:12px;cursor:pointer;font-family:inherit;text-align:center;padding:0;text-decoration:underline}.hist-link:hover{color:var(--muted)}.hist-screen{flex:1;display:none;flex-direction:column;gap:18px;animation:fade .3s ease}.hist-screen.show{display:flex}.hist-back{display:inline-flex;align-items:center;gap:5px;background:none;border:none;color:var(--muted);font-size:13px;cursor:pointer;font-family:inherit;padding:0}.hist-back svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.hist-back:active{color:var(--ink)}.hist-body{flex:1;display:flex;flex-direction:column;gap:28px;overflow-y:auto}.hist-row{display:grid;grid-template-columns:80px 1fr auto auto;align-items:center;gap:10px;padding:11px 6px;margin:0 -6px;border-bottom:1px solid var(--line);border-radius:8px;transition:background .15s}.hist-date{font-size:12px;color:var(--faint)}.hist-date.today{color:var(--brass);font-weight:600}.hist-focus{font-family:Fraunces,serif;font-size:15px;font-weight:500}.hist-effort{font-size:15px;text-align:center}.hist-meta{font-size:12px;color:var(--muted);white-space:nowrap}.hist-empty{color:var(--faint);font-size:14px;text-align:center;padding-top:40px;line-height:1.6}.hist-stat-row{display:flex;justify-content:center;gap:28px}.share-btn{display:inline-flex;align-items:center;gap:8px;background:none;border:1px solid var(--line);color:var(--muted);padding:10px 18px;border-radius:22px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:.18s}.share-btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.share-btn:disabled{opacity:.5;cursor:default}.share-btn.done{border-color:#7fa38666;color:var(--sage)}.done-mark{width:44px;height:44px;margin-bottom:2px;filter:drop-shadow(0 0 12px rgba(201,163,94,.3));animation:markIn .6s cubic-bezier(.22,1.2,.36,1)}@keyframes markIn{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@media(hover:hover){.fpill:hover:not(.on){background:var(--surface2);border-color:#ece3d42e}.seg button:hover:not(.on){background:var(--surface2);border-color:#ece3d42e}.effort-btn:hover:not(.on):not(:disabled){background:var(--surface2);border-color:#ece3d42e}.exrow:hover{border-color:#ece3d42e}.exrow.on:hover{border-color:#c9a35e8c}.switch-row:hover{border-color:#ece3d42e}.ctl:hover{background:var(--surface2)}.play:hover{filter:brightness(1.06);background:linear-gradient(180deg,#d5b26e 0%,var(--brass) 100%)}.play.paused:hover{background:linear-gradient(180deg,#d67e5a 0%,var(--terra) 100%)}.begin:hover:not(:disabled){filter:brightness(1.05);box-shadow:0 6px 22px #c9a35e52,inset 0 1px #ffffff2e}.hist-row:hover{background:#ece3d408}.hist-back:hover,.footline button:hover{color:var(--ink)}.share-btn:hover:not(:disabled):not(.done){border-color:#ece3d42e;color:var(--ink)}.tog:hover{border-color:var(--muted)}.exrow.on .tog:hover{border-color:var(--brass)}}@media(prefers-reduced-motion:reduce){.breath{transition:border-color .25s,background .25s}*{animation:none!important}}
