:root{--bg: #111;--bg-rest: #000;--ink: #fff;--muted: #ccc;--line: rgba(255, 255, 255, .16);--accent: #ffe500;--go: #fceb2a;--go-hi: #fef490;--font-display: Anton, Impact, "Arial Black", sans-serif;--font-ui: "DM Mono", Tahoma, ui-monospace, monospace;--coach-h: 4.6rem;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px);--radius: 0;--tap: 44px}*,*:before,*:after{box-sizing:border-box;border-radius:0}html,body,#root{height:100%;margin:0;background:var(--bg);color:var(--ink);border-radius:var(--radius)}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-ui);overflow:hidden;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;font-synthesis:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}button:disabled{opacity:.35;cursor:default}h1,h2,p{margin:0}.app{height:100dvh;height:100svh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--bg);color:var(--ink);padding-top:var(--safe-t);padding-left:var(--safe-l);padding-right:var(--safe-r);container-type:inline-size;container-name:app;transition:background .22s ease}.app.is-rest{background:var(--bg-rest)}.app.is-rest .section-block,.app.is-rest .digits{opacity:.72}.app.is-rest .timer-label{color:var(--accent);opacity:1}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1.4rem .25rem;min-height:3.4rem}.brand{display:flex;align-items:center;gap:.9rem;min-width:0}.wordmark{color:var(--accent);height:clamp(1.15rem,2.7vw,1.9rem);width:auto;flex:0 0 auto;display:block}.brand-rule{width:1px;align-self:stretch;min-height:1.2em;background:var(--line);flex:0 0 auto}.brand h1{font-family:var(--font-display);font-weight:400;font-size:clamp(1.45rem,3.6vw,2.7rem);letter-spacing:.02em;text-transform:uppercase;line-height:.95;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-actions{display:flex;align-items:center;gap:.7rem;flex:0 0 auto}.stage-index{font-family:var(--font-ui);font-weight:500;font-size:.85rem;letter-spacing:.08em;color:var(--muted)}.seg{display:flex;border:1px solid var(--line);overflow:hidden}.seg button,.icon-btn{font-family:var(--font-ui);font-size:.68rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:.45rem .75rem;color:var(--muted);border-radius:0}.seg button+button{border-left:1px solid var(--line)}.seg button.is-on,.icon-btn.is-on{color:#111;background:var(--go)}.stage{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(18rem,.85fr);gap:.5rem 1.25rem;padding:.2rem 1.5rem .4rem;min-height:0;align-items:stretch}.stage-board{display:flex;flex-direction:column;justify-content:flex-start;min-width:0;min-height:0;padding:.4rem .2rem;overflow:hidden}.stage-board .section-block{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.stage-board .section-head{flex:0 0 auto;margin-bottom:clamp(.35rem,1.2vh,.85rem)}.stage-board .ex-table{flex:1 1 auto;min-height:0;overflow:hidden}.stage-board .ex-row{flex:1 1 0;min-height:0;container-type:size;align-items:center;padding:clamp(.12rem,8cqh,.72rem) 0}.stage-board .ex-copy{gap:clamp(.04rem,5cqh,.22rem)}.stage-board .ex-name{font-size:clamp(1.2rem,4vw,2.95rem);font-size:clamp(1.2rem,34cqh,2.95rem)}.stage-board .ex-letter{font-size:clamp(1.15rem,3.8vw,2.7rem);font-size:clamp(1.15rem,30cqh,2.7rem)}.stage-board .ex-reps{font-size:clamp(.95rem,2.2vw,1.6rem);font-size:clamp(.95rem,20cqh,1.6rem)}.stage-board .ex-notes{font-size:clamp(.82rem,1.85vw,1.28rem);font-size:clamp(.82rem,16cqh,1.28rem)}.stage-board .section-notes,.stage-board .next-up{flex:0 0 auto}.stage-board .next-up{margin-top:clamp(.4rem,1.8vh,1.35rem)}.next-up{margin-top:1.35rem;font-family:var(--font-ui);font-weight:500;font-size:clamp(1.05rem,2.4vw,1.55rem);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);line-height:1.25}.next-up span{color:var(--ink);letter-spacing:.1em}.section-block{min-width:0;container-type:inline-size}.section-head{border-bottom:2px solid var(--ink);padding-bottom:.35rem;margin-bottom:.85rem}.section-label{font-family:var(--font-display);font-weight:400;font-size:clamp(2.1rem,5.8vw,5.2rem);line-height:.92;letter-spacing:.01em;text-transform:uppercase}.section-timing{margin-top:.45rem;font-family:var(--font-ui);font-weight:500;font-size:clamp(1rem,2.2vw,1.4rem);letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.section-notes{margin-top:.7rem;font-size:clamp(.95rem,1.7vw,1.2rem);color:var(--muted);letter-spacing:.04em}.section-block.is-dim{opacity:.32}.app.is-board .section-block.is-current{box-shadow:inset 4px 0 0 var(--accent);padding-left:.65rem}.section-block.is-current .section-head{border-bottom-color:var(--accent)}.ex-table{display:flex;flex-direction:column}.ex-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.15rem .85rem;align-items:start;padding:.72rem 0;border-bottom:1px solid var(--line)}.ex-row.is-active{background:#ffe5001f;box-shadow:inset 3px 0 0 var(--accent);padding-left:.55rem}.ex-letter{font-family:var(--font-display);font-weight:400;font-size:clamp(1.5rem,3.8vw,2.7rem);letter-spacing:.02em;line-height:1.05;min-width:1.35rem}.ex-letter:empty{display:none}.ex-copy{display:flex;flex-direction:column;align-items:flex-start;gap:.22rem;min-width:0}.ex-name{font-family:var(--font-display);font-weight:400;font-size:clamp(1.5rem,4vw,2.95rem);line-height:1.02;letter-spacing:.01em;text-transform:uppercase;overflow-wrap:anywhere;max-width:100%}.ex-notes{font-family:var(--font-ui);font-weight:400;font-size:clamp(.95rem,1.85vw,1.28rem);letter-spacing:.03em;text-transform:none;color:var(--muted);line-height:1.3}.ex-reps{font-family:var(--font-ui);font-weight:500;font-size:clamp(1.05rem,2.2vw,1.6rem);letter-spacing:.02em;text-align:left;line-height:1.25}.timer{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0}.ring-wrap{position:relative;width:min(100%,78vh);aspect-ratio:1;display:grid;place-items:center}.ring{position:absolute;inset:0;width:100%;height:100%}.ring-track{stroke:#f4f6fa1a}.ring-value{stroke:var(--ink);transition:stroke-dashoffset 80ms linear,stroke .18s ease}.ring-value.rest{stroke:var(--accent)}.ring-inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8%}.digits{font-family:var(--font-ui);font-weight:400;font-variant-numeric:tabular-nums;font-size:clamp(3.2rem,11vw,9.5rem);letter-spacing:-.04em;line-height:.9}.timer.compact .digits{font-size:clamp(2.4rem,6vw,4.6rem)}.timer-manual .digits{font-size:clamp(4rem,14vw,12rem)}.timer-label{margin-top:.45rem;font-family:var(--font-ui);font-weight:500;font-size:clamp(.65rem,1.4vw,.9rem);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.timer.is-done .digits{color:var(--accent)}.coach{display:flex;justify-content:center;align-items:stretch;gap:.55rem;min-height:var(--coach-h);padding:.45rem 1rem calc(.55rem + var(--safe-b));background:linear-gradient(180deg,transparent,rgba(0,0,0,.35))}.btn{font-family:var(--font-ui);font-weight:500;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;min-width:6.4rem;min-height:3.15rem;padding:0 1rem;border:1px solid var(--line);border-radius:0}.btn.go{background:var(--go);color:#111;border-color:var(--go)}.btn.go:hover,.btn.go:focus-visible{background:var(--go-hi);border-color:var(--go-hi)}.btn.ghost:not(:disabled):active,.btn.go:active{transform:translateY(1px)}.board{display:grid;grid-template-rows:auto minmax(0,1fr);gap:.35rem;padding:.15rem 1.4rem .5rem;min-height:0}.board-clock{display:flex;align-items:baseline;justify-content:flex-end;gap:.75rem;padding:0 .15rem}.board-clock-time{font-family:var(--font-ui);font-weight:400;font-variant-numeric:tabular-nums;font-size:clamp(2rem,4.4vw,3.2rem);letter-spacing:-.04em;line-height:1}.board-clock-label{font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.board-grid{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:1.15rem 2rem;overflow:auto;min-height:0;padding-bottom:.4rem}.board-col{display:flex;flex-direction:column;gap:1.25rem;min-width:0}.board-col:empty{display:none}.board .section-head{margin-bottom:.7rem}.board .section-label{font-size:clamp(1.45rem,2.6vw,2.3rem)}.board .section-timing{font-size:clamp(.95rem,1.55vw,1.25rem)}.board .ex-row{padding:.55rem 0}.board .ex-name{font-size:clamp(1.15rem,1.85vw,1.6rem)}.board .ex-reps,.board .ex-letter{font-size:clamp(.98rem,1.55vw,1.28rem)}.board .ex-notes{font-size:clamp(.88rem,1.35vw,1.12rem)}.picker-backdrop{position:fixed;inset:0;background:#04060cb8;display:grid;place-items:center;z-index:20;padding:1.5rem}.picker{width:min(34rem,100%);background:#000;border:1px solid var(--line);padding:1.3rem 1.4rem 1rem;border-radius:0;max-height:min(40rem,calc(100dvh - 3rem));overflow:auto}.picker-wordmark{color:var(--accent);height:1.15rem;width:auto;margin-bottom:.85rem;display:block}.picker h2{font-family:var(--font-display);font-weight:400;font-size:1.7rem;letter-spacing:.02em;text-transform:uppercase;margin-bottom:.8rem}.picker-hint{color:var(--muted);font-size:.72rem;line-height:1.45;letter-spacing:.02em;margin-bottom:.85rem}.picker-hint code{color:var(--accent);font-family:inherit}.picker-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.85rem}.picker-actions .btn{min-width:0;min-height:var(--tap);flex:1 1 auto;font-size:.68rem;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:inherit}.picker-error{color:var(--accent);font-size:.75rem;letter-spacing:.02em;line-height:1.4;margin:0 0 .85rem}.picker-template{font-family:var(--font-ui);font-size:.62rem;line-height:1.4;color:var(--muted);background:#111;border:1px solid var(--line);padding:.7rem;overflow:auto;max-height:18rem;white-space:pre;margin:0;-webkit-user-select:text;user-select:text}.picker-group{font-family:var(--font-ui);font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:.75rem 0 .15rem}.picker-reset{width:100%;margin-top:.95rem}.picker-days{list-style:none;margin:0;padding:0}.picker-days li+li{border-top:1px solid var(--line)}.picker-days button{width:100%;text-align:left;padding:.85rem .2rem;display:flex;flex-direction:column;gap:.15rem}.picker-title{font-family:var(--font-display);font-weight:400;font-size:1.45rem;letter-spacing:.02em;text-transform:uppercase}.picker-meta{font-family:var(--font-ui);color:var(--muted);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}.picker-days button.is-selected .picker-title{color:var(--accent)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-height:700px){.section-label{font-size:clamp(1.8rem,5vw,3.4rem)}.digits{font-size:clamp(3rem,11vw,7.5rem)}.coach{min-height:3.8rem}.btn{min-height:var(--tap)}}@media(max-width:1023px),(orientation:portrait){html,body,.app{overflow:hidden}.topbar{flex-wrap:wrap;align-items:center;gap:.4rem .75rem;padding:.5rem 1rem .4rem;min-height:0}.brand{flex:1 1 100%;gap:.55rem}.brand h1{font-size:clamp(1.15rem,4.6vw,1.8rem);white-space:normal;overflow:visible;text-overflow:unset;overflow-wrap:anywhere}.wordmark{height:1.15rem}.top-actions{flex:1 1 100%;justify-content:space-between;flex-wrap:wrap;gap:.45rem}.seg button,.icon-btn{min-height:var(--tap);min-width:var(--tap);display:inline-flex;align-items:center;justify-content:center;padding:.4rem .7rem}.stage{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);align-content:start;gap:.65rem 0;padding:.15rem 1rem .5rem;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}.timer{order:-1;flex:0 0 auto}.stage-board{justify-content:flex-start;padding:0;overflow-x:hidden;overflow-y:auto}.stage-board .ex-row{min-height:2.4rem}.ring-wrap{width:min(72vw,32vh,15.5rem)}.digits{font-size:clamp(2.8rem,22vmin,5.5rem)}.timer-manual .digits{font-size:clamp(3.2rem,24vmin,6rem)}.section-label{font-size:clamp(1.85rem,9vw,2.7rem);overflow-wrap:anywhere}.section-timing{font-size:clamp(.85rem,3.4vw,1.1rem)}.next-up{font-size:clamp(.88rem,3.6vw,1.15rem);margin-top:1rem}.ex-name{font-size:clamp(1.2rem,5.6vw,1.7rem);white-space:normal;overflow:visible;text-overflow:unset;overflow-wrap:anywhere}.ex-letter,.ex-reps{font-size:clamp(1rem,4.4vw,1.35rem)}.ex-notes{font-size:clamp(.82rem,3.4vw,1.05rem)}.ex-row{grid-template-columns:auto minmax(0,1fr);gap:.12rem .5rem;padding:.58rem 0}.board .section-label{font-size:clamp(1.35rem,6vw,1.85rem)}.board{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);padding:.1rem 1rem .4rem;overflow:hidden}.board-grid{grid-template-columns:1fr;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;gap:1.1rem}.board-col{gap:1.1rem}.board-clock-time{font-size:clamp(1.6rem,8vw,2.4rem)}.coach{display:grid;grid-template-columns:repeat(auto-fit,minmax(max(4.6rem,28%),1fr));justify-content:stretch;gap:.4rem;min-height:0;padding:.4rem 1rem calc(.45rem + var(--safe-b))}.btn{width:100%;min-width:0;min-height:var(--tap);padding:0 .45rem;font-size:.7rem}.picker-backdrop{padding:max(.75rem,var(--safe-t)) .75rem max(.75rem,var(--safe-b));align-items:start;overflow:auto}.picker{max-height:calc(100dvh - var(--safe-t) - var(--safe-b) - 1.5rem);overflow:auto;-webkit-overflow-scrolling:touch}.picker-title{font-size:1.2rem}}@media(max-width:1023px)and (max-height:500px){.topbar{padding:.3rem .7rem .15rem;gap:.3rem .6rem}.brand h1{font-size:clamp(1rem,3.6vw,1.35rem);line-height:1}.wordmark{height:.95rem}.stage-index{font-size:.75rem}.stage{gap:.4rem;padding:.05rem .7rem .35rem}.ring-wrap{width:min(36vh,46vw,12.5rem)}.digits{font-size:clamp(2.2rem,12vh,3.6rem)}.timer-manual .digits{font-size:clamp(2.4rem,14vh,4rem)}.section-head{margin-bottom:.45rem;padding-bottom:.2rem}.section-label{font-size:clamp(1.35rem,6vh,2rem)}.next-up{margin-top:.55rem;font-size:clamp(.8rem,3.2vh,1rem)}.topbar{flex-wrap:nowrap}.brand{flex:1 1 12rem}.top-actions{flex:0 1 auto;justify-content:flex-end;flex-wrap:nowrap}.coach{display:flex;flex-wrap:nowrap;padding:.28rem .7rem calc(.32rem + var(--safe-b));gap:.3rem}.btn{flex:1 1 0}}
