/* Science In Performance — Athlete Stories v98
   Premium layout + contrast hardening. WCAG-minded text contrast and cleaner editorial hierarchy. */
:root{
  --story-max:1360px;
  --story-ink:#15241b;
  --story-muted:#4f5b53;
  --story-paper:#f7f6f0;
  --story-surface:#ffffff;
  --story-soft:#eeece2;
  --story-line:#d8d5c8;
  --story-green:#10261b;
  --story-green-2:#173426;
  --story-gold-light:#f0d171;
  --story-gold-dark:#866816;
  --story-shadow:0 24px 70px rgba(17,31,23,.10);
}
.story-page{background:var(--story-paper);color:var(--story-ink)}
.story-page main{overflow:hidden;background:var(--story-paper)}
.story-wrap{width:min(var(--story-max),calc(100% - 8vw));margin:0 auto}
.story-eyebrow{margin:0;font-family:var(--font-geist-mono),monospace;text-transform:uppercase;letter-spacing:.17em;font-size:.72rem;line-height:1.45;color:var(--story-gold-dark);font-weight:750}
.story-page h1,.story-page h2,.story-page h3{color:var(--story-ink)}

/* Hero */
.story-hero{position:relative;display:grid;grid-template-columns:minmax(0,.92fr) minmax(520px,1.08fr);min-height:680px;background:var(--story-green);color:#fff;border-bottom:1px solid rgba(240,209,113,.28);overflow:hidden}
.story-hero-copy{position:relative;z-index:2;padding:clamp(96px,9vw,138px) 5vw clamp(76px,8vw,112px) max(4vw,calc((100vw - var(--story-max))/2));display:flex;flex-direction:column;justify-content:center}
.story-hero-copy:before{content:"";width:58px;height:2px;background:var(--story-gold-light);margin-bottom:20px}
.story-hero .story-eyebrow{color:var(--story-gold-light)}
.story-hero h1{max-width:720px;margin:18px 0 28px;font-size:clamp(3.35rem,5.7vw,6.6rem);line-height:.94;letter-spacing:-.058em;font-weight:630;color:#fff}
.story-hero h1 span{display:block;color:var(--story-gold-light);font-weight:540}
.story-hero-lead{max-width:650px;margin:0 0 28px;color:#e2e9e4;font-size:clamp(1.05rem,1.25vw,1.28rem);line-height:1.68}
.story-hero-meta{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 32px}
.story-hero-meta span{padding:9px 11px;border:1px solid rgba(240,209,113,.46);background:rgba(255,255,255,.055);color:#f6e5a8;font-family:var(--font-geist-mono),monospace;font-size:.66rem;line-height:1.25;letter-spacing:.08em;text-transform:uppercase}
.story-hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.story-hero-actions a{min-height:50px;padding:0 20px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--story-gold-light);text-decoration:none;font-weight:700;transition:background .2s ease,color .2s ease,border-color .2s ease}
.story-hero-actions .story-primary{background:var(--story-gold-light);color:#172016}
.story-hero-actions .story-primary:hover{background:#f6df95}
.story-hero-actions .story-secondary{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.52);color:#fff}
.story-hero-actions .story-secondary:hover{background:#fff;color:var(--story-green)}
.story-hero-media{position:relative;min-height:680px;overflow:hidden;background:#09170f}
.story-hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 36%;display:block;transform:scale(1.005)}
.story-hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--story-green) 0%,rgba(16,38,27,.54) 12%,rgba(16,38,27,.03) 44%,rgba(16,38,27,.12) 100%)}
.story-hero-caption{position:absolute;z-index:2;right:26px;bottom:24px;max-width:340px;padding:14px 16px;background:rgba(6,17,11,.92);border:1px solid rgba(240,209,113,.42);border-left:3px solid var(--story-gold-light);box-shadow:0 16px 36px rgba(0,0,0,.20)}
.story-hero-caption strong{display:block;margin-bottom:4px;color:#fff;font-size:.9rem;line-height:1.35}
.story-hero-caption span{display:block;color:#dfe7e1;font-size:.78rem;line-height:1.5}

/* Story navigation */
.story-index{background:#fff;border-bottom:1px solid var(--story-line)}
.story-index-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0}
.story-index-label{font-family:var(--font-geist-mono),monospace;text-transform:uppercase;letter-spacing:.15em;font-size:.67rem;color:#58655d;font-weight:700}
.story-index-links{display:flex;gap:8px;flex-wrap:wrap}
.story-index-links a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 14px;border:1px solid #bdb8a8;background:#f9f8f3;color:var(--story-green);text-decoration:none;font-size:.8rem;font-weight:720;transition:.2s ease}
.story-index-links a:hover,.story-index-links a:focus-visible{background:var(--story-green);border-color:var(--story-green);color:#fff}

/* Outcome summary */
.story-proof-band{padding:34px 0;background:var(--story-soft);border-bottom:1px solid var(--story-line)}
.story-proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.story-proof{min-height:170px;padding:30px 30px 28px;background:#fff;border:1px solid var(--story-line);box-shadow:0 10px 26px rgba(18,35,25,.04);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.story-proof:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#b08a32}
.story-proof strong{display:block;color:var(--story-green);font-size:clamp(2.15rem,3.4vw,3.8rem);line-height:1;letter-spacing:-.052em;font-weight:590}
.story-proof span{display:block;margin-top:10px;color:var(--story-gold-dark);font-family:var(--font-geist-mono),monospace;text-transform:uppercase;letter-spacing:.11em;font-size:.68rem;font-weight:750}
.story-proof p{max-width:360px;margin:9px 0 0;color:var(--story-muted);font-size:.91rem;line-height:1.6}

/* Long-form athlete story */
.story-intro{padding:clamp(88px,9vw,132px) 0;background:#fff}
.story-intro-grid{display:grid;grid-template-columns:minmax(290px,.64fr) minmax(0,1.36fr);gap:clamp(50px,7vw,105px);align-items:start}
.story-intro aside{position:sticky;top:140px;padding-top:4px}
.story-intro h2,.story-shift h2,.story-quote-section h2,.story-cta h2{font-size:clamp(2.35rem,4.1vw,4.8rem);line-height:1;letter-spacing:-.05em;margin:14px 0 22px;font-weight:610}
.story-intro aside>p:last-child{max-width:430px;color:var(--story-muted);font-size:.98rem;line-height:1.7}
.story-copy{position:relative;padding:clamp(34px,4vw,58px);background:var(--story-paper);border:1px solid var(--story-line);border-top:3px solid #b08a32;box-shadow:var(--story-shadow);color:var(--story-ink);font-size:clamp(1.08rem,1.35vw,1.3rem);line-height:1.78;letter-spacing:-.008em}
.story-copy:before{content:'“';position:absolute;right:28px;top:16px;color:#d6c487;font:5rem/1 Georgia,serif;opacity:.52}
.story-copy p{margin:0 0 24px;position:relative;z-index:1}
.story-copy p:last-child{margin-bottom:0}
.story-copy p:first-child:first-letter{float:left;padding:9px 11px 0 0;color:var(--story-gold-dark);font-size:4.4rem;line-height:.78;font-weight:620}
.story-copy strong{color:#143d28;font-weight:760}

/* Photography */
.story-gallery{padding:0 0 clamp(88px,9vw,132px);background:#fff}
.story-gallery-grid{display:grid;grid-template-columns:1.22fr .78fr;grid-template-rows:350px 350px;gap:14px}
.story-photo{position:relative;margin:0;overflow:hidden;background:#0c140f;border:1px solid #d3d1c6}
.story-photo:first-child{grid-row:1/3}
.story-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.story-photo:hover img{transform:scale(1.02)}
.story-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(3,10,6,.56) 100%);pointer-events:none}
.story-photo figcaption{position:absolute;z-index:2;left:16px;bottom:15px;max-width:calc(100% - 32px);padding:9px 11px;background:rgba(5,15,9,.94);border-left:3px solid var(--story-gold-light);color:#fff;font-family:var(--font-geist-mono),monospace;font-size:.68rem;line-height:1.35;letter-spacing:.075em;text-transform:uppercase}

/* Coaching shift */
.story-shift{padding:clamp(86px,8.5vw,126px) 0;background:var(--story-soft);border-top:1px solid var(--story-line);border-bottom:1px solid var(--story-line)}
.story-shift-head{max-width:840px;margin-bottom:46px}
.story-shift-head>p:last-child{max-width:760px!important;color:var(--story-muted)!important;line-height:1.72!important;font-size:1rem}
.story-shift-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.story-shift-card{min-height:270px;padding:32px 30px 34px;background:#fff;border:1px solid var(--story-line);box-shadow:0 10px 28px rgba(18,35,25,.035);position:relative}
.story-shift-card:before{content:attr(data-step);position:absolute;right:20px;top:19px;color:#766a47;font-family:var(--font-geist-mono),monospace;font-size:.71rem;letter-spacing:.1em;font-weight:750}
.story-shift-icon{width:38px;height:38px;display:grid;place-items:center;border:1px solid #a07a26;background:#fbf8ed;color:var(--story-green);font-weight:800}
.story-shift-card h3{margin:29px 0 13px;color:var(--story-green);font-size:1.36rem;line-height:1.25;letter-spacing:-.02em}
.story-shift-card p{margin:0;color:var(--story-muted);line-height:1.68;font-size:.96rem}

/* Pull quote */
.story-quote-section{padding:clamp(88px,9vw,132px) 0;background:var(--story-green);color:#fff}
.story-quote-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(400px,.98fr);gap:clamp(38px,6vw,82px);align-items:center}
.story-quote-section .story-eyebrow{color:var(--story-gold-light)}
.story-quote-section h2{max-width:800px;color:#fff}
.story-quote-section blockquote{max-width:860px;margin:26px 0 0;padding:0;border:0;color:#f7efd5;font-size:clamp(1.45rem,2vw,2.25rem);line-height:1.48;letter-spacing:-.026em}
.story-quote-section blockquote:before{content:'“';display:block;margin-bottom:18px;color:var(--story-gold-light);font:4.8rem/.56 Georgia,serif}
.story-quote-section cite{display:block;margin-top:26px;color:#d8e1da;font-style:normal;font-family:var(--font-geist-mono),monospace;text-transform:uppercase;letter-spacing:.11em;font-size:.7rem;line-height:1.5;font-weight:650}
.story-quote-image{height:540px;position:relative;margin:0;overflow:hidden;border:1px solid rgba(240,209,113,.42);box-shadow:0 22px 52px rgba(0,0,0,.24)}
.story-quote-image img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block}
.story-quote-image:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}

/* Cycling story — deliberately lighter than the motorcycle quote section for clear story separation */
.cycling-story{position:relative;overflow:hidden;padding:clamp(92px,9vw,136px) 0;background:#f4f2e9;color:var(--story-ink);border-top:1px solid var(--story-line)}
.cycling-story:before{content:"02";position:absolute;right:3vw;top:28px;color:rgba(16,38,27,.045);font-size:clamp(7rem,15vw,15rem);line-height:1;font-weight:680;letter-spacing:-.07em;pointer-events:none}
.cycling-story .story-eyebrow{color:var(--story-gold-dark)}
.cycling-story-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(360px,.72fr);gap:clamp(44px,7vw,96px);align-items:end;margin-bottom:46px;position:relative;z-index:1}
.cycling-story-head h2{max-width:760px;margin:13px 0 0;color:var(--story-green);font-size:clamp(2.8rem,5vw,5.6rem);line-height:.97;letter-spacing:-.055em;font-weight:610}
.cycling-story-head h2 span{display:block;color:var(--story-gold-dark)}
.cycling-story-head>p{max-width:620px;margin:0;color:var(--story-muted);font-size:1.02rem;line-height:1.72}
.cycling-story-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);gap:14px;align-items:stretch;position:relative;z-index:1}
.cycling-story-photo{min-height:620px;margin:0;position:relative;overflow:hidden;background:#0c140f;border:1px solid #c9c4b2}
.cycling-story-photo img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block}
.cycling-story-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(4,12,7,.44) 100%)}
.cycling-story-photo figcaption,.cycling-story-wide figcaption{position:absolute;z-index:2;padding:9px 11px;background:rgba(5,15,9,.94);color:#fff;border-left:3px solid var(--story-gold-light);font-family:var(--font-geist-mono),monospace;text-transform:uppercase;letter-spacing:.075em;font-size:.68rem;line-height:1.35}
.cycling-story-photo figcaption{left:16px;bottom:15px}
.cycling-story-quote{min-height:620px;padding:clamp(34px,4.6vw,62px);display:flex;flex-direction:column;justify-content:center;background:var(--story-green);border:1px solid #274534;box-shadow:var(--story-shadow);position:relative}
.cycling-story-quote:before{content:'“';margin-bottom:22px;color:var(--story-gold-light);font:5.3rem/.66 Georgia,serif}
.cycling-story-quote blockquote{margin:0;color:#f6efd8;font-size:clamp(1.35rem,1.95vw,2.18rem);line-height:1.5;letter-spacing:-.026em}
.cycling-story-quote blockquote strong{color:#f4d77e;font-weight:650}
.cycling-story-quote cite{margin-top:28px;color:#d7e0da;font-style:normal;font-family:var(--font-geist-mono),monospace;text-transform:uppercase;letter-spacing:.1em;font-size:.69rem;line-height:1.5;font-weight:650}
.cycling-story-proof{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px;position:relative;z-index:1}
.cycling-story-proof article{min-height:170px;padding:28px 26px;background:#fff;border:1px solid var(--story-line);position:relative}
.cycling-story-proof article:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:#b08a32}
.cycling-story-proof strong{display:block;color:var(--story-green);font-size:clamp(1.65rem,2.6vw,2.7rem);line-height:1;letter-spacing:-.042em;font-weight:620}
.cycling-story-proof span{display:block;margin-top:10px;color:var(--story-gold-dark);font-family:var(--font-geist-mono),monospace;text-transform:uppercase;letter-spacing:.1em;font-size:.65rem;line-height:1.35;font-weight:760}
.cycling-story-proof p{max-width:330px;margin:9px 0 0;color:var(--story-muted);font-size:.88rem;line-height:1.58}
.cycling-story-wide{height:500px;margin:14px 0 0;position:relative;overflow:hidden;border:1px solid #c9c4b2;z-index:1;background:#0c140f}
.cycling-story-wide img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block}
.cycling-story-wide:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 62%,rgba(4,12,7,.35))}
.cycling-story-wide figcaption{right:16px;bottom:15px;border-left:0;border-right:3px solid var(--story-gold-light)}
.cycling-story-note{position:relative;z-index:1;max-width:790px;margin:16px 0 0;color:#59655e;font-size:.8rem;line-height:1.62}

/* CTA */
.story-cta{padding:clamp(92px,9vw,138px) 0;background:#fff;text-align:center;border-top:1px solid var(--story-line)}
.story-cta .story-eyebrow{display:block;color:var(--story-gold-dark)}
.story-cta h2{max-width:920px;margin:17px auto 24px;color:var(--story-green)}
.story-cta p{max-width:700px;margin:0 auto 32px;color:var(--story-muted);font-size:1.06rem;line-height:1.72}
.story-cta-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.story-cta-actions a{min-height:52px;padding:0 21px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--story-green);text-decoration:none;font-weight:720;transition:.2s ease}
.story-cta-actions .primary{background:var(--story-green);color:#fff}
.story-cta-actions .primary:hover{background:#1b3a2a}
.story-cta-actions .secondary{background:#fff;color:var(--story-green)}
.story-cta-actions .secondary:hover{background:#f0f2ee}

/* Homepage featured story */
.home-story-teaser{display:grid;grid-template-columns:minmax(0,.98fr) minmax(0,1.02fr);min-height:550px;margin:0;background:var(--story-green);color:#fff}
.home-story-teaser-media{position:relative;min-height:500px;overflow:hidden}
.home-story-teaser-media img{width:100%;height:100%;object-fit:cover;object-position:center 45%;display:block}
.home-story-teaser-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,24,16,.08),rgba(8,24,16,.48))}
.home-story-teaser-copy{padding:clamp(54px,6vw,90px);display:flex;flex-direction:column;justify-content:center}
.home-story-teaser .section-kicker{color:var(--story-gold-light)}
.home-story-teaser h2{max-width:700px;margin:12px 0 22px;color:#fff;font-size:clamp(2.5rem,4vw,4.8rem);line-height:.98;letter-spacing:-.05em}
.home-story-teaser blockquote{max-width:700px;margin:0 0 26px;color:#f7efd7;font-size:clamp(1.2rem,1.7vw,1.72rem);line-height:1.52}
.home-story-teaser .story-teaser-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.home-story-teaser .story-teaser-meta span{padding:8px 10px;border:1px solid rgba(240,209,113,.46);color:#f6e4a4;font-family:var(--font-geist-mono),monospace;text-transform:uppercase;letter-spacing:.09em;font-size:.66rem}
.home-story-teaser .text-link{color:#fff;border-bottom-color:var(--story-gold-light)}

/* Focus + accessibility */
.story-page a:focus-visible,.home-story-teaser a:focus-visible{outline:3px solid #f0d171;outline-offset:3px}

@media(max-width:1050px){
  .story-hero{grid-template-columns:1fr;min-height:0}
  .story-hero-copy{padding:105px 7vw 68px}
  .story-hero-media{min-height:540px}
  .story-hero-media:after{background:linear-gradient(180deg,var(--story-green) 0%,rgba(16,38,27,0) 22%,rgba(16,38,27,.08) 100%)}
  .story-index-inner{align-items:flex-start;flex-direction:column}
  .story-proof-grid{grid-template-columns:1fr}
  .story-proof{min-height:0}
  .story-intro-grid{grid-template-columns:1fr;gap:32px}
  .story-intro aside{position:static;max-width:740px}
  .story-gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:480px 320px}
  .story-photo:first-child{grid-column:1/3;grid-row:auto}
  .story-shift-grid{grid-template-columns:1fr}
  .story-shift-card{min-height:0}
  .story-quote-grid{grid-template-columns:1fr}
  .story-quote-image{height:500px}
  .cycling-story-head{grid-template-columns:1fr;gap:22px}
  .cycling-story-grid{grid-template-columns:1fr}
  .cycling-story-photo,.cycling-story-quote{min-height:540px}
  .cycling-story-proof{grid-template-columns:1fr}
  .cycling-story-proof article{min-height:0}
  .home-story-teaser{grid-template-columns:1fr}
  .home-story-teaser-media{min-height:500px}
}

@media(max-width:720px){
  .story-wrap{width:min(100% - 32px,var(--story-max))}
  .story-hero-copy{padding:88px 20px 54px}
  .story-hero h1{font-size:clamp(2.9rem,14vw,4.8rem)}
  .story-hero-media{min-height:380px}
  .story-hero-caption{right:12px;bottom:12px;left:12px;max-width:none}
  .story-index-links{width:100%}
  .story-index-links a{flex:1;min-width:145px;text-align:center}
  .story-proof-band{padding:22px 0}
  .story-proof{padding:25px 22px}
  .story-intro{padding:70px 0}
  .story-copy{padding:28px 22px;font-size:1.03rem;line-height:1.72}
  .story-copy:before{font-size:4rem;right:15px;top:12px}
  .story-gallery{padding-bottom:70px}
  .story-gallery-grid{grid-template-columns:1fr;grid-template-rows:390px 260px 260px;gap:9px}
  .story-photo:first-child{grid-column:auto}
  .story-shift{padding:70px 0}
  .story-shift-card{padding:28px 24px 30px}
  .story-quote-section{padding:72px 0}
  .story-quote-image{height:390px}
  .cycling-story{padding:74px 0}
  .cycling-story-head{margin-bottom:30px}
  .cycling-story-photo{min-height:0;height:420px}
  .cycling-story-quote{min-height:0;padding:34px 24px}
  .cycling-story-proof article{padding:24px 22px}
  .cycling-story-wide{height:340px}
  .story-cta{padding:76px 0}
  .home-story-teaser-media{min-height:380px}
  .home-story-teaser-copy{padding:50px 22px 58px}
}

@media(prefers-reduced-motion:reduce){
  .story-photo img{transition:none}
  .story-photo:hover img{transform:none}
  .story-hero-actions a,.story-index-links a,.story-cta-actions a{transition:none}
}
