:root{--background:#efe5d0;--panel:#f5eddceb;--panel-strong:#fff8ecfa;--ink:#1e1a16;--muted:#63584c;--line:#3826112e;--accent:#bc5c2d;--accent-soft:#bc5c2d29;--music:#166534;--performance:#86efac;--installation:#1e3a8a;--exhibition:#9333ea;--object:#7dd3fc;--experience:#a855f7;--dj:#fef08a;--venue:#8b5cf6;--food:#d8b4fe;--lecture:#af6a00;--community:#22726f;--shadow:0 24px 80px #3e230c24}html,body{max-width:100vw;min-height:100vh;overflow-x:clip}body{color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 0 0,#fff5decc,#0000 28%),radial-gradient(circle at 100% 100%,#a87e3f2e,#0000 24%),linear-gradient(#f5ead2 0%,#e3d3b6 100%);font-family:Avenir Next,Gill Sans Nova,Trebuchet MS,sans-serif}*{box-sizing:border-box;margin:0;padding:0}a{color:inherit;text-decoration:none}.legacy-app{color:#141414;background:#fffdf3;flex-direction:column;height:100vh;min-height:100vh;padding:0;font-family:Fira Mono,Courier New,monospace;display:flex}.legacy-banner{background:#fffdf3;border-bottom:1px solid #ded8c8;flex:none;justify-content:center;align-items:center;min-height:42px;padding:8px 0 6px;display:flex}.legacy-banner-title{justify-items:center;gap:4px;width:100%;min-width:0;display:grid}.legacy-banner-art{width:100%;max-width:none;display:block}.legacy-banner-art img{object-fit:contain;width:100%;max-width:100%;height:auto;display:block}.legacy-banner-source{color:#666;text-align:center;margin:0;font-size:.74rem}.legacy-control-row{flex-wrap:wrap;justify-content:flex-start;gap:6px;display:flex}.legacy-search{width:100%;font:inherit;background:#fffeef;border:1px solid #d9d4c5;border-radius:4px;padding:6px 8px;font-size:.76rem}.legacy-chip{color:#3a3a3a;font:inherit;cursor:pointer;background:#f2efe4;border:1px solid #d9d4c5;border-radius:4px;padding:4px 8px;font-size:.72rem}.legacy-chip.active{color:#fff;background:#141414;border-color:#141414}.legacy-chip:disabled{opacity:.55;cursor:not-allowed}.legacy-chip.legacy-chip-geo{color:#244a88;background:#eef4ff;border-color:#9ebdf8;font-weight:600}.legacy-chip.legacy-chip-geo.active{color:#fff;background:#1d5fcb;border-color:#1d5fcb}.legacy-chip.legacy-switch-map-chip{color:#fff;background:#1f1a16;border-color:#1f1a16;font-weight:700}.legacy-geo-status{color:#6a6359;background:#f5f1e6;border:1px solid #ddd5c4;border-radius:4px;align-items:center;min-height:24px;padding:0 8px;font-size:.68rem;display:inline-flex}.legacy-shell{flex:auto;min-height:0;display:flex}.legacy-map-panel{flex:auto;min-width:0;position:relative}.legacy-map-controls{z-index:5;justify-items:end;gap:6px;max-width:min(90vw,320px);display:grid;position:absolute;top:12px;right:12px}.legacy-map-controls .legacy-control-row{grid-template-columns:none;justify-content:flex-end;display:flex}.legacy-map-controls .legacy-control-row .legacy-chip{width:auto}.legacy-list-panel{background:#fffdf3;border-left:1px solid #ded8c8;align-content:start;gap:12px;width:min(360px,33vw);padding:10px;display:grid;overflow-y:auto}.legacy-list-block{background:#fffef5;border:1px solid #dcd6c8}.legacy-list-controls{z-index:12;background:#fffef5;border-bottom:1px solid #e6e0d3;gap:8px;padding:10px;display:grid;position:sticky;top:0}.legacy-search-row{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:6px;display:grid}.legacy-checkbox-row{flex-wrap:wrap;gap:8px 10px;display:flex}.legacy-filter-toggle{margin-top:2px}.legacy-mobile-filters-toggle{display:none}.legacy-mobile-filter-body{gap:8px;display:grid}.legacy-view-switcher{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.legacy-filter-option{align-items:center;gap:6px;font-size:.72rem;display:inline-flex}.legacy-filter-option input{width:14px;height:14px}.legacy-project-filters{position:relative}.legacy-project-filters-popover{z-index:20;background:#fffef5;border:1px solid #d9d4c5;border-radius:8px;gap:8px;width:min(280px,72vw);padding:8px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 22px #14141429}.legacy-icon-button{justify-content:center;align-items:center;width:34px;min-width:34px;height:28px;padding:0;display:inline-flex}.legacy-filter-icon{gap:3px;width:14px;display:grid}.legacy-filter-icon span{background:currentColor;border-radius:999px;height:2px}.legacy-filter-icon span:first-child{width:14px}.legacy-filter-icon span:nth-child(2){justify-self:end;width:10px}.legacy-filter-icon span:nth-child(3){width:12px}.legacy-project-filters-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.legacy-project-filters-list{gap:6px;max-height:220px;padding-right:4px;display:grid;overflow:auto}.legacy-project-filters-actions{justify-content:flex-end;gap:6px;display:flex}.legacy-list-title{border-bottom:1px solid #e6e0d3;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.legacy-list-title h2{margin:0;font-size:.84rem;font-weight:700}.legacy-list-title span{color:#6c6c6c;font-size:.75rem}.legacy-list-title-venues{display:none}.legacy-venue-list,.legacy-event-list{display:grid}.legacy-venue-list{gap:6px}.legacy-venue-group{display:grid}.legacy-sidebar-group{border-bottom:1px solid #ece7db}.legacy-sidebar-group[open]{background:0 0}.legacy-venue-group-header{letter-spacing:.08em;text-transform:uppercase;color:#625e56;border-bottom:1px solid #ece7db;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px 6px;font-size:.68rem;font-weight:700;display:flex}.legacy-sidebar-group-summary{cursor:pointer;list-style:none}.legacy-sidebar-group-summary::-webkit-details-marker{display:none}.legacy-sidebar-group-summary:after{content:"▾";margin-left:8px;font-size:.78rem}.legacy-sidebar-group:not([open]) .legacy-sidebar-group-summary:after{content:"▸"}.legacy-sidebar-group-items{display:grid}.legacy-venue-item,.legacy-event-item{text-align:left;cursor:pointer;font:inherit;color:inherit;background:0 0;border:0;border-bottom:1px solid #ece7db}.legacy-venue-item{align-items:center;gap:8px;padding:8px 10px;font-size:.78rem;display:flex}.legacy-venue-item.active{background:#f3f0e4}.legacy-venue-dot{border:3px solid var(--pin-color,#ff2d55);background:0 0;border-radius:999px;flex:none;width:14px;height:14px;box-shadow:inset 0 0 0 1px #fffffff5,0 0 0 1px #00000059}.legacy-event-item{gap:4px;padding:10px;display:grid}.legacy-all-entry{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:0;border-bottom:1px solid #ece7db;align-items:flex-start;gap:8px;padding:9px 10px;display:flex}.legacy-all-entry.active{background:#f3f0e4}.legacy-all-entry-copy{gap:2px;min-width:0;display:grid}.legacy-all-entry-copy strong{font-size:.8rem;font-weight:700;line-height:1.25}.legacy-all-entry-copy small{color:#676767;font-size:.72rem;line-height:1.2}.legacy-event-item strong{font-size:.8rem;font-weight:700}.legacy-event-item small{color:#676767;font-size:.72rem}.legacy-event-description{color:#524f48;line-height:1.35}.legacy-event-reconciled{font-weight:700;color:#2f6a45!important}.legacy-time-slot{border-bottom:1px solid #ece7db}.legacy-time-slot-header{color:#4e4a43;background:#f8f3e8;border-bottom:1px solid #ece7db;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:.72rem;display:flex}.legacy-time-slot-events{display:grid}.legacy-pin{background:var(--pin-color,#ff2d55);cursor:pointer;border:2px solid #111;border-radius:50% 50% 50% 0;width:20px;height:20px;transition:transform .12s,box-shadow .12s,filter .12s;display:block;position:relative;transform:rotate(-45deg);box-shadow:0 0 0 2px #fffffffa,0 0 0 4px #0000009e,0 3px 6px #00000059}.legacy-pin-wrap{place-items:center;display:grid;position:relative;overflow:visible}.legacy-map-label{transform:translateY(calc(-50% + var(--label-row-offset,0px)));color:#000;letter-spacing:0;white-space:nowrap;text-shadow:none;z-index:12;pointer-events:none;background:#fff;border:2px solid #111;border-radius:0;padding:4px 10px 5px;font-family:Consolas,Lucida Console,Monaco,monospace;font-size:.78rem;font-weight:700;line-height:1.08;position:absolute;top:50%;box-shadow:0 2px 6px #0003}.legacy-map-label.is-left{right:calc(100% + var(--label-gap,10px))}.legacy-map-label.is-right{left:calc(100% + var(--label-gap,10px))}.legacy-pin-hover-card{z-index:30;pointer-events:none;background:#fffdf5fa;border:1px solid #d8d0bf;border-radius:10px;gap:6px;width:min(240px,56vw);padding:8px;display:grid;position:absolute;bottom:calc(100% + 14px);left:50%;transform:translate(-50%);box-shadow:0 10px 24px #1b181247}.legacy-pin-wrap.has-map-label .legacy-pin-hover-card{bottom:calc(100% + 16px)}@media (max-width:720px){.legacy-map-label{padding:3px 8px;font-size:.68rem}}.legacy-pin-hover-card:after{content:"";background:#fffdf5fa;border-bottom:1px solid #d8d0bf;border-right:1px solid #d8d0bf;width:10px;height:10px;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)rotate(45deg)}.legacy-pin-hover-card>strong{font-size:.72rem;line-height:1.25}.legacy-pin-hover-empty,.legacy-pin-hover-more{color:#5f584f;font-size:.66rem;display:block}.legacy-pin-service-icon{z-index:1;color:#fff;text-shadow:0 1px 2px #0000008c;font-size:16px;font-weight:800;line-height:1;position:relative}.legacy-pin-service-icon.is-toilets{text-shadow:none;font-size:28px;line-height:1}.legacy-pin-service-icon.is-water{text-shadow:none;font-size:26px;line-height:1}.legacy-service-pin{background:var(--pin-color,#4b5563);pointer-events:none;border:3px solid #fffffff5;border-radius:999px;place-items:center;width:36px;height:36px;display:grid;box-shadow:0 0 0 2px #000000b3}.legacy-service-pin.is-toilets,.legacy-service-pin.is-water{width:auto;height:auto;box-shadow:none;background:0 0;border:0}.legacy-pin.is-last-interacted:before{content:"";pointer-events:none;border:2px solid #fffffff2;border-radius:999px;width:30px;height:30px;animation:1.8s ease-out infinite legacy-pin-pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 5px #00000052}.legacy-pin:before{content:"";background:#fff;border-radius:999px;width:7px;height:7px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg);box-shadow:0 0 0 1px #0000002e}.legacy-pin.is-selected{filter:saturate(1.35)brightness(1.02);transform:rotate(-45deg)scale(1.3);box-shadow:0 0 0 3px #fff,0 0 0 6px #000000bf}@keyframes legacy-pin-pulse{0%{opacity:.95;transform:translate(-50%,-50%)scale(.88)}70%{opacity:.28;transform:translate(-50%,-50%)scale(1.1)}to{opacity:0;transform:translate(-50%,-50%)scale(1.22)}}.legacy-user-dot{background:#1f6ef4;border:4px solid #fff;border-radius:999px;width:22px;height:22px;position:relative;box-shadow:0 0 0 1px #062157b3,0 0 0 5px #2f7cf68c,0 0 18px #2f7cf69e}.legacy-user-dot:after{content:"";pointer-events:none;border:3px solid #2f7cf6b8;border-radius:999px;width:48px;height:48px;animation:1.45s ease-out infinite legacy-user-pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes legacy-user-pulse{0%{opacity:.95;transform:translate(-50%,-50%)scale(.62)}70%{opacity:.34;transform:translate(-50%,-50%)scale(.96)}to{opacity:0;transform:translate(-50%,-50%)scale(1.16)}}.legacy-popup{color:#141414;background:#fffdf3;border:1px solid #cfc8b6;border-radius:10px;flex-direction:column;grid-template-rows:auto minmax(0,1fr);width:min(380px,78vw);max-height:min(70vh,560px);padding:0;font-size:12px;line-height:1.35;display:grid;position:relative;overflow:hidden;box-shadow:0 16px 32px #0000003d}.legacy-popup:after{content:"";background:#fffdf3;border-bottom:1px solid #cfc8b6;border-left:1px solid #cfc8b6;width:12px;height:12px;position:absolute;bottom:-7px;left:16px;transform:rotate(-45deg)}.legacy-popup.is-centered-modal:after{display:none}.legacy-popup-head{z-index:2;background:#fffdf3;border-bottom:1px solid #e8e1d1;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:0;padding:12px 12px 10px;display:flex;position:sticky;top:0}.legacy-popup h3{margin:0;font-size:15px}.legacy-popup-subtitle{color:#666;margin-top:2px;font-size:11px}.legacy-popup-type-tags{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.legacy-popup-content{overscroll-behavior:contain;flex:auto;min-height:0;padding:10px 12px 12px;overflow-y:auto}.legacy-popup-footer-actions{background:#fffdf3;border-top:1px solid #e8e1d1;flex:none;align-items:center;gap:8px;padding:10px 12px 12px;display:flex}.legacy-map-modal-overlay{z-index:25;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);background:#43434375;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.legacy-popup-close{color:#6b6b6b;font:inherit;cursor:pointer;background:0 0;border:0;font-size:14px;line-height:1}.legacy-popup i{color:#444}.legacy-popup-meta{color:#7a7a7a;margin-top:0;font-size:11px}.legacy-popup-section{background:#fffef8;border:1px solid #e8e1d1;border-radius:6px;margin-top:10px;padding:0}.legacy-popup-section-title{cursor:pointer;letter-spacing:.08em;text-transform:uppercase;color:#fff;margin:0;padding:8px 10px;font-size:11px;font-weight:700;list-style:none;display:block}.legacy-popup-section-title::-webkit-details-marker{display:none}.legacy-popup-section-title:after{content:"−";float:right;font-size:14px;line-height:1}.legacy-popup-section:not([open]) .legacy-popup-section-title:after{content:"+"}.legacy-popup-section.is-schedule .legacy-popup-section-title{background:#374151}.legacy-popup-section.is-object .legacy-popup-section-title{background:#0ea5e9}.legacy-popup-section.is-dj .legacy-popup-section-title{background:#7c3aed}.legacy-popup-section.is-other .legacy-popup-section-title{background:#0f766e}.legacy-popup-event-list{gap:8px;padding:8px;display:grid}.legacy-popup-event{border-bottom:1px dashed #e3dccd;gap:5px;padding-bottom:8px;display:grid}.legacy-popup-event-button{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}.legacy-popup-event-button:hover{background:#f5f1e7}.legacy-popup-event:last-child{border-bottom:0;padding-bottom:0}.legacy-popup-event-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.legacy-type-chip-group{flex-wrap:wrap;gap:4px;display:flex}.legacy-popup-event p{color:#5f5a52;margin:0;font-size:11px}.legacy-popup-description{color:#4a453d;line-height:1.4}.legacy-popup-reconciled{font-weight:700;color:#2f6a45!important}.legacy-timeline-overlay{z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#161410db;padding:12px;display:flex;position:fixed;inset:0}.legacy-timeline-event-modal-overlay{z-index:12;background:#1917137a;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.legacy-timeline-event-modal{width:min(460px,92vw);max-height:min(76vh,620px)}.legacy-mobile-detail-overlay{z-index:5200;background:#1917137a;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.legacy-timeline-event-modal-body{gap:6px;margin-top:10px;display:grid}.legacy-timeline-event-modal-body p{margin:0}.legacy-timeline-event-modal-actions{align-items:center;gap:8px;margin-top:12px;display:flex}.legacy-popup-footer-actions.legacy-timeline-event-modal-actions{margin-top:0}.legacy-timeline-shell{background:#fffdf3;border:1px solid #d8d0bf;border-radius:10px;grid-template-rows:auto minmax(0,1fr);width:100%;height:100%;min-height:100%;max-height:100%;display:grid;overflow:hidden}.legacy-timeline-toolbar{border-bottom:1px solid #e6decd;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.legacy-timeline-toolbar-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:inline-flex}.legacy-timeline-search{align-items:center;gap:8px;min-width:min(340px,56vw);display:inline-flex}.legacy-timeline-search-input{min-width:min(280px,52vw)}.legacy-timeline-search-nav{min-width:34px;padding:0 8px;font-weight:800;line-height:1}.legacy-timeline-search-nav:disabled{opacity:.45;cursor:default}.legacy-timeline-search-count{color:#5f584f;white-space:nowrap;font-size:.74rem;font-weight:700}.legacy-timeline-toolbar-scale-controls{align-items:center;gap:8px;display:inline-flex}.legacy-timeline-zoom-controls{align-items:center;gap:6px;display:inline-flex}.legacy-timeline-zoom-label{min-width:70px}.legacy-timeline-toolbar p{color:#625c54;margin-top:2px;font-size:.73rem}.legacy-timeline-grid-wrap{overscroll-behavior:contain;touch-action:pan-x pan-y;background:#f4efe2;padding:10px;overflow:auto}.legacy-timeline-stack{gap:14px;min-width:max-content;display:grid}.legacy-timeline-day-section{background:#fffef8;border:1px solid #e6decd}.legacy-timeline-day-section-head{text-transform:uppercase;letter-spacing:.05em;background:#f8f3e8;border-bottom:1px solid #e6decd;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:.75rem;display:flex}.legacy-timeline-day-grid{min-width:max-content;display:grid}.legacy-timeline-grid-head{z-index:4;background:#f8f3e8;border:1px solid #e6decd;border-bottom:0;min-width:max-content;display:grid;position:sticky;top:0}.legacy-timeline-time-col-head,.legacy-timeline-day-head{letter-spacing:.05em;text-transform:uppercase;border-right:1px solid #e6decd;padding:8px 10px;font-size:.72rem;font-weight:700}.legacy-timeline-grid-body{border:1px solid #e6decd;min-width:max-content;display:grid}.legacy-timeline-time-col{z-index:3;background:#fcf8ef;border-right:1px solid #e6decd;position:sticky;left:0;box-shadow:2px 0 #0000000a}.legacy-timeline-time-mark{color:#6e665d;font-size:.68rem;position:absolute;left:6px;transform:translateY(-50%)}.legacy-timeline-day-col{background:#fffef8;border-right:1px solid #e6decd;position:relative}.legacy-timeline-hour-line{background:#ece4d2;height:1px;position:absolute;left:0;right:0}.legacy-timeline-now-line{z-index:5;pointer-events:none;border-top:2px solid #dc2626;height:0;position:absolute;left:0;right:0}.legacy-timeline-now-line span{color:#fff;letter-spacing:.04em;text-transform:uppercase;background:#dc2626;border-radius:999px;padding:1px 6px;font-size:.62rem;font-weight:700;position:absolute;top:-10px;left:8px}.legacy-timeline-event{text-align:left;cursor:pointer;font:inherit;color:#1f1a16;border:2px solid #4b5563;border-radius:8px;align-content:start;gap:3px;margin:0;padding:6px 8px;display:grid;position:absolute;overflow:hidden}.legacy-timeline-event.active{box-shadow:0 0 0 2px #1d1610a6}.legacy-timeline-event.is-search-highlighted{z-index:7;transform:translateZ(0);box-shadow:0 0 0 4px #fbbf24fa,0 0 0 8px #d9770680,0 12px 24px #1f1a166b;border-color:#7c2d12!important}.legacy-timeline-event-time{color:#5e584f;font-size:.68rem;font-weight:700}.legacy-timeline-event strong{overflow-wrap:anywhere;font-size:.78rem;line-height:1.2;display:block}.legacy-timeline-event small{color:#6f6a61;overflow-wrap:anywhere;font-size:.68rem;display:block}.legacy-timeline-event-host{font-weight:700;color:#3f372e!important}.legacy-timeline-event-description{white-space:normal;line-height:1.3;display:block;overflow:hidden;color:#4d463d!important}.legacy-mobile-timeline-fab{z-index:5000;color:#fff;min-height:52px;font:inherit;letter-spacing:.06em;text-transform:uppercase;background:#1f1a16;border:2px solid #fff;border-radius:999px;justify-content:center;align-items:center;padding:12px 20px;font-size:.9rem;font-weight:800;display:inline-flex;position:fixed;bottom:18px;right:12px;box-shadow:0 10px 28px #0000006b,0 0 0 2px #ffffff38}.legacy-mobile-view-bar{display:none}.legacy-popup-mini-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.legacy-popup-mini-list li{gap:1px;display:grid}.legacy-popup-mini-list strong{font-size:12px}.legacy-popup-mini-list span{color:#6c665e;font-size:11px}@media (hover:none),(pointer:coarse){.legacy-pin-hover-card{display:none}}.legacy-popup-empty{color:#7a7369;margin:12px;font-size:11px}.legacy-debug{color:#606060;font-size:.7rem}.legacy-debug summary{cursor:pointer;padding:2px 0}.festival-app{min-height:100vh;padding:24px}.festival-shell{grid-template-columns:minmax(0,1.65fr) minmax(320px,440px);gap:20px;min-height:calc(100vh - 48px);display:grid}.map-panel,.sidebar-panel{background:var(--panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:28px}.map-panel{position:relative;overflow:hidden}.sidebar-panel{flex-direction:column;display:flex;overflow:hidden}.map-header,.sidebar-header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:16px;padding:22px 24px 18px;display:flex}.eyebrow{color:var(--muted);letter-spacing:.11em;text-transform:uppercase;background:#1e1a1614;border-radius:999px;align-items:center;gap:8px;padding:6px 11px;font-size:.74rem;font-weight:700;display:inline-flex}.title-block h1,.sidebar-header h2,.venue-card h2,.modal-card h2{font-family:Iowan Old Style,Palatino Linotype,serif;line-height:.94}.title-block h1{max-width:10ch;margin-top:10px;font-size:clamp(2.2rem,4vw,4.8rem)}.title-block p,.sidebar-header p,.empty-state p,.venue-card p,.event-card p,.modal-copy p{color:var(--muted);line-height:1.45}.map-controls{gap:12px;min-width:min(100%,320px);display:grid}.control-group{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.pill,.layer-toggle,.ghost-button,.solid-button{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:999px;transition:transform .14s,background .14s,border-color .14s,color .14s}.pill,.layer-toggle,.ghost-button{color:var(--muted);background:#ffffff80}.pill,.layer-toggle{padding:10px 14px;font-size:.92rem}.pill:hover,.layer-toggle:hover,.ghost-button:hover,.solid-button:hover,.pin-button:hover{transform:translateY(-1px)}.pill.active,.layer-toggle.active{background:var(--accent-soft);color:var(--ink);border-color:#bc5c2d47}.map-stage-wrap{padding:20px}.map-stage{aspect-ratio:7967.36/6847.15;background:linear-gradient(#fffaf0eb,#e8ddc6d9),#e9dbc2;border:1px solid #5a3b1c33;border-radius:22px;width:100%;position:relative;overflow:hidden}.map-artwork{width:100%;height:100%;display:block}.map-fade{pointer-events:none;background:linear-gradient(#0000,#0d090724);height:28%;position:absolute;inset:auto 0 0}.pin-layer{position:absolute;inset:0}.pin-button{color:inherit;box-shadow:none;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:transform .14s;display:flex;position:relative;overflow:visible}.pin-button:hover,.pin-button.is-selected{z-index:100}.pin-button.is-selected{z-index:101}.pin-dot{background:var(--accent);border:2px solid #ffffffbf;border-radius:999px;flex:none;justify-content:center;align-items:center;width:28px;height:28px;transition:transform .14s,box-shadow .14s,border-color .14s;display:flex;box-shadow:0 10px 25px #321f0c33}.pin-button:hover .pin-dot{transform:scale(1.05);box-shadow:0 14px 30px #321f0c47}.pin-button.is-selected .pin-dot{border-color:#fff7e9f2;box-shadow:0 14px 30px #1d161061}.pin-label{z-index:1;max-width:240px;color:var(--ink);letter-spacing:.02em;opacity:0;pointer-events:none;text-overflow:ellipsis;background:#fff9ecfa;border-radius:999px;padding:6px 10px;font-size:.82rem;font-weight:700;transition:opacity .16s,transform .16s;position:absolute;top:50%;left:calc(100% + 8px);overflow:hidden;transform:translateY(-50%)translate(-6px);box-shadow:0 12px 24px #321f0c33}.pin-button:hover .pin-label,.pin-button.is-selected .pin-label{opacity:1;transform:translateY(-50%)translate(0)}.pin-button.is-selected .pin-label{color:#fff7e9;background:#1d1610f5}.hover-card{background:#fff8ecf5;border:1px solid #50361a2e;border-radius:22px;width:min(100%,340px);position:absolute;bottom:20px;left:20px;overflow:hidden;box-shadow:0 20px 50px #1b11072e}.hover-image,.modal-image{width:100%;position:relative;overflow:hidden}.hover-image{aspect-ratio:16/9}.modal-image{aspect-ratio:16/8}.hover-copy,.modal-copy{gap:10px;padding:16px 18px 18px;display:grid}.hover-copy h2,.modal-copy h2{font-size:clamp(1.5rem,2vw,2.4rem)}.hover-meta,.venue-meta,.event-meta,.modal-meta{flex-wrap:wrap;gap:8px;display:flex}.meta-chip,.type-chip{min-height:32px;color:var(--muted);background:#1e1a1614;border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-size:.82rem;font-weight:700;display:inline-flex}.type-chip{color:#fff}.type-music{background:var(--music)}.type-performance{background:var(--performance)}.type-installation{background:var(--installation)}.type-exhibition{background:var(--exhibition)}.type-lecture{background:var(--lecture)}.type-community{background:var(--community)}.type-object{background:var(--object);color:var(--ink)}.type-experience{background:var(--experience)}.type-dj{background:var(--dj);color:var(--ink)}.type-venue{background:var(--venue)}.type-food{background:var(--food);color:var(--ink)}.solid-button,.ghost-button{min-height:42px;padding:0 18px;font-weight:700}.solid-button{background:var(--ink);color:#fff8eb}.ghost-button{border-color:#1e1a161f}.sidebar-body{gap:16px;padding:18px;display:grid;overflow-y:auto}.sidebar-section,.venue-card,.event-card,.empty-state{border:1px solid var(--line);background:var(--panel-strong);border-radius:22px}.sidebar-section,.venue-card,.empty-state{padding:18px}.sidebar-section{gap:12px;display:grid}.filter-grid,.legend-grid{flex-wrap:wrap;gap:8px;display:flex}.venue-card{gap:12px;display:grid}.venue-image{aspect-ratio:16/10;border-radius:18px;position:relative;overflow:hidden}.schedule-stack{gap:12px;display:grid}.event-card{padding:14px}.event-button{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:0;gap:10px;display:grid}.event-heading{justify-content:space-between;align-items:start;gap:12px;display:flex}.event-heading h3{margin-top:10px;font-size:1.08rem;line-height:1.15}.event-time{color:var(--muted);white-space:nowrap;font-size:.92rem;font-weight:700}.empty-state{gap:10px;display:grid}.modal-backdrop{z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0e0a0794;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{background:#fff8ecfa;border:1px solid #4b341a2e;border-radius:28px;width:min(900px,100%);overflow:hidden;box-shadow:0 28px 80px #0e0a0757}.modal-topbar{justify-content:flex-end;padding:12px 12px 0;display:flex}.close-button{width:42px;height:42px;color:var(--ink);cursor:pointer;background:#1e1a1614;border:0;border-radius:999px;font-size:1.3rem}.modal-copy{padding-bottom:24px}.event-list-title{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.event-count{color:var(--muted);font-size:.92rem}@media (max-width:1080px){.legacy-app{height:auto}.legacy-banner{padding:8px 0 6px}.legacy-banner-title{width:100%;min-width:0}.legacy-shell{flex-direction:column;height:auto}.legacy-map-panel{height:58vh;min-height:380px}.legacy-list-panel{border-top:1px solid #ded8c8;border-left:0;width:100%;max-height:none;padding-bottom:78px}.legacy-list-controls{gap:10px;padding:10px}.legacy-search-row{grid-template-columns:1fr}.legacy-checkbox-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.legacy-filter-option{font-size:.84rem}.legacy-control-row{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.legacy-control-row .legacy-chip{text-align:center;width:100%}.legacy-map-controls{max-width:calc(100% - 20px);top:10px;right:10px}.legacy-popup{width:min(360px,86vw);max-height:52vh}.festival-shell{grid-template-columns:1fr}.title-block h1{max-width:none}.control-group{justify-content:flex-start}}@media (max-width:720px){.legacy-search-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.festival-app{padding:12px}.festival-shell{gap:12px;min-height:auto}.map-header,.sidebar-header{padding:18px}.map-stage-wrap,.sidebar-body{padding:14px}.hover-card{width:auto;bottom:12px;left:12px;right:12px}.pin-button,.pin-dot{width:24px;height:24px}.pin-label{max-width:min(180px,45vw);padding:5px 8px;font-size:.78rem;left:calc(100% + 6px)}.pin-button:hover .pin-dot{transform:none}.legacy-mobile-filters-toggle{justify-content:center;align-items:center;width:100%;font-size:.95rem;font-weight:800;display:inline-flex}.legacy-mobile-filter-body{display:none}.legacy-mobile-filter-body.is-open{display:grid}.legacy-view-switcher{display:none}.legacy-checkbox-row{grid-template-columns:repeat(2,minmax(0,1fr))}.legacy-control-row{grid-template-columns:1fr}.legacy-search{padding:10px 12px;font-size:.96rem}.legacy-filter-option{color:#262626;font-size:1rem;font-weight:600}.legacy-filter-option input{width:18px;height:18px}.legacy-map-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-auto-rows:29px;place-items:stretch stretch;gap:4px;max-width:none;display:grid;inset:auto 72px 12px 12px}.legacy-map-controls>.legacy-control-row:first-child{display:contents}.legacy-map-controls>.legacy-chip-geo{grid-area:2/1}.legacy-map-controls>.legacy-control-row:last-child{display:contents}.legacy-map-controls>.legacy-control-row:first-child .legacy-chip:first-child{grid-area:1/1}.legacy-map-controls>.legacy-control-row:first-child .legacy-chip:nth-child(2){grid-area:1/2}.legacy-map-controls>.legacy-control-row:last-child .legacy-chip{grid-area:2/2}.legacy-control-row .legacy-chip{padding:10px 12px;font-size:.98rem;font-weight:700}.legacy-map-controls .legacy-chip{text-align:center;justify-content:center;align-items:center;width:100%;height:29px;min-height:29px;padding:0 8px;font-size:.76rem;font-weight:700;line-height:1;display:inline-flex}.legacy-geo-status{display:none}.legacy-mobile-view-bar{z-index:5000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf3f5;border:1px solid #cfc8b6e6;border-radius:18px;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px;display:grid;position:fixed;bottom:12px;left:12px;right:12px;box-shadow:0 12px 28px #0000003d}.legacy-mobile-view-bar .legacy-chip{min-height:40px;padding:8px 10px;font-size:.88rem;font-weight:800}.legacy-list-title h2{font-size:1rem}.legacy-list-title span{color:#4a4a4a;font-size:.9rem}.legacy-venue-group-header{color:#4d493f;font-size:.8rem}.legacy-venue-item{font-size:1.1rem;font-weight:600;line-height:1.25}.legacy-event-item strong{font-size:.98rem}.legacy-event-item small{color:#4f4f4f;font-size:.9rem}.legacy-all-entry-copy strong{font-size:.98rem}.legacy-all-entry-copy small{color:#4f4f4f;font-size:.9rem}.legacy-time-slot-header{font-size:.9rem}.legacy-timeline-overlay{padding:8px}.legacy-timeline-shell{height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}.legacy-timeline-toolbar{align-items:stretch}.legacy-timeline-toolbar-actions{grid-template-columns:1fr;gap:8px;width:100%;margin-left:0;display:grid}.legacy-timeline-search{order:1;width:100%;min-width:0}.legacy-timeline-search-input{width:100%;min-width:0}.legacy-timeline-toolbar-scale-controls{flex-wrap:wrap;order:2}.legacy-timeline-day-grid{min-width:max-content}}
