@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.map-page{display:grid;grid-template-columns:420px 1fr;gap:0;height:min(84svh,860px);min-height:560px;overflow:hidden;border-top:1px solid #26201a}@media (max-width: 980px){.map-page{grid-template-columns:1fr;height:auto}}.map-side{background:var(--g2);border-right:1px solid rgba(201,240,44,0.14);display:flex;flex-direction:column;overflow:hidden}@media (max-width: 980px){.map-side{border-right:none;border-bottom:1px solid rgba(201,240,44,0.14);max-height:60vh}}.map-side-head{padding:22px 22px 16px;border-bottom:1px solid rgba(201,240,44,0.14)}.map-side-title{font-family:"Big Shoulders Display",sans-serif;font-weight:800;font-size:1.5rem;text-transform:uppercase;letter-spacing:-0.01em;color:var(--bone);margin-bottom:6px}.map-side-sub{font-family:"IBM Plex Mono",monospace;font-size:0.66rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--boned)}.map-search-wrap{margin:14px 0 12px;display:flex;align-items:center;gap:10px;background:rgba(14,11,8,0.7);border:1px solid rgba(201,240,44,0.22);border-radius:4px;padding:8px 12px}.map-search-wrap svg{stroke:var(--boned);fill:none;stroke-width:2;flex-shrink:0}.map-search-input{background:transparent;border:none;outline:none;font-family:"IBM Plex Sans",sans-serif;font-size:0.9rem;color:var(--bone);flex:1;width:100%}.map-search-input::placeholder{color:var(--boned)}.map-filter-row{display:flex;gap:6px;flex-wrap:wrap}.map-chip{background:rgba(14,11,8,0.7);border:1px solid rgba(232,225,212,0.22);color:var(--boned);font-family:"IBM Plex Mono",monospace;font-size:0.62rem;letter-spacing:0.14em;text-transform:uppercase;padding:6px 11px;border-radius:99px;cursor:pointer;transition:all 0.15s}.map-chip.on,.map-chip:hover{border-color:var(--acid);color:var(--acid);background:rgba(201,240,44,0.08)}.map-chip.on{font-weight:600}.map-side-count{padding:8px 22px 6px;font-family:"IBM Plex Mono",monospace;font-size:0.66rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--boned);border-bottom:1px solid rgba(201,240,44,0.08)}.map-side-count strong{color:var(--acid)}.map-list{flex:1;overflow-y:auto;padding:6px 14px 140px;scrollbar-width:thin}.map-list::-webkit-scrollbar{width:6px}.map-list::-webkit-scrollbar-thumb{background:rgba(201,240,44,0.22);border-radius:3px}.map-li{display:flex;gap:12px;padding:10px 10px;border-radius:4px;cursor:pointer;transition:background 0.12s;text-decoration:none;color:var(--bone)}.map-li:hover,.map-li.active{background:rgba(201,240,44,0.06)}.map-li.active{border:1px solid rgba(201,240,44,0.32)}.map-li-img{width:70px;height:50px;flex-shrink:0;background-size:cover;background-position:center;background-color:var(--g);border-radius:3px;border:1px solid rgba(201,240,44,0.1)}.map-li-body{flex:1;min-width:0}.map-li-name{display:block;text-decoration:none;font-family:"Big Shoulders Display",sans-serif;font-weight:700;font-size:0.95rem;text-transform:uppercase;letter-spacing:-0.005em;color:var(--bone);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-li:hover .map-li-name,.map-li.active .map-li-name{color:var(--acid)}.map-li-meta{font-family:"IBM Plex Mono",monospace;font-size:0.6rem;letter-spacing:0.12em;color:var(--boned);text-transform:uppercase;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-li-cont{font-family:"IBM Plex Mono",monospace;font-size:0.56rem;letter-spacing:0.16em;color:var(--acid);text-transform:uppercase;margin-top:3px}.map-li-path-btn{font-family:"IBM Plex Mono",monospace;font-size:0.6rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--boned);background:transparent;border:1px solid rgba(232,225,212,0.22);border-radius:99px;padding:4px 10px;cursor:pointer;transition:all 0.15s;flex-shrink:0;align-self:center}.map-li-path-btn:hover{color:var(--acid);border-color:var(--acid)}.map-li-path-btn.added{background:var(--acid);color:var(--g);border-color:var(--acid)}.map-pane{position:relative;background:var(--g)}#sonicMap{width:100%;height:100%;min-height:50vh;background:var(--g)}@media (max-width: 980px){#sonicMap{height:56vh}}.leaflet-container{background:var(--g2)!important}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--g2);color:var(--bone);border:1px solid rgba(201,240,44,0.32);box-shadow:0 20px 50px rgba(0,0,0,0.4)}.leaflet-popup-content{font-family:"IBM Plex Sans",sans-serif;padding:4px 8px}.leaflet-popup-content a{font-family:"IBM Plex Mono",monospace;font-size:0.7rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--acid)}.leaflet-control-zoom a{background:var(--g2)!important;color:var(--acid)!important;border-color:rgba(201,240,44,0.18)!important}.map-overlay{position:absolute;top:14px;left:14px;z-index:400;background:rgba(14,11,8,0.85);border:1px solid rgba(201,240,44,0.22);padding:8px 14px;border-radius:99px;font-family:"IBM Plex Mono",monospace;font-size:0.66rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--bone);display:flex;align-items:center;gap:10px}.map-overlay .dot{width:8px;height:8px;background:var(--acid);border-radius:50%;animation:pulse 1.6s ease-in-out infinite}.path-bar{position:fixed;bottom:0;left:0;width:100vw;max-width:100vw;background:rgba(14,11,8,0.98);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:2px solid var(--acid);z-index:9999;display:flex;flex-direction:column;transform:translateY(100%);transition:transform 0.3s;box-shadow:0 -20px 50px rgba(0,0,0,0.5);pointer-events:auto}.path-bar.active{transform:translateY(0)}.path-bar-top{display:flex;align-items:center;gap:16px;padding:12px 22px 10px;border-bottom:1px solid rgba(201,240,44,0.12);flex-wrap:wrap;width:100%}.path-bar-label{font-family:"IBM Plex Mono",monospace;font-size:0.72rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--acid);display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.path-bar-count{background:var(--acid);color:var(--g);font-family:"IBM Plex Mono",monospace;font-weight:700;font-size:0.74rem;padding:3px 10px;border-radius:99px}.path-bar-hint{font-family:"IBM Plex Mono",monospace;font-size:0.62rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--boned);flex:1;min-width:120px}.path-bar-actions{display:flex;gap:8px;flex-shrink:0;align-items:center}.path-bar-laneRow{position:relative;width:100%;min-height:56px;display:flex}.path-bar-chips{display:flex;gap:8px;padding:10px 56px 14px;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:rgba(201,240,44,0.45) transparent;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;flex:1;width:100%}.path-bar-chips::-webkit-scrollbar{height:6px}.path-bar-chips::-webkit-scrollbar-track{background:transparent}.path-bar-chips::-webkit-scrollbar-thumb{background:rgba(201,240,44,0.45);border-radius:3px}.path-bar-chips:empty::before{content:"Click venues on the map or in the list to add them. The route draws between them.";font-family:"IBM Plex Mono",monospace;font-size:0.66rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--boned);padding:6px 0;white-space:nowrap}.path-chip{font-family:"IBM Plex Mono",monospace;font-size:0.66rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--bone);background:rgba(201,240,44,0.1);border:1px solid rgba(201,240,44,0.28);padding:6px 10px 6px 12px;border-radius:99px;display:inline-flex;align-items:center;gap:8px;flex-shrink:0;scroll-snap-align:start;white-space:nowrap}.path-chip-num{background:var(--acid);color:var(--g);font-weight:700;font-size:0.62rem;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.path-chip-x{background:none;border:none;cursor:pointer;color:var(--boned);font-size:1.1rem;line-height:1;padding:0 0 0 2px}.path-chip-x:hover{color:var(--coral)}.lane-arrow{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;background:rgba(14,11,8,0.96);border:1px solid rgba(201,240,44,0.35);border-radius:50%;color:var(--acid);font-size:1.1rem;line-height:1;cursor:pointer;z-index:2;display:flex;align-items:center;justify-content:center;transition:background 0.15s,transform 0.18s}.lane-arrow:hover{background:var(--acid);color:var(--g)}.lane-arrow:disabled{opacity:0.25;cursor:default}.lane-arrow:disabled:hover{background:rgba(14,11,8,0.96);color:var(--acid)}.lane-arrow.left{left:10px}.lane-arrow.right{right:10px}.lane-fade-l,.lane-fade-r{position:absolute;top:0;bottom:0;width:80px;pointer-events:none;z-index:1}.lane-fade-l{left:0;background:linear-gradient(to right,rgba(14,11,8,0.98),rgba(14,11,8,0))}.lane-fade-r{right:0;background:linear-gradient(to left,rgba(14,11,8,0.98),rgba(14,11,8,0))}.path-action-btn.danger{background:transparent;color:var(--coral);border-color:rgba(255,107,71,0.45)}.path-action-btn.danger:hover{background:var(--coral);color:var(--g);border-color:var(--coral)}.path-bar-dismiss{background:transparent;border:none;color:var(--boned);font-size:1.4rem;line-height:1;cursor:pointer;padding:6px 8px;margin-left:4px;border-radius:50%;transition:color 0.15s,background 0.15s}.path-bar-dismiss:hover{color:var(--coral);background:rgba(255,107,71,0.08)}@media (max-width: 760px){.path-bar-chips{padding-left:44px;padding-right:44px}.lane-arrow{width:28px;height:28px;font-size:0.95rem}.lane-arrow.left{left:6px}.lane-arrow.right{right:6px}}.path-action-btn{font-family:"IBM Plex Mono",monospace;font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;padding:10px 16px;border-radius:99px;cursor:pointer;text-decoration:none;border:1px solid;transition:all 0.15s}.path-action-btn.primary{background:var(--acid);color:var(--g);border-color:var(--acid);font-weight:600}.path-action-btn.primary:hover{background:var(--bone)}.path-action-btn.ghost{background:transparent;color:var(--bone);border-color:rgba(232,225,212,0.28)}.path-action-btn.ghost:hover{color:var(--acid);border-color:var(--acid)}.path-launch-btn{margin-top:18px;display:inline-flex;align-items:center;gap:8px;font-family:"IBM Plex Mono",monospace;font-size:0.74rem;letter-spacing:0.18em;text-transform:uppercase;padding:12px 22px;border-radius:99px;background:var(--acid);color:var(--g);font-weight:600;cursor:pointer;border:none;transition:background 0.18s,transform 0.18s}.path-launch-btn:hover{background:var(--bone);transform:translateY(-1px)}.path-launch-btn.active{background:var(--coral);color:var(--bone)}.path-launch-btn .helper{font-size:0.6rem;color:var(--g);opacity:0.7;margin-left:4px}.path-launch-btn.active .helper{color:var(--bone);opacity:0.85}body:has(.path-bar.active) .hs-fab{display:none}.map-page .map-chip,.map-page .map-li-path-btn{min-height:32px}.map-li{scroll-margin:8px}.maphead-cta .path-launch-btn{margin-top:0}@media (max-width:640px){.maphead-cta,.maphead-cta .path-launch-btn{width:100%}.maphead-cta .path-launch-btn{flex-direction:column;gap:2px;justify-content:center;text-align:center;padding:14px 22px;border-radius:28px}.maphead-cta .path-launch-btn .helper{margin-left:0}}@media (max-width:980px){.maphead{padding:96px 0 14px}.maphead .lede{display:none}.maphead h1{font-size:clamp(34px,9vw,52px);margin:6px 0 8px}.maphead-meta{margin-top:4px;font-size:11px;gap:4px 14px}.maphead-row{gap:12px;align-items:center}.maphead-cta{flex-direction:row;align-items:center;gap:14px;flex-wrap:wrap}.maphead-cta .path-launch-btn{width:auto;flex-direction:row;padding:12px 18px;border-radius:99px}.maphead-cta .path-launch-btn .helper{display:none}.map-page{position:relative;display:block;height:calc(100svh - 54px);min-height:520px;max-height:900px;overflow:hidden}.map-pane{position:absolute;inset:0}#sonicMap{height:100%;min-height:0}.map-side{position:absolute;left:0;right:0;bottom:0;z-index:600;max-height:80%;border-right:0;border-bottom:0;border-top:1px solid rgba(201,240,44,.3);border-radius:20px 20px 0 0;box-shadow:0 -20px 50px rgba(0,0,0,.55)}.map-side.sheet{transform:translateY(calc(100% - var(--peek,170px)));transition:transform .32s cubic-bezier(.2,.8,.2,1);will-change:transform}.map-side.sheet.open{transform:none}.sheet-handle{display:block;width:100%;min-height:44px;background:none;border:0;padding:18px 0 10px;cursor:pointer;-webkit-tap-highlight-color:transparent}.sheet-handle span{display:block;width:44px;height:5px;border-radius:3px;background:rgba(230,225,212,.4);margin:0 auto}.map-side-head{padding:0 16px 12px}.map-side-title{font-size:1.3rem;margin-bottom:0}.map-side-sub{display:none}.map-search-wrap{margin:10px 0 10px}.map-filter-row{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px;margin:0 -16px;padding-left:16px;padding-right:16px}.map-filter-row::-webkit-scrollbar{display:none}.map-chip{white-space:nowrap;flex:none}.map-side-count{padding-top:8px}.map-list{padding-bottom:48px}.map-overlay{top:12px;left:12px;font-size:10px}.leaflet-control-zoom{display:none}.leaflet-bottom{bottom:calc(var(--peek,170px) + 6px)}.hs-fab{display:none}}@media (max-width:980px) and (prefers-reduced-motion:reduce){.map-side{transition:none}}
