/* Fonts are loaded via Google Fonts <link> tags in index.html (Space Grotesk + Space Mono),
   replacing the self-hosted woff2 files used in the original Next.js build. */
/* MapLibre GL JS CSS is loaded via CDN <link> in index.html. */

:root {
  --ink: #14161a;
  --ink-soft: #1d2026;
  --paper: #f4f3ee;
  --paper-warm: #e8e7e1;
  --green: #34d17e;
  --magenta: #e5219a;
  --amber: #f5c518;
  --dim: #2c313a;
  --muted: #6f756f;
  --line: rgba(20, 22, 26, 0.14);
  --line-dark: rgba(244, 243, 238, 0.14);
  --font-space-grotesk: "Space Grotesk";
  --font-space-mono: "Space Mono";
  --mono: var(--font-space-mono), ui-monospace, monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font-space-grotesk), Arial, sans-serif; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
button, select, input { font: inherit; }
button, select, input, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
.section-shell, .header-inner { width: min(1420px, calc(100% - 64px)); margin: 0 auto; }

.site-header { position: absolute; inset: 0 0 auto; z-index: 30; color: var(--paper); }
.header-inner { height: 88px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; border-bottom: 1px solid var(--line-dark); }
.logo { display: inline-flex; align-items: center; gap: 10px; width: fit-content; font-size: 20px; font-weight: 680; letter-spacing: -.04em; }
.logo .brand-mark { width: 27px; height: 27px; }
.logo > span > span { color: var(--green); }
.header-inner nav { display: flex; gap: 30px; font-size: 13px; color: rgba(244,243,238,.66); }
.header-inner nav a, .header-cta, .text-link { transition: color .18s ease; }
.header-inner nav a:hover, .header-cta:hover, .text-link:hover { color: var(--green); }
.header-cta { justify-self: end; display: inline-flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 620; }
.arrow { display: inline-block; transition: transform .18s ease; font-family: Arial, sans-serif; }
a:hover .arrow-right, button:hover .arrow-right { transform: translateX(4px); }
.arrow-down { transform: rotate(90deg); }
.arrow-up { transform: rotate(-90deg); }

.hero { min-height: 860px; padding-top: 178px; padding-bottom: 92px; display: block; color: var(--paper); position: relative; isolation: isolate; }
.hero::before { content: ""; position: absolute; inset: 0 calc((100vw - 100%) / -2); z-index: -2; background: radial-gradient(circle at 77% 38%, rgba(52,209,126,.13), transparent 28%), linear-gradient(135deg, #111318 0%, #14161a 52%, #1b2024 100%); }
.hero::after { content: ""; position: absolute; inset: 0 calc((100vw - 100%) / -2); z-index: -1; opacity: .5; background-image: linear-gradient(rgba(244,243,238,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(244,243,238,.035) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(black 65%, transparent); }
.eyebrow { display: flex; align-items: center; gap: 10px; font: 10px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: rgba(244,243,238,.56); }
.eyebrow span { width: 7px; height: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px rgba(52,209,126,.1); }
.eyebrow-dark { color: var(--muted); }
.hero-copy { max-width: 1180px; }
.hero h1 { margin: 29px 0 31px; max-width: 1120px; font-size: clamp(66px, 6.2vw, 102px); line-height: .94; letter-spacing: -.07em; font-weight: 560; }
.hero-copy > p { margin: 0; max-width: 900px; color: rgba(244,243,238,.68); font-size: 19px; line-height: 1.65; }
.hero-copy > p strong { color: var(--paper); font-weight: 580; }
.hero-actions { display: flex; gap: 28px; align-items: center; flex-wrap: wrap; margin-top: 38px; }
.button { min-height: 54px; padding: 0 23px; border: 0; border-radius: 4px; display: inline-flex; align-items: center; justify-content: center; gap: 17px; font-weight: 650; font-size: 14px; }
.button-primary { background: var(--green); color: var(--ink); }
.button-dark { background: var(--ink); color: var(--paper); }
.text-link { display: inline-flex; gap: 10px; align-items: center; color: rgba(244,243,238,.66); font-size: 13px; }
.hero-system-rail { max-width: 1120px; margin-top: 55px; display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: center; border: 1px solid var(--line-dark); background: rgba(11,13,16,.48); }
.hero-system-rail > div { min-height: 118px; padding: 22px; display: grid; grid-template-columns: 28px 1fr; gap: 8px 12px; align-content: center; }
.hero-system-rail > div > span { grid-row: 1 / 3; width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; background: var(--dim); color: var(--green); font: 700 8px/1 var(--mono); }
.hero-system-rail strong { font-size: 13px; font-weight: 620; }
.hero-system-rail small { color: rgba(244,243,238,.46); font-size: 9px; line-height: 1.45; }
.hero-system-rail > .arrow { color: var(--amber); font-size: 18px; }
.hero-proof { display: grid; grid-template-columns: repeat(3, 1fr); max-width: 820px; margin-top: 31px; padding-top: 24px; border-top: 1px solid var(--line-dark); }
.hero-proof div { display: grid; gap: 4px; }
.hero-proof strong { color: var(--green); font: 500 16px/1.2 var(--mono); }
.hero-proof span { color: rgba(244,243,238,.46); font-size: 11px; }
.hero-case-card { border: 1px solid rgba(244,243,238,.16); border-radius: 12px; background: rgba(11,13,16,.86); box-shadow: 0 40px 100px rgba(0,0,0,.38); overflow: hidden; transform: translateY(14px); }
.hero-card-top { min-height: 58px; padding: 0 20px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--line-dark); }
.hero-card-top > span { font: 9px/1 var(--mono); letter-spacing: .1em; color: rgba(244,243,238,.46); }
.status-pill { display: inline-flex; align-items: center; min-height: 27px; padding: 0 11px; border-radius: 99px; font: 700 9px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.status-progress { color: var(--green); background: rgba(52,209,126,.12); border: 1px solid rgba(52,209,126,.45); }
.status-investigate { color: #d29f00; background: rgba(245,197,24,.14); border: 1px solid rgba(245,197,24,.55); }
.status-stop { color: var(--magenta); background: rgba(229,33,154,.12); border: 1px solid rgba(229,33,154,.48); }
.hero-case-geometry { min-height: 390px; padding: 20px 20px 0; position: relative; background: linear-gradient(160deg, rgba(244,243,238,.035), transparent); }
.hero-case-geometry svg { width: 100%; height: 310px; }
.geometry-key { display: flex; flex-wrap: wrap; gap: 18px; padding: 12px 4px; border-top: 1px solid var(--line-dark); font: 9px/1 var(--mono); color: rgba(244,243,238,.52); }
.geometry-key span { display: flex; gap: 7px; align-items: center; }
.geometry-key i { width: 8px; height: 8px; border-radius: 2px; }
.key-amber { background: var(--amber); } .key-dark { background: #555c68; } .key-green { background: var(--green); } .key-magenta { background: var(--magenta); }
.hero-case-findings { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.hero-case-findings div { padding: 18px; display: grid; gap: 7px; border-right: 1px solid var(--line-dark); }
.hero-case-findings div:last-child { border-right: 0; }
.hero-case-findings span { font: 8px/1 var(--mono); text-transform: uppercase; color: rgba(244,243,238,.4); }
.hero-case-findings strong { font-size: 11px; line-height: 1.35; font-weight: 570; }
.hero-case-card > p { margin: 0; padding: 15px 20px; color: rgba(244,243,238,.38); font-size: 10px; }

.case-section { padding: 132px 0 118px; }
.section-heading { display: grid; grid-template-columns: 1fr minmax(320px, 520px); gap: 70px; align-items: end; margin-bottom: 62px; }
.section-heading h2 { margin: 21px 0 0; font-size: clamp(44px, 4.5vw, 70px); line-height: .98; letter-spacing: -.06em; font-weight: 560; }
.section-heading > p { margin: 0; color: var(--muted); font-size: 16px; line-height: 1.7; }
.case-provenance { display: grid; grid-template-columns: 1.4fr 1fr .7fr; background: var(--ink); color: var(--paper); border-radius: 8px 8px 0 0; overflow: hidden; }
.case-provenance > div { min-height: 76px; padding: 16px 20px; display: grid; align-content: center; gap: 6px; border-right: 1px solid var(--line-dark); }
.case-provenance > div:last-child { border-right: 0; }
.case-provenance span { font: 8px/1 var(--mono); text-transform: uppercase; letter-spacing: .08em; color: rgba(244,243,238,.42); }
.case-provenance strong { font-size: 12px; font-weight: 580; }
.case-provenance button { width: fit-content; padding: 0; border: 0; background: transparent; color: var(--green); font-size: 12px; text-decoration: underline; text-underline-offset: 3px; }
.outcome-reveal { display: grid; grid-template-columns: .6fr 1.6fr auto; gap: 25px; align-items: center; padding: 18px 22px; background: rgba(52,209,126,.09); border: 1px solid rgba(52,209,126,.35); border-top: 0; }
.outcome-reveal > span { font: 8px/1.4 var(--mono); color: #12894b; }
.outcome-reveal p { margin: 0; font-size: 12px; line-height: 1.5; }
.outcome-reveal a { display: flex; gap: 9px; align-items: center; color: #12894b; font-size: 11px; font-weight: 650; }
.brief-result-grid { display: grid; grid-template-columns: 1.45fr .75fr; border: 1px solid var(--line); border-top: 0; background: #fff; }
.brief-builder, .decision-card { padding: 28px; }
.brief-builder { border-right: 1px solid var(--line); }
.panel-title, .decision-top, .map-workspace-top > div:first-child { display: flex; gap: 13px; align-items: center; }
.panel-title > span, .decision-top > div > span, .map-workspace-top > div:first-child > span { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 50%; background: var(--ink); color: var(--paper); font: 9px/1 var(--mono); }
.panel-title div, .map-workspace-top > div:first-child > div { display: grid; gap: 3px; }
.panel-title strong, .map-workspace-top strong { font-size: 13px; }
.panel-title small, .map-workspace-top small { color: var(--muted); font-size: 10px; }
.brief-fields { display: grid; grid-template-columns: 1.1fr 1fr 1fr 1fr; gap: 16px; margin-top: 27px; }
.brief-fields label, .brief-fields fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.brief-fields label > span, .brief-fields legend { display: block; margin-bottom: 8px; color: var(--muted); font: 8px/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.brief-fields select { width: 100%; min-height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 3px; background: var(--paper); color: var(--ink); font-size: 12px; }
.segmented { display: grid; grid-template-columns: repeat(3, 1fr); min-height: 44px; border: 1px solid var(--line); border-radius: 3px; overflow: hidden; }
.segmented.two { grid-template-columns: repeat(2, 1fr); }
.segmented button { border: 0; border-right: 1px solid var(--line); background: var(--paper); font-size: 12px; }
.segmented button:last-child { border-right: 0; }
.segmented button small { margin-left: 2px; font-size: 8px; color: var(--muted); }
.segmented button.active { background: var(--amber); color: var(--ink); font-weight: 700; }
.documented-capacity { margin-top: 25px; display: grid; gap: 8px; }
.documented-capacity > span { color: var(--muted); font: 8px/1 var(--mono); text-transform: uppercase; }
.documented-capacity > div { height: 22px; position: relative; border-radius: 2px; background: var(--paper-warm); overflow: hidden; }
.documented-capacity i { position: absolute; inset: 0 auto 0 0; background: var(--green); transition: width .25s ease; }
.documented-capacity b { position: relative; z-index: 1; display: block; padding: 4px 9px; font: 700 9px/1.6 var(--mono); }
.documented-capacity small { color: var(--muted); font-size: 9px; }
.decision-card { background: var(--ink); color: var(--paper); transition: box-shadow .2s ease; }
.decision-card.decision-stop { box-shadow: inset 5px 0 0 var(--magenta); }
.decision-card.decision-investigate { box-shadow: inset 5px 0 0 var(--amber); }
.decision-card.decision-progress { box-shadow: inset 5px 0 0 var(--green); }
.decision-top { justify-content: space-between; }
.decision-top > div { display: flex; align-items: center; gap: 10px; }
.decision-top > div > span { background: var(--paper); color: var(--ink); }
.decision-top small { font: 8px/1 var(--mono); text-transform: uppercase; color: rgba(244,243,238,.43); }
.decision-card h3 { margin: 30px 0 12px; font-size: 28px; line-height: 1.08; letter-spacing: -.04em; }
.decision-card > p { margin: 0; color: rgba(244,243,238,.58); font-size: 12px; line-height: 1.62; }
.decision-metrics { display: grid; grid-template-columns: repeat(3, 1fr); margin: 28px 0; border: 1px solid var(--line-dark); }
.decision-metrics div { padding: 12px; display: grid; gap: 5px; border-right: 1px solid var(--line-dark); }
.decision-metrics div:last-child { border-right: 0; }
.decision-metrics span { color: rgba(244,243,238,.4); font-size: 8px; }
.decision-metrics strong { font: 500 15px/1 var(--mono); }
.memo-button { width: 100%; min-height: 46px; border: 1px solid rgba(244,243,238,.25); border-radius: 3px; background: transparent; color: var(--paper); display: flex; align-items: center; justify-content: space-between; padding: 0 14px; font-size: 11px; font-weight: 620; }
.change-explainer { display: grid; grid-template-columns: 190px 1fr; gap: 20px; padding: 18px 24px; background: var(--amber); }
.change-explainer span { font: 700 9px/1.6 var(--mono); text-transform: uppercase; }
.change-explainer p { margin: 0; font-size: 12px; line-height: 1.55; }

.map-workspace { margin-top: 28px; border: 1px solid var(--line); background: #fff; }
.map-workspace-top { min-height: 72px; padding: 0 20px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--line); }
.view-tabs { display: flex; gap: 5px; padding: 4px; border-radius: 4px; background: var(--paper); }
.view-tabs button { min-height: 35px; padding: 0 13px; border: 0; border-radius: 3px; background: transparent; color: var(--muted); font-size: 10px; }
.view-tabs button.active { background: var(--ink); color: var(--paper); }
.map-workspace-grid { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(310px, .75fr); min-height: 690px; }
.case-map-shell { position: relative; min-width: 0; background: var(--paper-warm); }
.case-map { position: absolute; inset: 0; }
.maplibregl-map { font-family: var(--font-space-grotesk), Arial, sans-serif; }
.maplibregl-ctrl-group { border-radius: 3px !important; box-shadow: 0 2px 14px rgba(20,22,26,.15) !important; }
.maplibregl-ctrl-attrib { font-size: 9px !important; }
.map-loading { position: absolute; inset: 0; z-index: 5; display: grid; place-items: center; align-content: center; gap: 12px; background: var(--paper-warm); font: 9px/1 var(--mono); color: var(--muted); }
.map-loading span { width: 22px; height: 22px; border: 2px solid var(--line); border-top-color: var(--green); border-radius: 50%; animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.map-fallback { position: absolute; inset: 0; z-index: 3; overflow: hidden; background: #e6e5df; }
.map-fallback-land { background: #e8e7e1; }.map-fallback-networks { background: #e0e7e3; }.map-fallback-environment { background: #dfe8dd; }.map-fallback-resilience { background: #dfe1e3; }
.fallback-grid { position: absolute; inset: 0; opacity: .7; background-image: linear-gradient(rgba(20,22,26,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(20,22,26,.08) 1px, transparent 1px); background-size: 46px 46px; }
.fallback-site { position: absolute; left: 28%; top: 24%; width: 36%; height: 48%; clip-path: polygon(10% 5%, 78% 0, 100% 27%, 87% 66%, 64% 65%, 58% 100%, 12% 87%, 27% 70%, 28% 51%, 0 48%); background: rgba(245,197,24,.19); border: 0; outline: 3px solid var(--amber); }
.fallback-layer { position: absolute; inset: 18% 14% 20%; }
.fallback-layer i { position: absolute; display: block; }
.fallback-layer-site i:nth-child(1), .fallback-layer-planning i:nth-child(1) { inset: 10% 24% 16%; border: 4px solid var(--amber); clip-path: polygon(8% 0, 88% 5%, 100% 40%, 82% 100%, 16% 87%, 0 48%); }
.fallback-layer-planning i:nth-child(1) { border-color: var(--magenta); background: rgba(229,33,154,.12); }
.fallback-layer-heritage i { width: 15px; height: 15px; border-radius: 50%; background: var(--magenta); box-shadow: 0 0 0 5px rgba(229,33,154,.13); }.fallback-layer-heritage i:nth-child(1) { left: 68%; top: 38%; }.fallback-layer-heritage i:nth-child(2) { left: 72%; top: 58%; }
.fallback-layer-power i { left: 8%; right: 8%; height: 4px; background: var(--green); transform-origin: left; }.fallback-layer-power i:nth-child(1) { top: 30%; transform: rotate(20deg); }.fallback-layer-power i:nth-child(2) { top: 66%; transform: rotate(-18deg); }
.fallback-layer-water i, .fallback-layer-telecoms i { top: 12%; bottom: 8%; left: 66%; width: 6px; background: var(--green); transform: rotate(8deg); }.fallback-layer-telecoms i { left: 69%; width: 4px; background: repeating-linear-gradient(to bottom, var(--ink) 0 7px, transparent 7px 12px); }
.fallback-layer-flood i:first-child { inset: 54% 0 8% 43%; border-radius: 50% 0 0 0; background: rgba(229,33,154,.24); }.fallback-layer-flood i:nth-child(2) { left: 17%; right: 6%; top: 22%; height: 4px; background: var(--magenta); transform: rotate(-5deg); }
.fallback-layer-ecology i:first-child { left: 4%; top: 24%; width: 32%; height: 50%; border: 3px solid var(--green); background: rgba(52,209,126,.18); }.fallback-layer-ecology i:nth-child(2) { right: 6%; bottom: 10%; width: 30%; height: 30%; border-radius: 50%; background: rgba(52,209,126,.2); }
.fallback-copy { position: absolute; left: 50%; bottom: 102px; width: min(360px, calc(100% - 32px)); transform: translateX(-50%); padding: 16px; display: grid; gap: 5px; text-align: center; color: var(--paper); background: rgba(20,22,26,.94); box-shadow: 0 8px 28px rgba(20,22,26,.2); }
.fallback-copy span { color: var(--green); font: 7px/1 var(--mono); text-transform: uppercase; }.fallback-copy strong { font-size: 13px; }.fallback-copy small { color: rgba(244,243,238,.52); font-size: 8px; line-height: 1.45; }
.map-view-controls { position: absolute; left: 14px; top: 14px; z-index: 4; display: flex; gap: 5px; padding: 4px; background: rgba(244,243,238,.94); border-radius: 4px; box-shadow: 0 4px 18px rgba(20,22,26,.14); }
.map-view-controls button { min-height: 31px; padding: 0 10px; border: 0; border-radius: 2px; background: transparent; font-size: 9px; }
.map-view-controls button:hover { background: var(--ink); color: var(--paper); }
.map-active-layer { position: absolute; left: 14px; top: 62px; z-index: 4; width: min(310px, calc(100% - 300px)); padding: 12px 14px; display: grid; gap: 5px; border-radius: 4px; color: var(--paper); background: rgba(20,22,26,.93); border: 1px solid rgba(244,243,238,.18); box-shadow: 0 6px 22px rgba(20,22,26,.2); pointer-events: none; }
.map-active-layer > span { color: var(--green); font: 7px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.map-active-layer > strong { font-size: 12px; line-height: 1.35; }
.layer-status { display: flex; align-items: center; gap: 6px; color: rgba(244,243,238,.55); font: 7px/1 var(--mono); text-transform: uppercase; }
.layer-status i { width: 7px; height: 7px; border-radius: 50%; }
.layer-status-public-record i { background: var(--green); }
.layer-status-derived i { background: var(--amber); }
.layer-status-incomplete i { background: var(--magenta); }
.layer-status-required i { background: transparent; border: 1px solid var(--paper); }
.coordinate-readout { position: absolute; left: 14px; bottom: 58px; z-index: 4; display: grid; gap: 3px; padding: 8px 10px; border-radius: 3px; background: rgba(20,22,26,.9); color: var(--paper); font: 8px/1.35 var(--mono); pointer-events: none; }
.map-trust-legend { position: absolute; left: 14px; right: 14px; bottom: 13px; z-index: 4; display: flex; flex-wrap: wrap; gap: 16px; width: fit-content; padding: 9px 11px; border-radius: 3px; background: rgba(244,243,238,.94); box-shadow: 0 4px 18px rgba(20,22,26,.12); font: 8px/1 var(--mono); }
.map-trust-legend span { display: flex; gap: 6px; align-items: center; }
.map-trust-legend i { width: 8px; height: 8px; border-radius: 50%; }
.trust-public { background: var(--green); } .trust-derived { background: var(--amber); } .trust-incomplete { background: var(--magenta); } .trust-required { background: transparent; border: 1px solid var(--ink); }
.evidence-drawer { border-left: 1px solid var(--line); display: grid; grid-template-rows: auto 1fr; background: var(--paper); }
.drawer-list { display: grid; border-bottom: 1px solid var(--line); }
.drawer-list > p { margin: 0; padding: 12px 16px; color: var(--muted); background: var(--paper-warm); border-bottom: 1px solid var(--line); font-size: 8px; line-height: 1.45; }
.drawer-list button { min-height: 70px; padding: 12px 16px; border: 0; border-bottom: 1px solid var(--line); background: transparent; text-align: left; display: grid; grid-template-columns: 1fr auto; gap: 7px 10px; align-items: center; }
.drawer-list button:last-child { border-bottom: 0; }
.drawer-list button.active { background: #fff; box-shadow: inset 4px 0 0 var(--amber); }
.drawer-list button .evidence-status { grid-column: 1 / -1; }
.drawer-list button strong { font-size: 11px; }
.drawer-detail { padding: 24px 20px 26px; background: #fff; }
.drawer-detail > div:first-child { display: flex; align-items: center; justify-content: space-between; }
.drawer-detail > div:first-child > span { color: var(--muted); font: 8px/1 var(--mono); text-transform: uppercase; }
.evidence-status { width: fit-content; display: inline-flex; gap: 6px; align-items: center; font: 7px/1 var(--mono); letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.evidence-status i { width: 7px; height: 7px; border-radius: 50%; }
.evidence-public-record i { background: var(--green); }
.evidence-derived i { background: var(--amber); }
.evidence-incomplete i { background: var(--magenta); }
.evidence-required i { background: transparent; border: 1px solid var(--ink); }
.drawer-detail h3 { margin: 24px 0 10px; font-size: 24px; line-height: 1.08; letter-spacing: -.04em; }
.drawer-detail > p { margin: 0; font-size: 12px; line-height: 1.62; color: var(--muted); }
.drawer-detail dl { margin: 22px 0; border-top: 1px solid var(--line); }
.drawer-detail dl div { padding: 10px 0; display: grid; grid-template-columns: 68px 1fr; gap: 10px; border-bottom: 1px solid var(--line); }
.drawer-detail dt { font: 7px/1.45 var(--mono); text-transform: uppercase; color: var(--muted); }
.drawer-detail dd { margin: 0; font-size: 9px; line-height: 1.5; }
.drawer-detail > a { display: inline-flex; align-items: center; gap: 9px; font-size: 10px; font-weight: 680; color: #12894b; }
.gate-strip { display: grid; grid-template-columns: repeat(5, 1fr); margin-top: 28px; border: 1px solid var(--line); background: #fff; }
.gate-strip > div { min-height: 132px; padding: 17px; display: grid; grid-template-columns: auto 1fr; gap: 7px 9px; align-content: start; border-right: 1px solid var(--line); }
.gate-strip > div:last-child { border-right: 0; }
.gate-dot { width: 8px; height: 8px; margin-top: 2px; border-radius: 50%; }
.gate-pass { background: var(--green); } .gate-watch { background: var(--amber); } .gate-stop { background: var(--magenta); }
.gate-strip span { font: 8px/1 var(--mono); color: var(--muted); }
.gate-strip strong, .gate-strip small { grid-column: 1 / -1; }
.gate-strip strong { margin-top: 5px; font-size: 11px; }
.gate-strip small { color: var(--muted); font-size: 9px; line-height: 1.45; }

.method-section { padding: 128px 0; background: var(--paper-warm); }
.method-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.method-grid article { padding: 16px 16px 24px; background: var(--paper); border: 1px solid var(--line); }
.method-grid article > span { display: inline-grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; background: var(--ink); color: var(--paper); font: 8px/1 var(--mono); }
.method-grid h3 { margin: 22px 5px 9px; font-size: 18px; letter-spacing: -.03em; }
.method-grid p { margin: 0 5px 20px; min-height: 76px; color: var(--muted); font-size: 11px; line-height: 1.55; }
.method-grid article > small { margin: 0 5px; color: #12894b; font: 8px/1 var(--mono); text-transform: uppercase; }
.method-art { height: 190px; margin-top: 15px; position: relative; overflow: hidden; border-radius: 9px; background: var(--ink); }
.art-grid { position: absolute; inset: 0; opacity: .5; background-image: linear-gradient(rgba(244,243,238,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(244,243,238,.06) 1px, transparent 1px); background-size: 32px 32px; }
.art-parcel { position: absolute; left: 34px; top: 35px; width: 108px; height: 116px; background: rgba(245,197,24,.15); border: 2px solid var(--amber); clip-path: polygon(9% 8%, 78% 0, 100% 31%, 83% 83%, 35% 100%, 0 70%); }
.art-parcel i { position: absolute; background: var(--dim); }
.art-parcel i:nth-child(1) { left: 25px; top: 30px; width: 55px; height: 27px; }
.art-parcel i:nth-child(2) { left: 38px; top: 69px; width: 45px; height: 18px; }
.art-parcel i:nth-child(3) { left: 12px; top: 88px; width: 14px; height: 14px; border-radius: 50%; background: var(--amber); }
.art-stack { position: absolute; right: 28px; top: 38px; display: grid; gap: 10px; }
.art-stack span { min-width: 88px; padding: 9px 10px; border: 1px solid #343943; border-radius: 4px; color: var(--paper); font: 8px/1 var(--mono); }
.art-stack span:last-child { border-color: var(--green); color: var(--green); }
.evidence-plane { position: absolute; left: 35px; width: 130px; height: 62px; transform: skewY(-8deg); border: 1px solid; }
.plane-one { top: 33px; border-color: var(--amber); background: rgba(245,197,24,.13); }
.plane-two { top: 61px; left: 52px; border-color: var(--green); background: rgba(52,209,126,.1); }
.plane-three { top: 89px; left: 69px; border-color: var(--magenta); background: rgba(229,33,154,.1); }
.lineage-rail { position: absolute; right: 32px; top: 39px; width: 2px; height: 110px; background: #424852; }
.lineage-rail i { position: absolute; left: -5px; width: 12px; height: 12px; border-radius: 50%; background: var(--green); }
.lineage-rail i:nth-child(2) { top: 49px; background: var(--amber); }.lineage-rail i:nth-child(3) { top: 98px; background: var(--magenta); }
.art-gates { display: flex; align-items: center; justify-content: center; gap: 13px; }
.art-gates > span { width: 28px; height: 2px; background: #4a5059; z-index: 1; }
.gate-node { width: 48px; height: 58px; z-index: 1; display: grid; place-items: center; border-radius: 9px; border: 1px solid; background: var(--ink); font: 700 18px/1 var(--mono); }
.node-pass { color: var(--green); border-color: var(--green); }.node-check { color: var(--amber); border-color: var(--amber); }.node-stop { color: var(--magenta); border-color: var(--magenta); }
.memo-sheet { position: absolute; inset: 18px 42px; padding: 17px; border-radius: 5px; background: var(--paper); display: grid; align-content: start; gap: 9px; }
.memo-sheet b { width: fit-content; padding: 5px 8px; border-radius: 99px; background: rgba(52,209,126,.18); color: #12894b; font: 700 7px/1 var(--mono); }
.memo-sheet i { height: 3px; background: #b5b7b1; }.memo-sheet i:nth-of-type(2) { width: 70%; }.memo-sheet i:last-child { width: 45%; }
.memo-sheet span { padding: 8px; background: var(--ink); color: var(--paper); font: 7px/1 var(--mono); }

.sources-section { padding: 128px 0; color: var(--paper); background: var(--ink); }
.sources-section .section-heading h2 { color: var(--paper); }
.sources-section .section-heading > p { color: rgba(244,243,238,.55); }
.source-table { border-top: 1px solid var(--line-dark); }
.source-row { min-height: 78px; display: grid; grid-template-columns: .8fr 1fr 1.25fr 1.1fr; gap: 22px; align-items: center; border-bottom: 1px solid var(--line-dark); }
.source-row strong { font-size: 12px; }
.source-row a { color: var(--green); font-size: 11px; text-decoration: underline; text-underline-offset: 3px; }
.source-row span, .source-row small { color: rgba(244,243,238,.58); font-size: 10px; line-height: 1.45; }
.source-row small { color: rgba(244,243,238,.38); }
.source-header { min-height: 44px; font: 8px/1 var(--mono); text-transform: uppercase; }
.source-header span { font-size: 8px; color: rgba(244,243,238,.32); }
.source-note { max-width: 980px; margin: 28px 0 0; padding-left: 14px; border-left: 2px solid var(--amber); color: rgba(244,243,238,.48); font-size: 10px; line-height: 1.6; }

.architecture-section { padding: 128px 0; }
.architecture-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 100px; align-items: center; }
.architecture-grid h2, .about-grid h2 { margin: 22px 0; font-size: clamp(44px, 4.5vw, 68px); line-height: .98; letter-spacing: -.06em; font-weight: 560; }
.architecture-grid > div:first-child > p { max-width: 520px; color: var(--muted); font-size: 14px; line-height: 1.7; }
.architecture-stack { display: grid; gap: 10px; }
.architecture-stack article { min-height: 126px; padding: 22px; display: grid; grid-template-columns: auto 1fr auto; gap: 18px; align-items: center; background: #fff; border: 1px solid var(--line); box-shadow: 0 12px 30px rgba(20,22,26,.05); }
.architecture-stack article:nth-child(2) { transform: translateX(-24px); }
.architecture-stack article:nth-child(3) { transform: translateX(-48px); }
.architecture-stack article > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--ink); color: var(--paper); font: 8px/1 var(--mono); }
.architecture-stack strong { font-size: 15px; }
.architecture-stack p { margin: 7px 0 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.architecture-stack small { color: #12894b; font: 8px/1 var(--mono); text-transform: uppercase; }

.signal-section { padding: 115px 0; color: var(--paper); background: linear-gradient(135deg, #171a20, #101316); }
.signal-section .section-shell { display: grid; grid-template-columns: 1fr 1.1fr; gap: 90px; align-items: center; }
.signal-copy h2 { margin: 22px 0; font-size: clamp(45px, 4.5vw, 68px); line-height: .98; letter-spacing: -.06em; font-weight: 560; }
.signal-copy p { max-width: 620px; color: rgba(244,243,238,.58); font-size: 14px; line-height: 1.7; }
.signal-copy a { display: inline-flex; align-items: center; gap: 10px; margin-top: 14px; color: var(--green); font-size: 11px; }
.signal-numbers { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line-dark); }
.signal-numbers div { min-height: 190px; padding: 24px; display: grid; align-content: center; gap: 10px; border-right: 1px solid var(--line-dark); }
.signal-numbers div:last-child { border-right: 0; }
.signal-numbers strong { color: var(--green); font: 500 clamp(34px, 3.7vw, 56px)/1 var(--mono); }
.signal-numbers span { color: rgba(244,243,238,.48); font-size: 10px; line-height: 1.4; }

.about-section { padding: 128px 0; color: var(--paper); background: var(--ink); }
.about-grid { display: grid; grid-template-columns: .55fr 1.45fr; gap: 100px; align-items: center; }
.about-mark { min-height: 430px; display: grid; place-items: center; border: 1px solid var(--line-dark); background-image: linear-gradient(rgba(244,243,238,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(244,243,238,.045) 1px, transparent 1px); background-size: 38px 38px; }
.about-mark .brand-mark { width: 210px; height: 210px; filter: drop-shadow(0 25px 40px rgba(0,0,0,.35)); }
.about-grid h2 { max-width: 760px; color: var(--paper); }
.about-grid > div:last-child > p { max-width: 790px; color: rgba(244,243,238,.58); font-size: 15px; line-height: 1.7; }
.about-facts { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 45px; padding-top: 22px; border-top: 1px solid var(--line-dark); }
.about-facts div { display: grid; gap: 5px; }
.about-facts strong { color: var(--green); font: 500 24px/1 var(--mono); }.about-facts span { color: rgba(244,243,238,.4); font-size: 10px; }

.closing-section { padding: 120px 0; }
.closing-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 100px; align-items: end; }
.closing-grid h2 { margin: 22px 0 0; font-size: clamp(46px, 4.8vw, 72px); line-height: .98; letter-spacing: -.06em; font-weight: 560; }
.closing-grid p { margin: 0 0 28px; color: var(--muted); font-size: 15px; line-height: 1.7; }
.site-footer { padding: 42px 0; color: var(--paper); background: #0d0f12; }
.footer-grid { display: grid; grid-template-columns: .7fr 1fr auto; gap: 36px; align-items: center; }
.footer-grid > p { margin: 0; color: rgba(244,243,238,.45); font-size: 11px; }
.footer-grid > div { display: flex; gap: 20px; font-size: 10px; }
.footer-grid > small { grid-column: 1 / -1; padding-top: 20px; border-top: 1px solid var(--line-dark); color: rgba(244,243,238,.3); font-size: 9px; }

.memo-overlay { position: fixed; inset: 0; z-index: 100; overflow: auto; padding: 76px 28px 60px; background: rgba(10,12,15,.95); }
.memo-toolbar { position: fixed; inset: 0 0 auto; z-index: 101; height: 58px; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; color: var(--paper); background: #08090b; border-bottom: 1px solid var(--line-dark); }
.memo-toolbar > div { display: flex; gap: 10px; align-items: center; }
.memo-toolbar .brand-mark { width: 23px; height: 23px; }
.memo-toolbar span { font: 9px/1 var(--mono); text-transform: uppercase; }
.memo-toolbar button { min-height: 32px; padding: 0 12px; border: 1px solid var(--line-dark); border-radius: 3px; background: transparent; color: var(--paper); font-size: 9px; }
.memo-pages { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; }
.memo-page { min-height: 790px; padding: 36px; color: var(--ink); background: #fff; box-shadow: 0 20px 60px rgba(0,0,0,.35); }
.memo-page > header { padding-bottom: 15px; display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); color: var(--muted); font: 7px/1 var(--mono); }
.memo-title-row { margin: 34px 0; display: flex; justify-content: space-between; gap: 20px; align-items: start; }
.memo-title-row p { margin: 0 0 7px; color: var(--muted); font: 8px/1 var(--mono); }
.memo-title-row h2, .memo-page > h2 { margin: 0; font-size: 31px; line-height: 1.05; letter-spacing: -.045em; }
.memo-case-grid { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line); }
.memo-case-grid div { padding: 11px; display: grid; gap: 5px; border-right: 1px solid var(--line); }
.memo-case-grid div:last-child { border-right: 0; }
.memo-case-grid span { color: var(--muted); font: 7px/1 var(--mono); }.memo-case-grid strong { font-size: 9px; }
.memo-callout { margin: 24px 0; padding: 22px; background: var(--paper); border-left: 4px solid var(--green); }
.memo-callout span, .memo-page h4 { color: var(--muted); font: 7px/1 var(--mono); text-transform: uppercase; }
.memo-callout h3 { margin: 12px 0 8px; font-size: 18px; }.memo-callout p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.memo-page h4 { margin: 28px 0 12px; }
.memo-gates { border-top: 1px solid var(--line); }
.memo-gates > div { padding: 10px 0; display: grid; grid-template-columns: auto 30px 1fr; gap: 8px; align-items: start; border-bottom: 1px solid var(--line); }
.memo-gates span { font: 7px/1.5 var(--mono); color: var(--muted); }.memo-gates strong { font-size: 9px; }.memo-gates small { grid-column: 3; color: var(--muted); font-size: 8px; line-height: 1.4; }
.memo-page > footer { margin-top: 28px; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: 7px; line-height: 1.45; }
.memo-page > h2 { margin: 34px 0 14px; }.memo-intro { margin: 0 0 24px; color: var(--muted); font-size: 9px; line-height: 1.55; }
.memo-source-list { border-top: 1px solid var(--line); }
.memo-source-list > div { min-height: 65px; padding: 10px 0; display: grid; grid-template-columns: 25px 1fr auto; gap: 10px; align-items: center; border-bottom: 1px solid var(--line); }
.memo-source-list > div > span { font: 7px/1 var(--mono); color: var(--muted); }.memo-source-list > div > div { display: grid; gap: 4px; }.memo-source-list strong { font-size: 9px; }.memo-source-list small { color: var(--muted); font-size: 7px; }
.memo-next { margin-top: 25px; padding: 18px; background: var(--ink); color: var(--paper); }.memo-next > span { font: 7px/1 var(--mono); color: var(--green); text-transform: uppercase; }.memo-next ol { margin: 13px 0 0; padding-left: 18px; }.memo-next li { margin: 6px 0; color: rgba(244,243,238,.65); font-size: 8px; line-height: 1.4; }

/* Expanded qualification prototype */
.hero-live-tag { color: var(--green) !important; font: 700 8px/1 var(--mono) !important; letter-spacing: .08em; }
.scenario-presets { min-height: 58px; padding: 9px 12px; display: flex; align-items: center; gap: 7px; flex-wrap: wrap; border: 1px solid var(--line); border-top: 0; background: var(--paper-warm); }
.scenario-presets > span { margin: 0 8px; color: var(--muted); font: 8px/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.scenario-presets button { min-height: 34px; padding: 0 12px; border: 1px solid var(--line); border-radius: 3px; background: var(--paper); color: var(--ink); font-size: 10px; }
.scenario-presets button:hover, .scenario-presets button:focus-visible { border-color: var(--ink); background: #fff; }
.brief-result-expanded { grid-template-columns: minmax(0, 1.7fr) minmax(330px, .62fr); border-top: 0; align-items: stretch; }
.brief-result-expanded .brief-builder { padding: 30px; }
.brief-groups { margin-top: 25px; display: grid; gap: 10px; }
.brief-group { border: 1px solid var(--line); background: var(--paper); }
.brief-group summary { min-height: 54px; padding: 11px 14px; display: grid; grid-template-columns: 34px 1fr minmax(130px, auto) 18px; gap: 11px; align-items: center; list-style: none; cursor: pointer; }
.brief-group summary::-webkit-details-marker { display: none; }
.brief-group summary::after { content: "+"; grid-column: 4; color: var(--muted); font: 14px/1 var(--mono); }
.brief-group[open] summary::after { content: "−"; }
.brief-group summary > span { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 50%; background: var(--ink); color: var(--paper); font: 8px/1 var(--mono); }
.brief-group summary strong { font-size: 12px; }
.brief-group summary small { max-width: 310px; color: var(--muted); font: 8px/1.35 var(--mono); text-align: right; }
.brief-group[open] summary { border-bottom: 1px solid var(--line); background: #fff; }
.brief-fields-three { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 16px; }
.brief-fields-three label, .brief-fields-three fieldset, .derived-field { min-height: 72px; }
.brief-fields-three select { min-height: 42px; background: #fff; }
.range-field { display: grid; align-content: start; }
.range-field > span { display: flex !important; justify-content: space-between; gap: 10px; }
.range-field > span b { color: var(--ink); font-weight: 700; }
.range-field input[type="range"] { width: 100%; margin: 8px 0 0; accent-color: var(--green); cursor: pointer; }
.derived-field { padding: 11px 12px; display: grid; align-content: center; gap: 5px; border: 1px dashed var(--line); background: var(--paper-warm); }
.derived-field span { color: var(--muted); font: 8px/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.derived-field strong { font-size: 12px; }
.derived-field small { color: var(--muted); font-size: 8px; line-height: 1.4; }
.operational-output-grid { margin-top: 18px; display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line); }
.operational-output-grid > div { min-height: 94px; padding: 14px; display: grid; align-content: center; gap: 5px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.operational-output-grid > div:nth-child(3n) { border-right: 0; }
.operational-output-grid > div:nth-last-child(-n+3) { border-bottom: 0; }
.operational-output-grid span { color: var(--muted); font: 7px/1 var(--mono); text-transform: uppercase; }
.operational-output-grid strong { font: 500 17px/1.15 var(--mono); }
.operational-output-grid small { color: var(--muted); font-size: 8px; line-height: 1.35; }
.decision-driver-list { margin: 28px 0; }
.decision-driver-list > span { display: block; margin-bottom: 8px; color: rgba(244,243,238,.4); font: 8px/1 var(--mono); text-transform: uppercase; }
.decision-driver-list > div { padding: 10px 0; display: grid; grid-template-columns: 25px 1fr; gap: 8px; border-top: 1px solid var(--line-dark); }
.decision-driver-list b { color: var(--green); font: 8px/1.5 var(--mono); }
.decision-driver-list p { margin: 0; color: rgba(244,243,238,.62); font-size: 9px; line-height: 1.45; }
.domain-workspace { margin-top: 28px; border: 1px solid var(--line); background: #fff; }
.domain-workspace-head { min-height: 76px; padding: 16px 20px; display: flex; justify-content: space-between; gap: 30px; align-items: center; border-bottom: 1px solid var(--line); }
.domain-workspace-head > div { display: flex; gap: 13px; align-items: center; }
.domain-workspace-head > div > span { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 50%; background: var(--ink); color: var(--paper); font: 9px/1 var(--mono); }
.domain-workspace-head > div > div { display: grid; gap: 3px; }
.domain-workspace-head strong { font-size: 13px; }
.domain-workspace-head small, .domain-workspace-head p { color: var(--muted); font-size: 9px; line-height: 1.4; }
.domain-workspace-head p { max-width: 370px; margin: 0; text-align: right; }
.domain-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.domain-grid article { min-height: 205px; padding: 16px 14px; position: relative; border-right: 1px solid var(--line); }
.domain-grid article:last-child { border-right: 0; }
.domain-grid article > div:first-child { display: flex; justify-content: space-between; gap: 5px; align-items: center; }
.domain-grid article > div:first-child span { color: var(--muted); font: 8px/1 var(--mono); }
.domain-grid article > div:first-child small { color: var(--muted); font-size: 7px; }
.domain-grid article > strong { display: block; min-height: 32px; margin: 18px 0 10px; font-size: 11px; line-height: 1.35; }
.domain-bar { height: 5px; overflow: hidden; background: var(--paper-warm); }
.domain-bar i { display: block; height: 100%; background: var(--green); transition: width .25s ease; }
.domain-grid article > b { display: block; margin-top: 10px; font: 500 18px/1 var(--mono); }
.domain-grid article > b small { color: var(--muted); font-size: 8px; }
.domain-grid article > p { margin: 14px 0 0; color: var(--muted); font-size: 8px; line-height: 1.45; }
.change-explainer-list { margin-top: 0; align-items: start; }
.change-explainer-list > div { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 24px; }
.change-explainer-list p { margin: 0; padding-left: 13px; position: relative; }
.change-explainer-list p::before { content: ""; position: absolute; left: 0; top: .55em; width: 5px; height: 5px; border-radius: 50%; background: var(--ink); }
.map-scenario-card { position: absolute; z-index: 4; right: 12px; top: 102px; width: 235px; padding: 13px; display: grid; gap: 8px; color: var(--paper); background: rgba(20,22,26,.92); border: 1px solid rgba(244,243,238,.2); border-radius: 4px; box-shadow: 0 8px 25px rgba(20,22,26,.2); }
.map-scenario-card > span { color: var(--green); font: 7px/1 var(--mono); letter-spacing: .08em; }
.map-scenario-card > strong { font-size: 13px; }
.map-scenario-card > div { display: grid; grid-template-columns: 55px 1fr; gap: 8px; padding-top: 7px; border-top: 1px solid var(--line-dark); }
.map-scenario-card small { color: rgba(244,243,238,.42); font: 7px/1.3 var(--mono); }
.map-scenario-card b { font-size: 8px; line-height: 1.35; font-weight: 540; }
.gate-strip { grid-template-columns: repeat(7, 1fr); }
.gate-strip > div { min-height: 154px; }

/* Capability model */
.capability-section { padding: 128px 0; background: var(--paper-warm); }
.capability-workspace { display: grid; grid-template-columns: 280px minmax(0, 1fr); border: 1px solid var(--line); background: #fff; }
.capability-tabs { display: grid; align-content: start; border-right: 1px solid var(--line); background: var(--paper); }
.capability-tabs button { min-height: 84px; padding: 14px 16px; display: grid; grid-template-columns: 1fr auto; gap: 6px 10px; text-align: left; border: 0; border-bottom: 1px solid var(--line); background: transparent; }
.capability-tabs button:last-child { border-bottom: 0; }
.capability-tabs button.active { background: var(--ink); color: var(--paper); box-shadow: inset 4px 0 0 var(--green); }
.capability-tabs button span { font-size: 11px; font-weight: 650; }
.capability-tabs button b { color: var(--muted); font: 500 15px/1 var(--mono); }
.capability-tabs button small { grid-column: 1 / -1; color: var(--muted); font-size: 8px; }
.capability-tabs button.active b { color: var(--green); }
.capability-tabs button.active small { color: rgba(244,243,238,.45); }
.capability-panel { min-width: 0; }
.capability-panel-head { min-height: 178px; padding: 28px 30px; display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: end; border-bottom: 1px solid var(--line); }
.capability-panel-head > div:first-child > span { color: #12894b; font: 8px/1 var(--mono); letter-spacing: .08em; }
.capability-panel-head h3 { margin: 12px 0 8px; font-size: 34px; line-height: 1; letter-spacing: -.045em; }
.capability-panel-head p { max-width: 650px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.feature-legend { display: flex; gap: 14px; flex-wrap: wrap; }
.feature-legend span { display: flex; align-items: center; gap: 6px; color: var(--muted); font: 7px/1 var(--mono); text-transform: uppercase; }
.feature-legend i { width: 7px; height: 7px; border-radius: 50%; }
.feature-interactive { background: var(--green); }.feature-case { background: var(--amber); }.feature-roadmap { border: 1px solid var(--muted); }
.feature-list { display: grid; grid-template-columns: repeat(2, 1fr); }
.feature-list > div { min-height: 68px; padding: 13px 18px; display: grid; grid-template-columns: 36px 1fr auto; gap: 10px; align-items: center; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.feature-list > div:nth-child(2n) { border-right: 0; }
.feature-list > div:nth-last-child(-n+2) { border-bottom: 0; }
.feature-list > div > span { color: var(--muted); font: 8px/1 var(--mono); }
.feature-list > div > strong { font-size: 10px; line-height: 1.35; }
.feature-state { min-height: 21px; padding: 0 7px; display: inline-flex; align-items: center; border-radius: 99px; font: 7px/1 var(--mono); text-transform: uppercase; white-space: nowrap; }
.feature-state-interactive { color: #12894b; background: rgba(52,209,126,.13); }.feature-state-case { color: #8a6900; background: rgba(245,197,24,.2); }.feature-state-roadmap { color: var(--muted); border: 1px solid var(--line); }

/* Data fabric */
.data-section { padding: 128px 0; color: var(--paper); background: var(--ink); }
.data-section .section-heading h2 { color: var(--paper); }
.data-section .section-heading > p { color: rgba(244,243,238,.55); }
.data-kpis { display: grid; grid-template-columns: repeat(5, 1fr); border: 1px solid var(--line-dark); }
.data-kpis > div { min-height: 132px; padding: 20px; display: grid; align-content: center; gap: 8px; border-right: 1px solid var(--line-dark); }
.data-kpis > div:last-child { border-right: 0; }
.data-kpis strong { color: var(--green); font: 500 clamp(25px, 2.4vw, 38px)/1 var(--mono); }
.data-kpis span { color: rgba(244,243,238,.46); font-size: 9px; }
.coverage-panel { margin-top: 24px; display: grid; grid-template-columns: .8fr 1.2fr; gap: 60px; padding: 32px; border: 1px solid var(--line-dark); background: #191c21; }
.coverage-copy > span { color: var(--amber); font: 8px/1 var(--mono); letter-spacing: .08em; }
.coverage-copy h3 { margin: 13px 0 10px; font-size: 26px; letter-spacing: -.04em; }
.coverage-copy p { margin: 0; color: rgba(244,243,238,.5); font-size: 10px; line-height: 1.55; }
.coverage-bars { display: grid; align-content: center; gap: 17px; }
.coverage-bars > div { display: grid; grid-template-columns: 145px 1fr 25px; gap: 12px; align-items: center; }
.coverage-bars span { color: rgba(244,243,238,.6); font-size: 9px; }
.coverage-bars i { height: 7px; overflow: hidden; background: #2c313a; }
.coverage-bars i b { display: block; height: 100%; background: var(--green); }
.coverage-bars strong { font: 500 11px/1 var(--mono); }
.data-workspace { margin-top: 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.cluster-list, .dataset-example-list { border: 1px solid var(--line-dark); }
.data-panel-title { min-height: 67px; padding: 14px 16px; display: flex; gap: 11px; align-items: center; border-bottom: 1px solid var(--line-dark); }
.data-panel-title > span { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 50%; background: var(--paper); color: var(--ink); font: 8px/1 var(--mono); }
.data-panel-title > div { display: grid; gap: 3px; }.data-panel-title strong { font-size: 12px; }.data-panel-title small { color: rgba(244,243,238,.38); font-size: 8px; }
.cluster-row { min-height: 48px; padding: 9px 14px; display: grid; grid-template-columns: minmax(190px, 1.1fr) 1fr 24px; gap: 12px; align-items: center; border-bottom: 1px solid var(--line-dark); }
.cluster-row:last-child { border-bottom: 0; }.cluster-row span { color: rgba(244,243,238,.6); font-size: 9px; line-height: 1.3; }.cluster-row i { height: 4px; background: #2c313a; }.cluster-row i b { display: block; height: 100%; background: var(--amber); }.cluster-row > strong { font: 500 9px/1 var(--mono); }
.dataset-example-list > div:not(.data-panel-title) { min-height: 48px; padding: 9px 14px; display: grid; grid-template-columns: 42px 1fr auto; gap: 10px; align-items: center; border-bottom: 1px solid var(--line-dark); }
.dataset-example-list > div:last-child { border-bottom: 0; }.dataset-example-list > div > span { color: var(--green); font: 8px/1 var(--mono); }.dataset-example-list > div > div { display: grid; gap: 3px; }.dataset-example-list > div > div strong { font-size: 9px; }.dataset-example-list > div > div small { color: rgba(244,243,238,.38); font-size: 7px; }.dataset-example-list > div > b { min-height: 21px; padding: 0 7px; display: inline-flex; align-items: center; border-radius: 99px; font: 7px/1 var(--mono); text-transform: uppercase; }
.rag-green { color: var(--green); background: rgba(52,209,126,.12); }.rag-amber { color: var(--amber); background: rgba(245,197,24,.12); }
.architecture-inline { margin-top: 24px; display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line-dark); }
.architecture-inline article { min-height: 150px; padding: 22px; display: grid; grid-template-columns: auto 1fr; gap: 12px 15px; align-content: center; border-right: 1px solid var(--line-dark); }
.architecture-inline article:last-child { border-right: 0; }.architecture-inline article > span { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 50%; background: var(--green); color: var(--ink); font: 8px/1 var(--mono); }.architecture-inline article strong { font-size: 13px; }.architecture-inline article p { margin: 6px 0 0; color: rgba(244,243,238,.45); font-size: 9px; line-height: 1.45; }.architecture-inline article small { grid-column: 2; color: var(--amber); font: 7px/1 var(--mono); text-transform: uppercase; }

/* Memorandum additions */
.memo-brief-grid { margin-top: 10px; display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line); }
.memo-brief-grid > div { min-height: 49px; padding: 9px; display: grid; gap: 5px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.memo-brief-grid > div:nth-child(3n) { border-right: 0; }.memo-brief-grid > div:nth-last-child(-n+3) { border-bottom: 0; }
.memo-brief-grid span { color: var(--muted); font: 6px/1 var(--mono); text-transform: uppercase; }.memo-brief-grid strong { font-size: 8px; line-height: 1.3; }
.memo-domain-list { border-top: 1px solid var(--line); }
.memo-domain-list > div { min-height: 51px; padding: 8px 0; display: grid; grid-template-columns: 25px 1fr 30px; gap: 9px; align-items: center; border-bottom: 1px solid var(--line); }
.memo-domain-list > div > span { color: var(--muted); font: 7px/1 var(--mono); }.memo-domain-list > div > div { display: grid; gap: 3px; }.memo-domain-list strong { font-size: 8px; }.memo-domain-list small { color: var(--muted); font-size: 6px; line-height: 1.35; }.memo-domain-list > div > b { font: 500 12px/1 var(--mono); text-align: right; }
.memo-sensitivity { margin: 20px 0; padding: 15px; background: var(--paper); }.memo-sensitivity > span { color: var(--muted); font: 7px/1 var(--mono); text-transform: uppercase; }.memo-sensitivity ul { margin: 10px 0 0; padding-left: 15px; }.memo-sensitivity li { margin: 5px 0; font-size: 7px; line-height: 1.4; }

@media (max-width: 1180px) {
  .hero { min-height: 820px; }.hero h1 { max-width: 980px; }
  .hero-system-rail > div { min-height: 126px; }
  .brief-fields { grid-template-columns: repeat(2, 1fr); }
  .map-workspace-grid { grid-template-columns: 1.5fr .8fr; }.method-grid { grid-template-columns: repeat(2, 1fr); }.method-grid p { min-height: auto; }
  .gate-strip { grid-template-columns: repeat(3, 1fr); }.gate-strip > div:nth-child(3) { border-right: 0; }.gate-strip > div:nth-child(-n+3) { border-bottom: 1px solid var(--line); }
  .domain-grid { grid-template-columns: repeat(4, 1fr); }.domain-grid article { border-bottom: 1px solid var(--line); }.domain-grid article:nth-child(4n) { border-right: 0; }.domain-grid article:nth-last-child(-n+3) { border-bottom: 0; }
  .capability-workspace { grid-template-columns: 240px minmax(0, 1fr); }.feature-list { grid-template-columns: 1fr; }.feature-list > div:nth-child(n) { border-right: 0; border-bottom: 1px solid var(--line); }.feature-list > div:last-child { border-bottom: 0; }
}

@media (max-width: 900px) {
  .section-shell, .header-inner { width: min(100% - 36px, 720px); }
  .header-inner { grid-template-columns: 1fr auto; }.header-inner nav { display: none; }
  .hero { min-height: auto; padding-top: 142px; }.hero h1 { font-size: clamp(56px, 11vw, 78px); }
  .hero-system-rail { grid-template-columns: 1fr; }.hero-system-rail > .arrow { display: none; }.hero-system-rail > div { min-height: 92px; border-bottom: 1px solid var(--line-dark); }.hero-system-rail > div:last-child { border-bottom: 0; }
  .section-heading { grid-template-columns: 1fr; gap: 25px; }.case-provenance { grid-template-columns: 1fr 1fr; }.case-provenance > div:last-child { grid-column: 1 / -1; border-top: 1px solid var(--line-dark); }
  .outcome-reveal { grid-template-columns: 1fr; }.brief-result-grid { grid-template-columns: 1fr; }.brief-builder { border-right: 0; border-bottom: 1px solid var(--line); }
  .map-workspace-top { padding: 16px; align-items: flex-start; gap: 18px; flex-direction: column; }.map-workspace-grid { grid-template-columns: 1fr; }.case-map-shell { min-height: 650px; }.evidence-drawer { border-left: 0; border-top: 1px solid var(--line); }
  .architecture-grid, .signal-section .section-shell, .about-grid, .closing-grid { grid-template-columns: 1fr; gap: 55px; }.architecture-stack article:nth-child(n) { transform: none; }.about-mark { min-height: 320px; }
  .source-row { grid-template-columns: .7fr 1fr 1.2fr; }.source-row > :last-child { display: none; }.source-header > :last-child { display: none; }
  .memo-pages { grid-template-columns: 1fr; max-width: 570px; }.memo-page { min-height: auto; }
  .domain-workspace-head { align-items: flex-start; }.domain-grid { grid-template-columns: repeat(2, 1fr); }.domain-grid article:nth-child(4n) { border-right: 1px solid var(--line); }.domain-grid article:nth-child(2n) { border-right: 0; }.domain-grid article:nth-last-child(-n+3) { border-bottom: 1px solid var(--line); }.domain-grid article:last-child { border-bottom: 0; }
  .capability-workspace { grid-template-columns: 1fr; }.capability-tabs { grid-template-columns: repeat(4, 1fr); border-right: 0; border-bottom: 1px solid var(--line); }.capability-tabs button { border-right: 1px solid var(--line); }.capability-tabs button:nth-child(4) { border-right: 0; }.capability-panel-head { grid-template-columns: 1fr; align-items: start; }
  .coverage-panel, .data-workspace { grid-template-columns: 1fr; gap: 28px; }.architecture-inline { grid-template-columns: 1fr; }.architecture-inline article { border-right: 0; border-bottom: 1px solid var(--line-dark); }.architecture-inline article:last-child { border-bottom: 0; }
}

@media (max-width: 620px) {
  .section-shell, .header-inner { width: calc(100% - 26px); }.header-cta { font-size: 0; }.header-cta .arrow { font-size: 16px; }
  .hero { padding-top: 122px; padding-bottom: 70px; }.hero h1 { font-size: 53px; }.hero-copy > p { font-size: 16px; }.hero-system-rail { margin-top: 40px; }.hero-system-rail > div { padding: 18px 15px; }.hero-proof { gap: 10px; }.hero-proof strong { font-size: 12px; }
  .case-section, .capability-section, .data-section, .method-section, .sources-section, .architecture-section, .about-section { padding: 92px 0; }.section-heading { margin-bottom: 42px; }.section-heading h2, .architecture-grid h2, .about-grid h2, .signal-copy h2, .closing-grid h2 { font-size: 44px; }
  .case-provenance { grid-template-columns: 1fr; }.case-provenance > div { border-right: 0; border-bottom: 1px solid var(--line-dark); }.case-provenance > div:last-child { grid-column: auto; border-top: 0; border-bottom: 0; }
  .brief-builder, .brief-result-expanded .brief-builder, .decision-card { padding: 22px 16px; }.brief-fields { grid-template-columns: 1fr; }.brief-group summary { grid-template-columns: 32px 1fr 18px; }.brief-group summary small { display: none; }.brief-group summary::after { grid-column: 3; }.operational-output-grid { grid-template-columns: 1fr 1fr; }.operational-output-grid > div:nth-child(n) { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }.operational-output-grid > div:nth-child(2n) { border-right: 0; }.operational-output-grid > div:nth-last-child(-n+2) { border-bottom: 0; }.decision-metrics { grid-template-columns: 1fr; }.decision-metrics div { border-right: 0; border-bottom: 1px solid var(--line-dark); }.decision-metrics div:last-child { border-bottom: 0; }.change-explainer { grid-template-columns: 1fr; gap: 8px; }.change-explainer-list > div { grid-template-columns: 1fr; }
  .view-tabs { width: 100%; overflow-x: auto; }.view-tabs button { white-space: nowrap; }.case-map-shell { min-height: 620px; }.coordinate-readout { left: 8px; bottom: 77px; }.map-trust-legend { left: 8px; right: 8px; bottom: 9px; width: calc(100% - 16px); gap: 9px; }.map-view-controls { left: 8px; top: 8px; }.map-active-layer { left: 8px; top: 54px; width: calc(100% - 16px); }.map-scenario-card { top: 158px; }
  .gate-strip { grid-template-columns: 1fr; }.gate-strip > div { border-right: 0; border-bottom: 1px solid var(--line); }.gate-strip > div:last-child { border-bottom: 0; }
  .method-grid { grid-template-columns: 1fr; }.source-row { min-height: 94px; grid-template-columns: 1fr 1fr; gap: 8px 14px; }.source-row > span { grid-column: 1 / -1; }.source-header { display: none; }
  .architecture-stack article { grid-template-columns: auto 1fr; }.architecture-stack article > small { grid-column: 2; }.signal-section { padding: 90px 0; }.signal-numbers { grid-template-columns: 1fr; }.signal-numbers div { min-height: 110px; border-right: 0; border-bottom: 1px solid var(--line-dark); }.signal-numbers div:last-child { border-bottom: 0; }.about-facts { gap: 15px; }.about-mark .brand-mark { width: 150px; height: 150px; }
  .footer-grid { grid-template-columns: 1fr; }.memo-overlay { padding: 72px 10px 30px; }.memo-toolbar { padding: 0 10px; }.memo-toolbar span { display: none; }.memo-page { padding: 23px 18px; }.memo-case-grid { grid-template-columns: repeat(2, 1fr); }.memo-case-grid div:nth-child(2) { border-right: 0; }.memo-case-grid div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }.memo-source-list > div { grid-template-columns: 20px 1fr; }.memo-source-list .evidence-status { grid-column: 2; }
  .scenario-presets { align-items: stretch; }.scenario-presets > span { width: 100%; padding: 6px 0; }.scenario-presets button { flex: 1 1 42%; }.domain-workspace-head { display: grid; }.domain-workspace-head p { text-align: left; }.domain-grid { grid-template-columns: 1fr; }.domain-grid article:nth-child(n) { min-height: 170px; border-right: 0; border-bottom: 1px solid var(--line); }.domain-grid article:last-child { border-bottom: 0; }.map-scenario-card { top: 158px; right: 8px; width: 210px; }.capability-tabs { grid-template-columns: 1fr 1fr; }.capability-tabs button:nth-child(n) { border-right: 1px solid var(--line); }.capability-tabs button:nth-child(2n) { border-right: 0; }.capability-panel-head { padding: 22px 18px; }.feature-list > div { grid-template-columns: 32px 1fr; }.feature-list .feature-state { grid-column: 2; width: fit-content; }.data-kpis { grid-template-columns: 1fr 1fr; }.data-kpis > div { min-height: 100px; border-bottom: 1px solid var(--line-dark); }.data-kpis > div:nth-child(2n) { border-right: 0; }.data-kpis > div:last-child { grid-column: 1 / -1; border-bottom: 0; }.coverage-panel { padding: 22px 16px; }.coverage-bars > div { grid-template-columns: 1fr 28px; }.coverage-bars > div > i { grid-column: 1 / -1; grid-row: 2; }.cluster-row { grid-template-columns: 1fr 24px; }.cluster-row i { grid-column: 1 / -1; grid-row: 2; }.memo-brief-grid { grid-template-columns: repeat(2, 1fr); }.memo-brief-grid > div:nth-child(n) { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }.memo-brief-grid > div:nth-child(2n) { border-right: 0; }.memo-brief-grid > div:nth-last-child(-n+2) { border-bottom: 0; }
}

@media print {
  body > * { visibility: hidden; }
  .memo-overlay, .memo-overlay * { visibility: visible; }
  .memo-overlay { position: absolute; inset: 0; padding: 0; background: #fff; overflow: visible; }
  .memo-toolbar { display: none; }
  .memo-pages { display: block; max-width: none; }
  .memo-page { min-height: 100vh; box-shadow: none; break-after: page; }
}
