:root{--paper:#e8e5df;--ink:#232321;--muted:#6c6861;--line:#c9c5bc;--label:260px;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-size:13px}*{box-sizing:border-box}body{margin:0;height:100dvh;display:flex;flex-direction:column;overflow:hidden}button,input,select{font:inherit;color:inherit}button,a,summary,input,select{touch-action:manipulation}button,select,summary{cursor:pointer}button{border:0;background:transparent}a{color:inherit;text-underline-offset:3px}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #8c3c26;outline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;z-index:2000;top:-100px;left:10px;background:white;padding:12px}.skip-link:focus{top:10px}header{padding:19px 25px 12px;flex-shrink:0}.topline{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:15px}h1{font:500 25px/1.1 Georgia,serif;letter-spacing:-.7px;margin:0}h1 small{font:11px Arial,sans-serif;letter-spacing:0;margin-left:15px;color:var(--muted)}.tools{display:flex;align-items:center;gap:14px}.tools button{font-size:11px;padding:5px 0;min-height:32px}.tools button[aria-pressed=true]{text-decoration:underline;text-decoration-thickness:2px}#saved-count{font:10px monospace;margin-left:4px;color:var(--muted)}#notes{border:1px solid #aaa;border-radius:50%;height:22px;width:22px;min-height:22px;font:italic 14px Georgia}.controls{display:flex;gap:22px;align-items:center;position:relative;border-bottom:1px solid var(--line);padding-bottom:10px}.controls nav{display:flex;gap:20px}.controls nav button{padding:5px 0;font-size:12px;border-bottom:1px solid transparent;min-height:30px}.controls nav button[aria-pressed=true]{border-color:var(--ink)}.search{margin-left:auto;flex:0 1 195px}.search input{width:100%;background:transparent;border:0;border-bottom:1px solid #bbb7ad;padding:5px 0;font-size:12px;min-height:30px}.controls>details>summary{list-style:none;font-size:12px;padding:5px 0;min-height:30px}.controls>details>summary:after{content:' +';margin-left:7px}.controls>details[open]>summary:after{content:' −'}#filters{position:absolute;top:40px;right:0;width:280px;z-index:1200;background:#f4f1e9;border:1px solid #999184;padding:22px;box-shadow:0 8px 25px #0002;display:grid;gap:16px}#filters label{font-size:10px;color:var(--muted)}#filters select{display:block;width:100%;margin-top:5px;background:transparent;border:0;border-bottom:1px solid #aaa;padding:7px 0;font-size:12px}#filters>button{text-decoration:underline;font-size:11px;text-align:left;padding:8px 0}.workspace{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(350px,1fr);gap:22px;padding:0 25px 20px;flex:1;min-height:0}.browse{display:flex;flex-direction:column;min-width:0;min-height:0}.mobile-only{display:none}.timeline-scroll{overflow:auto;flex:1;min-height:0;scroll-padding-top:50px;scrollbar-width:thin}.timeline-canvas{min-width:720px}.time-ruler{display:grid;grid-template-columns:var(--label) 1fr;position:sticky;top:0;z-index:10;background:var(--paper);height:38px}.ruler-caption{position:sticky;left:0;z-index:11;background:var(--paper);padding:7px 10px 7px 0;font:9px monospace;display:flex;align-items:center;gap:15px;color:var(--muted)}.ruler-caption select{background:transparent;border:0;font:9px monospace;max-width:115px}.axis{position:relative;margin-right:12px;border-bottom:1px solid #aaa}.axis span{position:absolute;top:8px;transform:translateX(-50%);font:9px monospace;white-space:nowrap}.axis span:first-child{transform:none}.axis span:last-child{transform:translateX(-100%)}.axis .midnight{font-weight:700}.event-row{display:grid;grid-template-columns:var(--label) 1fr;min-height:155px;position:relative;padding-block:12px}.event-label{display:flex;position:sticky;left:0;z-index:3;gap:13px;padding:0 18px 0 0;background:var(--paper);min-width:0}.flyer-thumb{width:85px;flex:0 0 85px;display:flex;align-items:center;justify-content:center;background:#151515;padding:0;overflow:hidden;align-self:center;transform:rotate(var(--tilt,0deg));box-shadow:1px 2px 5px #0002}.flyer-thumb img{display:block;width:100%;height:125px;object-fit:contain}.no-flyer{display:none}.event-name{flex:1;min-width:0;text-align:left;padding:0;align-self:center}.event-name h2{font-size:15px;line-height:1.2;letter-spacing:-.35px;margin:6px 0;font-weight:600;overflow-wrap:anywhere}.event-name p{font-size:10px;line-height:1.45;color:var(--muted);margin:5px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-tags{font:9px/1.4 monospace;color:#655d52;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-price{font-size:11px;font-weight:500;display:block;line-height:1.5;color:#5c554d}.event-row.is-selected .event-name h2{text-decoration:underline;text-decoration-color:var(--event-color,#9d593c);text-decoration-thickness:2px;text-underline-offset:4px}.track{position:relative;margin-right:12px;background:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--grid-step,16.666666%) - 1px),#b7b2a63a calc(var(--grid-step,16.666666%) - 1px),#b7b2a63a var(--grid-step,16.666666%));min-width:0;display:flex;align-items:center}.time-bar{position:absolute;left:var(--start);width:var(--width);height:33px;min-width:8px;background:color-mix(in srgb,var(--event-color,#ada392) 22%,var(--paper));border:1px solid color-mix(in srgb,var(--event-color,#ada392) 60%,#aaa);text-align:left;padding:0 8px;z-index:1;white-space:nowrap;font:10px monospace;color:#24201b}.is-selected .time-bar{border:2px solid var(--event-color,#8c3c26)}.time-bar.open-ended{border-right:0;border-style:dashed;background:transparent}.time-bar.open-ended:after{content:'→';position:absolute;right:0;top:0;bottom:0;width:26px;display:grid;place-items:center;background:var(--paper);font-size:18px}.track-meta{position:absolute;left:var(--start);top:calc(50% + 24px);font:9px monospace;color:#6e6658;max-width:calc(100% - var(--start));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overlap-tag{position:absolute;left:var(--start);top:calc(50% - 37px);font:9px monospace;color:#795d45}.row-save{position:absolute;right:5px;bottom:12px;z-index:2;font:19px Georgia;padding:4px;min-width:30px;height:30px;color:#777}.row-save[aria-pressed=true]{color:#9a341f}.poster-wall{padding:24px 15px 24px 4px;overflow:auto;flex:1;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px;align-content:start}.poster-card{position:relative;min-width:0}.poster-card>button:first-child{display:block;background:#151515;width:100%;padding:0;transform:rotate(var(--tilt,0deg));box-shadow:2px 3px 7px #0003}.poster-card img{width:100%;aspect-ratio:3/4;object-fit:contain;display:block}.poster-card h2{font-size:13px;font-weight:500;line-height:1.3;margin:13px 0 4px}.poster-card p{font:9px/1.5 monospace;margin:0;color:#676159}.poster-card .row-save{bottom:auto;top:5px;right:5px;background:#ece8dfed;z-index:1}.poster-failed img{display:none}.poster-failed:after{content:'Flyer unavailable';font:11px monospace;display:block;padding:25px 10px;color:#aaa}.poster-wall-note{grid-column:1/-1;font:10px monospace;margin:0;color:var(--muted)}.poster-card.is-selected h2{text-decoration:underline;text-underline-offset:4px}.map-panel{min-width:0;min-height:0;display:flex;flex-direction:column}.map-container{position:relative;min-height:210px;flex:0 0 48%;border:1px solid #c8c3b9}.map-container #map{height:100%;width:100%;background:#dedbd2}.leaflet-tile-pane{filter:saturate(.2)}.leaflet-control-attribution{font-size:9px!important}.leaflet-control-zoom a{border-radius:0!important}.venue-pin{background:#343431;border:2px solid #f9f6ef;border-radius:50%;display:grid;place-items:center;font:10px monospace;box-shadow:0 1px 5px #0003;color:white}.venue-pin.selected{background:#a94726;outline:3px solid #fffc;z-index:1000!important}.venue-pin.shared{width:23px!important;height:23px!important}.fit-map,.back{position:absolute;z-index:500;top:12px;right:12px;background:#f4f1e9eF;font-size:10px;padding:7px 10px;border:1px solid #aaa}.back{top:auto;bottom:25px;right:10px}.map-error{position:absolute;z-index:500;left:8px;right:8px;bottom:20px;background:#fff9e5;border:1px solid #aaa;font-size:11px;padding:8px;margin:0}.venue-list{flex-shrink:0;font-size:10px;max-height:155px;overflow:auto;border-bottom:1px solid var(--line)}.venue-list summary{padding:9px 0;color:var(--muted)}#map-count{font:9px monospace;margin-left:5px}.venue-group{padding:8px 5px;border-top:1px solid var(--line)}.venue-group strong{display:block;font-size:11px;margin-bottom:4px}.venue-group button{padding:6px 0;text-align:left;text-decoration:underline;display:block;font-size:11px}.venue-group small{color:#7b6253}.event-detail{flex:1;min-height:0;overflow:auto;padding:18px 0 0}.detail-top{display:grid;grid-template-columns:125px 1fr;gap:18px}.detail-top.no-art{grid-template-columns:1fr}.detail-art{display:block;align-self:start;padding:0;background:#181818;transform:rotate(-1deg)}.detail-art img{width:100%;max-height:190px;object-fit:contain;display:block}.detail-top h2{font:500 23px/1.05 Arial,sans-serif;letter-spacing:-.8px;margin:5px 0 12px}.detail-tags{display:flex;flex-wrap:wrap;gap:5px 10px;font:9px monospace;margin:0 0 9px;color:#655c50}.detail-tags span{border-bottom:1px solid #b9b2a6;padding-bottom:2px}.detail-hours{font:11px/1.5 monospace;margin:5px 0}.detail-price{font-size:14px;margin:7px 0}.detail-venue{font-size:11px;margin:10px 0 4px}.detail-venue strong{font-weight:500;display:block;margin-bottom:4px}.detail-venue small{display:block;color:var(--muted);line-height:1.5;margin-top:3px}.detail-actions{display:flex;flex-wrap:wrap;gap:14px;margin:15px 0}.detail-actions a,.detail-actions button{display:inline-flex;align-items:center;min-height:32px;font-size:11px;padding:4px 0;text-decoration:underline;text-underline-offset:4px}.detail-caveats{font-size:11px;line-height:1.7;border-top:1px solid var(--line);padding-top:5px}.detail-caveats summary{padding:5px 0}.detail-caveats p{margin:10px 0}.detail-caveats ul{padding-left:17px}.detail-caveats li{margin:6px 0}.detail-lineup{font-size:11px;line-height:1.5;color:#676159}.venue-related{font:9px monospace;margin-top:10px;border-top:1px solid var(--line);padding-top:9px}.venue-related button{display:block;font:11px/1.5 Arial,sans-serif;text-align:left;text-decoration:underline;padding:5px 0}.empty{padding:50px 20px;text-align:center;font-size:14px}.empty button{text-decoration:underline}dialog{background:#efebe3;color:var(--ink);border:1px solid #aaa;max-width:min(650px,calc(100% - 24px));max-height:90dvh;overflow:auto;padding:27px}dialog::backdrop{background:#16150f9c}.close{position:sticky;float:right;top:0;z-index:2;background:#efebe3;font:24px Arial;width:32px;height:32px;margin:-13px -13px 5px 12px}#poster-dialog{background:#141414;color:white;width:auto;padding:20px;max-width:95vw}#poster-dialog figure{margin:0}#poster-dialog img{max-width:85vw;max-height:80dvh;object-fit:contain;display:block}#poster-dialog figcaption{font-size:11px;padding-top:8px}#share-url{display:block;width:100%;min-width:240px;margin-top:15px;padding:10px}#notes-dialog{font-size:13px;line-height:1.7}#notes-dialog h2{margin-top:5px}#toast{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:3000;background:#222;color:white;padding:10px 16px;font:12px monospace;opacity:0;pointer-events:none;max-width:90vw}#toast.visible{opacity:1}.image-fallback{font:11px monospace;color:var(--muted);padding:10px}
@media(min-width:1500px){:root{--label:310px}.event-name h2{font-size:17px}.flyer-thumb{width:100px;flex-basis:100px}.flyer-thumb img{height:140px}.event-row{min-height:175px}}
@media(max-width:1150px){:root{--label:230px}.workspace{grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);gap:17px;padding-inline:18px}.flyer-thumb{width:75px;flex-basis:75px}.event-name h2{font-size:14px}.poster-wall{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-top{grid-template-columns:105px 1fr}}
@media(max-width:850px){:root{--label:205px}header{padding:14px 14px 9px}.topline{gap:8px;margin-bottom:9px}h1{font-size:24px}h1 small{font-size:9px;display:block;margin:5px 0 0}.tools{gap:12px}.tools button{font-size:10px}.controls{gap:16px;padding-bottom:6px}.controls nav{gap:15px}.controls nav button{font-size:11px}.search{flex:1;min-width:0}.search input{font-size:11px}.controls>details>summary{font-size:11px}.workspace{display:flex;flex:1;min-height:0;padding:0 14px 12px}.browse{flex:1}.mobile-only{display:inline-block}.map-panel{display:none;width:100%;height:100%}body[data-view=map] .browse{display:none}body[data-view=map] .map-panel{display:flex}.timeline-canvas{min-width:650px}.event-row{min-height:149px}.event-label{gap:11px;padding-right:14px}.flyer-thumb{width:73px;flex-basis:73px}.flyer-thumb img{height:112px}.event-name h2{font-size:13px;letter-spacing:-.2px}.event-name p{font-size:9px}.event-price{font-size:10px}.poster-wall{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 20px;padding:22px 6px}.poster-card h2{font-size:12px}.poster-card p{font-size:9px}.map-container{flex-basis:48%;min-height:180px}.event-detail{padding-top:15px}.detail-top h2{font-size:21px}.venue-list{max-height:130px}.detail-top{grid-template-columns:115px 1fr}#event-dialog{padding:24px 18px;width:calc(100% - 20px);max-height:92dvh}#event-dialog .detail-top{grid-template-columns:110px 1fr}#event-dialog .detail-art img{max-height:220px}.detail-caveats{font-size:12px}.controls nav{gap:13px}#filters{width:270px}}
@media(max-width:370px){.controls{gap:10px}.controls nav{gap:10px}.tools{gap:8px}.search{flex-basis:60px}.controls nav button{font-size:10px}.detail-top{grid-template-columns:95px 1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.flyer-thumb img{height:auto;max-height:125px}.poster-wall{display:block;padding:20px 15px 20px 4px}.poster-grid{columns:3;column-gap:25px}.poster-card{display:inline-block;width:100%;break-inside:avoid;margin-bottom:30px}.poster-card img{aspect-ratio:auto;height:auto}.poster-card h2 button{padding:0;text-align:left;font:inherit}.poster-wall-note{padding-top:12px}.ruler-caption [data-notes]{padding:2px 5px;font:italic 10px Georgia;border:1px solid #aaa;border-radius:50%;margin-left:5px;width:17px;height:17px}.track .time-bar{overflow:hidden}.poster-card h2{padding-right:4px}.flyer-thumb{background:transparent}
@media(max-width:1150px){.poster-grid{columns:2}.flyer-thumb img{height:auto;max-height:125px}}@media(max-width:850px){.poster-wall{padding:20px 7px}.poster-grid{column-gap:22px}.flyer-thumb img{height:auto;max-height:115px}.poster-card{margin-bottom:28px}}

@media(max-width:850px){:root{--label:170px}.timeline-canvas{min-width:0}.event-label{gap:10px;padding-right:11px}.flyer-thumb{width:62px;flex-basis:62px}.flyer-thumb img{max-height:105px}.event-name h2{font-size:12px}.event-name p{font-size:8px}.event-price{font-size:9px}.time-bar{font-size:9px;padding-inline:3px}.axis span{font-size:8px}.ruler-caption{font-size:8px;gap:6px}.ruler-caption select{font-size:8px;max-width:91px}.overlap-tag{font-size:8px}.track-meta{font-size:8px}}
.overlap-tag{display:none}
.detail-caveats{border-top:1px solid var(--line);font-size:11px;line-height:1.6;padding-top:0}
.detail-caveats>summary{padding:13px 0;font:italic 15px Georgia,serif;list-style:none;display:flex;justify-content:space-between;align-items:center}
.detail-caveats>summary::after{content:'+';font:15px Arial,sans-serif;color:var(--muted)}
.detail-caveats[open]>summary::after{content:'−'}
.detail-body{padding:1px 1px 22px}
.ticket-section{margin-bottom:25px}
.ticket-section h3,.ticket-title{font:500 18px Georgia,serif;letter-spacing:-.25px;margin:5px 0 8px}
.ticket-table{width:100%;table-layout:fixed;border-collapse:collapse;text-align:left;font-size:11px;line-height:1.5}
.ticket-table caption{text-align:left;padding:2px 0 13px}
.ticket-title{display:inline-block;margin-right:14px}
.ticket-table caption>a,.ticket-section>a{font:10px Arial,sans-serif}
.ticket-check{display:block;font:9px/1.6 monospace;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}
.ticket-table thead th{padding:0 14px 9px 0;border-bottom:1px solid #a9a397;font:10px monospace;color:var(--muted);font-weight:400}
.ticket-table th:first-child{width:42%}
.ticket-table tbody th,.ticket-table tbody td{vertical-align:top;padding:14px 14px 15px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere;word-break:normal}
.ticket-table tbody th{font-weight:400}
.ticket-table tbody td{padding-right:0}
.tier-total{display:block;font-size:14px;line-height:1.3;letter-spacing:-.2px;font-weight:500;font-variant-numeric:tabular-nums}
.tier-bundle,.tier-condition{display:block;margin-top:5px;font-size:10px;line-height:1.5}
.tier-fee,.tier-note{display:block;margin-top:5px;font-size:10px;line-height:1.55;color:var(--muted)}
.tier-status{display:block;margin-top:6px;font:italic 11px Georgia,serif;color:#77614f}
.tier-inactive .tier-total{color:var(--muted);font-size:12px}
.ticket-note{margin:13px 0!important;font-size:10px;line-height:1.7;color:#5e584f}
.ticket-footnote{font:9px/1.7 monospace;color:var(--muted);margin:11px 0 0!important}
.event-facts{display:grid;grid-template-columns:76px minmax(0,1fr);gap:13px 15px;margin:24px 0;font-size:11px;line-height:1.65}
.event-facts dt{font:10px/1.8 monospace;color:var(--muted)}
.event-facts dd{margin:0;min-width:0;overflow-wrap:anywhere}
.detail-map-note{font-size:10px;color:var(--muted);line-height:1.6;margin-bottom:17px!important}
.detail-source-links{display:flex;flex-wrap:wrap;gap:10px 16px;margin:20px 0;font-size:10px;line-height:1.6}
.earlier-research{border-top:1px solid var(--line);padding-top:9px;font-size:10px;color:var(--muted);line-height:1.7}
.earlier-research summary{padding:5px 0!important;font:10px monospace}
@media(max-width:850px){.detail-body{padding-bottom:9px}.ticket-table{font-size:12px}.ticket-table th:first-child{width:40%}.ticket-table tbody th,.ticket-table tbody td{padding-block:15px}.ticket-table tbody th{padding-right:14px}.tier-total{font-size:15px}.tier-bundle,.tier-condition,.tier-fee,.tier-note,.ticket-note{font-size:11px}.event-facts{grid-template-columns:67px minmax(0,1fr);gap:13px 13px;font-size:12px}.detail-source-links{font-size:11px}}
@media(max-width:370px){.axis span{display:none}.axis span:first-child,.axis span:nth-child(4),.axis span:last-child{display:block}}

#poster-dialog img{width:min(85vw,var(--full-width),calc(80dvh * var(--full-ratio)));height:auto;aspect-ratio:var(--full-ratio)}
