:root{
  --night:#11100e;
  --night-2:#191713;
  --paper:#f4ead6;
  --paper-soft:#fbf6e8;
  --ink:#181410;
  --muted:#b9ad98;
  --muted-2:#746b5d;
  --line:rgba(244,234,214,.18);
  --line-dark:rgba(24,20,16,.18);
  --orange:#ff6b35;
  --teal:#00c2a8;
  --gold:#f7c948;
  --red:#f05d5e;
  --green:#6bd878;
  --shadow:0 28px 80px rgba(0,0,0,.35);
  --accent:var(--orange);
}
*{box-sizing:border-box}
html{min-height:100%;background:var(--night);scroll-behavior:smooth}
body{min-width:320px;min-height:100%;margin:0;color:var(--paper);background:
  radial-gradient(circle at 12% 0,rgba(255,107,53,.28),transparent 24rem),
  radial-gradient(circle at 88% 4%,rgba(0,194,168,.2),transparent 20rem),
  linear-gradient(rgba(244,234,214,.035) 1px,transparent 1px),
  linear-gradient(90deg,rgba(244,234,214,.035) 1px,transparent 1px),
  var(--night);
  background-size:auto,auto,34px 34px,34px 34px,auto;
  font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;
}
button,input,textarea,select{font:inherit}
button{touch-action:manipulation}
.app-shell{width:min(calc(100% - 28px),1120px);min-height:100vh;margin-inline:auto;padding-bottom:96px}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);backdrop-filter:blur(20px);background:rgba(17,16,14,.82)}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--paper);text-decoration:none}.brand span{display:grid;width:36px;height:36px;place-items:center;border:2px solid var(--paper);border-radius:50%;color:var(--night);background:var(--paper);box-shadow:4px 4px 0 var(--orange)}.brand b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em}.top-actions{display:flex;gap:8px;align-items:center}.top-actions form{margin:0}.chip-button{min-height:38px;padding:9px 11px;border:1px solid var(--line);border-radius:999px;color:var(--paper);background:rgba(251,246,232,.08);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.64rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.chip-button[aria-pressed="true"]{border-color:var(--teal);box-shadow:0 0 0 4px rgba(0,194,168,.12)}
main{padding:20px 0 40px}.eyebrow,.metric span,.micro,.tag,.exercise-zone,.bottom-nav,.kicker{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.eyebrow{margin:0 0 12px;color:var(--teal);font-size:.72rem}.loading-card,.hero-card,.panel,.workout-card,.player-card,.summary-card,.login-card{border:1px solid var(--line);border-radius:32px;background:linear-gradient(145deg,rgba(251,246,232,.11),rgba(251,246,232,.055));box-shadow:var(--shadow)}
.hero-card{position:relative;overflow:hidden;min-height:420px;padding:26px;display:grid;align-content:end}.hero-card:before{position:absolute;inset:auto -20% -40% -20%;height:70%;background:radial-gradient(circle,rgba(255,107,53,.55),transparent 42%),radial-gradient(circle at 80% 20%,rgba(247,201,72,.28),transparent 30%);filter:blur(20px);content:""}.hero-card>*{position:relative}.hero-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.lock-pill{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line);border-radius:999px;background:rgba(0,0,0,.25);font-size:.72rem;color:var(--muted)}h1{max-width:880px;margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(3.4rem,11vw,8rem);font-weight:450;letter-spacing:-.085em;line-height:.82}.subtitle{max-width:620px;margin:18px 0 0;color:var(--muted);font-size:clamp(1rem,2vw,1.18rem);line-height:1.65}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.primary-button,.ghost-button,.danger-button{display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:13px 18px;border:2px solid var(--paper);border-radius:999px;color:var(--night);background:var(--paper);font-weight:950;text-decoration:none;cursor:pointer;box-shadow:5px 5px 0 var(--orange)}.ghost-button{color:var(--paper);background:transparent;box-shadow:none}.danger-button{border-color:var(--red);background:var(--red);color:#fff;box-shadow:5px 5px 0 rgba(240,93,94,.25)}.primary-button:disabled,.ghost-button:disabled{opacity:.55;cursor:not-allowed}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}.metric{min-height:132px;padding:16px;border:1px solid var(--line);border-radius:24px;background:rgba(251,246,232,.08)}.metric span{display:block;color:var(--muted);font-size:.6rem}.metric strong{display:block;margin-top:22px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.2rem,6vw,3.6rem);font-weight:450;line-height:.85;letter-spacing:-.06em}.metric small{display:block;margin-top:10px;color:var(--muted);line-height:1.4}.section-head{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:28px 0 12px}.section-head h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.2rem,5vw,3.5rem);font-weight:450;letter-spacing:-.07em;line-height:.9}.section-head p{margin:0;color:var(--muted)}.workout-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.workout-card{position:relative;overflow:hidden;display:grid;gap:16px;min-height:360px;padding:20px}.workout-card:before{position:absolute;inset:0;background:radial-gradient(circle at 92% 8%,var(--accent),transparent 34%);opacity:.25;content:""}.workout-card>*{position:relative}.tag-row{display:flex;flex-wrap:wrap;gap:8px}.tag{padding:6px 8px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.57rem;background:rgba(0,0,0,.18)}.workout-card h3{margin:auto 0 0;font-family:Georgia,"Times New Roman",serif;font-size:2.2rem;font-weight:450;letter-spacing:-.06em;line-height:.9}.workout-card p{margin:0;color:var(--muted);line-height:1.55}.mini-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.mini-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);color:var(--muted)}.mini-list b{color:var(--paper);font-weight:850}
.panel{padding:20px;margin-top:14px}.history-list,.exercise-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.history-item,.exercise-item{display:grid;grid-template-columns:1fr auto;gap:12px;padding:14px;border:1px solid var(--line);border-radius:20px;background:rgba(251,246,232,.07)}.history-item b,.exercise-item b{display:block}.history-item span,.exercise-item span{color:var(--muted);font-size:.9rem;line-height:1.45}.history-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.danger-mini{min-height:32px;padding:7px 10px;border:1px solid rgba(240,93,94,.55);border-radius:999px;color:#fff;background:rgba(240,93,94,.16);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.58rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.danger-mini:disabled{opacity:.65;cursor:wait}.empty{padding:22px;border:1px dashed var(--line);border-radius:24px;color:var(--muted)}
.demo-link{display:inline-flex;width:max-content;margin-top:8px;color:var(--teal);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;text-decoration:none}.demo-link:focus-visible{outline:2px solid var(--teal);outline-offset:4px;border-radius:8px}.demo-row{text-align:center}
.start-view{display:grid;gap:14px}.overview-card{padding:24px;border:1px solid var(--line);border-radius:30px;background:linear-gradient(145deg,rgba(251,246,232,.12),rgba(251,246,232,.055))}.overview-card h1{font-size:clamp(3rem,12vw,6rem)}.coach-note{margin:18px 0 0;padding:14px;border-left:5px solid var(--orange);border-radius:16px;background:rgba(255,107,53,.1);color:var(--paper)}
.player-shell{display:grid;min-height:calc(100vh - 150px);place-items:center}.player-card{width:min(100%,760px);padding:22px}.player-top{display:flex;justify-content:space-between;gap:12px;align-items:start}.progress-text{color:var(--muted);font-size:.85rem}.timer-ring{position:relative;display:grid;width:min(74vw,330px);height:min(74vw,330px);margin:22px auto;place-items:center;border-radius:50%;background:radial-gradient(circle,var(--night-2) 58%,transparent 59%)}.timer-ring-svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.timer-ring-track,.timer-ring-progress{fill:none;stroke-width:9}.timer-ring-track{stroke:rgba(251,246,232,.12)}.timer-ring-progress{stroke:var(--accent);stroke-linecap:round}.timer-ring-inner{position:relative;z-index:1;display:grid;width:78%;height:78%;place-items:center;border:1px solid var(--line);border-radius:50%;background:rgba(17,16,14,.84);text-align:center}.time-big{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(3rem,15vw,5.5rem);font-weight:950;letter-spacing:-.07em}.time-label{color:var(--muted);font-weight:850}.exercise-zone{color:var(--teal);font-size:.66rem}.player-title{margin:0;text-align:center;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.6rem,10vw,5rem);font-weight:450;letter-spacing:-.075em;line-height:.88}.cue{max-width:560px;margin:14px auto 0;text-align:center;color:var(--muted);line-height:1.6}.player-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.player-controls .primary-button{grid-column:span 2}.main-clock{margin-top:18px;text-align:center;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.wake-status{width:max-content;max-width:100%;margin:10px auto 0;padding:8px 11px;border:1px solid rgba(0,194,168,.42);border-radius:999px;color:var(--paper);background:rgba(0,194,168,.1);text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.62rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.rest-state .timer-ring{filter:saturate(.9)}.bottom-nav.is-hidden{display:none}.settings-divider{height:0;margin:22px 0;border:0;border-top:1px solid var(--line)}.rest-state .exercise-zone{color:var(--gold)}
.summary-card{padding:24px;text-align:center}.summary-card h1{font-size:clamp(3rem,12vw,6rem)}.rating-row{display:flex;justify-content:center;gap:8px;margin:20px 0}.rating-row button{width:46px;height:46px;border:1px solid var(--line);border-radius:50%;color:var(--paper);background:rgba(251,246,232,.08);font-weight:950}.rating-row button.active{color:var(--night);background:var(--gold);border-color:var(--gold)}
.studio-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px}.textarea{width:100%;min-height:560px;padding:16px;border:1px solid var(--line);border-radius:24px;color:var(--paper);background:rgba(0,0,0,.25);font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical}.form-grid{display:grid;gap:12px}.form-grid label{display:grid;gap:8px;color:var(--muted);font-weight:850}.form-grid input,.form-grid textarea{width:100%;padding:13px;border:1px solid var(--line);border-radius:16px;color:var(--paper);background:rgba(0,0,0,.22)}.notice{margin:12px 0 0;color:var(--muted);line-height:1.55}.success{color:var(--green)}.error{color:var(--red)}
.bottom-nav{position:fixed;right:14px;bottom:14px;left:14px;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;width:min(calc(100% - 28px),640px);margin:auto;padding:8px;border:1px solid var(--line);border-radius:999px;background:rgba(17,16,14,.9);box-shadow:0 18px 60px rgba(0,0,0,.45);backdrop-filter:blur(18px)}.bottom-nav button{min-height:42px;border:0;border-radius:999px;color:var(--muted);background:transparent;font-size:.68rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.bottom-nav button.active{color:var(--night);background:var(--paper)}
.login-page{display:grid;min-height:100vh;place-items:center;padding:18px}.login-shell{width:min(100%,720px)}.login-card{padding:28px}.mini-brand{display:inline-flex;align-items:center;gap:10px;color:var(--paper);text-decoration:none}.mini-brand span{display:grid;width:36px;height:36px;place-items:center;border-radius:50%;color:var(--night);background:var(--paper)}.login-card h1{font-size:clamp(3.8rem,16vw,7rem)}.login-form{display:grid;gap:14px;margin-top:24px}.login-form label{display:grid;gap:8px;color:var(--muted);font-weight:850}.login-form input{width:100%;padding:15px;border:1px solid var(--line);border-radius:18px;color:var(--paper);background:rgba(0,0,0,.25)}.login-error{padding:12px;border:1px solid rgba(240,93,94,.45);border-radius:16px;color:#fff;background:rgba(240,93,94,.16)}
@media(max-width:900px){.workout-grid{grid-template-columns:1fr 1fr}.stats-grid{grid-template-columns:1fr 1fr}.studio-layout{grid-template-columns:1fr}}
@media(max-width:620px){.history-actions{justify-content:flex-start}.app-shell{width:min(calc(100% - 22px),430px)}.topbar{align-items:flex-start}.top-actions{flex-wrap:wrap;justify-content:flex-end}.chip-button{font-size:.58rem;padding-inline:9px}.hero-card{min-height:520px;padding:20px;border-radius:28px}.hero-row{display:grid}.hero-actions{display:grid}.primary-button,.ghost-button,.danger-button{width:100%}.workout-grid,.stats-grid{grid-template-columns:1fr}.workout-card{min-height:310px}.section-head{display:grid}.history-item,.exercise-item{grid-template-columns:1fr}.player-card{padding:16px;border-radius:28px}.player-controls{grid-template-columns:1fr}.player-controls .primary-button{grid-column:auto}.textarea{min-height:430px}.bottom-nav{font-size:.6rem}.bottom-nav button{font-size:.6rem}.brand b{display:none}h1{font-size:clamp(3.1rem,16vw,5.5rem)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.schedule-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin:14px 0}.schedule-day{min-height:126px;padding:14px;border:1px solid var(--line);border-radius:22px;background:rgba(251,246,232,.07)}.schedule-day span{display:inline-grid;width:38px;height:38px;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;font-weight:950;text-transform:uppercase}.schedule-day b{display:block;margin-top:16px;font-family:Georgia,"Times New Roman",serif;font-size:1.25rem;font-weight:450;letter-spacing:-.04em;line-height:1}.schedule-day small{display:block;margin-top:8px;color:var(--muted);line-height:1.35}.schedule-day.active{border-color:rgba(255,107,53,.75);box-shadow:0 0 0 4px rgba(255,107,53,.12);background:linear-gradient(145deg,rgba(255,107,53,.17),rgba(251,246,232,.07))}.schedule-day.active span{color:var(--night);background:var(--orange);border-color:var(--orange)}.schedule-day.rest-day{background:rgba(0,194,168,.08)}.today-focus{display:flex;align-items:center;justify-content:space-between;gap:16px}.today-focus h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.2rem,6vw,4rem);font-weight:450;letter-spacing:-.07em;line-height:.9}.today-focus p{max-width:680px;margin:10px 0 0;color:var(--muted);line-height:1.55}.today-badge{display:inline-flex;min-width:max-content;align-items:center;justify-content:center;padding:10px 13px;border:1px solid rgba(255,107,53,.55);border-radius:999px;color:var(--paper);background:rgba(255,107,53,.15);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.66rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.today-badge.rest{border-color:rgba(0,194,168,.6);background:rgba(0,194,168,.12)}.rest-card{min-height:260px;padding:22px;border:1px solid var(--line);border-radius:30px;background:linear-gradient(145deg,rgba(0,194,168,.14),rgba(251,246,232,.055));box-shadow:var(--shadow)}.rest-card h3{margin:36px 0 0;font-family:Georgia,"Times New Roman",serif;font-size:3rem;font-weight:450;letter-spacing:-.06em;line-height:.9}.rest-card p{color:var(--muted);line-height:1.55}.safety-line{padding:12px;border-left:4px solid var(--teal);border-radius:14px;background:rgba(0,194,168,.08)}.day-tag{color:var(--paper);border-color:rgba(255,107,53,.55);background:rgba(255,107,53,.12)}.safety-note{border-left-color:var(--teal);background:rgba(0,194,168,.08)}.progression-note{border-left-color:var(--gold);background:rgba(247,201,72,.08)}
.prep-tag{color:var(--paper);border-color:rgba(247,201,72,.58);background:rgba(247,201,72,.13)}.cooldown-tag{color:var(--paper);border-color:rgba(0,194,168,.58);background:rgba(0,194,168,.12)}.prep-panel{background:linear-gradient(145deg,rgba(247,201,72,.12),rgba(251,246,232,.055))}.prep-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.prep-head h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,5vw,3rem);font-weight:450;letter-spacing:-.065em;line-height:.9}.prep-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.prep-card{padding:16px;border:1px solid var(--line);border-radius:24px;background:rgba(0,0,0,.16)}.prep-card.warmup{border-color:rgba(247,201,72,.3)}.prep-card.cooldown{border-color:rgba(0,194,168,.3)}.prep-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.prep-card-head b{color:var(--paper);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.prep-card h3{margin:18px 0 8px;font-family:Georgia,"Times New Roman",serif;font-size:2rem;font-weight:450;letter-spacing:-.06em;line-height:.95}.prep-card p{margin:0;color:var(--muted);line-height:1.5}.prep-list{display:grid;gap:8px;margin:14px 0 0;padding:0;list-style:none}.prep-list li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line)}.prep-list span{color:var(--paper);font-weight:800}.prep-list small{color:var(--muted);text-align:right}.warmup-state .timer-ring-progress{stroke:var(--gold)}.warmup-state .exercise-zone{color:var(--gold)}.cooldown-state .timer-ring-progress{stroke:var(--teal)}.cooldown-state .exercise-zone{color:var(--teal)}
@media(max-width:900px){.schedule-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.today-focus{align-items:flex-start;flex-direction:column}.today-badge{min-width:0}}
@media(max-width:900px){.prep-grid{grid-template-columns:1fr}.prep-head{display:grid}.prep-list li{display:grid}.prep-list small{text-align:left}}
@media(max-width:620px){.schedule-strip{grid-template-columns:1fr}.schedule-day{min-height:auto}.schedule-day b{font-size:1.45rem}.rest-card h3{font-size:2.5rem}.prep-card h3{font-size:1.7rem}}

/* Mobile workout-mode fit + wake-lock fallback */
.wake-video{position:fixed;right:0;bottom:0;width:1px;height:1px;opacity:.01;pointer-events:none;z-index:-1}
.player-title,.workout-card h3,.prep-card h3,.exercise-item b,.exercise-item span,.prep-list span,.prep-list small{overflow-wrap:anywhere;min-width:0}
@media(max-width:620px){
  html,body{max-width:100%;overflow-x:hidden}
  main{padding:12px 0 28px}
  .player-shell{min-height:auto;place-items:start}
  .player-card{padding:12px;border-radius:24px}
  .player-top{align-items:center}
  .timer-ring{width:min(52vw,205px);height:min(52vw,205px);margin:10px auto}
  .timer-ring-inner{width:76%;height:76%}
  .time-big{font-size:clamp(2.25rem,11vw,3.4rem)}
  .time-label{font-size:.82rem}
  .exercise-zone{font-size:.58rem}
  .player-title{font-size:clamp(1.85rem,8.5vw,3rem);letter-spacing:-.055em;line-height:.9}
  .cue{max-width:100%;margin-top:8px;font-size:.9rem;line-height:1.35}
  .player-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
  .player-controls .primary-button{grid-column:auto}
  .player-controls .primary-button,.player-controls .ghost-button{min-height:42px;padding:9px 10px;font-size:.84rem;box-shadow:3px 3px 0 var(--orange)}
  .player-controls .ghost-button{box-shadow:none}
  .main-clock{margin-top:10px;font-size:.72rem}
  .wake-status{width:100%;margin-top:6px;padding:6px 8px;font-size:.54rem;white-space:normal;line-height:1.25}
}
@media(max-width:620px) and (max-height:700px){
  main{padding-top:8px}
  .topbar{padding:9px 0}
  .player-card{padding:10px}
  .timer-ring{width:min(46vw,174px);height:min(46vw,174px);margin:7px auto}
  .player-title{font-size:clamp(1.65rem,7.5vw,2.5rem)}
  .cue{font-size:.84rem;line-height:1.28;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .player-controls{margin-top:9px;gap:7px}
  .player-controls .primary-button,.player-controls .ghost-button{min-height:38px;padding:7px 8px;font-size:.78rem}
}
