:root{
  --paper:#faf5ea; --paper2:#f3ead7; --ink:#262019; --ink2:#5c5145;
  --line:#ddd0b6; --accent:#7a1f1a; --accent2:#a8261c; --gold:#8a6414;
  --goldbg:#f6e8c4; --ok:#2e6b34; --bad:#a8261c; --card:#fffdf6;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --disp:"Fraunces",Georgia,serif; --sans:system-ui,-apple-system,"Segoe UI",sans-serif;
}
:root[data-theme="dark"]{
  --paper:#1c1813; --paper2:#26211a; --ink:#efe6d4; --ink2:#bfb29a;
  --line:#4a4136; --accent:#e08a7e; --accent2:#e8a49a; --gold:#d9a83f;
  --goldbg:#3a2f1c; --ok:#7fc787; --bad:#e08a7e; --card:#241f18;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);
  font-size:1.13rem;line-height:1.65}
.wrap{max-width:46rem;margin:0 auto;padding:0 1.1rem}
.wide{max-width:62rem}
/* top bar */
.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:.7rem;
  background:var(--paper);border-bottom:1px solid var(--line);padding:.45rem 1rem;
  font-family:var(--sans);font-size:.86rem}
.topbar .brand{font-weight:700;color:var(--accent);text-decoration:none;white-space:nowrap}
.topnav{display:flex;gap:.15rem;margin-left:auto;overflow-x:auto;scrollbar-width:none}
.topnav::-webkit-scrollbar{display:none}
.topnav a{color:var(--ink2);text-decoration:none;padding:.3rem .55rem;border-radius:.4rem;white-space:nowrap}
.topnav a[aria-current]{color:var(--accent);font-weight:700;background:var(--goldbg)}
.langmenu{display:flex;gap:.3rem}
.langmenu a{color:var(--ink2);text-decoration:none;border:1px solid var(--line);
  border-radius:99px;padding:.15rem .6rem}
.langmenu a[aria-current="true"]{color:var(--paper);background:var(--accent);border-color:var(--accent)}
#theme{background:none;border:1px solid var(--line);border-radius:99px;color:var(--ink);
  width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
#theme svg{width:1.05rem;height:1.05rem}
#theme .i-sun{display:none}
:root[data-theme="dark"] #theme .i-sun{display:block}
:root[data-theme="dark"] #theme .i-moon{display:none}
/* hero */
.hero{padding:2.2rem 0 1rem}
.kicker{font-family:var(--sans);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
h1.display{font-family:var(--disp);font-weight:600;font-size:clamp(2.1rem,6vw,3.4rem);
  line-height:1.08;margin:.4rem 0 .6rem}
.question{font-family:var(--disp);font-style:italic;font-size:1.35rem;color:var(--accent);margin:.2rem 0 .8rem}
.deck{font-size:1.2rem}
.answer{background:var(--goldbg);border-left:4px solid var(--gold);padding:.8rem 1rem;border-radius:0 .5rem .5rem 0}
.answer strong{font-family:var(--sans);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.5rem;
  list-style:none;margin:1.2rem 0 0;padding:0;font-family:var(--sans);font-size:.85rem}
.facts li{border:1px solid var(--line);border-radius:.5rem;padding:.4rem .6rem;background:var(--card)}
.facts b{display:block;color:var(--gold);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}
.cta{display:flex;gap:.6rem;flex-wrap:wrap;margin:1.2rem 0}
.btn{font-family:var(--sans);font-size:.95rem;text-decoration:none;border-radius:99px;
  padding:.55rem 1.2rem;border:1px solid var(--accent);color:var(--accent)}
.btn.solid{background:var(--accent);color:#fff}
:root[data-theme="dark"] .btn.solid{color:#1c1813}
/* figures */
figure.plate{margin:1.4rem 0;border:1px solid var(--line);border-radius:.6rem;overflow:hidden;background:var(--card)}
figure.plate img{display:block;width:100%;height:auto}
figure.plate figcaption{font-family:var(--sans);font-size:.82rem;color:var(--ink2);padding:.55rem .8rem}
figure.plate .credit{display:block;font-size:.74rem;opacity:.8}
.plates{display:grid;gap:1rem}
@media(min-width:44rem){.plates.two{grid-template-columns:1fr 1fr}}
/* sections */
section.block{padding:1.6rem 0;border-top:1px solid var(--line)}
.chap-no{font-family:var(--disp);color:var(--gold);font-size:1rem;letter-spacing:.2em}
h2{font-family:var(--disp);font-weight:600;font-size:clamp(1.6rem,4vw,2.2rem);margin:.2rem 0 .3rem;line-height:1.15}
.dates{font-family:var(--sans);color:var(--gold);font-size:.9rem;font-weight:700}
.standfirst{font-size:1.22rem;font-style:italic;color:var(--ink2)}
.scene{border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:.5rem;
  background:var(--card);padding:.9rem 1.1rem;margin:1.2rem 0}
.scene p{margin:.2rem 0}
.scene blockquote{font-family:var(--disp);font-size:1.15rem;margin:.3rem 0}
.scene cite{font-family:var(--sans);font-style:normal;font-size:.8rem;color:var(--ink2)}
.meanwhile{font-family:var(--sans);font-size:.92rem;background:var(--paper2);
  border-radius:.5rem;padding:.6rem .9rem;margin:1rem 0}
.meanwhile b{color:var(--gold)}
/* money house */
.ledger{list-style:none;margin:1rem 0;padding:0;font-family:var(--sans)}
.ledger li{margin:.45rem 0}
.ledger .lab{display:flex;justify-content:space-between;font-size:.9rem;margin-bottom:.15rem}
.ledger .lab b{font-variant-numeric:tabular-nums}
svg.bar{display:block;width:100%;height:.9rem;background:var(--paper2);border:1px solid var(--line);border-radius:99px}
svg.bar rect{fill:var(--accent2)}
svg.bar.gold rect{fill:var(--gold)}
svg.bar.ink rect{fill:var(--ink2)}
.note{font-size:.98rem;color:var(--ink2)}
.mapbox{border:1px solid var(--line);border-radius:.6rem;background:var(--card);padding:.6rem;margin:1rem 0}
#map-svg{width:100%;height:auto;display:block}
#map-svg .land{fill:var(--paper2);stroke:var(--line);stroke-width:1.5}
#map-svg .dot{fill:var(--accent2);stroke:var(--card);stroke-width:1;cursor:pointer}
#map-svg .dot.capital{fill:var(--gold);stroke:var(--accent)}
#map-svg .dot:focus{outline:2px solid var(--gold);outline-offset:2px}
#map-svg text{font-family:var(--sans);font-size:13px;fill:var(--ink2)}
.map-tip{font-family:var(--sans);font-size:.9rem;min-height:1.6em;margin:.3rem 0 0;color:var(--accent)}
.map-list{columns:2;font-family:var(--sans);font-size:.85rem;color:var(--ink2)}
.building{display:flex;gap:1rem;align-items:flex-end;margin:1rem 0}
.bld{flex:0 0 120px;text-align:center;color:var(--accent)}
.bld svg{width:100%;height:auto}
.mstones{list-style:none;margin:0;padding:0;font-family:var(--sans);font-size:.88rem;flex:1}
.mstones li{margin:.35rem 0;border-left:3px solid var(--gold);padding-left:.6rem}
.mstones b{color:var(--gold)}
details.data{border:1px solid var(--line);border-radius:.5rem;margin:.6rem 0;background:var(--card)}
details.data summary{cursor:pointer;padding:.55rem .9rem;font-family:var(--sans);font-size:.9rem;font-weight:600}
details.data .in{padding:0 .9rem .8rem;font-size:.95rem}
/* game */
#joc .round{border:1px solid var(--line);border-radius:.6rem;background:var(--card);
  padding:.9rem 1rem;margin:.7rem 0}
#joc .round[hidden]{display:none}
#joc .round.plain{border:none;background:transparent;padding-left:0}
#joc .round h3{font-family:var(--disp);margin:0 0 .4rem;font-size:1.25rem}
#joc .hrow{display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap;
  font-family:var(--sans);font-size:.9rem;margin-bottom:.5rem}
#joc .fund b{color:var(--accent);font-variant-numeric:tabular-nums}
#joc .actions{display:grid;gap:.5rem}
@media(min-width:40rem){#joc .actions{grid-template-columns:1fr 1fr 1fr}}
#joc .actions button{font-family:var(--sans);font-size:.92rem;min-height:44px;cursor:pointer;
  border:1px solid var(--accent);background:transparent;color:var(--ink);border-radius:.5rem;padding:.5rem .6rem}
#joc .actions button:hover:not(:disabled){background:var(--goldbg)}
#joc .actions button:disabled{opacity:.45;cursor:default}
#joc .actions button small{display:block;color:var(--ink2);font-size:.76rem}
#joc .event{font-family:var(--sans);font-size:.85rem;color:var(--ink2);margin-top:.5rem}
#joc .verdict{font-family:var(--disp);font-size:1.2rem;margin:1rem 0}
#joc .verdict.win{color:var(--ok)} #joc .verdict.lose{color:var(--bad)}
#joc .controls{display:flex;gap:.6rem;margin:.8rem 0}
#joc .controls button{font-family:var(--sans);font-size:.9rem;min-height:44px;border-radius:99px;
  padding:.4rem 1.1rem;cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:#fff}
#joc .controls button.ghost{background:transparent;color:var(--accent)}
/* numbers */
.numgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.6rem;
  list-style:none;margin:1rem 0;padding:0}
.numgrid li{border:1px solid var(--line);border-radius:.5rem;background:var(--card);padding:.6rem .8rem}
.numgrid b{display:block;font-family:var(--disp);font-size:1.5rem;color:var(--accent);
  font-variant-numeric:tabular-nums}
.numgrid span{font-family:var(--sans);font-size:.82rem;color:var(--ink2)}
/* myths */
.myth{border:1px solid var(--line);border-radius:.6rem;background:var(--card);padding:1rem 1.1rem;margin:.8rem 0}
.myth h3{font-family:var(--disp);margin:0 0 .2rem;font-size:1.3rem}
.verdict-tag{display:inline-block;font-family:var(--sans);font-size:.78rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;border-radius:99px;padding:.15rem .7rem;margin-bottom:.5rem}
.verdict-tag.true{background:#e2efdf;color:#2e6b34}
.verdict-tag.false{background:#f3d9d4;color:#7a1f1a}
:root[data-theme="dark"] .verdict-tag.true{background:#2c442f;color:#b5e0b9}
:root[data-theme="dark"] .verdict-tag.false{background:#4a2622;color:#e8a49a}
/* sources */
.srclist{list-style:none;margin:.6rem 0 1.2rem;padding:0}
.srclist li{margin:.4rem 0;font-size:.98rem;padding-left:1.1rem;position:relative}
.srclist li::before{content:"›";position:absolute;left:0;color:var(--gold)}
.srclist a{color:var(--accent)}
footer.site{border-top:1px solid var(--line);margin-top:2rem;padding:1.2rem 0 2.5rem;
  font-family:var(--sans);font-size:.83rem;color:var(--ink2)}
footer.site a{color:var(--accent)}
.srconly{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* no-script + reduced motion */
.noscript-note{display:none}
.no-js .js-only{display:none!important}
.no-js .noscript-note{display:block}
.no-js svg.bar rect{fill:var(--accent2)}
.no-js #map-svg text.plabel{display:block}
#map-svg text.plabel{display:none}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
}
@media(max-width:30rem){
  body{font-size:1.05rem}
  .topbar .brand{font-size:.78rem}
  .topnav{display:none}
  .map-list{columns:1}
}
