/* ============================================================
   AARC Solutions — shared brand system
   Themes: <body class="theme-dark"> | <body class="theme-light">
   ============================================================ */

:root{
  --gold:#D4AF37;
  --gold-lite:#F4E4A1;
  --gold-deep:#B89224;
  --ink:#05070d;

  --font-display:'Sen',sans-serif;
  --font-body:'Inter',sans-serif;
  --font-mono:'IBM Plex Mono',monospace;

  --wrap:1200px;
  --measure:960px;
}

/* ---------- Theme: dark ---------- */
.theme-dark{
  --bg:var(--ink);
  --text:#ffffff;
  --text-2:rgba(255,255,255,0.75);
  --text-3:rgba(255,255,255,0.58);
  --text-4:rgba(255,255,255,0.40);
  --line:rgba(255,255,255,0.14);
  --line-strong:rgba(255,255,255,0.32);
  --surface:rgba(255,255,255,0.05);
  --surface-2:rgba(255,255,255,0.08);
  --nav-scrolled:rgba(5,7,13,0.72);
  --accent-text:var(--gold);
  --pt-node:210,225,245;
  --pt-node-gold:244,228,161;
  --pt-link:150,180,220;
  --shadow:0 24px 70px rgba(0,0,0,0.45);
}
/* ---------- Theme: light ---------- */
.theme-light{
  --bg:#FAF7F0;
  --text:#16171c;
  --text-2:rgba(22,23,28,0.74);
  --text-3:rgba(22,23,28,0.60);
  --text-4:rgba(22,23,28,0.42);
  --line:rgba(22,23,28,0.13);
  --line-strong:rgba(22,23,28,0.32);
  --surface:rgba(255,255,255,0.62);
  --surface-2:rgba(255,255,255,0.85);
  --nav-scrolled:rgba(250,247,240,0.78);
  --accent-text:var(--gold-deep);
  --pt-node:70,100,150;
  --pt-node-gold:184,146,36;
  --pt-link:44,79,128;
  --shadow:0 24px 60px rgba(22,23,28,0.12);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:96px;}
body{
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--text);
  overflow-x:hidden;
  min-height:100vh;
  position:relative;
  -webkit-font-smoothing:antialiased;
}
body.no-scroll{overflow:hidden;}

:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px;}

/* ===================== Backdrop ===================== */
.aurora{
  position:fixed;inset:-20% -20% -20% -20%;z-index:0;
  filter:blur(30px) saturate(120%);
  animation:auroraDrift 22s ease-in-out infinite alternate;
  will-change:transform;
}
.theme-dark .aurora{
  background:
    radial-gradient(45% 55% at 22% 28%, rgba(44,79,128,0.55) 0%, transparent 60%),
    radial-gradient(40% 50% at 82% 22%, rgba(212,175,55,0.16) 0%, transparent 60%),
    radial-gradient(55% 60% at 68% 82%, rgba(44,79,128,0.40) 0%, transparent 62%),
    radial-gradient(60% 60% at 30% 88%, rgba(212,175,55,0.10) 0%, transparent 60%);
}
.theme-light .aurora{
  background:
    radial-gradient(45% 55% at 22% 28%, rgba(44,79,128,0.18) 0%, transparent 60%),
    radial-gradient(40% 50% at 82% 22%, rgba(212,175,55,0.16) 0%, transparent 60%),
    radial-gradient(55% 60% at 68% 82%, rgba(44,79,128,0.14) 0%, transparent 62%),
    radial-gradient(60% 60% at 30% 88%, rgba(212,175,55,0.10) 0%, transparent 60%);
}
.aurora.flip{animation-name:auroraDriftFlip;}
@keyframes auroraDrift{
  0%{transform:translate3d(-3%,-2%,0) scale(1.05) rotate(0deg);}
  50%{transform:translate3d(3%,2%,0) scale(1.12) rotate(1.5deg);}
  100%{transform:translate3d(-2%,3%,0) scale(1.06) rotate(-1deg);}
}
@keyframes auroraDriftFlip{
  0%{transform:translate3d(3%,-2%,0) scale(1.05) rotate(0deg);}
  50%{transform:translate3d(-3%,2%,0) scale(1.12) rotate(-1.5deg);}
  100%{transform:translate3d(2%,3%,0) scale(1.06) rotate(1deg);}
}
.vignette{position:fixed;inset:0;z-index:1;pointer-events:none;}
.theme-dark .vignette{background:radial-gradient(circle at 50% 42%, transparent 40%, rgba(0,0,0,0.55) 100%);}
.theme-light .vignette{background:radial-gradient(circle at 50% 42%, transparent 40%, rgba(250,245,232,0.75) 100%);}
#particles{position:fixed;inset:0;z-index:2;opacity:0.9;pointer-events:none;}

/* ===================== Nav ===================== */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:60;transition:background .35s ease, border-color .35s ease, opacity .9s ease;border-bottom:1px solid transparent;}
.site-nav.scrolled{
  background:var(--nav-scrolled);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom-color:var(--line);
}
.nav-inner{
  max-width:var(--wrap);margin:0 auto;padding:24px 32px;
  display:flex;justify-content:space-between;align-items:center;gap:24px;
}
.brand{
  font-family:var(--font-mono);font-weight:500;font-size:1.15rem;letter-spacing:0.04em;
  text-decoration:none;color:var(--text);white-space:nowrap;
}
.brand .dot{color:var(--gold);}

.nav-links{display:flex;align-items:center;gap:26px;}
.nav-link{
  font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--text-2);text-decoration:none;transition:color .3s ease;white-space:nowrap;
  background:none;border:none;cursor:pointer;padding:0;
}
.nav-link:hover{color:var(--gold);}
.nav-link[aria-current="page"]{color:var(--gold);}

/* Dropdown */
.nav-dd{position:relative;}
.nav-dd > .nav-link{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);}
.nav-dd .caret{
  display:block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-2px);transition:transform .25s ease;
}
.nav-dd.open .caret{transform:rotate(-135deg) translateY(-2px);}
.nav-dd-menu{
  position:absolute;top:calc(100% + 16px);left:50%;transform:translateX(-50%) translateY(-6px);
  min-width:230px;padding:10px;border-radius:16px;
  background:var(--surface-2);border:1px solid var(--line);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  box-shadow:var(--shadow);
  opacity:0;visibility:hidden;transition:opacity .22s ease, transform .22s ease, visibility .22s;
  display:flex;flex-direction:column;gap:2px;
}
.theme-dark .nav-dd-menu{background:rgba(9,13,24,0.92);}
.nav-dd.open .nav-dd-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.nav-dd-menu a{
  display:block;padding:11px 14px;border-radius:10px;text-decoration:none;
  font-family:var(--font-body);font-size:0.9rem;color:var(--text-2);
  transition:background .2s ease,color .2s ease;
}
.nav-dd-menu a:hover,.nav-dd-menu a:focus-visible{background:var(--surface);color:var(--gold);}
.nav-dd-menu a span{display:block;font-size:0.74rem;color:var(--text-4);margin-top:2px;}

.nav-cta{
  font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--text);text-decoration:none;border:1px solid var(--line-strong);
  border-radius:100px;padding:10px 22px;transition:all .3s ease;
  backdrop-filter:blur(8px);white-space:nowrap;
}
.nav-cta:hover{border-color:var(--gold);color:var(--gold);box-shadow:0 0 24px rgba(212,175,55,0.25);}

/* Mobile menu */
.nav-toggle{
  display:none;width:42px;height:42px;border:1px solid var(--line-strong);border-radius:100px;
  background:none;cursor:pointer;position:relative;
}
.nav-toggle span{
  position:absolute;left:12px;right:12px;height:1.5px;background:var(--text);
  transition:transform .3s ease, opacity .2s ease;
}
.nav-toggle span:nth-child(1){top:16px;}
.nav-toggle span:nth-child(2){top:23px;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(3.5px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg);}

@media (max-width:900px){
  .nav-toggle{display:block;position:relative;z-index:2;}
  .brand{position:relative;z-index:2;}
  .nav-links{
    position:fixed;top:0;right:0;bottom:0;width:min(86vw,360px);
    flex-direction:column;align-items:flex-start;gap:4px;
    padding:104px 28px 32px;overflow-y:auto;
    background:var(--bg);border-left:1px solid var(--line);
    transform:translateX(100%);transition:transform .38s cubic-bezier(.2,.7,.2,1);
    z-index:1;
  }
  .nav-links.open{transform:translateX(0);}
  .nav-link{font-size:0.82rem;padding:14px 0;width:100%;text-align:left;}
  .nav-dd{width:100%;}
  .nav-dd-menu{
    position:static;transform:none;opacity:1;visibility:visible;
    display:none;background:none;border:none;box-shadow:none;padding:0 0 10px 14px;
    backdrop-filter:none;-webkit-backdrop-filter:none;
  }
  .theme-dark .nav-dd-menu{background:none;}
  .nav-dd.open .nav-dd-menu{display:flex;transform:none;}
  .nav-cta{margin-top:18px;}
}

/* ===================== Type & layout ===================== */
.stage{position:relative;z-index:10;max-width:var(--measure);margin:0 auto;padding:170px 24px 130px;}
.stage.wide{max-width:var(--wrap);}

.eyebrow{
  font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.42em;text-transform:uppercase;
  color:var(--accent-text);display:flex;align-items:center;gap:16px;margin-bottom:26px;
}
.eyebrow::after{content:'';display:block;height:1px;flex:1;max-width:120px;
  background:linear-gradient(90deg,rgba(212,175,55,0.7),transparent);}
.eyebrow.center{justify-content:center;}
.eyebrow.center::before,.eyebrow.center::after{
  content:'';display:block;height:1px;width:34px;flex:none;max-width:none;
  background:linear-gradient(90deg,transparent,rgba(212,175,55,0.7),transparent);
}

.headline{
  font-family:var(--font-display);font-weight:700;line-height:1.04;letter-spacing:-0.01em;
  font-size:clamp(2.4rem,6vw,4.6rem);margin-bottom:26px;max-width:18ch;
}
.grad{
  background:linear-gradient(135deg,var(--gold) 0%,var(--gold-lite) 55%,var(--gold) 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.theme-light .grad{
  background:linear-gradient(135deg,var(--gold-deep) 0%,var(--gold) 55%,var(--gold-deep) 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.lede{
  font-size:clamp(1.05rem,1.8vw,1.35rem);color:var(--text-2);
  max-width:60ch;line-height:1.65;margin-bottom:52px;
}
.prose p{font-size:1.02rem;color:var(--text-3);line-height:1.75;max-width:68ch;margin-bottom:22px;}
.prose p strong{color:var(--text);font-weight:600;}
.prose p a{color:var(--accent-text);}

.section-label{
  font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.24em;text-transform:uppercase;
  color:var(--text-4);margin:64px 0 22px;
}
h2.title{
  font-family:var(--font-display);font-weight:700;font-size:clamp(1.7rem,3.4vw,2.5rem);
  line-height:1.15;letter-spacing:-0.01em;margin-bottom:18px;max-width:22ch;
}

/* Cards */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));}
.card{
  padding:28px 26px;border-radius:18px;
  background:var(--surface);border:1px solid var(--line);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  transition:border-color .35s ease, background .35s ease, transform .35s ease;
}
.card:hover{border-color:rgba(212,175,55,0.55);background:var(--surface-2);transform:translateY(-3px);}
.card .num{font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.2em;color:var(--accent-text);text-transform:uppercase;}
.card h3{font-family:var(--font-display);font-weight:600;font-size:1.2rem;margin:12px 0 10px;line-height:1.3;}
.card p{font-size:0.94rem;color:var(--text-3);line-height:1.65;}
.card .tag{
  display:inline-block;margin-bottom:14px;font-family:var(--font-mono);
  font-size:0.62rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--accent-text);
  border:1px solid rgba(212,175,55,0.35);border-radius:100px;padding:5px 12px;
}

/* Flow */
.flow{display:flex;flex-wrap:wrap;align-items:center;gap:14px;}
.flow .step{
  font-family:var(--font-mono);font-size:0.8rem;letter-spacing:0.06em;padding:12px 20px;border-radius:100px;
  background:var(--surface);border:1px solid var(--line);color:var(--text-2);
}
.flow .arrow{color:var(--gold);font-size:1.1rem;}

/* Checklist */
.checklist{display:grid;gap:14px;max-width:64ch;}
.check{display:flex;gap:14px;align-items:flex-start;}
.check .tick{color:var(--gold);font-size:0.95rem;line-height:1.6;}
.check p{color:var(--text-3);line-height:1.6;font-size:1rem;}

/* Buttons */
.cta-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:52px;}
.cta-row.center{justify-content:center;}
.btn{
  font-family:var(--font-mono);font-size:0.78rem;letter-spacing:0.16em;text-transform:uppercase;
  text-decoration:none;padding:16px 34px;border-radius:100px;transition:all .35s ease;
  display:inline-block;border:1px solid transparent;cursor:pointer;
}
.btn-primary{
  color:var(--ink);background:linear-gradient(135deg,var(--gold) 0%,var(--gold-lite) 100%);font-weight:600;
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 40px rgba(212,175,55,0.35);}
.btn-ghost{color:var(--text);border-color:var(--line-strong);backdrop-filter:blur(8px);}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold);}

/* ===================== Forms ===================== */
.form-card{
  display:flex;flex-direction:column;align-items:stretch;gap:16px;
  width:100%;max-width:480px;padding:38px 40px;border-radius:22px;
  background:var(--surface);border:1px solid var(--line);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  transition:border-color .35s ease, background .35s ease;
}
.form-card:hover{border-color:rgba(212,175,55,0.5);}
.field{display:flex;flex-direction:column;gap:6px;text-align:left;}
.field label{
  font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--text-4);
}
.field input,.field textarea,.field select{
  font-family:var(--font-body);font-size:0.95rem;color:var(--text);
  background:var(--surface-2);border:1px solid var(--line);
  border-radius:10px;padding:12px 14px;outline:none;resize:vertical;width:100%;
  transition:border-color .25s ease, background .25s ease;
}
.theme-dark .field input,.theme-dark .field textarea,.theme-dark .field select{background:rgba(255,255,255,0.06);}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--gold);}
.field textarea{min-height:90px;}
.field select{appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:calc(100% - 19px) 51%,calc(100% - 14px) 51%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:38px;}
.theme-dark .field select option{background:#0b0f1a;color:#fff;}
.submit-btn{
  font-family:var(--font-display);font-weight:600;font-size:1rem;color:var(--ink);
  background:linear-gradient(135deg,var(--gold) 0%,var(--gold-lite) 100%);
  border:none;border-radius:100px;padding:14px 28px;cursor:pointer;margin-top:4px;
  transition:transform .35s ease, box-shadow .35s ease;
}
.submit-btn:hover{transform:translateY(-2px);box-shadow:0 14px 44px rgba(212,175,55,0.35);}
.submit-btn:disabled{opacity:0.6;cursor:not-allowed;transform:none;box-shadow:none;}
.form-status{
  font-family:var(--font-mono);font-size:0.66rem;letter-spacing:0.08em;color:var(--text-3);min-height:1.2em;
}
.form-status.ok{color:#5a9c6c;}
.form-status.err{color:#c46a6a;}
.theme-dark .form-status.ok{color:#8fd19e;}
.theme-dark .form-status.err{color:#e08b8b;}
.direct-email{
  font-family:var(--font-mono);font-size:0.66rem;letter-spacing:0.08em;color:var(--text-4);margin-top:22px;
}
.direct-email a{color:var(--accent-text);text-decoration:none;}
.direct-email a:hover{text-decoration:underline;}

/* ===================== Footer ===================== */
.site-footer{
  position:relative;z-index:12;border-top:1px solid var(--line);margin-top:0;
}
.footer-inner{
  max-width:var(--wrap);margin:0 auto;padding:30px 32px;
  display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
  font-family:var(--font-mono);font-size:0.66rem;letter-spacing:0.12em;
  color:var(--text-4);text-transform:uppercase;
}
.footer-inner a{color:var(--text-4);text-decoration:none;}
.footer-inner a:hover{color:var(--gold);}
.footer-links{display:flex;gap:20px;flex-wrap:wrap;}

/* ===================== Motion ===================== */
.fade-in{opacity:0;transform:translateY(16px);animation:fadeUp 1s ease-out forwards;}
.fade-down{opacity:0;transform:translateY(-12px);animation:fadeDown 1s ease-out .2s forwards;}
.blur-in{opacity:0;transform:translateY(30px);filter:blur(8px);animation:reveal 1.1s cubic-bezier(.2,.7,.2,1) forwards;}
.d1{animation-delay:.4s;} .d2{animation-delay:.6s;} .d3{animation-delay:.9s;} .d4{animation-delay:1.15s;} .d5{animation-delay:1.4s;}
@keyframes reveal{to{opacity:1;transform:translateY(0);filter:blur(0);}}
@keyframes fadeUp{to{opacity:1;transform:translateY(0);}}
@keyframes fadeDown{to{opacity:1;transform:translateY(0);}}
@keyframes pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(212,175,55,0.7);opacity:1;}
  50%{box-shadow:0 0 0 8px rgba(212,175,55,0);opacity:0.7;}
}

@media (max-width:640px){
  .nav-inner{padding:18px 20px;}
  .stage{padding:130px 20px 90px;}
  .footer-inner{padding:24px 20px;font-size:0.6rem;}
  .eyebrow{letter-spacing:0.3em;}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
  .fade-in,.fade-down,.blur-in{opacity:1!important;transform:none!important;filter:none!important;}
  .aurora{animation:none;}
  html{scroll-behavior:auto;}
}

/* ===================== Landing hero ===================== */
.hero{
  position:relative;z-index:10;min-height:100svh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:120px 24px 140px;
}
.hero .eyebrow{justify-content:center;margin-bottom:34px;}

/* ---- intro overlay: monogram resolves over the page, then hands off ----
   The overlay is transparent, so the aurora + particle backdrop runs
   continuously underneath and the intro reads as one scene with the page
   rather than a separate splash screen. */
.intro{
  display:none;position:fixed;inset:0;z-index:90;
  place-items:center;
  opacity:1;transition:opacity 1s ease;
}
/* `intro-pending` shows it before aarc.js runs; `is-on` keeps it displayed
   afterwards, so releasing the page cannot cut the fade-out short. */
.intro-pending .intro,.intro.is-on{display:grid;}
.intro.is-done{opacity:0;pointer-events:none;}
.intro-inner{
  display:flex;flex-direction:column;align-items:center;gap:22px;
  transition:opacity .85s ease,transform 1.2s cubic-bezier(.2,.7,.2,1);
}
.intro.is-done .intro-inner{opacity:0;transform:scale(1.06);}
.intro-mark{
  display:block;width:min(500px,76vw);aspect-ratio:840/520;height:auto;
}
.intro-word{
  font-family:var(--font-mono);font-weight:500;color:var(--text);
  font-size:clamp(1.1rem,2.4vw,1.75rem);
  letter-spacing:0.42em;text-indent:0.42em;
  opacity:0;transform:translateY(14px);
  transition:opacity .95s ease,transform .95s cubic-bezier(.2,.7,.2,1);
}
.intro-word .dot{color:var(--gold);}
/* Set once the monogram has resolved, so the wordmark lands with it. */
.intro.is-lit .intro-word{opacity:1;transform:none;}
/* On intro pages the overlay supplies the pause, so the shared entrance
   delays are tightened to hand straight off to the page. */
.has-intro .fade-in.d2{animation-delay:.12s;}
.has-intro .fade-in.d5{animation-delay:.85s;}
/* Hold the page still and keep its entrance animations at frame 0 until the
   overlay clears, so nothing plays out of sight behind it. */
.intro-pending body{overflow:hidden;}
.intro-pending .site-nav{opacity:0;}
.intro-pending .hero .headline .word,
.intro-pending .fade-in,
.intro-pending .fade-down,
.intro-pending .blur-in{animation-play-state:paused;}
.hero .eyebrow::before,.hero .eyebrow::after{
  content:'';display:block;height:1px;width:34px;flex:none;max-width:none;
  background:linear-gradient(90deg,transparent,rgba(212,175,55,0.7),transparent);
}
.hero .headline{
  font-size:clamp(2.5rem,6vw,5.4rem);line-height:1.08;max-width:20ch;margin-bottom:30px;
}
.hero .headline .word{
  display:inline-block;opacity:0;transform:translateY(40px);filter:blur(10px);
  animation:reveal 1.1s cubic-bezier(.2,.7,.2,1) forwards;
}
.hero .subline{
  font-size:clamp(0.95rem,1.4vw,1.15rem);color:var(--text-3);
  max-width:46ch;line-height:1.6;margin-bottom:46px;
}
.hero .cta-row{margin-top:0;justify-content:center;}

/* Landing sections */
.band{position:relative;z-index:10;padding:110px 24px;}
.band .wrap{max-width:var(--wrap);margin:0 auto;}
.band.bordered{border-top:1px solid var(--line);}
.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;}
.pillar{
  display:block;text-decoration:none;color:inherit;padding:26px 24px;border-radius:16px;
  border:1px solid var(--line);background:var(--surface);
  transition:border-color .35s ease,transform .35s ease,background .35s ease;
}
.pillar:hover{border-color:rgba(212,175,55,0.55);transform:translateY(-3px);background:var(--surface-2);}
.pillar h3{font-family:var(--font-display);font-weight:600;font-size:1.08rem;margin-bottom:9px;}
.pillar p{font-size:0.9rem;color:var(--text-3);line-height:1.6;}
.pillar .go{display:inline-block;margin-top:14px;font-family:var(--font-mono);font-size:0.62rem;
  letter-spacing:0.2em;text-transform:uppercase;color:var(--accent-text);}
.about-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;align-items:start;}
@media (max-width:860px){.about-grid{grid-template-columns:1fr;gap:34px;}}
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:22px;margin-top:34px;}
.stat{border-left:1px solid var(--line);padding-left:16px;}
.stat .k{font-family:var(--font-display);font-weight:700;font-size:1.6rem;line-height:1.1;}
.stat .v{font-size:0.86rem;color:var(--text-3);margin-top:6px;line-height:1.5;}

/* Timeline (updates) */
.timeline{border-left:1px solid var(--line);margin-left:6px;}
.entry{position:relative;padding:0 0 40px 30px;}
.entry::before{
  content:'';position:absolute;left:-6px;top:6px;width:11px;height:11px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 0 4px rgba(212,175,55,0.15);
}
.entry .date{font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.16em;
  text-transform:uppercase;color:var(--accent-text);margin-bottom:8px;}
.entry h3{font-family:var(--font-display);font-weight:600;font-size:1.3rem;margin-bottom:8px;}
.entry p{font-size:0.98rem;color:var(--text-3);line-height:1.7;max-width:62ch;}

/* Media placeholders */
.media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;}
.media-tile{
  aspect-ratio:16/10;border-radius:16px;border:1px dashed var(--line-strong);
  background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
}
.media-tile .ph{font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--text-4);}
.media-tile .cap{font-size:0.85rem;color:var(--text-3);}

/* Inline CTA band (landing) */
.cta-band{
  position:relative;z-index:10;max-width:var(--measure);margin:0 auto 0;padding:0 24px 110px;
}
.cta-band-inner{
  border:1px solid rgba(212,175,55,0.35);border-radius:22px;padding:34px 36px;
  background:var(--surface);display:flex;gap:28px;align-items:center;justify-content:space-between;flex-wrap:wrap;
}
.cta-band-inner h3{font-family:var(--font-display);font-weight:600;font-size:1.25rem;margin-bottom:8px;}
.cta-band-inner p{font-size:0.93rem;color:var(--text-3);max-width:52ch;line-height:1.6;}

/* ===================== Centred form pages ===================== */
.stage.centered{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;min-height:100vh;padding:150px 24px 110px;
}
.stage.centered .headline{max-width:none;}
.stage.centered .lede{margin-left:auto;margin-right:auto;max-width:52ch;margin-bottom:42px;}
.stage.centered .eyebrow{justify-content:center;}
.stage.centered .eyebrow::before,.stage.centered .eyebrow::after{
  content:'';display:block;height:1px;width:34px;flex:none;max-width:none;
  background:linear-gradient(90deg,transparent,rgba(212,175,55,0.7),transparent);
}

/* ===================== Pills ===================== */
.pill{
  display:inline-flex;align-items:center;gap:9px;margin-bottom:22px;
  font-family:var(--font-mono);font-size:0.64rem;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--accent-text);border:1px solid rgba(212,175,55,0.45);border-radius:100px;padding:7px 15px;
  background:var(--surface);
}
.pill::before{
  content:'';width:7px;height:7px;border-radius:50%;background:var(--gold);
  animation:pulse 2.2s ease-in-out infinite;
}

/* ===================== Illustrations ===================== */
.figure{
  margin:8px 0 0;padding:26px 22px 18px;border-radius:22px;
  background:var(--surface);border:1px solid var(--line);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
.figure svg{display:block;width:100%;height:auto;}
.figure figcaption{
  margin-top:14px;font-family:var(--font-mono);font-size:0.64rem;letter-spacing:0.12em;
  color:var(--text-4);line-height:1.7;
}
.figure.hero-figure{margin-top:0;}

/* SVG palette — reads from the active theme */
.g-stroke{stroke:var(--line-strong);fill:none;}
.g-stroke-soft{stroke:var(--line);fill:none;}
.g-gold{stroke:var(--gold);fill:none;}
.g-fill-gold{fill:var(--gold);}
.g-surface{fill:var(--surface-2);stroke:var(--line-strong);}
.theme-dark .g-surface{fill:rgba(255,255,255,0.05);}
.g-record{fill:var(--surface-2);stroke:rgba(212,175,55,0.7);}
.theme-dark .g-record{fill:rgba(212,175,55,0.06);}
.g-text{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;fill:var(--text-3);}
.g-text-strong{font-family:var(--font-display);font-weight:600;font-size:13px;fill:var(--text);}
.g-text-small{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.1em;fill:var(--text-4);text-transform:uppercase;}
.g-text-gold{font-family:var(--font-mono);font-size:10.5px;letter-spacing:0.18em;fill:var(--accent-text);text-transform:uppercase;}
.g-flow{stroke:var(--gold);fill:none;stroke-dasharray:5 9;stroke-linecap:round;animation:gflow 2.6s linear infinite;}
.g-flow.soft{stroke:var(--line-strong);}
.g-line-faint{stroke:var(--line);fill:none;}
.g-node{fill:var(--bg);stroke:var(--gold);}
.g-node-soft{fill:var(--line-strong);}
.g-tick{stroke:var(--gold);fill:none;stroke-linecap:round;stroke-linejoin:round;}
.g-dash{stroke:var(--line-strong);fill:none;stroke-dasharray:3 6;stroke-linecap:round;}
@keyframes gflow{to{stroke-dashoffset:-28;}}
@keyframes ringSpin{to{transform:rotate(360deg);}}
.g-ring{transform-origin:center;transform-box:fill-box;animation:ringSpin 40s linear infinite;stroke:rgba(212,175,55,0.45);fill:none;stroke-dasharray:2 7;stroke-linecap:round;}

/* ===================== Inline (single-line) forms ===================== */
.inline-form{
  display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;max-width:560px;
  padding:14px;border-radius:100px;background:var(--surface);border:1px solid var(--line);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  transition:border-color .35s ease;
}
.inline-form:focus-within{border-color:rgba(212,175,55,0.6);}
.inline-form .field{flex:1 1 220px;}
.inline-form .field label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.inline-form .field input{border-radius:100px;padding:12px 18px;background:transparent;border-color:transparent;}
.inline-form .field input:focus{border-color:var(--line);}
.inline-form .submit-btn{margin-top:0;padding:12px 26px;white-space:nowrap;}
.inline-form .form-status{flex-basis:100%;padding:0 18px;}
.inline-form .form-status:empty{display:none;}
@media (max-width:560px){
  .inline-form{border-radius:22px;}
  .inline-form .submit-btn{flex-basis:100%;}
}

/* ===================== Research paper block ===================== */
.paper{
  margin-top:8px;padding:40px 42px;border-radius:24px;
  background:var(--surface);border:1px solid rgba(212,175,55,0.30);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
.paper .paper-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;flex-wrap:wrap;margin-bottom:26px;}
.paper h2{
  font-family:var(--font-display);font-weight:700;font-size:clamp(1.6rem,3.2vw,2.3rem);
  line-height:1.15;letter-spacing:-0.01em;max-width:24ch;
}
.paper .paper-sub{font-size:1rem;color:var(--text-3);margin-top:10px;max-width:56ch;line-height:1.6;}
.paper .figure{margin:0 0 30px;background:transparent;border-color:var(--line);}
.paper .abstract-label{
  font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.24em;text-transform:uppercase;
  color:var(--text-4);margin:0 0 14px;
}
.paper .abstract p{font-size:0.98rem;color:var(--text-2);line-height:1.8;max-width:74ch;margin-bottom:18px;}
.paper .stat-row{margin:30px 0 38px;}
.paper .stat .k{font-size:1.45rem;}
.paper .request{
  border-top:1px solid var(--line);padding-top:34px;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:36px;align-items:start;
}
.paper .request h3{font-family:var(--font-display);font-weight:600;font-size:1.3rem;margin-bottom:10px;}
.paper .request p{font-size:0.95rem;color:var(--text-3);line-height:1.65;max-width:40ch;}
.paper .form-card{max-width:none;padding:0;background:none;border:none;backdrop-filter:none;-webkit-backdrop-filter:none;}
.paper .form-card:hover{border:none;}
.paper .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.paper .form-grid .field.full{grid-column:1 / -1;}
@media (max-width:820px){
  .paper{padding:30px 24px;}
  .paper .request{grid-template-columns:1fr;gap:22px;}
}
@media (max-width:560px){
  .paper .form-grid{grid-template-columns:1fr;}
}

/* Platform "launching soon" layout */
.launch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-top:8px;}
.launch-grid .card h3{margin-top:0;}

@media (max-width:640px){
  .figure{padding:16px 12px 12px;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .figure svg{min-width:600px;}
  .figure figcaption{position:sticky;left:0;}
}
