/* One action, one idea. The frame holds still; the athlete supplies the motion. */
:root { --film-ink:#151815; --film-stone:#dddcd2; --film-olive:#a5ad91; }
body { background:var(--film-stone); }
[hidden] { display:none !important; }
.skip-link { position:fixed; z-index:100; top:12px; left:16px; padding:12px 18px; background:var(--film-stone); color:var(--film-ink); transform:translateY(-160%); }
.skip-link:focus { transform:none; }
:focus-visible { outline:2px solid var(--film-olive); outline-offset:6px; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.site-header { position:relative; background:var(--film-ink); border-bottom:1px solid #ffffff16; backdrop-filter:none; }
.brand-copy small { color:var(--film-olive); }
.film-scene { position:relative; isolation:isolate; display:flex; align-items:center; min-height:680px; height:88svh; max-height:900px; overflow:hidden; background:var(--film-ink); color:#f3f2eb; scroll-margin-top:0; }
.film-hero { height:calc(100svh - 74px); min-height:690px; }
.film-media { position:absolute; z-index:-2; top:0; right:0; bottom:0; width:77%; overflow:hidden; background:var(--film-ink); }
.film-poster,.film-video { position:absolute; width:100%; height:100%; inset:0; object-fit:cover; object-position:56% center; }
.film-video { opacity:0; transition:opacity .65s ease; }
.film-scene.is-playing .film-video { opacity:1; }
.film-scene::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,#151815 2%,#151815f7 24%,#151815c2 38%,#15181522 65%,#15181505 100%),linear-gradient(0deg,#151815cf,transparent 28%,transparent 82%,#15181535); pointer-events:none; }
.film-content { width:min(1320px,calc(100% - 112px)); margin:0 auto; padding:80px 0 110px; }
.film-content .eyebrow { color:var(--film-olive); font:600 .7rem/1.4 "Segoe UI",sans-serif; text-transform:uppercase; letter-spacing:.2em; margin-bottom:30px; }
.film-context { display:block; font:500 .74rem/1.5 "Segoe UI",sans-serif; letter-spacing:.07em; margin-bottom:18px; color:#e4e4da; }
.film-content h1,.film-content h2 { margin:0; max-width:12ch; font-family:"Segoe UI",Arial,sans-serif; font-size:clamp(3.4rem,5.5vw,5.6rem); font-weight:550; letter-spacing:-.055em; line-height:1.04; text-transform:none; }
.film-content h2 { font-size:clamp(3rem,4.6vw,4.9rem); max-width:15ch; }
.film-content em { color:var(--film-olive); font-style:normal; }
.film-copy { max-width:35ch; margin:27px 0 30px; font-size:1rem; line-height:1.75; color:#e0e1d7; text-wrap:pretty; }
.film-content .hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:20px 24px; }
.film-content .button.primary { background:var(--film-stone); color:var(--film-ink); border:1px solid var(--film-stone); min-height:50px; font-size:.75rem; box-shadow:none; }
.film-content .button.primary:hover { background:#fff; transform:none; }
.film-text-link { display:inline-flex; align-items:center; gap:24px; min-height:46px; color:#f3f2eb; font-size:.84rem; font-weight:500; text-decoration:none; border-bottom:1px solid #f3f2eb70; }
.film-text-link:hover { color:var(--film-olive); border-color:var(--film-olive); }
.film-text-link span { font-size:1.2rem; }
.film-footer { position:absolute; bottom:32px; left:56px; right:210px; display:flex; justify-content:space-between; gap:20px; border-top:1px solid #ffffff38; padding-top:17px; color:#e0e1d7; font-size:.63rem; letter-spacing:.13em; text-transform:uppercase; }
.film-index { display:grid; grid-template-columns:repeat(4,1fr); gap:0; padding:0 56px; width:100%; background:#20261f; }
.film-index a { display:flex; align-items:center; gap:16px; padding:23px 0; min-height:68px; color:#eeeee4; text-decoration:none; font-size:.75rem; letter-spacing:.06em; }
.film-index a:hover { color:var(--film-olive); }
.film-index span { color:var(--film-olive); font-size:.65rem; }
.motion-control { position:fixed; z-index:30; right:22px; bottom:22px; }
.motion-control button { display:flex; align-items:center; gap:16px; min-height:44px; padding:10px 16px; border:1px solid #ffffff70; border-radius:2px; background:#151815ed; color:#f3f2eb; font:500 .73rem/1.4 "Segoe UI",sans-serif; cursor:pointer; box-shadow:0 2px 16px #0003; }
.motion-symbol { width:13px; text-align:center; }
.training-philosophy { display:grid; grid-template-columns:1.1fr 1fr; gap:80px; padding:100px max(56px,calc((100% - 1320px)/2)); background:#20261f; color:#efefe6; }
.training-philosophy .eyebrow { color:var(--film-olive); }
.training-philosophy h2 { font:500 clamp(2rem,3.1vw,3.2rem)/1.12 "Segoe UI",sans-serif; text-transform:none; letter-spacing:-.04em; }
.training-philosophy p { max-width:48ch; line-height:1.85; color:#d8dace; }
.training-philosophy .training-principle { margin-top:26px; font-size:.73rem; letter-spacing:.12em; text-transform:uppercase; color:var(--film-olive); }
.choice-section { padding-top:100px; }
.choice-section .section-heading h2 { max-width:21ch; text-transform:none; letter-spacing:-.035em; }
.science-section { background:#20261f; }
.science-section .eyebrow,.research-details summary,.research-grid a { color:#c2caac; }
.research-details,.research-grid article { background:var(--film-ink); }
.coach-card { box-shadow:none; }
.final-cta { min-height:380px; background:var(--film-ink); }
.final-copy h2 { text-transform:none; letter-spacing:-.035em; }
footer { background:var(--film-ink); }
@media (min-width:1600px) {
  .film-media { width:73%; }
  .film-content { width:calc(100% - 160px); }
  .film-footer { left:80px; right:230px; }
}
@media (min-width:761px) and (max-width:1100px) {
  .film-content { width:calc(100% - 64px); }
  .film-content h1 { font-size:3.8rem; }
  .film-content h2 { font-size:3.2rem; }
  .film-copy { max-width:30ch; }
  .film-footer { left:32px; right:190px; }
  .film-index { padding:0 32px; }
  .training-philosophy { gap:40px; padding:70px 32px; }
}
@media (max-width:760px) {
  .site-header { padding:17px 22px; gap:16px; }
  .brand { font-size:.9rem; }
  .brand img { width:32px; height:32px; }
  .site-header nav { font-size:.75rem; gap:12px 18px; }
  .film-scene,.film-hero { display:block; height:auto; min-height:0; max-height:none; padding-top:54.3478%; }
  .film-media { inset:0 0 auto; width:100%; aspect-ratio:736/400; }
  .film-poster,.film-video { object-fit:cover; object-position:center; }
  .film-scene::before { display:none; }
  .film-media::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,#151815,transparent 27%); pointer-events:none; }
  .film-content { width:auto; margin:0; padding:22px 24px 34px; }
  .film-content .eyebrow { margin-bottom:18px; font-size:.63rem; }
  .film-context { font-size:.65rem; margin-bottom:14px; }
  .film-content h1,.film-content h2 { font-size:clamp(2.55rem,9.6vw,4rem); max-width:18ch; }
  .film-copy { max-width:39ch; font-size:.95rem; margin:24px 0; }
  .film-content .hero-actions { gap:12px 22px; }
  .film-content .button { width:auto; padding:15px 23px; }
  .film-text-link { font-size:.78rem; }
  .film-footer { position:relative; inset:auto; margin:0 24px; padding:17px 0 26px; font-size:.56rem; gap:12px; }
  .film-footer span:last-child { max-width:54%; text-align:right; }
  .film-index { padding:0 24px; grid-template-columns:repeat(2,1fr); }
  .film-index a { font-size:.7rem; padding:15px 0; min-height:52px; }
  .motion-control { right:12px; bottom:12px; }
  .motion-control button { font-size:.7rem; padding:10px 12px; }
  .training-philosophy { grid-template-columns:1fr; gap:18px; padding:64px 24px; }
  .choice-section { padding-top:64px; }
  .final-cta { min-height:340px; }
}
@media (prefers-reduced-motion:reduce) {
  .film-video { transition:none; }
}
@media (min-width:761px) and (max-height:760px) {
  .film-hero { min-height:calc(100svh - 74px); height:auto; }
  .film-hero .film-content { padding-top:24px; padding-bottom:78px; }
  .film-hero .eyebrow { margin-bottom:16px; }
  .film-hero h1 { font-size:clamp(3rem,4.6vw,4rem); }
  .film-hero .film-copy { max-width:40ch; margin:18px 0 22px; line-height:1.6; }
  .film-hero .film-footer { bottom:20px; }
}
