.nearby-page {
  --nearby-glass: color-mix(in srgb,var(--color-bg) 64%,transparent);
  --nearby-line: color-mix(in srgb,var(--color-text) 13%,transparent);
  --nearby-blue: #2588ff;
  overflow-x: clip;
}
html { scroll-padding-top:0; }
html[data-theme="dark"] { color-scheme:dark; }
html[data-theme="light"] { color-scheme:light; }
.nearby-page [hidden] { display:none!important; }
.nearby-page .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.nearby-page button,.nearby-page a { -webkit-tap-highlight-color:transparent; }
.nearby-page button { cursor:pointer; }
.nearby-page button:focus-visible,.nearby-page a:focus-visible,.nearby-map-surface:focus-visible { outline:2px solid var(--nearby-blue); outline-offset:5px; }
.nearby-page main { position:relative; z-index:2; }
.nearby-header { position:fixed; left:0; right:0; top:0; background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; border-bottom-color:transparent; transition:background .3s ease,border-color .3s ease; }
.nearby-header.scrolled { background:color-mix(in oklab,var(--color-bg) 70%,transparent); backdrop-filter:blur(14px) saturate(140%); -webkit-backdrop-filter:blur(14px) saturate(140%); border-bottom-color:var(--color-border); }
.nearby-brand-group { display:flex; align-items:center; gap:var(--space-4); flex:0 0 auto; }
.nearby-nav { display:flex; }
.nearby-nav a { position:relative; white-space:nowrap; }
.nearby-nav a[aria-current] { color:var(--color-text); }
.nearby-home { position:relative; display:inline-flex; align-items:center; justify-content:center; gap:7px; height:calc(18px + .8rem + 2px); padding:0 10px 0 7px; border:1px solid var(--color-border); border-radius:var(--radius-full); color:var(--color-text-muted); font-size:var(--text-xs); transition:color .2s,background .2s; }
.nearby-home svg { width:18px; height:18px; flex:0 0 18px; }
.nearby-home:hover,.nearby-home:active { color:var(--color-text); background:color-mix(in srgb,var(--color-text) 7%,var(--color-bg)); }
.nearby-header .theme-toggle { flex:0 0 auto; align-items:center; justify-content:center; background:transparent; }
.nearby-header .theme-toggle svg { display:block; width:18px; height:18px; flex:0 0 18px; overflow:visible; }
.nearby-skip { position:fixed; top:10px; left:16px; z-index:100; background:var(--color-surface); padding:.7rem 1rem; border-radius:.5rem; transform:translateY(-150%); }
.nearby-skip:focus { transform:none; }
.nearby-scene { position:fixed; z-index:0; inset:0; overflow:hidden; pointer-events:none; view-transition-name:nearby-window; background-color:var(--color-bg); background-image:linear-gradient(color-mix(in srgb,var(--color-text) 2%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--color-text) 2%,transparent) 1px,transparent 1px); background-size:72px 72px; }
.nearby-scene canvas { width:100%; height:100%; opacity:0; transition:opacity .55s ease; }
.nearby-scene.is-ready canvas { opacity:1; }
.nearby-sphere-poster { position:absolute; width:min(54vw,700px); height:auto; left:3.5%; top:49%; transform:translateY(-50%); opacity:.9; transition:opacity .4s ease; }
.nearby-scene.is-ready .nearby-sphere-poster,.nearby-scene[data-mode="map"] .nearby-sphere-poster,.nearby-scene[data-mode="pass"] .nearby-sphere-poster { opacity:0; }
[data-theme="light"] .nearby-sphere-poster { filter:brightness(.5); }
.nearby-map-poster { position:absolute; inset:-8%; width:116%; height:116%; object-fit:cover; opacity:.17; transition:opacity .5s ease; }
[data-theme="dark"] .nearby-map-poster { filter:invert(1) hue-rotate(180deg) brightness(.6); }
.nearby-scene.is-ready .nearby-map-poster { opacity:0; }
.nearby-scene-fade { position:absolute; inset:0; background:linear-gradient(90deg,transparent 20%,color-mix(in srgb,var(--color-bg) 12%,transparent) 54%,var(--color-bg) 100%); pointer-events:none; }
.nearby-scene[data-mode="map"] .nearby-scene-fade { opacity:.16; }
.nearby-scene[data-mode="pass"] .nearby-map-poster { opacity:0; }
.nearby-overview,.nearby-map-section,.nearby-pass-section { position:relative; pointer-events:none; }
.nearby-overview { min-height:100svh; display:flex; justify-content:flex-end; align-items:center; padding:112px clamp(32px,7vw,112px) 92px; }
.nearby-glass { border:1px solid var(--nearby-line); background:var(--nearby-glass); backdrop-filter:blur(20px) saturate(125%); -webkit-backdrop-filter:blur(20px) saturate(125%); border-radius:22px; box-shadow:inset 0 1px 0 color-mix(in srgb,var(--color-text) 3%,transparent); }
.nearby-intro-copy { position:relative; width:min(43vw,510px); padding:38px 36px 25px; pointer-events:auto; background:color-mix(in srgb,var(--color-bg) 36%,transparent); border-color:color-mix(in srgb,var(--color-text) 8%,transparent); }
.nearby-kicker { display:flex; align-items:center; gap:.6rem; font-size:.6rem; line-height:1.6; font-weight:500; letter-spacing:.19em; text-transform:uppercase; color:var(--color-text-muted); }
.nearby-live { width:5px; height:5px; border-radius:50%; background:var(--color-accent-soft); flex:0 0 auto; box-shadow:0 0 0 4px color-mix(in srgb,var(--color-accent) 8%,transparent); }
.nearby-intro-copy h1 { font-size:clamp(3.7rem,6.7vw,6.6rem); font-weight:400; letter-spacing:-.065em; line-height:.98; margin:35px 0 26px; }
.nearby-intro-copy h1 span,.nearby-pass-copy h2 span { color:var(--color-text-muted); }
.nearby-intro-lede,.nearby-pass-lede { color:var(--color-text-muted); font-size:clamp(.9rem,1.15vw,1rem); line-height:1.75; font-weight:400; }
.nearby-primary,.nearby-secondary { min-height:48px; display:flex; gap:1.2rem; align-items:center; justify-content:space-between; width:100%; padding:13px 18px; border:1px solid var(--nearby-line); border-radius:11px; font-size:.8rem; font-weight:500; letter-spacing:-.01em; transition:background .2s,border-color .2s,transform .2s; }
.nearby-primary { color:var(--color-bg); background:var(--color-text); border-color:var(--color-text); }
.nearby-secondary { color:var(--color-text); background:color-mix(in srgb,var(--color-surface) 36%,transparent); }
.nearby-primary:hover,.nearby-secondary:hover { transform:translateY(-1px); border-color:var(--color-text-muted); }
.nearby-intro-copy>.nearby-primary { margin-top:32px; max-width:245px; }
.nearby-intro-footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; border-top:1px solid var(--nearby-line); margin-top:32px; padding-top:18px; font-size:.59rem; letter-spacing:.02em; color:var(--color-text-muted); }
.nearby-orbit-note { position:absolute; left:clamp(30px,8vw,120px); bottom:21%; display:flex; align-items:center; gap:15px; color:var(--color-text-muted); font-size:.7rem; }
.nearby-hairline { width:36px; height:1px; background:var(--color-accent); }
.nearby-overview-caption { position:absolute; bottom:32px; left:clamp(30px,4vw,60px); right:clamp(30px,4vw,60px); display:flex; justify-content:space-between; font-size:.6rem; letter-spacing:.09em; color:var(--color-text-faint); }
.nearby-map-section { min-height:190svh; }
.nearby-map-stage { position:sticky; top:0; width:100%; height:100svh; overflow:hidden; }
.nearby-map-surface { position:absolute; inset:66px 0 0; z-index:1; pointer-events:auto; cursor:grab; touch-action:pan-y pinch-zoom; outline-offset:-6px!important; }
.nearby-map-surface.is-dragging { cursor:grabbing; }
.nearby-map-heading { position:absolute; left:4.5%; top:120px; pointer-events:none; z-index:4; }
.nearby-map-heading h2 { font-size:clamp(2.4rem,4.5vw,4.8rem); letter-spacing:-.065em; font-weight:600; line-height:1.04; margin-top:15px; text-shadow:0 1px 15px var(--color-bg); }
.nearby-map-heading h2 span { display:block; color:var(--color-text-muted); }
.nearby-camera-controls { position:absolute; display:flex; padding:4px; top:126px; right:calc(min(31vw,370px) + 8vw); gap:2px; border-radius:100px; z-index:5; pointer-events:auto; }
.nearby-camera-controls button { border:0; background:transparent; border-radius:100px; min-width:44px; height:32px; padding:0 12px; font-size:.7rem; color:var(--color-text-muted); }
.nearby-camera-controls button[aria-pressed="true"] { color:var(--color-bg); background:var(--color-text); }
.nearby-map-labels,.nearby-map-pins { position:absolute; inset:0; z-index:3; pointer-events:none; }
.nearby-street-label { position:absolute; font-size:.6rem; font-weight:500; letter-spacing:.08em; color:var(--color-text-muted); text-shadow:0 1px 3px var(--color-bg),0 -1px 3px var(--color-bg); white-space:nowrap; transform:translate(-50%,-50%); opacity:.8; }
.nearby-street-label.park { color:#6e8d70; font-size:.68rem; max-width:70px; white-space:normal; text-align:center; line-height:1.4; letter-spacing:.02em; }
[data-theme="dark"] .nearby-street-label.park { color:#a1b5a1; }
.nearby-place-pin { position:absolute; display:flex; align-items:center; gap:7px; pointer-events:auto; padding:6px 10px 6px 6px; min-height:35px; border-radius:100px; background:var(--color-surface); color:var(--color-text); border:1px solid var(--nearby-line); box-shadow:0 3px 13px #00000016; font-size:.65rem; font-weight:500; white-space:nowrap; transform:translate(-50%,-50%); transition:border-color .2s,opacity .2s; }
.nearby-place-pin>span:first-child { display:grid; place-items:center; width:22px; height:22px; background:var(--color-surface-2); border-radius:50%; font-size:.7rem; }
.nearby-place-pin[aria-pressed="true"] { border-color:var(--color-accent-soft); box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 9%,transparent),0 3px 13px #00000016; }
.nearby-position { position:absolute; width:16px; height:16px; transform:translate(-50%,-50%); }
.nearby-position i { position:absolute; inset:3px; z-index:2; border-radius:50%; background:var(--nearby-blue); box-shadow:0 0 0 2px white,0 1px 8px #1564cf3d; }
.nearby-accuracy { position:absolute; inset:-15px; border-radius:50%; background:#2588ff15; border:1px solid #2588ff15; }
.nearby-ping { position:absolute; inset:-6px; border-radius:50%; background:#2588ff30; animation:nearbyPing 3.3s ease-out infinite; }
@keyframes nearbyPing { 0% { transform:scale(.4); opacity:.8; } 85%,100% { transform:scale(3); opacity:0; } }
.nearby-map-section:not(.is-visible) .nearby-ping { animation-play-state:paused; }
.nearby-map-tools { position:absolute; left:4.5%; bottom:110px; display:flex; flex-direction:column; border-radius:13px; padding:4px; z-index:5; pointer-events:auto; }
.nearby-map-tools button { width:38px; height:38px; display:grid; place-items:center; border:0; background:transparent; font-size:1.3rem; color:var(--color-text); border-radius:8px; }
.nearby-map-tools button:hover { background:var(--color-surface-2); }
.nearby-map-tools button+button { border-top:1px solid var(--nearby-line); }
.nearby-map-tools svg { width:18px; height:18px; }
.nearby-discovery { --discovery-padding:25px; position:absolute; right:5%; top:50%; transform:translateY(-45%); width:min(31vw,370px); padding:0; z-index:6; pointer-events:auto; max-height:calc(100svh - 175px); overflow:hidden; background:color-mix(in srgb,var(--color-bg) 77%,transparent); }
.nearby-discovery-body { max-height:inherit; padding:var(--discovery-padding); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.nearby-panel-close { position:absolute; top:6px; right:6px; width:44px; height:44px; display:grid; place-items:center; border-radius:50%; background:var(--color-surface); color:var(--color-text); z-index:2; }
.nearby-panel-close svg { width:18px; height:18px; }
.nearby-panel-close:hover { background:var(--color-surface-2); }
.nearby-panel-heading { padding-right:30px; }
.nearby-show-places { position:absolute; right:5%; top:126px; display:inline-flex; align-items:center; gap:7px; min-height:44px; padding:9px 13px; z-index:6; color:var(--color-text); font-size:.7rem; pointer-events:auto; opacity:var(--map-reveal,0); }
.nearby-show-places svg { width:17px; height:17px; }
.nearby-map-touch-hint { display:none; }
.nearby-back { padding-right:32px; min-height:28px; }
.nearby-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.nearby-panel-heading h3 { font-size:2.6rem; line-height:1; margin:12px 0 0; letter-spacing:-.065em; font-weight:600; }
.nearby-demo { display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--nearby-line); border-radius:100px; padding:4px 8px; font-size:.55rem; line-height:1.2; letter-spacing:.06em; color:var(--color-text-muted); font-weight:400; flex:0 0 auto; }
.nearby-panel-subtitle { margin:16px 0 0; color:var(--color-text-muted); font-size:.74rem; line-height:1.6; }
.nearby-filters { display:flex; gap:5px; margin:21px 0 13px; }
.nearby-filters button { padding:7px 11px; background:transparent; color:var(--color-text-muted); border:1px solid transparent; border-radius:8px; font-size:.66rem; }
.nearby-filters button[aria-pressed="true"] { background:var(--color-text); color:var(--color-bg); }
.nearby-place-list { display:grid; }
.nearby-place-row { display:flex; width:100%; gap:12px; align-items:center; text-align:left; border:0; border-top:1px solid var(--nearby-line); background:transparent; padding:15px 0; color:var(--color-text); }
.nearby-place-row:hover .nearby-place-row-title { color:var(--color-accent-soft); }
.nearby-place-monogram { display:grid; place-items:center; width:40px; height:40px; flex:0 0 auto; border:1px solid var(--nearby-line); border-radius:12px; background:var(--color-surface-2); font-size:1.1rem; font-weight:600; letter-spacing:-.07em; }
.nearby-place-row-text { display:grid; gap:4px; flex:1; min-width:0; }
.nearby-place-row-title { font-size:.82rem; font-weight:500; letter-spacing:-.025em; transition:color .2s; }
.nearby-place-row-type { font-size:.63rem; color:var(--color-text-muted); }
.nearby-place-row-distance { color:var(--color-text-muted); font-size:.63rem; white-space:nowrap; }
.nearby-local-note { display:flex; gap:8px; color:var(--color-text-muted); font-size:.57rem; line-height:1.6; border-top:1px solid var(--nearby-line); padding-top:15px; margin-top:2px; }
.nearby-local-note>svg { width:15px; height:15px; flex:0 0 auto; }
.nearby-pass-status-icon { width:16px; height:16px; flex:0 0 auto; }
.nearby-text-button { background:transparent; border:0; padding:0; color:var(--color-text-muted); font-size:.73rem; }
.nearby-text-button:hover { color:var(--color-text); }
.nearby-back { margin-bottom:18px; }
.nearby-place-art { position:relative; height:100px; border-radius:13px; background:var(--color-surface-2); overflow:hidden; display:flex; align-items:center; justify-content:center; color:var(--color-text); margin-bottom:21px; border:1px solid var(--nearby-line); }
.nearby-place-art::after { content:""; position:absolute; height:180px; width:180px; border:1px solid var(--nearby-line); border-radius:50%; right:-60px; top:-80px; box-shadow:0 0 0 25px color-mix(in srgb,var(--color-text) 2%,transparent),0 0 0 50px color-mix(in srgb,var(--color-text) 2%,transparent); }
.nearby-place-art>span:first-child { font-size:4rem; line-height:1; font-weight:600; letter-spacing:-.12em; }
.nearby-place-art>span:last-child { position:absolute; bottom:12px; left:14px; font-size:.48rem; letter-spacing:.15em; }
.nearby-detail-title { margin:9px 0 12px; font-size:2rem; line-height:1.05; font-weight:600; letter-spacing:-.065em; }
.nearby-detail-copy { color:var(--color-text-muted); font-size:.76rem; line-height:1.65; }
.nearby-place-facts { display:grid; gap:6px; margin:16px 0 20px; color:var(--color-text-muted); font-size:.67rem; }
.nearby-discovery .nearby-primary,.nearby-discovery .nearby-secondary { font-size:.73rem; min-height:44px; padding:11px 14px; }
.nearby-discovery .nearby-secondary { margin-top:8px; }
.nearby-route-status { font-size:.67rem; color:var(--color-accent,#d12a32); line-height:1.6; margin-top:12px; }
.nearby-route-status:empty { display:none; }
.nearby-example-note { font-size:.56rem; line-height:1.5; color:var(--color-text-faint); margin-top:14px; }
.nearby-map-status { position:absolute; left:4.5%; bottom:52px; display:flex; align-items:center; gap:9px; color:var(--color-text-muted); font-size:.62rem; pointer-events:none; z-index:4; text-shadow:0 1px 9px var(--color-bg); }
.nearby-blue-dot { width:5px; height:5px; border-radius:50%; background:var(--nearby-blue); }
.nearby-map-attribution { position:absolute; left:4.5%; bottom:25px; font-size:.59rem; color:var(--color-text-muted); z-index:6; pointer-events:auto; text-shadow:0 1px 6px var(--color-bg); }
.nearby-map-attribution a:hover { color:var(--color-text); }
.nearby-map-scroll { position:absolute; bottom:27px; right:5%; display:flex; gap:15px; color:var(--color-text-muted); font-size:.58rem; z-index:4; }
.nearby-pass-section { min-height:110svh; }
.nearby-pass-stage { position:sticky; top:0; height:100svh; }
.nearby-pass-copy { position:absolute; width:min(40vw,470px); right:7%; top:50%; transform:translateY(-45%); padding:34px; pointer-events:auto; background:color-mix(in srgb,var(--color-bg) 50%,transparent); }
.nearby-pass-copy h2 { margin:28px 0 22px; font-size:clamp(3rem,5.5vw,5.8rem); letter-spacing:-.065em; font-weight:400; line-height:1; }
.nearby-pass-lede { font-size:.88rem; }
.nearby-pass-merchant { display:flex; align-items:center; gap:12px; margin:28px 0 22px; padding:17px 0; border-top:1px solid var(--nearby-line); border-bottom:1px solid var(--nearby-line); }
.nearby-pass-merchant>span:first-child { width:35px; height:35px; display:grid; place-items:center; font-weight:600; letter-spacing:-.08em; border:1px solid var(--nearby-line); border-radius:10px; }
.nearby-pass-merchant>div { display:grid; flex:1; gap:4px; }
.nearby-pass-merchant strong { font-size:.78rem; font-weight:500; letter-spacing:-.025em; }
.nearby-pass-merchant div>span { font-size:.61rem; color:var(--color-text-muted); }
.nearby-pass-actions { display:flex; align-items:center; justify-content:space-between; gap:15px; margin:20px 0; }
.nearby-pass-message { font-size:.63rem; color:var(--color-text-muted); line-height:1.7; min-height:2.5em; }
.nearby-pass-return { display:inline-block; margin-top:19px; padding-top:16px; border-top:1px solid var(--nearby-line); width:100%; font-size:.69rem; color:var(--color-text-muted); }
.nearby-pass-visual { position:absolute; left:5.5%; top:49%; transform:translateY(-50%); width:min(43vw,525px); perspective:1200px; pointer-events:auto; }

.nearby-pass-shadow { position:absolute; width:73%; height:20px; bottom:-27px; left:10%; border-radius:50%; background:#00000030; filter:blur(22px); }
.nearby-card-hint { text-align:center; margin-top:45px; font-size:.62rem; color:var(--color-text-muted); }
.nearby-card-hint>span { margin-left:10px; }
.nearby-footer { position:relative; z-index:3; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; padding:27px 4.5%; background:var(--color-bg); border-top:1px solid var(--nearby-line); font-size:.57rem; color:var(--color-text-muted); }
.nearby-footer>span:first-child { color:var(--color-text); font-weight:500; letter-spacing:.035em; }
.nearby-footer-divider { padding:0 9px; color:var(--color-text-faint); }
.nearby-footer nav { display:flex; gap:18px; }
.nearby-footer button { border:0; background:transparent; color:inherit; font-size:inherit; }
.nearby-toast { position:fixed; left:50%; bottom:25px; transform:translate(-50%,15px); opacity:0; pointer-events:none; padding:12px 18px; background:var(--color-text); color:var(--color-bg); border-radius:100px; font-size:.73rem; z-index:100; transition:opacity .2s,transform .2s; max-width:calc(100vw - 32px); width:max-content; text-align:center; }
.nearby-toast.is-visible { opacity:1; transform:translate(-50%,0); }
.nearby-preferences { position:fixed; inset:0; margin:auto; width:min(460px,calc(100% - 36px)); color:var(--color-text); padding:30px; background:var(--color-bg); }
.nearby-preferences::backdrop { background:#00000060; backdrop-filter:blur(8px); }
.nearby-preferences h2 { font-size:2.4rem; line-height:1.05; letter-spacing:-.065em; font-weight:600; }
.nearby-dialog-close { align-self:flex-start; background:transparent; border:0; width:32px; height:32px; font-size:1.5rem; color:var(--color-text-muted); }
.nearby-preferences p { margin-top:20px; font-size:.8rem; color:var(--color-text-muted); line-height:1.7; }
.nearby-preference-actions { display:flex; gap:10px; margin-top:25px; }
.nearby-preference-actions button { justify-content:center; padding-inline:10px; font-size:.7rem; }
.nearby-preferences .nearby-preference-status { font-size:.7rem; }
.nearby-preferences>a { display:inline-block; font-size:.7rem; margin-top:18px; }
.nearby-noscript { position:fixed; bottom:0; left:0; right:0; padding:12px; z-index:200; background:var(--color-surface); color:var(--color-text); font-size:.75rem; text-align:center; }
@media(min-width:1600px) { .nearby-intro-copy { width:510px; } .nearby-overview { padding-right:12%; } .nearby-pass-copy { right:12%; } .nearby-pass-visual { left:10%; } }
@media(max-width:1000px) {
  .nearby-intro-copy { padding:28px; width:46vw; }
  .nearby-overview { padding-inline:5%; }
  .nearby-discovery { width:330px; right:3%; --discovery-padding:22px; }
  .nearby-camera-controls { right:calc(330px + 6%); }
  .nearby-map-heading { left:4%; }
  .nearby-pass-copy { right:4%; width:43vw; padding:25px; }
  .nearby-pass-visual { left:4%; width:44vw; }
  .nearby-card-face { padding:22px; }
}
@media(max-width:700px) {
  .nearby-overview { padding:320px 20px 75px; align-items:flex-end; min-height:100svh; }
  .nearby-sphere-poster { left:50%; top:68px; width:min(95vw,390px); transform:translateX(-50%); }
  .nearby-intro-copy { width:100%; max-width:440px; margin-inline:auto; padding:25px; background:color-mix(in srgb,var(--color-bg) 52%,transparent); }
  .nearby-kicker { font-size:.54rem; letter-spacing:.16em; }
  .nearby-intro-copy h1 { font-size:clamp(3.3rem,11.5vw,4.4rem); margin:22px 0 17px; }
  .nearby-intro-lede { font-size:.82rem; }
  .nearby-intro-copy>.nearby-primary { margin-top:23px; max-width:100%; }
  .nearby-intro-footer { margin-top:22px; padding-top:16px; font-size:.53rem; }
  .nearby-orbit-note { display:none; }
  .nearby-overview-caption { bottom:24px; left:24px; right:24px; font-size:.48rem; }
  .nearby-scene-fade { background:linear-gradient(0deg,var(--color-bg) 1%,transparent 76%); }
  .nearby-map-section { min-height:170svh; }
  .nearby-map-surface { top:66px; }
  .nearby-map-heading { top:95px; left:24px; }
  .nearby-map-heading h2 { font-size:2.6rem; margin-top:12px; }
  .nearby-map-heading h2 span { font-size:1.25rem; margin-top:7px; letter-spacing:-.045em; }
  .nearby-camera-controls { top:96px; right:20px; }
  .nearby-camera-controls button { height:29px; min-width:35px; padding:0 10px; font-size:.61rem; }
  .nearby-discovery { width:auto; left:16px; right:16px; top:auto; bottom:67px; transform:none; --discovery-padding:20px; max-height:40svh; border-radius:20px; }
  .nearby-panel-heading h3 { font-size:2.05rem; margin-top:7px; }
  .nearby-panel-subtitle { display:none; }
  .nearby-filters { margin:15px 0 9px; }
  .nearby-place-row { padding:12px 0; }
  .nearby-place-monogram { height:34px; width:34px; font-size:.95rem; border-radius:10px; }
  .nearby-place-row-title { font-size:.77rem; }
  .nearby-place-row-type { font-size:.59rem; }
  .nearby-local-note { font-size:.54rem; padding-top:12px; }
  .nearby-place-art { display:none; }
  .nearby-detail-title { font-size:1.75rem; margin:9px 0; }
  .nearby-detail-copy { font-size:.72rem; line-height:1.5; }
  .nearby-back { margin-bottom:13px; font-size:.67rem; }
  .nearby-place-facts { margin:12px 0 15px; gap:4px; font-size:.62rem; }
  .nearby-example-note { margin-top:10px; font-size:.53rem; }
  .nearby-map-tools { left:auto; right:20px; bottom:calc(40svh + 86px); }
  .nearby-map-tools button { height:32px; width:32px; font-size:1.1rem; }
  .nearby-map-status { bottom:37px; left:23px; font-size:.54rem; }
  .nearby-map-attribution { bottom:17px; left:23px; font-size:.55rem; }
  .nearby-map-scroll { display:none; }
  .nearby-place-pin { font-size:.58rem; padding:4px 8px 4px 4px; min-height:29px; gap:5px; }
  .nearby-place-pin>span:first-child { width:19px; height:19px; font-size:.6rem; }
  .nearby-street-label { font-size:.5rem; }
  .nearby-street-label.park { font-size:.55rem; }
  .nearby-pass-section { min-height:118svh; }
  .nearby-pass-stage { position:relative; height:auto; min-height:100svh; padding:110px 20px 45px; display:flex; flex-direction:column; gap:56px; }
  .nearby-pass-visual { position:relative; left:auto; top:auto; width:min(78vw,365px); transform:none; margin-inline:auto; }
  .nearby-card-face { padding:20px; border-radius:15px; }
  .nearby-card-top strong { font-size:1.35rem; }
  .nearby-card-top>span { font-size:.35rem; }
  .nearby-card-design { width:210px; height:210px; right:-20px; top:-25px; }
  .nearby-card-bottom strong { font-size:1.05rem; }
  .nearby-card-bottom small,.nearby-card-reference,.nearby-card-back-footer { font-size:.38rem; }
  .nearby-card-back-head strong { font-size:1rem; }
  .nearby-card-back-head>span { font-size:.9rem; }
  .nearby-card-code { right:20px; padding:5px; }
  .nearby-card-hint { margin-top:25px; font-size:.55rem; }
  .nearby-pass-copy { position:relative; width:100%; inset:auto; transform:none; padding:24px; }
  .nearby-pass-copy h2 { font-size:2.9rem; margin:20px 0 16px; }
  .nearby-pass-lede { font-size:.79rem; }
  .nearby-pass-merchant { margin:21px 0 18px; padding:14px 0; }
  .nearby-pass-actions { margin:17px 0; }
  .nearby-pass-return { margin-top:12px; padding-top:13px; }
  .nearby-footer { padding:25px; gap:17px; font-size:.54rem; }
  .nearby-footer>span:nth-child(2) { display:none; }
  .nearby-footer nav { gap:14px; }
}
@media(max-width:370px) { .nearby-intro-copy { padding:22px; } .nearby-pass-visual { width:82vw; } .nearby-pass-copy { padding:22px; } }
@media(min-width:701px) and (max-height:760px) {
  .nearby-intro-copy { padding:25px 30px 20px; }
  .nearby-intro-copy h1 { font-size:clamp(3.5rem,6vw,5.3rem); margin:23px 0 20px; }
  .nearby-intro-copy>.nearby-primary { margin-top:23px; }
  .nearby-intro-footer { margin-top:23px; padding-top:15px; }
  .nearby-pass-copy { padding:24px; }
  .nearby-pass-copy h2 { font-size:clamp(2.9rem,4.5vw,4.5rem); margin:20px 0 16px; }
  .nearby-pass-lede { font-size:.8rem; }
  .nearby-pass-merchant { margin:17px 0; padding:12px 0; }
  .nearby-pass-actions { margin:16px 0; }
  .nearby-pass-return { margin-top:10px; padding-top:12px; }
}
@media(prefers-reduced-motion:reduce) { .nearby-ping { animation:none; opacity:.3; } .nearby-page *, .nearby-page *::before, .nearby-page *::after { scroll-behavior:auto!important; transition-duration:.01ms!important; } .nearby-service-card { --tilt-x:0deg!important; --tilt-y:0deg!important; transform:rotateY(var(--flip)); } }
/* Interaction refinements: stable 3D map, generous controls and quiet feedback. */
.nearby-page { touch-action:manipulation; }
.nearby-page button,.nearby-page a { touch-action:manipulation; }
.nearby-scene canvas { transition:none; }
.nearby-scene.is-ready canvas { opacity:1; }
.nearby-map-section { min-height:155svh; }
.nearby-map-heading,.nearby-camera-controls,.nearby-map-labels,.nearby-map-pins,.nearby-map-tools,.nearby-discovery,.nearby-map-status,.nearby-map-attribution,.nearby-map-scroll { opacity:var(--map-reveal,0); }
.nearby-map-pins[style] { transition:none; }
.nearby-camera-controls button { height:38px; min-width:44px; }
.nearby-map-tools button { width:44px; height:44px; }
.nearby-map-tools button:active { background:var(--color-surface-2); }
.nearby-filters button { min-height:40px; }
.nearby-place-pin { min-height:40px; }
.nearby-place-pin[aria-pressed="true"] { border-color:var(--nearby-blue); box-shadow:0 0 0 3px #2588ff14,0 3px 13px #00000016; }
.nearby-place-row:hover .nearby-place-row-title { color:var(--color-text); }
.nearby-place-row { border-radius:8px; transition:background .2s; }
.nearby-place-row:hover,.nearby-place-row:active { background:color-mix(in srgb,var(--color-text) 4%,transparent); }
.nearby-hover-hint { display:none; }
.nearby-card-hint .nearby-touch-hint,.nearby-card-hint .nearby-hover-hint { margin-left:0; }
.nearby-reset { display:block; width:100%; min-height:44px; border:1px solid var(--nearby-line); color:var(--color-text-muted); background:transparent; border-radius:11px; margin-top:12px; font-size:.72rem; }
.nearby-reset:hover { color:var(--color-text); background:var(--color-surface); }
.nearby-swipe-hint { position:fixed; z-index:120; left:8px; top:44%; display:flex; align-items:center; gap:9px; padding:10px 16px 10px 11px; border:1px solid var(--nearby-line); border-radius:100px; color:var(--color-text); background:var(--nearby-glass); backdrop-filter:blur(18px); opacity:0; transform:translateX(-120%); transition:opacity .18s,transform .2s; pointer-events:none; font-size:.7rem; }
.nearby-swipe-hint span { font-size:2rem; line-height:.7; }
.nearby-swipe-ready .nearby-swipe-hint { opacity:1; transform:translateX(0); }
@media(hover:hover) and (pointer:fine) { .nearby-hover-hint { display:inline; } .nearby-touch-hint { display:none; } }
@media(max-width:700px) {
  .nearby-map-section { min-height:145svh; }
  .nearby-camera-controls { top:90px; right:16px; }
  .nearby-camera-controls button { height:38px; min-width:42px; }
  .nearby-map-tools { right:17px; bottom:calc(40svh + 86px); }
  .nearby-map-tools button { width:42px; height:42px; }
  .nearby-place-pin { min-height:36px; }
  .nearby-preferences { padding:24px; }
  .nearby-preferences .nearby-panel-heading h2 { font-size:2.1rem; }
  .nearby-dialog-close { width:44px; height:44px; border-radius:50%; background:var(--color-surface-2); }
}
@media(prefers-reduced-motion:reduce) { .nearby-home,.nearby-swipe-hint { transition:none; } }

/* The homepage header supplies the same geometry, brand and link typography. */
@media(max-width:700px) {
  .nearby-header { gap:12px; }
  .nearby-brand-group .brand { display:none; }
  .nearby-header .nearby-nav { gap:16px; }
  .nearby-nav a { font-size:clamp(.75rem,3.2vw,.84rem); }
  .nearby-nav a::before { content:""; position:absolute; inset:-13px -4px; }
  .nearby-home { width:calc(18px + .8rem + 2px); padding:0; }
  .nearby-home span { display:none; }
  .nearby-home::before,.nearby-header .theme-toggle::before { content:""; position:absolute; inset:-6px; }
  .nearby-header .theme-toggle { position:relative; }
}
@media(max-width:360px) { .nearby-header { gap:8px; } .nearby-header .nearby-nav { gap:8px; } }

.nearby-directions-label { margin:16px 0 7px; color:var(--color-text-muted); font-size:.66rem; }
.nearby-map-apps { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.nearby-map-apps a { display:inline-flex; align-items:center; min-height:42px; padding:8px 10px; border:1px solid var(--nearby-line); border-radius:4px; color:var(--color-text); font-size:.67rem; text-decoration:none; }
.nearby-map-apps a:hover, .nearby-map-apps a:focus-visible { border-color:#d12a32; color:#d12a32; }
.places-hidden .nearby-camera-controls { right:calc(5% + 105px); }
@media(hover:none), (pointer:coarse) {
  .nearby-map-desktop-hint { display:none; }
  .nearby-map-touch-hint { display:inline; }
}
@media(max-width:700px) {
  .nearby-show-places { top:143px; right:16px; }
  .places-hidden .nearby-camera-controls { right:16px; }
  .places-hidden .nearby-map-tools { bottom:100px; }
  .places-hidden .nearby-map-scroll { display:flex; left:23px; right:23px; bottom:72px; pointer-events:none; line-height:1.5; }
}

/* One city control keeps the connected miniature world easy to explore. */
.nearby-city-picker { position:relative; display:inline-flex; align-items:center; width:220px; max-width:100%; margin-top:18px; pointer-events:auto; }
.nearby-city-picker select { appearance:none; -webkit-appearance:none; width:100%; min-height:44px; padding:10px 36px 10px 14px; border:1px solid var(--nearby-line); border-radius:11px; background:var(--color-surface); color:var(--color-text); font:inherit; font-size:16px; cursor:pointer; }
.nearby-city-picker>.ui-icon { position:absolute; right:13px; width:14px; height:14px; color:var(--color-text); }
.nearby-city-status { min-height:1.3em; max-width:28ch; margin-top:8px; color:var(--color-text-muted); font-size:.65rem; line-height:1.5; }
.nearby-world-label { font-size:.72rem; font-weight:600; letter-spacing:.035em; padding:4px 7px; border-radius:5px; background:color-mix(in srgb,var(--color-bg) 80%,transparent); color:var(--color-text); }
.nearby-world-label.landmark { font-size:.57rem; font-weight:400; color:var(--color-text-muted); }
.nearby-city-picker select:focus-visible { outline:2px solid var(--color-accent); outline-offset:4px; }
@media(max-width:700px) {
  .nearby-map-heading { max-width:calc(100% - 110px); }
  .nearby-city-picker { width:190px; margin-top:12px; }
  .nearby-city-status { max-width:23ch; font-size:.6rem; }
  .nearby-map-attribution { max-width:calc(100% - 46px); line-height:1.5; }
}

@media(max-width:700px) { .nearby-world-label { font-size:.6rem; padding:3px 4px; } }

/* Miniature-world navigation: accessible, touch-sized start selector. */
.nearby-place-pin[hidden],#realDirections[hidden],#placePass[hidden] { display:none !important; }
.nearby-origin-label { display:block; margin:12px 0 5px; color:var(--color-text-muted); font-size:.68rem; }
.nearby-origin-select { width:100%; min-height:44px; padding:9px 12px; border:1px solid var(--nearby-line); border-radius:9px; color:var(--color-text); background:var(--color-surface); font:inherit; font-size:.76rem; }
.nearby-route-note { color:var(--color-text-muted); font-size:.62rem; line-height:1.5; margin:8px 0 12px; }
.nearby-filters { flex-wrap:wrap; }

@media (max-width:700px) { .nearby-origin-select { font-size:16px; } }

/* Atmosphere appears only as the map tilts into 3D. No textures, videos,
   WebGL post-processing, or extra canvases are loaded. */
.nearby-atmosphere {position:absolute;inset:0;z-index:1;opacity:0;pointer-events:none;overflow:hidden;
  background:linear-gradient(180deg,rgba(22,42,67,.40) 0%,rgba(28,55,76,.13) 27%,transparent 59%);}
[data-theme="light"] .nearby-atmosphere {background:linear-gradient(180deg,rgba(104,169,208,.34) 0%,rgba(181,212,227,.12) 29%,transparent 62%);}
.nearby-celestial {position:absolute;top:9%;right:19%;width:clamp(32px,5.2vw,68px);aspect-ratio:1;border-radius:50%;
  background:#dae6ff;box-shadow:0 0 0 12px #bdceea09,0 0 65px 25px #c4d3ff1e,0 0 150px 70px #b4c3ff0d;}
[data-theme="light"] .nearby-celestial {background:#fff1c5;box-shadow:0 0 0 8px #fff7d112,0 0 60px 27px #ffe1ab53,0 0 145px 66px #ffe0ac29;}
.nearby-stars {position:absolute;inset:0 0 50%;opacity:.62;
  background-image:radial-gradient(1px 1px at 14% 21%,#fff 98%,transparent),radial-gradient(1px 1px at 37% 40%,#dce8ff 98%,transparent),radial-gradient(1px 1px at 61% 17%,#fff 98%,transparent),radial-gradient(1.5px 1.5px at 80% 48%,#eaf2ff 98%,transparent),radial-gradient(1px 1px at 93% 14%,#fff 98%,transparent),radial-gradient(1px 1px at 25% 71%,#fff 98%,transparent),radial-gradient(1px 1px at 74% 75%,#e7edff 98%,transparent);
  background-size:340px 230px;mask-image:linear-gradient(180deg,#000 0%,transparent 100%);}
[data-theme="light"] .nearby-stars {display:none;}
@media(max-width:700px){.nearby-atmosphere {background:linear-gradient(180deg,rgba(31,53,80,.22),transparent 47%)}
  [data-theme="light"] .nearby-atmosphere {background:linear-gradient(180deg,rgba(119,178,218,.2),transparent 46%)}
  .nearby-celestial {top:13%;right:14%;width:33px;box-shadow:0 0 58px 12px #fff4c322;} }
@media(prefers-reduced-motion:reduce){.nearby-atmosphere * {animation:none!important;}}

/* A quiet invitation unfolds leftward from the bag only at the page's end. */
.nearby-shop-return {position:relative;z-index:3;background:var(--color-bg);padding:45px clamp(22px,4.5vw,70px) 30px;opacity:0;pointer-events:none;transition:opacity .34s ease;}
.nearby-shop-return>a {max-width:790px;min-height:88px;margin:auto;display:flex;align-items:center;justify-content:flex-end;gap:19px;padding:20px 0;text-decoration:none;color:var(--color-text);}
.nearby-shop-return.is-visible {opacity:1;pointer-events:auto;}
.nearby-shop-return>a:focus-visible {outline:1px solid var(--color-accent);outline-offset:8px;border-radius:12px;}
.nearby-shop-symbol {order:3;display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border:1px solid var(--nearby-line);border-radius:12px;opacity:.2;transform:scale(.88);transition:opacity .6s ease,transform .8s cubic-bezier(.2,.75,.2,1);}
.nearby-shop-symbol svg {width:23px;height:23px;}
.nearby-shop-message {order:2;display:flex;flex-direction:column;gap:5px;min-width:0;opacity:0;transform:translateX(42px);clip-path:inset(-8px 0 -8px 100%);transition:opacity .3s ease,transform .42s ease,clip-path .42s ease;}
.nearby-shop-return.is-visible .nearby-shop-symbol {opacity:1;transform:scale(1);}
.nearby-shop-return.is-visible .nearby-shop-message {opacity:1;transform:translateX(0);clip-path:inset(-8px 0 -8px -8px);transition:opacity .95s ease .12s,transform 1.1s cubic-bezier(.2,.75,.2,1) .08s,clip-path 1.1s cubic-bezier(.2,.75,.2,1) .08s;}
.nearby-shop-message strong {font-size:clamp(.92rem,1.35vw,1.12rem);font-weight:500;letter-spacing:-.025em;}
.nearby-shop-message small {font-size:.69rem;color:var(--color-text-muted);}
.nearby-shop-heart {order:1;flex:0 0 27px;color:var(--color-accent);opacity:0;transform:translateX(35px);transition:opacity .22s ease,transform .4s ease;}
.nearby-shop-return.is-visible .nearby-shop-heart {opacity:.78;transform:translateX(0);transition:opacity 1s ease .35s,transform 1.15s cubic-bezier(.2,.75,.2,1) .14s;}
.nearby-shop-heart svg {width:27px;height:27px;}
@media(max-width:700px){.nearby-shop-return {padding:20px 18px 25px;}.nearby-shop-return>a {padding:19px 0;gap:12px;}.nearby-shop-heart {flex-basis:20px;}.nearby-shop-heart svg {width:20px;height:20px;}}
@media(prefers-reduced-motion:reduce){.nearby-shop-return,.nearby-shop-return * {transition:none!important;transform:none!important;}}
