
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 200 800; font-display: swap; src: url('assets/fonts/manrope-latin-variable.woff2') format('woff2'); }
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 100 1000; font-display: swap; src: url('assets/fonts/dm-sans-latin-variable.woff2') format('woff2'); }

/* Shared layout; the two appearances only change the semantic palette. */
:root {
  color-scheme: dark;
  --ink: #f0f2f3; --muted: #a8afb5; --accent: #b4ccdf;
  --accent-strong: #c4d7e7; --on-accent: #10171d;
  --accent-wash: #1a2833; --accent-border: #475b6b; --accent-ink: #d1e3f1;
  --line: #2b3740; --paper: #0c1218; --surface: #121d25;
  --surface-raised: #1b2a34; --section: #101a22; --card: #121d25;
  --core: #15232d; --core-end: #0e171e; --shadow: #00000026;
  --photo-filter: grayscale(.18) brightness(.88); --max: 1280px;
  --radius: 2px; --space-section: clamp(56px,5.4vw,80px);
  --motion-control: 180ms; --ease-control: cubic-bezier(.2,.7,.3,1);
}
:root[data-theme="warm"] {
  color-scheme: light;
  --ink: #222c30; --muted: #5c686c; --accent: #805639;
  --accent-strong: #805639; --on-accent: #fffdfa;
  --accent-wash: #e7dbcb; --accent-border: #b29981; --accent-ink: #69452e;
  --line: #d4d9d7; --paper: #f5f4ef; --surface: #fcfcf9;
  --surface-raised: #e8ece9; --section: #e9eeeb; --card: #fcfcf9;
  --core: #e6dbce; --core-end: #eee7dc; --shadow: #3028200b;
  --photo-filter: grayscale(.08) brightness(.99);
}
* { box-sizing: border-box; }
[hidden] { display: none!important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: 'DM Sans','Segoe UI',Arial,sans-serif; font-size: 16px; line-height: 1.65; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
button:disabled { cursor: default; }
button,a { -webkit-tap-highlight-color: transparent; }
button,a,summary,select { transition: color var(--motion-control) var(--ease-control),background-color var(--motion-control) var(--ease-control),border-color var(--motion-control) var(--ease-control),text-decoration-color var(--motion-control) var(--ease-control); }
button:focus-visible,a:focus-visible,[tabindex]:focus-visible,summary:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
img { max-width: 100%; }
h1,h2,h3,h4,p,figure { margin: 0; }
h1,h2,h3,h4,.brand { font-family: 'Manrope','Segoe UI',Arial,sans-serif; }
.page-width { width: min(calc(100% - 112px),var(--max)); margin-inline: auto; }
.site-header { position: sticky; top: 0; z-index: 20; background: var(--paper); min-height: 86px; display: flex; align-items: center; gap: 26px; border-bottom: 1px solid var(--line); width: 100%; padding-inline: max(40px,calc((100% - var(--max))/2)); }
.brand { display: inline-flex; gap: 10px; align-items: center; font-size: 30px; line-height: 1; letter-spacing: -1.5px; font-weight: 750; flex-shrink: 0; }
.site-header>.brand { margin-right: auto; }
.brand img { width: 40px; height: 40px; object-fit: contain; }
.brand-period { color: var(--accent); }
#navigation { display: flex; align-items: center; gap: 20px; font-size: 13px; font-weight: 550; color: var(--muted); }
#navigation a { padding-block: 10px; position: relative; }
#navigation a:is(:hover,:focus-visible),.site-footer a:is(:hover,:focus-visible) { color: var(--accent); }
.nav-button { border: 0; border-bottom: 1px solid var(--accent); border-radius: 0; padding: 10px 0; color: var(--ink); background: transparent; white-space: nowrap; margin-left: 12px; }
.nav-button:hover { border-color: var(--accent-border); }
.header-tools { display: flex; align-items: center; gap: 12px; }
.theme-switch { display: flex; padding: 0; background: none; border: 0; border-left: 1px solid var(--line); gap: 2px; padding-left: 12px; }
.theme-switch button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; width: 44px; padding: 8px; border: 1px solid transparent; border-radius: 50%; background: transparent; color: var(--muted); cursor: pointer; }
.theme-switch button[aria-pressed="true"] { background: var(--accent-wash); color: var(--accent-ink); border-color: var(--accent-border); }
.theme-switch button:hover { color: var(--ink); }
.theme-switch svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.menu-toggle { display: none; }
.eyebrow { font-size: 11px; line-height: 1.5; font-weight: 550; letter-spacing: 1.8px; color: var(--accent); display: flex; gap: 14px; align-items: center; margin-bottom: 30px; }
.small-line { width: 32px; height: 1px; background: var(--accent); flex-shrink: 0; }
h1 { font-weight: 500; font-size: clamp(58px,5.9vw,90px); line-height: 1.035; letter-spacing: -4.7px; }
h1 em { font-style: normal; color: var(--accent); }
.button { display: inline-flex; gap: 28px; align-items: center; justify-content: center; min-height: 52px; padding: 14px 23px; border-radius: 2px; font-size: 14px; font-weight: 550; margin-top: 30px; transition: background var(--motion-control) var(--ease-control),border-color var(--motion-control) var(--ease-control),transform var(--motion-control) var(--ease-control); }
.button:is(:hover,:focus-visible):not(:disabled) { transform: translateY(-2px); }
.button-dark { background: var(--accent-strong); color: var(--on-accent); border: 1px solid var(--accent-strong); }
.button-dark:is(:hover,:focus-visible):not(:disabled) { background: var(--accent); border-color: var(--accent); }
.text-link { display: inline-flex; align-items: center; gap: 16px; min-height: 44px; font-size: 14px; font-weight: 500; color: var(--accent); text-decoration: underline; text-underline-offset: 6px; text-decoration-color: var(--accent-border); }
.text-link:is(:hover,:focus-visible) { text-decoration-color: currentColor; }
:is(.text-link,.capability-cta,.guide-links>a)>span[aria-hidden] { display: inline-block; transition: transform var(--motion-control) var(--ease-control); }
:is(.text-link,.capability-cta,.guide-links>a):is(:hover,:focus-visible)>span[aria-hidden] { transform: translateX(2px); }

/* The conceptual model advances only when the visitor selects a stage. */
#model-detail-copy { font-size: 13px; line-height: 1.65; color: var(--muted); }

.sector-strip { border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-block: 32px; color: var(--ink); font-family: Manrope,sans-serif; font-size: 16px; font-weight: 450; }
.sector-strip span:first-child { font-family: 'DM Sans',sans-serif; font-size: 10px; letter-spacing: 1.3px; max-width: 150px; color: var(--muted); }
.section-spacing { padding-block: var(--space-section); }
h2 { font-size: clamp(32px,3.4vw,46px); line-height: 1.12; letter-spacing: -2px; font-weight: 450; }
.section-heading { display: grid; grid-template-columns: 1.3fr 1fr; gap: 0 100px; align-items: end; }
.section-heading .eyebrow { grid-column: 1/-1; }
.section-heading>p:last-child { color: var(--muted); max-width: 430px; font-size: 16px; line-height: 1.8; }
.pillars { display: flex; flex-direction: column; margin: 0; padding-right: 46px; }
.pillar { position: relative; padding: 26px 0 28px 40px; border-top: 1px solid var(--line); }
.pillar-number { position: absolute; left: 0; top: 30px; font-size: 11px; color: var(--accent); font-weight: 500; }
.pillar h3 { margin: 0; font-size: 20px; letter-spacing: -.6px; font-weight: 500; }
.pillar p { margin-top: 12px; font-size: 14px; line-height: 1.8; color: var(--muted); max-width: 360px; }
.sectors { background: var(--section); border-block: 1px solid var(--line); }
.section-intro { color: var(--muted); max-width: 680px; margin-top: 24px; }
.sector-tabs { display: flex; gap: 22px; margin-top: 48px; border-bottom: 1px solid var(--line); }
.sector-tabs button { color: var(--muted); background: none; border: 0; border-bottom: 1px solid transparent; font-size: 16px; padding: 16px 0; cursor: pointer; }
.sector-tabs button:first-child { padding-left: 0; }
.sector-tabs button[aria-selected=true] { border-color: var(--accent); color: var(--ink); }
.sector-tabs button:hover { color: var(--ink); }
.sector-panel { display: grid; grid-template-columns: 1.3fr 1fr; gap: 100px; padding-top: 48px; min-height: 485px; }
.sector-panel[hidden] { display: none; }
.sector-label { font-size: 12px; letter-spacing: 1.3px; color: var(--accent); }
.sector-panel h3 { font-size: 48px; line-height: 1.1; letter-spacing: -1.8px; margin: 20px 0 24px; font-weight: 450; }
.sector-panel>div>p { color: var(--muted); font-size: 16px; max-width: 470px; }
.connections-title { font-size: 12px!important; letter-spacing: 1px; margin-bottom: 12px; }
.sector-connections { padding-top: 10px; align-self: center; }
.sector-connections>div { border-bottom: 1px solid var(--line); display: flex; gap: 25px; padding: 30px 0; }
.sector-connections>div>span { font-size: 12px; color: var(--accent); padding-top: 3px; }
.sector-connections>div>p { font-size: 16px; }
.sector-connections small { display: block; font-size: 14px; color: var(--muted); margin-top: 3px; }
.sector-photo { margin-top: 34px; position: relative; overflow: hidden; height: 285px; max-width: 590px; }
.sector-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 55%; filter: var(--photo-filter); }
.sector-photo figcaption { position: absolute; bottom: 0; inset-inline: 0; background: linear-gradient(transparent,#000c); padding: 20px 14px 10px; font-size: 12px; color: #e7eaf0; }
.sector-schematic { margin-top: 34px; border-top: 1px solid var(--line); }
.sector-schematic svg { display: block; width: 100%; max-height: 285px; }
.sector-schematic figcaption { font-size: 10px; color: var(--muted); padding-top: 8px; }
.schematic-grid { stroke: var(--muted); stroke-width: .7; opacity: .2; }
.schematic-structure { stroke: var(--accent); stroke-width: 1.5; stroke-linejoin: round; }
.schematic-dashed { stroke-dasharray: 4 6; }
.schematic-node { fill: var(--accent); }
.schematic-label { fill: var(--muted); font: 10px 'DM Sans',sans-serif; letter-spacing: 1.5px; }

/* The capability index keeps purpose and maturity visible; scope uses native disclosure. */
.ecosystem { border-top: 1px solid var(--line); }
.ecosystem-grid { margin-top: 34px; border-top: 1px solid var(--line); }
.ecosystem-card { min-width: 0; border-bottom: 1px solid var(--line); padding: 36px 0; }
.capability-row { display: grid; grid-template-columns: 1fr 1fr .5fr; align-items: start; gap: 36px; }
.capability-identity { display: flex; gap: 25px; }
.catalog-number { display: block; font-size: 11px; color: var(--muted); letter-spacing: .7px; padding-top: 5px; font-variant-numeric: tabular-nums; }
.capability-identity>div { min-width: 0; }
.module-domain { font-size: 9px; letter-spacing: 1.5px; font-weight: 500; color: var(--muted); }
.ecosystem-card h3 { font-size: 34px; font-weight: 500; letter-spacing: -1px; margin: 12px 0 15px; line-height: 1.2; }
.product-prefix { font-size: 10px; display: block; letter-spacing: 1.4px; color: var(--muted); font-weight: 500; line-height: 1.5; margin-bottom: 4px; }
.capability-row .product-prefix { font-size: 9px; }
.ecosystem-card p { color: var(--muted); font-size: 15px; line-height: 1.8; max-width: 460px; }
.capability-status { display: inline-block; margin: 0; color: var(--accent); padding: 0 0 0 10px; border-left: 2px solid var(--accent-border); font-size: 11px; line-height: 1.5; }
.capability-detail { margin-top: 14px; }
.capability-detail summary { cursor: pointer; display: inline-flex; align-items: center; gap: 20px; color: var(--accent); min-height: 44px; font-size: 12px; list-style: none; }
.capability-detail summary::-webkit-details-marker { display: none; }
.capability-detail summary>span { font-size: 18px; transition: transform var(--motion-control) var(--ease-control); }
.capability-detail[open] summary>span { transform: rotate(45deg); }
.capability-scope { list-style: none; display: flex; flex-direction: column; gap: 7px; margin: 0; padding: 8px 0; }
.capability-scope li { display: flex; align-items: baseline; gap: 10px; color: var(--muted); font-size: 13px; }
.capability-scope li::before { content: ''; width: 12px; height: 1px; background: var(--accent-border); flex-shrink: 0; }
.capability-row>.capability-cta { margin: 10px 0 0; padding: 5px 0; border: 0; justify-content: flex-end; text-align: right; font-size: 12px; }
.capability-row>.capability-cta>span { width: 34px; height: 34px; border: 1px solid var(--accent-border); border-radius: 50%; display: grid; place-items: center; flex-shrink: 0; transition: background var(--motion-control),color var(--motion-control),transform var(--motion-control) var(--ease-control); }
.capability-row>.capability-cta:hover>span { background: var(--accent-strong); color: var(--on-accent); }
.foundation-card { display: grid; grid-template-columns: 1.1fr 1fr; gap: 80px; padding-block: 46px; }
.foundation-intro>.catalog-number { margin-bottom: 25px; color: var(--accent); }
.foundation-intro>.module-domain { display: none; }
.foundation-card h3 { font-size: 48px; }
.foundation-card p { margin-top: 20px; }
.foundation-scope { padding-left: 40px; border-left: 1px solid var(--line); align-self: center; }
.foundation-scope h4 { font-size: 17px; line-height: 1.5; font-weight: 500; }
.foundation-scope ul { padding: 0; margin: 18px 0; list-style: none; color: var(--muted); font-size: 14px; }
.foundation-scope li { display: flex; gap: 10px; margin-top: 10px; align-items: baseline; }
.foundation-scope li::before { content: ''; width: 10px; height: 1px; background: var(--accent-border); flex-shrink: 0; }
.development-note { margin-top: 28px; color: var(--muted); font-size: 12px; max-width: 900px; line-height: 1.8; padding-left: 16px; border-left: 1px solid var(--accent-border); }
.safety-card { display: grid; grid-template-columns: 1fr 1.2fr; gap: 80px; padding-block: 50px; }
.safety-card .capability-top { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; }
.module-symbol { width: 26px; height: 26px; color: var(--accent); }
.module-symbol svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.2; }
.safety-card h3 { font-size: 44px; }
.safety-intro>p { font-size: 20px; line-height: 1.5; letter-spacing: -.4px; color: var(--ink); max-width: 360px; margin-bottom: 22px; }
.safety-scope { border-left: 1px solid var(--line); padding-left: 40px; }
.safety-scope h4 { font-size: 18px; font-weight: 500; line-height: 1.5; }
.safety-scope ul { margin: 24px 0; padding: 0; list-style: none; }
.safety-scope li { display: flex; gap: 17px; margin-top: 24px; }
.scope-number { color: var(--accent); font-size: 11px; padding-top: 3px; }
.safety-scope h5 { margin: 0 0 7px; font-size: 15px; font-weight: 500; }
.safety-scope p { font-size: 13px; line-height: 1.8; }
.vision { background: var(--section); border-block: 1px solid var(--line); }
.vision-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 100px; }
.vision-brand { display: flex; gap: 19px; align-items: center; margin-top: 37px; }
.vision-brand img { width: 58px; height: 58px; object-fit: contain; }
.vision-brand p { color: var(--muted); font-size: 14px; }
.vision-brand strong { font-weight: 550; color: var(--ink); }
.vision-principles article { display: flex; gap: 26px; padding: 32px 0; border-top: 1px solid var(--line); }
.vision-principles article>span { color: var(--accent); font-size: 12px; margin-top: 3px; }
.vision-principles h3 { font-size: 22px; letter-spacing: -.5px; font-weight: 500; }
.vision-principles p { color: var(--muted); font-size: 16px; margin-top: 10px; max-width: 430px; }
.questions { display: grid; grid-template-columns: .9fr 1.1fr; gap: 75px; }
.questions h2 { font-size: 35px; }
.question-list details { border-bottom: 1px solid var(--line); }
.question-list details:first-child { border-top: 1px solid var(--line); }
.question-list summary { list-style: none; display: flex; gap: 18px; align-items: center; justify-content: space-between; cursor: pointer; padding: 22px 0; font-size: 16px; font-weight: 550; }
.question-list summary::-webkit-details-marker { display: none; }
.question-list summary span { flex-shrink: 0; color: var(--accent); font-size: 23px; font-weight: 400; transition: transform var(--motion-control) var(--ease-control); }
.question-list details[open] summary span { transform: rotate(45deg); }
.question-list details>p { color: var(--muted); font-size: 16px; padding: 0 22px 23px 0; line-height: 1.75; }
.site-footer { padding-block: 44px; border-top: 1px solid var(--line); display: flex; gap: 25px; align-items: center; justify-content: space-between; }
/* One contact form: inline fallback, enhanced into a native modal. */
.contact { border-top: 1px solid var(--line); background: var(--section); }
.contact-invitation { display: grid; grid-template-columns: 1.2fr 1fr; gap: 24px 80px; align-items: center; }
.contact-invitation h2 { font-size: clamp(44px,5.8vw,76px); letter-spacing: -2.5px; line-height: 1.08; }
.contact-invitation h2 em { color: var(--accent); font-style: normal; }
.contact-invitation h2+p { color: var(--muted); margin-top: 22px; max-width: 470px; }
.contact-invitation-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.contact-invitation-actions .button { margin: 0; min-width: 230px; }
.contact-invitation-actions p { color: var(--muted); font-size: 12px; }
.contact-process,#contact-form-home { grid-column: 1/-1; }
.contact-ready #contact-form-home { display: none; }
.contact-process { margin-top: 12px; }
.contact-steps { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.contact-steps li { display: flex; gap: 14px; }
.contact-steps li>span { color: var(--accent); font-size: 11px; }
.contact-steps strong { font-size: 15px; }
.contact-steps p { color: var(--muted); font-size: 13px; }
.contact-dialog { width: min(620px,calc(100% - 40px)); max-height: calc(100dvh - 48px); padding: 0; border: 1px solid var(--accent-border); border-radius: 8px; background: var(--paper); color: var(--ink); overflow-y: auto; overscroll-behavior: contain; box-shadow: 0 28px 90px #0008; }
.contact-dialog:not([open]) { display: none; }
.contact-dialog[open] { animation: contact-appear .24s ease-out; }
@keyframes contact-appear { from { opacity: .3; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.contact-dialog::backdrop { background: #030507b8; backdrop-filter: blur(5px); }
html:has(.contact-dialog[open]) { overflow: hidden; }
.contact-dialog-header { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 16px; background: var(--paper); border-bottom: 1px solid var(--line); padding: 24px 28px; }
.contact-dialog-header .eyebrow { margin-bottom: 9px; font-size: 10px; }
.contact-dialog-header h2 { font-size: 30px; letter-spacing: -1px; }
#contact-close { flex: 0 0 44px; width: 44px; height: 44px; border: 1px solid var(--line); background: none; color: var(--ink); border-radius: 50%; font-size: 27px; }
.contact-form { min-width: 0; padding: 28px; }
.contact-form h3 { font-size: 24px; }
.contact-ready .contact-form h3 { display: none; }
.contact-availability { color: var(--accent-ink); background: var(--accent-wash); padding: 12px 14px; border-left: 2px solid var(--accent); font-size: 12px; line-height: 1.6; margin-bottom: 20px; }
.contact-fields-note { font-size: 12px; color: var(--muted); margin-bottom: 14px; }
.contact-form label { display: block; margin: 16px 0 7px; font-size: 14px; color: var(--ink); }
.contact-form label span { font-weight: 400; color: var(--muted); }
.contact-identity-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.contact-identity-fields label { margin-top: 0; }
.contact-form input,.contact-form select,.contact-form textarea { width: 100%; min-width: 0; max-width: 100%; min-height: 48px; padding: 11px 12px; background: var(--surface); border: 1px solid var(--accent-border); border-radius: 3px; color: var(--ink); font: inherit; font-size: 16px; line-height: 1.5; }
.contact-form input:focus-visible,.contact-form select:focus-visible,.contact-form textarea:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.contact-form textarea { resize: vertical; min-height: 95px; }
.contact-form ::placeholder { color: var(--muted); opacity: 1; }
.contact-submit { width: 100%; margin-top: 22px; }
.contact-privacy { color: var(--muted); font-size: 12px; line-height: 1.6; margin-top: 18px; }
.contact-draft>label { margin-top: 0; }
.contact-draft textarea { min-height: 210px; }
.contact-status { color: var(--accent-ink); font-size: 13px; margin-top: 14px; }
.contact-status:empty { display: none; }
.draft-actions .button { margin-top: 0; }
.site-footer .brand { font-size: 34px; }
.site-footer .brand img { width: 32px; height: 32px; }
.site-footer p,.site-footer>a:last-child { color: var(--muted); font-size: 13px; }
.skip-link { position: fixed; top: -100px; left: 20px; z-index: 50; background: var(--paper); padding: 12px; color: var(--ink); }
.skip-link:focus { top: 10px; }

/* Navigation, guide and exploration share restrained, explicit state changes. */

#navigation a[aria-current="location"] { color: var(--ink); }
#navigation a[aria-current="location"]::after { content: ''; position: absolute; height: 2px; background: var(--accent); left: 0; right: 0; bottom: 3px; }

.nav-button>span { color: var(--accent); margin-left: 7px; }

.status-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.button-outline { background: var(--surface-raised); color: var(--ink); border: 1px solid var(--accent-border); }
.button-outline:hover { border-color: var(--accent); }
.quiet-button { background: transparent; color: var(--muted); border: 0; min-height: 44px; padding: 8px; font-size: 12px; text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 4px; }
.quiet-button:hover { color: var(--accent); }
.capability-explorer { margin-top: 35px; }
#capability-filter-label { font-size: 13px; color: var(--muted); margin-bottom: 13px; }
.capability-filters { display: flex; flex-wrap: wrap; gap: 10px 24px; border-bottom: 1px solid var(--line); }
.capability-filters button { min-height: 48px; padding: 10px 0; border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: none; color: var(--muted); font-size: 14px; }
.capability-filters button[aria-pressed="true"] { background: none; color: var(--ink); border-color: var(--accent); }
.capability-filters button:hover { border-color: var(--accent); color: var(--ink); }
.filter-summary { font-size: 12px; color: var(--muted); margin-top: 14px; }

.ecosystem-card:hover { border-color: var(--accent-border); }
.capability-cta { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; margin-top: 18px; border-top: 1px solid var(--line); padding-top: 14px; color: var(--accent); font-size: 13px; font-weight: 550; }
.capability-cta:hover { text-decoration: underline; text-underline-offset: 4px; }
.foundation-card .product-prefix { display: inline; font-size: 11px; margin-right: 8px; }

.contact-form-intro { color: var(--muted); font-size: 14px; margin: 16px 0 24px; }
.footer-links { display: flex; flex-wrap: wrap; gap: 12px 22px; color: var(--muted); font-size: 12px; }
.footer-links a { display: inline-flex; align-items: center; min-height: 44px; }


.theme-switch button>span { display: none; }

.platform-body { display: grid; grid-template-columns: .82fr 1.18fr; gap: 60px; margin-top: 72px; align-items: start; }

/* Progressive reading: one selected capability, full content on request. */
.ecosystem .section-heading { display: block; }
.ecosystem .section-heading .eyebrow { margin-bottom: 20px; }
.ecosystem .section-heading>p:last-child { max-width: none; margin-top: 16px; font-size: 15px; }
.ecosystem .capability-explorer { margin-top: 24px; }
.ecosystem .ecosystem-card { min-height: 315px; }
.content-disclosure { border-top: 1px solid var(--line); }
.content-disclosure>summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 56px; padding-block: 14px; cursor: pointer; list-style: none; color: var(--ink); font-size: 14px; }
.content-disclosure>summary::-webkit-details-marker { display: none; }
.content-disclosure>summary>span[aria-hidden] { font-size: 24px; font-weight: 300; color: var(--accent); transition: transform var(--motion-control) var(--ease-control); }
.content-disclosure[open]>summary>span[aria-hidden] { transform: rotate(45deg); }
.platform .platform-body { display: block; margin-top: 42px; }
.platform .model-visual { display: grid; grid-template-columns: .8fr 1.2fr; gap: 20px 48px; align-items: center; }
.platform .model-network { min-height: 150px; padding: 8px 0; margin: 0; border: 0; }
.platform .model-network svg { max-height: 220px; }
.platform .model-flow,.platform .model-detail,.platform .model-caption { grid-column: 1/-1; }
.platform .model-step { min-height: 80px; flex-direction: row; align-items: center; }
.platform .model-detail { min-height: 144px; padding: 18px 22px; border-left: 2px solid var(--accent); background: var(--surface); grid-template-columns: minmax(0,1fr) 250px; }
.platform .model-caption { margin-top: 0; }
.platform-depth { margin-top: 24px; }
.platform-depth .pillars { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px; padding-right: 0; }
.platform-depth .pillar { border: 0; padding-left: 0; }
.platform-depth .pillar-number { display: none; }
.capability-filters { gap: 8px; border: 0; counter-reset: intentions; align-items: stretch; }
.capability-filters button { flex: 1; padding: 14px 18px; min-height: 75px; border: 1px solid var(--line); text-align: left; font-size: 14px; background: var(--surface); }
.capability-filters button:not([data-capability-filter="all"])::before { counter-increment: intentions; content: '0' counter(intentions); display: block; color: var(--accent); font-size: 10px; letter-spacing: 1px; margin-bottom: 6px; }
.capability-filters button[aria-pressed="true"] { background: var(--accent-wash); border-color: var(--accent); color: var(--ink); }
.capability-filters button[data-capability-filter="all"] { flex: 0 0 auto; min-height: 44px; align-self: center; border: 0; background: none; text-decoration: underline; text-underline-offset: 5px; }
.filter-description { color: var(--ink); font-size: 14px; margin-top: 20px; }
.filter-summary { margin-top: 4px; font-size: 12px; color: var(--muted); }
.capability-browser-ready { display: grid; grid-template-columns: 230px minmax(0,1fr); margin-top: 24px; border-block: 1px solid var(--line); }
.capability-index { display: flex; flex-direction: column; padding-block: 15px; border-right: 1px solid var(--line); }
.capability-index button { min-height: 54px; text-align: left; padding: 12px 24px 12px 18px; color: var(--muted); background: none; border: 0; border-left: 2px solid transparent; font-size: 16px; position: relative; }
.capability-index button[aria-selected="true"] { color: var(--ink); border-left-color: var(--accent); background: var(--surface); }
.capability-index button[aria-selected="true"]::after { content: '↗'; position: absolute; right: 12px; color: var(--accent); }
.capability-browser-ready .ecosystem-grid { display: grid; grid-template-columns: minmax(0,1fr); margin: 0; min-width: 0; }
.capability-browser-ready .ecosystem-card { display: block; grid-area: 1/1; align-self: start; border: 0; background: none; padding: 30px 40px; min-height: 370px; }
/* Inactive panels reserve the tallest content at the current width. They remain
   hidden from assistive technology and inert; no clone, fixed height or clipping. */
.capability-browser-ready .ecosystem-card[hidden] { display: block!important; visibility: hidden; pointer-events: none; }
.capability-browser-ready .catalog-number { display: none; }
.capability-browser-ready .capability-identity { display: block; }
.capability-browser-ready .ecosystem-card h3 { margin: 8px 0 10px; font-size: 38px; }
.capability-browser-ready .product-prefix { font-size: 11px; display: inline; margin-right: 10px; }
.capability-browser-ready .capability-body { padding: 0; }
.capability-browser-ready .capability-body>p,.capability-browser-ready .foundation-intro>p { max-width: 680px; font-size: 17px; line-height: 1.65; margin-top: 20px; }
.capability-browser-ready .capability-detail { margin: 18px 0; }
.capability-browser-ready .capability-detail>summary { display: none; }
.capability-browser-ready .capability-scope { display: flex; flex-wrap: wrap; gap: 10px 24px; padding: 0; list-style: none; }
.capability-browser-ready .capability-scope li { margin: 0; font-size: 14px; }
.capability-browser-ready .capability-scope li::before { content: ''; width: 4px; height: 4px; align-self: center; border-radius: 50%; background: var(--accent); }
.capability-browser-ready .capability-cta { padding: 12px 0 0; margin-top: 16px; justify-content: flex-start; }
.capability-browser-ready .foundation-scope,.capability-browser-ready .safety-scope { border: 0; padding: 0; margin-top: 20px; }
.capability-browser-ready .foundation-scope h4 { display: none; }
.capability-browser-ready .foundation-scope ul { margin-top: 14px; }
.capability-browser-ready .safety-intro>p { max-width: none; font-size: 17px; }
.capability-browser-ready .safety-icon { display: none; }
.capability-browser-ready .safety-scope ul { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.capability-browser-ready .safety-scope li { margin: 0; }
.capability-browser-ready .safety-scope p { font-size: 12px; }
.maturity-disclosure { margin-top: 16px; border-top: 0; }
.maturity-disclosure>summary { color: var(--muted); font-size: 12px; min-height: 44px; }
.maturity-disclosure .development-note { margin-top: 10px; }
.sectors .sector-panel { display: block; min-height: 0; padding-top: 32px; }
.sector-summary { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: min-content min-content 1fr; gap: 0 60px; align-content: start; }
.sector-summary>.sector-label { grid-column: 1; }
.sector-summary>h3 { grid-column: 1; font-size: 40px; }
.sector-summary>p { grid-column: 1; margin-top: 20px; }
.sector-summary>figure { grid-column: 2; grid-row: 1/4; margin: 0; height: 280px; max-width: none; }
.sector-context { margin-top: 24px; }
.sector-context .sector-connections { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px; padding-top: 0; }
.sector-context .connections-title { grid-column: 1/-1; }
.sector-context .sector-connections>div { padding-block: 10px; }
.vision.section-spacing { padding-block: 32px; }
.vision-disclosure { border-top: 0; }
.vision-disclosure>summary .eyebrow { margin-bottom: 12px; }
.vision-summary-title { display: block; font: 450 clamp(25px,2.7vw,38px)/1.2 'Manrope',sans-serif; letter-spacing: -1px; }
.vision-disclosure .vision-grid { margin-top: 32px; }
.questions.section-spacing { padding-block: 56px; }
.contact-context { color: var(--accent-ink); border-left: 2px solid var(--accent); padding: 10px 14px; font-size: 14px; margin-bottom: 16px; }
.message-hint { display: flex; gap: 16px; justify-content: space-between; color: var(--muted); font-size: 11px; margin-top: 8px; }
#contact-counter { flex-shrink: 0; font-variant-numeric: tabular-nums; }
.draft-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 20px; }
.section-next { margin-top: 24px; }
.error-page { min-height: 70vh; display: grid; align-content: center; gap: 24px; }

/* Responsive composition shares the menu breakpoint with navigation.js. */
@media(max-width:1200px) {
  .page-width { width: calc(100% - 72px); }
  .site-header { padding-inline: 36px; gap: 18px; }
  #navigation { gap: 16px; }
  h1 { font-size: 76px; letter-spacing: -3.7px; }
  .section-heading,.vision-grid,.sector-panel { gap: 44px; }
  .platform-body { gap: 36px; }
  .pillars { padding-right: 0; }
  .capability-row { gap: 24px; grid-template-columns: 1fr 1.05fr .55fr; }
  .capability-identity { gap: 16px; }
  .ecosystem-card h3 { font-size: 28px; }
  .foundation-card h3,.safety-card h3 { font-size: 42px; }
  .foundation-card,.safety-card { gap: 44px; }
  .contact-form { padding: 28px; }
}
@media(max-width:980px) {
  .site-header { min-height: 76px; }
  .menu-ready .menu-toggle { display: flex; flex-direction: column; justify-content: center; gap: 6px; background: transparent; border: 1px solid var(--line); padding: 11px; border-radius: 2px; width: 44px; height: 46px; }
  .menu-toggle span { height: 1px; width: 20px; background: var(--ink); transition: transform var(--motion-control) var(--ease-control); }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .menu-ready #navigation { display: none; position: absolute; top: 76px; left: 20px; right: 20px; z-index: 21; background: var(--surface); border: 1px solid var(--line); padding: 15px; align-items: stretch; gap: 5px; box-shadow: 0 14px 30px var(--shadow); max-height: calc(100dvh - 96px); overflow-y: auto; }
  .menu-ready #navigation.open { display: flex; flex-direction: column; }
  #navigation a { padding: 12px; }
  #navigation a[aria-current="location"]::after { left: 12px; right: auto; width: 24px; }
  .nav-button { text-align: left; margin: 6px 0 0; }
  html:not(.menu-ready) .site-header { position: relative; flex-wrap: wrap; padding-block: 14px; }
  html:not(.menu-ready) #navigation { order: 3; width: 100%; flex-wrap: wrap; }
  h1 { font-size: 68px; }
  .sector-strip { flex-wrap: wrap; gap: 16px 28px; justify-content: flex-start; font-size: 14px; }
  .sector-strip span:first-child { width: 100%; max-width: none; }
  .section-heading { grid-template-columns: 1fr; gap: 22px; }
  .section-heading .eyebrow { margin: 0; }
  .section-heading>p:last-child { max-width: 600px; }
  .platform-body { grid-template-columns: 1fr; gap: 42px; margin-top: 48px; }
  .pillars { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
  .pillar { padding: 24px 0 0; }
  .pillar-number { position: static; display: block; margin-bottom: 16px; }
  .pillar h3 { font-size: 18px; }
  .capability-row { grid-template-columns: 1fr 1.15fr; }
  .capability-row>.capability-cta { grid-column: 2; justify-content: flex-start; margin: -10px 0 0; text-align: left; }
  .foundation-card,.safety-card { gap: 30px; }
  .foundation-scope,.safety-scope { padding-left: 28px; }
}
@media(max-width:760px) {
  html { scroll-padding-top: 96px; }
  .page-width { width: calc(100% - 40px); }
  .site-header { padding-inline: 20px; gap: 10px; }
  .brand { font-size: 25px; }
  .brand img { width: 33px; height: 33px; }
  .theme-switch { border-left: 0; padding-left: 0; }
  h1 { font-size: clamp(44px,9.2vw,68px); letter-spacing: -2.4px; line-height: 1.06; }
  .small-line { width: 19px; }
  .sector-strip { padding-block: 28px; font-size: 13px; gap: 12px 24px; }
  h2 { font-size: clamp(34px,6.5vw,46px); letter-spacing: -1.4px; line-height: 1.15; }
  .section-heading>p:last-child { font-size: 15px; }
  .platform-body { margin-top: 40px; }
  .pillars { grid-template-columns: 1fr; gap: 0; }
  .pillar { padding: 24px 0 24px 34px; }
  .pillar-number { position: absolute; top: 27px; }
  .pillar h3 { font-size: 20px; }
  .pillar p { max-width: none; }
  .sector-tabs { flex-wrap: wrap; gap: 0 22px; margin-top: 30px; }
  .sector-tabs button { font-size: 14px; padding: 13px 0; }
  .sector-panel { grid-template-columns: 1fr; gap: 32px; padding-top: 32px; min-height: 0; }
  .sector-panel h3 { font-size: 40px; }
  .sector-panel>div>p,.sector-photo { max-width: none; }
  .sector-photo { height: 240px; }
  .sector-connections { padding-top: 0; }
  .sector-connections>div { padding: 24px 0; }
  .capability-explorer { margin-top: 32px; }
  .capability-filters { gap: 8px 20px; }
  .capability-filters button { font-size: 13px; }
  .ecosystem-grid { margin-top: 26px; }
  .capability-row { grid-template-columns: 1fr; gap: 20px; padding-block: 30px; }
  .capability-identity { gap: 22px; }
  .capability-row>.capability-cta { grid-column: auto; margin: -10px 0 0; }
  .ecosystem-card h3 { font-size: 32px; margin-top: 8px; }
  .capability-body { padding-left: 37px; }
  .capability-row>.capability-cta { padding-left: 37px; }
  .capability-detail { margin-top: 8px; }
  .foundation-card,.safety-card { grid-template-columns: 1fr; gap: 28px; padding-block: 34px; }
  .foundation-card h3,.safety-card h3 { font-size: 40px; }
  .foundation-scope,.safety-scope { border-left: 0; border-top: 1px solid var(--line); padding: 26px 0 0; }
  .foundation-intro>.catalog-number { margin-bottom: 20px; }
  .safety-intro>p { max-width: none; font-size: 18px; }
  .vision-grid,.questions { grid-template-columns: 1fr; gap: 40px; }
  .vision-brand { margin-top: 30px; }
  .vision-principles article { padding-block: 27px; }
  .questions h2 { font-size: 34px; }
  .contact-form { padding: 24px; }
  .site-footer { flex-wrap: wrap; row-gap: 16px; }
  .site-footer p { width: 100%; order: 3; }
}
@media(max-width:390px) {
  .page-width { width: calc(100% - 32px); }
  .site-header { padding-inline: 16px; }
  .header-tools { gap: 5px; }
  .brand { font-size: 22px; gap: 6px; }
  .brand img { width: 29px; height: 29px; }
  .theme-switch button { width: 40px; }
  h1 { font-size: clamp(36px,11vw,43px); letter-spacing: -2px; }
  .contact-form { padding: 20px; }
  .capability-filters { gap: 4px 18px; }
}
@media(max-width:760px) {
  .platform .model-visual { grid-template-columns: 1fr; gap: 20px; }
  .platform .model-network { min-height: 145px; }
  .platform .model-heading h2 { font-size: 28px; }
  .platform .model-flow { grid-template-columns: 1fr; }
  .platform .model-step { min-height: 64px; }
  .platform .model-detail { grid-template-columns: minmax(0,1fr); min-height: 220px; padding: 16px; }
  .platform-depth .pillars { grid-template-columns: 1fr; gap: 0; }
  .capability-filters { display: grid; grid-template-columns: 1fr 1fr; }
  .capability-filters button { min-height: 72px; padding: 12px; font-size: 13px; }
  .capability-filters button[data-capability-filter="all"] { grid-column: 1/-1; justify-self: start; min-height: 44px; padding: 5px 0; }
  .capability-browser-ready { grid-template-columns: 1fr; }
  .capability-index { flex-direction: row; flex-wrap: wrap; gap: 6px; padding-block: 12px; border-right: 0; border-bottom: 1px solid var(--line); }
  .capability-index button { padding: 10px 12px; font-size: 13px; min-height: 44px; border-left: 0; border-bottom: 2px solid transparent; }
  .capability-index button[aria-selected="true"] { border-bottom-color: var(--accent); }
  .capability-index button[aria-selected="true"]::after { display: none; }
  .capability-browser-ready .ecosystem-card { padding: 24px 0; min-height: 380px; }
  .capability-browser-ready .ecosystem-card h3 { font-size: 32px; }
  .capability-browser-ready .capability-body>p,.capability-browser-ready .foundation-intro>p { font-size: 16px; }
  .capability-browser-ready .capability-scope { display: block; }
  .capability-browser-ready .capability-scope li { margin-top: 8px; }
  .capability-browser-ready .safety-scope ul { grid-template-columns: 1fr; }
  .sector-summary { grid-template-columns: 1fr; }
  .sector-summary>figure { grid-column: 1; grid-row: auto; margin-top: 24px; height: 220px; }
  .sector-context .sector-connections { grid-template-columns: 1fr; gap: 16px; }
  .contact-invitation { grid-template-columns: 1fr; gap: 30px; }
  .contact-steps { grid-template-columns: 1fr; }
  .contact-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 24px); }
  .contact-dialog-header { padding: 20px; }
  .contact-dialog-header h2 { font-size: 26px; }
  .contact-dialog .contact-form { padding: 20px; }
  .contact-identity-fields { grid-template-columns: 1fr; gap: 14px; }
}

.project-start { border-top: 1px solid var(--line); }
.project-start-steps { margin-top: 42px; gap: 36px; }
.project-start-steps li { border-top: 1px solid var(--line); padding-top: 22px; min-width: 0; }
.project-start-steps p { margin-top: 12px; font-size: 14px; line-height: 1.8; }
.project-start-note { margin-top: 30px; color: var(--muted); font-size: 12px; max-width: 760px; }

/* Pointer and keyboard share emphasis; the focus outline itself is immediate. */
:is(.capability-index button,.capability-filters button,.theme-switch button,.sector-tabs button,.quiet-button,.operation-play,.operation-controls button,.sector-route-replay):is(:hover,:focus-visible):not(:disabled) { color: var(--ink); border-color: var(--accent); background: var(--accent-wash); }
:is(.content-disclosure>summary,.question-list summary):is(:hover,:focus-visible) { color: var(--accent); }
@media(prefers-reduced-motion:reduce) {
  html:not([data-motion="full"]) { scroll-behavior: auto; }
  :root:not([data-motion="full"]) *, :root:not([data-motion="full"]) *::before, :root:not([data-motion="full"]) *::after { transition: none!important; animation: none!important; }
  :root:not([data-motion="full"]) .button:is(:hover,:focus-visible),:root:not([data-motion="full"]) :is(.text-link,.capability-cta,.guide-links>a)>span[aria-hidden] { transform: none!important; }
}
