:root {
  --ink: #101820;
  --ink-2: #17242d;
  --ink-3: #22323d;
  --paper: #f3f2ed;
  --paper-2: #e8e6df;
  --paper-3: #d8d5cc;
  --white: #fff;
  --cyan: #6ed0db;
  --cyan-deep: #197f8e;
  --blue: #6b98de;
  --amber: #d6a34b;
  --red: #d96a67;
  --green: #73b58e;
  --muted: #9cabb4;
  --muted-dark: #52636e;
  --line: rgba(16, 24, 32, .16);
  --line-dark: rgba(255, 255, 255, .14);
  --shadow: 0 24px 70px rgba(5, 11, 15, .16);
  --radius: .55rem;
  --radius-lg: 1.1rem;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
  --container: 78rem;
  --container-wide: 92rem;
  --header-h: 4.8rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 1.5rem); }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 1rem; line-height: 1.65; text-rendering: optimizeLegibility; }
body::selection { color: var(--ink); background: var(--cyan); }
img, svg { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button, select { cursor: pointer; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .22em; }
a:hover { text-decoration-color: var(--cyan-deep); }
p, ul, ol, blockquote { max-width: 72ch; }
h1, h2, h3, h4 { margin: 0 0 .75rem; line-height: 1.04; letter-spacing: -.035em; text-wrap: balance; }
h1 { font-size: clamp(2.65rem, 7vw, 6.8rem); font-weight: 750; }
h2 { font-size: clamp(2rem, 4.4vw, 4.5rem); font-weight: 720; }
h3 { font-size: clamp(1.18rem, 2vw, 1.55rem); }
code, pre, .mono { font-family: var(--mono); font-size: .88em; }
pre { overflow: auto; }
hr { border: 0; border-top: 1px solid currentColor; opacity: .18; margin: 2rem 0; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--cyan); outline-offset: 4px; }

.container, .container-wide { width: min(100% - 2rem, var(--container)); margin-inline: auto; }
.container-wide { width: min(100% - 2rem, var(--container-wide)); }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 1000; top: .5rem; left: .5rem; transform: translateY(-180%); background: var(--cyan); color: var(--ink); padding: .75rem 1rem; font-weight: 800; }
.skip-link:focus { transform: translateY(0); }
.eyebrow { margin: 0 0 1.15rem; font-family: var(--mono); font-size: .78rem; line-height: 1.3; letter-spacing: .13em; font-weight: 800; text-transform: uppercase; color: var(--cyan-deep); }
.section-dark .eyebrow, .section-graphite .eyebrow, .page-hero .eyebrow, .site-footer .eyebrow, .lab-workspace-section .eyebrow { color: var(--cyan); }
.hero-lede, .section-intro { font-size: clamp(1.12rem, 2.2vw, 1.5rem); line-height: 1.5; }
.section-intro { color: var(--muted-dark); }
.section { padding: clamp(4.2rem, 8vw, 8.5rem) 0; }
.section-light { background: var(--paper); }
.section-dark { color: var(--paper); background: var(--ink); }
.section-graphite { color: var(--paper); background: var(--ink-2); }

.site-header { position: sticky; z-index: 100; top: 0; height: var(--header-h); color: var(--paper); background: rgba(16, 24, 32, .94); border-bottom: 1px solid var(--line-dark); backdrop-filter: blur(18px); }
.header-rail { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: .75rem; color: inherit; text-decoration: none; }
.brand img { width: 2.4rem; height: 2.4rem; }
.brand-word { font-size: 1rem; font-weight: 850; letter-spacing: .16em; }
.primary-nav { display: flex; align-items: center; gap: clamp(.8rem, 2vw, 1.7rem); font-size: .82rem; font-weight: 700; letter-spacing: .035em; white-space: nowrap; }
.primary-nav a { text-decoration: none; color: #d7dee2; border-bottom: 2px solid transparent; padding: .75rem 0; }
.primary-nav a:hover, .primary-nav a[aria-current="page"] { color: var(--white); border-bottom-color: var(--cyan); }
.primary-nav .nav-contact { padding: .62rem .95rem; border: 1px solid rgba(255,255,255,.32); border-radius: var(--radius); }
.primary-nav .nav-contact:hover, .primary-nav .nav-contact[aria-current="page"] { color: var(--ink); background: var(--cyan); border-color: var(--cyan); }
.nav-toggle { display: none; width: 2.8rem; height: 2.8rem; padding: .6rem; color: inherit; background: transparent; border: 1px solid var(--line-dark); border-radius: var(--radius); }
.nav-toggle span:not(.sr-only) { display: block; width: 100%; height: 2px; margin: 4px 0; background: currentColor; }

.flash-stack { position: relative; z-index: 20; padding-top: 1rem; }
.flash { padding: 1rem 1.2rem; border-left: .3rem solid var(--blue); background: var(--white); box-shadow: var(--shadow); }
.flash-supported { border-color: var(--green); }
.flash-qualification { border-color: var(--amber); }
.flash-invalidated { border-color: var(--red); }

.button-row { display: flex; align-items: center; flex-wrap: wrap; gap: .85rem; margin-top: 2rem; }
.button { display: inline-flex; min-height: 3rem; align-items: center; justify-content: center; padding: .8rem 1.15rem; border: 1px solid currentColor; border-radius: var(--radius); font-size: .78rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; transition: transform .16s ease, background-color .16s ease, border-color .16s ease; }
.button:hover { transform: translateY(-2px); text-decoration: none; }
.button-primary { color: var(--ink); background: var(--cyan); border-color: var(--cyan); }
.button-primary:hover { background: #91e4eb; border-color: #91e4eb; }
.button-secondary { color: inherit; background: transparent; border-color: currentColor; }
.button-secondary:hover { color: var(--ink); background: var(--paper); border-color: var(--paper); }
.section-light .button-secondary, .lab-controls .button-secondary, .admin-page .button-secondary { color: var(--ink); }
.section-light .button-secondary:hover, .lab-controls .button-secondary:hover, .admin-page .button-secondary:hover { color: var(--paper); background: var(--ink); border-color: var(--ink); }
.button-quiet { color: var(--muted); background: transparent; border-color: rgba(255,255,255,.2); }
.section-light .button-quiet, .lab-controls .button-quiet, .admin-page .button-quiet { color: var(--muted-dark); border-color: var(--line); }
.button-block { width: 100%; }
.text-link { display: inline-flex; font-weight: 750; color: inherit; background: transparent; border: 0; padding: .4rem 0; }

.status { display: inline-flex; align-items: center; gap: .35rem; width: fit-content; padding: .3rem .5rem; border: 1px solid currentColor; border-radius: .25rem; font-family: var(--mono); font-size: .68rem; font-weight: 800; line-height: 1.25; letter-spacing: .04em; text-transform: uppercase; }
.status-supported { color: #266944; background: rgba(115,181,142,.12); }
.status-qualified { color: #8a5b0e; background: rgba(214,163,75,.12); }
.status-invalidated { color: #982d2a; background: rgba(217,106,103,.12); }
.section-dark .status-supported, .section-graphite .status-supported, .lab-workspace-section .status-supported { color: #a2e0b8; }
.section-dark .status-qualified, .section-graphite .status-qualified, .lab-workspace-section .status-qualified { color: #f3cb86; }
.section-dark .status-invalidated, .section-graphite .status-invalidated, .lab-workspace-section .status-invalidated { color: #ffaaa7; }

.hero { overflow: hidden; color: var(--paper); background: var(--ink); }
.hero-home { min-height: calc(100vh - var(--header-h)); display: grid; align-items: center; padding: clamp(4rem, 8vw, 8rem) 0; background-image: radial-gradient(circle at 78% 32%, rgba(64,135,150,.18), transparent 35%), linear-gradient(135deg, #0d151b 0%, #111d24 62%, #0b1217 100%); }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(25rem, .96fr); gap: clamp(2rem, 5vw, 6rem); align-items: center; }
.hero-copy h1 span { display: block; margin-bottom: .8rem; font-family: var(--mono); font-size: clamp(.78rem, 1.5vw, 1rem); letter-spacing: .38em; color: var(--cyan); }
.hero-copy p { color: #c4ced4; }
.hero-copy .hero-lede { color: var(--paper); }
.hero-principle { margin-top: 2.5rem; font-family: var(--mono); font-size: .8rem; font-weight: 800; letter-spacing: .11em; }
.hero-visual { position: relative; padding: 1rem; }
.hero-visual::before { content: ""; position: absolute; inset: 9% 8%; border: 1px solid rgba(110,208,219,.22); border-radius: 50%; filter: blur(.2px); }
.hero-visual svg { overflow: visible; }
.graph-lines path { fill: none; stroke: rgba(110,208,219,.36); stroke-width: 2; stroke-dasharray: 5 8; }
.graph-node rect { fill: #17252e; stroke: rgba(255,255,255,.28); stroke-width: 1.5; }
.graph-node text { fill: #e8edef; font-family: var(--mono); font-size: 10px; text-anchor: middle; letter-spacing: .04em; }
.graph-node text:first-of-type { font-size: 12px; font-weight: 800; fill: var(--cyan); }
.graph-node-human rect { stroke: var(--amber); }
.graph-node-outcome rect { stroke: var(--red); }
.graph-node-assurance rect { stroke: var(--green); fill: #172a23; }

.page-hero { color: var(--paper); background: var(--ink); padding: clamp(4.5rem, 9vw, 9rem) 0; background-image: radial-gradient(circle at 80% 20%, rgba(110,208,219,.13), transparent 32%), linear-gradient(145deg, var(--ink), #14232c); }
.page-hero.compact { padding: clamp(3.8rem, 7vw, 6.5rem) 0; }
.page-hero p { color: #c5cfd4; }
.page-hero .hero-lede { color: var(--paper); }
.page-hero-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(3rem, 8vw, 8rem); align-items: center; }
.lab-hero { padding-bottom: 4rem; }
.lab-kicker { display: flex; gap: 1rem; margin-bottom: 1rem; color: var(--cyan); font-size: .78rem; font-weight: 800; letter-spacing: .1em; }

.split-heading { display: grid; grid-template-columns: 1.3fr .7fr; gap: 3rem; align-items: end; margin-bottom: 3rem; }
.question-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); border-top: 1px solid var(--line); }
.question-card { display: grid; grid-template-columns: 3rem 1fr auto; gap: 1rem; align-items: center; min-height: 6rem; padding: 1rem 0; text-align: left; color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid var(--line); }
.question-card:nth-child(odd) { padding-right: 1.5rem; border-right: 1px solid var(--line); }
.question-card:nth-child(even) { padding-left: 1.5rem; }
.question-card:hover, .question-card[aria-pressed="true"] { background: rgba(110,208,219,.08); }
.question-index { color: var(--cyan-deep); }
.question-state { font-size: .72rem; font-weight: 800; text-transform: uppercase; color: var(--muted-dark); }
.question-card[aria-pressed="true"] .question-state { color: #266944; }
.question-card[aria-pressed="true"] .question-state::before { content: "Preserved"; font-size: 0; }
.section-closing { margin-top: 2.8rem; font-size: 1.35rem; }

.statement-grid { display: grid; grid-template-columns: .92fr 1.08fr; gap: clamp(3rem, 8vw, 8rem); align-items: start; }
.causal-stack { border-top: 1px solid var(--line-dark); }
.causal-layer { width: 100%; display: grid; grid-template-columns: 1fr; gap: 0; padding: 1rem 1.2rem; text-align: left; color: var(--paper); background: transparent; border: 0; border-bottom: 1px solid var(--line-dark); }
.causal-layer span { font-family: var(--mono); font-size: .78rem; font-weight: 800; letter-spacing: .08em; }
.causal-layer small { max-height: 0; overflow: hidden; opacity: 0; color: #bdc8ce; transition: max-height .2s ease, opacity .2s ease, margin .2s ease; }
.causal-layer:hover, .causal-layer[aria-expanded="true"] { background: rgba(110,208,219,.08); }
.causal-layer[aria-expanded="true"] small { max-height: 5rem; opacity: 1; margin-top: .45rem; }

.card-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.failure-grid { margin-top: 3rem; grid-template-columns: repeat(5,minmax(0,1fr)); }
.factor-card { min-height: 14rem; padding: 1.35rem; border: 1px solid var(--line-dark); background: rgba(255,255,255,.025); }
.factor-card h3 { margin-top: 2.5rem; text-transform: uppercase; }
.factor-card p { color: #b7c3c9; font-size: .92rem; }
.platform-grid { margin-top: 3rem; }
.platform-card { position: relative; display: flex; flex-direction: column; min-height: 21rem; padding: 1.7rem; text-decoration: none; color: inherit; border: 1px solid currentColor; border-color: var(--line); background: rgba(255,255,255,.45); transition: transform .16s ease, background-color .16s ease; }
.section-graphite .platform-card { border-color: var(--line-dark); background: rgba(255,255,255,.025); }
.platform-card:hover { transform: translateY(-4px); text-decoration: none; background: var(--white); }
.section-graphite .platform-card:hover { color: var(--ink); background: var(--paper); }
.card-index, .lab-number { color: var(--cyan-deep); }
.section-graphite .card-index { color: var(--cyan); }
.platform-card h2, .platform-card h3 { margin-top: 2.4rem; }
.platform-card p { color: var(--muted-dark); }
.section-graphite .platform-card p { color: #b9c5cb; }
.section-graphite .platform-card:hover p { color: var(--muted-dark); }
.card-link { margin-top: auto; padding-top: 2rem; font-size: .78rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }

.declaration-section { color: var(--ink); background: var(--cyan); }
.declaration { text-align: center; }
.declaration p { margin-inline: auto; font-family: var(--mono); font-weight: 800; letter-spacing: .06em; }
.declaration h2 { max-width: 18ch; margin-inline: auto; }
.declaration .button { margin-top: 2rem; color: var(--paper); background: var(--ink); border-color: var(--ink); }
.ecosystem-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin-top: 3rem; }
.ecosystem-card { padding: 2rem; border: 1px solid var(--line-dark); }
.ecosystem-card.is-parent { border-color: var(--cyan); background: rgba(110,208,219,.07); }
.ecosystem-card h3 { margin-top: 3rem; font-size: 2rem; }
.ecosystem-card strong { color: var(--cyan); font-family: var(--mono); font-size: .78rem; letter-spacing: .08em; }
.ecosystem-card p { color: #bbc7cd; }
.ecosystem-card a { font-weight: 800; }
.final-cta { color: var(--paper); background: #0b1116; text-align: center; }
.final-cta h2 { margin-inline: auto; }
.final-cta p, .final-cta .button-row { margin-inline: auto; justify-content: center; }

.site-footer { color: #c0cbd1; background: #090f13; border-top: 1px solid var(--line-dark); padding: 4.5rem 0 1.5rem; }
.footer-grid { display: grid; grid-template-columns: 1.6fr repeat(3,1fr); gap: 3rem; }
.site-footer h2 { margin-bottom: 1.2rem; font-family: var(--mono); font-size: .75rem; letter-spacing: .09em; color: var(--white); text-transform: uppercase; }
.site-footer nav { display: flex; flex-direction: column; align-items: flex-start; gap: .65rem; }
.site-footer nav a { text-decoration: none; color: #b8c4ca; }
.site-footer nav a:hover { color: var(--cyan); }
.footer-principle { margin-top: 2rem; color: var(--white); font-family: var(--mono); font-size: .78rem; font-weight: 800; letter-spacing: .08em; }
.footer-base { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-top: 4rem; padding-top: 1.5rem; border-top: 1px solid var(--line-dark); font-size: .75rem; }

.mono-diagram { display: grid; grid-template-columns: 1fr auto 1fr; gap: .35rem 1rem; align-items: center; padding: 2rem; border: 1px solid var(--line-dark); background: rgba(0,0,0,.12); font-family: var(--mono); font-size: .77rem; }
.mono-diagram span:nth-of-type(odd) { color: var(--cyan); }
.mono-diagram b { color: var(--muted); }
.token-list { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 2rem; }
.token-list span { padding: .55rem .75rem; border: 1px solid var(--line); font-family: var(--mono); font-size: .76rem; }
.two-column { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(3rem, 8vw, 8rem); }
.principle-list { border-top: 1px solid var(--line); }
.principle-list > div { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; padding: 1.1rem 0; border-bottom: 1px solid var(--line); }
.principle-list span { color: var(--cyan-deep); }
.language-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.language-grid > div { padding: 1.5rem; border: 1px solid var(--line-dark); }
.language-grid ul { padding-left: 1.3rem; }
.compact-link-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .6rem; margin-top: 1.5rem; }
.compact-link-grid a { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem; text-decoration: none; border: 1px solid var(--line-dark); }
.section-light .compact-link-grid a, .admin-page .compact-link-grid a { border-color: var(--line); }
.compact-link-grid a:hover { color: var(--ink); background: var(--cyan); }
.compact-link-grid.vertical { grid-template-columns: 1fr; }

.synthetic-notice { padding: 1.2rem 1.4rem; color: var(--ink); background: #f2c979; border-left: .4rem solid #9c680f; box-shadow: var(--shadow); }
.synthetic-notice strong { font-family: var(--mono); font-size: .78rem; letter-spacing: .08em; }
.synthetic-notice p { margin: .45rem 0 0; }
.labs-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; margin-top: 2rem; }
.lab-card { display: flex; flex-direction: column; min-height: 21rem; padding: 2rem; color: var(--ink); text-decoration: none; border: 1px solid var(--line); background: rgba(255,255,255,.45); }
.lab-card:hover { background: var(--white); box-shadow: var(--shadow); transform: translateY(-3px); }
.lab-card h2 { margin-top: 2.5rem; font-size: clamp(1.7rem,3vw,2.7rem); }
.lab-card p { color: var(--muted-dark); }
.scenario-label { margin-top: auto; padding-top: 2rem; font-family: var(--mono); font-size: .68rem; color: var(--cyan-deep); }

.lab-workspace-section { padding-top: 1.5rem; color: var(--paper); background: #0d151b; }
.lab-layout { display: grid; grid-template-columns: 19rem minmax(0,1fr); gap: 1rem; align-items: start; margin-top: 1rem; }
.sticky-panel { position: sticky; top: calc(var(--header-h) + 1rem); }
.lab-controls { padding: 1.35rem; border: 1px solid var(--line-dark); background: var(--ink-2); }
.lab-controls h2 { font-size: 1.3rem; }
.lab-controls form { display: grid; gap: 1rem; margin-top: 1.5rem; }
.lab-controls label, .contact-form label, .admin-edit-form label, .login-card label, .research-filters label { display: grid; gap: .4rem; font-size: .78rem; font-weight: 750; letter-spacing: .02em; }
.toggle-row { grid-template-columns: auto 1fr !important; align-items: start; gap: .65rem !important; }
.toggle-row input { margin-top: .25rem; }
input, select, textarea { width: 100%; color: var(--ink); background: var(--white); border: 1px solid #a8b2b8; border-radius: .25rem; padding: .72rem .78rem; }
input[type="checkbox"] { width: 1.2rem; height: 1.2rem; accent-color: var(--cyan-deep); }
input[type="range"] { padding: 0; accent-color: var(--cyan); }
textarea { resize: vertical; }
output { color: var(--cyan); font-family: var(--mono); }
.clear-state { margin-top: 1rem; color: var(--cyan); }
.judgment-evidence, .machine-recommendation { padding: 1rem; border: 1px solid var(--line-dark); background: rgba(0,0,0,.16); }
.judgment-evidence h3, .machine-recommendation strong { display: block; margin: .45rem 0 .8rem; font-size: 1.05rem; letter-spacing: -.01em; }
.judgment-evidence ul, .machine-recommendation ul { margin: .65rem 0 0; padding-left: 1.15rem; }
.judgment-evidence li, .machine-recommendation li { margin: .3rem 0; color: #c5d0d5; }
.machine-recommendation { border-color: rgba(214,163,75,.72); background: rgba(214,163,75,.08); }
.machine-recommendation:focus { outline: 3px solid var(--amber); outline-offset: 3px; }
.machine-recommendation > strong { color: #f3cb86; font-family: var(--mono); font-size: 1.18rem; letter-spacing: .06em; }
.counter-evidence { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.16); }
.field-message { margin: -.35rem 0 0; color: var(--muted); font-size: .74rem; line-height: 1.45; }
.lab-stage { display: grid; gap: 1rem; }
.lab-panel { padding: clamp(1.2rem, 3vw, 2rem); border: 1px solid var(--line-dark); background: var(--ink-2); }
.lab-explanation { background: linear-gradient(135deg, #17262f, #14212a); }
.lab-explanation h2 { max-width: 22ch; }
.lab-explanation p { color: #bdc8cd; }
.panel-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.panel-heading h2 { font-size: clamp(1.55rem,3vw,2.4rem); }
.view-switcher { display: flex; flex-wrap: wrap; gap: .4rem; padding-bottom: 1rem; }
.view-switcher button, .timeline-controls button { color: var(--paper); background: transparent; border: 1px solid var(--line-dark); padding: .55rem .75rem; font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.view-switcher button.is-active, .view-switcher button:hover, .timeline-controls button:hover { color: var(--ink); background: var(--cyan); border-color: var(--cyan); }
.representation table, .admin-table table, .relationship-table table { width: 100%; border-collapse: collapse; }
.table-scroll { overflow-x: auto; }
table caption { padding: 0 0 1rem; text-align: left; font-weight: 800; }
th, td { padding: .85rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line-dark); }
.section-light th, .section-light td, .admin-page th, .admin-page td { border-color: var(--line); }
thead th { font-family: var(--mono); font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; }
.text-view { padding: 1.25rem; border: 1px solid var(--line-dark); background: rgba(0,0,0,.16); }
.causal-graph-lab { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 1rem; align-items: center; min-height: 20rem; }
.node-column { display: grid; gap: .7rem; }
.node-column span { padding: .8rem; text-align: center; border: 1px solid rgba(110,208,219,.55); background: rgba(110,208,219,.06); font-family: var(--mono); font-size: .72rem; }
.graph-arrow { color: var(--cyan); font-size: 2rem; }
.assurance-graph { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
.assurance-node { display: grid; gap: .5rem; padding: 1rem; border-left: .3rem solid var(--amber); background: rgba(255,255,255,.04); }
.assurance-node.state-supported_within_declared_bounds { border-color: var(--green); }
.assurance-node.state-unresolved { border-color: var(--red); }
.assurance-node small { color: var(--muted); }
.timeline { display: grid; gap: .5rem; }
.timeline-event { position: relative; padding: 1rem 1rem 1rem 4rem; border: 1px solid var(--line-dark); opacity: .46; }
.timeline-event::before { content: attr(data-event-index); position: absolute; left: 1rem; top: 1.15rem; color: var(--cyan); font-family: var(--mono); }
.timeline-event.is-current, .timeline-event:first-child { opacity: 1; border-color: var(--cyan); background: rgba(110,208,219,.06); }
.timeline-event.is-invalidated { border-left: .3rem solid var(--red); }
.timeline-event h3 { margin: .2rem 0; font-size: 1rem; letter-spacing: 0; }
.timeline-event p, .timeline-event small { margin: 0; color: var(--muted); }
.timeline-controls { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1rem; }
.timeline-scrubber { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .65rem 1rem; margin-top: 1rem; font-size: .75rem; font-weight: 750; }
.timeline-scrubber output { justify-self: end; }
.timeline-scrubber input { grid-column: 1 / -1; }
.ecosystem-comparison { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.chain-diagram, .web-diagram, .assurance-ring { min-height: 19rem; padding: 1.25rem; border: 1px solid var(--line-dark); }
.chain-diagram { display: flex; flex-wrap: wrap; align-content: center; align-items: center; justify-content: center; gap: .4rem; }
.chain-diagram h3, .web-diagram h3, .assurance-ring h3 { width: 100%; text-align: center; }
.chain-diagram span, .web-diagram span { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border: 1px solid var(--cyan); border-radius: 50%; font-family: var(--mono); }
.web-diagram { position: relative; background-image: radial-gradient(circle at center, rgba(110,208,219,.08), transparent 46%); }
.web-diagram .web-node { position: absolute; transform: translate(-50%, -50%); }
.web-diagram .web-node-1 { left: 50%; top: 25%; }
.web-diagram .web-node-2 { left: 74%; top: 34%; }
.web-diagram .web-node-3 { left: 84%; top: 55%; }
.web-diagram .web-node-4 { left: 74%; top: 76%; }
.web-diagram .web-node-5 { left: 50%; top: 85%; }
.web-diagram .web-node-6 { left: 26%; top: 76%; }
.web-diagram .web-node-7 { left: 16%; top: 55%; }
.web-diagram .web-node-8 { left: 26%; top: 34%; }
.assurance-ring { display: grid; place-items: center; align-content: center; text-align: center; border-color: var(--green); border-radius: 50%; }
.result-callout { display: grid; gap: 1rem; padding: 1.2rem; border: 1px solid var(--line-dark); background: rgba(0,0,0,.12); }
.result-callout p { margin: 0; }
.result-card-grid, .metric-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .7rem; margin-top: 1rem; }
.result-card-grid article, .metric-grid > div { padding: 1rem; border: 1px solid var(--line-dark); background: rgba(255,255,255,.025); }
.result-card-grid h3 { font-size: 1rem; letter-spacing: 0; margin: .4rem 0; }
.result-card-grid small, .metric-grid small { display: block; color: var(--cyan); font-family: var(--mono); font-size: .68rem; }
.metric-grid strong { display: block; margin-top: .6rem; font-size: clamp(1.2rem,2vw,2rem); line-height: 1.1; overflow-wrap: anywhere; }
.request-state { color: var(--muted); font-family: var(--mono); font-size: .72rem; }
.request-state.is-loading { color: var(--amber); }
.request-state.is-complete { color: var(--green); }
.request-state.is-error { color: var(--red); }
.dynamic-result { display: grid; gap: 1rem; }
.dynamic-result h3 { margin-top: 1rem; font-size: 1.15rem; }
.dynamic-list { display: grid; gap: .5rem; padding: 0; list-style: none; }
.dynamic-list li { padding: .75rem; border: 1px solid var(--line-dark); }
.no-script-note { padding: 1rem; border-left: .3rem solid var(--amber); }
.lab-next { color: var(--paper); background: #101a21; }

.research-layout { display: grid; grid-template-columns: 18rem minmax(0,1fr); gap: 3rem; align-items: start; }
.research-filters { position: sticky; top: calc(var(--header-h) + 1rem); padding: 1.2rem; border: 1px solid var(--line); background: var(--paper-2); }
.research-filters form { display: grid; gap: 1rem; }
.filter-note, .qualification-note { color: var(--muted-dark); font-size: .82rem; }
.results-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 1.3rem; }
.results-heading h2 { font-size: 2rem; }
.research-list { display: grid; gap: .8rem; }
.research-card { padding: 1.5rem; border: 1px solid var(--line); background: rgba(255,255,255,.45); }
.research-card h3 { margin-top: 1rem; font-size: clamp(1.35rem,2.5vw,2rem); }
.research-card p { color: var(--muted-dark); }
.research-meta, .research-card-base, .research-integrity { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; align-items: center; }
.research-card-base { margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--line); font-size: .78rem; }
.research-integrity { margin-top: 2rem; padding: 1rem; border: 1px solid var(--line-dark); }
.research-integrity span { display: grid; gap: .3rem; }
.research-integrity b { overflow-wrap: anywhere; }
.article-layout { display: grid; grid-template-columns: 18rem minmax(0, 1fr); gap: clamp(2rem,6vw,6rem); align-items: start; }
.article-toc nav { display: grid; max-height: 52vh; overflow: auto; padding-right: .5rem; }
.article-toc nav a { padding: .35rem 0; font-size: .8rem; text-decoration: none; border-bottom: 1px solid var(--line); }
.article-toc .toc-level-3 { padding-left: .9rem; color: var(--muted-dark); }
.article-toc .toc-level-4 { padding-left: 1.8rem; color: var(--muted-dark); }
.prose { font-size: 1.04rem; line-height: 1.75; }
.prose > * { max-width: 76ch; }
.prose h1, .prose h2, .prose h3, .prose h4 { margin-top: 2.7em; scroll-margin-top: calc(var(--header-h) + 1rem); }
.prose h1 { font-size: clamp(2rem,4vw,3.4rem); }
.prose h2 { font-size: clamp(1.65rem,3vw,2.6rem); padding-top: 1rem; border-top: 1px solid var(--line); }
.prose h3 { font-size: 1.45rem; letter-spacing: -.015em; }
.prose table { width: 100%; min-width: 42rem; border-collapse: collapse; }
.prose pre { max-width: 100%; padding: 1rem; color: var(--paper); background: var(--ink); border-radius: var(--radius); }
.prose code { padding: .12rem .25rem; background: rgba(16,24,32,.08); }
.prose pre code { padding: 0; background: none; }
.prose blockquote { margin-left: 0; padding-left: 1.5rem; border-left: .3rem solid var(--cyan-deep); color: var(--muted-dark); }
.prose a { overflow-wrap: anywhere; }
.empty-state { padding: 4rem 2rem; text-align: center; border: 1px dashed var(--line); }

.ecosystem-large { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.ecosystem-panel { min-height: 31rem; display: flex; flex-direction: column; padding: 2rem; border: 1px solid var(--line); }
.ecosystem-panel.is-parent { border: 2px solid var(--cyan-deep); background: rgba(110,208,219,.08); }
.ecosystem-panel h2 { margin-top: 4rem; }
.ecosystem-panel h3 { color: var(--cyan-deep); font-family: var(--mono); font-size: .85rem; letter-spacing: .08em; }
.ecosystem-panel .button { margin-top: auto; align-self: flex-start; }
.manifesto { padding: 2rem; color: var(--paper); background: var(--ink); }
.manifesto p { margin: 0; padding: 1rem 0; border-bottom: 1px solid var(--line-dark); font-size: 1.35rem; font-weight: 750; }
.principles-long { display: grid; }
.principles-long article { display: grid; grid-template-columns: 5rem 1fr; gap: 1rem; padding: 2rem 0; border-bottom: 1px solid var(--line); }
.principles-long article > span { color: var(--cyan-deep); }
.principles-long h2 { font-size: clamp(1.5rem,3vw,2.8rem); }

.contact-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem,8vw,8rem); align-items: start; }
.contact-principles { display: grid; gap: .6rem; margin-top: 2rem; font-family: var(--mono); font-size: .75rem; font-weight: 800; color: var(--cyan-deep); }
.contact-form { display: grid; gap: 1.2rem; padding: clamp(1.2rem,3vw,2rem); border: 1px solid var(--line); background: var(--white); box-shadow: var(--shadow); }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.field-error { color: #9c2824; font-size: .75rem; }
.honeypot { position: absolute; left: -10000px; }
.error-page { min-height: 68vh; }

.admin-page { background: #e9e8e2; }
.admin-page .site-footer { display: none; }
.admin-shell { min-height: calc(100vh - var(--header-h)); display: grid; grid-template-columns: 16rem minmax(0,1fr); }
.admin-sidebar { position: sticky; top: var(--header-h); align-self: start; height: calc(100vh - var(--header-h)); display: flex; flex-direction: column; padding: 1.2rem; color: var(--paper); background: #101920; overflow: auto; }
.admin-identity { display: grid; gap: .3rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line-dark); }
.admin-identity small { color: var(--cyan); font-family: var(--mono); font-size: .65rem; }
.admin-identity span { color: var(--muted); font-size: .75rem; overflow-wrap: anywhere; }
.admin-sidebar nav { display: grid; margin: 1rem 0 auto; }
.admin-sidebar nav a { padding: .65rem; text-decoration: none; border-bottom: 1px solid var(--line-dark); }
.admin-sidebar nav a:hover { color: var(--ink); background: var(--cyan); }
.admin-content { min-width: 0; padding: clamp(1.2rem,4vw,3rem); }
.admin-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.admin-heading h1 { font-size: clamp(2rem,4vw,3.8rem); }
.admin-warning { margin-bottom: 1.5rem; padding: 1.2rem; border-left: .35rem solid var(--amber); background: #fff5df; }
.admin-warning h2 { font-size: 1.25rem; }
.admin-stat-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .8rem; }
.admin-stat-grid article { padding: 1.2rem; border: 1px solid var(--line); background: var(--white); }
.admin-stat-grid small { display: block; font-family: var(--mono); font-size: .65rem; color: var(--muted-dark); }
.admin-stat-grid strong { display: block; margin-top: .5rem; font-size: 2.5rem; }
.admin-panel { margin-top: 1.5rem; padding: 1.5rem; background: var(--white); border: 1px solid var(--line); }
.admin-table { background: var(--white); border: 1px solid var(--line); }
.admin-table table { min-width: 50rem; }
.admin-table th small { display: block; color: var(--muted-dark); font-weight: 400; }
.admin-edit-form { display: grid; gap: 1rem; max-width: 70rem; padding: 1.5rem; background: var(--white); border: 1px solid var(--line); }
.admin-edit-form textarea { min-height: 8rem; }
.admin-edit-form textarea[name="body_markdown"] { min-height: 38rem; font-family: var(--mono); font-size: .85rem; }
.admin-filters { display: flex; flex-wrap: wrap; gap: .35rem; }
.admin-filters a { padding: .4rem .6rem; border: 1px solid var(--line); text-decoration: none; }
.admin-filters a[aria-current="page"] { background: var(--cyan); }
.contact-admin-list { display: grid; gap: .8rem; }
.admin-contact-card { padding: 1.3rem; background: var(--white); border: 1px solid var(--line); }
.admin-contact-card > div { display: flex; justify-content: space-between; gap: 1rem; }
.admin-contact-card h2 { margin-top: 1rem; font-size: 1.4rem; }
.admin-contact-card blockquote { margin: 1rem 0; padding: 1rem; background: var(--paper); border-left: .3rem solid var(--cyan-deep); }
.admin-contact-card form { display: flex; align-items: end; gap: .8rem; }
.admin-login { min-height: calc(100vh - var(--header-h)); display: grid; place-items: center; padding: 2rem; background: var(--ink); }
.login-card { width: min(100%, 33rem); padding: clamp(1.5rem,4vw,3rem); background: var(--paper); box-shadow: var(--shadow); }
.login-card h1 { font-size: clamp(2rem,5vw,4rem); }
.login-card form { display: grid; gap: 1rem; margin-top: 2rem; }

@media (max-width: 80rem) {
  .failure-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .primary-nav { gap: .75rem; font-size: .76rem; }
  .admin-stat-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 64rem) {
  :root { --header-h: 4.2rem; }
  .nav-toggle { display: block; }
  .primary-nav { position: fixed; top: var(--header-h); left: 0; right: 0; display: none; align-items: stretch; flex-direction: column; gap: 0; padding: 1rem; background: var(--ink); border-bottom: 1px solid var(--line-dark); box-shadow: var(--shadow); max-height: calc(100vh - var(--header-h)); overflow: auto; }
  .primary-nav.is-open { display: flex; }
  .primary-nav a { padding: .85rem; border-bottom: 1px solid var(--line-dark); }
  .primary-nav .nav-contact { margin-top: .5rem; text-align: center; }
  .hero-grid, .page-hero-grid, .statement-grid, .contact-layout { grid-template-columns: 1fr; }
  .hero-visual { max-width: 42rem; margin-inline: auto; }
  .failure-grid, .platform-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .lab-layout { grid-template-columns: 1fr; }
  .lab-controls .sticky-panel { position: static; }
  .lab-controls form { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: end; }
  .lab-controls .button-block, .lab-controls .toggle-row { min-height: 3rem; }
  .research-layout, .article-layout { grid-template-columns: 1fr; }
  .research-filters, .article-toc .sticky-panel { position: static; }
  .article-toc nav { grid-template-columns: repeat(2,minmax(0,1fr)); max-height: none; gap: 0 1rem; }
  .ecosystem-large { grid-template-columns: 1fr; }
  .ecosystem-panel { min-height: 22rem; }
  .admin-shell { grid-template-columns: 12rem minmax(0,1fr); }
  .admin-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 46rem) {
  .container, .container-wide { width: min(100% - 1.25rem, var(--container)); }
  h1 { font-size: clamp(2.35rem, 13vw, 4.2rem); }
  .section { padding: 4rem 0; }
  .split-heading, .two-column, .language-grid, .labs-grid, .question-grid, .form-grid, .ecosystem-grid, .ecosystem-comparison { grid-template-columns: 1fr; }
  .question-card:nth-child(odd), .question-card:nth-child(even) { padding-inline: 0; border-right: 0; }
  .failure-grid, .platform-grid, .card-grid, .result-card-grid, .metric-grid, .assurance-graph { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-base { flex-direction: column; }
  .causal-graph-lab { grid-template-columns: 1fr; }
  .graph-arrow { transform: rotate(90deg); justify-self: center; }
  .compact-link-grid { grid-template-columns: 1fr; }
  .lab-controls form { grid-template-columns: 1fr; }
  .panel-heading { flex-direction: column; }
  .article-toc nav { grid-template-columns: 1fr; }
  .research-integrity { align-items: stretch; }
  .research-integrity .button { width: 100%; }
  .principles-long article { grid-template-columns: 2.5rem 1fr; }
  .admin-shell { display: block; }
  .admin-sidebar { position: static; height: auto; }
  .admin-sidebar nav { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .admin-stat-grid { grid-template-columns: 1fr; }
  .admin-heading { flex-direction: column; }
  .admin-contact-card form { align-items: stretch; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

@media print {
  .site-header, .site-footer, .button-row, .research-filters, .article-toc, .lab-controls, .view-switcher, .lab-next { display: none !important; }
  body, .section, .page-hero, .lab-workspace-section, .lab-panel { color: #000 !important; background: #fff !important; }
  .article-layout, .lab-layout { display: block; }
  a { color: #000; }
}

/* --------------------------------------------------------------------------
   Evulgare v1.2.0: canonical /docs, distributed .uai memory, and native
   WebGL/WebXR synthetic simulations.
   -------------------------------------------------------------------------- */

.simulation-hero-panel,
.docs-count-panel,
.proof-summary-card {
  padding: clamp(1.5rem, 3vw, 2.4rem);
  border: 1px solid var(--line-dark);
  background: rgba(255,255,255,.035);
  box-shadow: var(--shadow);
}
.simulation-hero-panel h2 { margin-top: 1.5rem; font-size: clamp(1.5rem, 3vw, 2.35rem); }
.compact-definition-list { display: grid; gap: .7rem; margin: 1.5rem 0 0; }
.compact-definition-list div { display: grid; grid-template-columns: 7rem 1fr; gap: 1rem; padding-top: .7rem; border-top: 1px solid var(--line-dark); }
.compact-definition-list dt { color: var(--cyan); font-family: var(--mono); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.compact-definition-list dd { margin: 0; color: #d1dade; }

.simulation-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.simulation-card { display: flex; flex-direction: column; min-height: 30rem; padding: 1.6rem; border: 1px solid var(--line); background: rgba(255,255,255,.55); }
.simulation-card:hover { background: var(--white); box-shadow: var(--shadow); transform: translateY(-3px); }
.simulation-card-number { color: var(--cyan-deep); font-weight: 800; }
.simulation-card-badges { display: flex; flex-wrap: wrap; gap: .35rem; margin: 1.25rem 0 0; }
.simulation-card-badges span { padding: .25rem .42rem; border: 1px solid var(--line); font-family: var(--mono); font-size: .62rem; font-weight: 800; }
.simulation-card h3 { margin-top: 2rem; font-size: clamp(1.55rem, 2.5vw, 2.4rem); }
.simulation-card p { color: var(--muted-dark); }
.simulation-card dl { display: grid; gap: .6rem; margin-top: 1.4rem; }
.simulation-card dl div { display: grid; grid-template-columns: 8rem 1fr; gap: .8rem; padding-top: .55rem; border-top: 1px solid var(--line); }
.simulation-card dt { font-family: var(--mono); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.simulation-card dd { margin: 0; font-size: .9rem; }
.simulation-card .button { align-self: flex-start; margin-top: auto; }

.proof-stack { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .8rem; }
.proof-stack article { padding: 1.4rem; border: 1px solid var(--line-dark); background: rgba(255,255,255,.03); }
.proof-stack article > span { color: var(--cyan); }
.proof-stack p { color: #c0cbd1; }

.simulation-titlebar { color: var(--paper); background: var(--ink); padding: 3rem 0 2.5rem; border-bottom: 1px solid var(--line-dark); }
.simulation-breadcrumb { display: flex; flex-wrap: wrap; gap: .7rem; margin-bottom: 2rem; font-family: var(--mono); font-size: .72rem; text-transform: uppercase; color: var(--muted); }
.simulation-breadcrumb a { color: var(--cyan); }
.simulation-heading-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(2rem, 6vw, 6rem); align-items: end; }
.simulation-heading-grid h1 { font-size: clamp(2.6rem, 6vw, 6rem); }
.simulation-boundary { padding: 1.35rem; border: 1px solid var(--line-dark); background: rgba(255,255,255,.035); }
.simulation-boundary p { margin-bottom: 0; color: #c3cdd2; }

.simulation-workspace-section { color: var(--paper); background: #0d151b; padding: 2rem 0 0; }
.simulation-workspace { display: grid; grid-template-columns: minmax(16rem, 22rem) minmax(0, 1fr); gap: 1.2rem; align-items: start; }
.simulation-control-panel .sticky-panel { position: sticky; top: calc(var(--header-h) + 1rem); padding: 1.35rem; border: 1px solid var(--line-dark); background: var(--ink-2); }
.simulation-control-panel h2 { font-size: 1.65rem; }
.simulation-control-panel form { display: grid; gap: .85rem; }
.simulation-control-panel label:not(.toggle-row) { display: grid; gap: .35rem; }
.simulation-control-panel label > span { color: #dce3e6; font-size: .78rem; font-weight: 750; }
.simulation-control-panel input[type="text"],
.simulation-control-panel select { width: 100%; min-height: 2.8rem; padding: .62rem .7rem; color: var(--paper); background: var(--ink); border: 1px solid var(--line-dark); border-radius: .25rem; }
.simulation-control-panel input[type="range"] { width: 100%; accent-color: var(--cyan); }
.simulation-control-panel output { color: var(--cyan); font-family: var(--mono); }
.simulation-control-panel .toggle-row { display: grid; grid-template-columns: 1.2rem 1fr; gap: .7rem; align-items: start; padding: .65rem; border: 1px solid var(--line-dark); }
.simulation-control-panel .toggle-row input { margin-top: .2rem; accent-color: var(--cyan); }
.simulation-presets { display: grid; gap: .4rem; margin-top: 1.4rem; }
.simulation-presets h3 { margin: 0 0 .35rem; font-family: var(--mono); font-size: .74rem; color: var(--cyan); text-transform: uppercase; letter-spacing: .08em; }
.simulation-presets button { padding: .6rem .7rem; text-align: left; color: var(--paper); background: transparent; border: 1px solid var(--line-dark); }
.simulation-presets button:hover { color: var(--ink); background: var(--cyan); border-color: var(--cyan); }
.simulation-persistence { margin-top: 1.2rem; color: var(--muted); font-size: .76rem; }

.simulation-stage-column { min-width: 0; display: grid; gap: 1.2rem; }
.simulation-stage,
.simulation-result-panel,
.simulation-representations,
.simulation-sources { border: 1px solid var(--line-dark); background: var(--ink-2); }
.simulation-stage { overflow: hidden; }
.simulation-stage-header { display: flex; justify-content: space-between; gap: 1rem; align-items: start; padding: 1.2rem; border-bottom: 1px solid var(--line-dark); }
.simulation-stage-header h2 { font-size: clamp(1.45rem, 3vw, 2.2rem); }
.simulation-stage-actions { display: flex; flex-wrap: wrap; gap: .45rem; justify-content: flex-end; }
.simulation-stage-actions button { padding: .55rem .75rem; color: var(--paper); background: transparent; border: 1px solid var(--line-dark); border-radius: .25rem; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.simulation-stage-actions button:hover:not(:disabled) { color: var(--ink); background: var(--cyan); border-color: var(--cyan); }
.simulation-stage-actions button:disabled { color: var(--muted); cursor: not-allowed; }
.simulation-stage-actions .vr-button:not(:disabled) { border-color: var(--cyan); color: var(--cyan); }
.simulation-canvas-wrap { position: relative; min-height: min(64vh, 46rem); background: #081015; }
.simulation-canvas-wrap canvas { display: block; width: 100%; height: min(64vh, 46rem); min-height: 28rem; touch-action: none; }
.simulation-overlay { position: absolute; left: .75rem; right: .75rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .6rem; pointer-events: none; font-family: var(--mono); font-size: .65rem; letter-spacing: .035em; text-transform: uppercase; }
.simulation-overlay-top { top: .75rem; }
.simulation-overlay-bottom { bottom: .75rem; justify-content: flex-start; }
.simulation-overlay span { padding: .32rem .48rem; color: #dce5e8; background: rgba(5,11,15,.8); border: 1px solid rgba(255,255,255,.16); }
.selected-node-panel { display: flex; flex-wrap: wrap; gap: .6rem 1rem; align-items: center; min-height: 4.4rem; padding: 1rem 1.2rem; border-top: 1px solid var(--line-dark); }
.selected-node-panel > span:last-child { color: #c0cbd1; }
.simulation-node-list { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .5rem; padding: 1rem; border-top: 1px solid var(--line-dark); }
.simulation-node-list button { display: grid; gap: .25rem; min-height: 5rem; padding: .65rem; text-align: left; color: var(--paper); background: rgba(255,255,255,.02); border: 1px solid var(--line-dark); }
.simulation-node-list button:hover,
.simulation-node-list button.is-selected { background: rgba(110,208,219,.09); border-color: var(--cyan); }
.simulation-node-list small { color: var(--muted); }
.node-state-marker { width: fit-content; font-family: var(--mono); font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.state-supported, .state-valid, .state-safe { color: #9ee0b5; }
.state-qualified, .state-unresolved, .state-suspended { color: #f3cb86; }
.state-invalidated, .state-hold { color: #ffaaa7; }
.state-counterfactual { color: #9fc0ff; }
.state-hidden, .state-baseline { color: #b0bcc2; }

.simulation-result-panel,
.simulation-representations,
.simulation-sources { padding: 1.25rem; }
.simulation-result-output { display: grid; gap: 1rem; }
.compact-result-table table { min-width: 34rem; }
.simulation-digest { overflow-wrap: anywhere; color: var(--muted); }
.proof-check-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .7rem; }
.proof-check-grid article { min-height: 9rem; padding: 1rem; border: 1px solid var(--line-dark); background: rgba(255,255,255,.025); }
.proof-check-grid article.is-pass { border-left: .32rem solid var(--green); }
.proof-check-grid article.is-fail { border-left: .32rem solid var(--red); }
.proof-check-grid small { color: var(--cyan); font-family: var(--mono); font-weight: 800; }
.proof-check-grid .is-fail small { color: #ffaaa7; }
.proof-check-grid h3, .proof-check-grid h4 { margin-top: .7rem; font-size: 1rem; }
.proof-check-grid p { color: #bdc8cd; font-size: .83rem; }
.simulation-visual-description,
.simulation-representations .text-view { padding: 1.2rem; border: 1px solid var(--line-dark); background: rgba(255,255,255,.025); }
.simulation-representations table { color: var(--paper); }
.simulation-representations th,
.simulation-representations td { border-color: var(--line-dark); }
.simulation-sources .compact-link-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
.simulation-sources .compact-link-grid a { color: var(--paper); }
.simulation-workspace-section .lab-next { border-top: 1px solid var(--line-dark); }

.proof-summary-card { display: grid; gap: .8rem; }
.proof-summary-card > strong { font-size: clamp(3rem, 8vw, 6rem); line-height: .9; }
.proof-summary-card > span:not(.status) { color: #cad4d8; }
.proof-summary-card dl { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .5rem; }
.proof-summary-card dl div { padding-top: .6rem; border-top: 1px solid var(--line-dark); }
.proof-summary-card dt { color: var(--cyan); font-family: var(--mono); font-size: .65rem; text-transform: uppercase; }
.proof-summary-card dd { margin: 0; }
.proof-run-list { display: grid; gap: .7rem; }
.proof-run { border: 1px solid var(--line); background: var(--white); }
.proof-run summary { display: grid; grid-template-columns: auto 1fr 1fr auto; gap: .9rem; align-items: center; padding: 1rem; cursor: pointer; }
.proof-run summary code { overflow-wrap: anywhere; color: var(--muted-dark); }
.proof-run > .proof-check-grid { padding: 1rem; border-top: 1px solid var(--line); }
.proof-run > .proof-check-grid article { border-color: var(--line); background: var(--paper); }
.proof-run > .proof-check-grid p { color: var(--muted-dark); }

.docs-count-panel { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .7rem; }
.docs-count-panel > div { padding: 1rem; border: 1px solid var(--line-dark); }
.docs-count-panel strong { display: block; font-size: clamp(2.2rem, 5vw, 4.4rem); line-height: 1; }
.docs-count-panel span { display: block; margin-top: .5rem; color: var(--cyan); font-family: var(--mono); font-size: .68rem; text-transform: uppercase; }
.docs-count-panel p { grid-column: 1 / -1; color: #c7d1d5; }
.docs-pillar-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1rem; }
.docs-pillar-grid article { min-height: 16rem; padding: 1.4rem; border: 1px solid var(--line); background: rgba(255,255,255,.5); }
.docs-pillar-grid article > span { color: var(--cyan-deep); }
.docs-pillar-grid h3 { margin-top: 2.5rem; }
.docs-pillar-grid code { overflow-wrap: anywhere; }

.report-atlas-grid { display: grid; gap: 1rem; }
.report-atlas-card { padding: clamp(1.3rem, 3vw, 2.2rem); border: 1px solid var(--line); background: rgba(255,255,255,.58); }
.report-atlas-card > .mono { color: var(--cyan-deep); }
.report-atlas-card h2 { margin-top: 1rem; font-size: clamp(1.7rem, 3vw, 2.8rem); }
.report-atlas-card dl { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .6rem 1rem; }
.report-atlas-card dl div { min-width: 0; padding-top: .6rem; border-top: 1px solid var(--line); }
.report-atlas-card dt { font-family: var(--mono); font-size: .67rem; font-weight: 800; text-transform: uppercase; }
.report-atlas-card dd { margin: .3rem 0 0; overflow-wrap: anywhere; }
.report-atlas-card code { overflow-wrap: anywhere; }

.memory-file-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .8rem; }
.memory-file-card { display: flex; flex-direction: column; min-height: 15rem; padding: 1.3rem; color: inherit; text-decoration: none; border: 1px solid var(--line); background: rgba(255,255,255,.55); }
.memory-file-card:hover { transform: translateY(-3px); background: var(--white); box-shadow: var(--shadow); }
.memory-file-card h2 { margin-top: 2rem; font-size: 1.3rem; overflow-wrap: anywhere; }
.memory-file-card p { color: var(--muted-dark); }
.memory-file-card > span:last-child { margin-top: auto; font-weight: 800; }
.memory-prose { min-height: 40vh; }
.memory-prose code { overflow-wrap: anywhere; }

.traceability-table { min-width: 82rem; }
.traceability-table th[scope="row"] { min-width: 22rem; }
.traceability-table th[scope="row"] strong,
.traceability-table th[scope="row"] small { display: block; margin-top: .45rem; }
.traceability-table th[scope="row"] small { color: var(--muted-dark); font-weight: 400; }
.traceability-table td { min-width: 15rem; vertical-align: top; }
.traceability-table td code { display: block; margin-bottom: .45rem; overflow-wrap: anywhere; }
.traceability-table ul { padding-left: 1.2rem; }
.traceability-table a { overflow-wrap: anywhere; }

@media (max-width: 82rem) {
  .simulation-card-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .simulation-node-list { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .docs-pillar-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .memory-file-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 64rem) {
  .simulation-heading-grid,
  .simulation-workspace { grid-template-columns: 1fr; }
  .simulation-control-panel .sticky-panel { position: static; }
  .simulation-control-panel form { grid-template-columns: repeat(2, minmax(0,1fr)); align-items: end; }
  .simulation-control-panel .button-block { min-height: 3rem; }
  .proof-check-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .proof-run summary { grid-template-columns: auto 1fr; }
  .proof-run summary code { grid-column: 2; }
  .report-atlas-card dl { grid-template-columns: 1fr; }
}

@media (max-width: 46rem) {
  .simulation-card-grid,
  .simulation-node-list,
  .proof-stack,
  .proof-check-grid,
  .docs-count-panel,
  .docs-pillar-grid,
  .memory-file-grid,
  .simulation-sources .compact-link-grid { grid-template-columns: 1fr; }
  .simulation-control-panel form { grid-template-columns: 1fr; }
  .simulation-stage-header { flex-direction: column; }
  .simulation-stage-actions { justify-content: flex-start; }
  .simulation-canvas-wrap,
  .simulation-canvas-wrap canvas { min-height: 23rem; height: 55vh; }
  .docs-count-panel p { grid-column: auto; }
  .compact-definition-list div,
  .simulation-card dl div { grid-template-columns: 1fr; }
  .proof-summary-card dl { grid-template-columns: 1fr; }
  .proof-run summary { grid-template-columns: 1fr; }
  .proof-run summary code { grid-column: auto; }
}
