:root { --ink:#101010; --paper:#f5f4ef; --line:#cbc9c1; --acid:#e3ff43; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Space Grotesk", Arial, sans-serif; }
button, a { font:inherit; color:inherit; }
a { text-decoration:none; }
.site-header { height:72px; display:flex; align-items:center; border-bottom:1px solid var(--ink); padding:0 4vw; gap:28px; }
.wordmark { font-size:24px; font-weight:600; letter-spacing:-.085em; line-height:1; }
.site-header p { margin:0; font:12px "DM Mono",monospace; text-transform:uppercase; letter-spacing:.03em; }.site-nav { margin-left:auto; display:flex; align-items:center; gap:16px; }.about-link, .shows-link { padding-bottom:3px; font:11px "DM Mono",monospace; text-transform:uppercase; }.site-nav a[aria-current="page"] { border-bottom:1px solid var(--ink); }
main { max-width:1280px; margin:auto; padding:0 4vw 280px; }
.intro { padding:26px 0 22px; border-bottom:1px solid var(--ink); }.eyebrow { font:11px "DM Mono",monospace; letter-spacing:.05em; margin:0; }
.filters { display:flex; align-items:center; gap:28px; flex-wrap:wrap; }.filters label { position:relative; }.filters select { appearance:none; border:0; background:transparent; color:var(--ink); cursor:pointer; font:inherit; padding:0 18px 0 8px; }.filters label::after { content:"↘"; position:absolute; right:6px; bottom:8px; pointer-events:none; }
.day { display:grid; grid-template-columns:125px 1fr; border-bottom:1px solid var(--ink); }.about-page { max-width:650px; padding:clamp(70px,12vw,150px) 0 100px; }.about-page p { max-width:590px; margin:0 0 18px; font-size:18px; line-height:1.5; letter-spacing:-.02em; }.about-page .about-lead { font-size:24px; font-weight:500; line-height:1.15; margin-bottom:26px; }.day-stamp { padding:25px 0; font-family:"DM Mono",monospace; }.day-stamp span { display:block; font-size:11px; }.day-stamp strong { display:block; margin-top:4px; font-size:30px; font-weight:400; }
.event-row { display:grid; grid-template-columns:54px minmax(270px,1.1fr) 1fr; min-height:126px; align-items:center; border-left:1px solid var(--line); position:relative; }.event-row:hover { background:var(--acid); }.event-row.is-playing { background:var(--acid); }
.listen-button { margin:0; border:0; background:transparent; cursor:pointer; }.listen-button:hover { color:#555; }
.artist { padding:18px 22px 18px 13px; }.artist a { display:block; font-size:clamp(25px,3.2vw,48px); font-weight:500; letter-spacing:-.07em; line-height:.95; }.artist a:hover { text-decoration:underline; }.artist span { display:block; margin-top:9px; font-size:11px; font-family:"DM Mono",monospace; }
.meta { align-self:stretch; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:15px; padding:18px 20px; border-left:1px solid var(--line); font:11px "DM Mono",monospace; }.music-action, .provider-link { border:0; border-bottom:1px solid var(--ink); padding:0 0 3px; background:transparent; color:var(--ink); font:10px "DM Mono",monospace; text-transform:none; cursor:pointer; }.music-action:hover, .provider-link:hover { color:#555; }
.player-backdrop { position:fixed; z-index:2; inset:0; display:none; background:rgba(16,16,16,.25); }.player-backdrop.active { display:block; }.listen-panel { position:fixed; z-index:3; right:26px; bottom:26px; width:min(650px,calc(100vw - 36px)); min-height:200px; display:none; grid-template-columns:270px 1fr 38px; background:var(--ink); color:var(--paper); box-shadow:7px 7px 0 var(--acid); }.listen-panel.active { display:grid; }.player-frame { min-height:200px; background:#222; }.player-frame iframe { display:block; width:100%; height:100%; min-height:200px; border:0; }.player-copy { align-self:center; padding:22px; }.player-copy .eyebrow { color:var(--acid); }.player-copy h2 { margin:13px 0 4px; font-size:29px; line-height:.95; letter-spacing:-.06em; }.player-track { margin:0; font:13px "DM Mono",monospace; }.close-player { position:absolute; right:0; top:0; width:38px; height:38px; border:0; background:transparent; color:white; cursor:pointer; font-size:25px; }
@media (max-width:700px) { .site-header { gap:12px; }.site-header p { display:none; }.about-page { padding:56px max(20px,5vw) 72px; }.about-page p { font-size:17px; }.about-page .about-lead { font-size:22px; }.intro { padding:26px 0 22px; }.day { grid-template-columns:59px 1fr; }.event-row { grid-template-columns:45px 1fr; }.meta { grid-column:2; border-left:0; border-top:1px solid var(--line); padding:10px 13px 14px; }.listen-panel { right:18px; bottom:18px; grid-template-columns:200px 1fr; }.player-frame { min-height:200px; }.player-copy { padding:14px; }.player-copy h2 { font-size:23px; } }

/* Live dataset controls and event details */
.filters label { border-bottom:1px solid var(--ink); padding:0 0 8px; font:11px "DM Mono",monospace; }
.filters input { border:0; background:transparent; cursor:pointer; font:inherit; padding:0 0 0 8px; color:var(--ink); }
.event-info { border:0; background:transparent; cursor:pointer; font:inherit; text-align:left; padding:0; }.event-info:hover .artist a { text-decoration:underline; }.listen-space { width:35px; height:35px; justify-self:center; }.loading { font:13px "DM Mono",monospace; padding:38px 0; }
.event-row { grid-template-columns:1fr; min-height:0; }.meta { order:-1; align-self:auto; border-left:0; border-bottom:1px solid var(--line); padding:12px 18px; }.venue-name { font-family:"Space Grotesk",Arial,sans-serif; font-size:17px; font-weight:600; letter-spacing:-.04em; }.artist-stack { padding:14px 18px; }.artist-line { display:grid; grid-template-columns:38px minmax(0, 1fr) auto; align-items:baseline; gap:8px; }.billing-label { font:10px "DM Mono",monospace; text-transform:uppercase; }.artist-line .event-info { min-width:0; }.artist-name { display:inline; font-size:clamp(25px,3.2vw,48px); font-weight:500; letter-spacing:-.07em; line-height:.95; }.artist-style, .artist-location { display:inline-block; margin-left:10px; font:10px "DM Mono",monospace; letter-spacing:0; }.artist-separator { display:inline-block; margin-left:8px; font:10px "DM Mono",monospace; }.artist-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; align-items:center; white-space:nowrap; }.support-line { margin-top:7px; }.support-line .artist-name { font-size:18px; letter-spacing:-.045em; }.unresolved-billing .artist-name, .unresolved-detail > span:first-child { font-style:italic; }.support-line .artist-style, .support-line .artist-location { font-size:9px; }.support-line .artist-actions { opacity:.82; }.artist-line .event-info:hover .artist-name { text-decoration:underline; }

@media (max-width:700px) { .event-row { grid-template-columns:1fr; }.meta { grid-column:1; }.artist-stack { padding:14px 12px; }.artist-line { position:relative; grid-template-columns:30px minmax(0, 1fr); padding-right:32px; }.artist-line .artist-location, .artist-line .artist-separator, .artist-actions .provider-link { display:none; }.artist-actions .quick-play { width:22px; height:22px; padding:0; border:1px solid var(--ink); border-radius:50%; font-size:0; line-height:1; }.artist-actions .quick-play::after { content:"▶"; font-size:9px; }.artist-actions { position:absolute; right:0; top:50%; transform:translateY(-50%); margin:0; }.artist-name { font-size:30px; }.support-line .artist-name { font-size:18px; } }
.event-detail { width:min(640px,calc(100vw - 32px)); border:1px solid var(--ink); padding:32px; background:var(--paper); color:var(--ink); box-shadow:9px 9px 0 var(--acid); }.event-detail::backdrop { background:rgba(16,16,16,.55); }.event-detail h2 { max-width:520px; font-size:clamp(46px,7vw,80px); letter-spacing:-.08em; line-height:.83; margin:18px 0 24px; }.detail-venue { font:16px "DM Mono",monospace; margin:0 0 28px; }.detail-artists { border-top:1px solid var(--ink); }.detail-artist { display:flex; justify-content:space-between; gap:15px; padding:13px 0; border-bottom:1px solid var(--line); font-size:22px; letter-spacing:-.04em; }.detail-artist > span { font:11px "DM Mono",monospace; align-self:center; }.detail-artist-identity { min-width:0; }.detail-artist-name { display:block; font:22px "Space Grotesk",Arial,sans-serif; letter-spacing:-.04em; }.detail-artist-meta { display:block; margin-top:5px; font:10px "DM Mono",monospace; letter-spacing:0; }.detail-artist-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:11px; align-items:center; }.detail-facts { display:flex; gap:20px; flex-wrap:wrap; font:11px "DM Mono",monospace; margin:25px 0; }.detail-links { display:flex; flex-wrap:wrap; gap:10px; }.detail-info, .detail-tickets { display:inline-block; border:1px solid var(--ink); padding:11px 15px; font:11px "DM Mono",monospace; }.detail-info:hover, .detail-tickets:hover { background:var(--ink); color:var(--paper); }.close-detail { position:absolute; right:12px; top:8px; border:0; background:transparent; font-size:28px; cursor:pointer; }
.date-picker { width:min(440px,calc(100vw - 32px)); border:1px solid var(--ink); padding:30px; background:var(--paper); box-shadow:8px 8px 0 var(--acid); }.date-picker::backdrop { background:rgba(16,16,16,.55); }.date-picker h2 { font-size:45px; letter-spacing:-.07em; margin:16px 0 28px; }.date-picker-form { display:grid; gap:20px; }.date-picker-form label { display:grid; gap:8px; font:11px "DM Mono",monospace; }.date-picker-form input { border:1px solid var(--ink); border-radius:0; background:transparent; padding:10px; font:15px "DM Mono",monospace; }.date-picker-actions { display:flex; justify-content:space-between; margin-top:6px; }.date-picker-actions button { border:1px solid var(--ink); background:transparent; padding:10px 13px; cursor:pointer; font:11px "DM Mono",monospace; }.date-picker-actions .apply-dates { background:var(--ink); color:var(--paper); }.close-date-picker { position:absolute; top:8px; right:12px; border:0; background:transparent; font-size:28px; cursor:pointer; }
