@font-face{
  font-family:'Space Grotesk';
  font-style:normal;font-weight:300 700;font-display:optional;
  src:url('../fonts/space-grotesk-latin-wght-normal.woff2') format('woff2-variations');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Space Grotesk';
  font-style:normal;font-weight:300 700;font-display:optional;
  src:url('../fonts/space-grotesk-latin-ext-wght-normal.woff2') format('woff2-variations');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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;
}
/* Dark is the brand default and the no-preference fallback. The light palette is
   defined twice on purpose: once under prefers-color-scheme for system detection,
   once under [data-theme=light] so the header toggle wins in both directions.
   Every pairing below is WCAG AA verified — see shots/contrast.mjs. */
:root{
  color-scheme:dark;
  --bg:#0C0E12; --bg-2:#141820; --ink:#F3F1EC; --text:#C9CED8; --mute:#9AA3B2;
  --line:#242A34; --line-2:#2A3140; --line-hi:#3A4250;
  --brand:#F04A25; --brand-ink:#1A0A06; --ok:#3ADE9E;
  --hover:rgba(255,255,255,.025);
  --logo:url('../img/logo.png');
  --display:'Space Grotesk',system-ui,sans-serif;
  --sans:system-ui,-apple-system,"Segoe UI",sans-serif;
  --pad:clamp(1.1rem,4vw,2rem);
}
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]){
    color-scheme:light;
    --bg:#FBFAF8; --bg-2:#F2F1ED; --ink:#14171D; --text:#2E3440; --mute:#5C6472;
    --line:#E0DFDA; --line-2:#D8D6D0; --line-hi:#BFBCB4;
    --brand:#C2381A; --brand-ink:#FFFFFF; --ok:#0E7A54;
    --hover:rgba(0,0,0,.03);
    --logo:url('../img/logo-light.png');
  }
}
:root[data-theme="light"]{
  color-scheme:light;
  --bg:#FBFAF8; --bg-2:#F2F1ED; --ink:#14171D; --text:#2E3440; --mute:#5C6472;
  --line:#E0DFDA; --line-2:#D8D6D0; --line-hi:#BFBCB4;
  --brand:#C2381A; --brand-ink:#FFFFFF; --ok:#0E7A54;
  --hover:rgba(0,0,0,.03);
  --logo:url('../img/logo-light.png');
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:4.5rem}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block;height:auto}
a{color:var(--brand)}
h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;line-height:1.15;text-wrap:balance}
h1{font-size:clamp(1.9rem,4.5vw,2.9rem);margin:.4rem 0 0}
h2{font-size:1.45rem;margin:2.4rem 0 .6rem}
h3{font-size:1.1rem;margin:1.6rem 0 .4rem}
p,li{color:var(--text)}
:focus-visible{outline:2px solid var(--brand);outline-offset:3px}

header{
  position:sticky;top:0;z-index:20;height:64px;
  background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--line);
}
.nav{max-width:1180px;margin:0 auto;padding:0 var(--pad);height:64px;display:flex;align-items:center;gap:1.2rem}
.mark{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--ink);font-family:var(--display);font-weight:700;font-size:1rem}
.mark .logo{display:block;width:188px;height:20px;background:var(--logo) left center/contain no-repeat}
@media (max-width:479px){.mark .logo{width:169px;height:18px}}
.mark-i{color:var(--brand)}
.nav nav{margin-left:auto;display:flex;gap:1.1rem;align-items:center}
.nav nav a{color:var(--mute);text-decoration:none;font-size:.92rem}
.nav nav a:hover{color:var(--ink)}
@media (max-width:600px){.nav nav a.nav-lp{display:none}}

main{max-width:760px;margin:0 auto;padding:2.2rem var(--pad) 6rem}
.crumb{font-size:.88rem;color:var(--mute)}
.crumb a{color:var(--mute);text-decoration:none}
.crumb a:hover{color:var(--ink)}
.intro{color:var(--mute);font-size:1.05rem;margin-top:.8rem}

figure{margin:1.4rem 0}
figure img{border:1px solid var(--line-2);border-radius:14px;width:min(100%,320px)}
figure.wide img{width:100%}
figcaption{color:var(--mute);font-size:.88rem;margin-top:.5rem}

ul{padding-left:1.2rem}
li{margin:.3rem 0}
.note{
  border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:8px;
  background:var(--bg-2);padding:.9rem 1.1rem;margin:1.3rem 0;font-size:.95rem;color:var(--text);
}
.note.ok{border-left-color:var(--ok)}
table{border-collapse:collapse;width:100%;margin:1rem 0;font-size:.95rem}
th,td{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--line)}
th{color:var(--mute);font-weight:600;font-family:var(--display);font-size:.88rem}
td strong{font-family:var(--display)}

.cards{display:grid;gap:1rem;margin:1.6rem 0;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.card{
  border:1px solid var(--line);border-radius:10px;padding:1.1rem 1.2rem;
  text-decoration:none;background:var(--bg-2);display:block;
}
.card:hover{border-color:var(--line-hi)}
.card h2,.card h3{margin:0;font-size:1.08rem;color:var(--ink)}
.card p{margin:.45rem 0 0;color:var(--mute);font-size:.92rem}

.related{border-top:1px solid var(--line);margin-top:3rem;padding-top:1.2rem}
.related h2{margin-top:0;font-size:1.1rem}
.related a{display:inline-block;margin:.2rem 1.2rem .2rem 0;font-family:var(--display);font-weight:600;text-decoration:none}
.related a:hover{text-decoration:underline}

footer{border-top:1px solid var(--line);padding:1.4rem var(--pad);color:var(--mute);font-size:.88rem;text-align:center}
footer a{color:var(--mute)}

/* Ask-AI bubble styles live in ../ask.css (shared with the landing). */

@media (prefers-reduced-transparency: reduce){header{background:var(--bg);backdrop-filter:none}}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Audience tracks on the docs index: two ordered paths, coach and athlete. */
.tracks{display:grid;gap:1.1rem;margin:1.8rem 0 .6rem;grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.track{border:1px solid var(--line);border-radius:12px;background:var(--bg-2);padding:1.25rem 1.35rem}
.track h2{margin:0;font-size:1.2rem}
.track .who{margin:.4rem 0 1rem;color:var(--mute);font-size:.93rem}
.track ol{list-style:none;margin:0;padding:0;display:grid;gap:.45rem;counter-reset:step}
.track ol li{counter-increment:step;margin:0}
.track ol a{
  display:grid;grid-template-columns:1.4rem 1fr;gap:.55rem;
  padding:.55rem .6rem;border:1px solid transparent;border-radius:8px;
  text-decoration:none;color:var(--ink);
  font-family:var(--display);font-weight:600;font-size:1rem;line-height:1.35;
}
.track ol a::before{content:counter(step);color:var(--brand);font-size:.85rem;font-variant-numeric:tabular-nums;line-height:1.5}
.track ol a span{grid-column:2;color:var(--mute);font-family:var(--sans);font-weight:400;font-size:.9rem;margin-top:.2rem}
.track ol a:hover{border-color:var(--line-hi);background:var(--hover)}

/* Manual light/dark switch. Created by theme.js — absent (and unneeded) without JS. */
.theme-toggle{
  appearance:none;border:1px solid var(--line);background:var(--bg-2);color:var(--mute);
  width:34px;height:34px;border-radius:8px;cursor:pointer;line-height:1;font-size:1rem;
  display:inline-flex;align-items:center;justify-content:center;
}
.theme-toggle:hover{color:var(--ink);border-color:var(--line-hi)}

/* ---- Guide components ------------------------------------------------- */
/* On-page nav. Plain list, no JS, no scroll-spy — 5 anchors don't need one. */
.toc{border:1px solid var(--line);border-radius:10px;background:var(--bg-2);padding:.9rem 1.1rem;margin:1.6rem 0}
.toc p{margin:0 0 .5rem;font-family:var(--display);font-weight:600;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}
.toc ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem 1.1rem}
.toc li{margin:0}
.toc a{font-size:.94rem;text-decoration:none}
.toc a:hover{text-decoration:underline}

/* Numbered how-to. <ol> keeps the semantics; the counter just styles the marker. */
.steps{list-style:none;margin:1.2rem 0;padding:0;counter-reset:s}
.steps li{counter-increment:s;position:relative;padding:0 0 1rem 2.6rem;margin:0}
.steps li::before{
  content:counter(s);position:absolute;left:0;top:-.1rem;
  width:1.75rem;height:1.75rem;border-radius:50%;
  background:var(--brand);color:var(--brand-ink);
  font-family:var(--display);font-weight:700;font-size:.9rem;
  display:flex;align-items:center;justify-content:center;
}
.steps li:not(:last-child)::after{
  content:"";position:absolute;left:.85rem;top:1.9rem;bottom:.2rem;
  width:1px;background:var(--line);
}
.steps strong{display:block;font-family:var(--display);color:var(--ink);margin-bottom:.15rem}

/* FAQ. <details> is the whole mechanism — open/close needs no script. */
.faq{margin:1.2rem 0;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  cursor:pointer;padding:.9rem 2rem .9rem 0;position:relative;list-style:none;
  font-family:var(--display);font-weight:600;color:var(--ink);font-size:1rem;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";position:absolute;right:.4rem;top:.8rem;
  color:var(--brand);font-size:1.3rem;line-height:1;font-weight:400;
}
.faq details[open] summary::after{content:"−"}
.faq summary:hover{color:var(--brand)}
.faq details > *:not(summary){margin:0 0 .9rem;color:var(--text);font-size:.97rem}

/* AUDIENCE ROUTING (?coach=true|false, set as data-audience by the inline script).
   Order only: both tracks stay rendered and crawlable, the reader's just comes first. */
.track .chip{display:none;font-family:var(--sans);font-size:.7rem;font-weight:600;letter-spacing:.04em;
  text-transform:uppercase;vertical-align:middle;margin-left:.5rem;padding:.16rem .45rem;
  border-radius:99px;background:var(--brand);color:#fff}
[data-audience=coach] .track-coach .chip,
[data-audience=athlete] .track-athlete .chip{display:inline-block}
[data-audience=coach] .track-coach,
[data-audience=athlete] .track-athlete{order:1;border-color:var(--brand)}
[data-audience=coach] .track-athlete,
[data-audience=athlete] .track-coach{order:2}

/* Language switch — injected by build.mjs from PAGE_PAIRS, so it points at this page's
   counterpart rather than at the other language's homepage. */
.lang-switch{font-size:.8rem;font-weight:600;letter-spacing:.03em;padding:.2rem .5rem;
  border:1px solid var(--line);border-radius:6px;color:var(--mute);text-decoration:none}
.lang-switch:hover{color:var(--ink);border-color:var(--line-hi)}
