/* ===========================================================================
   Theme — Report 2026-81, "Polycrisis Resilience This Century, 2000-2100"

   Aesthetic: the panorama. The masthead is a data-generated two-century
   strip: one column per year 1900-2100. Up to 2025 each column is a bar
   whose height is the log of world deaths from disasters that year (ember,
   brightening with size); from 2025 two simulated bands fan out, amber for
   a world whose resilience stalls while hazards grow 1% a year, teal for a
   world that improves capacity 3% a year, each the 10th-90th percentile of
   annual deaths with its median line. The page is warm peach paper with a
   faint baseline rule; every h2 opens with a small fan glyph. Bellefair for
   display, Judson for prose, Alata for figures.

   Loaded after report.css; charts.js reads the --c and --g tokens.
   =========================================================================== */


:root {
  --bg: #f6efe9;
  --bg-card: #fcf8f5;
  --bg-accent: #ecdfd5;
  --bg-dark: #231a22;
  --bg-dark-2: #120d14;

  --text: #231a22;
  --text-secondary: #443a42;
  --text-muted: #6b5f68;
  --text-inverse: #f3f1fa;

  --primary: #231a22;
  --primary-light: #3d6fb5;
  --accent: #e0662b;
  --accent-light: #f3c969;

  --border: #ddcfc2;
  --border-light: #ecdfd5;
  --rule: #c4b2a3;

  /* night palette */
  --i-ink: #231a22; --i-indigo: #231a22; --i-amber: #e3a72f; --i-light: #f3c969; --i-teal: #3d6fb5; --i-coral: #e0662b; --i-green: #6f9a3a; --i-grey: #7a6f78; --i-violet: #6a3f7a; --i-blue: #3d6fb5;
  /* usage mix */
  --u-work: #3d6fb5; --u-pers: #e3a72f; --u-course: #6f9a3a;
  /* income groups */
  --g-lic: #e0662b; --g-lmc: #e3a72f; --g-umc: #3d6fb5; --g-hic: #3d6fb5;
  /* legacy names used by shared rules */
  --a-lime: #6f9a3a; --a-limebright: #f3c969; --a-amber: #e3a72f; --a-orange: #e0662b; --a-red: #e0662b; --a-ink: #231a22; --a-grey: #7a6f78; --a-blue: #3d6fb5; --a-teal: #3d6fb5; --a-violet: #6a3f7a;
  --s-coal: #3a3330; --s-gas: #8a8f99; --s-oil: #a79b8a; --s-nuc: #7a5fb0; --s-hydro: #3d6fb5; --s-bio: #5f9a3a; --s-wind: #3d6fb5; --s-solar: #e3a72f;
  --cl-falling: #6f9a3a; --cl-catching: #e3a72f; --cl-lagging: #e0662b;
  --n-ink: #231a22; --n-blue: #3d6fb5; --n-cyan: #3d6fb5; --n-orange: #e0662b; --n-gold: #e3a72f; --n-green: #6f9a3a; --n-red: #e0662b; --n-grey: #7a6f78;
  --k-mobile: #3d6fb5; --k-internet: #3d6fb5; --k-bband: #5a6e87; --k-elec: #e3a72f; --k-cook: #c8702c; --k-water: #3a9fa5; --k-san: #7a6fb0; --k-dtp3: #6f9a3a; --k-acct: #b04a7a;
  --c-income: #e0662b; --c-human: #6f9a3a; --c-inst: #6a3f7a; --c-fin: #b04a7a; --c-power: #e3a72f; --c-place: #7a6f78;
  --v-prev: #6f9a3a; --v-crisis: #e0662b; --v-recon: #e3a72f; --v-gold: #e3a72f; --v-ink: #231a22; --v-blue: #3d6fb5; --v-grey: #7a6f78;
  --e-coal: #3a3330; --e-gas: #8a8f99; --e-oil: #a79b8a; --e-nuc: #6a3f7a; --e-hydro: #3d6fb5; --e-bio: #5f9a3a; --e-oren: #3a9fa5; --e-wind: #3d6fb5; --e-solar: #e3a72f;
  --p-stalled: #e0662b; --p-current: #e3a72f; --p-two: #3d6fb5; --p-onefive: #6f9a3a;
  --c-heat: #e0662b; --c-danger: #e0662b; --c-air: #6b5f68; --c-access: #e3a72f; --c-cook: #c8702c; --c-money: #3d6fb5;
  --q-ember: #e0662b; --q-teal: #3d6fb5; --q-violet: #6a3f7a; --q-gold: #e3a72f; --q-ash: #7a6f78; --q-ink: #231a22;
  --t-a: #6b5f68; --t-b: #e0662b; --t-c: #e3a72f; --t-d: #e0662b; --t-cap: #3d6fb5; --t-srr: #e0662b;
  --s-126: #6f9a3a; --s-245: #e3a72f; --s-370: #e0662b; --s-585: #6a3f7a;
  --d-airdis: #6b5f68; --d-climate: #e0662b; --d-poverty: #b04a7a; --d-food: #b89a2a; --d-water: #3a9fa5; --d-energy: #e3a72f; --d-infra: #5a6e87; --d-pandemic: #6a3f7a; --d-eco: #6f9a3a; --d-conflict: #e0662b;
  --r-ssf: #e0662b; --r-sas: #e3a72f; --r-eas: #6f9a3a; --r-mna: #a8704a; --r-lcn: #3d6fb5; --r-ecs: #6a3f7a; --r-nac: #6d7a8a;
  --map-sea: #e6d9cd;
  --map-none: #d9ccc0;

  --chart-blue: #3d6fb5; --chart-blue-light: #a9bcd2; --chart-gold: #e3a72f; --chart-red: #e0662b; --chart-teal: #3d6fb5; --chart-gray: #7a6f78; --chart-orange: #e0662b; --chart-purple: #6a3f7a;

  --serif: "Bellefair", "Didot", Georgia, serif;
  --sans: "Judson", Georgia, "Times New Roman", serif;
  --mono: "Alata", "Arial Narrow", ui-sans-serif, sans-serif;

  --sheet: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1000' height='330' viewBox='0 0 1000 330'%3E%3Cline x1='0' x2='1000' y1='205.9' y2='205.9' stroke='%23ffffff' stroke-opacity='.09' stroke-dasharray='2 5'/%3E%3Cline x1='0' x2='1000' y1='149.9' y2='149.9' stroke='%23ffffff' stroke-opacity='.09' stroke-dasharray='2 5'/%3E%3Cline x1='0' x2='1000' y1='93.9' y2='93.9' stroke='%23ffffff' stroke-opacity='.09' stroke-dasharray='2 5'/%3E%3Cline x1='0' x2='1000' y1='37.9' y2='37.9' stroke='%23ffffff' stroke-opacity='.09' stroke-dasharray='2 5'/%3E%3Cline x1='625.0' x2='625.0' y1='0' y2='330' stroke='%23ffffff' stroke-opacity='.25'/%3E%3Crect x='0.0' y='32.1' width='4.0' height='285.9' fill='%23f2c289' fill-opacity='.9'/%3E%3Crect x='5.0' y='303.7' width='4.0' height='14.3' fill='%23e06a2f' fill-opacity='.9'/%3E%3Crect x='10.0' y='111.5' width='4.0' height='206.5' fill='%23eda86f' fill-opacity='.9'/%3E%3Crect x='15.0' y='158.1' width='4.0' height='159.9' fill='%23ea995f' fill-opacity='.9'/%3E%3Crect x='20.0' y='251.8' width='4.0' height='66.2' fill='%23e47b40' fill-opacity='.9'/%3E%3Crect x='25.0' y='131.9' width='4.0' height='186.1' fill='%23eba268' fill-opacity='.9'/%3E%3Crect x='30.0' y='120.4' width='4.0' height='197.6' fill='%23eca56c' fill-opacity='.9'/%3E%3Crect x='35.0' y='142.9' width='4.0' height='175.1' fill='%23eb9e64' fill-opacity='.9'/%3E%3Crect x='40.0' y='100.9' width='4.0' height='217.1' fill='%23edac72' fill-opacity='.9'/%3E%3Crect x='45.0' y='160.9' width='4.0' height='157.1' fill='%23ea985e' fill-opacity='.9'/%3E%3Crect x='50.0' y='131.9' width='4.0' height='186.1' fill='%23eba268' fill-opacity='.9'/%3E%3Crect x='55.0' y='89.3' width='4.0' height='228.7' fill='%23eeaf76' fill-opacity='.9'/%3E%3Crect x='60.0' y='102.9' width='4.0' height='215.1' fill='%23edab72' fill-opacity='.9'/%3E%3Crect x='65.0' y='134.4' width='4.0' height='183.6' fill='%23eba167' fill-opacity='.9'/%3E%3Crect x='70.0' y='131.3' width='4.0' height='186.7' fill='%23eba268' fill-opacity='.9'/%3E%3Crect x='75.0' y='121.6' width='4.0' height='196.4' fill='%23eca56b' fill-opacity='.9'/%3E%3Crect x='80.0' y='223.0' width='4.0' height='95.0' fill='%23e6844a' fill-opacity='.9'/%3E%3Crect x='85.0' y='129.1' width='4.0' height='188.9' fill='%23eca369' fill-opacity='.9'/%3E%3Crect x='90.0' y='147.1' width='4.0' height='170.9' fill='%23ea9d63' fill-opacity='.9'/%3E%3Crect x='95.0' y='164.5' width='4.0' height='153.5' fill='%23e9975d' fill-opacity='.9'/%3E%3Crect x='100.0' y='46.3' width='4.0' height='271.7' fill='%23f1bd84' fill-opacity='.9'/%3E%3Crect x='105.0' y='33.4' width='4.0' height='284.6' fill='%23f2c289' fill-opacity='.9'/%3E%3Crect x='110.0' y='93.6' width='4.0' height='224.4' fill='%23eeae75' fill-opacity='.9'/%3E%3Crect x='115.0' y='83.3' width='4.0' height='234.7' fill='%23efb178' fill-opacity='.9'/%3E%3Crect x='120.0' y='176.9' width='4.0' height='141.1' fill='%23e99359' fill-opacity='.9'/%3E%3Crect x='125.0' y='158.7' width='4.0' height='159.3' fill='%23ea995f' fill-opacity='.9'/%3E%3Crect x='130.0' y='165.3' width='4.0' height='152.7' fill='%23e9975d' fill-opacity='.9'/%3E%3Crect x='135.0' y='109.2' width='4.0' height='208.8' fill='%23eda970' fill-opacity='.9'/%3E%3Crect x='140.0' y='11.1' width='4.0' height='306.9' fill='%23f2c38a' fill-opacity='.9'/%3E%3Crect x='145.0' y='176.0' width='4.0' height='142.0' fill='%23e99359' fill-opacity='.9'/%3E%3Crect x='150.0' y='151.7' width='4.0' height='166.3' fill='%23ea9b61' fill-opacity='.9'/%3E%3Crect x='155.0' y='5.9' width='4.0' height='312.1' fill='%23f2c38a' fill-opacity='.9'/%3E%3Crect x='160.0' y='166.5' width='4.0' height='151.5' fill='%23e9975d' fill-opacity='.9'/%3E%3Crect x='165.0' y='122.0' width='4.0' height='196.0' fill='%23eca56b' fill-opacity='.9'/%3E%3Crect x='170.0' y='130.8' width='4.0' height='187.2' fill='%23eca268' fill-opacity='.9'/%3E%3Crect x='175.0' y='69.5' width='4.0' height='248.5' fill='%23efb67d' fill-opacity='.9'/%3E%3Crect x='180.0' y='163.2' width='4.0' height='154.8' fill='%23e9985e' fill-opacity='.9'/%3E%3Crect x='185.0' y='144.1' width='4.0' height='173.9' fill='%23eb9e64' fill-opacity='.9'/%3E%3Crect x='190.0' y='186.7' width='4.0' height='131.3' fill='%23e89056' fill-opacity='.9'/%3E%3Crect x='195.0' y='51.8' width='4.0' height='266.2' fill='%23f1bc83' fill-opacity='.9'/%3E%3Crect x='200.0' y='163.2' width='4.0' height='154.8' fill='%23e9985e' fill-opacity='.9'/%3E%3Crect x='205.0' y='137.0' width='4.0' height='181.0' fill='%23eba066' fill-opacity='.9'/%3E%3Crect x='210.0' y='26.3' width='4.0' height='291.7' fill='%23f2c38a' fill-opacity='.9'/%3E%3Crect x='215.0' y='22.0' width='4.0' height='296.0' fill='%23f2c38a' fill-opacity='.9'/%3E%3Crect x='220.0' y='132.8' width='4.0' height='185.2' fill='%23eba168' fill-opacity='.9'/%3E%3Crect x='225.0' y='146.8' width='4.0' height='171.2' fill='%23ea9d63' fill-opacity='.9'/%3E%3Crect x='230.0' y='119.0' width='4.0' height='199.0' fill='%23eca66c' fill-opacity='.9'/%3E%3Crect x='235.0' y='157.3' width='4.0' height='160.7' fill='%23ea9960' fill-opacity='.9'/%3E%3Crect x='240.0' y='89.3' width='4.0' height='228.7' fill='%23eeaf76' fill-opacity='.9'/%3E%3Crect x='245.0' y='88.7' width='4.0' height='229.3' fill='%23eeb076' fill-opacity='.9'/%3E%3Crect x='250.0' y='159.1' width='4.0' height='158.9' fill='%23ea995f' fill-opacity='.9'/%3E%3Crect x='255.0' y='134.8' width='4.0' height='183.2' fill='%23eba167' fill-opacity='.9'/%3E%3Crect x='260.0' y='165.7' width='4.0' height='152.3' fill='%23e9975d' fill-opacity='.9'/%3E%3Crect x='265.0' y='143.9' width='4.0' height='174.1' fill='%23eb9e64' fill-opacity='.9'/%3E%3Crect x='270.0' y='114.1' width='4.0' height='203.9' fill='%23eda76e' fill-opacity='.9'/%3E%3Crect x='275.0' y='164.2' width='4.0' height='153.8' fill='%23e9975d' fill-opacity='.9'/%3E%3Crect x='280.0' y='148.2' width='4.0' height='169.8' fill='%23ea9c63' fill-opacity='.9'/%3E%3Crect x='285.0' y='148.5' width='4.0' height='169.5' fill='%23ea9c63' fill-opacity='.9'/%3E%3Crect x='290.0' y='171.8' width='4.0' height='146.2' fill='%23e9955b' fill-opacity='.9'/%3E%3Crect x='295.0' y='54.9' width='4.0' height='263.1' fill='%23f0bb82' fill-opacity='.9'/%3E%3Crect x='300.0' y='37.9' width='4.0' height='280.1' fill='%23f1c087' fill-opacity='.9'/%3E%3Crect x='305.0' y='51.3' width='4.0' height='266.7' fill='%23f1bc83' fill-opacity='.9'/%3E%3Crect x='310.0' y='136.1' width='4.0' height='181.9' fill='%23eba067' fill-opacity='.9'/%3E%3Crect x='315.0' y='118.5' width='4.0' height='199.5' fill='%23eca66c' fill-opacity='.9'/%3E%3Crect x='320.0' y='144.9' width='4.0' height='173.1' fill='%23eb9d64' fill-opacity='.9'/%3E%3Crect x='325.0' y='51.8' width='4.0' height='266.2' fill='%23f1bc83' fill-opacity='.9'/%3E%3Crect x='330.0' y='53.9' width='4.0' height='264.1' fill='%23f0bb82' fill-opacity='.9'/%3E%3Crect x='335.0' y='54.4' width='4.0' height='263.6' fill='%23f0bb82' fill-opacity='.9'/%3E%3Crect x='340.0' y='130.5' width='4.0' height='187.5' fill='%23eca268' fill-opacity='.9'/%3E%3Crect x='345.0' y='154.2' width='4.0' height='163.8' fill='%23ea9a61' fill-opacity='.9'/%3E%3Crect x='350.0' y='61.0' width='4.0' height='257.0' fill='%23f0b97f' fill-opacity='.9'/%3E%3Crect x='355.0' y='138.8' width='4.0' height='179.2' fill='%23eb9f66' fill-opacity='.9'/%3E%3Crect x='360.0' y='133.0' width='4.0' height='185.0' fill='%23eba168' fill-opacity='.9'/%3E%3Crect x='365.0' y='145.3' width='4.0' height='172.7' fill='%23eb9d64' fill-opacity='.9'/%3E%3Crect x='370.0' y='97.1' width='4.0' height='220.9' fill='%23eead74' fill-opacity='.9'/%3E%3Crect x='375.0' y='108.2' width='4.0' height='209.8' fill='%23eda970' fill-opacity='.9'/%3E%3Crect x='380.0' y='66.4' width='4.0' height='251.6' fill='%23f0b77e' fill-opacity='.9'/%3E%3Crect x='385.0' y='115.6' width='4.0' height='202.4' fill='%23eca76d' fill-opacity='.9'/%3E%3Crect x='390.0' y='108.5' width='4.0' height='209.5' fill='%23eda970' fill-opacity='.9'/%3E%3Crect x='395.0' y='159.0' width='4.0' height='159.0' fill='%23ea995f' fill-opacity='.9'/%3E%3Crect x='400.0' y='131.5' width='4.0' height='186.5' fill='%23eba268' fill-opacity='.9'/%3E%3Crect x='405.0' y='120.0' width='4.0' height='198.0' fill='%23eca66c' fill-opacity='.9'/%3E%3Crect x='410.0' y='121.9' width='4.0' height='196.1' fill='%23eca56b' fill-opacity='.9'/%3E%3Crect x='415.0' y='77.9' width='4.0' height='240.1' fill='%23efb37a' fill-opacity='.9'/%3E%3Crect x='420.0' y='70.3' width='4.0' height='247.7' fill='%23efb67c' fill-opacity='.9'/%3E%3Crect x='425.0' y='87.6' width='4.0' height='230.4' fill='%23eeb077' fill-opacity='.9'/%3E%3Crect x='430.0' y='157.6' width='4.0' height='160.4' fill='%23ea9960' fill-opacity='.9'/%3E%3Crect x='435.0' y='134.3' width='4.0' height='183.7' fill='%23eba167' fill-opacity='.9'/%3E%3Crect x='440.0' y='114.7' width='4.0' height='203.3' fill='%23eda76e' fill-opacity='.9'/%3E%3Crect x='445.0' y='147.4' width='4.0' height='170.6' fill='%23ea9d63' fill-opacity='.9'/%3E%3Crect x='450.0' y='110.1' width='4.0' height='207.9' fill='%23eda96f' fill-opacity='.9'/%3E%3Crect x='455.0' y='82.6' width='4.0' height='235.4' fill='%23efb278' fill-opacity='.9'/%3E%3Crect x='460.0' y='144.9' width='4.0' height='173.1' fill='%23eb9d64' fill-opacity='.9'/%3E%3Crect x='465.0' y='131.1' width='4.0' height='186.9' fill='%23eba268' fill-opacity='.9'/%3E%3Crect x='470.0' y='143.3' width='4.0' height='174.7' fill='%23eb9e64' fill-opacity='.9'/%3E%3Crect x='475.0' y='130.0' width='4.0' height='188.0' fill='%23eca269' fill-opacity='.9'/%3E%3Crect x='480.0' y='140.2' width='4.0' height='177.8' fill='%23eb9f65' fill-opacity='.9'/%3E%3Crect x='485.0' y='134.6' width='4.0' height='183.4' fill='%23eba167' fill-opacity='.9'/%3E%3Crect x='490.0' y='110.7' width='4.0' height='207.3' fill='%23eda96f' fill-opacity='.9'/%3E%3Crect x='495.0' y='102.4' width='4.0' height='215.6' fill='%23edab72' fill-opacity='.9'/%3E%3Crect x='500.0' y='150.7' width='4.0' height='167.3' fill='%23ea9c62' fill-opacity='.9'/%3E%3Crect x='505.0' y='122.0' width='4.0' height='196.0' fill='%23eca56b' fill-opacity='.9'/%3E%3Crect x='510.0' y='145.2' width='4.0' height='172.8' fill='%23eb9d64' fill-opacity='.9'/%3E%3Crect x='515.0' y='91.6' width='4.0' height='226.4' fill='%23eeaf75' fill-opacity='.9'/%3E%3Crect x='520.0' y='72.4' width='4.0' height='245.6' fill='%23efb57c' fill-opacity='.9'/%3E%3Crect x='525.0' y='96.6' width='4.0' height='221.4' fill='%23eead74' fill-opacity='.9'/%3E%3Crect x='530.0' y='128.8' width='4.0' height='189.2' fill='%23eca369' fill-opacity='.9'/%3E%3Crect x='535.0' y='137.2' width='4.0' height='180.8' fill='%23eba066' fill-opacity='.9'/%3E%3Crect x='540.0' y='73.1' width='4.0' height='244.9' fill='%23efb57b' fill-opacity='.9'/%3E%3Crect x='545.0' y='148.0' width='4.0' height='170.0' fill='%23ea9c63' fill-opacity='.9'/%3E%3Crect x='550.0' y='66.5' width='4.0' height='251.5' fill='%23f0b77e' fill-opacity='.9'/%3E%3Crect x='555.0' y='115.4' width='4.0' height='202.6' fill='%23eca76d' fill-opacity='.9'/%3E%3Crect x='560.0' y='150.6' width='4.0' height='167.4' fill='%23ea9c62' fill-opacity='.9'/%3E%3Crect x='565.0' y='130.9' width='4.0' height='187.1' fill='%23eba268' fill-opacity='.9'/%3E%3Crect x='570.0' y='155.4' width='4.0' height='162.6' fill='%23ea9a60' fill-opacity='.9'/%3E%3Crect x='575.0' y='129.8' width='4.0' height='188.2' fill='%23eca269' fill-opacity='.9'/%3E%3Crect x='580.0' y='154.2' width='4.0' height='163.8' fill='%23ea9a61' fill-opacity='.9'/%3E%3Crect x='585.0' y='150.5' width='4.0' height='167.5' fill='%23ea9c62' fill-opacity='.9'/%3E%3Crect x='590.0' y='144.3' width='4.0' height='173.7' fill='%23eb9e64' fill-opacity='.9'/%3E%3Crect x='595.0' y='145.5' width='4.0' height='172.5' fill='%23eb9d64' fill-opacity='.9'/%3E%3Crect x='600.0' y='139.1' width='4.0' height='178.9' fill='%23eb9f66' fill-opacity='.9'/%3E%3Crect x='605.0' y='148.6' width='4.0' height='169.4' fill='%23ea9c63' fill-opacity='.9'/%3E%3Crect x='610.0' y='100.5' width='4.0' height='217.5' fill='%23edac72' fill-opacity='.9'/%3E%3Crect x='615.0' y='86.4' width='4.0' height='231.6' fill='%23eeb077' fill-opacity='.9'/%3E%3Crect x='620.0' y='99.3' width='4.0' height='218.7' fill='%23eeac73' fill-opacity='.9'/%3E%3Crect x='625.0' y='115.6' width='4.0' height='202.4' fill='%23eca76d' fill-opacity='.9'/%3E%3Cpolygon points='627.5,78.2 632.5,77.5 637.5,76.9 642.5,76.1 647.5,76.0 652.5,75.7 657.5,74.5 662.5,74.9 667.5,74.0 672.5,74.1 677.5,73.7 682.5,74.2 687.5,73.4 692.5,72.0 697.5,72.4 702.5,72.0 707.5,72.5 712.5,71.2 717.5,70.9 722.5,70.7 727.5,70.3 732.5,70.3 737.5,69.6 742.5,69.3 747.5,68.9 752.5,69.1 757.5,67.5 762.5,68.0 767.5,67.4 772.5,66.7 777.5,67.6 782.5,66.5 787.5,64.7 792.5,66.1 797.5,65.4 802.5,65.4 807.5,65.8 812.5,64.1 817.5,64.5 822.5,64.2 827.5,63.2 832.5,63.3 837.5,63.4 842.5,61.8 847.5,62.8 852.5,62.0 857.5,61.2 862.5,61.2 867.5,61.2 872.5,60.4 877.5,60.7 882.5,60.3 887.5,60.0 892.5,59.4 897.5,59.9 902.5,59.0 907.5,59.0 912.5,58.3 917.5,58.8 922.5,58.0 927.5,57.9 932.5,57.3 937.5,57.2 942.5,56.9 947.5,56.5 952.5,56.3 957.5,56.2 962.5,56.1 967.5,55.8 972.5,56.0 977.5,55.5 982.5,55.3 987.5,55.0 992.5,54.7 997.5,54.4 1002.5,53.8 1002.5,113.7 997.5,113.6 992.5,114.0 987.5,114.9 982.5,114.5 977.5,115.0 972.5,115.3 967.5,115.3 962.5,115.7 957.5,115.7 952.5,115.8 947.5,116.1 942.5,116.7 937.5,116.3 932.5,116.7 927.5,117.3 922.5,117.4 917.5,117.8 912.5,118.1 907.5,118.1 902.5,118.3 897.5,119.1 892.5,119.0 887.5,119.1 882.5,119.5 877.5,119.4 872.5,119.7 867.5,120.4 862.5,120.4 857.5,120.9 852.5,120.9 847.5,121.4 842.5,121.5 837.5,121.6 832.5,122.0 827.5,122.7 822.5,122.7 817.5,122.9 812.5,123.5 807.5,123.7 802.5,123.9 797.5,124.3 792.5,124.4 787.5,124.6 782.5,125.2 777.5,125.6 772.5,125.8 767.5,125.8 762.5,126.3 757.5,126.9 752.5,127.1 747.5,127.3 742.5,127.9 737.5,128.4 732.5,128.7 727.5,128.8 722.5,129.5 717.5,129.8 712.5,130.1 707.5,130.5 702.5,130.9 697.5,131.4 692.5,131.4 687.5,132.2 682.5,132.5 677.5,132.8 672.5,133.1 667.5,133.7 662.5,133.9 657.5,134.4 652.5,135.1 647.5,135.5 642.5,135.8 637.5,136.4 632.5,136.4 627.5,137.4' fill='%23e3a72f' fill-opacity='.28'/%3E%3Cpolyline points='627.5,117.2 632.5,116.5 637.5,116.4 642.5,115.6 647.5,115.6 652.5,115.1 657.5,114.5 662.5,114.2 667.5,114.3 672.5,113.1 677.5,112.9 682.5,112.7 687.5,112.5 692.5,112.0 697.5,111.7 702.5,111.7 707.5,111.7 712.5,111.0 717.5,110.1 722.5,109.7 727.5,109.7 732.5,109.6 737.5,108.8 742.5,108.7 747.5,108.0 752.5,108.6 757.5,107.8 762.5,107.2 767.5,107.2 772.5,106.9 777.5,107.3 782.5,106.6 787.5,105.6 792.5,106.2 797.5,106.0 802.5,105.7 807.5,105.1 812.5,104.7 817.5,104.5 822.5,104.5 827.5,104.5 832.5,103.7 837.5,103.9 842.5,103.2 847.5,103.7 852.5,103.0 857.5,103.0 862.5,102.4 867.5,102.7 872.5,102.1 877.5,101.8 882.5,102.0 887.5,101.6 892.5,101.4 897.5,101.4 902.5,101.0 907.5,101.0 912.5,100.1 917.5,100.4 922.5,100.1 927.5,99.8 932.5,99.4 937.5,99.1 942.5,99.4 947.5,98.9 952.5,98.3 957.5,98.5 962.5,98.3 967.5,98.2 972.5,98.2 977.5,98.1 982.5,97.4 987.5,97.9 992.5,97.2 997.5,97.0 1002.5,96.7' fill='none' stroke='%23e3a72f' stroke-width='2'/%3E%3Cpolygon points='627.5,78.2 632.5,79.2 637.5,78.9 642.5,80.0 647.5,78.6 652.5,79.6 657.5,81.1 662.5,80.8 667.5,81.7 672.5,82.1 677.5,81.9 682.5,82.5 687.5,81.9 692.5,83.5 697.5,83.2 702.5,84.3 707.5,85.3 712.5,84.6 717.5,85.0 722.5,84.1 727.5,85.8 732.5,86.7 737.5,86.8 742.5,87.2 747.5,87.2 752.5,88.4 757.5,89.3 762.5,88.7 767.5,90.0 772.5,89.7 777.5,89.9 782.5,90.5 787.5,89.3 792.5,91.1 797.5,90.6 802.5,91.7 807.5,92.5 812.5,93.6 817.5,93.2 822.5,94.4 827.5,94.8 832.5,94.1 837.5,94.5 842.5,95.4 847.5,94.6 852.5,96.0 857.5,97.0 862.5,96.7 867.5,97.3 872.5,97.9 877.5,97.7 882.5,98.8 887.5,99.2 892.5,99.9 897.5,100.5 902.5,100.4 907.5,101.1 912.5,101.4 917.5,101.7 922.5,102.7 927.5,102.7 932.5,103.3 937.5,103.6 942.5,104.3 947.5,105.3 952.5,105.5 957.5,105.7 962.5,106.2 967.5,106.8 972.5,107.5 977.5,108.0 982.5,108.6 987.5,109.0 992.5,109.5 997.5,110.0 1002.5,110.7 1002.5,170.4 997.5,169.3 992.5,169.0 987.5,168.6 982.5,168.1 977.5,167.6 972.5,167.1 967.5,166.3 962.5,165.9 957.5,165.6 952.5,164.8 947.5,164.6 942.5,164.0 937.5,163.4 932.5,163.2 927.5,162.2 922.5,161.8 917.5,161.1 912.5,160.8 907.5,160.5 902.5,159.7 897.5,159.4 892.5,158.5 887.5,158.7 882.5,157.8 877.5,157.5 872.5,157.0 867.5,156.5 862.5,156.2 857.5,155.6 852.5,155.0 847.5,154.3 842.5,154.5 837.5,153.5 832.5,153.5 827.5,153.0 822.5,152.4 817.5,152.0 812.5,151.4 807.5,151.0 802.5,150.5 797.5,150.1 792.5,149.4 787.5,149.5 782.5,149.2 777.5,148.3 772.5,148.3 767.5,147.8 762.5,147.1 757.5,147.0 752.5,146.2 747.5,146.1 742.5,145.8 737.5,145.4 732.5,145.0 727.5,143.8 722.5,144.2 717.5,143.7 712.5,143.6 707.5,143.0 702.5,142.9 697.5,142.5 692.5,142.3 687.5,141.7 682.5,141.4 677.5,141.2 672.5,141.0 667.5,139.9 662.5,140.0 657.5,139.9 652.5,139.1 647.5,139.0 642.5,138.9 637.5,138.6 632.5,138.0 627.5,138.0' fill='%231fb3a6' fill-opacity='.4'/%3E%3Cpolyline points='627.5,118.0 632.5,118.6 637.5,118.5 642.5,118.7 647.5,118.9 652.5,119.6 657.5,120.2 662.5,120.2 667.5,120.5 672.5,121.2 677.5,121.4 682.5,121.6 687.5,122.2 692.5,122.7 697.5,122.8 702.5,123.3 707.5,123.5 712.5,123.8 717.5,124.6 722.5,124.8 727.5,124.5 732.5,125.5 737.5,126.5 742.5,127.0 747.5,126.9 752.5,127.2 757.5,128.3 762.5,128.1 767.5,129.0 772.5,129.2 777.5,129.5 782.5,130.7 787.5,130.6 792.5,131.2 797.5,131.0 802.5,132.1 807.5,132.6 812.5,133.6 817.5,133.7 822.5,134.3 827.5,134.8 832.5,135.5 837.5,135.7 842.5,136.6 847.5,136.2 852.5,137.0 857.5,138.2 862.5,138.2 867.5,139.0 872.5,139.6 877.5,139.9 882.5,140.0 887.5,140.9 892.5,141.1 897.5,141.7 902.5,141.8 907.5,142.4 912.5,143.5 917.5,144.2 922.5,144.3 927.5,144.8 932.5,145.9 937.5,145.9 942.5,146.6 947.5,147.7 952.5,147.9 957.5,148.4 962.5,148.8 967.5,148.9 972.5,149.9 977.5,150.5 982.5,150.6 987.5,151.7 992.5,152.0 997.5,151.9 1002.5,153.2' fill='none' stroke='%231fb3a6' stroke-width='2'/%3E%3C/svg%3E");
  --ramp: linear-gradient(90deg, #231a22, #231a22, #3d6fb5, #e3a72f, #f3c969);
  --glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1l2.6 8.4L23 12l-8.4 2.6L12 23l-2.6-8.4L1 12l8.4-2.6z' fill='%23e8a33d'/%3E%3Cpath d='M19 3l.9 2.6L22.5 6.5l-2.6.9L19 10l-.9-2.6-2.6-.9 2.6-.9z' fill='%232a3573'/%3E%3C/svg%3E");

  --max-width: 1200px;
}




body { font-size: 0.95rem; line-height: 1.8; font-weight: 400; background-image: radial-gradient(rgba(34, 26, 23, 0.06) 0.9px, transparent 1.1px); background-size: 12px 12px; }
strong, b { font-weight: 700; }

::selection { background: rgba(196, 49, 43, 0.18); }
:where(a, button, [tabindex], input, select):focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

a { color: var(--primary-light); }
a:hover { color: var(--accent); }

.progress__bar { background: var(--ramp); }
.skip-link { background: var(--primary); }

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

.masthead {
  position: relative;
  color: var(--text-inverse);
  border-bottom: 0;
  padding: 3.3rem var(--gutter) 4.2rem;
  background:
    linear-gradient(90deg, rgba(13, 10, 9, 0.97) 0 30%, rgba(13, 10, 9, 0.6) 45%, rgba(13, 10, 9, 0.04) 66%),
    var(--sheet) right 0% bottom 0% / 70% auto no-repeat,
    radial-gradient(ellipse at 70% 70%, rgba(200, 70, 43, 0.22), transparent 60%),
    linear-gradient(180deg, #221c18, #0b0908);
}
.masthead::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: var(--ramp); }
.masthead .overline { font-family: var(--mono); font-weight: 600; font-size: 0.92rem; letter-spacing: 0.1em; color: var(--accent-light); margin-bottom: 1rem; }
.masthead .overline::before { content: "▮ PEOPLE IN SURVIVABILITY RISK REGIONS EACH YEAR, 2025 → 12,000 CE (STRETCHED LOG TIME) · EMBER = UNSAFE STABILISATION (S2) · TEAL LINE = BUFFERED PATH (S1) · "; color: #e8c27a; }
.masthead h1 { font-family: var(--serif); font-weight: 600; text-transform: uppercase; font-size: clamp(2.2rem, 5vw, 3.7rem); line-height: 1.02; letter-spacing: 0.02em; max-width: 16ch; color: #fff; }
.masthead .subtitle { font-family: var(--sans); font-weight: 400; font-style: italic; font-size: 1.08rem; color: #e6d8c8; max-width: 60ch; }
.masthead .strapline { font-family: var(--sans); font-style: normal; font-size: 0.97rem; color: #f1f2f5; border-left: 4px solid var(--t-d); max-width: 64ch; background: rgba(13, 10, 9, 0.86); }
.masthead .meta-row { border-top: 1px solid rgba(255, 255, 255, 0.14); color: #bcae9f; font-family: var(--mono); font-size: 1rem; position: relative; }
.masthead .meta-row strong { color: var(--accent-light); font-family: var(--mono); font-weight: 600; font-size: 0.84rem; letter-spacing: 0.1em; }

/* --- nav --------------------------------------------------------------------- */

.sticky-nav { background: rgba(243, 240, 235, 0.96); border-bottom: 1px solid var(--border); }
.nav-inner a { color: var(--text-muted); font-family: var(--mono); font-size: 0.84rem; font-weight: 500; }
.nav-inner a:hover { color: var(--text); }
.nav-inner a.is-active { color: var(--primary); border-bottom-color: var(--accent); }

/* --- headings with a crowd glyph ------------------------------------------------ */

section > h2 {
  position: relative;
  font-family: var(--serif);
  font-weight: 600;
  font-size: clamp(1.8rem, 3.6vw, 2.5rem);
  letter-spacing: 0.01em;
  line-height: 1.1;
  color: var(--primary);
  border-bottom: 1px solid var(--rule);
  padding: 0 0 0.6rem 2.5rem;
}
section > h2::before {
  content: "";
  position: absolute; left: 0.05rem; top: 0.2em;
  width: 1.7rem; height: 1.7rem;
  background: var(--glyph) center / contain no-repeat;
}
.abstract h2, .endmatter h2 { padding-left: 0; border-bottom: 0; font-family: var(--mono); font-size: 0.86rem; }
.abstract h2::before, .endmatter h2::before { content: none; }
section > .section-dek { font-family: var(--sans); font-style: normal; font-weight: 600; color: var(--text-muted); font-size: 1.15rem; line-height: 1.45; max-width: none; }

.section-rule { border-top: 1px solid var(--border-light); margin: 2.6rem 0 2.8rem; }

/* --- abstract, endmatter ------------------------------------------------------------- */

.abstract { background: var(--bg-card); border: 1px solid var(--border); border-top: 6px solid transparent; border-image: var(--ramp) 1; border-radius: 0; }
.abstract h2 { color: var(--primary); letter-spacing: 0.12em; }
.endmatter .kw { background: var(--bg-accent); border-color: var(--border); font-family: var(--mono); font-size: 0.72rem; }
.endmatter dt { font-family: var(--mono); font-size: 0.72rem; }

/* --- KPI board ------------------------------------------------------------------------- */

.kpi-board { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 1.6rem 0; }
.kpi { position: relative; background: var(--bg-card); border: 1px solid var(--border); border-radius: 2px; padding: 1.15rem 1.05rem 0.85rem; display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
.kpi::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--k, var(--accent)); }

.kpi--b { --k: var(--t-b); }
.kpi--d { --k: var(--t-d); }
.kpi--a { --k: var(--t-a); }
.kpi--srr { --k: var(--t-srr); }
.kpi--gold { --k: var(--q-gold); }
.kpi--teal { --k: var(--q-teal); }
.kpi-value { font-family: var(--mono); font-weight: 700; font-size: clamp(2.1rem, 3.8vw, 2.7rem); letter-spacing: -0.02em; line-height: 1; color: var(--text); font-variant-numeric: lining-nums tabular-nums; }
.kpi-label { font-size: 0.86rem; line-height: 1.42; color: var(--text-secondary); margin-top: 0.45rem; flex: 1; }
.kpi-source { font-family: var(--mono); font-size: 0.82rem; font-weight: 400; color: var(--text-muted); margin-top: 0.6rem; border-top: 1px solid var(--border-light); padding-top: 0.4rem; margin-bottom: 0.3rem; }

/* --- readout ----------------------------------------------------------------------------- */

.readout { background: var(--bg-dark); border-radius: 2px; padding: 1.15rem 1.4rem 0.45rem; margin: 1.6rem 0; position: relative; overflow: hidden; border-top: 6px solid transparent; border-image: var(--ramp) 1; }
.readout-title { font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent-light); margin: 0 0 0.4rem !important; }
.readout p { color: #efe5da; text-align: justify; hyphens: auto; -webkit-hyphens: auto; position: relative; }
.readout strong { color: #fff; }

/* --- panels ------------------------------------------------------------------------------ */

.dash-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 1.2rem 0; }
.panel { background: var(--bg-card); border: 1px solid var(--border); border-radius: 2px; padding: 1.05rem 1.15rem 0.95rem; min-width: 0; }
.panel--wide { grid-column: 1 / -1; }
.panel--hero { margin: 1.2rem 0; padding: 1.15rem 1.25rem 1.05rem; border-top: 5px solid transparent; border-image: var(--ramp) 1; }
.panel-head { border-bottom: 1px solid var(--border-light); margin-bottom: 0.75rem; padding-bottom: 0.55rem; }
.panel-title { font-family: var(--serif); font-weight: 700; letter-spacing: -0.01em; font-size: 1.15rem; line-height: 1.2; color: var(--text); margin: 0 !important; }
.panel-meta { font-family: var(--mono); font-size: 0.88rem; font-weight: 400; color: var(--text-muted); margin: 0.25rem 0 0.4rem !important; }
.panel-note { font-size: 0.85rem; line-height: 1.5; color: var(--text-muted); margin: 0.6rem 0 0 !important; text-align: left !important; }
.panel canvas { max-width: 100%; }
.panel .chart-frame { height: 310px; }
.panel .chart-frame--tall { height: 440px; }
.panel .chart-frame--short { height: 240px; }

.stat-tile { background: var(--bg-card); border: 1px solid var(--border); border-radius: 2px; padding: 0.85rem 1rem; border-left: 6px solid var(--k, var(--accent)); min-width: 0; }
.stat-tile--heat { --k: var(--t-b); }
.stat-tile--danger { --k: var(--t-d); }
.stat-tile--pm { --k: var(--t-a); }
.stat-tile--cool { --k: var(--q-teal); }
.stat-tile-value { font-family: var(--mono); font-weight: 700; letter-spacing: -0.02em; font-size: 1.6rem; line-height: 1.05; color: var(--text); margin: 0 !important; font-variant-numeric: lining-nums tabular-nums; }
.stat-tile-label { font-size: 0.82rem; color: var(--text-muted); margin: 0.2rem 0 0 !important; text-align: left !important; line-height: 1.4; }
.tile-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 1rem 0; }

/* --- controls ------------------------------------------------------------------------------ */

.controls { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px 22px; margin-bottom: 1rem; padding-bottom: 0.9rem; border-bottom: 1px solid var(--border-light); }
.slider { display: grid; gap: 3px; }
.slider-top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.slider label, .seg-wrap .seg-label { font-family: var(--sans); font-weight: 600; font-size: 0.9rem; color: var(--text); }
.slider output { font-family: var(--mono); font-weight: 700; font-size: 0.9rem; color: var(--accent); white-space: nowrap; }
.slider .hint { font-size: 0.78rem; line-height: 1.35; color: var(--text-muted); margin: 0 !important; text-align: left !important; }
.slider input[type="range"] { width: 100%; accent-color: var(--accent); margin: 2px 0; }
.seg-wrap { display: grid; gap: 5px; }
.segmented { display: inline-flex; flex-wrap: wrap; border: 1px solid var(--rule); border-radius: 2px; overflow: hidden; background: var(--bg-card); width: fit-content; max-width: 100%; }
.segmented button { font: inherit; font-family: var(--mono); font-size: 0.92rem; font-weight: 400; padding: 0.38rem 0.66rem; border: 0; background: transparent; color: var(--text-secondary); cursor: pointer; }
.segmented button + button { border-left: 1px solid var(--rule); }
.segmented button.is-on { background: var(--primary); color: #fff; }
.calc-note { font-family: var(--mono); font-size: 0.88rem; font-weight: 400; color: var(--text-muted); margin: 0.6rem 0 0 !important; line-height: 1.5; }
select.pick { font: inherit; font-family: var(--sans); font-size: 0.92rem; padding: 0.35rem 0.5rem; border: 1px solid var(--rule); border-radius: 2px; background: var(--bg-card); color: var(--text); max-width: 100%; }

/* --- atlas and country card ------------------------------------------------------------------- */

.atlas-layout { display: grid; grid-template-columns: minmax(0, 2.15fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.atlas-wrap { position: relative; border-radius: 2px; overflow: hidden; background: var(--map-sea); border: 1px solid var(--border); }
.atlas { display: block; width: 100%; height: auto; }

.atlas-corner { position: absolute; left: 10px; bottom: 8px; font-family: var(--mono); font-size: 0.62rem; color: var(--text-muted); background: rgba(255, 255, 255, 0.85); padding: 1px 6px; border-radius: 2px; }
.legend { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0.6rem 0 0; }
.legend span { display: inline-flex; align-items: center; gap: 6px; font-family: var(--mono); font-size: 0.72rem; color: var(--text-secondary); }
.legend i { width: 14px; height: 10px; border-radius: 1px; flex: none; }
.country-card { border: 1px solid var(--border); border-radius: 2px; background: var(--bg); padding: 0.85rem 0.95rem; min-height: 300px; border-top: 6px solid var(--cc, var(--rule)); }
.country-card .cc-kicker { font-family: var(--mono); font-size: 0.66rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); margin: 0 !important; }
.country-card h3 { font-family: var(--serif); font-weight: 800; font-size: 1.45rem; color: var(--primary); margin: 0.05rem 0 0.15rem; line-height: 1.1; }
.country-card .cc-class { font-family: var(--mono); font-size: 0.72rem; margin: 0 0 0.55rem !important; color: var(--text-secondary); text-align: left !important; }
.kv { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; font-size: 0.86rem; margin: 0; }
.kv dt { color: var(--text-secondary); }
.kv dd { margin: 0; font-family: var(--mono); font-size: 0.8rem; color: var(--text); text-align: right; }
.tag-row { display: flex; flex-wrap: wrap; gap: 5px; margin: 0.5rem 0 0; }
.tag-row span { font-family: var(--mono); font-size: 0.64rem; letter-spacing: 0.04em; padding: 2px 6px; border-radius: 2px; background: var(--bg-accent); color: var(--text-secondary); }
.tag-row span.on { background: var(--accent); color: #fff; }

/* --- breaker cards -------------------------------------------------------------- */

.cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 1.2rem 0; }
.card { background: var(--bg-card); border: 1px solid var(--border); border-radius: 2px; padding: 0.95rem 1rem; border-top: 5px solid var(--k, var(--primary-light)); }
.card h3 { font-family: var(--serif); font-weight: 700; font-size: 1.1rem; line-height: 1.2; color: var(--primary); margin: 0 0 0.35rem; }
.card p { font-size: 0.88rem; line-height: 1.5; color: var(--text-secondary); margin: 0 !important; text-align: left !important; }
.card .tag { font-family: var(--mono); font-size: 0.64rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); margin: 0 0 0.25rem !important; }
.card--a { --k: var(--s-126); }
.card--b { --k: var(--t-b); }
.card--c { --k: var(--t-a); }
.card--d { --k: var(--t-d); }
.card--e { --k: var(--r-sas); }
.card--f { --k: var(--r-ssf); }

/* --- references, footer --------------------------------------------------------------------- */

.ref-list .ref-org { font-family: var(--mono); color: var(--primary-light); font-size: 0.7rem; }
.report-footer { border-top: 0; position: relative; padding-top: calc(3rem + 6px); }
.report-footer::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: var(--ramp); }
.footer-inner h3 { color: #fff; font-family: var(--serif); font-weight: 400; font-size: 1.4rem; }
.footer-inner a { color: var(--accent-light); }
.cite-box { border-left-color: var(--accent); }

/* --- responsive ------------------------------------------------------------------------------ */

@media (max-width: 1000px) {
  .kpi-board, .tile-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .atlas-layout { grid-template-columns: minmax(0, 1fr); }
  .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .dash-grid, .cards { grid-template-columns: minmax(0, 1fr); }
  .masthead { padding-top: 2.2rem; background: linear-gradient(180deg, rgba(13, 10, 9, 0.92) 0 62%, rgba(13, 10, 9, 0.35)), var(--sheet) 50% 100% / 160% auto no-repeat, linear-gradient(180deg, #2a201c, #0d0a09); }
  .segmented button { padding: 0.34rem 0.5rem; font-size: 0.7rem; }
}
@media (max-width: 420px) {
  .kpi-board, .tile-row { grid-template-columns: minmax(0, 1fr); }
}

@media print {
  .controls { display: none; }
  .masthead, .readout, .report-footer::before, .atlas-wrap, .strip { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}


/* --- report-specific: levers, ledger, driver matrix, calculator, atlas, table --------------------------------------- */

.levers { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0.4rem 0 0.2rem; }
.lever { border: 1px solid var(--border); border-radius: 3px; background: var(--bg-card); padding: 0.8rem 0.9rem; border-top: 6px solid var(--k); min-width: 0; }
.lever h4 { font-family: var(--serif); font-weight: 700; font-size: 1.12rem; line-height: 1.15; margin: 0 0 0.3rem; color: var(--primary); }
.lever .big { font-family: var(--mono); font-weight: 700; font-size: 1.15rem; line-height: 1; color: var(--k); margin: 0.1rem 0 0.35rem !important; text-align: left !important; }
.lever p { font-size: 0.86rem; line-height: 1.45; color: var(--text-secondary); margin: 0 0 0.45rem !important; text-align: left !important; }
.lever .row { display: flex; justify-content: space-between; gap: 8px; font-family: var(--mono); font-size: 0.95rem; border-top: 1px solid var(--border-light); padding-top: 0.25rem; margin-top: 0.25rem; }
.lever .row b { color: var(--k); font-weight: 700; }
.lever--heat { --k: var(--t-b); } .lever--danger { --k: var(--t-d); } .lever--pm { --k: var(--t-a); } .lever--cool { --k: var(--q-teal); }
.root-note { margin: 0.6rem 0 0; padding: 0.55rem 0.8rem; border-left: 5px solid var(--t-d); background: var(--bg-accent); font-size: 0.9rem; color: var(--text-secondary); }
@media (max-width: 1000px) { .levers { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .levers { grid-template-columns: minmax(0, 1fr); } }

table.heat { width: 100%; border-collapse: separate; border-spacing: 3px; font-size: 0.86rem; }
table.heat th { font-family: var(--mono); font-weight: 600; font-size: 0.82rem; letter-spacing: 0.03em; color: var(--text-secondary); text-align: center; padding: 0.2rem 0.3rem; vertical-align: bottom; }
table.heat th.rh { text-align: left; white-space: nowrap; }
table.heat td { font-family: var(--mono); font-weight: 600; font-size: 0.92rem; text-align: center; padding: 0.45rem 0.2rem; border-radius: 2px; min-width: 44px; }
.heat-wrap { overflow-x: auto; }
.heat-key { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0.5rem 0 0; font-family: var(--mono); font-size: 0.85rem; color: var(--text-muted); }
.heat-key i { display: inline-block; width: 14px; height: 10px; border-radius: 1px; margin-right: 5px; vertical-align: middle; }

.calc-out { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0.9rem 0 0.4rem; }
.calc-out div { border: 1px solid var(--border); border-left: 5px solid var(--k, var(--t-b)); border-radius: 2px; background: var(--bg); padding: 0.6rem 0.75rem; min-width: 0; }
.calc-out b { display: block; font-family: var(--mono); font-weight: 700; font-size: 1.55rem; line-height: 1.05; color: var(--text); }
.calc-out span { display: block; font-size: 0.8rem; line-height: 1.35; color: var(--text-muted); margin-top: 0.2rem; }
@media (max-width: 900px) { .calc-out { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.atlas .atlas-sea { fill: var(--map-sea); }
.atlas .atlas-land path { fill: var(--map-none); stroke: #fff; stroke-width: 0.45; stroke-linejoin: round; transition: fill 0.25s; }
.atlas [data-iso].is-in { cursor: pointer; }
.atlas [data-iso].is-in:hover { stroke: var(--text); stroke-width: 1.3; }
.atlas [data-iso].is-pick { stroke: var(--text); stroke-width: 2.2; }
.cls-chip { display: inline-block; font-family: var(--mono); font-weight: 600; font-size: 0.8rem; letter-spacing: 0.04em; text-transform: uppercase; padding: 1px 7px; border-radius: 2px; color: #fff; background: var(--k, var(--text-muted)); }
.chbar { display: flex; height: 16px; border-radius: 2px; overflow: hidden; margin: 0.35rem 0 0.15rem; background: var(--bg-accent); }
.chbar i { display: block; height: 100%; }
.ch-lab { font-family: var(--mono); font-size: 0.86rem; color: var(--text-muted); margin: 0 0 0.5rem !important; text-align: left !important; }
.ch-key { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 0.4rem 0 0; }
.ch-key span { display: inline-flex; align-items: center; gap: 5px; font-family: var(--mono); font-size: 0.85rem; color: var(--text-secondary); }
.ch-key i { width: 12px; height: 10px; border-radius: 1px; }
table.rank { width: 100%; border-collapse: collapse; font-size: 0.86rem; }
table.rank th, table.rank td { padding: 0.36rem 0.5rem; border-bottom: 1px solid var(--border-light); text-align: left; }
table.rank thead th { position: sticky; top: 0; background: var(--bg-card); font-family: var(--mono); font-weight: 600; font-size: 0.8rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-muted); border-bottom: 2px solid var(--rule); }
table.rank th button { font: inherit; background: none; border: 0; color: inherit; cursor: pointer; padding: 0; text-transform: inherit; letter-spacing: inherit; }
table.rank th button[aria-sort]::after { content: " ↓"; color: var(--accent); }
table.rank td.n { font-family: var(--mono); font-size: 0.92rem; text-align: right; white-space: nowrap; }
table.rank tbody tr { cursor: pointer; }
table.rank tbody tr:hover td { background: var(--bg-accent); }
.rank-wrap { overflow-x: auto; max-height: 480px; overflow-y: auto; }
.mini { display: inline-flex; width: 90px; height: 9px; border-radius: 1px; overflow: hidden; background: var(--bg-accent); vertical-align: middle; }
.mini i { display: block; height: 100%; }

.calc-split { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.calc-split .calc-out { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 0; }
@media (max-width: 860px) { .calc-split { grid-template-columns: minmax(0, 1fr); } }
.spark { display: inline-block; vertical-align: middle; }
.gridmap { display: block; width: 100%; height: auto; image-rendering: pixelated; border: 1px solid var(--border); background: var(--map-sea); }
.bikey { display: grid; grid-template-columns: auto repeat(3, 34px); gap: 2px; align-items: center; font-family: var(--mono); font-size: 0.8rem; color: var(--text-muted); margin: 0.6rem 0 0; width: fit-content; }
.bikey i { display: block; width: 34px; height: 20px; }
.bikey span { padding-right: 6px; text-align: right; }
.bikey .hx { text-align: center; padding: 0; }
.mapwrap { position: relative; }
.maptip { position: absolute; pointer-events: none; background: rgba(34, 26, 23, 0.92); color: #fff; font-family: var(--mono); font-size: 0.85rem; padding: 3px 7px; border-radius: 2px; display: none; white-space: nowrap; }

/* --- report-specific: eclipse panels, ramp key ------------------------------------------------ */

.venn-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0.4rem 0 0.2rem; }
.venn-cell { border: 1px solid var(--border); background: var(--bg); border-radius: 2px; padding: 0.55rem 0.6rem 0.5rem; min-width: 0; text-align: center; }
.venn-cell svg { display: block; width: 100%; height: auto; max-width: 220px; margin: 0 auto; }
.venn-cell h4 { font-family: var(--serif); font-weight: 600; font-size: 1rem; margin: 0 0 0.2rem; color: var(--primary); }
.venn-cell p { font-family: var(--mono); font-size: 0.85rem; line-height: 1.35; color: var(--text-secondary); margin: 0.25rem 0 0 !important; text-align: center !important; }
.venn-cell p b { color: var(--t-d); }
.venn-key { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0.6rem 0 0; font-family: var(--mono); font-size: 0.85rem; color: var(--text-muted); }
.venn-key i { display: inline-block; width: 13px; height: 13px; border-radius: 50%; margin-right: 5px; vertical-align: -2px; }
@media (max-width: 860px) { .venn-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rampkey { display: flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 0.82rem; color: var(--text-muted); margin: 0.6rem 0 0; flex-wrap: wrap; }
.rampkey .bar { display: inline-block; width: 220px; max-width: 60vw; height: 11px; border-radius: 1px; }
.flag { font-family: var(--mono); font-size: 0.72rem; color: var(--text-muted); }

.typo-key { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0.6rem 0 0; font-family: var(--mono); font-size: 0.85rem; color: var(--text-secondary); }
.typo-key i { display: inline-block; width: 13px; height: 11px; border-radius: 1px; margin-right: 5px; vertical-align: -1px; }
.pyr-row { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin: 0.4rem 0 0.2rem; }
.pyr-row .venn-cell svg { max-width: 190px; }
@media (max-width: 860px) { .pyr-row { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 480px) { .pyr-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.quote-band { border-left: 5px solid var(--t-d); background: var(--bg-card); padding: 0.8rem 1.1rem; margin: 1.2rem 0; font-family: var(--sans); font-style: italic; font-size: 1.05rem; color: var(--text-secondary); }
.pct-out { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0.4rem 0 0.6rem; }
@media (max-width: 900px) { .pct-out { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.kpi--violet { --k: var(--q-violet); }
.kpi--ember { --k: var(--q-ember); }
.stat-tile--violet { --k: var(--q-violet); }
.stat-tile--ember { --k: var(--q-ember); }
.compare-note { font-family: var(--mono); font-size: 0.95rem; color: var(--text-muted); border-left: 4px solid var(--q-gold); padding: 0.4rem 0.8rem; margin: 0.8rem 0; background: var(--bg-card); }
table.cmp { width: 100%; border-collapse: collapse; font-size: 0.92rem; margin: 0.8rem 0 1.2rem; }
table.cmp th, table.cmp td { padding: 0.4rem 0.55rem; border-bottom: 1px solid var(--border-light); text-align: right; }
table.cmp th:first-child, table.cmp td:first-child { text-align: left; }
table.cmp thead th { font-family: var(--mono); font-weight: 600; font-size: 0.95rem; letter-spacing: 0.03em; color: var(--text-muted); border-bottom: 2px solid var(--rule); }
table.cmp td { font-family: var(--mono); font-size: 1rem; }
table.cmp td:first-child { font-family: var(--sans); font-size: 0.92rem; }
.tbl-wrap { overflow-x: auto; }




.kpi--prev { --k: var(--v-prev); } .kpi--crisis { --k: var(--v-crisis); } .kpi--gold { --k: var(--v-gold); } .kpi--ink { --k: var(--v-ink); } .kpi--blue { --k: var(--v-blue); }
.stat-tile--prev { --k: var(--v-prev); } .stat-tile--crisis { --k: var(--v-crisis); } .stat-tile--gold { --k: var(--v-gold); } .stat-tile--blue { --k: var(--v-blue); }
.props { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 0.6rem 0 0.4rem; }
.prop { border: 1px solid var(--border); border-top: 6px solid var(--k, var(--v-prev)); border-radius: 2px; background: var(--bg-card); padding: 0.7rem 0.8rem; min-width: 0; }
.prop .n { font-family: var(--mono); font-weight: 600; font-size: 0.78rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); margin: 0 !important; }
.prop h4 { font-family: var(--serif); font-weight: 400; font-size: 1.04rem; line-height: 1.2; margin: 0.15rem 0 0.3rem; color: var(--primary); }
.prop .big { font-family: var(--mono); font-weight: 700; font-size: 1.3rem; line-height: 1.05; color: var(--k); margin: 0 !important; text-align: left !important; }
.prop p { font-size: 0.83rem; line-height: 1.42; color: var(--text-secondary); margin: 0.25rem 0 0 !important; text-align: left !important; }
.prop--1 { --k: var(--v-crisis); } .prop--2 { --k: var(--v-recon); } .prop--3 { --k: var(--v-gold); } .prop--4 { --k: var(--v-blue); } .prop--5 { --k: var(--v-prev); }
@media (max-width: 1000px) { .props { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
table.ev { width: 100%; border-collapse: collapse; font-size: 0.86rem; }
table.ev th, table.ev td { padding: 0.38rem 0.5rem; border-bottom: 1px solid var(--border-light); text-align: left; vertical-align: top; }
table.ev thead th { font-family: var(--mono); font-weight: 600; font-size: 0.8rem; color: var(--text-muted); border-bottom: 2px solid var(--rule); white-space: nowrap; }
table.ev td.n { font-family: var(--mono); text-align: right; white-space: nowrap; }
table.ev td.src { font-size: 0.8rem; color: var(--text-muted); }
table.ev .dombar { display: flex; width: 120px; height: 10px; border-radius: 1px; overflow: hidden; }
table.ev .dombar i { display: block; height: 100%; }
.ev-wrap { overflow-x: auto; max-height: 560px; overflow-y: auto; }
.pick-list { display: flex; flex-wrap: wrap; gap: 6px 8px; margin: 0.2rem 0 0.4rem; }
.pick-list label { display: inline-flex; align-items: center; gap: 5px; font-family: var(--mono); font-size: 0.84rem; color: var(--text-secondary); background: var(--bg); border: 1px solid var(--border); border-radius: 2px; padding: 2px 7px; cursor: pointer; }
.pick-list input { accent-color: var(--v-prev); }
.tagchip { display: inline-block; font-family: var(--mono); font-size: 0.74rem; font-weight: 600; padding: 0 6px; margin: 0 3px 2px 0; border-radius: 2px; color: #fff; background: var(--k, var(--text-muted)); }
.explorer-top { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: flex-end; margin-bottom: 0.8rem; }
.explorer-top input[type=search] { font: inherit; font-size: 0.92rem; padding: 0.35rem 0.6rem; border: 1px solid var(--border); border-radius: 2px; background: var(--bg-card); color: var(--text); min-width: 200px; }
#pf-out, #esc-out { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { #pf-out, #esc-out { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
section > h2, .panel-title, .card h3, .country-card h3 { font-weight: 400; letter-spacing: 0.005em; }

/* --- 2026-78 masthead and components ----------------------------------------------------- */
.masthead {
  background:
    linear-gradient(90deg, rgba(10, 14, 32, 0.97) 0 26%, rgba(10, 14, 32, 0.6) 42%, rgba(10, 14, 32, 0.0) 60%),
    var(--sheet) right 0% bottom 0% / 76% auto no-repeat,
    radial-gradient(ellipse at 70% 55%, rgba(232, 163, 61, 0.1), transparent 55%),
    linear-gradient(180deg, #231a22 0%, #1a1319 70%, #120d14 100%);
}
.masthead .overline::before { content: "▮ AI BY NIGHT: EVERY COUNTRY IS A LIGHT, SIZED BY CLAUDE USAGE PER CAPITA · "; color: var(--accent-light); }
.masthead h1 { font-weight: 400; text-transform: none; letter-spacing: 0.01em; font-size: clamp(2.3rem, 5.2vw, 4rem); line-height: 1.04; max-width: 16ch; }
.masthead .strapline { border-left-color: var(--i-light); background: rgba(10, 14, 32, 0.88); }
.masthead .meta-row strong { font-weight: 600; }
.sticky-nav { background: rgba(242, 241, 246, 0.97); }
section > h2 { font-weight: 400; text-transform: none; letter-spacing: 0.01em; font-size: clamp(1.7rem, 3.5vw, 2.4rem); line-height: 1.1; }
.panel-title, .card h3, .country-card h3, .prop h4 { font-weight: 400; font-size: 1.12rem; line-height: 1.2; letter-spacing: 0.01em; text-transform: none; }
.country-card h3 { font-size: 1.45rem; }
@media (max-width: 680px) { .masthead { background: linear-gradient(180deg, rgba(10, 14, 32, 0.92) 0 62%, rgba(10, 14, 32, 0.35)), var(--sheet) 88% 100% / 210% auto no-repeat, linear-gradient(180deg, #231a22, #120d14); } }
.kpi--lt { --k: var(--i-amber); } .kpi--tl { --k: var(--i-teal); } .kpi--cr { --k: var(--i-coral); } .kpi--ix { --k: var(--i-indigo); } .kpi--gr { --k: var(--i-green); } .kpi--vl { --k: var(--i-violet); } .kpi--bl { --k: var(--i-blue); } .kpi--og { --k: var(--a-orange); }
.stat-tile--lt { --k: var(--i-amber); } .stat-tile--tl { --k: var(--i-teal); } .stat-tile--cr { --k: var(--i-coral); } .stat-tile--gr { --k: var(--i-green); }
table.ev { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
table.ev th, table.ev td { padding: 0.45rem 0.55rem; border-bottom: 1px solid var(--border-light); text-align: left; vertical-align: top; }
table.ev thead th { font-family: var(--mono); font-weight: 700; font-size: 0.8rem; color: var(--text-muted); border-bottom: 2px solid var(--rule); white-space: nowrap; }
table.ev td.n { font-family: var(--mono); text-align: right; white-space: nowrap; font-weight: 700; }
table.ev td.s { font-size: 0.8rem; color: var(--text-muted); }
.ev-wrap { overflow-x: auto; }
.seg-wrap.sm select.pick { min-width: 220px; }
#calc-out { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { #calc-out { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* colour hooks used by the KPI board, stat tiles and agenda cards */
.kpi--cr, .stat-tile--cr { --k: var(--g-lic); }
.kpi--ix, .stat-tile--ix { --k: var(--i-indigo); }
.kpi--lt, .stat-tile--lt { --k: var(--i-amber); }
.kpi--tl, .stat-tile--tl { --k: var(--i-teal); }
.kpi--gr, .stat-tile--gr { --k: var(--i-green); }
.kpi--bl, .stat-tile--bl { --k: var(--i-blue); }
.kpi--vl, .stat-tile--vl { --k: var(--i-violet); }
.kpi--og, .stat-tile--og { --k: var(--accent); }



/* --- 2026-81: panorama overrides ---------------------------------------------------------- */
:root {
  --c-ink: #231a22; --c-ember: #e0662b; --c-amber: #e3a72f; --c-teal: #1f8f86; --c-crim: #b8283f; --c-blue: #3d6fb5; --c-grey: #7a6f78; --c-plum: #6a3f7a; --c-moss: #6f9a3a;
  --map-none: #d9ccc0; --map-sea: #e6d9cd;
  --ramp: linear-gradient(90deg, #231a22, #6a3f7a, #e0662b, #e3a72f);
  --glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 20 L22 5 L22 20 Z' fill='%23e3a72f' fill-opacity='.45'/%3E%3Cpath d='M2 20 L22 12 L22 20 Z' fill='%231f8f86' fill-opacity='.55'/%3E%3Cpath d='M2 20 L22 5' stroke='%23e0662b' stroke-width='2' fill='none'/%3E%3Crect x='1' y='20' width='22' height='2' fill='%23231a22'/%3E%3C/svg%3E");
}
body { font-size: 1.08rem; line-height: 1.68; background-image: repeating-linear-gradient(0deg, transparent 0 39px, rgba(35, 26, 34, 0.045) 39px 40px); background-size: auto; }
.masthead {
  background:
    linear-gradient(90deg, rgba(18, 13, 20, 0.97) 0 24%, rgba(18, 13, 20, 0.6) 40%, rgba(18, 13, 20, 0) 60%),
    var(--sheet) right 0% bottom 0% / 78% auto no-repeat,
    linear-gradient(180deg, #231a22 0%, #1a1319 70%, #120d14 100%);
}
.masthead .overline::before { content: "▮ THE PANORAMA: DEATHS FROM DISASTERS EACH YEAR 1900-2025, THEN TWO SIMULATED FUTURES TO 2100 (AMBER: STALL AND WARM · TEAL: CAPACITY PUSH) · "; color: var(--accent-light); }
.masthead h1 { font-weight: 400; text-transform: none; letter-spacing: 0.005em; font-size: clamp(2.2rem, 5vw, 3.7rem); line-height: 1.05; max-width: 18ch; }
.masthead .strapline { border-left-color: var(--c-amber); background: rgba(18, 13, 20, 0.88); }
.sticky-nav { background: rgba(246, 239, 233, 0.97); }
@media (max-width: 680px) { .masthead { background: linear-gradient(180deg, rgba(18, 13, 20, 0.92) 0 62%, rgba(18, 13, 20, 0.35)), var(--sheet) 88% 100% / 210% auto no-repeat, linear-gradient(180deg, #231a22, #120d14); } }
.kpi--cr, .stat-tile--cr { --k: var(--c-ember); } .kpi--ix, .stat-tile--ix { --k: var(--c-ink); } .kpi--lt, .stat-tile--lt { --k: var(--c-amber); } .kpi--tl, .stat-tile--tl { --k: var(--c-teal); }
.kpi--gr, .stat-tile--gr { --k: var(--c-moss); } .kpi--bl, .stat-tile--bl { --k: var(--c-blue); } .kpi--vl, .stat-tile--vl { --k: var(--c-plum); } .kpi--og, .stat-tile--og { --k: var(--c-crim); }
.card--a { --k: var(--c-teal); } .card--b { --k: var(--c-ember); } .card--c { --k: var(--c-amber); } .card--d { --k: var(--c-moss); } .card--e { --k: var(--c-plum); } .card--f { --k: var(--c-blue); }
