.engine-story{position:relative}
.story-stage{position:relative;min-height:680px}
.story-copy{position:absolute;left:0;top:12%;width:49%;z-index:4;will-change:opacity,transform}
.story-copy h1{font-size:clamp(60px,6.2vw,90px)}
html[lang=en] .story-copy h1{font-size:clamp(49px,5.2vw,76px)}
.story-copy .intro{margin-bottom:25px}
.engine-origin{position:absolute;right:0;top:15%;width:47%;height:64%;pointer-events:none}
.engine-fallback{position:absolute;right:0;top:8%;width:46%;height:80%;object-fit:contain}
.story-canvas,.stage-bottom,.scroll-hint{display:none}
.engine-story.is-ready{height:320svh}
.is-ready .story-stage{position:sticky;top:0;height:100svh;min-height:650px}
.is-ready .engine-fallback{display:none}
.is-ready .story-canvas{display:block;position:absolute;inset:0;isolation:isolate}
.engine-art{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:2;pointer-events:none}
.engine-piece{stroke:var(--ivory);stroke-width:1.4;stroke-linejoin:round;stroke-linecap:round;fill:none}
.engine-piece path,.engine-piece rect,.engine-piece circle,.engine-piece ellipse{vector-effect:non-scaling-stroke}
.engine-piece .surface{fill:#103d32;fill-opacity:.82}
.engine-piece .block-surface{fill-opacity:.12}
.engine-piece .shaft{stroke-width:2.6}
.engine-piece .muted-line{stroke-opacity:.45}
.engine-piece .bore{stroke-opacity:.35}
.engine-piece .connecting-rod{stroke:var(--ivory);stroke-width:7;stroke-opacity:.8;stroke-linecap:round}
.engine-piece .crank-arm{stroke-width:3.2}
.engine-piece .piston-face,.engine-piece .cam-face{fill:#103d32}
.engine-piece .combustion{stroke:none;fill:var(--gold);opacity:0}
.engine-piece [data-glow]{stroke:none}
.story-tiles{position:absolute;inset:0;z-index:0}
.story-tile{position:absolute;margin:0;border:1px solid rgba(245,236,216,.28);background:transparent;opacity:0;overflow:hidden;pointer-events:none}
.tile-label{position:absolute;left:13px;top:13px;color:var(--muted);font-size:9px;letter-spacing:.11em;text-transform:uppercase;z-index:2}
.part-tile .tile-label{opacity:0;transition:opacity .2s}
.part-tile.has-content .tile-label{opacity:1}
.editorial-tile{padding:18px;display:flex;flex-direction:column;justify-content:flex-end}
.editorial-tile h2{position:relative;z-index:1;font-family:Palatino,"Palatino Linotype",Georgia,serif;font-size:clamp(20px,2.1vw,30px);font-weight:400;line-height:1.1;letter-spacing:-.025em;margin:0;max-width:190px;color:var(--ivory)}
.editorial-symbol{position:absolute;right:14px;top:26px;width:52%;height:52%;stroke:var(--gold);stroke-width:1.25;opacity:.58}
.grid-heading{position:absolute;top:24px;left:0;right:0;text-align:center;font-family:Palatino,"Palatino Linotype",Georgia,serif;font-size:clamp(25px,3vw,40px);letter-spacing:-.025em;margin:0;opacity:0;z-index:3;pointer-events:none}
.is-ready .stage-bottom{display:block;position:absolute;bottom:20px;left:0;right:0;z-index:6}
.stage-description{display:flex;justify-content:space-between;gap:12px;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-bottom:15px}
.engine-status{color:var(--ivory)}
.stage-controls{display:flex;align-items:center;gap:22px;border-top:1px solid var(--rule);padding-top:7px}
.stage-controls button{appearance:none;border:0;border-radius:0;background:none;color:var(--ivory);font:inherit;font-size:11px;cursor:pointer;min-height:44px;padding:8px 0;text-align:left}
.stage-controls button:hover{color:var(--gold)}
.stage-controls button:focus-visible,.engine-scrub:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.scrub-wrap{display:flex;align-items:center;gap:12px;flex:1;max-width:420px;margin:auto;font-size:9px;color:var(--muted)}
.engine-scrub{width:100%;min-width:40px;cursor:ew-resize;accent-color:var(--ivory);height:24px}
.grid-toggle{min-width:98px;text-align:right!important}
.is-ready .scroll-hint{display:inline-flex;align-items:center;gap:30px;min-height:44px;margin-top:20px;color:var(--muted);font-size:10px;letter-spacing:.04em}
.scroll-hint span{color:var(--gold);font-size:18px}
.scroll-hint:hover{color:var(--ivory)}
.engine-story.is-reduced{height:auto}
.is-reduced .story-stage{position:relative;height:auto;min-height:0}
.is-reduced .story-copy{position:relative;top:auto;left:auto;width:auto;padding:45px 0 15px;opacity:1!important;transform:none!important}
.is-reduced .story-canvas{position:relative;inset:auto;height:min(95vw,850px)}
.is-reduced .grid-heading{display:none}
.is-reduced .stage-bottom{position:relative;bottom:auto;margin-bottom:20px}
.is-reduced .scroll-hint,.is-reduced .engine-origin,.is-reduced .scrub-wrap,.is-reduced .grid-toggle{display:none}
@media(max-width:1000px){.story-copy{top:11%;width:49%}.story-copy h1{font-size:clamp(54px,6.5vw,75px)}html[lang=en] .story-copy h1{font-size:clamp(45px,5.7vw,65px)}.stage-controls{gap:14px}.stage-description{font-size:8px}}
@media(max-width:700px){.engine-story.is-ready{height:300svh}.is-ready .story-stage{height:100svh;min-height:640px}.story-copy{top:24px;width:100%}.story-copy h1{font-size:clamp(44px,11.5vw,62px);line-height:1.02}.story-copy .eyebrow{font-size:8px;margin-bottom:17px}.story-copy .intro{margin-top:18px;margin-bottom:18px;font-size:12px;line-height:1.7}.story-copy .hero-actions{display:flex;gap:8px}.story-copy .primary-link{font-size:10px;gap:12px;padding:13px 12px;min-height:44px}.is-ready .scroll-hint{margin-top:8px;font-size:9px;min-height:38px}.engine-origin{top:49%;right:0;width:100%;height:34%}.grid-heading{font-size:25px;top:46px}.tile-label{font-size:7px;letter-spacing:.04em;top:8px;left:8px}.editorial-tile{padding:9px}.editorial-tile h2{font-size:15px;line-height:1.05}.editorial-symbol{top:19px;right:7px;width:52%;height:48%;opacity:.43}.is-ready .stage-bottom{bottom:15px}.stage-description{font-size:7px;letter-spacing:.05em;gap:8px;padding-bottom:8px}.illustration-note{max-width:100px;text-align:right}.stage-controls{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;padding-top:4px}.stage-controls button{font-size:10px;min-height:36px}.scrub-wrap{grid-column:1/-1;grid-row:1;width:100%;max-width:none;gap:10px}.grid-toggle{grid-column:2;min-width:0}.engine-piece{stroke-width:1.05}.engine-piece .shaft{stroke-width:1.9}.engine-piece .crank-arm{stroke-width:2}.is-reduced .story-copy{padding-top:28px}.is-reduced .story-canvas{height:115vw}.is-reduced .story-stage{height:auto;min-height:0}html[lang=en] .story-copy h1{font-size:clamp(36px,9.4vw,51px)}}
@media(prefers-reduced-motion:reduce){.story-tile *{transition:none!important}.engine-story{scroll-behavior:auto}}

/* The engine opens the page; the complete grid becomes the final editorial card. */
.is-ready .engine-origin{left:12%;right:auto;top:16%;width:76%;height:62%}
.is-ready .final-panel{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:35px;border:1px solid var(--rule);opacity:0;pointer-events:auto;background:var(--green);z-index:5}
.final-panel .eyebrow{justify-content:center}
.final-panel h1{font-size:clamp(48px,5.6vw,74px);line-height:1.02}
html[lang=en] .final-panel h1{font-size:clamp(44px,5vw,68px)}
.final-panel .intro{font-size:14px;line-height:1.7;margin-top:22px;margin-bottom:22px}
.final-panel .hero-actions{justify-content:center;flex-wrap:wrap;gap:10px}
.course-link{display:inline-flex;align-items:center;gap:14px;color:var(--ivory);font-size:12px;margin-top:24px;padding-bottom:6px;border-bottom:1px solid var(--gold)}
.course-link svg{width:16px;fill:none;stroke:currentColor;stroke-width:1.5}
.course-link:hover{color:var(--gold)}
.is-ready .opening-hint{position:absolute;bottom:130px;left:0;right:0;justify-content:center;margin:0;z-index:3}
.is-reduced .final-panel{position:relative;left:auto!important;top:auto!important;width:100%!important;height:auto!important;opacity:1!important;margin:30px 0}
@media(max-width:700px){.is-ready .engine-origin{left:0;top:20%;width:100%;height:50%}.is-ready .final-panel{padding:25px 15px}.final-panel h1{font-size:clamp(35px,9.4vw,48px)}html[lang=en] .final-panel h1{font-size:clamp(32px,8.5vw,44px)}.final-panel .intro{font-size:12px;margin:20px 0}.final-panel .eyebrow{font-size:7px}.final-panel .hero-actions{flex-direction:column;align-items:center;width:100%}.final-panel .primary-link{width:100%;max-width:235px;justify-content:space-between}.course-link{font-size:10px;gap:9px;margin-top:23px}.is-ready .opening-hint{bottom:140px}.engine-story.is-reduced{height:auto}}

/* A visible opening action also plays the complete scroll sequence. */
.is-ready .opening-hint{appearance:none;background:transparent;border:1px solid rgba(245,236,216,.5);color:var(--ivory);font:inherit;font-size:12px;letter-spacing:.025em;cursor:pointer;padding:14px 22px;min-height:48px;width:max-content;max-width:100%;left:50%;right:auto;bottom:210px;transform:translateX(-50%);white-space:nowrap}
.is-ready .opening-hint:hover{background:var(--ivory);color:var(--deep)}
.is-ready .opening-hint:focus-visible{outline:2px solid var(--gold);outline-offset:6px}
.final-panel h1:focus{outline:none}
@media(max-width:700px){.is-ready .opening-hint{bottom:200px;font-size:11px;padding:13px 20px}}
.is-reduced .opening-hint{display:none}

/* Progress is a quiet, rectangular indicator, without a thumb or controls. */
.engine-progress{height:5px;width:100%;border:1px solid rgba(245,236,216,.35);background:transparent;overflow:hidden}
.engine-progress-fill{display:block;width:100%;height:100%;background:var(--ivory);transform:scaleX(0);transform-origin:left center}
.stage-description{padding-bottom:10px}
.is-ready .stage-bottom{bottom:25px}
.is-reduced .engine-progress{display:none}
@media(max-width:700px){.is-ready .stage-bottom{bottom:25px}}

/* Keep the brand anchored and bring the engine closer to the header. */
:root{--header-height:138px}
.site-header{position:sticky;top:0;z-index:20;background:var(--green)}
.is-ready .story-stage{top:var(--header-height);height:calc(100svh - var(--header-height));min-height:520px}
.is-ready .engine-origin{left:10%;top:-6%;width:80%;height:72%}
.is-ready .opening-hint{top:66%;bottom:auto}
.is-reduced .story-stage{top:auto;height:auto;min-height:0}
@media(max-width:700px){.is-ready .story-stage{min-height:500px}.is-ready .engine-origin{left:0;top:-12%;width:100%;height:72%}.is-ready .opening-hint{top:54%;bottom:auto}.is-reduced .story-stage{height:auto;min-height:0}}

/* The last card occupies precisely the same outer rectangle as the nine tiles. */
.is-ready .final-panel{container-type:size;padding:clamp(12px,2vw,30px)}
.is-ready .final-panel h1,html[lang=en] .is-ready .final-panel h1{font-size:clamp(23px,9cqw,70px);line-height:1.02}
.is-ready .final-panel .eyebrow{font-size:clamp(6px,1.55cqw,10px);margin:0 0 clamp(10px,3cqw,24px);letter-spacing:.1em;gap:8px}
.is-ready .final-panel .eyebrow span{width:18px}
.is-ready .final-panel .intro{font-size:clamp(10px,2.25cqw,14px);line-height:1.55;margin:clamp(10px,3cqw,22px) 0}
.is-ready .final-panel .hero-actions{flex-direction:row;flex-wrap:nowrap;justify-content:center;width:100%;gap:clamp(6px,1.5cqw,10px)}
.is-ready .final-panel .primary-link{flex:1;width:auto;max-width:235px;min-height:40px;padding:10px clamp(7px,2cqw,18px);font-size:clamp(8px,2.5cqw,13px);gap:7px;white-space:nowrap}
.is-ready .final-panel .primary-link svg{width:clamp(12px,3cqw,17px);height:clamp(12px,3cqw,17px)}
.is-ready .final-panel .course-link{font-size:clamp(8px,2.5cqw,12px);margin-top:clamp(10px,3cqw,24px);gap:clamp(7px,2cqw,14px)}
.is-ready .final-panel .course-link svg{width:clamp(12px,3cqw,16px);flex:none}

@media(max-width:430px){
 .is-ready .final-panel{padding:10px 12px}
 .is-ready .final-panel h1,html[lang=en] .is-ready .final-panel h1{font-size:clamp(21px,8.3cqw,27px)}
 .is-ready .final-panel .eyebrow{font-size:6px;margin-bottom:9px;gap:6px}
 .is-ready .final-panel .eyebrow span{width:13px}
 .is-ready .final-panel .intro{font-size:10px;line-height:1.4;margin:9px 0}
 .is-ready .final-panel .hero-actions{flex-direction:column;align-items:center;gap:5px}
 .is-ready .final-panel .primary-link{flex:none;width:100%;max-width:190px;min-height:32px;padding:6px 10px;font-size:9px}
 .is-ready .final-panel .course-link{font-size:8px;margin-top:9px;padding-bottom:4px;gap:7px}
}

.social-label{display:inline-flex;align-items:center;gap:9px;text-align:left}
.is-ready .final-panel .primary-link .social-icon{flex:none;width:15px;height:15px;stroke:currentColor;stroke-width:1.6;fill:none}
.is-ready .final-panel .primary-link .tiktok-icon{fill:currentColor;stroke:none}
@media(max-width:430px){.social-label{gap:7px}.is-ready .final-panel .primary-link .social-icon{width:13px;height:13px}}

.is-ready .final-panel .hero-actions{flex-direction:column;align-items:center;gap:7px}
.is-ready .final-panel .primary-link{flex:none;width:100%;max-width:235px;min-height:36px;padding:7px 12px}
@media(max-width:430px){.is-ready .final-panel .hero-actions{gap:5px}.is-ready .final-panel .primary-link{max-width:190px;min-height:32px;padding:6px 10px}}

/* Footer stays anchored; the animation and progress keep a clear area above it. */
:root{--footer-height:95px}
.site-footer{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:calc(100% - 144px);max-width:1328px;z-index:21;background:var(--green)}
.is-ready .stage-bottom{bottom:calc(var(--footer-height) + 25px)}
.engine-story.is-reduced{padding-bottom:var(--footer-height)}
.engine-story:not(.is-ready){margin-bottom:var(--footer-height)}
@media(max-width:1000px){.site-footer{width:calc(100% - 76px)}}
@media(max-width:700px){.site-footer{width:calc(100% - 50px)}}

.engine-piece .counterweight{fill:var(--green);fill-opacity:.85;stroke:var(--gold);stroke-opacity:.65}
.engine-piece .journal{stroke-opacity:.7}
