:root{color-scheme:light;--o-ink:#071328;--o-muted:#596b83;--o-page:#edf4fb;--o-panel:#fff;--o-line:#d5e2ef;--o-blue:#155eef;--o-cyan:#06b6d4;--o-coral:#ff4b5c;--o-gold:#f5b700;--o-soft:#f5f9fe;--o-mono:"JetBrains Mono",ui-monospace,monospace;--o-ui:Inter,system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body.observatory{margin:0;overflow-x:hidden;background:radial-gradient(circle at 10% 3%,rgba(21,94,239,.09),transparent 30rem),var(--o-page);color:var(--o-ink);font-family:var(--o-ui);line-height:1.55}body.observatory button,body.observatory select{font:inherit}body.observatory a{color:var(--o-blue)}.obs-shell{width:min(1380px,calc(100% - 28px));margin:auto;padding:28px 0 72px}.obs-kicker{margin:0 0 13px;color:#56d9f3;font:700 12px/1.2 var(--o-mono);letter-spacing:.17em;text-transform:uppercase}.obs-hero{overflow:hidden;padding:clamp(28px,5vw,70px);border:1px solid #173153;border-radius:30px;background:linear-gradient(135deg,#071328,#0d2a50 65%,#07556e);color:#fff;box-shadow:0 24px 70px rgba(22,48,82,.12)}.obs-hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:end}.obs-hero h1{max-width:850px;margin:0;font-size:clamp(42px,6vw,82px);line-height:.98;letter-spacing:-.06em}.obs-hero p{max-width:760px;margin:22px 0 0;color:#c9d8ea;font-size:clamp(17px,2vw,23px)}.obs-proof{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.obs-proof div{padding:18px;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:rgba(255,255,255,.06)}.obs-proof b{display:block;font:700 22px var(--o-mono)}.obs-proof span{display:block;margin-top:4px;color:#afbed1;font-size:12px}.obs-controls,.obs-card{border:1px solid var(--o-line);border-radius:23px;background:var(--o-panel);box-shadow:0 15px 45px rgba(22,48,82,.07)}.obs-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:24px 0;padding:22px}.obs-field label,.obs-label{display:block;margin-bottom:8px;color:var(--o-muted);font:700 10px var(--o-mono);letter-spacing:.11em;text-transform:uppercase}.obs-field select{width:100%;min-height:48px;padding:0 12px;border:1px solid var(--o-line);border-radius:12px;background:var(--o-panel);color:var(--o-ink);font-weight:700}.obs-grid{display:grid;grid-template-columns:1.45fr .55fr;gap:22px}.obs-card{padding:clamp(21px,3vw,36px)}.obs-card h2{margin:0;font-size:clamp(26px,3vw,40px);line-height:1.08;letter-spacing:-.04em}.obs-card-head{display:flex;justify-content:space-between;gap:20px;align-items:start;margin-bottom:18px}.obs-card-head p{max-width:560px;margin:5px 0 0;color:var(--o-muted)}.obs-chart{position:relative;overflow:hidden;border:1px solid #e4edf6;border-radius:17px;background:linear-gradient(#fbfdff,#f4f8fd)}.obs-chart svg{display:block;width:100%;height:auto}.obs-chart text{font-family:var(--o-ui);fill:var(--o-muted)}.obs-tooltip{position:absolute;z-index:3;max-width:260px;padding:12px 14px;border-radius:12px;background:#071328;color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.22);pointer-events:none;opacity:0}.obs-tooltip.show{opacity:1}.obs-tooltip small{display:block;margin-top:4px;color:#bfd0e5}.obs-kpis{display:grid;gap:12px}.obs-kpi{padding:18px;border:1px solid var(--o-line);border-radius:16px;background:var(--o-soft)}.obs-kpi span{display:block;color:var(--o-muted);font-size:12px}.obs-kpi b{display:block;margin-top:7px;font:700 23px var(--o-mono)}.obs-kpi small{display:block;margin-top:5px;color:var(--o-muted)}.obs-wide{grid-column:1/-1}.obs-trend-wrap{overflow:hidden}.obs-note{margin:14px 0 0;color:var(--o-muted);font-size:13px}.obs-state-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:8px}.obs-state{min-height:76px;padding:10px;border:1px solid rgba(7,19,40,.08);border-radius:12px;color:#071328;text-align:left;cursor:pointer}.obs-state b,.obs-state span{display:block}.obs-state b{font:700 14px var(--o-mono)}.obs-state span{margin-top:7px;font:700 13px var(--o-mono)}.obs-state[aria-pressed=true]{outline:3px solid var(--o-coral);outline-offset:2px}.obs-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.obs-compare-panel{padding:20px;border:1px solid var(--o-line);border-radius:17px;background:var(--o-soft)}.obs-compare-panel h3{margin:0 0 15px}.obs-row{display:grid;grid-template-columns:1fr auto;gap:15px;padding:10px 0;border-top:1px solid var(--o-line)}.obs-row:first-of-type{border-top:0}.obs-row span{color:var(--o-muted);font-size:13px}.obs-row b{text-align:right;font:700 13px var(--o-mono)}.obs-missing{margin-top:20px;padding:15px 17px;border:1px solid #f1d071;border-radius:14px;background:#fff8df;color:#614a08;font-size:13px}.obs-details{margin-top:22px;overflow:hidden;border:1px solid var(--o-line);border-radius:22px;background:var(--o-panel)}.obs-details details+details{border-top:1px solid var(--o-line)}.obs-details summary{padding:20px 24px;cursor:pointer;font-weight:800}.obs-detail{max-width:980px;padding:0 24px 22px;color:var(--o-muted)}.obs-detail li+li{margin-top:10px}.obs-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.obs-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 15px;border:1px solid var(--o-line);border-radius:11px;background:var(--o-panel);color:var(--o-blue);font-weight:800;text-decoration:none;cursor:pointer}.obs-footer-note{margin:22px 0;color:var(--o-muted);font-size:12px}.obs-error{padding:28px;border:1px solid #f0b6ba;border-radius:16px;background:#fff1f2;color:#7a1b23}
@media(max-width:900px){.obs-hero-grid,.obs-grid{grid-template-columns:1fr}.obs-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.obs-proof{grid-template-columns:repeat(4,1fr)}.obs-grid>.obs-wide{grid-column:auto}.obs-card-head{display:block}}
@media(max-width:620px){.obs-shell{width:min(100% - 16px,1380px);padding-top:12px}.obs-hero{border-radius:22px}.obs-controls{grid-template-columns:1fr}.obs-proof{grid-template-columns:repeat(2,1fr)}.obs-compare{grid-template-columns:1fr}.obs-state-grid{grid-template-columns:repeat(4,1fr)}.obs-card{padding:18px}.obs-hero h1{font-size:36px;overflow-wrap:anywhere}}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--o-ink:#f2f7ff;--o-muted:#aebdd0;--o-page:#0d1c2e;--o-panel:#14263b;--o-line:#36516e;--o-soft:#1a3049}.observatory .obs-chart{background:#102338;border-color:#36516e}.observatory .obs-state{color:#f2f7ff;border-color:#45617e}.observatory .obs-missing{background:#3b310f;color:#ffe38d;border-color:#79601a}}
[data-theme=dark]{color-scheme:dark;--o-ink:#f2f7ff;--o-muted:#aebdd0;--o-page:#0d1c2e;--o-panel:#14263b;--o-line:#36516e;--o-soft:#1a3049}[data-theme=dark] .obs-chart{background:#102338;border-color:#36516e}[data-theme=dark] .obs-state{color:#f2f7ff;border-color:#45617e}[data-theme=dark] .obs-missing{background:#3b310f;color:#ffe38d;border-color:#79601a}
body.dark-mode{color-scheme:dark;--o-ink:#f2f7ff;--o-muted:#aebdd0;--o-page:#0d1c2e;--o-panel:#14263b;--o-line:#36516e;--o-soft:#1a3049}body.dark-mode .obs-chart{background:#102338;border-color:#36516e}body.dark-mode .obs-state{color:#f2f7ff;border-color:#45617e}body.dark-mode .obs-missing{background:#3b310f;color:#ffe38d;border-color:#79601a}

/* Global Health Time Machine */
.obs-time-controls{grid-template-columns:minmax(190px,.7fr) minmax(320px,1.55fr) auto minmax(150px,.55fr);align-items:end}
.obs-year-control input[type=range]{width:100%;min-height:48px;margin:0;accent-color:var(--o-blue);cursor:pointer}
.obs-play{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border:0;border-radius:12px;background:linear-gradient(115deg,var(--o-blue),var(--o-cyan));color:#fff;font-weight:900;cursor:pointer;box-shadow:0 10px 24px rgba(21,94,239,.2)}
.obs-play:focus-visible{outline:3px solid var(--o-gold);outline-offset:3px}
.obs-timelapse-card{margin-bottom:22px}
.obs-year-readout{font:800 clamp(42px,6vw,76px)/.9 var(--o-mono);letter-spacing:-.08em;color:var(--o-blue);white-space:nowrap}
.obs-timelapse svg{display:block;width:100%;height:auto;min-width:0}
.obs-timelapse circle{transition:cx .22s linear,cy .22s linear,r .22s linear,fill .22s linear}
.obs-country-trail{transition:d .22s linear}
.obs-grid-line{stroke:var(--o-line);stroke-width:1}
.obs-selected-label{fill:var(--o-ink)!important;paint-order:stroke;stroke:var(--o-panel);stroke-width:4px;stroke-linejoin:round}
.obs-region-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin:15px 0 0;color:var(--o-muted);font-size:12px}
.obs-region-legend span{display:inline-flex;align-items:center;gap:6px}
.obs-region-legend i{width:9px;height:9px;border-radius:999px;box-shadow:0 0 0 1px rgba(7,19,40,.13)}
.obs-change-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}
.obs-change-grid article,.obs-country-summaries article{padding:17px;border:1px solid var(--o-line);border-radius:15px;background:var(--o-soft)}
.obs-change-grid span,.obs-change-grid small,.obs-country-summaries span,.obs-country-summaries small{display:block;color:var(--o-muted);font-size:12px}
.obs-change-grid b,.obs-country-summaries b{display:block;margin:7px 0 5px;font:800 clamp(17px,2vw,23px)/1.2 var(--o-mono)}
.obs-country-controls{grid-template-columns:1.2fr repeat(3,minmax(150px,.7fr));align-items:end}
.obs-control-intro h2{margin:0;font-size:clamp(24px,3vw,36px);line-height:1.05;letter-spacing:-.04em}
.obs-control-intro p{margin:8px 0 0;color:var(--o-muted);font-size:14px}
.obs-country-summaries{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}
.obs-country-summaries article{border-top:4px solid var(--country-color)}
@media(max-width:900px){.obs-time-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.obs-change-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.obs-country-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.obs-control-intro{grid-column:1/-1}}
@media(max-width:620px){.obs-time-controls,.obs-change-grid,.obs-country-controls,.obs-country-summaries{grid-template-columns:1fr}.obs-control-intro{grid-column:auto}.obs-year-readout{font-size:42px}.obs-card-head{gap:10px}.obs-timelapse-card{padding-inline:12px}.obs-timelapse,.obs-trend-wrap{overflow-x:auto}.obs-timelapse svg,.obs-trend-wrap svg{width:720px;max-width:none}.obs-timelapse .obs-tooltip{max-width:210px}}
