:root{--bg: #cfe3be;--map-ground: #eceae4;--surface: #fffaf0;--surface-2: #f4ecdb;--text: #1f2d27;--muted: #56625b;--line: #e6dbc5;--primary: #1e6a4c;--primary-ink: #fff;--primary-shadow: #12452f;--primary-soft: #dcefe3;--select: #ff7a59;--route: #ff4f7b;--focus: #2563eb;--open: #1f7a45;--open-bg: #dcf3e3;--closed: #b3372d;--closed-bg: #fde3df;--unknown-bg: #ece8f3;--soon: #8a5300;--soon-bg: #fdecc8;--g-academic: #3f7fe0;--g-library: #7b5fd6;--g-food: #e9762b;--g-accommodation: #1c9a8c;--g-sport: #d64d86;--g-services: #e3a21a;--g-faith: #6b7a8c;--g-outdoors: #4f9a5a;--roof-digby: #a8cdee;--roof-froebel: #f6d77a;--roof-southlands: #bba9e8;--roof-whitelands: #f4b48f;--roof-other: #ecd3bb;--path: #fcf3dc;--path-edge: #d8c08b;--road: #d4d8d8;--road-edge: #b9bfbf;--shadow: 0 4px 0 rgba(31, 45, 39, .06), 0 8px 24px rgba(31, 45, 39, .14);--radius: 20px;--footer-h: calc(48px + env(safe-area-inset-bottom)) ;--ease: cubic-bezier(.2, .8, .2, 1);color-scheme:light}:root[data-theme=dark]{--bg: #1f2e28;--map-ground: #24272b;--surface: #24302b;--surface-2: #2f3d37;--text: #f1efe7;--muted: #b3bcb5;--line: #3d4b44;--primary: #74d3a6;--primary-ink: #0d2419;--primary-shadow: #3f8f69;--primary-soft: #26453a;--select: #ff8a6b;--route: #ff7f9c;--focus: #8ab4ff;--open: #7fe0a5;--open-bg: #22402f;--closed: #ffa59a;--closed-bg: #4a2b2a;--unknown-bg: #3b3a4a;--soon: #ffcf7a;--soon-bg: #4a3a1c;--roof-digby: #5689b0;--roof-froebel: #b39545;--roof-southlands: #7666a8;--roof-whitelands: #b07a5a;--roof-other: #7a6a5a;--path: #6d6450;--path-edge: #4d4636;--road: #4a5157;--road-edge: #2c3237;--shadow: 0 4px 0 rgba(0, 0, 0, .2), 0 8px 24px rgba(0, 0, 0, .4);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font:16px/1.4 ui-rounded,SF Pro Rounded,Nunito,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}[hidden]{display:none!important}svg{display:block;flex:none}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:10px}.maplibregl-canvas:focus-visible{outline-offset:-3px}#map{position:fixed;inset:0 0 var(--footer-h) 0}#map:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 62% 26% at 42% 36%,var(--bg) 0 52%,transparent 82%),var(--map-ground);transition:opacity .4s var(--ease)}@media(min-width:900px){#map:before{background:radial-gradient(ellipse 34% 44% at 56% 46%,var(--bg) 0 52%,transparent 82%),var(--map-ground)}}#map .maplibregl-canvas{opacity:0;transition:opacity .4s var(--ease)}body.map-up #map .maplibregl-canvas{opacity:1}body.map-up #map:before{opacity:0}body:not(.map-up) #map .maplibregl-marker{visibility:hidden}html[data-motion=reduced] #map .maplibregl-canvas,html[data-motion=off] #map .maplibregl-canvas,html[data-motion=reduced] #map:before,html[data-motion=off] #map:before{transition:none}.loading{position:fixed;z-index:30;left:50%;top:45%;transform:translate(-50%,-50%);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;max-width:calc(100% - 32px);padding:14px 18px;border-radius:18px;background:var(--surface);box-shadow:var(--shadow);font-weight:650;text-align:center}.spinner{width:18px;height:18px;border:3px solid var(--line);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.noscript{padding:20px}.top{position:fixed;z-index:6;top:calc(env(safe-area-inset-top) + 8px);left:10px;right:10px;max-width:560px;margin:0 auto;pointer-events:none}.top>*{pointer-events:auto}.brand{display:none}.mark{width:32px;height:32px;flex:none}.mark svg{width:100%;height:100%;border-radius:10px;box-shadow:0 1px #00000014}.search{position:relative;display:flex;align-items:center;gap:2px;height:52px;padding:0 4px 0 10px;background:var(--surface);border-radius:26px;box-shadow:var(--shadow)}.search-mark{margin-right:8px}.search input{flex:1;min-width:0;height:44px;border:0;outline:0;background:transparent;font-size:16px}.search:focus-within{box-shadow:0 0 0 3px var(--focus),var(--shadow)}.search input::placeholder{color:var(--muted)}.search input::-webkit-search-cancel-button{display:none}.icon-btn{width:44px;height:44px;display:grid;place-items:center;flex:none;border:0;border-radius:50%;background:transparent;color:var(--muted);transition:background-color .12s,transform .12s}.icon-btn:active{background:var(--surface-2);transform:scale(.94)}.list-btn[aria-pressed=true]{background:var(--primary);color:var(--primary-ink)}.results{list-style:none;margin:6px 0 0;padding:6px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);max-height:min(calc(var(--vv-h, 100vh) - 150px),55vh,420px);overflow:auto}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.row-main{flex:1;min-width:0}.row-side{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:none;text-align:right}.row-side .badge{font-size:12.5px;padding:2px 8px}.list-sort{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 6px 0;font-size:13px;font-weight:700;color:var(--muted)}.list .list-sort button{width:auto;min-height:36px;padding:0 12px;border-radius:18px;border:2px solid var(--line);background:var(--surface);font-size:13px;font-weight:700;color:var(--text);display:inline-flex;gap:0}.list .list-sort button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.list .list-sort button:disabled{opacity:.45;cursor:not-allowed}.list-grip{display:none}.results button,.list button{width:100%;min-height:50px;display:flex;align-items:center;gap:12px;padding:6px 10px;border:0;border-radius:14px;background:transparent;text-align:left}.results button:hover,.results button:focus-visible,.list button:hover{background:var(--surface-2)}.results small,.list small{display:block;color:var(--muted);font-size:13px}.results .empty{padding:10px 12px}.results .empty p{margin:0 0 8px}.facilities{margin:8px 0;font-size:14px}.off-campus{padding:1px 7px;border-radius:8px;background:var(--unknown-bg);font-weight:750}.bus-info{margin:10px 0 4px}.bus-dir{margin:0 0 8px}.bus-routes{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px;padding:0;list-style:none}.bus-routes li{min-width:40px;padding:3px 8px;border-radius:8px;background:#c8312b;color:#fff;font-weight:800;text-align:center}.bus-routes li.night{background:#1d3557}.bus-all{margin:10px 0 6px;font-size:13px;color:var(--muted)}.bus-live{min-height:44px}.bus-state{margin:0;padding:10px 12px;border-radius:12px;background:var(--surface-2);font-size:14px}.bus-next{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.bus-next li{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:6px 10px 6px 6px;border-radius:12px;background:var(--surface-2)}.bus-line{min-width:44px;padding:3px 8px;border-radius:8px;background:#c8312b;color:#fff;font-weight:800;text-align:center}.bus-line.night{background:#1d3557}.bus-to{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bus-mins{font-variant-numeric:tabular-nums;white-space:nowrap}.bus-mins span{color:var(--muted)}.bus-credit{margin:6px 0 0}.panel:not(.expanded) .bus-info.live-ok :is(.bus-all,.bus-routes,.bus-routes+.small){display:none}.room-line{display:flex;flex-direction:column;gap:2px;margin:0 0 10px;padding:10px 12px;border-radius:14px;background:var(--unknown-bg);font-size:14px}.room-line b{font-size:15px}.room-line small{color:var(--muted)}.results .empty .hint{color:var(--muted);font-size:14px}.empty-actions{display:flex;flex-wrap:wrap;gap:8px}.results .res-head{padding:10px 12px 2px;font-size:13.5px;font-weight:800;color:var(--muted)}.results .hint{color:var(--muted);font-size:14px}.chips{display:flex;gap:6px;margin:8px -10px 0;padding:2px 10px 6px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;scroll-padding:0 10px}.chips::-webkit-scrollbar{display:none}.chip{scroll-snap-align:start}.chips.more-right{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 44px),transparent)}.chips.more-left{-webkit-mask-image:linear-gradient(to right,transparent,#000 36px);mask-image:linear-gradient(to right,transparent,#000 36px)}.chips.more-left.more-right{-webkit-mask-image:linear-gradient(to right,transparent,#000 36px,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(to right,transparent,#000 36px,#000 calc(100% - 44px),transparent)}.top:has(#results:not([hidden])) .chips,.top:has(#results:not([hidden])) .filter-bar{display:none}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 4px}.filter-bar[hidden],.open-now[hidden],.open-empty[hidden]{display:none}.open-empty{flex-basis:100%;padding:12px;border-radius:16px;background:var(--surface);box-shadow:var(--shadow);font-size:14px}.open-empty p{margin:0 0 8px}.open-empty .next-head{margin:4px 0;font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.next-open{list-style:none;margin:0 0 8px;padding:0}.next-open button{width:100%;min-height:40px;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;border:0;border-radius:10px;background:none;text-align:left;font:inherit}.next-open button:hover{background:var(--surface-2)}.next-open span{color:var(--muted);font-weight:650;white-space:nowrap}.filter-status{min-height:32px;display:inline-flex;align-items:center;padding:0 12px;border-radius:16px;background:var(--surface);box-shadow:0 2px #24232e1a;font-size:14px;font-weight:750}.open-now{display:inline-flex;align-items:center;gap:8px}@media(max-width:420px){.filter-bar .open-hint{display:none}}.open-toggle{flex:none;min-height:40px;padding:0 12px 0 6px;display:inline-flex;align-items:center;gap:8px;border:0;border-radius:18px;background:var(--surface);box-shadow:0 2px #24232e1a;font-size:14px;font-weight:700}.knob{position:relative;width:34px;height:20px;border-radius:10px;background:var(--line);transition:background-color .15s}.knob:after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px #00000040;transition:transform .15s var(--ease)}.open-toggle[aria-checked=true] .knob{background:var(--open)}.open-toggle[aria-checked=true] .knob:after{transform:translate(14px)}.open-hint{padding:3px 8px;border-radius:8px;background:color-mix(in srgb,var(--surface) 85%,transparent);color:var(--muted);font-size:12.5px;font-weight:650}.chip{flex:none;min-height:44px;padding:0 13px 0 8px;display:inline-flex;align-items:center;gap:6px;border:0;border-radius:22px;background:var(--surface);box-shadow:0 2px #24232e1a;font-size:14px;font-weight:700;transition:transform .12s,background-color .12s}.chip[data-filter=all]{padding:0 15px}.chip:active{transform:translateY(1px)}.chip[aria-pressed=true]{background:var(--primary);color:var(--primary-ink)}.chip-dot{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--g, var(--muted))}.chip-dot svg{width:14px;height:14px}.toast{margin:4px auto 0;width:fit-content;max-width:100%;padding:10px 16px;border-radius:16px;overflow-wrap:anywhere;background:var(--text);color:var(--surface);font-size:14px;font-weight:650;box-shadow:var(--shadow);animation:pop .18s var(--ease)}.rec-chip{display:flex;align-items:center;gap:8px;margin:4px auto 0;min-height:36px;padding:0 14px;border:0;border-radius:999px;background:var(--surface);color:var(--text);box-shadow:var(--shadow);font:inherit;font-size:14px;font-weight:750;cursor:pointer}.rec-chip[hidden]{display:none}.rec-dot{width:10px;height:10px;border-radius:50%;background:#e5484d}.ask-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.ask-actions .btn{flex:1 1 150px}.toast-action{margin-left:6px;padding:4px 10px;border:0;border-radius:999px;font:inherit;background:var(--surface);color:var(--text);cursor:pointer;pointer-events:auto}.g-academic{--g: var(--g-academic)}.g-library{--g: var(--g-library)}.g-food{--g: var(--g-food)}.g-accommodation{--g: var(--g-accommodation)}.g-sport{--g: var(--g-sport)}.g-services{--g: var(--g-services)}.g-faith{--g: var(--g-faith)}.g-outdoors{--g: var(--g-outdoors)}.g-other{--g: #9a7b5f}.g-nearby{--g: #66788a}.g-entrance{--g: #8b8578}.controls{position:fixed;z-index:4;right:10px;bottom:calc(var(--footer-h) + 12px);display:flex;flex-direction:column;gap:6px;transition:opacity .15s}.ctl{width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:14px;background:var(--surface);box-shadow:var(--shadow);color:var(--text);transition:transform .12s}.ctl:active{transform:scale(.93)}.ctl:disabled{opacity:.4;cursor:default;transform:none;box-shadow:none}.ctl.ctl-off{display:none}.controls.no-room{opacity:0;pointer-events:none}.ctl svg{width:20px;height:20px;transition:transform .2s}#zoom-in{border-radius:14px 14px 4px 4px}#zoom-out{border-radius:4px 4px 14px 14px;margin-top:-4px}.ctl.locate.active{color:var(--primary)}.ctl.busy svg{animation:spin 1s linear infinite}.key-btn{position:fixed;z-index:4;left:10px;bottom:calc(var(--footer-h) + 12px);min-height:44px;padding:0 16px;border:0;border-radius:14px;background:var(--surface);box-shadow:var(--shadow);font-weight:750;font-size:14px}.key{position:fixed;z-index:20;left:10px;bottom:calc(var(--footer-h) + 64px);width:min(280px,calc(100% - 80px));max-height:60vh;overflow:auto;padding:12px 14px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);font-size:14px;animation:pop .15s var(--ease)}.key h3,.key h4{margin:0 0 6px;font-size:14px}.key h4{margin-top:10px;color:var(--muted)}.key ul{list-style:none;margin:0;padding:0;display:grid;gap:5px}.key ul+ul{margin-top:10px}.key li{display:flex;align-items:center;gap:8px}.key .chip-dot{width:22px;height:22px}.chip-dot.g-entrance{background:var(--surface);color:var(--muted);border:1.5px solid var(--line);border-radius:7px}.swatch{width:22px;height:14px;border-radius:4px;flex:none}.roof-digby{background:var(--roof-digby)}.roof-froebel{background:var(--roof-froebel)}.roof-southlands{background:var(--roof-southlands)}.roof-whitelands{background:var(--roof-whitelands)}.roof-other{background:var(--roof-other)}.line-path{height:6px;background:var(--path);box-shadow:0 0 0 1px var(--path-edge)}.line-road{height:8px;background:var(--road);box-shadow:0 0 0 1px var(--road-edge)}.line-route{height:5px;background:var(--route);box-shadow:0 0 0 2px var(--surface)}@media(max-width:899px){.controls{transition:bottom .18s var(--ease),opacity .15s}body.panel-open .controls{bottom:calc(var(--sheet-h, 0px) + 10px)}body.panel-open .key-btn,body.panel-open .key{opacity:0;pointer-events:none}}.ctl.dim{font:800 13px/1 system-ui,sans-serif;letter-spacing:.02em}.ctl.locate.following{background:var(--primary);color:var(--primary-ink)}.pin{width:44px;height:44px;padding:0;border:0;background:none;display:grid;place-items:center;transition:opacity .15s,translate .18s var(--ease)}.pin.hidden{visibility:hidden!important;pointer-events:none}.pin .dot{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--g);color:#fff;border:2px solid #fff;box-shadow:0 2px #0000002e,0 2px 6px #00000026;transition:transform .16s var(--ease)}.pin .dot svg{width:15px;height:15px}.g-services .dot,.chip-dot.g-services{color:#3d2a00}.compact-pins .pin .dot{width:20px;height:20px;border-width:1.5px}.compact-pins .pin .dot svg{width:11px;height:11px}.pin:active .dot{transform:scale(.9)}.pin.mini .dot{width:16px;height:16px;border-width:1.5px}.pin.mini .dot svg{width:9px;height:9px}.pin.mini .label{display:none}.pin.selected{z-index:2}.pin.selected .dot{transform:scale(1.35);box-shadow:0 0 0 3px var(--select),0 4px 10px #0000004d}.compact-pins .pin.selected .dot{transform:scale(1.6)}.pin .label{position:absolute;top:34px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:4px;white-space:nowrap;max-width:232px;padding:1px 7px;border-radius:8px;font-size:12px;font-weight:700;line-height:18px;background:var(--surface);color:var(--text);box-shadow:0 0 0 1px #1f2d2724,0 1px 3px #1f2d2738;opacity:0;transition:opacity .15s;pointer-events:none}.pin.show-label .label{opacity:1}.pin .lname{overflow:hidden;text-overflow:ellipsis;min-width:0}.pin .lcode{flex:none;padding:0 4px;border-radius:5px;font-size:10px;font-weight:800;line-height:15px;background:var(--surface-2);color:var(--muted)}.pin.selected .label{background:var(--text);color:var(--surface);max-width:none;z-index:3}.pin.selected .lcode{background:#fff3;color:inherit}.pin.faded .dot,.pin.faded .gate{opacity:.38;transform:scale(.78);filter:saturate(.6)}.pin .gate{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:var(--surface);color:var(--muted);box-shadow:0 1px #0000002e;border:1.5px solid var(--line)}.pin .gate svg{width:14px;height:14px}.pin.g-entrance .label{top:32px}.pin.lab-r .label{top:13px;left:39px;transform:none}.pin.lab-l .label{top:13px;left:auto;right:39px;transform:none}.pin.lab-t .label{top:auto;bottom:34px}@media(max-width:599px){.pin .label{font-size:11px;line-height:16px;max-width:200px}.pin.lab-r .label,.pin.lab-l .label{top:12px}}.route-pin{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font:800 13px system-ui;color:#fff;border:3px solid #fff;box-shadow:0 2px 6px #0000004d}.route-pin.start{background:var(--primary)}.route-pin.end{background:var(--route)}.avatar{width:48px;height:63px;position:relative;pointer-events:none;z-index:3}.avatar .me{position:relative;display:block;overflow:visible;filter:drop-shadow(0 0 1.5px rgba(255,255,255,.9)) drop-shadow(0 2px 2px rgba(0,0,0,.25));animation:arrive .35s var(--ease)}.avatar .me *{transform-box:view-box}.avatar .shadow{fill:#00000038}.avatar .walk,.avatar.walking .stand{display:none}.avatar.walking .walk{display:inline}.avatar.face-left .me{transform:scaleX(-1)}.avatar .leg{transform-origin:32px 62px}.avatar .arm{transform-origin:32px 48px}.avatar.walking .leg.front{animation:swing .52s ease-in-out infinite alternate}.avatar.walking .leg.back{animation:swing .52s ease-in-out infinite alternate-reverse}.avatar.walking .arm.front{animation:swing-arm .52s ease-in-out infinite alternate}.avatar.walking .arm.back{animation:swing-arm .52s ease-in-out infinite alternate-reverse}.avatar.walking .bob{animation:bob .26s ease-in-out infinite alternate}@keyframes swing{0%{transform:rotate(26deg)}to{transform:rotate(-26deg)}}@keyframes swing-arm{0%{transform:rotate(-34deg)}to{transform:rotate(34deg)}}@keyframes bob{0%{transform:translateY(0)}to{transform:translateY(-1.6px)}}@keyframes arrive{0%{transform:translateY(-14px);opacity:0}}.me .stand .idle{transform-origin:32px 67px;animation:breathe 3.4s ease-in-out infinite}.me .eyes{transform-origin:32px 31px;animation:blink 5.3s infinite}.me .arm-r,.me .arm-wave{transform-origin:45.4px 47px}.me .arm-wave{display:none}.me .arm-l{transform-origin:18.6px 47px}@keyframes breathe{50%{transform:scaleY(1.025)}}@keyframes blink{0%,94%,to{transform:none}96%{transform:scaleY(.1)}}.greet .me .arm-r{visibility:hidden}.greet .me .arm-wave{display:inline;animation:wave .42s ease-in-out 6 alternate;transform:rotate(-104deg)}.waving .me .arm-r{visibility:hidden}.waving .me .arm-wave{display:inline;animation:wave-hello 1.6s ease-in-out both}@keyframes wave-hello{0%,to{transform:rotate(0)}16%{transform:rotate(-100deg)}30%,58%{transform:rotate(-124deg)}44%,72%{transform:rotate(-94deg)}86%{transform:rotate(-112deg)}}@keyframes wave{0%{transform:rotate(-92deg)}to{transform:rotate(-120deg)}}.cheer .me{animation:hop .42s ease-out 3}.cheer .me .arm-r{visibility:hidden}.cheer .me .arm-wave{display:inline;transform:rotate(-115deg)}.cheer .me .arm-l{transform:rotate(115deg)}@keyframes hop{40%{transform:translateY(-9px)}}.avatar.face-left.cheer .me{animation-name:hop-left}@keyframes hop-left{0%,to{transform:scaleX(-1)}40%{transform:scaleX(-1) translateY(-9px)}}.avatar .halo{position:absolute;left:50%;bottom:-2px;width:46px;height:15px;margin-left:-23px;border:2px solid var(--primary);border-radius:50%;opacity:0;pointer-events:none;animation:halo 2.8s ease-out infinite}@keyframes halo{0%{transform:scale(.5);opacity:.7}to{transform:scale(1.5);opacity:0}}.avatar.stale .me{opacity:.5;filter:grayscale(.8)}.avatar.stale .halo{display:none}.avatar .say{position:absolute;left:50%;bottom:68px;z-index:1;white-space:nowrap;padding:5px 11px;border-radius:12px;background:var(--surface);color:var(--text);font-size:13px;font-weight:750;box-shadow:var(--shadow);animation:say 3.2s ease forwards}.avatar .say:after{content:"";position:absolute;left:50%;bottom:-5px;width:10px;height:10px;margin-left:-5px;background:var(--surface);transform:rotate(45deg);border-radius:2px}@keyframes say{0%{opacity:0;transform:translate(-50%,6px) scale(.9)}8%,85%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-4px)}}.avatar .arrow{position:absolute;left:50%;bottom:3px;width:116px;height:116px;margin:0 0 -58px -58px;transform-origin:50% 50%;background:no-repeat center / 100% 100% url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3CradialGradient id='g' cx='32' cy='32' r='32' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%233b82f6' stop-opacity='.6'/%3E%3Cstop offset='1' stop-color='%233b82f6' stop-opacity='0'/%3E%3C/radialGradient%3E%3Cpath d='M32 32L18 2Q32-3 46 2z' fill='url(%23g)'/%3E%3C/svg%3E")}@keyframes pop{0%{transform:translateY(6px) scale(.98);opacity:0}}.ask{position:fixed;z-index:25;left:10px;right:10px;bottom:calc(var(--footer-h) + 16px);max-width:440px;margin:0 auto;padding:16px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);animation:pop .18s var(--ease)}.ask p{margin:0 0 12px;font-weight:600}.ask-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.btn{min-height:46px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:14px;font-weight:750;text-decoration:none;transition:transform .12s,box-shadow .12s}.btn svg{width:20px;height:20px}.btn.primary{background:var(--primary);color:var(--primary-ink);box-shadow:0 3px 0 var(--primary-shadow)}.btn.primary:active{transform:translateY(2px);box-shadow:0 1px 0 var(--primary-shadow)}.btn.ghost{background:var(--surface-2)}.btn.ghost:active{transform:scale(.97)}.btn.big{min-height:54px;padding:0 26px;font-size:18px}.link-btn{min-height:44px;padding:0 8px;border:0;background:none;font-weight:700;text-decoration:underline;font-size:13px}.panel{position:fixed;z-index:10;left:0;right:0;bottom:0;max-width:560px;margin:0 auto;max-height:62vh;overflow:auto;padding:6px 16px calc(16px + env(safe-area-inset-bottom));background:var(--surface);border-radius:24px 24px 0 0;box-shadow:0 -6px 28px #0000002e;transform:translateY(105%);transition:transform .18s var(--ease);overscroll-behavior:contain}.panel.open{transform:none}.handle{display:block;position:relative;width:72px;height:22px;margin:-4px auto 2px;padding:0;border:0;background:none;touch-action:none}.handle:before{content:"";position:absolute;left:16px;right:16px;top:8px;height:5px;border-radius:3px;background:var(--line)}.panel.expanded{max-height:86vh}@media(max-width:899px){.panel.route-peek{max-height:46vh}}.panel.dragging{transition:none}.p-head{display:flex;align-items:center;gap:12px}.p-head .back{margin-left:-8px}.cat-icon{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:14px;background:var(--g, var(--muted));color:#fff}.cat-icon svg{width:22px;height:22px}.cat-icon.g-services{color:#3d2a00}.cat-icon.g-entrance{background:var(--surface-2);color:var(--muted)}.cat-icon.small{width:34px;height:34px;border-radius:11px}.cat-icon.small svg{width:18px;height:18px}.titles{flex:1;min-width:0}.titles h2{margin:0;font-size:20px;line-height:1.2}.titles h2:focus,.titles h2:focus-visible{outline:none}.meta{margin:2px 0 0;color:var(--muted);font-size:14px;font-weight:600}.meta.tags{display:flex;flex-wrap:wrap;align-items:center;gap:3px 10px;margin-top:4px}.code{display:inline-block;padding:0 6px;border-radius:6px;background:var(--surface-2);color:var(--text);font-weight:800;font-size:13px}.photo{display:block;width:100%;aspect-ratio:16 / 9;height:auto;object-fit:cover;margin-top:12px;border-radius:16px;background:var(--surface-2)}.desc{margin:10px 0 0}.desc.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.walk-hint{display:flex;align-items:center;gap:6px;margin:8px 0 0;color:var(--primary);font-size:14px;font-weight:750}.walk-hint svg{width:18px;height:18px}.details{animation:fade .18s ease-out}.detail-row{display:flex;align-items:center;gap:8px;margin:12px 0 0;color:var(--muted);font-size:14px;font-weight:600}.detail-row svg{width:18px;height:18px;flex:none}.detail-links{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:10px}.detail-links .btn{min-height:40px;padding:0 12px;font-size:14px}.panel-body-in{animation:fade .16s ease-out}.services{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0;padding:0}.services li{padding:3px 10px;border-radius:10px;background:var(--surface-2);font-size:13px;font-weight:650}.services li:has(.more){padding:0;background:none}.more{min-height:32px;padding:0 10px;border:1.5px dashed var(--line);border-radius:10px;background:none;font-size:13px;font-weight:750;color:var(--muted);position:relative}.more:after{content:"";position:absolute;inset:-6px 0}.hours{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}.badge{padding:3px 10px;border-radius:10px;font-size:14px;font-weight:750}.badge.open{background:var(--open-bg);color:var(--open)}.badge.closed{background:var(--closed-bg);color:var(--closed)}.badge.unknown{background:var(--unknown-bg);color:var(--muted)}.badge.soon{background:var(--soon-bg);color:var(--soon)}.hours-src{margin:6px 0 0;color:var(--muted);font-size:12.5px}.hours-src a{font-weight:700}.hours-serving{margin:6px 0 0;font-size:13.5px;font-weight:600;color:var(--text)}.week{margin-top:12px;border-collapse:collapse;font-size:14px}.week th{padding:2px 16px 2px 0;text-align:left;font-weight:650;color:var(--muted)}.week td{padding:2px 0;font-variant-numeric:tabular-nums}.week .is-today th,.week .is-today td{color:var(--text);font-weight:750}.notes{margin:6px 0 0;color:var(--muted);font-size:13px}.access a{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:14px;font-weight:650}.access svg{width:20px;height:20px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.official{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin-top:6px;font-weight:750}.official svg{width:16px;height:16px}.small{margin:8px 0 0;color:var(--muted);font-size:13px}.small a{font-weight:700;display:inline-block;padding:10px 0;margin:-10px 0}.field{display:grid;gap:6px;margin-top:14px;font-weight:700;font-size:14px}.field select{min-height:48px;padding:0 12px;border-radius:14px;border:2px solid var(--line);background:var(--surface-2);font-size:16px;font-weight:600}.from-row{display:flex;gap:8px;align-items:flex-start}.combo{position:relative;flex:1;min-width:0}.combo input{width:100%;min-height:48px;padding:0 12px;border-radius:14px;border:2px solid var(--line);background:var(--surface-2);color:var(--text);font:inherit;font-size:16px;font-weight:600}.combo input:focus-visible{border-color:var(--primary);outline:none}.from-list{position:relative;z-index:3;margin-top:6px!important;max-height:min(46vh,320px);overflow:auto;margin:0;padding:4px;list-style:none;border-radius:14px;background:var(--surface);box-shadow:var(--shadow);font-weight:600}.from-list [role=option]{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 10px;border-radius:10px;cursor:pointer}.from-list [role=option]:hover,.from-list [aria-selected=true]{background:var(--surface-2)}.from-list [aria-selected=true]{outline:2px solid var(--focus);outline-offset:-2px}.from-list small{color:var(--muted);font-weight:600}.from-list .res-head{padding:8px 10px 2px;font-size:13.5px;font-weight:800;color:var(--muted)}.opt-icon{display:grid;place-items:center;width:24px;height:24px;color:var(--primary)}.opt-icon svg{width:18px;height:18px}.from-row .swap{width:48px;height:48px;border-radius:14px;border:2px solid var(--line);background:var(--surface-2)}.from-row .swap:disabled{opacity:.4;cursor:not-allowed}.pick-note{display:flex;gap:8px;align-items:center;font-weight:650}.steps-wrap{margin:4px 0 8px;border-radius:14px;background:var(--surface-2);padding:0 12px}.steps-wrap summary{min-height:44px;display:flex;align-items:center;font-weight:700;cursor:pointer}.steps{margin:0 0 10px;padding-left:22px;font-size:15px}.steps li+li{margin-top:6px}.route-result .btn.from-gate{margin-top:2px}.route-result{margin-top:12px}.route-result p{margin:0 0 10px}.route-sum{display:flex;align-items:center;gap:10px;padding:12px;border-radius:14px;background:var(--surface-2);font-size:17px}.route-notes{margin:0 0 6px;padding-left:20px;font-size:14px}.route-notes li+li{margin-top:4px}.list{position:fixed;z-index:5;left:0;right:0;bottom:var(--footer-h);top:calc(env(safe-area-inset-top) + 118px);overflow:auto;padding:8px 12px 24px;background:var(--surface);border-radius:22px 22px 0 0;box-shadow:var(--shadow);animation:pop .15s var(--ease)}.list>*{max-width:560px;margin-left:auto;margin-right:auto}.list h3{margin:18px 6px 4px;font-size:15px;font-weight:800;color:var(--text)}.list ul{list-style:none;margin:0;padding:0}.list-note{padding:12px;border-radius:14px;background:var(--unknown-bg);font-weight:650}.list-empty{padding:12px 6px}.no-map .controls,.no-map .key-btn{display:none}.list-note{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.list-note span{font-weight:500}.list-note .btn{margin-top:4px}.detail-hint,.no-map #map{display:none}.no-map .list{animation:none}@media(min-width:900px){.no-map .list{left:412px;right:452px;width:auto;top:16px;bottom:calc(var(--footer-h) + 16px)}.no-map .list>*{max-width:none}.no-map .panel{left:auto;right:16px;top:16px;width:420px;max-height:calc(100vh - var(--footer-h) - 32px);transform:translate(110%)}.no-map .panel.open,.no-map .panel.expanded{transform:none;max-height:calc(100vh - var(--footer-h) - 32px)}.no-map:not(.panel-open) .detail-hint{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;position:fixed;right:16px;top:16px;width:420px;bottom:calc(var(--footer-h) + 16px);padding:24px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);color:var(--muted);font-weight:650}.detail-mascot{width:72px;height:94px}}@media(min-width:900px)and (max-width:1199px){.no-map .list{right:16px}.no-map:not(.panel-open) .detail-hint{display:none}}@media(max-width:899px){body:not(.no-map) .list{top:46vh;transition:top .2s var(--ease);padding-top:0}body:not(.no-map) .list.full{top:calc(var(--top-b, 118px) + 8px)}body:not(.no-map) .list-grip{display:block;position:sticky;top:0;z-index:1;width:100%;height:26px;margin:0;padding:0;border:0;background:var(--surface);cursor:grab}body.list-open:not(.no-map) .controls{bottom:calc(54vh + 10px)}body.list-open #zoom-in,body.list-open #zoom-out,body.list-open #dim,body.list-open .key-btn{display:none}body.list-open:has(.list.full) .controls{opacity:0;pointer-events:none}body:not(.no-map) .list-grip:before{content:"";display:block;width:40px;height:5px;margin:10px auto 0;border-radius:3px;background:var(--line)}.no-map .list{top:calc(var(--top-b, 118px) + 8px);border-radius:22px 22px 0 0}.no-map .panel{max-height:86vh}}.welcome,.about{position:fixed;z-index:40;inset:0;display:grid;place-items:center;padding:16px;background:#1e281e59;animation:fade .2s ease-out}.welcome-card,.about-card{position:relative;width:100%;max-width:400px;padding:26px 22px 18px;text-align:center;background:var(--surface);border-radius:26px;box-shadow:var(--shadow);animation:pop .22s var(--ease)}.welcome-kicker{margin:0;font-weight:800;color:var(--primary);letter-spacing:.06em;text-transform:uppercase;font-size:13px}.welcome-mascot{width:92px;height:121px;margin:-6px auto 6px}.welcome-mascot .me{width:100%;height:100%;overflow:visible}.welcome-mascot .me *{transform-box:view-box}.welcome-mascot .shadow{fill:#00000024}.welcome-mascot .walk{display:none}.welcome-card h1{margin:6px 0;font-size:26px;line-height:1.15}.welcome-sub{margin:0 0 20px;color:var(--muted);font-size:17px}.welcome-note{margin:14px 0 0;color:var(--muted);font-size:12px}.about-card{text-align:left;max-height:85vh;overflow:auto}.about-card h2{margin:0 0 10px}.about-card p{margin:0 0 10px;font-size:15px}.about-close{position:absolute;right:8px;top:8px}.about-by{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-weight:700}.about-by a{color:var(--primary)}.welcome-again{width:100%;margin:16px 0 10px}@keyframes fade{0%{opacity:0}}.footer{position:fixed;z-index:3;left:0;right:0;bottom:0;height:var(--footer-h);padding:0 10px env(safe-area-inset-bottom);display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--surface);color:var(--muted);font-size:10.5px;text-align:center;border-top:1px solid var(--line)}.footer-row{display:flex;align-items:center;height:26px;font-size:13px;font-weight:700;color:var(--text)}.footer-row>span{margin-right:2px}.footer p{margin:0;line-height:1.25}.foot-narrow{display:none}.foot-narrow .link-btn{font-size:inherit;min-height:0;padding:4px 2px;margin:-4px 0;color:inherit}@media(max-width:899px){:root{--footer-h: calc(22px + env(safe-area-inset-bottom)) }.footer-row,.foot-wide{display:none}.foot-narrow{display:inline}.footer{font-size:11px}}.icon-link{width:44px;height:44px;margin:-9px -6px;display:grid;place-items:center;color:var(--text);border-radius:12px}.icon-link svg{width:20px;height:20px}.icon-link:hover,.icon-link:focus-visible{color:var(--primary)}@media(min-width:900px){.top{left:16px;right:auto;width:380px;margin:0;top:16px}.brand{display:flex;margin:0 0 8px 6px;line-height:1.2}.brand b{font-size:20px}.brand span{font-size:13px;color:var(--muted);font-weight:650}.top{z-index:12}.panel{left:16px;right:auto;bottom:auto;top:calc(var(--top-b, 186px) + 10px);margin:0;width:380px;max-width:none;max-height:calc(100vh - var(--top-b, 186px) - 10px - var(--footer-h) - 16px);border-radius:var(--radius);padding:16px;transform:translate(-110%);box-shadow:var(--shadow)}.panel.open{transform:none}.panel.expanded{max-height:calc(100vh - var(--top-b, 186px) - 10px - var(--footer-h) - 16px)}.handle{display:none}.brand{flex-direction:row;align-items:center;gap:10px}.brand>span{display:flex;flex-direction:column}.brand .mark{width:40px;height:40px}.search-mark{display:none}.search{padding-left:18px}.chips,.chips.more-left,.chips.more-right{flex-wrap:wrap;overflow:visible;margin:8px 0 0;padding:2px 0 6px;-webkit-mask-image:none;mask-image:none}.list{left:16px;right:auto;width:380px;top:calc(var(--top-b, 186px) + 10px);bottom:calc(var(--footer-h) + 16px);border-radius:var(--radius)}.controls{right:16px;bottom:calc(var(--footer-h) + 16px)}.key-btn{left:auto;right:72px;bottom:calc(var(--footer-h) + 16px)}.key{left:auto;right:72px;bottom:calc(var(--footer-h) + 68px)}}@media(max-height:700px)and (max-width:899px){.panel{max-height:52vh}}@media(max-width:380px){.footer{font-size:9.5px}.chip{padding:0 11px 0 7px}.actions .btn{padding:0 10px;font-size:15px;gap:6px}.actions .btn svg{width:18px;height:18px}}html[data-motion=reduced] .me .idle,html[data-motion=reduced] .me .eyes,html[data-motion=reduced] .avatar .halo,html[data-motion=reduced] .ripple,html[data-motion=reduced] .avatar.walking .leg,html[data-motion=reduced] .avatar.walking .arm,html[data-motion=reduced] .avatar.walking .bob{animation:none!important}html[data-motion=reduced] .ripple{display:none}html[data-motion=reduced] .pin{transition:opacity .15s}html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}html[data-motion=off] .ripple,html[data-motion=off] .avatar .halo{display:none}.picker #map{inset:0}.picker #map .maplibregl-canvas{opacity:1}.picker #map:before{display:none}.picker #map .maplibregl-marker{visibility:visible}.picker-panel{position:fixed;top:10px;left:10px;z-index:5;max-width:calc(100% - 20px);padding:12px 14px;border-radius:16px;background:var(--surface);box-shadow:var(--shadow);font-size:14px}.picker-panel label{display:block;margin-top:6px}.picker-panel #out{margin-top:6px;font-size:15px}.picker-dot{min-width:22px;height:22px;padding:0 4px;border-radius:11px;display:grid;place-items:center;background:#24232e;color:#fff;font:700 11px system-ui;border:2px solid #fff;cursor:help}.picker-dot.pending{background:#ff9f43}.picker-dot.entrance{background:#7fd48a}.door-pin{width:26px;height:26px;display:grid;place-items:center;border-radius:8px 8px 8px 2px;background:var(--select);color:#fff;border:2px solid #fff;box-shadow:0 2px 6px #0000004d;pointer-events:none}.door-pin svg{width:14px;height:14px}.meet-pin{width:40px;height:48px;pointer-events:none;animation:meet-drop .28s var(--ease)}.meet-pin span{width:40px;height:40px;display:grid;place-items:center;border-radius:50% 50% 50% 6px;rotate:-45deg;background:var(--route);color:#fff;border:3px solid #fff;box-shadow:0 3px 8px #00000059}.meet-pin svg{width:20px;height:20px;rotate:45deg}@keyframes meet-drop{0%{translate:0 -18px;opacity:0}}html[data-motion=reduced] .meet-pin,html[data-motion=off] .meet-pin{animation:none}.cat-icon.g-meet{background:var(--route);color:#fff}.key-meet{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--route);color:#fff}.key-meet svg{width:12px;height:12px}.motion-set{margin:14px 0 6px;padding:0;border:0}.motion-set legend{padding:0;margin-bottom:6px;font-weight:800}.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border-radius:14px;background:var(--surface-2)}.seg label{position:relative}.seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}.seg span{display:grid;place-items:center;min-height:40px;border-radius:10px;font-weight:750;font-size:14px}.seg input:checked+span{background:var(--primary);color:var(--primary-ink)}.seg input:focus-visible+span{outline:3px solid var(--focus);outline-offset:1px}.ripple{width:var(--ripple, 60px);height:var(--ripple, 60px);pointer-events:none}.ripple i{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(255,255,255,.75);opacity:0;animation:ripple 5s ease-out infinite;animation-delay:var(--d, 0s)}.ripple i+i{animation-delay:calc(var(--d, 0s) + 2.5s)}@keyframes ripple{0%{transform:scale(.15);opacity:0}15%{opacity:.75}to{transform:scale(1);opacity:0}}.lite .ripple{display:none}.sel-roof{background:var(--select)}.key-me{width:22px;display:grid;place-items:center;flex:none}.key-me .walk{display:none}.key-me .shadow{fill:#0000002e}.key-me .me *{animation:none!important}.seg.seg-2{grid-template-columns:repeat(2,1fr)}.ctl.locate{position:relative}.find-label{position:absolute;right:52px;top:50%;transform:translateY(-50%);padding:0 12px;height:34px;display:grid;place-items:center;white-space:nowrap;border-radius:17px;background:var(--primary);color:var(--primary-ink);font-size:14px;font-weight:800;box-shadow:var(--shadow);pointer-events:none}.find-label:after{content:"";position:absolute;right:-4px;top:50%;width:9px;height:9px;margin-top:-4.5px;background:var(--primary);transform:rotate(45deg);border-radius:2px}body.has-fix .find-label,body.panel-open .find-label{display:none}body:not(.far-view) .find-label,body.findme-used .find-label{display:none}@media(min-width:900px){.find-label{display:none}}.court-label{display:none;pointer-events:none;color:#fff;font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;opacity:.92;text-shadow:0 0 2px rgba(31,45,39,.35)}.show-courts .court-label{display:block}.area-label{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px 0 6px;border:0;border-radius:20px;background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--text);font-size:15px;font-weight:800;white-space:nowrap;box-shadow:0 3px #1f2d2714,0 6px 18px #1f2d2729;transition:opacity .2s,transform .12s;z-index:1}.area-label:active{transform:scale(.96)}.area-label.hidden{visibility:hidden;opacity:0;pointer-events:none}.area-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;color:#24323a}.area-icon svg{width:16px;height:16px}@media(max-width:599px){.area-label{min-height:36px;padding:0 12px 0 5px;gap:7px;font-size:13.5px}.area-icon{width:25px;height:25px}.area-icon svg{width:14px;height:14px}}.area-digby-stuart .area-icon{background:var(--roof-digby)}.area-froebel .area-icon{background:var(--roof-froebel)}.area-southlands .area-icon{background:var(--roof-southlands)}.area-whitelands .area-icon{background:var(--roof-whitelands)}.area-chadwick .area-icon{background:var(--roof-froebel)}.icon-btn.save[aria-pressed=true]{color:var(--primary)}.icon-btn.save[aria-pressed=true] svg{fill:currentColor}.saved-chip .chip-dot{background:var(--primary)}.roof-slate{background:#919cab}.roof-tile{background:#d49a7c}.roof-green{background:#9fcb7c}.roof-solar{background:repeating-linear-gradient(90deg,#6a86a8 0 5px,#e6dccb 5px 6px)}.roof-metal{background:#bfcdd8}.hello{position:fixed;z-index:8;left:10px;right:64px;bottom:calc(var(--footer-h) + 12px);max-width:420px;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:8px;align-items:end;padding:10px 10px 10px 8px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);animation:pop .22s var(--ease)}.hello-mascot{width:50px;height:66px;margin:-24px 0 0}.hello-text{min-width:0;align-self:center}.hello h1{margin:0 34px 2px 0;font-size:17px;line-height:1.2}.hello p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.35}.hello-long{display:none}.hello-actions{grid-column:1 / -1;display:flex;gap:8px;margin-top:8px}.hello-actions .btn{flex:1;min-height:44px;padding:0 12px;font-size:15px}.hello-actions .btn svg{width:18px;height:18px}.hello-close{position:absolute;right:2px;top:2px;width:44px;height:44px}body.hello-open .key-btn,body.hello-open .find-label{display:none}.hello.bye{opacity:0;transform:translateY(10px);transition:opacity .2s,transform .2s var(--ease)}@media(min-width:900px){.hello{left:16px;right:auto;width:380px;bottom:calc(var(--footer-h) + 16px);padding:14px 14px 14px 6px}.hello-mascot{width:74px;height:97px;margin:-30px 0 -4px;grid-row:span 2}.hello h1{font-size:19px}.hello p{font-size:14px}.hello-long{display:inline}.hello-short{display:none}.hello-actions{grid-column:2;margin-top:10px}.hello-actions .btn{flex:none;min-height:42px;padding:0 14px}}.route-go{display:flex;margin:0 0 12px}.route-go .btn{flex:1;min-height:52px;font-size:17px}body.navigating .top>:not(.toast,.rec-chip),body.navigating .key-btn,body.navigating .key,body.navigating .find-label{display:none}.panel.nav{padding-top:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom))}.panel.nav .handle{display:none}.nav-bar{display:flex;align-items:center;gap:10px}.nav-info{flex:1;min-width:0;min-height:48px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;padding:0 2px;border:0;background:none;color:inherit;font:inherit;text-align:left}.nav-info b{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:17px;line-height:1.2}.nav-info b:focus{outline:none}.nav-left{color:var(--muted);font-size:14px;font-weight:700}.nav-left.arrived{color:var(--primary)}.btn.nav-end{min-height:46px;padding:0 20px;border:0;background:#e5484d;color:#fff;box-shadow:0 3px #a82d31}.btn.nav-end:active{transform:translateY(2px);box-shadow:0 1px #a82d31}@media(min-width:900px){body.navigating .panel{top:16px}body.navigating .top{top:104px}}.k-hospital{--g: #d7372f}.pin.k-hospital .dot,.cat-icon.k-hospital{border-radius:7px;background:var(--hosp-accent, #d64541);color:#fff}.pin.k-ctx:not(.selected){opacity:.72}.pin.k-ctx:not(.selected) .dot{transform:scale(.78);filter:saturate(.4)}.pin.k-ctx:not(.selected) .label{font-size:11px;font-weight:600;color:var(--muted, #6b6f73)}.pin.k-hospital .dot svg{width:16px;height:16px;stroke-width:3}.college-badge{display:inline-flex;align-items:center;gap:5px;font-weight:700}.college-badge i{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 1px #0000002e;flex:none}.pin.g-nearby:not(.selected) .dot{transform:scale(.86)}.has-selection .pin:not(.selected){opacity:.66}.has-selection .pin.k-ctx:not(.selected){opacity:.5}.areas-small .area-label{min-height:30px;font-size:12px;padding:0 10px 0 3px;gap:5px;opacity:.78;box-shadow:0 2px 8px #1f2d271f}.areas-small .area-icon{width:24px;height:24px}.pin.k-hospital.mini .dot{width:18px;height:18px;border-radius:5px;border-width:1.5px}.pin.k-hospital.mini .dot svg{width:11px;height:11px}.key-btn.hint{animation:key-hint 1.2s var(--ease) 2}@keyframes key-hint{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--primary) 28%,transparent),var(--shadow);transform:scale(1.06)}}@media(prefers-reduced-motion:reduce){.key-btn.hint{animation:none;outline:3px solid var(--primary)}}.pin.g-nearby.k-ctx:not(.selected) .dot{transform:scale(.74)}.swatch.ctx-ground{background:#eceae4;box-shadow:inset 0 0 0 1px #0000001f}:root[data-theme=dark] .swatch.ctx-ground{background:#24272b;box-shadow:inset 0 0 0 1px #ffffff29}.key li:empty{display:none}.route-notes .report-entrance{display:inline-flex;min-height:36px;margin-top:6px;padding:0 12px;font-size:13px}.avatar.weak .me{opacity:.55}.avatar .inside{position:absolute;left:50%;top:64px;transform:translate(-50%);white-space:nowrap;padding:2px 8px;border-radius:10px;background:var(--surface);color:var(--text);font-size:12px;font-weight:700;box-shadow:var(--shadow)}
