@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600&family=Instrument+Serif:ital@0;1&display=swap');

:root {
  --ink: #121212;
  --paper: #e9e7e1;
  --paper-deep: #d7d5cf;
  --cobalt: #315cff;
  --vermilion: #ff4d2e;
  --acid: #c7f36b;
  --line: rgba(18,18,18,.2);
  --muted: rgba(18,18,18,.74);
  --panel: #171717;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; color-scheme: light; }
body { margin: 0; overflow-x: clip; background: var(--paper); color: var(--ink); font-family: 'DM Sans', sans-serif; -webkit-font-smoothing: antialiased; }
img, video, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
p { text-wrap: pretty; }
.skip-link { position: fixed; z-index: 100; top: 10px; left: 10px; padding: 10px 14px; background: var(--acid); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

.project-header { width: min(1400px, calc(100% - 64px)); min-height: 82px; margin: 0 auto; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; border-bottom: 1px solid var(--line); }
.project-header__identity { display: inline-flex; align-items: center; gap: 11px; font-size: 14px; font-weight: 600; }
.identity-mark { position: relative; width: 29px; height: 29px; display: inline-grid; place-items: center; }
.identity-mark::before { content: ''; position: absolute; width: 23px; height: 23px; border: 1px solid currentColor; border-radius: 50%; }
.identity-mark i { position: absolute; width: 1px; height: 27px; background: currentColor; transform: rotate(30deg); }
.identity-mark i:nth-child(2) { transform: rotate(90deg); }
.identity-mark i:nth-child(3) { transform: rotate(150deg); }
.project-header nav { display: flex; gap: 28px; font-size: 11px; }
.project-header nav a:hover { text-decoration: underline; text-underline-offset: 5px; }
.back-link { justify-self: end; min-height: 42px; padding: 0 18px; display: inline-flex; align-items: center; gap: 9px; background: var(--ink); color: var(--paper); font-size: 11px; font-weight: 600; }
.back-link:hover { background: var(--acid); color: var(--ink); }

.project-hero { width: min(1240px, calc(100% - 64px)); margin: 0 auto; padding: clamp(70px, 9vw, 130px) 0 84px; }
.project-kicker, .eyebrow, .status, .meta-label { font: 500 9px/1.3 'DM Mono', monospace; letter-spacing: .12em; text-transform: uppercase; }
.project-kicker { display: flex; align-items: center; gap: 12px; margin: 0 0 28px; }
.project-kicker::before { content: ''; width: 30px; height: 1px; background: currentColor; }
.project-hero h1, .section-heading h2, .project-question, blockquote { font-family: 'Instrument Serif', Georgia, serif; font-weight: 400; letter-spacing: -.045em; }
.project-hero h1 { max-width: 1080px; margin: 0; font-size: clamp(62px, 8.7vw, 132px); line-height: .86; }
.project-question { max-width: 980px; margin: 34px 0 0; color: var(--cobalt); font-size: clamp(28px, 3.2vw, 48px); line-height: 1.03; }
.hero-summary { max-width: 770px; margin: 40px 0 0; color: var(--muted); font-size: clamp(16px, 1.5vw, 20px); line-height: 1.72; }
.hero-links { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 28px; margin-top: 38px; }
.button { min-height: 52px; padding: 0 22px; display: inline-flex; align-items: center; justify-content: center; gap: 13px; border: 1px solid var(--ink); background: var(--ink); color: var(--paper); font-size: 11px; font-weight: 600; }
.button:hover { background: var(--acid); color: var(--ink); }
.text-link { font-size: 11px; font-weight: 600; text-decoration: underline; text-underline-offset: 5px; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); }

.project-meta { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.project-meta > div { min-height: 130px; padding: 28px clamp(22px, 3vw, 44px); }
.project-meta > div + div { border-left: 1px solid var(--line); }
.project-meta span { display: block; color: var(--muted); }
.project-meta strong { display: block; margin-top: 22px; font-size: 14px; font-weight: 500; line-height: 1.45; }
.status { width: fit-content; margin-top: 18px !important; padding: 6px 8px; background: var(--acid); color: #121212 !important; }
.status.ongoing { border: 1px solid var(--vermilion); background: transparent; color: var(--vermilion) !important; }

.project-media { position: relative; min-height: min(72vw, 820px); overflow: hidden; background: #0c0c0c; }
.project-media img, .project-media video { width: 100%; height: 100%; min-height: inherit; object-fit: cover; filter: saturate(.76) contrast(1.05); }
.project-media.contain img { padding: clamp(24px, 5vw, 78px); object-fit: contain; background: #f3f0e9; filter: none; }
.media-caption { position: absolute; left: max(20px, calc((100vw - 1240px)/2)); right: max(20px, calc((100vw - 1240px)/2)); bottom: 22px; padding: 13px 15px; display: flex; justify-content: space-between; gap: 20px; background: rgba(18,18,18,.92); color: rgba(255,255,255,.92); font: 400 10px/1.5 'DM Mono', monospace; letter-spacing: .055em; text-transform: uppercase; backdrop-filter: blur(9px); }

.project-section { padding: 118px max(32px, calc((100vw - 1240px)/2)); }
.project-section.dark { background: var(--ink); color: var(--paper); }
.project-section.deep { background: var(--paper-deep); }
.section-heading { display: grid; grid-template-columns: .82fr 1.18fr; gap: 8vw; align-items: end; margin-bottom: 62px; }
.section-heading h2 { max-width: 720px; margin: 0; font-size: clamp(52px, 6vw, 88px); line-height: .92; }
.section-heading > p { max-width: 540px; margin: 0 0 5px; color: var(--muted); font-size: 14px; line-height: 1.75; }
.dark .section-heading > p { color: rgba(233,231,225,.8); }
.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 20px; }
.eyebrow::before { content: ''; width: 26px; border-top: 1px solid currentColor; }

.stage-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.dark .stage-list { border-color: rgba(233,231,225,.2); }
.stage-list li { display: grid; grid-template-columns: 80px .85fr 1.15fr; gap: 30px; padding: 34px 0; border-bottom: 1px solid var(--line); }
.dark .stage-list li { border-color: rgba(233,231,225,.2); }
.stage-list > li > span { color: var(--cobalt); font: 500 10px 'DM Mono', monospace; }
.dark .stage-list > li > span { color: var(--acid); }
.stage-list h3 { margin: 0; font: 400 31px/1.04 'Instrument Serif', Georgia, serif; letter-spacing: -.035em; }
.stage-list p { max-width: 640px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.72; }
.dark .stage-list p { color: rgba(233,231,225,.78); }

.architecture { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; border:0; background:transparent; }
.architecture > div { position:relative; min-height:168px; padding:22px; display:flex; flex-direction:column; border:1px solid var(--line); background:#f7f5ef; color:#171717; }
.architecture > div + div { border-left:1px solid var(--line); }
.architecture > div:not(:last-child)::after { content:'→'; position:absolute; z-index:2; right:-16px; top:50%; width:22px; height:22px; display:grid; place-items:center; border:1px solid rgba(18,18,18,.22); border-radius:50%; background:#e9e7e1; color:#315cff; font-size:11px; transform:translateY(-50%); }
.architecture span { color:#315cff; font:500 10px 'DM Mono',monospace; letter-spacing:.05em; }
.architecture strong { margin-top:34px; font:400 25px/1.05 'Instrument Serif',Georgia,serif; }
.architecture small { margin-top:10px; color:rgba(18,18,18,.76); font:400 12px/1.5 'DM Sans',sans-serif; text-transform:none; }

.evidence-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.evidence-card { min-height: 330px; padding: 27px; display: flex; flex-direction: column; border: 1px solid var(--line); background: rgba(255,255,255,.14); }
.evidence-card__top { display: flex; justify-content: space-between; gap: 15px; color: var(--muted); font: 400 9px 'DM Mono', monospace; letter-spacing: .08em; text-transform: uppercase; }
.evidence-card strong.metric { margin-top: 62px; color: var(--cobalt); font: 400 clamp(58px, 7vw, 94px)/.8 'Instrument Serif', Georgia, serif; letter-spacing: -.055em; }
.evidence-card h3 { margin: 40px 0 14px; font: 400 29px/1 'Instrument Serif', Georgia, serif; }
.evidence-card p { margin: auto 0 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.evidence-card.pending { border-style: dashed; }
.evidence-card.pending strong.metric { color: var(--vermilion); font-size: 45px; }

.chart { margin-top: 22px; padding: 26px; border: 1px solid var(--line); background: rgba(255,255,255,.12); }
.chart img { width: 100%; }
.chart figcaption { margin-top: 16px; color: var(--muted); font: 400 9px/1.55 'DM Mono', monospace; letter-spacing: .06em; text-transform: uppercase; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.split figure { margin: 0; border: 1px solid var(--line); background: white; }
.split figure img { width: 100%; height: 100%; min-height: 340px; padding: 22px; object-fit: contain; }
.split figure figcaption { padding: 13px 16px; border-top: 1px solid var(--line); font: 400 9px/1.5 'DM Mono', monospace; text-transform: uppercase; }

.contribution { display: grid; grid-template-columns: .85fr 1.15fr; gap: 8vw; }
.contribution blockquote { margin: 0; font-size: clamp(44px, 5.5vw, 78px); line-height: .95; }
.contribution-copy { padding-top: 16px; }
.contribution-copy p { margin: 0 0 22px; color: var(--muted); font-size: 15px; line-height: 1.75; }
.boundary { margin-top: 30px; padding: 18px 20px; border-left: 2px solid var(--vermilion); background: color-mix(in srgb, var(--paper) 45%, transparent); font-size: 12px !important; }

.ledger { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid rgba(233,231,225,.23); }
.ledger > div { min-height: 220px; padding: 25px; display: flex; flex-direction: column; }
.ledger > div + div { border-left: 1px solid rgba(233,231,225,.23); }
.ledger span { width: fit-content; padding: 5px 7px; background: var(--acid); color: #121212; font: 500 8px 'DM Mono', monospace; text-transform: uppercase; }
.ledger .measured span { background: var(--cobalt); color: white; }
.ledger .ongoing span { border: 1px solid var(--vermilion); background: transparent; color: var(--vermilion); }
.ledger .unknown span { border: 1px dashed rgba(233,231,225,.5); background: transparent; color: rgba(233,231,225,.7); }
.ledger strong { margin-top: auto; font-size: 14px; line-height: 1.4; }
.ledger p { margin: 9px 0 0; color: rgba(233,231,225,.74); font: 400 10px/1.55 'DM Mono', monospace; text-transform: uppercase; }

.project-next { padding: 100px max(32px, calc((100vw - 1240px)/2)); background: var(--cobalt); color: white; }
.project-next span { color: var(--acid); font: 500 9px 'DM Mono', monospace; text-transform: uppercase; letter-spacing: .1em; }
.project-next h2 { max-width: 900px; margin: 25px 0 38px; font: 400 clamp(48px, 6vw, 86px)/.92 'Instrument Serif', Georgia, serif; letter-spacing: -.045em; }
.project-next .button { border-color: var(--acid); background: var(--acid); color: var(--ink); }

footer { min-height: 140px; padding: 40px max(32px, calc((100vw - 1240px)/2)); display: flex; justify-content: space-between; align-items: center; gap: 30px; border-top: 1px solid var(--line); color: var(--muted); font: 400 9px 'DM Mono', monospace; text-transform: uppercase; letter-spacing: .08em; }

@media (max-width: 950px) {
  .project-header { grid-template-columns: 1fr auto; padding-top: 13px; }
  .project-header nav { grid-column: 1 / -1; order: 3; min-height: 50px; overflow-x: auto; align-items: center; scrollbar-width: none; }
  .project-meta { grid-template-columns: 1fr 1fr; }
  .project-meta > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .project-meta > div:nth-child(4) { border-top: 1px solid var(--line); }
  .section-heading, .contribution { grid-template-columns: 1fr; gap: 38px; }
  .stage-list li { grid-template-columns: 60px 1fr; }
  .stage-list p { grid-column: 2; }
  .architecture { grid-template-columns: repeat(2, 1fr); }
  .architecture > div:nth-child(odd), .architecture > div:nth-child(n+3) { border: 1px solid var(--line); }
  .architecture > div:not(:last-child)::after { display: none; }
  .evidence-grid { grid-template-columns: 1fr 1fr; }
  .ledger { grid-template-columns: 1fr 1fr; }
  .ledger > div:nth-child(3) { border-left: 0; border-top: 1px solid rgba(233,231,225,.23); }
  .ledger > div:nth-child(4) { border-top: 1px solid rgba(233,231,225,.23); }
}

@media (max-width: 650px) {
  .project-header, .project-hero { width: calc(100% - 36px); }
  .project-header__identity > span:last-child { max-width: 115px; line-height: 1.05; }
  .back-link { width: 42px; padding: 0; justify-content: center; font-size: 0; }
  .back-link span { font-size: 13px; }
  .project-header nav { gap: 20px; white-space: nowrap; }
  .project-hero { padding: 66px 0 58px; }
  .project-hero h1 { font-size: clamp(53px, 16vw, 76px); }
  .project-question { font-size: clamp(27px, 8vw, 38px); }
  .hero-summary { margin-top: 28px; font-size: 16px; }
  .hero-links { align-items: stretch; flex-direction: column; }
  .button { width: 100%; }
  .text-link { min-height: 44px; display: inline-flex; align-items: center; }
  .project-meta { grid-template-columns: 1fr; }
  .project-meta > div { min-height: 0; padding: 24px 20px; }
  .project-meta > div + div, .project-meta > div:nth-child(3), .project-meta > div:nth-child(4) { border-left: 0; border-top: 1px solid var(--line); }
  .project-meta strong { margin-top: 13px; }
  .project-media { min-height: 76vw; }
  .media-caption { left: 12px; right: 12px; bottom: 12px; align-items: flex-start; flex-direction: column; }
  .project-section, .project-next, footer { padding-left: 20px; padding-right: 20px; }
  .project-section { padding-top: 84px; padding-bottom: 84px; }
  .section-heading { margin-bottom: 42px; }
  .section-heading h2 { font-size: clamp(46px, 14vw, 64px); }
  .stage-list li { grid-template-columns: 38px 1fr; gap: 16px; padding: 28px 0; }
  .stage-list h3 { font-size: 27px; }
  .architecture, .evidence-grid, .split, .ledger { grid-template-columns: 1fr; }
  .architecture > div { min-height: 135px; border: 1px solid var(--line) !important; }
  .architecture strong { margin-top: 24px; }
  .evidence-card { min-height: 280px; }
  .evidence-card strong.metric { margin-top: 44px; }
  .split figure img { min-height: 240px; }
  .ledger > div { min-height: 170px; border-left: 0 !important; border-top: 1px solid rgba(233,231,225,.23); }
  .ledger > div:first-child { border-top: 0; }
  footer { align-items: flex-start; flex-direction: column; }
}

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


/* Publication-page system */
.publication-strip { width:min(1240px,calc(100% - 64px)); margin:-44px auto 72px; padding:25px 0; display:grid; grid-template-columns:1.45fr .8fr .8fr; gap:30px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.publication-strip span, .resource-bar span, .citation-block small { display:block; margin-bottom:9px; color:var(--muted); font:500 8px/1.4 'DM Mono',monospace; letter-spacing:.1em; text-transform:uppercase; }
.publication-strip strong { font-size:13px; font-weight:500; line-height:1.55; }
.author-list { display:flex; flex-wrap:wrap; gap:6px 12px; }
.author-list a, .author-list span { margin:0; color:var(--ink); font:500 13px/1.55 'DM Sans',sans-serif; letter-spacing:0; text-transform:none; }
.author-list .self { text-decoration:underline; text-decoration-color:var(--cobalt); text-decoration-thickness:2px; text-underline-offset:4px; }
.paper-abstract { max-width:980px; margin:0 auto; padding:70px 32px; }
.paper-abstract p:last-child { margin:0; font:400 clamp(24px,3vw,42px)/1.15 'Instrument Serif',Georgia,serif; letter-spacing:-.025em; }
.resource-bar { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.resource-bar a, .resource-bar > div { min-height:112px; padding:25px clamp(20px,3vw,40px); display:flex; flex-direction:column; justify-content:space-between; font-size:12px; font-weight:600; }
.resource-bar > * + * { border-left:1px solid var(--line); }
.resource-bar a:hover { background:var(--acid); }
.stat-strip { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); }
.stat-strip > div { min-height:165px; padding:23px; display:flex; flex-direction:column; }
.stat-strip > div + div { border-left:1px solid var(--line); }
.stat-strip strong { margin-top:auto; color:var(--cobalt); font:400 clamp(38px,4vw,62px)/.85 'Instrument Serif',Georgia,serif; letter-spacing:-.05em; }
.stat-strip span { margin-top:14px; color:var(--muted); font:400 9px/1.55 'DM Mono',monospace; text-transform:uppercase; }
.method-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; border:1px solid var(--line); background:var(--line); }
.method-grid article { min-height:260px; padding:27px; background:var(--paper); }
.dark .method-grid article { background:#1c1c1a; }
.method-grid .number { color:var(--cobalt); font:500 9px 'DM Mono',monospace; }
.dark .method-grid .number { color:var(--acid); }
.method-grid h3 { margin:62px 0 15px; font:400 30px/1 'Instrument Serif',Georgia,serif; letter-spacing:-.03em; }
.method-grid p { margin:0; color:var(--muted); font-size:13px; line-height:1.72; }
.dark .method-grid p { color:rgba(233,231,225,.8); }
.research-table-wrap { overflow-x:auto; border:1px solid var(--line); background:#f8f6f0; }
.research-table { width:100%; min-width:760px; border-collapse:separate; border-spacing:0; }
.research-table th, .research-table td { display:table-cell; padding:17px 18px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.research-table th:last-child, .research-table td:last-child { border-right:0; }
.research-table th { background:#ebe8df; color:#4f4e49; font:600 8px/1.4 'DM Mono',monospace; letter-spacing:.09em; text-transform:uppercase; }
.research-table tbody tr:nth-child(even) td { background:rgba(255,255,255,.38); }
.research-table td { color:var(--muted); font-size:12px; line-height:1.55; }
.research-table td:first-child { color:var(--ink); font-weight:600; }
.research-table tr:last-child td { border-bottom:0; }
.dark .research-table-wrap, .dark .research-table th, .dark .research-table td { border-color:rgba(233,231,225,.2); }
.dark .research-table th { background:#171717; color:rgba(233,231,225,.78); }
.dark .research-table-wrap { background:#101010; }
.dark .research-table tbody tr:nth-child(even) td { background:rgba(255,255,255,.025); }
.dark .research-table td { color:rgba(233,231,225,.78); }
.dark .research-table td:first-child { color:var(--paper); }
.figure-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.figure-grid figure, .research-figure { margin:0; overflow:hidden; border:1px solid var(--line); background:#f6f3ec; }
.figure-grid img, .research-figure img, .figure-grid video, .research-figure video { width:100%; min-height:320px; max-height:600px; object-fit:contain; background:#0e0e0e; }
.figure-grid figcaption, .research-figure figcaption { padding:14px 16px; border-top:1px solid var(--line); color:var(--muted); font:400 9px/1.55 'DM Mono',monospace; letter-spacing:.04em; text-transform:uppercase; }
.evidence-note { margin-top:25px; padding:20px 22px; border-left:3px solid var(--cobalt); background:rgba(49,92,255,.07); color:var(--muted); font-size:12px; line-height:1.7; }
.evidence-note strong { color:var(--ink); }
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:7vw; }
.prose h3 { margin:0 0 18px; font:400 34px/1 'Instrument Serif',Georgia,serif; letter-spacing:-.03em; }
.prose p, .prose li { color:var(--muted); font-size:13px; line-height:1.75; }
.prose ul { margin:0; padding-left:18px; }
.citation-block { margin-top:25px; padding:25px; border:1px solid var(--line); background:rgba(255,255,255,.2); }
.citation-block code { display:block; overflow-wrap:anywhere; white-space:pre-wrap; color:var(--ink); font:400 11px/1.7 'DM Mono',monospace; }
.scope-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; }
.scope-tags span { padding:7px 9px; border:1px solid var(--line); font:500 8px 'DM Mono',monospace; letter-spacing:.06em; text-transform:uppercase; }
.metric-small { color:var(--cobalt); font:400 38px/1 'Instrument Serif',Georgia,serif; }
.project-media.visual-abstract { min-height:auto; padding:72px max(32px,calc((100vw - 1240px)/2)); }
.pipeline-map { display:grid; grid-template-columns:repeat(6,1fr); border:1px solid rgba(233,231,225,.25); color:var(--paper); }
.pipeline-map div, .pipeline-map button { min-height:170px; padding:20px; display:flex; flex-direction:column; }
.pipeline-map button { appearance:none; border:0; background:transparent; color:inherit; text-align:left; cursor:pointer; transition:background .18s ease,opacity .18s ease,transform .18s ease; }
.pipeline-map div + div, .pipeline-map button + button { border-left:1px solid rgba(233,231,225,.25); }
.pipeline-map button:hover, .pipeline-map button:focus-visible, .pipeline-map button.is-trace-active { background:rgba(199,243,107,.09); }
.pipeline-map button.is-trace-active { transform:translateY(-4px); }
.pipeline-map button.is-trace-muted { opacity:.28; }
.pipeline-map b { color:var(--acid); font:500 9px 'DM Mono',monospace; }
.pipeline-map strong { margin-top:auto; font-size:13px; }
.pipeline-map small { margin-top:8px; color:rgba(233,231,225,.72); font:400 9px/1.5 'DM Mono',monospace; text-transform:uppercase; }
.section-intro { max-width:770px; margin:-30px 0 52px auto; color:var(--muted); font-size:14px; line-height:1.75; }
.dark .section-intro { color:rgba(233,231,225,.8); }

/* Evidence maturity and interactive system tracing */
.claim-key { padding:18px max(32px,calc((100vw - 1240px)/2)); display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:22px; border-bottom:1px solid var(--line); background:#ebe8df; }
.claim-key > span, .claim-key p { margin:0; color:var(--muted); font:500 8px/1.5 'DM Mono',monospace; letter-spacing:.07em; text-transform:uppercase; }
.claim-key > div { display:flex; flex-wrap:wrap; gap:7px; }
.evidence-badge { display:inline-flex; width:max-content; padding:5px 7px; border:1px solid currentColor; border-radius:99px; font:600 7px/1 'DM Mono',monospace; letter-spacing:.07em; text-transform:uppercase; font-style:normal; }
.evidence-badge.implemented { color:#2452d6; }
.evidence-badge.measured { color:#166c55; }
.evidence-badge.demonstrated { color:#7852c8; }
.evidence-badge.offline { color:#8b6413; }
.evidence-badge.ongoing { color:#a74423; }
.evidence-badge.open { color:#6e6b63; }
.dark .evidence-badge.implemented, .deep .evidence-badge.implemented { color:#7ba0ff; }
.dark .evidence-badge.measured, .deep .evidence-badge.measured { color:#71d6b0; }
.dark .evidence-badge.demonstrated, .deep .evidence-badge.demonstrated { color:#b99cff; }
.dark .evidence-badge.offline, .deep .evidence-badge.offline { color:#f0c261; }
.dark .evidence-badge.ongoing, .deep .evidence-badge.ongoing { color:#ff8c6b; }
.dark .evidence-badge.open, .deep .evidence-badge.open { color:#aaa69d; }
.section-status { margin:-24px 0 42px auto; width:max-content; max-width:100%; display:flex; align-items:center; gap:10px; color:var(--muted); font:500 8px/1.5 'DM Mono',monospace; letter-spacing:.06em; text-transform:uppercase; }
.dark .section-status, .deep .section-status { color:rgba(233,231,225,.74); }
.trace-system { display:block; }
.trace-prompt { margin:0 0 18px; color:rgba(233,231,225,.76); font:500 9px/1.5 'DM Mono',monospace; letter-spacing:.07em; text-transform:uppercase; }
.trace-panels { position:relative; min-height:255px; margin-top:18px; border:1px solid rgba(233,231,225,.25); }
.trace-panels article { position:absolute; inset:0; padding:28px; display:grid; grid-template-columns:minmax(200px,.7fr) minmax(260px,1fr); align-content:center; column-gap:60px; opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .18s ease,transform .18s ease,visibility .18s; }
.trace-panels article.is-trace-active { opacity:1; visibility:visible; transform:none; }
.trace-panels article > .evidence-badge { grid-column:1; margin-bottom:16px; }
.trace-panels h3 { grid-column:1; margin:0; color:var(--paper); font:400 clamp(30px,3vw,44px)/1 'Instrument Serif',Georgia,serif; letter-spacing:-.035em; }
.trace-panels p { grid-column:2; margin:0 0 18px; color:rgba(233,231,225,.82); font-size:13px; line-height:1.7; }
.trace-panels dl { grid-column:2; margin:0; }
.trace-panels dl div { padding:8px 0; display:grid; grid-template-columns:84px 1fr; gap:14px; border-top:1px solid rgba(233,231,225,.18); }
.trace-panels dt { color:var(--acid); font:600 7px 'DM Mono',monospace; letter-spacing:.07em; text-transform:uppercase; }
.trace-panels dd { margin:0; color:rgba(233,231,225,.74); font-size:11px; line-height:1.55; }
.trace-system:not([data-trace-active]) .trace-panels::before { content:'Choose a stage above'; position:absolute; inset:0; display:grid; place-items:center; color:rgba(233,231,225,.62); font:500 9px 'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }

@media (max-width:950px) {
  .publication-strip { grid-template-columns:1fr 1fr; }
  .publication-strip > div:first-child { grid-column:1/-1; }
  .resource-bar { grid-template-columns:1fr 1fr; }
  .resource-bar > *:nth-child(3) { border-left:0; border-top:1px solid var(--line); }
  .resource-bar > *:nth-child(4) { border-top:1px solid var(--line); }
  .stat-strip { grid-template-columns:1fr 1fr; }
  .stat-strip > div:nth-child(3) { border-left:0; border-top:1px solid var(--line); }
  .stat-strip > div:nth-child(4) { border-top:1px solid var(--line); }
  .method-grid { grid-template-columns:1fr 1fr; }
  .pipeline-map { grid-template-columns:repeat(3,1fr); }
  .pipeline-map div:nth-child(4), .pipeline-map button:nth-child(4) { border-left:0; }
  .pipeline-map div:nth-child(n+4), .pipeline-map button:nth-child(n+4) { border-top:1px solid rgba(233,231,225,.25); }
  .claim-key { grid-template-columns:1fr; gap:10px; }
}
@media (max-width:650px) {
  .publication-strip { width:calc(100% - 36px); margin:-25px auto 48px; grid-template-columns:1fr; }
  .publication-strip > div:first-child { grid-column:auto; }
  .resource-bar, .stat-strip, .method-grid, .figure-grid, .two-col, .pipeline-map { grid-template-columns:1fr; }
  .resource-bar > *, .stat-strip > div { border-left:0 !important; border-top:1px solid var(--line); }
  .resource-bar > *:first-child, .stat-strip > div:first-child { border-top:0; }
  .pipeline-map div, .pipeline-map button { min-height:130px; border-left:0 !important; border-top:1px solid rgba(233,231,225,.25); }
  .pipeline-map div:first-child, .pipeline-map button:first-child { border-top:0; }
  .trace-panels { min-height:440px; }
  .trace-panels article { padding:20px; grid-template-columns:1fr; align-content:start; gap:14px; overflow:auto; }
  .trace-panels article > .evidence-badge, .trace-panels h3, .trace-panels p, .trace-panels dl { grid-column:1; }
  .trace-panels dl div { grid-template-columns:72px 1fr; }
  .section-status { margin:-18px 0 30px; width:auto; align-items:flex-start; }
  .paper-abstract { padding:54px 20px; }
  .figure-grid img, .research-figure img, .figure-grid video, .research-figure video { min-height:220px; }
}


/* Media integrity: figures are never stretched or arbitrarily cropped. */
.project-media.media-natural { min-height:0; padding:clamp(18px,3vw,42px); background:#0c0c0c; }
.project-media.media-natural > img,
.project-media.media-natural > video { width:100%; height:auto; min-height:0; max-height:min(82vh,900px); object-fit:contain; object-position:center; filter:none; }
.project-media.media-natural.diagram-media { padding:clamp(14px,2.4vw,34px); background:#d8d5cc; }
.project-media.media-natural.diagram-media > img { width:100%; height:auto; min-height:0; padding:clamp(14px,2vw,30px); border:1px solid rgba(18,18,18,.16); background:#f7f5ef; object-fit:contain; filter:none; box-shadow:0 16px 42px rgba(18,18,18,.1); }
.project-media.media-natural.natsgd-architecture { overflow-x:auto; }
.project-media.media-natural.natsgd-architecture > img { max-height:none; }
@media (max-width:700px) { .project-media.media-natural.natsgd-architecture > img { min-width:900px; } }
.natsgd-output { max-width:980px; margin-inline:auto; }
.natsgd-output img { width:100%; height:auto; min-height:0; max-height:none; object-fit:contain; background:#f6f3ec; }
.project-media.media-natural .media-caption { position:static; width:100%; margin:14px 0 0; }
.figure-grid figure, .research-figure { display:flex; flex-direction:column; }
.figure-grid img, .research-figure img { width:100%; height:auto; min-height:0; max-height:none; object-fit:contain; object-position:center; background:#f6f3ec; filter:none; }
.figure-grid video, .research-figure video { width:100%; height:auto; min-height:0; aspect-ratio:16/9; object-fit:contain; object-position:center; background:#0c0c0c; filter:none; }
.chart img { width:100%; height:auto; object-fit:contain; filter:none; }

/* Evidence galleries: publication figures retain their complete frame and native ratio. */
.evidence-gallery { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:18px; margin-top:34px; }
.evidence-gallery figure { position:relative; grid-column:span 6; min-width:0; margin:0; display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--line); background:#f7f5ef; }
.evidence-gallery figure.wide { grid-column:1/-1; }
.evidence-gallery figure.third { grid-column:span 4; }
.evidence-gallery figure.narrow { grid-column:span 5; }
.evidence-gallery figure.wide-side { grid-column:span 7; }
.evidence-gallery .image-stage { flex:1; min-height:0; display:grid; place-items:center; padding:clamp(10px,1.8vw,26px); background:#fff; }
.evidence-gallery .image-stage.dark-stage { padding:clamp(14px,2.2vw,30px); background:#dedbd2; }
.evidence-gallery .image-stage.dark-stage img { outline:1px solid rgba(18,18,18,.16); box-shadow:0 12px 30px rgba(18,18,18,.12); }
.evidence-gallery .image-stage.paper-mat { background:#eeece5; }
.evidence-gallery img { width:100%; height:auto; max-height:720px; object-fit:contain; object-position:center; filter:none; }
.evidence-gallery video { width:100%; height:auto; max-height:720px; object-fit:contain; object-position:center; background:#0d0d0d; filter:none; }
.evidence-gallery figure.tall img { max-height:620px; width:auto; max-width:100%; }
.evidence-gallery figcaption { min-height:68px; padding:14px 16px; display:flex; flex-direction:column; justify-content:center; gap:5px; border-top:1px solid var(--line); color:var(--muted); font:400 9px/1.5 'DM Mono',monospace; letter-spacing:.035em; text-transform:uppercase; }
.evidence-gallery figcaption strong { color:var(--ink); font-size:10px; font-weight:500; }
.dark .evidence-gallery figure { border-color:rgba(233,231,225,.22); background:#151515; }
.dark .evidence-gallery figcaption { border-color:rgba(233,231,225,.18); color:rgba(233,231,225,.74); }
.dark .evidence-gallery figcaption strong { color:var(--paper); }
.figure-deck { margin-top:56px; }
.figure-deck__heading { max-width:760px; margin:0 0 24px; }
.figure-deck__heading h3 { margin:0 0 10px; font:400 clamp(30px,3.5vw,48px)/1 'Instrument Serif',Georgia,serif; letter-spacing:-.035em; }
.figure-deck__heading p { margin:0; color:var(--muted); font-size:13px; line-height:1.7; }
.dark .figure-deck__heading p { color:rgba(233,231,225,.8); }
.figure-source { display:inline-flex; width:fit-content; margin-top:4px; color:var(--cobalt); font-size:8px; letter-spacing:.08em; }
.dark .figure-source { color:var(--acid); }

/* Full-resolution inspection without replacing the page context. */
.is-expandable { position:relative; cursor:zoom-in; }
.is-expandable::after { content:'Expand'; position:absolute; top:10px; right:10px; padding:6px 8px; background:rgba(18,18,18,.82); color:#fff; font:500 8px/1 'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; opacity:0; transform:translateY(-3px); transition:opacity .18s ease,transform .18s ease; pointer-events:none; }
.is-expandable:hover::after, .is-expandable:focus-within::after { opacity:1; transform:none; }
.figure-lightbox { width:min(96vw,1500px); max-width:none; height:min(94vh,1000px); margin:auto; padding:0; border:0; background:#101010; color:#fff; box-shadow:0 30px 90px rgba(0,0,0,.42); }
.figure-lightbox::backdrop { background:rgba(0,0,0,.82); backdrop-filter:blur(5px); }
.figure-lightbox__frame { height:100%; display:grid; grid-template-rows:minmax(0,1fr) auto; }
.figure-lightbox img { width:100%; height:100%; min-height:0; padding:clamp(12px,2vw,28px); object-fit:contain; background:#f7f5ef; }
.figure-lightbox__bar { min-height:58px; padding:12px 16px; display:flex; align-items:center; justify-content:space-between; gap:20px; color:rgba(255,255,255,.7); font:400 9px/1.5 'DM Mono',monospace; letter-spacing:.04em; text-transform:uppercase; }
.figure-lightbox__close { flex:0 0 auto; min-width:74px; min-height:36px; border:1px solid rgba(255,255,255,.35); background:transparent; color:#fff; font:500 9px 'DM Mono',monospace; text-transform:uppercase; cursor:pointer; }

/* Dense research tables remain usable on touch screens. */
.research-table-wrap { position:relative; overscroll-behavior-inline:contain; scrollbar-width:thin; scrollbar-color:var(--cobalt) transparent; }
.research-table-wrap::-webkit-scrollbar { height:7px; }
.research-table-wrap::-webkit-scrollbar-thumb { background:var(--cobalt); }

/* Architecture case-study system */
.paper-figure { min-width:0; margin:0; border:1px solid var(--line); background:#f8f6f0; }
.paper-figure--wide { margin-top:46px; }
.paper-figure__stage { display:grid; place-items:center; padding:clamp(16px,2.8vw,38px); background:#eeece5; }
.paper-figure img { display:block; width:100%; height:auto; max-height:700px; object-fit:contain; filter:none; }
.paper-figure--portrait img { width:auto; max-width:100%; max-height:650px; }
.paper-figure figcaption { padding:14px 16px; display:flex; flex-wrap:wrap; align-items:baseline; gap:5px 14px; border-top:1px solid var(--line); color:var(--muted); font:400 9px/1.5 'DM Mono',monospace; letter-spacing:.035em; text-transform:uppercase; }
.paper-figure figcaption strong { color:var(--ink); font-size:10px; }
.paper-figure figcaption small { margin-left:auto; color:var(--cobalt); font:500 8px 'DM Mono',monospace; }
.module-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:54px; }
.module-card { padding:26px; display:flex; flex-direction:column; gap:30px; border:1px solid rgba(233,231,225,.26); background:#1c1c1a; }
.module-card__copy > span { color:var(--acid); font:600 8px 'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }
.module-card__copy h3 { margin:28px 0 16px; color:var(--paper); font:400 clamp(32px,3.4vw,48px)/.98 'Instrument Serif',Georgia,serif; letter-spacing:-.04em; }
.module-card__copy p { margin:0; color:rgba(233,231,225,.8); font-size:13px; line-height:1.72; }
.module-card__copy dl { margin:24px 0 0; }
.module-card__copy dl div { padding:10px 0; display:grid; grid-template-columns:100px 1fr; gap:16px; border-top:1px solid rgba(233,231,225,.18); }
.module-card__copy dt { color:var(--acid); font:600 8px 'DM Mono',monospace; text-transform:uppercase; }
.module-card__copy dd { margin:0; color:rgba(233,231,225,.74); font-size:11px; line-height:1.5; }
.module-card__figures { margin-top:auto; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.dark .module-card .paper-figure { border-color:rgba(233,231,225,.2); }
.module-trace-controls { margin:0 0 26px; display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.module-trace-controls > span { margin-right:auto; color:rgba(233,231,225,.68); font:500 9px 'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }
.module-trace-controls button { min-height:38px; padding:8px 11px; border:1px solid rgba(233,231,225,.3); background:transparent; color:rgba(233,231,225,.82); font:600 9px 'DM Mono',monospace; text-transform:uppercase; cursor:pointer; }
.module-trace-controls button:hover, .module-trace-controls button:focus-visible, .module-trace-controls button.is-trace-active { border-color:var(--acid); color:var(--acid); }
.module-trace-controls button.is-trace-muted { opacity:.34; }
.module-trace-system .module-card { transition:opacity .2s ease,border-color .2s ease,transform .2s ease; }
.module-trace-system[data-trace-active] .module-card { opacity:.16; }
.module-trace-system[data-trace-active] .module-card.is-trace-active { opacity:1; border-color:var(--acid); transform:translateY(-4px); }
@media (max-width:650px) {
  .project-media.media-natural { padding:12px; }
  .project-media.media-natural .media-caption { margin-top:10px; }
  .evidence-gallery { grid-template-columns:1fr; gap:14px; margin-top:26px; }
  .evidence-gallery figure, .evidence-gallery figure.wide, .evidence-gallery figure.third, .evidence-gallery figure.narrow, .evidence-gallery figure.wide-side { grid-column:1; }
  .evidence-gallery .image-stage { padding:10px; }
  .evidence-gallery img, .evidence-gallery figure.tall img { width:100%; max-height:none; }
  .evidence-gallery figcaption { min-height:0; padding:12px 13px; }
  .is-expandable::after { opacity:1; transform:none; }
  .figure-lightbox { width:100vw; height:100dvh; max-height:none; }
  .figure-lightbox img { padding:8px; }
  .figure-lightbox__bar { align-items:flex-start; }
  .research-table { min-width:680px; }
  .research-table th, .research-table td { padding:14px 13px; }
  .module-grid { grid-template-columns:1fr; }
  .module-card { padding:18px; }
  .module-card__figures { grid-template-columns:1fr; }
  .module-trace-controls { align-items:stretch; }
  .module-trace-controls > span { width:100%; margin:0 0 4px; }
  .module-trace-controls button { flex:1 1 calc(50% - 8px); }
  .paper-figure__stage { padding:12px; }
  .paper-figure figcaption { align-items:flex-start; flex-direction:column; }
  .paper-figure figcaption small { margin-left:0; }
}

@media (min-width:651px) and (max-width:950px) {
  .evidence-gallery figure, .evidence-gallery figure.third, .evidence-gallery figure.narrow, .evidence-gallery figure.wide-side { grid-column:span 6; }
  .evidence-gallery figure.wide { grid-column:1/-1; }
}

@media (min-width:1500px) {
  .project-section { padding-left:max(48px,calc((100vw - 1380px)/2)); padding-right:max(48px,calc((100vw - 1380px)/2)); }
  .project-hero, .publication-strip { width:min(1380px,calc(100% - 96px)); }
  .section-heading { gap:110px; }
}
