@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&family=Noto+Sans+JP:wght@400;500;700&display=swap");

/* =============================================================
   YuzuFi evidence-first design system · v3
   Loaded after research-styles.css. The older sheet retains
   component mechanics; this layer owns hierarchy and visual tone.
   ============================================================= */

:root {
    --paper: #f6f5f3;
    --surface: #ffffff;
    --sunk: #eeece5;
    --ink: #1a1a1a;
    --ink-2: #4a4a4a;
    --muted: #747a7d;
    --rule: #d9d3c6;
    --rule-strong: #afa797;
    --accent: #FEC200;
    --accent-soft: #fff4b3;
    --verified: #215f87;
    --verified-soft: #dce9f1;
    --reported: #a66d11;
    --reported-soft: #f4e7ca;
    --open: #888b88;
    --model: #157c73;
    --model-soft: #dcefeb;
    --risk: #b94934;
    --risk-soft: #f3dfda;
    --inverse: #1a1a1a;
    --inverse-ink: #f6f2e8;
    --serif: "Inter", "Noto Sans JP", Helvetica, Arial, sans-serif;
    --sans: "Inter", "Noto Sans JP", Helvetica, Arial, sans-serif;
    --mono: "JetBrains Mono", Consolas, monospace;
    --radius: 4px;

    /* Map legacy YuzuFi variables into the evidence system. */
    --izu-yellow: #FED000;
    --izu-gold: var(--accent);
    --izu-yellow-tint: var(--accent-soft);
    --izu-yellow-soft: #faf4df;
    --izu-ink: var(--ink);
    --izu-ink-soft: var(--ink-2);
    --izu-mute: var(--muted);
    --izu-line: var(--rule);
    --izu-line-soft: #e9e5da;
    --izu-paper: var(--surface);
    --izu-shell: var(--paper);
}

html { scroll-behavior: smooth; }

html,
body {
    background: var(--paper);
    color: var(--ink);
    font-family: var(--sans);
    line-height: 1.55;
}

body { min-height: 100vh; }

a { color: var(--verified); text-underline-offset: 3px; }
a:hover { color: var(--risk); }

::selection { background: #f3cf67; color: #111; }

/* ---------- Shared masthead ---------- */

.doc-topbar {
    position: sticky;
    top: 0;
    z-index: 50;
    padding: 0 22px;
    min-height: 58px;
    display: flex;
    align-items: stretch;
    gap: 18px;
    background: color-mix(in srgb, var(--paper) 94%, transparent);
    color: var(--ink);
    border: 0;
    border-bottom: 1px solid var(--rule-strong);
    backdrop-filter: blur(14px);
}

.doc-topbar-brand {
    min-width: max-content;
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--ink);
    text-decoration: none;
    padding-right: 18px;
    border-right: 1px solid var(--rule);
}

.doc-topbar-brand img {
    width: auto;
    height: 22px;
    padding: 0;
    border-radius: 0;
    background: transparent;
}

.doc-topbar-brand-copy {
    display: grid;
    gap: 1px;
}

.doc-topbar-brand-copy b {
    font: 700 13px/1 var(--serif);
    letter-spacing: .01em;
}

.doc-topbar-brand-copy span {
    font: 600 9px/1.2 var(--mono);
    color: var(--muted);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.doc-topbar-nav {
    min-width: 0;
    flex: 1;
    display: flex;
    align-items: stretch;
    gap: 0;
    overflow-x: auto;
    scrollbar-width: thin;
}

.doc-topbar-nav a {
    position: relative;
    display: flex;
    align-items: center;
    flex: none;
    padding: 0 11px;
    border-radius: 0;
    color: var(--ink-2);
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

.doc-topbar-nav a:hover { background: var(--sunk); color: var(--ink); }
.doc-topbar-nav a.active { background: transparent; color: var(--ink); }
.doc-topbar-nav a.active::after {
    content: "";
    position: absolute;
    left: 10px;
    right: 10px;
    bottom: 0;
    height: 3px;
    background: var(--accent);
}

.doc-topbar-deck {
    margin: 0;
    padding: 0 13px !important;
    border: 0;
    border-right: 1px solid var(--rule) !important;
    color: var(--ink) !important;
}

.doc-topbar-right {
    flex: none;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
}

.doc-topbar-right-top { display: flex; align-items: center; gap: 6px; }

.doc-topbar-confidential {
    color: var(--risk);
    border: 1px solid color-mix(in srgb, var(--risk) 55%, transparent);
    background: var(--risk-soft);
    padding: 4px 7px;
    font: 700 9px/1 var(--mono);
    letter-spacing: .07em;
    border-radius: 2px;
}

.doc-topbar-lang {
    border-color: var(--rule-strong);
    background: var(--surface);
}

.doc-topbar-lang a,
.doc-topbar-lang span { color: var(--muted); font-family: var(--mono); }
.doc-topbar-lang .active { background: var(--ink); color: var(--paper); }
.doc-topbar-lang a:hover { color: var(--ink); background: var(--sunk); }
.doc-topbar-section-toggle { color: var(--muted); font: 600 9px/1 var(--mono); }
.doc-topbar-section-toggle:hover { color: var(--ink); background: var(--sunk); }

.topbar-evidence-key {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-left: 8px;
    border-left: 1px solid var(--rule);
}

.topbar-evidence-key span {
    display: flex;
    align-items: center;
    gap: 4px;
    color: var(--muted);
    font: 600 9px/1 var(--mono);
    white-space: nowrap;
}

/* ---------- Evidence primitives ---------- */

.swatch {
    width: 9px;
    height: 9px;
    display: inline-block;
    flex: none;
    border-radius: 1px;
}

.swatch.verified { background: var(--verified); }
.swatch.reported { background: var(--reported-soft); box-shadow: inset 3px 0 0 var(--reported); }
.swatch.open {
    background: repeating-linear-gradient(135deg, transparent 0 3px, #989b9840 3px 4px);
    box-shadow: inset 0 0 0 1px var(--open);
}
.swatch.model { background: var(--model-soft); box-shadow: inset 0 0 0 1.5px var(--model); }

.state {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px 8px;
    border-radius: 2px;
    font: 700 10px/1.25 var(--mono);
    letter-spacing: .02em;
    white-space: nowrap;
}

.state-verified { color: #fff; background: var(--verified); }
.state-reported { color: #6f490a; background: var(--reported-soft); box-shadow: inset 3px 0 0 var(--reported); }
.state-open {
    color: #5f625f;
    background: repeating-linear-gradient(135deg, transparent 0 4px, #8a8d8a20 4px 5px), var(--surface);
    box-shadow: inset 0 0 0 1px var(--open);
}
.state-model { color: var(--model); background: var(--model-soft); box-shadow: inset 0 0 0 1px var(--model); }

.section-no {
    margin: 0 0 8px;
    color: var(--risk);
    font: 700 10px/1.25 var(--mono);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.text-link {
    display: inline-flex;
    margin-top: 16px;
    color: var(--ink);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid var(--accent);
}

.text-link:hover { color: var(--risk); }

/* ---------- Public decision file ---------- */

.ledger-main {
    width: min(1240px, calc(100% - 44px));
    margin: 0 auto;
    padding: 34px 0 80px;
}

.audit-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(310px, .75fr);
    gap: 24px;
    align-items: stretch;
    margin-bottom: 24px;
}

.audit-hero-copy {
    padding: 34px 38px 32px;
    background: color-mix(in srgb, var(--surface) 78%, #dbe8ec);
    border: 1px solid var(--rule);
}

.audit-hero h1 {
    max-width: 920px;
    margin: 0;
    color: var(--inverse);
    font: 700 clamp(36px, 4.5vw, 64px)/.98 var(--serif);
    letter-spacing: -.035em;
    text-wrap: balance;
}

.audit-lede {
    max-width: 880px;
    margin: 20px 0 0;
    color: var(--ink-2);
    font-size: 16px;
    line-height: 1.65;
}

.evidence-key {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 20px;
    margin-top: 25px;
    padding-top: 17px;
    border-top: 1px solid var(--rule);
}

.evidence-key span {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--muted);
    font-size: 11px;
}
.evidence-key b { color: var(--ink); }

.decision-panel {
    padding: 28px 26px;
    background: var(--inverse);
    color: var(--inverse-ink);
    border-radius: var(--radius);
}

.decision-label {
    margin: 0 0 7px;
    color: #e0b33a;
    font: 700 10px/1.2 var(--mono);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.decision-panel h2 {
    margin: 0 0 18px;
    color: #fff;
    font: 700 27px/1.05 var(--serif);
}

.decision-panel dl { margin: 0; }
.decision-panel dl div {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    padding: 10px 0;
    border-top: 1px solid #ffffff20;
}
.decision-panel dt { color: #ccd4d6; font-size: 12px; }
.decision-panel dd { margin: 0; }
.decision-panel .state-open { color: #e6e6df; background-color: #ffffff08; box-shadow: inset 0 0 0 1px #ffffff55; }
.decision-panel .state-verified { background: #4384ad; }
.decision-foot { margin: 18px 0 0; color: #9fb0b6; font-size: 11px; }

.ledger-section,
.workspace-section {
    margin-top: 22px;
    padding: 28px 30px;
    background: var(--surface);
    border: 1px solid var(--rule);
    border-radius: var(--radius);
}

.section-head {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(260px, .6fr);
    gap: 28px;
    align-items: end;
    margin-bottom: 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--rule);
}

.section-head.compact { grid-template-columns: 1fr; }

.section-head h2,
.workspace-section h2 {
    max-width: 820px;
    margin: 0;
    color: var(--inverse);
    font: 700 clamp(27px, 3vw, 39px)/1.04 var(--serif);
    letter-spacing: -.025em;
    text-wrap: balance;
}

.section-head > p {
    margin: 0;
    color: var(--muted);
    font-size: 12.5px;
    line-height: 1.55;
}

/* ---------- Opportunity illustration ---------- */

.opportunity-section { overflow: hidden; }

.opportunity-thesis {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 22px;
    align-items: center;
    margin-bottom: 14px;
    padding: 20px 22px;
    color: var(--inverse-ink);
    background: var(--inverse);
}

.opportunity-thesis > div:nth-child(2) { min-width: 0; }
.opportunity-thesis b { color: #fff; font: 700 22px/1.1 var(--serif); }
.opportunity-thesis p { max-width: 860px; margin: 6px 0 0; color: #bdc9cc; font-size: 12.5px; }
.opportunity-thesis .state-reported { color: #f4dfad; background: #ffffff0a; box-shadow: inset 3px 0 0 #e3b44a; }

.opportunity-mark {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #fff;
    font: 700 14px/1 var(--serif);
}
.opportunity-mark span {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border: 1px solid #ffffff66;
    border-radius: 50%;
}
.opportunity-mark i { width: 14px; height: 1px; background: #e3b44a; }

.opportunity-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.opportunity-card {
    min-width: 0;
    display: flex;
    flex-direction: column;
    padding: 16px;
    background: #fbf9f2;
    border: 1px solid var(--rule);
    border-top: 3px solid var(--reported);
    border-radius: 7px;
}
.opportunity-card.accent {
    background: color-mix(in srgb, var(--model-soft) 40%, var(--surface));
    border-top-color: var(--model);
}
.opportunity-card > header { display: grid; grid-template-columns: 30px 1fr; gap: 10px; align-items: start; }
.opportunity-card h3 { margin: 1px 0 2px; color: var(--ink); font: 700 20px/1.04 var(--serif); }
.opportunity-card header p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.35; }
.opportunity-num {
    width: 27px;
    height: 27px;
    display: grid;
    place-items: center;
    color: #fff;
    background: var(--inverse);
    border-radius: 50%;
    font: 700 11px/1 var(--mono);
}

.opportunity-visual {
    width: 100%;
    height: auto;
    display: block;
    margin: 13px 0 10px;
    background: var(--surface);
    border: 1px solid var(--rule);
    border-radius: 5px;
}
.opportunity-visual text { font-family: var(--sans); }
.oi-building,
.oi-client,
.oi-doc,
.oi-bridge { fill: var(--surface); stroke: var(--ink); stroke-width: 2; }
.oi-window rect { fill: var(--reported-soft); stroke: var(--ink); stroke-width: 1.5; rx: 2px; }
.oi-line { fill: none; stroke: var(--ink); stroke-width: 2; stroke-linejoin: round; }
.oi-gate { fill: none; stroke: var(--reported); stroke-width: 2; }
.oi-product { fill: var(--reported-soft); stroke: var(--ink); stroke-width: 2; }
.oi-product.alt { fill: var(--model-soft); }
.oi-arrow { fill: none; stroke-width: 3; stroke-linecap: round; }
.oi-arrow.reported { stroke: var(--reported); }
.oi-arrow.model { stroke: var(--model); }
.oi-badge.reported { fill: var(--reported); }
.oi-badge-text { fill: #fff; font-size: 13px; font-weight: 800; }
.oi-label { fill: var(--muted); font: 700 9px var(--mono) !important; letter-spacing: .08em; }
.oi-label.strong { fill: var(--ink); font-size: 11px !important; }
.oi-caption { fill: var(--muted); font-size: 9.5px; }
.oi-po { fill: var(--ink); font: 800 26px var(--serif) !important; }
.oi-capital { fill: var(--model-soft); stroke: var(--model); stroke-width: 2.5; }
.oi-yen { fill: var(--ink); font: 800 27px var(--serif) !important; }
.oi-timeline { stroke: var(--rule-strong); stroke-width: 2; stroke-dasharray: 4 4; }
.oi-time { fill: var(--model); }
.oi-time.open { fill: var(--surface); stroke: var(--open); stroke-width: 2; }
.oi-cycle { fill: none; stroke: var(--model); stroke-width: 2.5; stroke-dasharray: 6 4; }
.oi-cycle-arrow { fill: none; stroke: var(--model); stroke-width: 4; stroke-linecap: round; }
.oi-pill { fill: var(--model-soft); stroke: var(--model); stroke-width: 1.5; }
.oi-pill.ink { fill: var(--inverse); stroke: var(--inverse); }
.oi-pill-text { fill: var(--ink); font: 800 9px var(--mono) !important; letter-spacing: .04em; }
.oi-pill-text.inverse { fill: #fff; }

.opportunity-points {
    display: grid;
    gap: 8px;
    margin-top: auto;
    padding-top: 11px;
    border-top: 1px solid var(--rule);
}
.opportunity-points p { position: relative; margin: 0; padding-left: 13px; color: var(--ink-2); font-size: 11.5px; line-height: 1.45; }
.opportunity-points p::before { content: ""; position: absolute; left: 0; top: 6px; width: 6px; height: 6px; border-radius: 50%; background: var(--reported); }
.opportunity-points p + p::before { background: var(--open); box-shadow: inset 0 0 0 1px var(--surface); outline: 1px solid var(--open); }
.opportunity-points b { color: var(--ink); }

.opportunity-map {
    margin: 18px 0 0;
    padding: 22px;
    background: var(--surface);
    border: 1px solid var(--rule);
    border-radius: 7px;
}
.opportunity-map figcaption {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, .65fr);
    gap: 28px;
    align-items: end;
    margin-bottom: 14px;
}
.opportunity-map h3 { margin: 0; color: var(--ink); font: 700 27px/1.05 var(--serif); }
.opportunity-map figcaption > p { margin: 0; color: var(--muted); font-size: 12px; }
.opportunity-map-scroll { overflow-x: auto; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--rule); }
.opportunity-map-svg { width: 100%; min-width: 930px; height: auto; display: block; }
.opportunity-map-svg text { font-family: var(--sans); }
.om-col { fill: var(--muted); font: 700 10px var(--mono) !important; letter-spacing: .1em; }
.om-node rect,
.om-rail rect { fill: var(--surface); stroke-width: 2; }
.om-node.reported rect { stroke: var(--reported); }
.om-node.open rect,
.om-rail.open rect { fill: url(#opp-hatch); stroke: var(--open); stroke-dasharray: 5 4; }
.om-system { fill: color-mix(in srgb, var(--model-soft) 35%, var(--surface)); stroke: var(--model); stroke-width: 2; }
.om-head { fill: var(--ink); font-size: 14px; font-weight: 800; }
.om-copy { fill: var(--ink-2); font-size: 11.5px; }
.om-step rect { stroke-width: 1.5; }
.om-step.reported rect { fill: var(--surface); stroke: var(--reported); }
.om-step.open rect { fill: url(#opp-hatch); stroke: var(--open); stroke-dasharray: 5 4; }
.om-step-no { fill: var(--risk); font: 800 11px var(--mono) !important; }
.om-step-head { fill: var(--ink); font-size: 12.5px; font-weight: 700; }
.om-flow { fill: none; stroke-width: 2.5; }
.om-flow.goods { stroke: var(--ink); }
.om-flow.cash { stroke: var(--model); }
.om-flow.return { stroke-dasharray: 5 3; }
.om-arrow-ink { fill: var(--ink); }
.om-arrow-cash { fill: var(--model); }
.om-flow-label { fill: var(--muted); font: 700 9px var(--mono) !important; }
.om-flow-label.cash { fill: var(--model); }
.om-divider { stroke: var(--rule-strong); stroke-dasharray: 3 4; }

.opportunity-callouts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 14px; }
.opportunity-callouts > div { padding: 14px; background: #fbf9f2; border: 1px solid var(--rule); border-top: 3px solid var(--reported); }
.opportunity-callouts > div:nth-child(2) { border-top-color: var(--open); }
.opportunity-callouts > div:nth-child(3) { border-top-color: var(--model); }
.opportunity-callouts b { display: block; margin-top: 12px; color: var(--ink); font: 700 16px/1.15 var(--serif); }
.opportunity-callouts p { margin: 6px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; }

.table-scroll { overflow-x: auto; }

.evidence-table {
    width: 100%;
    min-width: 920px;
    border-collapse: collapse;
    color: var(--ink-2);
    font-size: 13px;
}

.evidence-table th,
.evidence-table td {
    padding: 14px 13px;
    border-top: 1px solid var(--rule);
    text-align: left;
    vertical-align: top;
}

.evidence-table thead th {
    padding-top: 8px;
    border-top: 0;
    border-bottom: 1px solid var(--ink);
    color: var(--muted);
    font: 700 10px/1.25 var(--mono);
    letter-spacing: .05em;
    text-transform: uppercase;
}

.evidence-table tbody th { width: 27%; color: var(--ink); font-weight: 650; }
.evidence-table tbody td:nth-child(2) { width: 125px; }
.evidence-table tbody tr:hover { background: #f8f4ea; }

.split-section {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr);
    gap: 30px;
}

.term-sheet {
    border-top: 1px solid var(--ink);
}

.term-sheet > div {
    display: grid;
    grid-template-columns: minmax(140px, .7fr) minmax(220px, 1fr) auto;
    gap: 16px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--rule);
}

.term-sheet span { color: var(--muted); font: 600 11px/1.3 var(--mono); }
.term-sheet strong { color: var(--ink); font-size: 14px; }
.term-sheet em { font-style: normal; }

.plain-note {
    margin: 18px 0 0;
    padding: 12px 14px;
    color: var(--ink-2);
    background: var(--reported-soft);
    border-left: 3px solid var(--reported);
    font-size: 12.5px;
}

.model-card {
    align-self: stretch;
    padding: 24px;
    color: var(--inverse-ink);
    background: var(--inverse);
    border-top: 4px solid var(--model);
}

.model-card .section-no { color: #66c2b9; }
.model-card h3 { margin: 0; color: #fff; font: 700 27px/1.05 var(--serif); }
.model-card p { color: #b7c4c8; font-size: 13px; }
.model-card .text-link { color: #fff; border-color: #66c2b9; }

.gate-flow {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.gate-flow li {
    position: relative;
    min-width: 0;
    padding: 0 14px 0 18px;
    border-left: 1px solid var(--rule);
}
.gate-flow li:first-child { padding-left: 0; border-left: 0; }
.gate-flow li + li::before {
    content: "";
    position: absolute;
    top: 13px;
    left: -5px;
    width: 8px;
    height: 8px;
    background: var(--surface);
    border-top: 1px solid var(--rule-strong);
    border-right: 1px solid var(--rule-strong);
    transform: rotate(45deg);
}

.gate-no {
    display: block;
    margin-bottom: 18px;
    color: var(--risk);
    font: 700 11px/1 var(--mono);
}
.gate-flow b { display: block; min-height: 40px; color: var(--ink); font-size: 13px; }
.gate-flow p { min-height: 86px; margin: 7px 0 12px; color: var(--muted); font-size: 11.5px; line-height: 1.5; }

.risk-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.risk-grid article {
    padding: 18px 18px 16px;
    background: #fbf9f2;
    border: 1px solid var(--rule);
    border-top: 3px solid var(--risk);
}
.risk-grid h3 { margin: 12px 0 7px; color: var(--ink); font: 700 19px/1.1 var(--serif); }
.risk-grid p { margin: 0; color: var(--ink-2); font-size: 12.5px; }
.risk-grid b { display: block; margin-top: 12px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.risk-level { color: var(--risk); font: 700 9px/1 var(--mono); text-transform: uppercase; letter-spacing: .08em; }
.risk-level.medium { color: var(--reported); }

.counterparty-section {
    display: grid;
    grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr);
    gap: 38px;
    color: var(--inverse-ink);
    background: var(--inverse);
    border-color: var(--inverse);
}
.counterparty-section h2 { margin: 0; color: #fff; font: 700 clamp(28px, 3vw, 42px)/1.02 var(--serif); }
.counterparty-section > div > p:not(.section-no) { color: #bdc8cb; }
.counterparty-section .text-link { color: #fff; }
.proof-split { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.proof-split > div { padding: 18px; background: #ffffff0a; border: 1px solid #ffffff1b; }
.proof-split h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; color: #fff; font-size: 13px; }
.proof-split ul { margin: 0; padding-left: 17px; }
.proof-split li { margin: 7px 0; color: #bdc8cb; font-size: 12px; }

.next-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}
.next-grid a {
    min-height: 150px;
    padding: 17px;
    color: var(--ink);
    background: #fbf9f2;
    border: 1px solid var(--rule);
    text-decoration: none;
}
.next-grid a:hover { border-color: var(--verified); transform: translateY(-1px); }
.next-grid span { color: var(--risk); font: 700 10px/1 var(--mono); }
.next-grid b { display: block; margin-top: 22px; font: 700 18px/1.05 var(--serif); }
.next-grid p { margin: 7px 0 0; color: var(--muted); font-size: 11.5px; }

.decision-gate {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 28px;
    align-items: center;
    margin-top: 18px;
    padding: 23px 24px;
    color: var(--inverse-ink);
    background: var(--inverse);
}
.decision-gate h3 { margin: 0; color: #fff; font: 700 24px/1.05 var(--serif); }
.decision-gate > p { margin: 0; color: #bcc8cb; font-size: 12.5px; }
.decision-gate a { color: #fff; font-weight: 700; white-space: nowrap; }

.evidence-footer {
    padding: 22px;
    color: var(--muted);
    background: var(--paper);
    border-top: 1px solid var(--rule-strong);
    text-align: center;
    font: 600 10px/1.4 var(--mono);
}

/* ---------- Internal workspace ---------- */

.internal-hero .audit-hero-copy { background: var(--surface); }
.blocker-list { margin: 0; padding: 0; list-style: none; }
.blocker-list li { padding: 9px 0 9px 15px; border-top: 1px solid #ffffff1e; color: #d0d9db; font-size: 12px; position: relative; }
.blocker-list li::before { content: "?"; position: absolute; left: 0; color: #e3b44a; font-family: var(--mono); }

.workspace-section { margin-top: 22px; }

.hub-grid,
.hub-grid-flush {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.hub-card {
    min-height: 225px;
    margin: 0;
    padding: 18px 18px 16px;
    display: flex;
    flex-direction: column;
    color: var(--ink);
    background: #fbf9f2;
    border: 1px solid var(--rule) !important;
    border-left: 1px solid var(--rule) !important;
    border-top: 3px solid var(--verified) !important;
    border-radius: 0;
    text-decoration: none;
    box-shadow: none;
}
.hub-card:hover { transform: translateY(-1px); border-color: var(--verified) !important; box-shadow: none; }
.hub-card-num { color: var(--risk); font: 700 9px/1 var(--mono); letter-spacing: .08em; }
.hub-card-title { margin: 22px 0 8px; color: var(--ink); font: 700 22px/1.05 var(--serif); }
.hub-card-desc { margin: 0; color: var(--ink-2); font-size: 12px; line-height: 1.55; }
.hub-card-meta { margin-top: auto; padding-top: 15px; color: var(--muted); font: 600 10px/1.4 var(--mono); border-top: 1px solid var(--rule); }
.hub-card-docx,
.hub-card-ja { margin-top: 8px; color: var(--verified); font-size: 10.5px; }
.docx-icon,
.ja-icon { color: inherit; background: transparent; border: 1px solid currentColor; border-radius: 1px; }

/* ---------- Generated research documents ---------- */

.doc-frame { width: min(1060px, calc(100% - 40px)); margin: 28px auto 0; }

.doc-context {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 18px;
    align-items: center;
    margin-bottom: 12px;
    padding: 12px 15px;
    background: var(--inverse);
    color: var(--inverse-ink);
}
.doc-context-meta { display: flex; gap: 10px; align-items: center; color: #d0dadd; font: 600 10px/1.3 var(--mono); text-transform: uppercase; letter-spacing: .05em; }
.doc-context-meta b { color: #fff; }
.doc-context .evidence-key { margin: 0; padding: 0; border: 0; gap: 11px; }
.doc-context .evidence-key span { color: #aebdc1; font-size: 9px; }
.doc-context .evidence-key b { color: #e6ecee; }

.doc-evidence-note {
    margin: 0 0 12px;
    padding: 11px 14px;
    background: var(--reported-soft);
    border-left: 3px solid var(--reported);
    color: var(--ink-2);
    font-size: 11.5px;
}

.doc-article {
    max-width: none;
    margin: 0;
    padding: 46px 56px 70px;
    color: var(--ink-2);
    background: var(--surface);
    border: 1px solid var(--rule);
    box-shadow: none;
    font-size: 15px;
    line-height: 1.68;
}

.doc-article > h1:first-child {
    max-width: 820px;
    margin: 0 0 27px;
    color: var(--inverse);
    font: 700 clamp(39px, 5vw, 58px)/.98 var(--serif);
    letter-spacing: -.035em;
    text-wrap: balance;
}

.doc-article h2 {
    margin: 52px 0 16px;
    padding: 0 0 12px;
    color: var(--inverse);
    border-bottom: 1px solid var(--ink);
    font: 700 31px/1.05 var(--serif);
    letter-spacing: -.02em;
}
.doc-article h2::before { content: none; }
.doc-article h3 { margin: 31px 0 10px; color: var(--ink); font: 700 21px/1.12 var(--serif); }
.doc-article h4 { color: var(--ink); font-size: 14px; }
.doc-article p { max-width: 820px; }
.doc-article > p:first-of-type { max-width: 840px; color: var(--ink-2); font-size: 17px; }
.doc-article strong { color: var(--ink); }
.doc-article hr { margin: 34px 0; border: 0; border-top: 1px solid var(--rule-strong); }
.doc-article blockquote {
    margin: 23px 0;
    padding: 15px 18px;
    color: var(--ink-2);
    background: var(--reported-soft);
    border: 0;
    border-left: 3px solid var(--reported);
}
.doc-article blockquote p { margin: 0; }
.doc-article ul,
.doc-article ol { max-width: 840px; }
.doc-article li { margin: 7px 0; }
.doc-article code { color: var(--ink); background: var(--sunk); font-family: var(--mono); }
.doc-article table { margin: 22px 0 30px; border-collapse: collapse; font-size: 12.5px; }
.doc-article th,
.doc-article td { padding: 11px 12px; border: 1px solid var(--rule); vertical-align: top; }
.doc-article th { color: var(--ink); background: var(--sunk); font: 700 10.5px/1.3 var(--mono); letter-spacing: .02em; }
.doc-article tbody tr:nth-child(even) { background: #faf7ef; }
.doc-article a { font-weight: 600; }

.doc-footer { background: var(--paper); color: var(--muted); border-top-color: var(--rule-strong); }

/* ---------- Static tools: align existing mechanics to the system ---------- */

.sim-wrap,
.kp-wrap,
.vi-wrap { width: min(1240px, calc(100% - 44px)); max-width: none; }

.hero,
.kp-hero,
.vi-hero,
.hub-hero {
    background: var(--surface);
    border: 1px solid var(--rule);
    border-radius: 0;
    box-shadow: none;
}

.hero h1,
.kp-hero-title,
.vi-hero-title,
.hub-hero-title {
    color: var(--inverse);
    font-family: var(--serif);
    letter-spacing: -.025em;
}

.hub-hero-eyebrow,
.kp-hero-eyebrow,
.vi-hero-eyebrow { color: var(--risk); font-family: var(--mono); }

.panel,
.stat-card,
.kp-col,
.kp-card,
.vi-file-block,
.vi-item {
    border-color: var(--rule);
    border-radius: var(--radius);
    box-shadow: none;
}

.panel-title,
.kp-col-title,
.vi-file-title { color: var(--ink); font-family: var(--serif); }

.ctrl input,
.ctrl select,
.ctrl button,
.scenario-btn { border-radius: 2px; font-family: var(--sans); }

.stat-value { color: var(--inverse); font-family: var(--mono); }
.disclaimer { color: var(--ink-2); background: var(--reported-soft); border-left-color: var(--reported); }

.kp-strip,
.vi-strip { background: var(--inverse); }
.kp-hero-stat,
.vi-hero-stat { background: var(--sunk); border-color: var(--rule); }

/* Guided transaction playback. */
.op-playback { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 18px 24px; border-bottom: 1px solid var(--rule); }
.op-playback button { padding: 10px 14px; border: 1px solid var(--rule-strong); background: white; color: var(--ink); font: 600 12px var(--sans); cursor: pointer; border-radius: 3px; }
.op-playback #trade-play { background: #FED000; border-color: #b39100; min-width: 140px; }
.op-playback button:disabled { opacity: .4; cursor: default; }
#trade-clock { margin-left: auto; font: 11px/1.6 var(--mono); }
.op-playback-status { padding: 20px 24px; background: #fff9dc; min-height: 125px; }
.op-playback-status b { font-size: 18px; }
.op-playback-status p { margin: 8px 0 0; max-width: 980px; font-size: 14px; line-height: 1.65; color: var(--ink-2); }
#trade-progress { display: block; width: 100%; height: 5px; border: 0; background: #ece9df; accent-color: #FEC200; }
#trade-progress::-webkit-progress-bar { background: #ece9df; }
#trade-progress::-webkit-progress-value { background: #FEC200; }
#trade-progress::-moz-progress-bar { background: #FEC200; }
.op-drawing[data-playback="active"] .op-cash-path,
.op-drawing[data-playback="active"] .op-goods-path { opacity: .2; }
.op-drawing[data-playback="active"] .op-trade-active { opacity: 1; stroke-width: 4; }
.op-mobile-trade .op-trade-active { background: #fff4b3 !important; outline: 2px solid #b39100; outline-offset: -2px; }
.op-mobile-goods.op-trade-active b::before { content: "🚚 "; }
@media (max-width: 760px) {
    .op-playback, .op-playback-status { padding: 16px; }
    #trade-clock { flex-basis: 100%; margin: 6px 0 0; }
    .op-playback-status { min-height: 165px; }
}

/* Original Yuzu identity with a numeric transaction example. */
.op-page .op-mast { border-bottom: 3px solid #FED000; }
.op-page .op-hero h1 { font-weight: 800; font-size: clamp(40px, 4.6vw, 62px); line-height: 1.09; }
.op-page .op-hero h1 em { color: #1a1a1a; background: linear-gradient(transparent 66%, #FED000 66%); }
.op-page .op-brief { border-top-color: #FED000; }
.op-page .op-brief h2, .op-page .op-section h2, .op-page .op-reading h2 { font-weight: 750; }
.op-page .op-brief dt { color: #6c5600; }
.op-page .op-fact-open, .op-page .op-records { background: #fff9dc; }
.op-page .op-records { border-left-color: #FEC200; }
.op-page .op-records h3, .op-page .op-drivers h3 { font-weight: 700; }
.op-page .op-svg-node.operator rect, .op-page .op-goods-caption { fill: #fff4b3; stroke: #a88900; }
.op-page .op-return-bridge .op-equation strong { color: #FED000; }
.op-page .op-facts strong { font-weight: 650; font-size: 20px; }
.op-example-intro { padding: 28px 30px; margin-bottom: 18px; background: #FED000; color: #1a1a1a; }
.op-example-tag { font: 600 11px/1.6 var(--mono); text-transform: uppercase; letter-spacing: .04em; }
.op-example-intro h3 { margin: 16px 0 14px; font: 750 clamp(24px, 2.8vw, 36px)/1.22 var(--sans); letter-spacing: -.03em; }
.op-example-intro p { max-width: 940px; font-size: 15px; line-height: 1.7; margin: 0; }
.op-time-example { border: 1px solid var(--rule-strong); padding: 28px 30px; margin-top: 20px; background: white; }
.op-time-example > header { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 40px; }
.op-time-example h3 { font: 750 26px/1.25 var(--sans); letter-spacing: -.025em; margin: 0; }
.op-time-example header p:not(.op-kicker) { margin: 0; font-size: 14px; line-height: 1.7; color: var(--ink-2); }
.op-timing-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 26px 0; }
.op-timing-controls > span { margin-right: 12px; font: 12px var(--mono); }
.op-timing-controls button { background: white; color: #1a1a1a; border: 1px solid var(--rule-strong); border-radius: 3px; padding: 9px 14px; cursor: pointer; font: 600 12px var(--sans); }
.op-timing-controls button[aria-pressed="true"] { background: #FED000; border-color: #b39100; }
.op-time-track { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
.op-time-track > div { border-top: 3px solid #FEC200; position: relative; padding-top: 16px; }
.op-time-track > div::before { content: ""; position: absolute; width: 10px; height: 10px; top: -7px; left: 0; border-radius: 50%; background: #1a1a1a; }
.op-time-track span { display: block; color: #685200; font: 600 11px var(--mono); margin-bottom: 10px; }
.op-time-track b { font-size: 15px; }
.op-time-track p { color: var(--muted); font-size: 13px; line-height: 1.6; }
.op-capital-window { display: grid; grid-template-columns: 100px 1fr 75px; align-items: center; gap: 16px; margin: 26px 0; font: 12px var(--mono); }
.op-capital-window > div { background: #f1efea; height: 23px; }
.op-capital-window i { display: block; height: 100%; background: #FED000; border-right: 2px solid #1a1a1a; }
.op-capital-window b { text-align: right; }
.op-example-results { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--rule); gap: 24px; padding-top: 24px; }
.op-example-results span { font-size: 12px; color: var(--muted); }
.op-example-results b { display: block; font: 750 clamp(20px, 2.5vw, 30px)/1.3 var(--sans); margin: 8px 0; }
.op-example-results small { display: block; font-size: 12px; color: var(--muted); line-height: 1.6; }
.op-timing-explanation { padding: 18px; margin: 24px 0 14px; background: #fff9dc; font-size: 14px; line-height: 1.65; }
.op-example-note { font-size: 12px; color: var(--muted); line-height: 1.7; margin: 0; }
@media (max-width: 760px) {
    .op-time-example, .op-example-intro { padding: 22px; }
    .op-time-example > header, .op-example-results { grid-template-columns: 1fr; gap: 20px; }
    .op-time-track { grid-template-columns: 1fr 1fr; row-gap: 25px; }
    .op-capital-window { grid-template-columns: 1fr 65px; }
    .op-capital-window > span { grid-column: 1 / -1; }
}

/* ---------- Responsive ---------- */

/* Reviewed overview: one mechanism, separate cash and goods, scoped evidence. */
.op-page { --muted: #596369; margin: 0; }
.op-page * { box-sizing: border-box; }
.op-page :focus-visible { outline: 3px solid #28668d; outline-offset: 5px; }
.op-page [id] { scroll-margin-top: 95px; }
.op-skip { position: absolute; left: 16px; top: -80px; padding: 12px; background: white; z-index: 100; }
.op-skip:focus { top: 8px; }
.op-mast { position: sticky; top: 0; z-index: 60; display: flex; align-items: center; gap: 36px; padding: 20px max(24px, calc((100vw - 1240px) / 2)); background: var(--paper); border-bottom: 1px solid var(--rule-strong); }
.op-mast > a { flex: none; display: flex; }
.op-mast img { width: 94px; height: 30px; object-fit: contain; }
.op-mast nav { display: flex; gap: 26px; flex: 1; }
.op-mast nav a { font-size: 13px; color: var(--ink); text-decoration: none; }
.op-mast nav a:hover { text-decoration: underline; }
.op-mast > span { font: 10px var(--mono); color: var(--muted); }
.op-main { width: min(1240px, calc(100% - 48px)); margin: auto; }
.op-kicker { margin: 0 0 18px; font: 600 11px/1.5 var(--mono); text-transform: uppercase; letter-spacing: .09em; color: var(--muted); }
.op-hero { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(310px, 1fr); gap: 72px; padding: 76px 0 56px; align-items: center; }
.op-hero h1 { margin: 0; font: 500 clamp(44px, 5.4vw, 72px)/1.03 var(--serif); letter-spacing: -.045em; color: var(--inverse); }
.op-hero h1 em { color: #6d7543; font-style: normal; }
.op-intro { max-width: 620px; margin: 26px 0; color: var(--ink-2); font-size: 18px; line-height: 1.65; }
.op-link { display: inline-flex; gap: 40px; padding: 12px 0; font-weight: 650; color: var(--ink); text-decoration: none; border-bottom: 2px solid var(--accent); }
.op-brief { padding: 28px; border: 1px solid var(--rule-strong); background: var(--surface); border-top: 4px solid #b7a849; }
.op-brief h2 { margin: 0 0 24px; font: 500 32px/1.12 var(--serif); color: var(--inverse); }
.op-brief dl { margin: 0; }
.op-brief dl div { display: grid; grid-template-columns: 63px 1fr; gap: 14px; padding: 12px 0; border-top: 1px solid var(--rule); }
.op-brief dt { font: 600 11px/1.6 var(--mono); color: var(--muted); }
.op-brief dd { margin: 0; font-size: 14px; line-height: 1.5; }
.op-brief > p:last-child { margin: 20px 0 0; font-size: 12px; line-height: 1.55; color: var(--muted); }
.op-facts { display: grid; grid-template-columns: repeat(4, 1fr); border-block: 1px solid var(--rule-strong); }
.op-facts > div { padding: 23px 24px; border-left: 1px solid var(--rule); }
.op-facts > div:first-child { padding-left: 0; border-left: 0; }
.op-facts span { display: block; font: 10px/1.5 var(--mono); color: var(--muted); }
.op-facts strong { display: block; margin-top: 8px; color: var(--ink); font: 500 22px/1.3 var(--serif); }
.op-facts a { display: block; margin-top: 8px; color: var(--ink); font-size: 14px; }
.op-facts a span { display: inline; }
.op-fact-open { background: #ece7d5; }
.op-section { padding: 68px 0 0; }
.op-section-head { display: grid; grid-template-columns: 1.35fr 1fr; gap: 64px; align-items: end; margin-bottom: 30px; }
.op-section h2, .op-reading h2 { font: 500 clamp(30px, 3.3vw, 44px)/1.12 var(--serif); letter-spacing: -.025em; color: var(--inverse); margin: 0; }
.op-section-head > p { margin: 0 0 3px; font-size: 15px; color: var(--ink-2); line-height: 1.65; }
.op-diagram-shell { border: 1px solid var(--rule-strong); background: var(--surface); }
.op-diagram-toolbar { padding: 17px 24px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; border-bottom: 1px solid var(--rule); }
.op-view-controls { display: flex; gap: 5px; flex-wrap: wrap; }
.op-view-controls button { background: transparent; border: 1px solid transparent; color: var(--muted); padding: 9px 13px; border-radius: 3px; cursor: pointer; font: 600 12px var(--sans); }
.op-view-controls button[aria-pressed="true"] { background: var(--inverse); color: var(--surface); }
.op-view-controls button:hover { border-color: var(--rule-strong); }
.op-channel-key { display: flex; gap: 20px; color: var(--muted); font: 11px var(--mono); }
.op-channel-key span { display: flex; align-items: center; gap: 8px; }
.op-channel-key i { display: block; width: 24px; height: 3px; }
.op-channel-key i.cash { background: #28668d; }
.op-channel-key i.goods { background: #273c34; }
.op-transaction { display: block; width: 100%; height: auto; padding: 25px 16px 0; }
.op-transaction text { font-family: var(--sans); }
.op-svg-lane { fill: var(--muted); font: 600 11px var(--mono) !important; letter-spacing: .1em; }
.op-svg-node rect { fill: var(--surface); stroke: #aaa899; stroke-width: 1.4; }
.op-svg-node.unresolved rect { stroke-dasharray: 5 4; }
.op-svg-node.operator rect { fill: #e7ecdf; stroke: #768366; stroke-width: 1.5; }
.op-svg-heading { fill: var(--inverse); font-size: 18px; font-weight: 650; }
.op-svg-copy { fill: var(--ink-2); font-size: 13px; }
.op-svg-label { fill: #28668d; font-size: 12px; font-weight: 600; }
.op-svg-foot { fill: var(--muted); font-size: 11px; }
.op-svg-divider { stroke: var(--rule); }
.op-cash-path { fill: none; stroke: #28668d; stroke-width: 2.5; marker-end: url(#op-cash-arrow); }
.op-cash-path.conditional { stroke-dasharray: 5 4; }
.op-goods-path { fill: none; stroke: #273c34; stroke-width: 3; marker-end: url(#op-goods-arrow); }
.op-goods-caption { fill: #e7ecdf; stroke: #768366; }
.op-svg-icon { fill: #e7ecdf; stroke: #273c34; stroke-width: 1.5; }
.op-drawing[data-focus="cash"] .op-goods-layer, .op-drawing[data-focus="goods"] .op-cash-layer { opacity: .16; }
.op-flow-caption { padding: 18px 24px; margin: 0; min-height: 75px; border-top: 1px solid var(--rule); color: var(--ink-2); font-size: 14px; line-height: 1.6; background: #f7f4eb; }
.op-mobile-trade, .op-mobile-label { display: none; }
.op-gate-strip { display: grid; grid-template-columns: 150px 1fr auto; align-items: center; gap: 24px; padding: 22px 0; border-bottom: 1px solid var(--rule-strong); }
.op-gate-strip > span { color: var(--muted); font: 600 11px/1.4 var(--mono); }
.op-gate-strip p { margin: 0; font-size: 14px; line-height: 1.6; }
.op-gate-strip a { font-size: 12px; white-space: nowrap; }
.op-drivers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 38px; margin: 35px 0; }
.op-drivers article { padding-top: 22px; border-top: 2px solid var(--ink); }
.op-drivers article > span { color: #7a713c; font: 12px var(--mono); }
.op-drivers h3 { font: 500 29px var(--serif); margin: 18px 0 10px; }
.op-drivers p { font-size: 15px; color: var(--ink-2); line-height: 1.7; }
.op-drivers small { font-size: 12px; color: var(--muted); line-height: 1.6; }
.op-return-bridge { padding: 28px 30px; background: var(--inverse); color: #f9f7ef; }
.op-return-bridge .op-kicker { color: #c8ccbe; }
.op-equation { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; font: 500 23px/1.4 var(--serif); }
.op-equation i { font: 22px var(--sans); color: #bcb884; }
.op-equation strong { font-weight: 500; color: #dedca9; }
.op-return-bridge > p:last-child { max-width: 920px; color: #c9d1d1; font-size: 14px; line-height: 1.65; margin: 22px 0 0; }
.op-terms { margin-top: 24px; padding: 25px 0; display: grid; grid-template-columns: 1fr 1fr auto; align-items: center; gap: 32px; border-bottom: 1px solid var(--rule-strong); }
.op-terms .op-kicker { margin-bottom: 8px; color: #806321; }
.op-terms h3 { margin: 0; font: 500 25px/1.2 var(--serif); }
.op-terms p:last-child { margin: 8px 0 0; font-size: 13px; color: var(--muted); }
.op-terms dl { margin: 0; }
.op-terms dl div { display: flex; justify-content: space-between; gap: 18px; padding: 8px 0; border-bottom: 1px solid var(--rule); font-size: 13px; }
.op-terms dd { margin: 0; font-weight: 650; }
.op-terms a { font-size: 12px; }
.op-model-link { margin: 20px 0 0; font-size: 14px; color: var(--muted); }
.op-evidence-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 50px; }
.op-records { padding: 30px; background: #e6e9e0; border-left: 3px solid #768366; }
.op-records h3 { font: 500 30px/1.1 var(--serif); margin: 0 0 20px; }
.op-records p:not(.op-kicker) { font-size: 15px; color: var(--ink-2); line-height: 1.7; }
.op-records a { display: inline-block; margin-top: 10px; font-size: 14px; }
.op-requests details { border-top: 1px solid var(--rule-strong); padding: 0 0 16px; }
.op-requests details:last-child { border-bottom: 1px solid var(--rule-strong); }
.op-requests summary { cursor: pointer; padding: 18px 0 4px; font-size: 16px; font-weight: 600; }
.op-requests summary span { color: var(--muted); font: 11px var(--mono); margin-right: 12px; }
.op-requests details p { color: var(--ink-2); font-size: 14px; line-height: 1.7; padding-left: 30px; }
.op-reading { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; padding: 60px 0 70px; margin-top: 65px; border-top: 2px solid var(--ink); }
.op-reading nav a { display: flex; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--rule); text-decoration: none; color: var(--ink); font-size: 15px; }
.op-reading nav a:hover { color: var(--verified); }
.op-reading nav span { color: var(--muted); font: 11px var(--mono); }
.op-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 18px; padding: 25px max(24px, calc((100vw - 1240px) / 2)); border-top: 1px solid var(--rule-strong); font: 10px/1.7 var(--mono); color: var(--muted); }
@media (max-width: 1000px) {
    .op-transaction { display: none; }
    .op-mobile-label { display: block; margin: 20px 22px 0; font-size: 13px; color: var(--muted); }
    .op-mobile-trade { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; list-style: none; margin: 0; padding: 18px 22px; }
    .op-mobile-trade li { padding: 15px 0 15px 16px; border-left: 3px solid #28668d; border-bottom: 1px solid var(--rule); }
    .op-mobile-trade li.op-mobile-goods { border-left-color: #273c34; background: #e7ecdf; }
    .op-mobile-trade b { font-size: 14px; }
    .op-mobile-trade p { font-size: 13px; color: var(--muted); margin: 7px 0 0; line-height: 1.5; }
    .op-drawing[data-focus="cash"] .op-mobile-goods, .op-drawing[data-focus="goods"] .op-mobile-cash { opacity: .4; }
    .op-hero { gap: 35px; grid-template-columns: 1.3fr 1fr; }
    .op-section-head { gap: 30px; }
    .op-gate-strip { grid-template-columns: 1fr; gap: 8px; }
    .op-terms { grid-template-columns: 1fr 1fr; }
    .op-terms > a { grid-column: 1 / -1; }
    .op-mast > span { display: none; }
    .op-mast { gap: 25px; }
    .op-evidence-grid { gap: 24px; }
}
@media (max-width: 760px) {
    .op-mast { position: static; flex-wrap: wrap; gap: 18px; padding: 18px 20px; }
    .op-mast nav { flex-basis: 100%; gap: 18px; flex-wrap: wrap; }
    .op-mast nav a { font-size: 12px; }
    .op-main { width: calc(100% - 40px); }
    .op-hero { grid-template-columns: 1fr; gap: 28px; padding: 42px 0 32px; }
    .op-hero h1 { font-size: clamp(38px, 8.5vw, 58px); }
    .op-intro { font-size: 16px; }
    .op-brief { padding: 23px; }
    .op-facts { grid-template-columns: 1fr 1fr; }
    .op-facts > div { padding: 18px 14px; border-bottom: 1px solid var(--rule); }
    .op-facts > div:nth-child(odd) { border-left: 0; padding-left: 0; }
    .op-facts strong { font-size: 19px; }
    .op-section { padding-top: 44px; }
    .op-section-head, .op-drivers, .op-evidence-grid, .op-reading, .op-terms { grid-template-columns: 1fr; gap: 22px; }
    .op-section-head h2 { font-size: 33px; }
    .op-transaction { display: none; }
    .op-mobile-trade { grid-template-columns: 1fr; }
    .op-mobile-trade li { padding: 15px 0 15px 16px; border-left: 3px solid #28668d; border-bottom: 1px solid var(--rule); }
    .op-mobile-trade li.op-mobile-goods { border-left-color: #273c34; background: #e7ecdf; }
    .op-mobile-trade b { font-size: 14px; }
    .op-mobile-trade p { font-size: 13px; color: var(--muted); margin: 7px 0 0; line-height: 1.5; }
    .op-drawing[data-focus="cash"] .op-mobile-goods, .op-drawing[data-focus="goods"] .op-mobile-cash { opacity: .4; }
    .op-diagram-toolbar { padding: 14px; }
    .op-view-controls button { padding: 8px 9px; font-size: 11px; }
    .op-flow-caption { padding: 18px; }
    .op-return-bridge { padding: 24px; }
    .op-equation { flex-direction: column; align-items: flex-start; gap: 8px; font-size: 23px; }
    .op-equation i { font-size: 18px; }
    .op-reading { margin-top: 44px; padding: 35px 0 45px; }
    .op-requests details p { padding-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
}
.op-infographic { margin: 28px 0 0; }
.op-infographic > a { display: block; }
.op-infographic img { display: block; width: 100%; height: auto; border: 1px solid #e3dfd5; border-radius: 6px; }
.op-infographic figcaption { max-width: 1000px; margin-top: 12px; font-size: 13px; line-height: 1.65; color: #545454; }
.op-infographic figcaption a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.op-infographic > a:focus-visible { outline: 3px solid #b38b00; outline-offset: 4px; }

@media print {
    .op-mast { position: static; }
    .op-main { width: 100%; }
    .op-view-controls { display: none; }
    .op-drawing .op-cash-layer, .op-drawing .op-goods-layer { opacity: 1 !important; }
    .op-diagram-shell { break-inside: avoid; }
}

@media (max-width: 1100px) {
    .doc-topbar { flex-wrap: wrap; padding: 0 14px; gap: 0; }
    .doc-topbar-brand { min-height: 54px; }
    .doc-topbar-right { margin-left: auto; min-height: 54px; }
    .doc-topbar-nav { order: 3; flex-basis: 100%; min-height: 42px; border-top: 1px solid var(--rule); }
    .topbar-evidence-key { display: none; }
    .audit-hero { grid-template-columns: 1fr; }
    .opportunity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .opportunity-thesis { grid-template-columns: auto minmax(0, 1fr); }
    .opportunity-thesis > .state { grid-column: 2; justify-self: start; }
    .split-section,
    .counterparty-section { grid-template-columns: 1fr; }
    .gate-flow { grid-template-columns: repeat(3, 1fr); gap: 22px 0; }
    .gate-flow li:nth-child(4) { border-left: 0; padding-left: 0; }
    .risk-grid { grid-template-columns: repeat(2, 1fr); }
    .next-grid { grid-template-columns: repeat(2, 1fr); }
    .hub-grid,
    .hub-grid-flush { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
    .ledger-main,
    .sim-wrap,
    .kp-wrap,
    .vi-wrap { width: min(100% - 24px, 1240px); padding-top: 18px; }
    .doc-topbar-right-top .doc-topbar-confidential { display: none; }
    .doc-topbar-section-toggle { display: none; }
    .audit-hero-copy,
    .decision-panel,
    .ledger-section,
    .workspace-section { padding: 22px 19px; }
    .opportunity-grid,
    .opportunity-callouts { grid-template-columns: 1fr; }
    .opportunity-thesis { grid-template-columns: 1fr; padding: 18px; }
    .opportunity-thesis > .state { grid-column: 1; }
    .opportunity-mark { display: none; }
    .opportunity-map { padding: 16px; }
    .opportunity-map figcaption { grid-template-columns: 1fr; gap: 8px; }
    .audit-hero h1 { font-size: 39px; }
    .section-head { grid-template-columns: 1fr; gap: 10px; }
    .term-sheet > div { grid-template-columns: 1fr auto; gap: 5px 12px; }
    .term-sheet strong { grid-column: 1; }
    .term-sheet em { grid-column: 2; grid-row: 1 / span 2; }
    .gate-flow { grid-template-columns: 1fr; }
    .gate-flow li,
    .gate-flow li:nth-child(4) { padding: 13px 0; border-left: 0; border-top: 1px solid var(--rule); }
    .gate-flow li + li::before { display: none; }
    .gate-flow b,
    .gate-flow p { min-height: 0; }
    .risk-grid,
    .proof-split,
    .next-grid,
    .hub-grid,
    .hub-grid-flush { grid-template-columns: 1fr; }
    .decision-gate { grid-template-columns: 1fr; gap: 12px; }
    .doc-frame { width: min(100% - 20px, 1060px); margin-top: 14px; }
    .doc-context { grid-template-columns: 1fr; }
    .doc-context .evidence-key { display: none; }
    .doc-article { padding: 30px 20px 50px; }
    .doc-article > h1:first-child { font-size: 40px; }
    .doc-article h2 { font-size: 28px; }
}

@media print {
    .doc-topbar { position: static; }
    .ledger-main,
    .doc-frame { width: 100%; }
    .ledger-section,
    .workspace-section,
    .audit-hero-copy,
    .decision-panel,
    .opportunity-card,
    .opportunity-callouts > div { break-inside: avoid; }
    .opportunity-map-svg { min-width: 0; }
}
