:root{--ink:#20392f;--muted:#5d6c64;--paper:#f4f5ef;--surface:#fff;--line:#d7ded6;--green:#244c3b;--hover:#183c2c;--soft:#e7eddf;--active:#d6e5c5;--warn:#8b4326;--radius:14px;--space:24px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;font-size:16px;line-height:1.5}
*{box-sizing:border-box}body{margin:0}button,select{font:inherit}button,a,summary,select{-webkit-tap-highlight-color:transparent}button{min-height:44px;border:0;cursor:pointer;background:none;color:inherit;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;padding:10px 14px;border-radius:10px;line-height:1.3;transition:background .16s ease-out,color .16s ease-out}button:hover{background:var(--soft)}button:active{background:var(--active)}button:disabled{opacity:.42;cursor:default}button:disabled:hover{background:transparent}button svg,a svg{flex:0 0 auto;width:20px;height:20px}a{color:inherit;text-underline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.18;font-weight:650}h1{font-size:2rem;letter-spacing:-.025em;text-wrap:balance}h2{font-size:1.5rem;letter-spacing:-.018em}h3{font-size:1rem}p{color:var(--muted)}:focus-visible{outline:3px solid #9b5b2e;outline-offset:4px}main:focus{outline:none}::selection{background:var(--active);color:var(--ink)}[hidden]{display:none!important}svg{width:24px;height:24px}button:focus:not(:focus-visible){outline:0}.skip-link{position:fixed;top:8px;left:8px;padding:12px;background:var(--ink);color:white;z-index:10;transform:translateY(-150%)}.skip-link:focus{transform:none}
.shell{max-width:1440px;margin:auto;min-height:100svh;display:grid;grid-template-columns:236px minmax(0,1fr)}.sidebar{padding:36px 24px 24px;border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100svh}.brand{display:flex;align-items:center;gap:10px;font-size:1.65rem;font-weight:700;letter-spacing:-.035em}.brand svg{width:30px;height:32px}.sidebar-sub{font-size:.8125rem;margin:9px 0 42px}.sidebar nav{display:grid;gap:8px}.day-link{width:100%;text-align:left;justify-content:flex-start;padding:12px 9px;gap:11px;min-height:68px}.day-link.selected{background:var(--soft)}.day-link>span:nth-child(2){flex:1}.day-link strong{display:block;font-weight:600;font-size:.9375rem}.day-link small{display:block;font-size:.75rem;font-weight:400;color:var(--muted);margin-top:3px}.day-number{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;font-size:.75rem}.selected .day-number{background:var(--green);border-color:var(--green);color:white}.sidebar-bottom{margin-top:auto;padding-top:24px}.sidebar-bottom button{padding-left:0}.sidebar-bottom p{font-size:.75rem;margin-top:15px}.workspace{min-width:0}.topbar{height:86px;padding:0 42px;display:flex;align-items:center;justify-content:space-between}.topbar>div{display:flex;gap:5px}.desktop-context{font-size:.8125rem;color:var(--muted)}.mobile-brand{display:none}.topbar .text-button{font-size:.8125rem}.text-button{font-size:.875rem}.icon-button{padding:10px;min-width:44px}.primary{background:var(--green);color:#fff;min-height:52px;padding:14px 22px;font-size:1rem}.primary:hover{background:var(--hover)}.primary:active{background:#102e22}.secondary{border:1px solid var(--line);background:white}.active{background:var(--soft)}.boot{padding:60px 24px;max-width:620px;margin:auto}.boot p{margin:20px 0}.toast{position:fixed;bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:13px 18px;border-radius:12px;max-width:calc(100% - 32px);width:max-content;font-size:.875rem;z-index:30;opacity:0;pointer-events:none;transition:opacity .18s ease-out,transform .18s ease-out;box-shadow:0 6px 24px #20392f24}.toast.show{opacity:1;transform:translate(-50%,0)}
main{padding:12px 42px 40px}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin:18px 0 34px}.page-heading h1{font-size:2.5rem;line-height:1.08;letter-spacing:-.035em}.page-heading h1 span{color:#69796b}.page-heading p{font-size:.875rem;padding-bottom:3px;max-width:38ch}.day-tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:24px;gap:5px}.day-tabs button{flex:1;display:flex;flex-direction:column;align-items:flex-start;border-radius:8px 8px 0 0;padding:12px 16px 15px;gap:4px;text-align:left;border-bottom:2px solid transparent}.day-tabs button>span{font-size:.75rem;color:var(--muted);font-weight:400}.day-tabs strong{font-size:.9375rem;font-weight:600}.day-tabs .selected{border-bottom-color:var(--green);background:var(--soft)}.day-overview{background:white;border-radius:var(--radius);display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.72fr);overflow:hidden}.day-info{padding:28px 28px 24px}.heading-line{display:flex;align-items:center;justify-content:space-between;gap:12px}.heading-line h2{font-size:1.5rem}.time-estimate{font-size:.8125rem;white-space:nowrap;display:flex;align-items:center;gap:6px;color:var(--muted)}.time-estimate svg{width:17px;height:17px}.day-info>p{font-size:.875rem;margin-top:8px}.exercise-list{list-style:none;padding:0;margin:26px 0 22px}.exercise-list li+li{border-top:1px solid var(--line)}.exercise-list button{padding:13px 0;width:100%;text-align:left;justify-content:flex-start;gap:13px;border-radius:0}.exercise-order{font-size:.75rem;font-weight:400;color:var(--muted);width:14px}.exercise-list button>span:nth-child(2){flex:1}.exercise-list strong{font-weight:550;display:block;font-size:.9375rem;line-height:1.35}.exercise-list small{display:block;color:var(--muted);font-size:.8125rem;font-weight:400;margin-top:4px}.exercise-list svg{width:16px}.start-area{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.start-area>span{font-size:.75rem;color:var(--muted)}.start-area .primary{width:100%;justify-content:space-between}.day-art{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:350px}.day-art img{position:absolute;height:280px;width:840px;max-width:none;left:50%;top:50%;object-fit:fill;transform:translate(-140px,-165px);clip-path:inset(0 66.666667% 0 0)}.day-art>span{position:absolute;bottom:28px;left:24px;right:24px;font-size:.75rem;text-align:center;color:var(--muted)}.small-note{font-size:.8125rem;line-height:1.5;margin-top:16px;max-width:72ch}.rules{border-top:1px solid var(--line);margin-top:12px}.rules summary{min-height:52px;padding:14px 0;cursor:pointer;font-size:.875rem;font-weight:550}.rules-body{max-width:70ch;padding:10px 0 24px}.rules-body section+section{margin-top:24px}.rules-body p{font-size:.875rem;margin-top:8px}
.workout{background:white;border-radius:var(--radius);padding:24px 28px 0}.step-line{display:flex;align-items:center;justify-content:space-between;font-size:.8125rem;color:var(--muted);gap:12px}.progress{height:3px;border-radius:4px;overflow:hidden;background:var(--soft);margin-top:12px}.progress span{display:block;height:100%;background:var(--green);}.workout>h1{font-size:1.75rem;margin:20px 0 24px}.workout-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:28px}.movement{min-width:0}.demonstration{width:100%;height:310px;touch-action:pan-y;position:relative;background:white}canvas{width:100%;height:100%;display:block}.image-error{padding:30px;font-size:.875rem}.demo-controls{display:flex;align-items:center;justify-content:space-between;gap:6px;border-top:1px solid #edf0eb;padding-top:5px}.demo-controls>div{display:flex;align-items:center}.phase-buttons{gap:1px;min-width:0}.phase{font-size:.75rem;padding:8px;min-height:44px;border-radius:7px;font-weight:500}.phase[aria-pressed=true]{background:var(--soft);color:var(--green);font-weight:650}.demo-caption{font-size:.6875rem;text-align:center;margin-top:6px;line-height:1.45}.dose{display:flex;flex-direction:column;padding-bottom:12px}.dose strong{font-size:2rem;line-height:1.1;font-weight:650;letter-spacing:-.03em}.dose strong span{font-size:1.5rem}.dose>span{font-size:.8125rem;color:var(--muted);margin-top:5px}.quick-cue{font-size:.9375rem;line-height:1.5;color:var(--ink);min-height:3em;margin-bottom:18px}.band-cue{font-size:.8125rem;color:var(--green);font-weight:600;margin-top:-8px;margin-bottom:14px}.set-heading{display:flex;justify-content:space-between;gap:8px;font-size:.8125rem;margin-bottom:8px}.set-heading strong{font-weight:600}.set-heading>span{color:var(--muted)}.set-buttons{display:flex;gap:6px}.set-button{flex:1;min-width:44px;min-height:44px;padding:9px 4px;background:var(--paper);border:1px solid var(--line);border-radius:8px;font-size:.8125rem;gap:4px;font-weight:550}.set-button.done{background:var(--soft);border-color:#a5b99f;color:var(--green)}.set-button svg{width:14px;height:14px}.side-meaning{font-size:.75rem;margin:7px 0 10px;line-height:1.4}.complete-set{width:100%;margin-top:14px}.rest-note{font-size:.75rem;text-align:center;margin-top:9px;line-height:1.4}.timer{background:var(--paper);border-radius:12px;margin-top:14px;padding:12px 14px}.timer-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.timer-top>span{font-size:.8125rem;max-width:65%}.timer-top strong{font-variant-numeric:tabular-nums;font-size:1.75rem;line-height:1.1;font-weight:650;letter-spacing:-.03em}.timer-actions{display:flex;align-items:center;gap:6px;margin-top:5px}.timer-actions .text-button{padding:8px 6px;font-size:.75rem;flex:1}.timer-actions svg{width:16px;height:16px}.timer-status{font-size:.6875rem;line-height:1.4}.hold-control{display:flex;align-items:center;gap:8px;margin-top:12px}.hold-control label{font-size:.8125rem;margin-right:auto}.hold-control select{color:var(--ink);border:1px solid var(--line);border-radius:8px;background:white;min-height:44px;padding:5px;font-size:.875rem}.hold-control .secondary{font-size:.8125rem;padding:10px}.exercise-nav{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:18px 0;margin-top:26px}.exercise-nav .secondary{min-width:120px;font-size:.875rem}.technique{border-top:1px solid var(--line)}.technique summary{padding:17px 0;cursor:pointer;font-size:.9375rem;font-weight:550;list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:52px}.technique summary::-webkit-details-marker{display:none}.technique summary svg{width:17px;height:17px;transform:rotate(90deg);transition:transform .18s ease-out}.technique[open] summary svg{transform:rotate(-90deg)}.technique-content{max-width:70ch;padding:4px 0 22px}.technique-content h2{font-size:1rem;margin:22px 0 8px;letter-spacing:0}.technique-content p,.technique-content li{font-size:.875rem;color:var(--muted);line-height:1.6}.technique-content ol,.technique-content ul{padding-left:20px;margin:8px 0}.technique-content li+li{margin-top:6px}.workout-bottom{font-size:.6875rem;margin:8px -28px 0;padding-top:8px;background:var(--paper);text-align:center}.preparation{max-width:700px;margin:0 auto;background:white;border-radius:var(--radius);padding:30px}.preparation h1{margin-top:25px}.intro{margin:12px 0 28px;font-size:1rem}.warmup-list{list-style:none;padding:0;margin:0 0 25px}.warmup-list li{display:flex;gap:18px;padding:18px 0;border-bottom:1px solid var(--line)}.warmup-list li>span{font-size:.8125rem;width:28px;height:28px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;flex-shrink:0}.warmup-list p{font-size:.9375rem;color:var(--ink)}.warmup-actions{display:grid;gap:10px;margin-top:24px}.preparation .small-note{font-size:.75rem}
@media(min-width:1300px){.demonstration{height:350px}.workout-grid{gap:40px}.exercise-controls{padding-top:10px}.quick-cue{max-width:35ch}.workout{padding:28px 36px 0}.workout-bottom{margin-inline:-36px}}
@media(max-width:1100px){.shell{grid-template-columns:200px minmax(0,1fr)}.sidebar{padding-inline:16px}.topbar{padding-inline:28px}main{padding-inline:28px}.day-overview{grid-template-columns:1fr}.day-art{display:none}.page-heading{display:block}.page-heading p{margin-top:16px}.workout-grid{gap:22px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.demonstration{height:270px}.demo-controls{flex-wrap:wrap;justify-content:center}.demo-caption{margin-top:0}.day-tabs button{padding-inline:10px}.day-tabs strong{font-size:.8125rem}}
@media(max-width:800px){.shell{display:block}.sidebar{display:none}.mobile-brand{display:flex;align-items:center;gap:7px;text-decoration:none;font-size:1.25rem;font-weight:700;letter-spacing:-.025em}.mobile-brand svg{width:24px;height:27px}.desktop-context{display:none}.topbar{height:64px;padding-inline:24px}.topbar .text-button{font-size:.8125rem}.topbar>div{gap:0}main{padding:6px 24px 32px;max-width:640px;margin:auto}.page-heading{margin:14px 0 26px;display:flex;align-items:end}.page-heading h1{font-size:2rem}.page-heading p{font-size:.8125rem;max-width:23ch}.day-overview{grid-template-columns:1fr}.day-info{padding:24px}.day-art{display:none}.workout{padding:18px 20px 0}.workout-grid{gap:20px}.workout>h1{font-size:1.5rem;margin:16px 0 20px}.workout-bottom{margin-inline:-20px}.step-line{font-size:.75rem}.quick-cue{font-size:.875rem}.preparation{padding:24px}.dose strong{font-size:1.75rem}}
@media(max-width:560px){:root{--space:16px}.topbar{height:56px;padding-inline:16px}main{padding:0 16px 28px}.page-heading{display:block;margin:16px 0 26px}.page-heading h1{font-size:2.125rem}.page-heading p{max-width:none;font-size:.875rem;margin-top:14px}.page-heading p br{display:none}.day-tabs{gap:0;margin-bottom:20px}.day-tabs button{padding:10px 7px 12px;gap:5px;justify-content:flex-start}.day-tabs button>span{font-size:.6875rem}.day-tabs strong{font-size:.75rem}.day-info{padding:20px}.heading-line h2{font-size:1.375rem}.time-estimate{font-size:.75rem}.day-info>p{font-size:.8125rem}.exercise-list{margin-top:20px}.exercise-list strong{font-size:.875rem}.start-area .primary{font-size:.9375rem;padding-inline:16px}.workout{padding:12px 0 0;background:transparent;border-radius:0}.workout>h1{font-size:1.375rem;margin:14px 0 12px;min-height:1.2em}.workout-grid{display:flex;flex-direction:column;gap:12px}.movement{background:white;border-radius:12px;padding:6px 10px 8px}.demonstration{height:clamp(155px,26svh,240px)}.demo-controls{flex-wrap:nowrap;justify-content:space-between;border-top:0;padding-top:0;gap:2px}.phase{padding-inline:7px;font-size:.6875rem;min-height:44px}.demo-controls .icon-button{min-width:44px;padding:10px}.demo-caption{font-size:.625rem;margin-top:0}.dose{flex-direction:row;justify-content:space-between;align-items:center;gap:12px;padding-bottom:8px}.dose strong{font-size:1.75rem;white-space:nowrap}.dose>span{font-size:.75rem;max-width:14ch;text-align:right;margin:0;line-height:1.3}.quick-cue{font-size:.875rem;line-height:1.45;min-height:0;margin-bottom:12px}.set-heading{font-size:.75rem;margin-bottom:7px}.set-buttons{gap:5px}.set-button{background:white}.set-button.done{background:var(--soft)}.complete-set{margin-top:10px;min-height:50px;font-size:.9375rem}.rest-note{font-size:.6875rem;margin-top:7px}.exercise-nav{padding:12px 0;margin-top:14px;gap:12px}.exercise-nav button{flex:1;min-width:0;min-height:44px}.technique summary{font-size:.875rem;padding:12px 0}.workout-bottom{margin:4px 0 0;font-size:.625rem}.timer{background:var(--soft);margin-top:10px;padding:10px 12px}.timer-top strong{font-size:1.5rem}.timer-actions{margin-top:2px}.timer-status{font-size:.6875rem}.hold-control{margin-top:8px}.band-cue{margin-bottom:10px;font-size:.75rem}.preparation{padding:20px;margin-top:12px}.preparation h1{font-size:1.75rem}.intro{font-size:.875rem;line-height:1.5}.warmup-list li{gap:14px}.warmup-list p{font-size:.875rem}.side-meaning{font-size:.6875rem;margin:5px 0 8px}}
@media(max-width:360px){.topbar{padding-inline:12px}main{padding-inline:12px}.day-info{padding:16px}.day-tabs strong{font-size:.6875rem}.time-estimate{font-size:.6875rem}.set-buttons{gap:3px}.set-button{min-width:44px;font-size:.75rem;gap:2px}.set-button svg{width:10px}.phase{padding-inline:5px}.demo-controls .icon-button{padding:10px}.step-line{font-size:.6875rem}.heading-line h2{font-size:1.25rem}}
/* Phone reading scale: instructions 18px, actions 17px, labels 16px, notes 14px.
   Let controls reflow instead of shrinking text to keep one viewport. */
@media (max-width:560px) {
  :root {
    --type-reading:1.125rem;
    --type-action:1.0625rem;
    --type-label:1rem;
    --type-note:.875rem;
  }
  .topbar { min-height:64px; height:auto; padding-block:4px; }
  .mobile-brand { font-size:1.5rem; }
  .topbar .text-button { font-size:var(--type-label); }
  .page-heading p,.day-info>p,.quick-cue,.intro,.warmup-list p,
  .technique-content p,.technique-content li,.rules-body p{ font-size:var(--type-reading); line-height:1.55; }
  .day-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; border:0; }
  .day-tabs button { padding:12px; border-radius:8px; gap:4px; }
  .day-tabs button>span { font-size:var(--type-note); }
  .day-tabs strong { font-size:var(--type-label); }
  .heading-line { flex-wrap:wrap; }
  .heading-line h2 { font-size:1.5rem; }
  .time-estimate,.exercise-list small,.small-note,
  .dose>span,.band-cue,.set-heading,.side-meaning,.timer-top>span,
  .hold-control label{ font-size:var(--type-label); }
  .exercise-list strong { font-size:var(--type-reading); line-height:1.4; }
  .exercise-list button>span:nth-child(2) { min-width:0; }
  .exercise-order,.start-area>span,.step-line,.demo-caption,.rest-note,
  .timer-status,.workout-bottom,.preparation .small-note{ font-size:var(--type-note); line-height:1.5; }
  .primary,.start-area .primary,.complete-set,.text-button,.exercise-nav .secondary,
  .hold-control .secondary,.technique summary,.rules summary { font-size:var(--type-action); }
  .primary,.complete-set { min-height:56px; }
  .step-line { flex-wrap:wrap; gap:4px 12px; }
  .workout>h1 { font-size:1.75rem; line-height:1.2; margin:16px 0; }
  .demo-controls { flex-wrap:wrap; gap:4px; }
  .demo-controls>div:last-child { margin-left:auto; }
  .phase { font-size:var(--type-label); padding-inline:7px; }
  .demo-caption { margin-top:4px; }
  .dose { flex-wrap:wrap; gap:8px 12px; padding-bottom:12px; }
  .dose strong { font-size:2rem; }
  .dose>span { line-height:1.4; }
  .quick-cue { margin-bottom:16px; }
  .set-heading { margin-bottom:10px; }
  .set-buttons { display:grid; grid-template-columns:repeat(auto-fit,minmax(4rem,1fr)); gap:8px; }
  .set-buttons:has(.set-button:nth-child(4)) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .set-button { font-size:var(--type-action); min-height:48px; gap:6px; }
  .set-button svg { width:16px; height:16px; }
  .side-meaning { line-height:1.5; margin:10px 0; }
  .rest-note { margin-top:10px; }
  .timer { padding:14px; }
  .timer-top strong { font-size:2rem; }
  .timer-actions { flex-wrap:wrap; gap:4px; margin-top:8px; }
  .timer-actions .text-button { font-size:var(--type-label); min-width:5rem; }
  .hold-control { flex-wrap:wrap; gap:10px; margin-top:14px; }
  .hold-control label { flex:1 1 7rem; }
  .hold-control select { font-size:var(--type-label); }
  .exercise-nav button,.technique summary { min-height:52px; }
  .technique-content h2 { font-size:var(--type-reading); line-height:1.3; }
  .technique-content li+li { margin-top:10px; }
  .workout-bottom { margin-top:8px; }
  .warmup-list li>span { font-size:var(--type-label); }
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
