/* Coach Logan Carlson: graphite + ember */
:root {
  --graphite: #1C1E21;
  --raised: #24272B;
  --raised-2: #2E3136;
  --ink: #ECE7DE;
  --ink-dim: #99958D;
  --ink-faint: #5E5B56;
  --ember: #E8843C;
  --ember-deep: #B5602A;
  --line: rgba(236, 231, 222, 0.10);
  --line-soft: rgba(236, 231, 222, 0.06);

  --paper: #E7E2D9;
  --paper-2: #DDD7CC;
  --paper-ink: #1C1E21;
  --paper-dim: #6A665F;
  --paper-line: rgba(28, 30, 33, 0.12);

  --serif: "Instrument Serif", Georgia, serif;
  --sans: "Schibsted Grotesk", system-ui, sans-serif;
  --mono: "Space Mono", ui-monospace, monospace;

  --wrap: 1280px;
  --gutter: clamp(16px, 4vw, 48px);
  --ease: cubic-bezier(.2, .7, .2, 1);
  --ease-out: cubic-bezier(.16, 1, .3, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
body {
  margin: 0;
  background: var(--graphite);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
/* film grain */
body::after {
  content: ""; position: fixed; inset: -50%; z-index: 100; pointer-events: none; opacity: .06;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
img, video { display: block; max-width: 100%; }
a { color: inherit; }
::selection { background: var(--ember); color: var(--graphite); }
:focus-visible { outline: 2px solid var(--ember); outline-offset: 3px; border-radius: 2px; }

.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- type ---------- */
.eyebrow {
  font-family: var(--mono); font-size: 11px; letter-spacing: .28em; text-transform: uppercase;
  color: var(--ember); margin: 0 0 28px; display: flex; align-items: center; gap: 14px;
}
.eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; opacity: .7; }
.h1, .h2, .h3 { font-family: var(--serif); font-weight: 400; letter-spacing: -0.015em; margin: 0; }
.h1 { font-size: clamp(56px, 8.4vw, 136px); line-height: .9; }
.h2 { font-size: clamp(44px, 6vw, 92px); line-height: .95; }
.h3 { font-size: clamp(30px, 3.2vw, 44px); line-height: 1.02; }
.h1 em, .h2 em, .h3 em { font-style: italic; color: var(--ember); }
.lead { font-size: clamp(18px, 1.5vw, 21px); line-height: 1.55; color: var(--ink-dim); max-width: 32em; margin: 28px 0 0; }
.lead strong { color: var(--ink); font-weight: 500; }
.mono { font-family: var(--mono); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-dim); }

/* split-word reveal */
.w { display: inline-block; overflow: hidden; vertical-align: top; padding: 0 .06em .12em 0; margin: 0 -.06em -.12em 0; }
.w > .i { display: inline-block; transform: translateY(108%); transition: transform 1.1s var(--ease-out); transition-delay: calc(var(--d, 0) * 38ms); }
.is-in .w > .i, .w.is-in > .i { transform: none; }

/* ---------- logo ---------- */
.mark { width: 100%; height: 100%; overflow: visible; color: var(--ink); }
.mark .arc { fill: none; stroke: var(--ink); stroke-width: 11; stroke-linecap: round; }
.mark .core { fill: var(--ember); }
.mark .glow { fill: url(#core-glow); }
.lockup { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; }
.lockup .m { width: 40px; height: 40px; flex: none; }
.lockup .t { display: flex; flex-direction: column; line-height: 1; }
.lockup .t small { font-family: var(--mono); font-size: 9.5px; letter-spacing: .42em; text-transform: uppercase; color: var(--ember); margin-bottom: 5px; }
.lockup .t b { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: 25px; letter-spacing: 0; color: var(--ink); }
.draw .arc { stroke-dasharray: 1; stroke-dashoffset: 1; animation: draw 1.6s var(--ease-out) .15s forwards; }
.draw .arc:nth-of-type(2) { animation-delay: .3s; }
.draw line.arc { animation-delay: .55s; }
.draw .core, .draw .glow { opacity: 0; transform: scale(.2); transform-origin: 100px 100px; animation: pop .9s var(--ease-out) 1.1s forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }
@keyframes pop { to { opacity: 1; transform: none; } }

/* ---------- buttons ---------- */
.btn {
  position: relative; display: inline-flex; align-items: center; gap: 12px;
  font: 500 15px/1 var(--sans); letter-spacing: .01em;
  padding: 18px 28px; border-radius: 999px; text-decoration: none;
  border: 1px solid transparent; cursor: pointer; overflow: hidden; isolation: isolate;
  transition: color .4s var(--ease), border-color .4s var(--ease), transform .4s var(--ease);
}
.btn-primary { background: var(--ember); color: var(--graphite); }
.btn-primary::before {
  content: ""; position: absolute; inset: 0; z-index: -1; background: var(--ink);
  transform: translateY(101%); border-radius: inherit; transition: transform .5s var(--ease-out);
}
.btn-primary:hover::before { transform: none; }
.btn-ghost { border-color: rgba(236,231,222,.2); color: var(--ink); }
.btn-ghost:hover { border-color: var(--ink); }
.btn .arrow { display: inline-block; transition: transform .4s var(--ease-out); }
.btn:hover .arrow { transform: translateX(4px); }

/* ---------- nav ---------- */
.nav { position: fixed; inset: 0 0 auto 0; z-index: 50; transition: background .4s var(--ease), border-color .4s var(--ease), transform .5s var(--ease-out); border-bottom: 1px solid transparent; }
.nav.is-scrolled { background: rgba(28, 30, 33, .78); backdrop-filter: blur(14px) saturate(1.2); -webkit-backdrop-filter: blur(14px) saturate(1.2); border-bottom-color: var(--line-soft); }
.nav.is-hidden { transform: translateY(-100%); }
.nav-inner { display: flex; align-items: center; justify-content: space-between; height: 84px; }
.nav-links { display: flex; align-items: center; gap: 36px; list-style: none; margin: 0; padding: 0; }
.nav-links a:not(.btn) { position: relative; text-decoration: none; font-size: 14px; color: var(--ink-dim); transition: color .3s; }
.nav-links a:not(.btn)::after { content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 1px; background: var(--ember); transform: scaleX(0); transform-origin: right; transition: transform .4s var(--ease-out); }
.nav-links a:not(.btn):hover { color: var(--ink); }
.nav-links a:not(.btn):hover::after { transform: scaleX(1); transform-origin: left; }
.nav .btn { padding: 12px 22px; font-size: 14px; }
@media (max-width: 900px) { .nav-links li:not(:last-child) { display: none; } .nav-inner { height: 72px; } .lockup .m { width: 34px; height: 34px; } .lockup .t b { font-size: 22px; } }

/* ---------- sections ---------- */
.section { padding: clamp(110px, 13vw, 190px) 0; position: relative; }
.section--raised { background: var(--raised); }
.section-head { max-width: 860px; margin-bottom: clamp(56px, 7vw, 96px); }
.section-head--split { max-width: none; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 48px; align-items: end; }
.section-head--split .lead { margin: 0; }

/* ---------- hero ---------- */
.hero { position: relative; min-height: 100svh; display: flex; flex-direction: column; justify-content: flex-end; padding: 120px 0 0; overflow: hidden; }
.hero-bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; background: var(--graphite) url("../assets/video/coach-hero-blur.jpg") center / cover no-repeat; }
.hero-bg video {
  position: absolute; top: 0; bottom: 0; height: 100%; width: auto; aspect-ratio: 9 / 16; object-fit: cover;
  right: max(var(--gutter), calc((100vw - var(--wrap)) / 2 + var(--gutter)));
  filter: saturate(.75) contrast(1.05) brightness(.92); opacity: 0; transition: opacity 1.4s var(--ease);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 14%, #000 86%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 14%, #000 86%, transparent 100%);
}
.hero-bg video.is-ready { opacity: 1; }
.hero-bg::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(to bottom, rgba(28,30,33,.75) 0%, rgba(28,30,33,0) 22%, rgba(28,30,33,0) 55%, var(--graphite) 100%),
    linear-gradient(90deg, rgba(28,30,33,.92) 0%, rgba(28,30,33,.7) 40%, rgba(28,30,33,.15) 62%, rgba(28,30,33,0) 100%),
    radial-gradient(60% 50% at 80% 40%, rgba(232,132,60,.10), transparent 70%);
}
.hero-copy { position: relative; z-index: 2; max-width: 820px; padding-bottom: clamp(48px, 8vh, 96px); }
.hero .h1 { max-width: 9.5em; }
.hero-ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 44px; }
.hero .fade { opacity: 0; transform: translateY(16px); animation: rise 1.2s var(--ease-out) forwards; }
.hero .fade--1 { animation-delay: .9s; }
.hero .fade--2 { animation-delay: 1.05s; }
.hero .fade--3 { animation-delay: 1.2s; }
@keyframes rise { to { opacity: 1; transform: none; } }
.rail { position: relative; z-index: 2; border-top: 1px solid var(--line); }
.rail ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rail li { padding: 22px 20px 26px 0; font-family: var(--mono); font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-dim); display: flex; gap: 10px; align-items: center; }
.rail li + li { padding-left: 20px; border-left: 1px solid var(--line); }
.rail li b { color: var(--ink); font-weight: 400; }
.dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ember); box-shadow: 0 0 0 0 rgba(232,132,60,.6); animation: pulse 2.4s infinite; flex: none; }
@keyframes pulse { 70% { box-shadow: 0 0 0 8px rgba(232,132,60,0); } 100% { box-shadow: 0 0 0 0 rgba(232,132,60,0); } }

/* ---------- statement (scroll-lit) ---------- */
.statement { padding: clamp(120px, 16vw, 220px) 0; }
.statement [data-lit] {
  font-family: var(--serif); font-size: clamp(34px, 4.4vw, 66px); line-height: 1.12; letter-spacing: -.01em; margin: 0; max-width: 18em;
}
.statement .lw { color: var(--ink-faint); transition: color .5s var(--ease); }
.statement .lw.on { color: var(--ink); }
.statement .lw.em.on { color: var(--ember); font-style: italic; }
.statement .lw.em { font-style: italic; }
.statement .sig { margin-top: 48px; }

/* ---------- pillars (pinned) ---------- */
.pillars-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 96px); }
.stage { position: sticky; top: 0; height: 100vh; display: flex; align-items: center; }
.stage-inner { position: relative; width: 100%; aspect-ratio: 4 / 5; max-height: 78vh; }
.stage-inner::before { content: ""; position: absolute; inset: 12%; border-radius: 50%; background: radial-gradient(circle, rgba(232,132,60,.16), transparent 70%); }
.stage video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; mix-blend-mode: lighten; opacity: 0; transform: scale(1.04); transition: opacity 1s var(--ease), transform 1.4s var(--ease-out);
  -webkit-mask-image: radial-gradient(closest-side, #000 72%, transparent); mask-image: radial-gradient(closest-side, #000 72%, transparent); }
.stage video.on { opacity: 1; transform: none; }
.stage-index { position: absolute; left: 0; bottom: 0; display: flex; gap: 18px; list-style: none; margin: 0; padding: 0; }
.stage-index li { font-family: var(--mono); font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-faint); transition: color .4s; }
.stage-index li.on { color: var(--ember); }
.pillar { min-height: 92vh; display: flex; flex-direction: column; justify-content: center; padding: 10vh 0; }
.pillar .kicker { font-family: var(--mono); font-size: 11px; letter-spacing: .28em; text-transform: uppercase; color: var(--ember); margin-bottom: 22px; }
.pillar .h3 { font-size: clamp(40px, 4.6vw, 68px); line-height: .98; }
.pillar p { color: var(--ink-dim); font-size: 18px; max-width: 30em; margin: 24px 0 0; }
.pillar .tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 32px; }
.pillar .tags span { font-family: var(--mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; padding: 9px 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); }
.pillar-media { display: none; }
.pillars-intro { padding-top: clamp(110px, 13vw, 190px); }

/* ---------- process ---------- */
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); counter-reset: step; position: relative; }
.steps::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: var(--line); }
.steps::after { content: ""; position: absolute; top: 0; left: 0; height: 1px; width: 100%; background: var(--ember); transform: scaleX(0); transform-origin: left; transition: transform 2.2s var(--ease-out) .2s; }
.steps.is-in::after { transform: scaleX(1); }
.steps li { position: relative; padding: 40px 32px 8px 0; counter-increment: step; }
.steps li + li { padding-left: 32px; }
.steps li::before { content: counter(step, decimal-leading-zero); display: block; font-family: var(--serif); font-style: italic; font-size: 64px; line-height: 1; color: var(--ember); margin-bottom: 28px; }
.steps h3 { font-family: var(--sans); font-weight: 500; font-size: 20px; margin: 0 0 12px; }
.steps p { margin: 0; color: var(--ink-dim); font-size: 15.5px; }

/* ---------- protocol document (signature) ---------- */
.doc {
  background: var(--paper); color: var(--paper-ink); border-radius: 8px; overflow: hidden;
  box-shadow: 0 1px 0 rgba(255,255,255,.5) inset, 0 60px 120px -40px rgba(0,0,0,.75), 0 18px 36px -18px rgba(0,0,0,.5);
  transform: perspective(1600px) rotateX(6deg) translateY(40px); transform-origin: 50% 0; opacity: 0;
  transition: transform 1.4s var(--ease-out), opacity 1s var(--ease);
}
.doc.is-in { transform: none; opacity: 1; }
.doc-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 24px; border-bottom: 1px solid var(--paper-line); background: var(--paper-2); font-family: var(--mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--paper-dim); }
.doc-bar b { color: var(--paper-ink); font-weight: 400; }
.doc-bar .dots { display: flex; gap: 6px; margin-right: 14px; }
.doc-bar .dots i { width: 9px; height: 9px; border-radius: 50%; background: rgba(28,30,33,.15); }
.doc-bar > span:first-child { display: flex; align-items: center; }
.doc-tabs { display: flex; gap: 4px; padding: 0 16px; border-bottom: 1px solid var(--paper-line); overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.doc-tab { position: relative; appearance: none; background: none; border: 0; cursor: pointer; font: 500 14px/1 var(--sans); color: var(--paper-dim); padding: 18px 14px 16px; border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; border-radius: 6px 6px 0 0; transition: color .3s, border-color .3s, background .3s; }
.doc-tab:hover { color: var(--paper-ink); background: rgba(28,30,33,.05); }
.doc-tab:not(.seen) { padding-right: 26px; }
.doc-tab:not(.seen)::before { content: ""; position: absolute; right: 10px; top: 50%; width: 6px; height: 6px; margin-top: -4px; border-radius: 50%; background: var(--ember); box-shadow: 0 0 0 0 rgba(232,132,60,.6); animation: pulse 2.4s infinite; }
.doc-tab::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; background: var(--ember-deep); transform: scaleX(0); transform-origin: left; }
.doc.is-auto .doc-tab[aria-selected="true"] { border-bottom-color: rgba(181,96,42,.2); }
.doc.is-auto .doc-tab[aria-selected="true"]::after { animation: tabfill var(--tab-ms, 7000ms) linear forwards; }
.doc.is-auto:hover .doc-tab[aria-selected="true"]::after, .doc.is-auto:focus-within .doc-tab[aria-selected="true"]::after { animation-play-state: paused; }
@keyframes tabfill { to { transform: scaleX(1); } }
.doc-hint { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; font-size: 14.5px; color: var(--ink-dim); }
.doc-hint b { color: var(--ink); font-weight: 500; }
.ctl { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ctl-k { font-family: var(--mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--paper-dim); }
@media (max-width: 760px) { .doc-tabs { -webkit-mask-image: linear-gradient(90deg, #000 82%, transparent); mask-image: linear-gradient(90deg, #000 82%, transparent); padding-right: 40px; } }
.doc-tab[aria-selected="true"] { color: var(--paper-ink); border-bottom-color: var(--ember-deep); }
.doc-tab:focus-visible { outline-color: var(--ember-deep); outline-offset: -4px; }
.doc-panel { display: grid; grid-template-columns: minmax(0, 1fr) 300px; }
.doc-panel[hidden] { display: none; }
.doc-main { padding: 32px 28px 36px; min-width: 0; }
.doc-note { border-left: 1px solid var(--paper-line); padding: 32px 28px; background: rgba(232,132,60,.08); }
.doc-note .who { font-family: var(--mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--ember-deep); margin-bottom: 14px; display: flex; align-items: center; gap: 10px; }
.doc-note .who::before { content: ""; width: 22px; height: 22px; border-radius: 50%; background: var(--ember-deep) url("../assets/img/hero-sm.jpg") center 20% / cover; }
.doc-note p { font-family: var(--serif); font-size: 24px; line-height: 1.22; margin: 0; }
.doc-title { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 18px; }
.doc-title h3 { font-family: var(--serif); font-weight: 400; font-size: 34px; margin: 0; }
.doc-title span { font-family: var(--mono); font-size: 10.5px; color: var(--paper-dim); text-transform: uppercase; letter-spacing: .12em; }
.sheet { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.sheet th { font-family: var(--mono); font-weight: 400; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--paper-dim); text-align: left; padding: 10px 12px 10px 0; border-bottom: 1px solid var(--paper-ink); }
.sheet td { padding: 13px 12px 13px 0; border-bottom: 1px solid var(--paper-line); vertical-align: top; }
.sheet tbody tr { transition: background .25s; }
.sheet tbody tr:hover { background: rgba(232,132,60,.07); }
.sheet td.num { font-family: var(--mono); font-size: 12.5px; white-space: nowrap; }
.sheet td.note { color: var(--paper-dim); font-size: 13.5px; }
.sheet-scroll { overflow-x: auto; }
.macros { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--paper-line); border-radius: 4px; margin-bottom: 28px; }
.macros div { padding: 16px; }
.macros div + div { border-left: 1px solid var(--paper-line); }
.macros span { display: block; font-family: var(--mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--paper-dim); }
.macros b { font-family: var(--serif); font-weight: 400; font-size: 38px; line-height: 1.1; }
.macros small { font-family: var(--mono); font-size: 12px; color: var(--paper-dim); margin-left: 3px; }
.sub-h { font-family: var(--mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--paper-dim); margin: 28px 0 8px; }
.pill { display: inline-block; font-family: var(--mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; padding: 4px 8px; border-radius: 3px; background: rgba(28,30,33,.08); }
.pill--yes { background: rgba(181,96,42,.14); color: var(--ember-deep); }
.rhythm { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--paper-ink); }
.rhythm > div { padding: 18px 18px 8px 0; }
.rhythm > div + div { padding-left: 18px; border-left: 1px solid var(--paper-line); }
.rhythm h4 { font-family: var(--serif); font-weight: 400; font-size: 28px; margin: 0 0 10px; }
.rhythm ul { margin: 0; padding: 0; list-style: none; }
.rhythm li { padding: 8px 0; border-bottom: 1px solid var(--paper-line); font-size: 14.5px; }
.rhythm li:last-child { border-bottom: 0; }
.doc-foot { margin-top: 22px; font-family: var(--mono); font-size: 10.5px; letter-spacing: .08em; color: var(--ink-dim); display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }

.delivery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: clamp(64px, 8vw, 104px); border-top: 1px solid var(--line); }
.delivery div { padding: 32px 32px 0 0; }
.delivery div + div { padding-left: 32px; border-left: 1px solid var(--line); }
.delivery h3 { font-family: var(--serif); font-weight: 400; font-size: 32px; margin: 0 0 10px; }
.delivery p { margin: 0; color: var(--ink-dim); font-size: 15.5px; }
.delivery .k { font-family: var(--mono); font-size: 10.5px; color: var(--ember); letter-spacing: .2em; text-transform: uppercase; margin-bottom: 18px; display: block; }

/* real client documents */
.doc-panel--full { grid-template-columns: 1fr; }
.doc-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.seg { display: inline-flex; padding: 3px; border-radius: 999px; background: rgba(28,30,33,.07); }
.seg button { appearance: none; border: 0; background: none; cursor: pointer; font: 500 13px/1 var(--sans); color: var(--paper-dim); padding: 10px 16px; border-radius: 999px; transition: background .3s, color .3s; }
.seg button[aria-pressed="true"] { background: var(--paper-ink); color: var(--paper); }
.day-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.day-pills button { appearance: none; cursor: pointer; font: 400 12.5px/1 var(--sans); color: var(--paper-ink); background: transparent; border: 1px solid var(--paper-line); padding: 9px 13px; border-radius: 999px; transition: border-color .25s, background .25s; }
.day-pills button:hover { border-color: rgba(28,30,33,.35); }
.day-pills button[aria-pressed="true"] { border-color: var(--ember-deep); background: rgba(232,132,60,.14); }
.seg button:focus-visible, .day-pills button:focus-visible { outline-color: var(--ember-deep); }
.split-blurb { font-size: 14px; color: var(--paper-dim); margin: 0 0 22px; max-width: 62em; }
.warmup { font-family: var(--mono); font-size: 11px; letter-spacing: .06em; color: var(--paper-dim); margin: -8px 0 14px; }
.sheet--log th.wk, .sheet--log td.wk { text-align: center; width: 52px; padding-right: 0; }
.sheet--log td.wk { font-family: var(--mono); font-size: 12px; }
.sheet--log td.wk.empty::after { content: ""; display: block; margin: 0 auto; width: 34px; height: 18px; border-radius: 3px; background: rgba(28,30,33,.06); }
.sheet--log td.wk.seed { color: var(--ember-deep); font-weight: 700; }
.sheet--log tr.optional td:first-child::after { content: "Optional"; margin-left: 8px; font-family: var(--mono); font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; padding: 3px 6px; border-radius: 3px; background: rgba(181,96,42,.14); color: var(--ember-deep); white-space: nowrap; }
.sheet--log tr.is-lead td:first-child { font-weight: 500; }
.sheet-foot { font-size: 12.5px; color: var(--paper-dim); margin: 16px 0 0; }
.spark { width: 100%; height: auto; display: block; margin: 8px 0 18px; overflow: visible; }
.spark .grid { stroke: rgba(28,30,33,.1); stroke-width: 1; }
.spark .area { fill: rgba(232,132,60,.14); }
.spark .line { fill: none; stroke: var(--ember-deep); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.spark .pt { fill: var(--paper); stroke: var(--ember-deep); stroke-width: 2; }
.spark text { font-family: var(--mono); font-size: 10px; fill: var(--paper-dim); }
.spark text.v { fill: var(--paper-ink); font-size: 11px; }
.doc-note .spark text.v { font-size: 12px; }
.check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 40px; }
.check-sec h4 { font-family: var(--serif); font-weight: 400; font-size: 26px; margin: 0 0 8px; padding-bottom: 8px; border-bottom: 1px solid var(--paper-ink); }
.check-sec dl { margin: 0; }
.check-sec dl > div { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 14px; padding: 9px 0; border-bottom: 1px solid var(--paper-line); font-size: 13.5px; }
.check-sec dt { color: var(--paper-ink); }
.check-sec dd { margin: 0; color: #9A958C; font-style: italic; background: rgba(232,132,60,.07); padding: 2px 8px; border-radius: 3px; align-self: start; }
.check-sec dd.rate { font-style: normal; font-family: var(--mono); font-size: 11.5px; color: var(--paper-ink); display: flex; justify-content: space-between; border: 1px solid var(--paper-line); background: var(--paper); }
.check-sec dd.rate i { font-style: normal; color: var(--paper-dim); }
.check-sec--wide { grid-column: 1 / -1; }
.check-sec--wide dl { display: grid; grid-template-columns: 1fr 1fr; column-gap: 40px; }
.charts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px; }
.charts figure { margin: 0; border: 1px solid var(--paper-line); border-radius: 4px; padding: 16px 16px 4px; }
.charts figcaption { font-family: var(--mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--paper-dim); display: flex; justify-content: space-between; }
.charts figcaption b { color: var(--paper-ink); font-weight: 400; letter-spacing: .04em; }
.rules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; }
.rules > div { padding: 18px 0; border-top: 1px solid var(--paper-line); }
.rules h4 { font-family: var(--serif); font-weight: 400; font-size: 24px; margin: 0 0 6px; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.rules h4 span { font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--ember-deep); }
.rules p { margin: 0; font-size: 14.5px; color: #4E4B46; }
@media (max-width: 760px) {
  .check-grid, .rules, .check-sec--wide dl { grid-template-columns: 1fr; }
  .charts { grid-template-columns: 1fr; }
  .check-sec dl > div { grid-template-columns: 1fr; gap: 6px; }
  .sheet--log { min-width: 720px; }
}

/* ---------- nutrition ---------- */
.nutri-head { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(40px, 5vw, 80px); align-items: stretch; }
.nutri-photo { position: relative; margin: 0; }
.nutri-photo img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; object-position: 50% 40%; border-radius: 6px; filter: saturate(.85) contrast(1.03); }
.nutri-photo .cap { position: absolute; left: 18px; top: 18px; }
.nutri-intro { display: flex; flex-direction: column; justify-content: center; }
.approaches { margin-top: 44px; }
.approaches > .mono { color: var(--ember); margin: 0 0 16px; }
.approach-note { margin: 18px 0 0; font-size: 14.5px; color: var(--ink-dim); max-width: 36em; }
.nutri-block { margin-top: clamp(96px, 11vw, 150px); }
.nutri-sub { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: end; margin-bottom: 48px; }
.nutri-sub p { margin: 0; color: var(--ink-dim); font-size: 17px; max-width: 32em; }
.diet-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.diet-grid li { padding: 22px 20px 24px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background .4s var(--ease); }
.diet-grid li:hover { background: rgba(232,132,60,.05); }
.diet-grid .k { display: block; font-family: var(--mono); font-size: 9.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--ember); margin-bottom: 14px; }
.diet-grid h4 { font-family: var(--serif); font-weight: 400; font-size: 23px; line-height: 1.05; margin: 0 0 10px; }
.diet-grid p { margin: 0; font-size: 13.5px; color: var(--ink-dim); }
.musts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 64px; counter-reset: must; }
.musts li { position: relative; display: grid; grid-template-columns: 56px minmax(0, 1fr); column-gap: 8px; padding: 26px 0; border-top: 1px solid var(--line); counter-increment: must; }
.musts li::before { content: counter(must, decimal-leading-zero); grid-row: 1 / span 3; font-family: var(--serif); font-style: italic; font-size: 34px; line-height: 1; color: var(--ember); }
.musts b { font-weight: 500; font-size: 18px; }
.musts p { margin: 6px 0 10px; color: var(--ink-dim); font-size: 15.5px; }
.musts .src { font-family: var(--mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-faint); }
.adapt-grid { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.signals .mono { color: var(--ember); margin: 0 0 14px; }
.signals ul { list-style: none; margin: 0 0 36px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.signals li { font-size: 14px; padding: 9px 14px; border: 1px solid var(--line); border-radius: 999px; }
.phase { margin: 0; background: var(--raised); border: 1px solid var(--line); border-radius: 10px; padding: 24px 24px 20px; }
.phase figcaption { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.phase svg { width: 100%; height: auto; overflow: visible; }
.ph-labels text { font-family: var(--serif); font-size: 26px; fill: var(--ink); text-anchor: middle; }
.ph-div line { stroke: var(--line); stroke-dasharray: 3 5; }
.ph-area { fill: rgba(232,132,60,.14); }
.ph-maint { stroke: var(--ink-dim); stroke-width: 1; stroke-dasharray: 6 6; }
.ph-maint-t { font-family: var(--mono); font-size: 13px; letter-spacing: .1em; text-transform: uppercase; fill: var(--ink-dim); }
.ph-line { fill: none; stroke: var(--ember); stroke-width: 3.5; stroke-linejoin: round; stroke-dasharray: 2400; stroke-dashoffset: 2400; transition: stroke-dashoffset 2.4s var(--ease-out) .3s; }
.phase.is-in .ph-line { stroke-dashoffset: 0; }
.ph-weeks text { font-family: var(--mono); font-size: 13px; fill: var(--ink-faint); }
.phase-note { margin: 16px 0 0; font-size: 13.5px; color: var(--ink-dim); }
.nutri-foot { margin-top: 72px; padding-top: 28px; border-top: 1px solid var(--line); }
.nutri-foot .disclaimer { max-width: 52em; }
.sources { margin: 0; display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: baseline; }
.sources .mono { color: var(--ember); margin-right: 4px; }
.sources a { font-size: 13.5px; color: var(--ink-dim); text-decoration: underline; text-decoration-color: rgba(236,231,222,.25); text-underline-offset: 3px; }
.sources a:hover { color: var(--ink); text-decoration-color: var(--ember); }
.disclaimer { margin: 0; font-size: 13.5px; color: var(--ink-dim); }
@media (prefers-reduced-motion: reduce) { .ph-line { stroke-dashoffset: 0; transition: none; } }
@media (max-width: 1180px) { .diet-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) {
  .nutri-head, .nutri-sub, .adapt-grid, .nutri-foot, .musts { grid-template-columns: 1fr; }
  .nutri-sub { gap: 20px; }
  .nutri-photo { max-width: 480px; }
  .nutri-photo img { height: auto; min-height: 0; aspect-ratio: 4 / 5; }
}
@media (max-width: 560px) { .diet-grid { grid-template-columns: 1fr; } .phase { padding: 18px 14px 14px; overflow-x: auto; } .phase svg { min-width: 620px; } }

/* ---------- about ---------- */
.about-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 7vw, 112px); align-items: start; }
.about-media { position: relative; }
.about-media .main { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 30%; border-radius: 6px; filter: saturate(.8) contrast(1.04); }
.about-media .inset { position: absolute; right: -28px; bottom: -48px; width: 44%; border-radius: 6px; overflow: hidden; border: 6px solid var(--raised); box-shadow: 0 30px 60px -20px rgba(0,0,0,.6); }
.about-media .inset video { width: 100%; aspect-ratio: 9 / 13; object-fit: cover; filter: saturate(.85); }
.about-media .cap { position: absolute; left: 18px; top: 18px; }
.chip-tag { font-family: var(--mono); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; background: rgba(28,30,33,.8); color: var(--ink); padding: 8px 12px; border-radius: 3px; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); display: inline-flex; gap: 8px; align-items: center; }
.prose p { margin: 0 0 1.2em; color: var(--ink-dim); max-width: 34em; }
.prose p:first-child { color: var(--ink); font-size: 20px; line-height: 1.5; }
.creds { margin-top: 48px; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); }
.creds div { padding: 28px 28px 0 0; }
.creds div + div { padding-left: 28px; border-left: 1px solid var(--line); }
.creds b { display: block; font-family: var(--serif); font-weight: 400; font-size: 56px; line-height: 1; margin-bottom: 12px; }
.creds b em { color: var(--ember); }
.creds p { margin: 0; color: var(--ink-dim); font-size: 15px; }

/* ---------- flagship (marble to mirror) ---------- */
.flagship { position: relative; overflow: hidden; background: #141518; }
.flagship-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(40px, 6vw, 96px); align-items: center; }
.mirror { position: relative; aspect-ratio: 9 / 14; max-height: 86vh; margin: 0 auto; width: 100%; }
.mirror::before { content: ""; position: absolute; inset: 10% 0; border-radius: 50%; background: radial-gradient(circle, rgba(232,132,60,.22), transparent 68%); }
.mirror img { position: relative; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; border-radius: 6px; filter: saturate(.82) contrast(1.04); }
.mirror video { position: relative; width: 100%; height: 100%; object-fit: cover; mix-blend-mode: lighten;
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 12%, #000 80%, transparent); mask-image: linear-gradient(to bottom, transparent, #000 12%, #000 80%, transparent); }
.targets { display: grid; grid-template-columns: 1fr 1fr; margin-top: 48px; border-top: 1px solid var(--line); }
.targets div { padding: 26px 24px 26px 0; border-bottom: 1px solid var(--line); }
.targets div:nth-child(even) { padding-left: 24px; border-left: 1px solid var(--line); }
.targets b { display: block; font-family: var(--serif); font-weight: 400; font-size: clamp(40px, 4vw, 60px); line-height: 1; }
.targets span { display: block; margin-top: 10px; font-size: 14.5px; color: var(--ink-dim); }
.targets-note { font-family: var(--mono); font-size: 10.5px; letter-spacing: .08em; color: var(--ink-faint); margin: 16px 0 0; }
.flagship .hero-ctas { margin-top: 40px; }

/* ---------- packages ---------- */
.plans { display: grid; grid-template-columns: 1fr 1fr 1.18fr; gap: 16px; align-items: stretch; }
.plan { position: relative; display: flex; flex-direction: column; background: var(--raised); border: 1px solid var(--line); border-radius: 10px; padding: 36px 32px; transition: border-color .4s var(--ease), transform .6s var(--ease-out); }
.plan:hover { border-color: rgba(236,231,222,.22); transform: translateY(-4px); }
.plan--feature { background: linear-gradient(180deg, #2B2521 0%, #211F1E 100%); border-color: rgba(232,132,60,.45); overflow: hidden; }
.plan--feature:hover { border-color: var(--ember); }
.plan--feature .bg-mark { position: absolute; right: -80px; top: -80px; width: 300px; height: 300px; opacity: .07; pointer-events: none; }
.plan--feature .bg-mark { color: var(--ember); }
.plan-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.plan-kind { font-family: var(--mono); font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-dim); margin: 0; }
.badge { font-family: var(--mono); font-size: 9.5px; letter-spacing: .2em; text-transform: uppercase; background: var(--ember); color: var(--graphite); padding: 6px 10px; border-radius: 3px; }
.plan h3 { font-family: var(--serif); font-weight: 400; font-size: 40px; line-height: 1; margin: 22px 0 12px; }
.plan--feature h3 { font-style: italic; }
.plan-for { color: var(--ink-dim); font-size: 15px; margin: 0 0 30px; min-height: 3.2em; }
.price { padding: 24px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-bottom: 26px; }
.price b { font-family: var(--serif); font-weight: 400; font-size: 64px; line-height: 1; letter-spacing: -.02em; }
.price span { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; color: var(--ink-dim); margin-left: 8px; }
.price--term b { font-size: 46px; }
.price small { display: block; font-family: var(--mono); font-size: 10.5px; letter-spacing: .08em; color: var(--ink-dim); margin-top: 12px; }
.plan--feature .price small { color: var(--ember); }
.plan ul { list-style: none; margin: 0 0 36px; padding: 0; flex: 1; }
.plan li { position: relative; padding: 9px 0 9px 24px; font-size: 15px; }
.plan li::before { content: ""; position: absolute; left: 0; top: 19px; width: 12px; height: 1px; background: var(--ember); }
.plan li.inherit { color: var(--ink-dim); font-family: var(--mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; padding-left: 0; }
.plan li.inherit::before { display: none; }
.plan .btn { justify-content: center; }
.plans-note { margin-top: 32px; color: var(--ink-dim); font-size: 14.5px; text-align: center; }

/* ---------- quote ---------- */
.quote { position: relative; padding: clamp(120px, 16vw, 220px) 0; text-align: center; overflow: hidden; }
.quote .big-mark { position: absolute; left: 50%; top: 50%; width: min(90vw, 760px); height: min(90vw, 760px); transform: translate(-50%, -50%); opacity: .05; pointer-events: none; }
.quote blockquote { position: relative; margin: 0 auto; max-width: 15em; font-family: var(--serif); font-size: clamp(42px, 6vw, 96px); line-height: 1; letter-spacing: -.015em; }
.quote blockquote em { color: var(--ember); }
.quote cite { position: relative; display: block; margin-top: 40px; font-style: normal; font-family: var(--mono); font-size: 11px; letter-spacing: .3em; text-transform: uppercase; color: var(--ink-dim); }

/* ---------- faq ---------- */
.faq-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(40px, 6vw, 96px); }
.faq details { border-top: 1px solid var(--line); }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 28px 0; font-family: var(--serif); font-size: 26px; line-height: 1.15; transition: color .3s; }
.faq summary:hover { color: var(--ember); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; flex: none; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--line); background: linear-gradient(var(--ember), var(--ember)) center / 11px 1px no-repeat, linear-gradient(var(--ember), var(--ember)) center / 1px 11px no-repeat; transition: transform .4s var(--ease-out), border-color .3s; }
.faq details[open] summary::after { transform: rotate(45deg); border-color: var(--ember); }
.faq details p { margin: -8px 0 28px; color: var(--ink-dim); max-width: 36em; }

/* ---------- apply ---------- */
.apply-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.apply-aside { position: sticky; top: 120px; }
.apply-aside ol { list-style: none; margin: 44px 0 0; padding: 0; border-top: 1px solid var(--line); }
.apply-aside li { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 12px; padding: 18px 0; border-bottom: 1px solid var(--line); font-size: 15px; color: var(--ink-dim); }
.apply-aside li span { font-family: var(--mono); font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--ember); padding-top: 4px; }
.form { background: var(--graphite); border: 1px solid var(--line); border-radius: 10px; padding: clamp(24px, 4vw, 48px); }
.field { margin-bottom: 28px; }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.label, .form legend { display: block; font-size: 14px; font-weight: 500; margin-bottom: 10px; padding: 0; }
.label .opt, .form legend .opt { font-family: var(--mono); font-size: 10px; font-weight: 400; color: var(--ink-dim); letter-spacing: .12em; margin-left: 6px; text-transform: uppercase; }
.form fieldset { border: 0; margin: 0 0 28px; padding: 0; min-width: 0; }
.input, .select, .textarea { width: 100%; font: 400 16px/1.4 var(--sans); color: var(--ink); background: var(--raised); border: 1px solid var(--line); border-radius: 6px; padding: 15px 16px; transition: border-color .25s, background .25s; }
.textarea { min-height: 120px; resize: vertical; }
.select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2399958D' stroke-width='1.5'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 40px; }
.input::placeholder, .textarea::placeholder { color: #6B6862; }
.input:hover, .select:hover, .textarea:hover { border-color: rgba(236,231,222,.22); }
.input:focus, .select:focus, .textarea:focus { outline: none; border-color: var(--ember); background: #2A2D32; }
.field.has-error .input, .field.has-error .select, .field.has-error .textarea { border-color: #E0664F; }
.field-help { margin: -4px 0 14px; font-size: 13.5px; color: var(--ink-dim); }
.err { display: none; color: #F08A74; font-size: 13.5px; margin-top: 8px; }
.has-error .err { display: block; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { position: relative; }
.chip input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.chip span { display: inline-block; padding: 12px 18px; border: 1px solid var(--line); border-radius: 999px; font-size: 14.5px; color: var(--ink-dim); transition: border-color .25s, color .25s, background .25s; }
.chip input:hover + span { border-color: rgba(236,231,222,.3); color: var(--ink); }
.chip input:checked + span { border-color: var(--ember); color: var(--ink); background: rgba(232,132,60,.12); }
.chip input:focus-visible + span { outline: 2px solid var(--ember); outline-offset: 2px; }
.chips--cards { display: grid; grid-template-columns: 1fr 1fr; }
.chips--cards .chip span { display: block; border-radius: 6px; padding: 15px 16px; }
.chips--cards .chip small { display: block; font-family: var(--mono); font-size: 10.5px; color: var(--ink-dim); margin-top: 4px; }
.form-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 8px; }
.form-foot p { margin: 0; font-size: 13.5px; color: var(--ink-dim); max-width: 26em; }
.form .btn[disabled] { opacity: .6; cursor: progress; }

/* ---------- footer ---------- */
.footer { padding: 32px 0 40px; border-top: 1px solid var(--line-soft); overflow: hidden; }
.footer-top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 40px; align-items: flex-end; }
.footer .big { font-family: var(--serif); font-size: clamp(48px, 8vw, 128px); line-height: .9; margin: 0; }
.footer .big em { color: var(--ember); }
.footer-bottom { margin-top: 0; padding-top: 0; border-top: 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; align-items: center; }
.footer-bottom p, .footer-bottom a { margin: 0; font-family: var(--mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-dim); text-decoration: none; }
.footer-bottom a:hover { color: var(--ink); }
.footer-bottom a.lockup { font-family: var(--sans); text-transform: none; letter-spacing: 0; }

/* ---------- reveal ---------- */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity 1.1s var(--ease), transform 1.2s var(--ease-out); }
.reveal.is-in { opacity: 1; transform: none; }
.stagger > * { opacity: 0; transform: translateY(28px); transition: opacity 1s var(--ease), transform 1.1s var(--ease-out); }
.stagger.is-in > * { opacity: 1; transform: none; }
.stagger.is-in > *:nth-child(2) { transition-delay: .1s; }
.stagger.is-in > *:nth-child(3) { transition-delay: .2s; }
.stagger.is-in > *:nth-child(4) { transition-delay: .3s; }

@media (prefers-reduced-motion: reduce) {
  .reveal, .stagger > *, .hero .fade, .doc { opacity: 1 !important; transform: none !important; animation: none !important; transition: none !important; }
  .w > .i { transform: none !important; transition: none !important; }
  .draw .arc { stroke-dashoffset: 0; animation: none; }
  .draw .core, .draw .glow { opacity: 1; transform: none; animation: none; }
  .dot, .doc-tab::before { animation: none !important; }
  .statement .lw { color: var(--ink); }
  .statement .lw.em { color: var(--ember); }
  .hero-bg video { display: none; }
}

/* ---------- responsive ---------- */
@media (max-width: 1080px) {
  .plans { grid-template-columns: 1fr; max-width: 580px; margin: 0 auto; }
  .plan--feature { order: -1; }
  .doc-panel { grid-template-columns: 1fr; }
  .doc-note { border-left: 0; border-top: 1px solid var(--paper-line); }
  .steps { grid-template-columns: 1fr 1fr; row-gap: 48px; }
  .steps li:nth-child(3) { padding-left: 0; }
}
@media (max-width: 900px) {
    .hero { justify-content: flex-end; }
  .hero-bg { background-image: url("../assets/video/coach-hero-tall.jpg"); }
  .hero-bg video { inset: 0; width: 100%; aspect-ratio: auto; -webkit-mask-image: none; mask-image: none; }
  .hero-bg::after { background: linear-gradient(to bottom, rgba(28,30,33,.6) 0%, rgba(28,30,33,.3) 14%, rgba(28,30,33,.72) 34%, rgba(28,30,33,.9) 58%, var(--graphite) 88%); }
  .rail ul { grid-template-columns: 1fr 1fr; }
  .rail li:nth-child(3) { padding-left: 0; border-left: 0; }
  .rail li:nth-child(n+3) { border-top: 1px solid var(--line); }
  .section-head--split, .about-grid, .faq-grid, .apply-grid, .flagship-grid { grid-template-columns: 1fr; }
  .pillars-grid { grid-template-columns: 1fr; }
  .stage { display: none; }
  .pillar { min-height: 0; padding: 56px 0; border-top: 1px solid var(--line); }
  .pillar-media { display: block; position: relative; aspect-ratio: 16 / 11; margin-bottom: 28px; }
  .pillar-media video { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: lighten; -webkit-mask-image: radial-gradient(closest-side, #000 70%, transparent); mask-image: radial-gradient(closest-side, #000 70%, transparent); }
  .about-media .inset { right: 12px; bottom: -32px; }
  .apply-aside { position: static; }
  .delivery { grid-template-columns: 1fr; }
  .delivery div, .delivery div + div { padding: 28px 0; border-left: 0; }
  .delivery div + div { border-top: 1px solid var(--line); }
  .mirror { max-width: 420px; }
}
@media (max-width: 600px) {
  body { font-size: 16px; }
  .steps { grid-template-columns: 1fr; }
  .steps li, .steps li + li { padding-left: 0; }
  .macros { grid-template-columns: 1fr 1fr; }
  .macros div:nth-child(3) { border-left: 0; }
  .macros div:nth-child(n+3) { border-top: 1px solid var(--paper-line); }
  .rhythm { grid-template-columns: 1fr; }
  .rhythm > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--paper-line); }
  .doc-main, .doc-note { padding-left: 18px; padding-right: 18px; }
  .sheet:has(thead) { min-width: 560px; }
  .row2, .chips--cards, .creds, .targets { grid-template-columns: 1fr; }
  .row2 { row-gap: 0; }
  .creds div + div { padding-left: 0; border-left: 0; }
  .targets div:nth-child(even) { padding-left: 0; border-left: 0; }
  .hero-ctas .btn { flex: 1 1 auto; justify-content: center; }
  .rail li { font-size: 9.5px; letter-spacing: .14em; }
  .faq summary { font-size: 22px; }
}
