@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");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:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-next-latin-ext-400-normal-BalHKn7d.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-400-normal-qxMiU51n.woff)format("woff");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:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-next-latin-400-normal-FfmJh7DR.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-400-normal-DPp7N0cD.woff)format("woff");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:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-next-latin-ext-700-normal-CBw-mJf_.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-700-normal-292QVhS1.woff)format("woff");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:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-next-latin-700-normal-Dpiyiu63.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-700-normal-C2qZD_Q9.woff)format("woff");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-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-cyrillic-ext-500-normal-C9ShMxGR.woff2)format("woff2"),url(/assets/jetbrains-mono-cyrillic-ext-500-normal-CEVyPk4Y.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2)format("woff2"),url(/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2)format("woff2"),url(/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-vietnamese-500-normal-BvH7FW2L.woff2)format("woff2"),url(/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff)format("woff");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-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff)format("woff");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-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-cyrillic-ext-700-normal-D6iG63UR.woff2)format("woff2"),url(/assets/jetbrains-mono-cyrillic-ext-700-normal-iEXTdOVf.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-cyrillic-700-normal-BWTpRfYl.woff2)format("woff2"),url(/assets/jetbrains-mono-cyrillic-700-normal-CEoEElIJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-greek-700-normal-C6CZE3T8.woff2)format("woff2"),url(/assets/jetbrains-mono-greek-700-normal-DEigVDxa.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-vietnamese-700-normal-k5PzE07T.woff2)format("woff2"),url(/assets/jetbrains-mono-vietnamese-700-normal-BDLVIk2r.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-latin-ext-700-normal-CZipNAKV.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-ext-700-normal-CxPITLHs.woff)format("woff");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-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-700-normal-D3wTyLJW.woff)format("woff");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{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#0a0a0b;--surface:#16171a;--surface-sunk:#101113;--glass:linear-gradient(180deg, #ffffff12, #ffffff08);--ink:#f2f2f2;--ink-2:#b9bcc3;--muted:#9ea2aa;--line:#ffffff1f;--line-strong:#ffffff38;--accent:#d7ff3e;--accent-strong:#ecff9e;--accent-soft:#d7ff3e29;--on-accent:#0a0a0b;--coral:#ff5a36;--violet:#7c5cff;--glow:0 0 0 1px #d7ff3e66, 0 10px 40px #d7ff3e40;--warn-bg:#ffc72c1a;--warn-ink:#ffd76a;--warn-line:#ffc72c59;--danger-ink:#ff8c7a;--effort-recovery:#4f5a2a;--effort-easy:#7f9330;--effort-long:#aac835;--effort-tempo:#d7ff3e;--effort-interval:#ffb02e;--effort-race:#ff5a36;--font-display:"Bricolage Grotesque Variable", "Segoe UI", system-ui, sans-serif;--font-body:"Atkinson Hyperlegible Next", "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Mono", monospace;--text-xs:.8125rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.2rem;--text-xl:1.44rem;--text-2xl:1.728rem;--text-hero:clamp(2.6rem, 7vw, 5.2rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4.5rem;--radius-sm:10px;--radius-md:18px;--radius-lg:22px;--column:44rem;--tap:44px;--focus:0 0 0 3px var(--paper), 0 0 0 5px var(--accent)}@media print{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#fff;--surface:#fff;--surface-sunk:#f2f2f2;--glass:#fff;--ink:#111;--ink-2:#333;--muted:#555;--line:#d6d6d6;--line-strong:#b5b5b5;--accent:#111;--accent-strong:#111;--accent-soft:#e6e6e6;--on-accent:#fff;--effort-recovery:#e3e3e3;--effort-easy:#c7c7c7;--effort-long:#a8a8a8;--effort-tempo:#7d7d7d;--effort-interval:#4d4d4d;--effort-race:#111}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:radial-gradient(90rem 40rem at 100% -10%, #d7ff3e14, transparent 60%) no-repeat, var(--paper);min-height:100vh;color:var(--ink);font-family:var(--font-body);font-size:var(--text-md);font-variant-numeric:tabular-nums;margin:0;line-height:1.55}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.03em;margin:0;line-height:1.08}p{margin:0}a{color:var(--accent-strong);text-underline-offset:.18em}button,input,select{font:inherit;color:inherit}:focus-visible{box-shadow:var(--focus);border-radius:var(--radius-sm);outline:none}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page{max-width:var(--column);padding:0 var(--space-4) var(--space-8);margin:0 auto}@media (width>=64rem){.page:has(.plan){max-width:60rem}.plan .zones{column-gap:var(--space-6);grid-template-columns:1fr 1fr;display:grid}.plan .session-detail,.plan .session-why,.plan .tab-intro{max-width:44rem}}.masthead{padding:var(--space-6) 0 var(--space-5);align-items:center;gap:var(--space-3);display:flex}.wordmark{font-family:var(--font-display);font-weight:700;font-size:var(--text-xl);letter-spacing:-.03em;color:var(--ink);align-items:center;gap:var(--space-2);line-height:1;display:inline-flex}.wordmark-letters{align-items:baseline;display:inline-flex}.wl-1{font-size:1.12em}.wl-2{opacity:.85;font-size:1em}.wl-3{opacity:.7;font-size:.88em}.wl-4{opacity:.58;font-size:.79em}.wl-5{opacity:.48;font-size:.7em}.wordmark-accent{color:var(--accent);margin-left:.06em}.intro{padding-bottom:var(--space-6);border-bottom:1px solid var(--line);margin-bottom:var(--space-6);background-image:repeating-linear-gradient(90deg, var(--line-strong) 0 2px, transparent 2px 25%);background-position:bottom;background-repeat:no-repeat;background-size:100% 10px}.intro h1{font-size:var(--text-hero);max-width:14ch;font-weight:800;line-height:.95}.intro h1 em{color:var(--accent);font-style:normal}.intro p{margin-top:var(--space-4);max-width:36rem;color:var(--ink-2);font-size:var(--text-lg)}.hero{align-items:center;gap:var(--space-6);padding:var(--space-5) 0 var(--space-6);background:repeating-linear-gradient(0deg,#0000 0 37px,#d7ff3e0d 37px 38px) 0 0/100% 100%,repeating-linear-gradient(90deg,#0000 0 140px,#ffffff09 140px 220px,#0000 220px 380px) 0 0/760px 100%;border-bottom:0;flex-wrap:wrap;animation:3.2s linear infinite speed-lines;display:flex;position:relative}@keyframes speed-lines{to{background-position:0 0,-760px 0}}.hero-copy{flex:999 20rem;min-width:0}.countdown{justify-items:center;gap:var(--space-3);max-width:17rem;padding:var(--space-5);border-radius:var(--radius-lg);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);flex:13rem;margin-inline:auto;display:grid}.countdown-ring{aspect-ratio:1;width:11rem;position:relative}.countdown-ring svg{width:100%;height:100%}.countdown-track,.countdown-fill{fill:none;stroke-width:18px}.countdown-track{stroke:#ffffff1a}.countdown-fill{stroke:var(--accent);stroke-linecap:round;stroke-dashoffset:var(--ring-offset);animation:1.6s cubic-bezier(.3,.8,.3,1) .4s both ring-draw}@keyframes ring-draw{0%{stroke-dashoffset:553px}}.countdown-number{text-align:center;place-content:center;display:grid;position:absolute;inset:0}.countdown-number span{font-size:2.8rem;font-weight:700;line-height:1}.countdown-number small{font-size:var(--text-xs);letter-spacing:.12em;color:var(--muted)}.countdown-race{text-align:center;gap:2px;display:grid}.countdown-race strong{font-family:var(--font-display);font-size:var(--text-lg)}.countdown-race span{font-size:var(--text-xs);color:var(--muted);letter-spacing:.06em}.ticker{margin:0 calc(50% - 50vw) var(--space-6);background:var(--accent);color:var(--on-accent);overflow:hidden}.ticker-track{width:max-content;padding:var(--space-3) 0;font-weight:700;font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;animation:40s linear infinite ticker;display:flex}.ticker-track span{align-items:center;gap:var(--space-6);padding-left:var(--space-6);white-space:nowrap;display:inline-flex}.ticker-track i{background:var(--on-accent);border-radius:50%;width:8px;height:8px}@keyframes ticker{to{transform:translate(-50%)}}.runner{color:var(--accent);display:block;overflow:visible}.runner .limb{transform-box:view-box}.runner-sprint .leg-a,.runner-sprint .leg-b{transform-origin:30px 46px;animation:.3s ease-in-out infinite alternate stride}.runner-sprint .leg-b{animation-direction:alternate-reverse}.runner-sprint .arm-a,.runner-sprint .arm-b{transform-origin:31px 24px;animation:.3s ease-in-out infinite alternate-reverse swing}.runner-sprint .arm-b{animation-direction:alternate}@keyframes stride{0%{transform:rotate(-38deg)}to{transform:rotate(38deg)}}@keyframes swing{0%{transform:rotate(-45deg)}to{transform:rotate(45deg)}}.runner-breathe{transform-box:view-box;transform-origin:50% 100%;animation:2.6s ease-in-out infinite breathe}@keyframes breathe{50%{transform:scaleY(1.08)}}.race-intro{z-index:100;background:var(--paper);cursor:pointer;place-items:center;animation:.52s cubic-bezier(.7,0,.3,1) 3s both curtain;display:grid;position:fixed;inset:0;overflow:hidden}@keyframes curtain{to{clip-path:inset(0 0 100%)}}.race-intro-call{text-align:center;opacity:0;position:absolute;top:18%;left:0;right:0}.race-intro-set{font-family:var(--font-mono);letter-spacing:.2em;font-size:clamp(18px,2.4vw,28px);font-weight:700;animation:.6s .75s both call}.race-intro-go{font-family:var(--font-display);color:var(--accent);font-size:clamp(56px,8vw,120px);font-weight:800;animation:.7s cubic-bezier(.2,1.6,.4,1) 1.35s both call-go}@keyframes call{0%{opacity:0;transform:translateY(10px)}20%,80%{opacity:1;transform:none}to{opacity:0}}@keyframes call-go{0%{opacity:0;transform:scale(.4)}30%,75%{opacity:1;transform:scale(1.15)}to{opacity:0;transform:scale(1.3)}}.race-intro-word{font-family:var(--font-display);letter-spacing:-.035em;align-items:baseline;font-size:clamp(72px,12vw,168px);font-weight:800;line-height:1;display:flex}.race-intro-letter{opacity:0;animation:.42s cubic-bezier(.2,1.6,.4,1) both land;display:inline-block}@keyframes land{0%{opacity:0;transform:translateY(24px)scale(.6)}to{opacity:1;transform:none}}.race-intro-letter.wl-2{animation-name:land-85}.race-intro-letter.wl-3{animation-name:land-70}.race-intro-letter.wl-4{animation-name:land-58}.race-intro-letter.wl-5{animation-name:land-48}@keyframes land-85{0%{opacity:0;transform:translateY(24px)scale(.6)}to{opacity:.85;transform:none}}@keyframes land-70{0%{opacity:0;transform:translateY(24px)scale(.6)}to{opacity:.7;transform:none}}@keyframes land-58{0%{opacity:0;transform:translateY(24px)scale(.6)}to{opacity:.58;transform:none}}@keyframes land-48{0%{opacity:0;transform:translateY(24px)scale(.6)}to{opacity:.48;transform:none}}.race-intro-track{background:repeating-linear-gradient(90deg,#ffffff59 0 28px,#0000 28px 44px);height:3px;position:absolute;bottom:30%;left:0;right:0}.race-intro-startline{background:var(--ink);width:6px;height:40px;position:absolute;bottom:30%;left:calc(12% + 70px)}.race-intro-starter{color:var(--muted);position:absolute;bottom:30%;right:10%}.race-intro-starter svg{display:block;overflow:visible}.race-intro-gun{transform-box:view-box;transform-origin:30px 30px;animation:.42s cubic-bezier(.3,1.3,.5,1) .7s both gun-raise,.16s ease-out 1.33s gun-kick}@keyframes gun-raise{to{transform:rotate(-150deg)}}@keyframes gun-kick{0%,to{transform:rotate(-150deg)}40%{transform:rotate(-168deg)}}.race-intro-flash,.race-intro-smoke{transform-box:view-box;transform-origin:46px 2px;opacity:0}.race-intro-flash{animation:.26s ease-out 1.33s both muzzle}@keyframes muzzle{30%{opacity:1;transform:scale(1.4)}to{opacity:0;transform:scale(1.8)}}.race-intro-smoke{animation:1.1s ease-out 1.38s both smoke}@keyframes smoke{0%{opacity:.8;transform:scale(.4)}to{opacity:0;transform:translate(14px,-46px)scale(2.4)}}.race-intro-screen-flash{background:var(--accent);opacity:0;pointer-events:none;animation:.22s ease-out 1.33s both screen-flash;position:absolute;inset:0}@keyframes screen-flash{25%{opacity:.35}to{opacity:0}}.race-intro-crouch{transform-origin:80% 90%;animation:.38s cubic-bezier(.3,1.4,.5,1) .8s both set-hips,1ms linear 1.38s both vanish;position:absolute;bottom:30%;left:12%}@keyframes set-hips{to{transform:translateY(-8px)rotate(-10deg)}}@keyframes vanish{to{opacity:0}}.race-intro-sprinter{opacity:0;animation:1.5s cubic-bezier(.55,0,.6,1) 1.38s both launch;position:absolute;bottom:calc(30% + 3px);left:12%}@keyframes launch{0%{opacity:0;left:12%}1%{opacity:1}to{opacity:1;left:106%}}.wizard-progress{align-items:flex-end;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.wizard-count{font-size:var(--text-sm);color:var(--muted);font-weight:700}.wizard-bar{align-items:flex-end;gap:5px;margin:0;padding:0;list-style:none;display:flex}.wizard-bar li{background:var(--line-strong);border-radius:2px;width:22px;transition:background-color .2s}.wizard-bar li:last-child{border-radius:50%;width:9px;height:9px;margin-left:3px}.wizard-bar li.is-done{background:var(--accent)}.wizard-cancel{align-self:center;margin-left:auto}.wizard-viewport{margin:-4px;padding:4px;overflow:clip visible}.wizard-panel{min-width:0}.slide-forward{animation:.34s cubic-bezier(.2,.7,.2,1) both slide-from-right}.slide-back{animation:.34s cubic-bezier(.2,.7,.2,1) both slide-from-left}@keyframes slide-from-right{0%{opacity:0;transform:translate(min(55%,20rem))}}@keyframes slide-from-left{0%{opacity:0;transform:translate(max(-55%,-20rem))}}.wizard-title{font-size:var(--text-2xl);font-weight:750}.wizard-title:focus,.wizard-title:focus-visible{box-shadow:none;outline:none}.wizard-hint{margin:var(--space-1) 0 var(--space-5);color:var(--ink-2);max-width:34rem}.wizard-nav{z-index:1;justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-6);padding:var(--space-3) 0 max(var(--space-3), env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);display:flex;position:sticky;bottom:0}.review{margin:0 0 var(--space-5);border-top:1px solid var(--line)}.review-row{gap:var(--space-1) var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--line);grid-template-columns:5rem 1fr auto;align-items:baseline;display:grid}.review-row dt{font-size:var(--text-sm);color:var(--muted);font-weight:700}.review-row dd{margin:0}@media (width<=30rem){.review-row{grid-template-columns:1fr auto}.review-row dd{grid-area:2/1/auto/-1}}.bento{margin:0 0 var(--space-5);gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));padding:0;list-style:none;display:grid}.bento-card{align-content:start;gap:var(--space-2);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--glass);border:1px solid var(--line);transition:border-color .2s,transform .2s;display:grid}.bento-card:hover{border-color:#d7ff3e80;transform:translateY(-3px)}.bento-wide{grid-column:1/-1}.bento-card strong{font-family:var(--font-display);font-size:var(--text-lg)}.bento-card>span:last-child{color:var(--ink-2)}.bento-mini{min-height:3.25rem;margin-bottom:var(--space-2);align-items:flex-end;display:flex}.mini-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.mini-chips span{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);background:#ffffff14;border-radius:999px;font-weight:700}.mini-days{gap:6px;display:flex}.mini-days span{width:2rem;height:2rem;font-weight:700;font-size:var(--text-sm);color:var(--muted);background:#ffffff14;border-radius:50%;place-items:center;display:grid}.mini-days .is-on{background:var(--accent);color:var(--on-accent)}.mini-paces{gap:6px;width:100%;display:grid}.mini-paces span{align-items:center;gap:var(--space-2);grid-template-columns:4.5rem 1fr;display:grid}.mini-paces small{font-size:var(--text-xs);font-weight:700}.mini-paces i{transform-origin:0;border-radius:999px;height:8px;animation:1s cubic-bezier(.3,.8,.3,1) .3s both bar-grow;display:block}@keyframes bar-grow{0%{transform:scaleX(0)}}.mini-build{align-items:flex-end;gap:4px;width:100%;height:3.25rem;display:flex}.mini-build i{background:var(--accent);transform-origin:50% 100%;border-radius:4px 4px 1px 1px;flex:1;animation:.9s cubic-bezier(.3,.8,.3,1) both bar-rise}.mini-build .is-easier{background:#d7ff3e59}.mini-build .is-taper{background:var(--coral)}@keyframes bar-rise{0%{transform:scaleY(0)}}.pitch-soon{color:var(--ink-2);font-size:var(--text-sm);margin-bottom:var(--space-6);max-width:36rem}.pitch-soon .tag{margin-right:var(--space-2)}.pitch-actions{justify-items:start;gap:var(--space-3);padding-top:var(--space-5);border-top:1px solid var(--line);display:grid}.loading-line{color:var(--ink-2);padding:var(--space-6) 0;font-weight:700}.field{gap:var(--space-1);margin-bottom:var(--space-4);display:grid}.field-label{font-weight:700;font-size:var(--text-sm)}.field-help{color:var(--muted);font-size:var(--text-sm)}.field-error{color:var(--danger-ink);font-size:var(--text-sm);font-weight:700}.input{min-height:48px;padding:var(--space-2) var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:#ffffff0f;width:100%}.input:focus-visible{border-color:var(--accent)}.input[aria-invalid=true]{border-color:var(--danger-ink)}.row{gap:var(--space-3);flex-wrap:wrap;display:flex}.row>.field{flex:9rem}.choice-list{gap:var(--space-2);display:grid}.choice{gap:var(--space-1) var(--space-4);padding:var(--space-3) var(--space-4);background:var(--glass);border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer;grid-template-columns:5.5rem 1fr;transition:border-color .16s,transform .16s;display:grid;position:relative}.choice:hover{border-color:var(--line-strong)}.choice:has(input:checked){border-color:var(--accent);box-shadow:var(--glow)}.choice:has(input:focus-visible){box-shadow:var(--focus)}.choice input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.choice-date{font-family:var(--font-mono);grid-row:span 2;font-weight:700;line-height:1.15}.choice-date small{color:var(--muted);font-family:var(--font-body);font-weight:400;font-size:var(--text-xs);display:block}.choice-name{font-weight:700}.choice-meta{color:var(--muted);font-size:var(--text-sm)}.choice-other{grid-template-columns:1fr}.race-rack{gap:var(--space-4) var(--space-4);margin-bottom:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));display:grid}.race-bib{cursor:pointer;padding-top:26px;display:block;position:relative}.race-bib:before{content:"";top:6px;left:calc(var(--space-4) / -2 - 2px);right:calc(var(--space-4) / -2 - 2px);background:linear-gradient(#e8e8e8,#7d8088);border-radius:999px;height:8px;position:absolute;box-shadow:0 6px 14px #00000080}.race-bib:after{content:"";border:3px solid #c9ccd2;border-bottom:0;border-radius:8px 8px 0 0;width:14px;height:26px;position:absolute;top:2px;left:calc(50% - 7px)}.race-bib input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.bib-card{padding:var(--space-4) var(--space-4) var(--space-5);border-radius:var(--radius-md);transform-origin:50% 0;gap:6px;transition:box-shadow .16s;animation:4.6s ease-in-out infinite alternate bib-hang;display:grid;box-shadow:0 14px 30px #00000073}.race-bib:hover .bib-card{animation:.8s cubic-bezier(.3,.1,.3,1) infinite alternate bib-swing}.race-bib:has(input:focus-visible) .bib-card{animation:.8s cubic-bezier(.3,.1,.3,1) infinite alternate bib-swing}@keyframes bib-hang{0%{transform:rotate(-2.5deg)}to{transform:rotate(2.5deg)}}@keyframes bib-swing{0%{transform:rotate(-9deg)}to{transform:rotate(7deg)}}.race-bib:has(input:checked) .bib-card{box-shadow:0 0 0 3px var(--paper), 0 0 0 6px var(--accent), 0 18px 40px #00000080}.race-bib:has(input:focus-visible) .bib-card{outline:3px solid var(--accent);outline-offset:6px}.bib-card .choice-date{font-size:var(--text-sm);letter-spacing:.04em}.bib-card .choice-date small{font-size:inherit;opacity:.75}.bib-card .choice-name{font-family:var(--font-display);font-size:1.5rem;font-weight:800;line-height:1.05}.bib-card .choice-meta{color:inherit;opacity:.85;font-weight:700}.bib-colour-0{background:var(--accent);color:var(--on-accent)}.bib-colour-1{background:var(--coral);color:#0a0a0b}.bib-colour-2{color:#0a0a0b;background:#f2f2f2}.bib-colour-3{color:var(--ink);border:1px solid var(--line-strong);background:#1d1f24}.skeleton{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--surface-sunk), var(--line), var(--surface-sunk));background-size:200% 100%;height:4.25rem;animation:1.4s ease-in-out infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.pills{gap:var(--space-2);flex-wrap:wrap;display:flex}.pill{min-height:var(--tap);min-width:var(--tap);padding:0 var(--space-3);border:1px solid var(--line-strong);font-weight:700;font-size:var(--text-sm);cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffff0d;border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:relative}.pill input{opacity:0;cursor:inherit;margin:0;position:absolute;inset:0}.pill:has(input:checked){background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.pill:has(input:focus-visible){box-shadow:var(--focus)}.pill:has(input:disabled){opacity:.4;cursor:not-allowed}.segmented{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));display:grid}.segment{padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--glass);cursor:pointer;transition:transform .2s cubic-bezier(.3,1.6,.5,1),border-color .16s;position:relative}.segment input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.segment:has(input:checked){border-color:var(--accent);box-shadow:var(--glow);animation:.38s cubic-bezier(.3,1.6,.5,1) spring-pick;transform:translateY(-3px)}@keyframes spring-pick{0%{transform:scale(.94)}}.segment:has(input:focus-visible){box-shadow:var(--focus)}.segment strong{display:block}.segment span{color:var(--muted);font-size:var(--text-sm)}.disclosure{border-top:1px solid var(--line);padding-top:var(--space-3);margin-top:var(--space-2)}.disclosure summary{cursor:pointer;min-height:var(--tap);color:var(--accent-strong);align-items:center;font-weight:700;display:flex}.disclosure[open] summary{margin-bottom:var(--space-3)}.estimate{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4)}.estimate-result{margin-top:var(--space-3);align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.goal-pace{font-size:var(--text-sm);color:var(--ink-2);min-height:1.5em}.button{min-height:var(--tap);padding:0 var(--space-5);border:1px solid var(--line-strong);cursor:pointer;align-items:center;gap:var(--space-2);color:var(--ink);background:#ffffff0f;border-radius:999px;font-weight:800;text-decoration:none;transition:transform .16s cubic-bezier(.3,1.6,.5,1),background-color .16s,box-shadow .16s;display:inline-flex}.button:hover{background:#ffffff1a;transform:translateY(-2px)}.button:active{transform:translateY(1px)scale(.98)}.button-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-size:var(--text-lg);min-height:3.5rem;padding:0 var(--space-6);box-shadow:var(--glow)}.button-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.button[disabled]{opacity:.6;cursor:progress;transform:none}.button-quiet{border-color:var(--line-strong)}.submit-row{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.form-errors{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-5);background:#ff8c7a14;border:1px solid #ff8c7a66}.form-errors h2,.form-errors h3{font-size:var(--text-md);color:var(--danger-ink)}.form-errors ul{margin:var(--space-2) 0 0;padding-left:var(--space-5)}.plan{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--line)}.plan-kicker{text-transform:uppercase;letter-spacing:.12em;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent);font-weight:700}.plan-title{margin-top:var(--space-1);font-size:clamp(2rem,5vw,3rem);font-weight:800}.plan-facts{gap:var(--space-2) var(--space-5);margin:var(--space-4) 0 0;color:var(--ink-2);flex-wrap:wrap;padding:0;list-style:none;display:flex}.plan-facts strong{color:var(--ink)}.plan-focus{margin-top:var(--space-4);color:var(--ink-2)}.plan-progress{align-items:center;gap:var(--space-4);margin-top:var(--space-5);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--glass);border:1px solid var(--line);display:flex}.plan-ring{aspect-ratio:1;flex:none;width:4.5rem;position:relative}.plan-ring svg{width:100%;height:100%}.plan-ring-track,.plan-ring-fill{fill:none;stroke-width:7px}.plan-ring-track{stroke:#ffffff1f}.plan-ring-fill{stroke:var(--accent);stroke-linecap:round;stroke-dashoffset:var(--ring-offset);animation:1.2s cubic-bezier(.3,.8,.3,1) .2s both plan-ring}@keyframes plan-ring{0%{stroke-dashoffset:var(--ring-full)}}.plan-ring span{font-weight:700;font-size:var(--text-sm);place-items:center;display:grid;position:absolute;inset:0}.plan-course{flex:1;min-width:0}.plan-countdown{color:var(--accent);font-weight:700;font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase}.course{height:44px;margin:0 22px 0 10px;position:relative}.course:before{content:"";background:repeating-linear-gradient(90deg,#ffffff2e 0 10px,#0000 10px 16px);border-radius:999px;height:6px;position:absolute;bottom:6px;left:0;right:0}.course-done{background:var(--accent);border-radius:999px;height:6px;transition:width 1.1s cubic-bezier(.3,.8,.3,1);position:absolute;bottom:6px;left:0}.course-flag{background-image:repeating-conic-gradient(var(--ink) 0 25%, var(--paper) 0 50%);background-size:7px 8px;border-radius:2px;width:14px;height:16px;position:absolute;bottom:2px;right:-18px}.course-runner{transition:left 1.1s cubic-bezier(.3,.8,.3,1);position:absolute;bottom:10px;transform:translate(-50%)}.is-rest .course-runner{bottom:12px}.is-before .course-runner{transform:translate(-10%)}.course-runner .zzz{top:-14px}.tape i{background:repeating-linear-gradient(90deg, var(--accent) 0 4px, var(--ink) 4px 8px);width:22px;height:3px;position:absolute;top:14px}.tape i:first-child{transform-origin:100%;animation:.7s cubic-bezier(.2,.8,.3,1) both tape-left;right:50%}.tape i:last-child{transform-origin:0;animation:.7s cubic-bezier(.2,.8,.3,1) both tape-right;left:50%}@keyframes tape-left{to{transform:rotate(-38deg)translateY(4px)}}@keyframes tape-right{to{transform:rotate(38deg)translateY(4px)}}.is-race .runner-victory,.is-after .runner-victory{animation:.6s cubic-bezier(.3,0,.5,1) infinite alternate victory-hop}@keyframes victory-hop{to{transform:translateY(-6px)}}.race-day-card{margin-bottom:var(--space-5);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--accent);color:var(--on-accent);position:relative;overflow:hidden}.race-day-card h3{margin:var(--space-1) 0 var(--space-2);font-size:clamp(2rem,6vw,2.8rem);font-weight:800}.race-day-card p{font-weight:700;position:relative}.race-day-card p.mono{font-size:var(--text-sm);letter-spacing:.1em}.race-day-confetti i{background:var(--on-accent);border-radius:2px;width:6px;height:10px;animation:linear infinite confetti-fall;position:absolute;top:-14px}.race-day-confetti i:nth-child(3n){background:var(--coral)}.race-day-confetti i:nth-child(3n+1){background:var(--violet)}@keyframes confetti-fall{to{transform:translateY(320px)rotate(540deg)}}.plan-actions{align-items:center;gap:var(--space-2);margin:var(--space-5) 0 var(--space-4);flex-wrap:wrap;display:flex}.pills-compact .pill{min-width:2.75rem;padding:0 var(--space-2)}.menu{position:relative}.menu summary{list-style:none}.menu summary::-webkit-details-marker{display:none}.menu summary:after{content:"▾";font-size:.8em}.menu-panel{z-index:3;top:calc(100% + var(--space-1));min-width:14rem;padding:var(--space-1);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-md);display:grid;position:absolute;right:0;box-shadow:0 16px 40px #0000008c}.menu-item{min-height:var(--tap);padding:0 var(--space-3);text-align:left;border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;background:0 0;border:0;font-weight:700}.menu-item:hover{background:var(--surface-sunk)}a.menu-item{align-items:center;column-gap:var(--space-2);flex-wrap:wrap;text-decoration:none;display:flex}.menu-note{font-weight:400;font-size:var(--text-sm);color:var(--muted)}.menu-help{margin:var(--space-1) var(--space-3) var(--space-2);font-size:var(--text-sm);color:var(--muted)}@media (width<=30rem){.plan-actions{position:relative}.menu{position:static}.menu-panel{width:min(100%,16rem);left:0;right:auto}}.tabs{top:var(--space-2);z-index:2;gap:var(--space-1);border:1px solid var(--line);-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);margin-bottom:var(--space-5);scrollbar-width:none;background:#1e2025b8;border-radius:999px;padding:5px;display:flex;position:sticky;overflow-x:auto;box-shadow:0 12px 30px #00000073}.tab{min-height:var(--tap);padding:0 var(--space-3);color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:1 0 auto;font-weight:700;transition:background-color .2s,color .2s}.tab:hover{color:var(--ink)}@media (width<=30rem){.tabs{gap:0}.tab{padding:0 var(--space-1);font-size:var(--text-sm);flex:auto}}.tab[aria-selected=true]{background:var(--accent);color:var(--on-accent)}.tab-viewport{margin:-4px;padding:4px;overflow-x:clip}.tab-panel h3{font-size:var(--text-xl);margin-bottom:var(--space-2)}.tab-panel>p{color:var(--ink-2);margin-bottom:var(--space-4)}.tab-intro{max-width:36rem}.this-week-head{margin-bottom:var(--space-3)}.this-week-head h3{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.callout{background:var(--warn-bg);color:var(--warn-ink);border:1px solid var(--warn-line);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:var(--space-4) 0}.callout ul{padding-left:var(--space-5);margin:0}.section{margin-top:var(--space-7)}.section h3{font-size:var(--text-xl);margin-bottom:var(--space-2)}.section>p{color:var(--ink-2);margin-bottom:var(--space-4)}.zones{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.zone{gap:var(--space-1) var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line);grid-template-columns:8px 7rem 1fr;align-items:baseline;display:grid}.zone-swatch{border-radius:2px;grid-row:span 2;align-self:stretch}.zone-name{font-weight:700}.zone-pace{font-family:var(--font-mono);font-weight:700;font-size:var(--text-lg)}.zone-note{color:var(--muted);font-size:var(--text-sm);grid-column:2/-1}.chart{position:relative}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart-tooltip{pointer-events:none;background:var(--accent);color:var(--on-accent);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-weight:700;font-size:var(--text-xs);white-space:nowrap;position:absolute;transform:translate(-50%,calc(-100% - 8px))}.chart-key{gap:var(--space-4);margin-top:var(--space-2);font-size:var(--text-xs);color:var(--muted);flex-wrap:wrap;display:flex}.chart-key span{align-items:center;gap:var(--space-1);display:inline-flex}.key-swatch{border-radius:2px;flex:none;width:12px;height:12px}.key-swatch-hatched{background:repeating-linear-gradient(45deg, var(--accent) 0 2px, var(--accent-soft) 2px 4.25px)}.volume{max-width:40rem;margin:0}.volume-plot{height:13rem;margin:var(--space-6) 0 var(--space-6) 3.25rem;position:relative}.volume-grid{pointer-events:none;position:absolute;inset:0}.volume-tick{border-top:1px solid var(--line);position:absolute;left:0;right:0}.volume-tick:last-child{border-top-color:var(--line-strong)}.volume-tick-label{right:calc(100% + var(--space-2));font-size:var(--text-xs);color:var(--muted);white-space:nowrap;position:absolute;top:0;transform:translateY(-50%)}.volume-bars{grid-template-columns:repeat(var(--weeks), minmax(0, 1fr));gap:2px;margin:0;padding:0;list-style:none;display:grid;position:absolute;inset:0}.volume-week{height:100%;position:relative}.volume-bar,.volume-ran{transform-origin:bottom;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.volume-bar{width:min(100%,2.75rem);height:var(--h);background:var(--accent);border-radius:4px 4px 0 0;min-height:2px;transition:opacity .12s;animation:.7s cubic-bezier(.3,.8,.3,1) both volume-grow}.volume-week.is-cutback .volume-bar{background:repeating-linear-gradient(45deg, var(--accent) 0 3px, var(--accent-soft) 3px 7px)}.volume-ran{width:max(4px,min(30%,.75rem));height:var(--r);background:var(--ink);box-shadow:0 0 0 2px var(--paper);border-radius:2px 2px 0 0}.volume-week.is-now .volume-bar{box-shadow:0 0 0 2px var(--paper), 0 0 0 4px var(--ink)}.volume-week.is-dimmed .volume-bar,.volume-week.is-dimmed .volume-ran{opacity:.45}.volume-value{left:50%;bottom:calc(var(--h) + var(--space-1));font-size:var(--text-xs);color:var(--ink-2);white-space:nowrap;position:absolute;transform:translate(-50%)}.volume-plot.is-dense .volume-week:first-child .volume-value{left:0;transform:none}.volume-plot.is-dense .volume-week:last-child .volume-value{left:auto;right:0;transform:none}.volume-week.is-now .volume-value{color:var(--ink);font-weight:700}.volume-label{left:50%;top:calc(100% + var(--space-2));font-size:var(--text-xs);color:var(--muted);position:absolute;transform:translate(-50%)}.volume-week.is-now .volume-label,.key-now{background:var(--accent);color:var(--on-accent);border-radius:999px;padding:0 .4rem;font-weight:700}.key-now{font-size:var(--text-xs)}.volume-tooltip{z-index:1;transform:translate(-50%, calc(-1 * var(--space-6)))}.chart-note{flex-basis:100%}@keyframes volume-grow{0%{transform:translate(-50%)scaleY(0)}}@media (width<=34rem){.volume-plot{height:11rem;margin-left:2.5rem}}.weeks{gap:var(--space-2);display:grid}.week{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius-md)}.week[open]{border-color:var(--line-strong)}.week>summary{cursor:pointer;min-height:3.5rem;padding:var(--space-3) var(--space-4);gap:var(--space-1) var(--space-3);grid-template-columns:1fr auto;align-items:center;list-style:none;display:grid}.week>summary::-webkit-details-marker{display:none}.week-name{font-family:var(--font-display);font-weight:700}.week-meta{color:var(--muted);font-size:var(--text-sm)}.week-km{font-family:var(--font-mono);text-align:right;font-weight:700}.tag{font-size:var(--text-xs);padding:0 var(--space-2);background:var(--surface-sunk);color:var(--ink-2);margin-left:var(--space-2);vertical-align:2px;border-radius:999px;font-weight:700;display:inline-block}.tag-now{background:var(--accent);color:var(--on-accent)}.days{padding:0 var(--space-4) var(--space-3);margin:0;list-style:none}.tab-panel:not([hidden]) .day{animation:.48s cubic-bezier(.2,1.2,.4,1) both day-in}.tab-panel:not([hidden]) .day:nth-child(2){animation-delay:60ms}.tab-panel:not([hidden]) .day:nth-child(3){animation-delay:.12s}.tab-panel:not([hidden]) .day:nth-child(4){animation-delay:.18s}.tab-panel:not([hidden]) .day:nth-child(5){animation-delay:.24s}.tab-panel:not([hidden]) .day:nth-child(6){animation-delay:.3s}.tab-panel:not([hidden]) .day:nth-child(7){animation-delay:.36s}@keyframes day-in{0%{opacity:0;transform:translateY(18px)}}.day{gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--line);grid-template-columns:3.25rem 1fr;display:grid}.day-date{font-family:var(--font-mono);font-weight:700;font-size:var(--text-sm);line-height:1.2}.day-date small{color:var(--muted);font-weight:400;font-size:var(--text-xs);display:block}.day-rest{color:var(--muted);font-size:var(--text-sm);align-self:center;align-items:center;gap:var(--space-2);display:inline-flex}.day-rest-sleeper{color:var(--muted);position:relative}.day-rest-sleeper .runner{color:var(--muted)}.zzz{pointer-events:none;width:24px;height:18px;position:absolute;top:-12px;left:40%}.zzz i{font-style:normal;font-family:var(--font-mono);color:var(--accent);opacity:0;font-weight:700;animation:2.4s ease-out infinite zzz;position:absolute}.zzz i:first-child{font-size:8px}.zzz i:nth-child(2){font-size:10px;animation-delay:.8s}.zzz i:nth-child(3){font-size:12px;animation-delay:1.6s}@keyframes zzz{0%{opacity:0;transform:translate(0)scale(.6)}25%{opacity:1}to{opacity:0;transform:translate(12px,-20px)scale(1.2)}}.session+.session{margin-top:var(--space-3)}.session-head{align-items:center;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.session-title{font-weight:700}.session-numbers{color:var(--ink-2);font-family:var(--font-mono);font-size:var(--text-sm)}.effort-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.session-detail{margin-top:var(--space-1)}.session-why{color:var(--muted);font-size:var(--text-sm);margin-top:var(--space-1)}.session-done{align-items:center;gap:var(--space-2);min-height:var(--tap);font-size:var(--text-sm);color:var(--muted);cursor:pointer;display:inline-flex}.session-done input{width:22px;height:22px;accent-color:var(--accent)}.tick-wrap{display:inline-flex;position:relative}.sparks i{background:var(--accent);pointer-events:none;border-radius:2px;width:6px;height:6px;animation:.65s cubic-bezier(.1,.8,.3,1) both spark;position:absolute;top:50%;left:50%}@keyframes spark{0%{opacity:1;transform:translate(-50%, -50%) rotate(var(--a)) translate(0)}to{opacity:0;transform:translate(-50%, -50%) rotate(var(--a)) translate(28px)}}.session.is-done .session-title{color:var(--muted);text-decoration:line-through;text-decoration-thickness:2px}.strength-moves{margin-top:var(--space-3)}.strength-moves-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);font-weight:700;font-size:var(--text-sm);color:var(--accent-strong);display:flex}.strength-moves-count{font-size:var(--text-xs);color:var(--muted);font-weight:400}.strength-session+.strength-session{margin-top:var(--space-6)}.exercises{margin:var(--space-2) 0 0;gap:var(--space-2);padding:0;list-style:none;display:grid}.exercise{gap:var(--space-3) var(--space-4);padding:var(--space-3);background:var(--glass);border:1px solid var(--line);border-radius:var(--radius-md);grid-template-columns:auto minmax(0,1fr);align-items:start;display:grid}.exercise.is-done{border-color:var(--accent)}.exercise-demo{border-radius:var(--radius-sm);background:var(--surface-sunk);padding:var(--space-2);position:relative}.exercise-demo .exercise-figure{width:8rem;height:auto}.exercise-step{top:calc(var(--space-2) * -1);left:calc(var(--space-2) * -1);background:var(--accent);width:1.75rem;height:1.75rem;color:var(--on-accent);font-size:var(--text-sm);border-radius:50%;place-items:center;font-weight:700;display:grid;position:absolute}.exercise.is-done .exercise-step{background:var(--surface-sunk);color:var(--muted);box-shadow:inset 0 0 0 1.5px var(--accent)}.exercise-figure .exercise-floor{stroke:var(--line-strong);stroke-width:2px}.exercise-head{align-items:baseline;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.exercise-name{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg)}.exercise-dose{font-weight:700;font-size:var(--text-sm);color:var(--accent-strong)}.exercise.is-done .exercise-name{color:var(--muted);text-decoration:line-through;text-decoration-thickness:2px}.exercise-how{margin-top:var(--space-1);color:var(--ink-2);font-size:var(--text-sm)}.exercise-cues{margin:var(--space-2) 0 0;gap:var(--space-1);flex-wrap:wrap;padding:0;list-style:none;display:flex}.exercise-cues li{font-size:var(--text-xs);color:var(--ink-2);padding:.125rem var(--space-2);border:1px solid var(--line);border-radius:999px}.exercise-sets{gap:var(--space-2);margin:var(--space-3) 0 0;border:0;flex-wrap:wrap;grid-column:1/-1;padding:0;display:flex}@media (width<=34rem){.exercise{gap:var(--space-2) var(--space-3);grid-template-columns:5.5rem minmax(0,1fr)}.exercise-body{display:contents}.exercise-demo{grid-area:1/1}.exercise-demo .exercise-figure{width:100%}.exercise-head{flex-direction:column;grid-area:1/2;align-self:center;align-items:flex-start}.exercise-how,.exercise-cues,.exercise-body>.session-why{grid-column:1/-1}.exercise-how,.exercise-cues{margin-top:0}.exercise-name{font-size:var(--text-md)}}.empty,.error-panel{border:1.5px dashed var(--line-strong);border-radius:var(--radius-md);padding:var(--space-5);text-align:center;color:var(--ink-2)}.error-panel{border-style:solid;border-color:var(--danger-ink);text-align:left}.error-panel strong{color:var(--danger-ink);display:block}.footer{margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--line);color:var(--muted);font-size:var(--text-sm)}.masthead{flex-wrap:wrap;justify-content:space-between}.wordmark-button{color:inherit;cursor:pointer;min-height:var(--tap);background:0 0;border:0;padding:0}.masthead-nav{align-items:center;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.nav-link,.link-button{padding:0 var(--space-1);min-height:var(--tap);color:var(--ink-2);cursor:pointer;text-underline-offset:.25em;background:0 0;border:0;font-weight:700;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.link-button{min-height:auto;color:var(--accent-strong);padding:0;text-decoration-color:currentColor}.nav-link:hover,.nav-link[aria-current=page]{color:var(--ink);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.panel{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-5);margin-top:var(--space-4)}.notice{border-top:1px solid var(--line);margin-top:var(--space-5);padding-top:var(--space-4)}.notice h3{font-size:var(--text-md);margin-bottom:var(--space-2)}.notice ul{margin:0 0 var(--space-2);padding-left:var(--space-5);color:var(--ink-2)}.saved-plan{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.saved-plan-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.button-danger{background:var(--danger-ink);border-color:var(--danger-ink);color:var(--on-accent)}.button-danger:hover{background:var(--danger-ink);filter:brightness(.9)}.danger-zone{border-top:1px solid var(--line);padding-top:var(--space-5)}.button.is-dashing{animation:.26s cubic-bezier(.3,0,.4,1.6) squash}@keyframes squash{40%{transform:scale(.9,.82)}}.dash-off{z-index:50;place-content:center;justify-items:center;gap:var(--space-4);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0a0bdb;animation:.2s both fade-in;display:grid;position:fixed;inset:0}.dash-off-track{border-bottom:3px dashed #fff3;width:min(80vw,420px);height:64px;position:relative;overflow:hidden}.dash-off-runner{color:var(--accent);animation:1.3s cubic-bezier(.5,0,.8,.6) both dash-across;position:absolute;bottom:4px}@keyframes dash-across{0%{left:-60px}to{left:110%}}.dash-off-quips{text-align:center;width:min(80vw,420px);height:1.6em;color:var(--ink-2);position:relative}.dash-off-quips span{opacity:0;animation:.43s both quip;position:absolute;inset:0}.dash-off-quips span:nth-child(2){animation-delay:.43s}.dash-off-quips span:nth-child(3){animation-delay:.86s;animation-fill-mode:forwards}@keyframes quip{0%{opacity:0;transform:translateY(8px)}30%,70%{opacity:1;transform:none}to{opacity:0;transform:translateY(-8px)}}.dash-off-quips span:nth-child(3){animation-name:quip-stay}@keyframes quip-stay{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}}.entry-bib{justify-items:center;gap:var(--space-1);max-width:22rem;margin:0 auto var(--space-5);padding:var(--space-5) var(--space-4) var(--space-4);border-radius:var(--radius-md);color:#0a0a0b;border-top:10px solid var(--accent);background:#f2f2f2;display:grid;position:relative;overflow:hidden;transform:rotate(-1.5deg);box-shadow:0 18px 40px #00000080}.entry-bib-pin{background:radial-gradient(circle at 35% 35%,#fff,#8c9099);border-radius:50%;width:10px;height:10px;position:absolute;top:10px;box-shadow:0 1px 2px #0006}.entry-bib-pin-left{left:12px}.entry-bib-pin-right{right:12px}.entry-bib-brand{letter-spacing:.14em;text-transform:uppercase;color:#4a4d55;font-size:.7rem;font-weight:700}.entry-bib-number{font-size:clamp(2.6rem,12vw,3.4rem);font-weight:700;line-height:1;display:flex}.reel{height:1em;display:inline-block;overflow:hidden}.reel-strip{transform:translateY(calc((10 + var(--d)) * -1em));animation:reel-roll calc(.7s + var(--i) * .18s) cubic-bezier(.2, .7, .3, 1.05) both;display:block}.reel-strip span{height:1em;display:block}@keyframes reel-roll{0%{transform:translateY(0)}}.entry-bib-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-family:var(--font-display);text-transform:uppercase;font-size:1.4rem;font-weight:800;overflow:hidden}.entry-bib-stamp{border:3px solid var(--coral);color:var(--coral);letter-spacing:.12em;text-transform:uppercase;mix-blend-mode:multiply;border-radius:6px;padding:1px 8px;font-size:.75rem;font-weight:700;animation:.34s cubic-bezier(.3,0,.5,1.4) both stamp-slam;position:absolute;bottom:12px;right:12px;transform:rotate(-14deg)}@keyframes stamp-slam{0%{opacity:0;transform:rotate(-14deg)scale(2.6)}}.start-list{z-index:50;padding:var(--space-4);pointer-events:none;place-items:center;animation:.4s 2.8s forwards start-list-out;display:grid;position:fixed;inset:0}@keyframes start-list-out{to{opacity:0}}.start-list-card{justify-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-6);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--accent);box-shadow:var(--glow), 0 30px 60px #0009;text-align:center;animation:.52s cubic-bezier(.2,1.4,.4,1) both start-list-pop;display:grid;position:relative}@keyframes start-list-pop{0%{opacity:0;transform:scale(.6)rotate(-4deg)}}.start-list-card .runner{color:var(--accent);animation:.42s cubic-bezier(.3,0,.5,1) infinite alternate victory-hop}.start-list-pin{background:radial-gradient(circle at 35% 35%,#fff,#8c9099);border-radius:50%;width:12px;height:12px;animation:.3s cubic-bezier(.3,0,.4,1.8) both pin-pop;position:absolute;top:12px}.start-list-pin-left{animation-delay:.35s;left:14px}.start-list-pin-right{animation-delay:.48s;right:14px}@keyframes pin-pop{0%{transform:scale(0)}}.start-list-title{font-family:var(--font-display);font-size:clamp(1.6rem,6vw,2.2rem);font-weight:800}.start-list-name{color:var(--ink-2)}.start-list-confetti i{background:var(--accent);border-radius:2px;width:7px;height:12px;animation:linear both start-confetti;position:absolute;top:-16px}@keyframes start-confetti{to{transform:translateY(110vh)rotate(720deg)}}.start-list-confetti i:nth-child(3n){background:var(--coral)}.start-list-confetti i:nth-child(3n+1){background:var(--violet)}.start-list-confetti{position:absolute;inset:0;overflow:hidden}.run-marks{margin:var(--space-2) 0 0;gap:var(--space-2);flex-wrap:wrap;padding:0;list-style:none;display:flex}.run-mark{align-items:center;gap:var(--space-1);max-width:100%;padding:var(--space-1) var(--space-3) var(--space-1) var(--space-2);background:var(--accent-soft);color:var(--ink);font-family:var(--font-mono);font-size:var(--text-sm);overflow-wrap:anywhere;border-radius:999px;font-weight:700;display:inline-flex}.run-mark-tick{fill:none;width:16px;height:16px;stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;flex:none}.run-mark-unplanned{border:1px dashed var(--line-strong);color:var(--ink-2);background:0 0;font-weight:400}.run-mark-unplanned .run-mark-tick{stroke:var(--muted)}.run-mark-button{min-height:var(--tap);cursor:pointer;text-align:left;border:1px solid #0000}.run-mark-button.run-mark-unplanned{border-color:var(--line-strong)}.run-mark-button:hover{border-color:var(--accent)}.run-mark-button:focus-visible{box-shadow:var(--focus);outline:none}.key-swatch-ran{background:var(--ink);width:5px}.week-totals-title{margin-top:var(--space-6)}.week-totals{margin:var(--space-2) 0 0;padding:0;list-style:none}.week-total{gap:var(--space-1) var(--space-3);padding:var(--space-2) 0;border-top:1px solid var(--line);grid-template-columns:auto 1fr;align-items:baseline;display:grid}.week-total-name{font-family:var(--font-display);font-weight:700}.week-total-numbers{font-family:var(--font-mono);font-size:var(--text-sm);text-align:right}.week-total-note{color:var(--muted);font-size:var(--text-sm);grid-column:1/-1}.upload h3{font-size:var(--text-lg);margin-bottom:var(--space-2)}.upload-ways{gap:var(--space-4);margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));display:grid}.upload-way{margin-bottom:var(--space-1);font-weight:700}.bulk-progress,.bulk-summary{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--line)}.bulk-progress{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.bulk-summary .disclosure{margin-top:var(--space-3)}.bulk-problems{gap:var(--space-1);margin:var(--space-2) 0 0;overflow-wrap:anywhere;padding:0;list-style:none;display:grid}.upload label.button{align-items:center;display:inline-flex}.upload label.button:focus-within{box-shadow:var(--focus)}.upload label.is-busy{opacity:.7;cursor:progress}.activity-stats{gap:var(--space-3);margin:var(--space-5) 0 0;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));display:grid}.stat{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--glass);border:1px solid var(--line)}.stat dt{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}.stat dd{margin:var(--space-1) 0 0;font-size:var(--text-lg);color:var(--ink);font-weight:700}.stat-lead dd{font-size:var(--text-2xl);color:var(--accent)}.vs-rows{gap:var(--space-2);margin-top:var(--space-3);display:grid}.vs-label{min-width:5.5rem;font-size:var(--text-sm);color:var(--muted);display:inline-block}.verdict{margin-top:var(--space-5);border-left:4px solid var(--line-strong)}.verdict[data-pace=OnTarget]{border-left-color:var(--accent)}.verdict[data-pace=Faster]{border-left-color:var(--effort-interval)}.verdict[data-pace=Slower]{border-left-color:var(--violet)}.verdict-headline{font-size:var(--text-xl);line-height:1.25}.verdict-detail{margin-top:var(--space-2);color:var(--ink-2)}.verdict-next{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--line);font-weight:700}.verdict-next:before{content:"→ ";color:var(--accent)}.input-short{max-width:8rem}.splits{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.splits th,.splits td{padding:var(--space-2);text-align:left;border-bottom:1px solid var(--line)}.splits thead th{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}.split-bar-cell{width:38%}.split-bar{background:var(--effort-easy);border-radius:999px;height:8px;display:block}.split-quickest .split-bar{background:var(--accent)}.split-hardest .split-bar{background:var(--coral)}.tag-quickest{background:var(--accent-soft);color:var(--accent)}.tag-hardest{color:var(--danger-ink);background:#ff5a3629}.split-zone{font-size:var(--text-xs);line-height:1.3}.split-zone-name{color:var(--muted);display:block}.split-fit{font-weight:700;display:block}.splits tr[data-fit=Faster] .split-fit{color:var(--effort-interval)}.splits tr[data-fit=Slower] .split-fit{color:var(--ink-2)}.splits tr[data-fit=Faster] .split-bar,.splits tr[data-fit=Slower] .split-bar{opacity:.55}.hr-zones{gap:var(--space-2);margin:0 0 var(--space-3);padding:0;list-style:none;display:grid}.hr-zone{align-items:center;gap:var(--space-3);grid-template-columns:9rem 1fr auto;display:grid}.hr-zone-track{background:var(--surface-sunk);border-radius:999px;height:10px;overflow:hidden}.hr-zone-fill{border-radius:999px;height:100%;display:block}.hr-zone-fill[data-zone="1"]{background:var(--effort-recovery)}.hr-zone-fill[data-zone="2"]{background:var(--effort-easy)}.hr-zone-fill[data-zone="3"]{background:var(--effort-long)}.hr-zone-fill[data-zone="4"]{background:var(--effort-interval)}.hr-zone-fill[data-zone="5"]{background:var(--effort-race)}.hr-zone-time{font-size:var(--text-sm);color:var(--ink-2)}.tag-near{background:var(--accent-soft);color:var(--accent);justify-self:end;margin-left:0}.efforts-all{margin-top:var(--space-4)}.efforts-all .efforts{margin-top:var(--space-3)}.efforts{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.effort{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--glass);border:1px solid var(--line);grid-template-columns:1fr auto auto 2.75rem;display:grid}.effort-name{font-weight:700}.effort-time{color:var(--ink);font-weight:700}.effort-pace{font-size:var(--text-sm);color:var(--muted)}.tag-pb{background:var(--accent);color:var(--on-accent);justify-self:end;margin-left:0}@media (width<=30rem){.split-bar-cell{width:22%}.splits th,.splits td{padding-inline:var(--space-1)}.splits .tag{margin:var(--space-1) 0 0;display:table}.effort{gap:var(--space-3);grid-template-columns:1fr auto 2.75rem}.effort-pace,.split-elev{display:none}.hr-zone{gap:var(--space-2);grid-template-columns:6.5rem 1fr auto}.hr-zone-name .field-help,.vs-label{display:block}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.builder,.plan-actions,.tabs,#plan-panel-week,.session-done,.masthead,.intro,.footer{display:none!important}.tab-panel[hidden]{display:block!important}.tab-panel+.tab-panel{margin-top:var(--space-6)}.plan{border-top:0;margin-top:0}.week{break-inside:avoid}}.overview{gap:var(--space-4);display:grid}.overview-sync{align-items:center;gap:var(--space-2) var(--space-3);color:var(--muted);font-size:var(--text-sm);flex-wrap:wrap;margin:0;display:flex}.overview-sync-text{display:inline}.overview-sync-dot{margin-right:var(--space-2);vertical-align:1px;background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 3px var(--accent-soft);border-radius:50%;display:inline-block}.overview-nudge{background:var(--surface-sunk);color:var(--ink);border-color:var(--line-strong)}.overview-nudge p{margin:0}.overview-grid{gap:var(--space-4);display:grid}@media (width>=48rem){.overview-grid{grid-template-columns:1fr 1fr}}.overview-card{gap:var(--space-2);align-content:start;margin-top:0;display:grid}.overview-card h3,.overview-section h3{font-size:var(--text-md);margin:0}.overview-figure{margin:var(--space-1) 0 0;font-size:var(--text-lg)}.overview-figure .mono{font-size:var(--text-xl);font-weight:700}.meter{background:var(--surface-sunk);border-radius:999px;height:8px;overflow:hidden}.meter-fill{background:var(--accent);border-radius:999px;height:100%;display:block}.overview-section{margin-top:var(--space-4);gap:var(--space-3);display:grid}.overview-runs,.overview-bests{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.overview-run{gap:var(--space-1) var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;display:grid}.overview-run-main{gap:2px;min-width:0;display:grid}.overview-run-title{text-align:left;font-weight:700}.overview-run .view-on-strava{grid-column:1/-1;justify-self:start}.chip{font-size:var(--text-xs);padding:2px var(--space-2);white-space:nowrap;border:1px solid var(--line);border-radius:999px;font-weight:700}.chip-good{background:var(--accent-soft);color:var(--accent);border-color:#0000}.chip-note{background:var(--surface-sunk);color:var(--ink)}.chip-neutral{color:var(--muted)}.overview-trend{gap:var(--space-4);display:grid}@media (width>=48rem){.overview-trend{grid-template-columns:1fr 1fr}}.overview-trend figure{gap:var(--space-2);margin:0;display:grid}.overview-trend figcaption{font-size:var(--text-xs);color:var(--muted)}.sparkline{width:100%;height:56px;overflow:visible}.sparkline-line{stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}.sparkline-dot{fill:var(--accent);stroke:var(--paper);stroke-width:2px;vector-effect:non-scaling-stroke}.overview-bests li{gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--line);grid-template-columns:1fr auto auto;align-items:baseline;display:grid}.overview-best-name{font-weight:700}.strava-connect{cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0;line-height:0;display:inline-block}.strava-connect:focus-visible{box-shadow:var(--focus);outline:none}.strava-connect:disabled{opacity:.6;cursor:progress}.strava-connect img{width:auto;height:48px}.strava-powered{align-items:center;line-height:0;display:inline-flex}.strava-powered img{width:auto;height:11px}.strava-powered-print{display:none}.view-on-strava{font-size:var(--text-sm);color:var(--ink);font-weight:700;text-decoration:underline}.strava-section{gap:var(--space-3);justify-items:start;display:grid}.strava-section p{margin:0}@media print{.strava-powered-screen{display:none}.strava-powered-print{display:inline}}.activity-source{align-items:center;gap:var(--space-2) var(--space-3);margin:var(--space-2) 0 0;color:var(--muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}@media (width<=30rem){.tab{white-space:nowrap;flex:1 0 auto}}
