/* GateRestart AI V3 — DS-01 components, templates and responsive rules.
   Import AFTER tokens.css. All page content remains in static HTML. */
*, *::before, *::after { box-sizing:border-box; }
html { font-size:16px; scroll-behavior:smooth; scroll-padding-top:calc(var(--header-height) + 1.5rem); }
body { margin:0; background:var(--paper); color:var(--ink); font:var(--font-body)/var(--leading-body) var(--font-sans); -webkit-font-smoothing:antialiased; }
img, svg, video { max-width:100%; }
img { display:block; height:auto; }
figure, blockquote { margin:0; }
button, input, select, textarea { font:inherit; color:inherit; }
button, summary { cursor:pointer; }
button { border:0; }
a { color:inherit; text-decoration-thickness:1px; text-underline-offset:.18em; }
a:hover { text-decoration-color:var(--copper-strong); }
:focus-visible { outline:3px solid var(--focus-ring); outline-offset:3px; }
:focus:not(:focus-visible) { outline:none; }
::selection { background:var(--copper-light); color:var(--ink); }
[hidden] { display:none !important; }
.sr-only { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; border:0; clip:rect(0,0,0,0); overflow:hidden; white-space:nowrap; }
.skip-link { position:fixed; left:1rem; top:-7rem; z-index:1000; padding:.8rem 1rem; background:var(--ink); color:var(--paper); font-size:1rem; }
.skip-link:focus { top:.6rem; }
.container { width:min(calc(100% - 2*var(--layout-inline)), var(--layout-max)); margin-inline:auto; }
.container.narrow { max-width:var(--reading-max); }
.grid-12 { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:var(--grid-gap); }
.grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--grid-gap); }
.grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--grid-gap); }
.min0 { min-width:0; }
.muted { color:var(--ink-muted); }
.ink-muted { color:var(--ink-muted); }
.bg-mist { background:var(--mist); }
.bg-deep { background:var(--canvas-deep); color:var(--paper); }
.space-top { margin-top:var(--space-8); }
.section { padding-block:var(--space-20); }
.section-tight { padding-block:var(--space-12); }
.section + .section { border-top:var(--border-hairline); }
.section-head { display:flex; justify-content:space-between; align-items:end; gap:1.25rem; margin-bottom:var(--space-8); }
.section-head .section-description { max-width:38rem; margin:0; }
.smallcaps, .eyebrow { margin:0 0 .9rem; font-size:var(--font-kicker); line-height:1.5; font-weight:var(--weight-semibold); letter-spacing:var(--tracking-label); text-transform:uppercase; }
.eyebrow::before { content:''; display:inline-block; vertical-align:middle; width:1.4rem; height:2px; margin-right:.75rem; background:var(--copper); }
.hairline { height:1px; background:var(--line-light); }
h1,h2,h3,h4,p { margin-top:0; }
h1,h2,h3 { letter-spacing:var(--tracking-title); line-height:var(--leading-title); }
h1 { font-size:var(--font-h1); margin-bottom:1.5rem; }
h2 { font-size:var(--font-h2); margin-bottom:1.125rem; }
h3 { font-size:var(--font-h3); margin-bottom:.85rem; letter-spacing:-.026em; }
p { margin-bottom:1.05rem; }
.lead { max-width:44rem; font-size:clamp(1.1rem, 1rem + .45vw, 1.34rem); line-height:1.75; }
.caption, figcaption { color:var(--ink-subtle); font-size:.8125rem; line-height:1.6; }
.number { font-feature-settings:'tnum'; font-variant-numeric:tabular-nums; }
.rule-top { border-top:1px solid var(--line-light); padding-top:1rem; }
/* Global header / disclosure and two independent navigation states */
.site-header { position:sticky; top:0; z-index:80; background:rgba(255,255,255,.985); border-bottom:1px solid var(--line-light); }
.header-main { display:flex; align-items:center; min-height:var(--header-height); gap:1.05rem; }
.brand-anchor { display:inline-flex; min-width:0; flex:0 0 auto; align-items:center; gap:.5rem; text-decoration:none; }
.brand-anchor img { width:13.8rem; height:auto; max-height:3.25rem; }
.header-actions { display:flex; align-items:center; margin-left:auto; gap:1rem; min-width:0; }
.desktop-nav { display:flex; gap:.15rem; align-items:center; }
.nav-unit { position:relative; }
.nav-unit>summary, .nav-standalone { display:flex; gap:.4rem; align-items:center; min-height:2.9rem; padding:.5rem .76rem; font-size:.875rem; font-weight:600; list-style:none; text-decoration:none; white-space:nowrap; }
.nav-unit>summary::-webkit-details-marker { display:none; }
.nav-unit>summary::after { content:''; width:.35rem; height:.35rem; border-right:1.7px solid currentColor; border-bottom:1.7px solid currentColor; transform:translateY(-.15rem) rotate(45deg); transition:transform var(--duration-fast); }
.nav-unit[open]>summary::after { transform:translateY(.06rem) rotate(225deg); }
.nav-unit>summary:hover, .nav-standalone:hover, .nav-unit[open]>summary { color:var(--copper-strong); }
.mega-menu { position:absolute; right:-6rem; top:calc(100% + 12px); width:min(54rem, 88vw); display:grid; grid-template-columns:1fr 1fr 1.1fr; gap:1.3rem; padding:1.6rem; background:var(--paper); box-shadow:var(--shadow-menu); border:1px solid var(--line-light); z-index:50; }
.mega-menu::before { content:''; position:absolute; left:0; right:0; top:-14px; height:14px; }
.mega-menu h2 { font-size:.85rem; letter-spacing:0; margin:.1rem 0 .55rem; }
.mega-menu a { display:block; text-decoration:none; min-height:2.2rem; font-size:.85rem; line-height:1.5; padding:.48rem .25rem; border-bottom:1px solid var(--line-light); }
.mega-menu a:hover { color:var(--copper-strong); }
.mega-menu a[aria-current="page"] { color:var(--ink); font-weight:700; border-bottom-color:var(--copper); }
.mega-summary { padding:1.125rem; background:var(--mist); align-self:stretch; }
.mega-summary strong { display:block; font-size:1rem; line-height:1.4; }
.mega-summary p { margin:.65rem 0 0; font-size:.8125rem; line-height:1.75; color:var(--ink-muted); }
.identity-toggle { position:relative; z-index:85; flex:0 0 auto; }
.identity-toggle>summary { list-style:none; display:inline-flex; align-items:center; justify-content:center; font-size:.72rem; line-height:1.35; padding:.36rem .65rem; border:1px solid var(--line-light); background:var(--mist); white-space:nowrap; }
.identity-toggle>summary::-webkit-details-marker { display:none; }
.identity-toggle>summary:hover { border-color:var(--slate); }
.identity-panel { position:absolute; top:calc(100% + .5rem); right:0; width:min(22rem,calc(100vw - 2rem)); background:var(--paper); border:1px solid var(--line-light); box-shadow:var(--shadow-menu); padding:1.1rem; font-size:.86rem; line-height:1.7; }
.identity-panel p { margin:0; }
.identity-strip { padding:.32rem 0; border-bottom:1px solid var(--line-light); background:var(--mist); color:var(--ink-subtle); font-size:.72rem; line-height:1.5; }
.identity-strip .container { display:flex; align-items:center; gap:.6rem; }
.identity-strip .kind { color:var(--ink); font-weight:600; }
.mobile-drawer { display:none; }
/* Hero, buttons, visual media */
.hero { overflow:hidden; }
.hero .container { min-height:30rem; }
.hero-home { background:var(--canvas-deep); color:var(--paper); }
.hero-home .container { min-height:36rem; display:grid; grid-template-columns:minmax(0,.89fr) minmax(0,1.11fr); align-items:center; gap:clamp(1.5rem,5vw,4.5rem); padding-block:4rem; }
.hero-home h1 { font-size:var(--font-h1-home); max-width:10ch; }
.hero-home .lead { font-size:1.05rem; max-width:35rem; }
.hero-product { background:var(--mist); }
.hero-product .container { display:grid; grid-template-columns: .83fr 1.17fr; align-items:center; gap:3.5rem; min-height:36rem; padding-block:3rem; }
.hero-product .product-photo { background:#d0cfd2; }
.hero-product h1 { max-width:9ch; }
.hero-photo { display:block; position:relative; overflow:hidden; }
.hero-photo img { object-fit:contain; width:100%; height:100%; }
.hero-home .hero-photo { aspect-ratio:1.35; background:#c8c6c8; }
.hero-home .hero-photo img { object-position:50% 45%; object-fit:cover; }
.hero-photo figcaption { background:var(--paper); color:var(--ink-muted); padding:.4rem .7rem; }
.hero-home .hero-photo figcaption { background:transparent; color:var(--paper-muted); text-align:right; }
.product-photo { aspect-ratio:1.07; }
.story-hero { padding:clamp(3.5rem,8vw,7rem) 0; background:var(--canvas-deep); color:var(--paper); }
.story-hero h1 { max-width:16ch; }
.story-hero .lead { max-width:56rem; }
.page-hero { padding:clamp(3rem,6vw,5.5rem) 0 clamp(2.75rem,5vw,4rem); }
.page-hero h1 { max-width:19ch; }
.page-hero .lead { color:var(--ink-muted); }
.page-hero.has-aside>.container { display:grid; grid-template-columns:minmax(0,1fr) minmax(13rem,.34fr); gap:4rem; align-items:end; }
.page-kicker { display:inline-block; color:var(--copper-strong); font-size:.78rem; font-weight:600; letter-spacing:.08em; margin-bottom:1rem; }
.actions { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem; margin-top:2rem; }
.button { display:inline-flex; min-height:3rem; padding:.7rem 1.15rem; gap:1.1rem; justify-content:space-between; align-items:center; border:1px solid var(--ink); background:var(--ink); color:var(--paper); text-decoration:none; font-size:.86rem; line-height:1.4; font-weight:600; transition:background var(--duration-fast),color var(--duration-fast); }
.button:hover { background:#354044; }
.button.secondary { background:transparent; color:var(--ink); }
.button.secondary:hover { background:var(--mist); }
.button.on-dark { background:var(--copper); border-color:var(--copper); color:var(--ink); }
.button.on-dark:hover { background:#e2a17a; }
.button.line-dark { color:var(--paper); border-color:#879094; }
.button.line-dark:hover { background:#2a3438; }
.button:disabled { opacity:.52; cursor:not-allowed; }
.link-arrow { display:inline-flex; align-items:center; gap:.65rem; text-decoration:none; font-weight:600; font-size:.92rem; }
.link-arrow::after { content:'↗'; font-size:1.15rem; line-height:1; }
.media-split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,5vw,4.75rem); align-items:center; }
.media-split.reverse>:first-child { order:2; }
.media-frame { background:var(--mist); padding:clamp(1rem,3vw,2.5rem); }
.media-frame.dark { background:var(--canvas-deep); color:var(--paper); }
.figure-slot { position:relative; min-height:17rem; display:grid; place-items:center; padding:2rem; border:1px dashed #9fa8ad; background:#f7f8f8; }
.figure-slot .slot-note { max-width:24rem; font-size:.85rem; line-height:1.7; text-align:center; color:var(--ink-muted); }
.figure-slot strong { display:block; margin-bottom:.45rem; font-size:1rem; color:var(--ink); }
.figure-slot figcaption { position:absolute; bottom:.5rem; right:.7rem; }
/* Navigation rails, prose, disclosure / sources */
.crumbs { font-size:.78rem; color:var(--ink-muted); padding-block:1rem; }
.crumbs ol { display:flex; flex-wrap:wrap; gap:.55rem; align-items:center; margin:0; list-style:none; padding:0; }
.crumbs li:not(:last-child)::after { content:'/'; margin-left:.55rem; color:var(--slate); }
.crumbs a { text-decoration:none; }
.page-meta { display:flex; flex-wrap:wrap; gap:.5rem 1.3rem; font-size:.82rem; color:var(--ink-muted); margin:0 0 1.5rem; }
.page-meta .source-pill, .source-pill { display:inline-flex; align-items:center; min-height:1.6rem; padding:.18rem .55rem; border:1px solid #c8cfd2; color:var(--ink); font-size:.75rem; line-height:1.4; }
.source-pill.synthetic { border-color:#c6a48b; color:var(--warning-ink); background:#fff9f5; }
.source-pill.actual { border-color:#8ba8a5; color:#295b5a; }
.source-pill.science { border-color:#9aa9bf; color:#284761; }
.source-pill.generated { border-color:#a3a4a9; color:#494c53; }
.reading-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(12rem,17rem); gap:clamp(2rem,6vw,6rem); align-items:start; }
.reading-main { min-width:0; max-width:var(--reading-max); }
.longform { font-size:1.0625rem; line-height:1.84; }
.longform h2 { font-size:clamp(1.65rem,2vw,2.3rem); margin:2.75rem 0 1.15rem; scroll-margin-top:7rem; }
.longform h3 { margin:2rem 0 .9rem; scroll-margin-top:7rem; }
.longform p { margin-bottom:1.2rem; }
.longform ul, .longform ol { padding-left:1.5rem; margin:0 0 1.6rem; }
.longform li { margin-bottom:.5rem; }
.longform figure { margin:2rem 0; }
.longform figcaption { margin-top:.65rem; }
.longform blockquote { border-left:3px solid var(--copper); padding:.25rem 0 .25rem 1.5rem; margin:2rem 0; font-size:1.14rem; line-height:1.75; }
.longform .inline-note { font-size:.92rem; color:var(--ink-muted); padding:1.125rem 1.25rem; border-left:2px solid var(--line-dark); background:var(--mist); }
.toc { position:sticky; top:calc(var(--header-height) + 2.5rem); border-top:2px solid var(--ink); padding-top:1rem; font-size:.85rem; }
.toc h2 { font-size:.86rem; letter-spacing:.02em; }
.toc ol { margin:0; padding:0; list-style:none; }
.toc a { display:block; text-decoration:none; color:var(--ink-muted); padding:.58rem 0 .58rem .85rem; border-left:2px solid var(--line-light); line-height:1.5; }
.toc a:hover, .toc a[aria-current='location'] { border-left-color:var(--copper); color:var(--ink); }
.toc .sidebar-note { font-size:.78rem; line-height:1.65; color:var(--ink-muted); border-top:var(--border-hairline); margin-top:1.4rem; padding-top:1.2rem; }
.source-ledger { margin:2.25rem 0 0; padding:1.4rem 0 0; border-top:2px solid var(--ink); }
.source-ledger h2 { font-size:1.15rem; letter-spacing:0; margin-bottom:.9rem; }
.source-ledger ol { margin:0; padding:0; list-style:none; }
.source-ledger li { border-top:1px solid var(--line-light); padding:.85rem 0; font-size:.84rem; line-height:1.65; }
.source-ledger a { overflow-wrap:anywhere; }
.section-index { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.5rem; border-top:1px solid var(--line-light); }
.section-index>a { display:block; padding:1.5rem 0; text-decoration:none; border-top:3px solid transparent; }
.section-index>a:hover { border-top-color:var(--copper); }
.section-index strong { display:block; font-size:1.45rem; line-height:1.2; letter-spacing:-.03em; }
.section-index small { display:block; margin-top:.5rem; color:var(--ink-muted); }
/* Product / process / technical diagrams */
.module-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.2rem; }
.module-item { border-top:2px solid var(--ink); padding-top:1.25rem; }
.module-item .module-no { display:block; color:var(--ink-muted); font:600 .73rem/1.3 var(--font-mono); margin-bottom:1.2rem; }
.module-item h3 { font-size:1.7rem; }
.module-item p { font-size:.9rem; color:var(--ink-muted); line-height:1.65; }
.pipeline { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; counter-reset:process; }
.pipeline>li { list-style:none; position:relative; padding:1.5rem 1.3rem; background:var(--mist); border:1px solid var(--line-light); border-right:0; min-width:0; }
.pipeline>li:last-child { border-right:1px solid var(--line-light); }
.pipeline>li::before { counter-increment:process; content:'0' counter(process); display:block; font:600 .8rem var(--font-mono); color:var(--copper-strong); margin-bottom:1.4rem; }
.pipeline strong { display:block; font-size:1.05rem; margin-bottom:.65rem; }
.pipeline p { margin:0; font-size:.85rem; line-height:1.6; color:var(--ink-muted); }
.specs-table, .data-table { width:100%; border-collapse:collapse; text-align:left; font-size:.875rem; line-height:1.5; }
.specs-table caption, .data-table caption { text-align:left; font-size:.83rem; color:var(--ink-muted); margin-bottom:.8rem; }
.specs-table thead, .data-table thead { background:var(--mist); }
.specs-table th, .specs-table td, .data-table th, .data-table td { border-bottom:1px solid var(--line-light); padding:1.05rem .85rem; vertical-align:top; }
.specs-table tbody th { font-weight:600; width:22%; }
.table-scroll { max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; }
.table-scroll table { min-width:40rem; }
.specs-table .value { font-weight:600; }
.hero-facts { border-top:2px solid var(--ink); padding-top:1rem; }
.hero-facts>div { display:grid; grid-template-columns:8.5rem 1fr; gap:.8rem; border-bottom:1px solid var(--line-light); padding:.8rem 0; font-size:.84rem; }
.hero-facts dt { color:var(--ink-muted); }
.hero-facts dd { margin:0; font-weight:600; }
.faq-list details { border-bottom:1px solid var(--line-light); }
.faq-list summary { position:relative; padding:1.2rem 2rem 1.2rem .1rem; font-weight:600; font-size:1rem; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:'+'; position:absolute; right:.3rem; top:1.15rem; font-size:1.35rem; font-weight:400; }
.faq-list details[open] summary::after { content:'−'; }
.faq-list details>div { font-size:.95rem; color:var(--ink-muted); padding:0 2rem 1rem 0; max-width:60rem; }
/* Story, organization, timelines */
.timeline { border-top:1px solid var(--ink); margin:0; padding:0; list-style:none; }
.timeline li { display:grid; grid-template-columns:8rem 1fr; gap:1.75rem; padding:1.5rem 0; border-bottom:1px solid var(--line-light); }
.timeline time { font:600 .88rem var(--font-mono); }
.timeline strong { display:block; margin-bottom:.45rem; }
.timeline p { color:var(--ink-muted); font-size:.93rem; margin:0; }
.person-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.6rem; }
.person-card { padding:1.4rem 0; border-top:2px solid var(--ink); }
.person-avatar { display:flex; align-items:center; justify-content:center; aspect-ratio:1.42; background:var(--mist); color:var(--canvas-deep); font-size:3.6rem; font-weight:600; letter-spacing:-.08em; margin-bottom:1rem; }
.person-card h3 { margin-bottom:.4rem; }
.person-card p { color:var(--ink-muted); font-size:.9rem; }
.person-profile { display:grid; grid-template-columns: minmax(0,.55fr) minmax(0,1fr); gap:4rem; }
.person-profile .person-avatar { aspect-ratio:1; font-size:6rem; }
/* Scenario and research matrices */
.matrix { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.matrix-cell { background:var(--mist); padding:1.3rem; border-top:2px solid var(--line-dark); }
.matrix-cell strong { display:block; margin-bottom:.7rem; font-size:1rem; }
.matrix-cell p { margin:0; color:var(--ink-muted); font-size:.88rem; }
.diagram-frame { display:block; background:var(--mist); padding:clamp(1rem,3vw,2rem); }
.diagram-frame img, .diagram-frame svg { display:block; width:100%; }
/* Case registry and simulated instrument design contract */
.instrument-shell { background:#e9eded; border-top:3px solid var(--ink); padding:clamp(1rem,3vw,2.5rem); }
.instrument-heading { display:flex; align-items:start; justify-content:space-between; gap:1rem; }
.instrument-heading h2 { font-size:clamp(1.4rem,2.3vw,2.15rem); }
.instrument-controls { display:flex; flex-wrap:wrap; align-items:end; gap:1rem 2rem; padding:1.4rem 0; margin:1rem 0; border-block:1px solid #b8c2c4; }
.field { display:grid; gap:.5rem; min-width:12rem; }
.field label { font-size:.84rem; font-weight:600; }
.field input, .field select, .field textarea, .search-field input, .filter-row select { width:100%; border:1px solid #849196; background:white; min-height:2.8rem; padding:.5rem .75rem; border-radius:0; }
.field textarea { min-height:9rem; resize:vertical; }
.fieldset-inline { display:flex; flex-wrap:wrap; align-items:center; gap:.8rem 1.25rem; border:0; padding:0; min-width:0; }
.fieldset-inline legend { font-size:.83rem; font-weight:600; margin-bottom:.6rem; }
.fieldset-inline label { display:flex; align-items:center; gap:.4rem; font-size:.84rem; }
.fieldset-inline input { accent-color:var(--copper-strong); }
.plot-absence { min-height:17rem; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:2rem; border:1px dashed #adb6ba; background:#fafafa; text-align:center; }
.plot-absence svg { width:6rem; height:auto; margin-bottom:1rem; }
.plot-absence strong { display:block; font-size:1rem; }
.plot-absence p { margin:.5rem 0 0; font-size:.84rem; color:var(--ink-muted); max-width:28rem; }
.case-layout { display:grid; grid-template-columns: minmax(0,1fr) minmax(12rem,18rem); gap:2rem; }
.state-block { border-left:3px solid var(--copper); padding:1rem 1.25rem; background:var(--mist); }
.state-block h3 { font-size:1.2rem; margin:.25rem 0; }
.state-block p { color:var(--ink-muted); font-size:.88rem; margin:0; }
.status-abstain { border-left-color:#586a74; }
.case-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.case-card { border-top:2px solid var(--ink); padding:1.1rem .2rem 1.25rem; }
.case-card h3 { font-size:1.07rem; letter-spacing:0; }
.case-card p { font-size:.87rem; color:var(--ink-muted); }
.case-card .smallcaps { font-size:.72rem; }
.status-key { display:inline-block; font:600 .74rem var(--font-mono); letter-spacing:0; border:1px solid #a6b0b5; padding:.2rem .4rem; }
/* News, listings, pagination, jobs, resources */
.news-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.75rem; }
.news-card { border-top:2px solid var(--ink); padding-top:1rem; }
.news-card .card-image { display:grid; place-items:center; aspect-ratio:1.65; background:var(--mist); overflow:hidden; margin-bottom:1rem; padding:1.5rem; }
.news-card .card-image span { font-size:2rem; letter-spacing:-.06em; line-height:1.1; font-weight:700; }
.news-card .card-image .card-watermark { color:#a6afb2; font:500 .78rem var(--font-mono); align-self:end; justify-self:start; }
.news-card h3 { font-size:1.3rem; }
.news-card p { font-size:.9rem; color:var(--ink-muted); }
.filter-row { display:flex; gap:.8rem 1.2rem; flex-wrap:wrap; align-items:end; padding:1.2rem 0; border-block:1px solid var(--line-light); margin-bottom:1.4rem; }
.filter-row .search-field { flex:1 1 16rem; }
.search-field { display:grid; gap:.4rem; font-size:.85rem; font-weight:600; }
.filter-row select { min-width:10.5rem; }
.filter-row [role='status'] { margin:0; font-size:.78rem; color:var(--ink-muted); min-width:12rem; }
.pager { display:flex; gap:.5rem; align-items:center; margin-top:1.6rem; }
.pager button { min-height:2.75rem; min-width:2.75rem; padding:.5rem .7rem; border:1px solid var(--line-light); background:var(--paper); }
.pager button[aria-current='page'] { color:var(--paper); background:var(--ink); }
.pager button:disabled { opacity:.45; cursor:not-allowed; }
.job-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 2rem; }
.job-card { border-top:1px solid var(--line-light); padding:1.3rem 0; }
.job-card h3 { margin-bottom:.5rem; font-size:1.25rem; }
.job-card p { font-size:.9rem; color:var(--ink-muted); }
.job-detail { display:grid; grid-template-columns:2fr 1fr; gap:3.5rem; }
.job-detail aside { border-top:2px solid var(--ink); padding-top:1rem; }
.checklist { list-style:none; padding:0; margin:0; }
.checklist li { position:relative; border-bottom:1px solid var(--line-light); padding:1rem 0 1rem 1.75rem; }
.checklist li::before { content:''; position:absolute; left:.2rem; top:1.55rem; width:.5rem; height:.5rem; background:var(--copper); }
.resource-row { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,.7fr) minmax(0,.65fr) auto; align-items:center; gap:1rem; padding:1.2rem 0; border-top:1px solid var(--line-light); font-size:.85rem; }
.resource-row strong { display:block; font-size:1rem; }
.resource-row small { display:block; color:var(--ink-muted); margin-top:.3rem; }
.resource-row .button { white-space:nowrap; }
.source-legend { display:flex; flex-wrap:wrap; gap:.75rem; }
/* Contact/reply, output, footer */
.notice { background:var(--mist); border-left:3px solid var(--copper); padding:1rem 1.25rem; font-size:.9rem; line-height:1.7; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; }
.form-grid .full { grid-column:1/-1; }
.receipt { border:1px solid #8ca7a7; background:#f1f8f7; padding:1.3rem; margin-top:1.5rem; }
.receipt p { margin-bottom:.6rem; }
.receipt code { font:600 .85rem var(--font-mono); }
.site-footer { background:var(--ink); color:var(--paper); padding:4rem 0 2rem; }
.footer-grid { display:grid; grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr)); gap:2.5rem; }
.footer-grid img { max-width:12rem; }
.footer-grid h2 { font-size:.87rem; letter-spacing:.02em; }
.footer-grid p { color:#c6ced1; font-size:.82rem; }
.footer-grid nav { display:grid; gap:.45rem; }
.footer-grid nav a { text-decoration:none; font-size:.84rem; color:#d6dedf; padding:.15rem 0; }
.footer-bottom { display:flex; gap:1rem; justify-content:space-between; flex-wrap:wrap; padding-top:1.7rem; margin-top:3rem; border-top:1px solid var(--line-dark); color:#c6ced1; font-size:.76rem; }
/* Typed page details */
.page-technical .technical-principle { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:3rem; }
.page-research .research-question { padding:2.5rem; background:var(--canvas-deep); color:var(--paper); }
.page-insight .reading-main { max-width:47rem; }
.page-policy .reading-grid { grid-template-columns:minmax(0,1fr) 15rem; }
.page-scenario .diagram-frame { border-top:3px solid var(--ink); }
.page-news-index .news-grid { row-gap:2.2rem; }
.page-resource .hero-facts { margin:1.5rem 0; }
/* Responsive layouts: desktop >1080, tablet 761–1080, mobile <=760, narrow phone <=390 */
@media (max-width:1080px) {
  .brand-anchor img { width:11.6rem; }
  .header-actions { gap:.5rem; }
  .nav-unit>summary, .nav-standalone { padding-inline:.48rem; }
  .identity-toggle>summary { font-size:.68rem; }
  .reading-grid { grid-template-columns:minmax(0,1fr) 13.5rem; gap:2.2rem; }
  .hero-home .container { gap:2rem; }
  .mega-menu { right:-12rem; }
}
@media (max-width:880px) {
  .desktop-nav { display:none; }
  .mobile-drawer { display:block; margin-left:auto; position:relative; }
  .mobile-drawer>summary { list-style:none; display:flex; align-items:center; min-height:2.8rem; padding:.3rem .6rem; border:1px solid var(--line-light); font-size:.85rem; }
  .mobile-drawer>summary::-webkit-details-marker { display:none; }
  .mobile-content { position:absolute; right:0; top:calc(100% + .75rem); width:min(27rem, calc(100vw - 2*var(--layout-inline))); max-height:calc(100vh - var(--header-height) - 1.5rem); overflow:auto; background:var(--paper); border:1px solid var(--line-light); box-shadow:var(--shadow-menu); padding:1.2rem; }
  .mobile-content>nav { display:grid; gap:.1rem; }
  .mobile-content a { display:block; padding:.55rem 0; text-decoration:none; font-weight:600; font-size:.9rem; border-bottom:1px solid var(--line-light); }
  .mobile-content details { border-bottom:1px solid var(--line-light); }
  .mobile-content details>summary { font-weight:600; padding:.55rem 0; }
  .mobile-content details a { font-size:.85rem; font-weight:400; padding:.5rem .65rem; }
  .mobile-content a[aria-current="page"] { font-weight:700; color:var(--copper-strong); }
  .mobile-content .mobile-note { font-size:.76rem; margin:.8rem 0 0; color:var(--ink-muted); }
  .identity-toggle { margin-left:auto; }
  .header-actions { margin-left:0; }
  .reading-grid, .page-policy .reading-grid { grid-template-columns:1fr; }
  .reading-main { max-width:var(--reading-max); }
  .toc { order:-1; position:static; border-top:1px solid var(--line-light); }
  .toc ol { display:flex; flex-wrap:wrap; gap:0 1rem; }
  .toc a { border-left:0; border-bottom:2px solid var(--line-light); padding:.55rem .2rem; }
  .toc a:hover, .toc a[aria-current='location'] { border-bottom-color:var(--copper); border-left:0; }
  .toc .sidebar-note { display:none; }
  .module-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .section-index { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .grid-3, .news-grid, .case-grid, .person-grid, .matrix { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .footer-grid>div:first-child { grid-column:1/-1; }
}
@media (max-width:760px) {
  html { scroll-padding-top:calc(var(--header-height) + .7rem); }
  .identity-strip { font-size:.68rem; }
  .brand-anchor img { width:clamp(7rem, 33vw, 11rem); }
  .header-main { gap:.4rem; }
  .identity-toggle>summary { font-size:.625rem; padding:.3rem .4rem; }
  .mobile-drawer>summary { min-height:2.55rem; padding:.2rem .45rem; }
  .hero-home .container,.hero-product .container { grid-template-columns:1fr; padding-block:2.5rem; gap:1.5rem; }
  .hero-home .container,.hero-product .container { min-height:0; }
  .hero-home h1 { max-width:13ch; }
  .hero-home .hero-photo { aspect-ratio:1.35; }
  .hero-product .product-photo { max-width:36rem; margin-inline:auto; }
  .page-hero { padding:2.75rem 0 2rem; }
  .page-hero.has-aside>.container { grid-template-columns:1fr; gap:1.5rem; }
  .story-hero { padding:3.8rem 0; }
  .grid-12 { gap:1.2rem; }
  .grid-2,.media-split,.job-detail,.case-layout,.person-profile,.page-technical .technical-principle { grid-template-columns:1fr; }
  .media-split.reverse>:first-child { order:0; }
  .pipeline { grid-template-columns:1fr 1fr; }
  .pipeline>li:nth-child(2) { border-right:1px solid var(--line-light); }
  .pipeline>li:nth-child(n+3) { border-top:0; }
  .grid-3,.news-grid,.case-grid,.person-grid,.matrix { grid-template-columns:1fr; }
  .module-list { gap:1rem; }
  .section-head { display:block; }
  .toc ol { gap:0 .8rem; }
  .timeline li { grid-template-columns:5.5rem 1fr; gap:1rem; }
  .timeline p { font-size:.875rem; }
  .instrument-heading { display:block; }
  .instrument-heading .source-pill { margin-bottom:1rem; }
  .resource-row { grid-template-columns:1fr auto; gap:.5rem 1rem; }
  .resource-row>div:first-child { grid-column:1/-1; }
  .resource-row .button { grid-column:2; grid-row:2 / span 2; }
  .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-grid>div:first-child { grid-column:1/-1; }
  .form-grid { grid-template-columns:1fr; }
  .form-grid .full { grid-column:auto; }
  .longform { font-size:1rem; }
}
@media (max-width:390px) {
  .brand-anchor img { width:7rem; }
  .identity-toggle>summary { max-width:8.8rem; white-space:normal; font-size:.6rem; text-align:center; }
  .module-list,.section-index,.pipeline { grid-template-columns:1fr; }
  .pipeline>li { border-right:1px solid var(--line-light); border-top:0; }
  .pipeline>li:first-child { border-top:1px solid var(--line-light); }
  .timeline li { grid-template-columns:1fr; gap:.3rem; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:1.2rem; }
  .footer-bottom { display:block; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition-duration:0ms !important; animation-duration:0ms !important; }
}
@media print {
  .site-header,.identity-strip,.site-footer,.mobile-drawer,.desktop-nav,.toc,.actions,.filter-row,.pager { display:none !important; }
  html { scroll-padding-top:0; }
  body { font-size:11pt; }
  .reading-grid,.media-split,.grid-2 { display:block; }
  .container { width:100%; }
  a { text-decoration:underline; }
  .source-ledger { break-inside:avoid; }
}
/* WAI-ARIA tabs: panels are all in source HTML; enhancement hides unselected ones. */
.product-tab-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-block:1px solid var(--line-light); }
.product-tab-list [role='tab'] { min-height:3.5rem; padding:.75rem .5rem; background:var(--paper); border-bottom:3px solid transparent; font-size:.9rem; font-weight:600; }
.product-tab-list [role='tab'][aria-selected='true'] { border-bottom-color:var(--copper-strong); background:var(--mist); }
.product-tabs .tab-panel { padding:2rem 1.6rem; background:var(--mist); }
.product-tabs .tab-panel:not(:last-child) { border-bottom:1px solid var(--line-light); }
.product-tabs[data-enhanced='true'] .tab-panel { min-height:10rem; }
.product-tabs .tab-panel p { max-width:50rem; color:var(--ink-muted); }
@media (max-width:590px) { .product-tab-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
/* Narrow-screen long identifiers, hashes and canonical resource URL resilience. */
.hero-facts dd, .resource-row small, .resource-row strong, .page-resource code, .page-simulation code { overflow-wrap:anywhere; word-break:break-word; }
@media (max-width:760px) {
  .identity-toggle[open] .identity-panel { position:fixed; top:calc(var(--header-height) + .3rem); left:var(--layout-inline); right:var(--layout-inline); width:auto; z-index:100; }
}
