@font-face{font-family:Hagrid;src:url("assets/fonts/Hagrid-Heavy.otf") format("opentype");font-display:swap;font-weight:900}
@font-face{font-family:HagridText;src:url("assets/fonts/HagridText-Regular.otf") format("opentype");font-display:swap;font-weight:400}
@font-face{font-family:HagridText;src:url("assets/fonts/HagridText-Medium.otf") format("opentype");font-display:swap;font-weight:600}

:root{
  --ink:#090a0b;
  --ink-soft:#121315;
  --paper:#f2f0e9;
  --muted:#a9aaab;
  --line:rgba(242,240,233,.17);
  --accent:#ff4d2e;
  --display:Hagrid,"Arial Black",sans-serif;
  --text:HagridText,Arial,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{margin:0;color:var(--paper);background:var(--ink);font-family:var(--text);font-size:16px;line-height:1.5;overflow-x:hidden}
body.menu-open{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
::selection{background:var(--accent);color:var(--ink)}

.skip-link{position:fixed;top:1rem;left:1rem;z-index:200;background:var(--paper);color:var(--ink);padding:.75rem 1rem;transform:translateY(-180%)}
.skip-link:focus{transform:none}

.nav{position:fixed;z-index:100;top:0;left:0;width:100%;height:72px;padding:0 clamp(1rem,3vw,3rem);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(9,10,11,.8);backdrop-filter:blur(18px)}
.nav__brand{display:flex;align-items:baseline;gap:.45rem;font-size:.72rem;letter-spacing:.08em;white-space:nowrap}
.nav__brand strong{font-family:var(--display);font-size:1.05rem;color:var(--accent);letter-spacing:-.04em}
.nav__links{display:flex;align-items:center;gap:clamp(1rem,2.3vw,2.5rem);font-size:.85rem}
.nav__links a{transition:color .25s ease}
.nav__links a:hover,.nav__links a:focus-visible{color:var(--accent)}
.nav__cta{border:1px solid var(--line);padding:.65rem 1rem;white-space:nowrap}
.nav__menu{display:none;background:none;border:0;width:44px;height:44px;padding:10px}
.nav__menu b{display:none}
.nav__menu span{display:block;height:1px;background:var(--paper);margin:7px 0;transition:transform .25s ease}

.hero{min-height:100dvh;padding:clamp(6rem,11vh,8rem) clamp(1rem,5vw,5rem) 2rem;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(420px,.98fr);align-items:center;gap:3vw;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:72px 0 auto;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.45}
.hero__copy{z-index:3;max-width:850px}
.eyebrow{margin:0 0 1.2rem;text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;color:var(--muted)}
.hero h1{font-family:var(--display);font-size:clamp(4.2rem,8.3vw,9.5rem);letter-spacing:-.075em;line-height:.76;margin:0;display:flex;flex-direction:column;text-transform:uppercase}
.hero h1 em{font-style:normal;color:var(--accent);margin-left:clamp(1.5rem,7vw,7rem)}
.hero__lead{max-width:31rem;margin:2rem 0 0;font-size:clamp(1.15rem,1.6vw,1.6rem);line-height:1.25}
.hero__actions{display:flex;gap:.75rem;align-items:center;margin-top:2rem;flex-wrap:wrap}
.button{min-height:50px;display:inline-flex;align-items:center;padding:.8rem 1.2rem;border:1px solid var(--line);font-size:.82rem;white-space:nowrap;transition:background .25s,color .25s,transform .15s}
.button:active{transform:translateY(1px)}
.button--accent{background:var(--accent);border-color:var(--accent);color:#130a07;font-weight:600}
.button--accent:hover,.button--accent:focus-visible{background:var(--paper);border-color:var(--paper)}
.button--quiet:hover,.button--quiet:focus-visible{border-color:var(--accent);color:var(--accent)}

.hero__visual{height:min(75vh,760px);position:relative;z-index:2;perspective:900px}
.hero__visual::after{content:"";position:absolute;inset:5% 3%;border:1px solid var(--line);border-radius:50%;transform:rotate(-19deg);z-index:-1}
.hero-card{position:absolute;margin:0;width:44%;aspect-ratio:.78;overflow:hidden;border:1px solid rgba(255,255,255,.3);box-shadow:0 30px 80px rgba(0,0,0,.5);background:#222}
.hero-card img{width:100%;height:100%;object-fit:cover}
.hero-card--one{left:30%;top:3%;transform:rotate(4deg);z-index:2;animation:float-one 7s ease-in-out infinite}
.hero-card--two{left:4%;top:22%;transform:rotate(-8deg);z-index:1;animation:float-two 8s ease-in-out infinite}
.hero-card--three{right:0;bottom:3%;transform:rotate(10deg);z-index:3;animation:float-three 9s ease-in-out infinite}
.sun{border-radius:50%;background:radial-gradient(circle at 35% 30%,#ff8b5a 0,#ff4d2e 42%,#b91c0d 100%);box-shadow:0 0 70px rgba(255,77,46,.36)}
.sun--hero{position:absolute;width:clamp(80px,10vw,150px);aspect-ratio:1;left:42%;top:42%;z-index:5;animation:pulse 5s ease-in-out infinite}
.hero__orbit{position:absolute;right:-2.7rem;top:46%;margin:0;transform:rotate(90deg);font-size:.58rem;letter-spacing:.24em;color:var(--muted)}

.statement{padding:clamp(6rem,13vw,13rem) clamp(1rem,5vw,5rem);position:relative;border-top:1px solid var(--line)}
.statement__mark{position:absolute;right:5vw;top:4rem;font-family:var(--display);font-size:clamp(7rem,18vw,20rem);line-height:.7;color:var(--accent);opacity:.12}
.statement__passport{position:relative;max-width:1320px;margin:auto}
.statement__passport p{margin:0}
.statement__serial{font-family:"Courier New",monospace;font-size:clamp(.68rem,.9vw,.85rem);letter-spacing:.13em;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:1rem}
.statement__phrase{padding-top:clamp(2rem,4vw,4.5rem);font-family:var(--text);font-weight:500;font-size:clamp(2.5rem,6.5vw,7.8rem);line-height:.86;letter-spacing:-.07em;text-transform:uppercase}
.statement__code{position:relative;margin-top:clamp(.6rem,1.4vw,1.4rem)!important;margin-left:clamp(0rem,8vw,9rem)!important;padding:.08em .16em .12em;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:.2em;background:var(--accent);color:var(--ink);font-family:"Courier New",monospace;font-weight:700;font-size:clamp(2rem,7.7vw,9rem);line-height:.82;letter-spacing:-.08em;text-transform:uppercase;overflow:hidden}
.statement__code strong{font:inherit}
.statement__code::after{content:"";justify-self:end;width:clamp(38px,8vw,120px);height:.58em;margin-right:.04em;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 5px,var(--ink) 5px 9px,transparent 9px 12px);opacity:.72}
.statement__bridge{margin:clamp(1rem,2.2vw,2rem) 0 0 auto!important;max-width:45rem;font-family:"Courier New",monospace;font-size:clamp(.85rem,1.35vw,1.25rem);letter-spacing:.04em;text-align:right;text-transform:uppercase;color:#d0d0cc}
.statement__body{margin:clamp(3.5rem,8vw,8rem) 0 0 auto;max-width:760px;display:grid;grid-template-columns:1fr 1fr;gap:3rem;font-size:1.08rem;color:#d0d0cc}
.statement__body p{margin:0}

.impact{padding:0 clamp(1rem,5vw,5rem) clamp(6rem,10vw,10rem);border-bottom:1px solid var(--line)}
.impact__intro{max-width:760px;margin:0 0 clamp(3rem,5vw,5rem) auto}
.impact__intro>p:last-child{margin:0;font-size:clamp(1.15rem,1.8vw,1.55rem);line-height:1.35;color:#d0d0cc}
.impact__grid{margin:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.impact__grid>div{min-height:230px;padding:1.5rem 1.5rem 1.5rem 0;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between}
.impact__grid>div+div{padding-left:1.5rem}
.impact__grid>div:last-child{border-right:0}
.impact__grid dt{font-family:var(--display);font-size:clamp(2.35rem,4.7vw,5.8rem);line-height:.9;letter-spacing:-.06em;color:var(--accent)}
.impact__grid dd{margin:2rem 0 0;max-width:220px;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:#d0d0cc}
.impact__note{margin:1rem 0 0;font-size:.72rem;color:var(--muted)}

.collection{padding:clamp(5rem,9vw,9rem) clamp(1rem,3vw,3rem);background:var(--ink-soft);border-top:1px solid var(--line)}
.section-head{max-width:1050px;margin:0 auto clamp(3rem,6vw,6rem)}
.section-head h2,.layers__intro h2,.research h2,.places h2,.journey__head h2,.future__head h2{font-family:var(--display);font-size:clamp(2.5rem,5.4vw,6.2rem);line-height:.94;letter-spacing:-.055em;margin:0;text-transform:uppercase}
.section-head__lead{max-width:700px;margin:2rem 0 0 auto;color:#c7c7c3;font-size:1.08rem}
.atlas{max-width:1420px;margin:auto;display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:250px;grid-auto-flow:dense;gap:1rem}
.atlas-card{grid-column:span 4;grid-row:span 2;position:relative;border:0;padding:0;background:none;text-align:left;cursor:zoom-in;overflow:hidden}
.atlas-card--tall{grid-column:span 3;grid-row:span 3}
.atlas-card--wide{grid-column:span 5;grid-row:span 2}
.atlas-card img{width:100%;height:calc(100% - 58px);object-fit:cover;filter:saturate(.9);transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .3s}
.atlas-card:hover img,.atlas-card:focus-visible img{transform:scale(1.035);filter:saturate(1.1)}
.atlas-card span{height:58px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);font-size:.85rem}
.atlas-card strong{font-weight:600}
.atlas-card small{display:flex;align-items:baseline;gap:.35rem;font-size:.72rem;white-space:nowrap}
.atlas-card small i{color:var(--muted);font-style:normal}
.atlas-card small b{color:var(--accent);font-weight:600}
.country-line{max-width:1420px;margin:4rem auto 0;display:flex;gap:.7rem 1.4rem;flex-wrap:wrap;color:var(--muted);font-size:.78rem}
.country-line span::after{content:" /";color:var(--accent);margin-left:1.4rem}
.country-line span:last-child::after{display:none}

.layers{padding:clamp(6rem,11vw,11rem) clamp(1rem,5vw,5rem)}
.layers__intro{max-width:930px;margin-bottom:clamp(3rem,7vw,7rem)}
.layers__intro p{max-width:590px;margin:1.8rem 0 0;font-size:1.15rem;color:#c5c5c0}
.layers__grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.layer{min-height:620px;padding:2rem;background:var(--ink);position:relative;overflow:hidden;display:flex;flex-direction:column}
.layer__num{font-family:var(--display);color:var(--accent);font-size:.78rem}
.layer h3{font-family:var(--display);font-size:clamp(2.2rem,3.5vw,4.4rem);letter-spacing:-.05em;text-transform:uppercase;margin:2rem 0 1rem}
.layer p{max-width:340px;color:#bfc0bc;margin:0;position:relative;z-index:2}
.layer__interaction{display:block;margin-top:1.25rem;color:var(--accent);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}
.layer__interaction>span:last-child{display:none}
.layer__art{position:absolute;left:2rem;right:2rem;bottom:0;height:54%;overflow:hidden}
.layer__art img{width:100%;height:100%;object-fit:cover;object-position:center top;filter:saturate(.7) contrast(1.04);transition:transform .7s ease,filter .5s ease}
.layer:hover .layer__art img{transform:scale(1.04);filter:saturate(1)}
.layer__art--interactive{display:block;border:0;padding:0;background:#090a0b;text-align:left;cursor:pointer}
.layer__art--interactive img{object-fit:contain;object-position:center;transform:none!important}
.layer__art--interactive:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.layer__motion{position:absolute;inset:0;opacity:0;transition:opacity .18s linear!important}
.layer__art--interactive.is-playing .layer__motion{opacity:1}
.layer__art--interactive.is-playing .layer__still{opacity:0}
.layer__art--interactive::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 5px,rgba(255,77,46,.16) 6px);mix-blend-mode:screen}
.layer__art--interactive.is-glitching::after{animation:glitch-flash .34s steps(2,end)}
.layer__art--interactive.is-glitching .layer__still{animation:glitch-image .34s steps(2,end)}
.layer__art--turntable{background:#050607}
.layer__art--turntable img{object-fit:contain;object-position:center;filter:none}
.layer:hover .layer__art--turntable img{transform:none;filter:none}
.layer__turntable-poster{position:absolute;inset:0;opacity:0}
.layer__sphere{width:min(28vw,370px);aspect-ratio:1;border-radius:50%;position:absolute;bottom:10%;left:50%;transform:translateX(-50%);display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#ff8a67,var(--accent) 33%,#491008 72%,#090a0b);box-shadow:0 0 100px rgba(255,77,46,.22)}
.layer__sphere::before,.layer__sphere::after{content:"";position:absolute;border:1px solid rgba(255,255,255,.35);border-radius:50%}
.layer__sphere::before{inset:-13% 16%;transform:rotate(57deg)}
.layer__sphere::after{inset:16% -13%;transform:rotate(-18deg)}
.layer__sphere>span{font-family:var(--display);font-size:clamp(4rem,8vw,8rem);letter-spacing:-.08em;color:#180805}
.satellite-orbit{--tilt:0deg;position:absolute;inset:-14% 12%;border:1px solid rgba(255,255,255,.2);border-radius:50%;transform:rotate(var(--tilt));animation:satellite-flight 8s linear infinite;pointer-events:none}
.satellite-orbit::after{content:"";position:absolute;right:-5px;top:50%;width:10px;height:10px;border:2px solid var(--paper);background:var(--ink);box-shadow:0 0 14px rgba(255,255,255,.65);transform:translateY(-50%) rotate(45deg)}
.satellite-orbit--one{--tilt:24deg;inset:-10% 9%;animation-duration:7s}
.satellite-orbit--two{--tilt:68deg;inset:-18% 20%;animation-duration:10s;animation-direction:reverse}
.satellite-orbit--two::after{width:7px;height:7px;border-radius:50%;background:var(--paper)}
.satellite-orbit--three{--tilt:-31deg;inset:3% -18%;animation-duration:12s}
.satellite-orbit--three::after{width:12px;height:5px;background:var(--accent);border-color:var(--paper)}
.satellite-orbit--four{--tilt:112deg;inset:-4% 25%;animation-duration:6s;animation-direction:reverse}
.satellite-orbit--four::after{width:6px;height:6px;border-radius:50%;background:var(--paper)}
.layer--vr{background:radial-gradient(circle at 70% 75%,rgba(255,77,46,.2),transparent 43%),var(--ink)}
.layer__portal{position:absolute;width:min(35vw,430px);aspect-ratio:1;right:-4%;bottom:-10%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.36);border-radius:50%;box-shadow:inset 0 0 80px rgba(255,77,46,.18),0 0 80px rgba(255,77,46,.12)}
.layer__portal::before,.layer__portal::after,.layer__portal i{content:"";position:absolute;border:1px solid rgba(255,255,255,.25);border-radius:50%}
.layer__portal::before{inset:9%;border-color:var(--accent);animation:portal-pulse 4s ease-in-out infinite}
.layer__portal::after{inset:22%;border-style:dashed;animation:portal-spin 16s linear infinite}
.layer__portal i:nth-of-type(1){inset:34%}
.layer__portal i:nth-of-type(2){width:78%;height:28%;transform:rotate(32deg)}
.layer__portal i:nth-of-type(3){width:28%;height:78%;transform:rotate(-32deg)}
.layer__portal span{font-family:var(--display);font-size:clamp(3.5rem,8vw,8rem);letter-spacing:-.08em;color:var(--accent)}

.research{min-height:900px;display:grid;grid-template-columns:.9fr 1.1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.research__visual{position:relative;overflow:hidden;min-height:700px}
.research__visual img{width:100%;height:100%;object-fit:cover;filter:saturate(.6) brightness(.72)}
.research__scan{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 0,rgba(255,77,46,.34) 49.8%,var(--accent) 50%,rgba(255,77,46,.34) 50.2%,transparent 100%);background-size:100% 42%;animation:scan 5s linear infinite;mix-blend-mode:screen}
.research__copy{min-width:0;padding:clamp(4rem,8vw,9rem) clamp(1.5rem,6vw,7rem);display:flex;flex-direction:column;justify-content:center}
.research__lead{font-size:1.18rem;max-width:650px;color:#cacac6;margin:2rem 0 3rem}
.programs{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;border-top:1px solid var(--line);padding-top:2rem}
.programs>a{display:flex;flex-direction:column;align-items:flex-start;min-height:180px;transition:color .25s ease,transform .25s ease}
.programs>a:hover,.programs>a:focus-visible{color:var(--paper);transform:translateY(-3px)}
.programs>a:focus-visible{outline:1px solid var(--accent);outline-offset:8px}
.programs h3{font-size:1.15rem;margin:0 0 .8rem;color:var(--accent)}
.programs p{margin:0;color:var(--muted);font-size:.92rem}
.programs__action{margin-top:auto;padding-top:1.5rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--accent)}
.research__evidence{margin:2.5rem 0 0;padding-top:1.25rem;border-top:1px solid var(--line);font-size:.8rem;color:var(--muted)}
.research__evidence a{color:var(--accent);border-bottom:1px solid currentColor}

.journey{padding:clamp(6rem,11vw,11rem) clamp(1rem,5vw,5rem);scroll-margin-top:72px}
.journey__head{max-width:1120px;margin-bottom:clamp(4rem,7vw,7rem)}
.journey__head>p:last-child{max-width:650px;margin:2rem 0 0 auto;color:#c9c9c5;font-size:1.08rem}
.timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);counter-reset:journey}
.timeline li{min-height:390px;padding:1.8rem 1.5rem 1.8rem 0;border-right:1px solid var(--line);display:flex;flex-direction:column;counter-increment:journey}
.timeline li+li{padding-left:1.5rem}
.timeline li:last-child{border-right:0}
.timeline li::before{content:"0" counter(journey);font-family:var(--display);font-size:.72rem;color:var(--accent)}
.timeline time{margin:2.5rem 0 1rem;font-family:"Courier New",monospace;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.timeline h3{margin:0;font-family:var(--display);font-size:clamp(1.3rem,2vw,2rem);line-height:1.04;text-transform:uppercase;letter-spacing:-.04em}
.timeline p{margin:1.25rem 0 2rem;color:#bfc0bc;font-size:.88rem}
.timeline a{margin-top:auto;width:max-content;max-width:100%;font-size:.72rem;color:var(--accent);border-bottom:1px solid currentColor}

.volunteers{padding:clamp(6rem,12vw,12rem) clamp(1rem,5vw,5rem);background:var(--paper);color:var(--ink)}
.volunteers__title{display:grid;grid-template-columns:.4fr 1fr;align-items:start;gap:2rem}
.volunteers__title p{text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;margin:1rem 0}
.volunteers__title h2{font-family:var(--display);font-size:clamp(4rem,10vw,11rem);line-height:.77;letter-spacing:-.075em;text-transform:uppercase;margin:0}
.volunteers__path{margin:clamp(4rem,8vw,8rem) 0 0 auto;width:76%;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(9,10,11,.24)}
.volunteers__path article{padding:1.5rem 2.5rem 1.5rem 0;min-height:300px;border-right:1px solid rgba(9,10,11,.16)}
.volunteers__path article+article{padding-left:1.5rem}
.volunteers__path article:last-child{border-right:0}
.volunteers__path span{font-family:var(--display);font-size:1.5rem;color:#dd3c22}
.volunteers__path p{font-size:1rem;line-height:1.55;max-width:470px;margin:2.2rem 0 0}
.places{padding:clamp(6rem,11vw,11rem) clamp(1rem,5vw,5rem);display:grid;grid-template-columns:.82fr 1.18fr;gap:6vw;align-items:center;overflow:hidden}
.places__copy p{max-width:580px;color:#c6c6c2;font-size:1.08rem;margin:2rem 0 0}
.places__visual{height:min(70vw,760px);position:relative}
.places__visual figure{position:absolute;margin:0;width:46%;height:70%;overflow:hidden;box-shadow:0 35px 90px rgba(0,0,0,.45)}
.places__visual figure:first-child{left:5%;top:18%;transform:rotate(-7deg)}
.places__visual figure:nth-child(2){right:3%;top:5%;transform:rotate(6deg)}
.places__visual img{width:100%;height:100%;object-fit:cover}
.places__sun{position:absolute;width:22%;aspect-ratio:1;border-radius:50%;background:var(--accent);left:42%;top:42%;box-shadow:0 0 80px rgba(255,77,46,.4)}

.future{padding:clamp(6rem,11vw,11rem) clamp(1rem,5vw,5rem);background:var(--paper);color:var(--ink);scroll-margin-top:72px}
.future__head{max-width:1180px;margin-bottom:clamp(4rem,7vw,7rem)}
.future__head .eyebrow{color:#686867}
.future__grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(9,10,11,.28);border-bottom:1px solid rgba(9,10,11,.28)}
.future__grid article{min-height:440px;padding:1.8rem 2rem 2rem 0;border-right:1px solid rgba(9,10,11,.2)}
.future__grid article+article{padding-left:2rem}
.future__grid article:last-child{border-right:0}
.future__grid span{font-family:"Courier New",monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:#b32b17}
.future__grid h3{margin:4rem 0 1.5rem;font-family:var(--display);font-size:clamp(1.7rem,2.7vw,3.2rem);line-height:1;text-transform:uppercase;letter-spacing:-.045em}
.future__grid p{margin:0;max-width:410px;line-height:1.6}
.future__meaning{max-width:920px;margin:clamp(4rem,8vw,8rem) 0 0 auto}
.future__meaning p{margin:0;font-family:var(--display);font-size:clamp(1.7rem,3.4vw,4rem);line-height:1.04;letter-spacing:-.045em;text-transform:uppercase}

.partners{padding:clamp(5rem,10vw,10rem) clamp(1rem,5vw,5rem);border-top:1px solid var(--line)}
.partners__quote{max-width:1050px;margin-bottom:clamp(5rem,9vw,9rem)}
.partners__quote p{font-family:var(--display);font-size:clamp(2.3rem,5.2vw,6rem);letter-spacing:-.055em;line-height:.96;text-transform:uppercase;margin:0}
.partners__grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.partner{min-height:260px;padding:2rem 2rem 0 0;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between}
.partner+.partner{padding-left:2rem}
.partner:last-child{border-right:0}
.partner img{max-width:170px;max-height:92px;object-fit:contain;object-position:left center}
.partner--city img{width:86px;height:95px;object-fit:contain;filter:grayscale(1) invert(1)}
.partner--media img{width:76px;height:76px}
.partner p{max-width:280px;margin:2rem 0;color:var(--muted);font-size:.82rem}

.footer{height:92px;padding:0 clamp(1rem,5vw,5rem);display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);font-size:.75rem;color:var(--muted)}
.footer p,.footer a{margin:0}
.footer p:first-child{font-family:var(--display);color:var(--paper);font-size:1rem}
.footer a:hover,.footer a:focus-visible{color:var(--accent)}

.lightbox{width:min(92vw,1000px);height:min(92dvh,950px);border:0;padding:0;background:transparent;color:var(--paper);overflow:visible}
.lightbox::backdrop{background:rgba(4,4,5,.92);backdrop-filter:blur(12px)}
.lightbox figure{margin:0;width:100%;height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:1rem}
.lightbox__stage{position:relative;min-height:0;overflow:hidden}
.lightbox__stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .22s ease}
.lightbox__motion{opacity:0}
.lightbox.is-playing .lightbox__still{opacity:0}
.lightbox.is-playing .lightbox__motion{opacity:1}
.lightbox__stage::after{content:"";position:absolute;inset:0;opacity:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 8px,rgba(255,77,46,.28) 9px 11px);mix-blend-mode:screen}
.lightbox.is-glitching .lightbox__stage::after{animation:glitch-flash .34s steps(2,end)}
.lightbox.is-glitching .lightbox__still{animation:glitch-image .34s steps(2,end)}
.lightbox__bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem}
.lightbox figcaption{grid-column:2;text-align:center;font-size:.85rem}
.lightbox__animate{grid-column:3;justify-self:end;border:1px solid var(--accent);background:var(--accent);color:var(--ink);padding:.8rem 1.25rem;cursor:pointer;transition:transform .2s ease,background .2s ease,color .2s ease}
.lightbox__animate:hover,.lightbox__animate:focus-visible{background:var(--paper);border-color:var(--paper)}
.lightbox__animate:active{transform:scale(.97)}
.lightbox__close{position:fixed;z-index:2;right:2rem;top:1.5rem;background:var(--paper);color:var(--ink);border:0;padding:.75rem 1rem;cursor:pointer}

.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.is-visible{opacity:1;transform:none}

@keyframes float-one{0%,100%{transform:rotate(4deg) translateY(0)}50%{transform:rotate(2deg) translateY(-12px)}}
@keyframes float-two{0%,100%{transform:rotate(-8deg) translateY(0)}50%{transform:rotate(-6deg) translateY(11px)}}
@keyframes float-three{0%,100%{transform:rotate(10deg) translateY(0)}50%{transform:rotate(8deg) translateY(-9px)}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes scan{from{background-position:0 -60%}to{background-position:0 160%}}
@keyframes glitch-flash{0%{opacity:0;transform:translateX(0)}22%{opacity:.9;transform:translateX(-5px)}48%{opacity:.35;transform:translateX(4px)}72%{opacity:.7;transform:translateX(-2px)}100%{opacity:0;transform:translateX(0)}}
@keyframes glitch-image{0%,100%{clip-path:inset(0);transform:translateX(0)}25%{clip-path:inset(12% 0 62% 0);transform:translateX(7px)}50%{clip-path:inset(58% 0 14% 0);transform:translateX(-6px)}75%{clip-path:inset(34% 0 42% 0);transform:translateX(3px)}}
@keyframes satellite-flight{from{transform:rotate(var(--tilt))}to{transform:rotate(calc(var(--tilt) + 360deg))}}
@keyframes portal-spin{to{transform:rotate(360deg)}}
@keyframes portal-pulse{0%,100%{transform:scale(1);opacity:.65}50%{transform:scale(1.08);opacity:1}}

@media(max-width:1050px){
  .hero{grid-template-columns:1fr minmax(330px,.8fr)}
  .hero h1{font-size:clamp(4rem,8.5vw,6.7rem)}
  .atlas{grid-auto-rows:190px}
  .layers__grid{grid-template-columns:1fr 1fr}
  .timeline{grid-template-columns:1fr 1fr}
  .timeline li:nth-child(2){border-right:0}
  .timeline li:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .future__grid article{min-height:400px}
  .volunteers__path{width:88%}
}

@media(max-width:760px){
  .nav{height:64px}
  .nav__menu{display:flex;position:fixed;right:max(8px,env(safe-area-inset-right));top:max(10px,env(safe-area-inset-top));z-index:102;width:auto;align-items:center;gap:8px}
  .nav__menu b{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}
  .nav__menu span{width:14px}
  .nav__links{position:fixed;inset:0;width:100vw;min-height:100dvh;max-height:100dvh;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;background:var(--ink);display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;padding:max(5.5rem,calc(env(safe-area-inset-top) + 4.5rem)) max(1.25rem,env(safe-area-inset-right)) max(2rem,env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-left));font-family:var(--display);font-size:clamp(1.65rem,8.2vw,4rem);line-height:1.05;text-transform:uppercase;transform:translateX(100%);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
  .nav__links a{max-width:100%;white-space:normal;overflow-wrap:anywhere}
  .nav__links.is-open{transform:none}
  .nav__cta{border:0;padding:0;color:var(--accent);white-space:normal}
  .nav__menu[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}
  .nav__menu[aria-expanded="true"] span:last-child{transform:translateY(-4px) rotate(-45deg)}
  .hero{padding:6.3rem 1rem 2rem;grid-template-columns:1fr;grid-template-rows:auto minmax(320px,44vh);align-content:center;gap:1.2rem}
  .hero h1{font-size:clamp(2.9rem,12vw,5.7rem)}
  .hero__lead{font-size:1.05rem;margin-top:1.5rem;max-width:25rem}
  .hero__actions{margin-top:1.5rem}
  .button{min-height:44px;padding:.65rem .8rem;font-size:.7rem}
  .hero__visual{height:100%}
  .hero-card{width:36%}
  .hero-card--one{left:32%;top:0}
  .hero-card--two{left:8%;top:16%}
  .hero-card--three{right:7%;bottom:0}
  .sun--hero{left:43%;top:37%;width:75px}
  .hero__orbit{display:none}
  .statement__body{grid-template-columns:1fr;gap:1.5rem}
  .statement__code{margin-left:0!important;grid-template-columns:max-content max-content;justify-content:start;gap:.16em;font-size:clamp(2.25rem,10vw,3rem)}
  .statement__code::after{display:none}
  .statement__bridge{text-align:left}
  .impact__grid{grid-template-columns:1fr 1fr}
  .impact__grid>div{min-height:180px;border-bottom:1px solid var(--line)}
  .impact__grid>div:nth-child(2){border-right:0}
  .impact__grid>div:nth-child(3),.impact__grid>div:nth-child(4){border-bottom:0}
  .impact__grid>div:nth-child(3){padding-left:0}
  .atlas{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:auto;gap:1.5rem .65rem}
  .atlas-card,.atlas-card--tall,.atlas-card--wide{grid-column:span 1;grid-row:span 1;aspect-ratio:.71}
  .atlas-card img{height:calc(100% - 52px)}
  .country-line{margin-top:3rem}
  .layers__grid{display:block;background:none;border:0}
  .layer{min-height:560px;border:1px solid var(--line);margin-top:-1px;padding:1.5rem}
  .layer:last-child{grid-column:auto}
  .layer__art{left:1.5rem;right:1.5rem}
  .layer__interaction>span:first-child{display:none}
  .layer__interaction>span:last-child{display:inline}
  .layer__sphere{width:260px}
  .layer__portal{width:310px}
  .research{grid-template-columns:1fr;min-height:0;scroll-margin-top:64px}
  .research__visual{display:none}
  .research h2{overflow-wrap:anywhere}
  .programs{grid-template-columns:1fr;gap:2rem}
  .journey__head h2,.future__head h2{font-size:clamp(2.1rem,9.4vw,2.5rem)}
  .timeline{grid-template-columns:1fr}
  .timeline li,.timeline li+li{min-height:0;padding:1.5rem 0;border-right:0;border-bottom:1px solid var(--line)}
  .timeline li:last-child{border-bottom:0}
  .timeline time{margin-top:1.5rem}
  .volunteers__title{grid-template-columns:1fr;gap:1rem}
  .volunteers__title{min-width:0}
  .volunteers__title h2{font-size:clamp(3rem,13vw,6rem)}
  .volunteers__path{width:100%;grid-template-columns:1fr 1fr}
  .volunteers__path article{min-height:190px;border-bottom:1px solid rgba(9,10,11,.16)}
  .volunteers__path article:nth-child(2n){border-right:0;padding-left:1rem}
  .volunteers__path article:nth-child(2n+1){padding-right:1rem}
  .places{grid-template-columns:1fr;gap:4rem}
  .places__visual{height:100vw}
  .future__grid{grid-template-columns:1fr}
  .future__grid article,.future__grid article+article{min-height:0;padding:2rem 0;border-right:0;border-bottom:1px solid rgba(9,10,11,.2)}
  .future__grid article:last-child{border-bottom:0}
  .future__grid h3{margin-top:2.5rem}
  .partners__grid{grid-template-columns:1fr}
  .partner,.partner+.partner{min-height:210px;border-right:0;border-bottom:1px solid var(--line);padding:2rem 0}
  .partner:last-child{border-bottom:0}
  .footer{height:auto;padding-top:2rem;padding-bottom:2rem;align-items:flex-start;gap:1.5rem;flex-wrap:wrap}
  .footer p:nth-child(2){width:100%;order:3}
  .lightbox__close{right:1rem;top:1rem}
  .lightbox{width:94vw;height:88dvh}
  .lightbox__bar{grid-template-columns:1fr;gap:.75rem}
  .lightbox figcaption,.lightbox__animate{grid-column:1}
  .lightbox__animate{justify-self:stretch;text-align:center}
}

@media(max-width:420px){
  .hero h1{font-size:12vw}
  .hero__actions{align-items:stretch}
  .button{width:100%;justify-content:center}
  .atlas{grid-template-columns:1fr}
  .atlas-card,.atlas-card--tall,.atlas-card--wide{aspect-ratio:.83}
  .impact__grid{grid-template-columns:1fr}
  .impact__grid>div,.impact__grid>div+div,.impact__grid>div:nth-child(3){min-height:150px;padding:1.25rem 0;border-right:0;border-bottom:1px solid var(--line)}
  .impact__grid>div:last-child{border-bottom:0}
  .volunteers__path{grid-template-columns:1fr}
  .volunteers__path article,.volunteers__path article:nth-child(2n){border-right:0;padding:1.2rem 0;min-height:160px}
  .volunteers__path p{margin-top:1rem}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
  .layer__turntable{display:none}
  .layer__turntable-poster{position:static;opacity:1}
}
