/* Scroll choreography: continuous native scrolling, no wheel interception. */
.hero-runway { position: relative; height: 180svh; min-height: 1180px; }
.hero-runway .hero { position: sticky; top: 0; height: 100svh; min-height: 640px; max-height: none; }
.hero .landscape { transform: translate3d(calc(var(--parallax-x, 0px) * -.5),var(--landscape-y, 0px),0) scale(var(--landscape-scale,1.025)); transform-origin: 50% 68%; }
.hero .hero-content { opacity: var(--hero-copy-opacity,1); transform: translate3d(0,var(--hero-copy-y,0px),0); animation: none; will-change: opacity,transform; }
.hero .turbine { transform: translate3d(var(--parallax-x,0px),var(--parallax-y,0px),0) scale(var(--turbine-scale,1)); transform-origin: center bottom; }
.hero .turbine-left { transform: translate3d(calc(var(--parallax-x,0px) - var(--turbine-spread,0px)),var(--parallax-y,0px),0) scale(var(--turbine-scale,1)); }
.hero .turbine-right { transform: translate3d(calc(var(--parallax-x,0px) + var(--turbine-spread,0px)),var(--parallax-y,0px),0) scale(var(--turbine-scale,1)); }
.hero .cloud-one { margin-left: calc(var(--cloud-travel,0px) * .65); margin-top: calc(var(--cloud-travel,0px) * .45); }
.hero .cloud-two { margin-right: calc(var(--cloud-travel,0px) * .4); margin-top: calc(var(--cloud-travel,0px) * -.16); }
.turbine canvas,.journey-model canvas,.closing-turbine canvas { display:block; width:100%; height:100%; }
.hero-followup { position:absolute; left:var(--page-pad); top:34%; z-index:5; color:#fff; opacity:var(--hero-followup-opacity,0); transform:translate3d(0,var(--hero-followup-y,50px),0); pointer-events:none; }
.hero-followup>span { font-size:9px; letter-spacing:2px; }
.hero-followup h2 { font-size:clamp(48px,6.6vw,96px); line-height:1.07; letter-spacing:-4px; margin-top:25px; text-shadow:0 2px 45px #17496930; }
.hero-followup p { font-size:13px; line-height:1.8; margin-top:26px; color:#eef7ff; }
.hero .landscape-shade { inset:30% 0 0; background:linear-gradient(transparent,#09254420 40%,#09254488); opacity:calc(.8 + var(--hero-flight,0) * .2); }
.hero .scene-data { background:none; border:0; border-left:1px solid #ffffff80; border-radius:0; box-shadow:none; backdrop-filter:none; color:#fff; padding:0 0 0 15px; animation:none; }
.hero .scene-data-left { bottom:130px; left:23%; }
.hero .scene-data-left>div>span,.hero .scene-data-right>span:nth-child(2),.hero .scene-data-right .data-meta { color:#edf5ff; }
.hero .data-icon { background:none; color:#fff; }
.hero .mini-wind-chart { stroke:#d5edff; }
.hero .scene-data-right .data-meta { border-top:1px solid #ffffff30; }
.hero .scene-data-right>.status-dot { display:none; }
.brand>span:last-child { font-size:28px; }
.brand-mark { width:44px; }
body>.motion-toggle { position:fixed; right:28px; bottom:25px; width:38px; height:38px; background:#0b3265d9; color:#fff; border:1px solid #ffffff70; z-index:35; box-shadow:none; }
.journey-track { position:relative; height:180svh; min-height:calc(660px + 80svh); margin-top:16px; }
.journey-stage { position:sticky; top:0; height:100svh; min-height:660px; overflow:hidden; isolation:isolate; background:#dcecf8; --journey-progress:0; }
.journey-terrain { position:absolute; inset:0 -12% -20%; z-index:-3; background:linear-gradient(#eef6ffdc 2%,#dceaf68a 30%,#b3d3ed1a 80%),url('../assets/landscape-blue.webp') center bottom/cover no-repeat; transform:translate3d(0,calc(var(--journey-progress) * -90px),0) scale(1.12); will-change:transform; }
.journey-haze { position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,#eaf4fcf5 0%,#eaf4fcab 34%,#d7e9f434 60%,transparent),linear-gradient(0deg,#d9eaf600,transparent 70%,#ecf6fd99); }
.journey-word { position:absolute; left:7%; top:11%; font-size:clamp(160px,24vw,410px); font-weight:700; letter-spacing:-.08em; line-height:1; color:transparent; -webkit-text-stroke:1px #205d9730; z-index:-1; transform:translateX(calc(var(--journey-progress) * -150px)); user-select:none; }
.journey-caption { position:absolute; top:110px; left:var(--page-pad); right:var(--page-pad); display:flex; justify-content:space-between; font-size:8px; letter-spacing:1.8px; color:#477ba8; z-index:4; }
.journey-copy-stack { position:absolute; inset:30% auto auto var(--page-pad); width:43%; z-index:5; }
.journey-copy { position:absolute; top:0; left:0; opacity:0; transform:translateY(35px); transition:opacity .55s,transform .75s var(--ease); pointer-events:none; }
.journey-copy.is-current { opacity:1; transform:none; pointer-events:auto; }
.journey-number { display:block; font-size:9px; letter-spacing:2px; color:#387fb2; margin-bottom:28px; }
.journey-copy h2 { font-size:clamp(48px,5.8vw,85px); letter-spacing:-4px; line-height:1.07; font-weight:600; }
.journey-copy h2 em { color:#1687c9; font-style:normal; }
.journey-copy p { font-size:12px; line-height:1.9; max-width:310px; color:#4e718f; margin-top:25px; }
.journey-model { position:absolute; width:46vw; height:86vh; right:1%; bottom:2%; z-index:2; transform:translate3d(calc(var(--journey-progress) * -60px),calc(var(--journey-progress) * -35px),0) scale(calc(1 + var(--journey-progress) * .1)); transform-origin:50% 100%; will-change:transform; }
.journey-model svg { width:100%; height:100%; }
.journey-cloud { position:absolute; max-width:none; height:auto; pointer-events:none; }
.journey-cloud-back { width:700px; left:-350px; top:45%; z-index:1; opacity:.85; transform:translate3d(calc(var(--journey-progress) * 230px),calc(var(--journey-progress) * -130px),0); }
.journey-cloud-front { width:900px; right:-450px; bottom:-3%; z-index:4; opacity:.8; transform:translate3d(calc(var(--journey-progress) * -190px),calc(var(--journey-progress) * -100px),0); }
.journey-measure { position:absolute; right:35%; bottom:16%; color:#fff; z-index:5; border-left:1px solid #ffffff90; padding-left:18px; }
.journey-measure>span { display:block; font-size:7px; letter-spacing:1.2px; }
.journey-measure strong { display:block; font-size:40px; font-weight:500; letter-spacing:-2px; margin-block:4px; }
.journey-measure small { font-size:11px; letter-spacing:0; }
.journey-measure>span:last-of-type { font-size:6px; opacity:.7; }
.journey-rail { position:absolute; bottom:46px; left:var(--page-pad); display:flex; gap:40px; padding-bottom:19px; z-index:6; }
.journey-rail button { background:none; padding:4px 0; font-size:10px; color:#668bb0; text-align:left; }
.journey-rail button span { font-size:7px; margin-right:10px; }
.journey-rail button[aria-current] { color:#073d73; }
.journey-progress { position:absolute; bottom:0; left:0; right:0; height:1px; background:#7eaacd60; }
.journey-progress span { display:block; height:100%; background:#1268a3; transform:scaleX(var(--journey-progress)); transform-origin:left; }
.journey-skip { position:absolute; right:var(--page-pad); bottom:59px; z-index:6; font-size:10px; color:#164f80; }
.journey-skip span { margin-left:14px; font-size:18px; }
.sky-current { position:fixed; inset:0; z-index:8; overflow:hidden; pointer-events:none; opacity:var(--cloud-presence,0); mask-image:linear-gradient(90deg,#000 0%,#000a 9%,transparent 29%,transparent 71%,#000a 91%,#000 100%); }
.sky-current img { position:absolute; top:0; left:0; width:720px; height:auto; max-width:none; opacity:.56; will-change:transform; }
.sky-current .sky-current-two { width:630px; opacity:.46; }
.reading-progress { position:fixed; left:0; right:0; top:0; height:2px; pointer-events:none; z-index:80; }
.reading-progress span { display:block; width:100%; height:100%; transform:scaleX(var(--reading-progress,0)); transform-origin:left; background:#087fca; }
.map-section { padding-top:90px; }
.map-shell { border-radius:0; overflow:visible; }
.map-source-note { font-size:9px; color:#6e879b; padding-top:13px; }
.features-section { background:#f0f5fa; }
.feature-panel { box-shadow:none; border-radius:0; border:0; background:#ffffffd9; }
.sensor-grid>div { border-radius:0; border-left:1px solid #bdd8ed; }
.store-button { border-radius:3px; }
.status-pill { border-radius:2px; }
.motion-paused .journey-copy { transition:none; }
.motion-paused .sky-current { visibility:hidden; }
@media(max-height:780px) and (min-width:701px) {
  .hero-content { padding-top:118px; }
  .hero h1 { font-size:78px; }
  .hero-content>.hero-kicker { margin-bottom:20px; }
  .hero-content>p { margin-top:17px; }
  .hero-buttons { margin-top:18px; }
  .hero .turbine-left { height:270px; width:195px; left:7%; bottom:70px; }
  .hero .turbine-right { height:350px; width:255px; right:4%; bottom:28px; }
  .hero .scene-data-left { bottom:105px; }
  .journey-copy-stack { top:28%; }
  .journey-caption { top:95px; }
}
@media(max-width:900px) {
  .journey-copy h2 { font-size:54px; letter-spacing:-2.6px; }
  .journey-copy p { font-size:11px; max-width:250px; }
  .journey-model { right:-5%; width:57vw; height:76vh; bottom:4%; }
  .journey-measure { right:30%; bottom:18%; }
}
@media(max-width:700px) {
  .hero-runway { height:165svh; min-height:1250px; }
  .hero-runway .hero { min-height:740px; }
  .hero .hero-content { padding-top:131px; }
  .hero .scene-data-left { bottom:95px; left:13%; }
  .hero-followup { top:27%; }
  .hero-followup h2 { font-size:53px; letter-spacing:-2.8px; }
  .hero-followup>span { font-size:7px; }
  .hero-followup p { font-size:11px; margin-top:19px; }
  body>.motion-toggle { right:18px; bottom:18px; width:33px; height:33px; }
  .brand>span:last-child { font-size:26px; }
  .journey-track { height:180svh; min-height:calc(720px + 80svh); }
  .journey-stage { min-height:720px; }
  .journey-caption { top:104px; font-size:6px; letter-spacing:1px; }
  .journey-word { top:16%; left:6%; font-size:28vw; }
  .journey-copy-stack { top:20%; width:80%; }
  .journey-number { font-size:7px; margin-bottom:17px; }
  .journey-copy h2 { font-size:46px; letter-spacing:-2.7px; }
  .journey-copy p { font-size:10px; line-height:1.8; max-width:230px; margin-top:17px; }
  .journey-haze { background:linear-gradient(#e8f3fdd9,transparent 57%),linear-gradient(90deg,#eaf4fcbb,transparent 88%); }
  .journey-model { width:81vw; height:59vh; right:-13%; bottom:3%; }
  .journey-cloud-back { width:420px; left:-300px; top:50%; }
  .journey-cloud-front { width:530px; right:-380px; bottom:7%; }
  .journey-measure { right:auto; left:var(--page-pad); bottom:21%; color:#1b619a; border-left-color:#397ebc75; padding-left:10px; }
  .journey-measure strong { font-size:28px; }
  .journey-measure>span { font-size:6px; }
  .journey-measure small { font-size:9px; }
  .journey-rail { bottom:40px; gap:22px; padding-bottom:14px; }
  .journey-rail button { font-size:8px; }
  .journey-rail button span { font-size:6px; margin-right:4px; }
  .journey-skip { bottom:91px; font-size:8px; }
  .journey-skip span { margin-left:8px; font-size:15px; }
  .sky-current img { width:390px; opacity:.36; }
  .sky-current .sky-current-two { width:350px; opacity:.3; }
  .sky-current { mask-image:linear-gradient(90deg,#000 0%,transparent 24%,transparent 76%,#000 100%); }
  .map-section { padding-top:60px; }
  .map-source-note { font-size:8px; line-height:1.7; }
}
@media(prefers-reduced-motion:reduce) {
  .hero-runway { height:auto; min-height:0; }
  .hero-runway .hero { position:relative; }
  .hero .hero-content { opacity:1; transform:none; }
  .hero-followup,.sky-current { display:none; }
  .journey-track { height:auto; min-height:0; }
  .journey-stage { position:relative; min-height:1080px; height:auto; }
  .journey-copy-stack { position:relative; inset:auto; width:100%; padding:155px var(--page-pad) 180px; }
  .journey-copy { position:relative; top:auto; left:auto; opacity:1; transform:none; max-width:530px; margin-bottom:46px; }
  .journey-copy h2 { font-size:42px; }
  .journey-model { opacity:.25; right:-5%; height:70%; bottom:3%; }
  .journey-rail,.journey-measure { display:none; }
  .journey-cloud { transform:none; opacity:.3; }
}

/* A pinned scene must not become an internally scrollable focus container. */
.hero-runway .hero,.journey-stage { overflow:clip; }
.hero-followup { top:24%; color:#0a3e72; }
.hero-followup>span { color:#2a6795; }
.hero-followup h2 { font-weight:500; text-shadow:none; }
.hero-followup p { color:#123f67; }
@media(max-width:700px) {
  .hero-followup { top:26%; }
}
/* Geographic content uses a restrained, flat control surface. */
.map-section .section-heading>p { font-family:'IBM Plex Sans','Segoe UI',sans-serif; font-weight:400; font-size:13px; line-height:1.75; }
.farm-map-stage { border-radius:2px; box-shadow:none; cursor:grab; }
.farm-map-card { border-radius:0; border:0; border-bottom:1px solid var(--line); box-shadow:none; background:transparent; padding:13px 0 20px; }
.farm-map-stations { gap:0; }
.farm-map-station { border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; box-shadow:none; padding:13px 9px; transition:background .2s; }
.farm-map-station--active { background:#e7f2fa; box-shadow:none; }
.farm-map-station:hover { transform:none; background:#edf5fb; }
.farm-map-station strong,.farm-map-station b { font-weight:500; }
.farm-map-filter { font-size:12px; font-weight:500; letter-spacing:0; }
.farm-map-toolbar { gap:16px; }
.farm-map-controls,.farm-map-icon-button,.farm-map-reset,.farm-map-attribution { border-radius:2px; box-shadow:none; }
.farm-map-kicker { font-size:11px; font-weight:400; letter-spacing:0; text-transform:none; }
@media(max-width:700px) {
  .farm-map-toolbar { gap:17px; }
  .farm-map-filter { font-size:11px; }
}
@media(max-width:700px) {
  .journey-copy-stack { top:18%; }
  .journey-copy p { font-size:12px; line-height:1.8; max-width:250px; }
  .journey-model { height:53vh; right:-9%; bottom:5%; }
  .journey-rail { bottom:24px; padding-bottom:8px; }
  .journey-rail button { padding:12px 0; min-height:40px; font-size:9px; }
  .journey-skip { bottom:79px; font-size:10px; }
  .farm-map-filter { padding:12px 0 9px; min-height:40px; }
  .farm-map-touch-hint { bottom:37px; font-size:9px; font-weight:500; background:#ffffffd9; padding:5px 6px; }
}
@media(max-width:700px) {
  .journey-model { transform:translate3d(calc(var(--journey-progress) * -15px),0,0) scale(calc(1 + var(--journey-progress) * .04)); }
  .journey-skip { left:var(--page-pad); right:auto; bottom:93px; }
}
@media(max-width:380px) {
  .farm-map-toolbar { gap:10px; }
  .journey-copy h2 { font-size:38px; letter-spacing:-2px; }
  .journey-copy-stack { width:85%; }
  .journey-copy p { font-size:11px; max-width:235px; }
}
