html{scroll-behavior:smooth;scroll-padding-top:5rem}.landing-glow{position:absolute;border-radius:9999px;filter:blur(72px);pointer-events:none;background:color-mix(in srgb,var(--primary) 22%,transparent)}.landing-grid{background-image:linear-gradient(to right,color-mix(in srgb,var(--outline-variant) 35%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in srgb,var(--outline-variant) 35%,transparent) 1px,transparent 1px);background-size:40px 40px;-webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%)}.phone{position:relative;width:310px;max-width:100%;aspect-ratio:310 / 640;border-radius:3rem;padding:10px;background:linear-gradient(145deg,#2a3138,#0c0f10);box-shadow:0 0 0 1px color-mix(in srgb,var(--outline) 40%,transparent),0 40px 80px -24px #0c0f1073,0 18px 36px -18px color-mix(in srgb,var(--primary) 45%,transparent)}.phone-screen{position:relative;height:100%;border-radius:2.4rem;overflow:hidden;background:var(--surface-container);display:flex;flex-direction:column}.phone-notch{position:absolute;top:8px;left:50%;transform:translate(-50%);width:88px;height:24px;border-radius:9999px;background:#0c0f10;z-index:15}.phone [data-route]{opacity:0;transition:opacity .3s cubic-bezier(.16,1,.3,1);pointer-events:none}.phone[data-mode=shortest] [data-route=shortest],.phone[data-mode=coolest] [data-route=coolest],.phone[data-mode=accessible] [data-route=accessible]{opacity:1;pointer-events:auto}.mode-btn{background:var(--surface-container);color:var(--on-surface-variant);transition:all .25s var(--ease)}.mode-btn:hover{background:var(--surface-container-high)}.mode-btn:active{transform:scale(.96)}.mode-btn[aria-pressed=true]{background:var(--primary-container);color:var(--on-primary-container);box-shadow:inset 0 0 0 1.5px var(--primary)}.dest-chip{padding:.25rem .625rem;border-radius:9999px;font-size:10px;font-weight:700;transition:all .25s var(--ease);border:1px solid color-mix(in srgb,var(--outline-variant) 40%,transparent);background:var(--surface-container-lowest);color:var(--on-surface-variant);cursor:pointer;white-space:nowrap}.dest-chip:hover{background:var(--surface-container-high);color:var(--on-surface);transform:translateY(-1px)}.dest-chip:active{transform:scale(.96)}.dest-chip[aria-pressed=true]{background:var(--primary);color:var(--on-primary);border-color:var(--primary);box-shadow:0 2px 8px color-mix(in srgb,var(--primary) 35%,transparent)}.floor-btn{width:1.75rem;height:1.5rem;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;cursor:pointer;transition:all .2s var(--ease);color:var(--on-surface-variant);background:transparent;border:none}.floor-btn:hover{background:var(--surface-container-high);color:var(--on-surface)}.floor-btn:active{transform:scale(.92)}.floor-btn[aria-pressed=true]{background:var(--primary);color:var(--on-primary)}.turn-banner{position:absolute;top:.5rem;left:.625rem;right:.625rem;border-radius:.75rem;background:var(--surface-container-lowest);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent);box-shadow:0 6px 16px -2px #0000001f;padding:.45rem .625rem;display:flex;align-items:center;gap:.5rem;z-index:20;transform:translateY(-130%);opacity:0;transition:transform .28s cubic-bezier(.16,1,.3,1),opacity .2s ease;pointer-events:none}.turn-banner.is-active{transform:translateY(0);opacity:1;pointer-events:auto}.map-room-btn{cursor:pointer;outline:none}.map-room-btn .room-rect{fill:var(--surface-container-lowest);stroke:var(--outline-variant);stroke-width:.9;transition:fill .18s var(--ease),stroke .18s var(--ease),filter .18s var(--ease)}.map-room-btn text{fill:var(--on-surface-variant);font-family:Manrope,sans-serif;font-weight:700;transition:fill .18s var(--ease),font-weight .18s var(--ease);-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.map-room-btn:hover .room-rect,.map-room-btn:focus-visible .room-rect{fill:color-mix(in srgb,var(--primary) 14%,var(--surface-container-lowest));stroke:var(--primary);stroke-width:1.5;filter:drop-shadow(0 2px 6px color-mix(in srgb,var(--primary) 30%,transparent))}.map-room-btn:hover text,.map-room-btn:focus-visible text{fill:var(--primary);font-weight:800}.map-room-btn.is-selected .room-rect{fill:color-mix(in srgb,var(--primary) 22%,var(--surface-container-lowest));stroke:var(--primary);stroke-width:1.8;filter:drop-shadow(0 2px 8px color-mix(in srgb,var(--primary) 38%,transparent))}.map-room-btn.is-selected text{fill:var(--primary);font-weight:800}.route-line{stroke-dasharray:10 7;animation:routeFlow 1.1s linear infinite}@keyframes routeFlow{to{stroke-dashoffset:-34}}.you-pulse{transform-box:fill-box;transform-origin:center;animation:youPulse 2.2s ease-out infinite}@keyframes youPulse{0%{transform:scale(.6);opacity:.7}to{transform:scale(2.2);opacity:0}}.walk-pulse{transform-box:fill-box;transform-origin:center;animation:walkPulse 1.2s ease-out infinite}@keyframes walkPulse{0%{transform:scale(.7);opacity:.6}to{transform:scale(2.2);opacity:0}}#dest-pin{transition:transform .32s cubic-bezier(.16,1,.3,1);transform-box:fill-box;transform-origin:center bottom}.pin-arrived{animation:pinBounce .65s cubic-bezier(.175,.885,.32,1.275)}@keyframes pinBounce{0%,to{transform:scale(1)}40%{transform:scale(1.35) translateY(-5px)}70%{transform:scale(.95) translateY(1px)}}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.editor-tool-btn{width:2rem;height:2rem;border-radius:.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s var(--ease);color:var(--on-surface-variant);background:transparent;border:none}.editor-tool-btn:hover{background:var(--surface-container-high);color:var(--on-surface)}.editor-tool-btn[aria-pressed=true]{background:var(--primary);color:var(--on-primary)}.editor-pin{cursor:pointer;transition:transform .18s var(--ease),filter .18s var(--ease);transform-box:fill-box;transform-origin:center}.editor-pin:hover{transform:scale(1.3);filter:drop-shadow(0 0 5px var(--primary))}.editor-pin.is-selected{transform:scale(1.25)}.route-mode-card{cursor:pointer;border:1px solid color-mix(in srgb,var(--outline-variant) 40%,transparent);border-radius:1rem;padding:1.25rem;background:var(--surface-container-lowest);transition:background-color .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s ease}.route-mode-card:hover{background:var(--surface-container);border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 16px -2px #00000014}.route-mode-card:active{transform:scale(.99)}.route-mode-card[data-active=true]{border-color:var(--primary);background:color-mix(in srgb,var(--primary-container) 35%,var(--surface-container-lowest));box-shadow:0 0 0 1.5px var(--primary),0 6px 20px -4px color-mix(in srgb,var(--primary) 30%,transparent)}html.reveal-ready [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);will-change:opacity,transform}html.reveal-ready [data-reveal].is-visible{opacity:1;transform:translateY(0)}.faq-item{border-radius:1rem;background:var(--surface-container-low);border:1px solid color-mix(in srgb,var(--outline-variant) 40%,transparent);overflow:hidden;transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}.faq-item.is-open{border-color:color-mix(in srgb,var(--primary) 40%,transparent);box-shadow:0 4px 20px -4px color-mix(in srgb,var(--primary) 15%,transparent)}.faq-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem;font-weight:800;font-size:.9375rem;text-align:left;background:transparent;border:none;color:var(--on-surface);cursor:pointer;transition:color .2s var(--ease)}.faq-trigger:hover{color:var(--primary)}.faq-trigger .faq-chevron{flex-shrink:0;color:var(--on-surface-variant);transition:transform .3s cubic-bezier(.16,1,.3,1),color .2s var(--ease)}.faq-item.is-open .faq-trigger .faq-chevron{transform:rotate(180deg);color:var(--primary)}.faq-body{height:0;overflow:hidden;transition:height .32s cubic-bezier(.16,1,.3,1)}.faq-body-inner{padding:0 1.25rem 1.25rem;font-size:.875rem;line-height:1.7;color:var(--on-surface-variant);opacity:0;transform:translateY(6px);transition:opacity .25s var(--ease) 60ms,transform .3s var(--ease) 40ms}.faq-item.is-open .faq-body-inner{opacity:1;transform:translateY(0)}@keyframes faqSlideIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.faq-item[data-faq-index]{opacity:0}.faq-item.faq-entered{animation:faqSlideIn .5s cubic-bezier(.16,1,.3,1) forwards}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.route-line,.you-pulse,.walk-pulse,.pin-arrived{animation:none}#dest-pin,.turn-banner,html.reveal-ready [data-reveal]{transition:none}}
