/* =========================================================================
   AVANT-GARDE — Home page styles
   Dark mode · Apple liquid glass · Scroll-reveal
   ========================================================================= */

/* ---------- Base ----------------------------------------------------------*/
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html {
  scroll-behavior: smooth;
  background: #07070A;
  color: #F2F2F7;
}
body {
  font-family: var(--font-body);
  font-weight: var(--fw-book);
  font-size: var(--t-base);
  line-height: var(--lh-base);
  color: var(--fg-1);
  background: var(--bg-1);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; border: 0; }
::selection { background: var(--ag-magenta); color: #fff; }

/* Fluid container */
.wrap {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 clamp(20px, 4.5vw, 72px);
}

.mono { font-family: var(--font-mono); font-size: var(--t-sm); letter-spacing: 0; }
.eyebrow {
  font-family: var(--font-body);
  font-weight: var(--fw-heavy);
  font-size: 11px;
  letter-spacing: var(--tr-wide);
  text-transform: uppercase;
}

/* ---------- Scroll reveal -------------------------------------------------*/
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity 0.75s var(--ease-spring),
    transform 0.75s var(--ease-spring);
}
.reveal.visible { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: 0.08s; }
.reveal-delay-2 { transition-delay: 0.16s; }
.reveal-delay-3 { transition-delay: 0.24s; }
.reveal-delay-4 { transition-delay: 0.32s; }
.reveal-delay-5 { transition-delay: 0.40s; }

/* ---------- Nav — bar → pill scroll transition ----------------------------*/
/*
  Choreography (→ direction means delay offset):
    0ms  border-radius rounds (corners lead the morph)
   30ms  width + max-width contract (bar shrinks symmetrically)
   80ms  top lifts (element floats off the edge after shape is mid-morph)
  130ms  box-shadow pivots (bottom rule → glass rim + depth cloud)
  170ms  ::before specular blooms in last
*/

.nav {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 100;

  /* Bar defaults — use 9999px not "none" so max-width interpolates */
  width: 100%;
  max-width: 9999px;
  border-radius: 0;
  overflow: hidden;

  background: rgba(10,10,18,0.68);
  backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: blur(20px) saturate(140%);

  /*
    Shadow layer count must match the pill state so each layer cross-fades
    individually. Layers (bar):
      1. bottom rule  (visible)
      2. top rim      (transparent placeholder)
      3. outer crisp  (transparent placeholder)
      4. close shadow (transparent placeholder)
      5. depth cloud  (transparent placeholder)
  */
  box-shadow:
    inset 0 -1px 0   rgba(255,255,255,0.07),
    inset 0  1px 0   rgba(255,255,255,0),
          0  0   0 0  rgba(255,255,255,0),
          0  0   0 0  rgba(0,0,0,0),
          0  0   0 0  rgba(0,0,0,0);

  /* Staggered durations + delays for each visual layer */
  transition:
    border-radius   560ms cubic-bezier(0.34, 1.12, 0.64, 1)                      0ms,
    width           520ms cubic-bezier(0.34, 1.12, 0.64, 1)                     30ms,
    max-width       520ms cubic-bezier(0.34, 1.12, 0.64, 1)                     30ms,
    top             480ms var(--ease-spring)                   80ms,
    box-shadow      460ms var(--ease-out)                     130ms,
    background      340ms var(--ease-out)                      20ms,
    backdrop-filter 340ms var(--ease-out)                      20ms;
}

/* Scrolled state — floating glass pill */
.nav.nav--scrolled {
  top: 16px;
  width: calc(100% - 32px);
  max-width: 880px;
  border-radius: 999px;

  background: rgba(10,10,18,0.52);
  backdrop-filter: blur(28px) saturate(180%);
  -webkit-backdrop-filter: blur(28px) saturate(180%);

  /*
    Pill shadow layers (same count as bar state above):
      1. bottom inner glass edge
      2. top specular rim
      3. outer crisp hairline
      4. close shadow
      5. depth cloud
  */
  box-shadow:
    inset 0 -1px 0      rgba(0,0,0,0.12),
    inset 0  1px 0      rgba(255,255,255,0.18),
          0  0   0 0.5px rgba(255,255,255,0.13),
          0  2px 8px    rgba(0,0,0,0.25),
          0 16px 48px   rgba(0,0,0,0.50);
}

@supports (backdrop-filter: url(#lg-nav)) {
  .nav.nav--scrolled { backdrop-filter: blur(20px) saturate(160%) url(#lg-nav); }
}

/* Specular surface highlight — blooms in last, after pill has formed */
.nav::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(
    180deg,
    rgba(255,255,255,0.11) 0%,
    rgba(255,255,255,0.03) 48%,
    transparent 100%
  );
  pointer-events: none;
  opacity: 0;
  transition: opacity 360ms var(--ease-out) 170ms;
}
.nav.nav--scrolled::before { opacity: 1; }

.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 52px;
  padding: 0 clamp(14px, 2.5vw, 28px);
  position: relative;
  z-index: 1;
}
.nav-mark {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: var(--fw-heavy);
  text-transform: uppercase;
  letter-spacing: var(--tr-wide);
  font-size: 11px;
  color: var(--fg-1);
}
.nav-mark img {
  width: 26px;
  height: 26px;
}
.nav-links {
  display: flex;
  align-items: center;
  gap: clamp(16px, 3vw, 32px);
}
.nav-links a {
  font-size: 11px;
  font-weight: var(--fw-heavy);
  text-transform: uppercase;
  letter-spacing: var(--tr-wide);
  color: var(--fg-2);
  transition: color var(--d-quick) var(--ease-spring);
}
.nav-links a:hover { color: var(--fg-1); }
.nav-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  background: var(--ag-magenta);
  color: #fff !important;
  border-radius: 999px;
  font-size: 11px;
  font-weight: var(--fw-heavy);
  text-transform: uppercase;
  letter-spacing: var(--tr-wide);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.2),
    0 0 18px rgba(228,35,99,0.4);
  transition:
    background var(--d-quick) var(--ease-spring),
    box-shadow var(--d-quick) var(--ease-spring),
    transform var(--d-quick) var(--ease-spring);
}
.nav-cta:hover {
  background: #f0325e;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.2), 0 0 28px rgba(228,35,99,0.55);
  transform: translateY(-1px);
}
@media (max-width: 768px) { .nav-links .nl-hide-sm { display: none; } }
@media (max-width: 440px) {
  .nav-links { gap: 14px; }
}

/* Fixed nav compensation — all sections with anchors */
section[id] { scroll-margin-top: 84px; }

/* ---------- Hero ----------------------------------------------------------*/
.hero {
  position: relative;
  overflow: hidden;
  min-height: 100svh;
  padding-top: 80px; /* clear fixed nav */
  background:
    radial-gradient(ellipse 100% 70% at 18% 45%, rgba(111,226,210,0.07) 0%, transparent 55%),
    radial-gradient(ellipse 70% 50% at 82% 18%, rgba(228,35,99,0.055) 0%, transparent 52%),
    radial-gradient(ellipse 50% 40% at 65% 85%, rgba(111,226,210,0.04) 0%, transparent 45%),
    #07070A;
}
.hero-inner {
  display: grid;
  grid-template-columns: 1fr;
  min-height: calc(100svh - 80px);
}
@media (min-width: 1600px) {
  .hero-inner {
    grid-template-columns: 1.5fr 1fr;
  }
}

.hero-left {
  padding: clamp(10px, 1vh, 20px) clamp(20px, 4.5vw, 72px) clamp(56px, 8vh, 96px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: clamp(36px, 5vw, 56px);
  position: relative;
  z-index: 1;
}

.hero-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  color: var(--fg-3);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.hero-meta .dot { color: var(--ag-mint); }
.hero-meta .tag-magenta {
  color: var(--ag-magenta);
  font-weight: var(--fw-heavy);
  background: rgba(228,35,99,0.1);
  border: 1px solid rgba(228,35,99,0.2);
  padding: 3px 9px;
  border-radius: 5px;
}

.hero-display {
  font-family: var(--font-display);
  font-weight: var(--fw-heavy);
  text-transform: uppercase;
  font-size: clamp(60px, 10.5vw, 158px);
  line-height: 0.87;
  letter-spacing: -0.045em;
  margin: 0;
}
.hero-display .row { display: block; }
.hero-display .row.indent { padding-left: 0.55em; }
.hero-display .ink-mint { color: var(--ag-mint); }
.hero-display .ink-magenta { color: var(--ag-magenta); }

.hero-tail {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: end;
}
@media (max-width: 540px) { .hero-tail { grid-template-columns: 1fr; } }

.hero-blurb {
  max-width: 42ch;
  color: var(--fg-2);
  font-size: var(--t-md);
  line-height: 1.65;
}
.hero-blurb strong { color: var(--fg-1); font-weight: var(--fw-heavy); }

.hero-cta-row {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
}

.hero-scroll {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--fg-3);
  display: flex;
  align-items: center;
  gap: 10px;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  position: absolute;
  right: 18px;
  bottom: 28px;
  font-weight: var(--fw-heavy);
}
.hero-scroll::before {
  content: "";
  width: 1px;
  height: 56px;
  background: rgba(242,242,247,0.12);
}
@media (max-width: 1024px) { .hero-scroll { display: none; } }

/* Hero right glass panel */
.hero-right {
  padding: clamp(28px, 5vw, 56px) clamp(20px, 4.5vw, 72px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 28px;
  position: relative;
  z-index: 1;
  border-top: 1px solid rgba(255,255,255,0.06);
}
@media (min-width: 1600px) {
  .hero-right {
    border-top: 0;
    border-left: 1px solid rgba(255,255,255,0.06);
    padding: clamp(40px, 6vh, 80px) clamp(20px, 4vw, 56px);
  }
}

.hero-stamp {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px;
  padding: clamp(16px, 2vw, 24px) clamp(16px, 2.5vw, 28px);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.hero-stamp .num {
  font-family: var(--font-display);
  font-weight: var(--fw-heavy);
  font-size: clamp(44px, 6.5vw, 100px);
  line-height: 0.85;
  letter-spacing: -0.04em;
  background: linear-gradient(135deg, var(--ag-mint) 0%, #4BBFC6 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.hero-stamp .num-sub {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-3);
  border-left: 1px solid rgba(255,255,255,0.08);
  padding-left: 14px;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-width: 88px;
}

.hero-tagline {
  font-family: var(--font-display);
  font-weight: var(--fw-heavy);
  text-transform: uppercase;
  font-size: clamp(24px, 3vw, 40px);
  line-height: 0.97;
  letter-spacing: -0.03em;
  margin: 0;
  color: var(--fg-1);
}
.hero-tagline em {
  font-style: normal;
  color: var(--ag-mint);
}

.hero-mini-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 14px;
  overflow: hidden;
}
.hero-mini-stats > div {
  background: rgba(255,255,255,0.025);
  padding: clamp(12px, 1.8vw, 18px) clamp(10px, 1.5vw, 16px);
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: background var(--d-quick) var(--ease-spring);
}
.hero-mini-stats > div:hover { background: rgba(255,255,255,0.055); }
.hero-mini-stats .k {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.hero-mini-stats .v {
  font-family: var(--font-display);
  font-weight: var(--fw-heavy);
  font-size: clamp(22px, 3vw, 30px);
  line-height: 0.95;
  letter-spacing: -0.03em;
  color: var(--fg-1);
}

.hero-ghost {
  position: absolute;
  right: -6%;
  bottom: -16%;
  width: 58%;
  opacity: 0.025;
  pointer-events: none;
  filter: brightness(10);
  will-change: transform;
}

/* ---------- Liquid glass surface — shared specular overlay ----------------*/
/*
 * All glass cards use this ::before pseudo-element pattern:
 * a subtle top-to-transparent gradient that simulates the specular highlight
 * of a glass surface catching overhead light. Combined with inset box-shadow
 * for the rim and backdrop-filter for frosting, this creates a convincing
 * multi-layer glass material without needing per-element SVG filters.
 */
.impact-cell,
.pillar,
.mission-body,
.hero-stamp,
.hero-mini-stats > div {
  position: relative;
}
.impact-cell::before,
.pillar::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(
    180deg,
    rgba(255,255,255,0.07) 0%,
    rgba(255,255,255,0.02) 35%,
    transparent 65%
  );
  pointer-events: none;
  z-index: 0;
}
/* Ensure card content sits above the specular layer */
.impact-cell > *,
.pillar > * { position: relative; z-index: 1; }

/* Glass rim box-shadow on all cards */
.impact-cell,
.pillar {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.1),
    inset 0 -1px 0 rgba(0,0,0,0.06),
    0 0 0 0.5px rgba(255,255,255,0.06);
}

/* ---------- Buttons -------------------------------------------------------*/
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 22px;
  font-family: var(--font-body);
  font-weight: var(--fw-heavy);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: var(--tr-wide);
  border-radius: 10px;
  border: 1px solid var(--glass-border);
  background: var(--glass-bg);
  color: var(--fg-1);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition:
    background var(--d-quick) var(--ease-spring),
    border-color var(--d-quick) var(--ease-spring),
    transform var(--d-quick) var(--ease-spring),
    box-shadow var(--d-quick) var(--ease-spring);
}
.btn:hover {
  background: var(--glass-bg-hover);
  border-color: var(--glass-border-str);
  transform: translateY(-1px);
  box-shadow: var(--shadow-sm);
}
.btn:active { transform: none; }

.btn-ghost-dark {
  background: transparent;
  color: var(--fg-1);
  border: 1px solid rgba(242,242,247,0.18);
}
.btn-ghost-dark:hover {
  background: rgba(111,226,210,0.08);
  border-color: rgba(111,226,210,0.35);
  color: var(--ag-mint);
}

.btn-arrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: var(--fw-heavy);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: var(--tr-wide);
  color: var(--fg-3);
  border-bottom: 1px solid rgba(242,242,247,0.12);
  padding-bottom: 2px;
  transition:
    color var(--d-quick) var(--ease-spring),
    border-color var(--d-quick) var(--ease-spring);
}
.btn-arrow:hover { color: var(--ag-mint); border-bottom-color: rgba(111,226,210,0.4); }

/* Card SVG liquid glass — Chrome progressive enhancement */
@supports (backdrop-filter: url(#lg-card)) {
  .impact-cell,
  .pillar {
    backdrop-filter: blur(16px) saturate(150%) url(#lg-card);
  }
}

/* ---------- Section header -----------------------------------------------*/
section { position: relative; }

.sec-head {
  display: grid;
  grid-template-columns: minmax(150px, 190px) 1fr auto;
  gap: clamp(16px, 3vw, 32px);
  align-items: end;
  padding: clamp(48px, 8vh, 104px) 0 clamp(28px, 4vh, 52px);
  border-bottom: 1px solid rgba(255,255,255,0.07);
  margin-bottom: clamp(28px, 5vw, 56px);
}
.sec-head .num {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ag-mint);
}
.sec-head h2 {
  font-family: var(--font-display);
  font-weight: var(--fw-heavy);
  font-size: clamp(34px, 5.5vw, 80px);
  line-height: 0.92;
  letter-spacing: -0.04em;
  text-transform: uppercase;
  margin: 0;
  color: var(--fg-1);
}
.sec-head h2 em { font-style: normal; color: var(--ag-mint); }
.sec-head .sec-link { align-self: end; padding-bottom: 4px; }
@media (max-width: 860px) {
  .sec-head { grid-template-columns: 1fr; gap: 12px; }
  .sec-head .sec-link { justify-self: start; }
}

/* ---------- Impact --------------------------------------------------------*/
.impact {
  background: var(--bg-1);
  border-bottom: 1px solid rgba(255,255,255,0.05);
  padding-bottom: clamp(40px, 6vw, 80px);
}
.impact-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 18px;
  overflow: hidden;
}
.impact-cell {
  background: rgba(255,255,255,0.025);
  padding: clamp(18px, 2.5vw, 30px) clamp(14px, 2vw, 24px);
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 196px;
  position: relative;
  overflow: hidden;
  transition: background var(--d-base) var(--ease-spring);
}
.impact-cell::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--ag-mint) 0%, transparent 100%);
  opacity: 0;
  transition: opacity var(--d-base) var(--ease-spring);
}
.impact-cell:hover { background: rgba(255,255,255,0.05); }
.impact-cell:hover::after { opacity: 1; }
.impact-cell .k {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.impact-cell .v {
  font-family: var(--font-display);
  font-weight: var(--fw-heavy);
  font-size: clamp(40px, 5vw, 76px);
  line-height: 0.9;
  letter-spacing: -0.045em;
  margin-top: auto;
  color: var(--fg-1);
}
.impact-cell .v small {
  font-size: 0.4em;
  vertical-align: top;
  padding-left: 3px;
  color: var(--ag-magenta);
}
.impact-cell:nth-child(2) .v small { color: var(--ag-mint); }

@media (max-width: 1100px) {
  .impact-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .impact-grid { grid-template-columns: 1fr; }
}

/* ---------- Mission -------------------------------------------------------*/
.mission { padding-bottom: clamp(48px, 8vw, 96px); }
.mission-grid {
  display: grid;
  grid-template-columns: 1fr;
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 22px;
  overflow: hidden;
  background: rgba(255,255,255,0.02);
}

.mission-body {
  padding: clamp(22px, 3.5vw, 48px);
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 2.5vw, 28px);
}
.mission-body h3 {
  font-family: var(--font-display);
  font-weight: var(--fw-heavy);
  font-size: clamp(26px, 3.2vw, 46px);
  line-height: 0.95;
  letter-spacing: -0.035em;
  text-transform: uppercase;
  margin: 0;
  color: var(--fg-1);
}
.mission-body h3 em { font-style: normal; color: var(--ag-magenta); }
.mission-body > p { font-size: var(--t-md); line-height: 1.65; color: var(--fg-2); max-width: 50ch; }

.mission-vals {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
@media (max-width: 640px) { .mission-vals { grid-template-columns: 1fr; } }

.mission-vals .v {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 13px;
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition:
    background var(--d-quick) var(--ease-spring),
    border-color var(--d-quick) var(--ease-spring),
    transform var(--d-quick) var(--ease-spring);
}
.mission-vals .v:hover {
  background: rgba(255,255,255,0.06);
  border-color: rgba(111,226,210,0.2);
  transform: translateY(-2px);
}
.mission-vals .v .ix {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ag-magenta);
}
.mission-vals .v h4 {
  font-family: var(--font-display);
  font-weight: var(--fw-heavy);
  font-size: 18px;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  margin: 0;
  color: var(--fg-1);
}
.mission-vals .v p { font-size: 13px; line-height: 1.55; color: var(--fg-3); margin: 0; }

/* ---------- Outreach -------------------------------------------------------*/
.outreach { padding-bottom: clamp(48px, 8vw, 96px); }
.pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
@media (max-width: 900px) { .pillars { grid-template-columns: 1fr; } }
@media (min-width: 600px) and (max-width: 900px) { .pillars { grid-template-columns: 1fr 1fr; } }

.pillar {
  padding: clamp(20px, 2.5vw, 32px);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 20px;
  background: rgba(255,255,255,0.025);
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-height: clamp(360px, 45vw, 440px);
  transition:
    background var(--d-base) var(--ease-spring),
    border-color var(--d-base) var(--ease-spring),
    transform var(--d-base) var(--ease-spring),
    box-shadow var(--d-base) var(--ease-spring);
}
.pillar:hover {
  background: rgba(255,255,255,0.05);
  border-color: rgba(255,255,255,0.11);
  transform: translateY(-6px);
  box-shadow: 0 24px 56px rgba(0,0,0,0.4);
}
.pillar .ix-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  padding-bottom: 14px;
}
.pillar .ix {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.pillar .dot {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  flex-shrink: 0;
}
.pillar:nth-child(1) .dot { background: var(--ag-magenta); box-shadow: 0 0 14px rgba(228,35,99,0.55); }
.pillar:nth-child(2) .dot { background: var(--ag-mint);    box-shadow: 0 0 14px rgba(111,226,210,0.55); }
.pillar:nth-child(3) .dot { background: rgba(242,242,247,0.35); }
.pillar h3 {
  font-family: var(--font-display);
  font-weight: var(--fw-heavy);
  font-size: clamp(22px, 2.8vw, 36px);
  line-height: 0.93;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  margin: 0;
  color: var(--fg-1);
}
.pillar p { font-size: 14px; line-height: 1.6; color: var(--fg-2); max-width: 38ch; }

/* ---------- CTA -----------------------------------------------------------*/
.cta {
  background:
    radial-gradient(ellipse 70% 60% at 25% 55%, rgba(255,255,255,0.07) 0%, transparent 55%),
    linear-gradient(135deg, #C41854 0%, #E42363 40%, #B01250 100%);
  border-top: 1px solid rgba(255,255,255,0.1);
  border-bottom: 1px solid rgba(255,255,255,0.1);
  padding: clamp(56px, 9vw, 128px) 0;
  overflow: hidden;
  position: relative;
}
.cta-inner {
  display: grid;
  grid-template-columns: 1.4fr auto;
  gap: clamp(32px, 5vw, 64px);
  align-items: end;
  position: relative;
  z-index: 1;
}
@media (max-width: 900px) { .cta-inner { grid-template-columns: 1fr; } }
.cta h2 {
  font-family: var(--font-display);
  font-weight: var(--fw-heavy);
  font-size: clamp(42px, 8vw, 128px);
  line-height: 0.87;
  letter-spacing: -0.045em;
  text-transform: uppercase;
  margin: 0;
  color: #fff;
}
.cta h2 em {
  font-style: normal;
  -webkit-text-stroke: 2px rgba(255,255,255,0.5);
  color: transparent;
}
.cta .opts {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: flex-start;
}
.cta .opts a {
  background: rgba(255,255,255,0.1);
  color: #fff;
  padding: 12px 20px;
  font-family: var(--font-body);
  font-weight: var(--fw-heavy);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: var(--tr-wide);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 10px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition:
    background var(--d-quick) var(--ease-spring),
    border-color var(--d-quick) var(--ease-spring),
    transform var(--d-quick) var(--ease-spring);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}
.cta .opts a:hover {
  background: rgba(255,255,255,0.2);
  border-color: rgba(255,255,255,0.32);
  transform: translateX(5px);
}

/* ---------- Footer --------------------------------------------------------*/
.foot {
  background: #040408;
  color: var(--fg-1);
  padding: clamp(48px, 7vw, 88px) 0 clamp(20px, 3vw, 32px);
  border-top: 1px solid rgba(255,255,255,0.06);
}
.foot-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  gap: clamp(24px, 4vw, 56px);
  padding-bottom: clamp(32px, 5vw, 56px);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
@media (max-width: 900px) { .foot-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .foot-grid { grid-template-columns: 1fr; } }
.foot .lockup {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.foot .lockup .word {
  font-family: var(--font-display);
  font-weight: var(--fw-heavy);
  font-size: clamp(26px, 3.5vw, 40px);
  line-height: 0.92;
  letter-spacing: -0.04em;
  text-transform: uppercase;
  color: var(--fg-1);
}
.foot .lockup .word em { font-style: normal; color: var(--ag-mint); }
.foot .lockup p { color: var(--fg-3); max-width: 36ch; font-size: 13px; line-height: 1.65; }
.foot h5 {
  font-family: var(--font-body);
  font-weight: var(--fw-heavy);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  margin: 0 0 14px 0;
  color: rgba(242,242,247,0.3);
}
.foot ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.foot ul a { color: var(--fg-2); font-size: 14px; transition: color var(--d-quick) var(--ease-spring); }
.foot ul a:hover { color: var(--ag-mint); }
.foot-bot {
  display: flex;
  justify-content: space-between;
  padding-top: 16px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(242,242,247,0.22);
  flex-wrap: wrap;
  gap: 8px;
}

/* ---------- Tweaks overrides ----------------------------------------------*/
body.theme-mint-hero .hero {
  background:
    radial-gradient(ellipse 90% 70% at 20% 50%, rgba(111,226,210,0.12) 0%, transparent 55%),
    radial-gradient(ellipse 60% 40% at 80% 20%, rgba(228,35,99,0.07) 0%, transparent 50%),
    #07070A;
}
body.theme-bw .ag-mint,
body.theme-bw .sec-head .num { color: var(--fg-2); }
body.theme-bw .hero-stamp .num {
  background: none;
  -webkit-text-fill-color: var(--fg-1);
  color: var(--fg-1);
}
body.theme-bw .nav-cta { background: rgba(255,255,255,0.15); box-shadow: none; }
body.theme-bw .cta { background: rgba(255,255,255,0.05); color: var(--fg-1); }
body.density-tight .impact-cell { min-height: 160px; }
body.density-tight .pillar { min-height: 320px; }
body.density-tight .sec-head { padding-top: clamp(32px, 5vh, 64px); }
