/* ===========================================================================
   Theme — Report 2026-61, "The Human Dividend of Polycrisis Prevention"

   Aesthetic: lantern field. The masthead is a data-generated night sky of
   160 lanterns, one per country, placed left to right by income per head
   and lifted by how many lives a year coordinated development and risk
   reduction could protect per 100,000 people; each lantern's size is the
   number of lives it holds. Beneath them a warm horizon traces the
   under-five lives already protected each year since 2000. Below the
   masthead the page is warm parchment, and every h2 opens with a small
   flame. Libre Baskerville for display, Noto Sans for prose, Barlow
   Condensed for figures.

   Loaded after report.css; report.js reads these tokens for chart colours,
   and charts.js reads the --c, --s, --g and --r tokens so no hex lives in
   the script.
   =========================================================================== */

:root {
  --bg: #f7f2ea;
  --bg-card: #fffcf6;
  --bg-accent: #efe7da;
  --bg-dark: #1d1626;
  --bg-dark-2: #120d18;

  --text: #1f1a22;
  --text-secondary: #463c45;
  --text-muted: #776c71;
  --text-inverse: #f3e9dc;

  --primary: #2a1f33;
  --primary-light: #a94c32;
  --accent: #cf7f24;
  --accent-light: #f5c46a;

  --border: #e0d6c8;
  --border-light: #ece4d7;
  --rule: #cdbfac;

  /* channels of preventable death */
  --c-u5: #d98f2e;
  --c-mat: #c2547a;
  --c-air: #7a6fa8;
  --c-wash: #2f8fb0;
  --c-conf: #9c3b33;
  --c-dis: #5b8a4a;
  --c-mal: #a8743c;
  /* scenarios */
  --s-F: #9a8f94;
  --s-R: #2f8f83;
  --s-D: #d98f2e;
  --s-C: #c4452f;
  /* income groups */
  --g-lic: #9c3b33;
  --g-lmc: #d98f2e;
  --g-umc: #2f8f83;
  --g-hic: #3d6fb0;
  /* regions */
  --r-ssf: #9c3b33;
  --r-sas: #d98f2e;
  --r-eas: #3d6fb0;
  --r-mna: #8a6d3b;
  --r-lcn: #2f8f83;
  --r-ecs: #7a6fa8;
  --r-nac: #8f8790;
  /* map */
  --map-sea: #efe9df;
  --map-none: #ddd3c5;

  --chart-blue: #3d6fb0;
  --chart-blue-light: #aec4e2;
  --chart-gold: #d98f2e;
  --chart-red: #c4452f;
  --chart-teal: #2f8f83;
  --chart-gray: #8f8790;
  --chart-orange: #d98f2e;
  --chart-purple: #7a6fa8;

  --serif: "Libre Baskerville", Georgia, "Times New Roman", serif;
  --sans: "Noto Sans", -apple-system, BlinkMacSystemFont, "system-ui", "Segoe UI", sans-serif;
  --mono: "Barlow Condensed", "Arial Narrow", ui-sans-serif, sans-serif;

  --sheet: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='440' viewBox='0 0 900 440'%3E%3Cdefs%3E%3CradialGradient id='g'%3E%3Cstop offset='0' stop-color='%23fff1c9'/%3E%3Cstop offset='0.28' stop-color='%23f7b452' stop-opacity='0.9'/%3E%3Cstop offset='0.62' stop-color='%23d4612f' stop-opacity='0.35'/%3E%3Cstop offset='1' stop-color='%23c4452f' stop-opacity='0'/%3E%3C/radialGradient%3E%3ClinearGradient id='h' x1='0' x2='0' y1='0' y2='1'%3E%3Cstop offset='0' stop-color='%23f5a442' stop-opacity='0.55'/%3E%3Cstop offset='1' stop-color='%23f5a442' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Ccircle cx='768.7' cy='330.0' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='768.7' cy='330.0' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='820.5' cy='322.1' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='820.5' cy='322.1' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='755.8' cy='322.3' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='755.8' cy='322.3' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='735.4' cy='317.2' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='735.4' cy='317.2' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='689.0' cy='296.8' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='689.0' cy='296.8' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='712.5' cy='311.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='712.5' cy='311.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='870.0' cy='310.3' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='870.0' cy='310.3' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='777.7' cy='310.7' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='777.7' cy='310.7' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='541.7' cy='292.0' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='541.7' cy='292.0' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='747.7' cy='320.6' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='747.7' cy='320.6' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='730.7' cy='284.4' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='730.7' cy='284.4' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='803.9' cy='311.2' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='803.9' cy='311.2' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='700.0' cy='298.2' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='700.0' cy='298.2' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='843.7' cy='284.7' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='843.7' cy='284.7' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='712.6' cy='322.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='712.6' cy='322.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='715.3' cy='269.9' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='715.3' cy='269.9' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='774.7' cy='309.1' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='774.7' cy='309.1' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='748.9' cy='255.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='748.9' cy='255.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='645.9' cy='249.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='645.9' cy='249.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='870.0' cy='291.3' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='870.0' cy='291.3' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='692.7' cy='300.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='692.7' cy='300.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='630.4' cy='241.1' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='630.4' cy='241.1' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='650.9' cy='267.4' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='650.9' cy='267.4' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='712.4' cy='292.0' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='712.4' cy='292.0' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='663.0' cy='282.1' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='663.0' cy='282.1' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='712.5' cy='273.1' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='712.5' cy='273.1' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='771.0' cy='291.7' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='771.0' cy='291.7' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='628.6' cy='272.3' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='628.6' cy='272.3' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='741.7' cy='309.0' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='741.7' cy='309.0' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='756.1' cy='290.3' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='756.1' cy='290.3' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='672.6' cy='257.8' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='672.6' cy='257.8' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='666.6' cy='262.6' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='666.6' cy='262.6' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='757.3' cy='278.7' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='757.3' cy='278.7' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='482.7' cy='232.8' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='482.7' cy='232.8' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='677.9' cy='209.2' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='677.9' cy='209.2' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='410.8' cy='164.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='410.8' cy='164.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='473.3' cy='161.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='473.3' cy='161.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='698.5' cy='233.6' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='698.5' cy='233.6' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='425.7' cy='255.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='425.7' cy='255.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='469.8' cy='248.3' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='469.8' cy='248.3' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='608.7' cy='183.3' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='608.7' cy='183.3' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='714.5' cy='212.7' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='714.5' cy='212.7' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='321.2' cy='160.0' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='321.2' cy='160.0' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='492.1' cy='249.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='492.1' cy='249.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='279.8' cy='206.4' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='279.8' cy='206.4' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='517.3' cy='253.8' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='517.3' cy='253.8' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='733.7' cy='303.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='733.7' cy='303.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='716.0' cy='297.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='716.0' cy='297.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='553.1' cy='187.0' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='553.1' cy='187.0' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='564.4' cy='187.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='564.4' cy='187.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='641.5' cy='278.9' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='641.5' cy='278.9' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='592.9' cy='179.0' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='592.9' cy='179.0' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='553.9' cy='199.3' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='553.9' cy='199.3' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='547.6' cy='171.3' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='547.6' cy='171.3' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='466.3' cy='184.4' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='466.3' cy='184.4' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='474.6' cy='254.3' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='474.6' cy='254.3' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='685.5' cy='218.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='685.5' cy='218.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='581.5' cy='180.6' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='581.5' cy='180.6' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='261.0' cy='154.2' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='261.0' cy='154.2' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='424.6' cy='227.3' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='424.6' cy='227.3' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='608.9' cy='187.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='608.9' cy='187.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='735.3' cy='291.3' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='735.3' cy='291.3' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='730.4' cy='296.1' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='730.4' cy='296.1' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='549.1' cy='222.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='549.1' cy='222.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='504.4' cy='248.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='504.4' cy='248.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='513.5' cy='119.3' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='513.5' cy='119.3' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='715.9' cy='237.2' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='715.9' cy='237.2' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='477.6' cy='241.9' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='477.6' cy='241.9' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='755.0' cy='277.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='755.0' cy='277.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='399.5' cy='231.9' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='399.5' cy='231.9' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='255.7' cy='114.9' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='255.7' cy='114.9' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='675.5' cy='224.4' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='675.5' cy='224.4' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='590.0' cy='223.2' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='590.0' cy='223.2' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='519.5' cy='246.2' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='519.5' cy='246.2' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='687.3' cy='212.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='687.3' cy='212.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='395.5' cy='167.8' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='395.5' cy='167.8' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='354.3' cy='211.3' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='354.3' cy='211.3' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='567.1' cy='186.6' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='567.1' cy='186.6' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='635.3' cy='199.7' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='635.3' cy='199.7' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='581.7' cy='108.5' r='4.6' fill='url(%23g)'/%3E%3Ccircle cx='581.7' cy='108.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='298.3' cy='223.9' r='4.7' fill='url(%23g)'/%3E%3Ccircle cx='298.3' cy='223.9' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='386.4' cy='170.6' r='4.7' fill='url(%23g)'/%3E%3Ccircle cx='386.4' cy='170.6' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='443.5' cy='180.9' r='4.8' fill='url(%23g)'/%3E%3Ccircle cx='443.5' cy='180.9' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='623.8' cy='164.6' r='4.9' fill='url(%23g)'/%3E%3Ccircle cx='623.8' cy='164.6' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='338.4' cy='244.4' r='4.9' fill='url(%23g)'/%3E%3Ccircle cx='338.4' cy='244.4' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='605.1' cy='201.2' r='5.1' fill='url(%23g)'/%3E%3Ccircle cx='605.1' cy='201.2' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='537.9' cy='250.4' r='5.4' fill='url(%23g)'/%3E%3Ccircle cx='537.9' cy='250.4' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='729.3' cy='268.8' r='5.5' fill='url(%23g)'/%3E%3Ccircle cx='729.3' cy='268.8' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='180.3' cy='130.8' r='5.5' fill='url(%23g)'/%3E%3Ccircle cx='180.3' cy='130.8' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='504.0' cy='218.6' r='5.6' fill='url(%23g)'/%3E%3Ccircle cx='504.0' cy='218.6' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='754.5' cy='276.3' r='5.7' fill='url(%23g)'/%3E%3Ccircle cx='754.5' cy='276.3' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='674.0' cy='217.4' r='5.9' fill='url(%23g)'/%3E%3Ccircle cx='674.0' cy='217.4' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='334.1' cy='171.7' r='6.0' fill='url(%23g)'/%3E%3Ccircle cx='334.1' cy='171.7' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='412.5' cy='205.7' r='6.1' fill='url(%23g)'/%3E%3Ccircle cx='412.5' cy='205.7' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='625.2' cy='252.7' r='6.1' fill='url(%23g)'/%3E%3Ccircle cx='625.2' cy='252.7' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='106.9' cy='190.0' r='6.1' fill='url(%23g)'/%3E%3Ccircle cx='106.9' cy='190.0' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='686.1' cy='202.0' r='6.5' fill='url(%23g)'/%3E%3Ccircle cx='686.1' cy='202.0' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='327.4' cy='85.5' r='6.5' fill='url(%23g)'/%3E%3Ccircle cx='327.4' cy='85.5' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='454.3' cy='233.9' r='6.9' fill='url(%23g)'/%3E%3Ccircle cx='454.3' cy='233.9' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='173.6' cy='201.6' r='7.0' fill='url(%23g)'/%3E%3Ccircle cx='173.6' cy='201.6' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='663.6' cy='227.3' r='7.1' fill='url(%23g)'/%3E%3Ccircle cx='663.6' cy='227.3' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='115.1' cy='64.8' r='7.1' fill='url(%23g)'/%3E%3Ccircle cx='115.1' cy='64.8' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='295.1' cy='115.9' r='7.2' fill='url(%23g)'/%3E%3Ccircle cx='295.1' cy='115.9' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='280.3' cy='115.4' r='7.3' fill='url(%23g)'/%3E%3Ccircle cx='280.3' cy='115.4' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='562.6' cy='243.2' r='7.3' fill='url(%23g)'/%3E%3Ccircle cx='562.6' cy='243.2' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='522.4' cy='190.1' r='7.6' fill='url(%23g)'/%3E%3Ccircle cx='522.4' cy='190.1' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='253.2' cy='133.3' r='7.9' fill='url(%23g)'/%3E%3Ccircle cx='253.2' cy='133.3' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='708.1' cy='218.2' r='7.9' fill='url(%23g)'/%3E%3Ccircle cx='708.1' cy='218.2' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='341.5' cy='171.2' r='7.9' fill='url(%23g)'/%3E%3Ccircle cx='341.5' cy='171.2' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='536.0' cy='221.4' r='8.6' fill='url(%23g)'/%3E%3Ccircle cx='536.0' cy='221.4' r='0.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='486.4' cy='200.7' r='9.1' fill='url(%23g)'/%3E%3Ccircle cx='486.4' cy='200.7' r='1.0' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='306.3' cy='156.4' r='9.3' fill='url(%23g)'/%3E%3Ccircle cx='306.3' cy='156.4' r='1.0' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='545.2' cy='245.5' r='9.4' fill='url(%23g)'/%3E%3Ccircle cx='545.2' cy='245.5' r='1.0' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='360.9' cy='181.0' r='9.4' fill='url(%23g)'/%3E%3Ccircle cx='360.9' cy='181.0' r='1.0' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='590.8' cy='233.4' r='9.5' fill='url(%23g)'/%3E%3Ccircle cx='590.8' cy='233.4' r='1.0' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='494.0' cy='209.1' r='9.5' fill='url(%23g)'/%3E%3Ccircle cx='494.0' cy='209.1' r='1.0' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='368.4' cy='123.0' r='9.8' fill='url(%23g)'/%3E%3Ccircle cx='368.4' cy='123.0' r='1.0' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='321.5' cy='98.6' r='10.2' fill='url(%23g)'/%3E%3Ccircle cx='321.5' cy='98.6' r='1.1' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='413.7' cy='178.7' r='10.3' fill='url(%23g)'/%3E%3Ccircle cx='413.7' cy='178.7' r='1.1' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='270.2' cy='200.6' r='10.7' fill='url(%23g)'/%3E%3Ccircle cx='270.2' cy='200.6' r='1.1' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='671.6' cy='229.9' r='10.8' fill='url(%23g)'/%3E%3Ccircle cx='671.6' cy='229.9' r='1.1' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='250.0' cy='139.1' r='10.8' fill='url(%23g)'/%3E%3Ccircle cx='250.0' cy='139.1' r='1.1' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='786.7' cy='278.6' r='11.0' fill='url(%23g)'/%3E%3Ccircle cx='786.7' cy='278.6' r='1.2' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='178.0' cy='160.7' r='11.1' fill='url(%23g)'/%3E%3Ccircle cx='178.0' cy='160.7' r='1.2' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='155.8' cy='165.8' r='11.2' fill='url(%23g)'/%3E%3Ccircle cx='155.8' cy='165.8' r='1.2' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='325.3' cy='72.5' r='11.5' fill='url(%23g)'/%3E%3Ccircle cx='325.3' cy='72.5' r='1.2' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='270.9' cy='126.6' r='11.7' fill='url(%23g)'/%3E%3Ccircle cx='270.9' cy='126.6' r='1.2' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='531.7' cy='226.6' r='12.1' fill='url(%23g)'/%3E%3Ccircle cx='531.7' cy='226.6' r='1.3' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='511.3' cy='193.3' r='12.7' fill='url(%23g)'/%3E%3Ccircle cx='511.3' cy='193.3' r='1.3' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='203.9' cy='160.9' r='12.9' fill='url(%23g)'/%3E%3Ccircle cx='203.9' cy='160.9' r='1.3' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='381.2' cy='182.9' r='12.9' fill='url(%23g)'/%3E%3Ccircle cx='381.2' cy='182.9' r='1.3' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='587.1' cy='230.2' r='13.3' fill='url(%23g)'/%3E%3Ccircle cx='587.1' cy='230.2' r='1.4' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='241.0' cy='76.2' r='13.3' fill='url(%23g)'/%3E%3Ccircle cx='241.0' cy='76.2' r='1.4' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='350.6' cy='117.2' r='13.4' fill='url(%23g)'/%3E%3Ccircle cx='350.6' cy='117.2' r='1.4' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='549.3' cy='223.2' r='13.4' fill='url(%23g)'/%3E%3Ccircle cx='549.3' cy='223.2' r='1.4' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='406.2' cy='125.8' r='13.4' fill='url(%23g)'/%3E%3Ccircle cx='406.2' cy='125.8' r='1.4' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='441.5' cy='141.6' r='13.5' fill='url(%23g)'/%3E%3Ccircle cx='441.5' cy='141.6' r='1.4' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='150.6' cy='62.5' r='13.6' fill='url(%23g)'/%3E%3Ccircle cx='150.6' cy='62.5' r='1.4' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='691.8' cy='232.3' r='13.6' fill='url(%23g)'/%3E%3Ccircle cx='691.8' cy='232.3' r='1.4' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='356.7' cy='170.9' r='13.7' fill='url(%23g)'/%3E%3Ccircle cx='356.7' cy='170.9' r='1.4' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='196.4' cy='152.4' r='14.7' fill='url(%23g)'/%3E%3Ccircle cx='196.4' cy='152.4' r='1.5' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='572.8' cy='238.8' r='15.5' fill='url(%23g)'/%3E%3Ccircle cx='572.8' cy='238.8' r='1.6' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='309.6' cy='169.2' r='15.5' fill='url(%23g)'/%3E%3Ccircle cx='309.6' cy='169.2' r='1.6' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='195.3' cy='63.0' r='16.2' fill='url(%23g)'/%3E%3Ccircle cx='195.3' cy='63.0' r='1.7' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='538.7' cy='76.2' r='18.2' fill='url(%23g)'/%3E%3Ccircle cx='538.7' cy='76.2' r='1.9' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='473.9' cy='179.3' r='18.9' fill='url(%23g)'/%3E%3Ccircle cx='473.9' cy='179.3' r='2.0' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='276.2' cy='178.1' r='20.3' fill='url(%23g)'/%3E%3Ccircle cx='276.2' cy='178.1' r='2.1' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='439.9' cy='184.1' r='22.4' fill='url(%23g)'/%3E%3Ccircle cx='439.9' cy='184.1' r='2.3' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='527.9' cy='207.2' r='24.1' fill='url(%23g)'/%3E%3Ccircle cx='527.9' cy='207.2' r='2.5' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='175.3' cy='95.1' r='28.6' fill='url(%23g)'/%3E%3Ccircle cx='175.3' cy='95.1' r='3.0' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='370.9' cy='134.3' r='36.1' fill='url(%23g)'/%3E%3Ccircle cx='370.9' cy='134.3' r='3.8' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='429.9' cy='50.1' r='49.7' fill='url(%23g)'/%3E%3Ccircle cx='429.9' cy='50.1' r='5.2' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='608.5' cy='189.2' r='61.5' fill='url(%23g)'/%3E%3Ccircle cx='608.5' cy='189.2' r='6.4' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Ccircle cx='463.1' cy='182.1' r='63.0' fill='url(%23g)'/%3E%3Ccircle cx='463.1' cy='182.1' r='6.6' fill='%23ffe7b0' fill-opacity='0.85'/%3E%3Cpath d='M40.0,430 L40.0,421.0 L76.1,416.1 L112.2,411.4 L148.3,407.5 L184.3,402.2 L220.4,397.9 L256.5,393.8 L292.6,390.1 L328.7,386.6 L364.8,382.8 L400.9,380.4 L437.0,375.9 L473.0,373.2 L509.1,371.2 L545.2,369.0 L581.3,366.6 L617.4,365.1 L653.5,363.2 L689.6,361.9 L725.7,361.0 L761.7,360.7 L797.8,360.1 L833.9,357.1 L870.0,355.0 L870.0,430 Z' fill='url(%23h)'/%3E%3Cpath d='M40.0,421.0 L76.1,416.1 L112.2,411.4 L148.3,407.5 L184.3,402.2 L220.4,397.9 L256.5,393.8 L292.6,390.1 L328.7,386.6 L364.8,382.8 L400.9,380.4 L437.0,375.9 L473.0,373.2 L509.1,371.2 L545.2,369.0 L581.3,366.6 L617.4,365.1 L653.5,363.2 L689.6,361.9 L725.7,361.0 L761.7,360.7 L797.8,360.1 L833.9,357.1 L870.0,355.0' fill='none' stroke='%23f7c46a' stroke-width='1.6' stroke-opacity='0.9'/%3E%3C/svg%3E");
  --ramp: linear-gradient(90deg, #9c3b33, #c4452f, #d98f2e, #f5c46a);
  --glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cdefs%3E%3CradialGradient id='a'%3E%3Cstop offset='0' stop-color='%23ffe3a3'/%3E%3Cstop offset='0.45' stop-color='%23f5a442' stop-opacity='0.55'/%3E%3Cstop offset='1' stop-color='%23c4452f' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='12' cy='13.5' r='10.5' fill='url(%23a)'/%3E%3Cpath d='M12 3.5c3.2 4.3 4.8 6.6 4.8 9.3a4.8 4.8 0 0 1-9.6 0c0-2.7 1.6-5 4.8-9.3z' fill='%23c4452f'/%3E%3Cpath d='M12 8.6c1.7 2.3 2.4 3.5 2.4 4.9a2.4 2.4 0 0 1-4.8 0c0-1.4.7-2.6 2.4-4.9z' fill='%23ffe3a3'/%3E%3C/svg%3E");

  --max-width: 1200px;
}

body { font-size: 1.0rem; line-height: 1.72; background-image: radial-gradient(rgba(169, 76, 50, 0.07) 1px, transparent 1.4px); background-size: 26px 26px; }

::selection { background: rgba(217, 143, 46, 0.25); }
: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: lantern field ----------------------------------------------------------- */

.masthead {
  position: relative;
  color: var(--text-inverse);
  border-bottom: 0;
  padding: 3.3rem var(--gutter) 4.2rem;
  background:
    linear-gradient(90deg, rgba(18, 13, 24, 0.96) 0 32%, rgba(18, 13, 24, 0.55) 50%, rgba(18, 13, 24, 0.05) 74%),
    var(--sheet) right 1% bottom / auto 100% no-repeat,
    radial-gradient(ellipse at 78% 105%, rgba(245, 164, 66, 0.22), transparent 55%),
    radial-gradient(ellipse at 70% 10%, rgba(122, 111, 168, 0.18), transparent 55%),
    linear-gradient(180deg, #241a2e, #120d18);
}
.masthead::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: var(--ramp); }
.masthead .overline { font-family: var(--mono); font-weight: 600; font-size: 0.9rem; letter-spacing: 0.1em; color: var(--accent-light); margin-bottom: 1rem; }
.masthead .overline::before { content: "✦ LANTERN = COUNTRY · LEFT→RIGHT INCOME · HEIGHT = LIVES PROTECTABLE PER 100K · SIZE = LIVES A YEAR · HORIZON = UNDER-FIVE LIVES PROTECTED SINCE 2000 · "; color: #f0a35c; }
.masthead h1 { font-family: var(--serif); font-weight: 700; font-size: clamp(2.05rem, 4.4vw, 3.2rem); line-height: 1.12; letter-spacing: -0.01em; max-width: 24ch; color: #fff; }
.masthead .subtitle { font-family: var(--sans); font-weight: 400; font-size: 1.12rem; color: #e2d3c4; max-width: 58ch; }
.masthead .strapline { font-family: var(--sans); font-style: normal; font-size: 1rem; color: #f8efe4; border-left: 4px solid var(--accent-light); max-width: 64ch; background: rgba(18, 13, 24, 0.84); }
.masthead .meta-row { border-top: 1px solid rgba(255, 255, 255, 0.14); color: #c2b2a6; font-family: var(--mono); font-size: 0.95rem; position: relative; }
.masthead .meta-row strong { color: var(--accent-light); font-family: var(--mono); font-weight: 600; font-size: 0.8rem; letter-spacing: 0.1em; }

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

.sticky-nav { background: rgba(247, 242, 234, 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 flame glyph ------------------------------------------------ */

section > h2 {
  position: relative;
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(1.75rem, 3.6vw, 2.35rem);
  letter-spacing: -0.012em;
  line-height: 1.2;
  color: var(--primary);
  border-bottom: 1px solid var(--rule);
  padding: 0 0 0.6rem 2.4rem;
}
section > h2::before {
  content: "";
  position: absolute; left: 0.05rem; top: 0.2em;
  width: 1.5rem; height: 1.5rem;
  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--u5 { --k: var(--c-u5); }
.kpi--air { --k: var(--c-air); }
.kpi--R { --k: var(--s-R); }
.kpi--D { --k: var(--s-D); }
.kpi--C { --k: var(--s-C); }
.kpi--conf { --k: var(--c-conf); }
.kpi-value { font-family: var(--mono); font-weight: 700; font-size: clamp(1.95rem, 3.4vw, 2.5rem); 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: #efe3d6; 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.08rem; 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--R { --k: var(--s-R); }
.stat-tile--C { --k: var(--s-C); }
.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: 700; font-size: 1.3rem; 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.02rem; 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(--c-u5); }
.card--b { --k: var(--c-air); }
.card--c { --k: var(--c-wash); }
.card--d { --k: var(--c-dis); }
.card--e { --k: var(--c-conf); }
.card--f { --k: var(--s-C); }

/* --- 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: 700; font-size: 1.3rem; }
.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(18, 13, 24, 0.9) 0 60%, rgba(18, 13, 24, 0.35)), var(--sheet) 80% 100% / auto 70% no-repeat, linear-gradient(180deg, #241a2e, #120d18); }
  .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(3, 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.2; margin: 0 0 0.3rem; color: var(--primary); }
.lever .big { font-family: var(--mono); font-weight: 700; font-size: 2.2rem; 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--R { --k: var(--s-R); } .lever--D { --k: var(--s-D); } .lever--C { --k: var(--s-C); }
.root-note { margin: 0.6rem 0 0; padding: 0.55rem 0.8rem; border-left: 5px solid var(--s-C); background: var(--bg-accent); font-size: 0.9rem; color: var(--text-secondary); }
@media (max-width: 900px) { .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(--s-C)); 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%; }
