:root{color-scheme:dark;--bg:#0b151b;--ink:#f3f0e7;--muted:#9ba9ae;--red:#ed604f;--line:#ffffff21;--sans:Inter,"Helvetica Neue",Arial,sans-serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;background:var(--bg);color:var(--ink);font-family:var(--sans)}body{overflow:hidden}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button{border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--red);outline-offset:5px}button:disabled{opacity:.35;cursor:default}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}[hidden]{display:none!important}#globe{position:absolute;inset:0 0 0 21%;z-index:0;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0b151b 0%,#0b151bee 23%,#0b151b00 47%),linear-gradient(0deg,#0b151b 0%,#0b151b00 24%);z-index:1}header{position:absolute;top:0;left:0;right:0;height:104px;display:flex;align-items:center;justify-content:space-between;padding:0 4.1%;z-index:4}.brand{display:flex;gap:13px;text-align:left;align-items:center;padding:0;font-size:12px;letter-spacing:2px;font-weight:700}.brand-mark{height:32px;width:32px;display:block;border-radius:50%;background:conic-gradient(var(--red) 0 20%,#263c45 20% 100%);border:1px solid #d2e0df18;transform:rotate(-14deg)}.brand-sub{display:block;font-size:8px;letter-spacing:2.4px;color:var(--muted);margin-top:7px;font-weight:400}.header-actions{display:flex;gap:26px}.quiet{display:flex;align-items:center;gap:8px;font-size:11px;color:#c0ccce;padding:8px 0}.quiet:hover{color:white}.quiet svg{width:17px;height:17px}main{position:absolute;inset:0}.narrative{position:absolute;z-index:3;top:145px;left:4.1%;width:350px;max-height:calc(100dvh - 300px);overflow:auto;scrollbar-width:thin;scrollbar-color:#7a8c9440 transparent;padding-right:8px}.eyebrow{display:flex;align-items:center;gap:9px;color:#c7d0cd;font-size:9px;letter-spacing:2.1px;line-height:1.6;font-weight:600}.live-dot{width:5px;height:5px;display:block;background:var(--red);border-radius:50%;box-shadow:0 0 14px #ed604f80}.year-row{display:flex;align-items:center;gap:18px;margin:20px 0 14px}#year{font-family:Georgia,serif;font-size:23px;color:var(--red)}.chapter-count{font-size:9px;color:#7f9096;border-left:1px solid var(--line);padding-left:18px;letter-spacing:1.5px}h1{font-family:Georgia,"Times New Roman",serif;font-size:48px;line-height:1.06;letter-spacing:-1.7px;font-weight:400;margin:0 0 20px}h1 em{color:#b9c7c7;font-weight:400}.intro{font-size:12px;line-height:1.8;color:#b4c0c4;margin:0 0 22px}.stat-line{display:flex;align-items:center;gap:16px;margin-bottom:12px}.stat-number{font-family:Georgia,serif;font-size:46px;color:var(--red);letter-spacing:-2px;line-height:1}.stat-line div>span{font-size:11px;line-height:1.5;display:block}.stat-line small{font-size:9px;display:block;color:#8b9da3;margin-top:5px;line-height:1.5}.area-meter{height:5px;background:#ffffff14;width:100%;position:relative;margin-bottom:13px;border-radius:1px}.area-meter>span{display:block;height:100%;background:var(--red);width:20%;transition:width 1s ease;border-radius:1px}.area-meter i{position:absolute;left:20%;top:-3px;height:11px;width:1px;background:#fff8}.regions{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px;max-height:72px;overflow:auto}.region-chip{font-size:9px;border:1px solid #ed604f33;color:#ebb5ad;padding:5px 7px;border-radius:3px;line-height:1.4}.map-note{color:#83979e;line-height:1.7;font-size:9px;margin:0 0 20px}.primary{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--ink);color:#15252d;width:100%;border-radius:3px;padding:14px 15px;font-weight:600;font-size:11px;transition:background .2s}.primary:hover{background:#fff}.primary svg{width:16px;height:16px}.primary-actions .text-button{margin-top:14px}.text-button{display:flex;align-items:center;gap:8px;color:#c7d0d1;font-size:10px;padding:0;text-align:left}.text-button:hover{color:var(--red)}.field-label{display:block;font-size:9px;color:#9eafb6;letter-spacing:1.8px;margin-bottom:10px}.search-wrap{position:relative;display:flex;align-items:center;gap:10px;border:1px solid #ffffff33;background:#15252c;border-radius:3px;padding:11px 12px}.search-wrap svg{width:16px;height:16px;color:#90a4ab}.search-wrap input{color:var(--ink);background:none;border:0;min-width:0;outline:none;width:100%;font-size:12px}.search-wrap input:focus-visible{outline:none}input::placeholder{color:#9aabad}input::-webkit-search-cancel-button{display:none}#clear-search{font-size:20px;line-height:1;color:#9aabad;padding:0 2px}.country-results{max-height:160px;overflow:auto;position:relative;border:1px solid #ffffff24;border-top:0;background:#12232a;z-index:10;border-radius:0 0 4px 4px}.country-results button{display:flex;justify-content:space-between;padding:11px 12px;text-align:left;width:100%;font-size:11px;border-bottom:1px solid #ffffff09}.country-results button:hover,.country-results button:focus{background:#283b43}.country-results button small{color:#83979e}.country-results p{font-size:11px;padding:0 12px;color:var(--muted)}.quick-countries{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.quick-countries button{font-size:9px;background:#ffffff08;padding:7px 9px;border:1px solid #ffffff13;border-radius:3px}.quick-countries button:hover{background:#ffffff18}.globe-caption{position:absolute;z-index:2;bottom:185px;left:52%;text-align:center;transform:translateX(-8%);pointer-events:none}.globe-caption>span{font-size:8px;letter-spacing:2px;line-height:1.6;display:block;color:#b2c3c5}.legend{display:flex;justify-content:center;gap:20px;margin-top:13px;font-size:8px;color:#8fa5ac}.legend>span{display:flex;align-items:center;gap:6px}.legend i{display:inline-block;width:6px;height:6px}.legend .red{background:var(--red);box-shadow:0 0 10px #ed604f40}.legend .land{background:#526d78}.globe-tools{position:absolute;right:4.1%;top:46%;z-index:3;border:1px solid #ffffff20;background:#0b151b85;border-radius:4px;overflow:hidden;backdrop-filter:blur(10px)}.globe-tools button{width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:20px;color:#c0cfd2}.globe-tools button+button{border-top:1px solid #ffffff13}.globe-tools button:hover{background:#ffffff15}.globe-tools svg{width:16px;height:16px}.gesture-hint{position:absolute;bottom:150px;right:4.1%;font-size:8px;color:#78929b;z-index:2;display:flex;align-items:center;gap:5px;pointer-events:none}.gesture-hint svg{width:14px;height:14px}.snapshot-control{position:absolute;right:4.1%;top:112px;z-index:3;background:#11232bd9;border:1px solid #ffffff20;padding:10px 13px;border-radius:3px;backdrop-filter:blur(10px)}.snapshot-control label{font-size:8px;letter-spacing:1px;color:#a1b5bb;display:block;margin-bottom:6px}.snapshot-control select{font-size:11px;background:#11232b;border:0;color:var(--ink);width:100%}footer{position:absolute;bottom:26px;left:4.1%;right:4.1%;z-index:3}.timeline-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.timeline-heading>span{color:#7f959e;font-size:8px;letter-spacing:2px}.timeline-heading button{font-size:9px;color:#93a8ae;padding:0}.chapters{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}.chapters>button{border-top:1px solid #ffffff25;position:relative;padding:16px 0 0;text-align:left;overflow:hidden}.chapter-progress{position:absolute;left:0;top:-1px;height:2px;width:0;background:var(--red)}.chapters>button.active{border-top-color:#ed604f70}.chapters>button.active .chapter-progress{width:100%}.chapters>button.playing .chapter-progress{animation:chapter 9s linear forwards}.chapters small{display:block;font-size:8px;letter-spacing:1.5px;color:#81969e;margin-bottom:8px}.chapters strong{font-weight:400;font-size:11px;color:#b7c8cd}.chapters>button.active strong{color:var(--ink)}.chapters>button.active small{color:var(--red)}.chapters>button:hover strong{color:#fff}.chapters strong>span{color:var(--red);margin-left:4px}@keyframes chapter{from{width:0}to{width:100%}}.loading{position:fixed;inset:0;z-index:30;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transition:opacity .5s}.loading.ready{opacity:0;pointer-events:none}.loading h2{font-family:Georgia,serif;font-weight:400;font-size:28px;margin:27px 20px 12px}.loading p{font-size:12px;color:var(--muted)}.loading small{font-size:8px;letter-spacing:2px;color:#657e88;margin-top:28px}.loading-orb{width:55px;height:55px;border-radius:50%;border:1px solid #344a53;background:conic-gradient(var(--red) 0 20%,#1b303a 20% 100%);box-shadow:0 0 50px #ed604f0d;animation:orb 4s ease-in-out infinite}@keyframes orb{50%{transform:rotate(30deg);box-shadow:0 0 60px #ed604f30}}.error-screen{position:fixed;inset:0;z-index:40;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:25px;text-align:center}.error-screen h2{font-family:Georgia,serif;font-weight:400}.error-screen p{color:var(--muted);font-size:13px;max-width:420px;line-height:1.7}.error-screen button{background:var(--red);padding:12px 24px;border-radius:3px;margin-top:12px}dialog{color:var(--ink);background:#112129;border:1px solid #3b4d54;border-radius:8px;width:min(660px,calc(100% - 32px));max-height:85dvh;padding:32px;box-shadow:0 20px 100px #000a}dialog::backdrop{background:#02070cba;backdrop-filter:blur(9px)}.dialog-heading{display:flex;justify-content:space-between;gap:20px}.dialog-heading h2{font-family:Georgia,serif;font-size:32px;line-height:1.15;letter-spacing:-.8px;font-weight:400;margin:17px 0 22px}.dialog-heading button{font-size:28px;align-self:flex-start;color:#99afb7;padding:0 2px}dialog h3{font-size:13px;margin-top:26px}dialog p,dialog li{font-size:12px;line-height:1.85;color:#b1c2c7}dialog ul{padding-left:18px}dialog li{padding:4px 0}dialog a{color:#f0aaa0;text-underline-offset:3px}dialog .source-foot{font-size:10px;border-top:1px solid var(--line);padding-top:18px;margin-top:25px;color:#809ba5}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.globe-tooltip{font-family:var(--sans);background:#0d2029ed!important;border:1px solid #ffffff35;border-radius:3px;padding:8px 11px!important;font-size:11px!important;box-shadow:0 5px 20px #0005;max-width:230px}.globe-tooltip small{display:block;color:#91a8b1;font-size:9px;margin-top:4px}.country-selected .primary-actions{display:none}.country-selected #change-country{display:flex;margin-top:10px}.country-selected .quick-countries{display:none}.country-selected .intro{margin-bottom:18px}.hypothetical .live-dot{border-radius:0;transform:rotate(45deg)}
@media(min-width:1500px){.narrative{top:18%;width:390px}h1{font-size:57px}.intro{font-size:13px}.stat-number{font-size:54px}.map-note{font-size:10px}.globe-caption{left:55%;bottom:195px}footer{bottom:36px}.chapters>button{padding-top:20px}.chapters strong{font-size:12px}}
@media(max-height:780px) and (min-width:801px){header{height:78px}.narrative{top:102px;max-height:calc(100dvh - 225px);width:330px}.year-row{margin:12px 0 10px}h1{font-size:39px;margin-bottom:14px}.intro{font-size:11px;margin-bottom:16px}.stat-number{font-size:38px}.map-note{margin-bottom:14px}.primary{padding:12px 13px}.globe-caption{bottom:142px}.gesture-hint{bottom:116px}footer{bottom:20px}.timeline-heading{margin-bottom:12px}.chapters>button{padding-top:12px}.snapshot-control{top:88px}}
@media(max-width:1050px) and (min-width:801px){.narrative{width:300px}h1{font-size:42px}#globe{left:24%}.globe-caption{left:55%;transform:translateX(-5%)}.chapters{gap:11px}.chapters strong{font-size:10px}.header-actions{gap:18px}}
@media(max-width:800px){body{overflow:hidden}header{height:72px;padding:0 20px}.brand{font-size:10px;letter-spacing:1.5px;gap:9px}.brand-mark{width:27px;height:27px}.brand-sub{font-size:6px;letter-spacing:1.6px;margin-top:6px}.header-actions{gap:17px}.quiet{padding:8px 0}.quiet span{display:none}.quiet svg{width:19px;height:19px}#globe{inset:42px 0 auto;height:49dvh}.vignette{background:linear-gradient(0deg,#0b151b 0%,#0b151b 39%,#0b151b00 59%);pointer-events:none}.narrative{top:43dvh;left:22px;right:22px;width:auto;max-height:calc(57dvh - 116px);padding-right:3px;padding-bottom:16px}.eyebrow{font-size:8px;letter-spacing:1.6px}.year-row{margin:11px 0 9px;gap:12px}#year{font-size:20px}.chapter-count{font-size:8px;padding-left:12px}h1{font-size:34px;letter-spacing:-1px;line-height:1.09;margin:0 0 12px}h1 br{display:none}h1 em{margin-left:4px}.intro{font-size:11px;line-height:1.75;margin-bottom:14px;max-width:580px}.stat-line{gap:12px;margin-bottom:10px}.stat-number{font-size:36px;letter-spacing:-1px}.stat-line div>span{font-size:10px}.stat-line small{font-size:8px;margin-top:3px}.area-meter{margin-bottom:10px;height:4px}.regions{margin-bottom:8px;max-height:45px}.region-chip{font-size:8px;padding:4px 6px}.map-note{font-size:8px;line-height:1.6;margin-bottom:12px}.primary-actions{display:flex;align-items:center;gap:17px}.primary{width:auto;flex:1;font-size:10px;padding:12px}.primary-actions .text-button{margin:0;flex-shrink:0;font-size:9px}.globe-caption{left:50%;bottom:auto;top:38dvh;width:85%;transform:translateX(-50%)}.globe-caption>span{font-size:7px;letter-spacing:1.1px}.legend{margin-top:7px;font-size:7px;gap:16px}.legend i{width:5px;height:5px}.globe-tools{right:18px;top:20dvh}.globe-tools button{width:29px;height:29px;font-size:18px}.gesture-hint{top:76px;bottom:auto;right:20px;font-size:7px;margin:0;opacity:.7}.gesture-hint svg{width:12px}.snapshot-control{top:76px;left:20px;right:auto;padding:7px 9px;max-width:175px}.snapshot-control label{font-size:6px}.snapshot-control select{font-size:9px}footer{bottom:16px;left:22px;right:22px;background:#0b151bf5;padding-top:10px}.timeline-heading{margin-bottom:12px}.timeline-heading>span{font-size:7px;letter-spacing:1.7px}.timeline-heading button{font-size:8px}.chapters{display:flex;gap:12px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;scroll-snap-type:x proximity}.chapters::-webkit-scrollbar{display:none}.chapters>button{min-width:90px;flex:1;padding-top:11px;scroll-snap-align:start}.chapters small{font-size:7px;letter-spacing:1px;margin-bottom:6px}.chapters strong{font-size:9px;white-space:nowrap}.field-label{font-size:8px;margin-bottom:8px}.search-wrap{padding:10px}.search-wrap input{font-size:11px}.country-results{max-height:120px}.country-results button{padding:9px 10px}.quick-countries{gap:5px;margin-top:9px}.quick-countries button{font-size:8px;padding:6px 8px}.hypothetical:not(.country-selected) .stat-line,.hypothetical:not(.country-selected) .area-meter,.hypothetical:not(.country-selected) .map-note{display:none}.hypothetical:not(.country-selected) .intro{margin-bottom:16px}.hypothetical h1{font-size:32px}.country-selected h1{font-size:31px}.country-selected .intro{margin-bottom:12px}.country-selected #change-country{font-size:9px;margin-top:8px}dialog{padding:23px}.dialog-heading h2{font-size:29px}dialog p,dialog li{font-size:11px}.loading h2{font-size:24px}}
@media(max-height:700px) and (max-width:800px){header{height:62px}.narrative{top:41dvh;max-height:calc(59dvh - 105px)}#globe{height:47dvh;top:28px}.globe-caption{top:35dvh}h1{font-size:30px}.intro{font-size:10px;line-height:1.7}.year-row{margin:8px 0}.stat-number{font-size:31px}.map-note{font-size:7px}.gesture-hint{top:65px}footer{bottom:10px}.timeline-heading{margin-bottom:9px}.chapters>button{padding-top:9px}.snapshot-control{top:68px}}
.story-launch{border:1px solid #ffffff30;border-radius:3px;padding:9px 12px;gap:8px}
.story-launch:hover{border-color:#ed604f90;background:#ed604f0b}
.story-launch svg{width:14px;height:14px}
.landing-story{margin-top:20px;gap:9px;color:#9eb0b5}
.landing-story svg{width:14px;height:14px}
.landing-mode .narrative{width:455px;top:23%;max-height:calc(77dvh - 65px)}
.landing-mode h1{font-size:55px;line-height:1.07;letter-spacing:-1.8px;margin-top:25px;margin-bottom:23px}
.landing-mode h1 em{display:inline;color:#c2cecb}
.landing-mode .twenty{color:var(--red);white-space:nowrap}
.landing-mode .intro{max-width:355px;font-size:12px;line-height:1.85}
.landing-mode .primary-actions{max-width:295px;margin-top:28px}
.landing-mode .primary{padding:16px 18px;font-size:12px}
.landing-mode .year-row,.landing-mode .stat-line,.landing-mode .area-meter,.landing-mode .regions,.landing-mode .map-note,.landing-mode .legend{display:none}
.landing-mode .vignette{background:linear-gradient(90deg,#0b151b 0%,#0b151be8 24%,#0b151b00 53%),linear-gradient(0deg,#0b151b 0%,#0b151b00 19%)}
body:not(.story-mode) .globe-caption{bottom:70px}
body:not(.story-mode) .chapter-count{display:none}
body:not(.story-mode) .gesture-hint{bottom:35px}
body:not(.story-mode):not(.landing-mode) .narrative{max-height:calc(100dvh - 200px)}
.chapters>button.playing .chapter-progress{animation-duration:var(--chapter-duration,9s)}
@media(min-width:1500px){.landing-mode .narrative{width:505px}.landing-mode h1{font-size:66px}.landing-mode .intro{font-size:13px;max-width:390px}}
@media(max-height:780px) and (min-width:801px){.landing-mode .narrative{top:17%;max-height:calc(83dvh - 35px)}.landing-mode h1{font-size:45px;margin-top:17px;margin-bottom:18px}.landing-mode .primary-actions{margin-top:21px}.landing-story{margin-top:16px}}
@media(max-width:1050px) and (min-width:801px){.landing-mode .narrative{width:375px}.landing-mode h1{font-size:47px}}
@media(max-width:800px){
  .story-launch span{display:inline}.story-launch{font-size:9px;padding:8px 9px;gap:6px}.header-actions{gap:12px}
  .landing-mode .narrative{top:43dvh;left:22px;right:22px;width:auto;max-height:calc(57dvh - 24px)}
  .landing-mode h1{font-size:36px;letter-spacing:-1.1px;line-height:1.09;margin-top:15px;margin-bottom:16px;max-width:480px}
  .landing-mode h1 br{display:none}.landing-mode h1 em{margin-left:0}
  .landing-mode .intro{font-size:11px;line-height:1.8;max-width:470px}
  .landing-mode .primary-actions{margin-top:20px;max-width:100%}.landing-mode .primary{padding:14px 15px;font-size:11px;width:100%}
  .landing-mode .landing-story{margin-top:15px;font-size:10px}
  .landing-mode .vignette{background:linear-gradient(0deg,#0b151b 0%,#0b151b 39%,#0b151b00 59%)}
  body:not(.story-mode) .globe-caption{top:38dvh;bottom:auto}
  body:not(.story-mode) .gesture-hint{top:76px;bottom:auto}
  body:not(.story-mode):not(.landing-mode) .narrative{max-height:calc(57dvh - 24px)}
}
@media(max-height:700px) and (max-width:800px){.landing-mode .narrative{top:41dvh;max-height:calc(59dvh - 16px)}.landing-mode h1{font-size:31px;margin-top:12px;margin-bottom:12px}.landing-mode .intro{font-size:10px}.landing-mode .primary-actions{margin-top:16px}.landing-mode .landing-story{margin-top:12px}body:not(.story-mode) .globe-caption{top:35dvh}body:not(.story-mode) .gesture-hint{top:65px}body:not(.story-mode):not(.landing-mode) .narrative{max-height:calc(59dvh - 16px)}}
/* Let empty layout space pass mouse/touch input to the canvas below. */
main{pointer-events:none}
.narrative,.globe-tools,.snapshot-control{pointer-events:auto}
#globe,#globe canvas{cursor:grab;touch-action:none}
#globe.dragging,#globe.dragging canvas{cursor:grabbing!important}
#globe:focus-visible{outline:1px solid #ed604f80;outline-offset:-5px}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Tooltips are provided by scene-tooltip, not globe-tooltip. */
#globe .scene-tooltip{z-index:5;font-family:var(--sans);max-width:230px;white-space:normal;pointer-events:none}.map-tooltip{background:#0d2029f5;border:1px solid #ffffff35;border-radius:4px;padding:9px 12px;font-size:11px;line-height:1.5;box-shadow:0 5px 20px #0005}.map-tooltip strong{font-size:12px}.map-tooltip small{display:block;margin-top:4px;color:#b3c5cc;font-size:10px;line-height:1.5}.map-tooltip br{display:none}.map-tooltip .tooltip-status{padding-top:5px;border-top:1px solid #ffffff20;color:#decaa4}.map-status{margin:0 0 19px;border:1px solid #c8b68f45;border-radius:4px;padding:9px 11px;color:#c8b68f;font-size:10px;line-height:1.6}.map-status summary{cursor:pointer}.map-status p{margin:9px 0 0;color:#b1c2c7}.map-status[hidden]{display:none}@media(hover:none){#globe .scene-tooltip{display:none!important}}
