:root{--gold:#f6bd4b;--gold2:#ffe09a;--bg:#05080d;--panel:#0d1622;--line:#24364d;--muted:#91a0b5;--green:#55d69a;--red:#ff6b70}*{box-sizing:border-box}.alv14-auth-wrap{min-height:72vh;display:grid;place-items:center;padding:60px 18px;background:radial-gradient(circle at 50% 0,#17395a 0,#07101b 38%,#05080d 72%);position:relative;overflow:hidden}.alv14-auth-glow{position:absolute;width:520px;height:520px;border-radius:50%;background:#f6bd4b14;filter:blur(60px);top:-260px}.alv14-auth-card{position:relative;width:min(470px,100%);padding:36px;border:1px solid #2a3e56;border-radius:26px;background:#0b131eec;box-shadow:0 30px 100px #0008}.alv14-logo{font-weight:1000;letter-spacing:2px;font-size:20px}.alv14-logo span{color:var(--gold)}.alv14-auth-title{margin:34px 0 25px}.alv14-auth-title h1{font-size:38px;line-height:1.05;margin:0 0 10px}.alv14-auth-title p{color:var(--muted);margin:0}.alv14-form{display:grid;gap:15px}.alv14-form label{font-size:12px;font-weight:800;color:#c8d3e2;display:grid;gap:7px}.alv14-form input{width:100%;padding:14px;border-radius:12px;border:1px solid #30445c;background:#07101a;color:white;outline:0}.alv14-form input:focus{border-color:var(--gold)}.alv14-check{display:flex!important;grid-template-columns:auto 1fr;align-items:center;display:flex!important;gap:8px!important}.alv14-check input{width:auto}.alv14-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:0;cursor:pointer;padding:14px 20px;border-radius:13px;font-weight:950;transition:.2s}.alv14-btn.primary{background:linear-gradient(135deg,#ffd675,#f0a92d);color:#111;box-shadow:0 10px 30px #f6bd4b22}.alv14-btn.ghost{background:#101c2a;border:1px solid #30455f;color:white}.alv14-btn:hover{transform:translateY(-2px)}.alv14-links{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted)}.alv14-links a{color:var(--gold2)}.alv14-error{padding:12px;border:1px solid #733b43;background:#3a171e;color:#ffb8bc;border-radius:12px;margin-bottom:15px;font-size:13px}.alv14-gate{min-height:78vh;position:relative;display:grid;place-items:center;overflow:hidden;background:linear-gradient(#07111dcc,#07111df5),linear-gradient(145deg,#153452,#080d14)}.gate-city{position:absolute;inset:auto 0 0;height:52%;background:linear-gradient(170deg,transparent 0 20%,#172333 20% 24%,#0c141f 24% 100%);opacity:.8}.gate-city:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 7%,#223247 7% 7.5%,transparent 7.5% 14%)}.gate-content{position:relative;text-align:center;max-width:780px;padding:35px}.gate-content>span{color:var(--gold);letter-spacing:4px;font-size:12px;font-weight:950}.gate-content h2{font-size:clamp(42px,7vw,76px);line-height:.98;margin:16px 0}.gate-content p{color:#a7b6c9;font-size:18px;max-width:620px;margin:0 auto 28px}.gate-content .alv14-btn{margin:5px}.alv14-top{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;background:#07101af2;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(14px)}#abuja-life-v14{background:var(--bg);color:white;min-height:100vh;font-family:Inter,system-ui,sans-serif}.brand b{font-size:18px;letter-spacing:1px}.brand span{display:block;font-size:9px;color:#73849a;letter-spacing:2px;margin-top:3px}.top-actions{display:flex;align-items:center;gap:18px}.top-actions a{color:#b8c5d5;text-decoration:none;font-size:13px}.top-actions strong{font-size:18px;color:var(--gold)}.alv14-hud{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:#1d2c3f;border-bottom:1px solid #26384d}.alv14-hud div{background:#0a121c;padding:12px 16px;display:grid;grid-template-columns:1fr auto;gap:3px}.alv14-hud small{color:#728399;font-size:9px;letter-spacing:1px}.alv14-hud b{font-size:15px}.alv14-hud i{grid-column:1/-1;height:3px;background:#23374e;border-radius:5px}.alv14-grid{max-width:1400px;margin:auto;padding:16px;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,.8fr);gap:16px}.city,.panel{background:var(--panel);border:1px solid var(--line);border-radius:22px;overflow:hidden}.citybar{display:flex;justify-content:space-between;padding:13px 16px;color:#90a1b5;font-size:12px;background:#0a121c;border-bottom:1px solid #1d2c3e}.skyline{height:570px;position:relative;overflow:hidden;background:linear-gradient(#23608b 0,#86b7c7 55%,#536b72 55%,#263238 100%)}.skyline:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 18%,#fff8 0 3%,transparent 4%),linear-gradient(transparent 70%,#111a20 70%);opacity:.35}.sun{position:absolute;right:13%;top:12%;width:75px;height:75px;background:#ffd777;border-radius:50%;box-shadow:0 0 50px #ffe69a88}.moon{display:none}.tower{position:absolute;bottom:27%;width:11%;background:linear-gradient(90deg,#182a3d,#3c5267 50%,#17283a);border:1px solid #52677a;box-shadow:inset 0 0 20px #0005}.tower:after{content:"";position:absolute;inset:10px;background:repeating-linear-gradient(90deg,#e7c86b 0 4px,transparent 4px 12px),repeating-linear-gradient(#d8ecff55 0 4px,transparent 4px 15px);opacity:.35}.t1{height:48%;left:3%}.t2{height:62%;left:17%}.t3{height:38%;left:31%}.t4{height:55%;right:22%}.t5{height:44%;right:5%}.road{position:absolute;bottom:0;left:-5%;width:110%;height:30%;background:#101820;transform:perspective(300px) rotateX(25deg)}.road:before{content:"";position:absolute;top:48%;left:0;right:0;border-top:5px dashed #d4c47a77}.car,.person{position:absolute;z-index:5}.c1{bottom:20%;left:24%;font-size:32px;animation:drive 7s linear infinite}.c2{bottom:13%;right:28%;font-size:34px;animation:drive2 9s linear infinite}.p1{bottom:22%;left:52%;font-size:28px}.p2{bottom:18%;left:62%;font-size:23px}.billboard{position:absolute;right:8%;bottom:34%;width:190px;padding:13px;border:5px solid #1a1f26;background:#f0b83e;color:#111;transform:skewY(-2deg);box-shadow:0 15px 30px #0008;text-align:center}.billboard b{display:block;font-size:18px}.billboard small{font-size:10px}.city-label{position:absolute;left:20px;bottom:28px;font-weight:950;letter-spacing:3px;color:#ffffffbb}.weather-rainy:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(110deg,transparent 0 16px,#bde9ff33 17px 18px);animation:rain .6s linear infinite}.weather-rainy .sun{opacity:.25}.weather-hazy{filter:saturate(.75)}.districts{display:flex;gap:8px;overflow:auto;padding:12px}.districts button{flex:0 0 auto;background:#101d2c;color:#aebed1;border:1px solid #2b4058;border-radius:10px;padding:9px 12px;cursor:pointer}.districts button:hover{border-color:var(--gold);color:white}.panel{padding:20px}.panel-title{display:flex;justify-content:space-between;align-items:flex-start}.panel-title span,.world-events span{color:var(--gold);font-size:9px;font-weight:950;letter-spacing:2px}.panel-title h2{margin:4px 0 0;font-size:25px}.panel-title em{font-style:normal;color:var(--green);font-size:10px}.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.quick div{padding:11px;border-radius:12px;background:#0a121c;border:1px solid #1f3145}.quick b,.quick small{display:block}.quick b{font-size:11px;margin-top:6px}.quick small{color:#687b91;font-size:9px}.panel h3{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:#71839a;margin:18px 0 9px}.buttons,.list{display:grid;gap:8px}.buttons button,.list button{border:1px solid #293e56;background:#101c2a;color:white;padding:12px;border-radius:11px;text-align:left;cursor:pointer;display:flex;justify-content:space-between}.buttons button:hover,.list button:hover{border-color:#617993;background:#152438}.buttons small,.list small{color:#7589a0}.busy{opacity:.55;pointer-events:none}.world-events{max-width:1400px;margin:0 auto 16px;padding:0 16px;display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px}.world-events>div{padding:16px;border:1px solid var(--line);background:#0c1520;border-radius:16px}.world-events b,.world-events small{display:block;margin-top:4px}.world-events small{color:#74879d;font-size:11px}.bottom{display:flex;justify-content:center;gap:30px;background:#070d15;padding:14px;border-top:1px solid #1d2b3e}.bottom a{color:#8192a8;text-decoration:none;font-size:11px}.alv14-account{max-width:1000px;margin:50px auto;padding:0 20px 70px}.profile-hero{display:flex;align-items:center;gap:18px;padding:30px;border-radius:24px;background:linear-gradient(135deg,#172c43,#0b121b);border:1px solid #2a3d55}.avatar{width:76px;height:76px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(135deg,#f6bd4b,#8b5b13);color:#111;font-size:34px;font-weight:1000}.profile-hero span{color:var(--gold);font-size:10px;letter-spacing:2px;font-weight:950}.profile-hero h1{margin:5px 0}.profile-hero p{margin:0;color:#8fa1b8}.account-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:14px 0}.account-stats div{background:#0d1622;border:1px solid #24364d;padding:18px;border-radius:15px}.account-stats b,.account-stats span{display:block}.account-stats span{color:#73859b;font-size:10px;margin-top:5px}.account-actions{display:flex;gap:10px}.alv14-msg{position:fixed;left:50%;bottom:30px;transform:translate(-50%,30px);opacity:0;background:#111e2d;color:white;border:1px solid #405672;padding:13px 18px;border-radius:13px;z-index:99;transition:.25s;box-shadow:0 15px 40px #0007}.alv14-msg.show{opacity:1;transform:translate(-50%,0)}@keyframes drive{from{transform:translateX(-80px)}to{transform:translateX(80vw)}}@keyframes drive2{from{transform:translateX(70vw)}to{transform:translateX(-100px)}}@keyframes rain{from{transform:translateY(-20px)}to{transform:translateY(20px)}}@media(max-width:950px){.alv14-grid{grid-template-columns:1fr}.panel{order:-1}.skyline{height:470px}.account-stats{grid-template-columns:repeat(3,1fr)}.world-events{grid-template-columns:1fr}}@media(max-width:600px){.alv14-top{padding:12px}.top-actions a{display:none}.alv14-hud{grid-template-columns:repeat(5,1fr)}.alv14-hud div{padding:8px 3px;text-align:center}.alv14-hud small{font-size:7px}.alv14-hud b{font-size:11px}.citybar{font-size:10px}.citybar span:nth-child(3){display:none}.skyline{height:360px}.tower{bottom:27%}.billboard{width:125px;font-size:11px;right:4%;bottom:36%}.billboard b{font-size:13px}.quick{grid-template-columns:1fr 1fr 1fr}.bottom{gap:12px;justify-content:space-around}.bottom a{font-size:9px}.alv14-auth-card{padding:26px 20px}.alv14-auth-title h1{font-size:31px}.account-stats{grid-template-columns:repeat(2,1fr)}.profile-hero{align-items:flex-start}.account-actions{flex-direction:column}}
/* V10 realistic 3D world */
.world-stage{position:relative;height:610px;overflow:hidden;background:#08121b;border-bottom:1px solid #20344a}
.map3d{position:absolute;inset:0;display:block;background:linear-gradient(#8bbbd0,#4c6670 55%,#16212a);z-index:1}
.map3d gmp-map-3d,.map3d gmp-map,.map3d google-map-3d{width:100%;height:100%;display:block}
.map-loading{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:#dfeaf5;background:linear-gradient(145deg,#0b1724,#102a3b);font-weight:950;letter-spacing:1px;z-index:2}.map-loading small{color:#91a8bd;font-weight:600;margin-top:8px}
.map3d:not(.no-google) .map-loading{display:none}
.game-overlay{position:absolute;inset:0;z-index:5;pointer-events:none}.location-chip,.player-card,.compass{position:absolute;pointer-events:auto;background:#07101dcc;border:1px solid #5c7088;border-radius:13px;backdrop-filter:blur(10px);box-shadow:0 12px 35px #0008}.location-chip{top:18px;left:18px;padding:10px 14px}.location-chip b{color:#ffd675}.player-card{left:18px;bottom:18px;padding:11px 14px;display:grid;gap:2px}.player-card span{font-size:8px;color:#ffd675;letter-spacing:2px;font-weight:950}.player-card b{font-size:14px}.player-card small{color:#91a2b5;font-size:9px}.compass{top:18px;right:18px;width:38px;height:38px;display:grid;place-items:center;color:#fff;font-weight:1000;border-radius:50%}
.map-fallback{position:absolute;inset:0;z-index:3;overflow:hidden;background:linear-gradient(#5b9eb9 0 44%,#657d76 44% 100%);display:none}.map3d.no-google~.game-overlay+.map-fallback{display:block}.fallback-sky{position:absolute;inset:0;background:radial-gradient(circle at 75% 20%,#ffe7a5 0 4%,transparent 5%),linear-gradient(180deg,#3980a3,#9cc7cb 50%,#52645e 50%)}.fallback-road{position:absolute;left:-20%;right:-20%;bottom:-10%;height:48%;background:#1d2730;transform:perspective(500px) rotateX(32deg);box-shadow:0 -20px 60px #0005}.fallback-road:before{content:"";position:absolute;left:0;right:0;top:48%;border-top:6px dashed #f5d66d99}.fallback-building{position:absolute;bottom:35%;background:linear-gradient(90deg,#172a3b,#567083,#1b2e3d);border:1px solid #91a9b8;box-shadow:inset 0 0 25px #0006}.b1{left:7%;height:45%;width:12%}.b2{left:25%;height:60%;width:14%}.b3{right:10%;height:50%;width:13%}.fallback-player{position:absolute;left:50%;bottom:28%;font-size:44px;filter:drop-shadow(0 8px 5px #0008);animation:bob .8s ease-in-out infinite alternate}.fallback-label{position:absolute;left:18px;bottom:18px;color:#fff;font-weight:950;letter-spacing:2px;text-shadow:0 2px 8px #000}.fallback-label small{display:block;color:#d1dde8;font-weight:500;letter-spacing:0;font-size:9px;margin-top:4px}.movement{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 14px;background:#09131e;border-bottom:1px solid #1d2c3e}.movement>div:first-child{display:grid;gap:3px}.movement b{font-size:10px;letter-spacing:1.5px}.movement small{font-size:9px;color:#72869c}.dpad{display:grid;grid-template-columns:repeat(3,42px);grid-template-rows:42px 42px;gap:4px}.dpad button{border:1px solid #30475f;background:#111f2f;color:#fff;border-radius:9px;font-size:17px;cursor:pointer}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-column:1;grid-row:2}.dpad button:nth-child(3){grid-column:2;grid-row:2}.dpad button:nth-child(4){grid-column:3;grid-row:2}.dpad button:active{background:#dcae4c;color:#111}.drive-toggle{border:1px solid #405a73;background:#142334;color:#fff;border-radius:10px;padding:12px 14px;font-weight:900;cursor:pointer}.drive-toggle.active{background:#d9aa48;color:#111}.driving .player-card{border-color:#d9aa48}.driving .compass{background:#d9aa48;color:#111}
@keyframes bob{from{transform:translateY(0)}to{transform:translateY(-7px)}}
@media(max-width:700px){.world-stage{height:500px}.movement{flex-wrap:wrap;justify-content:center}.movement>div:first-child{width:100%;text-align:center}.player-card{max-width:200px}.location-chip{top:10px;left:10px}.compass{top:10px;right:10px}.dpad{transform:scale(.92)}.drive-toggle{padding:10px 12px}}
/* V13 app / 3D world */
#abuja-life-v14{--gold:#f4b942;--panel:#0a1119;--line:#203143;background:#05080b;color:#f5f7fa;min-height:100vh;font-family:Inter,system-ui,sans-serif}.alv14-top{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;background:#050a10e8;border-bottom:1px solid #1b2a38;position:sticky;top:0;z-index:50;backdrop-filter:blur(16px)}.alv14-top .brand b{font-size:18px;letter-spacing:1.5px}.alv14-top .brand span{display:block;font-size:8px;color:#8092a7;letter-spacing:2px}.alv14-top .top-actions{display:flex;gap:18px;align-items:center}.alv14-top a{color:#c5d1df;text-decoration:none;font-size:12px}.alv14-top strong{font-size:18px;color:#f4c765}.alv14-hud{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:#1c2a38}.alv14-hud div{background:#081019;padding:9px 13px;display:grid;grid-template-columns:1fr auto}.alv14-hud small{font-size:8px;color:#7e90a5;letter-spacing:1.3px}.alv14-hud b{font-size:13px}.alv14-hud i{grid-column:1/-1;height:3px;background:#26394c;border-radius:10px;margin-top:5px}.alv14-grid{max-width:1500px;margin:auto;padding:10px;display:grid;grid-template-columns:minmax(0,1.75fr) minmax(300px,.7fr);gap:10px}.alv14-grid .city,.alv14-grid .panel{background:#0a1119;border:1px solid #1d2d3d;border-radius:18px;overflow:hidden}.citybar{display:flex;justify-content:space-between;padding:10px 14px;font-size:11px;color:#91a1b3;background:#081019}.v14-world{height:min(72vh,760px);min-height:500px;position:relative;background:#638d9d;overflow:hidden}.v14-world canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.v14-skyline{position:absolute;top:14px;left:50%;transform:translateX(-50%);z-index:6;text-align:center;pointer-events:none;text-shadow:0 2px 15px #000}.v14-skyline span{font-size:12px;font-weight:1000;letter-spacing:5px}.v14-skyline small{display:block;font-size:7px;color:#d7e1e9;letter-spacing:3px;margin-top:3px}.game-overlay{position:absolute;inset:0;z-index:8;pointer-events:none}.location-chip,.player-card,.compass,.mini-map{position:absolute;background:#07101dcc;border:1px solid #61758a;border-radius:12px;box-shadow:0 10px 30px #0008;backdrop-filter:blur(10px)}.location-chip{top:14px;left:14px;padding:9px 12px}.location-chip b{color:#ffd66e}.location-chip small{display:block;color:#91a4b8;font-size:8px;margin-top:3px}.player-card{bottom:14px;left:14px;padding:9px 12px;display:grid;gap:2px}.player-card span{font-size:7px;color:#ffd66e;letter-spacing:2px;font-weight:1000}.player-card b{font-size:12px}.player-card small{font-size:8px;color:#8ea1b5}.compass{top:14px;right:14px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:1000}.mini-map{right:14px;bottom:14px;width:190px;padding:8px;pointer-events:auto}.mini-map-title{font-size:8px;letter-spacing:1.5px;color:#9eb0c1;margin-bottom:4px}.mini-map svg{width:100%;height:130px;background:linear-gradient(145deg,#11202a,#091017);border-radius:8px}.mini-map circle{fill:#9db2c0}.mini-map text{font-size:2.2px;fill:#b9c7d2}.mini-map .you{fill:#ffd15b;stroke:#fff;stroke-width:.7}.mini-map .you-label{fill:#fff;font-weight:bold}.movement{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;background:#081019;border-top:1px solid #1c2a38}.movement>div:first-child{display:grid}.movement b{font-size:9px;letter-spacing:1.5px}.movement small{font-size:8px;color:#75889e}.dpad{display:grid;grid-template-columns:42px 42px 42px;grid-template-rows:42px 42px;gap:4px}.dpad button{border:1px solid #33495e;background:#122030;color:#fff;border-radius:9px;font-size:17px;touch-action:none}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-column:1;grid-row:2}.dpad button:nth-child(3){grid-column:2;grid-row:2}.dpad button:nth-child(4){grid-column:3;grid-row:2}.dpad button:active{background:#e0ad4b;color:#111}.drive-toggle{border:1px solid #3c5268;background:#132130;color:#fff;border-radius:9px;padding:11px 13px;font-weight:900}.drive-toggle.active{background:#e2b14e;color:#111}.districts{display:flex;gap:6px;padding:9px;overflow:auto;background:#070e15}.districts button{flex:0 0 auto;border:1px solid #273b4e;background:#0f1b27;color:#aebdcb;padding:7px 10px;border-radius:20px;font-size:9px}.panel{padding:16px}.panel-title{display:flex;justify-content:space-between;align-items:center}.panel-title span{font-size:8px;letter-spacing:2px;color:#7d91a6}.panel-title h2{margin:3px 0 0;font-size:21px}.panel-title em{font-style:normal;font-size:8px;color:#62e1a5}.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:13px 0}.quick div{background:#0e1924;border:1px solid #213446;padding:10px;border-radius:10px;font-size:17px}.quick b,.quick small{display:block}.quick b{font-size:9px;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick small{font-size:7px;color:#71869b}.panel h3{font-size:10px;color:#8fa1b4;letter-spacing:1px;margin:17px 0 8px}.buttons,.list{display:grid;gap:6px}.buttons button,.list button{border:1px solid #213446;background:#0d1823;color:#fff;text-align:left;padding:10px;border-radius:10px;cursor:pointer;font-weight:800}.buttons button:hover,.list button:hover{border-color:#aa8a49;background:#111f2d}.buttons small,.list small{display:block;color:#70849a;font-size:8px;font-weight:500;margin-top:2px}.world-events{max-width:1500px;margin:0 auto;padding:0 10px 10px;display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px}.world-events>div{background:#0a1119;border:1px solid #1d2d3d;border-radius:13px;padding:12px}.world-events span{font-size:7px;color:#74899e;letter-spacing:1.5px}.world-events b,.world-events small{display:block;margin-top:4px}.world-events small{font-size:9px;color:#71849a}.bottom{display:flex;justify-content:center;gap:28px;padding:12px;background:#050a10;border-top:1px solid #1b2a38}.bottom a{color:#8ea0b3;text-decoration:none;font-size:10px}.v14-no3d #abuja-3d-canvas{display:none}.v14-no3d .map-fallback{display:block!important}.map-fallback{display:none;position:absolute;inset:0}.v14-world:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#ffffff08,transparent 35%,#0004)}
@media(max-width:850px){.alv14-grid{grid-template-columns:1fr}.alv14-grid .panel{order:2}.v14-world{height:64vh;min-height:440px}.world-events{grid-template-columns:1fr}.mini-map{width:155px}.alv14-hud div{padding:8px 5px;text-align:center}.alv14-hud small{font-size:6px}.alv14-hud b{font-size:10px}}
@media(max-width:600px){.alv14-top{padding:10px 12px}.alv14-top a{display:none}.v14-world{height:58vh;min-height:390px}.mini-map{width:145px;bottom:10px;right:10px}.player-card{bottom:10px;left:10px}.movement{flex-wrap:wrap;justify-content:center}.movement>div:first-child{width:100%;text-align:center}.drive-toggle{padding:10px}.districts button{font-size:8px}}
.alv14-modal{position:fixed;inset:0;z-index:200;background:rgba(2,6,10,.72);backdrop-filter:blur(10px);display:grid;place-items:center;padding:20px}.alv14-modal[hidden]{display:none}.alv14-modal-card{width:min(620px,94vw);background:#0b131d;border:1px solid #34495c;border-radius:22px;padding:22px;box-shadow:0 30px 90px #000b;position:relative}.alv14-close{position:absolute;right:14px;top:12px;width:42px;height:42px;border-radius:50%;border:1px solid #34495c;background:#152231;color:#fff;font-size:25px}.alv14-kicker{font-size:8px;letter-spacing:2px;color:#e7bb5d}.alv14-modal-card h2{margin:5px 0;font-size:27px}.alv14-modal-card p{color:#8fa2b6;font-size:12px}.alv14-interior{height:220px;border-radius:16px;overflow:hidden;position:relative;margin:16px 0;background:linear-gradient(#9eb9c4 0 67%,#725d49 67%)}.room-wall{position:absolute;inset:0 0 33%;background:linear-gradient(90deg,#c8bda9,#eee6d4 50%,#b5a58e)}.room-floor{position:absolute;inset:67% 0 0;background:repeating-linear-gradient(90deg,#705944 0 38px,#806a50 38px 40px)}.room-window{position:absolute;left:12%;top:18%;width:25%;height:40%;border:9px solid #273744;background:linear-gradient(135deg,#77a6bb,#d5e7e5)}.room-sofa{position:absolute;right:12%;bottom:24%;width:28%;height:25%;border-radius:12px 12px 5px 5px;background:#735447;box-shadow:0 10px 0 #5b4037}.room-table{position:absolute;left:45%;bottom:20%;width:17%;height:8%;background:#533a28;box-shadow:0 8px 0 #4a3324}.alv14-enter{width:100%;padding:13px;border:0;border-radius:11px;background:#e0b24e;color:#111;font-weight:950;cursor:pointer}.alv14-building-hit{cursor:pointer}

.alv14-interior{position:absolute;inset:0;z-index:20;background:rgba(12,15,18,.96);display:flex;align-items:center;justify-content:center}.alv14-interior[hidden]{display:none}.alv14-interior-card{width:min(92%,620px);padding:24px;border:1px solid rgba(255,255,255,.12);border-radius:20px;background:#182027;color:#fff;text-align:center}.alv14-interior-card h2{margin:0 0 8px}.alv14-interior-card p{color:#b8c1c8}.alv14-close{cursor:pointer}

.alv14-interior-screen{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,rgba(9,12,15,.28),rgba(9,12,15,.88));pointer-events:auto}.alv14-interior-screen[hidden]{display:none}.alv14-interior-card{max-width:520px;margin:20px;padding:28px;border-radius:22px;background:rgba(20,27,32,.96);border:1px solid rgba(255,255,255,.15);color:#fff;box-shadow:0 20px 60px rgba(0,0,0,.45)}.alv14-interior-card h2{margin:8px 0}.alv14-interior-card p{color:#c6cdd2;line-height:1.55}
/* V18 third-person avatar + 4K-ready world */
#abuja-3d-canvas{width:100%;height:100%;image-rendering:auto;display:block}
.alv18-world{background:linear-gradient(#9fc5d8,#dce8df 48%,#52684b)}
.vehicle-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}
.vehicle-picker button{min-height:52px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.06);color:inherit;font-weight:700;cursor:pointer}
.vehicle-picker small{display:block;opacity:.65;font-weight:500;margin-top:3px}
@media(max-width:680px){.vehicle-picker{grid-template-columns:1fr}.vehicle-picker button{min-height:48px}}

.vehicle-status{display:flex;gap:12px;padding:10px 12px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.035);margin:10px 0;color:#dfe8ef}.vehicle-status span{flex:1;font-size:12px}.vehicle-status b{font-size:14px}
/* V20 Abuja Bus Simulator controls */
.bus-sim-controls{margin-top:14px;padding:14px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:linear-gradient(145deg,rgba(8,13,19,.94),rgba(20,28,36,.86));box-shadow:0 12px 35px rgba(0,0,0,.24)}
.bus-sim-title{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}.bus-sim-title b{letter-spacing:.08em}.bus-sim-title small{opacity:.7}.bus-route-row{display:grid;grid-template-columns:1fr auto;gap:8px}.bus-route-row select,.bus-route-row button,.bus-controls button{border:1px solid rgba(255,255,255,.15);border-radius:10px;background:#111a22;color:#fff;padding:10px}.bus-route-row button{font-weight:700;background:#e0a62b;color:#111}.bus-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:9px}.bus-controls button{font-size:12px;cursor:pointer}.bus-controls button:active{transform:scale(.97)}.bus-readout{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:10px}.bus-readout span{padding:8px 5px;border-radius:9px;background:rgba(255,255,255,.06);font-size:10px;text-align:center;color:#b8c2ca}.bus-readout b{display:block;color:#fff;font-size:14px;margin-top:2px}.route-stop{grid-column:1/-1!important;background:#176d49!important;color:#fff!important;font-weight:800}.route-active .bus-sim-controls{border-color:rgba(46,207,126,.55)}
#abuja-3d-canvas{image-rendering:auto}.driving .player-card small::after{content:' • DRIVING PHYSICS';color:#f4bf43}.driving .drive-toggle{background:#d84d39!important;color:#fff}.cockpit-active .mini-map{opacity:.65}
@media(max-width:700px){.bus-route-row{grid-template-columns:1fr}.bus-controls{grid-template-columns:repeat(2,1fr)}.bus-readout{grid-template-columns:repeat(2,1fr)}}
