/* GetRosters — own design system.
   System fonts only (fast, no external fetch); craft comes from weight, tracking and a tight scale. */
:root{
  --bg:#ffffff; --surface:#f5f8fd; --surface-2:#eaf0fa; --surface-3:#e2eaf6;
  --ink:#0b1220; --ink-2:#2a3650; --muted:#566178; --faint:#8793a6;
  --line:#e4e9f2; --line-strong:#cdd7e6;
  --accent:#1452ff; --accent-2:#0b3ad1; --accent-ink:#ffffff; --accent-soft:#e9f0ff;
  --live:#1452ff; --coming:#9aa6ba; --checkout:#6d57ff; --land:#d9e1ee;
  --good:#0a8f5b; --warn:#b4610a;
  --r-sm:10px; --r:14px; --r-lg:20px; --r-xl:26px; --wrap:1080px;
  --shadow-1:0 1px 2px rgba(11,18,32,.05), 0 1px 3px rgba(11,18,32,.04);
  --shadow-2:0 2px 6px rgba(11,18,32,.06), 0 18px 40px rgba(11,18,32,.09);
  --shadow-3:0 10px 30px rgba(11,18,32,.10), 0 30px 70px rgba(11,18,32,.12);
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:"SFMono-Regular",ui-monospace,"Cascadia Mono","Segoe UI Mono",Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#070b16; --surface:#0f1626; --surface-2:#141d31; --surface-3:#1a2540;
    --ink:#eef3fc; --ink-2:#c6d1e6; --muted:#9aa7bf; --faint:#6c7a94;
    --line:#1f2a41; --line-strong:#2a3853;
    --accent:#6c99ff; --accent-2:#4f7dff; --accent-ink:#071022; --accent-soft:#15223e;
    --live:#6c99ff; --coming:#56627c; --checkout:#9d84ff; --land:#223150;
    --good:#2bbd82; --warn:#e0a24a;
    --shadow-1:0 1px 2px rgba(0,0,0,.5);
    --shadow-2:0 2px 6px rgba(0,0,0,.4), 0 18px 40px rgba(0,0,0,.5);
    --shadow-3:0 10px 30px rgba(0,0,0,.5), 0 30px 70px rgba(0,0,0,.6);
  }
}
:root[data-theme="dark"]{
  --bg:#070b16; --surface:#0f1626; --surface-2:#141d31; --surface-3:#1a2540;
  --ink:#eef3fc; --ink-2:#c6d1e6; --muted:#9aa7bf; --faint:#6c7a94;
  --line:#1f2a41; --line-strong:#2a3853;
  --accent:#6c99ff; --accent-2:#4f7dff; --accent-ink:#071022; --accent-soft:#15223e;
  --live:#6c99ff; --coming:#56627c; --checkout:#9d84ff; --land:#223150;
  --good:#2bbd82; --warn:#e0a24a;
  --shadow-1:0 1px 2px rgba(0,0,0,.5);
  --shadow-2:0 2px 6px rgba(0,0,0,.4), 0 18px 40px rgba(0,0,0,.5);
  --shadow-3:0 10px 30px rgba(0,0,0,.5), 0 30px 70px rgba(0,0,0,.6);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0}
body{font:400 16px/1.6 var(--sans); color:var(--ink); background:var(--bg); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 20px}
a{color:var(--accent); text-underline-offset:2px; text-decoration-thickness:1px}
h1,h2,h3{letter-spacing:-.025em; line-height:1.1; margin:0 0 .5em; color:var(--ink)}
h1{font-size:clamp(30px,5vw,50px); font-weight:800; letter-spacing:-.035em}
h2{font-size:clamp(22px,3vw,30px); font-weight:770; margin-top:0}
h3{font-size:17px; font-weight:680}
p{margin:0 0 1em}
small{color:var(--muted)}
hr{border:0; border-top:1px solid var(--line); margin:36px 0}
::selection{background:color-mix(in srgb,var(--accent) 24%, transparent)}
:focus-visible{outline:2.5px solid var(--accent); outline-offset:2px; border-radius:4px}

/* ---------- header / footer ---------- */
header.site{position:sticky; top:0; z-index:30; background:color-mix(in srgb, var(--bg) 82%, transparent); backdrop-filter:saturate(1.3) blur(10px); border-bottom:1px solid var(--line)}
.bar{display:flex; align-items:center; justify-content:space-between; height:64px; gap:16px}
.brand{display:flex; align-items:center; gap:10px; font-weight:800; font-size:19px; color:var(--ink); text-decoration:none; letter-spacing:-.03em}
.brand .mk{display:block; flex:0 0 auto}
.brand b{font-weight:800}
.brand .ros{color:var(--accent)}
nav.top{display:flex; gap:22px; align-items:center}
nav.top a{color:var(--muted); text-decoration:none; font-size:15px; font-weight:560}
nav.top a:hover{color:var(--ink)}
nav.top a.cta{background:var(--accent); color:var(--accent-ink); padding:9px 16px; border-radius:10px; font-weight:680; box-shadow:var(--shadow-1)}
nav.top a.cta:hover{background:var(--accent-2); color:#fff}
footer.site{border-top:1px solid var(--line); margin-top:72px; padding:38px 0 56px; color:var(--muted); font-size:14.5px; background:var(--surface)}
footer.site a{color:var(--muted); text-decoration:none} footer.site a:hover{color:var(--ink)}
.foot-cols{display:flex; gap:48px; flex-wrap:wrap; justify-content:space-between}
.foot-cols nav{display:flex; flex-direction:column; gap:9px}
/* every live country, from the config (11-01: fourteen), in two columns so the footer stays short */
.foot-cols nav.foot-countries{display:grid; grid-template-columns:repeat(2,max-content); gap:9px 32px; align-content:start}
.foot-countries strong{grid-column:1/-1}
.foot-brand{display:flex; align-items:center; gap:9px; font-weight:800; color:var(--ink); letter-spacing:-.03em; margin-bottom:8px}
/* directory badges (home footer): one quiet row; fixed 40px height so the lazy images never shift the page */
.badges{display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin-top:18px; opacity:.85}
.badges-lab{font-size:12.5px; color:var(--faint)}
.badges a{display:inline-flex; line-height:0}
.badges img{height:40px; width:auto}

/* ---------- generic sections / bands ---------- */
.section{padding:40px 0}
.band{margin:20px 0; padding:34px; border-radius:var(--r-xl); background:var(--surface); border:1px solid var(--line)}
.band.plain{background:transparent; border:0; padding:34px 0}
.kicker{display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:730; letter-spacing:.08em; text-transform:uppercase; color:var(--accent)}
.kicker::before{content:""; width:16px; height:2px; border-radius:2px; background:var(--accent); display:inline-block}
.eyebrow{display:inline-block; font-size:12.5px; font-weight:730; letter-spacing:.07em; text-transform:uppercase; color:var(--accent); background:var(--accent-soft); padding:6px 12px; border-radius:999px; margin-bottom:16px}
.lede{font-size:clamp(16.5px,1.6vw,19.5px); color:var(--ink-2); max-width:60ch; line-height:1.55}
.section-head{max-width:64ch; margin-bottom:22px}
.section-head h2{margin:10px 0 .3em}
.section-head p{color:var(--muted); margin:0}

/* ---------- buttons ---------- */
.btn{display:inline-flex; align-items:center; gap:8px; background:var(--accent); color:var(--accent-ink); text-decoration:none; font-weight:700; padding:13px 22px; border-radius:12px; font-size:15.5px; border:0; cursor:pointer; box-shadow:var(--shadow-1); transition:transform .08s, background .15s, box-shadow .15s}
.btn:hover{background:var(--accent-2); color:#fff; box-shadow:var(--shadow-2); transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn.ghost{background:transparent; color:var(--ink); border:1.5px solid var(--line-strong); box-shadow:none; font-weight:640}
.btn.ghost:hover{background:var(--surface-2); color:var(--ink); border-color:var(--accent)}
.btn.lg{padding:15px 26px; font-size:16.5px}
.cta-row{display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin:8px 0 0}

/* ---------- hero (shared bits) ---------- */
.home{padding-top:6px}
.hero{padding:40px 0 12px}
.hero h1{margin-bottom:.35em; max-width:17ch}
.trustrow{display:flex; flex-wrap:wrap; gap:8px 10px; margin:22px 0 0; list-style:none; padding:0}
.trustrow li{display:inline-flex; align-items:center; gap:7px; font-size:13.5px; color:var(--muted); background:var(--surface); border:1px solid var(--line); padding:6px 11px; border-radius:999px}
.trustrow li svg{flex:0 0 auto; color:var(--good)}

/* Direction A — light editorial split */
.hero.dir-a{display:grid; grid-template-columns:1.04fr .96fr; gap:46px; align-items:center; padding:48px 0 30px}
.hero.dir-a .hero-art{justify-self:end; width:100%; max-width:520px}

/* Direction B — deep-ink confident band */
.hero.dir-b{position:relative; overflow:hidden; margin:18px 0 8px; padding:clamp(28px,4vw,54px); border-radius:var(--r-xl);
  background:radial-gradient(900px 420px at 80% 8%, rgba(79,125,255,.35), transparent 62%), linear-gradient(158deg,#0d1836 0%,#0a1024 60%,#090d1c 100%);
  color:#eaf0fb; display:grid; grid-template-columns:1.04fr .96fr; gap:44px; align-items:center;
  box-shadow:var(--shadow-3), inset 0 0 0 1px rgba(255,255,255,.06)}
.hero.dir-b::before{content:""; position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,.07) 1px, transparent 1.4px); background-size:24px 24px;
  -webkit-mask:radial-gradient(600px 300px at 20% 30%, #000 0%, transparent 72%); mask:radial-gradient(600px 300px at 20% 30%, #000 0%, transparent 72%); pointer-events:none}
.hero.dir-b > *{position:relative}
.hero.dir-b h1{color:#fff; max-width:15ch}
.hero.dir-b .lede{color:#b7c3dd}
.hero.dir-b .eyebrow{background:rgba(108,153,255,.16); color:#aec4ff}
.hero.dir-b .btn.ghost{color:#eef3fc; border-color:rgba(255,255,255,.26)}
.hero.dir-b .btn.ghost:hover{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.5)}
.hero.dir-b .trustrow li{background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.14); color:#c3cee4}
.hero.dir-b .hero-art{justify-self:end; width:100%; max-width:520px}
.hero.dir-b .big-figure{display:flex; align-items:baseline; gap:12px; margin:4px 0 18px}
.hero.dir-b .big-figure .fig{font-size:clamp(44px,6vw,72px); font-weight:830; letter-spacing:-.04em; line-height:.95; color:#fff; font-variant-numeric:tabular-nums}
.hero.dir-b .big-figure .lab{font-size:15px; color:#aab7d3; max-width:18ch}

/* ---------- file-preview card (the proof) ---------- */
.fileprev{border:1px solid var(--line-strong); border-radius:var(--r-lg); background:var(--bg); box-shadow:var(--shadow-2); overflow:hidden; max-width:100%}
.fp-bar{display:flex; align-items:center; gap:10px; padding:11px 15px; background:var(--surface); border-bottom:1px solid var(--line)}
.fp-dots{display:inline-flex; gap:6px}
.fp-dots i{width:10px; height:10px; border-radius:50%; background:var(--line-strong); display:block}
.fp-name{font:600 13px/1 var(--mono); color:var(--muted); letter-spacing:-.01em}
.fp-rows{margin-left:auto; font:700 12.5px/1 var(--mono); color:var(--accent); background:var(--accent-soft); padding:5px 9px; border-radius:7px}
.fp-table{overflow-x:auto}
.fp-table table{border-collapse:collapse; width:100%; font-size:13px}
.fp-table th{font:600 11px/1 var(--sans); text-transform:uppercase; letter-spacing:.04em; color:var(--faint); text-align:left; padding:9px 14px; background:var(--surface); border-bottom:1px solid var(--line)}
.fp-table td{padding:9px 14px; border-bottom:1px solid var(--line); white-space:nowrap; color:var(--ink-2)}
.fp-table td.nm{color:var(--ink); font-weight:600}
.fp-table td.mask{font-family:var(--mono); font-size:12px; color:var(--faint)}
.fp-table tr:last-child td{border-bottom:0}
.fp-foot{padding:10px 15px; font-size:12.5px; color:var(--muted); background:var(--surface); border-top:1px solid var(--line); display:flex; align-items:center; gap:8px}
.fp-foot svg{color:var(--good); flex:0 0 auto}
/* file preview sitting on the dark hero */
.hero.dir-b .fileprev{background:#0c142e; border-color:rgba(255,255,255,.12); box-shadow:0 30px 70px rgba(0,0,0,.5)}
.hero.dir-b .fp-bar,.hero.dir-b .fp-foot{background:#0a1126; border-color:rgba(255,255,255,.08)}
.hero.dir-b .fp-name{color:#8ea0c4}
.hero.dir-b .fp-rows{background:rgba(108,153,255,.18); color:#bcd0ff}
.hero.dir-b .fp-table th{background:#0a1126; color:#7f90b4; border-color:rgba(255,255,255,.08)}
.hero.dir-b .fp-table td{color:#c3cee4; border-color:rgba(255,255,255,.06)}
.hero.dir-b .fp-table td.nm{color:#fff}
.hero.dir-b .fp-table td.mask{color:#6f80a4}
.hero.dir-b .fp-foot{color:#9aa7c4}

/* ---------- markets: map panel + country list ---------- */
.markets-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:30px; align-items:stretch}
.mappanel{position:relative; border:1px solid var(--line); border-radius:var(--r-lg); padding:12px 12px 6px; overflow:hidden;
  background:radial-gradient(520px 300px at 72% 64%, color-mix(in srgb,var(--accent) 16%, transparent), transparent 70%), var(--surface); display:flex; flex-direction:column}
.home-b .mappanel{background:radial-gradient(520px 300px at 72% 64%, rgba(108,153,255,.28), transparent 68%), linear-gradient(160deg,#0d1836,#090d1c); border-color:rgba(255,255,255,.1)}
.home-b .mappanel .maplegend{color:#aab7d3}
.home-b .mapcap{color:#c3cee4}
.mapwrap{flex:1; display:flex; align-items:center; justify-content:center; min-height:0}
svg.worldmap{display:block; width:100%; height:auto}
svg.worldmap path{fill:var(--land); stroke:var(--bg); stroke-width:.4; transition:fill .15s}
.home-b svg.worldmap path{stroke:#0b1226}
svg.worldmap a{cursor:pointer}
svg.worldmap .m-live{fill:var(--live); filter:drop-shadow(0 0 7px color-mix(in srgb,var(--accent) 80%, transparent))}
svg.worldmap .m-coming{fill:none; stroke:var(--coming); stroke-width:1.1}
svg.worldmap .m-checkout{fill:color-mix(in srgb,var(--checkout) 20%, var(--bg)); stroke:var(--checkout); stroke-width:.7; paint-order:stroke}
.home-b svg.worldmap .m-checkout{fill:rgba(157,132,255,.22)}
svg.worldmap a:hover .m-live,svg.worldmap a:focus .m-live{fill:color-mix(in srgb,var(--live) 75%, #fff)}
svg.worldmap a:hover .m-checkout,svg.worldmap a:focus .m-checkout{fill:color-mix(in srgb,var(--checkout) 42%, var(--bg))}
.mapcap{font-size:13.5px; color:var(--muted); margin:10px 2px 0; text-align:center}
.mapcap b{color:var(--accent); font-weight:730; font-variant-numeric:tabular-nums}
.maplegend{display:flex; flex-wrap:wrap; gap:14px; margin:12px 4px 2px; font-size:12.5px; color:var(--muted); justify-content:center}
.maplegend span{display:inline-flex; align-items:center; gap:7px}
.maplegend i{width:11px; height:11px; border-radius:3px; display:inline-block; border:1px solid transparent}

.marketlist{display:grid; grid-template-columns:repeat(auto-fit,minmax(188px,1fr)); gap:14px; margin-top:20px}
.featured{display:flex; align-items:center; gap:16px; border:1px solid var(--line-strong); border-radius:var(--r-lg); padding:20px; text-decoration:none; color:var(--ink); background:var(--bg); box-shadow:var(--shadow-1); transition:border-color .15s, box-shadow .15s, transform .08s}
.featured:hover{border-color:var(--accent); box-shadow:var(--shadow-2); transform:translateY(-1px)}
.featured .flag{flex:0 0 auto}
.featured .f-main{flex:1; min-width:0}
.featured .f-name{display:flex; align-items:center; gap:9px; font-weight:780; font-size:18px; letter-spacing:-.02em}
.featured .f-sub{font-size:13.5px; color:var(--muted); margin-top:3px}
.featured .f-cnt{text-align:right}
.featured .f-cnt .num{font-size:30px; font-weight:820; letter-spacing:-.03em; color:var(--accent); font-variant-numeric:tabular-nums; line-height:1}
.featured .f-cnt .u{font-size:12px; color:var(--muted); display:block; margin-top:2px}
.mini-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.mcard{display:flex; flex-direction:column; gap:7px; border:1px solid var(--line); border-radius:var(--r); padding:15px; text-decoration:none; color:var(--ink); background:var(--surface); min-height:104px}
a.mcard:hover{border-color:var(--accent)}
.mcard .m-top{display:flex; align-items:center; gap:8px}
.mcard .m-name{font-weight:700; font-size:15px; letter-spacing:-.01em}
.mcard .m-cnt{font-size:27px; font-weight:820; letter-spacing:-.03em; color:var(--accent); font-variant-numeric:tabular-nums; line-height:1}
.mcard .m-cnt.soon{font-size:14px; font-weight:650; color:var(--coming)}
.mcard .m-foot{margin-top:auto; font-size:12.5px; color:var(--muted)}
.nowrap{white-space:nowrap}

/* flags */
.flag{width:26px; height:18px; border-radius:3px; overflow:hidden; display:inline-block; box-shadow:inset 0 0 0 1px rgba(11,18,32,.12); vertical-align:middle}
.flag svg{display:block; width:100%; height:100%}
.featured .flag{width:40px; height:27px; border-radius:5px}

/* pills */
.tag{font-size:11px; font-weight:730; letter-spacing:.04em; text-transform:uppercase; padding:3px 9px; border-radius:999px; white-space:nowrap; display:inline-block}
.tag.live{color:var(--accent); background:var(--accent-soft)}
.tag.coming{color:var(--muted); background:var(--surface-3)}
.tag.checkout{color:var(--checkout); background:color-mix(in srgb, var(--checkout) 14%, transparent)}
/* cards below the map always follow the page theme (the dark panel is the map only) */

/* ---------- "how it works" display stats ---------- */
.howgrid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:8px 0 0}
.howcard{border:1px solid var(--line); border-radius:var(--r-lg); padding:22px; background:var(--bg)}
.howcard .hn{font-size:clamp(26px,3vw,34px); font-weight:820; letter-spacing:-.03em; color:var(--ink); font-variant-numeric:tabular-nums; line-height:1}
.howcard .ht{font-weight:700; margin:12px 0 4px; font-size:15px}
.howcard .hd{font-size:13.5px; color:var(--muted); line-height:1.5}

/* ---------- stat lead (data pages) ---------- */
.stat-lead{display:flex; flex-wrap:wrap; align-items:flex-end; gap:10px 26px; margin:8px 0 4px}
.stat-lead .big{font-size:clamp(44px,8vw,76px); font-weight:830; letter-spacing:-.04em; line-height:.95; color:var(--ink); font-variant-numeric:tabular-nums}
.stat-lead .big span{color:var(--accent)}
.stat-lead .unit{font-size:16px; color:var(--muted); max-width:30ch}
.asof{font-size:14px; color:var(--muted); margin-top:14px}
.asof b{color:var(--ink); font-weight:650}
.statgrid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:24px 0}
.stat{background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:16px 18px}
.stat .n{font-size:25px; font-weight:800; letter-spacing:-.02em; font-variant-numeric:tabular-nums}
.stat .l{font-size:13px; color:var(--muted); margin-top:3px; line-height:1.4}

/* ---------- bars ---------- */
.bars{margin:12px 0 0}
.barrow{display:grid; grid-template-columns:1fr; gap:5px; margin:0 0 13px}
.barrow .lab{display:flex; justify-content:space-between; font-size:14.5px; gap:12px}
.barrow .lab .v{color:var(--muted); font-variant-numeric:tabular-nums}
.track{height:9px; border-radius:999px; background:var(--surface-2); overflow:hidden}
.track > i{display:block; height:100%; border-radius:999px; background:var(--accent)}
.barrow.alt .track > i{background:var(--checkout)}

/* ---------- tables ---------- */
.tablewrap{overflow-x:auto; border:1px solid var(--line); border-radius:var(--r)}
table{border-collapse:collapse; width:100%; font-size:14.5px}
th,td{text-align:left; padding:11px 15px; border-bottom:1px solid var(--line); white-space:nowrap}
th{font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); font-weight:680; background:var(--surface)}
tbody tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right; font-variant-numeric:tabular-nums}
.chips{display:flex; flex-wrap:wrap; gap:8px; margin:10px 0}
.chip{font-size:13px; background:var(--surface); border:1px solid var(--line); border-radius:999px; padding:6px 12px; color:var(--muted)}

/* ---------- sample card (data pages) ---------- */
.sample{border:1px solid var(--line-strong); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-2)}
.sample .hd{display:flex; justify-content:space-between; align-items:center; gap:10px; padding:13px 17px; background:var(--surface); border-bottom:1px solid var(--line); font-size:13.5px; color:var(--muted)}
.sample table td{font-variant-numeric:tabular-nums}
.masked{color:var(--faint); font-family:var(--mono); font-size:13px}

/* ---------- buy ---------- */
.buy{display:flex; flex-wrap:wrap; align-items:center; gap:16px 22px; padding:24px; border:1px solid var(--line-strong); border-radius:var(--r-lg); background:var(--surface); box-shadow:var(--shadow-1)}
.price{font-size:32px; font-weight:820; letter-spacing:-.025em}
.price small{display:block; font-size:12.5px; font-weight:500; color:var(--muted)}
.placeholder-note{font-size:12.5px; color:var(--warn); font-weight:650}

/* ---------- forms ---------- */
.field{display:flex; flex-direction:column; gap:7px; margin:0 0 15px; max-width:430px}
.field label{font-size:14px; font-weight:600}
.field input,.field select{font:inherit; padding:12px 14px; border:1px solid var(--line-strong); border-radius:11px; background:var(--bg); color:var(--ink)}
.field input:focus{border-color:var(--accent); outline:none; box-shadow:0 0 0 3px var(--accent-soft)}
.notice{padding:13px 15px; border-radius:11px; background:var(--surface); border:1px solid var(--line); font-size:14px; margin:12px 0}

.prose{max-width:74ch}
.prose h2{margin-top:32px}
.muted{color:var(--muted)}
.small{font-size:13px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

/* ---------- final CTA ---------- */
.cta-band{margin:28px 0 0; padding:clamp(28px,4vw,46px); border-radius:var(--r-xl); text-align:center;
  background:radial-gradient(700px 300px at 50% 0%, var(--accent-soft), transparent 70%), var(--surface); border:1px solid var(--line)}
.cta-band h2{margin-bottom:.3em}
.cta-band p{color:var(--muted); max-width:52ch; margin:0 auto 22px}
.cta-band .cta-row{justify-content:center}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .hero.dir-a,.hero.dir-b{grid-template-columns:minmax(0,1fr); gap:28px}
  .hero.dir-a .hero-art,.hero.dir-b .hero-art{justify-self:stretch; max-width:none; order:2}
  .markets-grid{grid-template-columns:1fr}
  .howgrid{grid-template-columns:repeat(2,1fr)}
  .statgrid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  nav.top{gap:10px}
  nav.top a:not(.cta){display:none}
  .mini-grid{grid-template-columns:1fr}
  .featured{flex-wrap:wrap}
  .featured .f-cnt{text-align:left; width:100%}
  .section{padding:30px 0}
  .band{padding:22px}
  h1{font-size:clamp(28px,8vw,38px)}
  /* keep the file-preview card inside the viewport: drop Email + Role on phones */
  .fp-table th:nth-child(4),.fp-table td:nth-child(4),.fp-table th:nth-child(5),.fp-table td:nth-child(5){display:none}
}

/* ---------- interior region cards (AU states grid) ---------- */
.countries{display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:14px; margin:4px 0}
.ccard{display:flex; justify-content:space-between; align-items:center; gap:12px; border:1px solid var(--line); border-radius:var(--r); padding:16px; text-decoration:none; color:var(--ink); background:var(--surface); transition:border-color .15s, transform .08s}
.ccard:hover{border-color:var(--accent); transform:translateY(-1px)}
.ccard .nm{font-weight:720; letter-spacing:-.01em}
.ccard .ct{font-size:12.5px; color:var(--muted)}
.ccard .cnt{font-size:22px; font-weight:820; letter-spacing:-.02em; color:var(--accent); font-variant-numeric:tabular-nums}

/* ---------- interactive map (shared, AL technique) ---------- */
.grmap{position:relative; width:100%}
.grmap .mapwrap{position:relative}
.grmap svg.worldmap a.gc{cursor:pointer; outline:none}
.grmap svg.worldmap a.gc.m-live path{fill:var(--live); filter:drop-shadow(0 0 6px color-mix(in srgb,var(--accent) 75%, transparent)); transition:fill .15s}
.grmap svg.worldmap a.gc.m-coming path{fill:none; stroke:var(--coming); stroke-width:1.1; stroke-dasharray:2.4 2}
.grmap svg.worldmap a.gc.m-live.on path,.grmap svg.worldmap a.gc.m-live:focus-visible path{fill:color-mix(in srgb,var(--live) 72%, #fff)}
.grmap svg.worldmap a.gc.m-coming.on path{fill:color-mix(in srgb,var(--coming) 30%, transparent); stroke-dasharray:none}
.grmap .grmap-hi{fill:none; stroke:var(--accent); stroke-width:1.4; opacity:0; pointer-events:none; filter:drop-shadow(0 0 7px color-mix(in srgb,var(--accent) 60%, transparent))}
.grmap.js .grmap-hi.lift{opacity:1; animation:grmap-pop .2s ease}
@keyframes grmap-pop{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion: reduce){.grmap.js .grmap-hi.lift{animation:none}}
/* map labels / markers */
.maplabels .lb rect{fill:var(--accent)}
.maplabels .lb.coming rect{fill:var(--coming)}
.maplabels .lb text{fill:#fff; font:800 11px/1 var(--sans); text-anchor:middle; letter-spacing:.02em}
.maplabels .mk-pt circle{fill:var(--live); stroke:var(--bg); stroke-width:1.4}
.maplabels .mk-pt.coming circle{fill:none; stroke:var(--coming); stroke-width:1.6}
.home-b .maplabels .lb text{fill:#fff}
.home-b .maplabels .mk-pt circle{stroke:#0b1226}
/* hover/focus/tap card */
.grmap-card{position:absolute; z-index:12; min-width:210px; max-width:260px; background:var(--bg); border:1px solid var(--line-strong); border-radius:var(--r); box-shadow:var(--shadow-3); padding:14px 15px; pointer-events:auto}
.grmap:not(.js) .grmap-card{display:none}
.grmap-card[hidden]{display:none}
.gcard-head{display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-bottom:8px}
.gcard-name{font-weight:780; font-size:16px; letter-spacing:-.02em; margin:0}
.gcard-facts{font-size:13.5px; color:var(--muted); margin:0}
.gcard-facts b{color:var(--ink)}
.gcard-go{margin:11px 0 0}
.gcard-btn{display:inline-block; font-size:13.5px; font-weight:680; color:var(--accent); text-decoration:none}
.gcard-btn:hover{text-decoration:underline}
/* narrow: card becomes a panel under the map */
@media (max-width:760px){
  .grmap-card{position:static; max-width:none; margin-top:12px; box-shadow:var(--shadow-1)}
}
/* legend + skip */
.grmap .maplegend{display:flex; gap:16px; justify-content:center; list-style:none; padding:0; margin:12px 0 2px; font-size:12.5px; color:var(--muted)}
.grmap .maplegend li{display:inline-flex; align-items:center; gap:7px}
.grmap .maplegend i{width:12px; height:12px; border-radius:3px; display:inline-block}
.maplegend .sw-live{background:var(--live); box-shadow:0 0 6px color-mix(in srgb,var(--accent) 70%, transparent)}
.maplegend .sw-coming{background:transparent; border:1.4px dashed var(--coming)}
.home-b .grmap .maplegend{color:#aab7d3}
.gm-skip{position:absolute; left:8px; top:8px; z-index:14}
.gm-skip:focus{clip:auto; width:auto; height:auto; padding:8px 12px; background:var(--accent); color:#fff; border-radius:8px}
/* table row flash when a region's map shape is tapped (state SA4 maps) */
.row-flash{animation:row-flash 1.6s ease}
@keyframes row-flash{0%,100%{background:transparent}20%{background:var(--accent-soft)}}
@media (prefers-reduced-motion: reduce){.row-flash{animation:none; background:var(--accent-soft)}}

/* ======== Equal Earth world map (committed geometry; brief tokens, 28 Oct) ======== */
:root{--map-land:#e3e8f1;--map-dot:#9aa9c2;--map-live:#1452ff;--map-live-hover:#0b3ad1;--map-soon:#99b3ff;--map-edge:#ffffff}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--map-land:#223150;--map-dot:#415476;--map-live:#6c99ff;--map-live-hover:#9bbaff;--map-soon:#3b5aa8;--map-edge:#070b16}}
:root[data-theme="dark"]{--map-land:#223150;--map-dot:#415476;--map-live:#6c99ff;--map-live-hover:#9bbaff;--map-soon:#3b5aa8;--map-edge:#070b16}
.home-b{--map-edge:#0b1226}

.grmap svg.worldmap{display:block;width:100%;height:auto;overflow:visible}
.grmap svg.worldmap .m-dots{fill:none;stroke:var(--map-dot);stroke-width:9;stroke-linecap:round;pointer-events:none}
.grmap svg.worldmap a.gc{cursor:pointer;outline:none}
.grmap svg.worldmap a.gc.m-live>path{fill:var(--map-live);stroke:var(--map-edge);stroke-width:1.6;stroke-linejoin:round;transition:fill .15s}
.grmap svg.worldmap a.gc.m-live.on>path,.grmap svg.worldmap a.gc.m-live:focus-visible>path{fill:var(--map-live-hover)}
.grmap svg.worldmap a.gc.m-soon .soon-hit{fill:transparent;stroke:transparent;stroke-width:20;pointer-events:stroke}
.grmap svg.worldmap a.gc.m-soon .soon-dots{fill:none;stroke:var(--map-soon);stroke-width:9;stroke-linecap:round;pointer-events:none;transition:stroke .15s}
.grmap svg.worldmap a.gc.m-soon.on .soon-dots{stroke:var(--map-live)}
.grmap svg.worldmap .grmap-hi{fill:none;stroke:var(--ink);stroke-width:2.5;opacity:0;pointer-events:none}
.grmap.js svg.worldmap .grmap-hi.lift{opacity:1}
/* dark glow on live shapes only */
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .grmap svg.worldmap a.gc.m-live>path{filter:drop-shadow(0 0 10px color-mix(in oklab,var(--map-live) 40%, transparent))}}
:root[data-theme="dark"] .grmap svg.worldmap a.gc.m-live>path{filter:drop-shadow(0 0 10px color-mix(in oklab,var(--map-live) 40%, transparent))}
/* count pills */
.grmap .pills{pointer-events:none}
.grmap .pills-ph{display:none}
.grmap .pill.ph .lead{stroke-width:4}
.grmap .pill.ph .pbox{stroke-width:3}
.grmap .pill.ph text{font:700 56px var(--sans);text-anchor:middle}
/* SG and HK: a lit dot on the city (the land itself is a few pixels) */
.grmap svg.worldmap a.gc.m-live>.m-pt{fill:var(--map-live);stroke:var(--map-edge);stroke-width:3;transform-box:fill-box;transform-origin:center;transition:fill .15s}
.grmap svg.worldmap a.gc.m-live.on>.m-pt,.grmap svg.worldmap a.gc.m-live:focus-visible>.m-pt{fill:var(--map-live-hover)}
.grmap .pill .lead{stroke:var(--map-live);stroke-width:1.4;opacity:.45}
.grmap .pill.soon .lead{stroke:var(--map-soon)}
.grmap .pill .pbox{fill:var(--bg);stroke:var(--line-strong);stroke-width:1.4}
.grmap .pill text{fill:var(--ink);font:700 30px var(--sans);letter-spacing:-.01em}
.grmap .pill.soon text{fill:var(--muted)}
.grmap .pill .pdot{fill:var(--map-live)} .grmap .pill.soon .pdot{fill:var(--map-soon)}
.grmap .pill .pring{fill:var(--map-live)} .grmap .pill.soon .pring{fill:var(--map-soon)}
.home-b .grmap .pill .pbox{fill:#0c142e;stroke:rgba(255,255,255,.18)}

/* ======== AU state choropleth (committed Albers geometry) ======== */
:root{--q1:#dce7ff;--q2:#aac6ff;--q3:#6f9bff;--q4:#3568ef;--q5:#1140cc;--choro-edge:#ffffff}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--q1:#2c3f68;--q2:#38589c;--q3:#4f7fe0;--q4:#6c99ff;--q5:#a8c3ff;--choro-edge:color-mix(in srgb,var(--ink) 24%, transparent)}}
:root[data-theme="dark"]{--q1:#2c3f68;--q2:#38589c;--q3:#4f7fe0;--q4:#6c99ff;--q5:#a8c3ff;--choro-edge:color-mix(in srgb,var(--ink) 24%, transparent)}
.grmap svg.statemap{display:block;width:100%;height:auto;max-width:600px;margin:0 auto;overflow:visible}
.grmap svg.statemap a.gc{cursor:pointer;outline:none}
.grmap svg.statemap a.gc>path{stroke:var(--choro-edge);stroke-width:1.4;stroke-linejoin:round;transition:fill .15s,filter .15s}
.grmap svg.statemap a.gc.q1>path{fill:var(--q1)}
.grmap svg.statemap a.gc.q2>path{fill:var(--q2)}
.grmap svg.statemap a.gc.q3>path{fill:var(--q3)}
.grmap svg.statemap a.gc.q4>path{fill:var(--q4)}
.grmap svg.statemap a.gc.q5>path{fill:var(--q5)}
.grmap svg.statemap a.gc.on>path,.grmap svg.statemap a.gc:focus-visible>path{fill:var(--accent);filter:drop-shadow(0 0 6px color-mix(in srgb,var(--accent) 55%, transparent))}
.grmap svg.statemap .st-label{fill:var(--ink);font:700 34px var(--sans);text-anchor:middle;letter-spacing:-.01em;paint-order:stroke;stroke:var(--bg);stroke-width:4px;stroke-linejoin:round;pointer-events:none}
.grmap svg.statemap .st-lead{stroke:var(--ink);stroke-width:1.4;opacity:.45;pointer-events:none}
@media (max-width:760px){.grmap svg.statemap .st-act{display:none}}
.grmap svg.statemap .grmap-hi{fill:none;stroke:var(--ink);stroke-width:2.5;opacity:0;pointer-events:none}
.grmap.js svg.statemap .grmap-hi.lift{opacity:1}
/* county choropleth (hand-built US state pages): reuses statemap q1..q5 + highlight */
.grmap svg.ctymap{max-width:560px;max-height:640px}
.grmap svg.ctymap .grmap-hi{stroke-width:1.8}
.grmap svg.ctymap .cty-none{fill:color-mix(in srgb,var(--ink) 6%, transparent);stroke:var(--choro-edge);stroke-width:1;pointer-events:none}
/* UK (portrait, 12 ITL1 regions) and Ireland (counties) choropleths reuse the .statemap style set */
.grmap svg.ukmap{max-width:380px;max-height:560px}
.grmap svg.iemap{max-width:460px;max-height:520px}
.grmap svg.nzmap{max-width:430px;max-height:560px}
.grmap svg.ukmap .grmap-hi,.grmap svg.iemap .grmap-hi,.grmap svg.nzmap .grmap-hi{stroke-width:1.8}
.grmap svg.ukmap .cty-none,.grmap svg.iemap .cty-none,.grmap svg.nzmap .cty-none{fill:color-mix(in srgb,var(--ink) 6%, transparent);stroke:var(--choro-edge);stroke-width:1;pointer-events:none}
/* county list: a compact table that scrolls inside a fixed box on every screen (never card-stacks, never overflows) */
.county-scroll{max-height:440px;overflow:auto;border:1px solid var(--line);border-radius:var(--r-lg)}
.county-scroll .ctytable{width:100%}
.county-scroll .ctytable th[scope=col]{position:sticky;top:0;z-index:1}
.county-scroll .ctytable td.num,.county-scroll .ctytable th.num{white-space:nowrap}
.st-link{color:var(--accent);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--accent) 45%, transparent)}
.st-link:hover{border-bottom-color:var(--accent)}
.subhead{font-size:15px;font-weight:720;color:var(--ink);margin:22px 0 10px}
/* plain (non-buytable) data tables keep horizontal scroll on phone instead of overflowing the page */
.tablewrap.datascroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--r-lg)}
.maplegend.choro{flex-wrap:wrap}
.maplegend.choro .choro-key{display:inline-flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:center}
.maplegend.choro .choro-ramp{display:inline-flex;gap:0;border-radius:4px;overflow:hidden;border:1px solid var(--line)}
.maplegend.choro .choro-ramp i{width:22px;height:12px}
.maplegend.choro .choro-cap{color:var(--faint)}
.marketlist.au-states{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}

/* ======== US maps: Albers composite (desktop) + tile-grid cartogram (<=640) + buy table ======== */
.usmaps{position:relative}
.grmap svg.usmap,.grmap svg.tilegrid{display:block;width:100%;height:auto;overflow:visible}
.grmap svg.usmap{max-width:860px;margin:0 auto}
.grmap svg.tilegrid{max-width:520px;margin:0 auto}
.grmap svg.usmap a.gc,.grmap svg.tilegrid a.gc{cursor:pointer;outline:none}
.grmap svg.usmap a.gc>path,.grmap svg.tilegrid a.gc>path{stroke:var(--choro-edge);stroke-width:1.4;stroke-linejoin:round;transition:fill .15s,filter .15s}
.grmap svg.usmap a.gc.q1>path,.grmap svg.tilegrid a.gc.q1>path{fill:var(--q1)}
.grmap svg.usmap a.gc.q2>path,.grmap svg.tilegrid a.gc.q2>path{fill:var(--q2)}
.grmap svg.usmap a.gc.q3>path,.grmap svg.tilegrid a.gc.q3>path{fill:var(--q3)}
.grmap svg.usmap a.gc.q4>path,.grmap svg.tilegrid a.gc.q4>path{fill:var(--q4)}
.grmap svg.usmap a.gc.q5>path,.grmap svg.tilegrid a.gc.q5>path{fill:var(--q5)}
.grmap svg.usmap a.gc.on>path,.grmap svg.usmap a.gc:focus-visible>path,.grmap svg.tilegrid a.gc.on>path,.grmap svg.tilegrid a.gc:focus-visible>path{fill:var(--accent);filter:drop-shadow(0 0 6px color-mix(in srgb,var(--accent) 55%, transparent))}
.grmap svg.tilegrid .tg-label{fill:var(--ink);font:800 33px var(--sans);text-anchor:middle;letter-spacing:-.02em;paint-order:stroke;stroke:var(--bg);stroke-width:4px;stroke-linejoin:round;pointer-events:none}
.grmap svg.usmap .grmap-hi,.grmap svg.tilegrid .grmap-hi{fill:none;stroke:var(--ink);stroke-width:2.5;opacity:0;pointer-events:none}
.grmap.js svg.usmap .grmap-hi.lift,.grmap.js svg.tilegrid .grmap-hi.lift{opacity:1}
.grmap.us{width:100%}
.grmap.us.gridmap{display:none}
@media (max-width:640px){.grmap.us.geomap{display:none}.grmap.us.gridmap{display:block}}
/* Canada Lambert province map (same choropleth tokens) */
.grmap svg.camap{display:block;width:100%;height:auto;max-width:820px;margin:0 auto;overflow:visible}
.grmap svg.camap a.gc{cursor:pointer;outline:none}
.grmap svg.camap a.gc>path{stroke:var(--choro-edge);stroke-width:1.4;stroke-linejoin:round;transition:fill .15s,filter .15s}
.grmap svg.camap a.gc.q1>path{fill:var(--q1)}
.grmap svg.camap a.gc.q2>path{fill:var(--q2)}
.grmap svg.camap a.gc.q3>path{fill:var(--q3)}
.grmap svg.camap a.gc.q4>path{fill:var(--q4)}
.grmap svg.camap a.gc.q5>path{fill:var(--q5)}
.grmap svg.camap a.gc.on>path,.grmap svg.camap a.gc:focus-visible>path{fill:var(--accent);filter:drop-shadow(0 0 6px color-mix(in srgb,var(--accent) 55%, transparent))}
.grmap svg.camap .grmap-hi{fill:none;stroke:var(--ink);stroke-width:2.5;opacity:0;pointer-events:none}
.grmap.js svg.camap .grmap-hi.lift{opacity:1}

/* AU SA4 region maps (state pages): plain anchor links, no hover card — the table is the detail */
.sa4map{position:relative;width:100%;margin-bottom:12px}
.sa4grid{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}
@media (min-width:720px){.sa4grid.has-inset{grid-template-columns:1.55fr 1fr}}
.sa4unit{min-width:0}
.sa4unit.inset-unit{border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 12px 8px;background:var(--surface)}
.sa4cap{text-align:center;font-size:12.5px;font-weight:680;letter-spacing:.01em;color:var(--muted);margin-top:8px}
.sa4svg{display:block;width:100%;height:auto;max-width:760px;margin:0 auto;overflow:visible}
.inset-unit .sa4svg{max-width:440px}
.sa4svg .rg{cursor:pointer;outline:none}
.sa4svg .rg>path{stroke:var(--choro-edge);stroke-width:1;stroke-linejoin:round;transition:fill .12s}
.sa4svg .rg.q1>path{fill:var(--q1)}
.sa4svg .rg.q2>path{fill:var(--q2)}
.sa4svg .rg.q3>path{fill:var(--q3)}
.sa4svg .rg.q4>path{fill:var(--q4)}
.sa4svg .rg.q5>path{fill:var(--q5)}
.sa4svg path.rg.nocount{fill:var(--map-land);stroke:var(--choro-edge);stroke-width:1;stroke-linejoin:round}
.sa4svg .rg:hover>path,.sa4svg .rg:focus-visible>path{fill:var(--accent);filter:drop-shadow(0 0 5px color-mix(in srgb,var(--accent) 50%, transparent))}
.sa4-table tr[id]{scroll-margin-top:84px}
.sa4-table tr:target>td{background:var(--accent-soft)}
.sa4-table tr:target>td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.tablewrap{overflow-x:auto;margin:6px 0 0;border:1px solid var(--line);border-radius:var(--r-lg)}
.buytable{width:100%;border-collapse:collapse;font-size:14.5px}
.buytable th[scope=col]{text-align:left;font:600 11px/1 var(--sans);text-transform:uppercase;letter-spacing:.04em;color:var(--faint);padding:11px 16px;background:var(--surface);border-bottom:1px solid var(--line)}
.buytable th[scope=col]:last-child{text-align:right}
.buytable td,.buytable th[scope=row]{padding:10px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
.buytable tr:last-child td,.buytable tr:last-child th{border-bottom:0}
.buytable th[scope=row]{text-align:left;font-weight:680;color:var(--ink);white-space:nowrap}
.buytable .cov{color:var(--muted)} .buytable .cov b{color:var(--ink)}
.buytable .buycol{text-align:right;white-space:nowrap}
.buytable .buycol form{margin:0}
.buytable .buycol .btn{box-shadow:none}
.buytable tr.natrow>th,.buytable tr.natrow>td{background:var(--accent-soft);border-bottom:2px solid var(--line-strong)}
.buytable tr.natrow .st{font-weight:800}
.buytable tr.row-flash>th,.buytable tr.row-flash>td{background:var(--accent-soft)}
.btn.sm{padding:7px 14px;font-size:13.5px;border-radius:9px;box-shadow:none}
.buytable .pricenote{display:inline-block;color:var(--faint);font-size:12.5px}
/* national (whole-country) buy band under the hero */
.buyband{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;margin:22px 0 4px;padding:18px 22px;border:1px solid var(--line-strong);border-radius:var(--r-lg);background:var(--surface)}
.buyband .bb-t{font-weight:800;font-size:17px;letter-spacing:-.02em;color:var(--ink)}
.buyband .bb-s{font-size:14px;color:var(--muted);margin-top:2px}
.buyband .bb-r{display:flex;align-items:center;gap:16px}
.buyband .bb-price{font-weight:800;font-size:22px;color:var(--ink);letter-spacing:-.02em;display:flex;flex-direction:column;line-height:1.1}
.buyband .bb-price small{font-weight:500;font-size:11.5px;color:var(--faint);letter-spacing:0}
.buyband form{margin:0}
@media (max-width:560px){.buyband{align-items:flex-start}.buyband .bb-r{width:100%;justify-content:space-between}}
/* buy table stacks into cards on phones so the Buy button is always in reach */
@media (max-width:560px){
  /* only the wrapper of a stacked buy table drops its scroll and frame; every other wide table keeps scrolling inside
     its own frame (until 11-01 this hit every table and the AU, pricing and Sheets pages scrolled sideways) */
  .tablewrap:has(> .buytable){overflow:visible;border:0;border-radius:0}
  .buytable,.buytable tbody,.buytable tr,.buytable th[scope=row],.buytable td{display:block;width:auto}
  .buytable td,.buytable th[scope=row]{white-space:normal}
  .buytable thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .buytable tr{border:1px solid var(--line);border-radius:var(--r-lg);padding:13px 15px;margin-bottom:10px;background:var(--surface)}
  .buytable tr.row-flash>th,.buytable tr.row-flash>td{background:transparent}
  .buytable tr.row-flash{background:var(--accent-soft);border-color:var(--accent)}
  .buytable th[scope=row]{padding:0 0 3px;font-size:16px;border:0}
  .buytable .cov{padding:0 0 11px;border:0}
  .buytable td.buycol{text-align:left;border:0;padding:0}
  .buytable td.buycol .btn{width:100%;justify-content:center;padding:11px 14px;font-size:14.5px}
}
.home-b .grmap .pill text{fill:#eaf0fb}
@media (prefers-reduced-motion: no-preference){.grmap .pill .pring{transform-box:fill-box;transform-origin:center;animation:pill-pulse 2.4s ease-out infinite}}
@media (prefers-reduced-motion: reduce){.grmap .pill .pring{opacity:0}}
@keyframes pill-pulse{0%{transform:scale(1);opacity:.5}70%,100%{transform:scale(3.4);opacity:0}}
/* legend + mobile chips */
.maplegend .sw-live{background:var(--map-live);border-radius:50%}
.maplegend .sw-soon{background:var(--map-soon);border-radius:50%}
.map-chips{display:none}
@media (max-width:640px){
  .grmap .pills-desk{display:none}
  .grmap .pills-ph{display:inline}
  .grmap svg.worldmap a.gc.m-live>.m-pt{transform:scale(2.2)}
  .map-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;list-style:none;padding:0;margin:14px 0 0}
  .map-chips .mchip{font:700 13px var(--sans);padding:7px 13px;border-radius:999px;background:var(--map-live);color:#fff;text-decoration:none}
  .map-chips .mchip.soon{background:var(--surface-2);color:var(--muted)}
}
