:root{--bg:#eef1f5;--fg:#16202c;--muted:#5c6b7c;--panel:rgba(252,253,254,0.92);--border:#d8dee6;--bar-h:200px}@media (prefers-color-scheme:dark){:root{--bg:#0a0e14;--fg:#d7e0ea;--muted:#8294a7;--panel:rgba(16,21,30,0.92);--border:#232e3c}}*{box-sizing:border-box}body,html{margin:0;height:100%;background:var(--bg);color:var(--fg);font:14px/1.45 system-ui,-apple-system,sans-serif;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}#map{inset:0 0 var(--bar-h) 0}#arrows,#map{position:absolute}#arrows{top:0;left:0;width:100%;height:calc(100% - var(--bar-h));pointer-events:none}.venue-marker{width:14px;height:14px;border-radius:50%;background:var(--marker);border:2px solid rgba(255,255,255,.9);opacity:.92;box-shadow:0 0 10px color-mix(in srgb,var(--marker) 70%,transparent)}.status{position:absolute;top:64px;left:50%;transform:translateX(-50%);background:var(--panel);border:1px solid var(--border);padding:6px 14px;border-radius:999px;max-width:60ch;z-index:5;box-shadow:0 2px 10px rgba(0,0,0,.08)}.status.err{color:#e5484d}.search{position:absolute;top:12px;left:50%;transform:translateX(-50%);width:min(440px,calc(100% - 24px));z-index:10}.search input{width:100%;padding:10px 16px 10px 38px;border-radius:999px;border:1px solid var(--border);background:var(--panel);color:var(--fg);font:inherit;outline:none;box-shadow:0 2px 12px rgba(0,0,0,.1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.search input:focus{border-color:var(--accent)}.search .icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;display:flex}.search .results{margin-top:6px;background:var(--panel);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 6px 24px rgba(0,0,0,.14);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.search .results button{display:block;width:100%;text-align:left;padding:9px 14px;border:none;background:none}.search .results button:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.search .results .empty{padding:9px 14px;color:var(--muted)}.toggles{position:absolute;left:12px;bottom:calc(var(--bar-h) + 12px);z-index:10;display:flex;flex-direction:column;gap:8px}.toggles button{width:42px;height:42px;border-radius:50%;border:1px solid var(--border);background:var(--panel);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(0,0,0,.1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--muted);padding:0}.toggles button.on{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 1.5px var(--accent),0 2px 10px rgba(0,0,0,.1)}.toggles .viridis{width:20px;height:20px;border-radius:50%;background:linear-gradient(90deg,#440154 50%,#7ad151 0)}.toggles button:not(.on) .viridis{filter:grayscale(1) opacity(.55)}.bar{position:absolute;left:0;right:0;bottom:0;height:var(--bar-h);z-index:10;background:var(--panel);border-top:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;padding:10px 14px 8px;gap:6px}.bar .head{gap:12px}.bar .head,.bar .play{display:flex;align-items:center}.bar .play{width:36px;height:36px;border-radius:50%;border:none;flex:none;background:var(--accent);color:#fff;justify-content:center}.bar .play:hover{filter:brightness(1.12)}.bar .when{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:88px}.bar .todaybtn{padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:none;color:var(--muted);font-size:12px;white-space:nowrap}.bar .todaybtn:hover{border-color:var(--accent);color:var(--accent)}.bar .weeknav{width:28px;height:28px;border-radius:50%;border:1px solid var(--border);background:none;color:var(--muted);font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;flex:none}.bar .weeknav:hover{border-color:var(--accent);color:var(--accent)}.bar .datechip{padding:5px 12px;border-radius:999px;border:1px solid var(--border);background:none;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:104px}.bar .datechip:hover{border-color:var(--accent);color:var(--accent)}.backdrop{position:fixed;inset:0;z-index:19}.weekpicker{position:absolute;left:56px;bottom:calc(100% + 8px);z-index:20;background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:0 6px 24px rgba(0,0,0,.16);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-height:280px;overflow-y:auto;padding:4px;min-width:180px}.weekpicker button{display:block;width:100%;text-align:left;padding:7px 12px;border:none;background:none;border-radius:9px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.weekpicker button:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.weekpicker button.sel{color:var(--accent);font-weight:600}.weekpicker .now{color:var(--muted);font-weight:400;font-size:11px}.bar .venue{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1;text-align:right}.bar .graph{flex:1 1;min-height:0;cursor:ew-resize;touch-action:none;width:100%}@media (max-width:640px){:root{--bar-h:168px}.bar .when{min-width:0}.bar .venue,.bar .when{font-size:12px}}