:root {
  --ink: #090b0e;
  --ink-soft: #111820;
  --paper: #f5f7fa;
  --muted: #aeb8c5;
  --orange: #f58220;
  --blue: #173b65;
  --header-h: 76px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body {
  margin: 0;
  color: var(--paper);
  background: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }

.intro-loader { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; overflow: hidden; background: #fff; color: var(--blue); transition: clip-path 1s cubic-bezier(.77,0,.18,1) 1.55s; clip-path: inset(0); }
.intro-logo-wrap { position: relative; z-index: 2; width: min(680px, 78vw); text-align: center; opacity: 0; transform: translateY(28px); animation: intro-logo .85s cubic-bezier(.22,1,.36,1) .15s forwards; }
.intro-logo-wrap img { mix-blend-mode: multiply; }
.intro-logo-wrap span { display: block; margin-top: 24px; color: #243556; font-size: 10px; font-weight: 850; letter-spacing: .26em; }
.intro-wipe { position: absolute; inset: auto 0 0; height: 7px; background: var(--orange); transform: scaleX(0); transform-origin: left; animation: intro-wipe 1.35s cubic-bezier(.22,1,.36,1) .2s forwards; }
body.is-ready .intro-loader { clip-path: inset(0 0 100% 0); pointer-events: none; }
@keyframes intro-logo { to { opacity: 1; transform: translateY(0); } }
@keyframes intro-wipe { to { transform: scaleX(1); } }

.cursor-glow { position: fixed; left: 0; top: 0; z-index: 85; width: 260px; height: 260px; border-radius: 50%; pointer-events: none; opacity: 0; transform: translate3d(-50%,-50%,0); background: radial-gradient(circle, rgba(245,130,32,.12), transparent 70%); transition: opacity .3s ease; mix-blend-mode: screen; }
body.has-pointer .cursor-glow { opacity: 1; }

.progress { position: fixed; inset: 0 0 auto; height: 3px; z-index: 100; background: rgba(255,255,255,.08); }
.progress span { display: block; width: 100%; height: 100%; background: var(--orange); transform: scaleX(0); transform-origin: left; }

.site-header {
  position: fixed; inset: 0 0 auto; height: var(--header-h); z-index: 90;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 clamp(22px, 5vw, 80px);
  background: linear-gradient(to bottom, rgba(5,7,9,.9), transparent);
  transition: background .4s ease, backdrop-filter .4s ease;
}
.site-header.is-scrolled { background: rgba(9,11,14,.78); backdrop-filter: blur(18px); }
.brand { display: flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 800; letter-spacing: .12em; }
.brand-mark { width: 32px; height: 32px; display: grid; place-items: center; background: var(--orange); color: var(--ink); border-radius: 50%; font-size: 18px; }
nav { display: flex; align-items: center; gap: clamp(16px, 3vw, 42px); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
nav a { opacity: .76; transition: opacity .25s ease, color .25s ease; }
nav a:hover { opacity: 1; color: var(--orange); }
.nav-cta { padding: 12px 16px; border: 1px solid rgba(255,255,255,.32); }
.support-cta { display: inline-flex; align-items: center; gap: 11px; padding: 12px 15px; border: 1px solid var(--orange); color: var(--orange); opacity: 1; box-shadow: inset 0 0 0 0 var(--orange), 0 0 22px rgba(245,130,32,.12); transition: color .3s ease, box-shadow .3s ease, transform .3s ease; }
.support-cta:hover { color: var(--ink); box-shadow: inset 180px 0 0 0 var(--orange), 0 0 30px rgba(245,130,32,.22); transform: translateY(-2px); }
.support-cta i { font-size: 15px; font-style: normal; }

.scene { position: relative; overflow: clip; }
.parallax-media { position: absolute; inset: -12%; background-position: center; background-size: cover; will-change: transform; }
.hero { height: 100svh; min-height: 680px; display: grid; align-items: end; }
.hero-media { background-image: url("assets/home-hero-ai.png"); transform: scale(1.08); }
.hero-smoke { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; pointer-events: none; opacity: 1; mix-blend-mode: normal; filter: contrast(1.12); -webkit-mask-image: radial-gradient(ellipse 78% 36% at 55% 47%, #000 0 62%, transparent 100%); mask-image: radial-gradient(ellipse 78% 36% at 55% 47%, #000 0 62%, transparent 100%); }
.hero-shade { position: absolute; inset: 0; z-index: 0; background: linear-gradient(90deg, rgba(4,6,9,.88) 0%, rgba(4,6,9,.55) 48%, rgba(4,6,9,.12) 100%), linear-gradient(to top, rgba(9,11,14,.86), transparent 45%); }
.hero-content { position: relative; z-index: 2; width: min(1200px, 90vw); margin: 0 auto; padding-bottom: clamp(72px, 12vh, 140px); }
.eyebrow, .manifesto-kicker { color: var(--orange); font-size: 12px; font-weight: 800; letter-spacing: .2em; }
h1 { max-width: 980px; margin: 18px 0 24px; font-size: clamp(48px, 7.2vw, 112px); line-height: .92; letter-spacing: -.055em; font-weight: 750; }
h1 em { color: var(--orange); font-family: Georgia, serif; font-weight: 400; }
.hero-copy { max-width: 610px; color: #d8dfe7; font-size: clamp(18px, 2vw, 25px); line-height: 1.5; }
.scroll-cue { display: inline-flex; align-items: center; gap: 18px; margin-top: 42px; font-size: 10px; font-weight: 800; letter-spacing: .18em; }
.scroll-cue i { width: 58px; height: 1px; background: var(--orange); position: relative; }
.scroll-cue i::after { content: ""; position: absolute; right: 0; top: -3px; width: 7px; height: 7px; border-right: 1px solid var(--orange); border-bottom: 1px solid var(--orange); transform: rotate(-45deg); }
.hero-index { position: absolute; right: 5vw; bottom: 8vh; color: rgba(255,255,255,.12); font-size: clamp(110px, 18vw, 280px); font-weight: 800; line-height: .7; z-index: 1; }

.manifesto { min-height: 100svh; display: flex; flex-direction: column; justify-content: center; padding: 120px max(6vw, 24px); background: var(--paper); color: var(--ink); }
.manifesto-kicker { margin-bottom: 34px; }
.manifesto-line { max-width: 1300px; margin: 0; font-size: clamp(42px, 6.7vw, 104px); font-weight: 690; line-height: 1.02; letter-spacing: -.05em; }
.manifesto-line .word { display: inline-block; color: rgba(9,11,14,.16); transition: color .45s ease; }
.manifesto-line .word.is-lit { color: var(--ink); }
.manifesto-meta { display: flex; justify-content: space-between; gap: 28px; margin-top: 70px; padding-top: 22px; border-top: 1px solid rgba(9,11,14,.22); font-size: 11px; font-weight: 700; letter-spacing: .08em; }

.story-track { height: 320vh; background: var(--ink); }
.story-sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.story-visuals { position: absolute; inset: 0; }
.story-image { position: absolute; inset: 0; margin: 0; opacity: 0; clip-path: inset(0 0 100% 0); transform: scale(1.12); transition: opacity .75s ease, clip-path 1s cubic-bezier(.22,1,.36,1), transform 1.4s cubic-bezier(.22,1,.36,1); }
.story-image.is-active { opacity: 1; clip-path: inset(0); transform: scale(1); }
.story-image img { height: 100%; object-fit: cover; object-position: center; filter: saturate(.85) contrast(1.06); }
.story-vignette { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9,11,14,.95) 0%, rgba(9,11,14,.78) 38%, rgba(9,11,14,.2) 75%, rgba(9,11,14,.48) 100%), linear-gradient(to top, rgba(9,11,14,.65), transparent); }
.story-copy { position: relative; z-index: 2; height: 100%; width: min(1240px, 88vw); margin: auto; display: grid; align-items: center; }
.story-step { grid-area: 1/1; max-width: 620px; opacity: 0; transform: translateY(55px); pointer-events: none; transition: opacity .7s ease, transform .8s cubic-bezier(.22,1,.36,1); }
.story-step.is-active { opacity: 1; transform: translateY(0); }
.story-step span { color: var(--orange); font-size: 11px; font-weight: 800; letter-spacing: .2em; }
.story-step h2 { margin: 20px 0 24px; font-size: clamp(45px, 6vw, 88px); line-height: .98; letter-spacing: -.05em; }
.story-step p { max-width: 560px; color: #cbd5df; font-size: clamp(17px, 1.7vw, 23px); line-height: 1.55; }
.story-counter { position: absolute; right: 5vw; bottom: 7vh; z-index: 3; display: flex; align-items: baseline; gap: 8px; }
.story-counter b { color: var(--orange); font-size: 64px; line-height: 1; }
.story-counter span { color: var(--muted); font-size: 13px; }

.network { padding: clamp(100px, 14vw, 210px) max(5vw, 22px) 90px; background: #071019; }
.network-heading { width: min(1220px, 100%); margin: 0 auto 70px; display: grid; grid-template-columns: 1.4fr 1fr; column-gap: 7vw; align-items: end; }
.network-heading .eyebrow { grid-column: 1 / -1; }
.network-heading h2 { margin: 20px 0 0; font-size: clamp(54px, 7.8vw, 116px); line-height: .9; letter-spacing: -.06em; }
.network-heading h2 em, .gallery-intro h2 em { color: var(--orange); font-family: Georgia, serif; font-weight: 400; }
.network-heading > p:last-child { max-width: 530px; margin: 0 0 8px; color: #bdc8d4; font-size: clamp(16px, 1.5vw, 21px); line-height: 1.65; }
.network-controls { width: min(1450px, 100%); margin: 0 auto 14px; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.network-controls::-webkit-scrollbar { display: none; }
.network-control { flex: 0 0 auto; padding: 13px 18px; border: 1px solid rgba(255,255,255,.18); background: transparent; color: #91a0ae; font: inherit; font-size: 9px; font-weight: 850; letter-spacing: .14em; cursor: pointer; transition: color .25s ease, border-color .25s ease, background .25s ease; }
.network-control:hover, .network-control.is-active { border-color: var(--orange); background: var(--orange); color: #071019; }
.map-stage { position: relative; width: min(1450px, 100%); height: min(74vw, 860px); min-height: 580px; margin: auto; overflow: hidden; background: #0c1822; border: 1px solid rgba(255,255,255,.12); }
.map-stage::after { content: ""; position: absolute; inset: 0; z-index: 450; pointer-events: none; box-shadow: inset 0 0 90px rgba(3,8,13,.54); }
#live-map { position: absolute; inset: 0; z-index: 1; background: #0b1620; font-family: inherit; }
#live-map .leaflet-tile-pane { filter: saturate(.7) brightness(.68) contrast(1.15); }
#live-map .leaflet-control-zoom { margin: 22px 0 0 22px; border: 0; box-shadow: 0 8px 24px rgba(0,0,0,.28); }
#live-map .leaflet-control-zoom a { width: 38px; height: 38px; line-height: 36px; border: 0; background: rgba(6,13,20,.9); color: #fff; }
#live-map .leaflet-control-zoom a:hover { background: var(--orange); color: #071019; }
#live-map .leaflet-control-attribution { padding: 4px 7px; background: rgba(4,9,14,.78); color: #9aa7b3; font-size: 8px; }
#live-map .leaflet-control-attribution a { color: var(--orange); }
.map-live-badge { position: absolute; z-index: 700; left: 74px; top: 28px; display: flex; align-items: center; gap: 8px; padding: 9px 12px; background: rgba(5,11,17,.86); color: #fff; font-size: 8px; font-weight: 850; letter-spacing: .14em; pointer-events: none; }
.map-live-badge i { width: 7px; height: 7px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 6px rgba(245,130,32,.14); }
.ena-map-icon { background: transparent; border: 0; }
.ena-map-pin { position: relative; width: 34px; height: 34px; display: grid; place-items: center; border: 2px solid #fff; border-radius: 50% 50% 50% 0; background: var(--orange); color: #071019; font-size: 11px; font-weight: 900; transform: rotate(-45deg); box-shadow: 0 7px 22px rgba(0,0,0,.42); transition: transform .3s ease, box-shadow .3s ease; }
.ena-map-pin span { transform: rotate(45deg); }
.ena-map-pin::after { content: ""; position: absolute; inset: -10px; border: 1px solid rgba(245,130,32,.6); border-radius: 50%; opacity: 0; transform: scale(.5); transition: opacity .3s ease, transform .3s ease; }
.ena-map-icon.is-active .ena-map-pin { transform: rotate(-45deg) scale(1.22); box-shadow: 0 0 0 12px rgba(245,130,32,.16), 0 8px 26px rgba(0,0,0,.5); }
.ena-map-icon.is-active .ena-map-pin::after { opacity: 1; transform: scale(1); }
.ena-map-tooltip { padding: 8px 11px; border: 0; border-left: 2px solid var(--orange); border-radius: 0; background: rgba(5,11,17,.9); color: #fff; box-shadow: 0 9px 25px rgba(0,0,0,.24); font-size: 9px; font-weight: 800; letter-spacing: .08em; }
.ena-map-tooltip::before { display: none; }
.map-stage > img { height: 100%; object-fit: cover; object-position: center; filter: saturate(.66) brightness(.58) contrast(1.15); transform: scale(1.02); }
.map-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,10,16,.5), transparent 45%, rgba(4,10,16,.15)), linear-gradient(to top, rgba(4,10,16,.65), transparent 40%); }
.network-lines { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
.network-line { fill: none; stroke: rgba(255,255,255,.16); stroke-width: .18; vector-effect: non-scaling-stroke; stroke-dasharray: 1.1 1.1; transition: stroke .4s ease, opacity .4s ease, stroke-width .4s ease; }
.network-line.is-active { stroke: var(--orange); stroke-width: .3; opacity: 1; animation: route-flow 9s linear infinite; }
@keyframes route-flow { to { stroke-dashoffset: -22; } }
.map-marker { position: absolute; z-index: 2; width: 20px; height: 20px; padding: 0; border: 0; background: none; color: #fff; cursor: pointer; }
.map-marker i { position: absolute; inset: 0; border-radius: 50%; border: 2px solid #fff; background: var(--orange); box-shadow: 0 0 0 0 rgba(245,130,32,.65); transition: transform .35s ease; }
.map-marker i::before { content: ""; position: absolute; inset: -11px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; opacity: 0; transform: scale(.6); transition: opacity .35s ease, transform .35s ease; }
.map-marker span { position: absolute; left: 28px; top: 50%; width: max-content; max-width: 210px; padding: 11px 13px; text-align: left; background: rgba(5,10,16,.84); backdrop-filter: blur(10px); border-left: 2px solid var(--orange); font-size: 10px; letter-spacing: .1em; line-height: 1.5; opacity: .62; transform: translateY(-50%); transition: opacity .35s ease, transform .35s ease; }
.map-marker span b { display: block; color: var(--orange); font-size: 9px; letter-spacing: .12em; }
.map-marker:hover i, .map-marker.is-active i { transform: scale(1.25); animation: map-pulse 1.6s infinite; }
.map-marker:hover i::before, .map-marker.is-active i::before { opacity: 1; transform: scale(1); }
.map-marker:hover span, .map-marker.is-active span { opacity: 1; transform: translate(5px,-50%); }
.marker-centre { left: 41%; top: 18%; }
.marker-west { left: 20%; top: 32%; }
.marker-east { left: 81%; top: 25%; }
.marker-east span { left: auto; right: 28px; text-align: right; border-left: 0; border-right: 2px solid var(--orange); }
.marker-east:hover span, .marker-east.is-active span { transform: translate(-5px,-50%); }
.map-index { position: absolute; right: 38px; top: 30px; z-index: 700; display: flex; align-items: baseline; gap: 7px; pointer-events: none; }
.map-index b { color: var(--orange); font-size: 54px; }
.map-index span { color: var(--muted); font-size: 12px; }
.map-detail { position: absolute; z-index: 700; right: 34px; bottom: 30px; width: min(390px, calc(100% - 68px)); padding: 25px 27px; background: rgba(5,11,17,.88); backdrop-filter: blur(16px); border-top: 2px solid var(--orange); box-shadow: 0 22px 55px rgba(0,0,0,.3); pointer-events: none; }
.map-detail > span { color: var(--orange); font-size: 8px; font-weight: 850; letter-spacing: .18em; }
.map-detail h3 { margin: 10px 0 11px; font-size: clamp(23px, 2.3vw, 34px); line-height: 1; letter-spacing: -.035em; }
.map-detail p { margin: 0; color: #bbc6d0; font-size: 13px; line-height: 1.55; }
.map-detail div { margin-top: 18px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.14); color: #e5e9ee; font-size: 10px; letter-spacing: .07em; }
.map-detail div b { color: var(--orange); font-size: 18px; }
.map-stage[data-active="0"] .network-line { opacity: .2; }
.map-stage[data-active="1"] .route-east { opacity: .1; }
.map-stage[data-active="2"] .route-west { opacity: .1; }
.map-source { width: min(1450px, 100%); margin: 14px auto 0; color: #72808e; font-size: 9px; letter-spacing: .15em; }
@keyframes map-pulse { 70% { box-shadow: 0 0 0 18px rgba(245,130,32,0); } 100% { box-shadow: 0 0 0 0 rgba(245,130,32,0); } }

.gallery-track { height: 430vh; background: #f1f2f1; color: var(--ink); }
.gallery-sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.gallery-intro { position: absolute; z-index: 3; left: max(5vw, 22px); top: clamp(78px, 11vh, 120px); width: min(560px, 80vw); pointer-events: none; }
.gallery-intro h2 { margin: 14px 0 0; font-size: clamp(54px, 7.4vw, 110px); line-height: .88; letter-spacing: -.065em; }
.gallery-rail { position: absolute; left: 0; top: 0; height: 100%; display: flex; align-items: flex-end; gap: 2vw; padding: 0 8vw 8vh 46vw; will-change: transform; }
.gallery-card { position: relative; flex: 0 0 min(72vw, 1050px); height: 67vh; min-height: 470px; margin: 0; overflow: hidden; background: #111; box-shadow: 0 30px 80px rgba(0,0,0,.2); }
.gallery-card img { height: 100%; object-fit: cover; filter: saturate(.82) contrast(1.04); transition: transform 1.2s cubic-bezier(.22,1,.36,1), filter .5s ease; }
.gallery-card:hover img { transform: scale(1.035); filter: saturate(1); }
.gallery-card::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(5,7,9,.76)); }
.gallery-card figcaption { position: absolute; z-index: 2; left: 30px; right: 30px; bottom: 27px; display: flex; align-items: flex-end; justify-content: space-between; color: #fff; }
.gallery-card figcaption b { color: var(--orange); font-size: 42px; line-height: .8; }
.gallery-card figcaption span { font-size: 10px; font-weight: 800; letter-spacing: .17em; }
.gallery-progress { position: absolute; left: 5vw; right: 5vw; bottom: 3vh; height: 2px; background: rgba(9,11,14,.13); }
.gallery-progress span { display: block; width: 100%; height: 100%; background: var(--orange); transform: scaleX(0); transform-origin: left; }

.numbers { min-height: 105svh; display: grid; place-items: center; }
.numbers-media { background-image: url("assets/history-landscape-ai.png"); }
.numbers-shade { position: absolute; inset: 0; background: rgba(5,8,12,.76); backdrop-filter: saturate(.75); }
.numbers-grid { position: relative; z-index: 2; width: min(1320px, 88vw); display: grid; grid-template-columns: repeat(3, 1fr); }
.stat { min-height: 360px; padding: 45px; display: flex; flex-direction: column; justify-content: space-between; border-left: 1px solid rgba(255,255,255,.28); }
.stat:last-child { border-right: 1px solid rgba(255,255,255,.28); }
.stat strong { font-size: clamp(70px, 10vw, 150px); font-weight: 750; line-height: .8; letter-spacing: -.06em; }
.stat span { color: #d4dbe3; font-size: 11px; font-weight: 800; letter-spacing: .16em; line-height: 1.7; }

.quote-section { position: relative; min-height: 100svh; padding: 120px 7vw; display: grid; place-content: center; text-align: center; background: #0b1118; overflow: hidden; }
.quote-orbit { position: absolute; width: min(78vw, 900px); aspect-ratio: 1; border: 1px solid rgba(245,130,32,.28); border-radius: 50%; left: 50%; top: 50%; transform: translate(-50%,-50%); }
.quote-orbit::before, .quote-orbit::after { content: ""; position: absolute; inset: 14%; border: 1px solid rgba(255,255,255,.09); border-radius: 50%; }
.quote-orbit::after { inset: 31%; background: radial-gradient(circle, rgba(245,130,32,.12), transparent 68%); }
blockquote { position: relative; z-index: 2; margin: 0; }
blockquote p { margin: 0; font-family: Georgia, serif; font-size: clamp(50px, 9vw, 138px); font-weight: 400; line-height: 1; letter-spacing: -.055em; }
blockquote cite { display: block; margin-top: 28px; color: var(--orange); font-family: Inter, sans-serif; font-size: 10px; font-style: normal; font-weight: 800; letter-spacing: .2em; }
.quote-note { position: relative; z-index: 2; margin: 60px 0 0; color: var(--muted); font-size: 16px; line-height: 1.7; }

.donate { position: fixed; inset: 0; z-index: 160; min-height: 100svh; display: grid; place-items: center; padding: clamp(110px, 14vh, 170px) 0; overflow-x: hidden; overflow-y: auto; visibility: hidden; pointer-events: none; opacity: 0; background: var(--ink); transition: opacity .5s ease, visibility .5s ease; }
.donate.is-open { visibility: visible; pointer-events: auto; opacity: 1; }
.donate-media { background-image: url("assets/donate-equipment-ai.png"); background-position: center; }
.donate-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,8,12,.96) 5%, rgba(5,8,12,.7) 54%, rgba(5,8,12,.35)), linear-gradient(to top, rgba(5,8,12,.86), transparent 60%); }
.donate-content { position: relative; z-index: 2; width: min(1320px, 88vw); }
.support-close { position: fixed; z-index: 5; right: clamp(18px, 3vw, 44px); top: clamp(18px, 3vw, 38px); width: 50px; height: 50px; border: 1px solid rgba(255,255,255,.48); background: rgba(5,8,12,.78); color: #fff; cursor: pointer; backdrop-filter: blur(12px); transition: border-color .25s ease, background .25s ease; }
.support-close:hover { border-color: var(--orange); background: var(--orange); }
.support-close span { position: absolute; left: 13px; top: 24px; width: 22px; height: 1px; background: currentColor; transform: rotate(45deg); }
.support-close span:last-child { transform: rotate(-45deg); }
.donate-intro { max-width: 1120px; margin-bottom: clamp(45px, 6vh, 70px); }
.donate-intro > span, .donate-copy > span, .donate-card-kicker { color: var(--orange); font-size: 10px; font-weight: 850; letter-spacing: .2em; }
.donate-intro h2 { margin: 20px 0 28px; font-size: clamp(60px, 8vw, 120px); line-height: .88; letter-spacing: -.06em; }
.donate-intro h2 em { color: var(--orange); font-family: Georgia, serif; font-weight: 400; }
.donate-intro p { max-width: 760px; margin: 0; color: #d4dbe3; font-size: 18px; line-height: 1.65; }
.donate-details { display: grid; grid-template-columns: 1.25fr .75fr; gap: clamp(50px, 9vw, 140px); align-items: end; }
.donate-copy h3 { max-width: 760px; margin: 18px 0 25px; font-size: clamp(35px, 4.2vw, 60px); line-height: .98; letter-spacing: -.045em; }
.donate-copy .support-statement { margin: 28px 0 0; font-size: clamp(30px, 3.2vw, 46px); }
.support-statement em { color: var(--orange); font-family: Georgia, serif; font-weight: 400; }
.donate-copy p { max-width: 760px; margin: 17px 0 0; color: #d4dbe3; font-size: 15px; line-height: 1.64; }
.donate-copy .support-bridge { margin-top: 24px; color: #fff; font-size: 16px; font-weight: 750; }
.donate-card { padding: clamp(30px, 4vw, 52px); border-top: 3px solid var(--orange); background: rgba(5,10,15,.84); backdrop-filter: blur(18px); box-shadow: 0 30px 80px rgba(0,0,0,.35); }
.donate-card strong { display: block; margin-top: 20px; font-size: clamp(29px, 3vw, 43px); line-height: 1; letter-spacing: -.04em; }
.donate-card p { color: #bfc9d3; font-size: 14px; line-height: 1.6; }
.donate-card small { display: block; margin-top: 14px; color: #84909c; font-size: 9px; line-height: 1.5; }
.donate-button { width: 100%; margin-top: 20px; padding: 18px 20px; display: flex; align-items: center; justify-content: space-between; border: 0; background: var(--orange); color: var(--ink); cursor: pointer; font: inherit; font-size: 10px; font-weight: 850; letter-spacing: .15em; transition: transform .25s ease, background .25s ease; }
.donate-button:hover { transform: translateY(-4px); background: #ff9a45; }
.donate-button i { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid rgba(9,11,14,.35); border-radius: 50%; font-size: 16px; font-style: normal; }

.donation-modal { position: fixed; inset: 0; z-index: 190; display: grid; place-items: center; visibility: hidden; pointer-events: none; }
.donation-modal.is-open { visibility: visible; pointer-events: auto; }
.donation-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(2,5,8,.84); opacity: 0; backdrop-filter: blur(10px); transition: opacity .45s ease; cursor: pointer; }
.donation-modal.is-open .donation-backdrop { opacity: 1; }
.donation-panel { position: relative; z-index: 2; width: min(680px, calc(100vw - 36px)); max-height: calc(100svh - 36px); overflow-y: auto; padding: clamp(38px, 6vw, 70px); background: #f4f5f4; color: var(--ink); border-top: 4px solid var(--orange); box-shadow: 0 35px 100px rgba(0,0,0,.5); opacity: 0; transform: translateY(35px) scale(.97); transition: opacity .45s ease, transform .55s cubic-bezier(.22,1,.36,1); }
.donation-modal.is-open .donation-panel { opacity: 1; transform: none; }
.donation-close { position: absolute; right: 18px; top: 18px; width: 42px; height: 42px; border: 1px solid rgba(9,11,14,.22); background: transparent; cursor: pointer; }
.donation-close span { position: absolute; left: 10px; top: 20px; width: 20px; height: 1px; background: var(--ink); transform: rotate(45deg); }
.donation-close span:last-child { transform: rotate(-45deg); }
.donation-kicker { margin: 0; color: var(--orange); font-size: 9px; font-weight: 850; letter-spacing: .2em; }
.donation-panel h2 { margin: 17px 0 22px; font-size: clamp(42px, 6vw, 67px); line-height: .93; letter-spacing: -.055em; }
.donation-panel h2 em { color: var(--orange); font-family: Georgia, serif; font-weight: 400; }
.donation-panel > p:not(.donation-kicker) { color: #5f6b75; font-size: 14px; line-height: 1.65; }
.donation-form { margin-top: 30px; }
.donation-form fieldset { margin: 0; padding: 0; border: 0; }
.donation-form legend, .donation-custom > span:first-child { margin-bottom: 12px; color: #66717b; font-size: 8px; font-weight: 850; letter-spacing: .16em; }
.donation-presets { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.donation-presets button { padding: 15px 8px; border: 1px solid rgba(9,11,14,.2); background: transparent; color: var(--ink); cursor: pointer; font: inherit; font-size: 18px; font-weight: 800; transition: border-color .2s ease, background .2s ease; }
.donation-presets button:hover, .donation-presets button.is-selected { border-color: var(--orange); background: rgba(245,130,32,.13); }
.donation-custom { display: block; margin-top: 24px; }
.donation-input-wrap { display: flex; align-items: center; border-bottom: 2px solid var(--ink); }
.donation-input-wrap input { width: 100%; padding: 10px 0; border: 0; outline: 0; background: transparent; color: var(--ink); font: inherit; font-size: 35px; font-weight: 750; }
.donation-input-wrap b { color: var(--orange); font-size: 30px; }
.paypal-button { width: 100%; margin-top: 26px; padding: 17px 19px; display: flex; align-items: center; justify-content: space-between; border: 0; background: #ffc439; color: #142c8e; cursor: pointer; font: inherit; font-size: 10px; font-weight: 850; letter-spacing: .13em; transition: transform .25s ease, filter .25s ease; }
.paypal-button:hover { transform: translateY(-3px); filter: brightness(1.04); }
.paypal-button b { font-size: 17px; font-style: italic; letter-spacing: -.04em; }
.donation-status { margin: 13px 0 0; color: #7c858d; font-size: 9px; line-height: 1.5; }
.donation-status.is-success { color: #2f7052; font-weight: 750; }

.join { position: relative; min-height: 92svh; display: flex; align-items: flex-end; overflow: clip; }
.join-media { background-image: url("assets/team-ceremony.jpg"); background-position: center 38%; }
.join-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6,8,11,.92), rgba(6,8,11,.4)), linear-gradient(to top, rgba(6,8,11,.9), transparent); }
.join-content { position: relative; z-index: 2; width: min(1100px, 88vw); margin: 0 auto; padding-bottom: clamp(70px, 10vh, 130px); }
.join-content > span { color: var(--orange); font-size: 11px; font-weight: 800; letter-spacing: .2em; }
.join h2 { max-width: 1000px; margin: 22px 0; font-size: clamp(44px, 6.6vw, 98px); line-height: .98; letter-spacing: -.05em; }
.join p { max-width: 610px; color: #d4dbe3; font-size: 19px; line-height: 1.55; }
.primary-button { display: inline-flex; align-items: center; gap: 35px; margin-top: 30px; padding: 18px 22px; background: var(--orange); color: var(--ink); font-size: 11px; font-weight: 850; letter-spacing: .14em; transition: transform .25s ease, background .25s ease; }
.primary-button:hover { transform: translateY(-4px); background: #ff9a45; }
.primary-button i { font-style: normal; font-size: 20px; }

.volunteer-modal { position: fixed; inset: 0; z-index: 180; display: grid; place-items: stretch; visibility: hidden; pointer-events: none; }
.volunteer-modal.is-open { visibility: visible; pointer-events: auto; }
.volunteer-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(2,5,8,.8); opacity: 0; cursor: pointer; backdrop-filter: blur(8px); transition: opacity .55s ease; }
.volunteer-modal.is-open .volunteer-backdrop { opacity: 1; }
.volunteer-panel { position: relative; z-index: 2; justify-self: end; width: min(1240px, 94vw); height: 100svh; display: grid; grid-template-columns: .9fr 1.1fr; overflow: hidden; background: #f4f5f4; color: var(--ink); transform: translateX(105%); transition: transform .8s cubic-bezier(.77,0,.18,1); }
.volunteer-modal.is-open .volunteer-panel { transform: translateX(0); }
.volunteer-close { position: absolute; z-index: 4; right: 25px; top: 23px; width: 44px; height: 44px; border: 1px solid rgba(9,11,14,.24); background: rgba(244,245,244,.82); cursor: pointer; }
.volunteer-close span { position: absolute; left: 11px; top: 21px; width: 20px; height: 1px; background: var(--ink); transform: rotate(45deg); }
.volunteer-close span:last-child { transform: rotate(-45deg); }
.volunteer-intro { position: relative; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(42px, 6vw, 82px); overflow: hidden; color: #fff; background: linear-gradient(to top, rgba(5,8,12,.94), rgba(5,8,12,.2)), url("assets/volunteer-team.jpg") center/cover; }
.volunteer-intro::after { content: "01"; position: absolute; right: -10px; top: 5vh; color: rgba(255,255,255,.1); font-size: clamp(150px, 19vw, 300px); font-weight: 850; line-height: .8; }
.volunteer-intro > * { position: relative; z-index: 1; }
.volunteer-intro > span, .form-kicker { color: var(--orange); font-size: 9px; font-weight: 850; letter-spacing: .2em; }
.volunteer-intro h2 { margin: 18px 0 28px; font-size: clamp(45px, 5.2vw, 78px); line-height: .91; letter-spacing: -.055em; }
.volunteer-intro h2 em { color: var(--orange); font-family: Georgia, serif; font-weight: 400; }
.volunteer-intro p { max-width: 480px; margin: 0; color: #d5dce3; font-size: 15px; line-height: 1.65; }
.volunteer-intro b { margin-top: 34px; color: #fff; font-size: 9px; font-weight: 750; letter-spacing: .16em; line-height: 2; }
.volunteer-form { align-self: center; max-height: 100svh; overflow-y: auto; padding: clamp(72px, 7vw, 105px) clamp(32px, 6vw, 90px) 55px; }
.form-honey { display: none !important; }
.form-kicker { margin: 0 0 35px; }
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 25px 22px; }
.field { display: flex; flex-direction: column; gap: 10px; }
.field-wide { grid-column: 1 / -1; }
.field > span { color: #66717b; font-size: 8px; font-weight: 850; letter-spacing: .16em; }
.field input, .field select, .field textarea { width: 100%; border: 0; border-bottom: 1px solid rgba(9,11,14,.27); border-radius: 0; padding: 9px 2px 13px; outline: 0; background: transparent; color: var(--ink); font: inherit; font-size: 16px; transition: border-color .25s ease; }
.field textarea { min-height: 82px; resize: vertical; line-height: 1.45; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--orange); }
.field textarea::placeholder { color: #9aa1a8; }
.consent-field { display: grid; grid-template-columns: 18px 1fr; gap: 11px; margin-top: 28px; color: #68717a; font-size: 10px; line-height: 1.5; cursor: pointer; }
.consent-field input { width: 16px; height: 16px; margin: 0; accent-color: var(--orange); }
.form-submit { width: 100%; margin-top: 28px; padding: 17px 19px; display: flex; justify-content: space-between; align-items: center; border: 0; background: var(--orange); color: var(--ink); cursor: pointer; font: inherit; font-size: 10px; font-weight: 850; letter-spacing: .14em; transition: background .25s ease, transform .25s ease; }
.form-submit:hover { background: #ff9a45; transform: translateY(-3px); }
.form-submit i { font-size: 19px; font-style: normal; }
.form-status { margin: 14px 0 0; color: #7c858d; font-size: 9px; line-height: 1.5; }
.form-status.is-success { color: #2f7052; font-weight: 750; }
body.form-open { overflow: hidden; }
body.support-open { overflow: hidden; }

footer { padding: 50px 6vw; display: grid; grid-template-columns: 1.5fr 1fr .65fr 1.15fr; gap: 40px; background: #050709; border-top: 1px solid rgba(255,255,255,.12); }
footer div { display: flex; flex-direction: column; gap: 9px; }
footer span { color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .12em; line-height: 1.6; }
footer b { font-size: 14px; letter-spacing: .1em; }
.emergency-number { position: relative; padding: 15px 18px; border: 1px solid rgba(255,48,48,.68); background: rgba(255,35,35,.1); }
.emergency-number span { color: #ffd6d6; }
.emergency-number b { color: #ff3030; font-size: clamp(38px, 4vw, 58px); font-weight: 900; line-height: .85; letter-spacing: -.04em; text-shadow: 0 0 28px rgba(255,35,35,.4); }
.footer-support { padding-left: 28px; border-left: 1px solid rgba(255,255,255,.14); }
.footer-support a { display: flex; align-items: center; justify-content: space-between; margin-top: 4px; padding: 13px 15px; border: 1px solid var(--orange); color: var(--orange); font-size: 10px; font-weight: 850; letter-spacing: .13em; transition: background .25s ease, color .25s ease; }
.footer-support a:hover { background: var(--orange); color: var(--ink); }
.footer-support i { font-size: 17px; font-style: normal; }

.reveal { opacity: 0; transform: translateY(36px); transition: opacity .85s ease, transform .9s cubic-bezier(.22,1,.36,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: .12s; }
.reveal-delay-2 { transition-delay: .24s; }
.reveal-delay-3 { transition-delay: .36s; }

@media (max-width: 780px) {
  :root { --header-h: 64px; }
  .site-header { padding: 0 18px; }
  nav { gap: 7px; }
  nav a:not(.nav-cta):not(.support-cta) { display: none; }
  .nav-cta { padding: 10px 11px; font-size: 9px; }
  .support-cta { padding: 10px 11px; font-size: 9px; }
  .brand { font-size: 11px; }
  .hero-content { width: calc(100vw - 36px); padding-bottom: 82px; }
  h1 { font-size: clamp(48px, 14vw, 78px); }
  .hero-copy { max-width: 85%; font-size: 17px; }
  .hero-index { display: none; }
  .manifesto { padding: 100px 22px; }
  .manifesto-line { font-size: clamp(38px, 12vw, 68px); }
  .manifesto-meta { flex-direction: column; margin-top: 50px; }
  .story-copy { width: calc(100vw - 44px); align-items: end; padding-bottom: 110px; }
  .story-vignette { background: linear-gradient(to top, rgba(9,11,14,.98) 8%, rgba(9,11,14,.65) 58%, rgba(9,11,14,.12)); }
  .story-step h2 { font-size: clamp(42px, 12vw, 66px); }
  .story-step p { font-size: 16px; }
  .story-counter { right: 22px; bottom: 30px; }
  .story-counter b { font-size: 42px; }
  .network { padding: 100px 0 70px; }
  .network-heading, .map-source { width: calc(100% - 44px); }
  .network-heading { grid-template-columns: 1fr; margin-bottom: 44px; }
  .network-heading h2 { font-size: clamp(51px, 15vw, 76px); }
  .network-heading > p:last-child { margin-top: 28px; }
  .network-controls { width: calc(100% - 44px); }
  .map-stage { width: 100%; min-height: 680px; border-left: 0; border-right: 0; }
  .map-stage > img { object-position: 55% center; }
  #live-map .leaflet-control-zoom { margin: 16px 0 0 16px; }
  .map-live-badge { left: 66px; top: 19px; }
  .marker-centre { left: 40%; top: 18%; }
  .marker-west { left: 18%; top: 32%; }
  .marker-east { left: 82%; top: 25%; }
  .map-marker span { width: 160px; font-size: 9px; }
  .marker-west span { top: 30px; left: -10px; transform: none; }
  .marker-west:hover span, .marker-west.is-active span { transform: translateY(5px); }
  .map-index { right: 18px; top: 16px; }
  .map-index b { font-size: 38px; }
  .map-detail { right: 18px; bottom: 18px; width: calc(100% - 36px); padding: 20px; }
  .gallery-track { height: 410vh; }
  .gallery-intro { top: 86px; }
  .gallery-intro h2 { font-size: clamp(50px, 14vw, 76px); }
  .gallery-rail { padding-left: 22px; padding-bottom: 9vh; gap: 18px; }
  .gallery-card { flex-basis: 86vw; height: 58vh; min-height: 410px; }
  .gallery-card figcaption { left: 18px; right: 18px; bottom: 18px; }
  .numbers { padding: 90px 22px; }
  .numbers-grid { width: 100%; grid-template-columns: 1fr; }
  .stat { min-height: auto; padding: 34px 10px; flex-direction: row; align-items: flex-end; border-left: 0; border-top: 1px solid rgba(255,255,255,.28); }
  .stat:last-child { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.28); }
  .stat strong { font-size: 74px; }
  .stat span { max-width: 48%; text-align: right; }
  .quote-section { padding: 100px 22px; }
  .quote-orbit { width: 118vw; }
  .donate { min-height: 110svh; padding: 100px 0 70px; }
  .support-close { width: 44px; height: 44px; }
  .support-close span { left: 11px; top: 21px; width: 20px; }
  .donate-content { width: calc(100vw - 44px); }
  .donate-intro { margin-bottom: 70px; }
  .donate-intro h2 { font-size: clamp(51px, 15vw, 75px); }
  .donate-intro p { font-size: 16px; }
  .donate-details { grid-template-columns: 1fr; gap: 42px; }
  .donate-copy h3 { font-size: clamp(35px, 10vw, 52px); }
  .donate-copy p { font-size: 16px; }
  .donation-panel { padding: 55px 22px 30px; }
  .donation-presets { grid-template-columns: repeat(2, 1fr); }
  .join-content { width: calc(100vw - 44px); }
  .join h2 { font-size: clamp(43px, 12vw, 70px); }
  .volunteer-panel { width: 100vw; grid-template-columns: 1fr; overflow-y: auto; }
  .volunteer-intro { min-height: 48svh; padding: 90px 24px 34px; }
  .volunteer-intro h2 { font-size: clamp(43px, 13vw, 66px); }
  .volunteer-intro p { font-size: 14px; }
  .volunteer-intro b { display: none; }
  .volunteer-form { max-height: none; overflow: visible; padding: 54px 24px 46px; }
  .field-grid { grid-template-columns: 1fr; }
  .field-wide { grid-column: auto; }
  .volunteer-close { position: fixed; right: 14px; top: 14px; }
  footer { grid-template-columns: 1fr; }
  .footer-support { padding: 22px 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.14); }
}

@media (max-width: 480px) {
  .brand > span:last-child { display: none; }
  .support-cta span { max-width: 72px; line-height: 1.15; }
  .hero-smoke { opacity: .82; -webkit-mask-image: radial-gradient(ellipse 110% 32% at 58% 46%, #000 0 64%, transparent 100%); mask-image: radial-gradient(ellipse 110% 32% at 58% 46%, #000 0 64%, transparent 100%); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .parallax-media { transform: none !important; }
  .hero-smoke { display: none; }
  .reveal { opacity: 1; transform: none; }
  .intro-loader { display: none; }
}

@media (pointer: coarse) {
  .cursor-glow { display: none; }
}
