/* Apex Iron / chapter-led opening. Existing assets, no blocking splash screen. */
.home-page .hero { min-height:100svh; padding:160px 0 125px; background:#050607; }
.home-page .hero-media { z-index:-4; }
.home-page .hero-media picture { transform:scale(1.025); }
.home-page .hero-media img { object-position:68% center; filter:saturate(.75) contrast(1.08); }
.home-page .hero::before { background:linear-gradient(90deg,rgba(3,5,7,.96) 0%,rgba(3,5,7,.79) 35%,rgba(3,5,7,.13) 78%),linear-gradient(0deg,#07090b,transparent 27%); }
.home-page .hero::after { background:linear-gradient(180deg,rgba(4,5,7,.46),transparent 26%,transparent 80%,#07090b); }
.home-page .hero-content { position:relative; z-index:3; }
.home-page .hero-status { padding:0; margin:0 0 28px; border:0; border-radius:0; background:none; color:var(--lime); font-size:.875rem; letter-spacing:.14em; text-transform:uppercase; font-weight:850; }
.home-page .hero h1 { max-width:11ch; margin:0 0 32px; font-size:clamp(3.7rem,8.7vw,8.2rem); line-height:.97; letter-spacing:-.045em; text-transform:uppercase; font-weight:950; }
.hero-title-line { display:block; overflow:hidden; padding:0 .04em .055em 0; }
.hero-title-line > span { display:block; }
.hero-title-line:last-child { color:var(--red); }
.home-page .hero-lead { max-width:570px; margin-bottom:18px; font-size:clamp(1.45rem,2.7vw,2.2rem); font-weight:650; line-height:1.2; }
.home-page .hero-copy { max-width:470px; font-size:1rem; line-height:1.7; color:#c3c7cd; }
.home-page .hero-actions { margin-top:30px; }
.home-page .hero-actions .button { min-height:54px; border-radius:2px; gap:18px; font-size:1rem; }
.home-page .hero-actions .button-primary { background:var(--lime); border-color:var(--lime); color:#101608; }
.home-page .hero-actions .button-primary:hover { background:#e1ff8c; box-shadow:0 0 34px #c9f44326; }
.hero-availability { display:flex; flex-wrap:wrap; gap:10px 22px; margin:24px 0 0; color:#b8bec6; font-size:.875rem; line-height:1.6; }
.hero-availability a { color:#fff; text-decoration:underline; text-underline-offset:5px; }
.hero-edition { position:absolute; z-index:2; right:max(20px,calc((100vw - 1180px)/2)); bottom:40px; margin:0; color:#ced2d7; font-size:.75rem; line-height:1.8; letter-spacing:.15em; text-align:right; }
.hero-edition span { display:block; color:#9da5af; }
.home-page .hero-scroll { font-size:.875rem; letter-spacing:.05em; }
.cinema-light { position:absolute; inset:0; z-index:-2; pointer-events:none; background:radial-gradient(ellipse at var(--light-x,78%) var(--light-y,37%),#fd273425,transparent 58%); }
.cinema-shutters { position:absolute; inset:0; z-index:4; pointer-events:none; overflow:hidden; }
.cinema-shutters span { position:absolute; inset:0 0 auto; height:42%; background:#050607; transform:scaleY(0); transform-origin:top; }
.cinema-shutters span:last-child { inset:auto 0 0; transform-origin:bottom; }
.home-page .nav { background:linear-gradient(#050607dc,#05060700); }
.home-page .nav.is-scrolled { background:#050709ed; }
.home-page .nav-links { font-size:.875rem; }
.cinema-controls { position:absolute; z-index:5; top:calc(var(--nav-height) + 14px); right:max(20px,calc((100vw - 1180px)/2)); display:flex; gap:8px; }
.cinema-controls[hidden],.plan-controls[hidden],.plan-session[hidden] { display:none; }
.cinema-controls button { min-height:40px; padding:8px 12px; border:1px solid #ffffff3b; border-radius:2px; background:#050709c9; color:#dde1e6; font-size:.875rem; cursor:pointer; }
.cinema-controls button:hover:not(:disabled) { border-color:var(--lime); color:#fff; }
.cinema-controls button:disabled { opacity:.65; cursor:default; }
.home-page #main > .program-chapter { background:#090d10; color:#f5f6f5; border-top:1px solid #ffffff14; padding:110px 0; }
.program-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:65px; align-items:start; }
.program-intro { min-width:0; position:sticky; top:105px; }
.program-intro h2 { font-size:clamp(2.7rem,5.5vw,4.8rem); font-weight:900; line-height:1; text-transform:uppercase; margin-bottom:26px; }
.program-intro h2 em { font-style:normal; color:var(--lime); }
.program-intro > p:not(.eyebrow) { color:#bfc7cc; font-size:1rem; line-height:1.75; max-width:37ch; }
.program-intro .eyebrow { color:var(--lime); font-size:.875rem; }
.program-guide-cover { position:relative; isolation:isolate; min-height:310px; margin:38px 0 25px; overflow:hidden; border:1px solid #ffffff1a; }
.program-guide-cover img { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 67%; }
.program-guide-cover::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(#03060960,#030609e8); }
.program-guide-cover > div { display:flex; min-height:310px; flex-direction:column; justify-content:flex-end; padding:26px; }
.program-guide-cover span { font-size:.75rem; letter-spacing:.1em; color:#d7e1e1; }
.program-guide-cover strong { margin:14px 0 24px; font-size:2rem; line-height:1.1; }
.program-guide-cover a { display:block; font-size:1rem; color:var(--lime); line-height:1.5; text-decoration:underline; text-underline-offset:5px; }
.program-intro > .text-link { font-size:1rem; }
.plan-explorer { min-width:0; padding:30px; border:1px solid #36404a; background:linear-gradient(155deg,#192128,#11171c 36%); border-radius:4px; box-shadow:0 30px 100px #0005; }
.plan-explorer fieldset { padding:0; margin:0; min-width:0; border:0; }
.plan-explorer legend { margin:0 0 13px; color:#c5cdd2; font-size:.875rem; font-weight:750; }
.plan-explorer label { position:relative; cursor:pointer; min-width:0; }
.plan-explorer input[type="radio"] { position:absolute; opacity:0; width:1px; height:1px; }
.plan-explorer input:focus-visible + span { outline:3px solid #f7f8fa; outline-offset:4px; }
.plan-track { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.plan-track label > span { display:flex; min-height:86px; flex-direction:column; gap:5px; justify-content:center; padding:17px; border:1px solid #59646d; background:#0a0f13; border-radius:3px; transition:background .2s,border-color .2s; }
.plan-track strong { font-size:1.35rem; }
.plan-track small { font-size:.875rem; line-height:1.5; color:#aebac2; }
.plan-track input:checked + span { border-color:var(--lime); background:#283218; color:#e9ffb5; box-shadow:inset 0 0 0 1px var(--lime); }
.plan-track input:checked + span small { color:#d9e6c1; }
.plan-track label:hover > span { border-color:#e5f5d3; }
.plan-explorer .plan-weeks { margin-top:25px; }
.plan-weeks > div { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:6px; }
.plan-weeks label > span { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:64px; padding:9px 4px; border-bottom:2px solid #414e55; background:#0b1115; color:#d3dce1; font-size:1.25rem; font-weight:850; transition:background .2s; }
.plan-weeks small { display:block; font-size:.75rem; margin-bottom:4px; font-weight:500; }
.plan-weeks input:checked + span { background:var(--lime); border-color:var(--lime); color:#152008; }
.plan-weeks label:hover > span { border-color:var(--lime); }
.plan-week-heading { padding:29px 0 20px; border-bottom:1px solid #ffffff20; }
.plan-kicker { font-size:.75rem; letter-spacing:.1em; color:var(--lime); font-weight:850; margin:0 0 13px; }
.plan-week-heading h3 { font-size:1.8rem; line-height:1.2; margin-bottom:15px; }
.plan-week-heading > p:last-child { color:#c3cbd0; line-height:1.65; font-size:1rem; margin-bottom:0; }
.plan-pillars { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:26px; padding:24px 0; border-bottom:1px solid #ffffff20; }
.plan-pillar-label { font-size:.875rem; font-weight:750; color:#d8dfe2; line-height:1.5; }
.plan-pillars p { margin:13px 0 10px; }
.plan-pillars strong { font-size:3.2rem; line-height:1; font-weight:900; color:var(--lime); }
.plan-pillars p > span { color:#b8c2c8; font-size:1rem; }
.plan-walk-meter { height:4px; background:#414c39; margin:18px 0 14px; overflow:hidden; }
.plan-walk-meter span { display:block; height:100%; width:var(--walk-fill,50%); max-width:100%; background:var(--lime); transition:width .4s cubic-bezier(.2,.8,.2,1); }
.plan-pillars small { color:#aebbc5; font-size:.875rem; line-height:1.55; }
.plan-pillars .plan-food { color:#c3cbd0; font-size:1rem; line-height:1.65; }
.plan-session-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px; margin-top:27px; }
.plan-session-heading h4 { margin:0; font-size:1.1rem; }
.plan-session { display:flex; gap:6px; }
.plan-session label > span { display:flex; align-items:center; min-height:44px; padding:9px 12px; border:1px solid #49545c; font-size:.875rem; color:#bdc8cf; border-radius:2px; }
.plan-session input:checked + span { border-color:var(--lime); color:var(--lime); background:#252f20; }
.plan-dose { margin:13px 0 8px; font-size:.875rem; color:#aebbc5; line-height:1.6; }
.plan-exercises { list-style:none; margin:0; padding:0; }
.plan-exercises li { margin:0; border-bottom:1px solid #ffffff18; }
.plan-exercises summary { display:grid; grid-template-columns:24px minmax(0,1fr) 18px; align-items:center; gap:12px; padding:18px 0; list-style:none; cursor:pointer; }
.plan-exercises summary::-webkit-details-marker,.plan-guidance summary::-webkit-details-marker { display:none; }
.plan-exercise-number { color:#879599; font-size:.75rem; }
.plan-exercises strong { display:block; font-size:1rem; line-height:1.4; font-weight:700; }
.plan-exercises small { display:block; margin-top:6px; color:#bac5b0; font-size:.875rem; line-height:1.4; }
.plan-plus { font-size:1.5rem; color:var(--lime); transition:transform .2s; }
.plan-exercises details[open] .plan-plus { transform:rotate(45deg); }
.plan-exercise-cue { padding:0 15px 8px 36px; }
.plan-exercise-cue p,.plan-guidance p { color:#bfcad0; font-size:1rem; line-height:1.7; margin-bottom:13px; }
.plan-guidance { margin-top:20px; padding:0 16px; background:#080e12; border:1px solid #37444c; }
.plan-guidance summary { display:flex; justify-content:space-between; gap:15px; padding:18px 0; cursor:pointer; font-size:.875rem; font-weight:700; line-height:1.5; list-style:none; color:#dbe4dd; }
.plan-guidance summary > span { color:var(--lime); font-size:1.3rem; }
.plan-explorer .plan-safety { color:#aebbc5; font-size:.875rem; line-height:1.7; margin:20px 0; }
.plan-safety a { color:#e0e8d4; text-decoration:underline; text-underline-offset:3px; }
.plan-full-link { display:flex; width:100%; min-height:54px; padding:13px 20px; line-height:1.5; color:#121b08; background:var(--lime); border-radius:2px; font-size:1rem; }
.plan-full-link:hover { background:#dfff86; }
.home-page .film-section { background:#050607; border-top:1px solid #ffffff16; }
.home-page .film-stage { box-shadow:0 45px 100px #0009; }
.home-page .film-heading h2 { text-transform:uppercase; font-size:clamp(2.5rem,5.5vw,4.8rem); line-height:1.03; }
.home-page .film-heading .eyebrow { font-size:.875rem; }
.home-page .section-heading .eyebrow { font-size:.875rem; }
.home-page .section-heading h2 { font-size:clamp(2.6rem,5vw,4.6rem); }
.home-page .film-chapter-copy small { font-size:.75rem; }
.home-page .film-chapter-copy strong { font-size:.875rem; }
.cinema-motion-off { scroll-behavior:auto!important; }
.cinema-motion-off *, .cinema-motion-off *::before, .cinema-motion-off *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
.cinema-motion-off .js .reveal,.cinema-motion-off.js .reveal { opacity:1; transform:none; }
.cinema-motion-off .cinema-shutters { display:none; }
.cinema-motion-off .hero-media picture,.cinema-motion-off .hero-media img,.cinema-motion-off .device-frame { transform:none!important; }
@media(max-width:1000px) {
 .program-layout { gap:30px; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); }
 .plan-explorer { padding:22px; }
}
@media(max-width:840px) {
 .program-layout { grid-template-columns:1fr; }
 .program-intro { position:static; }
 .program-intro > p:not(.eyebrow) { max-width:55ch; }
 .program-guide-cover { min-height:210px; }
 .program-guide-cover > div { min-height:210px; }
 .program-guide-cover img { object-position:50% 61%; }
 .home-page #main > .program-chapter { padding:70px 0; }
}
@media(min-width:841px) and (max-height:800px) {
 .home-page .hero { padding:132px 0 85px; }
 .home-page .hero h1 { font-size:clamp(4.5rem,7vw,6rem); margin-bottom:20px; }
 .home-page .hero-status { margin-bottom:18px; }
 .home-page .hero-lead { font-size:1.4rem; }
 .home-page .hero-lead br { display:none; }
 .home-page .hero-copy { max-width:540px; }
 .home-page .hero-actions { margin-top:20px; }
}
@media(prefers-reduced-motion:no-preference) {
 .home-page .hero:not(.intro-complete) .cinema-shutters span { animation:cinema-open 1.45s cubic-bezier(.76,0,.24,1) both; }
 .home-page .hero:not(.intro-complete) .hero-title-line > span { animation:cinema-title 1.05s .25s cubic-bezier(.16,1,.3,1) both; }
 .home-page .hero:not(.intro-complete) .hero-title-line:last-child > span { animation-delay:.42s; }
 .home-page .hero:not(.intro-complete) .hero-media picture { animation:cinema-push 2.8s cubic-bezier(.16,1,.3,1) both; }
 .home-page .hero:not(.intro-complete) .hero-lead { animation:cinema-copy 1s .6s both; }
 .home-page .hero:not(.intro-complete) .cinema-light { animation:cinema-light 2.8s ease-out both; }
}
@keyframes cinema-open { from { transform:scaleY(1); } to { transform:scaleY(0); } }
@keyframes cinema-title { from { transform:translateY(110%); } to { transform:translateY(0); } }
@keyframes cinema-push { from { transform:scale(1.13); filter:brightness(.45); } to { transform:scale(1.025); filter:brightness(1); } }
@keyframes cinema-copy { from { transform:translateY(15px); opacity:.2; } to { transform:translateY(0); opacity:1; } }
@keyframes cinema-light { from { opacity:0; transform:translateX(8%); } to { opacity:1; transform:translateX(0); } }
@media(max-width:600px) {
 .home-page .hero { padding:150px 0 80px; min-height:100svh; }
 .home-page .hero h1 { font-size:clamp(3rem,12vw,4.7rem); margin-bottom:25px; }
 .home-page .hero-status { font-size:.8rem; letter-spacing:.08em; margin-bottom:23px; }
 .home-page .hero-media img { object-position:64% center; }
 .home-page .hero::before { background:linear-gradient(90deg,#040608ed,#04060865),linear-gradient(0deg,#07090b,transparent 50%); }
 .home-page .hero-copy { max-width:34ch; }
 .hero-edition { display:none; }
 .home-page .hero-actions { align-items:stretch; }
 .home-page .hero-availability { gap:7px; flex-direction:column; }
 .cinema-controls { right:20px; gap:6px; }
 .cinema-controls button { min-height:40px; padding:8px 10px; }
 .program-intro h2 { font-size:clamp(2.5rem,10vw,4rem); }
 .plan-explorer { padding:20px 16px; }
 .plan-track label > span { padding:14px 10px; }
 .plan-track small { font-size:.875rem; }
 .plan-pillars { grid-template-columns:1fr; gap:24px; }
 .plan-week-heading h3 { font-size:1.5rem; }
 .plan-exercise-cue { padding-left:0; }
 .home-page .hero-actions .button { padding:12px 15px; }
 .plan-explorer .plan-week-heading { padding-top:24px; }
 .program-guide-cover strong { font-size:1.7rem; }
}
@media(prefers-reduced-motion:reduce) {
 .home-page .hero-media picture { transform:none; }
 .cinema-shutters { display:none; }
}
@media print {
 .cinema-controls,.cinema-light,.cinema-shutters { display:none; }
 .program-intro { position:static; }
 .program-layout { display:block; }
 .plan-explorer { box-shadow:none; break-inside:avoid; }
}
