/* V2 layered guide: answer-first chapters, argument map, reading-depth switch. */
:root {
    --ink: #070707;
    --paper: #F2F3F6;
    --white: #FFFFFF;
    --blue: #110FFF;
    --blue-ink: #0D0BC4;
    --blue-soft: #E7E7FF;
    --green: #0B8A47;
    --green-ink: #09753C;
    --red: #D22F2F;
    --red-ink: #BD2A2A;
    --grey: #5C6470;
    --line: #D9DCE4;
    --dark: #0E0E1E;
    --yellow: #FFD84D;
    --serif: Georgia, "Times New Roman", serif;
    --sans: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  }
  * { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body { margin: 0; background: var(--paper); color: var(--ink); font: 400 17px/1.7 var(--serif); }
  @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

  .spine { width: min(680px, 100% - 44px); margin-inline: auto; }
  .wide { width: min(880px, 100% - 44px); margin-inline: auto; }

  a { color: var(--blue-ink); }
  button { cursor: pointer; font: inherit; color: inherit; }
  :focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
  .skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 100; padding: .7rem 1rem; background: var(--yellow); color: var(--ink); font: 900 .8rem var(--sans); text-decoration: none; }
  .skip-link:focus { top: .8rem; }

  .label { font: 900 .64rem/1.3 var(--sans); letter-spacing: .15em; text-transform: uppercase; }

  /* ---------- header ---------- */
  .site-header { position: sticky; top: 0; z-index: 50; background: var(--dark); color: white; }
  .site-header .bar { display: flex; align-items: center; gap: 1rem; height: 60px; padding: 0 max(22px, calc((100vw - 1240px) / 2)); }
  .brand { display: flex; align-items: center; gap: .8rem; margin-right: auto; text-decoration: none; color: white; }
  .brand img { display: block; width: 112px; height: auto; }
  .brand span { display: block; padding-left: .8rem; border-left: 1px solid #3A3A55; font: 900 .6rem/1.25 var(--sans); letter-spacing: .09em; white-space: nowrap; }
  .brand small { display: block; margin-top: .15rem; color: #9A9AC2; font-size: .46rem; letter-spacing: .13em; }
  .site-header nav { display: flex; gap: .05rem; }
  .site-header nav a { padding: .45rem .5rem; color: #BCBCD6; text-decoration: none; font: 800 .6rem var(--sans); white-space: nowrap; }
  .site-header nav a:hover, .site-header nav a:focus-visible { background: var(--yellow); color: var(--ink); }
  .site-header nav a[aria-current="true"] { color: white; box-shadow: inset 0 -3px 0 var(--blue); }

  .language-switcher { display: flex; align-items: center; flex: 0 0 auto; }
  .language-switcher > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .language-switcher select { width: 78px; min-height: 32px; padding: .3rem 1.4rem .3rem .5rem; border: 1px solid #45455E; border-radius: 3px; background-color: #1D1D33; color: #BCBCD6; font: 800 .6rem/1 var(--sans); }
  .language-switcher select:hover { border-color: white; color: white; }
  .progress { position: absolute; left: 0; bottom: -3px; height: 3px; width: 0; background: var(--blue); }
  @media (max-width: 940px) { .site-header nav { display: none; } }
  @media (max-width: 560px) {
    .brand span { display: none; }
    .site-header .bar { gap: .6rem; }
  }


  /* ---------- hero ---------- */
  .hero { padding: clamp(44px, 7vw, 92px) 0 clamp(40px, 6vw, 72px); background: var(--white); border-bottom: 1px solid var(--line); }
  .hero .kicker { margin: 0 0 1.1rem; color: var(--blue-ink); }
  .hero h1 { margin: 0; font: 500 clamp(2.7rem, 6.4vw, 4.9rem)/1.02 var(--serif); letter-spacing: -.035em; text-wrap: balance; }
  .hero h1 em { font-style: italic; color: var(--blue); }
  .hero .sub { margin: 1.3rem 0 0; max-width: 58ch; font-size: clamp(1.02rem, 1.4vw, 1.16rem); color: #2A2C33; }
  .story-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; margin-top: clamp(1.8rem, 3.5vw, 2.8rem); }
  .story-strip article { position: relative; display: grid; align-content: start; gap: .5rem; padding: .95rem 1rem 1.05rem; border: 1.5px solid var(--ink); background: var(--white); box-shadow: 7px 7px 0 rgba(7,7,7,.07); }
  .story-strip small { font: 900 .55rem var(--sans); letter-spacing: .12em; color: var(--grey); }
  .story-strip strong { font: 700 1.02rem/1.3 var(--serif); }
  .story-strip .verdicts { display: flex; gap: .3rem; flex-wrap: wrap; }
  .story-strip .verdicts i { font: 800 .68rem/1 var(--sans); font-style: normal; padding: .3rem .42rem; border: 1.5px solid var(--green); color: var(--green-ink); }
  .story-strip .verdicts i.no { border-color: var(--red); color: var(--red-ink); }
  .story-strip .step { position: absolute; top: -11px; left: 12px; padding: .15rem .4rem; background: var(--ink); color: white; font: 900 .55rem var(--sans); letter-spacing: .08em; }
  .story-strip .a-yes { color: var(--green-ink); font: 700 1.6rem/1 var(--serif); }
  .story-strip .a-verdict { color: var(--blue-ink); font: 700 1.05rem/1.25 var(--serif); }
  @media (max-width: 820px) { .story-strip { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 460px) { .story-strip { grid-template-columns: 1fr; } }
  .hero .cta-row { display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap; margin-top: clamp(1.6rem, 3vw, 2.4rem); }
  .hero .cta { padding: .78rem 1.15rem; background: var(--blue); color: white; text-decoration: none; font: 800 .78rem var(--sans); letter-spacing: .04em; }
  .hero .cta:hover { background: var(--blue-ink); }
  .hero .meta { color: var(--grey); font: 600 .74rem var(--sans); }

  /* ---------- the map ---------- */
  .map { padding: clamp(40px, 6vw, 72px) 0; }
  .map h2 { margin: .5rem 0 0; font: 500 clamp(1.9rem, 3.6vw, 2.7rem)/1.1 var(--serif); letter-spacing: -.025em; }
  .map .intro { margin: .9rem 0 0; max-width: 58ch; color: #2A2C33; }
  .map ol { list-style: none; margin: 1.8rem 0 0; padding: 0; border-top: 1.5px solid var(--ink); }
  .map li a { display: grid; grid-template-columns: 3.2rem minmax(72px, 9rem) minmax(0, 1.05fr) minmax(0, 1fr); align-items: baseline; gap: 1rem; padding: .8rem .4rem .8rem 0; border-bottom: 1px solid var(--line); color: inherit; text-decoration: none; }
  .map li a:hover, .map li a:focus-visible { background: var(--white); }
  .map .num { font: 800 .8rem var(--sans); color: var(--blue); font-variant-numeric: tabular-nums; text-align: right; }
  .map .word { font: 900 .62rem var(--sans); letter-spacing: .13em; }
  .map .q { font: 400 .98rem/1.45 var(--serif); }
  .map .a { font: 700 .95rem/1.4 var(--serif); font-style: italic; color: var(--blue-ink); text-align: right; }
  .map li a:hover .a { text-decoration: underline; }
  @media (max-width: 720px) {
    .map li a { grid-template-columns: 2.1rem 1fr; grid-template-rows: auto auto; row-gap: .15rem; }
    .map .word { grid-column: 2; }
    .map .q { grid-column: 2; }
    .map .a { grid-column: 2; text-align: left; }
    .map .num { grid-row: 1 / span 3; align-self: start; }
  }

  /* ---------- the machine (dark band) ---------- */
  .machine { padding: clamp(48px, 6.5vw, 80px) 0; background: var(--dark); color: white; }
  .machine .label { color: #8B8AFF; }
  .machine h2 { margin: .6rem 0 0; font: 500 clamp(2rem, 4.4vw, 3.2rem)/1.06 var(--serif); letter-spacing: -.03em; text-wrap: balance; }
  .machine h2 em { font-style: italic; color: #8B8AFF; }
  .machine .lede { margin: 1.1rem 0 0; max-width: 62ch; color: #C9C9DE; }
  .machine .gl { color: white; }
  .od-flow { margin-top: clamp(1.8rem, 3.5vw, 2.6rem); }
  .od-flow-label { margin: 0 0 1.1rem; font: 700 1rem/1.3 var(--serif); color: white; }
  #odf-svg { display: block; width: 100%; height: auto; }
  .odf-mobile { display: none; width: 100%; height: auto; }
  .od-flow .sc-card { fill: #1D1D33; }
  .od-flow .sc-dark { fill: var(--blue); }
  .od-flow .sc-ring { fill: none; stroke: #FF7B4A; stroke-width: 1.6; opacity: 0; transition: opacity .3s; }
  .od-flow g.lit .sc-ring { opacity: 1; }
  .od-flow .sc-t1 { font-size: 13px; font-weight: 700; text-anchor: middle; fill: white; font-family: var(--sans); }
  .od-flow .sc-t2 { font-size: 9px; font-weight: 500; text-anchor: middle; fill: #8F8FAF; font-family: var(--sans); }
  .od-flow .sc-w { fill: white; } .od-flow .sc-wm { fill: #C5CDF6; }
  .odf-status { margin: .7rem 0 0; text-align: center; min-height: 1.3em; font: 700 .6rem var(--sans); letter-spacing: .13em; color: #8F8FAF; text-transform: uppercase; }
  @media (max-width: 560px) {
    #odf-svg { display: none; }
    .odf-status { display: none; }
    .odf-mobile { display: block; max-width: 340px; margin-inline: auto; }
  }

  /* ---------- chapters ---------- */
  .chapter { padding: clamp(48px, 6.5vw, 84px) 0; }
  .chapter:nth-of-type(even of .chapter) { background: var(--white); border-block: 1px solid var(--line); }
  .marker { display: flex; align-items: center; gap: .6rem; }
  .marker .num { font: 800 .8rem var(--sans); color: var(--blue); font-variant-numeric: tabular-nums; }
  .marker .word { font: 900 .66rem var(--sans); letter-spacing: .16em; }
  .title-help { width: 1.15rem; height: 1.15rem; display: inline-grid; place-items: center; padding: 0; border: 1.5px solid var(--grey); border-radius: 50%; background: transparent; color: var(--grey); font: 800 .62rem var(--sans); }
  .title-help:hover { border-color: var(--blue); color: var(--blue); }
  .chapter h2 { margin: .85rem 0 0; font: 500 clamp(1.9rem, 4vw, 2.9rem)/1.08 var(--serif); letter-spacing: -.028em; text-wrap: balance; }
  .answer { display: grid; gap: .35rem; margin: 1.4rem 0 0; padding: .2rem 0 .2rem 1.1rem; border-left: 4px solid var(--blue); }
  .answer .label { color: var(--blue-ink); }
  .answer p { margin: 0; font: 700 clamp(1.12rem, 1.8vw, 1.3rem)/1.42 var(--serif); max-width: 56ch; }
  .lede { margin: 1.2rem 0 0; max-width: 62ch; color: #2A2C33; }
  .plain { margin: 1.6rem 0 0; }
  .plain .label { color: var(--grey); }
  .plain p { margin: .5rem 0 0; max-width: 64ch; }

  .gl { border-bottom: 1.5px dotted var(--blue); cursor: help; }
  .machine .gl { border-bottom-color: #8B8AFF; }

  /* lab card */
  .lab { position: relative; margin: 2.2rem auto 0; padding: 1.5rem clamp(1rem, 3vw, 1.7rem) 1.6rem; border: 1.5px solid var(--ink); background: var(--white); box-shadow: 9px 9px 0 rgba(17,15,255,.06); }
  .lab-chip { position: absolute; top: -12px; left: 16px; padding: .2rem .55rem; background: var(--blue); color: white; font: 900 .58rem var(--sans); letter-spacing: .14em; }
  .lab-head { margin: .2rem 0 0; font: 700 1.05rem/1.4 var(--serif); }
  .lab label { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin: 1.1rem 0 .3rem; font: 600 .8rem var(--sans); color: #2A2C33; }
  .lab output { font: 800 .8rem var(--sans); color: var(--ink); white-space: nowrap; }
  .lab input[type="range"] { width: 100%; accent-color: var(--blue); }
  .lab fieldset { margin: 1.1rem 0 0; padding: 0; border: 0; }
  .lab legend { padding: 0; margin-bottom: .4rem; font: 600 .8rem var(--sans); color: #2A2C33; }
  .size-buttons { display: flex; flex-wrap: wrap; gap: .35rem; }
  .size-buttons button { padding: .38rem .6rem; border: 1.5px solid var(--line); background: var(--white); font: 700 .74rem var(--sans); }
  .size-buttons button:hover { border-color: var(--ink); }
  .size-buttons button.active { border-color: var(--ink); background: var(--ink); color: white; }
  .lab-result { margin-top: 1.3rem; border-top: 2.5px solid var(--ink); padding-top: .9rem; }
  .lab-result small { display: block; font: 900 .6rem var(--sans); letter-spacing: .12em; color: var(--grey); }
  .lab-result strong { display: block; margin-top: .25rem; font: 700 clamp(1.5rem, 3vw, 2rem)/1.1 var(--serif); }
  .lab-result i { display: block; height: 8px; margin-top: .55rem; background: var(--paper); }
  .lab-result i b { display: block; height: 100%; width: 0; background: var(--green); transition: width .3s; }
  .lab-result p { margin: .6rem 0 0; font: 600 .8rem/1.6 var(--sans); color: #2A2C33; max-width: 70ch; }
  .fine { margin: 1rem 0 0; font: 600 .72rem/1.55 var(--sans); color: var(--grey); }
  .population-bar { position: relative; height: 14px; margin-top: .6rem; background: var(--red); opacity: .92; }
  .population-bar i { position: absolute; inset: 0 auto 0 0; background: var(--green); }
  .population-bar b { position: absolute; inset: 0 auto 0 0; background: repeating-linear-gradient(135deg, #D22F2F, #D22F2F 4px, #F2A9A9 4px, #F2A9A9 8px); }
  .bar-labels { display: flex; justify-content: space-between; gap: .6rem; margin-top: .3rem; font: 800 .62rem var(--sans); color: var(--grey); }

  /* prediction step inside lab */
  .predict { margin: 1.2rem 0 0; padding: .95rem 1.05rem 1.05rem; background: var(--blue-soft); }
  .predict small { display: block; font: 900 .58rem var(--sans); letter-spacing: .13em; color: var(--blue-ink); }
  .predict > p { margin: .45rem 0 0; font: 700 .95rem/1.5 var(--serif); }
  .predict-choices { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .7rem; }
  .predict-choices button { padding: .45rem .7rem; border: 1.5px solid var(--ink); background: var(--white); font: 700 .76rem var(--sans); }
  .predict-choices button:disabled { cursor: default; opacity: .55; }
  .predict-choices button.predict-right { background: var(--green); border-color: var(--green-ink); color: white; opacity: 1; }
  .predict-choices button.predict-wrong { background: var(--red); border-color: var(--red-ink); color: white; opacity: 1; }
  .predict-reveal { margin: .7rem 0 0; font: 600 .8rem/1.6 var(--sans); }

  /* stop lab & dial */
  .stop-presets button { font-size: .72rem; }
  .stop-curve, .dial-svg { display: block; width: 100%; height: auto; margin-top: 1.2rem; }
  .stop-caption { margin: .5rem 0 0; font: 600 .72rem var(--sans); color: var(--grey); }

  /* equivalence lab */
  .i9-stage { margin: 1.25rem 0 .45rem; font: 900 .62rem var(--sans); letter-spacing: .1em; color: var(--grey); }
  .i9-stage:first-of-type { margin-top: 1.2rem; }
  .i9-stage b { color: var(--blue); margin-right: .35rem; }
  .i9-code { margin: 0; padding: 1rem 1.2rem; background: var(--dark); color: #D5DCF2; font: .84rem/1.75 "SF Mono", Menlo, Consolas, monospace; white-space: pre-wrap; word-break: break-word; }
  .i9-code b { font-weight: 400; color: var(--yellow); }
  .i9-code i { font-style: normal; background: rgba(255,216,77,.16); padding: .1rem .3rem; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
  .i9-alt { margin: 0; padding: .1rem 1.2rem .8rem; background: var(--dark); }
  .i9-alt span { color: #8F8FAF; font: .74rem/1.6 "SF Mono", Menlo, Consolas, monospace; }
  .i9-alt button { padding: 0; border: 0; border-bottom: 1px dotted #8F8FAF; background: none; color: #8F8FAF; font-size: .74rem; }
  .i9-alt button.active { border-bottom: 2px solid var(--yellow); color: var(--yellow); font-weight: 700; }
  .i3-lead { margin-top: .2rem; padding: .7rem .9rem; border: 1px solid var(--line); background: var(--paper); }
  .i3-lead p { margin: 0; font: 700 .95rem/1.5 var(--serif); }
  .i9-table { width: 100%; border-collapse: collapse; }
  .i9-table td { padding: .48rem .2rem; border-top: 1px solid var(--line); font: italic .86rem/1.45 var(--serif); }
  .i9-table tr:first-child td { border-top: 0; }
  .i9-table td:last-child { padding-left: 1rem; font: 900 .78rem/1 var(--sans); text-align: right; white-space: nowrap; }
  .i9-table .g-ok { color: var(--green-ink); } .i9-table .g-ko { color: var(--red-ink); }
  .i3-tally { display: flex; align-items: center; gap: .9rem; margin-top: 1rem; }
  .i3-pips { display: flex; gap: .35rem; }
  .i3-pips span { width: 15px; height: 15px; background: var(--line); transition: background .25s; }
  .i3-pips span.ok { background: var(--green); } .i3-pips span.ko { background: var(--red); }
  .i3-tally strong { font: 800 1rem/1.2 var(--serif); }
  .ep-verdict { margin-top: 1.1rem; border-top: 2.5px solid var(--ink); padding-top: .8rem; }
  .ep-verdict strong { display: block; font: 900 .78rem var(--sans); letter-spacing: .05em; }
  .ep-verdict p { margin: .4rem 0 0; font: 600 .8rem/1.6 var(--sans); color: #2A2C33; }
  .ep-verdict p:empty { display: none; }

  /* sustain lab */
  .p38-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; margin-top: 1.2rem; }
  @media (max-width: 660px) { .p38-wrap { grid-template-columns: 1fr; } }
  .p38-panel { padding: 1rem 1.1rem 1.1rem; border: 1px solid var(--line); }
  .p38-bad { background: #FDF2F0; }
  .p38-good { background: #EFF7F2; }
  .p38-panel small { display: block; margin-bottom: .3rem; font: 900 .58rem var(--sans); letter-spacing: .11em; }
  .p38-bad small { color: var(--red-ink); }
  .p38-good small { color: var(--green-ink); }
  .p38-panel strong { display: block; margin-bottom: .6rem; font: 700 .95rem/1.4 var(--serif); }
  .p38-dots { display: flex; flex-wrap: wrap; gap: 5px; min-height: 50px; align-content: flex-start; }
  .p38-dots i { width: 12px; height: 12px; border-radius: 50%; }
  .p38-flood-dot { background: var(--red); }
  .p38-stake-dot { background: var(--green); outline: 2px solid #BFE0CD; }
  .p38-panel p { margin: .6rem 0 0; font: 600 .76rem/1.6 var(--sans); color: #2A2C33; }
  .p38-panel p b { color: var(--green-ink); font-weight: 800; }
  .p38-supply { position: relative; height: 12px; margin-top: .7rem; background: #D8E6DD; overflow: hidden; }
  .p38-supply i { position: absolute; inset: 0 auto 0 0; width: 0%; background: var(--green); transition: width .4s; }
  .p38-supply-label { margin: .4rem 0 0 !important; font: 900 .54rem var(--sans) !important; letter-spacing: .1em; color: var(--green-ink) !important; text-align: center; }
  .p38-footer { margin: 1.1rem 0 0; padding-top: .8rem; border-top: 2px solid var(--ink); font: 600 .82rem/1.6 var(--sans); color: #2A2C33; }

  /* go deeper */
  .deeper { margin: 2rem auto 0; }
  .deeper > .label { color: var(--grey); }
  .deeper details { border-bottom: 1px solid var(--line); }
  .deeper details:first-of-type { margin-top: .6rem; border-top: 1.5px solid var(--ink); }
  .deeper summary { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .75rem .2rem .75rem 0; font: 700 .95rem/1.45 var(--serif); cursor: pointer; list-style: none; }
  .deeper summary::-webkit-details-marker { display: none; }
  .deeper summary::after { content: "+"; flex: 0 0 auto; font: 400 1.1rem/1 var(--serif); color: var(--blue); }
  .deeper details[open] summary::after { content: "−"; }
  .deeper summary:hover { color: var(--blue-ink); }
  .deeper details p { margin: 0 0 .9rem; max-width: 64ch; font-size: .95rem; color: #2A2C33; }
  .deeper details.proves summary { font-style: italic; }
  .deeper details.proves p { font: 600 .84rem/1.65 var(--sans); }
  .read-paper { display: inline-block; margin-top: 1.3rem; padding: .7rem 1rem; border: 1.5px solid var(--ink); background: var(--white); color: var(--ink); font: 800 .7rem var(--sans); letter-spacing: .07em; text-decoration: none; }
  .read-paper:hover { background: var(--yellow); }
  .read-paper.soon { border-style: dashed; color: var(--grey); cursor: default; }

  /* verify has no lab: give the evidence line a card */
  .evidence { display: grid; grid-template-columns: auto 1fr; gap: .9rem 1rem; margin: 2rem 0 0; padding: 1.2rem 1.3rem; border: 1.5px solid var(--ink); background: var(--white); box-shadow: 9px 9px 0 rgba(17,15,255,.06); }
  .evidence b { font: 700 1.7rem/1.05 var(--serif); color: var(--blue-ink); font-variant-numeric: tabular-nums; text-align: right; }
  .evidence span { font: 600 .84rem/1.5 var(--sans); color: #2A2C33; align-self: center; }

  /* papers shelf */
  .papers { padding: clamp(48px, 6.5vw, 84px) 0; background: var(--dark); color: white; }
  .papers .label { color: #8B8AFF; }
  .papers h2 { margin: .6rem 0 0; font: 500 clamp(1.9rem, 3.8vw, 2.8rem)/1.1 var(--serif); letter-spacing: -.025em; }
  .papers .intro { margin: .8rem 0 0; color: #C9C9DE; max-width: 60ch; }
  .shelf { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; margin-top: 2rem; }
  .shelf a { display: grid; gap: .45rem; align-content: start; color: white; text-decoration: none; }
  .shelf img { width: 100%; height: auto; border: 1px solid #33334D; }
  .shelf a:hover img { border-color: #8B8AFF; }
  .shelf span { margin-top: .3rem; font: 900 .56rem var(--sans); letter-spacing: .14em; color: #8B8AFF; }
  .shelf strong { font: 700 .92rem/1.3 var(--serif); }
  .shelf small { font: 600 .68rem var(--sans); color: #9A9AC2; }
  .shelf a.shelf-soon { pointer-events: none; }
  .shelf a.shelf-soon img { opacity: .55; }
  .shelf a.shelf-soon small { color: var(--yellow); }
  @media (max-width: 900px) { .shelf { grid-template-columns: repeat(3, 1fr); } }
  @media (max-width: 560px) { .shelf { grid-template-columns: repeat(2, 1fr); } }

  /* glossary */
  .glossary { padding: clamp(44px, 6vw, 72px) 0; }
  .glossary h2 { margin: .5rem 0 0; font: 500 clamp(1.7rem, 3.2vw, 2.3rem)/1.1 var(--serif); }
  .glossary .grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 2.5rem; margin-top: 1.4rem; border-top: 1.5px solid var(--ink); }
  @media (max-width: 720px) { .glossary .grid { grid-template-columns: 1fr; } }
  .glossary details { border-bottom: 1px solid var(--line); }
  .glossary summary { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .6rem .2rem .6rem 0; font: 700 .92rem var(--serif); cursor: pointer; list-style: none; }
  .glossary summary::-webkit-details-marker { display: none; }
  .glossary summary::after { content: "+"; color: var(--blue); }
  .glossary details[open] summary::after { content: "−"; }
  .glossary details p { margin: 0 0 .8rem; font-size: .9rem; color: #2A2C33; }

  /* tooltip card */
  .gl-card { position: absolute; z-index: 90; padding: .8rem .95rem; border: 1.5px solid var(--ink); background: var(--white); color: var(--ink); box-shadow: 6px 6px 0 rgba(7,7,7,.12); }
  .gl-card strong { display: block; margin-bottom: .3rem; font: 700 .9rem var(--serif); }
  .gl-card p { margin: 0; font: 600 .78rem/1.55 var(--sans); color: #2A2C33; }

  footer { padding: 2.2rem 0 2.6rem; border-top: 1px solid var(--line); }
  footer .spine { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; font: 600 .74rem var(--sans); color: var(--grey); }
  footer a { color: var(--grey); }

/* ---------- locale typography (V2 serif prose is Latin/Cyrillic; CJK uses its sans stacks) ---------- */
html:lang(ko) body { font-family: "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif; word-break: keep-all; }
html:lang(zh-Hans) body { font-family: "PingFang SC", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif; line-break: strict; }
html:lang(ko) :is(h1, h2, .answer p, .lede, .map .q, .map .a, .lab-head, .lab-result strong, .deeper summary, .predict > p, .i3-lead p, .i9-table td, .i3-tally strong, .p38-panel strong, .shelf strong, .glossary summary, .gl-card strong, .story-strip strong, .od-flow-label, .evidence b) { font-family: "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif; }
html:lang(zh-Hans) :is(h1, h2, .answer p, .lede, .map .q, .map .a, .lab-head, .lab-result strong, .deeper summary, .predict > p, .i3-lead p, .i9-table td, .i3-tally strong, .p38-panel strong, .shelf strong, .glossary summary, .gl-card strong, .story-strip strong, .od-flow-label, .evidence b) { font-family: "PingFang SC", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif; }
html:lang(ko) :is(h1, h2) { letter-spacing: 0; line-height: 1.18; }
html:lang(zh-Hans) :is(h1, h2) { letter-spacing: 0; line-height: 1.18; }
html:lang(ko) .map .a, html:lang(zh-Hans) .map .a { font-style: normal; }
/* The hero's unresolved VERDICT? box is sized for English; es and ru need a step back. */
html:lang(es) { --verdict-scale: .6; }
html:lang(ru) { --verdict-scale: .76; }
html:lang(ko) .bi-scene :is(h1, h2),
html:lang(zh-Hans) .bi-scene :is(h1, h2) { font-size: clamp(2.3rem, 5vw, 4.6rem); letter-spacing: 0; line-height: 1.12; }
html:lang(ko) .bi-judgment-row strong { font-size: clamp(1.9rem, 5vw, 5.7rem); }
html:lang(ru) .bi-judgment-row strong { font-size: clamp(2.4rem, 5.4vw, 5.7rem); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}
@media print { .site-header, footer { display: none; } }
