:root{--sky-top:#ff8a3d;--sky-mid:#8b3dd9;--sky-bottom:#17193f;--road:#202431;--road-light:#2c3142;--road-border:#ffffff29;--card:#202431d1;--text:#fff9ec;--muted:#fff9ecb3;--yellow:#ffd447;--green:#129a63;--green-dark:#08794d;--blue:#2f6df6;--red:#f04f45;--shadow:0 22px 55px #04081e5c;--radius-xl:28px;--radius-lg:20px}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:radial-gradient(circle at 18% 16%, #fff3, transparent 23%), radial-gradient(circle at 85% 9%, #ffd44733, transparent 18%), linear-gradient(165deg, var(--sky-top), var(--sky-mid) 42%, var(--sky-bottom));color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button{font:inherit;border:0}button:focus-visible{outline-offset:3px;outline:3px solid #fff}.app-shell{min-height:100svh;position:relative;overflow:hidden}.landing-screen{place-items:center;height:100svh;min-height:0;padding:clamp(.65rem,2.2vh,1.5rem) 1.2rem 3.2rem;transition:opacity .35s,transform .45s;display:grid}.screen-playing .landing-screen,.screen-summary .landing-screen{opacity:0;pointer-events:none;position:absolute;inset:0;transform:translate(-100%)}.hero{text-align:center;max-width:920px;margin:auto}.hero-orbit{place-items:center;margin-bottom:.8rem;display:inline-grid;position:relative}.hero-orbit:before{content:"";border:1px solid #ffffff57;border-radius:50%;width:126px;height:126px;position:absolute;transform:rotate(-22deg)scaleY(.36)}.orbit-dot{background:var(--yellow);border-radius:50%;width:9px;height:9px;position:absolute;top:50%;right:-22px;box-shadow:0 0 18px #ffd447cc}.brand-mark{background:radial-gradient(circle at center, var(--yellow) 0 10%, transparent 11%), linear-gradient(90deg, transparent 46%, #ffffffeb 47% 53%, transparent 54%), linear-gradient(transparent 46%, #ffffffeb 47% 53%, transparent 54%), linear-gradient(145deg, var(--green), var(--green-dark));border:2px solid #ffffffb3;border-radius:50%;width:40px;height:40px;display:inline-block;position:relative;box-shadow:0 10px 30px #00000047}.brand-mark:after{content:"";border:1px solid #ffffffad;border-radius:48% 52% 42% 58%;position:absolute;inset:8px 5px 7px;transform:rotate(-17deg)}.brand-mark.large{width:clamp(48px,8vh,68px);height:clamp(48px,8vh,68px)}.eyebrow{color:var(--yellow);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .75rem;font-size:.76rem;font-weight:950}.hero h1{letter-spacing:-.075em;text-shadow:0 8px #0000003d;margin:0;font-size:clamp(3.5rem,min(12vw,12vh),7rem);line-height:.76;display:grid}.city-accent{color:var(--yellow)}.hero-tagline{color:#fff9ece6;max-width:34rem;margin:clamp(1.85rem,4.2vh,2.6rem) auto 0;padding-inline:.5rem;font-size:clamp(.9rem,1.8vw,1.08rem);font-weight:750;line-height:1.4}.hero .hero-actions{margin-top:clamp(1.65rem,4.5vh,2.8rem)}.daily-summary-label,.share-status{color:var(--yellow);margin:.25rem 0 0;font-size:.78rem;font-weight:850}.hero-actions,.summary-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;display:flex}.landing-actions{gap:1rem;overflow:visible}.world-region-menu{position:relative}.world-region-options{box-shadow:var(--shadow);z-index:20;background:#202431fa;border:1px solid #ffffff38;border-radius:18px;min-width:220px;max-height:min(19rem,42vh);padding:.45rem;display:grid;position:absolute;top:calc(100% + .75rem);left:50%;overflow-y:auto;transform:translate(-50%)}.world-region-options button{color:var(--text);cursor:pointer;text-align:left;background:0 0;border-radius:11px;padding:.72rem .9rem;font-size:.82rem;font-weight:850}.world-region-options button:hover,.world-region-options button:focus-visible{background:#ffd44729}.primary-button,.secondary-button{color:#fff;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:1rem;min-height:48px;padding:.8rem 1.25rem;font-weight:950;transition:filter .15s,transform .15s;display:inline-flex;box-shadow:0 12px 28px #00000040}.primary-button{background:linear-gradient(180deg, var(--green), var(--green-dark))}.secondary-button{border:1px solid var(--road-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff21}.primary-button:hover,.secondary-button:hover,.icon-button:hover,.logo-button:hover{filter:brightness(1.08);transform:translateY(-1px)}.primary-button:disabled{cursor:not-allowed;filter:grayscale(.5);opacity:.48;transform:none}.hero-button{min-width:215px}.glass-panel{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:var(--card);border:1px solid var(--road-border);box-shadow:var(--shadow)}.game-screen{flex-direction:column;max-width:1240px;height:100svh;margin:0 auto;padding:1rem 1rem 3.2rem;animation:.45s both screen-in;display:flex;overflow:hidden}@keyframes screen-in{0%{opacity:0;transform:translate(5%)}to{opacity:1;transform:none}}.game-header{grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;margin-bottom:1rem;display:grid}.logo-button{color:#fff;cursor:pointer;background:0 0;justify-self:start;align-items:center;gap:.65rem;display:flex}.logo-button strong{letter-spacing:-.03em;font-size:1rem}.icon-button{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--road-border);box-shadow:var(--shadow);color:#fff;cursor:pointer;background:#20243194;border-radius:17px;justify-self:end;width:48px;height:48px;font-weight:950}.round-dots{justify-content:center;gap:.45rem;display:flex}.round-dots span{border:1px solid var(--road-border);color:var(--muted);background:#202431b3;border-radius:999px;justify-content:center;align-items:center;min-width:34px;height:34px;padding:0 .45rem;font-size:.68rem;font-weight:950;transition:all .18s;display:flex}.round-dots span.active{background:var(--yellow);color:var(--road);border-color:#fff;transform:scale(1.12)}.round-dots span.great{background:var(--green);color:#fff}.round-dots span.good{color:#fff;background:#c68c22}.round-dots span.low{background:var(--red);color:#fff}.game-layout{flex:1;grid-template-rows:auto minmax(0,1fr);gap:.7rem;min-height:0;display:grid}.prompt-card,.map-card{border-radius:var(--radius-xl)}.prompt-card{text-align:center;justify-items:center;gap:.2rem;min-height:0;padding:.65rem 1rem;display:grid}.round-title{color:var(--yellow);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.9rem;font-weight:950}.round-prompt{color:var(--muted);margin:0;font-size:.84rem;font-weight:750}.great{color:#58dda0}.good{color:var(--yellow)}.low{color:#ff7a72}.full-button{width:100%}.map-card{min-height:0;padding:.5rem;position:relative;overflow:hidden}.map-wrap,.globe-map{width:100%;height:100%;min-height:0}.map-wrap{border-radius:22px;position:relative;overflow:hidden}.globe-map{cursor:crosshair;background:radial-gradient(circle at 50% 48%,#22445c 0,#101a29 43%,#05080f 68%);font-family:inherit}.globe-map canvas{outline:none;display:block}.review-map-mode .globe-map{cursor:grab}.daily-error{color:#ffb7b7;text-align:center;max-width:34rem;margin:.75rem auto 0;font-size:.82rem;font-weight:800}.review-loading,.region-review-screen{min-height:100svh;padding:clamp(1rem,2.5vw,2rem)}.review-loading{place-items:center;display:grid}.region-review-header{justify-content:space-between;align-items:center;max-width:1500px;margin:0 auto 1rem;display:flex}.region-review-header h1{letter-spacing:-.06em;margin:0;font-size:clamp(2rem,4vw,3.6rem)}.region-review-header a{color:var(--text);font-weight:850}.review-filters{gap:.5rem;margin:0;display:flex}.review-filters button,.review-navigation button{color:var(--text);background:#ffffff14;border:1px solid #ffffff2e;border-radius:999px;padding:.65rem .9rem;font-weight:800}.review-filters button.active{background:var(--yellow);color:#17120a}.review-toolbar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:20;background:#080b14e0;border:1px solid #ffffff1f;border-radius:18px;justify-content:space-between;align-items:end;gap:1rem;max-width:1500px;margin:0 auto 1.25rem;padding:.75rem;display:flex;position:sticky;top:.75rem}.continent-filter{align-items:center;gap:.6rem;display:flex}.review-selectors{align-items:center;gap:.75rem;display:flex}.continent-filter span{color:var(--muted);font-size:.82rem;font-weight:850}.continent-filter select{color:var(--text);font:inherit;background:#171b2b;border:1px solid #ffffff38;border-radius:999px;padding:.65rem 2.2rem .65rem .9rem;font-weight:800}.continent-filter select:disabled{cursor:not-allowed;opacity:.45}.region-review-list{gap:clamp(1.5rem,4vw,3rem);display:grid}.region-review-workspace{grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:1rem;width:100%;max-width:1500px;margin:0 auto;display:grid}.region-review-map{height:min(75svh,850px);min-height:520px}.region-review-map .map-wrap,.region-review-map .globe-map{width:100%;height:100%}.review-map-placeholder{color:var(--muted);background:#ffffff0a;border:1px dashed #ffffff2e;border-radius:22px;justify-content:center;align-items:center;height:100%;font-weight:800;display:flex}.region-review-panel{align-self:stretch;padding:1.25rem}.region-review-panel h2{margin:.2rem 0 1rem;font-size:clamp(1.6rem,3vw,2.2rem)}.review-progress{color:var(--yellow);margin:0;font-weight:900}.region-review-panel dl{gap:.65rem;margin:0 0 1rem;display:grid}.region-review-panel dl div{border-bottom:1px solid #ffffff1f;grid-template-columns:75px 1fr;gap:.5rem;padding-bottom:.65rem;display:grid}.region-review-panel dt{color:var(--muted);font-weight:800}.region-review-panel dd{overflow-wrap:anywhere;margin:0}.overlap-review-summary{background:#090c16ad;border:1px solid #ffffff24;border-radius:14px;margin-top:1rem;padding:.8rem}.overlap-review-heading{justify-content:space-between;align-items:center;display:flex}.overlap-review-heading span{color:var(--muted);font-size:.72rem;font-weight:850}.overlap-retire-recommendation,.overlap-keep-recommendation{border-radius:9px;margin:.65rem 0;padding:.55rem;font-size:.78rem;font-weight:850}.overlap-retire-recommendation{color:#faa;background:#ff5e5e24}.overlap-keep-recommendation{color:#6ff0ba;background:#23d08b24}.overlap-review-summary ul{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.overlap-review-summary li{grid-template-columns:1fr auto;align-items:baseline;gap:.35rem;font-size:.75rem;display:grid}.overlap-review-summary li small{color:var(--muted);text-transform:capitalize;grid-column:1/-1}.overlap-more-conflicts{color:var(--muted);margin:.6rem 0 0;font-size:.72rem;font-weight:800}.daily-region-warning,.review-error{border-radius:12px;padding:.75rem;font-size:.85rem;font-weight:800}.daily-region-warning{border:1px solid var(--yellow);color:var(--yellow);background:#ffd44724}.review-error{color:#faa;background:#ff5e5e24}.review-navigation,.review-decisions{grid-template-columns:1fr 1fr;gap:.6rem;margin-top:1rem;display:grid}.review-decisions button{color:#fff;border:0;border-radius:999px;padding:.8rem;font-weight:900}.reject-region-button{background:#b83b4a}.approve-region-button{background:var(--green)}.review-decisions button:disabled,.review-navigation button:disabled{cursor:not-allowed;opacity:.45}.review-empty{text-align:center;max-width:600px;margin:3rem auto;padding:2rem}.review-page-error,.overlap-report-note,.review-load-more{max-width:1500px;margin-left:auto;margin-right:auto}.overlap-report-note{color:var(--muted);margin-top:-.45rem;margin-bottom:1.25rem;font-size:.78rem;font-weight:750}.overlap-report-note code{color:var(--yellow)}.review-load-more{color:var(--muted);text-align:center;padding:2rem 1rem;font-size:.85rem;font-weight:800}@media (max-width:820px){.region-review-workspace{grid-template-columns:1fr}.region-review-map{height:58svh;min-height:380px}.region-review-header{align-items:flex-start}.review-filters{overflow-x:auto}.review-toolbar,.review-selectors{flex-direction:column;align-items:stretch}.continent-filter{justify-content:space-between}.continent-filter select{width:min(100%,250px);min-width:0}}.globe-map .scene-tooltip{background:var(--road);color:#fff;border:1px solid #ffffff40;border-radius:8px;padding:.45rem .6rem;font-size:.7rem;font-weight:850;box-shadow:0 8px 20px #00000052}.point-click-label{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;cursor:pointer;z-index:550;background:#202431eb;border:1px solid #ffffff40;border-radius:8px;padding:.45rem .6rem;font-size:.7rem;font-weight:850;position:absolute;top:.75rem;left:50%;transform:translate(-50%);box-shadow:0 8px 20px #00000052}.population-html-label{pointer-events:none;text-align:center;white-space:nowrap}.city-html-label{opacity:0;transition:opacity .16s}.city-html-pin{opacity:0;pointer-events:none;transition:opacity .16s}.top-city-label-visible .top-city-html-label,.top-city-label-visible .top-city-html-pin,.all-city-labels-visible .city-html-label,.all-city-labels-visible .city-html-pin{opacity:1}.city-label-collision-hidden{opacity:0!important}.city-html-pin-dot{background:#fff;border:2px solid #050608;border-radius:50%;width:10px;height:10px;display:block;transform:translate(-50%,-50%);box-shadow:0 1px 5px #000c}.population-html-label-content{transform-origin:50%;flex-direction:column;align-items:center;line-height:1.05;display:flex;transform:translateY(-52%)}.city-html-label .population-html-label-content{transform:translateY(calc(-52% - .35rem)) scale(var(--city-label-scale,1))}.population-html-label-name,.population-html-label-population{color:var(--text);paint-order:stroke fill;text-shadow:-2px -2px #000,0 -2px #000,2px -2px #000,-2px 0 #000,2px 0 #000,-2px 2px #000,0 2px #000,2px 2px #000}.population-html-label-name{letter-spacing:-.025em;font-size:clamp(1.25rem,1.7vw,1.55rem);font-weight:950}.population-html-label-population{margin-top:.18rem;font-size:clamp(.88rem,1.15vw,1.05rem);font-weight:500}.population-center-html-label .population-html-label-name{color:var(--yellow);font-size:clamp(1.45rem,2vw,1.8rem)}.show-zoom-debug:after{color:#fff;content:"Camera altitude: " attr(data-camera-altitude);pointer-events:none;z-index:600;background:#050608e0;border:1px solid #ffffff40;border-radius:8px;padding:.45rem .6rem;font-size:.72rem;font-weight:800;position:absolute;top:.75rem;right:.75rem}.map-instruction{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--road-border);color:#fff;white-space:nowrap;background:#202431e0;border-radius:999px;padding:.65rem .9rem;font-size:.72rem;font-weight:850;box-shadow:0 8px 24px #00000047}.map-controls{z-index:500;justify-content:center;align-items:center;gap:.65rem;width:max-content;max-width:calc(100% - 2rem);display:flex;position:absolute;bottom:1.25rem;left:50%;transform:translate(-50%)}.map-action-button{white-space:nowrap;flex:none;min-height:42px;padding:.65rem 1rem;font-size:.78rem}.map-lock-button:disabled{box-shadow:none;color:#ffffffb8;filter:none;opacity:1;background:#6f7580}.map-result-pill{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);white-space:nowrap;background:#202431eb;border:1px solid;border-radius:999px;padding:.65rem .9rem;font-size:.78rem;font-weight:900;box-shadow:0 8px 24px #00000047}.summary-screen{place-items:center;min-height:100svh;padding:2rem 1rem 7rem;animation:.45s both screen-in;display:grid}.summary-card{border-radius:var(--radius-xl);text-align:center;width:100%;max-width:560px;padding:clamp(1.4rem,4vw,2.3rem)}.summary-card>h2{letter-spacing:-.08em;text-shadow:0 6px #0003;margin:0;font-size:clamp(4rem,14vw,6.5rem);line-height:.9}.score-out-of{color:var(--muted);margin:.6rem 0 1rem;font-weight:800}.score-bar{background:#ffffff1a;border-radius:999px;height:8px;overflow:hidden}.score-bar span{background:linear-gradient(90deg, var(--red), var(--yellow), var(--green));border-radius:inherit;height:100%;display:block}.results-list{text-align:left;gap:.55rem;margin:1.4rem 0;padding:0;list-style:none;display:grid}.results-list li{list-style:none}.summary-round-button{color:var(--text);cursor:pointer;text-align:left;background:#ffffff12;border:1px solid #ffffff1a;border-radius:14px;grid-template-columns:30px 1fr auto;align-items:center;gap:.75rem;width:100%;padding:.7rem .8rem;transition:background .15s,border-color .15s,transform .15s;display:grid}.summary-round-button:hover,.summary-round-button:focus-visible{border-color:var(--yellow);background:#ffffff1f;transform:translateY(-1px)}.summary-round-button>span{background:#ffffff1a;border-radius:50%;place-items:center;width:28px;height:28px;font-size:.72rem;font-weight:900;display:grid}.results-list div{display:grid}.results-list strong{font-size:.88rem}.results-list small{color:var(--muted);font-size:.7rem}.results-list b{font-size:1rem}.site-footer{color:#ffffff8c;z-index:600;justify-content:center;align-items:center;gap:1rem;width:calc(100% - 2rem);font-size:.66rem;font-weight:750;display:flex;position:fixed;bottom:1.15rem;left:50%;transform:translate(-50%)}.site-footer button{color:inherit;cursor:pointer;background:0 0;padding:0;text-decoration:underline}.modal-backdrop{z-index:2000;background:#050816ad;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-card{border-radius:var(--radius-xl);width:100%;max-width:580px;max-height:calc(100svh - 2rem);padding:1.3rem;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.modal-header .eyebrow{margin:0}.modal-close{color:#fff;cursor:pointer;background:#ffffff1a;border-radius:50%;width:34px;height:34px;font-size:1.2rem;line-height:1}.density-example{background:#0a102573;border:1px solid #ffffff1c;border-radius:18px;margin:0 0 1rem;padding:.6rem .6rem .45rem;overflow:hidden}.density-example svg{width:100%;height:auto;display:block}.density-example figcaption{color:var(--muted);text-align:center;text-transform:uppercase;letter-spacing:.08em;padding:0 .45rem .35rem;font-size:.68rem;font-weight:800}.how-explanation{color:var(--muted);margin-bottom:1rem;font-size:.84rem;font-weight:650;line-height:1.55}.how-explanation p{margin:0 0 .7rem}.how-explanation p:last-child{color:#fff;margin-bottom:0}.modal-copy,.modal-note{color:var(--muted);font-size:.88rem;line-height:1.6}.modal-copy a{color:var(--yellow);font-weight:850}.how-highlight{color:var(--yellow);font-weight:900}.modal-note{border-left:3px solid var(--yellow);color:#fff;background:#ffd4471a;border-radius:0 10px 10px 0;padding:.75rem}.loading-screen{text-align:center;place-content:center;gap:.8rem;min-height:100svh;display:grid}.loading-screen p{color:var(--muted);font-size:.78rem;font-weight:800}@media (max-width:820px){.game-layout{grid-template-rows:auto minmax(0,1fr);gap:.55rem}.prompt-card{padding:.55rem .75rem}.round-title,.round-prompt{font-size:.76rem}.map-card,.map-wrap,.globe-map{min-height:0}.game-header{grid-template-columns:auto 1fr auto}.round-dots{gap:.28rem}.round-dots span{min-width:28px;height:28px;padding:0 .28rem;font-size:.58rem}.map-controls{gap:.5rem;bottom:.85rem}.map-instruction{text-align:center;white-space:normal;max-width:220px;line-height:1.15}}@media (max-width:520px){.landing-screen{padding:.6rem .7rem 2.7rem}.hero h1{font-size:clamp(3.25rem,min(20vw,11vh),5rem)}.hero-orbit{display:none}.hero .hero-actions{gap:.7rem;margin-top:1.4rem;display:grid}.hero-tagline{max-width:19rem;margin-top:clamp(1.45rem,3.5vh,1.85rem);font-size:clamp(.82rem,4vw,.95rem);line-height:1.35}.hero-actions .primary-button,.hero-actions .secondary-button{width:100%;min-height:44px;padding:.6rem 1rem;font-size:.78rem}.world-region-options{min-width:min(260px,100vw - 2rem);max-height:13rem}.game-screen{padding:.65rem .65rem 2.8rem}.prompt-card{padding:.45rem .6rem}.round-title,.round-prompt{font-size:.7rem}.map-controls{gap:.4rem;max-width:calc(100% - 1rem);bottom:.75rem}.map-instruction,.map-result-pill{padding:.5rem .6rem;font-size:.62rem}.map-instruction{max-width:min(190px,58vw)}.population-html-label-name{font-size:clamp(1.05rem,4.8vw,1.25rem)}.population-html-label-population{font-size:clamp(.75rem,3.5vw,.9rem)}.population-center-html-label .population-html-label-name{font-size:clamp(1.2rem,5.5vw,1.45rem)}.map-action-button{gap:.4rem;min-height:38px;padding:.5rem .7rem;font-size:.68rem}.logo-button strong{display:none}.brand-mark{width:36px;height:36px}.icon-button{width:40px;height:40px}.map-card{border-radius:21px;min-height:0;padding:.35rem}.map-wrap,.globe-map{min-height:0}.map-wrap{border-radius:17px}.site-footer span{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
