/* GRAVITY · project-gravity.com · Enterprise Brain
   Brand v3.1 · bone-dominant client-facing site
   ============================================================================ */

@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Inter:wght@300;400;500;600&display=swap');

:root {
  /* Brand palette */
  --obsidian:        #0A0B0D;
  --obsidian-raised: #16181B;
  --bone:            #F4EDE4;
  --bone-raised:     #EDE4D7;
  --bone-dim:        #E4DCCF;
  --amber:           #B87A28;
  --amber-deep:      #D4943A;
  --amber-light:     #E8B768;

  /* Diagnostic chips (used sparingly for revenue/cost/time) */
  --positive: #4F7A3D;     /* deep moss — revenue */
  --negative: #B0432B;     /* clay red — cost */
  --neutral:  #5A5A5A;

  /* On bone */
  --fg-1: rgba(10,11,13, 1);
  --fg-2: rgba(10,11,13, 0.72);
  --fg-3: rgba(10,11,13, 0.50);
  --fg-4: rgba(10,11,13, 0.28);
  --fg-5: rgba(10,11,13, 0.14);
  --line:        rgba(10,11,13, 0.10);
  --line-strong: rgba(10,11,13, 0.18);

  /* On obsidian */
  --ink-1: rgba(244,237,228, 1);
  --ink-2: rgba(244,237,228, 0.72);
  --ink-3: rgba(244,237,228, 0.50);
  --ink-4: rgba(244,237,228, 0.28);
  --ink-line:        rgba(244,237,228, 0.10);
  --ink-line-strong: rgba(244,237,228, 0.20);

  --font-mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px;
  --s-5: 24px; --s-6: 32px; --s-7: 48px; --s-8: 64px;
  --s-9: 96px; --s-10: 128px;

  --gutter: 96px;
  --col-max: 1440px;
  --nav-h: 64px;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--bone);
  color: var(--fg-1);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection { background: var(--obsidian); color: var(--bone); }

a { color: inherit; text-decoration: none; }

/* ── Type primitives ──────────────────────────────────────────────────── */
.mono { font-family: var(--font-mono); }
.sans { font-family: var(--font-sans); }

.label {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fg-3);
  line-height: 1;
}
.label--amber { color: var(--amber); }
.label--ink   { color: var(--ink-3); }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--s-3);
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--fg-2);
}
.eyebrow::before {
  content: '';
  width: 32px; height: 1px;
  background: var(--amber);
}
.section--obsidian .eyebrow { color: var(--ink-2); }
.section--obsidian .eyebrow::before { background: var(--amber-deep); }

.heading {
  font-family: var(--font-mono);
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.06;
  text-transform: uppercase;
  text-wrap: balance;
  margin: 0;
}
.h-display { font-size: clamp(48px, 7.5vw, 108px); }
.h-1       { font-size: clamp(36px, 5vw, 72px); }
.h-2       { font-size: clamp(28px, 3.6vw, 48px); }
.h-3       { font-size: clamp(22px, 2.2vw, 30px); letter-spacing: 0.04em; }

.lede {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1.5;
  color: var(--fg-2);
  text-wrap: pretty;
  margin: 0;
}
.body-l { font-family: var(--font-sans); font-weight: 400; font-size: 17px; line-height: 1.6; color: var(--fg-2); margin: 0; }
.body   { font-family: var(--font-sans); font-size: 15px; line-height: 1.6; color: var(--fg-2); margin: 0; }
.body-s { font-family: var(--font-sans); font-size: 13.5px; line-height: 1.55; color: var(--fg-3); margin: 0; }

.amber { color: var(--amber); }
.amber-deep { color: var(--amber-deep); }

/* ── Layout ───────────────────────────────────────────────────────────── */
.container { width: 100%; max-width: var(--col-max); margin: 0 auto; padding: 0 var(--gutter); }
@media (max-width: 1100px) { :root { --gutter: 56px; } }
@media (max-width: 720px)  { :root { --gutter: 24px; } }

.section { padding: clamp(80px, 10vw, 144px) 0; position: relative; }
.section--tight { padding: clamp(64px, 7vw, 96px) 0; }
#how { background: #EEE7DC; }

.section--obsidian { background: var(--obsidian); color: var(--ink-1); }
.section--obsidian .lede,
.section--obsidian .body-l,
.section--obsidian .body { color: var(--ink-2); }
.section--obsidian .body-s,
.section--obsidian .label { color: var(--ink-3); }
.section--obsidian .label--amber { color: var(--amber-deep); }
.section--obsidian .heading { color: var(--ink-1); }
.section--obsidian .amber { color: var(--amber-deep); }

.divider { border: 0; height: 1px; background: var(--line); margin: 0; }
.section--obsidian .divider { background: var(--ink-line); }

/* ── Nav ──────────────────────────────────────────────────────────────── */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: var(--nav-h);
  z-index: 50;
  display: flex;
  align-items: center;
  background: rgba(244,237,228, 0.86);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid transparent;
  transition: background 200ms ease, border-color 200ms ease;
}
.nav.is-scrolled { background: rgba(244,237,228, 0.95); border-bottom-color: var(--line); }
.nav-inner {
  width: 100%;
  max-width: var(--col-max);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-6);
}
.nav-brand { display: inline-flex; align-items: center; gap: 10px; color: var(--fg-1); }
.nav-brand .wordmark {
  font-family: var(--font-mono); font-weight: 500; font-size: 14px;
  letter-spacing: 0.14em; text-transform: uppercase;
}
.nav-links { display: flex; align-items: center; gap: var(--s-7); }
.nav-link {
  font-family: var(--font-mono); font-weight: 500; font-size: 12px;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--fg-3); transition: color 160ms ease;
}
.nav-link:hover { color: var(--fg-1); }
@media (max-width: 1080px) { .nav-links { display: none; } }
.nav .btn .full { display: inline; }
.nav .btn .short { display: none; }
@media (max-width: 520px) {
  .nav .btn .full { display: none; }
  .nav .btn .short { display: inline; }
  .nav .btn { padding: 10px 14px; }
}

/* ── Buttons ──────────────────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 20px;
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border: 1px solid transparent;
  background: transparent;
  color: inherit;
  cursor: pointer;
  transition: background 160ms ease, color 160ms ease, border-color 160ms ease, transform 120ms ease;
  text-decoration: none;
  border-radius: 0;
  white-space: nowrap;
  line-height: 1;
}
.btn:active { transform: scale(0.98); }
.btn-primary { background: var(--obsidian); color: var(--bone); border-color: var(--obsidian); }
.btn-primary:hover { background: var(--amber); border-color: var(--amber); color: var(--bone); }
.btn-amber { background: var(--amber); color: var(--bone); border-color: var(--amber); }
.btn-amber:hover { background: var(--obsidian); border-color: var(--obsidian); }
.btn-ghost { border-color: var(--line-strong); color: var(--fg-1); }
.btn-ghost:hover { border-color: var(--obsidian); }
.section--obsidian .btn-ghost { border-color: var(--ink-line-strong); color: var(--ink-1); }
.section--obsidian .btn-ghost:hover { border-color: var(--bone); }
.btn .arrow { transition: transform 200ms cubic-bezier(0.2,0.8,0.2,1); }
.btn:hover .arrow { transform: translateX(4px); }

/* ── Hero ─────────────────────────────────────────────────────────────── */
.hero {
  padding-top: calc(var(--nav-h) + clamp(56px, 8vw, 96px));
  padding-bottom: clamp(64px, 8vw, 112px);
  position: relative;
}
.hero-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--fg-3);
  margin-bottom: var(--s-8);
}
.hero-meta .dot { color: var(--amber); margin-right: 10px; }
.hero-statement {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: clamp(40px, 6vw, 88px);
  letter-spacing: 0.01em;
  line-height: 1.05;
  text-transform: uppercase;
  color: var(--fg-1);
  text-wrap: balance;
  margin: 0;
  max-width: 24ch;
}
.hero-statement .amber { color: var(--amber); }
.hero-statement .dim { color: var(--fg-3); }
.hero-sub {
  margin-top: var(--s-7);
  max-width: 60ch;
  font-family: var(--font-sans);
  font-size: clamp(17px, 1.4vw, 20px);
  font-weight: 400;
  color: var(--fg-2);
  line-height: 1.55;
}
.hero-sub--statement {
  font-family: var(--font-mono);
  font-size: clamp(28px, 4.2vw, 56px);
  letter-spacing: 0.01em;
  line-height: 1.12;
  text-transform: uppercase;
  max-width: 23ch;
}
.hero-sub--statement .ink { color: var(--fg-1); }
.hero-sub--statement .dim { color: var(--fg-3); }
.hero-sub--statement .amber { color: var(--amber); }
.hero-actions {
  margin-top: var(--s-7);
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
  align-items: center;
}
.hero-foot {
  margin-top: clamp(56px, 7vw, 88px);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
  padding-top: var(--s-6);
  gap: var(--s-6);
}
.hero-foot dt {
  font-family: var(--font-mono); font-size: 10px;
  letter-spacing: 0.26em; text-transform: uppercase;
  color: var(--fg-3); margin-bottom: 8px;
}
.hero-foot dd {
  font-family: var(--font-mono); font-weight: 500; font-size: 16px;
  letter-spacing: 0.02em; line-height: 1.3; color: var(--fg-1);
  margin: 0; text-transform: uppercase;
}
.hero-foot--mission {
  grid-template-columns: 1fr 2fr;
}
.hero-foot--mission dd {
  text-transform: none;
  line-height: 1.45;
}
@media (max-width: 880px) { .hero-foot { grid-template-columns: repeat(2, 1fr); } }

/* ── Section header ───────────────────────────────────────────────────── */
.section-head {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-5);
  margin-bottom: clamp(48px, 6vw, 80px);
  max-width: 1200px;
}
.section-head .heading { max-width: 18ch; }
.section-head .lede { max-width: 56ch; }

/* ── Hero Diagram ─────────────────────────────────────────────────────── */
.hero-diagram-wrap {
  position: relative;
  margin-top: clamp(48px, 6vw, 80px);
  background: var(--obsidian);
  color: var(--ink-1);
  border: 1px solid var(--obsidian);
  padding: clamp(40px, 4vw, 64px) clamp(24px, 3vw, 48px);
  overflow: hidden;
}
.hero-diagram-wrap::before {
  /* faint grid for monument vibe */
  content: '';
  position: absolute; inset: 0;
  background-image:
    linear-gradient(to right, rgba(244,237,228, 0.025) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(244,237,228, 0.025) 1px, transparent 1px);
  background-size: 64px 64px;
  pointer-events: none;
}
.hero-diagram-wrap > * { position: relative; z-index: 1; }
.hero-diagram-wrap--solution {
  margin-top: 24px;
}

.hero-diagram-foot {
  margin-top: var(--s-6);
  display: flex;
  justify-content: center;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--ink-3);
  gap: var(--s-5);
}
.hero-diagram-foot .step { display: flex; align-items: center; gap: 12px; }
.hero-diagram-foot .step .dot {
  width: 6px; height: 6px; background: var(--amber-deep); display: inline-block;
}
.hero-diagram-foot .sep { color: var(--ink-4); }

/* ── Stats (Cost of not knowing) ──────────────────────────────────────── */
.stat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: clamp(48px, 6vw, 80px);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.stat-cell {
  padding: var(--s-7) var(--s-7) var(--s-7) 0;
  border-right: 1px solid var(--line);
}
.stat-cell:nth-child(n+1) { padding-left: var(--s-7); }
.stat-cell:first-child { padding-left: 0; }
.stat-cell:last-child { border-right: 0; padding-right: 0; }
.stat-value {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: clamp(56px, 7.6vw, 104px);
  letter-spacing: 0.02em;
  line-height: 1;
  color: var(--fg-1);
  margin: 0 0 var(--s-4) 0;
  font-variant-numeric: tabular-nums;
}
.stat-value .amber { color: var(--amber); }
.stat-label {
  font-family: var(--font-sans);
  font-size: 16px;
  color: var(--fg-2);
  line-height: 1.5;
  margin: 0;
  max-width: 30ch;
}
.stat-source {
  margin-top: var(--s-4);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--fg-3);
}
@media (max-width: 880px) {
  .stat-grid { grid-template-columns: 1fr; }
  .stat-cell { border-right: 0; padding: var(--s-6) 0; border-bottom: 1px solid var(--line); }
  .stat-cell:last-child { border-bottom: 0; }
}

/* ── Visibility-gap chart shell ───────────────────────────────────────── */
.chart {
  margin-top: clamp(40px, 5vw, 64px);
  border: 1px solid var(--line);
  background: rgba(10,11,13, 0.015);
  padding: 32px 40px 28px 40px;
}
.section--obsidian .chart {
  border-color: var(--ink-line);
  background: rgba(244,237,228, 0.02);
}
.chart-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 12px;
}
.chart-head .title {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
}
.chart-head .meta {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.section--obsidian .chart-head .meta { color: var(--ink-3); }
.chart-legend {
  display: flex;
  gap: var(--s-5);
  margin-top: 20px;
  flex-wrap: wrap;
}
.chart-legend .key {
  display: flex; align-items: center; gap: 8px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-2);
}
.section--obsidian .chart-legend .key { color: var(--ink-2); }
.chart-legend .swatch { width: 18px; height: 2px; }
.chart-legend .swatch.dashed {
  background-image: linear-gradient(to right, currentColor 50%, transparent 50%);
  background-size: 4px 2px; height: 2px;
}
.chart-annot {
  margin-top: 16px;
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 1.55;
  color: var(--fg-2);
  max-width: 60ch;
}
.section--obsidian .chart-annot { color: var(--ink-2); }

/* ── Three-layer architecture ─────────────────────────────────────────── */
.layers {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin-top: clamp(48px, 6vw, 80px);
  border-top: 1px solid var(--ink-line);
}
.layer {
  padding: var(--s-7) var(--s-6) var(--s-7) 0;
  border-right: 1px solid var(--ink-line);
  display: flex;
  flex-direction: column;
  gap: var(--s-5);
  position: relative;
}
.layer:nth-child(n+1) { padding-left: var(--s-6); }
.layer:first-child { padding-left: 0; }
.layer:last-child { border-right: 0; padding-right: 0; }
.layer::before {
  content: '';
  position: absolute;
  top: -1px; left: 0;
  width: 32px; height: 1px;
  background: var(--amber-deep);
}
.layer-num {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.32em;
  color: var(--ink-3);
}
.layer-name {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: clamp(22px, 2.4vw, 32px);
  letter-spacing: 0.02em;
  line-height: 1.1;
  text-transform: uppercase;
  color: var(--ink-1);
}
.layer-body {
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.6;
  color: var(--ink-2);
}
@media (max-width: 880px) {
  .layers { grid-template-columns: 1fr; }
  .layer { border-right: 0; padding: var(--s-6) 0; border-bottom: 1px solid var(--ink-line); }
  .layer:last-child { border-bottom: 0; }
}

/* ── Comparison ledger ────────────────────────────────────────────────── */
.compare {
  margin-top: clamp(48px, 6vw, 80px);
  border-top: 1px solid var(--ink-line);
}
.compare-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-bottom: 1px solid var(--ink-line);
}
.compare-head > div {
  padding: 18px 24px 18px 0;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.compare-head > div:nth-child(2) { padding-left: 24px; color: var(--amber-deep); }
.compare-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-bottom: 1px solid var(--ink-line);
}
.compare-row:last-child { border-bottom: 0; }
.compare-cell {
  padding: 24px 24px 24px 0;
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.5;
  color: var(--ink-2);
}
.compare-cell.with {
  padding-left: 24px;
  color: var(--ink-1);
  font-weight: 500;
  border-left: 1px solid var(--ink-line);
}
@media (max-width: 720px) {
  .compare-head, .compare-row { grid-template-columns: 1fr; }
  .compare-cell.with { padding-left: 0; border-left: 0; border-top: 1px solid var(--ink-line); padding-top: 16px; }
  .compare-cell { padding: 16px 0; }
  .compare-head > div:nth-child(2) { padding-left: 0; padding-top: 0; }
}

/* ── Signal cards (intelligence briefings) ───────────────────────────── */
.signals {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s-5);
  margin-top: clamp(40px, 5vw, 64px);
}
@media (max-width: 1100px) { .signals { grid-template-columns: 1fr; } }

.signal {
  background: var(--obsidian);
  color: var(--ink-1);
  border: 1px solid var(--obsidian);
  padding: 28px 28px 24px 28px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: relative;
}
.signal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.signal-head .id { color: var(--ink-3); }
.signal-head .priority {
  padding: 3px 8px;
  border: 1px solid var(--amber-deep);
  color: var(--amber-deep);
  font-weight: 500;
}
.signal-head .priority.high {
  background: var(--amber-deep);
  color: var(--obsidian);
}
.signal-row {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 16px;
  align-items: baseline;
}
.signal-row .lbl {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.signal-row .val {
  font-family: var(--font-sans);
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--ink-1);
}
.signal-row .val .amber { color: var(--amber-deep); font-family: var(--font-mono); font-weight: 500; }
.signal-foot {
  margin-top: 4px;
  padding-top: 16px;
  border-top: 1px solid var(--ink-line);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.signal-foot .ready { color: var(--amber-deep); }

/* ── How it works ─────────────────────────────────────────────────────── */
.steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: clamp(48px, 6vw, 80px);
  border-top: 1px solid var(--line);
}
.step {
  padding: var(--s-7) var(--s-6) var(--s-7) 0;
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: var(--s-5);
  position: relative;
}
.step:nth-child(n+1) { padding-left: var(--s-6); }
.step:first-child { padding-left: 0; }
.step:last-child { border-right: 0; padding-right: 0; }
.step::before {
  content: '';
  position: absolute;
  top: -1px; left: 0;
  width: 32px; height: 1px;
  background: var(--amber);
}
.step-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.step-head .num {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.32em;
  color: var(--fg-3);
}
.step-head .day {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--amber);
}
.step-name {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: clamp(22px, 2.4vw, 32px);
  letter-spacing: 0.02em;
  line-height: 1.1;
  text-transform: uppercase;
}
.step-body {
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.6;
  color: var(--fg-2);
  max-width: 32ch;
}
@media (max-width: 880px) {
  .steps { grid-template-columns: 1fr; }
  .step { border-right: 0; border-bottom: 1px solid var(--line); padding: var(--s-6) 0; }
  .step:last-child { border-bottom: 0; }
}

/* ── Team ─────────────────────────────────────────────────────────────── */
.team {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--s-5);
  margin-top: clamp(48px, 5vw, 72px);
}
.team-card {
  display: grid;
  grid-template-columns: 132px 1fr;
  gap: var(--s-5);
  border-top: 1px solid var(--line);
  padding-top: var(--s-6);
  align-items: start;
}
.team-photo {
  width: 132px;
  aspect-ratio: 1;
  background: var(--bone-dim);
  border: 1px solid var(--line);
  overflow: hidden;
  position: relative;
}
.team-photo img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  filter: grayscale(0.05) contrast(1.02);
}
.team-card .team-role {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--amber);
  margin: 0 0 4px 0;
}
.team-card .team-name {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 22px;
  letter-spacing: 0.02em;
  line-height: 1.15;
  text-transform: uppercase;
  color: var(--fg-1);
  margin: 0 0 12px 0;
}
.team-card .team-bg {
  font-family: var(--font-sans);
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--fg-2);
  margin: 0;
}
.team-card .team-pills {
  margin-top: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.team-pill {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-2);
  border: 1px solid var(--line-strong);
  padding: 4px 8px;
}
@media (max-width: 720px) { .team { grid-template-columns: 1fr; } }

.advisor {
  margin-top: clamp(48px, 5vw, 64px);
  padding: var(--s-6);
  border: 1px solid var(--line);
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: var(--s-5);
  align-items: center;
}
.advisor img {
  width: 96px; height: 96px; object-fit: cover;
  filter: grayscale(0.05);
}
.advisor .label { margin-bottom: 8px; }
.advisor .name {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin: 0 0 6px 0;
}
.advisor .meta {
  font-family: var(--font-sans);
  font-size: 14px;
  color: var(--fg-2);
  margin: 0;
}
@media (max-width: 720px) { .advisor { grid-template-columns: 1fr; } .advisor img { width: 80px; height: 80px; } }

.based {
  margin-top: var(--s-7);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.30em;
  text-transform: uppercase;
  color: var(--fg-3);
}

/* ── Book a call ──────────────────────────────────────────────────────── */
.book-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(48px, 6vw, 96px);
  margin-top: clamp(48px, 5vw, 64px);
  align-items: start;
}
@media (max-width: 1000px) { .book-grid { grid-template-columns: 1fr; } }

.book-side .label { color: var(--ink-3); }
.book-side h3 {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: clamp(28px, 3vw, 44px);
  letter-spacing: 0.02em;
  text-transform: uppercase;
  line-height: 1.1;
  margin: var(--s-4) 0 var(--s-5) 0;
}
.book-side .body-l { color: var(--ink-2); }

.book-side ul { list-style: none; margin: var(--s-6) 0 0 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.book-side ul li {
  display: flex; gap: 12px; align-items: flex-start;
  font-family: var(--font-sans); font-size: 15px; line-height: 1.55; color: var(--ink-2);
}
.book-side ul li::before {
  content: ''; flex-shrink: 0;
  width: 12px; height: 1px; background: var(--amber-deep); margin-top: 12px;
}

.book-form {
  display: grid;
  gap: var(--s-4);
  background: var(--obsidian-raised);
  color: var(--ink-1);
  padding: clamp(32px, 4vw, 48px);
  border: 1px solid var(--ink-line-strong);
}
.book-form h3 {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  margin: 0 0 var(--s-3) 0;
  color: var(--ink-1);
}
.field { display: flex; flex-direction: column; gap: 6px; }
.field label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.field input,
.field select,
.field textarea {
  font-family: var(--font-sans);
  font-size: 14.5px;
  background: transparent;
  color: var(--ink-1);
  border: 0;
  border-bottom: 1px solid var(--ink-line-strong);
  padding: 10px 0;
  border-radius: 0;
  -webkit-appearance: none;
  appearance: none;
  outline: none;
  transition: border-color 160ms ease;
}
.field textarea { resize: vertical; min-height: 72px; }
.field input::placeholder, .field textarea::placeholder { color: var(--ink-3); }
.field input:focus, .field select:focus, .field textarea:focus { border-bottom-color: var(--amber-deep); }
.book-form .btn {
  margin-top: var(--s-4);
  background: var(--amber-deep);
  color: var(--obsidian);
  border-color: var(--amber-deep);
  padding: 14px 24px;
  width: 100%;
  justify-content: center;
}
.book-form .btn:hover { background: var(--bone); color: var(--obsidian); border-color: var(--bone); }
.book-form .note {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-3);
  line-height: 1.6;
  margin: 0;
}
.book-success {
  background: var(--amber-deep);
  color: var(--obsidian);
  padding: var(--s-6);
  border: 1px solid var(--amber-deep);
}
.book-success h3 {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 22px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin: 0 0 var(--s-3) 0;
  color: var(--obsidian);
}

/* ── Footer ───────────────────────────────────────────────────────────── */
.footer {
  background: var(--obsidian);
  color: var(--ink-1);
  padding: var(--s-9) 0 var(--s-7);
  border-top: 1px solid var(--ink-line);
}
.footer-inner {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: var(--s-7);
}
.footer-brand { display: flex; flex-direction: column; gap: var(--s-4); }
.footer-brand .word {
  font-family: var(--font-mono); font-weight: 500; font-size: 28px;
  letter-spacing: 0.14em; text-transform: uppercase;
}
.footer-brand .tag {
  font-family: var(--font-mono); font-size: 11px;
  letter-spacing: 0.28em; text-transform: uppercase; color: var(--ink-3);
}
.footer-col h5 {
  font-family: var(--font-mono); font-weight: 500; font-size: 11px;
  letter-spacing: 0.26em; text-transform: uppercase;
  color: var(--ink-3); margin: 0 0 var(--s-4) 0;
}
.footer-col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.footer-col a {
  font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.06em;
  color: var(--ink-1); text-transform: uppercase; transition: color 160ms ease;
}
.footer-col a:hover { color: var(--amber-deep); }
.footer-bottom {
  margin-top: var(--s-9);
  padding-top: var(--s-5);
  border-top: 1px solid var(--ink-line);
  display: flex;
  justify-content: space-between;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--ink-3);
  flex-wrap: wrap;
  gap: 12px;
}
@media (max-width: 720px) { .footer-inner { grid-template-columns: 1fr 1fr; } }

/* ── Reveal animation ─────────────────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 600ms cubic-bezier(0.2,0.8,0.2,1), transform 600ms cubic-bezier(0.2,0.8,0.2,1);
}
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
}

/* ── Hero variant visibility ──────────────────────────────────────────── */
.hero-variant { display: none; }
.hero-variant.is-active { display: block; }
.section-toggleable[data-hidden="true"] { display: none; }
