:root{
  --bg:#0b0c10; --panel:#15171e; --panel2:#1d2029; --line:#2c303b;
  --ink:#f4efe4; --dim:#9d988d; --accent:#ffd21f; --accent-ink:#1b1d33;
  --good:#2fb36a; --bad:#e5484d; --gold:#ffc53d;
  --disp:"Lalezar","Cairo",system-ui,sans-serif;
  --body:"Cairo",system-ui,-apple-system,"Segoe UI",Tahoma,sans-serif;
}
html[data-theme="green"]{--accent:#2fb36a;--accent-ink:#06210f}
html[data-theme="night"]{--accent:#ffa31f;--accent-ink:#1a0e00;--bg:#07070a;--panel:#100f14}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;margin:0;background:#14161c;color:var(--ink);font-family:var(--body);overflow:hidden;direction:rtl;user-select:none;-webkit-user-select:none}
button,select{font-family:inherit;color:inherit}
button{cursor:pointer}
.game{position:relative;width:min(100vw,560px);height:100vh;height:100dvh;margin:0 auto;overflow:hidden;background:#000}
#c{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}

.screen{position:absolute;inset:0;display:none;flex-direction:column;background:var(--bg);z-index:10}
.screen.show{display:flex}
#loading{align-items:center;justify-content:center;gap:12px}
.logo{font-family:var(--disp);font-weight:400;color:var(--accent);font-size:64px;margin:0;line-height:1;text-shadow:0 4px 0 #1b1d33,0 6px 18px rgba(0,0,0,.5)}
.logo.big{font-size:84px}
.dim{color:var(--dim);font-size:13px;margin:0}
.center{text-align:center}
.bar{width:180px;height:5px;border-radius:9px;background:#2a2c33;overflow:hidden}
.bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .2s}

/* home */
#home{background:linear-gradient(180deg,rgba(11,12,16,.35),rgba(11,12,16,.92) 45%,var(--bg)),transparent;overflow-y:auto}
.topbar{display:flex;align-items:center;gap:8px;padding:max(12px,env(safe-area-inset-top)) 14px 8px}
.grow{flex:1}
.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:rgba(21,23,30,.85);border-radius:999px;padding:7px 12px;font-weight:700;font-size:14px;white-space:nowrap}
.pill.sm{padding:3px 9px;font-size:13px}
.mono{font-variant-numeric:tabular-nums;direction:ltr}
.coin{width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffe680,#e7a400 70%);box-shadow:inset 0 0 0 2px #b77d00;flex:none}
.icon{border:1px solid var(--line);background:rgba(21,23,30,.85);border-radius:50%;width:38px;height:38px;font-size:17px;display:grid;place-items:center}
.hero{text-align:center;padding:26px 0 10px}
.tag{margin:6px 0 0;color:var(--ink);opacity:.85;font-weight:700}
.cards{display:flex;flex-direction:column;gap:10px;padding:10px 14px 14px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px 14px}
.level .top{display:flex;justify-content:space-between;align-items:baseline}
.level b{font-family:var(--disp);font-weight:400;color:var(--accent);font-size:20px}
.prog{height:7px;background:#262933;border-radius:9px;margin-top:8px;overflow:hidden}
.prog i{display:block;height:100%;background:var(--accent)}
.missions h3{margin:0 0 6px;font-family:var(--disp);font-weight:400;font-size:18px;color:var(--accent)}
.mis{display:flex;align-items:center;gap:10px;padding:6px 0;border-top:1px solid var(--line)}
.mis:first-of-type{border-top:0}
.mis .t{flex:1;font-size:13px}
.mis .n{font-size:12px;color:var(--dim);font-variant-numeric:tabular-nums}
.mis.done .t{color:var(--good)}
.mis button{border:0;border-radius:999px;background:var(--good);color:#fff;font-weight:800;padding:5px 10px;font-size:12px}
.mode{display:flex;align-items:center;gap:12px;width:100%;text-align:right;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin-bottom:10px}
.mode .ic{font-size:26px;width:44px;height:44px;border-radius:12px;background:var(--panel2);display:grid;place-items:center;flex:none}
.mode .tx{flex:1}
.mode .tx b{display:block;font-family:var(--disp);font-weight:400;font-size:20px}
.mode .tx small{color:var(--dim);font-size:12px}
.mode .go{background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:8px 14px;font-weight:800;font-size:14px}
.mode.locked{opacity:.55}
.mode.locked .go{background:var(--panel2);color:var(--dim)}
.foot{text-align:center;color:var(--dim);font-size:11px;padding:6px 0 18px}
.foot a{color:var(--dim)}

/* sheets */
.sheet{background:var(--bg)}
.sheethead{display:flex;align-items:center;justify-content:space-between;padding:max(12px,env(safe-area-inset-top)) 14px 10px;border-bottom:1px solid var(--line)}
.sheethead h2{margin:0;font-family:var(--disp);font-weight:400;font-size:24px;color:var(--accent)}
.sheethead>span{min-width:38px}
.sheetbody{flex:1;overflow-y:auto;padding:12px 14px 20px}
.lbl{display:block;font-weight:800;font-size:13px;color:var(--dim);margin:14px 0 6px}
.seg{display:flex;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:3px}
.seg button{flex:1;border:0;background:transparent;padding:9px 0;border-radius:9px;font-weight:700}
.seg button.on{background:var(--accent);color:var(--accent-ink)}
.carpick{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.carpick button{flex:none;min-width:96px;border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:10px;font-weight:700;font-size:13px}
.carpick button.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.carpick small{display:block;color:var(--dim);font-weight:600;font-size:11px}
select{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px;font-size:15px;font-weight:700}
.route{display:flex;align-items:center;gap:8px}
.route span{color:var(--dim)}
#routeInfo,#freeBest{margin-top:8px}
.cta{margin:10px 14px max(14px,env(safe-area-inset-bottom));border:0;border-radius:16px;background:var(--accent);color:var(--accent-ink);font-family:var(--disp);font-size:24px;padding:12px;box-shadow:0 4px 0 rgba(0,0,0,.35)}
.cta:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(0,0,0,.35)}
.tabs{display:flex;gap:6px;padding:10px 14px 0}
.tabs button{flex:1;border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:8px;font-weight:800}
.tabs button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.gcar{display:flex;flex-direction:column;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:10px}
.gcar .h{display:flex;justify-content:space-between;align-items:center}
.gcar b{font-family:var(--disp);font-weight:400;font-size:20px}
.gcar .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;font-size:11px;color:var(--dim);text-align:center}
.gcar .stats i{display:block;font-style:normal;color:var(--ink);font-weight:800;font-size:13px}
.gcar .sw{display:flex;gap:6px}
.gcar .sw button{width:26px;height:26px;border-radius:50%;border:2px solid var(--line)}
.gcar .sw button.on{border-color:var(--accent)}
.btn{border:0;border-radius:999px;padding:8px 14px;font-weight:800;background:var(--accent);color:var(--accent-ink);font-size:14px}
.btn.ghost{background:var(--panel2);color:var(--ink)}
.btn:disabled{opacity:.45}
.up{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:10px}
.up .ic{font-size:24px}
.up .tx{flex:1}
.up .tx b{display:block}
.up .tx small{color:var(--dim)}
.pips{display:flex;gap:3px;margin-top:5px}
.pips i{width:18px;height:5px;border-radius:3px;background:#2a2d36}
.pips i.on{background:var(--accent)}
.set{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);gap:10px}
.set .seg{min-width:56%}
.tog{width:50px;height:28px;border-radius:999px;border:0;background:#3a3d46;position:relative}
.tog::after{content:"";position:absolute;top:3px;right:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:right .15s}
.tog.on{background:var(--good)}
.tog.on::after{right:25px}

/* HUD */
.hud{position:absolute;inset:0;display:none;z-index:5;pointer-events:none}
.hud.show{display:block}
.hud button,.hud .controls{pointer-events:auto}
.hl{position:absolute;top:max(10px,env(safe-area-inset-top));left:12px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;direction:ltr}
.hl .row{display:flex;align-items:center;gap:8px}
.gear{background:var(--accent);color:var(--accent-ink);font-weight:800;border-radius:6px;padding:0 6px;font-size:14px;min-width:22px;text-align:center}
.speed b{font-family:var(--disp);font-weight:400;font-size:36px;line-height:1;text-shadow:0 2px 4px rgba(0,0,0,.6)}
.speed small{font-weight:800;font-size:11px;margin-inline-start:4px;text-shadow:0 1px 3px #000}
.speedbar{width:92px;height:5px;border-radius:4px;background:rgba(0,0,0,.45);overflow:hidden}
.speedbar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#2fb36a,#ffd21f 70%,#e5484d)}
.lives{display:flex;gap:3px}
.lives i{width:28px;height:7px;border-radius:3px;background:var(--good);box-shadow:0 1px 2px rgba(0,0,0,.5)}
.lives i.off{background:rgba(0,0,0,.45)}
.hc{position:absolute;top:max(10px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;align-items:center}
.round{width:44px;height:44px;border-radius:50%;border:0;background:rgba(15,17,22,.75);font-size:16px;color:#fff;font-weight:800}
.round.sm{width:36px;height:36px;font-size:15px}
.round.on{background:var(--accent);color:var(--accent-ink)}
.hr{position:absolute;top:max(10px,env(safe-area-inset-top));right:12px;display:flex;flex-direction:column;align-items:center;gap:4px}
#minimap{width:100px;height:100px;border-radius:50%;border:3px solid rgba(255,255,255,.85);background:#1b1e26;box-shadow:0 2px 8px rgba(0,0,0,.5)}
.banner{position:absolute;top:24%;left:50%;transform:translateX(-50%);font-family:var(--disp);font-size:30px;color:var(--accent);text-shadow:0 3px 0 #1b1d33;white-space:nowrap;opacity:0;transition:opacity .3s}
.banner.show{opacity:1}
.radarwarn{position:absolute;top:150px;left:12px;display:none;align-items:center;gap:6px;background:rgba(229,72,77,.92);padding:5px 10px;border-radius:10px;font-weight:800;font-size:13px}
.radarwarn.show{display:flex}
.radarwarn .lim{background:#fff;color:#111;border:3px solid #d61f1f;border-radius:50%;width:30px;height:30px;display:grid;place-items:center;font-size:12px}
.target{position:absolute;top:118px;left:50%;transform:translateX(-50%);background:rgba(15,17,22,.8);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-weight:700;font-size:13px;display:none;white-space:nowrap}
.target.show{display:block}
.target.drop{border-color:var(--good)}
.target.pick{border-color:var(--accent)}
.timer{position:absolute;top:120px;left:50%;transform:translateX(-50%);font-family:var(--disp);font-size:40px;display:none;text-shadow:0 3px 0 #000;direction:ltr}
.timer.show{display:block}
.timer.low{color:var(--bad)}
.controls{position:absolute;bottom:max(14px,env(safe-area-inset-bottom));display:none}
.controls.show{display:block}
.dial{left:50%;transform:translateX(-50%);width:130px;height:150px;touch-action:none}
.dial .ring{position:absolute;top:0;left:50%;transform:translateX(-50%);width:110px;height:110px;border-radius:50%;border:2px solid rgba(255,255,255,.35);background:rgba(0,0,0,.18)}
.dial .ring span{position:absolute;color:rgba(255,255,255,.6);font-size:16px}
.dial .l{left:8px;top:42px}.dial .r{right:8px;top:42px}.dial .u{top:4px;left:48px;font-size:13px!important}.dial .d{bottom:4px;left:47px;font-size:12px!important;color:var(--bad)!important}
.knob{position:absolute;top:35px;left:50%;margin-left:-20px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.9);box-shadow:0 2px 8px rgba(0,0,0,.4);pointer-events:none}
.dial small{position:absolute;bottom:0;left:50%;transform:translateX(-50%);white-space:nowrap;font-weight:800;font-size:11px;color:var(--accent);text-shadow:0 1px 3px #000}
.buttons{left:0;right:0;display:none;justify-content:space-between;padding:0 12px;direction:ltr}
.buttons.show{display:flex}
.buttons button{width:68px;height:68px;border-radius:18px;border:0;background:rgba(15,17,22,.6);color:#fff;font-size:22px;font-weight:800;margin:0 4px;touch-action:none}
.buttons .gas{background:rgba(47,179,106,.75);font-size:14px}
.buttons .brake{background:rgba(229,72,77,.75);font-size:14px}
.buttons button.on{transform:scale(.94);filter:brightness(1.3)}
.horn{position:absolute;bottom:max(90px,calc(env(safe-area-inset-bottom) + 80px));right:14px;width:56px;height:56px;border-radius:50%;border:2px solid rgba(255,255,255,.5);background:rgba(15,17,22,.6);font-size:24px;touch-action:none}
.horn.on{background:var(--accent)}
.tut{position:absolute;top:36%;left:50%;transform:translateX(-50%);background:rgba(15,17,22,.88);border:2px solid var(--accent);border-radius:14px;padding:10px 16px;font-weight:800;display:none;text-align:center;white-space:nowrap}
.tut.show{display:block}
.tut small{display:block;color:var(--dim);font-size:11px;margin-top:3px}

#pops{position:absolute;left:0;right:0;top:30%;display:flex;flex-direction:column;align-items:center;gap:4px;z-index:6;pointer-events:none}
.pop{font-family:var(--disp);font-size:26px;animation:pop 1.4s ease-out forwards;text-shadow:0 2px 0 #000;text-align:center;line-height:1.1}
.pop small{display:block;font-family:var(--body);font-weight:800;font-size:13px}
.pop.good{color:var(--good)}.pop.gold{color:var(--gold)}.pop.bad{color:var(--bad)}
@keyframes pop{0%{transform:scale(.6);opacity:0}15%{transform:scale(1.1);opacity:1}70%{opacity:1}100%{transform:translateY(-40px);opacity:0}}
#toasts{position:absolute;left:0;right:0;bottom:190px;display:flex;flex-direction:column;align-items:center;gap:6px;z-index:6;pointer-events:none}
.toast{background:rgba(15,17,22,.88);border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-weight:800;font-size:14px;animation:toast 2.2s forwards}
.toast.bad{border-color:var(--bad);color:#ffb3b5}
.toast.good{border-color:var(--good)}
@keyframes toast{0%{opacity:0;transform:translateY(8px)}10%{opacity:1;transform:none}80%{opacity:1}100%{opacity:0}}
.flash{position:absolute;inset:0;pointer-events:none;opacity:0;z-index:7}
.flash.hit{animation:fl .4s;background:radial-gradient(transparent 40%,rgba(229,72,77,.7))}
.flash.radar{animation:fl .5s;background:#fff}
@keyframes fl{0%{opacity:.9}100%{opacity:0}}

.modal{position:absolute;inset:0;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;z-index:20;padding:16px}
.modal.show{display:flex}
.box{width:100%;max-width:340px;background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:18px;padding:18px;text-align:center}
.box h3{margin:0 0 6px;font-family:var(--disp);font-weight:400;font-size:28px;color:var(--accent)}
.box p{margin:0 0 12px;color:var(--dim);font-size:14px}
.box .btns{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.box .btns .btn{padding:11px}
.res{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.res div{background:var(--panel2);border-radius:12px;padding:8px}
.res small{display:block;color:var(--dim);font-size:11px}
.res b{font-size:18px}
.total{font-family:var(--disp);font-size:34px;color:var(--gold);display:flex;align-items:center;justify-content:center;gap:8px}
.total .coin{width:24px;height:24px}
.best{display:inline-block;background:var(--good);color:#fff;border-radius:999px;padding:2px 10px;font-weight:800;font-size:12px;margin-bottom:6px}

.nitro{position:absolute;bottom:max(90px,calc(env(safe-area-inset-bottom) + 80px));left:14px;width:56px;height:56px;border-radius:50%;border:2px solid rgba(255,255,255,.5);background:rgba(15,17,22,.6);font-size:22px;touch-action:none;overflow:hidden;padding:0}
.nitro span{position:relative;z-index:1}
.nitro i{position:absolute;left:0;right:0;bottom:0;height:0;background:linear-gradient(0deg,#ff5a1f,#ffc53d);opacity:.75;transition:height .1s}
.nitro.on{border-color:#ffc53d;box-shadow:0 0 18px rgba(255,140,30,.8)}
.nitro.empty{opacity:.5}
.cats{display:flex;gap:6px;margin:10px 0 12px}
.cats button{flex:1;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:7px 0;font-weight:800;font-size:13px}
.cats button.on{border-color:var(--accent);color:var(--accent)}
.station{display:flex;gap:6px;flex-wrap:wrap}

.gift{display:flex;align-items:center;gap:10px}
.gift .tx{flex:1}
.gift .tx b{display:block;font-family:var(--disp);font-weight:400;font-size:18px;color:var(--accent)}
.gift .tx small{color:var(--dim);font-size:12px}
.radarwarn.kameen{top:190px;background:rgba(32,64,122,.95)}
.chat{position:absolute;top:160px;right:12px;max-width:62%;background:#fff;color:#1b1d33;border-radius:16px 16px 4px 16px;padding:7px 12px;font-weight:800;font-size:14px;box-shadow:0 3px 10px rgba(0,0,0,.35);opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s;pointer-events:none}
.chat.show{opacity:1;transform:none}
.chat::before{content:"🧍 ";}
.stamps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.stamp{background:var(--panel);border:1px dashed var(--line);border-radius:14px;padding:10px 6px;text-align:center;min-height:104px}
.stamp i{display:block;font-style:normal;font-size:28px;filter:grayscale(1);opacity:.35}
.stamp b{display:block;font-size:12px;margin-top:4px;color:var(--dim)}
.stamp small{display:block;font-size:10px;color:var(--dim);margin-top:2px;line-height:1.3}
.stamp.got{border:2px solid var(--accent);background:linear-gradient(160deg,var(--panel2),var(--panel));transform:rotate(-2deg)}
.stamp.got i{filter:none;opacity:1}
.stamp.got b{color:var(--accent)}
#ringMap{width:100%;aspect-ratio:1;background:var(--panel);border:1px solid var(--line);border-radius:16px;display:block}
.controls.dial.pos-left{left:24%}
.controls.dial.pos-right{left:76%}
.newstamps{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:6px 0}
.newstamps span{background:var(--panel2);border:1px solid var(--accent);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:800}

/* No browser zoom while playing: block pinch and double-tap zoom everywhere,
   keep vertical scrolling in menus. (iOS ignores user-scalable=no.) */
html,body,.game,.hud,.hud *{touch-action:none}
.screen,.sheetbody,.screen *,.modal,.modal *{touch-action:pan-y}
.hud button,.controls,.controls *{touch-action:none}
html,body{-webkit-touch-callout:none;-webkit-text-size-adjust:100%;text-size-adjust:100%;overscroll-behavior:none}
