:root{--bg:#071b29;--panel:#0c2637;--ink:#eaf5ef;--muted:#99b7c7;--line:#264556;--accent:#d6ff62;--cyan:#6edbdc;font-family:Arial,Helvetica,sans-serif;color-scheme:dark;scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}a{color:inherit;text-underline-offset:5px}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,.city-marker:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}.skip{position:absolute;top:-90px;left:20px;background:var(--accent);color:var(--bg);padding:18px;z-index:10}.skip:focus{top:10px}.masthead,main,footer{max-width:1800px;margin:auto;padding-inline:clamp(20px,3vw,56px)}.masthead{height:90px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.wordmark{font-size:24px;font-weight:900;letter-spacing:-1.2px;display:flex;align-items:center;text-decoration:none}.wordmark>span:not(.brand-symbol){color:var(--cyan);font-weight:400}.brand-symbol{color:var(--accent);font-size:42px;line-height:1;margin-right:12px}.system-label,.eyebrow,.system-version,.note-link{font-family:monospace;font-size:10px;letter-spacing:1.3px}.system-label{display:flex;align-items:center;gap:10px;color:var(--muted)}.status-dot{width:6px;height:6px;background:var(--accent);border-radius:50%;box-shadow:0 0 12px #d6ff6250}.system-version{margin-left:28px;color:#a3becb}.note-link{text-decoration:none;white-space:nowrap}.note-link span{color:var(--accent);margin-left:14px;font-size:22px}.intro{display:grid;grid-template-columns:1.4fr 1fr auto;gap:32px;align-items:end;padding:43px 0 35px}.eyebrow{color:var(--cyan);font-size:9px;margin:0 0 15px;line-height:1.7}h1{font-size:clamp(38px,4.5vw,74px);line-height:.98;letter-spacing:-3px;margin:0;font-weight:800}h1>span{color:var(--accent)}.standfirst{font-size:13px;line-height:1.8;color:var(--muted);margin:0 0 2px}.intro-index{display:flex;align-items:center;gap:18px;padding-left:30px;border-left:1px solid var(--line)}.intro-index strong{font-size:80px;letter-spacing:-6px;line-height:.9;font-weight:400}.intro-index>span{font:9px/1.8 monospace;color:var(--cyan)}.explorer{border:1px solid var(--line);scroll-margin-top:20px}.explorer-header{display:flex;align-items:center;justify-content:space-between;gap:25px;background:#102d3d;padding:16px 22px}h2,h3{margin:0}.explorer-header h2{font-size:15px;font-weight:500;display:flex;align-items:center;gap:12px}.explorer-header h2>span{font-size:26px;color:var(--accent)}.controls{display:flex;gap:25px;align-items:center;font-size:11px}.select-label,.toggle{display:flex;align-items:center;gap:10px}.select-label{color:var(--muted)}select{background:#071b29;border:1px solid var(--line);padding:10px;color:var(--ink);border-radius:0;font-size:11px}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.atlas-layout{display:grid;grid-template-columns:285px minmax(0,1fr)}.city-directory{padding:25px 21px;display:flex;flex-direction:column;min-width:0;background:#0c2230;border-right:1px solid var(--line)}.directory-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.directory-heading h3{font-size:14px}.directory-heading>span{font:9px monospace;color:var(--muted)}.search-label{display:flex;align-items:center;gap:9px;margin:20px 0 24px;background:#142e3d;border:1px solid #355365;padding:4px 12px}.search-label>span{font-size:24px;color:var(--cyan)}.search-label input{font:12px Arial;color:var(--ink);border:0;background:none;width:100%;min-width:0;padding:12px 0}.search-label input::placeholder{color:#a6c0cf}.list-label{display:flex;justify-content:space-between;font:8px monospace;color:var(--muted);letter-spacing:1px;margin-bottom:10px}.city-list{list-style:none;padding:0;margin:0;max-height:420px;min-height:200px;overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:#405f70 transparent}.city-list li{border-bottom:1px solid #213e4f}.city-list button{display:grid;grid-template-columns:22px 1fr auto;width:100%;text-align:left;gap:5px;align-items:center;background:none;border:0;padding:15px 5px;color:var(--ink);font-size:11px;min-height:46px;transition:background .2s}.city-list .rank,.city-list .population{font:9px monospace;color:var(--muted)}.city-list button[aria-pressed=true]{background:var(--accent);color:var(--bg)}.city-list button[aria-pressed=true] span{color:var(--bg)}.city-list button:hover:not([aria-pressed=true]){background:#1e4053}.reset-button{background:none;border:0;border-top:1px solid var(--line);padding:17px 0 0;margin-top:16px;color:var(--cyan);text-align:left;display:flex;justify-content:space-between;font-size:11px}#no-results{font-size:13px;line-height:1.7}.map-panel{min-width:0;position:relative;background:radial-gradient(ellipse at 50% 36%,#123b4e,transparent 70%),#081d2c}.map-topline,.map-bottomline{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:21px 25px;color:var(--muted);font:8px/1.5 monospace;letter-spacing:1px}.map-topline i{display:inline-block;width:5px;height:5px;background:var(--cyan);margin-right:6px}.map-wrapper{position:relative;background-image:linear-gradient(#9ec8d00a 1px,transparent 1px),linear-gradient(90deg,#9ec8d00a 1px,transparent 1px);background-size:40px 40px;padding:0 15px}.map-axis{position:absolute;top:18px;left:22px;font:10px/1.8 monospace;text-align:center;color:var(--cyan)}svg{display:block;width:100%;height:auto;overflow:visible}.state{fill:#143b4b;stroke:#527989;stroke-width:.7;transition:fill .25s}.state:hover{fill:#245768}.state-label{fill:#9dbcca;font-size:9px;pointer-events:none;letter-spacing:.3px}.city-marker{fill:var(--cyan);stroke:#071b29;stroke-width:1.5;fill-opacity:.8;cursor:pointer;transition:fill .2s,fill-opacity .2s}.city-marker:hover,.city-marker.selected,.city-marker:focus-visible{fill:var(--accent);fill-opacity:1;stroke:#f4ffe0;stroke-width:2}.location-reticle{pointer-events:none;stroke:var(--accent);fill:none;stroke-width:1;opacity:.8}.location-reticle circle{stroke-dasharray:3 5}.map-bottomline{padding-top:8px;padding-bottom:22px;letter-spacing:0;font-size:9px}.legend{display:flex;align-items:center;gap:8px}.legend-dot{border:1px solid var(--cyan);border-radius:50%;display:block}.legend-dot.small{width:7px;height:7px}.legend-dot.large{width:16px;height:16px}.legend>span:last-child{margin-left:4px}.city-spotlight{display:grid;grid-template-columns:1fr auto 76px;gap:25px;align-items:center;padding:25px;border-top:1px solid var(--line);background:#102c3b}.city-spotlight .eyebrow{margin-bottom:9px;color:var(--accent)}.city-spotlight h3{font-size:clamp(25px,3vw,47px);letter-spacing:-1.8px;line-height:1}.coordinates{font:9px monospace;letter-spacing:1px;color:var(--muted);margin:12px 0 0}.spotlight-pop strong{display:block;font-size:clamp(25px,3.2vw,46px);letter-spacing:-2px;font-weight:400;font-variant-numeric:tabular-nums;margin:8px 0}.spotlight-pop span{display:block;font:8px/1.5 monospace;color:var(--muted);letter-spacing:.5px}.next-button{height:76px;background:var(--accent);border:0;color:var(--bg);display:grid;place-content:center;transition:background .2s,transform .2s}.next-button:hover{background:var(--cyan);transform:translateY(-3px)}.next-button>span{font-size:36px;line-height:1}.next-button small{font:7px monospace;margin-top:8px}.next-button:disabled{opacity:.5;cursor:default;transform:none}.loading{position:absolute;inset:35% 0 auto;text-align:center;color:var(--accent);font-size:13px}.notes{display:grid;grid-template-columns:1fr 1fr;gap:12%;padding-block:80px}.notes-title{position:relative}.notes h2{font-size:clamp(32px,4vw,60px);line-height:1;letter-spacing:-2px;font-weight:500}.notes h2>span{color:var(--muted)}.notes-cross{display:block;font-size:74px;color:var(--cyan);line-height:1;margin-top:30px}.notes p:not(.eyebrow){font-size:13px;line-height:1.9;color:var(--muted);margin:0 0 20px}.data-links{display:flex;flex-wrap:wrap;gap:25px;font:10px/1.8 monospace;color:var(--accent)}footer{border-top:1px solid var(--line);padding-block:28px;display:flex;align-items:center;justify-content:space-between;gap:25px}footer .wordmark{font-size:20px}footer p{font:8px/1.8 monospace;color:var(--muted)}footer>a:last-child{font:10px monospace}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}[hidden]{display:none!important}@media(min-width:1500px){.atlas-layout{grid-template-columns:330px minmax(0,1fr)}.map-wrapper{max-height:620px;display:flex;justify-content:center}.map-wrapper svg{max-height:620px}.city-list{max-height:550px}}@media(max-width:1000px){.system-version{display:none}.intro{grid-template-columns:1.4fr 1fr}.intro-index{display:none}.atlas-layout{grid-template-columns:235px minmax(0,1fr)}.city-directory{padding:20px 15px}.city-spotlight{grid-template-columns:1fr auto;gap:16px;padding:20px}.spotlight-pop strong{font-size:27px}.next-button{grid-column:2;grid-row:1/3;width:54px;height:70px}.spotlight-pop{grid-column:1}.map-topline>span:last-child{display:none}.city-list{max-height:380px}}@media(max-width:700px){.masthead{height:76px;gap:12px}.wordmark{font-size:20px}.brand-symbol{font-size:31px;margin-right:8px}.system-label{display:none}.note-link{font-size:9px;letter-spacing:.4px}.intro{grid-template-columns:1fr;padding:31px 0;gap:22px}h1{font-size:47px;letter-spacing:-2.3px}.standfirst{font-size:12px}.standfirst br{display:none}.intro .eyebrow{font-size:8px}.explorer-header{display:block;padding:16px}.explorer-header h2{font-size:14px}.controls{margin-top:16px;gap:14px;justify-content:space-between;font-size:10px}.select-label{display:grid;gap:6px}.toggle{gap:5px}select{font-size:11px;padding:9px 6px}.atlas-layout{display:flex;flex-direction:column}.map-panel{order:0}.city-directory{order:1;border-right:0;border-top:1px solid var(--line);padding:23px 18px}.map-topline{font-size:7px;padding:18px 15px}.map-wrapper{padding:0 4px}.map-axis{font-size:7px;left:12px;top:4px}.map-bottomline{font-size:7px;padding:12px 15px 20px;gap:12px}.map-bottomline>span{max-width:65px;text-align:right}.city-spotlight{padding:22px 17px;gap:16px;grid-template-columns:1fr 48px}.city-spotlight h3{font-size:34px}.next-button{width:48px}.spotlight-pop strong{font-size:32px;margin:5px 0}.spotlight-pop span{font-size:7px}.city-list{max-height:330px}.city-list button{font-size:13px;padding:17px 4px}.city-list .population,.city-list .rank{font-size:10px}.search-label input{font-size:16px}.directory-heading h3{font-size:19px}.notes{grid-template-columns:1fr;gap:30px;padding-block:45px}.notes-cross{position:absolute;right:0;bottom:0;font-size:50px}.notes h2{font-size:34px}.notes p:not(.eyebrow){font-size:12px}footer{flex-wrap:wrap}footer p{order:3;width:100%}.data-links{font-size:10px}.state-label{font-size:11px}.city-marker{stroke-width:1}.city-marker.selected{stroke-width:1.5}}@media(prefers-reduced-motion:no-preference){.intro{animation:enter .6s ease-out}.map-panel{animation:enter .7s ease-out}.location-reticle circle{animation:locate .65s ease-out}@keyframes enter{from{opacity:0;transform:translateY(12px)}}@keyframes locate{from{opacity:0;stroke-width:4}to{opacity:.8;stroke-width:1}}}@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

/* Vector arrows keep their shape across Safari, system fonts, and emoji sets. */
svg.compat-arrow {
  display: inline-block;
  position: static;
  width: 1em;
  height: 1em;
  flex-shrink: 0;
  vertical-align: -0.125em;
  fill: none;
  stroke: currentColor;
}

/* Keep text-entry controls readable without iPhone Safari focus zoom. */
@media (max-width: 640px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea {
    font-size: 16px;
  }
}
