:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font:ui-rounded, "SF Pro Rounded", "Baloo 2", "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--accent:#ff2e88;--accent-2:#0fb6a3;--gold:#f0a52a;--ok:#12a566;--danger:#e0446a;--bg-0:#ffe4bd;--bg-1:#fff8ec;--bg-solid:#f7e6c6;--shroud:247, 230, 198;--ink:#2c1d3f;--muted:#927f6b;--chip-bg:#3c220c14;--chip-border:#3c220c29;--panel:#fffaf0a8;--grad-a:#5a2f7e;--grad-b:#0fb6a3;--word-top:#3a2456;--tile-filter:saturate(1.12) contrast(1.03) brightness(1.03);--logo-glow:0 8px 22px #f0783c59}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--accent-2:#22e0c8;--gold:#ffd166;--ok:#3ce0a0;--danger:#ff5470;--bg-0:#0b0714;--bg-1:#150a26;--bg-solid:#05030a;--shroud:5, 3, 10;--ink:#f6f0ff;--muted:#b9a9d6;--chip-bg:#ffffff14;--chip-border:#ffffff24;--panel:#08041080;--grad-a:#fff;--grad-b:#22e0c8;--word-top:#fff;--tile-filter:brightness(1.7) contrast(1.05) saturate(1.35) hue-rotate(-8deg);--logo-glow:0 10px 30px #ff2e8866}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:radial-gradient(120% 120% at 50% -10%, var(--bg-1) 0%, var(--bg-0) 55%, var(--bg-solid) 100%);width:100%;height:100%;color:var(--ink);font-family:var(--font);-webkit-user-select:none;user-select:none;overscroll-behavior:none;touch-action:none;margin:0;overflow:hidden}#map{z-index:0;pointer-events:none;width:100%;height:100%;filter:var(--tile-filter);outline:none;display:block;position:fixed;top:0;bottom:0;left:0;right:0}#scene{touch-action:none;z-index:1;outline:none;width:100%;height:100%;display:block;position:fixed;top:0;bottom:0;left:0;right:0}.map-attrib{z-index:2;color:var(--muted);opacity:.55;pointer-events:auto;font-size:9px;line-height:1;position:fixed;bottom:4px;right:6px}.map-attrib a{color:inherit;text-decoration:none}.map-attrib a:hover{text-decoration:underline}.layer{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);z-index:2;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.hidden{display:none!important}#splash{text-align:center;background:radial-gradient(90% 90% at 50% 28%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 60%);justify-content:center;align-items:center;animation:.5s both fadeIn;overflow:hidden}#splash:before,#splash:after{content:"✨";opacity:.5;font-size:26px;animation:7s ease-in-out infinite drift;position:absolute}#splash:before{top:16%;left:16%}#splash:after{content:"🍸";font-size:30px;animation-delay:-3s;bottom:18%;right:16%}.splash-inner{flex-direction:column;align-items:center;gap:16px;padding:24px;display:flex;position:relative}.logo{width:clamp(96px,30vw,150px);height:auto;filter:drop-shadow(var(--logo-glow));transform-origin:50% 80%;animation:.8s cubic-bezier(.2,1.5,.4,1) both dropIn,3.2s ease-in-out 1s infinite bob}.wordmark{letter-spacing:.01em;flex-direction:column;line-height:.9;animation:.7s cubic-bezier(.2,1.5,.4,1) .12s both springIn;display:flex}.wordmark .line1{background:linear-gradient(180deg, var(--word-top), var(--muted));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(40px,14vw,88px);font-weight:900}.wordmark .line2{color:#0000;background:linear-gradient(90deg, var(--accent), var(--gold));filter:drop-shadow(0 0 22px color-mix(in srgb, var(--accent) 45%, transparent));-webkit-background-clip:text;background-clip:text;font-size:clamp(40px,14vw,88px);font-weight:900}.tagline{color:var(--muted);margin:0 0 6px;font-size:clamp(14px,4.5vw,19px);font-weight:700;animation:.7s cubic-bezier(.2,1.5,.4,1) .2s both springIn}.cta{cursor:pointer;letter-spacing:.03em;color:#2a0016;background:linear-gradient(135deg, var(--gold), var(--accent) 92%);box-shadow:0 14px 40px color-mix(in srgb, var(--accent) 45%, transparent), inset 0 1px 0 #fff9;will-change:transform;border:none;border-radius:999px;padding:20px 42px;font-size:clamp(18px,5.5vw,24px);font-weight:900;animation:.6s cubic-bezier(.2,1.6,.4,1) .3s both springIn,3.5s ease-in-out 1.4s infinite wiggle;position:relative}.cta:hover{animation-play-state:paused;transform:scale(1.04)rotate(-1deg)}.cta:active{transform:scale(.93)}.cta-glow{z-index:-1;background:conic-gradient(from 0deg, var(--accent), var(--gold), var(--accent-2), var(--accent));filter:blur(15px);opacity:.75;border-radius:999px;animation:6s linear infinite spin;position:absolute;top:-3px;bottom:-3px;left:-3px;right:-3px}.fineprint{color:var(--muted);opacity:.85;max-width:300px;font-size:12px}#permit{z-index:5;background:color-mix(in srgb, var(--bg-0) 78%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:center;align-items:center;padding:20px;animation:.3s both fadeIn}.permit-card{text-align:center;background:var(--bg-1);border:1px solid var(--chip-border);border-radius:28px;flex-direction:column;align-items:center;gap:12px;width:min(92vw,420px);padding:30px 24px 22px;animation:.5s cubic-bezier(.2,1.5,.4,1) both springIn;display:flex;position:relative;box-shadow:0 30px 80px #00000061,inset 0 1px #fff6}.permit-emoji{filter:drop-shadow(0 8px 20px color-mix(in srgb, var(--accent) 40%, transparent));font-size:46px;animation:3.2s ease-in-out infinite bob}.permit-title{color:var(--ink);margin:0;font-size:clamp(20px,6vw,26px);font-weight:900}.permit-sub{color:var(--muted);margin:0 0 2px;font-size:14px;font-weight:700}.permit-list{flex-direction:column;gap:10px;width:100%;margin:4px 0;padding:0;list-style:none;display:flex}.permit-list li{text-align:left;background:var(--chip-bg);border:1px solid var(--chip-border);border-radius:18px;align-items:center;gap:14px;padding:12px 14px;display:flex}.permit-ico{text-align:center;flex:none;width:34px;font-size:26px}.permit-copy{flex-direction:column;gap:2px;display:flex}.permit-copy b{color:var(--ink);font-size:15px;font-weight:900}.permit-copy small{color:var(--muted);font-size:12.5px;font-weight:700;line-height:1.3}.permit-cta{margin-top:6px;padding:17px 40px;animation:none}.permit-cta:disabled{opacity:.65;cursor:default}#precise{z-index:6;overflow-y:auto}#precise .permit-card{gap:9px;margin:auto 0;padding:22px 20px 18px}#precise .permit-emoji{font-size:38px}#precise .permit-cta{margin-top:3px;padding:15px 34px}#precise .permit-title{font-size:clamp(19px,5.5vw,23px)}.precise-steps{flex-direction:column;gap:7px;width:100%;margin:2px 0;padding:0;list-style:none;display:flex}.precise-steps li{text-align:left;background:var(--chip-bg);border:1px solid var(--chip-border);color:var(--muted);border-radius:14px;align-items:center;gap:11px;padding:9px 13px;font-size:13px;font-weight:700;line-height:1.3;display:flex}.precise-steps b{color:var(--ink);font-weight:900}.precise-n{background:var(--accent);color:#fff;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:12px;font-weight:900;display:grid}.linkish{color:var(--muted);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin-top:2px;padding:6px 4px;font-size:13px;font-weight:700;text-decoration:underline}#blocked{z-index:6;text-align:center;background:radial-gradient(90% 90% at 50% 28%, color-mix(in srgb, var(--danger) 14%, transparent), transparent 60%), var(--bg-0);justify-content:center;align-items:center;padding:24px;animation:.4s both fadeIn}.blocked-inner{flex-direction:column;align-items:center;gap:16px;width:min(92vw,440px);display:flex}.blocked-emoji{filter:drop-shadow(0 10px 24px #0000004d);font-size:clamp(48px,16vw,62px);animation:3.2s ease-in-out infinite bob}.blocked-title{background:linear-gradient(90deg, var(--accent), var(--gold));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(24px,7.5vw,34px);font-weight:900;line-height:1.05}.blocked-sub{max-width:360px;color:var(--muted);margin:0;font-size:clamp(14px,4vw,16px);font-weight:700;line-height:1.4}.blocked-cta{margin-top:6px;padding:17px 40px;animation:none}#hud{pointer-events:none}#hud .chip,#hud button,#hud .store.tappable,#hud .headnote.tappable{pointer-events:auto}.hud-top{padding:calc(env(safe-area-inset-top) + 12px) 18px 12px;justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;left:0;right:0}.brand{letter-spacing:.22em;color:var(--muted);align-items:center;gap:8px;font-size:clamp(10px,3vw,13px);font-weight:800;animation:.6s cubic-bezier(.2,1.5,.4,1) both springIn;display:flex}.brand-mark{filter:drop-shadow(0 3px 8px #00000040);width:auto;height:28px;animation:3.2s ease-in-out infinite bob}.headnote{letter-spacing:.02em;background:var(--danger);color:#fff;box-shadow:0 6px 18px color-mix(in srgb, var(--danger) 45%, transparent);border-radius:999px;padding:9px 15px;font-size:12px;font-weight:800;animation:.4s cubic-bezier(.2,1.7,.4,1) pop1}.headnote.info{background:var(--chip-bg);color:var(--ink);border:1px solid var(--chip-border);box-shadow:none}.headnote.tappable{cursor:pointer}.headnote.tappable:active{transform:scale(.96)}#accuracy.coarse{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, transparent)}.hud-readout{text-align:center;flex-direction:column;align-items:center;gap:8px;animation:.6s cubic-bezier(.2,1.5,.4,1) .1s both springIn;display:flex;position:absolute;top:clamp(56px,12vh,104px);left:0;right:0}.distance{font-variant-numeric:tabular-nums;letter-spacing:-.02em;background:linear-gradient(180deg, var(--grad-a), var(--grad-b));color:#0000;filter:drop-shadow(0 6px 26px color-mix(in srgb, var(--grad-b) 45%, transparent));-webkit-background-clip:text;background-clip:text;font-size:clamp(46px,15vw,108px);font-weight:900;line-height:.86;transition:filter .3s}.distance .unit{color:var(--muted);-webkit-text-fill-color:var(--muted);margin-left:.1em;font-size:.3em}.store{color:var(--ink);background:var(--panel);border:1px solid var(--chip-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;max-width:min(90vw,520px);padding:7px 16px;font-size:clamp(14px,4.4vw,20px);font-weight:800}.store-addr{letter-spacing:.12em;text-transform:uppercase;min-height:1em;color:var(--accent);margin-top:2px;font-size:clamp(11px,3.2vw,13px);font-weight:800}.hud-readout .inv-trigger{letter-spacing:.02em;color:#2a0016;background:linear-gradient(135deg, var(--gold), var(--accent) 92%);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 12px 30px color-mix(in srgb, var(--accent) 42%, transparent), inset 0 1px 0 #ffffff73;border:none;border-radius:999px;margin-top:14px;padding:13px 24px;font-size:clamp(14px,4.2vw,16px);font-weight:900;position:static;bottom:auto;left:auto;transform:none}.hud-readout .inv-trigger:active{transform:scale(.95)}.hud-readout .inv-trigger .inv-lens{font-size:18px}.loader{justify-content:center;align-items:flex-end;gap:12px;height:clamp(46px,15vw,108px);display:flex}.loader span{background:linear-gradient(160deg, var(--gold), var(--accent));width:clamp(12px,3.6vw,20px);height:clamp(12px,3.6vw,20px);box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 40%, transparent);border-radius:50%;animation:.9s cubic-bezier(.3,.1,.3,1) infinite loadBounce}.loader span:nth-child(2){background:linear-gradient(160deg, var(--accent), var(--accent-2));animation-delay:.12s}.loader span:nth-child(3){background:linear-gradient(160deg, var(--accent-2), var(--gold));animation-delay:.24s}@keyframes loadBounce{0%,to{opacity:.55;transform:translateY(0)scale(.85)}45%{opacity:1;transform:translateY(-26px)scale(1.05)}}.arrived{text-align:center;color:var(--ok);text-shadow:0 0 30px color-mix(in srgb, var(--ok) 60%, transparent);font-size:clamp(24px,8vw,46px);font-weight:900;animation:.45s cubic-bezier(.2,1.7,.4,1) both popIn,1.8s ease-in-out infinite floaty;position:absolute;top:40%;left:0;right:0}.hud-bottom{left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 16px);justify-content:center;display:flex;position:absolute}.meta{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.chip{letter-spacing:.03em;background:var(--chip-bg);color:var(--ink);border:1px solid var(--chip-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;padding:9px 15px;font-size:12px;font-weight:800;transition:transform .2s cubic-bezier(.2,1.6,.4,1)}.chip:active{transform:scale(.92)}.chip.ghost{color:var(--muted);background:0 0}.chip.live{color:#06110d;background:var(--ok);border-color:#0000;animation:.4s cubic-bezier(.2,1.7,.4,1) pop1}.chip.err{color:#fff;background:var(--danger);border-color:#0000}.near .distance{filter:drop-shadow(0 6px 30px color-mix(in srgb, var(--gold) 60%, transparent))}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes dropIn{0%{opacity:0;transform:translateY(-60px)scale(.6)rotate(-12deg)}to{opacity:1;transform:translateY(0)scale(1)rotate(0)}}@keyframes springIn{0%{opacity:0;transform:translateY(14px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes bob{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-9px)rotate(2deg)}}@keyframes wiggle{0%,92%,to{transform:rotate(0)scale(1)}94%{transform:rotate(-2.5deg)scale(1.03)}97%{transform:rotate(2.5deg)scale(1.03)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes drift{0%,to{opacity:.35;transform:translateY(0)rotate(-6deg)}50%{opacity:.65;transform:translateY(-16px)rotate(8deg)}}@keyframes popIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes pop1{0%{transform:scale(.7)}to{transform:scale(1)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
