/* Hallmark · genre: editorial · macrostructure: Map / Diagram (system section) + vertical timeline · theme: custom (civic almanac in the flag's two colors)
 * tone: editorial reference · anchor hue: 264 (flag blue) · modes: blue paper / white ink (default), white paper / blue ink
 * enrichment: none (the system map is the image)
 * nav: N6 masthead · footer: Ft4 colophon · fonts: Suez One + IBM Plex Sans Hebrew · tokens: tokens.css
 */

*,*::before,*::after{box-sizing:border-box}
html,body{overflow-x:clip}
html{scroll-behavior:smooth;scroll-padding-top:4.5rem;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
body{margin:0;font-synthesis:none;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);line-height:1.7;text-rendering:optimizeLegibility}
h1,h2,h3,h4,p,dl,dd,ol,figure,blockquote{margin:0}
h1,h2,h3{font-family:var(--font-display);font-weight:var(--weight-display);line-height:1.15;overflow-wrap:anywhere;min-width:0;text-wrap:balance}
button,select{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--color-accent);text-underline-offset:0.2em;text-decoration-thickness:1px}
a:hover{color:var(--color-accent-hover);text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}
bdi{unicode-bidi:isolate}
.skip{position:absolute;inset-inline-start:var(--space-sm);top:-4rem;background:var(--color-ink);color:var(--color-paper);padding:var(--space-2xs) var(--space-sm);z-index:10}
.skip:focus{top:var(--space-sm)}
.meta{font-size:var(--text-xs);color:var(--color-ink-3)}
.kicker{font-size:var(--text-sm);font-weight:700;color:var(--color-accent)}
.noscript{max-width:var(--page-max);margin:var(--space-md) auto 0;padding:var(--space-sm) var(--page-gutter);border:var(--rule-hair) solid var(--color-ink)}
.fine{font-size:var(--text-sm);color:var(--color-ink-3);max-width:var(--measure);margin-top:var(--space-md)}

/* ── Masthead ───────────────────────────── */
.mast{text-align:center;padding:var(--space-sm) var(--page-gutter) 0;max-width:var(--page-max);margin:0 auto}
.mast-line{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);font-size:var(--text-xs);color:var(--color-ink-3);border-bottom:var(--rule-hair) solid var(--color-rule);padding-bottom:var(--space-2xs)}
.theme-switch{display:inline-flex;border:var(--rule-hair) solid var(--color-ink);border-radius:var(--radius-sm);overflow:hidden}
.theme-switch button{display:inline-flex;align-items:center;gap:var(--space-2xs);white-space:nowrap;background:transparent;border:0;padding:var(--space-3xs) var(--space-xs);font-size:var(--text-xs);font-weight:700;color:var(--color-ink);transition:background-color var(--dur-short) var(--ease-out)}
.theme-switch button+button{border-inline-start:var(--rule-hair) solid var(--color-ink)}
.theme-switch button[aria-pressed="true"]{background:var(--color-ink);color:var(--color-paper)}
.swatch{width:0.8rem;height:0.8rem;border-radius:50%;border:var(--rule-hair) solid currentColor}
.swatch-light{background:oklch(98% 0.004 85)}
.swatch-dark{background:oklch(18% 0.01 275)}
.mast-controls{display:flex;align-items:center;gap:var(--space-xs)}
/* ── Language switch: four editions on one pill ──
   Same pill as the theme switch (1.6rem high, paper-3 track, hairline border).
   An ink thumb slides under the current edition, like the theme switch's ink knob.
   Hover changes text color only (no hover boxes, per PR #4). */
.lang-pick{--n:4;--i:0;position:relative;display:inline-grid;grid-template-columns:repeat(var(--n),2.3rem);height:1.6rem;padding:2px;border-radius:999px;background:var(--color-paper-3);border:var(--rule-hair) solid var(--color-rule);font-size:var(--text-xs);font-weight:700;line-height:1;transition:border-color var(--dur-med) var(--ease-out)}
.lang-pick:hover{border-color:var(--color-ink)}
.lp-thumb{position:absolute;top:2px;bottom:2px;inset-inline-start:calc(2px + var(--i) * 2.3rem);width:2.3rem;border-radius:999px;background:var(--color-ink);box-shadow:0 1px 3px oklch(0% 0 0 / 0.35);transition:inset-inline-start 320ms var(--ease-out)}
.lang-pick a{position:relative;display:grid;place-items:center;color:var(--color-ink-3);text-decoration:none;border-radius:999px;transition:color var(--dur-med) var(--ease-out)}
.lang-pick a:hover{color:var(--color-ink)}
.lang-pick a[aria-current="page"]{color:var(--color-paper)}
.lang-pick.is-moving a[aria-current="page"]{color:var(--color-ink-3)}
.lang-pick a.is-target{color:var(--color-paper)}
.lang-pick a:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}
.lang-pick a:active{transform:translateY(1px)}
.lang-pick a[lang="ar"]{font-family:'IBM Plex Sans Arabic',var(--font-body);font-size:0.8125rem}
@media (prefers-reduced-motion:reduce){.lp-thumb{transition:none}}
.mast-name{display:inline-flex;align-items:baseline;gap:var(--space-xs);margin-top:var(--space-md);font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-wordmark);line-height:1;color:var(--color-ink);text-decoration:none}
.mast-name:hover{color:var(--color-ink)}
.mast-name small{font-family:var(--font-body);font-weight:600;font-size:var(--text-sm);color:var(--color-accent);border-inline-start:var(--rule-hair) solid var(--color-rule);padding-inline-start:var(--space-xs)}
.mast-nav{display:flex;justify-content:center;gap:var(--space-lg);margin-top:var(--space-md);padding-block:var(--space-xs);overflow-x:auto;scrollbar-width:none;border-block:var(--rule-strong) solid var(--color-accent);box-shadow:0 5px 0 -3px var(--color-accent)}
.mast-nav::-webkit-scrollbar{display:none}
.mast-nav a{white-space:nowrap;color:var(--color-ink);font-weight:600;font-size:var(--text-sm);text-decoration:none}
.mast-nav a:hover{color:var(--color-accent);text-decoration:underline}

main{max-width:var(--page-max);margin:0 auto;padding:0 var(--page-gutter)}

/* ── Intro ──────────────────────────────── */
.intro{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:var(--space-2xl);align-items:end;padding-block:var(--space-2xl) var(--space-3xl)}
.intro h1{font-size:var(--text-display);line-height:1.04;letter-spacing:-0.01em}
.lede{font-size:var(--text-lg);color:var(--color-ink-2);max-width:52ch;margin-top:var(--space-md)}
.intro-facts{display:flex;flex-wrap:wrap;gap:var(--space-2xs) var(--space-md);margin-top:var(--space-md);font-size:var(--text-sm);color:var(--color-ink-3)}
.intro-facts span+span{border-inline-start:var(--rule-hair) solid var(--color-rule);padding-inline-start:var(--space-md)}
.intro-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md);margin-top:var(--space-lg)}
.btn{display:inline-flex;align-items:center;gap:var(--space-2xs);white-space:nowrap;background:var(--color-ink);color:var(--color-paper);border:0;border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-md);font-weight:700;font-size:var(--text-md);text-decoration:none;transition:background-color var(--dur-short) var(--ease-out)}
.btn:hover{background:var(--color-accent);color:var(--color-accent-ink)}
.btn:active{transform:translateY(1px)}
.link-quiet{white-space:nowrap;color:var(--color-ink);font-weight:600;text-decoration:none;border-bottom:var(--rule-hair) solid var(--color-ink)}
.link-quiet:hover{color:var(--color-accent);border-color:var(--color-accent)}

.stages{border-top:var(--rule-strong) solid var(--color-ink);padding-top:var(--space-sm)}
.stages h2{font-size:var(--text-md);font-family:var(--font-body);font-weight:700}
.stages ol{list-style:none;padding:0;margin:var(--space-sm) 0;counter-reset:stage;position:relative}
.stages ol::before{content:"";position:absolute;inset-block:0.9rem 0.9rem;inset-inline-start:0.8rem;border-inline-start:var(--rule-hair) solid var(--color-rule)}
.stages li{counter-increment:stage;position:relative;display:grid;grid-template-columns:1.6rem minmax(0,1fr);column-gap:var(--space-sm);padding-block:var(--space-2xs)}
.stages li::before{content:counter(stage);grid-row:span 2;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--color-paper);border:var(--rule-hair) solid var(--color-ink);display:grid;place-items:center;font-size:var(--text-xs);font-weight:700;position:relative}
.stages li b{font-weight:700}
.stages li span{font-size:var(--text-sm);color:var(--color-ink-3);line-height:1.4}
.stages>p{font-size:var(--text-sm);color:var(--color-ink-2)}

/* ── Sections ───────────────────────────── */
.section{border-top:var(--rule-strong) solid var(--color-ink);padding-block:var(--space-xl) var(--space-3xl)}
.section-band{position:relative;border-top-color:transparent;padding-block:var(--space-2xl);background:var(--color-paper-2);box-shadow:0 0 0 100vmax var(--color-paper-2);clip-path:inset(0 -100vmax)}
.section-tight{padding-block:var(--space-lg) var(--space-2xl)}
.section-head{margin-bottom:var(--space-xl);max-width:var(--measure)}
.section-head h2{font-size:var(--text-3xl)}
.section-head p{margin-top:var(--space-xs);font-size:var(--text-lg);color:var(--color-ink-2)}
.note{margin-top:var(--space-xl);border-inline-start:3px solid var(--color-ink);padding-inline-start:var(--space-md);max-width:var(--measure)}
.note h3{font-family:var(--font-body);font-size:var(--text-md);font-weight:700}
.note p{color:var(--color-ink-2);margin-block:var(--space-3xs) var(--space-2xs)}
.note-row{max-width:none;display:flex;justify-content:space-between;align-items:end;gap:var(--space-lg)}
.note-row>div{max-width:var(--measure)}
.note-row>a{white-space:nowrap;font-weight:600}
.theme-switch button:active,.event-head:active,.reform-tabs button:active,.quiz-options button:active:not(:disabled),.mast-nav a:active{transform:translateY(1px)}
.is-in{animation:ink-in var(--dur-med) var(--ease-out)}
@keyframes ink-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* ── System map ─────────────────────────── */
.system-layout{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--space-2xl);align-items:start}
.map-nodes{display:grid;grid-template-columns:minmax(0,1fr) minmax(4.5rem,0.6fr) minmax(0,1fr);grid-template-areas:"pub pub pub" ". top ." "kn kn kn" "eg . ec" "gov h court"}
.map{padding:var(--space-lg);background-color:var(--color-paper-2);background-image:radial-gradient(var(--color-rule) 1px,transparent 1.2px);background-size:18px 18px;border:var(--rule-hair) solid var(--color-rule)}
.node{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3xs);text-align:center;padding:var(--space-sm) var(--space-xs);background:var(--color-paper);border:var(--rule-hair) solid var(--color-ink);border-radius:var(--radius-sm);min-width:0}
.node strong{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-display);line-height:1.1;white-space:nowrap}
.node small{font-size:var(--text-xs);color:var(--color-ink-3);line-height:1.35}
.node-public{grid-area:pub;justify-self:center;width:min(100%,15rem);border-style:dashed;background:transparent}
.node-knesset{grid-area:kn}
.node-gov{grid-area:gov}
.node-court{grid-area:court}
.node-branch{transition:background-color var(--dur-short) var(--ease-out),color var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out)}
.node-branch:hover{border-color:var(--color-accent)}
.node-branch:active{transform:translateY(1px)}
.node-branch[aria-checked="true"]{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink);box-shadow:4px 4px 0 var(--color-ink)}
.node-branch[aria-checked="true"] small{color:var(--color-accent-ink)}
.edge{position:relative;display:grid;place-items:center;min-height:4.5rem}
.edge::before{content:"";position:absolute;background:var(--color-ink)}
.edge span{position:relative;background:var(--color-paper-2);padding:var(--space-3xs) var(--space-2xs);font-size:var(--text-xs);font-weight:600;color:var(--color-ink-2);text-align:center;line-height:1.3;max-width:100%}
.edge-v::before{inset-block:0;inset-inline-start:50%;width:1px}
.edge-v::after{content:"";position:absolute;bottom:-1px;inset-inline-start:calc(50% - 5px);border:5px solid transparent;border-top-color:var(--color-ink);border-bottom:0}
.edge-top{grid-area:top}
.edge-both .head-up{position:absolute;top:-1px;inset-inline-start:calc(50% - 5px);border:5px solid transparent;border-bottom-color:var(--color-ink);border-top:0}
.edge-gov{grid-area:eg}
.edge-court{grid-area:ec}
.edge-h{grid-area:h;min-height:0;align-content:center}
.edge-h::before{inset-inline:0;top:50%;height:1px}
.edge-h span{width:100%;transform:translateY(-1.6em);background:transparent;padding:0 var(--space-3xs)}
.edge-h::after{content:"";position:absolute;top:calc(50% - 3px);inset-inline:-3px;height:7px;background:radial-gradient(circle at 3.5px 3.5px,var(--color-ink) 3px,transparent 3.5px) 0 0/calc(100% - 7px) 7px repeat-x}
.map figcaption{margin-top:var(--space-lg);text-align:center;font-size:var(--text-md);font-weight:600;color:var(--color-ink-2)}

.branch-panel h3,.reform-panel h3{font-size:var(--text-2xl);margin-top:var(--space-3xs)}
.panel-lead{font-size:var(--text-lg);color:var(--color-ink-2);margin-top:var(--space-sm);max-width:var(--measure)}
.facts{margin-top:var(--space-lg)}
.facts>div{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:var(--space-md);border-top:var(--rule-hair) solid var(--color-rule);padding-block:var(--space-sm)}
.facts dt{font-weight:700}
.facts dd{color:var(--color-ink-2);max-width:var(--measure)}
.facts .is-analysis dt{justify-self:start;align-self:start;background:var(--color-accent-wash);padding-inline:var(--space-2xs)}

/* ── Timeline ───────────────────────────── */
.timeline-tools{display:flex;margin-bottom:var(--space-md);padding-inline-start:calc(7.5rem + 2.5rem)}
.link-button{white-space:nowrap;background:transparent;border:0;padding:0;font-size:var(--text-sm);font-weight:700;color:var(--color-accent);text-decoration:underline;text-underline-offset:0.2em}
.link-button:hover{color:var(--color-accent-hover)}
.timeline{--tl-year:7.5rem;--tl-dot:2.5rem;position:relative;max-width:60rem}
.timeline::before{content:"";position:absolute;inset-block:0.6rem 0;inset-inline-start:calc(var(--tl-year) + var(--tl-dot) / 2 - 1px);width:2px;background:var(--color-rule)}
.era+.era{margin-top:var(--space-xl)}
.era-name{position:relative;padding-inline-start:calc(var(--tl-year) + var(--tl-dot));font-size:var(--text-xl);margin-bottom:var(--space-xs)}
.era-name::before{content:"";position:absolute;top:0.45em;inset-inline-start:calc(var(--tl-year) + var(--tl-dot) / 2 - 7px);width:14px;height:14px;background:var(--color-ink);transform:rotate(45deg)}
.era-span{font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;color:var(--color-ink-3);margin-inline-start:var(--space-2xs)}
.events{list-style:none;padding:0;margin:0}
.event-head{display:grid;grid-template-columns:var(--tl-year) var(--tl-dot) minmax(0,max-content) auto;justify-content:start;align-items:center;width:100%;text-align:start;background:transparent;border:0;padding:var(--space-sm) 0;color:var(--color-ink)}
.event-year{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-xl);line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--color-ink-2)}
.event-dot{justify-self:center;width:14px;height:14px;border-radius:50%;background:var(--color-paper);border:2px solid var(--color-ink);position:relative;z-index:1;transition:background-color var(--dur-short) var(--ease-out),transform var(--dur-short) var(--ease-out)}
.event-text{display:flex;flex-direction:column;min-width:0}
.event-title{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-lg);line-height:1.3}
.event-kind{font-size:var(--text-xs);color:var(--color-ink-3)}
.event-toggle{width:1.75rem;height:1.75rem;margin-inline-start:var(--space-sm);border:var(--rule-hair) solid var(--color-rule);border-radius:50%;position:relative}
.event-toggle::before,.event-toggle::after{content:"";position:absolute;top:50%;left:50%;width:10px;height:2px;margin:-1px 0 0 -5px;background:var(--color-ink);transition:transform var(--dur-short) var(--ease-out)}
.event-toggle::after{transform:rotate(90deg)}
.event-head:hover .event-title{color:var(--color-accent)}
.event-head:hover .event-toggle{border-color:var(--color-ink)}
.event-head[aria-expanded="true"] .event-year{color:var(--color-accent)}
.event-head[aria-expanded="true"] .event-dot{background:var(--color-accent);border-color:var(--color-accent);transform:scale(1.3)}
.event-head[aria-expanded="true"] .event-toggle::after{transform:rotate(0deg)}
.event-body{padding-inline-start:calc(var(--tl-year) + var(--tl-dot));padding-bottom:var(--space-lg)}
.event-body[hidden]{display:none}
.event.is-open .event-body{animation:ink-in var(--dur-med) var(--ease-out)}
.event-lead{font-size:var(--text-md);color:var(--color-ink-2);max-width:var(--measure)}
.event-body .before-after{margin-top:var(--space-md)}
.before-after{margin-top:var(--space-lg);border-top:var(--rule-hair) solid var(--color-rule)}
.before-after>div{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:var(--space-md);padding-block:var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule)}
.before-after b{font-size:var(--text-sm)}
.before-after p{color:var(--color-ink-2);max-width:var(--measure)}
.before-after>div:last-child b{color:var(--color-accent)}
.source-line{margin-top:var(--space-md);font-size:var(--text-sm)}

/* ── Comparison ─────────────────────────── */
.compare-pick{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);font-weight:600;margin-bottom:var(--space-lg)}
.compare-pick select{min-width:0;max-width:100%;background:var(--color-paper);border:var(--rule-hair) solid var(--color-ink);border-radius:var(--radius-sm);padding:var(--space-2xs) var(--space-sm);font-weight:600}
.compare{border-top:var(--rule-strong) solid var(--color-ink)}
.compare-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) minmax(0,1.6fr);gap:var(--space-lg);padding-block:var(--space-md);border-bottom:var(--rule-hair) solid var(--color-rule)}
.compare-head{font-weight:700;font-size:var(--text-sm);padding-block:var(--space-xs);border-bottom-color:var(--color-ink)}
.compare-head>div:last-child{color:var(--color-accent)}
.compare [role="rowheader"]{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-lg);line-height:1.3}
.compare [role="cell"]{color:var(--color-ink-2)}

/* ── Reform ─────────────────────────────── */
.reform-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:var(--space-sm) var(--space-lg);border-bottom:var(--rule-hair) solid var(--color-ink);margin-bottom:var(--space-xl)}
.reform-tabs{display:flex;gap:var(--space-lg);overflow-x:auto;scrollbar-width:none}
.reform-tabs button{white-space:nowrap;background:transparent;border:0;border-bottom:3px solid transparent;padding:var(--space-xs) 0;margin-bottom:-1px;font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-display);color:var(--color-ink-3)}
.reform-tabs button:hover{color:var(--color-ink)}
.reform-tabs button[aria-selected="true"]{color:var(--color-ink);border-bottom-color:var(--color-accent)}
.reform-ask{font-size:var(--text-sm);color:var(--color-ink-2);padding-bottom:var(--space-xs)}
.status{display:inline-block;font-size:var(--text-sm);font-weight:700;border:var(--rule-hair) solid var(--color-ink);padding:var(--space-3xs) var(--space-xs)}
.arguments{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:var(--space-xl);border-top:var(--rule-hair) solid var(--color-rule)}
.arguments article{padding-block:var(--space-md);padding-inline-end:var(--space-lg)}
.arguments article+article{border-inline-start:var(--rule-hair) solid var(--color-rule);padding-inline:var(--space-lg) 0}
.arguments h4{font-size:var(--text-md);font-weight:700}
.arguments p{color:var(--color-ink-2);margin-top:var(--space-2xs)}
.tradeoff{margin-top:var(--space-xl);border-inline-start:3px solid var(--color-accent);padding:var(--space-sm) var(--space-lg);background:var(--color-accent-wash)}
.tradeoff p:last-child{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-display);line-height:1.45;margin-top:var(--space-2xs);max-width:52ch}

/* ── Incentives ─────────────────────────── */
.pressures{border-top:var(--rule-strong) solid var(--color-ink)}
.pressures article{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr) minmax(0,1.3fr);gap:var(--space-lg);padding-block:var(--space-lg);border-bottom:var(--rule-hair) solid var(--color-rule)}
.pressure-name span{font-size:var(--text-sm);font-weight:700;color:var(--color-accent)}
.pressure-name h3{font-size:var(--text-xl);margin-top:var(--space-3xs)}
.pressures article>p{color:var(--color-ink-2)}
.check{font-size:var(--text-sm);color:var(--color-ink-2);background:var(--color-paper-2);padding:var(--space-sm)}
.check b{display:block;color:var(--color-ink);margin-bottom:var(--space-3xs)}

/* ── Quiz ───────────────────────────────── */
.quiz-panel{max-width:46rem;background:var(--color-paper-2);border:var(--rule-hair) solid var(--color-ink);padding:var(--space-xl)}
.quiz-panel h3{font-size:var(--text-xl);margin-top:var(--space-2xs);outline:0}
.quiz-progress{display:flex;gap:var(--space-3xs)}
.quiz-progress i{flex:1;height:4px;background:var(--color-rule)}
.quiz-progress i.done{background:var(--color-ink)}
.quiz-progress i.now{background:var(--color-accent)}
.quiz-panel>.meta{margin-top:var(--space-sm)}
.quiz-options{display:grid;gap:var(--space-xs);margin-top:var(--space-lg)}
.quiz-options button{display:flex;align-items:center;gap:var(--space-sm);text-align:start;background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-sm);padding:var(--space-sm);font-weight:600;transition:border-color var(--dur-short) var(--ease-out),background-color var(--dur-short) var(--ease-out)}
.quiz-options button:hover:not(:disabled){border-color:var(--color-ink)}
.quiz-options button:disabled{cursor:default}
.opt-mark{flex:none;display:grid;place-items:center;width:1.9rem;height:1.9rem;border:var(--rule-hair) solid var(--color-ink);border-radius:50%;font-family:var(--font-display);font-weight:var(--weight-display)}
.quiz-options .is-right{border-color:var(--color-accent);background:var(--color-accent-wash)}
.quiz-options .is-right .opt-mark{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink)}
.quiz-options .is-wrong{border-color:var(--color-wrong);background:var(--color-wrong-wash)}
.quiz-options .is-wrong .opt-mark{border-color:var(--color-wrong);color:var(--color-wrong)}
.quiz-feedback{margin-block:var(--space-md);color:var(--color-ink-2)}
.quiz-feedback strong{color:var(--color-ink)}

/* ── Sources ────────────────────────────── */
.sources{list-style:none;padding:0;counter-reset:src;border-top:var(--rule-strong) solid var(--color-ink)}
.sources li{counter-increment:src}
.sources a{display:grid;grid-template-columns:2.5rem minmax(0,1fr) auto;grid-template-areas:"num title type" "num pub type";column-gap:var(--space-md);padding-block:var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule);color:var(--color-ink);text-decoration:none;transition:background-color var(--dur-short) var(--ease-out)}
.sources a::before{content:counter(src,decimal-leading-zero);grid-area:num;font-family:var(--font-display);font-weight:var(--weight-display);color:var(--color-ink-3);font-variant-numeric:tabular-nums}
.sources a:hover .src-title{color:var(--color-accent);text-decoration:underline}
.src-title{grid-area:title;font-weight:700}
.src-title::after{content:" ↖";color:var(--color-accent)}
.src-pub{grid-area:pub;font-size:var(--text-sm);color:var(--color-ink-3)}
.src-type{grid-area:type;align-self:center;white-space:nowrap;font-size:var(--text-xs);font-weight:600;border:var(--rule-hair) solid var(--color-rule);padding:var(--space-3xs) var(--space-2xs)}
.method{margin-top:var(--space-xl);max-width:var(--measure)}
.method h3{font-family:var(--font-body);font-size:var(--text-md);font-weight:700}
.method p{font-size:var(--text-sm);color:var(--color-ink-2);margin-top:var(--space-2xs)}
.method details{margin-top:var(--space-md);border-top:var(--rule-hair) solid var(--color-rule);padding-top:var(--space-sm)}
.method summary{font-weight:700;cursor:pointer}

/* ── Colophon ───────────────────────────── */
.colophon{max-width:var(--page-max);margin:0 auto;padding:var(--space-lg) var(--page-gutter) var(--space-xl);display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-lg);align-items:baseline;border-top:var(--rule-strong) solid var(--color-accent);box-shadow:inset 0 3px 0 var(--color-paper),inset 0 5px 0 var(--color-accent)}
.colophon-name{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-xl);color:var(--color-ink);text-decoration:none;white-space:nowrap}
.colophon p{font-size:var(--text-sm);color:var(--color-ink-3);max-width:70ch}
.colophon>a:last-child{white-space:nowrap;font-size:var(--text-sm);font-weight:600}

/* ── Chapter bar ─────────────────────────── */
.chapters{position:fixed;inset-inline:0;top:0;z-index:20;background:var(--color-paper);border-bottom:var(--rule-hair) solid var(--color-rule);transform:translateY(-110%);transition:transform var(--dur-med) var(--ease-out)}
.chapters.is-shown{transform:none}
.chapters ol{list-style:none;margin:0 auto;padding:0 var(--page-gutter);max-width:var(--page-max);display:flex;gap:var(--space-lg);overflow-x:auto;scrollbar-width:none}
.chapters ol::-webkit-scrollbar{display:none}
.chapters a{display:block;white-space:nowrap;padding-block:var(--space-xs);font-size:var(--text-sm);font-weight:600;color:var(--color-ink-3);text-decoration:none;border-bottom:3px solid transparent;transition:color var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out)}
.chapters a:hover{color:var(--color-ink)}
.chapters a.is-current{color:var(--color-ink);border-bottom-color:var(--color-accent)}
.chapters-progress{height:3px;background:var(--color-paper-2)}
.chapters-progress span{display:block;height:100%;background:var(--color-accent);transform:scaleX(0);transform-origin:right}

/* ── Guided start ────────────────────────── */
.route{list-style:none;padding:0;margin:var(--space-lg) 0 0;display:grid;gap:var(--space-2xs);max-width:34rem;counter-reset:route}
.route a{display:grid;grid-template-columns:auto 3rem minmax(0,1fr) auto;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-sm);color:var(--color-ink);text-decoration:none;counter-increment:route;transition:border-color var(--dur-short) var(--ease-out),background-color var(--dur-short) var(--ease-out)}
.route a::before{content:counter(route);font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-accent);min-width:1ch}
.route a::after{content:"←";font-size:var(--text-lg);color:var(--color-ink-3);transition:transform var(--dur-short) var(--ease-out)}
.route a:hover{border-color:var(--color-ink)}
.route a:hover::after{transform:translateX(-4px);color:var(--color-ink)}
.route a:active{transform:translateY(1px)}
.route-icon svg{width:2.25rem;height:2.25rem;fill:none;stroke:var(--color-ink);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.route-text{display:flex;flex-direction:column;min-width:0}
.route-text b{font-size:var(--text-md)}
.route-text small{font-size:var(--text-sm);color:var(--color-ink-3)}

/* ── Numbers ─────────────────────────────── */
.numbers{border-top:var(--rule-strong) solid var(--color-ink);padding-block:var(--space-xl) var(--space-2xl)}
.numbers h2{font-size:var(--text-2xl);margin-bottom:var(--space-lg)}
.stats{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-lg)}
.stat{border-top:3px solid var(--color-accent);padding-top:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-2xs)}
.stat-figure{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-3xl);line-height:1;font-variant-numeric:tabular-nums}
.stat-label{font-weight:700}
.stat-note{font-size:var(--text-sm);color:var(--color-ink-3)}
.viz-dots{display:grid;gap:3px;margin-block:var(--space-2xs)}
.viz-dots i{display:block;aspect-ratio:1;border-radius:50%;background:var(--color-ink)}
.viz-120{grid-template-columns:repeat(20,minmax(0,1fr));max-width:16rem}
.viz-seats{grid-template-columns:repeat(15,minmax(0,1fr));max-width:16rem}
.viz-seats i:not(.on){background:transparent;box-shadow:inset 0 0 0 1.5px var(--color-ink-3)}
.viz-bar{position:relative;height:1.25rem;border:var(--rule-hair) solid var(--color-ink);margin-block:var(--space-2xs);max-width:16rem}
.viz-bar span{position:absolute;inset-block:0;inset-inline-start:0;width:var(--w);background:var(--color-highlight);transform-origin:right}

/* ── Event infographics ──────────────────── */
.event-viz{margin-top:var(--space-md);padding:var(--space-md);border:var(--rule-hair) solid var(--color-rule);background:var(--color-paper-2);max-width:var(--measure)}
.event-viz figcaption{font-weight:700;font-size:var(--text-sm);margin-bottom:var(--space-sm)}
.viz-seats-row{display:flex;flex-wrap:wrap;gap:6px}
.viz-seats-row i,.viz-legend i{display:inline-block;width:1.25rem;height:1.25rem;border-radius:50%;background:transparent;box-shadow:inset 0 0 0 2px var(--color-ink-3)}
.viz-seats-row i.on,.g-judge{background:var(--color-ink)!important;box-shadow:none!important}
.g-min{box-shadow:inset 0 0 0 5px var(--color-ink)!important}
.g-mk{background:linear-gradient(90deg,var(--color-ink) 50%,transparent 50%)!important;box-shadow:inset 0 0 0 2px var(--color-ink)!important}
.g-bar{background:repeating-linear-gradient(45deg,var(--color-ink) 0 2px,transparent 2px 5px)!important;box-shadow:inset 0 0 0 2px var(--color-ink)!important}
.g-pub{background:var(--color-highlight)!important;box-shadow:none!important}
.viz-legend{list-style:none;padding:0;margin:var(--space-sm) 0 0;display:flex;flex-wrap:wrap;gap:var(--space-2xs) var(--space-md);font-size:var(--text-xs);color:var(--color-ink-2)}
.viz-legend li{display:inline-flex;align-items:center;gap:var(--space-2xs)}
.viz-legend i{width:0.9rem;height:0.9rem}
.viz-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md)}
.viz-compare b{display:block;font-size:var(--text-xs);margin-bottom:var(--space-2xs)}
.viz-note{font-size:var(--text-xs);color:var(--color-ink-3);margin-top:var(--space-sm)}
.ballots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md)}
.ballots>div{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-2xs)}
.ballots b,.ballots small{flex-basis:100%;font-size:var(--text-xs)}
.ballots small{color:var(--color-ink-3)}
.ballot{width:2.25rem;height:3rem;border:2px solid var(--color-ink);background:var(--color-paper);position:relative}
.ballot::after{content:"";position:absolute;inset:0.6rem 0.45rem auto;height:2px;background:var(--color-ink);box-shadow:0 0.4rem 0 var(--color-ink)}
.ballot.is-pm{background:var(--color-highlight)}
.steps{display:flex;align-items:flex-end;gap:var(--space-sm)}
.step{flex:1;display:flex;flex-direction:column;justify-content:flex-end;text-align:center}
.step span{display:block;height:calc(var(--h) * 7rem);background:var(--color-ink);transform-origin:bottom}
.step:last-child span{background:var(--color-highlight)}
.step b{font-size:var(--text-xs);margin-top:var(--space-3xs);white-space:nowrap}

/* ── Timeline progress ───────────────────── */
.timeline::after{content:"";position:absolute;inset-block:0.6rem 0;inset-inline-start:calc(var(--tl-year) + var(--tl-dot) / 2 - 1px);width:2px;background:var(--color-accent);transform:scaleY(var(--tl-progress,0));transform-origin:top}
.event.is-passed .event-dot{border-color:var(--color-accent)}

/* ── Motion (only when the visitor allows it) ─ */
html.motion [data-reveal]{opacity:0;transition:opacity 700ms var(--ease-out),transform 700ms var(--ease-out);transition-delay:calc(var(--stagger,0) * 80ms)}
html.motion [data-reveal="up"]{transform:translateY(32px)}
html.motion [data-reveal="side"]{transform:translateX(-36px)}
html.motion [data-reveal="scale"]{transform:scale(0.94)}
html.motion [data-reveal].is-visible{opacity:1;transform:none}
html.motion .map[data-reveal]{opacity:1;transform:none}
html.motion .map .node,html.motion .map .edge span,html.motion .map figcaption{opacity:0;transform:translateY(12px);transition:opacity 500ms var(--ease-out),transform 500ms var(--ease-out),background-color var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out),color var(--dur-short) var(--ease-out)}
html.motion .map .edge::before{transform:scaleY(0);transform-origin:top;transition:transform 450ms var(--ease-out)}
html.motion .map .edge-h::before{transform:scaleX(0);transform-origin:right}
html.motion .map .edge::after,html.motion .map .edge .head-up{opacity:0;transition:opacity 300ms var(--ease-out)}
html.motion .map.is-drawn .node,html.motion .map.is-drawn .edge span,html.motion .map.is-drawn figcaption{opacity:1;transform:none}
html.motion .map.is-drawn .edge::before{transform:none}
html.motion .map.is-drawn .edge::after,html.motion .map.is-drawn .edge .head-up{opacity:1}
html.motion .map .node-public{transition-delay:0ms}
html.motion .map .edge-top,html.motion .map .edge-top::before,html.motion .map .edge-top span,html.motion .map .edge-top::after{transition-delay:250ms}
html.motion .map .node-knesset{transition-delay:450ms}
html.motion .map .edge-gov::before,html.motion .map .edge-gov span,html.motion .map .edge-gov::after,html.motion .map .edge-court::before,html.motion .map .edge-court span,html.motion .map .edge-court::after,html.motion .map .edge-court .head-up{transition-delay:700ms}
html.motion .map .node-gov,html.motion .map .node-court{transition-delay:900ms}
html.motion .map .edge-h::before,html.motion .map .edge-h span{transition-delay:1150ms}
html.motion .map figcaption{transition-delay:1350ms}
html.motion .map.is-drawn .node-branch:hover{transition-delay:0ms}
html.motion .intro h1{transform:translateY(calc(var(--hero-p,0) * -60px));opacity:calc(1 - var(--hero-p,0) * 0.7)}
html.motion .stat .viz-120,html.motion .stat .viz-seats{clip-path:inset(0 0 0 100%);transition:clip-path 1200ms var(--ease-out) 300ms}
html.motion .stat.is-visible .viz-120,html.motion .stat.is-visible .viz-seats{clip-path:inset(0)}
html.motion .stat .viz-bar span{transform:scaleX(0);transition:transform 1000ms var(--ease-out) 400ms}
html.motion .stat.is-visible .viz-bar span{transform:none}
html.motion .event.is-open .viz-seats-row i{animation:seat-pop 420ms var(--ease-out) both;animation-delay:calc(var(--i,0) * 45ms + 150ms)}
html.motion .event.is-open .step span{animation:step-grow 700ms var(--ease-out) both;animation-delay:calc(var(--i,0) * 120ms + 150ms)}
html.motion .event.is-open .ballot{animation:seat-pop 420ms var(--ease-out) both}
html.motion .event.is-open .ballot.is-pm{animation-delay:150ms}
@keyframes seat-pop{from{opacity:0;transform:scale(0.4)}to{opacity:1;transform:none}}
@keyframes step-grow{from{transform:scaleY(0)}to{transform:none}}

/* ── Election 2026 ───────────────────────── */
.election-first{border-top:0;padding-top:var(--space-xl)}
.election .section-head{margin-bottom:var(--space-md)}
.election .section-head h2{font-size:var(--text-3xl);line-height:1.1}
.election .el-hemi{margin-top:var(--space-lg)}
.status-banner{display:flex;gap:var(--space-sm);align-items:flex-start;padding:var(--space-sm) var(--space-md);border:var(--rule-hair) solid var(--color-highlight);background:var(--color-paper-2);margin-bottom:0;max-width:60rem}
.status-banner p{font-size:var(--text-sm);color:var(--color-ink-2)}
.status-banner strong{color:var(--color-ink)}
.status-dot{flex:none;width:0.75rem;height:0.75rem;border-radius:50%;background:var(--color-highlight);margin-top:0.45rem}
html.motion .status-dot{animation:pulse 2s var(--ease-in-out) infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.35}}
.el-block{margin-top:var(--space-2xl)}
.el-block>h3,.el-two h3,.el-copy h3{font-size:var(--text-2xl)}
.el-lede{color:var(--color-ink-2);margin-top:var(--space-2xs);max-width:var(--measure);margin-bottom:var(--space-lg)}
.bloc-a{--bloc:var(--bloc-a)}.bloc-b{--bloc:var(--bloc-b)}.bloc-c{--bloc:var(--bloc-c)}
.el-news{margin-top:var(--space-lg)}
.news-head{display:grid;gap:var(--space-3xs)}
.news-head h2{margin:0;font-size:var(--text-2xl)}
.news-kicker{display:inline-flex;align-items:center;gap:var(--space-2xs);margin:0}
.news-live{width:0.55rem;height:0.55rem;border-radius:50%;background:var(--color-accent)}
html.motion .news-live{animation:pulse 2s var(--ease-in-out) infinite}
.news{list-style:none;padding:0;margin:var(--space-md) 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--space-xl);counter-reset:news}
.news li{display:grid;grid-template-columns:2.25rem minmax(0,1fr);grid-template-rows:auto 1fr;gap:2px var(--space-xs);padding-block:var(--space-sm);border-top:var(--rule-hair) solid var(--color-rule);counter-increment:news}
.news li::before{content:counter(news,decimal-leading-zero);grid-row:1/3;font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-lg);line-height:1.2;color:var(--color-ink-3);font-variant-numeric:tabular-nums}
.news-who{color:var(--color-ink);font-weight:700;line-height:1.35}
.news-text{color:var(--color-ink-2);font-size:var(--text-sm);line-height:1.6}
.news-more{display:none}
@media (min-width:1100px){.news{grid-template-columns:repeat(3,minmax(0,1fr))}}
.el-hemi{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--space-xl);align-items:center}
.el-copy p{color:var(--color-ink-2);margin-top:var(--space-2xs)}
.bloc-figures{list-style:none;padding:0;margin:var(--space-lg) 0 var(--space-sm);display:grid;gap:var(--space-sm)}
.bloc-figures li{display:grid;grid-template-columns:4.5rem minmax(0,1fr);column-gap:var(--space-sm);border-inline-start:6px solid var(--bloc);padding-inline-start:var(--space-sm)}
.bloc-figures b{grid-row:span 2;font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-3xl);line-height:1;font-variant-numeric:tabular-nums}
.bloc-figures span{font-weight:700}
.bloc-figures small{font-size:var(--text-xs);color:var(--color-ink-3)}
.hemicycle svg{width:100%;height:auto;display:block;overflow:visible}
.seat{fill:var(--bloc);transition:opacity var(--dur-short) var(--ease-out)}
.hemicycle.is-focus .seat{opacity:0.2}
.hemicycle.is-focus .seat.is-hl{opacity:1}
.hemi-big{text-anchor:middle;font-family:var(--font-display);font-size:22px;fill:var(--color-ink)}
.hemi-small{text-anchor:middle;font-size:7px;fill:var(--color-ink-3);font-family:var(--font-body)}
.hemi-legend{list-style:none;padding:0;margin:var(--space-md) 0 0;display:flex;flex-wrap:wrap;gap:var(--space-2xs)}
.hemi-legend button{display:inline-flex;align-items:center;gap:var(--space-2xs);white-space:nowrap;background:transparent;border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-sm);padding:var(--space-3xs) var(--space-xs);font-size:var(--text-xs);font-weight:600}
.hemi-legend button:hover,.hemi-legend button:focus-visible{border-color:var(--color-ink)}
.hemi-legend i,.calc-party i{width:0.75rem;height:0.75rem;border-radius:50%;background:var(--bloc)}
.leaders{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:var(--space-md)}
.leader{border-top:4px solid var(--bloc);padding-top:var(--space-xs);display:flex;flex-direction:column;gap:var(--space-3xs)}
.leader figure{display:flex;flex-direction:column;gap:var(--space-2xs)}
.leader img{width:100%;aspect-ratio:1;object-fit:cover;object-position:50% 20%;background:var(--color-paper-2);filter:grayscale(0.15) contrast(1.05)}
.leader figcaption b{display:block;font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-lg);line-height:1.2}
.leader figcaption span{font-size:var(--text-sm);color:var(--color-ink-2)}
.leader-seats{font-weight:700;font-size:var(--text-sm)}
.leader-num{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-xl)}
.leader-dots{display:flex;flex-wrap:wrap;gap:3px}
.leader-dots i{width:0.6rem;height:0.6rem;border-radius:50%;background:var(--bloc)}
.leader-bloc{font-size:var(--text-xs);color:var(--color-ink-3)}
.party-bars{display:grid;gap:var(--space-2xs);max-width:56rem}
.pbar{display:grid;grid-template-columns:2.5rem minmax(9rem,13rem) minmax(0,1fr) 4rem;align-items:center;gap:var(--space-sm)}
.pbar-seats{font-family:var(--font-display);font-size:var(--text-xl);text-align:center;font-variant-numeric:tabular-nums}
.pbar-name b{display:block;font-size:var(--text-sm)}
.pbar-name a{color:var(--color-ink);text-decoration-color:var(--color-rule)}
.pbar-name a:hover{color:var(--color-accent)}
.pbar-name small{font-size:var(--text-xs);color:var(--color-ink-3)}
.pbar-track{position:relative;height:1.1rem;background:var(--color-paper-2)}
.pbar-fill{position:absolute;inset-block:0;inset-inline-start:0;width:var(--w);background:var(--bloc,var(--color-ink-3));transform-origin:right}
.pbar.is-out .pbar-fill{background:transparent;box-shadow:inset 0 0 0 1.5px var(--color-ink-3)}
.pbar-th,.pbar-th-key{position:absolute;inset-block:-4px;inset-inline-start:var(--x);width:2px;background:var(--color-highlight)}
.pbar-pct{font-size:var(--text-sm);font-variant-numeric:tabular-nums}
.pbar.is-out{color:var(--color-ink-3)}
.pbar-divider{font-size:var(--text-xs);font-weight:700;color:var(--color-ink-3);margin-top:var(--space-sm);border-top:var(--rule-hair) dashed var(--color-rule);padding-top:var(--space-2xs)}
.pbar-key{display:flex;align-items:center;gap:var(--space-2xs);font-size:var(--text-xs);color:var(--color-ink-3);margin-top:var(--space-xs)}
.pbar-th-key{position:static;display:inline-block;height:1rem}
.calc-presets{display:flex;flex-wrap:wrap;gap:var(--space-2xs);margin-bottom:var(--space-md)}
.calc-presets button{white-space:nowrap;background:transparent;border:var(--rule-hair) solid var(--color-ink);border-radius:var(--radius-sm);padding:var(--space-3xs) var(--space-sm);font-size:var(--text-sm);font-weight:600}
.calc-presets button:hover{color:var(--color-accent);border-color:var(--color-accent)}
.calc-presets button:active,.calc-party:active,.hemi-legend button:active{transform:translateY(1px)}
.calc-meter{position:relative;height:2.75rem;background:var(--color-paper-2);border:var(--rule-hair) solid var(--color-ink);max-width:56rem}
.calc-fill{position:absolute;inset-block:0;inset-inline-start:0;width:var(--w,0%);background:var(--color-ink-3);transition:width 500ms var(--ease-out),background-color var(--dur-short) var(--ease-out)}
.calc-fill.is-majority{background:var(--color-highlight)}
.calc-mark{position:absolute;inset-block:-0.5rem;inset-inline-start:calc(61 / 120 * 100%);border-inline-start:2px dashed var(--color-ink);padding-inline-start:var(--space-3xs);font-weight:700;font-size:var(--text-xs);display:flex;align-items:flex-end}
.calc-readout{margin-block:var(--space-sm) var(--space-md);font-size:var(--text-lg);min-height:1.7em}
.calc-parties{display:flex;flex-wrap:wrap;gap:var(--space-2xs);max-width:56rem}
.calc-party{display:inline-flex;align-items:center;gap:var(--space-2xs);white-space:nowrap;background:transparent;border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-sm);padding:var(--space-2xs) var(--space-sm);font-weight:600;transition:background-color var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out)}
.calc-party:hover{border-color:var(--color-ink)}
.calc-party[aria-pressed="true"]{border-color:var(--color-ink);background:var(--color-paper-3)}
.calc-party[aria-pressed="true"] i{box-shadow:0 0 0 3px var(--color-paper-3),0 0 0 4px var(--color-ink)}
.calc-party b{font-family:var(--font-display);font-weight:var(--weight-display)}
.el-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xl)}
.bloc-compare{display:grid;gap:var(--space-sm)}
.bc-row{display:grid;grid-template-columns:3rem minmax(0,1fr);align-items:center;gap:var(--space-sm)}
.bc-bar{position:relative;display:flex;height:2.25rem}
.bc-bar span{flex:var(--n) 0 0;background:var(--bloc,var(--bloc-other));display:flex;align-items:center;justify-content:center;transform-origin:right}
.bc-bar .bc-other{background:transparent;box-shadow:inset 0 0 0 2px var(--color-ink-3)}
.bc-bar .bc-other em{color:var(--color-ink)}
.viz-legend .bc-other{background:transparent;box-shadow:inset 0 0 0 2px var(--color-ink-3)!important}
.bc-bar em{font-style:normal;font-weight:700;font-size:var(--text-sm);color:var(--color-paper)}
.bc-bar .bloc-b em{color:var(--color-paper)}
.bc-61,.bc-61-key{position:absolute;inset-block:-4px;inset-inline-start:calc(61 / 120 * 100%);border-inline-start:2px dashed var(--color-ink)}
.bc-61-key{position:static;display:inline-block;height:0.9rem;width:0}
.turnout{display:grid;gap:var(--space-sm)}
.to-row{display:grid;grid-template-columns:3rem minmax(0,1fr) 3.5rem;align-items:center;gap:var(--space-sm)}
.to-track{height:2.25rem;background:var(--color-paper-2);position:relative}
.to-track span{position:absolute;inset-block:0;inset-inline-start:0;width:var(--w);background:var(--color-ink);transform-origin:right}
.to-row:last-child .to-track span{background:var(--color-highlight)}
.to-val{font-family:var(--font-display);font-size:var(--text-lg)}
.el-facts{list-style:none;padding:0;margin:var(--space-2xl) 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-lg)}
.el-facts li{border-top:3px solid var(--color-accent);padding-top:var(--space-xs)}
.el-facts b{display:block;font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-2xl);font-variant-numeric:tabular-nums}
.el-facts span{font-size:var(--text-sm);color:var(--color-ink-2)}
.road{list-style:none;padding:0;margin:var(--space-md) 0 0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-sm);position:relative}
.road::before{content:"";position:absolute;inset-inline:0;top:0.45rem;height:2px;background:var(--color-rule)}
.road li{position:relative;padding-top:var(--space-lg)}
.road li::before{content:"";position:absolute;top:0;inset-inline-start:0;width:1rem;height:1rem;border-radius:50%;background:var(--color-paper);border:2px solid var(--color-ink)}
.road li:last-child::before{background:var(--color-highlight);border-color:var(--color-highlight)}
.road time{display:block;font-family:var(--font-display);font-size:var(--text-lg)}
.road b{display:block;font-size:var(--text-sm)}
.road p{font-size:var(--text-xs);color:var(--color-ink-3);margin-top:var(--space-3xs)}
.positions{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md)}
.positions li{background:var(--color-paper-2);padding:var(--space-md);border-top:3px solid var(--color-ink)}
.positions p{font-size:var(--text-sm);color:var(--color-ink-2);margin-top:var(--space-2xs)}
.next-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md);counter-reset:ns}
.next-steps li{counter-increment:ns;border:var(--rule-hair) solid var(--color-rule);padding:var(--space-md);position:relative}
.next-steps li::before{content:counter(ns);position:absolute;top:var(--space-sm);inset-inline-end:var(--space-sm);font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-ink-3);opacity:0.5}
.ns-when{display:inline-block;font-size:var(--text-xs);font-weight:700;background:var(--color-highlight);color:var(--color-on-highlight);padding:0 var(--space-2xs);margin-bottom:var(--space-2xs)}
.next-steps b{display:block}
.next-steps p{font-size:var(--text-sm);color:var(--color-ink-2);margin-top:var(--space-3xs)}
.el-sources{margin-top:var(--space-xl);border-top:var(--rule-hair) solid var(--color-rule);padding-top:var(--space-sm);font-size:var(--text-sm)}
.el-sources summary{font-weight:700;cursor:pointer}
.el-sources ul{padding-inline-start:var(--space-md);margin:var(--space-xs) 0}
.el-sources p{color:var(--color-ink-3);margin-top:var(--space-xs)}
.photo-credits{font-size:var(--text-xs);columns:2;color:var(--color-ink-3)}
html.motion .el-hemi.is-visible .seat{animation:seat-pop 360ms var(--ease-out) both;animation-delay:calc(var(--i) * 9ms + 200ms)}
html.motion .el-hemi:not(.is-visible) .seat{opacity:0}
html.motion .el-block .pbar-fill{transform:scaleX(0);transition:transform 900ms var(--ease-out)}
html.motion .el-block.is-visible .pbar-fill{transform:none}
html.motion .el-block .pbar:nth-child(n){transition-delay:0ms}
html.motion .el-two .bc-bar span,html.motion .el-two .to-track span{transform:scaleX(0);transition:transform 900ms var(--ease-out) 200ms}
html.motion .el-two.is-visible .bc-bar span,html.motion .el-two.is-visible .to-track span{transform:none}
html.motion .leader .leader-dots i{opacity:0;transition:opacity 300ms var(--ease-out)}
html.motion .leader.is-visible .leader-dots i{opacity:1}


/* ── Party pages ─────────────────────────── */
.mast-slim{padding-bottom:0}
.mast-slim .mast-line{align-items:center}
.mast-name-small{margin-top:0;font-size:var(--text-xl)}
.back-link{white-space:nowrap;font-size:var(--text-sm);font-weight:700;color:var(--color-ink);text-decoration:none}
.back-link:hover{color:var(--color-accent);text-decoration:underline}
.party-nav{display:flex;gap:var(--space-2xs);overflow-x:auto;scrollbar-width:none;padding-block:var(--space-sm);border-bottom:var(--rule-strong) solid var(--color-accent)}
.party-nav::-webkit-scrollbar{display:none}
.party-nav a{display:inline-flex;align-items:center;gap:var(--space-2xs);white-space:nowrap;border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-sm);padding:var(--space-3xs) var(--space-xs);font-size:var(--text-xs);font-weight:700;color:var(--color-ink);text-decoration:none}
.party-nav a:hover{border-color:var(--color-ink)}
.party-nav a.is-current{background:var(--color-ink);color:var(--color-paper);border-color:var(--color-ink)}
.party-nav i{width:0.6rem;height:0.6rem;border-radius:50%;background:var(--bloc)}
.party-main{max-width:var(--page-max);margin:0 auto;padding:var(--space-xl) var(--page-gutter) var(--space-3xl)}
.party-loading{padding-block:var(--space-3xl);color:var(--color-ink-3)}
.party-hero{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:var(--space-xl);align-items:start;border-top:6px solid var(--bloc);padding-top:var(--space-lg)}
.party-photo img{width:100%;aspect-ratio:1;object-fit:cover;object-position:50% 20%;background:var(--color-paper-2)}
.party-photo figcaption{font-size:var(--text-xs);margin-top:var(--space-3xs)}
.party-photo figcaption a{color:var(--color-ink-3)}
.party-head h1{font-size:var(--text-display);line-height:1.02;margin-top:var(--space-3xs)}
.party-leader{font-size:var(--text-lg);margin-top:var(--space-2xs)}
.party-summary{font-size:var(--text-lg);color:var(--color-ink-2);max-width:var(--measure);margin-top:var(--space-sm)}
.party-stats{list-style:none;padding:0;margin:var(--space-lg) 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg);max-width:44rem}
.party-stats li{border-top:3px solid var(--color-accent);padding-top:var(--space-xs);display:flex;flex-direction:column;gap:var(--space-3xs)}
.party-stats b{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-3xl);line-height:1;font-variant-numeric:tabular-nums}
.party-stats span{font-weight:700;font-size:var(--text-sm)}
.party-stats small{font-size:var(--text-sm);color:var(--color-ink-3)}
.party-dots{display:flex;flex-wrap:wrap;gap:3px;margin-top:var(--space-2xs)}
.party-dots i{width:0.7rem;height:0.7rem;border-radius:50%;background:var(--bloc)}
.party-block{margin-top:var(--space-2xl);border-top:var(--rule-strong) solid var(--color-ink);padding-top:var(--space-md)}
.party-block h2{font-size:var(--text-2xl);margin-bottom:var(--space-xs)}
.seat-chart{display:flex;align-items:flex-end;gap:var(--space-2xs);overflow-x:auto;padding-bottom:var(--space-2xs);min-height:14rem}
.sc-col{flex:1 0 2.6rem;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:var(--space-3xs)}
.sc-col b{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-md);font-variant-numeric:tabular-nums}
.sc-stack{display:flex;flex-direction:column-reverse;width:100%;height:calc(var(--h) * 10rem);min-height:3px;transform-origin:bottom}
.sc-seg{display:block;min-height:2px;background:var(--color-ink-3)}
.sc-seg.part-0{background:var(--color-ink-2)}
.sc-seg.part-1{background:var(--color-accent)}
.sc-seg.part-2{background:var(--color-ink-3)}
.sc-seg.part-3{background:var(--color-rule)}
.sc-col.is-now .sc-seg{background:var(--bloc)}
.sc-legend i{border-radius:0}
.sc-col.is-now b{color:var(--color-ink)}
.sc-col small{font-size:var(--text-xs);color:var(--color-ink-3);white-space:nowrap}
.sc-notes{list-style:none;padding:0;margin:var(--space-sm) 0 0;font-size:var(--text-xs);color:var(--color-ink-3);display:grid;gap:var(--space-3xs)}
.lineage{list-style:none;padding:0;margin:var(--space-md) 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:var(--space-md);counter-reset:lin}
.lineage li{position:relative;border:var(--rule-hair) solid var(--color-rule);background:var(--color-paper-2);padding:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-3xs)}
.lineage li:not(:last-child)::after{content:"←";position:absolute;top:50%;inset-inline-end:calc(var(--space-md) * -1 + 2px);transform:translateY(-50%);font-size:var(--text-md);color:var(--color-ink-3)}
[dir="ltr"] .lineage li:not(:last-child)::after{content:"→"}
.lin-kind{align-self:flex-start;font-size:var(--text-xs);font-weight:700;padding:0 var(--space-2xs);border:var(--rule-hair) solid var(--color-ink)}
.lin-merger .lin-kind,.lin-joint-list .lin-kind,.lin-alliance .lin-kind{background:var(--color-ink);color:var(--color-paper)}
.lin-split .lin-kind{border-style:dashed}
.lin-now{border-color:var(--bloc)!important;border-width:2px!important;background:var(--color-paper)!important}
.lin-now .lin-kind{background:var(--color-highlight);color:var(--color-on-highlight);border-color:var(--color-highlight)}
.lineage time{font-family:var(--font-display);font-size:var(--text-lg)}
.lineage b{font-size:var(--text-md)}
.lineage p{font-size:var(--text-sm);color:var(--color-ink-2)}
.gantt{display:grid;gap:var(--space-2xs);margin-top:var(--space-md)}
.g-row{display:grid;grid-template-columns:minmax(9rem,14rem) minmax(0,1fr);align-items:center;gap:var(--space-sm)}
.g-name{font-weight:700;font-size:var(--text-sm);display:flex;flex-direction:column}
.g-name small{font-weight:400;color:var(--color-ink-3);font-size:var(--text-xs)}
.g-track{position:relative;height:1.1rem;background:var(--color-paper-2)}
.g-bar{position:absolute;inset-block:0;inset-inline-start:var(--s);width:var(--w);background:var(--bloc)}
.g-axis{display:flex;justify-content:space-between;margin-inline-start:calc(min(14rem,40%) + var(--space-sm));font-size:var(--text-xs);color:var(--color-ink-3)}
.ptl{list-style:none;padding:0;margin:var(--space-md) 0 0;position:relative;max-width:52rem}
.ptl::before{content:"";position:absolute;inset-block:0.5rem 0;inset-inline-start:0.45rem;width:2px;background:var(--color-rule)}
.ptl li{position:relative;padding-inline-start:var(--space-xl);padding-bottom:var(--space-md);display:grid;grid-template-columns:5rem minmax(0,1fr);column-gap:var(--space-sm)}
.ptl li::before{content:"";position:absolute;top:0.35rem;inset-inline-start:0;width:1rem;height:1rem;border-radius:50%;background:var(--color-paper);border:2px solid var(--bloc)}
.ptl time{font-family:var(--font-display);font-size:var(--text-lg);grid-row:span 2}
.ptl b{font-size:var(--text-md)}
.ptl p{font-size:var(--text-sm);color:var(--color-ink-2);margin-top:var(--space-3xs)}
.party-sources{padding-inline-start:var(--space-md);font-size:var(--text-sm);display:grid;gap:var(--space-3xs)}
.party-pager{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md);margin-top:var(--space-2xl)}
.party-pager a{display:flex;flex-direction:column;border:var(--rule-hair) solid var(--color-ink);padding:var(--space-sm) var(--space-md);color:var(--color-ink);text-decoration:none;font-family:var(--font-display);font-size:var(--text-lg)}
.party-pager a:last-child{text-align:end}
.party-pager a:hover{color:var(--color-accent);border-color:var(--color-accent)}
.party-pager small{font-family:var(--font-body);font-size:var(--text-xs);font-weight:700}
.leader-link{color:inherit;text-decoration:none;display:block}
.leader-link:hover figcaption b{color:var(--color-accent);text-decoration:underline}
.leader-more{font-size:var(--text-xs);font-weight:700;color:var(--color-accent)}
html.motion .reveal{opacity:0;transform:translateY(28px);transition:opacity 650ms var(--ease-out),transform 650ms var(--ease-out)}
html.motion .reveal.is-visible{opacity:1;transform:none}
html.motion .reveal.is-visible .sc-stack{animation:step-grow 700ms var(--ease-out) both;animation-delay:calc(var(--i,0) * 60ms + 150ms)}
html.motion .reveal .g-bar{transform:scaleX(0);transform-origin:right;transition:transform 900ms var(--ease-out) 200ms}
html.motion[dir="ltr"] .reveal .g-bar{transform-origin:left}
html.motion .reveal.is-visible .g-bar{transform:none}

/* ── Calculator: seat arc + leader cards ─── */
.calc-stage{position:relative;max-width:34rem;margin:var(--space-md) auto 0}
.calc-arc svg{width:100%;height:auto;display:block}
.cseat{fill:transparent;stroke:var(--color-ink-3);stroke-width:0.8;transition:fill 260ms var(--ease-out),stroke 260ms var(--ease-out)}
.cseat.is-on{fill:var(--bloc);stroke:var(--bloc)}
.c61{stroke:var(--color-ink);stroke-width:1;stroke-dasharray:3 3}
.calc-center{position:absolute;inset-inline:0;bottom:0;display:flex;align-items:baseline;justify-content:center;gap:var(--space-2xs)}
.calc-center b{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-display);line-height:1;font-variant-numeric:tabular-nums;transition:color var(--dur-short) var(--ease-out)}
.calc-center span{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-ink-3)}
.calc-stage.is-majority .calc-center b{color:var(--color-accent)}
.calc-readout{text-align:center}
.calc-parties{display:grid;grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));gap:var(--space-xs);max-width:none}
.calc-card{position:relative;display:grid;grid-template-columns:3.5rem minmax(0,1fr) auto;align-items:center;gap:var(--space-xs);text-align:start;background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule);border-inline-start:5px solid var(--bloc);border-radius:var(--radius-sm);padding:var(--space-2xs) var(--space-xs);transition:background-color var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out),transform var(--dur-short) var(--ease-out)}
.calc-card img{width:3.5rem;height:3.5rem;border-radius:50%;object-fit:cover;object-position:50% 20%;filter:grayscale(1);opacity:0.75;transition:filter var(--dur-med) var(--ease-out),opacity var(--dur-med) var(--ease-out)}
.cc-text{display:flex;flex-direction:column;min-width:0}
.cc-text b{font-size:var(--text-sm);line-height:1.25}
.cc-text small{font-size:var(--text-xs);color:var(--color-ink-3)}
.cc-seats{font-family:var(--font-display);font-size:var(--text-xl);font-variant-numeric:tabular-nums}
.cc-check{position:absolute;top:var(--space-3xs);inset-inline-end:var(--space-3xs);width:1.1rem;height:1.1rem;border-radius:50%;border:var(--rule-hair) solid var(--color-rule)}
.calc-card:hover{border-color:var(--color-ink);border-inline-start-color:var(--bloc)}
.calc-card[aria-pressed="true"]{background:var(--color-paper-2);border-color:var(--bloc)}
.calc-card[aria-pressed="true"] img{filter:none;opacity:1}
.calc-card[aria-pressed="true"] .cc-check{background:var(--bloc);border-color:var(--bloc)}
.calc-card[aria-pressed="true"] .cc-check::after{content:"";position:absolute;inset:0.22rem 0.36rem 0.3rem;border:solid var(--color-paper);border-width:0 2px 2px 0;transform:rotate(45deg)}
.calc-card:active{transform:translateY(1px)}

/* ── Minority government explainer ──────── */
.minority{border-top:var(--rule-strong) solid var(--color-ink);padding-top:var(--space-lg)}
.minority h4{font-size:var(--text-xl);font-family:var(--font-display);font-weight:var(--weight-display)}
.mg-h{margin-top:var(--space-2xl)}
.mg-rule{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md);margin-top:var(--space-lg)}
.mg-card{border:var(--rule-hair) solid var(--color-rule);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-2xs);background:var(--color-paper-2)}
.mg-card:first-child .mg-num{text-decoration:line-through;text-decoration-thickness:3px;text-decoration-color:var(--color-accent)}
.mg-num{font-family:var(--font-display);font-size:var(--text-3xl);line-height:1;color:var(--color-accent)}
.mg-card b{font-size:var(--text-md)}
.mg-card p{font-size:var(--text-sm);color:var(--color-ink-2)}
.mg-sim{margin-top:var(--space-xl);border:var(--rule-hair) solid var(--color-ink);padding:var(--space-lg)}
.mg-controls{display:grid;gap:var(--space-xs);margin-bottom:var(--space-md)}
.mg-ctl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-xs);border-inline-start:5px solid var(--bloc);padding-inline-start:var(--space-sm)}
.mg-ctl-name{font-weight:700;display:inline-flex;align-items:center;gap:var(--space-2xs)}
.mg-ctl-name b{font-family:var(--font-display);font-size:var(--text-lg)}
.mg-seg{display:inline-flex;border:var(--rule-hair) solid var(--color-ink);border-radius:var(--radius-sm);overflow:hidden}
.mg-seg button{white-space:nowrap;background:transparent;border:0;padding:var(--space-3xs) var(--space-sm);font-weight:700;font-size:var(--text-sm);color:var(--color-ink)}
.mg-seg button+button{border-inline-start:var(--rule-hair) solid var(--color-ink)}
.mg-seg button[aria-pressed="true"]{background:var(--color-ink);color:var(--color-paper)}
.mg-seg button:active{transform:translateY(1px)}
.mg-dots{display:grid;grid-template-columns:repeat(30,minmax(0,1fr));gap:3px;max-width:44rem}
.mg-dots i{aspect-ratio:1;border-radius:50%;transition:background-color 300ms var(--ease-out),box-shadow 300ms var(--ease-out)}
.mg-dots .v-for{background:var(--color-accent)}
.mg-dots .v-against{background:var(--color-ink)}
.mg-dots .v-abs{background:transparent;box-shadow:inset 0 0 0 1.5px var(--color-ink-3)}
.mg-verdict{display:flex;flex-direction:column;gap:var(--space-3xs);margin-top:var(--space-md)}
.mg-tally{font-size:var(--text-sm);color:var(--color-ink-2)}
.mg-verdict strong{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-xl)}
.mg-verdict .is-pass{color:var(--color-accent)}
.mg-kinds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md);margin-top:var(--space-xl)}
.mg-kinds b{display:block;margin-top:var(--space-xs)}
.mg-kinds p{font-size:var(--text-sm);color:var(--color-ink-2)}
.mg-kind-bar{display:flex;height:1.4rem;position:relative}
.mg-kind-bar::after{content:"";position:absolute;inset-block:-4px;inset-inline-start:calc(61 / 120 * 100%);border-inline-start:2px dashed var(--color-ink)}
.mg-kind-bar i{flex:var(--n) 0 0;transform-origin:right}
.mg-kind-bar .in{background:var(--color-accent)}
.mg-kind-bar .ext{background:repeating-linear-gradient(45deg,var(--color-accent) 0 3px,transparent 3px 6px)}
.mg-kind-bar .abs{background:transparent;box-shadow:inset 0 0 0 1.5px var(--color-ink-3)}
.mg-kind-bar .out{background:var(--color-paper-3)}
.mg-history{list-style:none;padding:0;margin:var(--space-md) 0 0;display:grid;gap:var(--space-md)}
.mg-history li{display:grid;grid-template-columns:7rem minmax(0,14rem) minmax(0,1fr);grid-template-areas:"time name bar" "time text text";gap:var(--space-3xs) var(--space-md);align-items:center;border-top:var(--rule-hair) solid var(--color-rule);padding-top:var(--space-sm)}
.mg-history time{grid-area:time;font-family:var(--font-display);font-size:var(--text-lg);align-self:start}
.mg-history b{grid-area:name}
.mg-history p{grid-area:text;font-size:var(--text-sm);color:var(--color-ink-2);max-width:var(--measure)}
.mg-bar{grid-area:bar;position:relative;height:1.3rem;background:var(--color-paper-2)}
.mg-bar::before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:calc(var(--n) / 120 * 100%);background:var(--color-accent);transform-origin:right}
.mg-bar::after{content:"";position:absolute;inset-block:-4px;inset-inline-start:calc(61 / 120 * 100%);border-inline-start:2px dashed var(--color-ink)}
.mg-bar em{position:relative;z-index:1;font-style:normal;font-weight:700;font-size:var(--text-xs);padding-inline:var(--space-2xs);color:var(--color-accent-ink);line-height:1.3rem}
.mg-bar-none::before{display:none}
[dir="ltr"] .mg-kind-bar i,[dir="ltr"] .mg-bar::before{transform-origin:left}
html.motion .mg-bar::before,html.motion .mg-kind-bar i{transform:scaleX(0);transition:transform 900ms var(--ease-out) 200ms}
html.motion .is-visible .mg-bar::before,html.motion .is-visible .mg-kind-bar i,html.motion .mg-history li.is-visible .mg-bar::before{transform:none}

/* ── Header switches ─────────────────────── */
.mast-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-sm)}
.mast-top>:first-child{justify-self:start}
.mast-top>:last-child{justify-self:end}
.mast-date{text-align:center;white-space:nowrap;color:var(--color-ink-3);font-size:var(--text-xs)}
a.mast-date{color:var(--color-ink);font-weight:700;text-decoration:none}
.toggle{display:inline-flex;align-items:center;gap:var(--space-2xs);background:transparent;border:0;padding:var(--space-3xs) 0;color:var(--color-ink);text-decoration:none;font-size:var(--text-xs);font-weight:700;cursor:pointer}
.tg-opt{color:var(--color-ink-3);transition:color var(--dur-med) var(--ease-out)}
.tg-track{position:relative;width:3.4rem;height:1.6rem;border-radius:999px;background:var(--color-paper-3);border:var(--rule-hair) solid var(--color-rule);transition:background-color var(--dur-med) var(--ease-out)}
.tg-thumb{position:absolute;top:2px;inset-inline-start:2px;width:calc(1.6rem - 6px);height:calc(1.6rem - 6px);border-radius:50%;background:var(--color-ink);box-shadow:0 1px 3px oklch(0% 0 0 / 0.35);transition:transform 320ms var(--ease-out)}
.toggle[aria-checked="true"] .tg-thumb,.toggle[data-on="true"] .tg-thumb,.toggle.is-moving .tg-thumb{transform:translateX(calc(-3.4rem + 1.6rem))}
[dir="ltr"] .toggle[aria-checked="true"] .tg-thumb,[dir="ltr"] .toggle[data-on="true"] .tg-thumb,[dir="ltr"] .toggle.is-moving .tg-thumb{transform:translateX(calc(3.4rem - 1.6rem))}
[dir="ltr"] .toggle.is-moving[data-on="true"] .tg-thumb,[dir="rtl"] .toggle.is-moving[data-on="true"] .tg-thumb{transform:none}
.toggle[aria-checked="true"] .tg-track,.toggle[data-on="true"] .tg-track{background:var(--color-accent-wash);border-color:var(--color-accent)}
.toggle[aria-checked="false"] .tg-opt:first-child,.toggle[aria-checked="true"] .tg-opt:last-child,.toggle[data-on="false"] .tg-opt:first-child,.toggle[data-on="true"] .tg-opt:last-child{color:var(--color-ink)}
.toggle.is-moving .tg-opt{color:var(--color-ink-3)}
.theme-toggle .tg-thumb::after{content:"";position:absolute;inset:3px;border-radius:50%;box-shadow:inset -4px -2px 0 0 var(--color-paper);opacity:0;transition:opacity var(--dur-med) var(--ease-out)}
.theme-toggle[aria-checked="true"] .tg-thumb::after{opacity:1}
.toggle:hover .tg-track{border-color:var(--color-ink)}
.toggle:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px;border-radius:var(--radius-sm)}
@media (max-width:640px){.mast-top{grid-template-columns:auto 1fr auto}.mast-date{white-space:normal;font-size:0.6875rem}}

/* ── Left-to-right (English) mirrors ─────── */
[dir="ltr"] .chapters-progress span,[dir="ltr"] .viz-bar span,[dir="ltr"] .pbar-fill,[dir="ltr"] .bc-bar span,[dir="ltr"] .to-track span{transform-origin:left}
[dir="ltr"] .route a::after{content:"→"}
[dir="ltr"] .route a:hover::after{transform:translateX(4px)}
html.motion[dir="ltr"] [data-reveal="side"]{transform:translateX(36px)}
html.motion[dir="ltr"] [data-reveal].is-visible{transform:none}
html.motion[dir="ltr"] .map .edge-h::before{transform-origin:left}
html.motion[dir="ltr"] .map.is-drawn .edge-h::before{transform:none}
html.motion[dir="ltr"] .stat .viz-120,html.motion[dir="ltr"] .stat .viz-seats{clip-path:inset(0 100% 0 0)}
html.motion[dir="ltr"] .stat.is-visible .viz-120,html.motion[dir="ltr"] .stat.is-visible .viz-seats{clip-path:inset(0)}
[dir="ltr"] .node strong{font-size:var(--text-lg);white-space:normal}
[dir="ltr"] .intro h1,[dir="ltr"] .section-head h2{letter-spacing:-0.01em}

/* ── Responsive ─────────────────────────── */
@media (max-width:899px){
  .intro,.system-layout{grid-template-columns:minmax(0,1fr)}
  .el-hemi,.el-two{grid-template-columns:minmax(0,1fr)}
  .road{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:var(--space-lg)}
  .road::before{display:none}
  .positions,.next-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .el-facts{grid-template-columns:repeat(2,minmax(0,1fr))}

  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}

  .map{position:static}
  .intro{gap:var(--space-xl);padding-block:var(--space-xl) var(--space-2xl)}
  .compare-head{display:none}
  .compare-row{grid-template-columns:minmax(0,1fr);gap:var(--space-2xs)}
  .compare [role="cell"]::before{content:attr(data-label);display:block;font-size:var(--text-xs);font-weight:700;color:var(--color-ink)}
  .compare [role="cell"]:last-child::before{color:var(--color-accent)}
  .pressures article{grid-template-columns:minmax(0,1fr);gap:var(--space-sm)}
  .colophon{grid-template-columns:minmax(0,1fr);gap:var(--space-sm)}
}
@media (max-width:640px){
  .mast-tag{display:none}
  .mg-rule,.mg-kinds{grid-template-columns:minmax(0,1fr)}
  .mg-dots{grid-template-columns:repeat(20,minmax(0,1fr))}
  .mg-history li{grid-template-columns:minmax(0,1fr);grid-template-areas:"time" "name" "bar" "text"}
  .mg-sim{padding:var(--space-md)}
  .calc-parties{grid-template-columns:minmax(0,1fr)}
  .party-hero{grid-template-columns:minmax(0,1fr)}
  .party-photo{max-width:12rem}
  .party-stats{grid-template-columns:minmax(0,1fr)}
  .g-row{grid-template-columns:minmax(0,1fr)}
  .g-axis{margin-inline-start:0}
  .ptl li{grid-template-columns:minmax(0,1fr)}
  .lineage li::after{display:none}
  .mast-slim .mast-name-small{display:none}
  .news,.positions,.next-steps{grid-template-columns:minmax(0,1fr)}
  .news:not(.is-open) li:nth-child(n+5){display:none}
  .news-more:not([hidden]){display:inline-flex;margin-top:var(--space-xs);background:transparent;color:var(--color-ink);border:var(--rule-hair) solid var(--color-ink);border-radius:var(--radius-sm);padding:var(--space-2xs) var(--space-sm);font-weight:700;font-size:var(--text-sm)}
  .road{grid-template-columns:minmax(0,1fr)}
  .pbar{grid-template-columns:2rem minmax(0,1fr) 3.5rem;grid-template-areas:"seats name pct" "seats track track";row-gap:var(--space-3xs)}
  .pbar-seats{grid-area:seats}.pbar-name{grid-area:name}.pbar-track{grid-area:track}.pbar-pct{grid-area:pct;text-align:end}
  .leaders{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}
  .photo-credits{columns:1}
  .stats{grid-template-columns:minmax(0,1fr)}
  .route a{grid-template-columns:auto 2.5rem minmax(0,1fr) auto;padding:var(--space-xs) var(--space-sm);gap:var(--space-xs)}
  .chapters ol{gap:var(--space-md)}
  .viz-compare,.ballots{grid-template-columns:minmax(0,1fr)}
  .timeline{--tl-year:0px;--tl-dot:2rem}
  .timeline-tools{padding-inline-start:2rem}
  .event-head{justify-content:stretch}
  .event-head{grid-template-columns:var(--tl-dot) minmax(0,1fr) auto;grid-template-areas:"dot year toggle" "dot text toggle";row-gap:var(--space-3xs)}
  .event-dot{grid-area:dot;align-self:start;margin-top:0.2rem}
  .event-year{grid-area:year;justify-self:start;font-size:var(--text-lg)}
  .event-text{grid-area:text}
  .event-toggle{grid-area:toggle}
  .era-name{font-size:var(--text-lg)}
  .intro-facts{flex-direction:column;gap:var(--space-3xs)}
  .intro-facts span+span{border:0;padding:0}
  .mast-line{flex-wrap:wrap;justify-content:center;row-gap:var(--space-2xs)}
  .theme-switch{flex:none}
  .mast-nav{justify-content:flex-start;gap:var(--space-md)}
  .section{padding-block:var(--space-lg) var(--space-2xl)}
  .map{padding:var(--space-sm)}
  .map-nodes{grid-template-columns:minmax(0,1fr) minmax(3.5rem,0.45fr) minmax(0,1fr)}
  .node{padding:var(--space-xs) var(--space-2xs)}
  .node strong{font-size:var(--text-lg)}
  .edge{min-height:3.75rem}
  .edge span{font-size:var(--text-2xs);padding-inline:var(--space-3xs)}
  .arguments{grid-template-columns:minmax(0,1fr)}
  .arguments article,.arguments article+article{padding-inline:0;border-inline-start:0}
  .arguments article+article{border-top:var(--rule-hair) solid var(--color-rule)}
  .before-after>div,.facts>div{grid-template-columns:minmax(0,1fr);gap:var(--space-3xs)}
  .note-row{flex-direction:column;align-items:start}
  .quiz-panel{padding:var(--space-md)}
  .reform-tabs{gap:var(--space-md)}
  .reform-tabs button{font-size:var(--text-lg)}
  .sources a{grid-template-columns:2rem minmax(0,1fr);grid-template-areas:"num title" "num pub" "num type"}
  .src-type{justify-self:start;margin-top:var(--space-3xs)}
}
/* Pin the map and the timeline panel only when the screen is tall enough to show them whole */
@media (min-width:900px) and (min-height:760px){
  .map{position:sticky;top:var(--space-md)}
}
/* Plenum agenda ticker: a label tab and a moving belt of items. Concepts follow. */
.agenda{margin-top:var(--space-md);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:stretch;border-block:var(--rule-strong) solid var(--color-ink);background:var(--color-paper-2)}
.agenda[hidden]{display:none}
.agenda-head{position:relative;z-index:1;display:flex;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-sm);background:var(--color-paper-3);color:var(--color-ink);border-inline-end:var(--rule-hair) solid var(--color-rule);font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;white-space:nowrap;line-height:1.2}
.agenda-head span{font-weight:400;font-size:var(--text-xs);color:inherit;opacity:0.75;font-variant-numeric:tabular-nums}
.agenda-head::before{content:"";width:0.55rem;height:0.55rem;border-radius:50%;background:var(--color-ink-3);flex:none}
.agenda.is-live .agenda-head{background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent)}
.agenda.is-live .agenda-head::before{background:currentColor;animation:tk-pulse 1.6s var(--ease-in-out) infinite}
.agenda-track{position:relative;overflow:hidden;min-width:0;display:flex;align-items:center}
.agenda-list{list-style:none;display:flex;width:max-content;margin:0;padding:0}
.agenda.is-moving .agenda-list{animation:tk-run var(--tk-dur,60s) linear infinite}
.agenda.is-moving .agenda-track:hover .agenda-list,.agenda.is-moving .agenda-track:focus-within .agenda-list{animation-play-state:paused}
.agenda-item{display:flex;align-items:baseline;gap:var(--space-2xs);white-space:nowrap;padding:var(--space-2xs) var(--space-md);font-size:var(--text-sm)}
.agenda-item::after{content:"";align-self:center;width:5px;height:5px;background:var(--color-ink-3);margin-inline-start:var(--space-md)}
.agenda-item a{display:contents;color:inherit;text-decoration:none}
.agenda-item a:hover .agenda-title{color:var(--color-accent);text-decoration:underline}
.agenda-type{font-size:var(--text-2xs);font-weight:700;color:var(--color-accent);border:var(--rule-hair) solid currentColor;border-radius:var(--radius-sm);padding:0 var(--space-3xs)}
.agenda-title{font-weight:700;color:var(--color-ink)}
.agenda-bite{color:var(--color-ink-2)}
.agenda-empty::after{content:"";align-self:center;width:5px;height:5px;background:var(--color-ink-3);margin-inline-start:var(--space-md)}
.agenda-empty{display:flex;align-items:baseline;gap:var(--space-sm);white-space:nowrap;padding:var(--space-2xs) var(--space-md);font-size:var(--text-sm);color:var(--color-ink-2)}
.agenda-empty a{font-weight:600}
.agenda-view{display:grid;place-items:center;width:2.6rem;background:transparent;border:0;border-inline-start:var(--rule-hair) solid var(--color-rule);color:var(--color-ink-3);cursor:pointer;transition:color var(--dur-short) var(--ease-out)}
.agenda-view[hidden]{display:none}
.agenda-view:hover,.agenda-view[aria-pressed="true"]{color:var(--color-accent)}
.agenda-view:focus-visible{outline:3px solid var(--color-focus);outline-offset:-3px}
.agenda-view svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.agenda-view .iv-ticker,.agenda-view[aria-pressed="true"] .iv-cards{display:none}
.agenda-view[aria-pressed="true"] .iv-ticker{display:inline}
.agenda.is-cards .agenda-list{display:none}
.agenda.is-cards .agenda-track::after{content:attr(data-hint);padding-inline:var(--space-md);font-size:var(--text-xs);color:var(--color-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.agenda-cards{grid-column:1/-1;list-style:none;display:flex;gap:var(--space-sm);overflow-x:auto;scroll-snap-type:x mandatory;margin:0;padding:var(--space-sm);border-top:var(--rule-hair) solid var(--color-rule);background:var(--color-paper)}
.agenda-cards[hidden]{display:none}
.agenda-card{flex:0 0 min(20rem,80vw);scroll-snap-align:start;display:flex;flex-direction:column;gap:var(--space-3xs);padding:var(--space-xs) var(--space-sm);background:var(--color-paper-2);border:var(--rule-hair) solid var(--color-rule)}
.agenda-card .agenda-type{align-self:flex-start}
.agenda-card-title{font-size:var(--text-sm);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.agenda-card .agenda-bite{font-size:var(--text-sm)}
.agenda-next{font-size:var(--text-2xs);color:var(--color-ink-3)}
.agenda-src{font-size:var(--text-2xs);margin-top:auto}
.agenda-card-note{flex-basis:min(14rem,70vw);justify-content:center;font-size:var(--text-sm);color:var(--color-ink-2);background:transparent;border-style:dashed}
.agenda-note{grid-column:1/-1;margin:0;padding:var(--space-3xs) var(--space-sm);border-top:var(--rule-hair) solid var(--color-rule);background:var(--color-paper);font-size:var(--text-2xs);color:var(--color-ink-3)}
@keyframes tk-run{from{transform:translateX(0)}to{transform:translateX(-50%)}}
[dir="rtl"] .agenda-list{--tk-to:50%}
[dir="rtl"] .agenda.is-moving .agenda-list{animation-name:tk-run-rtl}
@keyframes tk-run-rtl{from{transform:translateX(0)}to{transform:translateX(50%)}}
@keyframes tk-pulse{0%,100%{opacity:1}50%{opacity:0.35}}
@media (max-width:640px){.agenda-head span{display:none}.agenda-head{padding-inline:var(--space-xs)}}
@media (prefers-reduced-motion:reduce){.agenda-track{overflow-x:auto}.agenda-item,.agenda-empty{white-space:normal}}
.concepts{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,30rem),1fr));gap:var(--space-2xl) var(--space-xl);margin:0;padding:0}
.concept{border-top:var(--rule-strong) solid var(--color-ink);padding-top:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-xs)}
.concept h3{font-size:var(--text-2xl)}
.concept-line{color:var(--color-ink-2)}
.concept details{margin-top:var(--space-2xs)}
.concept summary{cursor:pointer;font-weight:700;color:var(--color-accent)}
.concept-why{font-size:var(--text-sm);margin-top:var(--space-2xs)}
.concept-data{margin-top:var(--space-sm)}
.concept-data a{font-weight:700;color:var(--color-accent)}
.concept .fine{font-size:var(--text-xs)}
/* Concept diagrams (civics-visuals.js). Steps not reached yet are faint; the current one is in the accent. */
.cv{position:relative;margin:var(--space-2xs) 0 0;background:var(--color-paper-2);border:var(--rule-hair) solid var(--color-rule);padding:var(--space-xs)}
.cv svg{display:block;width:100%;height:auto;overflow:visible}
.cv text{font-family:var(--font-body);fill:var(--color-ink);text-anchor:middle;font-size:10px}
.cv .cv-s{font-size:11px}
.cv .cv-b{font-weight:700}
.cv .cv-num{font-family:var(--font-display);font-size:16px}
.cv .cv-big{font-family:var(--font-display);font-size:44px}
.cv .cv-acc{fill:var(--color-accent)}
.cv .cv-inv{fill:var(--color-paper)}
.cv-stroke,.cv-stamp{fill:none;stroke:var(--color-ink);stroke-width:1.5}
.cv-dash{fill:none;stroke:var(--color-ink);stroke-width:1.2;stroke-dasharray:4 3}
.cv-frame{fill:none;stroke:var(--color-rule);stroke-width:1}
.cv-paper{fill:var(--color-paper);stroke:var(--color-ink);stroke-width:1.2}
.cv-line{stroke:var(--color-ink-3);stroke-width:1}
.cv-major{stroke:var(--color-ink);stroke-width:2}
.cv-arrow{fill:none;stroke:var(--color-ink-3);stroke-width:1.2}
.cv-head{fill:var(--color-ink-3)}
.cv-solid{fill:var(--color-ink)}
.cv-dot{fill:var(--color-rule)}
.cv-dot-on{fill:var(--color-ink)}
.cv-bloc{fill:var(--bloc)}
.cv-bg{fill:var(--color-paper-2)}
.cv-token{fill:var(--color-accent);opacity:0.35;transition:transform 900ms var(--ease-out)}
.cv [data-s]{opacity:0.1;transition:opacity 600ms var(--ease-out)}
.cv [data-s].on{opacity:1}
.cv [data-s].now .a{stroke:var(--color-accent)}
.cv [data-s].now .af{fill:var(--color-accent)}
html.motion .cv [data-s].now{animation:cv-in 700ms var(--ease-out)}
@keyframes cv-in{from{opacity:0.1;transform:translateY(6px)}to{opacity:1;transform:none}}
.cv-steps{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-3xs);margin:0;padding:0}
.cv-steps button{display:flex;align-items:baseline;gap:var(--space-3xs);font:inherit;font-size:var(--text-xs);color:var(--color-ink-3);background:none;border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-sm);padding:var(--space-3xs) var(--space-2xs);cursor:pointer}
.cv-steps button b{font-family:var(--font-display);font-weight:var(--weight-display)}
.cv-steps button.is-done{color:var(--color-ink-2)}
.cv-steps button[aria-pressed="true"]{color:var(--color-accent);border-color:var(--color-accent)}
/* Playback: idle shows a faint first step under a play button; the playing card gets the selected-node frame */
.cv svg{transition:opacity 400ms var(--ease-out)}
.concept[data-state="idle"] .cv svg{opacity:0.45}
.cv-play{position:absolute;inset-block-start:50%;inset-inline-start:50%;transform:translate(50%,-50%);cursor:pointer}
.concept[data-state="idle"] .cv:hover .cv-play{background:var(--color-accent);color:var(--color-accent-ink)}
.cv-play:active{transform:translate(50%,calc(-50% + 1px))}
.concept:not([data-state="idle"]) .cv-play{display:none}
.cv-tri{width:0;height:0;border-block:0.4em solid transparent;border-inline-end:0.65em solid currentColor}
.cv-len{font-weight:400;opacity:0.75}
.concept[data-state="playing"] .cv,.concept[data-state="paused"] .cv,.concept[data-state="manual"] .cv{border:2px solid var(--color-accent);box-shadow:4px 4px 0 var(--color-ink)}
.cv-live{color:var(--color-accent)}
html.motion .cv-live{display:inline-block;animation:pulse 1.6s var(--ease-in-out) infinite}
.cv-steps button{position:relative;overflow:hidden;transition:color var(--dur-short) var(--ease-out)}
.cv-steps button:hover{color:var(--color-ink)}
.cv-steps button[aria-pressed="true"]:hover{color:var(--color-accent)}
.cv-steps button::after{content:"";position:absolute;inset-inline:0;inset-block-end:0;height:2px;background:var(--color-ink-3);transform:scaleX(0);transform-origin:right}
.cv-steps button.is-done::after{transform:none}
.cv-steps button[aria-pressed="true"]::after{background:var(--color-accent)}
.concept[data-state="done"] .cv-steps button[aria-pressed="true"]::after,.concept[data-state="manual"] .cv-steps button[aria-pressed="true"]::after{transform:none}
.concept[data-state="playing"] .cv-steps button.run::after,.concept[data-state="paused"] .cv-steps button.run::after{animation:cv-fill 2400ms linear forwards}
.concept[data-state="paused"] .cv-steps button.run::after{animation-play-state:paused}
.cv{cursor:pointer}
.cv:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
@keyframes cv-fill{from{transform:scaleX(0)}to{transform:none}}
.cv-steps button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.cv-text{min-height:4.5em;font-size:var(--text-md)}
.cv-myth{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2xs)}
.cv-myth p{font-size:var(--text-sm);border:var(--rule-hair) solid var(--color-rule);padding:var(--space-2xs) var(--space-xs);background:var(--color-paper-2)}
.cv-myth p:first-child{color:var(--color-ink-3)}
.cv-myth b{display:block}
.cv-mark{font-family:var(--font-display);color:var(--color-wrong);margin-inline-end:var(--space-3xs)}
.cv-mark.cv-ok{color:var(--color-accent)}
@media (max-width:30rem){.cv-myth{grid-template-columns:1fr}.cv{margin-inline:calc(-1 * var(--page-gutter));padding:var(--space-2xs) var(--space-3xs);border-inline:0}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:0.01ms!important}
}
.lang-pick a[lang="he"]{font-family:'IBM Plex Sans Hebrew',var(--font-body)}
.lang-pick a[lang="ru"]{font-family:'IBM Plex Sans',var(--font-body)}
/* Arabic and Russian wordmarks are longer: keep them on one line on phones; Russian theme labels make the top row too wide */
@media (max-width:600px){:root:lang(ar) .mast-name,:root:lang(ru) .mast-name{font-size:clamp(1.75rem,1rem + 4.5vw,2.5rem)}}
@media (max-width:420px){:root:lang(ru) .theme-toggle .tg-opt{display:none}}

/* ── Split pages: teasers, "what next", concept pages, page transitions ─────────── */
.section-head h1{font-size:var(--text-3xl)}
[data-spine]{scroll-margin-top:4rem}
.teaser-more{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs) var(--space-md);margin-top:var(--space-lg)}
.teaser-more span:not([aria-hidden]){color:var(--color-ink-3);font-size:var(--text-sm)}
.election-teaser{padding-bottom:var(--space-2xl)}
.reform-teaser .reform-ask{margin-top:var(--space-sm)}
.teaser-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2xs)}
.teaser-chips li{border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-sm);padding:var(--space-3xs) var(--space-xs);font-weight:600;font-size:var(--text-sm);background:var(--color-paper)}
.concepts-teaser{padding-bottom:var(--space-2xl)}
.wn-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:var(--space-sm)}
.wn-card{display:flex;flex-direction:column;gap:var(--space-3xs);height:100%;padding:var(--space-sm) var(--space-md) var(--space-md);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-sm);color:var(--color-ink);text-decoration:none;transition:border-color var(--dur-short) var(--ease-out),transform var(--dur-short) var(--ease-out)}
.wn-card b{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-lg);line-height:1.2}
.wn-card small{font-size:var(--text-sm);color:var(--color-ink-3)}
.wn-card:hover{border-color:var(--color-ink);transform:translateY(-2px)}
.wn-card:active{transform:none}
.wn-card:focus-visible,.wn-next:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.concept-card .cv-thumb{display:block;margin:0 0 var(--space-xs);aspect-ratio:360/210;padding:var(--space-2xs);pointer-events:none}
.cv-thumb [data-s]{opacity:1}
.cv-thumb .cv-token{display:none}
.concept-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:var(--space-md)}
.whatnext .section-head{margin-bottom:var(--space-md)}
.wn-next{position:relative;display:grid;gap:var(--space-3xs);padding:var(--space-md) var(--space-lg);padding-inline-end:4.5rem;max-width:44rem;background:var(--color-ink);color:var(--color-paper);border-radius:var(--radius-sm);text-decoration:none;transition:background-color var(--dur-short) var(--ease-out)}
.wn-next .kicker{color:inherit;opacity:0.75}
.wn-next b{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-2xl);line-height:1.15}
.wn-next small{font-size:var(--text-sm);opacity:0.8}
.wn-arrow{position:absolute;inset-inline-end:var(--space-lg);top:50%;transform:translateY(-50%);font-size:var(--text-2xl);transition:transform var(--dur-short) var(--ease-out)}
.wn-next:hover{background:var(--color-accent);color:var(--color-accent-ink)}
.wn-next:hover .wn-arrow{transform:translate(-6px,-50%)}
[dir="ltr"] .wn-next:hover .wn-arrow{transform:translate(6px,-50%)}
.wn-h{font-size:var(--text-lg);margin:var(--space-xl) 0 var(--space-sm)}
.wn-back{margin-top:var(--space-lg);font-weight:700}
.wn-back a{color:var(--color-accent)}
.concept-page{max-width:48rem;padding-bottom:var(--space-xl)}
.concept-page h1{font-size:var(--text-3xl)}
.concept-crumb{font-size:var(--text-sm)}
.concept-crumb a{color:var(--color-ink-3)}
.cv-all{margin-top:var(--space-xs);font-size:var(--text-sm)}
.cv-all summary{cursor:pointer;color:var(--color-ink-3)}
.cv-all ol{margin-top:var(--space-2xs);padding-inline-start:1.25em;display:grid;gap:var(--space-3xs)}
.concept-more{max-width:48rem}
.concept-more h2{font-size:var(--text-xl);margin-bottom:var(--space-2xs)}
.concept-more .fine{margin-top:var(--space-xs)}
/* Page to page: a short cross-fade where the browser supports it */
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  ::view-transition-old(root),::view-transition-new(root){animation-duration:160ms}
}

/* ── Spine (nav.js). Desktop: a book spine of seat dots on the inline-start edge, the current name set vertically,
   an index card on hover; names stay printed in the margin from 1600px. Phone: a progress dial in the thumb corner
   whose sections fan up in a bow. State from nav.js: --p, --row, .is-open, .is-away, .is-scrub; li --x/--k/--from;
   .spine-item .is-current/.is-passed/.is-aim. ─────────── */
.spine{--dot:7px;--rail-x:calc(var(--dot) / 2 + 6px);position:fixed;z-index:30;inset-inline-start:max(10px,env(safe-area-inset-left,0px));top:50%;transform:translateY(-50%);font-family:var(--font-body)}
.spine-tab,.spine-backdrop,.spine-close{display:none}

/* The panel holds the heading, the list, the next-page link and the rail */
.spine-panel{position:relative;display:flex;flex-direction:column;padding-block:var(--space-2xs);border:var(--rule-hair) solid transparent;border-radius:var(--radius-sm);background:transparent;transition:background-color var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out),box-shadow var(--dur-short) var(--ease-out)}
.spine-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);height:0;overflow:hidden;opacity:0;padding-inline:var(--space-xs);font-size:var(--text-2xs);font-weight:700;color:var(--color-ink-3);white-space:nowrap}
.spine-pos{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-sm);color:var(--color-accent);font-variant-numeric:tabular-nums}
.spine-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}

/* Rail: hairline with violet fill. It runs through the dot centres. */
.spine-rail{position:absolute;inset-block:calc(var(--space-2xs) + 11px);inset-inline-start:calc(var(--rail-x) - 0.5px);width:1px;background:var(--color-rule);pointer-events:none}
.spine-rail>span{position:absolute;inset:0;background:var(--color-accent);transform-origin:top;transform:scaleY(var(--p,0))}

/* One stop: a seat dot and a name */
.spine-item,.spine-next{position:relative;display:flex;align-items:center;gap:var(--space-xs);min-height:22px;padding-inline:6px var(--space-xs);color:var(--color-ink-3);text-decoration:none;font-size:var(--text-xs);line-height:1.25;white-space:nowrap;border-radius:var(--radius-sm)}
.spine-mark{flex:none;position:relative;z-index:1;width:var(--dot);height:var(--dot);border-radius:50%;background:var(--color-paper);box-shadow:inset 0 0 0 1.5px var(--color-ink-3);transition:transform var(--dur-short) var(--ease-out),background-color var(--dur-short) var(--ease-out)}
.spine-item.is-passed .spine-mark{background:var(--color-ink-3);box-shadow:none}
.spine-item.is-current .spine-mark{background:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-wash);transform:scale(1.45)}
.spine-name{min-width:0;overflow:hidden;text-overflow:ellipsis;opacity:0;max-width:0;transition:opacity var(--dur-short) var(--ease-out)}
.spine-item.is-current{color:var(--color-ink);font-weight:700}

/* Next page: a small page shape, not a seat */
.spine-next{margin-top:var(--space-xs);color:var(--color-accent)}
.spine-next .spine-mark{border-radius:1px;width:var(--dot);height:calc(var(--dot) + 3px);background:var(--color-paper);box-shadow:inset 0 0 0 1.5px var(--color-accent)}
.spine-next small{display:block;font-size:var(--text-2xs);font-weight:600;color:var(--color-ink-3)}
.spine-next .spine-name{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-sm)}

/* The book-spine label: the current section's name, set vertically beside the rail */
.spine-label{position:absolute;right:calc(var(--rail-x) + 10px);top:var(--label-y,50%);writing-mode:vertical-rl;font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-xs);letter-spacing:0.02em;color:var(--color-ink-2);white-space:nowrap;pointer-events:none;transition:top var(--dur-med) var(--ease-out),opacity var(--dur-short) var(--ease-out)}
:root[dir="ltr"] .spine-label{right:auto;left:calc(var(--rail-x) + 10px)}
/* physical sides above: logical insets would follow the label's own vertical writing mode */
:root:lang(ar) .spine-label,:root:lang(ru) .spine-label,:root:lang(en) .spine-label{font-family:var(--font-body);font-weight:700}

/* Hover or focus: the spine opens into a printed index card with the site's hard offset shadow */
.spine:hover .spine-panel,.spine:focus-within .spine-panel{background:var(--color-paper);border-color:var(--color-ink);box-shadow:-4px 4px 0 var(--color-ink)}
:root[dir="ltr"] .spine:hover .spine-panel,:root[dir="ltr"] .spine:focus-within .spine-panel{box-shadow:4px 4px 0 var(--color-ink)}
.spine:hover .spine-head,.spine:focus-within .spine-head{height:2rem;opacity:1;border-bottom:var(--rule-hair) solid var(--color-rule);margin-bottom:var(--space-3xs)}
.spine:hover .spine-name,.spine:focus-within .spine-name{opacity:1;max-width:16rem}
.spine:hover .spine-label,.spine:focus-within .spine-label{opacity:0}
.spine:hover .spine-rail,.spine:focus-within .spine-rail{inset-block-start:calc(var(--space-2xs) + 2rem + var(--space-3xs) + 11px)}
.spine-item:hover,.spine-item:focus-visible,.spine-next:hover,.spine-next:focus-visible{color:var(--color-ink);background:var(--color-paper-2)}
.spine-item:hover .spine-mark{transform:scale(1.3)}
.spine a:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}

/* Wide screens: the margin has room, so the names stay printed there. No hover needed. */
@media (min-width:1600px){
  .spine .spine-name{opacity:1;max-width:11rem}
  .spine .spine-label{display:none}
  .spine-item{color:var(--color-ink-3)}
}

/* ---------- Phone: dial and fan ---------- */
@media (max-width:699px){
  .spine{inset:auto max(14px,env(safe-area-inset-right,0px)) calc(14px + env(safe-area-inset-bottom,0px)) auto;top:auto;transform:none;opacity:var(--shown,1);transition:opacity var(--dur-med) var(--ease-out)}
  .spine.is-away{--shown:0;pointer-events:none}
  .spine-label,.spine-rail,.spine-ticks,.spine-cue{display:none}

  /* The dial: a ring that fills violet as you read, the section number inside */
  .spine-tab{position:relative;z-index:3;display:grid;place-items:center;width:52px;height:52px;padding:0;border:0;border-radius:50%;background:conic-gradient(var(--color-accent) calc(var(--p,0) * 1turn),var(--color-rule) 0);color:var(--color-ink);touch-action:none;-webkit-tap-highlight-color:transparent;transition:transform var(--dur-short) var(--ease-out)}
  .spine-tab::before{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--color-paper);box-shadow:inset 0 0 0 var(--rule-hair) var(--color-rule)}
  .spine-index{position:relative;font-family:var(--font-display);font-weight:var(--weight-display);font-size:1.0625rem;line-height:1;font-variant-numeric:tabular-nums}
  .spine-tab:active{transform:scale(0.94)}
  .spine.is-open .spine-tab .spine-index{color:var(--color-accent)}

  /* Backdrop dims the page so the fan reads cleanly */
  .spine-backdrop{position:fixed;inset:0;z-index:1;background:var(--color-paper);opacity:0;pointer-events:none;transition:opacity var(--dur-med) var(--ease-out)}
  .spine.is-open .spine-backdrop{display:block;opacity:0.86;pointer-events:auto}
  .spine-backdrop{display:block}

  /* The fan: rows stack up from the dial and bow away from the edge */
  .spine-panel{position:fixed;z-index:2;inset-inline:auto;right:max(14px,env(safe-area-inset-right,0px));bottom:calc(14px + 52px + 10px + env(safe-area-inset-bottom,0px));width:min(78vw,300px);padding:0;border:0;background:transparent;box-shadow:none!important;pointer-events:none;align-items:flex-end}
  .spine-head{order:-1;height:auto;opacity:0;padding:0 0 var(--space-2xs);border:0!important;margin:0!important;justify-content:flex-end;gap:var(--space-2xs);transition:opacity var(--dur-short) var(--ease-out)}
  .spine-list{align-items:flex-end;gap:4px;width:100%}
  .spine-list>li,.spine-panel>.spine-next{display:flex;justify-content:flex-end;margin-right:var(--x,0px);opacity:0;transform:translate(calc(-1 * var(--x,0px) * 0.3),calc(var(--from,0px))) scale(0.7);transform-origin:right bottom;transition:transform var(--dur-med) var(--ease-out),opacity var(--dur-short) var(--ease-out);transition-delay:calc(var(--k,0) * 16ms)}
  .spine-item,.spine-next{min-height:var(--row,40px);max-width:100%;padding:0 var(--space-sm);gap:var(--space-xs);background:var(--color-paper-2);border:var(--rule-hair) solid var(--color-rule);font-size:var(--text-sm);color:var(--color-ink-2);flex-direction:row-reverse}
  :root[dir="rtl"] .spine-item,:root[dir="rtl"] .spine-next{flex-direction:row}
  .spine-name{opacity:1;max-width:none}
  .spine-mark{width:8px;height:8px}
  .spine-item.is-current{background:var(--color-accent-wash);border-color:var(--color-accent);color:var(--color-ink)}
  .spine-item.is-current .spine-mark{transform:none;box-shadow:none}
  .spine-next{margin:6px 0 0;border-color:var(--color-accent);background:var(--color-paper)}
  .spine-next .spine-name{font-size:var(--text-md)}
  .spine-next small{display:inline;margin-inline-end:var(--space-2xs)}
  /* Long names wrap to two lines rather than cut off */
  .spine-item .spine-name,.spine-next .spine-name{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25}
  .spine-item,.spine-next{padding-block:6px}

  /* Under the finger while sliding: inverted, a touch larger */
  .spine-item.is-aim,.spine-next.is-aim{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper)}
  .spine-item.is-aim .spine-mark{background:var(--color-accent);box-shadow:none}
  .spine-list>li:has(.is-aim),.spine-next.is-aim{transform:scale(1.04)!important}

  .spine.is-open .spine-panel{pointer-events:auto}
  .spine.is-open .spine-head{opacity:1}
  .spine-list>li{width:100%}
  /* Rows hug the dial edge: the physical right in both directions */
  :root[dir="rtl"] .spine-panel,:root[dir="rtl"] .spine-list{align-items:flex-start}
  :root[dir="rtl"] .spine-list>li,:root[dir="rtl"] .spine-panel>.spine-next{justify-content:flex-start}
  :root[dir="rtl"] .spine-head{justify-content:flex-start}
  .spine.is-open .spine-list>li,.spine.is-open .spine-panel>.spine-next{opacity:1;transform:none}
  .spine:not(.is-open) .spine-list>li,.spine:not(.is-open) .spine-panel>.spine-next{transition-delay:0ms}
}

@media (prefers-reduced-motion:reduce){
  .spine *,.spine{transition:none!important}
}

/* Knesset at work: stops. Every stop on knesset.html has three depths: the line (finding + one figure), the glance
   (five rows or one picture at most) and the full list behind .stop-more. Spec and mocks: design/knesset-at-work/
   (stops.css, mock.html, stops2.html). Stop-specific CSS goes after this block, under its own prefix. */
.kw-head{padding-block:var(--space-2xl) var(--space-lg);border-bottom:2px solid var(--color-ink)}
.kw-head .kicker{font-family:var(--font-display);font-weight:var(--weight-display)}
.kw-head h1{font-size:var(--text-3xl);line-height:1.05}
.kw-head p{margin-top:var(--space-xs);color:var(--color-ink-2);max-width:62ch}
.stop{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-md);padding-block:var(--space-xl);border-top:0;border-bottom:var(--rule-hair) solid var(--color-rule)}
.stop-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-md);align-items:end}
.stop-num{font-family:var(--font-display);font-weight:var(--weight-display);color:var(--color-accent);font-size:var(--text-sm)}
.stop h2{font-size:var(--text-2xl);line-height:1.15}
.stop-finding{margin-top:var(--space-2xs);color:var(--color-ink-2);max-width:58ch}
.stop-figure{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-3xl);line-height:1;font-variant-numeric:tabular-nums;text-align:end;margin:0}
.stop-figure small{display:block;font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;color:var(--color-ink-3);margin-top:var(--space-3xs)}
.stop-meta{display:flex;flex-wrap:wrap;gap:var(--space-sm);font-size:var(--text-xs);color:var(--color-ink-3);margin:0}
.stop-meta a,.stop-src{color:var(--color-accent);font-weight:600}
.stop-src{font-size:var(--text-xs);white-space:nowrap}
.stop-more{justify-self:start;background:transparent;color:var(--color-ink);border:var(--rule-hair) solid var(--color-ink);border-radius:var(--radius-sm);padding:var(--space-2xs) var(--space-sm);font:700 var(--text-sm) var(--font-body);cursor:pointer}
.stop-more:active{transform:translateY(1px)}
.stop-more[aria-expanded="true"]{border-color:var(--color-accent);color:var(--color-accent)}
.stop-more:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
@media (max-width:640px){.stop-line{grid-template-columns:1fr}.stop-figure{text-align:start}}

/* Stop 04, questions to ministers (questions.js): five ranked bars against the 21-day deadline, then every ministry
   and every question behind .stop-more */
.qs-chart{position:relative;--name:9rem;--gap:var(--space-sm);max-width:calc(9rem + var(--space-sm) + 36rem)}
#questions .stop-figure{padding-inline:var(--space-md)}
.qs-bars{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2xs)}
.qs-bar{display:grid;grid-template-columns:var(--name) minmax(0,1fr);gap:var(--gap);align-items:center;font-size:var(--text-sm);line-height:1.25}
.qs-name{font-weight:600}
.qs-short{display:none}
.qs-track{height:1.6rem;display:block}
.qs-fill{height:100%;width:var(--w);min-width:2.2rem;background:var(--color-ink-3);border-radius:2px;display:flex;align-items:center;justify-content:flex-end;padding-inline:8px;box-sizing:border-box;color:var(--color-paper);font-weight:700;font-size:var(--text-xs);font-variant-numeric:tabular-nums;transform-origin:inline-start}
.qs-bar.top .qs-fill{background:var(--color-accent);color:var(--color-accent-ink)}
/* the deadline: a thin dashed line across all five tracks, at 21 days on the same scale */
.qs-deadline{position:absolute;top:0;bottom:0;inset-inline-start:calc(var(--name) + var(--gap) + (100% - var(--name) - var(--gap)) * var(--at) / 100%);border-inline-start:1px dashed var(--color-ink-2);pointer-events:none}
.qs-deadline span{position:absolute;top:0;inset-inline-start:4px;font-size:var(--text-2xs);font-weight:700;color:var(--color-ink-2);white-space:nowrap;line-height:1}
.qs-chart:has(.qs-deadline){padding-top:1.4rem}
.qs-open b{color:var(--color-ink);font-variant-numeric:tabular-nums}
.qs-full{display:grid;gap:var(--space-md)}
.qs-full[hidden]{display:none}
.qs-sort{display:flex;flex-wrap:wrap;gap:var(--space-2xs)}
.qs-sort button{appearance:none;border:var(--rule-hair) solid var(--color-rule);background:transparent;color:var(--color-ink-2);border-radius:var(--radius-sm);padding:4px 12px;font:600 var(--text-sm) var(--font-body);cursor:pointer}
.qs-sort button[aria-pressed="true"]{border-color:var(--color-ink);color:var(--color-ink)}
.qs-sort button:focus-visible,.qs-find input:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.qs-table,.qs-list{list-style:none;margin:0;padding:0}
.qs-table li{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(4,minmax(0,1fr)) auto;gap:var(--space-sm);align-items:baseline;padding:var(--space-2xs) 0;border-top:var(--rule-hair) solid var(--color-rule);font-size:var(--text-sm)}
.qs-c{color:var(--color-ink-2);font-variant-numeric:tabular-nums}
.qs-o{color:var(--color-ink);font-weight:700}
.qs-note{margin:0;font-size:var(--text-xs);color:var(--color-ink-3);max-width:70ch}
.qs-h{font-size:var(--text-lg);margin:var(--space-sm) 0 0}
.qs-find{display:grid;gap:var(--space-3xs);max-width:32rem;font-size:var(--text-sm);font-weight:600}
.qs-find input{background:var(--color-paper);color:var(--color-ink);border:var(--rule-hair) solid var(--color-ink);border-radius:var(--radius-sm);padding:var(--space-2xs) var(--space-sm);font:400 var(--text-md) var(--font-body)}
.qs-list li{display:grid;grid-template-columns:6.5rem minmax(0,1fr) auto;column-gap:var(--space-sm);row-gap:2px;padding:var(--space-xs) 0;border-top:var(--rule-hair) solid var(--color-rule);font-size:var(--text-sm)}
.qs-list li>b{font-weight:600;line-height:1.35}
.qs-list .qs-when{grid-row:span 3;font-size:var(--text-xs);color:var(--color-ink-3);font-variant-numeric:tabular-nums}
.qs-list .qs-who,.qs-list .qs-state{grid-column:2;color:var(--color-ink-2);font-size:var(--text-xs)}
.qs-list .qs-who a{color:var(--color-accent);font-weight:600}
.qs-list .stop-src{grid-column:3;grid-row:1}
.qs-list li.qs-wait{display:block;color:var(--color-ink-3)}
.qs-next{margin-top:var(--space-2xs)}
@media (max-width:640px){
 #questions{padding-bottom:calc(4.5rem + env(safe-area-inset-bottom))}
 #questions .stop-figure{padding-inline:0}
 .qs-chart{--name:7.5rem}
 .qs-long{display:none}
 .qs-short{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .qs-table li{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;row-gap:2px}
 .qs-table .qs-m{grid-column:1/-1}
 .qs-list li{grid-template-columns:minmax(0,1fr) auto}
 .qs-list .qs-when{grid-row:auto;grid-column:1}
 .qs-list li>b,.qs-list .qs-who,.qs-list .qs-state{grid-column:1/-1}
 .qs-list .stop-src{grid-column:2;grid-row:1}
}

/* Stop 05, the life of a bill (bill.js): chips, a time row with segments sized by days, the stage columns under it */
.bt-pick{display:flex;flex-wrap:wrap;gap:var(--space-2xs)}
.bt-pick button{appearance:none;border:var(--rule-hair) solid var(--color-rule);background:transparent;color:var(--color-ink-2);border-radius:var(--radius-sm);padding:4px 12px;font:600 var(--text-sm) var(--font-body);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.bt-pick button[aria-pressed="true"]{border-color:var(--color-ink);color:var(--color-ink)}
.bt-pick button:active{transform:translateY(1px)}
.bt-pick button:focus-visible,.bt-search input:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.bt-track{display:grid;gap:var(--space-sm)}
.bt-time{display:flex;height:2.6rem;gap:3px}
.bt-seg{flex:var(--d) 1 0;min-width:2.2rem;background:var(--color-paper-3);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:var(--text-2xs);font-weight:700;color:var(--color-ink-2);white-space:nowrap;overflow:hidden;transform-origin:right;transition:transform 700ms var(--ease-out),opacity 400ms var(--ease-out);transition-delay:calc(var(--i)*140ms)}
.bt-seg.long,.bt-seg.now{min-width:9rem}
.bt-seg.done{background:var(--color-ink-3);color:var(--color-paper)}
.bt-seg.long{background:var(--color-ink);color:var(--color-paper)}
.bt-seg.now{background:var(--color-accent-wash);color:var(--color-ink);box-shadow:inset 0 0 0 1.5px var(--color-accent)}
.bt-track:not(.is-drawn) .bt-seg{transform:scaleX(0);opacity:0}
.bt-stages{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:var(--space-2xs)}
.bt-stages li{display:grid;gap:2px;align-content:start;font-size:var(--text-xs);color:var(--color-ink-3);border-top:2px solid var(--color-rule);padding-top:var(--space-2xs);transition:border-color 400ms var(--ease-out);transition-delay:calc(var(--i)*140ms)}
.bt-stages li b{font-size:var(--text-sm);color:var(--color-ink);line-height:1.3}
.bt-stages li.ahead b,.bt-stages li.skipped b{color:var(--color-ink-3);font-weight:600}
.bt-track.is-drawn .bt-stages li.done{border-color:var(--color-ink)}
.bt-track.is-drawn .bt-stages li.now{border-color:var(--color-accent)}
.bt-stages li.now b{color:var(--color-accent)}
.bt-stages .bt-fork{font-weight:700;color:var(--color-ink-2)}
.bt-fork button{all:unset;cursor:pointer;color:var(--color-accent);text-decoration:underline}
.bt-who{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-lg);font-size:var(--text-sm);color:var(--color-ink-2);margin:0}
.bt-who b{color:var(--color-ink)}
.bt-who a{color:var(--color-accent);font-weight:600}
.bt-search[hidden]{display:none}
.bt-search{display:grid;gap:var(--space-2xs);max-width:36rem}
.bt-search input{background:var(--color-paper);color:var(--color-ink);border:var(--rule-hair) solid var(--color-ink);border-radius:var(--radius-sm);padding:var(--space-2xs) var(--space-sm);font:600 var(--text-sm) var(--font-body)}
.bt-search ul,.bt-part ul{list-style:none;margin:0;padding:0}
.bt-search li,.bt-part li{display:flex;flex-wrap:wrap;gap:var(--space-2xs) var(--space-sm);align-items:baseline;padding-block:var(--space-2xs);border-top:var(--rule-hair) solid var(--color-rule);font-size:var(--text-sm)}
.bt-search li button{all:unset;cursor:pointer;font-weight:700;color:var(--color-ink)}
.bt-search li small,.bt-part small,.bt-part bdi{color:var(--color-ink-3);font-size:var(--text-xs)}
.bt-full{display:grid;gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}
.bt-part h3{font-size:var(--text-md);margin-bottom:var(--space-2xs)}
@media (max-width:640px){
 /* the track scrolls sideways as one piece, so segments and stages stay aligned */
 .bt-track{overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}.bt-track>*{min-width:46rem}
}
@media (prefers-reduced-motion:reduce){.bt-seg,.bt-stages li{transition:none}}
/* Stop 06, the Basic Laws (laws.js). A tile per Basic Law with one tick per amendment; the newest law is the only accent.
   Tiles open the amendment list in place. Spec: design/knesset-at-work/stops2.html. */
.bl-era{display:flex;align-items:center;gap:var(--space-xs);margin:0;font-size:var(--text-2xs);font-weight:600;color:var(--color-ink-3)}
.bl-era i,.bl-ticks i{display:inline-block;width:3px;height:12px;background:var(--color-ink-2);border-radius:1px}
.bl-laws{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(11.5rem,1fr));gap:var(--space-xs)}
.bl-law{display:grid;gap:6px;align-content:start;width:100%;height:100%;text-align:start;padding:var(--space-xs) var(--space-sm);background:var(--color-paper);color:var(--color-ink);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-sm);font:inherit;cursor:pointer;transition:border-color var(--dur-short) var(--ease-out)}
.bl-law:active{transform:translateY(1px)}
.bl-law:focus-visible,.bl-group summary:focus-visible,.bl-tabs button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.bl-y{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-sm);line-height:1;color:var(--color-ink-3);font-variant-numeric:tabular-nums}
.bl-law b{font-size:var(--text-sm);line-height:1.3}
.bl-ticks{display:flex;flex-wrap:wrap;gap:2px;min-height:12px}
.bl-n{font-size:var(--text-2xs);font-weight:600;color:var(--color-ink-3)}
.bl-law.new{border-color:var(--color-accent)}
.bl-law.new .bl-y{color:var(--color-accent)}
.stop-figure small+small{font-weight:400;margin-top:0}
/* Depth 3 */
.bl-full{display:grid;gap:var(--space-sm);scroll-margin-top:4rem}
.bl-wait{color:var(--color-ink-3);font-size:var(--text-sm)}
.bl-tabs{display:flex;flex-wrap:wrap;gap:var(--space-md);border-bottom:var(--rule-hair) solid var(--color-rule)}
.bl-tabs button{background:transparent;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;padding:var(--space-2xs) 0;font-weight:700;font-size:var(--text-sm);color:var(--color-ink-3)}
.bl-tabs button[aria-selected="true"]{color:var(--color-ink);border-bottom-color:var(--color-ink)}
.bl-group{border-bottom:var(--rule-hair) solid var(--color-rule);scroll-margin-top:4rem}
.bl-group summary{display:grid;grid-template-columns:3.25rem minmax(0,1fr) auto;gap:var(--space-sm);align-items:baseline;padding:var(--space-xs) 0;cursor:pointer;list-style:none}
.bl-group summary::-webkit-details-marker{display:none}
.bl-group summary b{font-size:var(--text-md)}
.bl-group summary .bl-n::after{content:" ＋";color:var(--color-ink-3)}
.bl-group[open] summary .bl-n::after{content:" －"}
.bl-about{margin:0 0 var(--space-xs);color:var(--color-ink-2);font-size:var(--text-sm);max-width:var(--measure)}
.bl-steps,.bl-all{list-style:none;margin:0 0 var(--space-sm);padding:0}
.bl-steps li,.bl-all li{display:grid;grid-template-columns:9.5rem minmax(0,1fr) auto;gap:var(--space-sm);align-items:baseline;padding:var(--space-2xs) 0;border-top:var(--rule-hair) solid var(--color-rule);font-size:var(--text-sm)}
.bl-all li{grid-template-columns:minmax(0,1fr) 3.5rem auto}
.bl-date{color:var(--color-ink-3);font-variant-numeric:tabular-nums;font-size:var(--text-xs)}
.bl-name small{display:block;font-size:var(--text-2xs);color:var(--color-ink-3)}
.bl-name em{font-style:normal;font-weight:700}
.bl-search{display:grid;gap:var(--space-3xs);font-weight:600;font-size:var(--text-sm);max-width:28rem;margin-top:var(--space-xs)}
.bl-search input{font:inherit;font-weight:400;padding:var(--space-2xs) var(--space-sm);background:var(--color-paper);color:var(--color-ink);border:var(--rule-hair) solid var(--color-ink);border-radius:var(--radius-sm)}
.bl-search input:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}
.bl-found{margin:var(--space-2xs) 0;font-size:var(--text-xs);color:var(--color-ink-3)}
.bl-c{display:none}
@media (max-width:640px){
  /* Phones: one compact row per law so all 14 fit one screen; the ticks stay, smaller, under the name */
  .bl-laws{grid-template-columns:1fr;gap:0}
  .bl-law{grid-template-columns:2.6rem minmax(0,1fr) auto;align-items:center;gap:2px var(--space-xs);padding:8px 0;border:0;border-top:var(--rule-hair) solid var(--color-rule);border-radius:0;background:none}
  .bl-law .bl-y{grid-row:1/3;align-self:start;padding-top:2px}
  .bl-law b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .bl-law .bl-pre,.bl-law .bl-n{display:none}
  .bl-law b{grid-area:1/2}
  .bl-law .bl-c{grid-area:1/3;display:block;font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-sm);color:var(--color-ink-2);font-variant-numeric:tabular-nums}
  .bl-law .bl-ticks{grid-area:2/2/3/-1;gap:1px;min-height:6px}
  .bl-law .bl-ticks i{width:2px;height:6px}
  .bl-law.new{border-color:var(--color-rule)}
  .bl-steps li{grid-template-columns:minmax(0,1fr) auto}
  .bl-steps .bl-date{grid-column:1/-1}
  .bl-group summary{grid-template-columns:minmax(0,1fr) auto}
  .bl-group summary .bl-y{display:none}
}
