/* global-map.css — styles for the public /global-map page.
 * The interactive map lives in a CONTAINED stage (.cwn-geo-stage), not
 * fullscreen, so it sits inside the landing shell with SEO content below it.
 * All map-overlay rules are scoped under .cwn-geo-stage so generic class names
 * (.top/.hero/.panel/.legend) can't collide with landing.css.
 * Ported from /mocks/cwn-geo-hero.html: position:fixed -> absolute-in-stage.
 */
.cwn-geo-wrap{ --teal:#22AB94; --red:#ef5350; --gold:#f6c143; --mut:#7e8da0;
  --line:rgba(255,255,255,.09); --glass:rgba(8,13,22,.88);
  /* clear the site's position:fixed top nav so its links don't collide with the map toolbar */
  padding-top:26px; }

/* ── contained stage ── */
.cwn-geo-stage{position:relative;width:100%;height:min(80vh,740px);min-height:520px;
  border-radius:16px;overflow:hidden;background:#03070d;border:1px solid var(--line);
  box-shadow:0 30px 80px -40px rgba(0,0,0,.9);color:#eaf2fb;
  font:14px/1.45 'Satoshi','Inter',-apple-system,"Segoe UI",Roboto,sans-serif}
.cwn-geo-stage .up{color:var(--teal)} .cwn-geo-stage .down{color:var(--red)}
/* The map background IS the ocean now — the raster basemap is gone and the land is
   drawn from world_data.json (see global-map.js). #262626 is CARTO dark_nolabels'
   own water colour, sampled off a tile, so the map reads as it always has. */
#cwnGeoMap{position:absolute;inset:0;z-index:0;background:#262626}
.cwn-geo-stage .leaflet-container{background:#262626;font-family:inherit;outline:none}
.cwn-geo-stage .leaflet-control-zoom{border:none!important;margin:0 10px 58px 0!important}
.cwn-geo-stage .leaflet-control-zoom a{background:rgba(10,16,26,.85)!important;color:#cdd6e2!important;border:1px solid var(--line)!important;backdrop-filter:blur(6px)}
.cwn-geo-stage .leaflet-control-attribution{background:rgba(3,7,13,.6)!important;color:#56657a!important;font-size:9px!important}
.cwn-geo-stage .leaflet-control-attribution a{color:#7e8da0!important}
/* Just faint top + bottom fades for the toolbar + ticker legibility. The old
   left wedge / radial read as an ugly dark "box" behind the hero — gone. The
   hero now carries its own intentional glass card (see .hero below). */
.cwn-geo-stage .scrim{position:absolute;inset:0;z-index:400;pointer-events:none;
  background:
    radial-gradient(130% 135% at 50% 42%,transparent 46%,rgba(2,5,10,.5) 80%,rgba(2,5,10,.82) 100%),
    linear-gradient(180deg,rgba(3,7,13,.42) 0%,transparent 13%,transparent 84%,rgba(3,7,13,.5) 100%)}

/* ── markers ── */
.rmark{position:relative;width:26px;height:26px;display:flex;align-items:center;justify-content:center;transition:transform .16s ease}
.leaflet-marker-icon:hover .rmark{transform:scale(1.16)}
.fm{position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .16s ease}
.leaflet-marker-icon:hover .fm{transform:scale(1.13)}
/* circular flag medallion — ring + soft glow coloured by net sentiment (--sc) */
.fm .fm-flag{border-radius:50%;background:#0a0e16 center/cover no-repeat;position:relative;z-index:2;
  box-shadow:0 0 0 2px rgb(var(--sc)),0 0 0 3.5px rgba(6,10,18,.95),0 4px 12px rgba(0,0,0,.55),0 0 17px -3px rgba(var(--sc),.8)}
.fm .fm-label{display:flex;align-items:center;justify-content:center;border-radius:50%;background:#0a0e16;color:#dbe6f0;font:800 8px 'Inter';letter-spacing:.3px;text-align:center;line-height:1;position:relative;z-index:2;
  box-shadow:0 0 0 2px rgb(var(--sc)),0 0 0 3.5px rgba(6,10,18,.95),0 4px 12px rgba(0,0,0,.55),0 0 17px -3px rgba(var(--sc),.8)}
/* count pill, tucked under the medallion — dark glass, sentiment-tinted edge */
.fm .fm-count{position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);z-index:3;min-width:16px;height:15px;padding:0 5px;border-radius:8px;
  background:rgba(8,13,21,.96);border:1px solid rgba(var(--sc),.75);color:#fff;font:800 9.5px/14px 'Inter';text-align:center;letter-spacing:.2px;
  box-shadow:0 2px 6px rgba(0,0,0,.6)}
.fm .fm-ex{position:absolute;top:-1px;right:-1px;z-index:4;width:9px;height:9px;border-radius:50%;background:var(--teal);box-shadow:0 0 7px var(--teal),0 0 0 2px rgba(6,10,18,.95);animation:gmExpulse 2.2s ease-in-out infinite}
/* adoption-tier pill — shown INSTEAD of the news count when the map is in Adoption view */
.fm .fm-adopt{position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);z-index:3;min-width:16px;height:15px;padding:0 6px;border-radius:8px;background:rgba(8,13,21,.96);border:1px solid rgba(56,189,248,.85);color:#7dd3fc;font:800 8.5px/14px 'Inter';text-transform:uppercase;letter-spacing:.4px;text-align:center;box-shadow:0 2px 6px rgba(0,0,0,.6);display:none}
/* In Adoption view: news count hides, adoption tier shows, medallion ring turns gold */
.adopt-mode .fm .fm-count{display:none}
.adopt-mode .fm .fm-adopt{display:block}
.adopt-mode .fm .fm-flag,.adopt-mode .fm .fm-label{box-shadow:0 0 0 2px #38bdf8,0 0 0 3.5px rgba(6,10,18,.95),0 4px 12px rgba(0,0,0,.55),0 0 18px -3px rgba(56,189,248,.85)}
@keyframes gmExpulse{0%,100%{box-shadow:0 0 7px var(--teal),0 0 0 1.5px #0a0e16,0 0 0 0 rgba(34,171,148,.5)}55%{box-shadow:0 0 11px var(--teal),0 0 0 1.5px #0a0e16,0 0 0 5px rgba(34,171,148,0)}}
.nlabel{background:rgba(5,11,19,.82)!important;border:1px solid var(--line)!important;color:#dbe6f0!important;border-radius:5px;font:700 10.5px 'Inter';padding:2px 6px;box-shadow:none!important}
.nlabel:before{display:none!important}
/* exchange node logos */
.nmark{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;cursor:pointer}
.nmark .nring{position:absolute;top:50%;left:50%;width:var(--d);height:var(--d);margin:calc(var(--d)/-2) 0 0 calc(var(--d)/-2);border-radius:50%;border:1.6px solid rgba(var(--c),.75);box-sizing:border-box}
.nout .nring{animation:gmNrout 2.6s ease-out infinite}.nout .nring.n2{animation-delay:1.3s}
.nin .nring{animation:gmNrin 2.6s ease-in infinite}.nin .nring.n2{animation-delay:1.3s}
.nbal .nring{animation:gmNbal 3.2s ease-in-out infinite}   /* unresolved direction: gentle breathe, no big sweep */
@keyframes gmNbal{0%,100%{transform:scale(1);opacity:.5}50%{transform:scale(1.5);opacity:.18}}
@keyframes gmNrout{0%{transform:scale(1);opacity:.85}100%{transform:scale(3.6);opacity:0}}
@keyframes gmNrin{0%{transform:scale(3.6);opacity:0}16%{opacity:.7}100%{transform:scale(1);opacity:0}}
.nmark .nlogo{width:var(--d);height:var(--d);border-radius:50%;background:#fff;object-fit:contain;padding:3px;box-sizing:border-box;position:relative;z-index:3;box-shadow:0 0 0 2px rgb(var(--c)),0 0 12px rgba(var(--c),.65)}
/* heat on shaded countries: colour comes from the fill (canvas-rendered now).
   The old drop-shadow filters were dropped — they repainted every pan frame and
   caused the drag lag, and canvas doesn't carry per-path CSS filters anyway. */
/* per-region sentiment halo (so tiny-country regions still read as "live") */
.rglow{position:absolute;left:0;top:0;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(var(--gc),.26),rgba(var(--gc),0) 72%)}
/* radar pings */
.ping{position:absolute;left:-7px;top:-7px;width:14px;height:14px;border-radius:50%;border:2px solid rgb(var(--pc,34,171,148));animation:gmPing 1.9s ease-out forwards;pointer-events:none}
@keyframes gmPing{0%{transform:scale(.4);opacity:.85}100%{transform:scale(6.5);opacity:0}}
/* war-room hotspot glow */
.hotspot{position:absolute;left:0;top:0;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(239,83,80,.55),rgba(239,83,80,0) 70%);animation:gmHot 2.8s ease-in-out infinite}
@keyframes gmHot{0%,100%{transform:scale(.8);opacity:.45}50%{transform:scale(1.14);opacity:.92}}
/* sonar pulse shared */
@keyframes gmSonar{0%{transform:scale(.5);opacity:.8}100%{transform:scale(2.6);opacity:0}}
/* live whale-flow arcs: a travelling light-pulse rides each route = money in
   motion (teal out / red in). Base line keeps the route visible between pulses. */
path.flow-arc-base{fill:none;stroke-linecap:round}
path.flow-arc{fill:none;stroke-linecap:round;stroke-dasharray:2 20;animation:gmArcFlow 1.1s linear infinite}
@keyframes gmArcFlow{to{stroke-dashoffset:-24}}

/* ── grid + breaking ── */
.cwn-geo-stage .grid-ov{position:absolute;inset:0;z-index:395;pointer-events:none;background-image:linear-gradient(rgba(120,170,210,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(120,170,210,.025) 1px,transparent 1px);background-size:72px 72px;mask-image:radial-gradient(ellipse 80% 70% at 55% 45%,#000 45%,transparent 100%)}
.cwn-geo-stage .breaking{position:absolute;top:14px;left:50%;transform:translateX(-50%);z-index:520;max-width:460px;display:none;align-items:center;gap:10px;background:linear-gradient(90deg,rgba(239,83,80,.24),rgba(8,13,22,.92));border:1px solid rgba(239,83,80,.5);border-radius:999px;padding:6px 16px 6px 8px;backdrop-filter:blur(8px);cursor:pointer;animation:gmBreakDrop .5s cubic-bezier(.2,1.5,.4,1),gmBreakPulse 1.7s .5s infinite}
@keyframes gmBreakPulse{0%{box-shadow:0 0 18px -4px rgba(239,83,80,.55),0 0 0 0 rgba(239,83,80,.4)}70%{box-shadow:0 0 18px -4px rgba(239,83,80,.55),0 0 0 9px rgba(239,83,80,0)}100%{box-shadow:0 0 18px -4px rgba(239,83,80,.55),0 0 0 0 rgba(239,83,80,0)}}
@keyframes gmBreakDrop{0%{transform:translate(-50%,-30px);opacity:0}100%{transform:translateX(-50%);opacity:1}}
.cwn-geo-stage .breaking .bk-tag{flex:none;display:flex;align-items:center;gap:6px;font:900 9.5px 'Inter';letter-spacing:1px;color:#fff;background:var(--red);padding:3px 9px;border-radius:999px}
.cwn-geo-stage .breaking .bk-tag .bk-dot{width:6px;height:6px;border-radius:50%;background:#fff;animation:gmPip 1.1s infinite}
.cwn-geo-stage .breaking .bk-txt{font-size:12px;color:#fdeceb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;max-width:360px;transition:max-width .25s ease}
.cwn-geo-stage .breaking .bk-go{flex:none;color:#ff9b98;font:800 16px/1 'Inter';opacity:.7;transition:transform .2s,opacity .2s}
/* hover: stop the jiggle, open the pill, reveal the full headline (up to 3 lines) */
.cwn-geo-stage .breaking:hover{animation:none;max-width:600px;border-radius:16px;border-color:rgba(239,83,80,.7)}
.cwn-geo-stage .breaking:hover .bk-txt{white-space:normal;overflow:visible;max-width:500px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.cwn-geo-stage .breaking:hover .bk-go{transform:translateX(2px);opacity:1}

/* ── top bar (in-stage) ── */
.cwn-geo-stage .top{position:absolute;top:0;left:0;right:0;z-index:500;display:flex;align-items:center;gap:12px;padding:14px 16px;pointer-events:none}
.cwn-geo-stage .top>*{pointer-events:auto}
.cwn-geo-stage .brand{font-weight:900;letter-spacing:1.5px;font-size:15px;display:inline-flex;align-items:center}.cwn-geo-stage .brand b{color:var(--teal)}
.cwn-geo-stage .cwn-glogo{display:inline-block;width:22px;height:22px;border-radius:50%;overflow:hidden;position:relative;flex-shrink:0;margin-right:8px;background:#0a0e1a;box-shadow:0 0 8px rgba(34,171,148,.45),0 0 0 1px rgba(34,171,148,.4)}
.cwn-geo-stage .cwn-glogo video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.cwn-geo-stage .live{display:flex;align-items:center;gap:7px;font-size:10.5px;font-weight:800;letter-spacing:1px;color:#b9c6d6}
.cwn-geo-stage .live .pip{width:8px;height:8px;border-radius:50%;background:var(--teal);animation:gmPip 1.8s infinite}
@keyframes gmPip{0%{box-shadow:0 0 0 0 rgba(34,171,148,.6)}70%{box-shadow:0 0 0 7px rgba(34,171,148,0)}100%{box-shadow:0 0 0 0 rgba(34,171,148,0)}}
.cwn-geo-stage .layers{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}
.cwn-geo-stage .layers button{font:700 10.5px 'Inter';cursor:pointer;color:#d6e0ec;background:rgba(10,16,26,.8);border:1px solid var(--line);border-radius:9px;padding:6px 10px;display:flex;align-items:center;gap:6px;backdrop-filter:blur(6px);transition:border-color .15s,opacity .15s}
.cwn-geo-stage .layers button:hover{border-color:rgba(255,255,255,.22)}
.cwn-geo-stage .layers button .sw{width:8px;height:8px;border-radius:50%;box-shadow:0 0 7px currentColor}
.cwn-geo-stage .layers button[data-layer=geopolitical] .sw{background:#ef5350}
.cwn-geo-stage .layers button[data-layer=regulatory] .sw{background:#f6c143}
.cwn-geo-stage .layers button[data-layer=enforcement] .sw{background:#ff8a65}
.cwn-geo-stage .layers button[data-layer=adoption] .sw{background:#22AB94}
.cwn-geo-stage .layers button[data-layer=market] .sw{background:#5bb3e8}
.cwn-geo-stage .layers button[data-layer=technology] .sw{background:#b4a8ff}
.cwn-geo-stage .layers button.off{opacity:.4;text-decoration:line-through}
.cwn-geo-stage .snap{font-size:10px;color:var(--mut);align-self:center}
/* news ↔ adoption shading toggle */
/* two-option segmented toggle: active News = teal, active Adoption = gold (matches the map) */
.cwn-geo-stage .heatmode{flex:none;display:inline-flex;gap:2px;padding:2px;background:rgba(10,16,26,.82);border:1px solid var(--line);border-radius:9px;backdrop-filter:blur(6px)}
.cwn-geo-stage .heatmode .hm-opt{font:700 10.5px 'Inter';cursor:pointer;color:#9fb0c2;background:transparent;border:0;border-radius:7px;padding:5px 11px;white-space:nowrap;display:flex;align-items:center;gap:4px;transition:background .15s,color .15s}
.cwn-geo-stage .heatmode .hm-opt:hover{color:#dbe6f0}
.cwn-geo-stage .heatmode .hm-opt.on[data-hm="news"]{background:rgba(34,171,148,.22);color:#7fe9d4}
.cwn-geo-stage .heatmode .hm-opt.on[data-hm="adoption"]{background:rgba(56,189,248,.24);color:#7dd3fc}
.cwn-geo-stage .heatmode .hm-opt.on[data-hm="whale"]{background:rgba(52,211,153,.22);color:#6ee7b7}
.cwn-geo-stage .heatmode .hm-opt.on[data-hm="conflict"]{background:rgba(239,83,80,.24);color:#ff9a98}
/* whale-flow view: recede the news pins AND stop their animations (the radar
   pings + pulsing halos/hotspots were the mobile jank when the overlay is on —
   killing them frees the compositor for the node rings + flow arcs) */
.whale-mode .fm{opacity:.3;transition:opacity .2s ease}
.whale-mode .fm-ex,.whale-mode .rglow,.whale-mode .hotspot,.whale-mode .ping{display:none!important}
/* ── war-room CONFLICT theatre ── */
.conflict-mode .fm{opacity:.28;transition:opacity .2s ease}
.conflict-mode .fm-ex,.conflict-mode .rglow,.conflict-mode .hotspot,.conflict-mode .ping{display:none!important}
.cfx-hot{position:absolute;left:0;top:0;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(239,83,80,.6),rgba(239,68,60,.22) 45%,rgba(239,68,60,0) 72%);animation:cfxHot 2.4s ease-in-out infinite}
@keyframes cfxHot{0%,100%{transform:scale(.82);opacity:.5}50%{transform:scale(1.16);opacity:1}}
.cfx{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;cursor:pointer}
.cfx .cfx-ring{position:absolute;top:50%;left:50%;width:var(--d);height:var(--d);margin:calc(var(--d)/-2) 0 0 calc(var(--d)/-2);border-radius:50%;border:1.8px solid rgba(239,83,80,.85);box-sizing:border-box;animation:cfxRing 2.1s ease-out infinite}
@keyframes cfxRing{0%{transform:scale(1);opacity:.9}100%{transform:scale(2.9);opacity:0}}
.cfx .cfx-ico{position:relative;z-index:3;width:var(--d);height:var(--d);display:flex;align-items:center;justify-content:center;font-size:calc(var(--d) * .62);line-height:1;border-radius:50%;background:rgba(20,9,12,.92);box-shadow:0 0 0 2px rgba(239,83,80,.9),0 0 16px rgba(239,83,80,.7);filter:saturate(1.1)}
.cfx .cfx-n{position:absolute;left:50%;bottom:calc(var(--d) / -2 - 2px);transform:translateX(-50%);z-index:4;min-width:16px;height:15px;padding:0 5px;border-radius:8px;background:#ef5350;color:#fff;font:800 9px/15px 'Inter';text-align:center;box-shadow:0 2px 6px rgba(0,0,0,.6)}
@media(prefers-reduced-motion:reduce){.cfx-hot,.cfx .cfx-ring{animation:none!important}.cfx .cfx-ring{opacity:.45}}
/* conflict↔market reaction read (shown only in conflict mode) */
.cwn-geo-stage #cfxread{display:none;position:absolute;z-index:530;left:50%;transform:translateX(-50%);bottom:84px;width:min(580px,calc(100% - 32px));background:linear-gradient(180deg,rgba(30,12,14,.93),rgba(7,11,19,.96));border:1px solid rgba(239,83,80,.4);border-radius:13px;padding:9px 14px 10px;backdrop-filter:blur(12px);box-shadow:0 18px 44px -20px rgba(0,0,0,.85),0 0 26px -14px rgba(239,83,80,.5)}
.conflict-mode #cfxread{display:block}
.cwn-geo-stage #cfxread .cfx-r-ttl{font:800 9px 'Inter';letter-spacing:1.6px;color:#ff9a98;margin-bottom:4px}
.cwn-geo-stage #cfxread .cfx-r-row{display:flex;flex-wrap:wrap;align-items:center;gap:7px;font:600 12px 'Inter';color:#cdd8e4}
.cwn-geo-stage #cfxread .cfx-r-row b{font-weight:800;font-variant-numeric:tabular-nums}
.cwn-geo-stage #cfxread .cfx-r-row .up{color:#34d399}.cwn-geo-stage #cfxread .cfx-r-row .down{color:#ef5350}
.cwn-geo-stage #cfxread .cfx-r-dot{color:#52617a;font-style:normal;margin:0 1px}
.cwn-geo-stage #cfxread .cfx-r-sub,.cwn-geo-stage #cfxread .cfx-r-more{color:#8b97a7;font-weight:600;font-size:11px}
.cwn-geo-stage #cfxread .cfx-r-arrow{color:#74839a;margin:0 2px}
.cwn-geo-stage #cfxread .cfx-r-read{padding:2px 9px;border-radius:7px;background:rgba(255,255,255,.06);white-space:nowrap}
.cwn-geo-stage #cfxread .cfx-r-read.down{background:rgba(239,83,80,.16);color:#ff9a98}
.cwn-geo-stage #cfxread .cfx-r-read.up{background:rgba(52,211,153,.16);color:#6ee7b7}
.cwn-geo-stage #cfxread .cfx-r-cap{font:500 9.5px 'Inter';color:#74839a;margin-top:5px;line-height:1.4}
.cwn-geo-stage #cfxread .cfx-r-ttl{padding-right:24px}
.cwn-geo-stage #cfxread .cfx-r-toggle{position:absolute;top:6px;right:8px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:7px;background:rgba(255,255,255,.06);color:#cdd8e4;font-size:13px;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cwn-geo-stage #cfxread .cfx-r-toggle:hover{background:rgba(255,255,255,.12)}
.cwn-geo-stage #cfxread .cfx-r-mini{margin-left:7px;padding:1px 7px;border-radius:6px;letter-spacing:0;text-transform:none;font-weight:700;background:rgba(255,255,255,.06);color:#cdd8e4}
.cwn-geo-stage #cfxread .cfx-r-mini.down{background:rgba(239,83,80,.16);color:#ff9a98}
.cwn-geo-stage #cfxread .cfx-r-mini.up{background:rgba(52,211,153,.16);color:#6ee7b7}
.cwn-geo-stage #cfxread.collapsed{padding-bottom:8px}
.cwn-geo-stage #cfxread.collapsed .cfx-r-ttl{margin-bottom:0}
.cwn-geo-stage #cfxread.collapsed .cfx-r-row,.cwn-geo-stage #cfxread.collapsed .cfx-r-cap{display:none}
@media(max-width:900px){
  .cwn-geo-stage #cfxread{bottom:auto;top:100px;width:calc(100% - 16px);padding:7px 11px 8px;border-radius:11px}
  .cwn-geo-stage #cfxread .cfx-r-row{font-size:11px;gap:5px}
  .cwn-geo-stage #cfxread .cfx-r-cap{font-size:9px;margin-top:4px}
}
/* ── MOBILE PERF: the overlay markers (exchange rings, conflict hotspots/rings,
   flow arcs) all run INFINITE CSS animations — a dozen of them pulsing at once is
   what chugs the phone. Freeze them to a static-but-fully-visible state on mobile:
   the data still reads, the continuous compositor/battery cost disappears. ── */
.cwn-geo-stage.is-mobile .nring,
.cwn-geo-stage.is-mobile .nbal .nring,
.cwn-geo-stage.is-mobile .cfx-hot,
.cwn-geo-stage.is-mobile .cfx .cfx-ring,
.cwn-geo-stage.is-mobile .hotspot,
.cwn-geo-stage.is-mobile .fm .fm-ex,
.cwn-geo-stage.is-mobile path.flow-arc{animation:none!important}
.cwn-geo-stage.is-mobile .nmark .nring{opacity:.5;transform:scale(1.2)}
.cwn-geo-stage.is-mobile .cfx .cfx-ring{opacity:.55;transform:scale(1.25)}
.cwn-geo-stage.is-mobile .cfx-hot{opacity:.5}
.cwn-geo-stage.is-mobile .hotspot{opacity:.5}
.cwn-geo-stage.is-mobile path.flow-arc{opacity:.85}
/* Phones: drop the wide blurred glows + saturate filter on every marker — they
   repaint on every pan frame (the real drag jank). Keep a crisp 2px ring so the
   node/zone still reads. Smaller box = less overlap too. */
.cwn-geo-stage.is-mobile .nmark .nlogo{box-shadow:0 0 0 2px rgb(var(--c));padding:2px}
.cwn-geo-stage.is-mobile .cfx .cfx-ico{box-shadow:0 0 0 2px rgba(239,83,80,.85);filter:none}

/* ===== NAV ADDITIONS: recenter · search · mobile key ===== */
/* recenter / reset-view (just above the zoom buttons) */
.cwn-geo-stage .gm-recenter{position:absolute;right:10px;bottom:124px;z-index:455;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:7px;background:rgba(10,16,26,.85);border:1px solid var(--line);color:#cdd6e2;backdrop-filter:blur(6px);cursor:pointer;transition:background .15s,color .15s}
.cwn-geo-stage .gm-recenter:hover{background:rgba(20,28,40,.95);color:#fff}
/* search button (toolbar) — .top is pointer-events:none, so re-enable on the button */
.cwn-geo-stage .top .gm-search-btn{pointer-events:auto;flex:none;width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:14px;border-radius:9px;background:rgba(10,16,26,.82);border:1px solid var(--line);color:#cdd6e2;cursor:pointer;backdrop-filter:blur(6px);transition:background .15s,color .15s}
.cwn-geo-stage .top .gm-search-btn:hover{background:rgba(34,171,148,.18);color:#7fe9d4}
/* search overlay */
.cwn-geo-stage #gmSearch{position:absolute;inset:0;z-index:1200;display:none;background:rgba(4,8,14,.62);backdrop-filter:blur(3px);padding-top:60px}
.cwn-geo-stage #gmSearch.open{display:block}
.cwn-geo-stage .gms-box{width:min(520px,calc(100% - 22px));margin:0 auto;background:rgba(9,14,22,.98);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 60px -20px rgba(0,0,0,.85);overflow:hidden}
.cwn-geo-stage .gms-top{display:flex;align-items:center;gap:6px;padding:9px 9px 9px 14px;border-bottom:1px solid rgba(255,255,255,.07)}
.cwn-geo-stage .gms-in{flex:1;background:none;border:0;outline:none;color:#eaf2f8;font:600 15px 'Inter';min-width:0}
.cwn-geo-stage .gms-in::placeholder{color:#5f6f82;font-weight:500}
.cwn-geo-stage .gms-x{flex:none;width:30px;height:30px;border-radius:8px;background:rgba(255,255,255,.05);border:0;color:#9fb0c2;font-size:12px;cursor:pointer}
.cwn-geo-stage .gms-res{max-height:46vh;overflow-y:auto;padding:6px}
.cwn-geo-stage .gms-hint{padding:14px 12px;color:#74839a;font:500 12.5px 'Inter';text-align:center}
.cwn-geo-stage .gms-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 11px;border-radius:9px;background:none;border:0;cursor:pointer;transition:background .12s}
.cwn-geo-stage .gms-item:hover{background:rgba(34,171,148,.12)}
.cwn-geo-stage .gms-ic{font-size:15px;width:20px;text-align:center;flex:none}
.cwn-geo-stage .gms-lab{flex:1;font:700 13.5px 'Inter';color:#eaf2f8}
.cwn-geo-stage .gms-sub{font:600 10.5px 'Inter';color:#8b97a7;white-space:nowrap}
/* mobile key bar + expand panel (desktop hidden — desktop has the legend) */
.cwn-geo-stage #mkey,.cwn-geo-stage #mkeyPanel{display:none}
@media(max-width:900px){
  .cwn-geo-stage.mapview #mkey{display:flex;position:absolute;left:8px;right:46px;bottom:52px;z-index:520;align-items:center;gap:7px;padding:5px 6px 5px 11px;background:rgba(7,12,20,.93);border:1px solid rgba(255,255,255,.08);border-radius:9px;backdrop-filter:blur(10px)}
  .cwn-geo-stage #mkey .mkey-txt{flex:1;font:600 10px 'Inter';color:#c7d2de;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cwn-geo-stage #mkey .mkey-txt b{color:#eaf2f8}
  .cwn-geo-stage #mkey .mkey-i{flex:none;width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.07);border:1px solid var(--line);color:#9fb0c2;font-size:11px;cursor:pointer;line-height:1}
  .cwn-geo-stage.mapview #mkeyPanel.open{display:block;position:absolute;left:8px;right:8px;bottom:84px;z-index:521;padding:11px 13px;background:rgba(7,12,20,.98);border:1px solid var(--line);border-radius:11px;font:500 12px/1.5 'Inter';color:#c7d2de;backdrop-filter:blur(10px);box-shadow:0 -8px 30px rgba(0,0,0,.5)}
  .cwn-geo-stage .gm-recenter{bottom:120px;right:6px;width:30px;height:30px}
  .cwn-geo-stage .top .gm-search-btn{width:30px;height:30px;font-size:13px}
}
/* conflict country breakdown popup (in-app, lists places → source links) */
.cfx-pop{min-width:208px}
.cfx-pop .cfx-pop-h{font:800 14px 'Inter';color:#ff9a98;margin-bottom:2px}
.cfx-pop .cfx-pop-stat{font:600 10.5px 'Inter';color:#8b97a7;margin-bottom:8px}
.cfx-pop .cfx-pop-stat .cfx-pop-src{color:#5d6b7e;border:1px solid rgba(255,255,255,.12);border-radius:5px;padding:0 4px;margin-left:3px;font-size:9px;letter-spacing:.3px}
.cfx-pop .cfx-pop-list{display:flex;flex-direction:column;gap:2px;max-height:184px;overflow-y:auto}
.cfx-pop .cfx-pop-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);text-decoration:none;transition:background .14s,border-color .14s}
.cfx-pop .cfx-pop-item[data-rd]{cursor:pointer}
.cfx-pop .cfx-pop-item[data-rd]:hover{background:rgba(239,83,80,.14);border-color:rgba(239,83,80,.4)}
.cfx-pop .cfx-pop-item--flat{opacity:.7}
.cfx-pop .cfx-pop-place{flex:1;font:700 12px 'Inter';color:#e6edf4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cfx-pop .cfx-pop-meta{font:600 10.5px 'Inter';color:#9fb0c2;white-space:nowrap}
.cfx-pop .cfx-pop-item[data-rd] .cfx-pop-go{color:#ff9a98;font-size:12px;font-weight:800}
.cfx-pop .cfx-pop-foot{font:500 9.5px 'Inter';color:#67768a;margin-top:7px;text-align:center}

/* ===== in-app article reader (opens a story ON the map, not off-site) ===== */
.gm-reader{position:fixed;inset:0;z-index:4000;display:flex;align-items:center;justify-content:center;padding:18px}
.gm-reader .gmr-bg{position:absolute;inset:0;background:rgba(4,8,14,.72);backdrop-filter:blur(4px);animation:gmrFade .18s ease}
.gm-reader .gmr-card{position:relative;width:min(560px,100%);max-height:86vh;overflow-y:auto;background:linear-gradient(180deg,#0e151f,#0a0e16);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:20px 22px 22px;box-shadow:0 28px 80px -24px rgba(0,0,0,.9);animation:gmrPop .26s cubic-bezier(.2,1.4,.4,1)}
.gm-reader .gmr-x{position:absolute;top:11px;right:11px;width:30px;height:30px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:#cdd8e4;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .14s}
.gm-reader .gmr-x:hover{background:rgba(255,255,255,.12)}
.gm-reader .gmr-media{width:100%;height:170px;border-radius:11px;background:#070c14 center/cover no-repeat;margin-bottom:14px;border:1px solid rgba(255,255,255,.07)}
.gm-reader .gmr-src{font:800 10px 'Inter';letter-spacing:1.2px;text-transform:uppercase;color:#22AB94;margin-bottom:6px;padding-right:34px;min-height:12px}
.gm-reader .gmr-title{font:800 19px/1.32 'Inter';color:#f1f6fb;margin:0 0 12px}
.gm-reader .gmr-prev{font:500 14px/1.6 'Inter';color:#c4d0dc;margin-bottom:16px;min-height:22px}
.gm-reader .gmr-prev .gmr-none{color:#7e8da0;font-style:italic}
.gm-reader .gmr-spin{display:inline-block;width:12px;height:12px;border:2px solid rgba(255,255,255,.2);border-top-color:#22AB94;border-radius:50%;vertical-align:-2px;margin-right:6px;animation:gmrSpin .7s linear infinite}
.gm-reader .gmr-go{display:inline-flex;align-items:center;gap:6px;font:800 13.5px 'Inter';text-decoration:none;color:#04130f;background:linear-gradient(135deg,#28e4cf,#0fb5a8);border-radius:10px;padding:11px 20px;transition:transform .15s ease,box-shadow .15s ease}
.gm-reader .gmr-go:hover{transform:translateY(-1px);box-shadow:0 10px 24px -10px rgba(34,171,148,.7)}
@keyframes gmrFade{from{opacity:0}to{opacity:1}}
@keyframes gmrPop{0%{opacity:0;transform:translateY(14px) scale(.97)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes gmrSpin{to{transform:rotate(360deg)}}
@media(max-width:640px){.gm-reader{padding:10px}.gm-reader .gmr-card{padding:16px 16px 18px;max-height:90vh}.gm-reader .gmr-media{height:140px}.gm-reader .gmr-title{font-size:17px}.gm-reader .gmr-prev{font-size:13px}}
.ctag{font-size:8px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:1px 5px;border-radius:5px;color:rgb(var(--c));border:1px solid rgba(var(--c),.4);background:rgba(var(--c),.12);white-space:nowrap}

/* category dropdown (fixed — floats above the stage) */
.catdrop{position:fixed;z-index:600;display:none;width:330px;max-width:92vw;max-height:54vh;overflow-y:auto;background:rgba(8,13,22,.98);border:1px solid var(--line);border-radius:12px;box-shadow:0 22px 54px rgba(0,0,0,.75);backdrop-filter:blur(12px);padding:6px;font:14px/1.4 'Inter'}
.catdrop .cd-h{font:800 10.5px 'Inter';letter-spacing:.6px;text-transform:uppercase;color:rgb(var(--c));padding:8px 10px 7px;border-bottom:1px solid var(--line);margin-bottom:4px}
.catdrop .cd-row{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:8px;cursor:pointer;font-size:12px;color:#dbe6f0}
.catdrop .cd-row:hover{background:rgba(255,255,255,.05)}
.catdrop .cd-t{flex:1;line-height:1.32}
.catdrop .cd-more{display:block;padding:9px 10px 7px;color:var(--teal);font-weight:700;font-size:11.5px;text-decoration:none;border-top:1px dashed rgba(255,255,255,.1);margin-top:4px}

/* ── hero (in-stage) ── */
.cwn-geo-stage .hero{position:absolute;left:18px;top:64px;z-index:450;max-width:312px;pointer-events:auto;
  background:linear-gradient(180deg,rgba(10,16,26,.72),rgba(8,13,22,.62));backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:18px 20px 20px;
  box-shadow:0 24px 60px -30px rgba(0,0,0,.9)}
.cwn-geo-stage .hero .eye{font-size:10px;font-weight:800;letter-spacing:3px;color:var(--teal);margin-bottom:7px}
.cwn-geo-stage .hero h1{margin:0;font-size:24px;line-height:1.12;font-weight:900;letter-spacing:-.4px;text-shadow:0 2px 30px rgba(0,0,0,.7)}
.cwn-geo-stage .hero h1 b{display:block;margin-top:3px;background:linear-gradient(92deg,#fff 8%,#7fe9d4 42%,var(--teal) 60%,#7fe9d4 78%,#fff 100%);background-size:220% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gmShimmer 7s linear infinite}
@keyframes gmShimmer{to{background-position:-220% center}}
@media(prefers-reduced-motion:reduce){.cwn-geo-stage .hero h1 b{animation:none}}
.cwn-geo-stage .hero p{margin:11px 0 0;font-size:13px;color:#b6c2d0;max-width:312px;line-height:1.45;text-shadow:0 1px 12px rgba(0,0,0,.8)}
.cwn-geo-stage .hero .cta{margin-top:15px;display:flex;gap:10px;pointer-events:auto;flex-wrap:wrap}
.cwn-geo-stage .hero .cta a{font:800 13px 'Inter';text-decoration:none;border-radius:10px;padding:11px 18px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}
.cwn-geo-stage .hero .cta .p{position:relative;overflow:hidden;background:linear-gradient(135deg,#28e4cf,#0fb5a8);color:#04130f;animation:gmCtaGlow 2.6s ease-in-out infinite}
.cwn-geo-stage .hero .cta .p::after{content:'';position:absolute;top:0;left:-65%;width:55%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.6),transparent);transform:skewX(-18deg);animation:gmCtaShine 3.6s ease-in-out infinite}
.cwn-geo-stage .hero .cta .p:hover{transform:translateY(-2px) scale(1.04)}
.cwn-geo-stage .hero .cta .s{color:#d6e0ec;border:1px solid var(--line);background:rgba(10,16,26,.6)}
.cwn-geo-stage .hero .cta .s:hover{transform:translateY(-2px);border-color:rgba(34,171,148,.5);color:#fff;background:rgba(34,171,148,.1)}
@media(prefers-reduced-motion:reduce){.cwn-geo-stage .hero .cta .p,.cwn-geo-stage .hero .cta .p::after{animation:none}}

/* ── glass panels (in-stage) ── */
.cwn-geo-stage .panel{position:absolute;z-index:450;background:var(--glass);border:1px solid var(--line);border-radius:14px;backdrop-filter:blur(12px);box-shadow:0 24px 60px -24px rgba(0,0,0,.85);overflow:hidden;display:flex;flex-direction:column}
.cwn-geo-stage .panel h3{margin:0;padding:11px 14px 9px;font-size:10.5px;letter-spacing:1.3px;text-transform:uppercase;color:var(--mut);font-weight:800;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line)}
.cwn-geo-stage .panel h3 .clr{margin-left:auto;font-size:10px;color:var(--teal);cursor:pointer;letter-spacing:.3px;text-transform:none;font-weight:700}
.cwn-geo-stage .scroll{overflow-y:auto;min-height:0}
.cwn-geo-stage .scroll::-webkit-scrollbar{width:6px}.cwn-geo-stage .scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:4px}
.cwn-geo-stage .wirepanel{left:18px;bottom:46px;width:340px;max-height:36%}
.cwn-geo-stage .wi{padding:9px 14px;border-bottom:1px solid rgba(255,255,255,.05);border-left:3px solid var(--mut);cursor:pointer}
.cwn-geo-stage .wi:hover{background:rgba(255,255,255,.03)}
.cwn-geo-stage .wi.negative{border-left-color:var(--red)} .cwn-geo-stage .wi.positive{border-left-color:var(--teal)}
.cwn-geo-stage .wi-top{display:flex;align-items:center;gap:7px;margin-bottom:3px;font-size:10px;color:var(--mut)}
.cwn-geo-stage .wi-src{font-weight:700;color:#aeb9c7}
.cwn-geo-stage .wi-ago{margin-left:auto}
.cwn-geo-stage .wi-title{font-size:12px;line-height:1.38;color:#dde5ef}
.cwn-geo-stage .wi.has-url:hover .wi-title{color:#fff}
.cwn-geo-stage .wi-ext{margin-left:5px;color:var(--teal);font-weight:700;font-size:11px}
.cwn-geo-stage a.burst-chip{text-decoration:none}
.cwn-geo-stage .wi-flag{font-size:12px}
/* brand globe replaces the generic 🌐 on global/unmatched wire+ticker rows */
.cwn-geo-stage .wi-glogo{width:14px;height:14px;flex:none;object-fit:contain;vertical-align:middle;filter:drop-shadow(0 0 3px rgba(34,171,148,.4))}
.wi-flagimg{width:16px;height:11px;border-radius:2px;object-fit:cover;flex:none;box-shadow:0 0 0 1px rgba(255,255,255,.25)}
.cwn-geo-stage .empty{padding:16px;color:var(--mut);font-size:12px}
.cwn-geo-stage .wi-more{padding:10px 14px;font-size:11px;font-weight:700;color:var(--teal);background:rgba(34,171,148,.06);border-top:1px solid rgba(34,171,148,.18);cursor:pointer}
.cwn-geo-stage .whalepanel{right:16px;top:64px;width:300px;max-height:72%}
.cwn-geo-stage #sumbox{padding:12px 14px;border-bottom:1px solid var(--line)}
.cwn-geo-stage .sumhero{margin-bottom:10px}
.cwn-geo-stage .sh-val{display:block;font-size:26px;font-weight:800;line-height:1.05;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-.5px}
.cwn-geo-stage .sh-lab{display:block;font-size:10.5px;letter-spacing:.4px;color:var(--mut);margin-top:3px}
.cwn-geo-stage .sig{display:inline-block;font-size:11px;font-weight:800;letter-spacing:1px;padding:4px 11px;border-radius:7px;background:rgba(255,255,255,.05);border:1px solid var(--line);margin-bottom:10px}
.cwn-geo-stage .sig.up{color:var(--teal);border-color:rgba(34,171,148,.45);background:rgba(34,171,148,.12);box-shadow:0 0 24px -8px rgba(34,171,148,.6)}
.cwn-geo-stage .sig.down{color:var(--red);border-color:rgba(239,83,80,.45);background:rgba(239,83,80,.12)}
.cwn-geo-stage .sumrow{display:flex;justify-content:space-between;font-size:12px;color:var(--mut);margin:5px 0}
.cwn-geo-stage .sumrow b{font-variant-numeric:tabular-nums}
.cwn-geo-stage .sumnote{font-size:11px;color:#9fb1c2;margin-top:9px;line-height:1.45;border-top:1px dashed rgba(255,255,255,.1);padding-top:8px}
.cwn-geo-stage .striplbl{padding:10px 13px 0;font-size:9.5px;letter-spacing:1px;text-transform:uppercase;color:var(--mut);font-weight:800;display:flex;justify-content:space-between;align-items:center;gap:8px}
.cwn-geo-stage .striplbl .dkey{text-transform:none;letter-spacing:0;font-weight:600;font-size:9px;color:#8b97a7}
.cwn-geo-stage .coinstrip{display:flex;flex-wrap:wrap;gap:7px;padding:8px 13px 11px;border-bottom:1px solid var(--line)}
.cwn-geo-stage .cchip{display:flex;align-items:center;gap:5px;flex:none;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:8px;padding:5px 8px}
.cwn-geo-stage a.cchip{text-decoration:none;cursor:pointer;color:inherit;transition:transform .12s,border-color .12s,box-shadow .12s}
.cwn-geo-stage a.cchip:hover{transform:translateY(-1px);border-color:rgba(91,179,232,.6);box-shadow:0 3px 12px rgba(0,0,0,.4)}
.cwn-geo-stage .cchip .ct{font-weight:800;font-size:11px}
.cwn-geo-stage .cchip .cv{font-size:10.5px;color:var(--mut);font-variant-numeric:tabular-nums}
.cwn-geo-stage .cchip .cdir{font-size:9px;font-weight:900;line-height:1}
.cwn-geo-stage .cchip.up .cdir,.cwn-geo-stage .cchip.up .cv{color:var(--teal)}
.cwn-geo-stage .cchip.down .cdir,.cwn-geo-stage .cchip.down .cv{color:var(--red)}
.cwn-geo-stage .cchip.flat .cdir{color:var(--mut)}
.cwn-geo-stage .cico{width:17px;height:17px;border-radius:50%;flex:none;object-fit:cover;background:rgba(255,255,255,.06)}
/* gated whale teaser */
/* collapsible whale-panel teaser */
.cwn-geo-stage .flowdrop{border-top:1px solid var(--line)}
.cwn-geo-stage .flowdrop-sum{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 14px;cursor:pointer;list-style:none;font:800 10.5px 'Inter';letter-spacing:1px;text-transform:uppercase;color:var(--mut);transition:color .15s}
.cwn-geo-stage .flowdrop-sum::-webkit-details-marker{display:none}
.cwn-geo-stage .flowdrop-sum:hover{color:#cdd6e2}
.cwn-geo-stage .flowdrop .fd-caret{font-size:11px;transition:transform .2s;color:var(--teal)}
.cwn-geo-stage .flowdrop[open] .fd-caret{transform:rotate(180deg)}
.cwn-geo-stage .gate{padding:4px 14px 17px;display:flex;flex-direction:column;gap:11px;align-items:flex-start}
.cwn-geo-stage .gate-stat{display:flex;align-items:baseline;gap:8px}
.cwn-geo-stage .gate-stat b{font-size:34px;font-weight:900;letter-spacing:-.5px;background:linear-gradient(92deg,#fff,var(--teal));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-variant-numeric:tabular-nums;line-height:1}
.cwn-geo-stage .gate-stat span{font-size:11.5px;color:var(--mut)}
.cwn-geo-stage .gate-row{display:flex;gap:7px;flex-wrap:wrap}
.cwn-geo-stage .gate-row span{font-size:10.5px;font-weight:700;color:#aeb9c7;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:7px;padding:4px 9px;font-variant-numeric:tabular-nums}
.cwn-geo-stage .gate-lock{font-size:11.5px;color:#9fb1c2;line-height:1.45;display:flex;gap:7px;align-items:flex-start;border-top:1px dashed rgba(255,255,255,.1);padding-top:11px;width:100%}
.cwn-geo-stage .gate-cta{width:100%;text-align:center;text-decoration:none;font:800 12.5px 'Inter';color:#04130f;background:var(--teal);border-radius:9px;padding:11px;box-shadow:0 10px 26px -12px rgba(34,171,148,.7)}

/* ── ticker (in-stage bottom) ── */
.cwn-geo-stage .ticker{position:absolute;bottom:0;left:0;right:0;height:32px;z-index:430;background:rgba(6,10,18,.92);border-top:1px solid var(--line);backdrop-filter:blur(8px);overflow:hidden;display:flex;align-items:center}
.cwn-geo-stage .ticker .tklabel{position:relative;z-index:2;flex:none;display:flex;align-items:center;gap:7px;font:800 9.5px 'Inter';letter-spacing:1px;color:var(--teal);background:#0a1119;padding:0 13px;height:100%;border-right:1px solid var(--line)}
.cwn-geo-stage .ticker .tklabel .pip{width:7px;height:7px;border-radius:50%;background:var(--teal);animation:gmPip 1.6s infinite}
.cwn-geo-stage .ticker-track{display:flex;gap:34px;white-space:nowrap;animation:gmTk 140s linear infinite;padding-left:24px}
.cwn-geo-stage .ticker:hover .ticker-track{animation-play-state:paused}
@keyframes gmTk{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.cwn-geo-stage .tki{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#cdd6e2;cursor:pointer}
.cwn-geo-stage .tki:hover{color:#fff}
.cwn-geo-stage .tki .tki-src{color:var(--mut);font-weight:700}
.cwn-geo-stage .tki .wi-flagimg{width:15px;height:10px}

/* ── legend + hint (in-stage) ── */
.cwn-geo-stage .legend{position:absolute;left:50%;transform:translateX(-50%);bottom:42px;z-index:445;display:flex;gap:14px;align-items:center;font:700 11px 'Inter';color:#c7d2de;background:rgba(7,12,20,.55);border:1px solid rgba(255,255,255,.07);border-radius:999px;padding:8px 8px 8px 16px;backdrop-filter:blur(16px);box-shadow:0 12px 34px -18px rgba(0,0,0,.8)}
.cwn-geo-stage .legend .lk-note{color:#c7d2de;font-weight:600;letter-spacing:.2px}
.cwn-geo-stage .legend .lmeth{position:relative;cursor:help;color:#74839a;font:600 10.5px 'Inter';padding:5px 13px 5px 12px;border-left:1px solid rgba(255,255,255,.1);border-radius:0 999px 999px 0;transition:color .15s}
.cwn-geo-stage .legend .lmeth:hover{color:#cdd6e2}
.cwn-geo-stage .legend .lpop{position:absolute;bottom:30px;right:0;width:300px;text-align:left;background:rgba(6,11,19,.98);border:1px solid var(--line);border-radius:11px;padding:12px 13px;font:400 11.5px/1.55 'Inter';color:#aeb9c7;opacity:0;visibility:hidden;transform:translateY(5px);transition:.16s;box-shadow:0 18px 50px rgba(0,0,0,.7)}
.cwn-geo-stage .legend .lpop b{color:#dbe6f0;font-weight:700}
.cwn-geo-stage .legend .lmeth:hover .lpop{opacity:1;visibility:visible;transform:translateY(0)}
.cwn-geo-stage .hint{position:absolute;right:12px;bottom:40px;z-index:440;font-size:10px;color:#56657a;letter-spacing:.3px}

/* ── leaflet popups/tooltips theming ── */
.leaflet-tooltip,.leaflet-popup-content-wrapper{background:rgba(6,11,19,.97)!important;color:#dbe6f0!important;border:1px solid var(--line,rgba(255,255,255,.09))!important;border-radius:10px!important;box-shadow:0 16px 44px rgba(0,0,0,.7)!important;backdrop-filter:blur(8px)}
.leaflet-tooltip:before,.leaflet-popup-tip{display:none!important}
.leaflet-popup-content{margin:11px 13px!important;font:13px/1.4 'Inter'}
.leaflet-popup-content-wrapper{transform-origin:50% 100%;animation:gmRpop .26s cubic-bezier(.2,1.5,.4,1)}
@keyframes gmRpop{0%{transform:scale(.55);opacity:0}100%{transform:scale(1);opacity:1}}
.rpop{min-width:230px;max-width:300px}
.rpop-h{font-weight:800;font-size:12px;margin-bottom:8px;color:#fff}
.rpop-row{display:flex;gap:7px;align-items:flex-start;font-size:12px;color:#dbe6f0;padding:4px 0;line-height:1.35;opacity:0;animation:gmRrow .32s ease forwards;animation-delay:calc(var(--i)*65ms + 130ms)}
.rpop-row.rpop-click{cursor:pointer;border-radius:6px;margin:0 -6px;padding:4px 6px;transition:background .14s ease}
.rpop-row.rpop-click:hover{background:rgba(255,255,255,.06)}
.rpop-row .rpop-go{margin-left:auto;color:#22AB94;font-weight:800;flex:none;padding-left:6px}
.rpop-row .dot{margin-top:4px;width:7px;height:7px;border-radius:50%;flex:none;background:#7e8da0}
.rpop-row .dot.negative{background:#ef5350}.rpop-row .dot.positive{background:#22AB94}
.rpop-more{display:block;margin-top:8px;padding-top:8px;border-top:1px dashed rgba(255,255,255,.12);color:#22AB94;font-weight:700;font-size:11.5px;text-decoration:none;opacity:0;animation:gmRrow .32s ease forwards;animation-delay:calc(var(--i)*65ms + 130ms)}
@keyframes gmRrow{0%{opacity:0;transform:translateY(7px) scale(.96)}100%{opacity:1;transform:translateY(0) scale(1)}}
.rpop-sec{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:#7e8da0;font-weight:800;margin:10px 0 5px;opacity:0;animation:gmRrow .3s ease forwards;animation-delay:.12s}
.rpop-ex{display:flex;align-items:center;gap:8px;font-size:12px;color:#dbe6f0;padding:4px 0;opacity:0;animation:gmRrow .32s ease forwards;animation-delay:calc(var(--i)*65ms + 130ms)}
.rpop-ex .exi{width:18px;height:18px;border-radius:50%;background:#fff center/72% no-repeat;object-fit:cover;flex:none}
.rpop-ex b{flex:1;font-weight:700}
.rpop-ex .up{color:#22AB94;font-weight:800;font-variant-numeric:tabular-nums}
.rpop-ex .down{color:#ef5350;font-weight:800;font-variant-numeric:tabular-nums}
.rpop-ex .flat{color:#7e8da0;font-weight:600}
/* party-popper burst chips */
.burst-wrap{pointer-events:none;background:none!important;border:none!important}
.burst-chip{pointer-events:auto;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;max-width:240px;background:rgba(7,12,20,.97);border:1px solid rgba(255,255,255,.09);border-radius:9px;padding:6px 10px;font:600 11.5px 'Inter';color:#e3ebf4;box-shadow:0 10px 26px rgba(0,0,0,.65);backdrop-filter:blur(8px);transform-origin:center;animation:gmBurst .42s cubic-bezier(.2,1.7,.4,1) backwards;animation-delay:calc(var(--i)*50ms)}
.burst-chip b{font-weight:700}
/* keep the article title inside the chip — ellipsis, never spill past the box */
.burst-chip .bc-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}
.burst-chip.art{overflow:hidden}
.burst-chip.more{color:#22AB94;font-weight:800;text-decoration:none;cursor:pointer;border-color:rgba(34,171,148,.45);background:rgba(34,171,148,.14)}
.burst-chip .bc-dot{width:7px;height:7px;border-radius:50%;flex:none;background:#7e8da0}
.burst-chip .bc-dot.negative{background:#ef5350}.burst-chip .bc-dot.positive{background:#22AB94}
.burst-chip .bc-logo{width:15px;height:15px;border-radius:50%;background:#fff center/72% no-repeat;flex:none}
.burst-chip .up{color:#22AB94;font-weight:800}.burst-chip .down{color:#ef5350;font-weight:800}.burst-chip .flat{color:#7e8da0}
@keyframes gmBurst{0%{transform:translate(var(--dx,0),var(--dy,0)) scale(.3);opacity:0}70%{transform:translate(0,0) scale(1.06);opacity:1}100%{transform:translate(0,0) scale(1);opacity:1}}
.burst-origin{position:absolute;left:-14px;top:-14px;width:28px;height:28px;border-radius:50%;border:2px solid rgba(95,240,212,.75);animation:gmOrigin 1.5s ease-out infinite}
@keyframes gmOrigin{0%{transform:scale(.4);opacity:.9}100%{transform:scale(2.6);opacity:0}}
.burst-leg{filter:drop-shadow(0 0 3px rgba(95,240,212,.55))}
.tt-h{font-size:11.5px;font-weight:800;margin-bottom:5px}
.tt-r{font-size:11.5px;color:#cfd8e4;display:flex;gap:6px;align-items:flex-start;margin:3px 0;max-width:260px}
.tt-r2{font-size:11px;color:#aebccb;margin:2px 0 0}
.tt-sub{font-size:10px;color:#7e8da0;margin-top:5px}

/* ── mobile bottom-sheet tabs ── */
.cwn-geo-stage .mtabs{display:none;position:absolute;bottom:0;left:0;right:0;height:46px;z-index:600;background:rgba(6,10,18,.97);border-top:1px solid var(--line);backdrop-filter:blur(10px)}
.cwn-geo-stage .mtabs button{flex:1;background:none;border:0;color:var(--mut);font:800 11px 'Inter';letter-spacing:.4px;cursor:pointer}
.cwn-geo-stage .mtabs button.on{color:var(--teal)}

@media(max-width:900px){
  .cwn-geo-wrap{padding-top:14px}
  .cwn-geo-stage{height:74vh;min-height:440px}
  /* Desktop scrim is a 3-gradient wedge tuned for a left-anchored hero. On a
     centred mobile hero the wedge reads as a hard black block over the map.
     Replace with a single soft top fade for hero legibility, map clean below. */
  .cwn-geo-stage .scrim{background:linear-gradient(180deg,rgba(3,7,13,.74) 0%,rgba(3,7,13,.34) 26%,transparent 50%,transparent 100%)}
  .cwn-geo-stage .top{flex-wrap:wrap;gap:8px;padding:9px 10px}
  .cwn-geo-stage .brand,.cwn-geo-stage .live{display:none}
  .cwn-geo-stage .layers{order:3;width:100%;margin-left:0;justify-content:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:2px}
  .cwn-geo-stage .layers::-webkit-scrollbar{height:0}
  .cwn-geo-stage .layers button{flex:none;font-size:10px;padding:6px 9px}
  .cwn-geo-stage .hero{top:60px;left:12px;max-width:90%}
  .cwn-geo-stage .hero h1{font-size:18px;line-height:1.12;letter-spacing:-.3px}
  .cwn-geo-stage .hero .eye{font-size:9px;letter-spacing:2px;margin-bottom:5px}
  /* mobile: hero is a slim title at the very top — drop the description + big CTA
     buttons that pushed it into the middle of the map and covered region markers.
     Conversion still lives in the nav (Free trial) and the CTA band below. */
  .cwn-geo-stage .hero p,.cwn-geo-stage .hero .cta{display:none}
  /* Hidden in EVERY mobile state, not just .mapview. Opening the Wire or Whale
     sheet drops the .mapview class (global-map.js toggles it on the Map tab
     only), which brought the hero title block back — floating on top of the
     category chip row it overlaps. The slim-title intent above still holds. */
  .cwn-geo-stage .hero{display:none}
  .cwn-geo-stage .breaking,.cwn-geo-stage .legend,.cwn-geo-stage .hint,.cwn-geo-stage .ticker{display:none!important}
  .cwn-geo-stage .grid-ov{display:none}
  /* mobile bottom-sheet: the WHOLE panel scrolls (the whale tab's signal +
     in/out + top-movers + gated teaser is taller than the sheet; previously only
     the inner teaser scrolled, so the top-movers got clipped with no way down).
     Header stays pinned while the body scrolls. */
  /* 64% of a 74vh stage = ~half the screen — too imposing and the wire's last
     row visually butted against the bottom edge ("clipped"). 46% leaves the
     map legible above the sheet, and a bottom padding gives the last row
     breathing room so it doesn't read as cut off. */
  .cwn-geo-stage .panel{display:none!important;left:6px;right:6px;width:auto;top:auto;bottom:50px;max-height:46%;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .cwn-geo-stage .panel.mopen{display:flex!important}
  .cwn-geo-stage .panel h3{position:sticky;top:0;z-index:3;background:rgba(8,13,22,.97)}
  .cwn-geo-stage .panel .scroll{overflow:visible;max-height:none;padding-bottom:12px}
  /* The whale sheet carries a big figure + in/out rows + a note + the top-movers
     strip + the flow list (~500px) against the wire sheet's ~200. At the shared
     46% (~285px) the cut landed in the MIDDLE of a top-mover card, which reads
     as broken rather than scrollable. Give it more of the stage and tighten its
     own typography so the strip starts above the fold. */
  .cwn-geo-stage .whalepanel.mopen{max-height:64%}
  .cwn-geo-stage #sumbox{padding:10px 13px}
  .cwn-geo-stage .sumhero{margin-bottom:7px}
  .cwn-geo-stage .sh-val{font-size:21px}
  .cwn-geo-stage .sh-lab{font-size:10px}
  .cwn-geo-stage .sig{margin-bottom:7px;padding:3px 9px;font-size:10px}
  .cwn-geo-stage .sumrow{margin:4px 0}
  .cwn-geo-stage .sumnote{margin-top:7px;padding-top:7px;font-size:10.5px}
  /* The category row scrolls horizontally but ended flush at the viewport edge,
     so a half-cut chip read as clipped instead of "keep swiping". */
  .cwn-geo-stage .layers{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 26px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 26px),transparent)}
  .cwn-geo-stage .mtabs{display:flex}
  /* zoom buttons sit above the tab bar, and only on the bare Map view so they
     don't float over an open Wire/Whale bottom-sheet */
  .cwn-geo-stage .leaflet-control-zoom{margin:0 6px 54px 0!important;display:none}
  .cwn-geo-stage.mapview .leaflet-control-zoom{display:block}
  .gm-content{padding-top:24px}
}
@media(prefers-reduced-motion:reduce){
  .nring,.rpulse,.flow-arc,.ping,.hotspot,.fm .fm-ex{animation:none!important}
  .cwn-geo-stage .ticker-track{animation:none!important}
}

/* ════════ SEO content section (below the map) ════════ */
.gm-content{max-width:1080px;margin:0 auto;padding:8px 20px 10px}
/* coin icon on the deep-link chips */
.gm-links a .gm-link-ico{width:15px;height:15px;border-radius:50%;object-fit:cover;vertical-align:-3px;margin-right:6px;background:rgba(255,255,255,.06)}
.gm-lead{font-size:17px;line-height:1.6;color:#c4cfdd;max-width:760px;margin:18px 0 6px}
.gm-lead b{color:#fff}
.gm-sect{margin:54px 0}
.gm-sect h2{font-size:24px;font-weight:800;letter-spacing:-.3px;color:#fff;margin:0 0 6px;position:relative;padding-left:15px}
.gm-sect h2::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:0.82em;border-radius:3px;background:linear-gradient(180deg,#1FD8C4,#0FB5A8);box-shadow:0 0 10px -2px rgba(31,216,196,.7)}
.gm-sect .gm-sub{font-size:14px;color:#8fa0b4;margin:0 0 18px;max-width:720px;line-height:1.55}
.gm-regions{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}
.gm-region{display:block;text-decoration:none;padding:16px 18px;border-radius:15px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.013));border:1px solid rgba(255,255,255,.07);box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 12px 30px -24px rgba(0,0,0,.9);transition:border-color .18s,transform .18s,box-shadow .18s}
.gm-region:hover{border-color:rgba(34,171,148,.5);transform:translateY(-3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 16px 36px -20px rgba(34,171,148,.45)}
.gm-region-top{display:flex;align-items:center;gap:9px;margin-bottom:7px}
.gm-region-flag{width:24px;height:24px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1.5px rgba(255,255,255,.16),0 2px 6px rgba(0,0,0,.45)}
.gm-region-name{font-size:15px;font-weight:800;color:#eaf2fb}
.gm-region-count{margin-left:auto;font-size:11px;font-weight:800;color:#22AB94;background:rgba(34,171,148,.12);border:1px solid rgba(34,171,148,.28);border-radius:20px;padding:2px 9px;white-space:nowrap}
.gm-region-top-headline{font-size:13px;line-height:1.45;color:#aab8c9}
.gm-cats{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.gm-cat{position:relative;display:flex;align-items:flex-start;gap:11px;font-size:13px;color:#c4cfdd;text-decoration:none;cursor:pointer;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.013));border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:13px 16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;overflow:hidden}
/* a faint wash of the category colour bleeds in from the left edge */
.gm-cat::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--cc);opacity:.55;transition:opacity .18s,width .18s}
.gm-cat:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.16);box-shadow:0 12px 28px -16px var(--cc),0 4px 12px -8px rgba(0,0,0,.7)}
.gm-cat:hover::before{opacity:1;width:4px}
.gm-cat .dot{margin-top:6px;width:9px;height:9px;border-radius:50%;flex:none;box-shadow:0 0 9px -1px var(--cc)}
.gm-cat b{display:block;color:#e8eef7;font-size:13px;letter-spacing:-.005em}
.gm-cat:hover b{color:#fff}
.gm-cat-d{display:block;color:#8fa0b4;font-size:11.5px;line-height:1.45;margin-top:3px}
.gm-cat-go{margin-left:auto;align-self:center;flex:none;color:var(--cc);font:900 15px/1 'Inter';opacity:0;transform:translateX(-6px);transition:opacity .18s,transform .18s}
.gm-cat:hover .gm-cat-go{opacity:1;transform:none}
/* Editorial stat row — no boxes, fading hairline dividers, big gradient figures */
.gm-scale{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:26px 0;margin-top:24px}
.gm-scale-card{position:relative;padding:2px 22px;min-width:0}
.gm-scale-card::before{content:'';position:absolute;left:0;top:4px;bottom:4px;width:1px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.14) 18%,rgba(255,255,255,.14) 82%,transparent)}
.gm-scale-card:first-child{padding-left:0}
.gm-scale-card:first-child::before{display:none}
.gm-scale-card b{display:block;font-size:clamp(24px,2.3vw,29px);font-weight:900;background:linear-gradient(168deg,#ffffff 30%,#9fb6cf);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-variant-numeric:tabular-nums;letter-spacing:-.5px;line-height:1.05;white-space:nowrap}
.gm-scale-card span{display:block;font-size:11.5px;color:#8395a9;margin-top:5px;letter-spacing:.1px}
.gm-flow-link{display:inline-flex;align-items:center;gap:7px;margin-top:18px;padding:11px 20px;border-radius:11px;font-size:13.5px;font-weight:800;letter-spacing:-.005em;text-decoration:none;color:#04221d;background:linear-gradient(180deg,#1FD8C4,#0FB5A8);box-shadow:0 10px 24px -14px rgba(31,216,196,.85),inset 0 1px 0 rgba(255,255,255,.35);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.gm-flow-link:hover{transform:translateY(-2px);filter:brightness(1.06);box-shadow:0 16px 32px -14px rgba(31,216,196,.95),inset 0 1px 0 rgba(255,255,255,.45)}
.gm-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.gm-links a{position:relative;display:inline-flex;align-items:center;font-size:13px;font-weight:700;color:#cdddee;text-decoration:none;letter-spacing:-.01em;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.018));border:1px solid rgba(255,255,255,.09);border-radius:12px;padding:9px 15px;box-shadow:inset 0 1px 0 rgba(255,255,255,.06);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease;overflow:hidden}
/* teal wash bleeds up on hover */
.gm-links a::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(31,216,196,.15),transparent 70%);opacity:0;transition:opacity .16s}
/* arrow slides in on hover */
.gm-links a::after{content:'\2192';font-weight:800;color:#1FD8C4;max-width:0;opacity:0;overflow:hidden;transition:max-width .18s ease,opacity .18s ease,margin-left .18s ease}
.gm-links a:hover{transform:translateY(-3px);color:#fff;border-color:rgba(31,216,196,.55);box-shadow:0 13px 28px -14px rgba(31,216,196,.7),inset 0 1px 0 rgba(255,255,255,.13)}
.gm-links a:hover::before{opacity:1}
.gm-links a:hover::after{max-width:1.2em;opacity:1;margin-left:6px}
.gm-faq{margin-top:6px}
.gm-faq details{border-bottom:1px solid rgba(122,148,180,.12);padding:14px 2px}
.gm-faq summary{font-size:15px;font-weight:700;color:#eaf2fb;cursor:pointer;list-style:none}
.gm-faq summary::-webkit-details-marker{display:none}
.gm-faq summary:before{content:'+';color:#22AB94;font-weight:900;margin-right:10px}
.gm-faq details[open] summary:before{content:'\2212'}
.gm-faq p{margin:10px 0 2px 22px;font-size:14px;line-height:1.6;color:#9fb0c2;max-width:760px}
.gm-cta-band{position:relative;overflow:hidden;margin:46px 0 10px;padding:34px 26px;border-radius:18px;text-align:center;background:radial-gradient(120% 120% at 50% 0%,rgba(34,171,148,.15),transparent 60%),#0b1422;border:1px solid rgba(34,171,148,.28)}
/* breathing teal aurora behind the CTA */
.gm-cta-band::before{content:'';position:absolute;left:50%;top:-40%;width:70%;height:140%;transform:translateX(-50%);z-index:0;pointer-events:none;background:radial-gradient(50% 50% at 50% 50%,rgba(34,171,148,.28),transparent 70%);filter:blur(18px);animation:gmCtaBreath 5.5s ease-in-out infinite}
@keyframes gmCtaBreath{0%,100%{opacity:.45;transform:translateX(-50%) scale(.96)}50%{opacity:.95;transform:translateX(-50%) scale(1.08)}}
.gm-cta-band>*{position:relative;z-index:1}
.gm-cta-band h2{font-size:25px;color:#fff;margin:0 0 8px;letter-spacing:-.3px}
.gm-cta-band p{font-size:14px;color:#9fb0c2;margin:0 0 20px}
/* glowing, shining CTA button */
.gm-cta-band a{position:relative;overflow:hidden;display:inline-block;font-size:14.5px;font-weight:800;text-decoration:none;color:#04130f;background:linear-gradient(135deg,#28e4cf,#0fb5a8);border-radius:12px;padding:14px 30px;transition:transform .18s ease,box-shadow .18s ease;animation:gmCtaGlow 2.6s ease-in-out infinite}
.gm-cta-band a::after{content:'';position:absolute;top:0;left:-65%;width:55%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.6),transparent);transform:skewX(-18deg);animation:gmCtaShine 3.6s ease-in-out infinite}
.gm-cta-band a:hover{transform:translateY(-2px) scale(1.035)}
@keyframes gmCtaGlow{0%,100%{box-shadow:0 0 0 0 rgba(40,228,207,0),0 10px 26px -12px rgba(34,171,148,.6)}50%{box-shadow:0 0 24px 2px rgba(40,228,207,.5),0 16px 36px -10px rgba(34,171,148,.9)}}
@keyframes gmCtaShine{0%{left:-65%}58%,100%{left:150%}}
@media(prefers-reduced-motion:reduce){.gm-cta-band::before,.gm-cta-band a,.gm-cta-band a::after{animation:none}}
@media(max-width:640px){.gm-sect h2{font-size:21px}.gm-lead{font-size:15px}}
/* Map page only: the map's own toolbar/breaking-bar/pills sit at z-index 500-600
   in the root stacking context, which painted OVER the global nav's open dropdown
   (nav is z-index:100). Lift the fixed nav + its dropdowns above the map UI here.
   Stays below the map's full-screen search (1200) / article reader (4000) overlays. */
body .lv3-nav{z-index:1000}

/* ===================== 4 Oct 2026: the new layer (night base, sections, replay) ===================== */
/* Fixes first. body's overflow-x:hidden still lets script scroll it sideways (the map calls scrollIntoView), which is
   the likeliest cause of the intro card and wire sliding off the left edge; clip forbids that scroll. */
html,body{overflow-x:clip!important}
.cwn-geo-stage{font-family:'Inter','Satoshi',system-ui,sans-serif;max-width:1480px;margin-left:auto;margin-right:auto;border-radius:24px;overflow:hidden;box-shadow:0 0 0 1px rgba(255,255,255,.09) inset,0 40px 100px -40px rgba(0,0,0,.95)}
.cwn-geo-wrap{padding:0 clamp(10px,1.6vw,24px)}
.cwn-geo-stage .leaflet-container{background:#03050a!important}
.cwn-geo-stage .grid-ov{opacity:.25}
/* the landing's own .hero rule (min-height:100vh, overflow hidden, a grid wash) leaked into the map's intro card */
.cwn-geo-stage .hero{min-height:0!important;overflow:visible!important;background:rgba(9,11,15,.80)!important;backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border:0!important;border-radius:18px!important;box-shadow:0 0 0 1px rgba(255,255,255,.09) inset,0 24px 60px -28px rgba(0,0,0,.95)!important}
.cwn-geo-stage .hero::before{display:none!important}

/* glass panels in the app's tokens */
.cwn-geo-stage .panel,.cwn-geo-stage #cfxread,.cwn-geo-stage .legend,.catdrop,.cwn-geo-stage .gms-box{background:rgba(9,11,15,.80)!important;backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border:0!important;box-shadow:0 0 0 1px rgba(255,255,255,.09) inset,0 24px 60px -28px rgba(0,0,0,.95)!important}
.cwn-geo-stage .panel{border-radius:16px!important}
.cwn-geo-stage .panel h3{letter-spacing:.06em!important;font-size:11.5px!important;color:#cfe0ea!important}

/* the mode switch: a thumb slides between options instead of each button painting its own fill */
.cwn-geo-stage .heatmode{position:relative;isolation:isolate}
.cwn-geo-stage .heatmode .hm-thumb{position:absolute;top:3px;bottom:3px;left:0;border-radius:9px;z-index:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,.06));box-shadow:0 0 0 1px rgba(255,255,255,.1) inset,0 8px 22px -10px rgba(31,216,196,.7);transition:transform .32s cubic-bezier(.22,.92,.28,1),width .32s cubic-bezier(.22,.92,.28,1)}
.cwn-geo-stage .heatmode .hm-opt{position:relative;z-index:1;background:transparent!important;box-shadow:none!important}
.cwn-geo-stage .heatmode .hm-opt.on{color:#fff!important}

/* ===================== the sections under the map ===================== */
.g2{--g2-teal:#1FD8C4;--g2-teal-rgb:31,216,196;--g2-up:#2fe0a0;--g2-dn:#ff6b5e;--g2-txt:#e9f1f7;--g2-mut:#8ba0b3;--g2-dim:#71879a;--g2-line:rgba(255,255,255,.1);--g2-line2:rgba(255,255,255,.06);
  --g2-card:linear-gradient(180deg,#0d0f13,#08090c);--g2-shadow:0 1px 0 rgba(255,255,255,.05) inset,0 30px 70px -36px rgba(0,0,0,.95);--g2-ease:cubic-bezier(.22,.92,.28,1);
  max-width:1240px;margin:0 auto;padding:30px clamp(16px,3vw,32px) 90px;font-family:'Inter',system-ui,sans-serif;color:var(--g2-txt)}
.g2 a{color:inherit;text-decoration:none}
.g2-lead{margin:18px auto 0;max-width:68ch;text-align:center;font:500 17px/1.6 'Satoshi','Inter',sans-serif;color:#b9c7d4}
.g2-lead b{color:#fff}
.g2-sect{margin-top:66px}
.g2-sh{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.g2-sh h2{margin:0;font:900 clamp(1.5rem,2.4vw,2rem)/1.1 'Satoshi','Inter',sans-serif;letter-spacing:-.03em;color:#fff}
.g2-sh p{margin:0;font:500 14px 'Inter',sans-serif;color:var(--g2-mut)}
.g2-none{color:var(--g2-dim)!important;font-weight:500!important}
/* flags as medallions, ringed in their tone */
.g2-flag{flex:none;width:26px;height:26px;border-radius:50%;background:#0b1018 center/cover no-repeat;box-shadow:0 0 0 1.5px rgb(var(--c,122,184,232)),0 0 12px rgba(var(--c,122,184,232),.55)}
.g2-med{flex:none;width:52px;height:52px;border-radius:50%;background:#0b1018 center/cover no-repeat;box-shadow:0 0 0 2px rgb(var(--c)),0 0 0 5px rgba(5,7,10,.9),0 0 30px rgba(var(--c),.6)}
/* the three busiest regions: feature cards lit in their tone */
.g2-feat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.g2-rf{position:relative;display:flex;flex-direction:column;gap:14px;padding:20px;border-radius:20px;background:radial-gradient(420px 180px at 0% 0%,rgba(var(--c),.16),transparent 70%),var(--g2-card);box-shadow:var(--g2-shadow),0 0 0 1px rgba(var(--c),.22) inset;overflow:hidden;transition:transform .25s var(--g2-ease),box-shadow .25s}
@media(hover:hover){.g2-rf:hover{transform:translateY(-3px);box-shadow:var(--g2-shadow),0 0 0 1px rgba(var(--c),.55) inset,0 22px 50px -24px rgba(var(--c),.55)}}
.g2-rft{display:flex;align-items:center;gap:14px}
.g2-rft h3{margin:0;font:800 18px 'Satoshi','Inter',sans-serif;color:#fff;letter-spacing:-.01em}
.g2-tw{font:600 12.5px 'Inter',sans-serif;color:rgb(var(--c))}
.g2-n{margin-left:auto;text-align:right}
.g2-n b{display:block;font:800 34px/1 'Schibsted Grotesk','Inter',sans-serif;color:#fff;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.g2-n>span{font:500 11.5px 'Inter',sans-serif;color:var(--g2-mut)}
.g2-tone{display:flex;height:7px;border-radius:999px;overflow:hidden;gap:2px;background:rgba(255,255,255,.04)}
.g2-tone i{display:block;height:100%;transform-origin:left;animation:g2grow .7s var(--g2-ease) both}
@keyframes g2grow{from{transform:scaleX(0)}}
.g2-rf .g2-tone{height:8px;box-shadow:0 0 18px -4px rgba(var(--c),.6)}
.g2-hs{display:flex;flex-direction:column;gap:2px}
.g2-h{display:flex;flex-direction:column;gap:3px;padding:9px 10px;margin:0 -10px;border-radius:11px;transition:background .15s}
@media(hover:hover){.g2-h:hover{background:rgba(255,255,255,.05)}}
.g2-h b{font:600 14px/1.4 'Inter',sans-serif;color:#eef4f9}
.g2-h span{font:600 11.5px 'Inter',sans-serif;color:var(--g2-dim)}
.g2-go{margin-top:auto;display:inline-flex;align-items:center;gap:6px;font:700 13px 'Inter',sans-serif;color:var(--g2-teal)}
.g2-go span{transition:transform .2s var(--g2-ease)}
@media(hover:hover){.g2-go:hover span{transform:translateX(3px)}}
/* the rest: terminal rows */
.g2-rows{margin-top:14px;border-radius:18px;background:var(--g2-card);box-shadow:var(--g2-shadow),0 0 0 1px var(--g2-line2) inset;overflow:hidden}
.g2-rr{display:grid;grid-template-columns:26px 190px 44px 120px minmax(0,1fr) 16px;align-items:center;gap:16px;padding:13px 18px;border-top:1px solid var(--g2-line2);transition:background .15s}
.g2-rr:first-child{border-top:0}
@media(hover:hover){.g2-rr:hover{background:linear-gradient(90deg,rgba(var(--c),.08),transparent 60%)}.g2-rr:hover .g2-ch{color:#fff;transform:translateX(2px)}}
.g2-rn{font:700 14.5px 'Inter',sans-serif;color:#fff}
.g2-rc{font:800 18px 'Schibsted Grotesk','Inter',sans-serif;color:#fff;font-variant-numeric:tabular-nums;text-align:right}
.g2-rt{font:500 13.5px/1.4 'Inter',sans-serif;color:#c9d5df;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.g2-ch{color:var(--g2-dim);font-size:20px;transition:transform .2s,color .2s}
.g2-quiet{margin-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:12px 16px;border-radius:14px;background:rgba(255,255,255,.02);box-shadow:0 0 0 1px var(--g2-line2) inset;opacity:.75}
.g2-ql{font:700 12.5px 'Inter',sans-serif;color:var(--g2-mut)}
.g2-q{display:inline-flex;align-items:center;gap:8px;font:600 13px 'Inter',sans-serif;color:var(--g2-dim)}
.g2-q .g2-flag{width:18px;height:18px;filter:grayscale(.6);box-shadow:0 0 0 1px rgba(255,255,255,.15)}
/* categories: each lit in its own colour, with today's count and lead headline */
.g2-cats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.g2-cat{position:relative;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;gap:10px 14px;align-items:start;padding:18px;border-radius:18px;background:radial-gradient(320px 140px at 0% 0%,rgba(var(--c),.12),transparent 70%),var(--g2-card);box-shadow:var(--g2-shadow),0 0 0 1px rgba(var(--c),.18) inset;transition:transform .25s var(--g2-ease),box-shadow .25s}
@media(hover:hover){.g2-cat:hover{transform:translateY(-2px);box-shadow:var(--g2-shadow),0 0 0 1px rgba(var(--c),.55) inset,0 18px 40px -22px rgba(var(--c),.6)}}
.g2-cd{width:12px;height:12px;border-radius:50%;margin-top:4px;background:rgb(var(--c));box-shadow:0 0 14px rgba(var(--c),.9)}
.g2-cb b{display:block;font:800 16px 'Satoshi','Inter',sans-serif;color:#fff}
.g2-cb span{font:500 13px/1.45 'Inter',sans-serif;color:var(--g2-mut)}
.g2-cn{font:600 12px 'Inter',sans-serif;color:var(--g2-mut);text-align:right;white-space:nowrap}
.g2-cn b{display:block;font:800 26px/1 'Schibsted Grotesk','Inter',sans-serif;color:#fff;font-variant-numeric:tabular-nums}
.g2-ct{grid-column:1/-1;padding-top:12px;border-top:1px solid var(--g2-line2);font:600 13.5px/1.45 'Inter',sans-serif;color:#dbe5ee;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* whale money: one composed band */
.g2-wb{padding:26px;border-radius:22px;background:radial-gradient(700px 240px at 0% 0%,rgba(var(--g2-teal-rgb),.12),transparent 70%),var(--g2-card);box-shadow:var(--g2-shadow),0 0 0 1px rgba(var(--g2-teal-rgb),.18) inset}
.g2-wh b{display:block;font:800 clamp(2.4rem,4.4vw,3.4rem)/1 'Schibsted Grotesk','Inter',sans-serif;letter-spacing:-.04em;color:#fff;font-variant-numeric:tabular-nums}
.g2-wh>span{display:block;margin-top:8px;font:500 15px 'Inter',sans-serif;color:var(--g2-mut)}
.g2-comp{display:flex;gap:4px;height:46px;margin-top:22px;border-radius:14px;overflow:hidden}
.g2-comp i{display:flex;align-items:center;padding:0 14px;min-width:0;font:700 13px 'Inter',sans-serif;font-style:normal;white-space:nowrap;transform-origin:left;animation:g2grow .9s var(--g2-ease) both}
.g2-comp i span{overflow:hidden;text-overflow:clip}
.g2-comp .c{background:linear-gradient(90deg,#0FB5A8,#1FD8C4);color:#041512;box-shadow:0 0 30px -6px rgba(31,216,196,.7)}
.g2-comp .s{background:repeating-linear-gradient(135deg,rgba(122,184,232,.22) 0 8px,rgba(122,184,232,.14) 8px 16px);color:#cfe0ee;animation-delay:.15s}
.g2-comp .w{background:repeating-linear-gradient(135deg,rgba(180,168,255,.22) 0 8px,rgba(180,168,255,.14) 8px 16px);color:#ddd6ff;animation-delay:.3s}
.g2-cap{margin:12px 0 0;font:500 13px 'Inter',sans-serif;color:var(--g2-dim)}
.g2-tcs{margin-top:22px;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px}
.g2-tc{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px;border-radius:14px;background:rgba(255,255,255,.035);box-shadow:0 0 0 1px var(--g2-line2) inset;transition:box-shadow .2s,transform .2s var(--g2-ease)}
@media(hover:hover){.g2-tc:hover{transform:translateY(-2px);box-shadow:0 0 0 1px rgba(var(--g2-teal-rgb),.5) inset}}
.g2-tc img{width:26px;height:26px;border-radius:50%}
.g2-tc b{font:800 14px 'Inter',sans-serif;color:#fff}
.g2-tc span{font:600 12.5px 'Inter',sans-serif;color:var(--g2-mut);font-variant-numeric:tabular-nums}
.g2-facts{margin-top:22px;padding-top:18px;border-top:1px solid var(--g2-line2);display:flex;flex-wrap:wrap;align-items:center;gap:8px 0}
.g2-facts span{font:500 13.5px 'Inter',sans-serif;color:var(--g2-mut);padding:0 18px;border-left:1px solid var(--g2-line2)}
.g2-facts span:first-child{padding-left:0;border-left:0}
.g2-facts b{color:#fff;font-weight:800;font-variant-numeric:tabular-nums}
.g2-facts a{margin-left:auto;font:700 13.5px 'Inter',sans-serif;color:var(--g2-teal)}
/* go deeper: four destinations, each with a live figure */
.g2-dests{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.g2-dest{position:relative;display:flex;flex-direction:column;gap:6px;padding:20px;border-radius:18px;background:var(--g2-card);box-shadow:var(--g2-shadow),0 0 0 1px var(--g2-line2) inset;overflow:hidden;transition:transform .25s var(--g2-ease),box-shadow .25s}
.g2-dest::before{content:"";position:absolute;inset:0;background:radial-gradient(260px 120px at 100% 0%,rgba(var(--g2-teal-rgb),.14),transparent 70%);opacity:0;transition:opacity .3s}
@media(hover:hover){.g2-dest:hover{transform:translateY(-3px);box-shadow:var(--g2-shadow),0 0 0 1px rgba(var(--g2-teal-rgb),.5) inset}.g2-dest:hover::before{opacity:1}.g2-dest:hover .g2-da{transform:translateX(4px);color:#fff}}
.g2-di{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:var(--g2-teal);background:rgba(var(--g2-teal-rgb),.08);box-shadow:0 0 0 1px rgba(var(--g2-teal-rgb),.22) inset;margin-bottom:6px}
.g2-di svg{width:18px;height:18px}
.g2-dest b{font:800 16px 'Satoshi','Inter',sans-serif;color:#fff}
.g2-df{font:800 15px 'Schibsted Grotesk','Inter',sans-serif;color:var(--g2-teal);font-variant-numeric:tabular-nums}
.g2-dl{font:500 13px 'Inter',sans-serif;color:var(--g2-mut)}
.g2-da{position:absolute;right:18px;top:20px;font-size:18px;color:var(--g2-dim);transition:transform .2s var(--g2-ease),color .2s}
.g2-coins{margin-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.g2-coins>span{font:700 12.5px 'Inter',sans-serif;color:var(--g2-mut);margin-right:6px}
.g2-coins a{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 12px;border-radius:11px;font:700 13px 'Inter',sans-serif;color:#e6eef5;background:rgba(255,255,255,.035);box-shadow:0 0 0 1px var(--g2-line2) inset;transition:box-shadow .2s}
@media(hover:hover){.g2-coins a:hover{box-shadow:0 0 0 1px rgba(var(--g2-teal-rgb),.5) inset}}
.g2-coins img{width:20px;height:20px;border-radius:50%}
/* FAQ: questions on the left, the answer builds on the right */
.g2-faq{display:grid;grid-template-columns:minmax(0,420px) 1fr;gap:16px}
.g2-fql{position:relative;display:flex;flex-direction:column;gap:4px;padding:8px;border-radius:18px;background:var(--g2-card);box-shadow:var(--g2-shadow),0 0 0 1px var(--g2-line2) inset;isolation:isolate}
.g2-fq{position:relative;z-index:1;display:flex;align-items:center;gap:10px;width:100%;padding:14px 14px;border-radius:12px;text-align:left;font:700 14.5px/1.35 'Inter',sans-serif;color:#c9d5df;background:none;border:0;cursor:pointer;transition:color .15s}
.g2-fq span{margin-left:auto;color:var(--g2-dim);font-size:18px;transition:transform .2s,color .2s}
.g2-fq[aria-selected="true"]{color:#fff}
.g2-fq[aria-selected="true"] span{color:var(--g2-teal);transform:translateX(2px)}
.g2-fq:focus-visible{outline:2px solid rgba(var(--g2-teal-rgb),.8);outline-offset:1px}
.g2-fth{position:absolute;left:8px;right:8px;top:0;height:0;border-radius:12px;z-index:0;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.03));box-shadow:0 0 0 1px rgba(255,255,255,.07) inset,0 10px 26px -14px rgba(var(--g2-teal-rgb),.6);transition:transform .3s var(--g2-ease),height .3s var(--g2-ease)}
.g2-fa{padding:28px;border-radius:18px;background:radial-gradient(500px 200px at 0% 0%,rgba(var(--g2-teal-rgb),.1),transparent 70%),var(--g2-card);box-shadow:var(--g2-shadow),0 0 0 1px rgba(var(--g2-teal-rgb),.18) inset}
.g2-fa h3{margin:0;font:800 20px/1.3 'Satoshi','Inter',sans-serif;color:#fff}
.g2-fa p{margin:12px 0 0;font:500 15px/1.65 'Inter',sans-serif;color:#c4d0dc;max-width:62ch}
.g2-fa.swap h3,.g2-fa.swap p{animation:g2in .38s var(--g2-ease) both}
.g2-fa.swap p{animation-delay:.06s}
@keyframes g2in{from{opacity:0;transform:translateY(6px)}}
.g2-cta{margin-top:66px;display:flex;align-items:center;gap:24px;padding:30px;border-radius:24px;background:radial-gradient(700px 260px at 0% 0%,rgba(var(--g2-teal-rgb),.18),transparent 70%),var(--g2-card);box-shadow:var(--g2-shadow),0 0 0 1px rgba(var(--g2-teal-rgb),.28) inset}
.g2-cta h2{margin:0;font:900 26px 'Satoshi','Inter',sans-serif;color:#fff;letter-spacing:-.02em}
.g2-cta p{margin:6px 0 0;font:500 14.5px 'Inter',sans-serif;color:var(--g2-mut)}
.g2-cta a{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:8px;height:50px;padding:0 22px;border-radius:14px;font:800 15px 'Satoshi','Inter',sans-serif;color:#041512;background:linear-gradient(180deg,#3ef0db,#0FB5A8);box-shadow:0 0 0 1px rgba(31,216,196,.4),0 16px 40px -14px rgba(31,216,196,.9);transition:transform .15s var(--g2-ease)}
.g2-cta a:active{transform:translateY(1px)}
.g2 .rd{display:inline-flex;overflow:hidden;height:1em;line-height:1;vertical-align:-.06em}
.g2 .rd .col{display:flex;flex-direction:column;transition:transform .9s var(--g2-ease)}
.g2 .rd .col span,.g2 .rd span{font:inherit;color:inherit;height:1em;line-height:1}
@media(max-width:900px){
  .g2-feat,.g2-cats{grid-template-columns:1fr}
  .g2-rr{grid-template-columns:24px minmax(0,1fr) 36px 16px;gap:12px}
  .g2-rr .g2-tone,.g2-rr .g2-rt{display:none}
  .g2-tcs{grid-template-columns:repeat(4,minmax(0,1fr))}
  .g2-dests{grid-template-columns:repeat(2,minmax(0,1fr))}
  .g2-faq{grid-template-columns:1fr}
  .g2-fa{order:-1}
  .g2-facts a{margin-left:0;width:100%;padding-top:8px}
  .g2-cta{flex-direction:column;align-items:flex-start}
  .g2-cta a{margin-left:0}
  .g2-comp i span{display:none}
  .g2-comp .c span{display:inline}
}
@media(prefers-reduced-motion:reduce){.g2 *{animation:none!important;transition:none!important}}

/* ALIVE: the 24h replay. A card rises from the flag of the region each story broke in */
.rp-wrap{pointer-events:none}
.rp-chip{position:absolute;left:0;bottom:30px;width:100%;box-sizing:border-box;pointer-events:auto;cursor:pointer;display:flex;flex-direction:column;gap:5px;padding:9px 12px 10px;border-radius:12px;background:rgba(8,12,18,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 0 0 1px rgba(var(--pc),.45) inset,0 0 26px -6px rgba(var(--pc),.55),0 18px 40px -16px rgba(0,0,0,.9);transform:translateX(var(--sx,0));animation:rpIn .5s cubic-bezier(.2,1.3,.4,1) both}
.rp-chip.below{bottom:auto;top:30px}
.rp-chip::after{content:"";position:absolute;left:calc(50% - var(--sx,0px) - 5px);bottom:-5px;width:10px;height:10px;background:rgb(8,12,18);transform:rotate(45deg);box-shadow:1px 1px 0 0 rgba(var(--pc),.45)}
.rp-chip.below::after{bottom:auto;top:-5px;box-shadow:-1px -1px 0 0 rgba(var(--pc),.45)}
.rp-chip:hover{box-shadow:0 0 0 1px rgba(var(--pc),.8) inset,0 0 32px -4px rgba(var(--pc),.7),0 18px 40px -16px rgba(0,0,0,.9)}
.rp-src{display:flex;align-items:center;gap:6px;font:700 10.5px 'Inter',system-ui,sans-serif;color:#aeb9c7;letter-spacing:.2px;white-space:nowrap;overflow:hidden}
.rp-src>span{overflow:hidden;text-overflow:ellipsis}
.rp-src i{font-style:normal;color:#6f8096;font-weight:600;flex:none}
.rp-src i::before{content:"\00b7";margin-right:6px}
.rp-src em{margin-left:auto;flex:none;font:800 9px 'Inter',system-ui,sans-serif;letter-spacing:.8px;text-transform:uppercase;font-style:normal;color:#06120f;background:#1FD8C4;padding:2px 7px;border-radius:999px;box-shadow:0 0 12px rgba(31,216,196,.6)}
.rp-t{font:650 13px/1.35 'Inter',system-ui,sans-serif;color:#eef4f9;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}
.rp-go{color:rgb(var(--pc))}
@keyframes rpIn{0%{opacity:0;transform:translateX(var(--sx,0)) translateY(10px) scale(.94)}100%{opacity:1;transform:translateX(var(--sx,0))}}
.fm.rp-bump{animation:rpBump .7s cubic-bezier(.2,1.6,.4,1)}
@keyframes rpBump{0%{transform:scale(1)}35%{transform:scale(1.28)}100%{transform:scale(1)}}
.cwn-geo-stage .wi.rp-hot{animation:rpHot 2.8s ease-out}
@keyframes rpHot{0%{background:rgba(31,216,196,.18);box-shadow:inset 2px 0 0 #1FD8C4}100%{background:transparent;box-shadow:inset 2px 0 0 transparent}}
/* outlet logos beside source names: wire, ticker, reader, the cards and the region headlines below the map */
.ol-logo{display:inline-block;width:14px;height:14px;border-radius:3px;flex:none;vertical-align:-2px;margin-right:6px;object-fit:cover;box-shadow:0 0 0 1px rgba(255,255,255,.12)}
.rp-src .ol-logo,.g2-h span .ol-logo{margin-right:0}
.gm-reader .gmr-src .ol-logo{width:16px;height:16px;vertical-align:-4px;margin-right:8px}
.g2-h span{display:flex;align-items:center;gap:6px}
/* the replay control */
.cwn-geo-stage .rp-hud{position:absolute;left:50%;bottom:88px;transform:translateX(-50%);z-index:446;display:flex;align-items:center;gap:10px;padding:5px 14px 5px 5px;border-radius:999px;background:rgba(9,11,15,.80);-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);box-shadow:0 0 0 1px rgba(255,255,255,.09) inset,0 18px 40px -22px rgba(0,0,0,.95);font:700 11px 'Inter',system-ui,sans-serif;color:#c7d2de;white-space:nowrap;transition:opacity .25s}
.rp-pp{width:26px;height:26px;border-radius:50%;border:0;background:rgba(31,216,196,.14);box-shadow:0 0 0 1px rgba(31,216,196,.4) inset;display:grid;place-items:center;cursor:pointer;padding:0;transition:background .15s,transform .15s}
.rp-pp:hover{background:rgba(31,216,196,.26);transform:scale(1.06)}
.rp-pp i{display:block;width:8px;height:9px;border-left:2.5px solid #1FD8C4;border-right:2.5px solid #1FD8C4;box-sizing:border-box}
.rp-hud.paused .rp-pp i{width:0;height:0;border-left:8px solid #1FD8C4;border-right:0;border-top:5px solid transparent;border-bottom:5px solid transparent;margin-left:2px}
.rp-lab{color:#8b9bb0;letter-spacing:.3px}
.rp-hud.rest .rp-lab{color:#1FD8C4}
.rp-clock{font:800 12.5px 'Inter',system-ui,sans-serif;color:#fff;font-variant-numeric:tabular-nums;min-width:40px}
.rp-bar{position:relative;width:120px;height:4px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.rp-bar i{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:999px;background:linear-gradient(90deg,rgba(31,216,196,.4),#1FD8C4);box-shadow:0 0 10px rgba(31,216,196,.6);transition:width .6s cubic-bezier(.2,.8,.2,1)}
.rp-n{color:#6f8096;font-weight:600;font-variant-numeric:tabular-nums}
.whale-mode .rp-hud,.conflict-mode .rp-hud,.adopt-mode .rp-hud{opacity:0;pointer-events:none}
@media (max-width:900px){
  .cwn-geo-stage .rp-hud{left:8px;transform:none;bottom:92px;gap:8px;padding:4px 11px 4px 4px}
  .cwn-geo-stage:not(.mapview) .rp-hud{display:none}
  .rp-bar{width:64px}
  .rp-n{display:none}
  .rp-t{font-size:12px}
}
/* 4 Oct (his screenshot): the legend's "how it reads" card opens upward, straight into the replay control. The legend
   (and so its card) sits above the control, and the control steps aside while the card is open */
.cwn-geo-stage .legend{z-index:447}
.cwn-geo-stage:has(.legend .lmeth:hover) .rp-hud{opacity:0;pointer-events:none}

/* 5 Oct (his screenshot: the whale figure fell apart glyph by glyph): caption rules are child-only now, and a rolled
   figure's spans never take a caption's block layout */
.g2 [data-roll] span{margin:0}.g2 [data-roll]>span:not(.rd){display:inline}
