*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial;color:#17232d}button,input{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}.hidden{display:none!important}#world{position:fixed;inset:0;background:#a4c8c4}#world canvas{display:block;width:100%;height:100%;touch-action:none}.shade{pointer-events:none;position:fixed;inset:0;background:linear-gradient(180deg,rgba(15,45,38,.12),transparent 25%,transparent 70%,rgba(15,45,38,.1))}.topbar{position:absolute;z-index:5;top:clamp(12px,3vh,28px);left:50%;transform:translateX(-50%);width:min(850px,calc(100% - 30px));height:62px;border-radius:45px;background:#fffefaee;backdrop-filter:blur(20px);box-shadow:0 12px 45px #183c3a29;display:flex;align-items:center;gap:20px;padding:7px 9px 7px 20px}.brand{display:flex;align-items:center;white-space:nowrap;font-size:21px;letter-spacing:-.8px}.brand b span{color:#1caf75}.brand small{font-size:12px;color:#78817e;margin-top:7px}.crown{font-size:29px;color:#e7a436;margin-right:9px}.metrics{display:flex;align-items:center;gap:9px;flex:1;font-size:13px;font-weight:600;color:#63716f;white-space:nowrap}.live-dot{display:inline-block;background:#20bd79;width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 4px #20bd7919}.sep{height:20px;border-left:1px solid #e2e6e5;margin:0 5px}.account{display:flex;gap:6px}.btn{border:0;border-radius:30px;padding:12px 20px;font-weight:700;white-space:nowrap}.btn.green{background:#18b979;color:white;box-shadow:0 5px 13px #18b9793b}.btn.pale{background:#f4f6f7;color:#26313c;border:1px solid #e4e8e9}.top-actions{position:absolute;z-index:4;top:101px;left:50%;transform:translateX(-50%);display:flex;gap:7px;max-width:calc(100vw - 20px);overflow-x:auto;scrollbar-width:none}.chip{border:1px solid #e9eceb;border-radius:30px;background:#fffffff2;padding:10px 16px;font-weight:700;font-size:12px;white-space:nowrap;box-shadow:0 3px 12px #203d3422}.chip.active{background:#123f35;color:white}.ticker{position:absolute;z-index:3;top:151px;left:50%;transform:translateX(-50%);background:#0b8756ed;color:#fff;border-radius:50px;text-align:center;padding:9px 28px;min-width:min(540px,85vw);font-size:12px;font-weight:700;box-shadow:0 7px 18px #144a3235}.ticker .live-dot{background:#eaffb5;width:6px;height:6px;margin-right:5px}.left-rail{position:absolute;z-index:3;left:24px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px}.left-rail a,.map-tools button{width:46px;height:46px;display:grid;place-items:center;background:#fffffff0;border:1px solid #e8eceb;border-radius:50%;box-shadow:0 5px 17px #24453b2c;font-size:20px}.map-tools{position:absolute;z-index:3;right:24px;top:45%;display:grid;gap:9px}.map-tools button{font-size:25px}.map-label,.map-water{pointer-events:none;position:absolute;z-index:1;left:31%;top:36%;color:#436d59;font-weight:900;letter-spacing:6px;font-size:clamp(14px,2.6vw,30px);opacity:.6;text-shadow:0 1px #dcebd5}.map-label span{color:#e7ae54}.map-water{top:59%;left:56%;color:#d9f5f8;letter-spacing:4px;font-size:17px}.bottom-panel{position:absolute;z-index:4;bottom:18px;left:50%;transform:translateX(-50%);width:min(500px,calc(100vw - 24px));padding:14px 16px 12px;background:#fffffff2;backdrop-filter:blur(20px);border:1px solid #ffffff;box-shadow:0 10px 35px #223c3438;border-radius:25px;text-align:center}.avatars{display:flex;justify-content:center;margin-top:-28px}.avatars span{display:grid;place-items:center;background:#e3f1e9;border:3px solid white;border-radius:50%;width:36px;height:36px;margin-left:-6px;font-size:20px}.bottom-panel p{margin:7px 0 11px;font-size:14px}.bottom-panel small{color:#78817e;font-size:12px}.bottom-buttons{display:flex;gap:8px}.bottom-buttons .green{flex:1}.social{margin-top:10px;font-size:11px;color:#7e8886}.social span{color:#18b979}.cookie{position:absolute;z-index:6;bottom:24px;left:24px;width:min(360px,calc(100vw - 48px));background:#fffffff5;border-radius:22px;padding:20px;box-shadow:0 10px 30px #1a393534}.cookie p{font-size:13px;line-height:1.6;margin:0 0 12px}.cookie a{color:#168fbb}.cookie>div{display:flex;gap:8px}.cookie .btn{flex:1;padding:11px}.location-card{position:absolute;z-index:4;right:25px;bottom:155px;width:min(330px,calc(100vw - 40px));background:white;border-radius:20px;padding:25px;box-shadow:0 12px 38px #15372d48}.location-card h2{margin:7px 0}.location-card p{font-size:14px;line-height:1.6;color:#68736d}.card-tag{font-size:11px;font-weight:900;letter-spacing:2px;color:#19aa71}.card-link{display:inline-block;background:#14aa70;color:white;border-radius:22px;padding:11px 16px;font-size:13px;font-weight:700}.close{position:absolute;right:14px;top:10px;border:0;background:none;font-size:27px;color:#62706c}.modal{position:fixed;z-index:10;inset:0;display:grid;place-items:center}.modal-overlay{position:absolute;inset:0;background:#112b2ab0;backdrop-filter:blur(8px)}.modal-box{position:relative;background:white;border-radius:25px;padding:30px;width:min(410px,calc(100vw - 28px));box-shadow:0 20px 60px #112a2a55}.modal-logo{color:#e4a32f;font-size:35px}.modal-box h2{font-size:26px;margin:5px 0}.modal-box>p{color:#6d7c79;font-size:14px}.modal-box label{display:block;font-size:12px;font-weight:800;margin-top:16px}.modal-box input{display:block;width:100%;padding:13px;border:1px solid #dce5e1;border-radius:11px;margin-top:6px}.modal-box .full{width:100%;margin-top:18px}.switch{display:block;margin:15px auto 0;background:none;border:0;color:#159f68;font-weight:700}.error{color:#b62e2e!important}.loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:30px;padding:14px 22px;font-weight:800;box-shadow:0 10px 35px #233b3b33}.hint{position:absolute;bottom:12px;right:20px;color:#fff;text-shadow:0 2px 8px #203d3b;font-size:11px;pointer-events:none}@media(max-width:700px){.topbar{height:55px;gap:8px;padding:6px 7px 6px 12px}.brand{font-size:16px}.brand small{display:none}.crown{font-size:22px;margin-right:4px}.metrics{font-size:10px}.metrics .sep,.metrics .sep+span{display:none}.account .btn{padding:9px 11px;font-size:11px}.top-actions{top:79px;width:calc(100vw - 22px)}.ticker{top:126px;min-width:0;width:calc(100vw - 40px);font-size:10px;padding:8px}.left-rail{left:10px;gap:7px}.left-rail a,.map-tools button{width:37px;height:37px;font-size:17px}.map-tools{right:10px}.bottom-panel{bottom:8px;padding:12px}.bottom-buttons .btn{padding:11px;font-size:12px}.cookie{bottom:145px;left:10px}.location-card{right:10px;bottom:155px}.map-label{left:22%;top:39%}.hint{display:none}}
/* V3 visual polish */
.topbar{box-shadow:0 12px 40px #193f4220!important}.chip{backdrop-filter:blur(14px)}.ticker{background:#136b60!important;color:#fff!important}.location-card{border:1px solid #d9e6e5;box-shadow:0 16px 55px #193f4240!important}

/* V4 application discovery interface */
.app-search{position:absolute;z-index:5;top:197px;left:50%;transform:translateX(-50%);display:flex;gap:8px}.app-search button{border:1px solid #e0eae5;background:#ffffffed;border-radius:40px;padding:10px 17px;font-weight:750;box-shadow:0 5px 18px #173d3524;white-space:nowrap}.app-search span{color:#8a9991;font-size:11px;margin-left:25px}.discovery{position:absolute;z-index:8;top:243px;left:50%;transform:translateX(-50%);width:min(430px,calc(100vw - 28px));max-height:min(54vh,500px);overflow:auto;background:#fff;border:1px solid #dcebe4;box-shadow:0 22px 65px #143a3540;border-radius:22px;padding:16px}.discovery-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.discovery-head button{border:0;background:#f1f5f3;border-radius:50%;font-size:22px;width:32px;height:32px}.discovery input{width:100%;padding:13px 15px;border-radius:12px;border:1px solid #d8e2dd;outline-color:#1aa978}.discovery small{color:#84938a;font-size:11px}.search-results{margin:10px 0;display:grid;gap:5px}.result-item{width:100%;text-align:left;border:0;background:#f5f9f7;padding:12px;border-radius:12px;display:flex;gap:12px;align-items:center}.result-item:hover,.result-item:focus{background:#e7f5ed}.result-item .result-icon{font-size:22px}.result-item strong,.result-item small{display:block}.result-item small{color:#718179;margin-top:2px}.save-place{background:#f1f7f4;border:1px solid #d9e9e0;color:#17734e;border-radius:20px;padding:10px 12px;font-weight:750;margin:0 7px 0 0}.app-toast{position:absolute;z-index:12;top:260px;right:20px;pointer-events:none;background:#173d35;color:white;border-radius:16px;padding:12px 18px;opacity:0;transition:opacity .2s}.app-toast.show{opacity:1}@media(max-width:700px){.app-search{top:166px}.app-search button{font-size:11px;padding:9px 11px}.app-search span{display:none}.discovery{top:207px;max-height:44vh}.ticker{top:122px}.location-card{bottom:145px}}

/* V6 floating district navigation */
.v6-district-nav{position:fixed;bottom:116px;left:50%;transform:translateX(-50%);z-index:8;display:flex;gap:7px;max-width:calc(100vw - 28px);overflow-x:auto;padding:7px;background:rgba(255,255,255,.93);border:1px solid rgba(255,255,255,.85);border-radius:22px;box-shadow:0 12px 36px #15352c24;scrollbar-width:none}.v6-district-nav button{border:0;border-radius:14px;padding:10px 13px;white-space:nowrap;background:#eaf2ee;color:#163d35;font-weight:700;cursor:pointer}.v6-district-nav button:hover,.v6-district-nav button.selected{background:#117d5c;color:white}.v6-help{position:fixed;bottom:92px;left:50%;transform:translateX(-50%);z-index:6;background:#123d36cf;color:white;padding:4px 13px;border-radius:30px;font-size:11px;white-space:nowrap;pointer-events:none}@media(max-width:750px){.v6-district-nav{bottom:105px;left:10px;right:10px;transform:none;max-width:none}.v6-help{display:none}}

/* V7: responsive district navigation and improved app affordances */
.v6-district-nav{bottom:132px;scroll-snap-type:x proximity}.v6-district-nav button{scroll-snap-align:center;transition:background .2s,transform .2s}.v6-district-nav button:active{transform:scale(.95)}
.top-actions{scroll-snap-type:x proximity}.chip{scroll-snap-align:center}.location-card{max-height:min(55vh,440px);overflow:auto}.location-card .card-link{margin-top:10px}.map-tools button:hover,.left-rail a:hover{background:#dcf4e7;transform:translateY(-1px)}
@media(max-width:750px){.v6-district-nav{bottom:120px}.bottom-panel{bottom:8px}.v6-help{display:none}.map-tools{top:48%}.location-card{bottom:175px;max-height:40vh}}
@media(prefers-reduced-motion:reduce){.v6-district-nav button{transition:none}}

/* V8: optional city lighting controls */
.v8-light{position:fixed;z-index:7;top:290px;right:22px;display:flex;gap:5px;background:#ffffffeb;border:1px solid #e2eae5;padding:6px;border-radius:22px;box-shadow:0 8px 28px #123a3329}.v8-light button{border:0;background:transparent;color:#23463d;font-weight:750;padding:9px 11px;border-radius:16px;cursor:pointer}.v8-light button.selected{background:#137e5a;color:white}.v8-light button:focus-visible{outline:3px solid #e5a74b;outline-offset:2px}@media(max-width:750px){.v8-light{top:auto;bottom:183px;right:10px;gap:2px;padding:4px}.v8-light button{padding:7px 8px;font-size:11px}}

/* V9 public discovery / live city separation */
.location-card{width:auto;min-width:170px;max-width:min(340px,calc(100vw - 30px));padding:18px 46px 18px 20px;bottom:200px;border-radius:18px}.location-card h2{font-size:18px;line-height:1.3;margin:0;overflow-wrap:anywhere}.live-entry{position:fixed;z-index:7;bottom:210px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:8px 12px;background:#fffffff2;border:1px solid #e0eee5;border-radius:22px;box-shadow:0 8px 28px #15352c28}.live-entry small{font-size:11px;max-width:180px;color:#61756b}.app-search{z-index:7}.discovery{z-index:9}.search-results{max-height:45vh;overflow-y:auto}.result-item:focus-visible,.chip:focus-visible,.btn:focus-visible{outline:3px solid #e4a32f;outline-offset:2px}@media(max-width:750px){.live-entry{bottom:260px;left:50%;width:min(350px,calc(100vw - 25px));justify-content:center}.live-entry .btn{font-size:12px;padding:10px 12px}.live-entry small{font-size:10px}.location-card{bottom:320px;right:10px}.discovery{max-height:55vh}}

/* V10 visual redesign based on approved mockup; interactive Three.js city remains the map */
body{color:#f7f9ff;background:#09192d}.shade{background:linear-gradient(90deg,#061326b8 0%,#08172b52 22%,transparent 48%),linear-gradient(180deg,#0613273b,transparent 38%,#06132766 88%)}
.topbar{top:0;left:0;transform:none;width:100%;height:76px;border-radius:0;background:#07182bf2;border-bottom:1px solid #ffffff29;box-shadow:none!important;padding:10px 26px;gap:22px}.brand{color:white;font-size:27px}.brand b span{color:#ffcf70}.brand small{color:#b8c4d3}.v10-mainnav{display:flex;align-items:center;gap:20px;margin:auto}.v10-mainnav a,.v10-mainnav button{background:none;border:0;color:#e9f0f9;font-size:13px;font-weight:700;white-space:nowrap}.v10-mainnav a:first-child{border-bottom:2px solid #ffd277;padding-bottom:8px}.metrics{display:none}.account .btn.green,.v10-gold{background:#ffce72;color:#121c2b;box-shadow:0 5px 14px #050b1429;border:0;border-radius:12px;padding:12px 20px;font-weight:850}.account .btn.pale{background:#12253b;color:white;border:1px solid #72829a}.v10-hero{position:absolute;z-index:4;left:32px;top:105px;width:270px;pointer-events:none;text-shadow:0 2px 9px #0007}.v10-hero>*{pointer-events:auto}.v10-hero h1{font-size:clamp(38px,4.4vw,66px);line-height:.96;margin:6px 0 14px;letter-spacing:-2px}.v10-hero p{font-size:15px;line-height:1.55;margin:0 0 17px}.v10-hero small{display:block;font-size:12px;line-height:1.5;margin-top:10px;max-width:220px}.v10-eyebrow{color:#ffcf76;font-size:11px!important;font-weight:800;letter-spacing:2px}.top-actions{display:none}.ticker{display:none}.left-rail{display:none}.bottom-panel{display:none}.live-entry{display:none}.app-search{left:auto;right:210px;top:17px;transform:none}.app-search button{background:#1a314f;color:#dbe6f5;border:1px solid #5e7491;box-shadow:none}.app-search #open-locations{display:none}.discovery{top:84px;left:auto;right:130px;transform:none}.v10-district-heading{position:fixed;bottom:180px;left:24px;z-index:8;background:#091a2de8;padding:10px 15px;border-radius:10px;color:#e7f1fb;font-size:13px;font-weight:800}.v6-district-nav{left:24px;bottom:78px;transform:none;display:flex;flex-direction:column;gap:0;max-height:135px;overflow:auto;width:185px;border-radius:12px;background:#08182ee8;padding:7px;border:1px solid #ffffff2e}.v6-district-nav button{background:transparent;color:#e5edfa;text-align:left;padding:6px 10px;border-radius:7px;font-size:12px}.v6-help,.map-water,.map-label,.hint{display:none}.v8-light{top:94px;right:16px;background:#08182de8;border-color:#ffffff30}.v8-light button{color:white}.map-tools{top:185px;right:18px}.map-tools button{border-radius:12px;background:#0a1a30e8;color:white;border-color:#ffffff3a}.v10-categories{position:fixed;bottom:0;left:0;right:0;z-index:6;display:flex;gap:10px;overflow-x:auto;padding:12px 20px;background:#071526f5;border-top:1px solid #ffffff29}.v10-categories button{min-width:100px;flex:1;background:#16293f;color:#f5f7ff;border:1px solid #ffffff15;border-radius:12px;padding:12px 8px;font-size:22px;display:grid;gap:7px;place-items:center}.v10-categories button span{font-size:12px}.v10-categories button.selected{background:#0c427e;border-color:#168fff}.location-card{top:26%;right:24px;bottom:auto;width:340px;max-width:calc(100vw - 30px);padding:18px;border-radius:18px;color:#122033;background:#f8fafc;box-shadow:0 25px 70px #0614268c}.location-card h2{font-size:21px}.location-card h3{font-size:14px;margin:20px 0 12px}.v10-card-head{display:flex;align-items:center;gap:12px;padding-right:25px}.v10-card-head>span{font-size:30px}.v10-card-head small{color:#66798d}.v10-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.v10-services span{background:#edf3f8;border-radius:9px;min-height:64px;display:grid;place-items:center;text-align:center;padding:8px;font-size:12px;font-weight:700}.v10-card-note{margin-top:14px;background:#e4f0ff;padding:13px;border-radius:10px;font-size:12px;line-height:1.5}.cookie{z-index:11}.v10-gold{cursor:pointer}.v10-mainnav button{cursor:pointer}
@media(max-width:900px){.v10-mainnav{display:none}.app-search{right:190px}.v10-hero{top:95px;left:17px;width:200px}.v10-hero h1{font-size:38px}.v10-hero p{font-size:12px}.v10-hero small{font-size:10px}.v10-categories button{min-width:90px}.location-card{right:10px;top:38%;width:290px}}
@media(max-width:600px){.topbar{height:64px;padding:8px}.brand{font-size:19px}.account{margin-left:auto}.account .btn{font-size:10px;padding:9px!important}.app-search{top:74px;right:8px}.app-search button{font-size:11px}.v10-hero{top:125px;left:12px;width:150px}.v10-hero h1{font-size:33px}.v10-hero p{font-size:11px}.v10-gold{padding:10px;font-size:11px}.v8-light{top:120px;right:8px}.v8-light button{font-size:10px;padding:6px}.map-tools{right:8px;top:225px}.v10-district-heading{bottom:178px;left:10px}.v6-district-nav{bottom:80px;left:10px;width:155px;max-height:100px}.location-card{top:auto;bottom:145px;right:8px;max-height:45vh;overflow:auto;width:min(300px,calc(100vw - 20px))}.v10-categories{padding:8px;gap:6px}.v10-categories button{min-width:76px;padding:8px;font-size:18px}.v10-categories button span{font-size:10px}.discovery{top:120px;right:8px}}

/* V11: immersive city-first layout; controls float above the world */
#world{position:fixed;inset:0} .v10-categories{opacity:.95} .location-card{max-width:300px} .location-card .v10-services:empty{display:none} .v10-hero{pointer-events:none} .v10-hero button{pointer-events:auto}
@media(max-width:700px){.v10-hero{max-width:65vw}.v10-hero h1{font-size:clamp(24px,7vw,42px)}.v10-hero p{font-size:12px}}

/* V12: location categories live as floating markers on their 3D destinations. */
.v10-categories,.top-actions,.left-rail{display:none!important}
.v10-hero{max-width:270px}.v10-hero h1{font-size:clamp(32px,4vw,58px)}
.v6-district-nav{max-height:180px;overflow-y:auto}
.location-card{width:min(300px,calc(100vw - 24px))}
@media(max-width:700px){.v10-hero{max-width:180px}.v10-district-heading{bottom:145px}.v6-district-nav{bottom:38px;max-height:95px}.location-card{bottom:115px}}

/* V12.1: Keep the 3D map visible on small screens. Lighting controls open only on demand. */
.mobile-light-toggle{display:none}
@media(max-width:700px){
 .mobile-light-toggle{display:flex;align-items:center;justify-content:center;gap:5px;position:fixed;z-index:10;top:118px;right:10px;width:67px;height:36px;border:1px solid #ffffff50;border-radius:11px;background:#0a1a30ed;color:#fff;font-size:12px;font-weight:700;box-shadow:0 4px 18px #0003}
 .v8-light{display:none!important;position:fixed!important;z-index:11!important;top:158px!important;right:10px!important;left:auto!important;width:max-content!important;max-width:calc(100vw - 20px)!important;padding:6px!important;gap:4px!important;box-shadow:0 8px 30px #0005!important}
 .v8-light.mobile-open{display:flex!important}
 .v8-light button{font-size:11px!important;padding:8px 9px!important}
 .map-tools{top:168px!important;right:10px!important}
}
@media(max-width:380px){.mobile-light-toggle{top:114px;right:7px}.v8-light{right:7px!important}.map-tools{right:7px!important}}

/* V12.2 — desktop header & app-style authentication */
@media(min-width:901px){
 .topbar{display:grid;grid-template-columns:minmax(205px,1fr) auto minmax(380px,1fr);align-items:center;gap:20px;height:78px;padding:0 clamp(20px,2.5vw,48px)}
 .brand{min-width:0;font-size:clamp(22px,1.7vw,28px)}
 .v10-mainnav{margin:0;display:flex;gap:clamp(14px,1.7vw,28px);justify-content:center}
 .v10-mainnav a,.v10-mainnav button{font-size:14px;padding:10px 0}
 .account{justify-self:end;display:flex;gap:10px;align-items:center}
 .account .btn{padding:12px 18px!important}
 .app-search{position:fixed;top:18px;right:clamp(195px,15.5vw,245px);left:auto;transform:none;z-index:9}
 .app-search button{min-width:clamp(145px,14vw,220px);display:flex;align-items:center;justify-content:space-between}
 .discovery{right:clamp(195px,15.5vw,245px)}
}
@media(min-width:901px) and (max-width:1190px){
 .topbar{grid-template-columns:190px auto 190px;gap:12px;padding:0 17px}.brand{font-size:22px}.v10-mainnav{gap:12px}.v10-mainnav a,.v10-mainnav button{font-size:12px}.account .btn{padding:10px 13px!important}.app-search{top:88px;right:16px}.discovery{right:16px;top:135px}
}
@media(max-width:900px){.topbar{display:flex;justify-content:space-between;gap:8px}.account{margin-left:auto}.app-search{right:12px}}
.modal{padding:16px;overflow-y:auto;overscroll-behavior:contain;z-index:40}
.modal-box{width:min(780px,calc(100vw - 32px));padding:0;display:grid;grid-template-columns:minmax(240px,.9fr) minmax(320px,1fr);overflow:hidden;border-radius:24px;max-height:min(720px,calc(100dvh - 36px));background:#fff;box-shadow:0 30px 90px #0715268a}
.auth-art{background:linear-gradient(145deg,#0b2539,#0e7059);color:white;padding:38px 28px;display:flex;flex-direction:column;justify-content:center;gap:14px;min-height:480px}
.auth-art-mark{font-size:52px;color:#ffce72}.auth-art strong{font-size:31px;letter-spacing:-1.3px}.auth-art small{color:#ffda91;letter-spacing:1.4px;text-transform:uppercase;font-size:11px;font-weight:800}.auth-art p{font-size:15px;line-height:1.7;color:#dbeee8;max-width:245px}
.auth-main{position:relative;padding:38px 34px 28px;overflow-y:auto;min-width:0}.auth-main .close{top:11px;right:14px;z-index:2}.auth-tabs{display:flex;background:#f0f4f7;border-radius:14px;padding:5px;gap:4px;margin-bottom:23px}.auth-tabs button{flex:1;border:0;background:transparent;color:#526477;border-radius:11px;padding:11px;font-size:13px;font-weight:800}.auth-tabs button[aria-pressed=true]{background:#fff;color:#0a6752;box-shadow:0 3px 12px #132d3c16}
.modal-logo{font-size:24px}.modal-logo span{font-size:14px;font-weight:800;color:#0d263a}.modal-box h2{font-size:29px;letter-spacing:-.7px;margin:8px 0 5px}.modal-box .auth-main>p{font-size:13px;color:#667789}.modal-box label{font-size:12px;color:#23384b;margin-top:15px}.modal-box input{border:1px solid #d4dee7;background:#f8fafc;min-height:47px;outline:none}.modal-box input:focus{border-color:#16a778;box-shadow:0 0 0 3px #16a77820}.auth-password{position:relative}.auth-password input{padding-right:65px}.auth-password button{position:absolute;right:7px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#0d7860;font-size:12px;font-weight:800;padding:9px}.modal-box .full{background:#0a9b70;color:white;border-radius:12px;min-height:48px}.modal-box .full:disabled{opacity:.7;cursor:wait}.auth-privacy{font-size:11px!important;text-align:center;color:#82909e!important;line-height:1.5}.modal-box .switch{font-size:13px}.modal-overlay{background:#061528c9;backdrop-filter:blur(10px)}
@media(max-width:650px){.modal{padding:10px;align-items:center}.modal-box{display:block;width:min(430px,calc(100vw - 20px));max-height:calc(100dvh - 20px);border-radius:22px}.auth-art{display:none}.auth-main{padding:26px 22px 22px;max-height:calc(100dvh - 20px)}.modal-box h2{font-size:25px}.auth-tabs{margin-bottom:17px}.modal-box label{margin-top:12px}.modal-box input{font-size:16px}.auth-main .close{top:8px}}

/* V12.3: compact, accessible cookie preferences; no obstruction of the 3D map. */
.cookie{position:fixed!important;left:18px!important;bottom:18px!important;top:auto!important;z-index:30!important;width:min(365px,calc(100vw - 36px))!important;max-height:min(520px,calc(100dvh - 36px));overflow-y:auto;background:#fff!important;color:#15283a;border:1px solid #dce6ee;border-radius:18px!important;padding:17px!important;box-shadow:0 18px 50px #07152645!important;text-shadow:none!important}
.cookie-heading{display:flex;align-items:center;gap:10px;margin-bottom:10px}.cookie-symbol{width:37px;height:37px;border-radius:11px;display:grid;place-items:center;background:#fff0ce;color:#9e6710;font-size:24px}.cookie-heading strong{display:block;font-size:15px}.cookie-heading small{display:block;color:#687c8c;font-size:11px;margin-top:2px}.cookie p{font-size:12px!important;line-height:1.5!important;margin:0 0 14px!important;color:#506274}.cookie-options{margin-bottom:12px;border:1px solid #e0e7ed;border-radius:11px;overflow:hidden}.cookie-option{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px;border-bottom:1px solid #e0e7ed}.cookie-option:last-child{border:0}.cookie-option strong{display:block;font-size:12px}.cookie-option small{display:block;font-size:11px;color:#697b8c;margin-top:3px}.cookie-required{font-size:10px;white-space:nowrap;color:#167958;font-weight:800}.cookie-option input{width:19px;height:19px;accent-color:#087b60;flex-shrink:0}.cookie-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px!important}.cookie-actions button{min-width:0;min-height:39px;padding:8px 6px;border-radius:10px;font-size:11px;font-weight:800;cursor:pointer}.cookie-secondary{border:1px solid #d9e2eb;background:#f4f7fa;color:#253c50}.cookie-primary{border:0;background:#0b956c;color:#fff}.cookie-links{display:flex!important;align-items:center;gap:9px!important;margin-top:10px;font-size:11px}.cookie-links a{color:#126f94}.cookie-links button{border:0;background:none;color:#526b7c;cursor:pointer;font-size:11px}.cookie-settings{position:fixed;left:13px;bottom:8px;z-index:8;background:#0a1b30db;color:#dceaf6;border:1px solid #ffffff35;border-radius:20px;padding:5px 10px;font-size:10px;cursor:pointer;opacity:.76}.cookie:not(.hidden)~.cookie-settings{display:none}
@media(max-width:700px){.cookie{left:10px!important;bottom:10px!important;width:min(340px,calc(100vw - 20px))!important;max-height:min(450px,calc(100dvh - 20px))}.cookie-settings{left:8px;bottom:7px;font-size:9px}}

/* V12.4: unobtrusive city initialization status (no center overlay). */
.city-load-status{position:absolute;right:16px;bottom:16px;z-index:15;display:inline-flex;align-items:center;gap:9px;max-width:calc(100% - 32px);padding:8px 12px;border-radius:999px;background:rgba(12,29,47,.85);color:#f3f8ff;font:600 12px/1.4 system-ui,-apple-system,sans-serif;box-shadow:0 4px 14px rgba(0,0,0,.16);pointer-events:none;transition:opacity .2s ease,visibility .2s ease}
.city-load-status.hidden{opacity:0;visibility:hidden}
.city-load-spinner{width:13px;height:13px;flex:none;border:2px solid rgba(255,255,255,.3);border-top-color:#ffce70;border-radius:50%;animation:ibadan-load-spin .8s linear infinite}
@keyframes ibadan-load-spin{to{transform:rotate(360deg)}}
@media(max-width:700px){.city-load-status{right:10px;bottom:10px;padding:7px 10px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.city-load-spinner{animation:none}}
\n/* V13.1 — cohesive premium desktop application shell; mobile styles remain intact. */
@media (min-width:901px) {
 body{background:#091a2b}
 .topbar{height:70px!important;display:grid!important;grid-template-columns:minmax(195px,1fr) auto minmax(365px,1fr)!important;padding:0 clamp(24px,2.8vw,48px)!important;gap:24px!important;background:rgba(7,22,39,.97)!important;backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.10)}
 .brand{font-size:clamp(22px,1.6vw,27px)!important;letter-spacing:-1px;white-space:nowrap}
 .v10-mainnav{gap:clamp(16px,2vw,32px)!important}
 .v10-mainnav a,.v10-mainnav button{font-size:13px!important;font-weight:650!important;opacity:.9;transition:opacity .2s}
 .v10-mainnav a:hover,.v10-mainnav button:hover{opacity:1;color:#ffd17c}
 .account{gap:9px!important}
 .account .btn{font-size:13px!important;padding:10px 15px!important;border-radius:10px!important}
 .app-search{top:14px!important;right:clamp(183px,15vw,235px)!important}
 .app-search #open-discovery{height:42px;min-width:clamp(155px,14vw,230px);border-radius:12px;background:rgba(28,49,73,.85);font-size:12px;padding:0 13px}
 .discovery{top:78px!important;right:clamp(183px,15vw,235px)!important}
 .shade{pointer-events:none;background:linear-gradient(90deg,rgba(4,16,30,.86) 0%,rgba(5,20,35,.65) 19%,rgba(7,22,38,.12) 42%,transparent 65%),linear-gradient(0deg,rgba(6,20,35,.36),transparent 24%);}
 .v131-city-tag{position:fixed;z-index:5;top:92px;left:clamp(26px,3.2vw,56px);display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:1.7px;font-weight:800;color:#ffce75;pointer-events:none}
 .v131-pulse{width:7px;height:7px;background:#57d8aa;border-radius:50%;box-shadow:0 0 0 4px #57d8aa25}
 .v131-tag-sub{color:#e2e9f2;border-left:1px solid #ffffff55;padding-left:11px;margin-left:4px;letter-spacing:1px}
 .v10-hero{top:clamp(165px,23vh,255px)!important;left:clamp(26px,3.2vw,56px)!important;width:clamp(280px,27vw,390px)!important;max-width:none!important;text-shadow:0 3px 24px #0013}
 .v10-hero h1{font-size:clamp(43px,4.3vw,70px)!important;line-height:1.06!important;letter-spacing:-2.8px!important;margin:12px 0 20px!important;color:#fff}
 .v10-hero h1 em{font-style:normal;color:#ffd07a}
 .v10-hero .v10-eyebrow{font-size:10px!important;letter-spacing:2.5px}
 .v10-hero>p:not(.v10-eyebrow){font-size:clamp(13px,1.06vw,16px)!important;line-height:1.75!important;color:#e0e8f0;max-width:340px}
 .v10-gold{padding:14px 22px!important;border-radius:12px!important;margin-top:6px;transition:transform .2s,box-shadow .2s}
 .v10-gold:hover{transform:translateY(-2px);box-shadow:0 9px 25px #0004}
 .v10-hero small{font-size:11px!important;color:#d1dce8;max-width:300px!important}
 .v8-light{top:92px!important;right:25px!important;padding:5px!important;border-radius:14px!important;box-shadow:0 12px 30px #06162833}
 .v8-light button{font-size:12px;padding:9px 12px!important}
 .map-tools{top:50%!important;right:25px!important;display:flex;flex-direction:column;gap:8px;transform:translateY(-40%)}
 .map-tools button{width:44px;height:44px;font-size:22px;border-radius:12px!important;box-shadow:0 8px 22px #07152533}
 .v10-district-heading{left:clamp(26px,3.2vw,56px)!important;bottom:275px!important;padding:0!important;border-radius:0!important;background:transparent!important;color:white;font-size:17px!important;letter-spacing:-.3px;display:flex;flex-direction:column;gap:5px;text-shadow:0 2px 12px #0009}
 .v10-district-heading span{font-size:10px;letter-spacing:2px;color:#ffce75}
 .v6-district-nav{left:clamp(26px,3.2vw,56px)!important;bottom:32px!important;width:205px!important;max-height:225px!important;padding:8px!important;border-radius:14px!important;box-shadow:0 18px 50px #0005;background:rgba(8,24,43,.87)!important;backdrop-filter:blur(15px)}
 .v6-district-nav button{font-size:12px!important;padding:8px 11px!important;transition:background .18s}
 .v6-district-nav button:hover{background:#ffffff22}
 .location-card{top:auto!important;bottom:35px!important;right:25px!important;border-radius:18px!important}
 .cookie-settings{opacity:.75}
}
@media(min-width:901px) and (max-height:730px){.v10-hero{top:140px!important}.v10-hero h1{font-size:46px!important}.v10-district-heading{bottom:238px!important}.v6-district-nav{max-height:190px!important}}
@media(max-width:900px){.v131-city-tag{display:none}.v10-hero h1 em{font-style:normal;color:#ffd07a}.v10-district-heading span{display:none}}
@media(prefers-reduced-motion:reduce){.v10-gold,.v6-district-nav button{transition:none!important}}
