:root{--ink: #111114;--cream: #f7f4ee;--yellow: #f3c623;--green: #1f7a4d;--red: #d63a3a;--sky: #4a9af2;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--u: min(1vh * .5625, 1vw)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:#15161f;overscroll-behavior:none;touch-action:none;user-select:none;-webkit-user-select:none;font-family:Lalezar,Segoe UI,Tahoma,sans-serif;color:var(--cream)}body{background:radial-gradient(circle at 50% 30%,#2a2c3e,#12131a 70%)}#stage{position:fixed;top:0;bottom:0;left:50%;transform:translate(-50%);width:100vw;overflow:hidden;background:#0f1016}@media(min-aspect-ratio:10/16){#stage{width:56.25vh;box-shadow:0 0 60px #000}}#c{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:none;image-rendering:pixelated}.hidden,.dev-only{display:none!important}.pixel-num{font-family:"Press Start 2P",monospace;letter-spacing:.02em}img{image-rendering:pixelated;-webkit-user-drag:none;pointer-events:none}button{font-family:inherit;touch-action:manipulation;cursor:pointer}#hud{position:absolute;inset:0;pointer-events:none}.hud-top{position:absolute;left:0;right:0;top:calc(var(--safe-top) + 10px);display:grid;grid-template-columns:1fr auto 1fr auto;align-items:start;gap:6px;padding:0 10px;direction:ltr}.score-box{display:flex;flex-direction:column;align-items:flex-start}#score{font-size:calc(var(--u) * 5.2);color:#fff;text-shadow:3px 3px 0 var(--ink),-1px -1px 0 var(--ink),1px -1px 0 var(--ink),-1px 1px 0 var(--ink)}.mult{font-family:"Press Start 2P";font-size:calc(var(--u) * 3);color:var(--yellow);text-shadow:2px 2px 0 var(--ink);margin-top:4px;transition:transform .12s}.mult.bump{transform:scale(1.4)}.strip-box{justify-self:end;display:flex;align-items:center;gap:4px;direction:ltr;background:#1111148c;border:3px solid var(--ink);border-radius:10px;padding:2px 8px 2px 2px}.strip-box img{width:calc(var(--u) * 7);height:calc(var(--u) * 7)}.strip-box span{font-size:calc(var(--u) * 3.6);color:var(--yellow);text-shadow:2px 2px 0 var(--ink)}.strip-box.bump{animation:bump .18s ease-out}@keyframes bump{50%{transform:scale(1.18)}}.chase-meter{display:flex;align-items:center;gap:2px;margin-top:2px;direction:ltr}.chase-meter .icon{width:calc(var(--u) * 7);height:calc(var(--u) * 7)}.chase-meter .track{position:relative;width:calc(var(--u) * 26);height:calc(var(--u) * 2.6);background:#11111499;border:3px solid var(--ink);border-radius:99px}.chase-meter .fill{position:absolute;left:0;top:0;bottom:0;width:50%;border-radius:99px;background:linear-gradient(90deg,#d63a3a,#f3c623 45%,#4fd27a);transition:width .1s linear}.chase-meter .chichi{position:absolute;top:50%;transform:translate(-50%,-50%);left:50%;width:calc(var(--u) * 6.4);height:calc(var(--u) * 6.4);transition:left .1s linear}.chase-meter.danger .track{animation:dangerPulse .5s infinite}@keyframes dangerPulse{50%{border-color:var(--red);box-shadow:0 0 12px var(--red)}}.pause-btn{pointer-events:auto;width:calc(var(--u) * 9);height:calc(var(--u) * 9);border-radius:10px;border:3px solid var(--ink);background:#f7f4eed9;color:var(--ink);font-family:"Press Start 2P";font-size:calc(var(--u) * 2.6)}.toast{position:absolute;top:calc(var(--safe-top) + var(--u) * 24);left:0;right:0;display:flex;align-items:center;justify-content:center;gap:.12em;direction:rtl;text-align:center;font-size:calc(var(--u) * 8);color:var(--yellow);opacity:0;text-shadow:3px 3px 0 var(--ink),-2px -2px 0 var(--ink),2px -2px 0 var(--ink),-2px 2px 0 var(--ink)}.toast.show{animation:toast .8s ease-out forwards}@keyframes toast{0%{opacity:0;transform:scale(.4) rotate(-6deg)}18%{opacity:1;transform:scale(1.15) rotate(2deg)}30%{transform:scale(1) rotate(0)}75%{opacity:1}to{opacity:0;transform:translateY(-20px) scale(.95)}}.train-warning{position:absolute;z-index:5;top:calc(var(--safe-top) + var(--u) * 12);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;width:max-content;max-width:calc(100% - 18px);padding:5px 9px;color:var(--ink);background:var(--yellow);border:3px solid var(--ink);border-radius:12px;box-shadow:0 4px #0000008c;text-align:right;direction:rtl;animation:trainWarningPop .18s ease-out both}.train-warning>img{width:38px;height:38px;flex:0 0 38px;object-fit:contain;image-rendering:pixelated}.train-warning-copy{display:flex;flex-direction:column;align-items:flex-end;line-height:1;white-space:nowrap;direction:rtl}.train-warning-copy b{font-size:clamp(12px,calc(var(--u) * 4.1),17px);font-weight:400}.train-warning-lanes{display:flex;gap:3px;margin-inline:2px;direction:ltr}.train-lane-chip{padding:3px 7px 4px;border:2px solid var(--ink);border-radius:6px;background:var(--red);color:#fff;font:13px/1 Lalezar,sans-serif;direction:rtl;white-space:nowrap}@keyframes trainWarningPop{0%{opacity:0;scale:.88}to{opacity:1;scale:1}}@media(prefers-reduced-motion:reduce){.train-warning{animation:none}}.district{position:absolute;top:calc(var(--safe-top) + var(--u) * 15);right:0;display:flex;flex-direction:column;align-items:flex-end;padding:4px 14px 6px 22px;background:var(--green);border:3px solid var(--ink);border-right:0;border-radius:14px 0 0 14px;color:#fff;text-shadow:2px 2px 0 var(--ink);transform:translate(110%);direction:rtl;font-size:calc(var(--u) * 6);line-height:1.1}.district{max-width:78%}.district small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.district.show{animation:districtIn 2.8s cubic-bezier(.2,1.2,.4,1) forwards}@keyframes districtIn{0%{transform:translate(110%)}12%{transform:translate(0)}82%{transform:translate(0)}to{transform:translate(110%)}}.tutorial{position:absolute;bottom:calc(var(--safe-bottom) + var(--u) * 30);left:0;right:0;text-align:center;font-size:calc(var(--u) * 6.5);color:#fff;text-shadow:3px 3px 0 var(--ink);animation:tut 1s ease-in-out infinite}@keyframes tut{50%{transform:translateY(-8px)}}#vignette{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .25s;background:radial-gradient(ellipse at center,transparent 55%,rgba(214,58,58,.55) 100%)}#vignette.on{opacity:1;animation:vig .9s ease-in-out infinite}@keyframes vig{50%{opacity:.55}}#flash{position:absolute;inset:0;pointer-events:none;background:#fff;opacity:0}#flash.hit{animation:flash .22s ease-out;background:#ff5a4a}@keyframes flash{0%{opacity:.45}to{opacity:0}}#brandWipe{position:absolute;inset:0;z-index:30;display:grid;place-items:center;pointer-events:none;visibility:hidden;isolation:isolate}#brandWipe:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 50% 42%,#353449,#1c1c27 62%,#111114);clip-path:circle(0 at 50% 50%);transition:clip-path .44s cubic-bezier(.7,0,.2,1)}#brandWipe.active{visibility:visible;pointer-events:auto}#brandWipe.covered:before{clip-path:circle(150vmax at 50% 50%)}#brandWipe.opening:before{clip-path:circle(0 at 50% 50%)}.brand-wipe-card{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:clamp(14px,4vw,30px);width:min(82%,430px);min-height:80px;padding:16px 24px;background:var(--yellow);border:0;border-radius:16px;box-shadow:none;opacity:0;transform:scale(.72);transition:opacity .18s ease,transform .24s cubic-bezier(.2,1.5,.4,1)}#brandWipe.active .brand-wipe-card{opacity:1;transform:scale(1);transition-delay:.2s}#brandWipe.opening .brand-wipe-card{opacity:0;transform:scale(.88);transition-delay:0s}.brand-wipe-card img{display:block;width:calc(50% - 10px);max-height:64px;object-fit:contain;image-rendering:auto}#brandWipe.reduced:before{clip-path:none;opacity:0;transition:opacity .12s ease}#brandWipe.reduced.active:before{opacity:1}#brandWipe.reduced.opening:before{opacity:0}#brandWipe.reduced.active .brand-wipe-card,#brandWipe.reduced.opening .brand-wipe-card{transition-duration:.12s;transition-delay:0s}.screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--u) * 2.5);padding:calc(var(--safe-top) + 12px) 16px calc(var(--safe-bottom) + 12px)}.screen.dim{background:#0a0a10b8}#title{justify-content:flex-start;background:linear-gradient(to bottom,#0a0c1e40,#0a0c1e00 30% 60%,#0a0c1e99)}#title .logo{display:block;flex:0 0 auto;width:min(88%,520px);height:auto;max-height:24vh;object-fit:contain;margin-top:calc(var(--u) * 14);animation:logoIn .7s cubic-bezier(.2,1.6,.4,1) both,float 3s ease-in-out .7s infinite}@keyframes logoIn{0%{transform:scale(.3) rotate(-8deg);opacity:0}}@keyframes float{50%{transform:translateY(-6px) rotate(-1deg)}}.tagline{font-size:calc(var(--u) * 7.5);color:#fff;text-shadow:3px 3px 0 var(--ink);margin-top:calc(var(--u) * -3);animation:wiggle 2.4s ease-in-out infinite}.arabic-punct{display:inline-flex;align-items:center;justify-content:center;gap:.12em;direction:rtl}.punctuation-glyph{display:block;flex:0 0 auto;width:.56em;height:.88em;object-fit:contain;image-rendering:pixelated}.tagline.arabic-punct{align-self:center}@keyframes wiggle{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg) scale(1.04)}}#title .restaurant-lockup{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:calc(var(--u) * 4);width:min(78%,390px);height:calc(var(--u) * 16);max-height:88px;direction:ltr;margin-top:calc(var(--u) * -.75);padding:calc(var(--u) * 1.5) calc(var(--u) * 4.5);background:#f7f4eef0;border:2px solid rgba(17,17,20,.28);border-radius:14px;box-shadow:0 5px #11111466,0 12px 24px #0000002e}#title .restaurant-lockup img{display:block;width:calc(50% - var(--u) * 2);height:100%;max-height:calc(var(--u) * 12);object-fit:contain;image-rendering:auto}.hero{flex:1;display:flex;align-items:flex-end;justify-content:center;min-height:0;width:100%}.hero img{height:min(100%,calc(var(--u) * 85));max-width:100%;object-fit:contain;filter:drop-shadow(0 10px 0 rgba(0,0,0,.25));transform-origin:50% 100%;animation:heroBounce 1.2s ease-in-out infinite}.hero img.pop{animation:heroPop .25s ease-out,heroBounce 1.2s ease-in-out .25s infinite}@keyframes heroBounce{0%,to{transform:scale(1)}50%{transform:scale(1.03,.97)}}@keyframes heroPop{0%{transform:scale(.92,1.1)}60%{transform:scale(1.06,.95)}}.cta{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;gap:.12em;direction:rtl;min-width:62%;padding:calc(var(--u) * 2.2) calc(var(--u) * 6) calc(var(--u) * 3);font-size:calc(var(--u) * 9.5);color:var(--ink);background:var(--yellow);border:4px solid var(--ink);border-radius:18px;box-shadow:0 8px 0 var(--ink),inset 0 -6px #00000026;animation:ctaPulse 1.1s ease-in-out infinite}.cta:active{transform:translateY(6px);box-shadow:0 2px 0 var(--ink)}.cta.small{font-size:calc(var(--u) * 7);min-width:40%;animation:none}@keyframes ctaPulse{50%{transform:scale(1.05)}}.ghost{pointer-events:auto;font-size:calc(var(--u) * 6);background:none;color:#fff;border:3px solid #fff;border-radius:14px;padding:4px 26px}#title .best-line{position:absolute;z-index:2;top:calc(var(--safe-top) + 12px);left:12px;display:flex;align-items:baseline;gap:7px;direction:rtl;width:max-content;padding:5px 9px;border:2px solid rgba(17,17,20,.75);border-radius:9px;background:#1111149e;font-size:calc(var(--u) * 4.5);color:#fff;text-shadow:2px 2px 0 var(--ink)}#title .best-line b{font-size:calc(var(--u) * 3.4);color:var(--yellow)}#title .hero{padding-bottom:calc(var(--u) * 1.5)}#title #startBtn{margin-bottom:calc(var(--u) * 1.5)}.corner-btn{position:absolute;top:calc(var(--safe-top) + 10px);right:10px;width:calc(var(--u) * 11);height:calc(var(--u) * 11);border-radius:12px;border:3px solid var(--ink);background:#f7f4eee6;color:var(--ink);font-size:calc(var(--u) * 6);line-height:1;pointer-events:auto}.corner-btn.left{right:auto;left:10px}#results{justify-content:flex-start;padding-top:calc(var(--safe-top) + var(--u) * 14);background:linear-gradient(to bottom,#0a0a108c,#0a0a1000 30% 52%,#0a0a10d1 70%)}#results .spacer{flex:1}#results .banner{display:block;width:100%}.banner-wrap{position:relative;width:78%;animation:logoIn .5s cubic-bezier(.2,1.6,.4,1) both}.banner-wrap>span{position:absolute;inset:26% 26% 24%;display:grid;place-items:center;padding:0 5px;overflow:hidden;clip-path:polygon(5% 0,95% 0,100% 16%,100% 84%,95% 100%,5% 100%,0 84%,0 16%);border:2px solid #791d19;background:linear-gradient(180deg,#f23a2b,#df211f 54%,#c91b20);color:#fff8ee;font-size:calc(var(--u) * 7.1);line-height:1;white-space:nowrap;text-align:center;text-shadow:2px 2px 0 #571313,-1px -1px 0 #571313}.caught-line{display:flex;align-items:center;justify-content:center;gap:.12em;direction:rtl;font-size:calc(var(--u) * 8);color:#fff;text-shadow:3px 3px 0 var(--ink)}.new-best{display:inline-flex;align-items:center;gap:.12em;font-size:calc(var(--u) * 7);color:var(--ink);background:var(--yellow);border:3px solid var(--ink);border-radius:12px;padding:0 16px 4px;transform:rotate(-4deg);animation:ctaPulse .6s infinite}.result-score{font-size:calc(var(--u) * 9);color:#fff;text-shadow:4px 4px 0 var(--ink)}.result-row{display:flex;gap:calc(var(--u) * 8);font-size:calc(var(--u) * 5.5);align-items:center;text-shadow:2px 2px 0 var(--ink);direction:ltr}.result-row>div{display:flex;align-items:center;gap:6px}.result-row img{width:calc(var(--u) * 8)}.result-row .pixel-num{font-size:calc(var(--u) * 3.6);color:var(--yellow)}#results .cta{margin-top:calc(var(--u) * 2)}.tap-hint{font-size:calc(var(--u) * 4.4);color:#fffc;margin-bottom:calc(var(--u) * 4)}.pause-title{font-size:calc(var(--u) * 11);text-shadow:4px 4px 0 var(--ink)}.toggle{pointer-events:auto;display:flex;align-items:center;gap:12px;width:78%;font-size:calc(var(--u) * 6);background:#ffffff14;border:3px solid rgba(255,255,255,.2);border-radius:14px;padding:6px 14px;direction:rtl}.toggle small{font-family:Segoe UI,sans-serif;font-size:calc(var(--u) * 3.2);opacity:.7;margin-inline-start:6px}.toggle input{width:26px;height:26px;accent-color:var(--yellow)}#loading{background:#15161f center / cover no-repeat;image-rendering:pixelated;z-index:10}.load-title{font-family:Lalezar,sans-serif;font-size:calc(var(--u) * 11);color:var(--yellow);text-shadow:4px 4px 0 var(--ink)}.load-bar{width:60%;height:18px;border:3px solid var(--cream);border-radius:9px;overflow:hidden}#loadFill{height:100%;width:0;background:var(--yellow)}.fps{position:absolute;left:6px;bottom:calc(var(--safe-bottom) + 6px);font:11px/1.3 monospace;color:#0f0;background:#0009;padding:3px 6px;pointer-events:none;white-space:pre}
