/* Latvia 2126 – the public shell. Restrained civic/research design: paper, ink, the sea.
   The recurring visual language: EVIDENCE is a solid line, ASSUMPTIONS dashed, SCENARIOS dotted –
   certainty fading from what is known to what is imagined. System fonts only (no external requests). */
:root{
  --paper:#f5f3ee;--paper-2:#ebe7de;--card:#fffdf9;
  --ink:#14212b;--ink-2:#36434d;--muted:#56616b;
  --line:rgba(20,33,43,.14);--line-2:rgba(20,33,43,.28);
  --evidence:#1d5c70;--assume:#8a5212;--scenario:#5b4a8a;--carmine:#9e3039;
  --dark:#14212b;--dark-2:#1d2d39;--on-dark:#eef0ef;--on-dark-2:#b9c3ca;
  --evidence-l:#8fcbdd;--assume-l:#e6b06a;--scenario-l:#bdb0ea;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Times New Roman",serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --wrap:1180px;--gutter:clamp(16px,4vw,40px);--radius:6px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{max-width:100%}
a{color:var(--evidence);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid #2a7f9e;outline-offset:3px;border-radius:2px}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.15;margin:0 0 .5em;letter-spacing:-.005em}
h2{font-size:clamp(1.9rem,3.6vw,2.9rem)}
h3{font-size:1.35rem}
h4{font-size:1.15rem}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:12px;top:-60px;z-index:20;padding:10px 16px;background:var(--ink);color:#fff;font-weight:600;text-decoration:none;border-radius:var(--radius)}
.skip-link:focus{top:12px}
.muted{color:var(--muted)}
[hidden]{display:none!important}

/* Header */
.site-header{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.header-row{display:flex;align-items:center;gap:24px;min-height:64px;flex-wrap:wrap}
.wordmark{display:inline-flex;align-items:center;gap:10px;font:600 15px/1 var(--sans);letter-spacing:.22em;color:var(--ink);text-decoration:none;white-space:nowrap}
.wordmark b{font-weight:800}
.wm-bar{display:inline-block;width:22px;height:14px;background:linear-gradient(var(--carmine) 0 40%,#fff 40% 60%,var(--carmine) 60%);border-radius:1px;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.site-nav{margin-left:auto}
.site-nav ul{display:flex;gap:4px 20px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.site-nav a{color:var(--ink-2);text-decoration:none;font-size:15px;padding:6px 0;border-bottom:2px solid transparent}
.site-nav a:hover{color:var(--ink);border-bottom-color:var(--line-2)}
.site-nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--carmine)}
.lang-switch{display:flex;align-items:center;gap:2px;font-size:14px}
.lang-switch button{background:none;border:1px solid transparent;color:var(--muted);font:600 14px/1 var(--sans);letter-spacing:.06em;padding:7px 8px;border-radius:var(--radius);cursor:pointer}
.lang-switch button:hover{color:var(--ink);border-color:var(--line)}
.lang-switch button[aria-pressed="true"]{color:var(--ink);border-color:var(--line-2);background:var(--card)}
.lang-sep{color:var(--line-2)}
.prerelease{margin:0;background:var(--paper-2);border-top:1px solid var(--line);font-size:13.5px;color:var(--ink-2)}
.prerelease .wrap{display:block;padding-top:7px;padding-bottom:7px}
.prerelease .wrap::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;border:2px dotted var(--scenario);margin-right:9px;vertical-align:1px}
@media (max-width:820px){
  .header-row{gap:6px 16px;padding-top:10px;padding-bottom:6px}
  .site-nav{order:3;margin-left:0;width:100%;overflow-x:auto}
  .site-nav ul{flex-wrap:nowrap;gap:18px}
  .site-nav a{white-space:nowrap}
  .lang-switch{margin-left:auto}
  .site-header{position:static}
}

/* Buttons */
.btn{display:inline-block;padding:13px 22px;border-radius:var(--radius);font:600 16px/1.2 var(--sans);text-decoration:none;border:1.5px solid var(--ink);cursor:pointer}
.btn-primary{background:var(--ink);color:#fff}
.btn-primary:hover{background:var(--dark-2)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--card)}
.btn-light{background:var(--on-dark);color:var(--ink);border-color:var(--on-dark)}
.btn[aria-disabled="true"]{border-style:dashed;color:var(--muted);border-color:var(--line-2);cursor:not-allowed;background:transparent}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}

/* Sections */
[id]{scroll-margin-top:96px}
.section{padding:clamp(56px,8vw,104px) 0;border-top:1px solid var(--line)}
.section-tint{background:var(--paper-2)}
.band-dark{background:var(--dark);color:var(--on-dark);border-top:0}
.band-dark .lede,.band-dark p{color:var(--on-dark-2)}
.band-dark h2,.band-dark h3{color:#fff}
.band-dark .kicker{color:var(--on-dark-2)}
.kicker,.eyebrow{font:700 12.5px/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.kicker-evidence{color:var(--evidence)}.kicker-gap{color:var(--carmine)}.kicker-scenario{color:var(--scenario)}
.lede{font-size:1.18rem;line-height:1.55;color:var(--ink-2)}
.narrow{max-width:46em}
.note{font-size:.92rem;color:var(--muted)}
.h-small{font:700 13px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin:44px 0 16px}
.h-mid{font-size:1.45rem}
.two-col{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,72px);align-items:start}
.prose{max-width:40em}
@media (max-width:860px){.two-col{grid-template-columns:1fr}}

/* Hero */
.hero{padding:clamp(48px,7vw,96px) 0 clamp(48px,6vw,80px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(32px,5vw,72px);align-items:center}
@media (max-width:960px){.hero-grid{grid-template-columns:1fr}}
.hero h1{margin:0 0 24px}
.hero-brand{display:block;font:800 clamp(14px,1.4vw,16px)/1 var(--sans);letter-spacing:.32em;color:var(--carmine);margin-bottom:22px}
.hero-q{display:block;font-size:clamp(2rem,4.4vw,3.45rem);line-height:1.1}
.hero-answer{font-family:var(--serif);font-style:italic;font-size:clamp(1.2rem,2vw,1.5rem);line-height:1.4;color:var(--ink-2);max-width:32em}
.hero-body{max-width:36em;color:var(--ink-2)}
.page-hero{padding:clamp(48px,7vw,88px) 0 clamp(40px,5vw,64px)}
.page-hero h1{font-size:clamp(2.6rem,6vw,4.4rem)}

/* Hero figure: the widening space of plausible futures (an illustration, not data) */
.hero-fig{margin:0;padding:22px 22px 18px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}
.fig-title{font:700 12.5px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-bottom:8px}
.cone{display:block;width:100%;height:auto}
.cone-outer{fill:rgba(91,74,138,.07)}
.cone-inner{fill:rgba(138,82,18,.08)}
.ln-evidence{stroke:var(--evidence);stroke-width:4;stroke-linecap:round}
.ln-assume{stroke:var(--assume);stroke-width:2.4;stroke-dasharray:10 7}
.ln-scenario{stroke:var(--scenario);stroke-width:2.4;stroke-dasharray:1.5 7;stroke-linecap:round}
.today{fill:var(--evidence);stroke:var(--card);stroke-width:3}
.ticks line{stroke:var(--line-2);stroke-width:1.2}
.ticks text{font:600 13px var(--sans);fill:var(--muted);text-anchor:middle}
.hero-fig figcaption{font-size:.86rem;color:var(--muted);margin-top:10px}
.triad-legend{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:8px}
.triad-legend li{display:flex;gap:10px;align-items:baseline;font-size:.95rem;padding-left:36px;position:relative}
.triad-legend li::before{content:"";position:absolute;left:0;top:.62em;width:26px;border-top:3px solid}
.triad-legend b{font-weight:700;min-width:7.5em}
.triad-legend span{color:var(--ink-2)}
.tl-evidence::before{border-color:var(--evidence)!important}
.tl-assume::before{border-top-style:dashed!important;border-color:var(--assume)!important}
.tl-scenario::before{border-top-style:dotted!important;border-color:var(--scenario)!important}
.tl-evidence b{color:var(--evidence)}.tl-assume b{color:var(--assume)}.tl-scenario b{color:var(--scenario)}

/* Why 2126 */
.four{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:0}
.four li{padding:14px 0;border-top:1px solid var(--line)}
.four b{font-family:var(--serif);font-weight:600;font-size:1.12rem}

/* Evidence → Assumptions → Scenarios */
.eas-title{font-size:clamp(2rem,4.6vw,3.6rem)}
.eas{list-style:none;padding:0;margin:44px 0 28px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;counter-reset:s}
.stage{padding:28px 28px 8px;border-top:5px solid;position:relative}
.stage+.stage{border-left:1px solid rgba(255,255,255,.12)}
.stage-evidence{border-top-color:var(--evidence-l);border-top-style:solid}
.stage-assume{border-top-color:var(--assume-l);border-top-style:dashed}
.stage-scenario{border-top-color:var(--scenario-l);border-top-style:dotted}
.stage+.stage::before{content:"→";position:absolute;left:-.62em;top:22px;font:400 26px/1 var(--sans);color:var(--on-dark-2);background:var(--dark);padding:0 4px}
.stage-n{font:700 13px/1 var(--sans);letter-spacing:.14em;margin-bottom:18px}
.stage-evidence .stage-n,.stage-evidence h3{color:var(--evidence-l)!important}
.stage-assume .stage-n,.stage-assume h3{color:var(--assume-l)!important}
.stage-scenario .stage-n,.stage-scenario h3{color:var(--scenario-l)!important}
.stage h3{font-family:var(--sans);font-weight:800;font-size:clamp(1.3rem,2.2vw,1.75rem);letter-spacing:.1em;text-transform:uppercase}
.band-dark .stage-q{font-family:var(--serif);font-style:italic;font-size:1.22rem;color:#fff}
.eas-methods{max-width:52em;border-left:2px solid rgba(255,255,255,.22);padding-left:18px}
.eas-legend{font-size:.9rem}
@media (max-width:860px){
  .eas{grid-template-columns:1fr}
  .stage+.stage{border-left:0}
  .stage+.stage::before{content:"↓";left:28px;top:-34px;background:none}
  .stage{margin-top:22px;padding-left:0;padding-right:0}
}

/* Liepāja scopes */
.scopes{margin:0;display:grid;gap:18px}
.scopes dt{font-weight:700}
.scopes dd{margin:4px 0 0;color:var(--ink-2)}
.scope-diagram{margin:0 0 26px}
.sd-city{position:relative;border:2px solid var(--evidence);border-radius:38% 46% 40% 52% / 46% 38% 54% 42%;background:rgba(29,92,112,.06);aspect-ratio:16/9;padding:9% 12% 0;text-align:center;font-size:.88rem;font-weight:600;color:var(--evidence)}
.sd-square{position:absolute;left:24%;top:42%;width:24%;aspect-ratio:1;border:2px solid var(--ink);background:var(--card);display:flex;align-items:flex-end;padding:6px;font-size:.78rem;color:var(--ink);line-height:1.2}
.sd-note{font-size:.8rem;color:var(--muted);margin-top:6px}
.scope-diagram-lg .sd-city{font-size:1rem}

/* Evidence */
.stats{list-style:none;padding:0;margin:36px 0 40px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:2px solid var(--ink)}
.stats li{padding:22px 24px 6px 0;display:flex;flex-direction:column;gap:8px;color:var(--ink-2)}
.stats li+li{padding-left:24px;border-left:1px solid var(--line)}
.stat-n{font:500 clamp(3rem,7vw,5.2rem)/1 var(--serif);color:var(--ink);letter-spacing:-.02em}
.stat-zero .stat-n{color:var(--scenario)}
@media (max-width:720px){.stats{grid-template-columns:1fr}.stats li+li{padding-left:0;border-left:0;border-top:1px solid var(--line)}}
.kinds{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.kinds li{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.kinds span{font-size:.92rem;color:var(--muted)}

/* Cards (evidence items and evidence gaps) */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:18px;margin-top:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px 22px 14px;display:flex;flex-direction:column}
.ev-card{border-top:4px solid var(--evidence)}
.gap-card{border:1.5px dashed var(--line-2);border-top:4px solid var(--carmine)}
.card-label{font:700 11.5px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.card-label code{font:500 11.5px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:0;text-transform:none;color:var(--muted);background:var(--paper-2);padding:2px 6px;border-radius:3px;overflow-wrap:anywhere}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.dot-evidence{background:var(--evidence)}
.dot-gap{border:2px solid var(--carmine)}
.card h4{font-size:1.18rem;margin-bottom:10px}
.ev-value{font:500 2.4rem/1.1 var(--serif);margin:2px 0 14px;color:var(--ink)}
.ev-unit{font:400 1rem var(--sans);color:var(--muted)}
.card dl{margin:0;display:grid;gap:0}
.kv{display:grid;grid-template-columns:minmax(6.5em,34%) 1fr;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:.9rem}
.kv dt{color:var(--muted);font-weight:600}
.kv dd{margin:0;color:var(--ink-2);overflow-wrap:anywhere}
.pill{display:inline-block;font:700 12px/1 var(--sans);letter-spacing:.04em;padding:5px 9px;border-radius:99px;border:1.5px solid}
.pill-open{color:var(--carmine);border-color:var(--carmine)}
.pill-partial{color:var(--assume);border-color:var(--assume);border-style:dashed}
.pill-questionable{color:var(--scenario);border-color:var(--scenario);border-style:dotted}
.pill-resolved{color:var(--evidence);border-color:var(--evidence)}
.suggest{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:28px}
.suggest .note{margin:0;max-width:40em}
.statement{font-style:italic;max-width:22em}

/* Scenarios: deliberately inactive */
.slots{list-style:none;padding:0;margin:32px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.slot{border:2px dotted var(--scenario);border-radius:var(--radius);min-height:150px;padding:20px;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;background:repeating-linear-gradient(135deg,transparent 0 10px,rgba(91,74,138,.045) 10px 20px)}
.slot-label{font:700 13px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--scenario)}
.slot-note{font-size:.9rem;color:var(--muted)}
@media (max-width:720px){.slots{grid-template-columns:1fr}.slot{min-height:90px}}
.trace{margin-top:16px}
.trace-chain{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--card)}
.trace-chain li{padding:16px 18px;display:flex;flex-direction:column;gap:4px;position:relative}
.trace-chain li+li{border-left:1px solid var(--line)}
.trace-chain li+li::before{content:"→";position:absolute;left:-.55em;top:14px;background:var(--card);color:var(--muted);padding:0 2px}
.trace-chain b{font-size:.95rem}
.trace-chain span{font-size:.85rem;color:var(--muted)}
.trace-chain .tc-empty{font:500 1.6rem/1 var(--serif);color:var(--line-2);margin-top:6px}
.tc-result b{color:var(--scenario)}.tc-assume b{color:var(--assume)}.tc-method b{color:var(--ink-2)}.tc-evidence b,.tc-source b{color:var(--evidence)}
@media (max-width:860px){
  .trace-chain{grid-template-columns:1fr}
  .trace-chain li+li{border-left:0;border-top:1px solid var(--line)}
  .trace-chain li+li::before{content:"↓";left:auto;right:18px;top:-.75em}
}

/* 3D city, tags, lists */
.tags{list-style:none;padding:0;margin:4px 0 22px;display:flex;flex-wrap:wrap;gap:8px}
.tags li{border:1px solid var(--line-2);border-radius:99px;padding:5px 13px;font-size:.92rem;background:var(--card)}
.pending{display:inline-block;border:1.5px dashed var(--line-2);border-radius:var(--radius);padding:10px 14px;color:var(--ink-2);font-size:.95rem}
.not-yet{padding-left:1.2em;margin:0 0 18px}
.not-yet li{margin-bottom:6px}
.topics{list-style:none;padding:0;margin:0;border-top:2px solid var(--ink)}
.topics li{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}
.topic-n{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}

/* Methodology */
.steps{list-style:none;padding:0;margin:36px 0 32px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:1px;background:rgba(255,255,255,.12);counter-reset:step;border:1px solid rgba(255,255,255,.12)}
.steps li{background:var(--dark);padding:22px 20px;display:flex;flex-direction:column;gap:6px;counter-increment:step}
.steps li::before{content:counter(step,decimal-leading-zero);font:700 13px/1 var(--sans);letter-spacing:.14em;color:var(--on-dark-2)}
.steps b{color:#fff;font-family:var(--serif);font-weight:500;font-size:1.2rem}
.steps span{color:var(--on-dark-2);font-size:.93rem}
.steps-light{background:var(--line);border-color:var(--line)}
.steps-light li{background:var(--paper)}
.steps-light b{color:var(--ink)}
.steps-light span,.steps-light li::before{color:var(--muted)}
.prose-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:36px 48px}
.prose-grid p{color:var(--ink-2)}
.sources{padding-left:1.3em}
.sources li{margin-bottom:8px}

/* Footer */
.site-footer{background:var(--dark);color:var(--on-dark-2);padding:56px 0 48px;font-size:.93rem}
.footer-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr);gap:32px}
@media (max-width:820px){.footer-grid{grid-template-columns:1fr}}
.wordmark-footer{color:#fff;margin-bottom:12px}
.footer-domain{color:#fff;font-weight:600;margin-bottom:4px}
.footer-tag{font-family:var(--serif);font-style:italic;color:var(--on-dark)}
.footer-links{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.site-footer a{color:var(--on-dark)}
.footer-data{font-size:.85rem}

/* Evidence explorer: full text first; filtering is progressive enhancement. */
.gap-id{font-size:.75rem;color:var(--muted);overflow-wrap:anywhere}
.gap-id a{color:inherit}.gap-id code{font-family:ui-monospace,Consolas,monospace}
.explorer-cards{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.explorer-cards .kv{grid-template-columns:1fr;gap:3px}
.gap-card:target{outline:3px solid var(--carmine);outline-offset:4px}
.gap-filters{display:grid;grid-template-columns:2fr repeat(3,minmax(0,1fr));gap:16px;align-items:end;margin:28px 0}
.gap-filters label{font-size:.9rem;font-weight:600;min-width:0}
.gap-filters input,.gap-filters select{display:block;width:100%;min-width:0;margin-top:6px;padding:11px 8px;font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line-2);border-radius:4px}
.gap-filters button{justify-self:start}
.prerelease{background:transparent;color:var(--muted)}
.prerelease .wrap::before{display:none}
@media(max-width:860px){.gap-filters{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.explorer-cards,.gap-filters{grid-template-columns:1fr}}

/* P2 – provenance. Kind of evidence: a plain label with the solid evidence dot, not a warning. */
.card-label .kind{display:inline-flex;align-items:center;gap:8px;color:var(--evidence)}
.card-label .kind-note{letter-spacing:.04em;text-transform:none;font-weight:600;color:var(--muted)}
/* Source details / gap details: native disclosure, compact rows, readable without JavaScript. */
.prov{margin-top:12px;border-top:1px solid var(--line);padding-top:4px;font-size:.9rem}
.prov summary{cursor:pointer;padding:8px 0;font-weight:600;color:var(--ink-2);list-style-position:outside;margin-left:1.1em}
.prov summary:hover{color:var(--ink)}
.prov[open] summary{color:var(--ink)}
.prov dl{margin-bottom:6px}
.prov .kv{grid-template-columns:minmax(7em,34%) 1fr}
.explorer-cards .prov .kv{grid-template-columns:1fr;gap:3px}
.prov-h{font-weight:700;color:var(--ink);margin:6px 0 2px}
.prov-note{color:var(--muted);margin:0 0 4px}
code.mid,a.mid code,.prov code{font:500 .82rem/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted);background:var(--paper-2);padding:1px 5px;border-radius:3px;overflow-wrap:anywhere}
a.mid{color:var(--muted)}
.src-table{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.85rem}
@media (max-width:600px){.prov .kv{grid-template-columns:1fr;gap:3px}}
/* Gap cards: question, why it matters for the model, then state at a glance. */
.gap-why{color:var(--ink-2);font-size:.95rem}
.gap-why-l{font-weight:700;color:var(--ink)}
.gap-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:.88rem;color:var(--muted);margin-bottom:4px}
.gap-meta b{color:var(--ink-2);font-weight:600}
.status-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px 24px;margin:22px 0}
.status-legend div{display:flex;flex-direction:column;gap:6px}
.status-legend dt{margin:0}.status-legend dd{margin:0;font-size:.9rem;color:var(--ink-2)}
/* Evidence → Assumptions → Scenarios, light version for the evidence page: line style carries certainty. */
.layers{list-style:none;padding:0;margin:28px 0 8px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.layer{border-top:4px solid;padding-top:12px;display:flex;flex-direction:column;gap:4px;font-size:.95rem;color:var(--ink-2)}
.layer b{font:800 .85rem/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase}
.layer-evidence{border-color:var(--evidence)}.layer-evidence b{color:var(--evidence)}
.layer-assume{border-color:var(--assume);border-top-style:dashed}.layer-assume b{color:var(--assume)}
.layer-scenario{border-color:var(--scenario);border-top-style:dotted}.layer-scenario b{color:var(--scenario)}
@media (max-width:720px){.layers{grid-template-columns:1fr}}
.reasons{padding-left:1.2em;margin:0 0 18px}
.reasons li{margin-bottom:8px;font-family:var(--serif);font-size:1.15rem;color:var(--ink)}

/* P3: existing civic palette and line styles, with intentionally empty model interfaces. */
.forecast{border-left:3px solid var(--scenario);padding:12px 18px;margin:24px 0;max-width:52em;background:var(--paper-2)}
.forecast strong,.forecast-short,.story-not-forecast{color:var(--scenario);font-weight:700}
.forecast p{margin:8px 0 0;color:var(--ink-2)}
.path-label{font-weight:700;color:var(--evidence)}
.assumption-card{border-top:4px dashed var(--assume);max-width:52em}
.assumption-card .card-label{text-transform:none;letter-spacing:0;font-size:1rem;font-weight:400}
.review-path{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0;list-style-position:inside}
.review-path li{padding:16px;border:1px solid var(--line);background:var(--card);overflow-wrap:anywhere}
.domain-shell{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;list-style:none;padding:0;margin:28px 0}
.domain-shell li{padding:18px;border:2px dotted var(--scenario);display:flex;flex-direction:column;gap:8px}
.domain-shell span{font-size:.9rem;color:var(--muted)}
.conditional{display:grid;grid-template-columns:1fr 1fr;gap:24px;border-top:3px dotted var(--scenario);padding-top:22px}
.band-dark .layer{color:var(--on-dark-2)}.band-dark .layer-evidence{border-color:var(--evidence-l)}.band-dark .layer-evidence b{color:var(--evidence-l)}
.band-dark .layer-assume{border-color:var(--assume-l)}.band-dark .layer-assume b{color:var(--assume-l)}
.band-dark .layer-scenario{border-color:var(--scenario-l)}.band-dark .layer-scenario b{color:var(--scenario-l)}
.site-nav a,.lang-switch button{min-height:44px;display:inline-flex;align-items:center}
.prov summary{min-height:44px;padding:10px 0}
.site-nav ul{flex-wrap:wrap;gap:4px 18px}.header-row{flex-wrap:wrap}.site-nav{margin-left:0}
h1,h2,h3,p,a{overflow-wrap:break-word}
@media(max-width:1100px){.site-nav{order:3;width:100%}.lang-switch{margin-left:auto}.site-header{position:static}}
@media(max-width:820px){.site-nav{overflow:visible}.site-nav ul{flex-wrap:wrap;gap:0 18px}.site-nav a{white-space:normal}}
@media(max-width:768px){.domain-shell,.review-path{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.conditional,.domain-shell,.review-path{grid-template-columns:1fr}.triad-legend li{flex-wrap:wrap;gap:2px}.topics li{flex-wrap:wrap}.assumption-card .kv{grid-template-columns:1fr}}

/* P4: published model content (rendered only from a validated publication package). */
.pub-card{margin-bottom:20px;max-width:52em}
.pub-scenario{border-top:3px dotted var(--scenario)}
.pub-scenario .conditional{margin:12px 0}
.pub-scenario .conditional>section{min-width:0}
.pub-results{width:100%;table-layout:fixed;border-collapse:collapse;font-size:.92rem;overflow-wrap:anywhere}
.pub-results th:first-child{width:40%}
.pub-results caption{text-align:left;font-weight:600;padding:4px 0 8px;color:var(--ink-2)}
.pub-results th,.pub-results td{text-align:left;padding:6px 8px;border-top:1px solid var(--line);vertical-align:top}
.pub-results dl{font-weight:400}
.pub-results .kv{display:block}
.pub-results .kv dd{margin:0}
.pub-results .pub-extension{display:block}
@media(max-width:480px){.pub-results th,.pub-results td{padding:6px 4px}}
.pub-lims{margin:0;padding-left:1.1em}
.pub-extension{border-left:3px dashed var(--scenario);padding-left:8px}
.pub-fixture{padding:10px 14px;border:2px dashed var(--carmine);color:var(--carmine);font-weight:700}
.domain-outcomes{grid-template-columns:repeat(4,minmax(0,1fr))}
.domain-outcomes li{border-style:solid;border-width:1px}

/* P5: restrained reference-configuration charts and progressive disclosure. */
.demography { max-width: 850px; margin-inline: auto; }
.reference-framing { border-left: 4px solid #54736c; padding: .8rem 1rem; background: #eef2ed; }
.publication-logic { font-size: .8rem; letter-spacing: .03em; overflow-wrap: anywhere; }
.publication-headlines { border-block: 1px solid #c7c9bf; margin: 1.5rem 0; padding: .5rem 0; }
.demography figure { margin: 2rem 0; }
.demography figcaption { font-weight: 600; margin-bottom: 1rem; }
.population-chart svg { width: 100%; height: auto; color: #14212b; font: 17px system-ui; }
.population-chart .chart-grid { stroke-dasharray: 4 6; opacity: .45; }
/* Narrow screens scale the 700-unit chart to about half: double the label size so it stays legible (~13px). */
@media (max-width:600px) { .population-chart svg { font-size: 26px; } }
.demography table { width:100%; border-collapse:collapse; }
.demography th,.demography td { padding:.4rem; text-align:left; }
.demography code { overflow-wrap:anywhere; white-space:normal; }
.age-row { display:grid; grid-template-columns: 4rem 1fr 4rem; gap:.6rem; align-items:center; margin:.4rem 0; }
.age-track { background:#ecece4; height:1rem; }
.age-bar { display:block; height:100%; background:#54736c; }
.age-2035 { background:#87765b; }
.age-chart>div { margin-block:1.2rem; }
.publication-limitations li { margin-bottom:.8rem; }

/* P7A – multi-publication structure. Published domains are solid cards (evidence-backed); unpublished
   domains are a quiet dotted list with no link and no value. Cities and packages use the same card. */
.framing-pair{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin:0}
.framing-pair span{color:var(--ink-2);font-weight:600}
.domain-nav h2,.publication-index h2{margin-bottom:8px}
.domain-cards,.city-cards{list-style:none;padding:0;margin:24px 0;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}
.domain-card,.city-card{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--evidence);border-radius:var(--radius);padding:20px 22px;display:flex;flex-direction:column;gap:8px}
.domain-card h3,.city-card h3{font-size:1.3rem;margin:4px 0}
.domain-card h3 a,.city-card h3 a{color:var(--ink)}
.domain-card p,.city-card p{margin:0}
.domain-framing{font-weight:600;color:var(--ink-2)}
.domain-period{font:600 14px/1.4 var(--sans);color:var(--muted)}
.domain-links a,.city-card .btn{margin-top:auto}
.pill-published{color:var(--evidence);border-color:var(--evidence);text-transform:none;letter-spacing:.02em}
.domain-pending{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-wrap:wrap;gap:10px}
.domain-pending li{border:1.5px dotted var(--line-2);border-radius:var(--radius);padding:10px 14px;min-height:44px;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.city-domains{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-wrap:wrap;gap:8px 16px}
.city-domains li{display:flex;gap:8px;align-items:center}
.city-card .h-small{margin:12px 0 4px}
.package-owner{margin:32px 0 8px}
.package-view:first-child .package-owner{margin-top:0}
.publication-record{padding-top:40px;margin-top:40px;border-top:1px solid var(--line-2)}
.publication-record>.card-label{margin:0 auto 12px;max-width:850px}
.story{display:grid;gap:40px 56px;grid-template-columns:repeat(2,minmax(0,1fr))}
.story h2{font-size:clamp(1.6rem,3vw,2.1rem);margin-bottom:12px}
.story-layers{margin:0;display:grid;gap:14px}
.story-layers div{padding-left:14px;border-left:3px solid var(--evidence)}
.story-layers .story-assumptions{border-left-style:dashed;border-left-color:var(--assume)}
.story-layers .story-reference{border-left-style:dotted;border-left-color:var(--scenario)}
.story-layers dt{font-weight:700}
.story-layers dd{margin:2px 0 0;color:var(--ink-2)}
.story-levers{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:12px 0}
.story-levers li{border:1.5px dotted var(--scenario);border-radius:99px;padding:4px 12px;font-size:.95rem}
@media(max-width:860px){.story{grid-template-columns:1fr}}
/* Card links are comfortable touch targets (at least 24 CSS px, WCAG 2.5.8) without changing the type. */
.domain-card a,.city-card h3 a{display:inline-block;min-height:24px;padding:3px 0}

/* P7B – households and housing. Same restrained chart language as demography: one green series per
   panel, zero-based scales, its own unit each; small multiples rather than a combined or dual axis. */
.housing { max-width: 850px; margin-inline: auto; }
.domain-results + .domain-results { margin-top: 64px; padding-top: 48px; border-top: 1px solid var(--line-2); }
.housing section { margin: 2.5rem 0; }
.housing-panels { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); margin: 1rem 0; }
.housing-panel { margin: 0; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; }
.housing-panel figcaption { margin: 0; display: flex; flex-wrap: wrap; gap: 2px 8px; align-items: baseline; }
.panel-label { font-weight: 700; }
.panel-unit { color: var(--muted); font-size: .9rem; }
.panel-values { margin: 0; display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; font-variant-numeric: tabular-nums; }
.panel-values strong { font-size: 1.25rem; }
.housing-panel svg { width: 100%; height: auto; color: #14212b; font: 16px system-ui; }
.housing-panel .chart-grid { stroke-dasharray: 4 6; opacity: .45; }
.panel-def { margin: 0; font-size: .88rem; color: var(--ink-2); }
.housing-reading { border-left: 3px solid var(--line-2); padding-left: 12px; }
.unoccupied-note { border: 1px solid #b9a77f; border-left: 4px solid var(--assume); background: #f8f2e6; border-radius: var(--radius); padding: .8rem 1rem; margin: 1rem 0; }
.unoccupied-note p { margin: .3rem 0; }
.assumption-not-observation { font-weight: 600; }
.assumption-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.assumption-item { border-left: 3px dashed var(--assume); padding: 4px 0 4px 12px; margin: 12px 0; }
.assumption-item h4, .assumption-item h5, .assumption-item h3 { font-size: 1.05rem; margin: 2px 0 4px; }
.assumption-item p { margin: .25rem 0; }
.assumption-basis { color: var(--ink-2); font-size: .92rem; }
.basis-l { font-weight: 600; }
.params { margin: .4rem 0 0; font-size: .88rem; }
.accounting-note { background: var(--paper-2); padding: .7rem 1rem; border-radius: var(--radius); font-size: .95rem; }
.housing-table .table-scroll { overflow-x: auto; }
.housing-table table { width: 100%; border-collapse: collapse; font-size: .9rem; font-variant-numeric: tabular-nums; }
.housing-table th, .housing-table td { padding: .4rem; text-align: right; border-top: 1px solid var(--line); vertical-align: bottom; }
.housing-table th:first-child, .housing-table caption { text-align: left; }
.housing-table caption { padding-bottom: .5rem; color: var(--ink-2); }
.housing-evidence-item summary { overflow-wrap: anywhere; }
.housing code { overflow-wrap: anywhere; white-space: normal; }
.gap-list { list-style: none; padding: 0; }
.gap-list li { border-top: 1px solid var(--line); padding: .5rem 0; }
.gap-list p { margin: .2rem 0; }
.housing .publication-limitations li { margin-bottom: .6rem; }
.pill-partially_improved_not_closed { color: var(--assume); border-color: var(--assume); }
.params .kv { display: flex; flex-wrap: wrap; gap: 2px 8px; padding: 2px 0; }
.params dt, .params dd { margin: 0; }

/* Public beta: one reading path, published work first. */
.beta-hero .narrow { max-width: 850px; }
.beta-hero h1 { margin-bottom: 1.25rem; font-size: clamp(2.5rem,5vw,4rem); }
.beta-hero h2 { margin: .5rem 0; font-size: 2rem; }
.site-footer .h-small { color: var(--on-dark); }
.published-now ul { display: flex; flex-wrap: wrap; gap: .75rem 2rem; padding-left: 1.25rem; }
.beta-flow { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 3rem; }
.beta-flow li { position: relative; }
.beta-flow li + li::before { content: '→'; position: absolute; left: -2rem; top: .3rem; }
@media(max-width: 650px) { .beta-flow { grid-template-columns: 1fr; gap: 2.5rem; } .beta-flow li + li::before { content: '↓'; left: 0; top: -2rem; } }
/* Authorized aggregate scenario explorer. Native controls; no animated chart transitions. */
.scenario-experience{padding-block:0 4rem;min-width:0}
.scenario-experience section{margin-block:2.5rem}
.scenario-experience h2{max-width:34ch}
.scenario-framing{font-weight:700;border-left:4px solid currentColor;padding:1rem;background:#fff}
.scenario-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;margin-block:1.5rem}
.scenario-control{padding:1.5rem;border:1px solid #a8b2b8;border-radius:8px;background:#fff;min-width:0}
.scenario-control>label{font-weight:700;display:block;min-height:3em}
.scenario-control input[type=range]{width:100%;min-height:44px;accent-color:#73333c}
.scenario-experience select{max-width:100%;padding:.65rem;border:1px solid #65747e;border-radius:4px;background:#fff;color:#14212b;font:inherit}
.scenario-range-ends{display:flex;justify-content:space-between;gap:.5rem;font-size:.8rem;margin-block:.25rem 1rem}
.scenario-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.scenario-card{padding:1.25rem;border:1px solid #a8b2b8;border-top:4px solid #73333c;border-radius:5px;min-width:0;background:#fff}
.scenario-card h3{font-size:1.1rem;margin:0 0 1rem}
.scenario-card p{margin:.4rem 0}
.scenario-value{font-size:clamp(1.7rem,4vw,2.6rem);font-weight:750;line-height:1.2;font-variant-numeric:tabular-nums}
.scenario-chart{display:block;width:100%;height:auto;margin-block:1rem;color:#14212b}
.scenario-chart text{font-size:16px;fill:currentColor}
.scenario-line{stroke:#73333c;stroke-width:3;fill:none}
.reference-line{stroke:#243e50;stroke-width:2.5;stroke-dasharray:9 6;fill:none}
.scenario-point{fill:#73333c;stroke:#fff;stroke-width:1}
.chart-axis{stroke:#65747e;fill:none}
.scenario-legend{font-weight:650}
.scenario-table-scroll{max-width:100%;overflow-x:auto;margin-block:1rem}
.scenario-table-scroll table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.scenario-table-scroll td,.scenario-table-scroll th{padding:.65rem;text-align:right;border-bottom:1px solid #a8b2b8;white-space:nowrap}
.scenario-table-scroll th:first-child{text-align:left}
.scenario-history{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}
.scenario-history article{min-width:0;border-top:1px solid #a8b2b8;padding-top:1rem}
.scenario-history h3{font-size:1.15rem}
.scenario-experience code,.publication-record code{overflow-wrap:anywhere;word-break:break-word}
.scenario-experience dd{margin-left:0;margin-bottom:1rem;min-width:0}
#scenario-invalid{padding:1rem;border:2px solid #73333c;background:#fff}
.scenario-experience :focus-visible{outline:3px solid #73333c;outline-offset:4px}
@media(max-width:700px){.scenario-controls,.scenario-history{grid-template-columns:1fr}.scenario-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.scenario-card:first-child{grid-column:1/-1}.scenario-control{padding:1rem}.scenario-chart text{font-size:26px}.scenario-experience .unoccupied-note{font-size:.95rem}}
@media(max-width:380px){.scenario-cards{grid-template-columns:1fr}.scenario-range-ends{font-size:.75rem}}
