:root{
  --ink:#1A1A1E;
  --anthracite:#26262B;
  --paper:#F5F3EE;
  --surface:#ECEAE4;
  --orange:#E0611F;
  --orange-deep:#DC4F22;
  --gold:#FFDD73;
  --muted:#8A857A;
  --line:#D8D4CC;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Libre Franklin",system-ui,sans-serif;
  background:var(--paper);
  color:var(--anthracite);
  font-size:18px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  font-feature-settings:"tnum" 0;
}
.wrap{max-width:820px;margin:0 auto;padding:0 28px}
.eyebrow{
  font-size:12.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--orange);margin-bottom:22px;
}
h1,h2,h3{font-family:"Lora",Georgia,serif;font-weight:500;line-height:1.08;color:var(--anthracite)}
h2{font-size:clamp(30px,5vw,46px);letter-spacing:-.01em;margin-bottom:26px}
.section-title{font-size:clamp(56px,10vw,128px);font-weight:600;letter-spacing:-.02em;line-height:.96;margin-bottom:28px}
p{margin-bottom:18px}
a{color:inherit}

/* ---------- NAV ---------- */
.topnav{
  position:fixed;top:0;left:0;width:100%;z-index:30;
  background:transparent;transition:background .35s ease,opacity .3s ease;
}
.topnav.nav-hidden{opacity:0;pointer-events:none}
.topnav-inner{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  max-width:1180px;margin:0 auto;padding:20px 28px;
}
.topnav .brand{
  display:flex;align-items:center;gap:10px;text-decoration:none;
  color:var(--surface);font-family:"Lora",Georgia,serif;font-weight:500;
  font-size:15px;letter-spacing:-.005em;transition:color .25s ease;
}
.brand-atom{width:24px;height:24px;flex:none;color:var(--surface);transition:color .25s ease}
.topnav .navlinks{display:flex;align-items:center;gap:4px}
.topnav .navlinks a{
  position:relative;display:inline-block;text-decoration:none;font-size:14px;font-weight:500;
  letter-spacing:.02em;padding:9px 16px;border-radius:4px;
}
.topnav .navlinks a span{position:relative;z-index:1;color:var(--surface);transition:color .2s ease .04s}
.topnav .navlinks a::before{
  content:"";position:absolute;inset:0;background:rgba(224,97,31,.55);border-radius:inherit;
  transform:scaleY(0);transform-origin:top;transition:transform .32s cubic-bezier(.65,0,.35,1);z-index:0;
}
.topnav .navlinks a:hover::before{transform:scaleY(1)}
.topnav .navlinks a:hover span{color:#fff}
.topnav--dark .brand,
.topnav--dark .brand-atom,
.topnav--dark .navlinks a span{color:var(--anthracite)}
@media (max-width:640px){
  .topnav .brand span{display:none}
  .topnav .navlinks{gap:0}
  .topnav .navlinks a{padding:8px 10px;font-size:12.5px}
}

/* ---------- HERO ---------- */
.hero{position:relative;height:180svh;background:var(--ink)}
.stage{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;padding-bottom:clamp(80px,13vh,130px)}
#atom{position:absolute;inset:0;width:100%;height:100%;display:block}
.reveal{
  position:absolute;left:50%;top:32%;width:64vmax;height:64vmax;border-radius:50%;
  transform:translate(-50%,-50%) scale(0);background:var(--paper);opacity:0;pointer-events:none;will-change:transform,opacity;
}
.hero-content{
  position:relative;z-index:2;text-align:center;padding:0 28px;max-width:760px;will-change:opacity,transform;
}
.wordmark{
  font-family:"Lora",Georgia,serif;font-weight:600;color:var(--paper);
  font-size:clamp(40px,8vw,92px);line-height:1;letter-spacing:-.015em;
}
.baseline{
  font-family:"Lora",Georgia,serif;font-style:italic;font-weight:400;
  color:var(--gold);font-size:clamp(17px,2.4vw,24px);margin-top:14px;
}
.lede{
  color:#CFCBC3;font-size:clamp(15px,2vw,18px);max-width:38ch;margin:16px auto 0;line-height:1.55;
}
.cta{
  display:inline-block;margin-top:28px;padding:15px 30px;border-radius:999px;
  background:var(--orange);color:#fff;font-weight:600;font-size:16px;letter-spacing:.01em;
  text-decoration:none;transition:transform .15s ease,background .2s ease;
}
.cta:hover{background:var(--orange-deep);transform:translateY(-1px)}
.cta:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.scrollcue{
  position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:2;
  color:#7C7A82;font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;
  display:flex;flex-direction:column;align-items:center;gap:8px;
}
.scrollcue span{width:1px;height:34px;background:linear-gradient(var(--orange),transparent);animation:cue 2s ease-in-out infinite}
@keyframes cue{0%,100%{opacity:.3;transform:scaleY(.7)}50%{opacity:1;transform:scaleY(1)}}

/* ---------- BANDS ---------- */
.band{padding:clamp(76px,12vw,132px) 0}
.band--surface{background:var(--surface)}
.band--first{padding-top:clamp(140px,22vh,190px)}
.lead-para{font-size:clamp(17px,2.1vw,19px);line-height:1.6}
.lead-para strong{font-weight:600}

/* separator: hairline + spark */
.sep{display:flex;align-items:center;justify-content:center;gap:0;height:1px;margin:0 auto;max-width:820px;width:calc(100% - 56px)}
.sep::before,.sep::after{content:"";flex:1;height:1px;background:var(--line)}
.sep i{width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 40% 35%,var(--gold),var(--orange-deep));margin:0 16px;flex:none}

/* value list */
.value-intro{font-family:"Lora",serif;font-style:italic;font-size:clamp(20px,3vw,26px);color:var(--anthracite);margin-bottom:34px}
.vlist{list-style:none;display:grid;gap:2px}
.vlist li{display:flex;gap:16px;align-items:baseline;padding:16px 0;border-top:1px solid var(--line)}
.vlist li:last-child{border-bottom:1px solid var(--line)}
.vlist .dot{width:8px;height:8px;border-radius:50%;background:radial-gradient(circle at 40% 35%,var(--gold),var(--orange-deep));flex:none;transform:translateY(6px)}
.vlist span{font-size:clamp(17px,2.4vw,20px)}

/* axes */
.axes{display:grid;gap:0;margin-top:28px;margin-bottom:52px}
.axis{padding:0}
.axis + .axis{margin-top:44px}
.axis h3{font-size:clamp(26px,3.6vw,34px);margin-bottom:10px}
.axis p{color:#514D45;margin:0;font-size:clamp(17px,1.9vw,19px);font-style:italic}

/* manifesto background glows */
#manifeste{position:relative;overflow:hidden}
#manifeste .wrap{position:relative;z-index:1}
.glow{
  position:absolute;border-radius:50%;
  background:radial-gradient(circle,var(--gold) 0%,var(--orange) 42%,rgba(220,79,34,0) 72%);
  filter:blur(65px);pointer-events:none;z-index:0;
  will-change:transform;transform:translateZ(0);backface-visibility:hidden;
  animation:blobfloat 19s ease-in-out infinite;
}
.glow--1{width:680px;height:680px;top:640px;left:-240px;opacity:.58;animation-duration:21s}
.glow--2{width:820px;height:820px;top:36%;right:-360px;opacity:.5;animation-duration:27s;animation-delay:-9s}
.glow--3{width:620px;height:620px;bottom:-220px;left:0;opacity:.55;animation-duration:24s;animation-delay:-15s}
@keyframes blobfloat{
  0%{transform:translate(0,0) scale(1)}
  22%{transform:translate(9%,-11%) scale(1.22)}
  48%{transform:translate(-11%,8%) scale(0.85)}
  74%{transform:translate(-7%,-9%) scale(1.14)}
  100%{transform:translate(0,0) scale(1)}
}

/* ---------- MISSIONS ORBIT ---------- */
.mission-stage{
  position:relative;height:100svh;overflow:hidden;background:var(--paper);
  display:flex;align-items:center;justify-content:center;
}
#core{position:absolute;inset:0;width:100%;height:100%;display:block;filter:blur(24px);opacity:.9}
.orbit-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:5;
  width:52px;height:52px;border-radius:50%;border:none;background:transparent;
  display:flex;align-items:center;justify-content:center;color:var(--anthracite);
  cursor:pointer;transition:background .2s ease,color .2s ease;
}
.orbit-arrow svg{width:26px;height:26px}
.orbit-arrow:hover{background:rgba(224,97,31,.12);color:var(--orange-deep)}
.orbit-arrow--prev{left:clamp(10px,4vw,48px)}
.orbit-arrow--next{right:clamp(10px,4vw,48px)}
.orbit-viewport{position:relative;width:min(600px,84vw);height:min(480px,60vh);z-index:2;perspective:1400px}
.orbit-track{position:relative;width:100%;height:100%;transform-style:preserve-3d}
.orbit-card{
  position:absolute;inset:0;margin:auto;padding:clamp(32px,5vw,56px);
  padding-top:clamp(78px,10vw,120px);overflow:hidden;
  background:var(--paper);border:1px solid var(--line);border-radius:18px;
  box-shadow:0 30px 60px -20px rgba(26,26,30,.18);
  display:flex;flex-direction:column;justify-content:center;
  transition:transform .26s cubic-bezier(.45,0,1,1),opacity .22s cubic-bezier(.45,0,1,1),filter .22s ease;
}
.orbit-index{
  position:absolute;top:-.06em;left:-.09em;z-index:0;pointer-events:none;user-select:none;
  font-family:"Lora",Georgia,serif;font-weight:700;line-height:1;
  font-size:clamp(90px,12vw,160px);color:var(--orange);
}
.orbit-body{position:relative;z-index:1}
.orbit-card h2{font-size:clamp(24px,3.4vw,32px);margin-bottom:14px}
.orbit-card p{color:#514D45;font-size:16.5px;line-height:1.6;margin:0}
.orbit-card.is-active{transform:translateX(0) scale(1);opacity:1;z-index:3;pointer-events:auto}
.orbit-card.is-prev{transform:translateX(-72%) scale(.8);opacity:0;z-index:1;pointer-events:none}
.orbit-card.is-next{transform:translateX(72%) scale(.8);opacity:0;z-index:1;pointer-events:none}
.orbit-card.is-hidden{transform:translateX(0) scale(.6);opacity:0;z-index:0;pointer-events:none}
@media (min-width:900px){
  .mission-stage{perspective:1600px}
  .orbit-card.is-prev{transform:translateX(-96%) scale(.7) translateZ(-140px);opacity:.5;filter:blur(1px)}
  .orbit-card.is-next{transform:translateX(96%) scale(.7) translateZ(-140px);opacity:.5;filter:blur(1px)}
  .orbit-card.is-hidden{transform:translateX(0) scale(.5) translateZ(-260px);opacity:0}
}
@media (max-width:640px){
  .orbit-arrow{width:42px;height:42px}
  .orbit-arrow--prev{left:4px}
  .orbit-arrow--next{right:4px}
  .orbit-viewport{width:min(420px,78vw)}
  .orbit-index{font-size:clamp(70px,20vw,110px)}
}

/* ---------- ACTIONS SHEET ---------- */
.action-sheet{position:relative;overflow:hidden;padding-bottom:clamp(90px,11vw,140px)}
.action-sheet .wrap{position:relative;z-index:1}
.action-sheet .glow--1{width:640px;height:640px;top:-260px;left:-260px;opacity:.32}
.action-sheet .glow--2{width:720px;height:720px;bottom:-280px;right:-300px;opacity:.3;animation-delay:-11s}
.action-list{display:grid}
.action-item{
  display:grid;grid-template-columns:clamp(52px,7vw,84px) 1fr;column-gap:clamp(20px,4vw,44px);
  align-items:start;padding:clamp(34px,5.5vw,54px) 0;border-top:1px solid var(--line);
}
.action-item:last-child{border-bottom:1px solid var(--line)}
.action-index{
  font-family:"Lora",Georgia,serif;font-weight:700;color:var(--orange);
  font-size:clamp(32px,4.2vw,50px);line-height:1;
}
.action-item h2{font-size:clamp(22px,2.9vw,29px);margin-bottom:10px}
.action-item p{color:#514D45;font-size:16.5px;line-height:1.6;margin:0}
@media (max-width:600px){
  .action-item{grid-template-columns:40px 1fr;column-gap:18px}
}

/* CTA / join */
.join{background:var(--ink);color:var(--paper)}
.join h2{color:var(--paper)}
.join .eyebrow{color:var(--gold)}
.join .sub{color:#CFCBC3;max-width:44ch;margin-bottom:38px;font-size:clamp(16px,2.2vw,19px)}
.formbox{background:var(--paper);border-radius:16px;overflow:hidden;height:min(760px,80vh);min-height:480px}
.formbox iframe{display:block;width:100%;height:100%;border:0}

/* footer */
.site-footer{position:relative;z-index:1;background:var(--paper);border-top:1px solid var(--line)}
.footer-inner{
  display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;
  padding:28px 0;font-size:13px;color:var(--muted);
}
.footer-links{display:flex;flex-wrap:wrap;gap:22px}
.footer-links a{color:var(--muted);text-decoration:none}
.footer-links a:hover{color:var(--orange)}

/* legal pages */
.legal p{color:#514D45;font-size:16px;line-height:1.7;max-width:70ch}
.legal h2{font-size:clamp(22px,2.8vw,28px);margin-top:40px;margin-bottom:14px}
.legal h2:first-of-type{margin-top:0}
.legal ul{margin:0 0 18px;padding-left:20px;color:#514D45;font-size:16px;line-height:1.7}

@media (max-width:600px){
  .wrap{padding:0 22px}
  .band{padding:64px 0}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero{height:100svh}
  .stage{position:relative}
  .reveal{display:none}
  .scrollcue span{animation:none}
  .glow{animation:none}
  .orbit-card{transition:none}
}
