:root{color-scheme:dark;--bg:#0a0b0c;--fg:#f2f2ed;--muted:#93979c;--blue:#4c63ff;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--fg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{color:inherit}button:focus-visible,a:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--blue);outline-offset:7px}button{cursor:pointer}.skip{position:fixed;top:-80px;left:20px;z-index:20;background:var(--fg);color:var(--bg);padding:12px}.skip:focus{top:12px}.header{height:70px;margin:0 4.2%;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}.brand{display:flex;flex-direction:column;align-items:flex-start;gap:3px;font-size:20px;font-weight:750;letter-spacing:-.045em;line-height:1}.open-source{font-size:10px;color:var(--muted);font-weight:400;letter-spacing:.12em}nav{display:flex;align-items:center;gap:38px;font-size:13px}nav a,nav button{min-height:44px;display:flex;align-items:center;gap:10px}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blue);flex-shrink:0}.install{border:0;background:none;padding:0;color:#96999e}.install span{margin-left:5px}.github{padding:9px 0 9px 8px;font-weight:600}.github svg{width:22px;height:22px;fill:currentColor}.github:hover{color:var(--blue)}.hero{position:relative;max-width:1600px;margin:auto;padding:40px 4.2% 25px}.hero-copy{position:relative;z-index:1;pointer-events:none}.eyebrow{font-size:12px;margin:0 0 19px;color:#b3b6bb;letter-spacing:.03em}h1{font-size:clamp(38px,4.3vw,66px);font-weight:500;line-height:1.06;letter-spacing:-.055em;margin:0}.description{font-size:14px;line-height:1.65;color:var(--muted);margin:20px 0 0}.map-heading{display:flex;justify-content:space-between;align-items:center;position:absolute;top:62px;right:4.2%;width:225px;font-size:12px}.map-heading>span:first-child{display:flex;gap:8px;align-items:center}.demo-data{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.09em}.map-region{position:relative;width:91%;margin:-76px -1.7% -7px auto;outline:none}#world-map{display:block;width:100%;scale:1 .83;transform-origin:top;margin-bottom:-9.4%;--vm-land:#191c20;--vm-border:#363a40;--vm-visited:#a4a8b0;--vm-visited-border:#111318;--vm-active:var(--blue);--vm-active-border:#7383ff}
.map-hint{position:absolute;right:1%;bottom:13%;font-size:11px;color:var(--muted)}.map-hint span{margin-left:15px;color:var(--fg)}.data-row{display:flex;justify-content:space-between;align-items:center;gap:30px;position:relative;margin-top:-18px}.totals{display:flex;gap:47px;align-items:center}.totals>div{display:flex;flex-direction:column;gap:10px}.count,.country-total strong{font-family:'Courier New',monospace;font-size:clamp(40px,4vw,61px);font-weight:400;line-height:1;letter-spacing:-.075em;font-variant-numeric:tabular-nums}.count{display:inline-block;min-width:5ch;--vc-text:var(--fg)}.count::part(value){font-size:.52em}.count::part(digit){font-size:1.923em;padding:0;border:0;line-height:1;inline-size:1ch}
.data-label{color:var(--muted);font-size:12px}.country-total strong{color:#8c919a}.country-detail{display:flex;align-items:center;gap:24px;min-width:375px}.country-code{font-size:76px;line-height:1;letter-spacing:-.07em;color:var(--blue);font-weight:500;min-width:95px}.country-info{min-width:0}.country-info select{width:100%;min-height:44px;background:var(--bg);border:0;color:var(--fg);padding:5px 24px 5px 0;max-width:265px;font-size:15px;text-transform:uppercase;cursor:pointer}.country-info p{margin:6px 0;font-size:14px}.discovery{display:flex;gap:16px;color:var(--muted);font-size:12px!important}.discovery #discovery{font-weight:400;font-family:'Courier New',monospace}.hero-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:28px}.brand-line{font-size:14px;letter-spacing:-.02em;color:#b9bdc3;margin:0}.arrival{display:flex;align-items:center;gap:10px;font:11px 'Courier New',monospace;min-height:28px}.arrival #arrival-label{min-width:220px}#pause{font-size:10px;background:none;border:0;color:var(--muted);padding:10px 2px;min-height:44px}.intro{position:fixed;inset:0;background:var(--bg);z-index:8;pointer-events:none;display:none}
html.intro-pending .intro{display:block;animation:intro-timeout .01s linear 3.6s forwards}
html.intro-pending.intro-revealing .intro{animation:intro-exit var(--reveal-duration,.53s) ease-out forwards}
@keyframes intro-timeout{to{opacity:0;visibility:hidden}}
.intro-map{position:fixed;display:block;opacity:0;scale:1 .83;transform-origin:top;--vm-land:transparent;--vm-border:transparent;--vm-visited:#69707c;--vm-visited-border:#575d68}
.intro-data{position:absolute;left:50%;top:calc(50% + 99px);transform:translateX(-50%);white-space:nowrap;color:#b1b6bf;font:11px 'Courier New',monospace;letter-spacing:.11em;opacity:0}
.intro-data span{color:var(--fg)}
.orbit{position:fixed;width:72px;height:72px;left:0;top:0;z-index:10;pointer-events:none;opacity:0;scale:1;transform:translate3d(calc(50vw - 36px),calc(50vh - 36px),0);transition:opacity .16s ease-out,scale .16s ease-out;will-change:transform,opacity}
.orbit svg{width:100%;height:100%;overflow:visible}
.orbit-ring{fill:none;stroke:var(--blue);stroke-width:.5;opacity:.7}
.orbit text{font:7px Arial,sans-serif;fill:var(--fg);letter-spacing:1px}
.orbit-turn{transform-origin:40px 40px;animation:orbit 16s linear infinite}
.orbit-dot{fill:var(--blue)}
.fragment{position:absolute;left:35px;top:31px;font:10px 'Courier New',monospace;opacity:0}
.f1{--sx:-52px;--sy:-10px;--mx:-59px;--my:-27px;--x:-57px;--y:-48px;--delay:.22s}
.f2{--sx:-8px;--sy:-58px;--mx:27px;--my:-57px;--x:62px;--y:-42px;--delay:.29s}
.f3{--sx:53px;--sy:0px;--mx:62px;--my:25px;--x:58px;--y:48px;--delay:.36s}
.f4{--sx:2px;--sy:54px;--mx:-31px;--my:56px;--x:-55px;--y:51px;--delay:.43s}
html.intro-pending .orbit{opacity:1}
html.intro-pending .orbit-ring,html.intro-pending .orbit-turn{opacity:0}
html.intro-running .orbit-ring{animation:ring-arrive .3s ease-out .62s both}
html.intro-running .fragment{animation:code-orbit .65s cubic-bezier(.25,.55,.25,1) var(--delay) both}
html.intro-running .intro-data{animation:data-arrive .28s ease-out .78s both}
html.intro-running .intro-map{animation:map-fragment .35s ease-out 1.03s both}
html.intro-revealing .intro-data{opacity:1}
html.intro-revealing .intro-map{opacity:.6}
html.warm-intro .fragment,html.warm-intro .orbit-ring,html.warm-intro .intro-data{display:none}
html.warm-intro.intro-running .intro-map{animation:map-fragment .14s ease-out .07s both}
.orbit.cursor-entering{scale:.85}
.orbit.snap svg{scale:.85;transition:scale .13s}
.map-error{position:absolute;inset:40% 0;text-align:center;color:var(--muted)}
@keyframes orbit{to{transform:rotate(360deg)}}
@keyframes ring-arrive{from{opacity:0;transform:scale(.72);transform-origin:center}to{opacity:.7;transform:scale(1);transform-origin:center}}
@keyframes code-orbit{0%{opacity:0;transform:translate(var(--sx),var(--sy))}30%{opacity:.9}55%{transform:translate(var(--mx),var(--my))}100%{opacity:.9;transform:translate(var(--x),var(--y))}}
@keyframes data-arrive{from{opacity:0;translate:0 4px}to{opacity:1;translate:0 0}}
@keyframes map-fragment{from{opacity:0}to{opacity:.6}}
@keyframes intro-exit{to{opacity:0}}
@media(min-width:1101px){.description{max-width:290px;font-size:13px}.desktop-break{display:none}.map-region{width:80%;margin-top:-120px}.hero-bottom{margin-top:23px}}@media(min-width:1400px){.hero{padding-top:42px}.map-region{margin-top:-105px}.hero-bottom{margin-top:23px}}
@media(min-width:769px) and (max-height:800px){.hero{padding-top:22px}.map-region{width:82%;margin-top:-100px}.hero-bottom{margin-top:20px}h1{font-size:52px}}
@media(max-width:1100px){.open-source{display:block}.hero{padding-top:35px}.map-region{width:100%;margin-top:-25px}.map-heading{top:49px;width:170px}.hero-bottom{margin-top:28px}.country-detail{min-width:285px}.map-hint{bottom:9%}}
@media(max-width:768px){.header{height:68px;margin:0 5%}nav{gap:22px}.hero{padding:30px 5% 24px}.map-heading{position:relative;top:auto;right:auto;width:auto;margin-top:29px}.map-region{width:108%;margin:8px -4% 9px}.data-row{margin-top:0}.map-hint{display:none}h1{font-size:48px}.description{font-size:14px}.data-row{gap:20px}.totals{gap:24px}.country-code{font-size:52px;min-width:68px}.country-detail{gap:16px;min-width:0}.count,.country-total strong{font-size:44px}.discovery{flex-direction:column;gap:5px}.hero-bottom{margin-top:24px}.brand-line{font-size:13px}.desktop-break{display:none}}
@media(max-width:480px){.header{height:66px}.brand{font-size:16px;gap:3px}.open-source{font-size:8px}nav{gap:15px;font-size:11px}.install{display:none}.github{padding:6px}.github svg{width:21px;height:21px}.github span{display:none}.hero{padding-top:23px}.eyebrow{font-size:11px;margin-bottom:16px}h1{font-size:38px;line-height:1.08}.description{font-size:12px;line-height:1.6;max-width:315px;margin-top:16px}.map-heading{margin-top:26px;font-size:11px}.demo-data{font-size:9px}.map-region{margin-top:13px;margin-bottom:20px;width:109%;margin-right:-5%}.data-row{align-items:flex-start;gap:12px}.totals{gap:20px}.count,.country-total strong{font-size:34px}.totals>div{gap:7px}.data-label{font-size:10px}.country-detail{gap:7px;flex-direction:column;align-items:flex-start;width:144px}.country-code{font-size:43px;line-height:1.05}.country-info{min-width:0}.country-info select{width:100%;font-size:12px;max-width:145px;padding:3px 15px 3px 0}.country-info p{font-size:12px;margin:4px 0}.discovery{font-size:12px!important;gap:5px}.hero-bottom{gap:13px;margin-top:25px}.brand-line{width:100%;font-size:14px}.arrival{font-size:10px;gap:8px}.arrival #arrival-label{min-width:207px}}
@media(max-width:350px){.hero{padding-top:17px}h1{font-size:33px}.brand{font-size:14px}nav{gap:7px}.totals{gap:13px}.count,.country-total strong{font-size:29px}.country-detail{width:125px}.country-info{min-width:0}.country-info select{width:100%;max-width:125px}.country-code{font-size:35px}.description{font-size:11px}.arrival #arrival-label{min-width:190px}}
@media(pointer:coarse),(hover:none){.orbit{display:none!important}html.intro-pending .orbit{display:block!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}html.intro-pending .intro{display:none!important}html.intro-pending .orbit-ring,html.intro-pending .orbit-turn,html.intro-pending .fragment,html.intro-pending .intro-data{display:none!important}}


@media(min-width:769px) and (max-width:1100px) and (max-height:800px){.hero{padding-top:18px}h1{font-size:44px}.map-region{width:85%;margin-top:-25px}.hero-bottom{margin-top:15px}}

@media(max-width:768px){html.intro-running .fragment{animation-duration:.42s}html.intro-running .f1{animation-delay:.12s}html.intro-running .f2{animation-delay:.18s}html.intro-running .f3{animation-delay:.24s}html.intro-running .f4{animation-delay:.30s}html.intro-running .intro-data{animation-delay:.55s}html.intro-running .intro-map{animation-duration:.2s;animation-delay:.67s}}

/* Prototype B: code changes the map, without a second visual language. */
.install-section{max-width:1600px;margin:0 auto;padding:50px 4.2% 160px}
.install-entry{display:flex;justify-content:space-between;align-items:baseline;gap:24px;border-top:1px solid #343940;padding-top:18px}
.install-entry h2{margin:0;font-size:16px;font-weight:600;letter-spacing:-.02em;text-transform:uppercase}
.install-entry p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.install-workspace{display:grid;grid-template-columns:minmax(0,1.14fr) minmax(360px,.86fr);gap:clamp(54px,7vw,112px);align-items:start;margin-top:34px}
.install-step{min-height:300px;border-top:1px solid #30343b;padding:36px 0 42px}
.install-step:last-child{border-bottom:1px solid #30343b}
.install-step.is-active{border-top-color:#9a9fa8}
.install-step h3{display:flex;align-items:baseline;gap:17px;margin:0;font-size:24px;font-weight:500;letter-spacing:-.035em}
.install-step h3 span{color:var(--muted);font:12px 'Courier New',monospace;letter-spacing:0}
.install-step.is-active h3 span{color:var(--blue)}
.install-step>p{margin:11px 0 25px;color:var(--muted);font-size:13px}
.install-code{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;min-height:66px;border-top:1px solid #343940;border-bottom:1px solid #343940}
.install-code pre{min-width:0;max-width:100%;overflow-x:auto;margin:0;padding:17px 0;color:var(--fg);font:14px/1.5 'Courier New',monospace;white-space:pre;scrollbar-width:thin}
.install-code code{font:inherit}
.install-copy{border:0;background:none;color:#b4b8be;font:11px Arial,Helvetica,sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:14px 0 14px 10px;min-width:63px;text-align:right}
.install-copy:hover,.install-copy[data-copied=true]{color:var(--blue)}
.install-preview-column{position:sticky;top:120px;min-height:330px}
.install-preview[hidden],.install-arrival[hidden],.install-selected[hidden]{display:none}
.install-preview-label{margin:0 0 21px;color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.install-map{display:block;width:100%;--vm-land:#191c20;--vm-border:#363a40;--vm-visited:#a4a8b0;--vm-visited-border:#111318;--vm-active:var(--blue);--vm-active-border:#7383ff}
.install-selected{margin:10px 0 0;color:#b4b8be;font:11px 'Courier New',monospace;letter-spacing:.04em}
.install-preview-data{display:flex;align-items:flex-start;gap:36px;margin-top:14px}
.install-preview-data>div{display:flex;flex-direction:column;gap:8px}
.install-preview-data strong,.install-visitor-count{display:flex;color:var(--fg);font:36px/1 'Courier New',monospace;letter-spacing:-.07em;font-variant-numeric:tabular-nums}
.install-visitor-count::part(value){font-size:.52em}.install-visitor-count::part(digit){font-size:1.923em;padding:0;border:0;line-height:1;inline-size:1ch}.install-preview-data .install-country-count{color:#8c919a}
.install-preview-data>div>span{color:var(--muted);font-size:11px}
.install-arrival{margin:8px 0 0 auto;color:var(--blue);font:11px 'Courier New',monospace;white-space:nowrap}
.install-mobile-preview{display:none}
@media(max-width:800px){
  .install-section{padding:46px 5% 72px}
  .install-workspace{display:block;margin-top:27px}
  .install-preview-column{display:none}
  .install-step{min-height:0;padding:32px 0 38px}
  .install-mobile-preview{display:block;max-width:620px;margin-top:28px}
  .install-preview-label{margin-bottom:12px}
  .install-preview-data{margin-top:9px}
}
@media(max-width:480px){
  .install-section{padding-top:36px;padding-bottom:68px}
  .install-entry{display:block}
  .install-entry p{margin-top:9px;font-size:12px}
  .install-step h3{font-size:21px;gap:13px}
  .install-step>p{margin-bottom:21px}
  .install-code{gap:10px}
  .install-code pre{font-size:13px}
  .install-copy{font-size:10px;min-width:55px}
  .install-preview-data{gap:27px}
  .install-preview-data strong{font-size:31px}
  .install-arrival{font-size:10px}
}

/* Publication actions and no-JavaScript preview. */
.install-resources{display:flex;flex-wrap:wrap;gap:10px 24px;margin:8px 0 5px;padding:14px 0;border-bottom:1px solid #30343b;font-size:12px}
.install-resource{color:var(--fg);text-underline-offset:4px}
.install-resource:hover{color:var(--blue)}
.install-resource.is-gated{color:var(--muted);cursor:default}
.github.is-gated{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;cursor:default}
.no-js-preview{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(160px,.75fr);align-items:center;gap:20px;padding:18px 0;border-top:1px solid #343940;border-bottom:1px solid #343940;color:var(--muted);font-size:12px;line-height:1.55}
.no-js-preview img{display:block;width:100%;height:auto}
.no-js-preview p{margin:0}
html:not(.js-ready) .map-region{width:100%;margin:20px 0}
html:not(.js-ready) #world-map,html:not(.js-ready) .install-copy{display:none}
@media(max-width:480px){.install-resources{gap:12px;flex-direction:column}.no-js-preview{grid-template-columns:1fr;gap:12px}.no-js-preview img{max-width:100%}}
.github.is-gated:hover{color:var(--muted);cursor:default}.install-resource.is-gated:hover{color:var(--muted);cursor:default}
.github.is-gated{max-width:14rem;white-space:normal;line-height:1.2}
.no-js-message{max-width:1600px;margin:24px auto;padding:16px 4.2%;border-top:1px solid #343940;color:var(--muted);font-size:13px;line-height:1.5}
@media(max-width:480px){.github.is-gated{max-width:6rem;padding:8px 0;font-size:9px}.no-js-message{padding-inline:5%;font-size:12px}}