:root{--bg: #070c15;--ink: #e9eff8;--muted: #93a4bd;--amber: #f0b429;--amber-2: #ffd27a;--sky: #7dd3fc;--glass: rgba(11, 18, 30, .72);--glass-2: rgba(17, 26, 41, .86);--stroke: rgba(255, 255, 255, .09);--stroke-2: rgba(255, 255, 255, .16);--radius: 18px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:IBM Plex Sans Arabic,Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow:hidden}.mono{font-family:Inter,ui-monospace,monospace;font-feature-settings:"tnum"}.app{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.stage{position:absolute;top:0;right:0;bottom:0;left:0;cursor:grab}.stage:active{cursor:grabbing}.stage canvas{display:block}.label-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3}.vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;background:radial-gradient(120% 90% at 50% 40%,transparent 45%,rgba(3,7,13,.55) 100%),linear-gradient(180deg,rgba(4,8,14,.45) 0%,transparent 22%,transparent 72%,rgba(4,8,14,.6) 100%)}.lbl{position:absolute;left:0;top:0;display:flex;align-items:center;gap:5px;transform-origin:50% 100%;pointer-events:auto;cursor:pointer;transition:opacity .25s ease;will-change:transform;direction:rtl}.lbl-txt{font-size:12px;color:#eef4fd;white-space:nowrap;padding:2px 8px;border-radius:8px;background:#070d178c;border:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-shadow:0 1px 3px rgba(0,0,0,.8);transition:background .2s,color .2s}.lbl:hover .lbl-txt{background:#f0b42938;border-color:#f0b42980}.lbl-dot{width:5px;height:5px;border-radius:50%;background:#dbe7f7;box-shadow:0 0 8px #fffc}.lbl-main .lbl-txt{font-size:14.5px;font-weight:600;color:#1a1205;border:none;padding:3px 12px;background:linear-gradient(180deg,#ffe0a0,#f0b429);box-shadow:0 8px 26px #f0b42966,0 0 0 1px #ffe2a8b3 inset}.lbl-main .lbl-dot{display:none}.lbl-city .lbl-txt{font-size:13.5px;font-weight:600;color:#ffe0a3}.lbl-town .lbl-txt{font-size:12.5px;font-weight:600;color:#ffd98f}.lbl-village .lbl-txt{font-size:11.5px;color:#d7e4f6}.lbl-hood .lbl-txt{font-size:11px;color:#a9bdd6}.lbl-poi .lbl-txt{font-size:10.5px;color:#c9dbef;padding:1px 6px;background:#070d1766}.lbl-poi .lbl-dot{width:4px;height:4px;background:#9fc3e8}.lbl-city .lbl-dot,.lbl-town .lbl-dot{background:var(--amber);box-shadow:0 0 10px #f0b429e6}.topbar{position:absolute;inset-inline:0;top:0;z-index:10;display:flex;align-items:flex-start;justify-content:space-between;padding:18px 20px;pointer-events:none;gap:12px}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:12px;padding:9px 16px 9px 10px;background:var(--glass);-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);border:1px solid var(--stroke);border-radius:16px;box-shadow:0 24px 60px -28px #000,0 1px #ffffff0f inset}.brand h1{font-size:19px;font-weight:600;letter-spacing:.1px;display:flex;align-items:center;gap:7px}.brand-3d{font-family:Inter,sans-serif;font-size:10.5px;font-weight:700;letter-spacing:.5px;color:var(--amber-2);border:1px solid rgba(240,180,41,.45);background:#f0b4291f;padding:2px 5px;border-radius:6px}.brand-txt p{font-size:11.5px;color:var(--muted);margin-top:3px;letter-spacing:.1px}.top-actions{display:flex;align-items:center;gap:9px}.coord-chip{font-family:Inter,monospace;font-size:11px;letter-spacing:.3px;color:#c7dcf3;background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--stroke);padding:8px 12px;border-radius:999px}.ghost-btn{font-family:inherit;font-size:12.5px;color:var(--ink);cursor:pointer;background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--stroke);padding:8px 15px;border-radius:999px;transition:all .22s ease}.ghost-btn:hover{border-color:#f0b42980;color:var(--amber-2);transform:translateY(-1px)}.ghost-btn.active{background:linear-gradient(180deg,#ffe0a0,#f0b429);color:#1a1205;font-weight:600;border-color:transparent;box-shadow:0 8px 24px -8px #f0b42999}.panel{position:absolute;inset-inline-start:18px;top:98px;z-index:9;width:276px;max-height:calc(100% - 150px);display:flex;flex-direction:column;background:var(--glass);-webkit-backdrop-filter:blur(22px) saturate(1.25);backdrop-filter:blur(22px) saturate(1.25);border:1px solid var(--stroke);border-radius:var(--radius);box-shadow:0 32px 70px -34px #000,0 1px #ffffff0d inset;transition:transform .4s cubic-bezier(.22,.9,.28,1),opacity .3s;overflow:hidden}.panel-body{overflow-y:auto;padding:4px 14px 16px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.16) transparent}.panel-body::-webkit-scrollbar{width:6px}.panel-body::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:99px}.panel section{padding:13px 0;border-bottom:1px solid rgba(255,255,255,.06)}.panel section:last-child{border-bottom:none;padding-bottom:4px}.panel h3{font-size:11.5px;font-weight:500;color:var(--muted);display:flex;align-items:center;gap:6px;margin-bottom:11px;letter-spacing:.2px}.panel h3 svg{color:#f0b429cc}.panel-tab{display:flex;align-items:center;gap:7px;width:100%;font-family:inherit;font-size:12px;color:var(--ink);cursor:pointer;background:transparent;border:none;padding:13px 15px 10px;border-bottom:1px solid rgba(255,255,255,.05)}.panel-tab svg{color:var(--amber)}.panel-tab .chev{margin-inline-start:auto;color:var(--muted);transition:transform .3s}.panel-tab .chev.rot{transform:rotate(-90deg)}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:#ffffff0b;border-radius:11px;padding:3px;margin-bottom:14px}.segmented button{font-family:inherit;font-size:11.5px;color:var(--muted);cursor:pointer;background:transparent;border:1px solid transparent;border-radius:9px;padding:6px 2px;transition:all .2s}.segmented button:hover{color:var(--ink)}.segmented button.active{color:#1a1205;font-weight:600;background:linear-gradient(180deg,#ffe0a0,#f0b429);box-shadow:0 4px 14px -6px #f0b429b3}.slider{display:block;margin-bottom:13px}.slider:last-child{margin-bottom:2px}.slider-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.slider-label{font-size:11.5px;color:#c3d2e6;display:flex;align-items:center;gap:6px}.slider-label svg{color:#7dd3fcd9}.slider-val{font-family:Inter,monospace;font-size:10.5px;color:var(--amber-2);background:#f0b4291a;border:1px solid rgba(240,180,41,.22);padding:1px 6px;border-radius:6px}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;border-radius:99px;outline:none;cursor:pointer;background:linear-gradient(90deg,#f0b429 0%,#ffd27a var(--pct),rgba(255,255,255,.12) var(--pct))}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid #f0b429;cursor:pointer;box-shadow:0 2px 10px #00000080;transition:transform .15s}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}input[type=range]::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:#fff;border:2px solid #f0b429;cursor:pointer}.toggles{display:flex;flex-direction:column;gap:2px}.toggle{display:flex;align-items:center;gap:9px;width:100%;font-family:inherit;font-size:12px;color:#c8d6e8;cursor:pointer;background:transparent;border:1px solid transparent;border-radius:10px;padding:7px;transition:all .18s}.toggle:hover{background:#ffffff0b;color:var(--ink)}.tgl-ico{display:flex;color:var(--muted);transition:color .2s}.toggle.on .tgl-ico{color:var(--amber)}.tgl-label{flex:1;text-align:start}.tgl-track{width:32px;height:17px;border-radius:99px;flex:none;position:relative;background:#ffffff1f;transition:background .22s}.tgl-knob{position:absolute;top:2px;inset-inline-start:2px;width:13px;height:13px;border-radius:50%;background:#93a4bd;transition:transform .22s cubic-bezier(.3,1.4,.5,1),background .22s}.toggle.on .tgl-track{background:#f0b42959}.toggle.on .tgl-knob{transform:translate(-15px);background:var(--amber-2)}.btn-row{display:flex;gap:6px;margin-top:4px}.mini-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;font-family:inherit;font-size:10px;color:#c3d2e6;cursor:pointer;background:#ffffff0b;border:1px solid var(--stroke);border-radius:10px;padding:8px 4px;transition:all .2s}.mini-btn:hover{background:#f0b4291f;border-color:#f0b42966;color:var(--amber-2);transform:translateY(-1px)}.mini-btn svg{color:#7dd3fce6}.mini-btn:hover svg{color:var(--amber-2)}.zoom-btn{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;font-family:inherit;font-size:12px;font-weight:500;color:#1a1205;cursor:pointer;background:linear-gradient(180deg,#ffe0a0,#f0b429);border:none;border-radius:10px;padding:9px;margin-top:12px;transition:all .2s;box-shadow:0 8px 22px -10px #f0b429cc}.zoom-btn:hover{transform:translateY(-1px);box-shadow:0 12px 28px -10px #f0b429e6}.bottom-stack{position:absolute;inset-inline-end:18px;bottom:18px;z-index:8;display:flex;flex-direction:column;gap:10px;align-items:flex-end}.legend{width:186px;padding:11px 12px 10px;background:var(--glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--stroke);border-radius:14px;box-shadow:0 20px 50px -30px #000}.legend h4{font-size:10.5px;font-weight:500;color:var(--muted);letter-spacing:.3px;display:flex;align-items:center;gap:5px;margin-bottom:8px}.legend h4 svg{color:#f0b429d9}.ramp{height:7px;border-radius:99px;background:linear-gradient(90deg,#5c7a44,#7d9150,#a3a463,#c2b078,#b9925f,#a1714e,#8a5f45,#c9c0b4);box-shadow:0 0 0 1px #ffffff1a inset}.ramp-ticks{display:flex;justify-content:space-between;direction:ltr;font-family:Inter,monospace;font-size:9.5px;color:var(--muted);margin-top:4px}.legend-items{display:grid;grid-template-columns:1fr 1fr;gap:4px 6px;margin-top:9px;padding-top:8px;border-top:1px solid rgba(255,255,255,.07);font-size:10px;color:#b9c9de}.legend-items span{display:flex;align-items:center;gap:5px}.dot{width:6px;height:6px;border-radius:50%;display:inline-block}.dot.town{background:var(--amber);box-shadow:0 0 7px #f0b429e6}.dot.mosque{background:#7dd3fc}.dot.school{background:#c4b5fd}.dot.health{background:#fca5a5}.compass-wrap{display:flex;align-items:center;gap:10px}.compass{position:relative;width:62px;height:62px;border-radius:50%;background:#090f19b8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--stroke);box-shadow:0 14px 34px -20px #000}.rose{position:absolute;top:0;right:0;bottom:0;left:0;display:block;transition:transform .35s linear}.cardinal{position:absolute;top:3px;left:50%;transform:translate(-50%);font-size:10px;font-weight:600;color:var(--amber-2)}.cardinal b{display:block}.needle-n,.needle-s{position:absolute;left:50%;width:2px;border-radius:2px;transform:translate(-50%)}.needle-n{top:17px;height:14px;background:linear-gradient(180deg,#ff8f6b,#f0b429)}.needle-s{bottom:17px;height:11px;background:#ffffff47}.compass-dot{position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 0 8px #ffffffb3}.scale{display:flex;flex-direction:column;gap:3px;align-items:flex-end}.scale-bar{display:flex;justify-content:space-between;height:6px;border:1px solid rgba(255,255,255,.55);border-top:none}.scale-bar span{width:1px;height:6px;background:#ffffff8c}.scale em{font-family:Inter,monospace;font-size:9.5px;color:#cfe0f4;font-style:normal}.detail-card{position:absolute;inset-inline-end:18px;bottom:214px;z-index:9;width:238px;padding:14px;background:var(--glass-2);-webkit-backdrop-filter:blur(20px) saturate(1.2);backdrop-filter:blur(20px) saturate(1.2);border:1px solid var(--stroke-2);border-radius:16px;box-shadow:0 26px 60px -26px #000;animation:slideIn .32s cubic-bezier(.22,.9,.28,1)}.detail-card h3{font-size:16px;font-weight:600;margin:7px 0 1px}.detail-card .en{font-family:Inter,sans-serif;font-size:10.5px;color:var(--muted)}.kind-badge{display:inline-block;font-size:9.5px;padding:2px 7px;border-radius:6px;background:#f0b42924;color:var(--amber-2);border:1px solid rgba(240,180,41,.28)}.kind-badge.k-school,.kind-badge.k-university{background:#c4b5fd24;color:#ddd6fe;border-color:#c4b5fd4d}.kind-badge.k-place_of_worship,.kind-badge.k-mosque{background:#7dd3fc24;color:#bae6fd;border-color:#7dd3fc4d}.kind-badge.k-hospital,.kind-badge.k-clinic,.kind-badge.k-pharmacy{background:#fca5a524;color:#fecaca;border-color:#fca5a54d}.detail-card dl{display:flex;gap:14px;margin-top:11px}.detail-card dt{font-size:9px;color:var(--muted);margin-bottom:2px}.detail-card dd{font-size:11.5px;color:#e3ecf8}.card-x{position:absolute;top:9px;inset-inline-end:9px;z-index:2;width:24px;height:24px;display:grid;place-items:center;background:#ffffff0f;border:1px solid var(--stroke);border-radius:7px;color:var(--muted);cursor:pointer;transition:all .2s}.card-x:hover{background:#ffffff1f;color:var(--ink)}.hover-chip{position:absolute;left:50%;bottom:64px;transform:translate(-50%);z-index:8;display:flex;align-items:center;gap:8px;direction:ltr;padding:6px 12px;border-radius:999px;pointer-events:none;background:#070d17b8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--stroke);font-size:11px;color:#cfe0f4}.hover-chip b{color:var(--amber-2);font-weight:600}.hover-chip .sep{width:1px;height:11px;background:#ffffff2e}.hint{position:absolute;left:50%;bottom:20px;transform:translate(-50%);z-index:7;font-size:10.5px;color:#d6e4f580;white-space:nowrap;pointer-events:none;text-shadow:0 1px 6px rgba(0,0,0,.8)}.about{position:absolute;inset-inline-end:18px;top:96px;z-index:9;width:350px;max-height:calc(100% - 132px);overflow-y:auto;padding:18px;background:var(--glass-2);-webkit-backdrop-filter:blur(22px) saturate(1.2);backdrop-filter:blur(22px) saturate(1.2);border:1px solid var(--stroke-2);border-radius:18px;box-shadow:0 34px 80px -34px #000;animation:slideIn .35s cubic-bezier(.22,.9,.28,1);scrollbar-width:thin}.about h2{font-size:17px;margin-bottom:9px}.about p{font-size:11.8px;line-height:1.85;color:#c3d2e6}.about .lead{color:#e0eaf7;font-size:12.2px;margin-bottom:9px}.facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.facts div{background:#ffffff0a;border:1px solid var(--stroke);border-radius:11px;padding:9px 10px;display:grid;gap:3px}.facts svg{color:#7dd3fccc}.facts b{font-size:12.5px;font-weight:600;font-family:Inter,sans-serif}.facts span{font-size:9.5px;color:var(--muted)}.note{display:flex;gap:8px;padding:10px;margin-bottom:13px;background:#f0b42912;border:1px solid rgba(240,180,41,.18);border-radius:11px}.note svg{color:var(--amber);flex:none;margin-top:2px}.note p{font-size:10.8px;color:#d9cca9;line-height:1.75}.about h4{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px;margin-bottom:7px}.sources{list-style:none;display:grid;gap:5px;font-size:10.5px;color:#a9bdd6;line-height:1.6}.sources span{color:var(--amber-2);margin-inline-end:5px}.loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;background:radial-gradient(120% 100% at 50% 30%,#0d1a2b,#070c15 60%,#04070d);transition:opacity .7s ease,visibility .7s}.loader.hidden{opacity:0;visibility:hidden;pointer-events:none}.loader-inner{text-align:center;max-width:400px;padding:0 24px}.loader-rings{position:relative;width:104px;height:104px;margin:0 auto 26px}.ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:1px solid rgba(240,180,41,.3);animation:pulse 2.8s cubic-bezier(.4,0,.6,1) infinite}.ring.r2{top:13px;right:13px;bottom:13px;left:13px;animation-delay:.35s}.ring.r3{top:26px;right:26px;bottom:26px;left:26px;animation-delay:.7s}.pin{position:absolute;left:50%;top:50%;width:9px;height:9px;border-radius:50%;background:var(--amber);transform:translate(-50%,-50%);box-shadow:0 0 26px 8px #f0b42966}.loader h2{font-size:19px;font-weight:600;margin-bottom:8px}.loader p{font-size:11.8px;color:var(--muted);line-height:1.8;margin-bottom:22px}.bar{height:3px;border-radius:99px;background:#ffffff17;overflow:hidden}.bar span{display:block;height:100%;background:linear-gradient(90deg,#f0b429,#ffd27a);transition:width .45s ease}.pct{display:block;margin-top:9px;font-family:Inter,monospace;font-size:10.5px;color:var(--muted)}@keyframes pulse{0%{transform:scale(.9);opacity:.15}50%{transform:scale(1.05);opacity:.85}to{transform:scale(1.22);opacity:0}}@keyframes slideIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}@media (max-width: 900px){.topbar{padding:12px}.brand{padding:7px 12px 7px 8px;border-radius:14px}.brand h1{font-size:16px}.brand-txt p{font-size:10px}.coord-chip{display:none}.ghost-btn{padding:7px 12px;font-size:11.5px}.panel{inset-inline:10px;width:auto;top:auto;bottom:10px;max-height:62vh;transform:translateY(calc(100% - 50px))}.panel.open{transform:none}.panel-tab{justify-content:space-between}.panel-tab span{margin-inline-end:auto;margin-inline-start:8px}.bottom-stack{inset-inline-end:auto;inset-inline-start:12px;bottom:70px;flex-direction:row-reverse;align-items:flex-end}.legend{display:none}.compass{width:52px;height:52px}.detail-card{inset-inline:12px;bottom:auto;top:74px;width:auto;max-width:300px}.about{inset-inline:12px;width:auto;top:74px;max-height:66vh}.hint{display:none}.hover-chip{bottom:72px;font-size:10px}}@media (max-width: 420px){.brand-txt p{display:none}}
