:root{
  --ink:#0e1c25;
  --blue:#0d3f63;
  --blue-deep:#082c46;
  --sky:#8fcbd5;
  --sand:#efe7da;
  --paper:#f8f6f1;
  --orange:#e8793f;
  --white:#fff;
  --muted:#67727a;
  --line:rgba(14,28,37,.14);
  --radius:24px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--paper);color:var(--ink);line-height:1.5;overflow-x:hidden}
a{text-decoration:none;color:inherit}
button{font:inherit}
.story-progress{position:fixed;left:0;top:0;width:100%;height:3px;z-index:1001;background:transparent}.story-progress span{display:block;height:100%;width:0;background:var(--orange);transition:width .08s linear}
.site-header{position:fixed;z-index:1000;top:18px;left:50%;transform:translateX(-50%);width:min(94%,1420px);height:66px;padding:0 12px 0 18px;border:1px solid rgba(255,255,255,.18);border-radius:22px;display:flex;align-items:center;gap:24px;color:white;background:rgba(7,26,38,.34);backdrop-filter:blur(18px);transition:.35s ease;box-shadow:0 8px 32px rgba(0,0,0,.08)}
.site-header.scrolled{top:10px;background:rgba(248,246,241,.92);color:var(--ink);border-color:rgba(14,28,37,.1);box-shadow:0 12px 38px rgba(13,34,48,.12)}
.brand{display:flex;align-items:center;gap:11px;font-weight:800;letter-spacing:.04em;white-space:nowrap}.brand-mark{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--orange);color:white;font-family:Manrope;font-weight:800}.brand-text{font-size:13px}
.desktop-nav{margin-left:auto;display:flex;align-items:center;gap:28px;font-size:14px;font-weight:600}.desktop-nav>a,.nav-trigger{opacity:.88;transition:.2s}.desktop-nav>a:hover,.nav-trigger:hover{opacity:1}.nav-trigger{border:0;background:none;color:inherit;cursor:pointer;padding:8px 0}.nav-trigger span{font-size:11px;margin-left:3px}
.header-actions{display:flex;align-items:center;gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:16px;padding:15px 21px;border-radius:999px;font-weight:700;font-size:14px;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--orange);color:white;box-shadow:0 10px 28px rgba(232,121,63,.25)}.btn-light{background:white;color:var(--ink)}.btn-small{padding:11px 16px;font-size:13px}.site-header.scrolled .btn-light{background:var(--ink);color:white}
.menu-button{display:none;width:42px;height:42px;border-radius:50%;border:1px solid currentColor;background:transparent;color:inherit;position:relative}.menu-button span{position:absolute;width:16px;height:1px;background:currentColor;left:12px}.menu-button span:first-child{top:16px}.menu-button span:last-child{top:23px}
.mega-menu{position:absolute;top:76px;right:78px;width:min(880px,calc(100vw - 40px));background:rgba(248,246,241,.98);color:var(--ink);border:1px solid rgba(14,28,37,.08);border-radius:24px;padding:26px 28px 30px;box-shadow:0 30px 70px rgba(0,0,0,.22);opacity:0;transform:translateY(-8px);pointer-events:none;transition:.22s ease}.mega-menu.open{opacity:1;transform:none;pointer-events:auto}.mega-kicker{font-size:11px;letter-spacing:.18em;font-weight:800;color:var(--orange);margin-bottom:18px}.mega-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.mega-grid.two-col{grid-template-columns:repeat(2,1fr)}.mega-grid h3{font:700 14px Manrope;margin:0 0 12px}.mega-grid a{display:block;padding:12px 0;border-top:1px solid var(--line)}.mega-grid strong{display:block;font-size:14px;margin-bottom:2px}.mega-grid small{display:block;color:var(--muted);font-size:12px;line-height:1.4}
.mobile-menu{position:fixed;inset:0;z-index:1200;background:var(--ink);color:white;opacity:0;pointer-events:none;transition:.25s ease}.mobile-menu.open{opacity:1;pointer-events:auto}.mobile-close{position:absolute;right:24px;top:20px;border:0;background:none;color:white;font-size:38px;font-weight:200}.mobile-menu-inner{max-width:700px;margin:0 auto;padding:100px 28px 40px}.mobile-menu-inner>a{display:grid;grid-template-columns:54px 1fr;gap:16px;padding:23px 0;border-top:1px solid rgba(255,255,255,.16)}.mobile-menu-inner>a span{color:var(--orange);font-size:12px;letter-spacing:.1em}.mobile-menu-inner strong{display:block;font:700 30px Manrope}.mobile-menu-inner small{display:block;color:rgba(255,255,255,.6);margin-top:5px}.mobile-tagline{border-top:1px solid rgba(255,255,255,.16);margin-top:12px;padding-top:28px;font-weight:700;letter-spacing:.08em}.mobile-tagline em{font-family:Georgia,serif;font-weight:400;letter-spacing:0;color:var(--sky)}
.section-dark{color:white}.hero{min-height:100svh;position:relative;display:flex;align-items:flex-end;padding:150px max(5vw,36px) 11vh;overflow:hidden}.hero-bg,.closing-bg{position:absolute;inset:0;transform:scale(1.04)}
.hero-bg{background:url('hero-v16.png') center/cover no-repeat}
.closing-bg{background:url('hero-v12.jpg') center/cover no-repeat}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,22,34,.86) 0%,rgba(6,22,34,.64) 45%,rgba(6,22,34,.22) 100%),linear-gradient(0deg,rgba(6,22,34,.62),transparent 55%)}.hero-content{position:relative;z-index:2;max-width:1040px}.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:800;text-transform:uppercase;color:#c7e7e8;margin-bottom:22px}.eyebrow.dark{color:var(--blue)}.hero h1{font:700 clamp(44px,6.3vw,88px)/.98 Manrope;margin:0;letter-spacing:-.045em;max-width:1120px}.hero p{font-size:clamp(17px,1.5vw,22px);max-width:760px;color:rgba(255,255,255,.82);margin:30px 0 32px}.hero-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap}.text-link{font-weight:700;font-size:14px}.hero-index{position:absolute;right:max(5vw,36px);bottom:40px;z-index:2;font-size:11px;letter-spacing:.14em;color:rgba(255,255,255,.55)}
.section{position:relative;padding:130px max(5vw,36px)}.section-light{background:var(--paper)}.section-sand{background:var(--sand)}.section-blue{background:var(--blue);color:white}.section-ink{background:var(--ink);color:white}.section-number{position:absolute;top:42px;left:max(5vw,36px);font-size:11px;letter-spacing:.16em;color:rgba(14,28,37,.38)}.section-number.light{color:rgba(255,255,255,.38)}.split{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:10vw;align-items:start}.section-heading h2,.center-heading h2,.vision-grid h2,.research-wrap h2,.closing-content h2{font:700 clamp(42px,5.6vw,78px)/1.02 Manrope;letter-spacing:-.045em;margin:0}.section-copy{max-width:730px}.large-copy p{font-size:clamp(18px,1.6vw,23px);color:#35434b;margin:0 0 24px}.choice-stack{padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:34px 0}.choice-stack span,.choice-stack strong{display:block;font:600 clamp(25px,2.4vw,38px)/1.22 Manrope}.choice-stack strong{color:var(--orange);margin-top:5px}.arrow-link{display:inline-flex;gap:16px;align-items:center;font-weight:800;margin-top:10px}.arrow-link span{color:var(--orange)}
.center-heading{text-align:center;max-width:900px;margin:0 auto}.center-heading p{max-width:700px;margin:24px auto 0;font-size:18px;color:#46545c}.system-grid{max-width:1160px;margin:70px auto 55px;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.system-grid article{background:rgba(255,255,255,.64);padding:28px;border-radius:20px;border:1px solid rgba(14,28,37,.08);min-height:190px}.system-icon{font-size:38px;color:var(--orange);height:48px}.system-grid h3{font:700 20px Manrope;margin:14px 0 8px}.system-grid p{color:#52606a;margin:0;font-size:14px}.flow-diagram{max-width:1120px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:12px;background:white;border-radius:28px;padding:28px;box-shadow:0 18px 55px rgba(46,52,47,.08)}.flow-node{border:1px solid var(--line);border-radius:16px;padding:18px 20px;min-width:160px;text-align:center;font-size:12px;font-weight:800;letter-spacing:.08em}.flow-node small{font-weight:500;letter-spacing:0;color:var(--muted)}.flow-node.ocean{background:#d6edf0}.flow-node.river{background:#dbe6ee}.flow-node.wide{min-width:190px}.flow-arrow{font-size:28px;color:var(--orange)}.center-action{text-align:center;margin-top:30px}
.goal-wrap{max-width:1050px;margin:0 auto;text-align:center}.goal-number{font:800 clamp(90px,18vw,240px)/.8 Manrope;letter-spacing:-.08em;color:white;margin-top:34px}.goal-number small{display:block;font:700 16px/1 Inter;letter-spacing:.2em;margin-top:28px;color:#aad5dc}.goal-wrap h2{font:700 clamp(34px,4.4vw,64px)/1.05 Manrope;letter-spacing:-.04em;margin:45px 0 0}.goal-wrap h2 em{font-family:Georgia,serif;font-weight:400;color:#acd8df}.goal-wrap>p{max-width:780px;margin:26px auto 0;color:rgba(255,255,255,.78);font-size:18px}.goal-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:54px auto 38px}.goal-metrics div{padding:25px 16px;border-top:1px solid rgba(255,255,255,.2)}.goal-metrics span{display:block;font:700 38px Manrope}.goal-metrics small{display:block;margin-top:8px;font-size:10px;letter-spacing:.12em;color:#add8df}
.vision-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.9fr);gap:10vw;align-items:start}.vision-grid h2 span{font-family:Georgia,serif;font-weight:400;color:var(--orange)}.vision-copy p{font-size:18px;color:#445159}.vision-copy .vision-callout{font:600 clamp(24px,2.3vw,36px)/1.26 Manrope;color:var(--blue);padding:34px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:34px 0}.vision-copy h3{font:700 clamp(30px,3.2vw,48px)/1.08 Manrope;color:var(--orange);margin:42px 0 0}
.research-wrap{max-width:1100px;margin:0 auto;text-align:center}.research-lede{font:500 clamp(21px,2.2vw,31px)/1.35 Manrope;color:#c7d4db;max-width:780px;margin:28px auto 44px}.evidence-line{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;padding:28px 0;border-top:1px solid rgba(255,255,255,.13);border-bottom:1px solid rgba(255,255,255,.13);font-size:11px;font-weight:800;letter-spacing:.1em}.evidence-line i{font-style:normal;color:var(--orange)}.research-wrap>p:not(.research-lede){max-width:780px;margin:36px auto;color:rgba(255,255,255,.67);font-size:17px}
.closing{min-height:80vh;position:relative;display:flex;align-items:center;justify-content:center;text-align:center;padding:120px max(5vw,36px);overflow:hidden}.closing-bg{filter:saturate(.84)}.closing-overlay{position:absolute;inset:0;background:rgba(5,24,36,.7)}.closing-content{position:relative;z-index:2;max-width:1000px}.closing-content p{font-size:19px;color:rgba(255,255,255,.75);max-width:680px;margin:28px auto}.closing-content h3{font:400 clamp(32px,4.2vw,58px)/1.08 Georgia,serif;color:#bfe4e5;margin:34px 0}
footer{background:#071b28;color:#98aab3;padding:26px max(5vw,36px);display:flex;justify-content:space-between;gap:20px;font-size:11px;letter-spacing:.08em}.footer-brand{font-weight:800;color:white}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}
@media (max-width:980px){.desktop-nav,.header-actions .btn-small{display:none}.menu-button{display:block}.header-actions{margin-left:auto}.site-header{height:62px}.mega-menu{display:none}.split,.vision-grid{grid-template-columns:1fr;gap:48px}.system-grid{grid-template-columns:repeat(2,1fr)}.flow-diagram{overflow-x:auto;justify-content:flex-start}.flow-node{min-width:150px;flex:0 0 auto}.goal-metrics{grid-template-columns:1fr}.goal-metrics div{border-top:1px solid rgba(255,255,255,.18)}}
@media (max-width:640px){.site-header{width:calc(100% - 22px);top:10px;border-radius:18px;padding-left:12px}.brand-text{font-size:11px}.hero{padding:130px 22px 70px;min-height:92svh}.hero h1{font-size:43px}.hero p{font-size:16px}.hero-index{right:22px;bottom:22px}.section{padding:100px 22px}.section-number{left:22px;top:30px}.section-heading h2,.center-heading h2,.vision-grid h2,.research-wrap h2,.closing-content h2{font-size:42px}.system-grid{grid-template-columns:1fr;margin-top:46px}.flow-diagram{padding:18px;border-radius:20px}.goal-number{font-size:112px}.goal-wrap>p{font-size:16px}.closing{padding:100px 22px;min-height:72vh}footer{flex-direction:column}.mobile-menu-inner strong{font-size:25px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.btn{transition:none}}

/* V1.1 refinements */
.hero::before,.hero::after,.hero-content::before,.hero-content::after{content:none!important;display:none!important}
@media (min-width:641px) and (max-width:1180px){
  .hero{padding-top:130px;padding-bottom:8vh}
  .hero-content{max-width:900px}
  .hero h1{font-size:clamp(48px,5.6vw,66px);line-height:1.01;max-width:920px}
  .hero p{font-size:18px;max-width:700px;margin-top:24px}
}


/* V1.2 - mask legacy text baked into the original background artwork.
   This is intentionally done in CSS so no new hero artwork is required. */
.hero-overlay{
  background:
    linear-gradient(90deg,rgba(6,22,34,.985) 0%,rgba(6,22,34,.93) 38%,rgba(6,22,34,.68) 56%,rgba(6,22,34,.22) 76%,rgba(6,22,34,.76) 100%),
    linear-gradient(0deg,rgba(6,22,34,.68),transparent 52%);
}
/* Extra edge masks cover the legacy words embedded at far left/right of the photo. */
.hero::before{
  content:""!important;
  display:block!important;
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(6,22,34,.55) 0%,transparent 36%),
    linear-gradient(270deg,rgba(6,22,34,.72) 0%,transparent 19%);
}
.hero-content,.hero-index{z-index:2}

.closing-overlay{
  background:
    linear-gradient(90deg,rgba(5,24,36,.94) 0%,rgba(5,24,36,.86) 50%,rgba(5,24,36,.94) 100%),
    rgba(5,24,36,.86);
}
/* The closing section reuses the same source photo, so mask legacy lettering there too. */
.closing::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(5,24,36,.55) 0%,transparent 28%,transparent 72%,rgba(5,24,36,.55) 100%);
}
.closing-content{z-index:2}

/* V1.3 - imagery throughout the story */
.challenge-visual-grid{max-width:1180px;margin:70px auto 0;display:grid;grid-template-columns:1.25fr .9fr .9fr;gap:16px}
.photo-card{position:relative;min-height:250px;margin:0;overflow:hidden;border-radius:22px;background:#d9e2e6;box-shadow:0 18px 45px rgba(23,38,46,.10)}
.photo-card-large{min-height:300px}
.photo-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.photo-card:hover img{transform:scale(1.035)}
.photo-card::after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(4,19,29,.86))}
.photo-card figcaption{position:absolute;z-index:2;left:22px;right:22px;bottom:20px;color:white}
.photo-card figcaption strong{display:block;font:700 18px Manrope;margin-bottom:5px}
.photo-card figcaption span{display:block;font-size:13px;line-height:1.4;color:rgba(255,255,255,.82)}

.idea-visual{max-width:1160px;margin:68px auto 0;display:grid;grid-template-columns:1.15fr .85fr;overflow:hidden;border-radius:26px;background:white;box-shadow:0 20px 58px rgba(46,52,47,.09)}
.idea-visual img{width:100%;height:100%;min-height:330px;object-fit:cover}
.idea-visual-copy{padding:48px;display:flex;flex-direction:column;justify-content:center}
.mini-kicker{font-size:10px;letter-spacing:.16em;font-weight:800;color:var(--orange);margin-bottom:14px}
.idea-visual-copy h3{font:700 clamp(27px,3vw,42px)/1.08 Manrope;letter-spacing:-.035em;margin:0 0 18px;color:var(--blue)}
.idea-visual-copy p{margin:0;color:#51606a;font-size:16px;line-height:1.6}

.goal-visual{max-width:930px;margin:18px auto 42px;position:relative;overflow:hidden;border-radius:24px;min-height:280px;border:1px solid rgba(255,255,255,.15)}
.goal-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.goal-visual::after{content:"";position:absolute;inset:30% 0 0;background:linear-gradient(transparent,rgba(5,24,36,.92))}
.goal-visual figcaption{position:absolute;z-index:2;left:28px;right:28px;bottom:24px;text-align:left;color:white}
.goal-visual strong{display:block;font:700 22px Manrope;margin-bottom:6px}
.goal-visual span{display:block;max-width:720px;color:rgba(255,255,255,.78);font-size:14px;line-height:1.5}

.vision-gallery{max-width:1200px;margin:72px auto 0;display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.vision-gallery figure{margin:0;position:relative;overflow:hidden;border-radius:18px;min-height:220px;background:#d8dee0}
.vision-gallery img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.vision-gallery figure:hover img{transform:scale(1.045)}
.vision-gallery figure::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(6,22,34,.82))}
.vision-gallery figcaption{position:absolute;z-index:2;left:16px;right:16px;bottom:15px;color:white;font:700 14px Manrope}

.research-gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:10px auto 42px;max-width:1100px}
.research-gallery figure{margin:0;position:relative;overflow:hidden;border-radius:16px;min-height:150px;background:#19313f;border:1px solid rgba(255,255,255,.08)}
.research-gallery img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.88)}
.research-gallery figure::after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,rgba(4,18,27,.92))}
.research-gallery figcaption{position:absolute;z-index:2;left:13px;right:13px;bottom:12px;text-align:left;color:white;font:700 12px Manrope}

@media (max-width:980px){
  .challenge-visual-grid{grid-template-columns:1fr 1fr}.photo-card-large{grid-column:1 / -1}
  .idea-visual{grid-template-columns:1fr}.idea-visual img{min-height:300px}.idea-visual-copy{padding:36px}
  .vision-gallery{grid-template-columns:repeat(2,1fr)}.vision-gallery figure:first-child{grid-column:1 / -1}
  .research-gallery{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:640px){
  .challenge-visual-grid{grid-template-columns:1fr;margin-top:44px}.photo-card-large{grid-column:auto}.photo-card,.photo-card-large{min-height:230px}
  .idea-visual{margin-top:44px;border-radius:20px}.idea-visual img{min-height:230px}.idea-visual-copy{padding:28px}
  .goal-visual{min-height:240px;margin-top:8px}.goal-visual figcaption{left:20px;right:20px;bottom:18px}
  .vision-gallery{grid-template-columns:1fr 1fr;margin-top:48px}.vision-gallery figure:first-child{grid-column:1 / -1}.vision-gallery figure{min-height:180px}
  .research-gallery{grid-template-columns:1fr 1fr;margin-bottom:34px}.research-gallery figure{min-height:135px}.research-gallery figure:last-child{grid-column:1 / -1}
}

/* V1.4 — aspirational visual language: landscape first, infrastructure second */
.idea-visual, .research-gallery figure, .vision-gallery figure {
  position: relative;
  overflow: hidden;
}
.idea-visual::after, .research-gallery figure::after, .vision-gallery figure::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(7,28,43,0.00) 48%, rgba(7,28,43,0.30) 100%);
}
.idea-visual img, .research-gallery img, .vision-gallery img {
  filter: saturate(.92) contrast(.96);
}
.research-gallery figcaption, .vision-gallery figcaption {
  z-index: 2;
}

/* V1.6 — guided story navigation + screen-sized chapters without clipping imagery */
html{
  scroll-padding-top:0;
  scroll-snap-type:y proximity;
}
.story-panel{
  min-height:100svh;
  scroll-snap-align:start;
  scroll-snap-stop:normal;
}
.story-next.is-complete{
  opacity:.58;
  pointer-events:none;
  cursor:default;
}
.story-complete{
  display:inline-flex;
  max-width:660px;
  margin:10px auto 0;
  padding:13px 18px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  color:rgba(255,255,255,.76);
  background:rgba(255,255,255,.06);
  font-size:13px;
  line-height:1.4;
}
.story-action{margin-top:18px}

/* Desktop/tablet chapters are composed to fit one viewport, but never crop content. */
@media (min-width:700px){
  .hero,.closing{min-height:100svh}
  .section{
    min-height:100svh;
    padding:clamp(76px,8.5vh,104px) max(4.5vw,34px) clamp(24px,3.5vh,42px);
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .section-number{top:clamp(80px,9vh,108px)}
  .hero{padding-top:clamp(118px,13vh,148px);padding-bottom:clamp(48px,7vh,78px)}
  .hero h1{font-size:clamp(44px,5vw,74px);max-width:1020px}
  .hero p{margin:clamp(16px,2vh,24px) 0 clamp(18px,2.5vh,28px);font-size:clamp(16px,1.25vw,19px)}

  #challenge .split{gap:5.5vw}
  #challenge .section-heading h2{font-size:clamp(36px,4vw,60px)}
  #challenge .large-copy p{font-size:clamp(14px,1.1vw,17px);margin-bottom:clamp(8px,1vh,14px)}
  #challenge .choice-stack{padding:clamp(10px,1.4vh,16px) 0;margin:clamp(10px,1.5vh,18px) 0}
  #challenge .choice-stack span,#challenge .choice-stack strong{font-size:clamp(20px,1.8vw,28px)}
  .challenge-visual-grid{margin-top:clamp(14px,2vh,24px);height:clamp(175px,25vh,270px);min-height:0}
  .photo-card,.photo-card-large{min-height:0;height:100%}

  #idea .center-heading h2{font-size:clamp(34px,3.7vw,54px)}
  #idea .center-heading p{margin-top:9px;font-size:clamp(13px,1.05vw,16px)}
  .idea-visual{margin-top:clamp(12px,1.8vh,20px);height:clamp(155px,21vh,220px);min-height:0}
  .idea-visual img{min-height:0;height:100%}
  .idea-visual-copy{padding:clamp(16px,2vw,28px)}
  .idea-visual-copy h3{font-size:clamp(21px,2vw,30px);margin-bottom:7px}
  .idea-visual-copy p{font-size:clamp(12px,.95vw,14px)}
  .system-grid{margin:clamp(10px,1.3vh,16px) auto;gap:10px}
  .system-grid article{min-height:0;padding:clamp(10px,1.2vw,15px)}
  .system-icon{font-size:25px;height:29px}
  .system-grid h3{font-size:15px;margin:5px 0 3px}
  .system-grid p{font-size:11px}
  .flow-diagram{padding:10px 12px;border-radius:18px}
  .flow-node{padding:8px 10px;min-width:116px;font-size:9px}
  .flow-node.wide{min-width:140px}
  .flow-arrow{font-size:18px}
  #idea .center-action{margin-top:8px}

  #goal .goal-wrap{max-width:960px}
  #goal .eyebrow{margin-bottom:6px}
  .goal-number{font-size:clamp(72px,10vh,108px);line-height:.84;margin-top:7px}
  .goal-number small{font-size:11px;margin-top:10px}
  .goal-wrap h2{font-size:clamp(26px,3vw,42px);margin-top:14px}
  .goal-wrap>p{font-size:clamp(13px,1.05vw,16px);margin-top:9px}
  .goal-metrics{margin:clamp(12px,1.7vh,20px) auto 8px}
  .goal-metrics div{padding:10px 8px}
  .goal-metrics span{font-size:28px}
  .goal-visual{height:clamp(140px,19vh,200px);min-height:0;margin:6px auto 12px}
  .goal-visual strong{font-size:16px}.goal-visual span{font-size:11px}

  #vision .vision-grid{gap:5.5vw}
  #vision .vision-grid h2{font-size:clamp(34px,3.8vw,56px)}
  #vision .vision-copy p{font-size:clamp(13px,1vw,16px);margin:0 0 9px}
  #vision .vision-copy .vision-callout{font-size:clamp(18px,1.7vw,25px);padding:12px 0;margin:12px 0}
  #vision .vision-copy h3{font-size:clamp(22px,2.2vw,34px);margin:13px 0 0}
  .vision-gallery{margin-top:clamp(14px,2vh,22px);height:clamp(135px,19vh,195px)}
  .vision-gallery figure{min-height:0;height:100%}
  #vision .story-action{margin-top:8px}

  #research .research-wrap h2{font-size:clamp(34px,4vw,58px)}
  #research .research-lede{font-size:clamp(16px,1.5vw,22px);margin:10px auto 14px}
  .research-gallery{height:clamp(120px,18vh,170px);margin:3px auto 12px}
  .research-gallery figure{min-height:0;height:100%}
  .evidence-line{padding:10px 0;gap:9px}
  .research-wrap>p:not(.research-lede){margin:12px auto;font-size:clamp(12px,1vw,15px)}

  .closing{min-height:100svh;padding:clamp(96px,11vh,140px) max(5vw,36px)}
  .closing-content h2{font-size:clamp(40px,5vw,70px)}
  .closing-content p{margin:16px auto;font-size:16px}
  .closing-content h3{font-size:clamp(28px,3.5vw,48px);margin:18px 0}
}

/* iPad / short landscape: keep every image visible and tighten text instead of hiding content. */
@media (min-width:700px) and (max-height:820px){
  .section{padding-top:70px;padding-bottom:16px}
  .section-number{top:73px}
  .eyebrow{margin-bottom:7px}
  .challenge-visual-grid{height:22vh;margin-top:10px}
  .photo-card figcaption{padding:14px}.photo-card figcaption span{font-size:10px}
  .idea-visual{height:19vh;margin-top:9px}
  .system-grid{margin:7px auto}.system-grid article{padding:8px}
  .flow-diagram{padding:7px}
  .goal-number{font-size:74px}.goal-wrap h2{margin-top:9px}.goal-wrap>p{margin-top:6px}
  .goal-metrics{margin:8px auto 4px}.goal-visual{height:16vh;margin-bottom:7px}
  .vision-gallery{height:16vh;margin-top:10px}
  .research-gallery{height:15vh;margin-bottom:9px}
}

/* Phones get a full-height chapter start, with content allowed to extend naturally. */
@media (max-width:699px){
  html{scroll-snap-type:y proximity}
  .story-panel{min-height:100svh;scroll-snap-align:start}
  .section{padding-top:92px;padding-bottom:54px}
  .story-action{margin-top:18px}
  .story-complete{border-radius:20px}
}


/* V1.7 stabilization — one chapter, one source of truth, visible imagery on every screen */
.closing-bg{background:url('final-future-v17.png') center/cover no-repeat;filter:saturate(.9)}
.closing::before{display:none}
.closing-overlay{background:linear-gradient(90deg,rgba(5,24,36,.88) 0%,rgba(5,24,36,.62) 52%,rgba(5,24,36,.38) 100%)}
.final-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:22px auto 8px}

/* Keep chapter imagery visible within a landscape tablet viewport. */
@media (min-width:700px){
  #challenge .split{max-width:1180px;width:100%;margin:0 auto}
  #challenge .challenge-visual-grid{width:100%;flex:0 0 auto}
  #vision .vision-grid{max-width:1180px;width:100%;margin:0 auto}
  #vision .vision-gallery{width:100%;flex:0 0 auto}
  #research .research-wrap{width:min(1100px,100%);margin:0 auto}
  #research .research-gallery{width:100%;flex:0 0 auto}
}
@media (min-width:700px) and (max-height:900px){
  #challenge{padding-top:64px;padding-bottom:12px;justify-content:center}
  #challenge .split{gap:4vw}
  #challenge .section-heading h2{font-size:clamp(32px,3.5vw,48px)}
  #challenge .large-copy p{font-size:13px;line-height:1.45;margin-bottom:7px}
  #challenge .choice-stack{padding:7px 0;margin:7px 0}
  #challenge .choice-stack span,#challenge .choice-stack strong{font-size:19px}
  #challenge .arrow-link{margin-top:2px}
  #challenge .challenge-visual-grid{height:190px;margin-top:10px;gap:10px}
  #challenge .photo-card figcaption{padding:0;left:14px;right:14px;bottom:12px}
  #challenge .photo-card figcaption strong{font-size:14px}
  #challenge .photo-card figcaption span{font-size:9px}

  #vision{padding-top:64px;padding-bottom:12px}
  #vision .vision-grid{gap:4vw}
  #vision .vision-grid h2{font-size:clamp(30px,3.3vw,46px)}
  #vision .vision-copy p{font-size:12px;line-height:1.42;margin-bottom:6px}
  #vision .vision-copy .vision-callout{font-size:17px;padding:7px 0;margin:7px 0}
  #vision .vision-copy h3{font-size:22px;margin-top:8px}
  #vision .vision-gallery{height:175px;margin-top:10px}
  #vision .vision-gallery figcaption{font-size:11px;bottom:10px}

  #research{padding-top:64px;padding-bottom:12px}
  #research .research-wrap h2{font-size:clamp(30px,3.5vw,48px)}
  #research .research-lede{font-size:16px;margin:7px auto 9px}
  #research .research-gallery{height:155px;margin:3px auto 8px}
  #research .evidence-line{padding:7px 0}
  #research .research-wrap>p:not(.research-lede){font-size:12px;line-height:1.4;margin:8px auto}

  #goal .goal-visual{height:150px}
  .closing{padding-top:84px;padding-bottom:34px}
}

/* V1.8 polish — stronger chapter typography, consistent bottom CTA, richer evidence */
.chapter-cta{min-width:190px;justify-content:center;box-shadow:0 12px 28px rgba(214,103,50,.18)}
.chapter-action{margin-top:auto;padding-top:14px}
#challenge .section-copy{display:flex;flex-direction:column;align-items:flex-start}
#challenge .chapter-cta{margin-top:10px}
#goal .chapter-cta{display:inline-flex;margin-top:12px}
#vision .chapter-action{width:100%}
.evidence-questions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px auto 14px;text-align:left}
.evidence-questions article{padding:14px 15px;border:1px solid rgba(255,255,255,.13);border-radius:16px;background:rgba(255,255,255,.045)}
.evidence-questions strong{display:block;font:700 15px/1.2 Manrope;margin-bottom:5px;color:#fff}
.evidence-questions span{display:block;font-size:11px;line-height:1.4;color:rgba(255,255,255,.68)}
.research-wrap .evidence-promise{max-width:900px!important}
.research-wrap .evidence-promise strong{color:#fff}

@media (min-width:700px){
  #challenge .section-heading h2{font-size:clamp(40px,4.4vw,62px)}
  #challenge .large-copy p{font-size:clamp(17px,1.45vw,21px);line-height:1.48}
  #challenge .choice-stack span,#challenge .choice-stack strong{font-size:clamp(23px,2.2vw,33px)}
  #research .research-lede{font-size:clamp(18px,1.8vw,25px)}
  #research .research-wrap>p:not(.research-lede){font-size:clamp(14px,1.2vw,17px);line-height:1.5}
}
@media (min-width:700px) and (max-height:900px){
  #challenge{padding-top:64px;padding-bottom:18px}
  #challenge .section-heading h2{font-size:clamp(38px,4vw,56px)}
  #challenge .large-copy p{font-size:clamp(15px,1.35vw,19px);line-height:1.42;margin-bottom:9px}
  #challenge .choice-stack{padding:9px 0;margin:9px 0}
  #challenge .choice-stack span,#challenge .choice-stack strong{font-size:clamp(21px,2vw,29px)}
  #challenge .challenge-visual-grid{height:205px;margin-top:12px}
  #challenge .chapter-cta{margin-top:4px}
  #goal{padding-bottom:18px}
  #goal .goal-visual{height:155px;margin-bottom:8px}
  #vision{padding-bottom:18px}
  #vision .vision-copy p{font-size:13px;line-height:1.46;margin-bottom:7px}
  #vision .vision-gallery{height:180px}
  #research{padding-top:58px;padding-bottom:16px}
  #research .research-wrap h2{font-size:clamp(34px,3.7vw,50px)}
  #research .research-lede{font-size:17px;margin:6px auto 8px}
  #research .research-gallery{height:115px;margin:3px auto 8px}
  #research .evidence-questions{margin:8px auto;gap:8px}
  #research .evidence-questions article{padding:10px 11px}
  #research .evidence-questions strong{font-size:13px}
  #research .evidence-questions span{font-size:10px;line-height:1.3}
  #research .evidence-line{padding:7px 0}
  #research .research-wrap>p:not(.research-lede){font-size:12px;line-height:1.4;margin:7px auto}
}
@media (max-width:900px){.evidence-questions{grid-template-columns:1fr 1fr}}
@media (max-width:640px){
  .chapter-cta{width:100%;max-width:360px}
  .evidence-questions{grid-template-columns:1fr}
  .evidence-questions strong{font-size:16px}.evidence-questions span{font-size:13px}
}

/* V1.9 — functional chapter rail, larger Vision, calmer Evidence */
.chapter-rail{
  position:fixed;z-index:900;right:clamp(18px,2.1vw,34px);top:50%;transform:translateY(-44%);
  width:152px;padding:10px 0;color:white;filter:drop-shadow(0 4px 16px rgba(0,0,0,.28));
}
.chapter-rail-line{position:absolute;left:8px;top:22px;bottom:22px;width:2px;background:rgba(255,255,255,.42)}
.chapter-rail a{position:relative;display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:center;min-height:54px;color:rgba(255,255,255,.75);font-size:12px;line-height:1.15;transition:.2s ease}
.chapter-rail a i{position:relative;z-index:2;width:14px;height:14px;border-radius:50%;border:3px solid rgba(255,255,255,.75);background:#21313a;transition:.2s ease}
.chapter-rail a span{display:block}.chapter-rail a b{display:block;color:rgba(255,255,255,.62);font-size:10px;margin-bottom:3px;letter-spacing:.08em}
.chapter-rail a.active{color:#fff;font-weight:700}.chapter-rail a.active i{border-color:#fff;background:var(--orange);box-shadow:0 0 0 4px rgba(232,121,63,.18)}.chapter-rail a.active b{color:var(--orange)}
.chapter-rail a.next-up i{border-color:var(--orange)}
body.rail-on-light .chapter-rail{color:var(--ink);filter:none}
body.rail-on-light .chapter-rail-line{background:rgba(14,28,37,.20)}
body.rail-on-light .chapter-rail a{color:rgba(14,28,37,.62)}
body.rail-on-light .chapter-rail a i{border-color:rgba(14,28,37,.38);background:var(--paper)}
body.rail-on-light .chapter-rail a b{color:rgba(14,28,37,.46)}
body.rail-on-light .chapter-rail a.active{color:var(--ink)}
body.rail-on-light .chapter-rail a.active i{border-color:#fff;background:var(--orange)}
body.rail-on-light .chapter-rail a.active b{color:var(--orange)}
body.rail-on-light .chapter-rail a.next-up i{border-color:var(--orange)}

/* Vision uses the available viewport instead of leaving a large empty lower field. */
@media (min-width:700px){
  #vision{justify-content:center;padding-top:clamp(76px,8vh,94px);padding-bottom:clamp(22px,3vh,34px)}
  #vision .vision-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(44px,6vw,92px)}
  #vision .vision-grid h2{font-size:clamp(48px,4.7vw,70px);line-height:1.01}
  #vision .vision-copy p{font-size:clamp(16px,1.25vw,19px);line-height:1.48;margin-bottom:11px}
  #vision .vision-copy .vision-callout{font-size:clamp(23px,2vw,31px);padding:16px 0;margin:15px 0}
  #vision .vision-copy h3{font-size:clamp(28px,2.65vw,40px);margin-top:15px}
  #vision .vision-gallery{height:clamp(190px,24vh,250px);margin-top:clamp(16px,2.1vh,24px)}
  #vision .vision-gallery figcaption{font-size:13px}
  #vision .chapter-action{margin-top:12px;padding-top:0}
}

/* Evidence: four visual question cards replace the five-photo strip + four tiny text cards. */
#research .research-wrap{max-width:1180px}
.evidence-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px auto 18px;text-align:left}
.evidence-card{overflow:hidden;border-radius:19px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.05)}
.evidence-card img{display:block;width:100%;height:126px;object-fit:cover;filter:saturate(.9) contrast(.95)}
.evidence-card>div{padding:16px 16px 17px}
.evidence-card small{display:block;color:#9fd7de;font-size:9px;font-weight:800;letter-spacing:.12em;margin-bottom:7px}
.evidence-card strong{display:block;font:700 17px/1.18 Manrope;color:white;margin-bottom:7px}
.evidence-card span{display:block;font-size:12px;line-height:1.42;color:rgba(255,255,255,.68)}
#research .evidence-line{margin-top:2px}
#research .evidence-promise{margin-top:14px!important;margin-bottom:14px!important}

@media (min-width:700px) and (max-height:900px){
  #vision{padding-top:58px;padding-bottom:14px}
  #vision .vision-grid h2{font-size:clamp(43px,4.25vw,62px)}
  #vision .vision-copy p{font-size:15px;line-height:1.42;margin-bottom:8px}
  #vision .vision-copy .vision-callout{font-size:22px;padding:10px 0;margin:10px 0}
  #vision .vision-copy h3{font-size:29px;margin-top:10px}
  #vision .vision-gallery{height:205px;margin-top:12px}
  #vision .chapter-action{margin-top:8px}

  #research{padding-top:54px;padding-bottom:14px}
  #research .research-wrap h2{font-size:clamp(38px,3.8vw,54px)}
  #research .research-lede{font-size:18px;margin:7px auto 11px}
  #research .evidence-card-grid{gap:10px;margin:10px auto 9px}
  #research .evidence-card img{height:96px}
  #research .evidence-card>div{padding:11px 12px 12px}
  #research .evidence-card strong{font-size:14px;margin-bottom:4px}
  #research .evidence-card span{font-size:10px;line-height:1.34}
  #research .evidence-line{padding:7px 0}
  #research .evidence-promise{font-size:12px!important;line-height:1.38!important;margin:7px auto 8px!important}
}

@media (max-width:1180px){.chapter-rail{right:12px;width:132px}.chapter-rail a{font-size:11px;gap:7px}}
@media (max-width:980px){.chapter-rail{display:none}.evidence-card-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.evidence-card-grid{grid-template-columns:1fr}.evidence-card img{height:150px}}


/* V1.10 — use the Evidence viewport more fully and add coming-soon dialog */
@media (min-width:700px){
  #research{justify-content:center;padding-top:clamp(76px,8vh,96px);padding-bottom:clamp(26px,3vh,40px)}
  #research .research-wrap{max-width:1140px;width:100%}
  #research .research-wrap h2{font-size:clamp(52px,5vw,72px);line-height:.98}
  #research .research-lede{font-size:clamp(20px,1.8vw,26px);max-width:900px;margin:16px auto 22px}
  #research .evidence-card-grid{gap:16px;margin:20px auto 20px}
  #research .evidence-card img{height:clamp(138px,18vh,178px)}
  #research .evidence-card>div{padding:18px 18px 20px;min-height:154px}
  #research .evidence-card small{font-size:10px;margin-bottom:8px}
  #research .evidence-card strong{font-size:clamp(17px,1.35vw,20px);margin-bottom:8px}
  #research .evidence-card span{font-size:clamp(12px,.98vw,14px);line-height:1.46}
  #research .evidence-line{padding:13px 0;font-size:12px;gap:13px}
  #research .evidence-promise{font-size:clamp(13px,1.05vw,15px)!important;line-height:1.5!important;margin:15px auto 16px!important;max-width:980px!important}
  #research .chapter-cta{padding:16px 26px;font-size:15px}
}

/* iPad/short landscape: still fill the screen, but protect the chapter rail. */
@media (min-width:981px) and (max-width:1450px) and (max-height:1100px){
  #research .research-wrap{max-width:1080px;padding-right:108px}
  #research .research-wrap h2{font-size:56px}
  #research .research-lede{font-size:20px;margin:10px auto 16px}
  #research .evidence-card-grid{gap:12px;margin:14px auto 14px}
  #research .evidence-card img{height:145px}
  #research .evidence-card>div{padding:15px 15px 17px;min-height:150px}
  #research .evidence-card strong{font-size:17px}
  #research .evidence-card span{font-size:12px;line-height:1.42}
  #research .evidence-line{padding:10px 0;font-size:11px}
  #research .evidence-promise{font-size:13px!important;margin:12px auto 13px!important}
}

.coming-soon-modal{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .22s ease}
.coming-soon-modal.open,.coming-soon-modal:target{opacity:1;pointer-events:auto}
.coming-soon-backdrop{position:absolute;inset:0;background:rgba(5,18,27,.72);backdrop-filter:blur(9px)}
.coming-soon-card{position:relative;z-index:1;width:min(92vw,540px);padding:44px 42px 40px;border-radius:28px;background:var(--paper);color:var(--ink);text-align:center;box-shadow:0 34px 90px rgba(0,0,0,.34);transform:translateY(12px) scale(.985);transition:transform .22s ease}
.coming-soon-modal.open .coming-soon-card,.coming-soon-modal:target .coming-soon-card{transform:none}
.coming-soon-close{position:absolute;right:16px;top:12px;width:40px;height:40px;border:0;border-radius:50%;background:rgba(14,28,37,.07);color:var(--ink);font-size:28px;line-height:1;cursor:pointer}
.coming-soon-mark{width:54px;height:54px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:var(--orange);color:#fff;font:800 20px Manrope}
.coming-soon-card .eyebrow{margin-bottom:10px}
.coming-soon-card h2{font:700 clamp(36px,5vw,52px)/1 Manrope;letter-spacing:-.04em;margin:0 0 16px}
.coming-soon-card p{font-size:19px;line-height:1.55;color:#4c5961;margin:0 auto 28px;max-width:390px}
.coming-soon-trigger{border:0;cursor:pointer;font-family:inherit}
body.modal-open{overflow:hidden}
@media (max-width:640px){.coming-soon-card{padding:38px 24px 30px}.coming-soon-card p{font-size:17px}}

/* V1.11 — mobile chapter menu follows the six guided-story chapters. */
@media (max-width:900px){
  .mobile-menu{overflow-y:auto;-webkit-overflow-scrolling:touch}
  .mobile-menu-inner{padding-top:78px;padding-bottom:54px}
  .mobile-menu-inner>a{padding:16px 0}
  .mobile-menu-inner strong{font-size:clamp(21px,4.8vw,28px)}
  .mobile-menu-inner small{font-size:13px;line-height:1.35;max-width:34ch}
}
.coming-soon-close{text-decoration:none;display:grid;place-items:center}
.coming-soon-backdrop{display:block}

/* V1.12 — iOS-safe final-page actions and modal. */
.final-actions button.btn,
.coming-soon-card button.btn{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  font:inherit;
  cursor:pointer;
}
#comingSoonModalV112{position:fixed;inset:0;z-index:5000;place-items:center;padding:24px;opacity:1;pointer-events:auto}
#comingSoonModalV112 .coming-soon-backdrop{appearance:none;-webkit-appearance:none;border:0;padding:0;margin:0;cursor:pointer}
#comingSoonModalV112 .coming-soon-card{transform:none}
