/* Eden Consultancy — bundled site.css
 * mobile-safe mono bundle (no @import cascade)
 * generated 2026-07-25T17:11:12Z from live modular v289 + mobile fix
 */

/* ===== css/tokens.css ===== */
/* tokens.css - Eden Plane M surface, type, motion, footer contrast tokens
 * v27 dual-tone SSOT. Do not invent forest/gold body tokens here.
 */

:root {
  /* Surfaces - deep paper + authority (not near-white document) */
  --surface-page: #e8e2d6;
  --surface-raised: #f0ebe3;
  --surface-muted: #ddd5c6;
  --surface-authority: #141618;
  --surface-footer: #1d1d1d;

  --bg: var(--surface-page);
  --bg-elevated: var(--surface-raised);
  --bg-card: var(--surface-muted);
  --bg-alt: var(--surface-muted);

  /* Ink on paper */
  --ink: #1a1a1a;
  --ink-soft: #2a2a2a;
  --muted: #555555;
  --faint: #787878;

  /* Borders */
  --line: #ddd7cc;
  --line-soft: #e8e4db;
  --border-soft: var(--line);
  --border-subtle: var(--line-soft);

  /* Accent - Guardian Blue only on public body */
  --accent: #365b75;
  --accent-soft: #4a7390;
  --accent-glow: rgba(54, 91, 117, 0.1);

  --success: #2f6b4f;
  --warning: #9a6b2f;
  /* Bronze/gold: staff door ceremonial only */
  --bronze: #7a6a52;
  --bronze-soft: #6b5d4d;
  --bronze-glow: rgba(122, 106, 82, 0.12);

  /* Authority band type (light on charcoal) */
  --authority-ink: #e8e4dc;
  --authority-ink-soft: #c4bfb5;
  --authority-muted: #9a958c;
  --authority-line: rgba(232, 228, 220, 0.18);

  /* Footer contrast (light on charcoal) */
  --footer-bg: var(--surface-footer);
  --footer-text: #c8c8c8;
  --footer-text-soft: #a8a8a8;
  --footer-heading: #f0f0f0;
  --footer-link: #d6d6d6;
  --footer-link-hover: #ffffff;

  /* Type stacks */
  --serif: Georgia, "Times New Roman", "Palatino Linotype", Palatino, serif;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;

  /* Type scale */
  --text-display: clamp(2.55rem, 6.5vw, 5.5rem);
  --text-headline: clamp(1.75rem, 3.2vw, 2.45rem);
  --text-page-title: clamp(2.25rem, 5vw, 3.5rem);
  --text-section: clamp(1.65rem, 3vw, 2.35rem);
  --text-subhead: clamp(1.15rem, 2vw, 1.4rem);
  --text-card: 1.15rem;
  --text-body: 1.125rem;
  --text-meta: 0.72rem;

  /* Layout */
  --wrap: 1080px;
  --leading: 1.7;
  --space-section: clamp(3.25rem, 7.5vw, 5.5rem);
  --radius: 4px;
  --radius-sm: 2px;
  --measure: 40rem;

  /* Motion */
  --alive-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --alive-duration: 0.7s;
  --alive-duration-mobile: 0.4s;
  --grain-opacity: 0.06;

  /* Mobile surface tokens (EDEN-MOBILE-REFINEMENT-v1) — used ≤720px only */
  --mobile-padding: 1.5rem; /* 24px */
  --mobile-section: 4.5rem; /* 72px */
  --mobile-small-section: 3rem; /* 48px */
  --mobile-h1: 3rem;
  --mobile-h1-tight: 2.85rem;
  --mobile-body: 1rem;
  --mobile-card-gap: 1.5rem; /* 24px; mission floor 32px applied in card stacks */
  --mobile-cta-h: 3.35rem; /* ~54px */
}

/* ===== css/components.css ===== */
/* components.css - layout, chrome, pages (pre-modular bulk) */
/* Eden Consultancy - public brand site
 * v27 dual-tone: deep paper + charcoal authority bands (not near-white document)
 * Surfaces: page · raised · muted · authority · footer
 * Accent: restrained Guardian Blue only (no ornamental gold language)
 * Freeze: same IA/copy; no forest, no invent metrics, no decorative SaaS motion
 */


*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  /* Solid paper on the root so rubber-band / overscroll never exposes foreign canvas */
  background-color: var(--bg);
  color-scheme: light;
  overscroll-behavior-y: none;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

html,
body {
  margin: 0;
  padding: 0;
  min-height: 100%;
  /* Match body ink - Safari/Chrome overscroll paints the root, not only body */
  background-color: var(--bg);
}

body {
  font-family: var(--sans);
  color: var(--ink);
  line-height: var(--leading, 1.7);
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  overscroll-behavior-y: none;
  overscroll-behavior: none;
  background-color: var(--bg);
  /* v23: no decorative gradients - paper authority */
  background-image: none;
}

a {
  color: var(--accent);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

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

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: absolute;
  left: 1rem;
  top: -3rem;
  z-index: 100;
  padding: 0.55rem 0.9rem;
  background: var(--ink);
  color: var(--bg);
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: 600;
}

.skip-link:focus {
  top: 1rem;
  outline: none;
}

.wrap {
  max-width: var(--wrap);
  width: 100%;
  margin: 0 auto;
  padding: 1.5rem 1.35rem 2.5rem;
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
  box-sizing: border-box;
}

/* Main grows so footer sits at the bottom of short pages (no white band below) */
main {
  flex: 1 0 auto;
}

/* - -  Header - -  */
.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.75rem;
  flex-wrap: nowrap;
  margin-bottom: 2.75rem;
  padding-block: 1.15rem 1.35rem;
  border-bottom: 1px solid var(--line-soft);
}

.mark {
  font-weight: 700;
  letter-spacing: 0.06em;
  font-size: 0.95rem;
  flex: 0 0 auto;
  min-width: 0;
  line-height: 1.2;
}

.mark a {
  color: inherit;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 2.75rem;
}

.mark a:hover {
  text-decoration: none;
  opacity: 0.92;
}

.mark span {
  color: var(--accent-soft);
  font-weight: 500;
  letter-spacing: 0.12em;
  font-size: 0.78rem;
}

.header-end {
  display: flex;
  align-items: center;
  gap: 1rem 1.35rem;
  flex-wrap: nowrap;
  margin-left: auto;
  min-width: 0;
}

.nav-primary {
  display: flex;
  gap: 0.25rem 0.1rem;
  flex-wrap: wrap;
  font-size: 0.875rem;
  align-items: center;
  min-width: 0;
}

.nav-primary a {
  color: var(--muted);
  padding: 0.45rem 0.55rem;
  min-height: 2.5rem;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  text-decoration: none;
  box-sizing: border-box;
  font-size: 0.8125rem;
  white-space: nowrap;
}

.nav-primary a:hover {
  color: var(--ink);
  background: rgba(255, 255, 255, 0.04);
  text-decoration: none;
}

.nav-primary a[aria-current="page"] {
  color: var(--ink);
  font-weight: 600;
  background: rgba(255, 255, 255, 0.06);
}

/* Always show Privacy/Terms in header (compact on narrow viewports). */
.nav-legal {
  display: flex;
  gap: 0.15rem;
  margin-left: 0.15rem;
  padding-left: 0.45rem;
  border-left: 1px solid var(--line-soft);
}

@media (min-width: 900px) {
  .nav-legal {
    margin-left: 0.25rem;
    padding-left: 0.65rem;
  }
}

/* Mid desktop: keep single baseline; allow gentle wrap only if viewport is tight */
@media (min-width: 721px) and (max-width: 960px) {
  .site-header {
    gap: 0.85rem 1.25rem;
  }

  .header-end {
    gap: 0.75rem 1rem;
  }

  .nav-primary a {
    padding-inline: 0.55rem;
  }
}

/* Staff door (never primary marketing CTA) */
.btn-staff-door {
  --po-border: rgba(196, 181, 140, 0.42);
  --po-border-hover: rgba(220, 205, 160, 0.72);
  --po-ink: #f0ebe0;
  --po-muted: #b8ae98;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.12rem;
  min-height: 2.75rem;
  padding: 0.5rem 1rem 0.55rem 1.05rem;
  border: 1px solid var(--po-border);
  border-radius: 8px;
  background:
    linear-gradient(165deg, rgba(36, 40, 48, 0.95) 0%, rgba(18, 22, 30, 0.98) 55%, rgba(12, 15, 20, 1) 100%);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.35) inset,
    0 1px 0 rgba(255, 255, 255, 0.04) inset,
    0 8px 24px rgba(0, 0, 0, 0.35);
  color: var(--po-ink);
  text-decoration: none;
  letter-spacing: 0.06em;
  line-height: 1.15;
  white-space: nowrap;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.btn-staff-door:hover {
  text-decoration: none;
  border-color: var(--po-border-hover);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.35) inset,
    0 1px 0 rgba(255, 255, 255, 0.06) inset,
    0 0 0 1px var(--bronze-glow),
    0 10px 28px rgba(0, 0, 0, 0.42),
    0 0 32px var(--bronze-glow);
  color: #faf6ec;
}

.btn-staff-door:focus-visible {
  outline: 2px solid rgba(196, 181, 140, 0.85);
  outline-offset: 3px;
}

.btn-staff-door__eyebrow {
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--po-muted);
}

.btn-staff-door__label {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8rem;
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.btn-staff-door__label::after {
  content: "→";
  font-weight: 500;
  opacity: 0.75;
  transition: transform 0.15s ease, opacity 0.15s ease;
}

.btn-staff-door:hover .btn-staff-door__label::after {
  transform: translateX(2px);
  opacity: 1;
}

/* - -  Hero - -  */
.hero {
  position: relative;
  padding: clamp(0.5rem, 2vw, 1.25rem) 0 clamp(2rem, 5vw, 3.25rem);
  margin-bottom: 0.5rem;
}

.hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bronze);
}

.hero__eyebrow::before {
  content: "";
  width: 1.5rem;
  height: 1px;
  background: var(--bronze);
  opacity: 0.7;
}

.hero h1 {
  font-family: var(--serif);
  font-size: clamp(2rem, 4.6vw, 3.15rem);
  line-height: 1.12;
  font-weight: 600;
  margin: 0 0 1.15rem;
  letter-spacing: -0.03em;
  max-width: 16ch;
  text-wrap: balance;
  color: #f4f7fb;
}

/* - -  Category thesis - -  */
.section--thesis {
  margin-top: 0.5rem;
}

.thesis-panel {
  padding: clamp(1.35rem, 3vw, 1.85rem) clamp(1.25rem, 3vw, 1.75rem);
  border-radius: calc(var(--radius) + 2px);
  border: 1px solid rgba(110, 168, 255, 0.16);
  background:
    linear-gradient(145deg, rgba(110, 168, 255, 0.07) 0%, transparent 42%),
    linear-gradient(180deg, rgba(21, 28, 38, 0.95), rgba(12, 16, 22, 0.98));
  box-shadow: none;
}

.thesis-panel .section__kicker {
  color: var(--accent-soft);
}

.thesis-panel h2 {
  font-family: var(--serif);
  font-size: clamp(1.4rem, 2.6vw, 1.85rem);
  font-weight: 600;
  margin: 0.35rem 0 0.85rem;
  letter-spacing: -0.02em;
  color: #f0f4f8;
}

.thesis-panel__lede {
  margin: 0 0 1.35rem;
  color: var(--ink-soft);
  font-size: 1.02rem;
  line-height: 1.65;
  max-width: 48rem;
}

.thesis-grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.thesis-cell {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.95rem 1rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--line-soft);
  background: rgba(8, 12, 18, 0.45);
}

.thesis-cell strong {
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bronze);
  font-weight: 650;
}

.thesis-cell span {
  font-size: 0.9rem;
  color: var(--muted);
  line-height: 1.45;
}

.grid--platform {
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

.card--accent {
  border-color: rgba(110, 168, 255, 0.2);
  box-shadow: 0 0 0 1px rgba(110, 168, 255, 0.06) inset;
}

.ownership-quote {
  font-family: var(--serif);
  font-size: 1.08rem;
  line-height: 1.55;
  color: #eef3f8 !important;
  letter-spacing: -0.01em;
}

.ownership-list {
  margin: 1rem 0 0;
  padding-left: 1.15rem;
  color: var(--ink-soft);
  font-size: 0.94rem;
  line-height: 1.55;
}

.ownership-list li {
  margin-bottom: 0.45rem;
}

.ownership-list li:last-child {
  margin-bottom: 0;
}

.focus-list--two {
  grid-template-columns: 1fr;
}

@media (min-width: 800px) {
  .focus-list--two {
    grid-template-columns: 1fr 1fr;
  }
}

.focus-list--two li strong {
  color: var(--ink);
  font-weight: 600;
}

.hero__lede {
  font-size: clamp(1.05rem, 2vw, 1.2rem);
  color: var(--ink-soft);
  max-width: 36rem;
  margin: 0 0 1.75rem;
  line-height: 1.65;
}

.hero__proofs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.65rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.hero__proofs li {
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: var(--muted);
  padding: 0.4rem 0.75rem;
  border: 1px solid var(--line-soft);
  border-radius: 999px;
  background: rgba(15, 20, 28, 0.55);
}

.hero__ribbon {
  margin: 1.35rem 0 0;
  max-width: 36rem;
  padding: 0.65rem 0.9rem;
  border-left: 3px solid var(--bronze);
  background: rgba(196, 181, 140, 0.08);
  color: var(--bronze-soft);
  font-size: 0.82rem;
  letter-spacing: 0.02em;
  line-height: 1.45;
}

/* Buyer bridge under hero CTAs - conversion without competing with primary Access CTA */
.hero__buyer-bridge {
  margin: 0.9rem 0 0;
  max-width: 36rem;
  font-size: 0.92rem;
  line-height: 1.5;
  color: var(--ink-soft);
}

.hero__buyer-bridge a {
  color: var(--ink-soft);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.hero__buyer-bridge a:hover {
  color: var(--ink);
}

/* - -  Sections - -  */
.section {
  margin: clamp(2.5rem, 6vw, 3.75rem) 0;
}

.section__head {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  margin-bottom: 1.35rem;
  max-width: 40rem;
}

.section__kicker {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

.section h2 {
  font-family: var(--serif);
  font-size: clamp(1.35rem, 2.4vw, 1.65rem);
  font-weight: 600;
  margin: 0;
  letter-spacing: -0.02em;
  color: #f0f4f8;
}

.section__intro {
  margin: 0.35rem 0 0;
  color: var(--muted);
  font-size: 0.98rem;
  max-width: 36rem;
}

/* Work grid */
.grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.card {
  position: relative;
  background: var(--bg-elevated);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  padding: 1.35rem 1.3rem 1.4rem;
  box-shadow: none;
  transition: border-color 0.18s ease;
}

.card:hover {
  border-color: var(--line);
  box-shadow: none;
}

.card__icon {
  width: 2.25rem;
  height: 2.25rem;
  display: grid;
  place-items: center;
  margin-bottom: 0.9rem;
  border-radius: 8px;
  border: 1px solid var(--line-soft);
  color: var(--accent-soft);
  background: rgba(110, 168, 255, 0.06);
}

.card__icon svg {
  width: 1.1rem;
  height: 1.1rem;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.card h3 {
  margin: 0 0 0.45rem;
  font-size: 1.02rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--ink);
}

.card p {
  margin: 0;
  color: var(--muted);
  font-size: 0.94rem;
  line-height: 1.55;
}

/* Focus list */
.focus-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.65rem;
}

.focus-list li {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
  padding: 0.95rem 1.1rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--line-soft);
  background: rgba(15, 20, 28, 0.45);
  color: var(--ink-soft);
  font-size: 0.96rem;
}

.focus-list li::before {
  content: "";
  flex-shrink: 0;
  width: 0.45rem;
  height: 0.45rem;
  margin-top: 0.45rem;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 3px rgba(110, 168, 255, 0.15);
}

/* Approach */
.approach-panel {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}

@media (min-width: 800px) {
  .approach-panel {
    grid-template-columns: 1.2fr 0.8fr;
    gap: 1.25rem;
  }
}

.approach-panel__body,
.approach-panel__note {
  padding: 1.35rem 1.4rem;
  border-radius: var(--radius);
  border: 1px solid var(--line-soft);
}

.approach-panel__body {
  background: linear-gradient(180deg, rgba(21, 28, 38, 0.9), rgba(12, 16, 22, 0.95));
  color: var(--ink-soft);
  font-size: 0.98rem;
}

.approach-panel__body p {
  margin: 0 0 0.85rem;
}

.approach-panel__body p:last-child {
  margin-bottom: 0;
}

.approach-panel__note {
  background: rgba(196, 181, 140, 0.06);
  border-color: rgba(196, 181, 140, 0.22);
  color: var(--bronze-soft);
  font-size: 0.9rem;
  line-height: 1.55;
}

.approach-panel__note strong {
  display: block;
  margin-bottom: 0.4rem;
  color: var(--bronze);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* Contact */
.contact-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}

.contact-list li {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 1rem 1.15rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--line-soft);
  background: rgba(15, 20, 28, 0.5);
}

.contact-list strong {
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--faint);
  font-weight: 600;
}

.contact-list a {
  font-size: 1rem;
  font-weight: 500;
  word-break: break-word;
}

/* Email chips (no mailto in HTML - avoids CF email-obfuscation breakage) */
.email-chip {
  display: inline-block;
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  font-size: 1rem;
  font-weight: 500;
  color: var(--accent);
  cursor: pointer;
  text-align: left;
  word-break: break-word;
}

.email-chip:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.email-chip:focus-visible {
  outline: 2px solid var(--bronze);
  outline-offset: 3px;
  border-radius: 4px;
}

.email-at {
  font: inherit;
}

.note {
  color: var(--faint);
  font-size: 0.88rem;
  margin: 1rem 0 0;
  max-width: 38rem;
}

/* - -  Footer - -  grounded charcoal band (not paper-on-paper) */
.site-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1.25rem;
  margin-top: auto;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 2rem max(1.25rem, calc(50vw - var(--wrap) / 2)) 1.5rem;
  border-top: none;
  background: var(--surface-footer);
  color: #a3a3a3;
  font-size: 0.88rem;
  flex-shrink: 0;
}

.site-footer a {
  color: #c4c4c4;
}

.site-footer a:hover {
  color: #f5f5f5;
}

.site-footer .site-footer__tag,
.site-footer strong {
  color: #e5e5e5;
}

.legal-links,
.staff {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin-top: 0.5rem;
}

.site-footer__tag {
  max-width: 18rem;
  text-align: right;
  color: #a3a3a3;
  font-size: 0.82rem;
  line-height: 1.45;
}

@media (max-width: 640px) {
  /* Header/nav rhythm owned by ≤720px block (v28.3) - only non-header here */
  .site-footer__tag {
    text-align: left;
    max-width: none;
  }

  .hero h1 {
    max-width: none;
  }
}

/* - -  Legal / prose pages - -  */
.page-title {
  font-family: var(--serif);
  font-size: clamp(1.75rem, 3.2vw, 2.15rem);
  margin: 0 0 1.25rem;
  letter-spacing: -0.02em;
  font-weight: 600;
}

.prose {
  max-width: 42rem;
}

.prose h2 {
  font-size: 1.05rem;
  font-weight: 600;
  margin: 1.75rem 0 0.65rem;
  color: var(--ink);
  letter-spacing: -0.01em;
}

.prose p,
.prose li {
  color: var(--ink-soft);
  font-size: 0.98rem;
}

.prose ul {
  padding-left: 1.2rem;
}

/* 404 */
.page-404 {
  text-align: left;
  padding: 2rem 0 3rem;
}

.page-404 h1 {
  font-family: var(--serif);
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  margin: 0 0 0.75rem;
}

.page-404 p {
  color: var(--muted);
  max-width: 28rem;
}

.page-404 .actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.page-404 .actions a {
  display: inline-flex;
  padding: 0.55rem 0.95rem;
  border-radius: 8px;
  border: 1px solid var(--line-soft);
  color: var(--ink);
  text-decoration: none;
  font-size: 0.9rem;
}

.page-404 .actions a:hover {
  border-color: rgba(110, 168, 255, 0.35);
  background: rgba(110, 168, 255, 0.06);
}

.email-plain {
  color: var(--accent);
  font-weight: 500;
  word-break: break-word;
}


/* Staff affordance is not a public login link on production brand */
.staff-note {
  color: var(--faint);
  font-size: 0.82rem;
}

/* Progressive enhancement: plain email when JS is unavailable */
.contact-list noscript .email-plain {
  display: inline-block;
  margin-top: 0.35rem;
  font-size: 0.9rem;
  color: var(--ink-soft, #c8c2b4);
  word-break: break-all;
}

/* - -  Public brand layout v15 - -  */

.hero__tagline {
  margin: 0 0 0.85rem;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  color: var(--bronze-soft);
}

.hero--declare h1 {
  font-family: var(--sans);
  font-weight: 650;
  letter-spacing: -0.02em;
  font-size: clamp(2rem, 5vw, 3.1rem);
  line-height: 1.12;
  text-transform: none;
}

.hero--declare h1 .hero-line {
  display: block;
}

.hero__body {
  max-width: 38rem;
  margin: 1.25rem 0 0;
  font-size: 1.05rem;
  color: var(--ink-soft);
  line-height: 1.7;
}

.hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin-top: 1.75rem;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.65rem 1.25rem;
  border-radius: 8px;
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.btn:hover {
  text-decoration: none;
}

.btn--primary {
  background: rgba(59, 130, 246, 0.14);
  border: 1px solid rgba(59, 130, 246, 0.45);
  color: var(--ink);
  box-shadow: 0 0 0 1px rgba(59, 130, 246, 0.08) inset;
}

.btn--primary:hover {
  background: rgba(59, 130, 246, 0.22);
  border-color: rgba(59, 130, 246, 0.7);
  box-shadow: 0 0 24px var(--accent-glow);
}

.btn--ghost {
  background: transparent;
  border: 1px solid var(--line);
  color: var(--ink-soft);
}

.btn--ghost:hover {
  border-color: rgba(242, 240, 235, 0.28);
  color: var(--ink);
  background: rgba(255, 255, 255, 0.03);
}

/* Contrast panels (legacy layout helpers) */
.diff-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

@media (min-width: 820px) {
  .diff-grid {
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
  }
}

.diff-panel {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--bg-elevated);
  padding: 1.25rem 1.35rem 1.4rem;
  min-height: 100%;
}

.diff-panel--shared {
  opacity: 0.92;
}

.diff-panel--highlight {
  border-color: rgba(59, 130, 246, 0.35);
  box-shadow: 0 0 0 1px rgba(59, 130, 246, 0.08) inset, 0 12px 40px rgba(0, 0, 0, 0.25);
}

.diff-panel__label {
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 0.85rem;
}

.diff-panel--highlight .diff-panel__label {
  color: var(--accent-soft);
}

.diff-drawer {
  border: 1px dashed rgba(139, 147, 159, 0.35);
  border-radius: 8px;
  padding: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.diff-drawer span {
  display: block;
  padding: 0.55rem 0.7rem;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.04);
  font-size: 0.88rem;
  color: var(--muted);
}

.diff-instances {
  display: flex;
  gap: 0.55rem;
  flex-wrap: wrap;
}

.diff-instance {
  flex: 1 1 5.5rem;
  min-height: 6.5rem;
  border: 1px solid rgba(59, 130, 246, 0.4);
  border-radius: 8px;
  background: rgba(8, 11, 15, 0.65);
  padding: 0.65rem;
  position: relative;
  box-shadow: 0 0 0 1px rgba(59, 130, 246, 0.12);
}

.diff-instance::after {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 8px;
  pointer-events: none;
  box-shadow: 0 0 12px rgba(59, 130, 246, 0.15);
  opacity: 0.85;
}

.diff-instance strong {
  display: block;
  font-size: 0.78rem;
  font-family: var(--mono);
  letter-spacing: 0.06em;
  color: var(--accent-soft);
  margin-bottom: 0.4rem;
}

.diff-instance ul {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.72rem;
  color: var(--muted);
  line-height: 1.45;
}

.diff-caption {
  margin: 0.9rem 0 0;
  font-size: 0.92rem;
  color: var(--ink-soft);
}

/* Architecture layer cards */
.layer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

@media (min-width: 900px) {
  .layer-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.layer-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--bg-elevated);
  padding: 1.25rem 1.2rem 1.35rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  position: relative;
  overflow: hidden;
}

.layer-card::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 2px;
  background: var(--layer-accent, var(--accent));
}

.layer-card:hover {
  transform: translateY(-4px);
  border-color: rgba(59, 130, 246, 0.45);
  box-shadow: 0 0 0 1px rgba(59, 130, 246, 0.15), 0 16px 36px rgba(0, 0, 0, 0.35);
}

.layer-card--primary {
  --layer-accent: var(--accent);
}

.layer-card--office {
  --layer-accent: #f2f0eb;
}

.layer-card--apps {
  --layer-accent: var(--bronze);
}

.layer-card__kicker {
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 0.5rem;
}

.layer-card h3 {
  margin: 0 0 0.45rem;
  font-size: 1.15rem;
}

.layer-card p {
  margin: 0 0 0.85rem;
  color: var(--ink-soft);
  font-size: 0.95rem;
}

.layer-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.layer-card__tags li {
  font-family: var(--mono);
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  color: var(--muted);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 0.25rem 0.55rem;
}

/* Reference office */
.ref-panel {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(165deg, rgba(17, 22, 28, 0.98), rgba(8, 11, 15, 0.95));
  padding: clamp(1.25rem, 3vw, 2rem);
}

.ref-panel h2 {
  margin: 0 0 0.75rem;
  font-size: clamp(1.35rem, 2.8vw, 1.85rem);
  letter-spacing: 0.04em;
}

.ref-panel p {
  color: var(--ink-soft);
  max-width: 42rem;
}

.ref-panel__meta {
  margin-top: 1.1rem;
  font-family: var(--mono);
  font-size: 0.78rem;
  color: var(--accent-soft);
  letter-spacing: 0.04em;
}

/* Audience cards */
.audience-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.85rem;
}

@media (min-width: 700px) {
  .audience-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1000px) {
  .audience-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.audience-card {
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-sm);
  background: var(--bg-elevated);
  box-shadow: none;
  padding: 1.1rem 1.15rem;
  min-height: 7.5rem;
}

.audience-card h3 {
  margin: 0 0 0.45rem;
  font-family: var(--mono);
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink);
}

.audience-card p {
  margin: 0;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.55;
}

/* Promise strip */
.promise {
  text-align: center;
  padding: clamp(1.5rem, 4vw, 2.75rem) 0.5rem;
}

.promise h2 {
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  letter-spacing: 0.06em;
  margin: 0 0 1.5rem;
  text-transform: uppercase;
}

.promise-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem 1.5rem;
  max-width: 36rem;
  margin: 0 auto 1.5rem;
  text-align: left;
}

.promise-cols span {
  color: var(--ink-soft);
  font-size: 0.98rem;
}

.promise__foot {
  max-width: 32rem;
  margin: 0 auto;
  color: var(--accent-soft);
  font-size: 0.95rem;
  line-height: 1.65;
}

/* Technical trust / verify block */
.verify-block {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface-muted, var(--bg-alt, #ddd5c6));
  padding: 1.25rem 1.2rem 1.35rem;
  font-family: var(--mono);
  font-size: 0.82rem;
  line-height: 1.65;
  color: var(--ink-soft);
  overflow-x: auto;
}

.verify-block .cmd {
  color: var(--ink-soft);
  margin-bottom: 0.65rem;
}

.verify-block .ok {
  color: var(--success);
}

.verify-note {
  margin-top: 1rem;
  color: var(--ink-soft);
  font-family: var(--sans);
  font-size: 0.98rem;
  max-width: 40rem;
}

/* Inner pages */
.page-hero {
  padding: 0.5rem 0 1.75rem;
  border-bottom: 1px solid var(--line-soft);
  margin-bottom: 2rem;
}

.page-hero__kicker {
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent-soft);
  margin: 0 0 0.75rem;
}

.page-hero h1 {
  margin: 0 0 0.75rem;
  font-size: clamp(1.75rem, 3.5vw, 2.4rem);
  letter-spacing: -0.02em;
  line-height: 1.15;
}

.page-hero p {
  margin: 0;
  max-width: 40rem;
  color: var(--ink-soft);
  font-size: 1.05rem;
}

.prose-block {
  max-width: 42rem;
}

.prose-block h2 {
  margin: 2rem 0 0.65rem;
  font-size: 1.25rem;
}

.prose-block p,
.prose-block li {
  color: var(--ink-soft);
  line-height: 1.7;
}

.prose-block ul {
  padding-left: 1.15rem;
}

.site-footer__nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 1.5rem;
  margin: 1.25rem 0 0.5rem;
  font-size: 0.85rem;
}

@media (min-width: 800px) {
  .site-footer__nav {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Nav chrome colors for footer are SSOT at file end (charcoal band).
   Do not set paper-ink tokens here - they vanish on --surface-footer. */
.site-footer__nav strong {
  display: block;
  font-family: var(--mono);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 0.45rem;
}

.site-footer__nav a {
  display: block;
  text-decoration: none;
  padding: 0.15rem 0;
}

.reveal {
  animation: si-fade-up 0.45s ease both;
}

@keyframes si-fade-up {
  from {
    opacity: 0;
    transform: translateY(28px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    animation: none;
  }
  .layer-card:hover {
    transform: none;
  }
}

/* - -  Public product stack (company → platform → apps) - -  */
.product-stack {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  max-width: 40rem;
}

.product-stack__tier {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--bg-elevated);
  padding: 1.15rem 1.25rem 1.25rem;
}

.product-stack__tier--company {
  border-color: rgba(201, 162, 39, 0.35);
}

.product-stack__tier--platform {
  border-color: rgba(242, 240, 235, 0.22);
}

.product-stack__tier--apps {
  border-color: rgba(59, 130, 246, 0.35);
}

.product-stack__label {
  margin: 0 0 0.35rem;
  font-family: var(--mono);
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}

.product-stack__tier h3 {
  margin: 0 0 0.4rem;
  font-size: 1.15rem;
  letter-spacing: 0.02em;
}

.product-stack__tier > p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.95rem;
  line-height: 1.55;
}

.product-stack__arrow {
  text-align: center;
  color: var(--accent-soft);
  font-size: 1.25rem;
  line-height: 1.6;
  padding: 0.15rem 0;
  list-style: none;
}

.product-stack__apps {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  list-style: none;
  margin: 0.85rem 0 0.65rem;
  padding: 0;
}

.product-stack__apps li {
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 0.3rem 0.65rem;
  background: rgba(8, 11, 15, 0.45);
}

.product-stack__note {
  margin: 0.35rem 0 0 !important;
  font-size: 0.88rem !important;
  color: var(--muted) !important;
}


/* - -  Advisory brand v17: space, outcomes, approach - -  */
.hero--spacious {
  padding: clamp(1.5rem, 5vw, 3.5rem) 0 clamp(2.5rem, 6vw, 4.5rem);
}

.hero--spacious h1,
.hero--declare.hero--spacious h1 {
  max-width: 18ch;
  font-size: clamp(2.15rem, 5.2vw, 3.35rem);
  line-height: 1.1;
  letter-spacing: -0.028em;
}

.hero__body {
  max-width: 40rem;
  font-size: 1.08rem;
  line-height: 1.75;
}

.page-hero--spacious {
  padding-bottom: 1.75rem;
}

.page-hero--spacious h1 {
  max-width: 18ch;
  font-size: clamp(1.85rem, 4vw, 2.75rem);
  line-height: 1.15;
}

.section {
  margin-top: clamp(2.5rem, 5vw, 4rem);
}

.section__head h2 {
  letter-spacing: -0.02em;
  max-width: 22ch;
}

.outcome-table {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  background: rgba(12, 16, 22, 0.65);
}

.outcome-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.35rem 1.5rem;
  padding: 1.15rem 1.25rem;
  border-top: 1px solid var(--line-soft);
}

.outcome-row:first-child {
  border-top: 0;
}

@media (min-width: 720px) {
  .outcome-row {
    grid-template-columns: minmax(12rem, 0.42fr) 1fr;
    align-items: start;
    padding: 1.25rem 1.5rem;
  }
}

.outcome-row__service {
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--ink);
  letter-spacing: -0.01em;
}

.outcome-row__result {
  color: var(--ink-soft);
  font-size: 0.95rem;
  line-height: 1.55;
}

.outcome-table--detail .outcome-row__result {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.outcome-table--detail .outcome-row__result strong {
  color: var(--ink);
  font-weight: 600;
}

.outcome-table--detail .outcome-row__result span {
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.55;
}

.approach-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.85rem;
  grid-template-columns: 1fr;
}

@media (min-width: 800px) {
  .approach-steps {
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
  }
}

.approach-steps li {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 1.25rem 1.15rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(17, 22, 28, 0.75);
  min-height: 100%;
}

.approach-steps__n {
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  color: var(--bronze-soft);
}

.approach-steps strong {
  font-size: 1.05rem;
  letter-spacing: -0.01em;
  color: var(--ink);
}

.approach-steps span {
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.55;
}

/* v23: no body wash - paper is the authority (legacy dark gradient removed) */
body {
  background-color: var(--bg);
  background-image: none;
}


/* - -  Proof layer v18 - -  */
.process-flow {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  max-width: 36rem;
}

.process-flow > li:not(.process-flow__arrow) {
  padding: 1.15rem 1.25rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(17, 22, 28, 0.8);
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.process-flow__n {
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  color: var(--bronze-soft);
}

.process-flow strong {
  font-size: 1.1rem;
  color: var(--ink);
}

.process-flow span {
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.55;
}

.process-flow__arrow {
  text-align: center;
  color: var(--faint);
  font-size: 1.1rem;
  line-height: 1.6;
  padding: 0.15rem 0;
  list-style: none;
}

.case-blocks {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  max-width: 42rem;
}

.case-block {
  padding: 1.25rem 1.35rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(17, 22, 28, 0.55);
}

.case-block h2 {
  margin: 0 0 0.65rem;
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bronze-soft);
  font-weight: 650;
}

.case-block p,
.case-block ul {
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.65;
}

.case-block ul {
  padding-left: 1.15rem;
}

.case-block li {
  margin-bottom: 0.4rem;
}

.insight-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid var(--line);
}

.insight-row {
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--line);
}

.insight-row h2,
.insight-row h3 {
  margin: 0 0 0.4rem;
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: -0.015em;
}

.insight-row h2 a,
.insight-row h3 a {
  color: var(--ink);
  text-decoration: none;
}

.insight-row h2 a:hover,
.insight-row h3 a:hover {
  color: var(--accent-soft);
  text-decoration: underline;
}

.insight-row p {
  margin: 0;
  color: var(--muted);
  max-width: 40rem;
}

.insight-list--compact .insight-row {
  padding: 0.9rem 0;
}

.card__eyebrow {
  margin: 0 0 0.4rem;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bronze-soft);
}

.card__meta {
  margin: 0.85rem 0 0;
  font-size: 0.9rem;
}

.card h3 a {
  color: inherit;
  text-decoration: none;
}

.card h3 a:hover {
  color: var(--accent-soft);
  text-decoration: underline;
}

.leader-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.25rem 1.5rem;
  padding: 1.5rem 1.5rem 1.65rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(17, 22, 28, 0.7);
  max-width: 44rem;
}

.leader-card__mark {
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 650;
  letter-spacing: 0.06em;
  color: var(--ink);
  border: 1px solid rgba(201, 162, 39, 0.35);
  background: rgba(201, 162, 39, 0.08);
}

.leader-card h3 {
  margin: 0 0 0.2rem;
  font-size: 1.25rem;
}

.leader-card__role {
  margin: 0 0 0.85rem;
  color: var(--bronze-soft);
  font-size: 0.9rem;
  letter-spacing: 0.04em;
}

.leader-card__body p {
  margin: 0 0 0.75rem;
  color: var(--ink-soft);
  line-height: 1.65;
}

.leader-card__body p:last-child {
  margin-bottom: 0;
}

.article__body {
  max-width: 40rem;
}

@media (max-width: 560px) {
  .leader-card {
    grid-template-columns: 1fr;
  }
}


/* - -  Freeze polish v19: rhythm, a11y, mobile - -  */
.wrap {
  width: min(100% - 2rem, var(--wrap));
  margin-inline: auto;
}

@media (min-width: 720px) {
  .wrap {
    width: min(100% - 3rem, var(--wrap));
  }
}

/* padding-block owned by base .site-header (desktop rhythm) */

.section {
  margin-top: var(--space-section, clamp(2.75rem, 6vw, 4.5rem));
}

.section__intro {
  max-width: 38rem;
  line-height: 1.7;
}

.page-hero p,
.hero__body {
  line-height: 1.75;
}

.btn {
  min-height: 2.85rem;
  padding-inline: 1.35rem;
}

.btn:focus-visible,
.email-chip:focus-visible,
.nav-primary a:focus-visible {
  outline: 2px solid var(--bronze);
  outline-offset: 3px;
}

.note--callout {
  padding: 1rem 1.15rem;
  border-left: 2px solid rgba(201, 162, 39, 0.45);
  background: rgba(17, 22, 28, 0.55);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  color: var(--ink-soft);
  line-height: 1.65;
}

/* Prefer fewer competing glows - identity through restraint */
.card {
  transition: border-color 0.2s ease, transform 0.2s ease;
}

@media (prefers-reduced-motion: reduce) {
  .card {
    transition: none;
  }
}

@media (max-width: 640px) {
  .hero--spacious h1,
  .hero--declare.hero--spacious h1 {
    font-size: clamp(1.85rem, 8vw, 2.35rem);
  }
  .outcome-row {
    padding: 1rem 1.05rem;
  }
}


/* - -  Breathe pass v20: advisory firm, less agency grid - -  */
.section--pov {
  padding-top: clamp(1rem, 3vw, 2rem);
  max-width: 40rem;
}

.pov-title {
  font-family: var(--serif);
  font-size: clamp(1.55rem, 3.2vw, 2.15rem);
  font-weight: 600;
  line-height: 1.28;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 0.5rem 0 1.25rem;
  max-width: 22ch;
}

.pov-lede {
  margin-bottom: 1rem;
}

.pov-list {
  margin: 0;
  padding-left: 1.15rem;
  color: var(--ink-soft);
  line-height: 1.75;
  max-width: 36rem;
}

.pov-list li {
  margin-bottom: 0.55rem;
}

.outcome-table--quiet {
  border-color: rgba(30, 39, 51, 0.9);
  background: transparent;
}

.outcome-table--quiet .outcome-row {
  background: transparent;
}

.section-link {
  margin: 1.5rem 0 0;
  font-size: 0.95rem;
  color: var(--muted);
}

.section-link a {
  color: var(--accent-soft);
}

.experience-list {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--line);
}

.experience-row {
  display: grid;
  gap: 0.35rem 1.5rem;
  padding: 1.35rem 0;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  color: inherit;
}

.experience-row:hover {
  text-decoration: none;
}

.experience-row:hover .experience-row__title {
  color: var(--accent-soft);
}

.experience-row__meta {
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bronze-soft);
}

.experience-row__title {
  font-size: 1.05rem;
  color: var(--ink);
  line-height: 1.45;
  letter-spacing: -0.01em;
  transition: color 0.15s ease;
}

@media (min-width: 720px) {
  .experience-row {
    grid-template-columns: 11rem 1fr;
    align-items: baseline;
  }
}

.briefing-groups {
  display: grid;
  gap: 2rem 2.5rem;
}

@media (min-width: 800px) {
  .briefing-groups {
    grid-template-columns: repeat(3, 1fr);
  }
}

.briefing-group h3 {
  margin: 0 0 0.85rem;
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bronze-soft);
  font-weight: 650;
}

.briefing-group ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.briefing-group li {
  margin-bottom: 0.65rem;
  line-height: 1.45;
}

.briefing-group a {
  color: var(--ink-soft);
  text-decoration: none;
}

.briefing-group a:hover {
  color: var(--accent-soft);
  text-decoration: underline;
}

.briefing-cat {
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bronze-soft);
  font-weight: 650;
  margin: 0 0 0.5rem;
}

.section--close {
  padding-bottom: clamp(2rem, 5vw, 3.5rem);
  max-width: 36rem;
}

.section--close h2 {
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  letter-spacing: -0.02em;
  margin: 0 0 1rem;
}

/* Extra air between major homepage sections */
main > .section {
  margin-top: clamp(3rem, 7vw, 5rem);
}

main > .hero + .section {
  margin-top: clamp(2.5rem, 6vw, 4rem);
}

/* - -  Editorial pass v21: institution feel, less agency - -  */
.hero--editorial h1 {
  max-width: 18ch;
  font-size: clamp(1.85rem, 4.2vw, 2.65rem);
  line-height: 1.18;
}

.hero--editorial .hero__body {
  max-width: 34rem;
  font-size: 1.08rem;
  line-height: 1.7;
  color: var(--ink-soft);
}

.pov-title {
  max-width: 24ch;
  font-size: clamp(1.65rem, 3.4vw, 2.35rem);
}

.help-grid {
  display: grid;
  gap: 1.75rem 2.5rem;
  border-top: 1px solid var(--line);
  padding-top: 1.75rem;
}

@media (min-width: 720px) {
  .help-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.help-item h3 {
  margin: 0 0 0.45rem;
  font-size: 1.05rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  color: var(--ink);
}

.help-item p {
  margin: 0;
  max-width: 28rem;
  color: var(--ink-soft);
  line-height: 1.6;
  font-size: 0.98rem;
}

.section--approach {
  max-width: 40rem;
}

.approach-list {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  border-top: 1px solid var(--line);
}

.approach-list > li {
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  gap: 0.75rem 1.25rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--line);
  align-items: start;
}

.approach-list__n {
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  color: var(--bronze-soft);
  font-weight: 650;
  padding-top: 0.2rem;
}

.approach-list h3 {
  margin: 0 0 0.3rem;
  font-size: 1.02rem;
  font-weight: 650;
  color: var(--ink);
}

.approach-list p {
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.55;
  font-size: 0.96rem;
}

.section--briefing .section__head {
  max-width: 36rem;
}

.briefing-editorial {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
}

.briefing-editorial li {
  border-bottom: 1px solid var(--line);
}

.briefing-editorial a {
  display: block;
  padding: 1.35rem 0;
  text-decoration: none;
  color: inherit;
}

.briefing-editorial a:hover {
  text-decoration: none;
}

.briefing-editorial a:hover .briefing-editorial__title {
  color: var(--accent-soft);
}

.briefing-editorial__title {
  display: block;
  font-size: 1.08rem;
  letter-spacing: -0.015em;
  color: var(--ink);
  line-height: 1.4;
  transition: color 0.15s ease;
}

.briefing-editorial__hint {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.92rem;
  color: var(--muted);
  line-height: 1.45;
}

@media (min-width: 900px) {
  .hero--editorial h1 {
    max-width: 16ch;
  }
}

/* Briefing index - signature asset framing (v21 prep; full polish = v22 HELD) */
.page-hero--briefing h1 {
  max-width: 22ch;
  font-size: clamp(1.55rem, 3.2vw, 2.25rem);
  line-height: 1.22;
}

.page-hero--briefing p {
  max-width: 36rem;
}

.obs-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
}

.obs-list > li {
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  gap: 0.75rem 1.25rem;
  padding: 1.4rem 0;
  border-bottom: 1px solid var(--line);
  align-items: start;
}

.obs-list__n {
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  color: var(--bronze-soft);
  font-weight: 650;
  padding-top: 0.25rem;
}

.obs-list h3 {
  margin: 0 0 0.35rem;
  font-size: 1.08rem;
  font-weight: 650;
  letter-spacing: -0.015em;
  line-height: 1.35;
}

.obs-list h3 a {
  color: var(--ink);
  text-decoration: none;
}

.obs-list h3 a:hover {
  color: var(--accent-soft);
}

.obs-list p {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.5;
  max-width: 36rem;
}

/* - -  v22 Institutional Digital Presence - -  */
.hero--institution h1 {
  max-width: 18ch;
  font-size: clamp(1.9rem, 4.4vw, 2.75rem);
  line-height: 1.16;
  letter-spacing: -0.03em;
}

.hero-line-soft {
  color: var(--ink-soft);
  font-weight: 500;
}

.hero--institution .hero__body {
  max-width: 32rem;
  font-size: 1.1rem;
  line-height: 1.65;
}

.hero__domains {
  margin: 0 0 1.5rem;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bronze-soft);
  font-weight: 650;
}

/* Fragmented → Aligned micro visual */
.section--align {
  max-width: 36rem;
  padding-top: 0.5rem;
}

.align-visual {
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 1.5rem 1.35rem;
  background: var(--bg-elevated);
}

.align-visual__row {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  flex-wrap: wrap;
}

.align-visual__label {
  min-width: 5.5rem;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}

.align-visual__arrow {
  color: var(--faint);
  padding: 0.45rem 0 0.45rem 5.5rem;
  font-size: 0.9rem;
}

.align-dot,
.align-box,
.align-tri {
  display: inline-block;
  width: 0.85rem;
  height: 0.85rem;
  opacity: 0.85;
}

.align-dot {
  border-radius: 50%;
  background: var(--bronze-soft);
}

.align-box {
  background: var(--accent-soft);
  opacity: 0.55;
}

.align-tri {
  width: 0;
  height: 0;
  border-left: 0.45rem solid transparent;
  border-right: 0.45rem solid transparent;
  border-bottom: 0.8rem solid var(--ink-soft);
  opacity: 0.7;
  background: transparent;
}

.align-chain {
  display: inline-flex;
  align-items: center;
  gap: 0;
}

.align-link {
  display: inline-block;
  width: 1.35rem;
  height: 1px;
  background: var(--bronze-soft);
  opacity: 0.7;
  margin: 0 0.15rem;
}

.align-caption {
  margin: 0.85rem 0 0;
  font-size: 0.92rem;
  color: var(--muted);
  max-width: 32rem;
}

@media (prefers-reduced-motion: no-preference) {
  .align-visual__row--after .align-link {
    animation: eom-draw 1.2s ease 0.2s both;
  }
}

@keyframes eom-draw {
  from {
    transform: scaleX(0);
    opacity: 0;
  }
  to {
    transform: scaleX(1);
    opacity: 0.7;
  }
}

/* Numbered editorial areas (not SaaS cards) */
.nav-areas {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
}

.nav-areas > li {
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  gap: 0.75rem 1.25rem;
  padding: 1.3rem 0;
  border-bottom: 1px solid var(--line);
}

.nav-areas__n {
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  color: var(--bronze-soft);
  font-weight: 650;
  padding-top: 0.2rem;
}

.nav-areas h3 {
  margin: 0 0 0.3rem;
  font-size: 1.05rem;
  font-weight: 650;
  letter-spacing: -0.01em;
}

.nav-areas p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.96rem;
  line-height: 1.55;
  max-width: 32rem;
}

.nav-areas--page {
  margin: 0 0 clamp(2rem, 5vw, 3rem);
}

/* Methodology vertical flow */
.method-flow {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  max-width: 20rem;
}

.method-flow > li:not(.method-flow__join) {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  padding: 0.55rem 0;
}

.method-flow__n {
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  color: var(--bronze-soft);
  font-weight: 650;
  min-width: 1.75rem;
}

.method-flow strong {
  font-size: 1.05rem;
  letter-spacing: -0.01em;
  font-weight: 650;
}

.method-flow__join {
  color: var(--faint);
  padding: 0 0 0 0.35rem;
  font-size: 0.85rem;
  line-height: 1;
}

/* Eden Operating Model */
.section--framework {
  max-width: 40rem;
}

.eom {
  margin-top: 1.75rem;
  padding: 2rem 1.25rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: transparent;
  text-align: center;
}

.eom__node {
  display: inline-block;
  font-size: 0.92rem;
  letter-spacing: 0.04em;
  color: var(--ink);
  font-weight: 600;
  padding: 0.35rem 0.75rem;
}

.eom__node--lead {
  font-family: var(--serif);
  font-size: 1.15rem;
  letter-spacing: -0.01em;
}

.eom__node--base {
  color: var(--bronze-soft);
  font-size: 0.88rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.eom__spine {
  width: 1px;
  height: 1.15rem;
  margin: 0.15rem auto;
  background: var(--line);
}

.eom__row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.15rem 0.35rem;
}

.eom__dash {
  color: var(--faint);
  font-size: 0.9rem;
}

.framework-caption {
  margin: 1rem 0 0;
  font-size: 0.92rem;
  color: var(--muted);
  max-width: 34rem;
  line-height: 1.55;
}

/* - -  v23 Visual authority (Warm Paper institutional) - -  */
/* Audit: EDEN-V23-VISUAL-AUTHORITY-AUDIT-v1 */

.hero--institution h1,
.hero--declare h1,
.page-hero h1,
.pov-title,
.section--close h2 {
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: -0.02em;
}

.hero--v23 {
  padding-top: clamp(4rem, 12vw, 7.5rem);
  padding-bottom: clamp(3.5rem, 9vw, 6rem);
  max-width: 52rem;
}

.hero--v23 .hero__eyebrow {
  font-family: var(--sans);
  font-size: 0.7rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
  margin-bottom: 2.25rem;
}

.hero--v23 h1 {
  /* ~700-850px institutional idea width */
  max-width: min(52rem, 85vw);
  width: 100%;
  font-size: clamp(2.4rem, 5.2vw, 3.55rem);
  line-height: 1.14;
  color: var(--ink);
  margin: 0 0 2rem;
}

.hero--v23 .hero-line-soft {
  display: block;
  margin-top: 0.45em;
  color: var(--ink);
  font-weight: 400;
}

.hero--v23 .hero__body {
  /* narrower than headline */
  max-width: 26rem;
  font-size: 1.02rem;
  line-height: 1.7;
  color: var(--ink-soft);
  margin-bottom: 2.5rem;
}

.hero--v23 .hero__ctas {
  gap: 1.25rem;
  align-items: center;
}

.hero--v23 .hero__domains {
  display: none;
}

/* Quiet CTA - conversation, not conversion */
.btn--text {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-family: var(--sans);
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--ink);
  background: none;
  border: none;
  padding: 0.25rem 0;
  letter-spacing: 0.01em;
  text-decoration: none;
  border-bottom: 1px solid transparent;
}

.btn--text:hover {
  color: var(--accent);
  border-bottom-color: var(--accent);
  text-decoration: none;
}

.btn--text .btn--text__arrow {
  transition: transform 0.25s ease;
}

.btn--text:hover .btn--text__arrow {
  transform: translateX(3px);
}

.btn--ghost-quiet {
  font-size: 0.9rem;
  color: var(--muted);
  background: none;
  border: none;
  padding: 0.25rem 0;
  text-decoration: none;
}

.btn--ghost-quiet:hover {
  color: var(--ink);
  text-decoration: none;
}

/* Editorial section breathing - expensive space */
.section {
  padding-top: var(--space-section);
  padding-bottom: var(--space-section);
}

.section__kicker {
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
  margin-bottom: 1rem;
}

.section__head {
  margin-bottom: 2rem;
  max-width: 36rem;
}

.section__intro {
  max-width: 28rem;
  color: var(--ink-soft);
}

/* Quiet page entry (respect reduced-motion) */
@media (prefers-reduced-motion: no-preference) {
  .hero--v23,
  .page-hero--spacious,
  .section--align,
  .section--framework,
  .section--briefing,
  .section--briefing-index {
    animation: v23-enter 0.55s ease both;
  }
}

@keyframes v23-enter {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

/* Experience: ledger-shaped rows, not portfolio cards */
.exp-ledger {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
}

.exp-ledger > li {
  padding: 1.75rem 0;
  border-bottom: 1px solid var(--line);
  max-width: 40rem;
}

.exp-ledger__meta {
  display: block;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 0.5rem;
}

.exp-ledger h3 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 1.35rem;
  margin: 0 0 0.75rem;
  letter-spacing: -0.015em;
}

.exp-ledger h3 a {
  color: var(--ink);
}

.exp-ledger h3 a:hover {
  color: var(--accent);
}

.exp-ledger__grid {
  display: grid;
  gap: 0.45rem 1.25rem;
  font-size: 0.92rem;
  line-height: 1.5;
  color: var(--ink-soft);
}

.exp-ledger__grid dt {
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--faint);
  margin: 0.55rem 0 0.15rem;
}

.exp-ledger__grid dd {
  margin: 0;
  max-width: 34rem;
}

/* About philosophy stack */
.about-stack {
  max-width: 36rem;
}

.about-stack h2 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 1.5rem;
  margin: 2.5rem 0 0.75rem;
  letter-spacing: -0.02em;
}

.about-stack h2:first-child {
  margin-top: 0;
}

.about-stack p {
  color: var(--ink-soft);
  line-height: 1.7;
  max-width: 32rem;
}

/* Light-theme surface overrides (legacy dark hard-codes) */
.align-visual {
  background: var(--bg-elevated);
  border-color: var(--line);
  padding: 2rem 1.5rem;
}

/* Architect's drawing - not consulting framework graphic */
.eom {
  background: transparent;
  border: none;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  padding: 2.75rem 0.5rem 3rem;
  max-width: 28rem;
  margin-left: auto;
  margin-right: auto;
}

.eom--blueprint .eom__row--mid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2.5rem 3.5rem;
  margin: 0.35rem 0 0.15rem;
}

.eom--blueprint .eom__node {
  font-weight: 500;
  letter-spacing: 0.06em;
  font-size: 0.88rem;
  text-transform: none;
  padding: 0.2rem 0;
  color: var(--ink-soft);
}

.eom--blueprint .eom__node--lead {
  font-family: var(--serif);
  font-size: 1.35rem;
  letter-spacing: -0.02em;
  color: var(--ink);
  font-weight: 400;
  text-transform: none;
}

.eom--blueprint .eom__node--pair {
  font-size: 0.92rem;
  letter-spacing: 0.04em;
}

.eom--blueprint .eom__bridge {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin: 0.85rem 0;
  color: var(--ink);
  font-size: 0.92rem;
  letter-spacing: 0.04em;
}

.eom--blueprint .eom__bridge-line {
  flex: 1;
  max-width: 4.5rem;
  height: 1px;
  background: var(--ink);
  opacity: 0.28;
}

.eom--blueprint .eom__spine {
  background: var(--ink);
  opacity: 0.18;
  height: 1.75rem;
  width: 1px;
}

.eom--blueprint .eom__node--base {
  text-transform: none;
  letter-spacing: 0.04em;
  color: var(--muted);
  font-size: 0.88rem;
}

.framework-caption {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

.btn--primary {
  background: var(--ink);
  color: var(--bg);
  border-color: var(--ink);
  border-radius: var(--radius-sm);
  font-weight: 550;
  letter-spacing: 0.01em;
}

.btn--primary:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
  text-decoration: none;
}

.btn--ghost {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
}

.btn--ghost:hover {
  border-color: var(--ink);
  text-decoration: none;
}

.site-header {
  border-bottom-color: var(--line);
}

.mark a {
  color: var(--ink);
  letter-spacing: 0.12em;
  font-size: 0.78rem;
  font-weight: 650;
}

.nav-primary a {
  color: var(--ink-soft);
  font-size: 0.88rem;
}

.nav-primary a:hover,
.nav-primary a[aria-current="page"] {
  color: var(--ink);
}

.nav-legal {
  display: none;
}

/* Paper-era residual: do not recolor charcoal footer with muted ink.
   Footer contrast SSOT lives at end of this file. */
.site-footer {
  border-top: none;
}

.experience-row,
.briefing-editorial a,
.obs-list > li {
  border-color: var(--line);
}

.experience-row:hover,
.briefing-editorial a:hover {
  background: rgba(232, 228, 219, 0.45);
}

/* Institutional pillars (How Eden Helps) */
.pillars {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
}

.pillars > li {
  padding: clamp(1.75rem, 4vw, 2.5rem) 0;
  border-bottom: 1px solid var(--line);
  max-width: 36rem;
}

.pillars h2,
.pillars h3 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(1.5rem, 3vw, 1.85rem);
  margin: 0 0 0.65rem;
  letter-spacing: -0.02em;
}

.pillars p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 1.05rem;
  line-height: 1.6;
  max-width: 32rem;
}

/* Align visual - operating domains */
.align-visual--v23 .align-domains {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.align-visual--v23 .align-domains--after {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  font-family: var(--serif);
  text-transform: none;
  letter-spacing: -0.01em;
  font-size: 1rem;
  color: var(--ink);
}

.align-visual--v23 .align-domains--after span {
  display: block;
  padding-left: 0.85rem;
  border-left: 1px solid var(--ink);
  opacity: 0.85;
}

@media (prefers-reduced-motion: no-preference) {
  .align-visual--v23 .align-domains--after span {
    animation: v23-fade 0.9s ease both;
  }
  .align-visual--v23 .align-domains--after span:nth-child(2) { animation-delay: 0.08s; }
  .align-visual--v23 .align-domains--after span:nth-child(3) { animation-delay: 0.16s; }
  .align-visual--v23 .align-domains--after span:nth-child(4) { animation-delay: 0.24s; }
  .align-visual--v23 .align-domains--after span:nth-child(5) { animation-delay: 0.32s; }
}

@keyframes v23-fade {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 0.85; transform: none; }
}

/* Briefing memo index */
.page-hero--briefing h1 {
  max-width: 22ch;
  font-size: clamp(2rem, 4.5vw, 3rem);
  line-height: 1.12;
}

.obs-list__n {
  font-family: var(--sans);
  color: var(--bronze-soft);
}

.obs-list h3 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 1.35rem;
  letter-spacing: -0.015em;
}

.obs-list h3 a {
  color: var(--ink);
}

.obs-list h3 a:hover {
  color: var(--accent);
}

/* Staff door: single SSOT is the gold/obsidian block near top of this file.
   Do NOT rebind to white paper here - that erased the institutional gold door. */

/* Hard-coded dark-theme leftovers → raised paper, not pure white */
.card,
.outcome-row,
.process-step,
.insight-row,
.case-block,
.audience-card {
  background: var(--bg-elevated) !important;
  color: var(--ink) !important;
  border-color: var(--line-soft) !important;
  box-shadow: none !important;
}

.card h2,
.card h3,
.outcome-row strong,
.insight-row__title {
  color: var(--ink) !important;
}

/* Skip link on paper */
.skip-link {
  background: var(--ink);
  color: var(--bg);
}

/* v23 final force: paper canvas wins over any residual dark hard-codes on shell */
html,
body {
  background-color: var(--bg) !important;
  background-image: none !important;
  color: var(--ink);
}

.wrap {
  background: transparent;
}

/* Nav mark: force readable accent on paper */
.mark a {
  color: var(--ink) !important;
}

.mark a span {
  color: var(--accent) !important;
  font-weight: 500;
}

/* Mobile header ≤720: CSS grid (not display:contents).
 * Row1: mark | staff door. Row2: full nav wrap. Staff always visible. */
@media (max-width: 720px) {
  .site-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "mark staff"
      "nav nav";
    align-items: center;
    column-gap: 0.75rem;
    row-gap: 0.65rem;
    padding-block: 1rem 1.1rem;
    padding-right: 0;
    margin-bottom: 2rem;
  }

  .mark {
    grid-area: mark;
    min-width: 0;
    flex: none;
  }

  .mark a {
    min-height: 2.75rem;
  }

  .header-end {
    display: contents;
    margin-left: 0;
  }

  .btn-staff-door {
    grid-area: staff;
    position: static !important;
    z-index: auto;
    justify-self: end;
    margin-left: 0;
    min-width: 3.5rem;
    min-height: 2.75rem;
    padding: 0.45rem 0.85rem;
    overflow: visible;
    white-space: nowrap;
  }

  .btn-staff-door__eyebrow {
    display: none !important;
  }

  .btn-staff-door__label {
    font-size: 0.72rem !important;
    letter-spacing: 0.08em;
  }

  .btn-staff-door__label::after {
    content: none !important;
  }

  .nav-primary {
    grid-area: nav;
    width: 100%;
    max-width: 100%;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem 0.2rem;
    font-size: 0.8rem;
  }

  .nav-primary a {
    padding: 0.5rem 0.65rem;
    min-height: 2.5rem;
  }

  .hero--v24 h1 {
    font-size: clamp(2rem, 8.5vw, 2.55rem);
    line-height: 1.16;
  }

  .observe-list p,
  .realize-close {
    font-size: 1.05rem;
  }
}

/* - -  v24 Institutional craft: visible simplicity, invisible depth - -  */

.hero--v24 {
  padding-top: clamp(4.5rem, 14vw, 8.5rem);
  padding-bottom: clamp(4rem, 10vw, 7rem);
}

.hero--v24 .hero__eyebrow {
  letter-spacing: 0.22em;
  margin-bottom: 2.75rem;
}

.hero--v24 h1 {
  max-width: min(48rem, 90vw);
  font-size: clamp(2.5rem, 5.5vw, 3.75rem);
  line-height: 1.12;
  margin-bottom: 2.25rem;
}

.hero--v24 .hero__body {
  max-width: 24rem;
  font-size: 1rem;
  margin-bottom: 3rem;
}

/* Quiet intelligence markers */
.section--observe {
  padding-top: clamp(2rem, 5vw, 3rem);
}

.observe-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
  max-width: 40rem;
}

.observe-list > li {
  display: grid;
  grid-template-columns: 2.75rem 1fr;
  gap: 1rem 1.5rem;
  padding: 1.65rem 0;
  border-bottom: 1px solid var(--line);
}

.observe-list__n {
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  color: var(--bronze-soft);
  font-weight: 650;
  padding-top: 0.35rem;
}

.observe-list p {
  margin: 0;
  font-family: var(--serif);
  font-size: 1.2rem;
  line-height: 1.45;
  letter-spacing: -0.015em;
  color: var(--ink);
  max-width: 34rem;
}

/* Executive realization stack */
.section--realize {
  max-width: 36rem;
}

.realize-title {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(1.45rem, 3vw, 1.85rem);
  letter-spacing: -0.02em;
  margin: 0 0 2rem;
  max-width: 22ch;
}

.realize-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  margin: 0 0 2rem;
  padding: 2rem 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.realize-stack > span:not(.realize-stack__sep) {
  font-size: 0.95rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-soft);
  font-weight: 500;
}

.realize-stack__sep {
  color: var(--faint);
  font-size: 0.85rem;
  padding: 0.2rem 0 0.2rem 0.15rem;
  line-height: 1;
}

.realize-close {
  margin: 0;
  font-family: var(--serif);
  font-size: 1.25rem;
  line-height: 1.45;
  letter-spacing: -0.015em;
  color: var(--ink);
  max-width: 28rem;
}

/* Boardroom EOM - more air */
.section--boardroom .eom--boardroom {
  padding: 3.25rem 0.25rem 3.5rem;
  max-width: 26rem;
}

.section--boardroom .framework-caption {
  margin-top: 1.5rem;
}

.pillars--quiet > li {
  padding: clamp(1.35rem, 3vw, 1.85rem) 0;
}

/* Briefing gravity - journal labels */
.obs-list__label {
  margin: 0 0 0.35rem;
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
}

.obs-list--journal > li {
  padding: 1.85rem 0;
}

.obs-list--journal h3 {
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  margin-bottom: 0.4rem;
}

.section--briefing-gravity .section__intro {
  max-width: 30rem;
}

/* Interior page craft - editorial air */
.page-hero--craft {
  padding-top: clamp(3.5rem, 10vw, 6.5rem);
  padding-bottom: clamp(2.5rem, 6vw, 4rem);
  max-width: 40rem;
}

.page-hero--craft h1 {
  font-size: clamp(2.15rem, 4.5vw, 3.1rem);
  line-height: 1.14;
  letter-spacing: -0.025em;
  margin-bottom: 1.5rem;
}

.page-hero--craft > p {
  max-width: 28rem;
  font-size: 1.02rem;
  line-height: 1.55;
  color: var(--ink-soft);
}

.page-hero--briefing.page-hero--craft h1 {
  max-width: 22ch;
}

/* Boardroom EOM - thin architectural, not card UI */
.eom--boardroom {
  background: transparent;
  border: none;
  box-shadow: none;
}

.eom--boardroom .eom__node {
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  box-shadow: none;
  padding: 0.85rem 0;
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--ink-soft);
}

.eom--boardroom .eom__node--lead {
  font-size: 0.9rem;
  letter-spacing: 0.16em;
  color: var(--ink);
  border-bottom-color: var(--ink);
  font-weight: 600;
}

.eom--boardroom .eom__node--base {
  border-bottom: none;
  color: var(--muted);
}

.eom--boardroom .eom__spine {
  width: 1px;
  min-height: 1.1rem;
  background: var(--line);
  margin: 0 auto;
}

.eom--boardroom .eom__bridge {
  gap: 0.5rem 1.25rem;
}

.eom--boardroom .eom__bridge-line {
  background: var(--line);
  opacity: 0.85;
}

/* Journal index: no card marketing feel */
.section--briefing-index .obs-list--journal {
  max-width: 42rem;
}

.section--briefing-index .obs-list--journal h3 a {
  text-decoration: none;
  color: inherit;
  border-bottom: 1px solid transparent;
  transition: border-color 0.25s ease, color 0.25s ease;
}

.section--briefing-index .obs-list--journal h3 a:hover {
  border-bottom-color: var(--accent);
  color: var(--ink);
}

@media (max-width: 720px) {
  .page-hero--craft h1 {
    font-size: clamp(1.85rem, 7.5vw, 2.35rem);
  }

  .obs-list--journal h3 {
    font-size: 1.15rem;
  }

  .realize-stack {
    padding: 1.5rem 0;
  }

  .section--boardroom .eom--boardroom {
    padding: 2rem 0 2.5rem;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .section--observe,
  .section--realize,
  .section--briefing-gravity,
  .page-hero--craft {
    animation: v23-enter 0.6s ease both;
  }

  .observe-list > li {
    animation: v23-enter 0.55s ease both;
  }

  .observe-list > li:nth-child(2) {
    animation-delay: 0.06s;
  }

  .observe-list > li:nth-child(3) {
    animation-delay: 0.12s;
  }

  .obs-list--journal > li {
    animation: v23-enter 0.5s ease both;
  }

  .obs-list--journal > li:nth-child(2) { animation-delay: 0.04s; }
  .obs-list--journal > li:nth-child(3) { animation-delay: 0.08s; }
  .obs-list--journal > li:nth-child(4) { animation-delay: 0.12s; }
  .obs-list--journal > li:nth-child(5) { animation-delay: 0.16s; }
  .obs-list--journal > li:nth-child(6) { animation-delay: 0.2s; }
}





/* v28.3 mobile: staff door stays in-flow (flex order 2). Preserve gold/obsidian ceremonial only.
 * No fixed chip, no padding-right reserve (was double-padding against .wrap). */
@media (max-width: 720px) {
  a.btn-staff-door,
  .btn-staff-door {
    /* preserve canonical gold door - color only, layout in header block above */
    border-color: rgba(196, 181, 140, 0.42) !important;
    background:
      linear-gradient(165deg, rgba(36, 40, 48, 0.95) 0%, rgba(18, 22, 30, 0.98) 55%, rgba(12, 15, 20, 1) 100%) !important;
    color: #f0ebe0 !important;
    box-shadow:
      0 0 0 1px rgba(0, 0, 0, 0.35) inset,
      0 1px 0 rgba(255, 255, 255, 0.04) inset,
      0 8px 24px rgba(0, 0, 0, 0.28) !important;
  }

  a.btn-staff-door .btn-staff-door__label,
  .btn-staff-door__label {
    color: #f0ebe0 !important;
  }
}

/* - -  v24.1 Institutional craft audit - -  */

/* Reading measure + space; canvas tokens live in top :root (v24.2 paper) */
:root {
  --space-section: clamp(4rem, 9vw, 7rem);
  --measure: 40rem; /* ~640px body measure */
}

/* Alternate editorial bands - geometry owned by atmosphere.css (v28.1 full-bleed).
 * Keep only non-geometry tone here so cascade does not fight width:100vw. */
.section--alt:not(.section--authority),
.section--muted:not(.section--authority) {
  background: var(--surface-muted);
}

/* Museum-label callout (muted paper + quiet edge - not gold ornament) */
.pull-quote,
.note--editorial {
  background: var(--surface-muted);
  border: 1px solid var(--line-soft);
  border-left: 2px solid var(--line);
  padding: 1.5rem 1.75rem;
  box-shadow: none;
  color: var(--ink-soft);
}

.mark a span {
  color: var(--ink-soft) !important;
  font-weight: 500;
}

a {
  color: var(--ink-soft);
}

a:hover {
  color: var(--ink);
}

/* Primary CTAs stay quiet; accent only on focus ring / rare emphasis */
.btn--text {
  color: var(--ink);
}

.nav-primary a[aria-current="page"] {
  color: var(--ink);
  background: transparent;
  box-shadow: inset 0 -1px 0 var(--line);
  border-radius: 0;
}

/* Hero v24.1 - larger, tighter leading, less copy weight */
.hero--v241 {
  padding-top: clamp(5rem, 16vw, 9.5rem);
  padding-bottom: clamp(4.5rem, 12vw, 8rem);
}

.hero--v241 h1,
.hero--v24.hero--v241 h1 {
  max-width: min(18ch, 90vw);
  font-size: clamp(2.55rem, 6.5vw, 5.5rem); /* ~40-88px */
  line-height: 1.02;
  letter-spacing: -0.03em;
  margin-bottom: 2rem;
}

.hero--v241 .hero-line-soft {
  display: block;
  margin-top: 0.65em;
  color: var(--ink-soft);
  font-weight: 400;
}

.hero--v241 .hero__body--thin,
.hero__body--thin {
  max-width: 22rem;
  font-size: 1.0625rem; /* ~17px */
  line-height: 1.55;
  color: var(--muted);
  margin-bottom: 2.75rem;
}

/* Body measure - executive memo reading */
body {
  font-size: 1.125rem; /* 18px */
  line-height: 1.65;
}

.section__intro,
.prose-block p,
.page-hero--craft > p {
  max-width: var(--measure);
  font-size: 1.125rem;
  line-height: 1.65;
}

.prose-block--memo {
  max-width: var(--measure);
}

.prose-block--memo h2 {
  margin-top: 2.75rem;
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(1.35rem, 2.5vw, 1.65rem);
  letter-spacing: -0.02em;
}

/* Institutional pause */
.section--pause {
  padding-top: clamp(3rem, 8vw, 5.5rem);
  padding-bottom: clamp(2.5rem, 6vw, 4rem);
  max-width: 34rem;
}

.pause-statement {
  margin: 0;
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(1.65rem, 3.5vw, 2.25rem);
  line-height: 1.25;
  letter-spacing: -0.025em;
  color: var(--ink);
}

.pause-statement__soft {
  display: block;
  margin-top: 0.85em;
  color: var(--ink-soft);
}

/* Field note - quiet intelligence layer */
.field-note {
  margin: clamp(3rem, 8vw, 5.5rem) 0;
  padding: 2rem 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  max-width: 32rem;
}

.field-note--inline {
  margin: 2.5rem 0;
}

.field-note__label {
  margin: 0 0 0.85rem;
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
  font-weight: 600;
}

.field-note__text {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.2rem, 2.2vw, 1.4rem);
  line-height: 1.4;
  letter-spacing: -0.015em;
  color: var(--ink);
}

/* EOM quiet attribution */
.framework-caption--quiet {
  max-width: 28rem;
  font-size: 0.95rem;
  color: var(--muted);
}

.eom-attrib {
  display: block;
  margin-top: 0.85rem;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
  font-weight: 500;
}

/* Briefing numbers carry weight */
.obs-list--numbers > li {
  padding: 2.15rem 0;
  align-items: flex-start;
}

.obs-list--numbers .obs-list__n {
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  color: var(--faint);
  font-weight: 600;
  padding-top: 0.45rem;
}

.obs-list--numbers h3 {
  font-size: clamp(1.3rem, 2.6vw, 1.65rem);
  line-height: 1.3;
  margin: 0;
  max-width: 28rem;
}

.obs-list--numbers h3 a {
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}

.obs-list--numbers h3 a:hover {
  border-bottom-color: var(--line);
}

/* Experience decision pattern */
.exp-ledger--decision .exp-ledger__grid dt {
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--faint);
  font-weight: 600;
}

.section--thin {
  padding-top: clamp(2rem, 5vw, 3rem);
}

/* Mobile memo reading */
@media (max-width: 720px) {
  .hero--v241 h1,
  .hero--v24.hero--v241 h1 {
    font-size: clamp(2.45rem, 9.5vw, 3.15rem); /* ~40-50px */
    line-height: 1.05;
    max-width: 12ch;
  }

  body {
    font-size: 1.0625rem;
  }

  .section {
    margin-top: clamp(3.25rem, 12vw, 5rem);
  }

  .pause-statement {
    font-size: 1.45rem;
  }

  .field-note__text {
    font-size: 1.15rem;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .section--pause,
  .field-note {
    animation: v23-enter 0.65s ease both;
  }
}


/* - -  v24.1 detail pages: experience ledger detail - -  */
.exp-ledger--detail {
  max-width: 36rem;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
}
.exp-ledger--detail > div {
  display: grid;
  grid-template-columns: minmax(9rem, 13.5rem) 1fr;
  gap: 0.75rem 1.5rem;
  padding: 1.35rem 0;
  border-bottom: 1px solid var(--line);
}
.exp-ledger--detail dt {
  margin: 0;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--faint);
  font-weight: 600;
  padding-top: 0.2rem;
}
.exp-ledger--detail dd {
  margin: 0;
  font-family: var(--serif);
  font-size: 1.15rem;
  line-height: 1.4;
  color: var(--ink);
  letter-spacing: -0.01em;
}
@media (max-width: 560px) {
  .exp-ledger--detail > div {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }
}
.article .page-hero--craft h1 {
  max-width: 22ch;
}
.article__body {
  max-width: var(--measure, 40rem);
}



/* ===== css/atmosphere.css ===== */
/* atmosphere.css - dual-tone authority bands, section rhythm
 * Load after components; before alive; footer remains last overall.
 * v28.3 GO: Phase 3 freeze exception craft (hero support line, not slogan swap).
 */

html {
  background-color: var(--surface-page);
}

body {
  overflow-x: clip;
}

/* Shared full-bleed band geometry (content stays on wrap measure) */
.section--authority,
.hero--authority,
.section--alt,
.section--muted {
  width: 100vw;
  max-width: 100vw;
  box-sizing: border-box;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: max(1.35rem, calc(50vw - var(--wrap) / 2));
  padding-right: max(1.35rem, calc(50vw - var(--wrap) / 2));
}

/* Full-bleed authority band (charcoal / obsidian) - wins over pause/close/thin resets */
.section--authority,
.hero--authority {
  background: var(--surface-authority) !important;
  color: var(--authority-ink);
  padding-top: clamp(3.25rem, 8vw, 5.25rem);
  padding-bottom: clamp(3.25rem, 8vw, 5.25rem);
}

/* pause + authority: pause max-width must not trap the charcoal band */
.section--pause.section--authority {
  max-width: none !important;
}

/* Authority pause: editorial measure + quiet type scale on charcoal */
.section--pause.section--authority .section__kicker {
  margin-bottom: 1.15rem;
  letter-spacing: 0.16em;
}

.section--pause.section--authority .pause-statement {
  max-width: 28rem;
  font-size: clamp(1.55rem, 3.2vw, 2.05rem);
  line-height: 1.28;
}

.section--authority.section--close .hero__ctas {
  margin-top: 1.5rem;
  gap: 1rem 1.5rem;
}

.section--authority .section__kicker,
.section--authority .page-hero__kicker,
.hero--authority .hero__eyebrow {
  color: var(--authority-muted);
}

.section--authority h1,
.section--authority h2,
.section--authority .pause-statement,
.section--authority .realize-title,
.hero--authority h1,
.hero--authority .hero-title {
  color: var(--authority-ink) !important;
}

.section--authority .pause-statement__soft,
.section--authority .hero-line-soft,
.hero--authority .hero-line-soft {
  color: var(--authority-ink-soft) !important;
}

.section--authority .section__intro,
.section--authority p,
.section--authority .hero__body,
.hero--authority .hero__body {
  color: var(--authority-ink-soft);
}

.section--authority .btn--text,
.hero--authority .btn--text {
  color: var(--authority-ink) !important;
}

.section--authority .btn--ghost-quiet,
.hero--authority .btn--ghost-quiet {
  color: var(--authority-ink-soft) !important;
  border-color: var(--authority-line);
}

.section--authority a:not(.btn-staff-door),
.hero--authority a:not(.btn-staff-door) {
  color: #8eb4c9;
}

.section--authority a:not(.btn-staff-door):hover,
.hero--authority a:not(.btn-staff-door):hover {
  color: #c5dce8;
}

/* Reading measure inside authority close/pause (not full-width grids) */
.section--authority .pause-statement {
  max-width: 36rem;
}

.section--authority.section--close h2,
.section--authority.section--close .section__intro {
  max-width: 36rem;
}

/* Interior authority closes: match home reading rhythm */
.section--authority.section--close .hero__ctas {
  max-width: 36rem;
}

/* Muted alt bands - full viewport width, paper-depth.
 * Vertical rhythm stays on .section padding from components; only force bg. */
.section--alt,
.section--muted {
  background: var(--surface-muted);
}

/* Field note default: hairline only (v28.2 - quieter than quote plate).
 * Home mid-page block below reinforces transparent plate. */
.field-note {
  background: transparent;
  border-color: var(--line);
}

/* Pull quote: ONLY light ink when nested in authority band.
 * Standalone .pull-quote--authority is a charcoal plate, not ghost paper. */
.pull-quote--authority {
  background: var(--surface-authority);
  color: var(--authority-ink);
  border-left-color: var(--authority-line);
  padding: clamp(1.75rem, 4vw, 2.5rem) 1.5rem clamp(1.75rem, 4vw, 2.5rem) 1.5rem;
  max-width: 36rem;
  box-sizing: border-box;
}

.pull-quote--authority p {
  color: var(--authority-ink) !important;
}

.pull-quote--authority cite {
  color: var(--authority-muted) !important;
}

.section--authority .pull-quote--alive {
  border-left-color: var(--authority-line);
  color: var(--authority-ink);
  background: transparent;
}

.section--authority .pull-quote--alive p {
  color: var(--authority-ink) !important;
}

.section--authority .pull-quote--alive cite {
  color: var(--authority-muted) !important;
}

/* Cards sit on raised stone, never pure white */
.card,
.audience-card {
  background: var(--surface-raised) !important;
}

/* Full-bleed footer alignment (match authority geometry) */
.site-footer {
  width: 100vw;
  max-width: 100vw;
  box-sizing: border-box;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding-left: max(1.35rem, calc(50vw - var(--wrap) / 2)) !important;
  padding-right: max(1.35rem, calc(50vw - var(--wrap) / 2)) !important;
}

/* ============================================================
   v28.2 HOME MID-PAGE CRAFT
   Decision diagram · quote plate · field note · rhythm · close
   Prefer measure + padding over double margin+padding stacks.
   ============================================================ */

/* Kill double section air: components sets margin-top AND padding on .section.
 * Home mid-page uses padding as the sole vertical rhythm unit. */
main > .section {
  margin-top: 0;
}

main > .hero + .section {
  margin-top: 0;
}

/* Shared content measure - left edge matches hero reading column */
main .section__head,
main .pillars,
main .pillars > li,
main .experience-list,
main .obs-list,
main .observe-list,
main .realize-title,
main .realize-close,
main .framework-caption,
main .alive-diagram,
main .field-note,
main .pull-quote {
  max-width: min(36rem, 100%);
}

main .section__intro {
  max-width: min(28rem, 100%);
}

/* Tighter even padding between mid sections (still institutional) */
main > .section {
  padding-top: clamp(2.75rem, 6vw, 4.25rem);
  padding-bottom: clamp(2.75rem, 6vw, 4.25rem);
}

main > .section.section--thin {
  padding-top: clamp(2.25rem, 5vw, 3.25rem);
  padding-bottom: clamp(2.25rem, 5vw, 3.25rem);
}

main > .section.section--observe {
  padding-top: clamp(2.25rem, 5vw, 3.25rem);
  padding-bottom: clamp(2.25rem, 5vw, 3.25rem);
}

/* Boardroom block: EOM + diagram share one quiet column */
main .section--boardroom .section__head {
  margin-bottom: 1.5rem;
}

main .section--boardroom .eom--boardroom {
  margin-top: 0.5rem;
  margin-bottom: 0;
  padding: 2.25rem 0 2rem;
  max-width: min(26rem, 100%);
}

/* Decision diagram - architectural line plate, not floating card */
main .section--boardroom .alive-diagram,
main .alive-diagram.alive-diagram--wide {
  margin: 1.75rem 0 0;
  padding: 1.35rem 0 0;
  max-width: min(36rem, 100%);
  background: transparent;
  border: none;
  border-top: 1px solid var(--line);
  border-radius: 0;
  box-shadow: none;
}

main .alive-diagram img,
main .alive-diagram svg {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
}

main .alive-diagram__caption {
  margin: 0.75rem 0 0;
  max-width: min(28rem, 100%);
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--muted);
}

main .section--boardroom .framework-caption--quiet {
  margin-top: 1.25rem;
  max-width: min(28rem, 100%);
}

/* Insight pair: field note (quiet) then principle (authority plate).
 * Keep stacked for hierarchy - side-by-side equalizes weight. */
main .section--insight-pair {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1.35rem, 3vw, 1.85rem);
  max-width: min(36rem, 100%);
  padding-top: clamp(2.25rem, 5vw, 3.25rem);
  padding-bottom: clamp(2.25rem, 5vw, 3.25rem);
}

main .section--insight-pair .field-note,
main .section--insight-pair .field-note--compact,
main .field-note {
  margin: 0;
  padding: 1.2rem 0;
  max-width: min(32rem, 100%);
  background: transparent !important;
  border: none;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  box-shadow: none;
}

main .field-note__label,
main .section--insight-pair .field-note__label {
  margin: 0 0 0.55rem;
  color: var(--faint);
}

main .field-note__text,
main .section--insight-pair .field-note__text {
  margin: 0;
  font-size: clamp(1.08rem, 2vw, 1.22rem);
  line-height: 1.45;
  color: var(--ink-soft);
}

/* Pull-quote authority - solid charcoal plate, clear cite hierarchy */
main .pull-quote.pull-quote--authority,
main .pull-quote--alive.pull-quote--authority,
main .section--insight-pair .pull-quote.pull-quote--authority {
  display: block;
  margin: 0;
  padding: clamp(1.85rem, 4vw, 2.65rem) clamp(1.5rem, 3.5vw, 2.25rem);
  max-width: min(36rem, 100%);
  width: 100%;
  box-sizing: border-box;
  background: var(--surface-authority) !important;
  color: var(--authority-ink) !important;
  border: none;
  border-left: 2px solid var(--authority-line) !important;
  border-radius: var(--radius-sm);
  box-shadow: none;
}

main .pull-quote.pull-quote--authority p,
main .pull-quote--alive.pull-quote--authority p {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.3rem, 2.5vw, 1.7rem);
  line-height: 1.35;
  letter-spacing: -0.02em;
  color: var(--authority-ink) !important;
}

main .pull-quote.pull-quote--authority cite,
main .pull-quote--alive.pull-quote--authority cite {
  display: block;
  margin-top: 1.15rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--authority-line);
  font-style: normal;
  font-family: var(--sans);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--authority-muted) !important;
}

/* Pillars / experience / briefing - shared row rhythm + left edge */
main .pillars {
  border-top: 1px solid var(--line);
}

main .pillars--quiet > li {
  padding: clamp(1.25rem, 2.8vw, 1.65rem) 0;
  max-width: min(36rem, 100%);
}

main .experience-list {
  max-width: min(36rem, 100%);
}

main .experience-row {
  padding: 1.25rem 0;
}

main .obs-list--journal > li,
main .obs-list--numbers > li {
  padding: 1.55rem 0;
}

main .obs-list--numbers h3 {
  max-width: min(28rem, 100%);
}

main .section-link {
  margin-top: 1.25rem;
}

/* Close authority band: no huge void before footer */
main > .section.section--close {
  margin-top: 0;
  margin-bottom: 0;
  padding-top: clamp(2.75rem, 6vw, 4rem);
  padding-bottom: clamp(2.5rem, 5.5vw, 3.5rem);
}

main > .section.section--close h2,
main > .section.section--close .section__intro {
  max-width: min(36rem, 100%);
}

main > .section.section--close .section__intro {
  max-width: min(28rem, 100%);
  margin-bottom: 1.5rem;
}

/* Footer sits immediately after close - reduce wrap floor void */
.wrap {
  padding-bottom: 0;
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
}

/* Short pages: charcoal close absorbs remaining height (no paper void before footer) */
main {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
}

main > .section.section--close.section--authority:last-child {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
  min-height: 12rem;
}

.site-footer {
  margin-top: 0 !important;
  padding-top: clamp(2.25rem, 5vw, 3.25rem) !important;
  padding-bottom: clamp(2rem, 4.5vw, 2.75rem) !important;
  flex-shrink: 0;
}

/* Mobile: do not re-add section margin stacks */
@media (max-width: 720px) {
  main > .section {
    margin-top: 0 !important;
  }

  main .section--insight-pair {
    gap: 1.25rem;
    max-width: 100%;
  }

  main .field-note,
  main .section--insight-pair .field-note--compact {
    margin: 0;
    padding: 1.1rem 0;
  }

  main .pull-quote.pull-quote--authority,
  main .pull-quote--alive.pull-quote--authority,
  main .section--insight-pair .pull-quote.pull-quote--authority {
    margin: 0;
    padding: 1.65rem 1.25rem;
  }

  main .alive-diagram__caption {
    max-width: 100%;
  }
}

/* ===== css/alive.css ===== */
/* alive.css - grain, reveal, motion, briefing shelf */
/* ============================================================
   v25 ALIVE-1 - design-quality vitality (freeze-compatible)
   Grain · scroll reveal · rhythm · link micro-motion · type scale
   No forest palette · no invent metrics · no SaaS card elevation
   ============================================================ */



/* Paper grain - pseudo layer so body background-image:none !important stays */
body {
  position: relative;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: var(--grain-opacity);
  /* Tiny SVG fractal noise - archival paper tooth, not decorative blur */
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 180px 180px;
}

.wrap,
.site-footer {
  position: relative;
  z-index: 1;
}

/* Section heading ink on paper (legacy dark leftover was #f0f4f8) */
.section h2,
.section--realize .realize-title,
.page-hero h1 {
  color: var(--ink);
}

/* Type scale within hierarchy - more drama, same hero language */
.section h2 {
  font-size: var(--text-headline);
  line-height: 1.15;
  letter-spacing: -0.025em;
}

.section__kicker {
  font-size: var(--text-meta);
}

/* Stronger alt-band rhythm - do NOT clobber authority charcoal.
 * Full-bleed geometry for alt/muted lives in atmosphere.css (v28.1). */
.section--alt:not(.section--authority),
.section--muted:not(.section--authority) {
  background: var(--surface-muted);
}

.section--pause:not(.section--authority) {
  background: transparent;
}

.section--realize:not(.section--authority) {
  background: var(--surface-page);
}

.section--thin:not(.section--authority),
.section--close:not(.section--authority) {
  background: var(--surface-page);
}

/* Field note tone is owned by atmosphere v28.2 mid-page craft
 * (quiet hairline, not raised plate that competes with pull-quote). */
.field-note {
  background: transparent;
  border-top-color: var(--line);
  border-bottom-color: var(--line);
  border-radius: 0;
}

/* Scroll reveal - only hide when JS armed (html.js-reveal). No-JS = fully visible. */
.reveal {
  animation: none;
}

html.js-reveal .reveal:not(.is-visible) {
  opacity: 0;
  transform: translateY(18px);
}

html.js-reveal .reveal {
  transition:
    opacity var(--alive-duration) var(--alive-ease),
    transform var(--alive-duration) var(--alive-ease);
}

html.js-reveal .reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

html.js-reveal .reveal-stagger:not(.is-visible) > * {
  opacity: 0;
  transform: translateY(14px);
}

html.js-reveal .reveal-stagger > * {
  transition:
    opacity var(--alive-duration) var(--alive-ease),
    transform var(--alive-duration) var(--alive-ease);
}

html.js-reveal .reveal-stagger.is-visible > *:nth-child(1) {
  transition-delay: 0.02s;
}
html.js-reveal .reveal-stagger.is-visible > *:nth-child(2) {
  transition-delay: 0.1s;
}
html.js-reveal .reveal-stagger.is-visible > *:nth-child(3) {
  transition-delay: 0.18s;
}
html.js-reveal .reveal-stagger.is-visible > *:nth-child(4) {
  transition-delay: 0.26s;
}
html.js-reveal .reveal-stagger.is-visible > *:nth-child(5) {
  transition-delay: 0.34s;
}
html.js-reveal .reveal-stagger.is-visible > *:nth-child(6) {
  transition-delay: 0.42s;
}

html.js-reveal .reveal-stagger.is-visible > * {
  opacity: 1;
  transform: translateY(0);
}

/* Link micro-motion - accent underline grows (not garish) */
.section-link a,
.obs-list h3 a,
.insight-row h2 a,
.insight-row h3 a,
.experience-row__title,
.article__body a:not(.btn):not(.btn--text):not(.btn--ghost) {
  background-image: linear-gradient(var(--accent), var(--accent));
  background-size: 0% 1px;
  background-position: 0% 100%;
  background-repeat: no-repeat;
  transition:
    background-size 0.28s var(--alive-ease),
    color 0.15s ease;
  text-decoration: none;
}

.section-link a:hover,
.obs-list h3 a:hover,
.insight-row h2 a:hover,
.insight-row h3 a:hover,
.experience-row:hover .experience-row__title,
.article__body a:not(.btn):not(.btn--text):not(.btn--ghost):hover {
  background-size: 100% 1px;
  color: var(--accent);
}

/* Museum cards - edge response only (no SaaS lift/shadow) */
.card {
  transition:
    border-color 0.22s ease,
    background-color 0.22s ease;
}

.card:hover {
  border-color: var(--line);
  background: var(--surface-raised) !important;
  box-shadow: none !important;
  transform: none;
}

.experience-row {
  transition: background-color 0.2s ease;
}

.experience-row:hover {
  background-color: rgba(251, 250, 247, 0.65);
}

/* Focus rings - consistent ink edge (bronze reserved for staff door) */
a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.btn--text:focus-visible,
.nav-primary a:focus-visible,
.experience-row:focus-visible,
.email-chip:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 2px;
}

/* Institutional diagram (line drawing) - architectural, not floating card.
 * Home boardroom measure/caption refined further in atmosphere v28.2. */
.alive-diagram {
  margin: 2rem 0 0.5rem;
  max-width: 36rem;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.section--boardroom .alive-diagram,
.section--method .alive-diagram {
  margin-top: 1.75rem;
  padding-top: 1.35rem;
  border-top: 1px solid var(--line);
}

.alive-diagram--wide {
  max-width: min(36rem, 100%);
}

.alive-diagram svg,
.alive-diagram img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
}

.alive-diagram__caption {
  margin: 0.75rem 0 0;
  font-size: 0.88rem;
  color: var(--muted);
  line-height: 1.5;
  max-width: 28rem;
}

/* Phase 1+ - doctrine cards (challenge → approach → outcome) */
.section--doctrine .section__head {
  margin-bottom: clamp(1.75rem, 4vw, 2.25rem);
  max-width: 40rem;
}

.doctrine-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1.25rem;
  align-items: stretch;
}

@media (min-width: 900px) {
  .doctrine-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.35rem;
  }
}

.doctrine-card {
  margin: 0;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 1.45rem 1.3rem 1.5rem;
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  border-top: 2px solid var(--accent);
  box-shadow: none;
  box-sizing: border-box;
}

.doctrine-card__phase {
  margin: 0 0 0.15rem;
  font-family: var(--sans);
  font-size: var(--text-meta);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
}

.doctrine-card__stack {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  margin-top: 0.9rem;
}

.doctrine-card__row {
  padding: 0.9rem 0;
  border-top: 1px solid var(--line-soft);
}

.doctrine-card__row:first-child {
  border-top: none;
  padding-top: 0;
}

.doctrine-card__row:last-child {
  padding-bottom: 0;
  margin-top: auto;
}

.doctrine-card__title {
  margin: 0 0 0.4rem;
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--faint);
}

.doctrine-card__body {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--ink-soft);
}

/* Editorial / confidentiality frames */
.frame-note {
  margin: 0 0 clamp(2rem, 5vw, 2.75rem);
  padding: 1.25rem 1.35rem 1.3rem;
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-left: 3px solid var(--accent);
  border-radius: var(--radius-sm);
  max-width: 40rem;
  box-sizing: border-box;
}

.frame-note--confidential {
  border-left-color: var(--bronze);
  background: var(--surface-page);
}

.frame-note__label {
  margin: 0 0 0.45rem;
  font-family: var(--sans);
  font-size: var(--text-meta);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--faint);
}

.frame-note__text {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.65;
  color: var(--ink-soft);
  max-width: 36rem;
}

/* Home insight pair: field note (quiet hairline) then principle (charcoal plate).
 * Stacked only - side-by-side makes field note compete with authority quote. */
.section--insight-pair {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1.35rem, 3vw, 1.85rem);
  padding-top: clamp(2.25rem, 5vw, 3.25rem);
  padding-bottom: clamp(2.25rem, 5vw, 3.25rem);
  max-width: 36rem;
}

.section--insight-pair .field-note {
  margin: 0;
}

.section--insight-pair .field-note--compact {
  padding: 1.2rem 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  border-left: none;
  border-right: none;
  border-radius: 0;
  background: transparent;
  max-width: min(32rem, 100%);
}

.section--insight-pair .pull-quote--authority {
  margin: 0;
  max-width: 100%;
}

/* Contact ceremony (not form theater) */
.trust-line {
  margin: 0 0 1.35rem;
  max-width: 36rem;
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--muted);
  font-style: italic;
}

.engagement-panel {
  margin: 0 0 clamp(2.5rem, 6vw, 3.5rem);
  padding: clamp(1.65rem, 4vw, 2.15rem) clamp(1.4rem, 3.5vw, 2rem);
  max-width: 36rem;
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-top: 2px solid var(--accent);
  border-radius: var(--radius-sm);
  box-shadow: none;
  box-sizing: border-box;
}

.engagement-panel__kicker {
  margin: 0 0 0.75rem;
  font-family: var(--sans);
  font-size: var(--text-meta);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
}

.engagement-panel__lead {
  margin: 0 0 1rem;
  line-height: 1.65;
  color: var(--ink-soft);
}

.engagement-panel__close {
  margin: 0 0 0.25rem;
  line-height: 1.65;
  color: var(--muted);
  font-size: 0.98rem;
}

.engagement-panel__list {
  list-style: none;
  margin: 0 0 1.25rem;
  padding: 0;
  color: var(--ink);
  line-height: 1.55;
  counter-reset: engage-line;
  border-top: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
}

.engagement-panel__list li {
  position: relative;
  margin: 0;
  padding: 0.7rem 0 0.7rem 2.35rem;
  border-bottom: 1px solid var(--line-soft);
  counter-increment: engage-line;
}

.engagement-panel__list li:last-child {
  border-bottom: none;
}

.engagement-panel__list li::before {
  content: counter(engage-line, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 0.78rem;
  font-family: var(--sans);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--faint);
}

.contact-list--panel {
  margin-top: 1.35rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line);
}

/* Paper-theme contact rows (override legacy dark plate) */
.contact-list--panel li {
  background: var(--surface-page);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 0.95rem 1.1rem;
}

.contact-list--panel .email-chip {
  color: var(--accent);
  font-weight: 500;
  text-align: left;
  cursor: pointer;
}

.contact-list--panel .email-chip:hover {
  color: var(--accent-soft);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* About principles */
.principles-list {
  list-style: none;
  margin: 0.5rem 0 1.75rem;
  padding: 0;
  max-width: 38rem;
  line-height: 1.65;
  color: var(--ink-soft);
  counter-reset: principle;
  border-top: 1px solid var(--line);
}

.principles-list li {
  position: relative;
  margin: 0;
  padding: 1.05rem 0 1.05rem 2.6rem;
  border-bottom: 1px solid var(--line-soft);
  counter-increment: principle;
}

.principles-list li::before {
  content: counter(principle, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 1.15rem;
  font-family: var(--sans);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--faint);
}

.principles-list strong {
  display: block;
  margin-bottom: 0.3rem;
  color: var(--ink);
  font-weight: 600;
  font-size: 1.02rem;
  letter-spacing: -0.01em;
}

/* Method / diagram section air */
.section--method {
  margin-top: 0.75rem;
}

.section--method .section__head {
  margin-bottom: clamp(1.5rem, 3.5vw, 2rem);
  max-width: 40rem;
}

.section--method .alive-diagram {
  margin-top: clamp(1.75rem, 4vw, 2.5rem);
  margin-bottom: 0.25rem;
}

.section--method.section--alt {
  padding-top: clamp(2.75rem, 6vw, 4rem);
  padding-bottom: clamp(2.75rem, 6vw, 4rem);
}

.section--method .alive-diagram__caption {
  margin-top: 1.05rem;
  max-width: 34rem;
  line-height: 1.6;
}

/* Pause moment - pull quote (existing tokens) */
.pull-quote--alive {
  margin: clamp(2.5rem, 6vw, 4rem) 0;
  padding: clamp(1.75rem, 4vw, 2.5rem) 0 clamp(1.75rem, 4vw, 2.5rem) 1.5rem;
  border-left: 2px solid var(--line);
  background: transparent;
  max-width: 34rem;
}

/* Authority pull-quote MUST win after transparent base (v28.1 / v28.2 plate) */
.pull-quote.pull-quote--authority,
.pull-quote--alive.pull-quote--authority {
  background: var(--surface-authority) !important;
  color: var(--authority-ink) !important;
  border: none;
  border-left: 2px solid var(--authority-line) !important;
  padding: clamp(1.85rem, 4vw, 2.65rem) clamp(1.5rem, 3.5vw, 2.25rem);
  max-width: 36rem;
  box-sizing: border-box;
  border-radius: var(--radius-sm);
}

.pull-quote.pull-quote--authority p,
.pull-quote--alive.pull-quote--authority p {
  color: var(--authority-ink) !important;
}

.pull-quote.pull-quote--authority cite,
.pull-quote--alive.pull-quote--authority cite {
  display: block;
  margin-top: 1.15rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--authority-line);
  color: var(--authority-muted) !important;
}

.pull-quote--alive p {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.35rem, 2.6vw, 1.75rem);
  line-height: 1.35;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.pull-quote--alive cite {
  display: block;
  margin-top: 1rem;
  font-style: normal;
  font-size: var(--text-meta);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--faint);
}

@media (prefers-reduced-motion: reduce) {
  html.js-reveal .reveal,
  html.js-reveal .reveal:not(.is-visible),
  html.js-reveal .reveal.is-visible,
  html.js-reveal .reveal-stagger > *,
  html.js-reveal .reveal-stagger:not(.is-visible) > *,
  html.js-reveal .reveal-stagger.is-visible > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }

  .section-link a,
  .obs-list h3 a,
  .insight-row h2 a,
  .insight-row h3 a,
  .experience-row__title,
  .article__body a:not(.btn):not(.btn--text):not(.btn--ghost) {
    transition: none;
    background-size: 0% 1px;
  }

  .section-link a:hover,
  .obs-list h3 a:hover,
  .insight-row h2 a:hover,
  .insight-row h3 a:hover,
  .experience-row:hover .experience-row__title {
    background-size: 100% 1px;
  }

  body::before {
    opacity: 0.03;
  }
}

/* ============================================================
   v26 ALIVE-2 - theme coherence (design quality)
   Type scale parity · briefing shelf · mobile motion · no em-dash voice
   ============================================================ */



/* Interior page titles - consistent serif scale */
.page-hero h1,
.page-title,
.article .page-hero h1,
.article .page-hero--craft h1 {
  font-family: var(--serif);
  font-size: var(--text-page-title);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -0.025em;
  color: var(--ink);
  max-width: min(22ch, 100%);
}

.page-hero p,
.page-hero__lede {
  font-size: var(--text-body);
  line-height: 1.65;
  color: var(--muted);
  max-width: var(--measure, 40rem);
}

.section h2 {
  font-size: var(--text-section);
}

.card h3,
.audience-card h3,
.obs-list h3,
.pillars h3 {
  font-size: var(--text-card);
  font-weight: 600;
  letter-spacing: -0.01em;
}

/* Briefing shelf - featured + category badges */
.briefing-featured {
  margin: 0 0 2.5rem;
  padding: 1.75rem 0 2rem;
  border-bottom: 1px solid var(--line);
}

.briefing-featured__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
  margin: 0 0 0.85rem;
}

.briefing-badge {
  display: inline-block;
  margin: 0;
  padding: 0.2rem 0.55rem;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--faint);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-sm);
  background: var(--surface-raised);
}

.briefing-featured h2 {
  margin: 0 0 0.65rem;
  font-family: var(--serif);
  font-size: clamp(1.55rem, 3vw, 2.1rem);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.briefing-featured h2 a {
  color: inherit;
  text-decoration: none;
  background-image: linear-gradient(var(--accent), var(--accent));
  background-size: 0% 1px;
  background-position: 0% 100%;
  background-repeat: no-repeat;
  transition: background-size 0.28s var(--alive-ease), color 0.15s ease;
}

.briefing-featured h2 a:hover {
  color: var(--accent);
  background-size: 100% 1px;
}

.briefing-featured__deck {
  margin: 0;
  max-width: 36rem;
  color: var(--muted);
  font-size: 1.02rem;
  line-height: 1.6;
}

.obs-list .briefing-badge {
  margin: 0 0 0.45rem;
}

.obs-list li .briefing-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  align-items: center;
  margin-bottom: 0.35rem;
}

/* Experience illustrative label */
.experience-illustrative {
  margin: 0 0 1rem;
  font-size: var(--text-meta);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--faint);
  font-weight: 600;
}

/* Mobile: faster reveals */
@media (max-width: 720px) {
  html.js-reveal .reveal,
  html.js-reveal .reveal-stagger > * {
    transition-duration: var(--alive-duration-mobile);
  }
}

/* Audience grid breathing on industries */
.audience-grid {
  display: grid;
  gap: 1rem;
  align-items: stretch;
  margin: 0 0 clamp(2rem, 5vw, 3rem);
}

.audience-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--surface-raised);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  padding: 1.3rem 1.25rem 1.4rem;
  transition: border-color 0.2s ease, background-color 0.2s ease;
  box-sizing: border-box;
}

.audience-card:hover {
  border-color: var(--line);
  background: var(--bg-elevated);
}

.audience-card h3 {
  margin: 0 0 0.5rem;
  color: var(--ink);
}

.audience-card p {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.55;
  flex: 1 1 auto;
}

/* ============================================================
   Interior craft polish (v28.2) - before footer cascade lock
   Shared left edge · ledger readability · paper leader plate · authority close
   ============================================================ */

/* Unified interior measure: heroes and first frames share left edge */
.page-hero--craft {
  max-width: 40rem;
  margin-bottom: clamp(1.75rem, 4vw, 2.5rem);
  padding-top: clamp(3.5rem, 10vw, 6.5rem);
  padding-bottom: clamp(2.6rem, 6.5vw, 4.1rem);
}

.page-hero--craft .page-hero__kicker {
  margin-bottom: 0.85rem;
}

.page-hero--craft > p {
  max-width: 32rem;
}

/* Experience ledger: decision columns, not a vertical stack of labels */
.exp-ledger--decision {
  margin: 0 0 clamp(2rem, 5vw, 3rem);
  max-width: 44rem;
}

.exp-ledger--decision > li {
  max-width: none;
  padding: 1.85rem 0;
}

.exp-ledger--decision h3 {
  margin-bottom: 1rem;
}

.exp-ledger--decision .exp-ledger__grid {
  display: grid;
  grid-template-columns: minmax(10.5rem, 13.5rem) minmax(0, 1fr);
  gap: 0.55rem 1.5rem;
  align-items: start;
  font-size: 0.95rem;
  line-height: 1.55;
}

.exp-ledger--decision .exp-ledger__grid dt {
  margin: 0;
  padding-top: 0.12rem;
  font-size: 0.68rem;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--faint);
  font-weight: 600;
}

.exp-ledger--decision .exp-ledger__grid dd {
  margin: 0;
  max-width: none;
  color: var(--ink-soft);
}

@media (max-width: 640px) {
  .exp-ledger--decision .exp-ledger__grid {
    grid-template-columns: 1fr;
    gap: 0.2rem 0;
  }

  .exp-ledger--decision .exp-ledger__grid dt {
    margin-top: 0.55rem;
  }

  .exp-ledger--decision .exp-ledger__grid dt:first-child {
    margin-top: 0;
  }
}

/* About: paper leader plate + stack air */
.about-stack {
  max-width: 40rem;
}

.about-stack .principles-list {
  max-width: 38rem;
}

.leader-card {
  background: var(--surface-raised) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--radius-sm);
  max-width: 40rem;
}

.leader-card__mark {
  color: var(--ink);
  border-color: var(--line);
  background: var(--surface-page);
}

.leader-card__role {
  color: var(--muted);
}

.leader-card__philosophy {
  color: var(--ink-soft);
  font-style: italic;
}

/* Authority close bands: consistent reading measure with home */
.section--authority.section--close {
  margin-top: clamp(2rem, 5vw, 3.25rem);
}

.section--authority.section--close h2 {
  max-width: 36rem;
  margin-bottom: 0.65rem;
}

.section--authority.section--close .section__intro {
  max-width: 36rem;
  margin-bottom: 1.25rem;
}

.section--authority.section--close .hero__ctas {
  margin-top: 0.35rem;
}

/* Briefing index: room under featured before journal list */
.section--briefing-index .briefing-featured {
  margin-bottom: clamp(2rem, 4vw, 2.75rem);
}

/* ============================================================
   Case interior craft (v28.3 GO) - belief · contradiction · decision
   Dual-tone paper + stage ledger + reading measure + authority close
   ============================================================ */

.case-interior {
  max-width: none;
}

.case-interior .page-hero--craft {
  margin-bottom: clamp(1.25rem, 3vw, 1.75rem);
}

.case-interior__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.55rem;
  margin: 0 0 1rem;
}

.case-interior .page-hero__lede {
  max-width: 34rem;
  margin: 0;
  font-size: 1.08rem;
  line-height: 1.65;
  color: var(--ink-soft);
}

.case-interior__section-label {
  margin: 0 0 1rem;
  font-family: var(--sans);
  font-size: var(--text-meta, 0.72rem);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--faint);
}

.case-interior__ledger {
  margin: 0 0 clamp(2rem, 5vw, 2.75rem);
  max-width: 42rem;
}

.case-interior__stages {
  counter-reset: case-stage;
  max-width: 42rem;
  margin: 0;
}

.case-interior__stages > div {
  position: relative;
  grid-template-columns: minmax(10.5rem, 14rem) minmax(0, 1fr);
  padding: 1.45rem 0 1.45rem 2.65rem;
  counter-increment: case-stage;
}

.case-interior__stages > div::before {
  content: counter(case-stage, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 1.55rem;
  font-family: var(--sans);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--faint);
}

.case-interior__stages dt {
  color: var(--muted);
}

.case-interior__stages dd {
  font-size: 1.12rem;
  line-height: 1.45;
}

.case-interior__read {
  margin: 0 0 clamp(1.5rem, 4vw, 2.25rem);
  max-width: 38rem;
  padding-top: clamp(0.5rem, 2vw, 1rem);
  border-top: 1px solid var(--line-soft, var(--line));
}

.case-interior__prose {
  max-width: 36rem;
}

.case-interior__prose p {
  margin: 0 0 1rem;
  font-size: 1.02rem;
  line-height: 1.7;
  color: var(--ink-soft);
}

.case-interior__prose p:last-child {
  margin-bottom: 0;
}

/* Article interiors: briefing badge row under kicker */
.article .page-hero--craft .briefing-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.55rem;
  margin: 0 0 0.95rem;
}

@media (max-width: 560px) {
  .case-interior__stages > div {
    padding-left: 2.35rem;
  }
}


/* ============================================================
   FOOTER CONTRAST SSOT (v26.1) - MUST stay last for cascade
   Charcoal band + light text. Paper ink tokens are unreadable here.
   Bug: .site-footer__nav a { color: var(--ink-soft) } made links vanish.
   ============================================================ */



.site-footer {
  background: var(--footer-bg) !important;
  color: var(--footer-text) !important;
  border-top: none !important;
}

.site-footer,
.site-footer * {
  /* Kill inherited body paper ink on any footer child */
  color: inherit;
}

.site-footer .note {
  color: var(--footer-text-soft) !important;
  max-width: 32rem;
}

.site-footer strong,
.site-footer .site-footer__nav strong {
  color: var(--footer-heading) !important;
}

.site-footer a,
.site-footer .site-footer__nav a {
  color: var(--footer-link) !important;
  text-decoration: none;
}

.site-footer a:hover,
.site-footer .site-footer__nav a:hover,
.site-footer a:focus-visible,
.site-footer .site-footer__nav a:focus-visible {
  color: var(--footer-link-hover) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.site-footer .site-footer__tag {
  color: var(--footer-text-soft) !important;
}

.site-footer a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}



/* ============================================================
   v28.3 GO - hero craft refine (thesis H1 frozen; governance support)
   ============================================================ */
.hero--v283 .hero__body--thin {
  max-width: 32rem;
  font-family: var(--serif);
  font-size: clamp(1.15rem, 2.2vw, 1.35rem);
  line-height: 1.4;
  letter-spacing: -0.015em;
  color: var(--ink-soft);
  margin-bottom: 0.85rem;
}

.hero--v283 .hero__support {
  margin: 0 0 2.5rem;
  max-width: 28rem;
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--muted);
}

.hero--v283 .hero__ctas {
  flex-wrap: wrap;
  gap: 0.75rem 1.35rem;
}

@media (max-width: 720px) {
  .hero--v283 .hero__ctas {
    gap: 0.65rem 1rem;
  }
  .hero--v283 .hero__ctas .btn--ghost-quiet {
    font-size: 0.9rem;
  }
  .hero--v283 .hero__support {
    margin-bottom: 1.75rem;
  }
}

/* ============================================================
   v28.5 freeze-safe craft slice
   Homepage rhythm · signature diagram · process strip ·
   pattern + briefing cards · CTA weight
   LOCKED: dual-tone paper/charcoal · blue accent · gold staff-only
   No form · no platform · no logo · no conversion theater
   ============================================================ */

/* --- On-page anchors (scannability, not sticky CTA) --- */
.home-anchors {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 1.15rem;
  margin: 0 0 clamp(0.5rem, 2vw, 1rem);
  padding: 0.85rem 0 1.1rem;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  max-width: min(40rem, 100%);
}

.home-anchors a {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  padding-bottom: 0.1rem;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.home-anchors a:hover {
  color: var(--accent);
  border-bottom-color: var(--accent);
  text-decoration: none;
}

/* --- Observe modules: tighter scannable blocks --- */
.observe-list--modules {
  max-width: min(40rem, 100%);
}

.observe-list--modules > li {
  padding: 1.35rem 0;
}

.observe-list--modules .observe-list__n {
  color: var(--accent);
  font-variant-numeric: tabular-nums;
}

/* --- Signature diagram: first, wider, seen --- */
.alive-diagram--signature {
  margin: 0.25rem 0 2rem !important;
  padding: 1.5rem 0 1.25rem !important;
  max-width: min(42rem, 100%) !important;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: transparent;
}

.section--boardroom .alive-diagram--signature {
  margin-top: 0.5rem !important;
}

.alive-diagram--signature img {
  max-width: min(40rem, 100%);
}

.alive-diagram--signature .alive-diagram__caption {
  max-width: min(34rem, 100%);
  margin-top: 1rem;
  font-size: 0.92rem;
  color: var(--ink-soft);
}

.section__head--sub {
  margin-top: clamp(1.75rem, 4vw, 2.5rem);
  margin-bottom: 0.75rem;
}

.section__subhead {
  margin: 0;
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(1.2rem, 2.2vw, 1.45rem);
  letter-spacing: -0.015em;
  color: var(--ink);
}

/* --- Process strip: Understand → Design → Improve --- */
.section--process .section__head {
  margin-bottom: clamp(1.5rem, 3.5vw, 2rem);
}

.process-strip {
  list-style: none;
  margin: 0 0 1.75rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.75rem 0.5rem;
  max-width: min(48rem, 100%);
}

.process-strip__step {
  flex: 1 1 10.5rem;
  min-width: 9.5rem;
  margin: 0;
  padding: 1.25rem 1.15rem 1.35rem;
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-top: 2px solid var(--accent);
  border-radius: var(--radius-sm);
  box-sizing: border-box;
}

.process-strip__n {
  display: block;
  margin: 0 0 0.55rem;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  color: var(--accent);
  font-variant-numeric: tabular-nums;
}

.process-strip__step h3 {
  margin: 0 0 0.45rem;
  font-family: var(--serif);
  font-weight: 400;
  font-size: 1.25rem;
  letter-spacing: -0.015em;
  color: var(--ink);
}

.process-strip__step p {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.5;
  color: var(--muted);
}

.process-strip__arrow {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0 0.15rem;
  color: var(--faint);
  font-size: 1.1rem;
  line-height: 1;
  list-style: none;
  user-select: none;
}

@media (max-width: 720px) {
  .process-strip {
    flex-direction: column;
    gap: 0.65rem;
  }

  .process-strip__arrow {
    display: none;
  }

  .process-strip__step {
    min-width: 0;
  }
}

/* --- Experience pattern cards (illustrative, not portfolio theater) --- */
.pattern-card-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin: 0 0 1.5rem;
  max-width: min(48rem, 100%);
}

@media (min-width: 720px) {
  .pattern-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.1rem;
  }
}

.pattern-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  margin: 0;
  padding: 1.3rem 1.25rem 1.35rem;
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  text-decoration: none;
  color: inherit;
  box-sizing: border-box;
  transition: border-color 0.18s ease, background-color 0.18s ease;
}

.pattern-card:hover {
  border-color: var(--accent-soft);
  background: var(--bg-elevated);
  text-decoration: none;
}

.pattern-card__meta {
  display: block;
  margin: 0 0 0.45rem;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--faint);
}

.pattern-card__title {
  margin: 0 0 1rem;
  font-family: var(--serif);
  font-weight: 400;
  font-size: 1.15rem;
  line-height: 1.3;
  letter-spacing: -0.015em;
  color: var(--ink);
}

.pattern-card__stages {
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.65rem 0;
  border-top: 1px solid var(--line-soft);
  padding-top: 0.85rem;
}

.pattern-card__stages > div {
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr);
  gap: 0.35rem 0.75rem;
  align-items: start;
}

.pattern-card__stages dt {
  margin: 0;
  font-size: 0.65rem;
  font-weight: 650;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--faint);
  padding-top: 0.15rem;
}

.pattern-card__stages dd {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--ink-soft);
}

@media (max-width: 420px) {
  .pattern-card__stages > div {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }
}

/* --- Briefing cards (scannable, not news carousel) --- */
.briefing-card-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin: 0 0 1.5rem;
  max-width: min(48rem, 100%);
}

@media (min-width: 800px) {
  .briefing-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
  }
}

.briefing-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  margin: 0;
  padding: 1.25rem 1.15rem 1.35rem;
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  text-decoration: none;
  color: inherit;
  box-sizing: border-box;
  transition: border-color 0.18s ease, background-color 0.18s ease;
}

.briefing-card:hover {
  border-color: var(--accent-soft);
  background: var(--bg-elevated);
  text-decoration: none;
}

.briefing-card .briefing-badge {
  margin-bottom: 0.65rem;
  align-self: flex-start;
}

.briefing-card h3 {
  margin: 0 0 0.55rem;
  font-family: var(--serif);
  font-weight: 400;
  font-size: 1.12rem;
  line-height: 1.3;
  letter-spacing: -0.015em;
  color: var(--ink);
}

.briefing-card p {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--muted);
  flex: 1 1 auto;
}

/* Atmosphere measure overrides for wider card grids */
main .pattern-card-grid,
main .briefing-card-grid,
main .process-strip,
main .alive-diagram--signature {
  max-width: min(48rem, 100%);
}

main .home-anchors {
  max-width: min(40rem, 100%);
}

/* --- CTA hierarchy: primary weight, still "Begin a conversation" --- */
.hero--v283 .hero__ctas .btn--primary,
.section--close .hero__ctas .btn--primary {
  min-height: 3rem;
  padding: 0.75rem 1.55rem;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.btn--primary {
  background: var(--ink);
  color: var(--surface-page);
  border: 1px solid var(--ink);
  border-radius: var(--radius-sm);
  box-shadow: none;
}

.btn--primary:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
  box-shadow: none;
  text-decoration: none;
}

/* Primary on charcoal authority bands */
.btn--on-authority,
.section--authority .btn--primary.btn--on-authority,
.section--authority a.btn--primary.btn--on-authority {
  background: var(--surface-page) !important;
  color: var(--ink) !important;
  border-color: var(--surface-page) !important;
}

.btn--on-authority:hover,
.section--authority .btn--primary.btn--on-authority:hover,
.section--authority a.btn--primary.btn--on-authority:hover {
  background: #fff !important;
  color: var(--ink) !important;
  border-color: #fff !important;
}

/* Ghost secondary stays quieter than primary */
.hero--v283 .btn--ghost-quiet {
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--muted);
}

.hero--v283 .btn--ghost-quiet:hover {
  color: var(--accent);
}

.section-link {
  margin: 0.25rem 0 0;
}

.section-link a {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--accent);
  text-decoration: none;
}

.section-link a:hover {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.section-link__sep {
  color: var(--faint);
  margin: 0 0.15rem;
}

/* Experience kicker label spacing under head */
#experience .experience-illustrative {
  margin-top: -0.35rem;
}

/* ===== css/mobile.css ===== */
/* mobile.css - EDEN-MOBILE-REFINEMENT-v1
 * Controlled mobile translation only. No desktop redesign.
 * Preserve: dual-tone · thesis H1 · no forms · staff door · institutional voice
 * Load after alive.css, before footer.css
 */

/* Toggle is mobile-only chrome */
.nav-menu-toggle {
  display: none;
}

/* Desktop/tablet: diagram mobile stack stays hidden */
.diagram-mobile {
  display: none;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* ============================================================
   ≤720px — structural safety + institutional compression
   ============================================================ */
@media (max-width: 720px) {
  :root {
    --space-section: var(--mobile-section);
  }

  html,
  body {
    overflow-x: clip;
  }

  .wrap {
    width: min(100% - (var(--mobile-padding) * 2), var(--wrap));
    margin-inline: auto;
  }

  /* ----- Header: EDEN | STAFF  /  MENU  /  nav panel -----
   * Flex-wrap (not grid): staff is a real flex sibling and cannot clip. */
  .site-header {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center;
    justify-content: space-between;
    column-gap: 0.65rem;
    row-gap: 0.35rem;
    padding-block: 0.85rem 0.95rem;
    margin-bottom: 1.5rem;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow: visible;
  }

  .mark {
    order: 1;
    flex: 1 1 auto;
    min-width: 0;
    max-width: calc(100% - 5rem);
    overflow: hidden;
  }

  .mark a {
    min-height: 2.75rem;
    max-width: 100%;
    font-size: 0.88rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  /* Always shorten wordmark ≤720 so STAFF fits */
  .mark a span {
    display: none !important;
  }

  .btn-staff-door {
    order: 2;
    position: static !important;
    z-index: 2;
    flex: 0 0 auto !important;
    margin-left: 0 !important;
    min-width: 3.25rem;
    min-height: 2.75rem;
    padding: 0.45rem 0.75rem;
    white-space: nowrap;
    width: auto !important;
    max-width: none !important;
  }

  .btn-staff-door__eyebrow {
    display: none !important;
  }

  .btn-staff-door__label {
    font-size: 0.72rem !important;
    letter-spacing: 0.08em;
  }

  .btn-staff-door__label::after {
    content: none !important;
  }

  .header-end {
    order: 3;
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    flex: 1 1 100%;
    width: 100%;
    margin-left: 0 !important;
    gap: 0;
  }

  .site-header > .sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }

  .nav-menu-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    min-height: 2.75rem;
    margin: 0;
    padding: 0.45rem 0;
    border: none;
    border-top: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
    color: var(--ink);
    font-family: var(--sans);
    font-size: 0.72rem;
    font-weight: 650;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    cursor: pointer;
    text-align: left;
  }

  .nav-menu-toggle:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
  }

  .nav-menu-toggle__label::after {
    content: "";
    display: inline-block;
    width: 0.45rem;
    height: 0.45rem;
    margin-left: 0.55rem;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-0.1rem) rotate(45deg);
    vertical-align: middle;
    opacity: 0.7;
  }

  .nav-menu-toggle[aria-expanded="true"] .nav-menu-toggle__label::after {
    transform: translateY(0.1rem) rotate(-135deg);
  }

  .nav-primary {
    width: 100%;
    max-width: 100%;
    display: none;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0;
    font-size: 0.95rem;
    border-bottom: 1px solid var(--line);
    padding-bottom: 0.35rem;
  }

  /* Open state (JS) or no-JS fallback */
  .nav-primary.is-open,
  html:not(.js-nav) .nav-primary {
    display: flex;
  }

  .nav-primary a {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 2.75rem;
    padding: 0.65rem 0;
    border-radius: 0;
    border-bottom: 1px solid var(--line-soft);
    color: var(--ink-soft);
    background: transparent;
  }

  .nav-primary a:last-child {
    border-bottom: none;
  }

  .nav-primary a:hover,
  .nav-primary a[aria-current="page"] {
    color: var(--ink);
    background: transparent;
    font-weight: 600;
  }

  /* ----- Hero compression (hierarchy, not mere scale) ----- */
  .hero,
  .hero--spacious,
  .hero--v24,
  .hero--v241,
  .hero--v283,
  .hero--institution {
    padding-top: clamp(2.25rem, 10vw, 3.25rem) !important;
    padding-bottom: clamp(1.75rem, 6vw, 2.5rem) !important;
    margin-bottom: 0;
  }

  .hero--declare h1,
  .hero--spacious h1,
  .hero--declare.hero--spacious h1,
  .hero--institution h1,
  .hero--v23 h1,
  .hero--v24 h1,
  .hero--v241 h1,
  .hero--v283 h1 {
    font-size: clamp(var(--mobile-h1-tight), 8.2vw, var(--mobile-h1)) !important;
    line-height: 0.95 !important;
    letter-spacing: -0.03em;
    max-width: 12.5ch;
  }

  .hero--v283 .hero-line-soft,
  .hero .hero-line-soft {
    display: block;
    margin-top: 0.55rem;
    font-size: 0.92em;
    line-height: 1.05;
    max-width: 14ch;
  }

  .hero__eyebrow {
    margin-bottom: 1.25rem;
  }

  .hero__body,
  .hero__body--thin {
    font-size: var(--mobile-body);
    line-height: 1.55;
    max-width: 32ch;
    margin-bottom: 0.65rem;
  }

  .hero--v283 .hero__support,
  .hero__support {
    font-size: 0.95rem;
    line-height: 1.5;
    max-width: 30ch;
    margin-bottom: 1.5rem !important;
  }

  .page-hero,
  .page-hero--spacious,
  .page-hero--craft {
    padding-top: clamp(2rem, 9vw, 3rem) !important;
    padding-bottom: clamp(1.5rem, 5vw, 2.25rem) !important;
  }

  .page-hero h1,
  .page-hero--craft h1,
  .page-hero--spacious h1 {
    font-size: clamp(1.85rem, 7vw, 2.45rem) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.025em;
  }

  /* ----- Authority bands: keep power, cut empty height ----- */
  .section--authority,
  .section--pause.section--authority,
  .section--authority.section--close {
    padding-top: 4rem !important; /* 64px */
    padding-bottom: 4rem !important;
    padding-inline: 0;
  }

  .section--pause.section--authority .pause-statement,
  .section--authority .pause-statement {
    font-size: clamp(1.35rem, 5.5vw, 1.75rem) !important;
    line-height: 1.28 !important;
    max-width: 22ch;
  }

  main > .section {
    padding-top: var(--mobile-small-section) !important;
    padding-bottom: var(--mobile-small-section) !important;
  }

  main > .section.section--thin,
  main > .section.section--observe {
    padding-top: 2.5rem !important;
    padding-bottom: 2.5rem !important;
  }

  main > .section.section--authority {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
  }

  /* ----- Home anchors: scannable, no overflow ----- */
  .home-anchors {
    gap: 0.45rem 0.85rem;
    max-width: 100%;
    padding: 0.75rem 0 0.95rem;
    margin-bottom: 0.25rem;
  }

  .home-anchors a {
    font-size: 0.65rem;
    letter-spacing: 0.08em;
  }

  /* ----- Signature diagram → mobile editorial stages ----- */
  .alive-diagram--signature img,
  .alive-diagram--wide img,
  .alive-diagram img {
    /* Keep available for a11y; visual replaced by stack when present */
  }

  .alive-diagram:has(.diagram-mobile) img {
    display: none;
  }

  .diagram-mobile {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--line);
  }

  .diagram-mobile > li {
    display: grid;
    grid-template-columns: 2.5rem minmax(0, 1fr);
    gap: 0.35rem 0.85rem;
    padding: 1rem 0;
    border-bottom: 1px solid var(--line);
  }

  .diagram-mobile__n {
    grid-row: 1 / span 2;
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.12em;
    color: var(--accent);
    padding-top: 0.2rem;
  }

  .diagram-mobile__title {
    margin: 0;
    font-family: var(--serif);
    font-size: 1.15rem;
    font-weight: 400;
    letter-spacing: -0.015em;
    color: var(--ink);
  }

  .diagram-mobile__note {
    margin: 0;
    grid-column: 2;
    font-size: 0.9rem;
    line-height: 1.45;
    color: var(--muted);
  }

  .alive-diagram--signature,
  .section--boardroom .alive-diagram--signature {
    margin: 0.5rem 0 1.5rem !important;
    padding: 0 !important;
    border-top: none !important;
    border-bottom: none !important;
    max-width: 100% !important;
  }

  .alive-diagram__caption {
    margin-top: 1rem;
    max-width: 100%;
    font-size: 0.88rem;
  }

  /* EOM: compress boardroom stack */
  main .section--boardroom .eom--boardroom {
    max-width: 100%;
    padding: 1.35rem 0 1.25rem;
  }

  .eom--boardroom .eom__node {
    font-size: 0.88rem;
  }

  /* ----- Process strip: vertical numbered stages ----- */
  .process-strip {
    flex-direction: column;
    gap: 0.75rem;
    max-width: 100%;
  }

  .process-strip__arrow {
    display: none !important;
  }

  .process-strip__step {
    min-width: 0;
    width: 100%;
    padding: 1.15rem 1.1rem 1.25rem;
  }

  /* Doctrine cards on services: single column editorial */
  .doctrine-grid {
    grid-template-columns: 1fr !important;
    gap: 2rem; /* 32px */
  }

  /* ----- Cards: single-column editorial rhythm ----- */
  .pattern-card-grid,
  .briefing-card-grid,
  .audience-grid {
    grid-template-columns: 1fr !important;
    gap: 2rem !important; /* 32px */
    max-width: 100%;
  }

  .pattern-card,
  .briefing-card,
  .audience-card,
  .doctrine-card {
    padding: 1.25rem 0 1.35rem;
    background: transparent;
    border: none;
    border-top: 1px solid var(--line);
    border-radius: 0;
  }

  .pattern-card:hover,
  .briefing-card:hover,
  .audience-card:hover {
    background: transparent;
    border-color: transparent;
    border-top-color: var(--accent-soft);
  }

  .pattern-card__stages > div {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }

  .pattern-card__stages dt {
    margin-top: 0.55rem;
  }

  .pattern-card__stages > div:first-child dt {
    margin-top: 0;
  }

  .briefing-card h3 {
    font-size: 1.2rem;
  }

  .briefing-card p {
    font-size: 0.95rem;
  }

  /* Experience ledger: decision columns stack */
  .exp-ledger--decision .exp-ledger__grid {
    grid-template-columns: 1fr !important;
    gap: 0.2rem 0;
  }

  .exp-ledger--decision .exp-ledger__grid dt {
    margin-top: 0.65rem;
  }

  .exp-ledger--decision .exp-ledger__grid dt:first-child {
    margin-top: 0;
  }

  .exp-ledger--decision > li {
    padding: 1.5rem 0;
  }

  /* ----- CTA: full-width institutional primary ----- */
  .hero__ctas,
  .section--close .hero__ctas,
  .section--authority.section--close .hero__ctas {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
    max-width: 100%;
    width: 100%;
  }

  .hero__ctas .btn--primary,
  .section--close .hero__ctas .btn--primary,
  .hero--v283 .hero__ctas .btn--primary {
    width: 100%;
    min-height: var(--mobile-cta-h);
    padding: 0.9rem 1.25rem;
    font-size: 0.95rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    border-radius: var(--radius-sm);
    text-align: center;
    justify-content: center;
  }

  .hero__ctas .btn--ghost-quiet,
  .hero__ctas .btn--ghost,
  .hero__ctas .btn--text {
    width: 100%;
    min-height: 2.75rem;
    justify-content: center;
    text-align: center;
  }

  /* ----- Observe / realize ----- */
  .observe-list--modules > li,
  .observe-list > li {
    grid-template-columns: 2.25rem 1fr;
    gap: 0.65rem 0.85rem;
    padding: 1.15rem 0;
  }

  .observe-list p {
    font-size: 1.05rem;
    line-height: 1.4;
  }

  .realize-stack {
    max-width: 100%;
  }

  /* ----- About / prose: memo measure + principle blocks ----- */
  .about-stack,
  .prose-block,
  .prose-block--memo,
  .article__body {
    max-width: 100%;
  }

  .about-stack p,
  .prose-block p,
  .prose-block--memo p,
  .article__body p {
    font-size: var(--mobile-body);
    line-height: 1.65;
    max-width: 36ch; /* editorial measure on narrow viewports */
  }

  .prose-block h2 {
    margin-top: 1.75rem;
  }

  /* Industries: drop desktop card min-height */
  .audience-card {
    min-height: 0 !important;
  }

  .frame-note {
    padding: 1rem 0;
    margin-bottom: 1.5rem;
  }

  .doctrine-card__row {
    padding-block: 0.65rem;
  }

  /* Short authority closes (contact, interiors) */
  .section--authority.section--close {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }

  /* Soft-break hard page-hero line breaks on mobile */
  .page-hero h1 br {
    display: none;
  }

  .principles-list {
    list-style: none;
    margin: 1.25rem 0 0;
    padding: 0;
    counter-reset: principle;
  }

  .principles-list > li {
    counter-increment: principle;
    position: relative;
    padding: 1.15rem 0 1.15rem 0;
    border-top: 1px solid var(--line);
  }

  .principles-list > li::before {
    content: counter(principle, decimal-leading-zero);
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.12em;
    color: var(--accent);
  }

  .principles-list > li strong {
    display: block;
    margin-bottom: 0.35rem;
    font-family: var(--serif);
    font-size: 1.15rem;
    font-weight: 400;
    color: var(--ink);
  }

  /* ----- Contact: email path emphasis ----- */
  .engagement-panel {
    padding: 1.35rem 0;
  }

  .email-chip {
    min-height: 2.75rem;
    width: 100%;
    justify-content: center;
  }

  .contact-list--panel > li {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.45rem;
  }

  /* ----- Insights index ----- */
  .obs-list--journal > li,
  .obs-list--numbers > li {
    padding: 1.35rem 0;
  }

  .obs-list h3 {
    font-size: 1.2rem;
    line-height: 1.3;
  }

  /* ----- Footer compress ----- */
  .site-footer {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }

  .site-footer__nav {
    gap: 1.25rem;
  }

  /* Touch targets */
  .section-link a {
    min-height: 2.5rem;
    display: inline-flex;
    align-items: center;
  }
}

@media (max-width: 390px) {
  .hero--declare h1,
  .hero--spacious h1,
  .hero--declare.hero--spacious h1,
  .hero--institution h1,
  .hero--v23 h1,
  .hero--v24 h1,
  .hero--v241 h1,
  .hero--v283 h1 {
    font-size: 2.8rem !important;
    max-width: 11.5ch;
  }
}

@media (max-width: 340px) {
  .hero--declare h1,
  .hero--v283 h1 {
    font-size: 2.55rem !important;
  }
}

/* ≥721px: desktop/tablet header — mark · nav · staff */
@media (min-width: 721px) {
  .nav-menu-toggle {
    display: none !important;
  }

  .mark a span {
    display: inline !important;
  }

  .header-end {
    display: flex !important;
    flex-direction: row;
    align-items: center;
    flex: 0 1 auto;
    width: auto;
    margin-left: auto !important;
    gap: 1rem;
  }

  .nav-primary {
    display: flex !important;
    flex-direction: row;
    flex-wrap: wrap;
    width: auto;
    border: none;
    padding: 0;
  }

  .btn-staff-door {
    flex-shrink: 0;
    margin-left: 0.35rem;
  }

  .diagram-mobile {
    display: none !important;
  }

  .alive-diagram:has(.diagram-mobile) img {
    display: block;
  }
}

/* ===== css/footer.css ===== */
/* footer.css - charcoal footer contrast SSOT (load LAST in site.css)
 * Never recolor with paper --ink / --ink-soft / --muted.
 */

.site-footer {
  background: var(--footer-bg) !important;
  color: var(--footer-text) !important;
  border-top: none !important;
}

.site-footer,
.site-footer * {
  color: inherit;
}

.site-footer .note {
  color: var(--footer-text-soft) !important;
  max-width: 32rem;
}

.site-footer strong,
.site-footer .site-footer__nav strong {
  color: var(--footer-heading) !important;
}

.site-footer a,
.site-footer .site-footer__nav a {
  color: var(--footer-link) !important;
  text-decoration: none;
}

.site-footer a:hover,
.site-footer .site-footer__nav a:hover,
.site-footer a:focus-visible,
.site-footer .site-footer__nav a:focus-visible {
  color: var(--footer-link-hover) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.site-footer .site-footer__tag {
  color: var(--footer-text-soft) !important;
}

.site-footer a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

