/* ============================================================
   RBCPL Iteration 6 — Precision Geometry Edition
   Full revamp: scroll-driven 3D canvas + extreme glassmorphism
   ============================================================ */

/* ─── THEME TOKENS ─────────────────────────────────────────── */
:root {
  --bg-0: #090805;
  --bg-1: #100f0a;
  --bg-2: #181510;
  --bg-3: #201b13;
  --card:  rgba(20,17,12,0.72);
  --card-2:rgba(26,22,15,0.85);

  --ink:      #ede6d4;
  --ink-2:    #c9c1ae;
  --ink-soft: #8f8778;
  --ink-mute: #5c5749;
  --ink-deep: #3a3630;

  --line:        rgba(237,230,212,0.09);
  --line-strong: rgba(237,230,212,0.18);
  --line-dash:   rgba(237,230,212,0.16);

  --accent:      #c9975a;
  --accent-2:    #a67a3e;
  --accent-soft: rgba(201,151,90,0.12);
  --accent-glow: rgba(201,151,90,0.25);
  --accent-deep: #6b4d21;
  --accent-ink:  #100f0a;

  --ok:   #7fa580;
  --warn: #c69a4c;

  --font-display: "Instrument Serif","Newsreader",Georgia,serif;
  --font-body:    "Manrope",system-ui,-apple-system,sans-serif;
  --font-mono:    "JetBrains Mono",ui-monospace,monospace;

  --max:    1320px;
  --gutter: clamp(20px,4vw,60px);
  --t-nav:  60px;
  --t-ribbon: 30px;
  --r-card: 6px;
  --r-pill: 999px;

  --ease:   cubic-bezier(0.22,1,0.36,1);
  --ease-b: cubic-bezier(0.25,1,0.5,1);

  --row-pad: 44px;
  --sec-pad: clamp(96px,12vw,170px);

  --glass-bg:  rgba(14,12,8,0.55);
  --glass-bdr: rgba(237,230,212,0.12);
  --glass-blur:20px;
}

/* light paper */
[data-theme="paper-ivory"] {
  --bg-0:#f4eedf; --bg-1:#ede7d2; --bg-2:#e5dec7; --bg-3:#ddd5bb;
  --card:rgba(238,232,216,0.72); --card-2:rgba(230,224,208,0.85);
  --ink:#1a1510; --ink-2:#3c352b; --ink-soft:#6e6658; --ink-mute:#8e8678; --ink-deep:#b8af9b;
  --line:rgba(26,21,16,0.1); --line-strong:rgba(26,21,16,0.2); --line-dash:rgba(26,21,16,0.28);
  --accent:#8a6228; --accent-2:#6c4c1a; --accent-soft:rgba(138,98,40,0.1);
  --accent-glow:rgba(138,98,40,0.2); --accent-deep:#4a3411; --accent-ink:#f4eedf;
  --glass-bg:rgba(240,234,218,0.60); --glass-bdr:rgba(26,21,16,0.15);
}
[data-theme="ink-cobalt"] {
  --bg-0:#06080d; --bg-1:#0b0f18; --bg-2:#101521; --bg-3:#171e2e;
  --card:rgba(10,14,22,0.72); --card-2:rgba(16,20,32,0.85);
  --ink:#e6eaf2; --ink-2:#c0c7d8; --ink-soft:#8891a6; --ink-mute:#5a617a; --ink-deep:#384058;
  --line:rgba(230,234,242,0.08); --line-strong:rgba(230,234,242,0.16); --line-dash:rgba(230,234,242,0.16);
  --accent:#7ea1e4; --accent-2:#5c7fc2; --accent-soft:rgba(126,161,228,0.1);
  --accent-glow:rgba(126,161,228,0.22); --accent-deep:#2e477a; --accent-ink:#06080d;
  --glass-bg:rgba(8,11,20,0.55); --glass-bdr:rgba(230,234,242,0.12);
}
[data-theme="forest-quiet"] {
  --bg-0:#08100c; --bg-1:#0c1510; --bg-2:#111c15; --bg-3:#18241c;
  --card:rgba(12,20,15,0.72); --card-2:rgba(18,28,21,0.85);
  --ink:#e5ece5; --ink-2:#bdc8bd; --ink-soft:#879087; --ink-mute:#586058; --ink-deep:#36403a;
  --line:rgba(229,236,229,0.08); --line-strong:rgba(229,236,229,0.16); --line-dash:rgba(229,236,229,0.16);
  --accent:#a7c4a3; --accent-2:#82a07e; --accent-soft:rgba(167,196,163,0.1);
  --accent-glow:rgba(167,196,163,0.22); --accent-deep:#456048; --accent-ink:#08100c;
  --glass-bg:rgba(10,18,13,0.55); --glass-bdr:rgba(229,236,229,0.12);
}
[data-theme="paper-blue"] {
  --bg-0:#eef3f7; --bg-1:#e4ecf2; --bg-2:#dbe5ee; --bg-3:#d1dde9;
  --card:rgba(228,236,242,0.72); --card-2:rgba(219,229,238,0.85);
  /* Ink scale darkened again for even stronger reading contrast — the
     secondary/description tiers (--ink-soft, --ink-mute) pushed deepest. */
  --ink:#0a0f18; --ink-2:#16233a; --ink-soft:#324460; --ink-mute:#4b6081; --ink-deep:#7c93b0;
  --line:rgba(16,23,38,0.12); --line-strong:rgba(16,23,38,0.24); --line-dash:rgba(16,23,38,0.30);
  --accent:#2a6fdb; --accent-2:#1c52ab; --accent-soft:rgba(42,111,219,0.1);
  --accent-glow:rgba(42,111,219,0.2); --accent-deep:#123573; --accent-ink:#eef3f7;
  --glass-bg:rgba(235,241,246,0.60); --glass-bdr:rgba(16,23,38,0.15);
}
[data-theme="paper-sage"] {
  --bg-0:#f1f5f2; --bg-1:#e6ece6; --bg-2:#dce4db; --bg-3:#d2ddd0;
  --card:rgba(230,236,230,0.72); --card-2:rgba(220,228,219,0.85);
  --ink:#0f1a12; --ink-2:#2b3e30; --ink-soft:#596d5e; --ink-mute:#7b8e80; --ink-deep:#acc0b1;
  --line:rgba(15,26,18,0.1); --line-strong:rgba(15,26,18,0.2); --line-dash:rgba(15,26,18,0.28);
  --accent:#3a8a58; --accent-2:#2a6641; --accent-soft:rgba(58,138,88,0.1);
  --accent-glow:rgba(58,138,88,0.2); --accent-deep:#1c422a; --accent-ink:#f1f5f2;
  --glass-bg:rgba(237,242,238,0.60); --glass-bdr:rgba(15,26,18,0.15);
}
[data-theme="medium-slate"] {
  --bg-0:#3a424a; --bg-1:#2f363d; --bg-2:#242a30; --bg-3:#1d2126;
  --card:rgba(47,54,61,0.72); --card-2:rgba(36,42,48,0.85);
  --ink:#f1f3f5; --ink-2:#d1d5db; --ink-soft:#9ca3af; --ink-mute:#6b7280; --ink-deep:#4b5563;
  --line:rgba(241,243,245,0.08); --line-strong:rgba(241,243,245,0.16); --line-dash:rgba(241,243,245,0.16);
  --accent:#c9975a; --accent-2:#a67a3e; --accent-soft:rgba(201,151,90,0.12);
  --accent-glow:rgba(201,151,90,0.25); --accent-deep:#6b4d21; --accent-ink:#1d2126;
  --glass-bg:rgba(40,46,52,0.55); --glass-bdr:rgba(241,243,245,0.12);
}
[data-theme="medium-clay"] {
  --bg-0:#4e433b; --bg-1:#413730; --bg-2:#352c26; --bg-3:#2a221e;
  --card:rgba(65,55,48,0.72); --card-2:rgba(53,44,38,0.85);
  --ink:#f9fafb; --ink-2:#e5e7eb; --ink-soft:#9ca3af; --ink-mute:#6b7280; --ink-deep:#4b5563;
  --line:rgba(249,250,251,0.08); --line-strong:rgba(249,250,251,0.16); --line-dash:rgba(249,250,251,0.16);
  --accent:#e8a860; --accent-2:#c78b4b; --accent-soft:rgba(232,168,96,0.12);
  --accent-glow:rgba(232,168,96,0.25); --accent-deep:#875529; --accent-ink:#2a221e;
  --glass-bg:rgba(56,47,41,0.55); --glass-bdr:rgba(249,250,251,0.12);
}
[data-theme="medium-amber"] {
  --bg-0:#4a3f30; --bg-1:#3e3325; --bg-2:#32281c; --bg-3:#271e14;
  --card:rgba(62,51,37,0.72); --card-2:rgba(50,40,28,0.85);
  --ink:#fefefc; --ink-2:#ede7d9; --ink-soft:#beb29b; --ink-mute:#8c8068; --ink-deep:#5c513d;
  --line:rgba(254,254,252,0.08); --line-strong:rgba(254,254,252,0.16); --line-dash:rgba(254,254,252,0.16);
  --accent:#dba15c; --accent-2:#b57f44; --accent-soft:rgba(219,161,92,0.12);
  --accent-glow:rgba(219,161,92,0.25); --accent-deep:#7c5123; --accent-ink:#271e14;
  --glass-bg:rgba(53,44,32,0.55); --glass-bdr:rgba(254,254,252,0.12);
}

/* typography axis */
[data-display="serif"]    { --font-display:"Instrument Serif",Georgia,serif; }
[data-display="editorial"]{ --font-display:"Newsreader",Georgia,serif; }
[data-display="sans"]     { --font-display:"Manrope",system-ui,sans-serif; }
[data-density="compact"]  { --row-pad:28px; --sec-pad:clamp(60px,8vw,110px); }
[data-density="relaxed"]  { --row-pad:44px; --sec-pad:clamp(96px,12vw,170px); }

/* ─── RESET & BASE ─────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; }
html,body { margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:var(--font-body);
  font-size:16.5px;
  line-height:1.62;
  color:var(--ink);
  background:var(--bg-0);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,canvas { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
/* Inline text links (e.g. an email inside body copy) — clearly clickable. */
.txt-link {
  color:var(--accent);
  border-bottom:1px solid color-mix(in srgb,var(--accent) 45%,transparent);
  transition:border-color 0.2s,color 0.2s;
}
.txt-link:hover { border-bottom-color:var(--accent); color:var(--accent-2); }
button { font:inherit; cursor:pointer; }
::selection { background:var(--accent); color:var(--accent-ink); }

/* ─── SCROLL CANVAS ────────────────────────────────────────── */
/* DNA backdrop as ambient texture. Desktop carries a bit more presence
   (wide screen, room to breathe); phones stay light because the narrow
   text column sits right over it. (Was a flat 0.7 — too loud for reading.) */
#scroll-canvas {
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  z-index:0;
  pointer-events:none;
  opacity:0.34;          /* desktop / large screens */
  mix-blend-mode:normal;
}
/* Phones: keep it faint so body text stays crisp. */
@media (max-width:600px) {
  #scroll-canvas { opacity:0.20; }
}
/* Respect reduced-motion preferences — fade it further regardless of size. */
@media (prefers-reduced-motion:reduce) {
  #scroll-canvas { opacity:0.14; }
}

/* all content layers above canvas */
.ribbon, header, main, footer, #tweaks-root { position:relative; z-index:1; }

/* ─── TYPE SCALE ───────────────────────────────────────────── */
.display {
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(34px,5vw,78px);
  line-height:1.04;
  letter-spacing:-0.022em;
  margin:0;
  text-wrap:pretty;
  color:var(--ink);
}
.display em { font-style:italic; color:var(--accent); }
.kicker,.kicker-r {
  font-family:var(--font-mono);
  font-size:10.5px;
  font-weight:500;
  letter-spacing:0.20em;
  text-transform:uppercase;
  color:var(--ink-soft);
  margin:0;
}
.kicker-r { color:var(--ink-mute); }
.sec-head { max-width:var(--max); margin:0 auto; padding:0 var(--gutter) 56px; }
.sec-head.plain { padding-bottom:36px; }
.sec-head .display { max-width:940px; }
.sec-head-row {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:16px;
  padding-bottom:20px;
  margin-bottom:28px;
  border-bottom:1px solid var(--line);
  flex-wrap:wrap;
}

/* ─── RIBBON ───────────────────────────────────────────────── */
.ribbon {
  position:fixed;
  top:0;left:0;right:0;
  z-index:60;
  height:var(--t-ribbon);
  background:color-mix(in srgb,var(--bg-1) 85%,transparent);
  backdrop-filter:blur(20px) saturate(140%);
  -webkit-backdrop-filter:blur(20px) saturate(140%);
  border-bottom:1px solid var(--line);
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
.ribbon-inner {
  max-width:var(--max);
  height:100%;
  margin:0 auto;
  padding:0 var(--gutter);
  display:flex;
  align-items:center;
  gap:12px;
  white-space:nowrap;
  overflow:hidden;
}
.ribbon-sep { color:var(--ink-deep); }
.ribbon-spacer { flex:1; }
.ribbon-vol,.ribbon-date,.ribbon-loc { color:var(--ink-soft); }
.ribbon-status { display:inline-flex; align-items:center; gap:8px; color:var(--ink-2); }
.ribbon-status-dot {
  width:7px;height:7px;border-radius:50%;
  background:var(--ink-mute);
  transition:background 0.3s;
}
.ribbon-status[data-state="open"] .ribbon-status-dot {
  background:var(--ok);
  animation:pulse 2.4s ease-out infinite;
}
.ribbon-status[data-state="open"] .ribbon-status-label { color:var(--ok); }
.ribbon-status[data-state="closed"] .ribbon-status-dot { background:var(--warn); }
.ribbon-status[data-state="closed"] .ribbon-status-label { color:var(--warn); }
@keyframes pulse {
  0%   { box-shadow:0 0 0 0 rgba(127,165,128,0.6); }
  100% { box-shadow:0 0 0 10px transparent; }
}

/* ─── NAV ──────────────────────────────────────────────────── */
.nav {
  position:fixed;
  top:var(--t-ribbon);left:0;right:0;
  z-index:50;
  height:var(--t-nav);
  background:color-mix(in srgb,var(--bg-0) 72%,transparent);
  backdrop-filter:saturate(160%) blur(24px);
  -webkit-backdrop-filter:saturate(160%) blur(24px);
  border-bottom:1px solid transparent;
  transition:border-color 0.3s ease,background 0.3s ease,box-shadow 0.3s ease;
}
.nav.scrolled {
  border-bottom-color:var(--line);
  background:color-mix(in srgb,var(--bg-0) 90%,transparent);
  box-shadow:0 8px 40px rgba(0,0,0,0.3);
}
.nav-inner {
  max-width:var(--max);
  margin:0 auto;
  height:100%;
  padding:0 var(--gutter);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.brand { display:inline-flex; align-items:center; gap:12px; color:var(--ink); transition:opacity 0.2s; }
.brand:hover { opacity:0.78; }
.brand-mark { color:var(--accent); display:inline-flex; }
.brand-words { display:flex; flex-direction:column; line-height:1.1; }
.brand-words b { font-family:var(--font-display); font-size:21px; font-weight:400; color:var(--ink); white-space:nowrap; }
.brand-words small {
  font-family:var(--font-mono);
  font-size:9px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--ink-soft);
  margin-top:2px;
}
.nav-links { display:flex; align-items:center; gap:28px; font-size:13.5px; font-weight:500; color:var(--ink-2); }
.nav-links a { position:relative; padding:6px 0; letter-spacing:0.01em; transition:color 0.22s var(--ease),transform 0.12s ease; }
.nav-links a:hover { color:var(--accent); }
.nav-links a:active { transform:translateY(1px); }
.nav-links a::after {
  content:"";
  position:absolute;
  left:0;right:100%;bottom:2px;
  height:1.5px;background:var(--accent);border-radius:2px;
  transition:right 0.34s var(--ease),box-shadow 0.34s var(--ease);
}
.nav-links a:hover::after { right:0; }
/* Scroll-spy: the link for the section currently in view stays lit. */
.nav-links a.is-current { color:var(--accent); }
.nav-links a.is-current::after { right:0; box-shadow:0 0 10px var(--accent-glow); }
/* tiny leading marker that grows in on the active item */
.nav-links a.is-current::before {
  content:""; position:absolute; left:-11px; top:50%;
  width:4px; height:4px; border-radius:50%; background:var(--accent);
  transform:translateY(-50%) scale(1); opacity:1;
  box-shadow:0 0 8px var(--accent-glow);
  transition:opacity 0.3s var(--ease),transform 0.3s var(--ease);
}
.nav-links a::before { content:""; position:absolute; left:-11px; top:50%; width:4px;height:4px;border-radius:50%;background:var(--accent);opacity:0;transform:translateY(-50%) scale(0.2);transition:opacity 0.3s,transform 0.3s; }
/* CTA — sober navy pill with the arrow in a contrasting circular chip.
   On hover the pill + chip invert (premium consulting feel).
   Scoped under .nav-links so it beats `.nav-links a` on specificity. */
.nav-links .nav-cta {
  display:inline-flex;align-items:center;gap:11px;
  background:var(--ink);color:var(--accent-ink);
  padding:6px 7px 6px 18px;border-radius:var(--r-pill);
  font-size:13px;font-weight:600;letter-spacing:0.015em;
  box-shadow:0 2px 14px rgba(0,0,0,0.16);
  transition:transform 0.25s var(--ease),background 0.25s ease,
             box-shadow 0.25s ease,color 0.25s ease;
}
.nav-links .nav-cta::after,.nav-links .nav-cta::before { display:none !important; }
.nav-links .nav-cta svg {
  box-sizing:border-box;width:28px;height:28px;padding:7px;
  background:var(--accent);color:var(--accent-ink);border-radius:50%;
  transition:transform 0.28s var(--ease),background 0.25s ease,color 0.25s ease;
}
.nav-links .nav-cta:hover {
  background:var(--accent);color:var(--accent-ink);
  transform:translateY(-2px);
  box-shadow:0 10px 30px var(--accent-glow);
}
.nav-links .nav-cta:hover svg { background:var(--accent-ink);color:var(--accent);transform:translateX(3px); }
.nav-links .nav-cta:active { transform:translateY(0); }
.nav-burger {
  display:none;background:transparent;border:0;
  width:36px;height:36px;
  flex-direction:column;justify-content:center;align-items:center;
  gap:4px;padding:0;
}
.nav-burger span { display:block; width:22px;height:1px; background:var(--ink); }
.nav-progress {
  position:absolute;left:0;bottom:0;
  height:1.5px;width:0;
  background:var(--accent);
  box-shadow:0 0 12px var(--accent);
  transition:width 0.1s linear;
}
main { padding-top:calc(var(--t-ribbon) + var(--t-nav)); }
/* Anchor targets clear the fixed ribbon+nav so clicked sections land
   below the header instead of hiding under it. */
section[id], [id="top"] { scroll-margin-top:calc(var(--t-ribbon) + var(--t-nav) + 16px); }
.nav-cta:active { transform:translateY(1px); }

/* ─── GLASS MIXIN ──────────────────────────────────────────── */
.glass {
  background:var(--glass-bg);
  backdrop-filter:blur(var(--glass-blur)) saturate(140%);
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(140%);
  border:1px solid var(--glass-bdr);
  box-shadow:
    0 4px 32px rgba(0,0,0,0.25),
    inset 0 1px 0 rgba(255,255,255,0.04);
}

/* ─── BUTTONS ──────────────────────────────────────────────── */
.btn {
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 24px;
  font-family:var(--font-body);font-size:14px;font-weight:500;
  border-radius:var(--r-pill);border:1px solid transparent;
  background:transparent;color:var(--ink);cursor:pointer;
  transition:transform 0.2s var(--ease),background 0.2s ease,color 0.2s ease,
             border-color 0.2s ease,box-shadow 0.2s ease;
  letter-spacing:0.01em;white-space:nowrap;text-decoration:none;
}
.btn:hover { transform:translateY(-2px); }
.btn.primary {
  background:var(--accent);color:var(--accent-ink);
  box-shadow:0 4px 20px var(--accent-glow);
}
.btn.primary:hover {
  background:var(--ink);color:var(--bg-0);
  box-shadow:0 8px 32px rgba(0,0,0,0.4);
}
.btn.ghost {
  background:transparent;
  border-color:var(--line-strong);color:var(--ink-2);
  backdrop-filter:blur(8px);
}
.btn.ghost:hover { border-color:var(--accent);color:var(--accent); }
.btn svg { transition:transform 0.2s ease; }
.btn:hover svg { transform:translateX(2px); }
.link-arr {
  font-family:var(--font-mono);font-size:11px;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--ink-soft);
  display:inline-flex;align-items:center;gap:6px;
  padding-bottom:4px;
  border-bottom:1px solid var(--line-strong);
  background:transparent;border-width:0 0 1px 0;cursor:pointer;
  transition:color 0.2s,border-color 0.2s;
}
.link-arr:hover { color:var(--accent);border-color:var(--accent); }
.link-arr span { transition:transform 0.2s;display:inline-block; }
.link-arr:hover span { transform:translateX(4px); }

/* ─── REVEAL SYSTEM ────────────────────────────────────────── */
.reveal-init {
  opacity:0;
  transform:translateY(22px);
  transition:opacity 0.7s var(--ease),transform 0.7s var(--ease);
}
.reveal-on { opacity:1;transform:translateY(0); }

/* ─── MASTHEAD ─────────────────────────────────────────────── */
.masthead {
  padding:clamp(40px,5vw,80px) var(--gutter) clamp(40px,5vw,60px);
  border-bottom:1px solid var(--line);
  max-width:var(--max);
  margin:0 auto;
  position:relative;
}
.masthead-grid {
  display:grid;
  /* Heavier right column so the medallion can breathe at a useful size. */
  grid-template-columns:1.25fr 1fr;
  gap:clamp(40px,5vw,72px);
  /* Anchor the seal next to the headline rather than vertically centring
     against the much taller editorial copy — closes the top gap. */
  align-items:start;
  padding-bottom:clamp(40px,5vw,70px);
  border-bottom:1px dashed var(--line-dash);
}
.mh-copy { max-width:720px; }
.eyebrow {
  display:inline-flex;align-items:baseline;gap:10px;
  font-family:var(--font-mono);font-size:11px;
  letter-spacing:0.20em;text-transform:uppercase;
  color:var(--ink-soft);
  margin:0 0 28px;padding-bottom:16px;
  border-bottom:1px solid var(--line);width:100%;
}
.eyebrow-mark {
  color:var(--accent);font-family:var(--font-display);
  font-style:italic;font-size:22px;line-height:0;
  letter-spacing:0;text-transform:none;transform:translateY(2px);
}
.mh-h1 {
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(52px,8vw,116px);
  line-height:1.0;letter-spacing:-0.028em;
  margin:0 0 28px;color:var(--ink);
}
.mh-line { display:block;opacity:0;transform:translateY(22px);animation:rise 1s var(--ease) forwards; }
.mh-line[data-i="0"] { animation-delay:0.05s; }
.mh-line[data-i="1"] { animation-delay:0.22s;padding-left:0.6em; }
.mh-line[data-i="2"] { animation-delay:0.4s; }
.mh-h1 em { font-style:italic;color:var(--accent); }
@keyframes rise { to { opacity:1;transform:translateY(0); } }
.mh-sub {
  max-width:580px;font-size:17px;line-height:1.68;
  color:var(--ink-2);margin:0 0 34px;text-wrap:pretty;
}
.mh-cta { display:flex;gap:12px;flex-wrap:wrap;margin-bottom:44px; }
.mh-meta {
  list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);
}
.mh-meta li {
  padding:18px 18px 0 0;
  display:flex;flex-direction:column;gap:4px;
  border-right:1px solid var(--line);
}
.mh-meta li:last-child { border-right:0; }
.mh-meta li+li { padding-left:18px; }
.mh-meta b { font-family:var(--font-mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--accent);font-weight:500; }
.mh-meta i { font-style:normal;font-size:13px;color:var(--ink-soft);line-height:1.45; }

/* Motion ticker */
.motion-ticker {
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-mono);font-size:11px;
  letter-spacing:0.12em;color:var(--ink-soft);
  margin-bottom:26px;
  padding:10px 16px;
  background:var(--glass-bg);
  backdrop-filter:blur(10px);
  border:1px solid var(--glass-bdr);
  border-radius:var(--r-pill);
}
.motion-ticker-label { color:var(--accent); }
.motion-ticker-pipe { color:var(--ink-deep); }
.motion-ticker-list { position:relative;overflow:hidden;height:1.2em; }
.motion-ticker-item { position:absolute;top:0;left:0;opacity:0;transform:translateY(8px);transition:opacity 0.4s,transform 0.4s; }
.motion-ticker-item.is-on { opacity:1;transform:translateY(0); }
.motion-ticker-item i { font-style:normal;color:var(--accent);font-weight:600; }

/* Seal — backgroundless deep-gold medallion floating on the page. */
.mh-seal { display:flex;align-items:flex-start;justify-content:center; padding-top: clamp(20px, 3vw, 48px); }
.seal-stage { display:flex;flex-direction:column;align-items:center;gap:28px;max-width:460px;perspective:1100px; }
.seal {
  width:clamp(280px,34vw,440px);height:auto;
  color:var(--accent);
  /* Subtle drop-shadow only — gives the medallion a soft lift. No glow ring,
     no plate clipping. The gold itself is dark enough to read on the page. */
  filter: drop-shadow(0 14px 30px rgba(80,55,15,0.22));
  transform-style:preserve-3d;will-change:transform;
}
.seal img {
  display:block;
  width:100%;
  height:auto;
}
.seal-ring-faint { animation:sealDraw 1.6s ease-out 0.05s both; }
.seal-ring-main  { animation:sealDraw 1.6s ease-out 0.18s both; }
.seal-ring-dash  { animation:sealSpin 60s linear infinite,sealFade 1.2s ease 0.5s both; }
.seal-arc-text   { animation:sealFade 1.2s ease 0.7s both; }
.seal-mono       { animation:sealRise 1.0s var(--ease) 0.45s both; }
.seal-dots       { animation:sealFade 1.0s ease 0.9s both; }
@keyframes sealDraw { from { transform:scale(0.6);opacity:0; } to { transform:scale(1);opacity:1; } }
@keyframes sealFade { from { opacity:0; } to { opacity:1; } }
@keyframes sealRise { from { transform:translateY(8px);opacity:0; } to { transform:translateY(0);opacity:1; } }
@keyframes sealSpin { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
.seal-caption { text-align:center;display:flex;flex-direction:column;gap:6px; }
.seal-caption-num { font-family:var(--font-mono);font-size:10px;letter-spacing:0.20em;text-transform:uppercase;color:var(--accent); }
.seal-caption-text { font-size:12.5px;line-height:1.55;color:var(--ink-soft);font-style:italic;font-family:var(--font-display);max-width:280px; }

/* Index strip */
.mh-index {
  margin-top:clamp(30px,4vw,50px);padding:22px 0 0;
  display:flex;align-items:baseline;gap:28px;flex-wrap:wrap;
  font-family:var(--font-mono);font-size:11.5px;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--ink-2);
}
.mh-index-label { color:var(--accent);letter-spacing:0.22em;border-right:1px solid var(--line);padding-right:24px; }
.mh-index a { display:inline-flex;align-items:baseline;gap:6px;position:relative;padding-bottom:4px;transition:color 0.2s; }
.mh-index a i { font-style:italic;font-family:var(--font-display);font-size:14px;color:var(--accent);letter-spacing:0;text-transform:none; }
.mh-index a::after { content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--accent);transition:right 0.3s var(--ease); }
.mh-index a:hover { color:var(--ink); }
.mh-index a:hover::after { right:0; }

/* ─── PRACTICES ────────────────────────────────────────────── */
.practices { padding:var(--sec-pad) 0;border-bottom:1px solid var(--line); }
.px-explorer {
  max-width:var(--max);margin:0 auto;padding:0 var(--gutter);
  display:grid;grid-template-columns:minmax(280px,360px) 1fr;
  gap:clamp(28px,4vw,60px);align-items:start;
}
.px-tabs { display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line); }
.px-tab {
  position:relative;display:grid;
  grid-template-columns:auto 1fr;grid-template-rows:auto auto;
  column-gap:16px;align-items:baseline;
  background:transparent;border:0;border-bottom:1px solid var(--line);
  padding:22px 8px 22px 0;text-align:left;color:var(--ink-2);cursor:pointer;
  transition:padding-left 0.3s var(--ease),color 0.2s,background 0.3s;
}
.px-tab:hover { padding-left:8px;color:var(--ink);background:var(--accent-soft); }
.px-tab-n { grid-row:1/span 2;font-family:var(--font-mono);font-size:11px;letter-spacing:0.18em;color:var(--ink-soft);align-self:start;padding-top:4px; }
.px-tab-h { font-family:var(--font-display);font-size:clamp(22px,2.2vw,28px);font-weight:400;letter-spacing:-0.01em;line-height:1.1;color:var(--ink); }
.px-tab-s { font-size:12.5px;color:var(--ink-soft);margin-top:4px; }
.px-tab-rule { position:absolute;left:0;right:100%;top:-1px;height:2px;background:var(--accent);transition:right 0.4s var(--ease);z-index:1; }
.px-tab.is-active { color:var(--ink);padding-left:18px; }
.px-tab.is-active .px-tab-n { color:var(--accent); }
.px-tab.is-active .px-tab-rule { right:0; }
.px-panel { position:relative;min-height:520px; }
.px-detail {
  position:absolute;inset:0;
  display:flex;flex-direction:column;gap:20px;padding:4px 0;
  opacity:0;transform:translateY(12px);
  pointer-events:none;transition:opacity 0.45s var(--ease),transform 0.45s var(--ease);
}
.px-panel>.px-detail:not(.is-active) { opacity:0!important;transform:translateY(12px)!important;pointer-events:none!important; }
.px-detail.is-active { opacity:1;transform:translateY(0);pointer-events:auto;position:relative; }
.px-stamp {
  display:inline-flex;align-items:center;gap:10px;align-self:flex-start;
  font-family:var(--font-mono);font-size:10px;letter-spacing:0.22em;
  text-transform:uppercase;color:var(--accent);
  padding:6px 12px 6px 0;border-right:1px solid var(--line);position:relative;
}
.px-stamp::before { content:"";width:22px;height:1px;background:var(--accent);margin-right:4px;display:inline-block; }
.px-h { font-family:var(--font-display);font-weight:400;font-size:clamp(34px,4vw,58px);line-height:1.04;letter-spacing:-0.02em;margin:0;text-wrap:pretty; }
.px-h em { font-style:italic;color:var(--accent); }
.px-lead { font-size:17px;line-height:1.65;color:var(--ink-2);max-width:720px;margin:0;text-wrap:pretty; }
.px-body { display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:6px;padding-top:26px;border-top:1px solid var(--line); }
.px-col-h { font-family:var(--font-mono);font-size:10.5px;letter-spacing:0.20em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 14px; }
.px-list { list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px; }
.px-list li { font-size:15px;line-height:1.45;color:var(--ink);padding-left:22px;position:relative; }
.px-list li::before { content:"";position:absolute;left:0;top:0.65em;width:12px;height:1px;background:var(--accent); }
.px-list.dashed li::before { background:var(--ink-soft); }
.px-foot { margin-top:12px;padding-top:22px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr auto;gap:20px;align-items:center; }
.px-foot-lead { display:flex;flex-direction:column;gap:2px; }
.px-foot-l { font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-soft); }
.px-foot-name { font-family:var(--font-display);font-size:19px;font-style:italic;color:var(--ink); }
.px-foot-meta { display:flex;gap:24px;flex-wrap:wrap; }
.px-foot-meta span { display:flex;flex-direction:column;gap:2px; }
.px-foot-meta b { font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-soft);font-weight:500; }
.px-foot-meta i { font-style:normal;font-size:14px;color:var(--ink); }

/* ─── TIMELINE ─────────────────────────────────────────────── */
.timeline { padding:var(--sec-pad) 0;border-bottom:1px solid var(--line); }
.tl-stage { max-width:var(--max);margin:0 auto;padding:0 var(--gutter); }
.tl-track {
  display:flex;align-items:center;gap:0;
  position:relative;padding-bottom:40px;
}
.tl-rail { position:absolute;left:0;right:0;top:22px;height:1px;background:var(--line); }
.tl-fill {
  position:absolute;left:0;width:0;top:22px;height:1px;
  background:var(--accent);box-shadow:0 0 8px var(--accent-glow);
  transition:width 0.4s var(--ease);
}
.tl-step {
  flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;
  background:transparent;border:0;padding:0;cursor:pointer;position:relative;
}
.tl-step-dot {
  width:14px;height:14px;border-radius:50%;
  background:var(--bg-0);border:1.5px solid var(--line-strong);
  z-index:2;transition:background 0.3s,border-color 0.3s,box-shadow 0.3s;
}
.tl-step.is-active .tl-step-dot,
.tl-step.is-past .tl-step-dot {
  background:var(--accent);border-color:var(--accent);
  box-shadow:0 0 12px var(--accent-glow);
}
.tl-step-num { font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;color:var(--ink-soft);transition:color 0.2s; }
.tl-step-name { font-family:var(--font-display);font-size:14px;color:var(--ink-soft);transition:color 0.2s; }
.tl-step.is-active .tl-step-num,.tl-step.is-active .tl-step-name { color:var(--accent); }
.tl-panel { min-height:220px; }
.tl-card { display:none; }
.tl-card.is-active { display:flex;flex-direction:column;gap:16px;animation:quizStepEnter 0.5s var(--ease-b) forwards; }
@keyframes quizStepEnter { from { opacity:0;transform:translateY(10px); } to { opacity:1;transform:translateY(0); } }
.tl-when { font-family:var(--font-mono);font-size:10.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--accent);margin:0; }
.tl-card h3 { font-family:var(--font-display);font-weight:400;font-size:clamp(28px,3vw,42px);line-height:1.1;letter-spacing:-0.015em;margin:0;color:var(--ink); }
.tl-body { font-size:16px;line-height:1.65;color:var(--ink-2);margin:0;max-width:720px;text-wrap:pretty; }
.tl-list { list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px; }
.tl-list li { display:flex;gap:10px;font-size:14.5px; }
.tl-list b { font-family:var(--font-mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent);min-width:90px;padding-top:3px; }
.tl-list i { font-style:normal;color:var(--ink-soft); }

/* ─── APPROACH ─────────────────────────────────────────────── */
.approach { padding:var(--sec-pad) 0;border-bottom:1px solid var(--line); }
.ap-grid {
  max-width:var(--max);margin:0 auto;padding:0 var(--gutter);
  display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line);
}
.ap-card {
  padding:40px 32px 40px 0;border-bottom:1px solid var(--line);
  display:flex;flex-direction:column;gap:12px;position:relative;
  transition:background 0.35s ease,padding-left 0.35s var(--ease),box-shadow 0.35s;
  cursor:default;
}
.ap-card:nth-child(odd) { border-right:1px solid var(--line);padding-right:40px; }
.ap-card:nth-child(even) { padding-left:40px; }
.ap-card:hover {
  background:var(--glass-bg);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  box-shadow:inset 0 0 0 1px var(--glass-bdr);
}
.ap-card:nth-child(odd):hover { padding-left:14px;padding-right:28px; }
.ap-card:nth-child(even):hover { padding-left:52px; }
.ap-card .ap-n { font-family:var(--font-display);font-style:italic;font-size:36px;color:var(--accent);line-height:1; }
.ap-card h3 { font-family:var(--font-display);font-weight:400;font-size:clamp(26px,2.6vw,38px);line-height:1.08;letter-spacing:-0.014em;margin:0;color:var(--ink); }
.ap-card p { margin:6px 0 0;color:var(--ink-soft);font-size:15.5px;line-height:1.6;max-width:460px; }
.ap-pull { font-family:var(--font-display);font-style:italic;font-size:17px;color:var(--accent);margin-top:12px;padding-top:12px;border-top:1px dashed var(--line-dash);align-self:flex-start; }

/* ─── ESTIMATOR ────────────────────────────────────────────── */
.estimator { padding:var(--sec-pad) 0;border-bottom:1px solid var(--line); }
.est-stage { max-width:var(--max);margin:0 auto;padding:0 var(--gutter); }
.est-step { display:none; }
.est-step.is-active { display:block;animation:quizStepEnter 0.55s var(--ease-b) forwards; }
.est-q { font-family:var(--font-display);font-size:clamp(24px,2.8vw,36px);line-height:1.15;color:var(--ink);margin:0 0 28px; }
.est-q span { font-style:italic;color:var(--accent); }
.est-opts { display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px; }
.est-opts.row-3 { grid-template-columns:repeat(3,1fr); }
.est-opt {
  display:flex;align-items:flex-start;gap:14px;
  padding:18px 20px;text-align:left;
  background:var(--glass-bg);
  backdrop-filter:blur(16px) saturate(130%);
  -webkit-backdrop-filter:blur(16px) saturate(130%);
  border:1px solid var(--glass-bdr);
  border-radius:var(--r-card);cursor:pointer;
  transition:border-color 0.35s var(--ease-b),transform 0.35s var(--ease-b),
             box-shadow 0.35s var(--ease-b),background 0.35s;
}
.est-opt:hover {
  border-color:var(--accent);
  transform:translateY(-4px) scale(1.015);
  box-shadow:0 16px 40px var(--accent-glow),inset 0 1px 0 rgba(255,255,255,0.06);
  background:color-mix(in srgb,var(--glass-bg) 80%,var(--accent-soft));
}
.est-opt.is-picked { border-color:var(--accent);background:var(--accent-soft); }
.est-opt-n {
  font-family:var(--font-display);font-style:italic;font-size:26px;
  color:var(--accent);line-height:1;min-width:24px;
}
.est-opt-body { display:flex;flex-direction:column;gap:4px; }
.est-opt-h { font-family:var(--font-display);font-size:18px;font-weight:400;color:var(--ink);line-height:1.2; }
.est-opt-s { font-size:12.5px;color:var(--ink-soft);line-height:1.4; }
.est-opt.is-other { grid-column:1/-1; flex-direction:row; }
.est-result {
  opacity:0;transform:scale(0.96);
  transition:opacity 0.5s var(--ease-b),transform 0.5s var(--ease-b);
  max-width:var(--max);margin:0 auto;
  padding:36px 32px;
  background:var(--glass-bg);
  backdrop-filter:blur(20px) saturate(140%);
  -webkit-backdrop-filter:blur(20px) saturate(140%);
  border:1px solid var(--glass-bdr);
  border-radius:var(--r-card);
  box-shadow:0 8px 40px rgba(0,0,0,0.25);
}
.est-result.is-active { opacity:1;transform:scale(1); }
.est-result-stamp { font-family:var(--font-mono);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent); }
.est-result-h { font-family:var(--font-display);font-weight:400;font-size:clamp(32px,4vw,56px);line-height:1.05;letter-spacing:-0.02em;margin:12px 0;color:var(--ink); }
.est-result-lead { font-size:17px;line-height:1.6;color:var(--ink-2);margin:0 0 24px;max-width:640px; }
.est-result-meta { list-style:none;padding:0;margin:0 0 28px;display:flex;flex-direction:column;gap:10px; }
.est-result-meta li { display:flex;gap:12px;font-size:14px; }
.est-result-meta b { font-family:var(--font-mono);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-soft);min-width:130px;padding-top:3px; }
.est-result-meta i { font-style:normal;color:var(--ink); }
.est-result-actions { display:flex;align-items:center;gap:20px; }
/* Back button on Q2 / Q3 of the estimator (Where do you fit). */
.est-back {
  appearance:none;background:transparent;border:0;
  margin:22px 0 0;padding:8px 0;
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-mono);font-size:11px;
  letter-spacing:0.14em;text-transform:uppercase;
  color:var(--ink-soft);cursor:pointer;
  transition:color 0.2s,gap 0.2s;
}
.est-back:hover { color:var(--accent);gap:12px; }
.est-back span { font-family:var(--font-display);font-size:18px;line-height:1;display:inline-block;transition:transform 0.2s; }
.est-back:hover span { transform:translateX(-3px); }

.est-trail { display:flex;gap:10px;align-items:center;margin-top:20px;max-width:var(--max);padding:0 var(--gutter); }
.est-trail-dot { width:6px;height:6px;border-radius:50%;background:var(--line-strong);transition:background 0.3s,transform 0.3s; }
.est-trail-dot.is-on { background:var(--accent);transform:scale(1.4); }

/* ─── NUMBERS ──────────────────────────────────────────────── */
.numbers { padding:var(--sec-pad) 0;border-bottom:1px solid var(--line);background:var(--bg-1); }
.num-grid {
  max-width:var(--max);margin:0 auto;padding:0 var(--gutter);
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
}
.num-cell { padding:44px 28px 44px 0;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:4px; }
.num-cell:nth-child(n+2) { padding-left:28px; }
.num-cell:last-child { border-right:0; }
.num-fig {
  font-family:var(--font-display);
  font-size:clamp(60px,7.5vw,110px);
  line-height:1;letter-spacing:-0.03em;
  color:var(--accent);font-weight:400;
  text-shadow:0 0 40px var(--accent-glow);
}
.num-unit { font-family:var(--font-display);font-style:italic;font-size:20px;color:var(--ink-soft);margin-top:4px;margin-bottom:10px; }
.num-lbl { font-size:13.5px;line-height:1.5;color:var(--ink-soft);max-width:240px; }

/* ─── INDUSTRIES ───────────────────────────────────────────── */
.industries { padding:var(--sec-pad) 0;border-bottom:1px solid var(--line); }
.ind-grid {
  max-width:var(--max);margin:0 auto;padding:0 var(--gutter);
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
}
.ind-col { padding:34px 26px 34px 0;border-right:1px solid var(--line); }
.ind-col:nth-child(n+2) { padding-left:26px; }
.ind-col:last-child { border-right:0; }
.ind-h { font-family:var(--font-mono);font-size:11px;letter-spacing:0.20em;text-transform:uppercase;color:var(--accent);margin:0 0 18px;padding-bottom:12px;border-bottom:1px dashed var(--line-dash); }
.ind-col ul { list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px; }
.ind-col li { font-family:var(--font-display);font-size:19px;color:var(--ink);line-height:1.2;transition:color 0.2s,padding-left 0.2s;cursor:default; }
.ind-col li:hover { color:var(--accent);padding-left:6px;font-style:italic; }

/* ─── PARTNERS ─────────────────────────────────────────────── */
.partners { padding:var(--sec-pad) 0;border-bottom:1px solid var(--line); }
.pt-grid {
  max-width:var(--max);margin:0 auto;padding:0 var(--gutter);
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:stretch;
}
.pt-card {
  position:relative;display:grid;grid-template-rows:auto auto;gap:18px;
  padding:18px;
  background:var(--glass-bg);
  backdrop-filter:blur(14px) saturate(130%);
  -webkit-backdrop-filter:blur(14px) saturate(130%);
  border:1px solid var(--glass-bdr);
  border-radius:var(--r-card);cursor:pointer;
  box-shadow:0 4px 20px rgba(0,0,0,0.2);
  transition:border-color 0.35s var(--ease-b),transform 0.35s var(--ease-b),box-shadow 0.35s var(--ease-b);
}
.pt-card:hover { border-color:var(--accent);transform:translateY(-5px);box-shadow:0 16px 40px var(--accent-glow); }
.pt-card.is-expanded {
  grid-column:1/-1;grid-template-columns:minmax(220px,280px) 1fr;grid-template-rows:auto;
  gap:32px;border-color:var(--accent);
  background:color-mix(in srgb,var(--glass-bg) 90%,var(--accent-soft));
  transform:none;padding:28px;
  box-shadow:0 24px 60px rgba(0,0,0,0.35);
}
.pt-photo { position:relative;width:100%;aspect-ratio:0.85/1;overflow:hidden;background:var(--bg-2);border-radius:calc(var(--r-card) - 2px); }
.pt-photo img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 18%;filter:grayscale(0.35) contrast(1.05) brightness(0.94);transition:filter 0.4s,transform 0.5s; }
.pt-card:hover .pt-photo img { filter:grayscale(0.1) contrast(1.08) brightness(1);transform:scale(1.04); }
.pt-photo-frame { position:absolute;inset:6px;border:1px solid rgba(255,255,255,0.08);pointer-events:none;z-index:2; }
.pt-photo::after { content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,0.5) 100%);z-index:1;pointer-events:none; }
.pt-words { display:flex;flex-direction:column;gap:4px; }
.pt-role { font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--accent);margin:0 0 4px; }
.pt-card h3 { font-family:var(--font-display);font-weight:400;font-size:22px;line-height:1.1;letter-spacing:-0.012em;margin:0;color:var(--ink); }
.pt-tag { font-family:var(--font-mono);font-size:10.5px;letter-spacing:0.10em;color:var(--ink-soft);margin:8px 0 0;padding-top:8px;border-top:1px dashed var(--line-dash); }
.pt-toggle { position:absolute;top:12px;right:14px;font-family:var(--font-mono);font-size:16px;color:var(--ink-soft);width:22px;height:22px;display:flex;align-items:center;justify-content:center;transition:transform 0.3s var(--ease),color 0.2s; }
.pt-card:hover .pt-toggle { color:var(--accent); }
.pt-card.is-expanded .pt-toggle { transform:rotate(45deg);color:var(--accent); }
.pt-expand { display:none;flex-direction:column;gap:16px; }
.pt-card.is-expanded .pt-expand { display:flex;grid-column:2;grid-row:1;padding-top:6px;animation:profileEnter 0.55s var(--ease-b) forwards; }
.pt-card.is-expanded .pt-photo { grid-row:1; }
.pt-card.is-expanded .pt-words { display:none; }
.pt-card.is-expanded .pt-expand::before { content:"";display:block;width:60px;height:1px;background:var(--accent);margin-bottom:6px; }
.pt-expand p { font-size:16px;line-height:1.6;color:var(--ink-2);margin:0;max-width:640px; }
.pt-expand-h { font-family:var(--font-display);font-weight:400;font-size:32px;line-height:1.05;letter-spacing:-0.014em;color:var(--ink);margin:0; }
.pt-skills { list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px; }
.pt-skills li { font-family:var(--font-mono);font-size:10.5px;letter-spacing:0.10em;text-transform:uppercase;color:var(--ink-2);padding:6px 12px;border:1px solid var(--line);border-radius:var(--r-pill); }
.pt-cta { align-self:flex-start;margin-top:4px;display:inline-flex;align-items:center;gap:8px;padding:10px 18px;background:var(--accent);color:var(--accent-ink);border-radius:var(--r-pill);font-size:13px;font-weight:500;transition:background 0.2s,transform 0.2s; }
.pt-cta:hover { background:var(--ink);color:var(--bg-0);transform:translateY(-1px); }
.pt-cta span { transition:transform 0.2s; }
.pt-cta:hover span { transform:translateX(3px); }
@keyframes profileEnter { from { opacity:0;transform:translateY(12px); } to { opacity:1;transform:translateY(0); } }

/* ─── QUOTE ────────────────────────────────────────────────── */
.quote {
  padding:var(--sec-pad) var(--gutter);
  background:color-mix(in srgb,var(--bg-1) 80%,transparent);
  backdrop-filter:blur(20px);
  border-bottom:1px solid var(--line);
}
.quote-inner { max-width:1000px;margin:0 auto; }
.quote .kicker { margin-bottom:28px; }
.quote blockquote {
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(28px,4vw,52px);line-height:1.18;letter-spacing:-0.012em;
  margin:0 0 32px;color:var(--ink);text-wrap:pretty;position:relative;padding-left:32px;
}
.quote blockquote::before {
  content:"\201C";position:absolute;left:-8px;top:-0.3em;
  font-size:1.6em;color:var(--accent);line-height:1;font-style:italic;
}
.q-by { display:flex;align-items:center;gap:14px;font-family:var(--font-body); }
.q-rule { width:40px;height:1px;background:var(--accent); }
.q-by b { font-weight:500;display:block;font-size:14px;color:var(--ink); }
.q-by span { font-size:12.5px;color:var(--ink-soft); }

/* ─── JOURNAL ──────────────────────────────────────────────── */
.journal { padding:var(--sec-pad) 0;border-bottom:1px solid var(--line); }
.jr-grid {
  max-width:var(--max);margin:0 auto;padding:0 var(--gutter);
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
}
.jr-card {
  padding:28px;display:flex;flex-direction:column;gap:14px;cursor:pointer;
  background:var(--glass-bg);
  backdrop-filter:blur(14px) saturate(130%);
  -webkit-backdrop-filter:blur(14px) saturate(130%);
  border:1px solid var(--glass-bdr);border-radius:var(--r-card);
  box-shadow:0 4px 20px rgba(0,0,0,0.18);
  transition:border-color 0.35s var(--ease-b),transform 0.35s var(--ease-b),box-shadow 0.35s var(--ease-b);
}
.jr-card:hover { border-color:var(--accent);transform:translateY(-5px);box-shadow:0 16px 40px var(--accent-glow); }
.jr-meta { display:flex;gap:8px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--accent); }
.jr-meta span:nth-child(2) { color:var(--ink-mute); }
.jr-meta span:nth-child(3) { color:var(--ink-soft); }
.jr-card h3 { font-family:var(--font-display);font-weight:400;font-size:clamp(22px,2vw,28px);line-height:1.14;letter-spacing:-0.012em;margin:0;color:var(--ink);text-wrap:pretty; }
.jr-lede { font-size:14.5px;line-height:1.55;color:var(--ink-soft);margin:0;flex:1; }
.jr-foot { display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px dashed var(--line-dash); }
.jr-date { font-family:var(--font-mono);font-size:11px;letter-spacing:0.12em;color:var(--ink-mute); }

/* Journal "Read" button = inline expand instead of a broken href="#". */
.jr-read {
  appearance:none;background:transparent;border:0;padding:0;font:inherit;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;
}
.jr-expand {
  margin-top:18px;padding-top:16px;
  border-top:1px dashed var(--line-dash);
  /* hidden by default — author display kept off so it doesn't override the
     [hidden] attribute; the card's .is-expanded class is the single source
     of truth for open/closed. */
  display:none;flex-direction:column;gap:14px;
}
.jr-card.is-expanded .jr-expand {
  display:flex;
  animation:jrExpandFade 0.3s var(--ease) both;
}
/* clear visual cue that this card is the open one */
.jr-card.is-expanded { border-color:var(--accent); box-shadow:0 16px 40px var(--accent-glow); }
.jr-expand p { margin:0;font-size:14.5px;line-height:1.65;color:var(--ink-2); }
@keyframes jrExpandFade { from { opacity:0;transform:translateY(-4px); } to { opacity:1;transform:translateY(0); } }

/* "Full archive coming soon" badge replacing the broken All-entries link. */
.jr-soon {
  font-family:var(--font-mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--ink-soft);
}

/* ─── CONTACT ──────────────────────────────────────────────── */
.contact { padding:var(--sec-pad) 0;background:var(--bg-1);border-bottom:1px solid var(--line); }
.ct-grid { max-width:var(--max);margin:0 auto;padding:0 var(--gutter);display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,5vw,80px);align-items:start; }
.ct-left .sec-head { padding:0; }
.ct-left .display { font-size:clamp(40px,5.4vw,72px); }
.ct-cards { list-style:none;padding:0;margin:36px 0 0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line); }
.ct-cards li { padding:22px 16px 22px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px; }
.ct-cards li:nth-child(odd) { border-right:1px solid var(--line); }
.ct-cards li:nth-child(even) { padding-left:16px; }
.ct-card-l { font-family:var(--font-mono);font-size:10px;letter-spacing:0.20em;text-transform:uppercase;color:var(--ink-soft); }
.ct-card-v { font-family:var(--font-display);font-size:20px;color:var(--ink);transition:color 0.2s; }
a.ct-card-v:hover { color:var(--accent); }
.ct-card-s { font-size:12.5px;color:var(--ink-soft);line-height:1.45; }
.ct-form {
  background:var(--glass-bg);
  backdrop-filter:blur(20px) saturate(140%);
  -webkit-backdrop-filter:blur(20px) saturate(140%);
  border:1px solid var(--glass-bdr);
  border-radius:var(--r-card);
  padding:36px 32px;
  display:flex;flex-direction:column;gap:22px;position:relative;
  box-shadow:0 8px 40px rgba(0,0,0,0.2);
}
.ct-form::before { content:"";position:absolute;top:0;left:32px;right:32px;height:2px;background:var(--accent);box-shadow:0 0 12px var(--accent-glow);border-radius:var(--r-card) var(--r-card) 0 0; }
.ct-form-stamp { font-family:var(--font-mono);font-size:10.5px;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);margin:0;padding-bottom:8px;border-bottom:1px dashed var(--line-dash); }
.ct-form-lede { font-size:14.5px;color:var(--ink-soft);line-height:1.55;margin:0; }
.ct-row { display:grid;gap:22px; }
.ct-row.two { grid-template-columns:1fr 1fr; }
.ct-field { display:flex;flex-direction:column;gap:6px; }
.ct-l { font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-soft);display:flex;align-items:baseline;gap:8px; }
.ct-l i { font-style:italic;text-transform:none;font-family:var(--font-display);font-size:12px;color:var(--ink-mute);letter-spacing:0; }
.ct-field input,.ct-field select,.ct-field textarea { font-family:var(--font-body);font-size:15px;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--line-strong);padding:10px 0;outline:none;transition:border-color 0.2s;resize:vertical; }
.ct-field textarea { line-height:1.5;min-height:90px; }
.ct-field input:focus,.ct-field select:focus,.ct-field textarea:focus { border-color:var(--accent); }
.ct-field select { appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-soft) 50%),linear-gradient(135deg,var(--ink-soft) 50%,transparent 50%);background-position:calc(100% - 14px) 18px,calc(100% - 9px) 18px;background-size:5px 5px;background-repeat:no-repeat;padding-right:24px; }
.ct-field select option { background:var(--bg-1);color:var(--ink); }
.ct-err { font-family:var(--font-mono);font-size:10px;letter-spacing:0.10em;text-transform:uppercase;color:var(--warn);min-height:14px;opacity:0;transition:opacity 0.2s; }
.ct-field.is-invalid input,.ct-field.is-invalid select,.ct-field.is-invalid textarea { border-bottom-color:var(--warn); }
.ct-field.is-invalid .ct-err { opacity:1; }
.ct-submit-row { display:flex;align-items:center;gap:16px;flex-wrap:wrap; }
.ct-fine { font-size:12px;color:var(--ink-mute);margin:0;line-height:1.4;flex:1; }
.ct-success { padding:32px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px; }
.ct-success-stamp { font-family:var(--font-mono);font-size:10.5px;letter-spacing:0.20em;text-transform:uppercase;color:var(--accent); }
.ct-success h3 { font-family:var(--font-display);font-weight:400;font-size:clamp(28px,3vw,40px);line-height:1.1;letter-spacing:-0.014em;margin:0;color:var(--ink); }
.ct-success p { font-size:15px;line-height:1.6;color:var(--ink-soft);max-width:480px; }

/* ─── FOOTER ───────────────────────────────────────────────── */
.ft {
  padding:var(--sec-pad) 0 0;
  background:var(--bg-0);
  border-top:1px solid var(--line);
}
.ft-top {
  max-width:var(--max);margin:0 auto;padding:0 var(--gutter) clamp(48px,6vw,80px);
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:clamp(28px,4vw,56px);
}
.ft-brand { display:flex;flex-direction:column;gap:20px; }
.ft-blurb { font-size:14px;line-height:1.6;color:var(--ink-soft);max-width:340px; }
.ft-col h5 { font-family:var(--font-mono);font-size:10.5px;letter-spacing:0.20em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 16px;padding-bottom:10px;border-bottom:1px solid var(--line); }
.ft-col ul { list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px; }
.ft-col li { font-size:14px;color:var(--ink-soft); }
.ft-col a { transition:color 0.2s; }
.ft-col a:hover { color:var(--accent); }
.ft-base {
  max-width:var(--max);margin:0 auto;padding:24px var(--gutter);
  display:flex;justify-content:space-between;align-items:center;
  border-top:1px solid var(--line);
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--ink-mute);gap:16px;flex-wrap:wrap;
}

/* ─── RESPONSIVE ───────────────────────────────────────────── */
@media (max-width:1100px) {
  .ft-top { grid-template-columns:1fr 1fr 1fr; }
  .ft-brand { grid-column:1/-1; }
  .num-grid { grid-template-columns:repeat(2,1fr); }
  .num-cell:nth-child(2) { border-right:0;padding-right:0; }
  .num-cell:nth-child(3) { border-right:1px solid var(--line);padding-left:0;padding-right:28px; }
  .num-cell:nth-child(4) { border-right:0; }
}
@media (max-width:1024px) {
  /* Six links + CTA + the longer legal name ("…Private Limited") stop fitting
     one horizontal bar below ~1000px, so collapse to the burger here (was
     600px). The open dropdown is positioned by JS in initBurger(); the rules
     below are just its cosmetics, lifted up from the old 600px block. */
  .nav-links { display:none; }
  .nav-burger { display:flex; }
  .nav-links a:not(.nav-cta)::before, .nav-links a:not(.nav-cta)::after { display:none; }
  .nav-links a:not(.nav-cta) { padding:8px 0 8px 12px; }
  .nav-links a.is-current:not(.nav-cta) { color:var(--accent); box-shadow:inset 2px 0 0 var(--accent); }
  .nav-links .nav-cta { margin-top:10px; align-self:stretch; justify-content:center; padding:11px 10px 11px 20px; }
}
@media (max-width:900px) {
  /* Stack the masthead with the SEAL FIRST — medallion sets the brand
     before the copy, so the hero reads as a proper landing on a phone. */
  .masthead-grid { grid-template-columns:1fr; gap:32px; align-items:stretch; }
  .mh-seal { display:flex; padding-top:0; order:1; justify-content:center; }
  .seal-stage { align-items:center; }
  .seal { width:clamp(200px,44vw,260px); }
  .mh-copy { order:2; max-width:100%; }
  .px-explorer { grid-template-columns:1fr; }
  .ap-grid { grid-template-columns:1fr; }
  .ap-card:nth-child(odd) { border-right:0;padding-right:0; }
  .ap-card:nth-child(even) { padding-left:0; }
  .ct-grid { grid-template-columns:1fr; }
  .pt-grid { grid-template-columns:repeat(2,1fr); }
  .pt-card.is-expanded { grid-template-columns:1fr; }
  .pt-card.is-expanded .pt-expand { grid-column:1;grid-row:2; }
  .ind-grid { grid-template-columns:repeat(2,1fr); }
  .ind-col:nth-child(2) { border-right:0; }
  .ind-col:nth-child(3) { border-top:1px solid var(--line);padding-top:24px; }
  .jr-grid { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  /* ----- Top ribbon: collapse to ONE clean centred line on phones.
     The bar is a fixed 30px with overflow:hidden, so the desktop 3-part
     layout (date / location / status) wrapped and got clipped. Keep the
     editorial live date + the office-status pill (the signature touch),
     drop the redundant location + separators so nothing wraps. ----- */
  .ribbon-inner { gap:14px; font-size:10px; letter-spacing:0.13em;
                  flex-wrap:nowrap; justify-content:center; }
  .ribbon-loc, .ribbon-sep, .ribbon-spacer { display:none; }
  .ribbon-status { margin-left:0; }

  /* ----- Nav: burger already engaged at ≤1024 (block above); only the
     phone-specific brand treatment lives here. ----- */
  .brand-words small { display:none; }
  /* Long legal name ("…Private Limited") wraps to 2 lines here — fine, the
     subtitle is hidden so 2 lines clear the 60px bar. nowrap is released. */
  .brand-words b { font-size:13px; white-space:normal; }

  /* ----- Masthead: tighter page padding + centred hero rhythm ----- */
  .masthead { padding:12px clamp(16px,5vw,28px) 36px; }
  /* Pull the seal up and shrink the seal→copy gap so the hero CTAs
     (incl. "See the practices") land within the first mobile screen. */
  .masthead-grid { gap:18px; }

  /* Eyebrow keeps its editorial line but smaller + centred under the seal */
  .eyebrow { font-size:10px; letter-spacing:0.16em; margin:6px 0 18px;
             border-bottom:1px solid var(--line); padding-bottom:14px;
             justify-content:flex-start; }

  /* Hero headline — bigger and tighter on mobile so the seal feels paired */
  .mh-h1 { font-size:clamp(46px,12vw,68px); line-height:1.02; margin:0 0 18px; }
  .mh-h1 .mh-line { display:block; }
  .mh-h1 .mh-line[data-i="1"] { padding-left:0; }  /* drop desktop indent on phone */
  .mh-sub { font-size:15.5px; line-height:1.58; margin:0 0 20px; }

  /* CTAs: full-width primary stack */
  .mh-cta { flex-wrap:wrap; gap:10px; margin-bottom:30px; }
  .mh-cta .btn { flex:1 1 100%; justify-content:center; padding:14px 22px; }

  /* Motion ticker — smaller on phone so it doesn't compete */
  .motion-ticker { font-size:12px; padding:14px 0; margin-bottom:24px; }

  /* Credentials list — stack flush with breathing room */
  .mh-meta { grid-template-columns:1fr; gap:0; }
  .mh-meta li { border-right:0; padding:16px 0 14px; border-bottom:1px solid var(--line); padding-left:0; gap:6px; }
  .mh-meta li+li { padding-left:0; }
  .mh-meta li:last-child { border-bottom:0; }
  .mh-meta b, .mh-meta i { display:block; padding:0; margin:0; }
  /* Negative text-indent compensates for the optical drift caused by
     letter-spacing on the all-caps mono labels — keeps the LABEL's left edge
     visually aligned with the description's left edge. */
  .mh-meta b { text-indent:-0.08em; }

  /* Seal block — centred, capped a touch smaller so the headline + CTAs
     clear the fold; sits flush at the top of the hero. */
  .seal-stage { gap:14px; max-width:100%; }
  .seal { width:min(50vw,200px); }
  .mh-seal { padding-top:0; }

  /* ----- Section headers + body fonts ----- */
  .sec-head h2.display, .display { font-size:clamp(28px,7.5vw,40px); line-height:1.12; }
  .kicker, .kicker-r { font-size:10px; }

  /* ----- Practices ----- */
  .px-tabs { gap:0; }
  .px-tab { padding:18px 14px; }
  .px-tab-h { font-size:17px; }
  .px-detail { padding:24px 16px; }
  .px-body { grid-template-columns:1fr; gap:24px; }
  .px-foot { grid-template-columns:1fr;gap:18px; }
  .px-h { font-size:clamp(24px,6.5vw,32px); }

  /* ----- Engagement timeline ----- */
  .tl-track { flex-wrap:wrap; gap:10px 14px; }
  .tl-card { padding:22px 16px; }

  /* ----- Estimator ----- */
  .est-stage { padding:24px 16px; }
  .est-opt { padding:16px 14px; }
  .est-opts, .est-opts.row-3 { grid-template-columns:1fr; gap:10px; }

  /* ----- Numbers ----- */
  .num-grid { grid-template-columns:1fr; }
  .num-cell { border-right:0!important;padding:28px 0!important; border-bottom:1px solid var(--line); }
  .num-cell:last-child { border-bottom:0; }
  .num-fig { font-size:clamp(56px,18vw,84px); }

  /* ----- Industries / team / journal stack ----- */
  .pt-grid { grid-template-columns:1fr; }
  .ind-grid { grid-template-columns:1fr; }
  .ind-col { border-right:0; border-bottom:1px solid var(--line); padding:20px 0 24px; }
  .ind-col:last-child { border-bottom:0; }
  .ind-col:nth-child(n+2) { padding-left:0; }
  .ind-col .ind-h, .ind-col p:first-child {
    /* keep the column heading lined up with the list items below */
    margin:0 0 12px; padding:0; text-indent:-0.08em;
  }
  .ind-col ul { padding-left:0; margin:0; }
  .ind-col li { padding-left:0; font-size:17px; }
  .jr-card { padding:24px 20px; }
  .jr-card h3 { font-size:19px; }

  /* ----- Contact ----- */
  .ct-row.two { grid-template-columns:1fr; }
  .ct-cards { grid-template-columns:1fr; gap:0; }
  .ct-cards li {
    border-right:0 !important;
    border-bottom:1px solid var(--line);
    padding:18px 0 20px !important;
    padding-left:0 !important;
    gap:8px;
  }
  .ct-cards li:last-child { border-bottom:0; }
  .ct-card-l { text-indent:-0.10em; padding:0; margin:0; }
  .ct-card-v { padding:0; margin:0; font-size:22px; }
  .ct-card-s { padding:0; margin:0; }

  /* ----- Contact form: needs real breathing room + tappable targets ----- */
  .ct-form { padding:24px 18px 30px; gap:18px; border-radius:12px; }
  .ct-form::before { left:18px; right:18px; }
  .ct-form-stamp { font-size:9.5px; padding-bottom:10px; }
  .ct-form-lede { font-size:14px; }
  .ct-row { gap:16px; }
  .ct-field { gap:8px; }
  .ct-l { font-size:10.5px; letter-spacing:0.16em; text-indent:-0.06em; }
  .ct-field input,
  .ct-field select,
  .ct-field textarea {
    font-size:16px;       /* 16px keeps iOS from zooming on focus */
    padding:12px 0;
    border-bottom-width:1.5px;
  }
  .ct-field textarea { min-height:110px; }
  .ct-field select { background-position:calc(100% - 12px) 20px,calc(100% - 7px) 20px; }
  .ct-submit-row { flex-direction:column; align-items:stretch; gap:14px; }
  .ct-submit-row .btn { width:100%; justify-content:center; padding:14px 22px; }
  .ct-fine { font-size:11.5px; text-align:left; }

  /* ----- Footer ----- */
  .ft-top { grid-template-columns:1fr; gap:24px; padding-bottom:32px; }
  .ft-col h5 { font-size:12px; }
  .ft-base { flex-direction:column;gap:6px;text-align:left; font-size:11px; }

  /* ----- Quote ----- */
  .quote-inner blockquote { font-size:clamp(20px,6vw,28px); }
}

@media (max-width:380px) {
  /* Very small phones — even tighter padding + smaller headline */
  .mh-h1 { font-size:clamp(40px,11vw,52px); }
  .display { font-size:clamp(26px,7vw,34px); }
  .brand-words b { font-size:12px; white-space:normal; }
  .ribbon-inner { font-size:9px; gap:10px; letter-spacing:0.10em; }
}

/* Burger menu open-state styling — JS toggles `.nav-links` display inline,
   add visual treatment when it's expanded. */
@media (max-width:600px) {
  .nav-burger { background:transparent;border:0;width:32px;height:32px;cursor:pointer;
                display:flex;flex-direction:column;justify-content:center;gap:5px;padding:0; }
  .nav-burger span { display:block;width:22px;height:1.5px;background:var(--ink); }
}
