@font-face{font-family:Oswald;src:url('./assets/oswald.ttf') format('truetype');font-display:swap}
@font-face{font-family:Work;src:url('./assets/work-sans.ttf') format('truetype');font-display:swap}
@font-face{font-family:Plex;src:url('./assets/ibm-plex-mono.ttf') format('truetype');font-display:swap}
:root{--bg:#f4f0e5;--surface:#fffaf0;--ink:#20231f;--muted:#52574f;--accent:#f36b42;--accent-ink:#20231f;--line:#b8bbad;--dark:#20231f;--cream:#f4f0e5;--ease:cubic-bezier(.22,1,.36,1)}
[hidden]{display:none!important}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Work,Arial,sans-serif;font-size:16px;line-height:1.55;overflow-x:clip}button,input,select{font:inherit}button,a,select,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus,input:focus,select:focus,a:focus{outline:2px solid var(--accent);outline-offset:3px}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:active,a:active{transform:scale(.97)}.shell{width:min(100% - 64px,1320px);margin-inline:auto}.eyebrow{font-family:Plex,monospace;font-size:12px;font-weight:600;letter-spacing:.11em;line-height:1.4}.site-header{background:var(--dark);color:var(--cream);border-bottom:1px solid #606359}.header-inner{min-height:76px;display:flex;justify-content:space-between;align-items:center;gap:24px}.wordmark{display:flex;align-items:center;gap:12px;min-height:48px;font-family:Oswald,Impact,sans-serif;font-size:20px;font-weight:700;line-height:.88;letter-spacing:.015em}.wordmark .mark{display:grid;place-items:center;position:relative;width:40px;height:40px;border:2px solid var(--accent);font-size:14px;letter-spacing:-.08em}.mark span{color:var(--accent);font-size:6px;padding:0 2px}.wordmark-dot{color:var(--accent)}.header-nav{display:flex;gap:34px;align-items:center}.header-nav a{min-height:44px;display:inline-flex;align-items:center;gap:16px;font-family:Plex,monospace;font-size:12px;letter-spacing:.045em;border-bottom:1px solid transparent;transition:color .2s var(--ease),border-color .2s var(--ease)}.header-nav a span{color:var(--accent)}
.hero{background:var(--dark);color:var(--cream);overflow:clip}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(430px,.86fr);align-items:center;gap:32px;min-height:565px;padding-block:44px 48px}.hero-copy{position:relative;z-index:1}.hero-eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 22px;color:#c7cbbb}.signal-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px #f36b422b}.eyebrow-line{height:1px;width:34px;background:#a0a498}.hero h1{font-family:Oswald,Impact,sans-serif;font-size:clamp(80px,8.9vw,144px);line-height:.91;letter-spacing:-.04em;font-weight:600;margin:0 0 24px;white-space:nowrap}.hero h1 em{font-style:normal;color:var(--accent)}.hero-description{font-size:18px;line-height:1.52;max-width:480px;color:#e1dfd3;margin:0 0 24px}.primary-link{display:inline-flex;align-items:center;justify-content:space-between;gap:52px;min-height:50px;padding:12px 18px 12px 22px;background:var(--accent);color:var(--accent-ink);font-family:Plex,monospace;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border:2px solid var(--accent);transition:background .2s var(--ease),color .2s var(--ease),transform .2s var(--ease)}.primary-link span{font-size:20px;font-weight:400;line-height:1}
.cassette-stage{position:relative;display:grid;place-items:center;min-height:405px;isolation:isolate}.cassette-stage:before{content:'';position:absolute;inset:8% 4%;border:1px solid #5d6157;transform:rotate(3deg);pointer-events:none}.stage-caption{position:absolute;font:600 11px Plex,monospace;letter-spacing:.12em;color:#b7bbaf}.stage-caption-top{top:0;right:3%}.stage-caption-bottom{bottom:0;left:3%}.cassette{position:relative;width:min(100%,560px);aspect-ratio:1.72;background:var(--accent);color:var(--ink);border:5px solid #171c18;border-radius:16px 16px 25px 25px;box-shadow:14px 16px 0 #10130f,18px 20px 0 #6e766a;transform:rotate(-5deg);padding:18px 22px;animation:cassette-arrive .7s var(--ease) both}.cassette:after{content:'';position:absolute;bottom:-3px;left:20%;width:60%;height:16%;background:#20231f;clip-path:polygon(9% 0,91% 0,100% 100%,0 100%);z-index:0}.cassette-topline,.cassette-bottom{display:flex;justify-content:space-between;align-items:center;font:700 11px Plex,monospace;letter-spacing:.05em}.cassette-label{background:#f4f0e5;border:3px solid var(--ink);margin-top:10px;height:34%;display:grid;grid-template-rows:auto 1fr auto;align-items:center;padding:6px 15px 3px;position:relative;overflow:hidden}.cassette-label:after{content:'';position:absolute;right:0;top:0;bottom:0;width:18%;background:repeating-linear-gradient(0deg,var(--ink) 0 2px,transparent 2px 11px);opacity:.65}.cassette-label-small,.cassette-label-bottom{font:700 10px Plex,monospace;letter-spacing:.08em}.cassette-label strong{font:700 clamp(27px,4vw,55px)/.9 Oswald,sans-serif;letter-spacing:-.02em}.cassette-window{height:36%;margin:10px 9% 7px;background:#151a16;border:4px solid #f4f0e5;border-radius:70px;display:flex;align-items:center;justify-content:space-around;position:relative;overflow:hidden}.cassette-window:before,.cassette-window:after{content:'';position:absolute;inset:0;border-top:1px solid #85877c;border-bottom:1px solid #85877c;border-radius:70px;pointer-events:none}.reel{width:76px;aspect-ratio:1;border:10px solid #e6dfcf;border-radius:50%;background:conic-gradient(from 0deg,#f4f0e5 0 12deg,#697168 12deg 76deg,#f4f0e5 76deg 101deg,#697168 101deg 163deg,#f4f0e5 163deg 187deg,#697168 187deg 250deg,#f4f0e5 250deg 274deg,#697168 274deg 338deg,#f4f0e5 338deg);display:grid;place-items:center;position:relative;z-index:1;animation:reel-turn 12s linear infinite}.reel i{width:19px;height:19px;border-radius:50%;background:#151a16;border:4px solid #e6dfcf}.tape-bridge{position:absolute;width:40%;height:32%;border-block:3px solid #5a5c52}.cassette-bottom{position:relative;z-index:1;font-size:10px}.cassette-screws{position:absolute;left:14px;right:14px;bottom:13px;display:flex;justify-content:space-between;font-size:15px;font-weight:700;line-height:1}.hero-ticker{height:40px;display:flex;align-items:center;justify-content:space-around;gap:30px;background:var(--accent);color:var(--ink);font:700 12px Plex,monospace;letter-spacing:.06em;white-space:nowrap;overflow:hidden}.hero-ticker b{font-size:17px;line-height:1}
.lineup{padding-block:95px 130px;scroll-margin-top:20px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:37px}.section-heading .eyebrow{margin:0 0 10px}.section-heading h2{font:600 clamp(48px,5vw,74px)/1.02 Oswald,sans-serif;letter-spacing:-.035em;margin:0}.title-period{color:var(--accent)}.section-heading>p{max-width:340px;margin:0 0 3px;color:var(--muted);font-size:17px;line-height:1.55}.control-board{background:#e9e6da;border:2px solid var(--ink);display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(180px,.8fr) auto;gap:0;align-items:stretch}.field{padding:14px 18px 16px;border-right:2px solid var(--ink)}.field label{display:block;font:700 11px Plex,monospace;letter-spacing:.11em;text-transform:uppercase;margin-bottom:5px}.input-wrap{display:flex;align-items:center;gap:10px}.input-wrap svg{width:21px;height:21px;fill:none;stroke:var(--ink);stroke-width:1.8;flex:none}.field input,.field select{width:100%;min-height:38px;border:0;background:transparent;color:var(--ink);font-size:17px;outline-offset:1px}.field input::placeholder{color:#666b62;opacity:1}.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='m4 7 6 6 6-6' fill='none' stroke='%2320231f' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right center;padding-right:28px;cursor:pointer}.saved-toggle{min-width:180px;display:flex;align-items:center;justify-content:center;gap:11px;border:0;background:var(--ink);color:var(--cream);font:700 13px Plex,monospace;text-transform:uppercase;letter-spacing:.04em;padding:14px 18px;transition:background .2s var(--ease),color .2s var(--ease)}.saved-toggle[aria-pressed=true]{background:var(--accent);color:var(--ink)}.saved-symbol{font-size:20px;line-height:1}.saved-count{display:grid;place-items:center;min-width:25px;height:25px;border:1px solid currentColor;border-radius:50%;font-size:11px}.results-line{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:3px solid var(--ink);padding-block:25px 12px;font:600 11px Plex,monospace;letter-spacing:.08em;text-transform:uppercase}.results-line p{margin:0}.results-line span{color:var(--muted)}
.day-group{padding-top:44px}.day-heading{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:end;margin-bottom:18px}.day-name{display:flex;align-items:baseline;gap:20px}.side-badge{font:700 13px Plex,monospace;background:var(--ink);color:var(--cream);padding:8px 11px;letter-spacing:.06em}.day-heading h3{font:600 clamp(35px,3.8vw,54px)/1 Oswald,sans-serif;letter-spacing:-.025em;margin:0}.day-heading>span{font:600 12px Plex,monospace;letter-spacing:.05em;color:var(--muted);padding-bottom:4px}.event-row{display:grid;grid-template-columns:118px minmax(0,1fr) 195px 56px;gap:24px;align-items:center;min-height:132px;border-top:1px solid var(--line);position:relative;transition:background .18s var(--ease),padding .18s var(--ease)}.event-row:last-child{border-bottom:1px solid var(--line)}.event-row:focus-within{background:#ece9dc}.event-time{font:600 17px Plex,monospace;align-self:start;padding-top:29px}.event-main{padding-block:21px}.event-category{font:700 10px Plex,monospace;letter-spacing:.11em;text-transform:uppercase;color:#a3452d}.event-main h4{font:600 clamp(24px,2.3vw,34px)/1.13 Oswald,sans-serif;letter-spacing:-.022em;margin:5px 0 7px}.event-main p{margin:0;color:var(--muted);font-size:15px;line-height:1.45;max-width:600px}.event-facts{display:flex;flex-direction:column;gap:5px;font-size:13px;line-height:1.35;color:var(--muted)}.event-facts strong{font-size:14px;color:var(--ink);font-weight:600}.event-open{width:48px;height:48px;display:grid;place-items:center;border:2px solid var(--ink);background:transparent;color:var(--ink);font-size:24px;line-height:1;transition:background .18s var(--ease),color .18s var(--ease),transform .18s var(--ease)}.event-open:focus,.event-open:focus-visible{outline-offset:3px}.empty-state{padding:70px 20px 84px;text-align:center;border-bottom:2px solid var(--ink)}.empty-state[hidden]{display:none}.empty-glyph{display:block;font:600 94px/1 Oswald,sans-serif;color:var(--accent)}.empty-state h3{font:600 42px/1 Oswald,sans-serif;margin:7px 0}.empty-state p{margin:0 auto 23px;color:var(--muted)}.empty-state button{min-height:48px;background:var(--ink);color:var(--cream);border:2px solid var(--ink);padding:12px 22px;font:700 13px Plex,monospace;text-transform:uppercase;transition:background .2s var(--ease),color .2s var(--ease)}
.outro{background:#d9d9c8;border-top:2px solid var(--ink);overflow:clip}.outro-inner{padding-block:105px 116px;display:grid;grid-template-columns:1.3fr .7fr;gap:50px;align-items:end}.outro .eyebrow{margin:0 0 21px}.outro h2{font:600 clamp(52px,6.5vw,94px)/.99 Oswald,sans-serif;letter-spacing:-.035em;margin:0}.outro h2 em{font-style:normal;color:#a3452d}.outro-copy{max-width:350px}.outro-copy p{font-size:18px;line-height:1.55;margin:0 0 20px}.outro-copy a{display:inline-flex;align-items:center;gap:30px;min-height:44px;border-bottom:2px solid var(--ink);font:700 12px Plex,monospace;text-transform:uppercase;letter-spacing:.04em;transition:color .2s var(--ease),border-color .2s var(--ease)}.site-footer{background:var(--ink);color:var(--cream)}.footer-inner{min-height:86px;display:flex;justify-content:space-between;align-items:center;gap:20px;font:600 11px Plex,monospace;letter-spacing:.08em}.footer-inner a{display:inline-flex;align-items:center;min-height:44px;transition:color .2s var(--ease)}
.detail-dialog{width:min(720px,calc(100% - 32px));max-height:min(90vh,900px);padding:0;border:2px solid var(--ink);background:var(--surface);color:var(--ink);box-shadow:12px 12px 0 var(--ink);overflow-y:auto}.detail-dialog::backdrop{background:rgba(17,20,16,.74)}.detail-top{background:var(--accent);display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:9px 20px;border-bottom:2px solid var(--ink);gap:14px}.detail-kicker{font:700 12px Plex,monospace;letter-spacing:.1em;text-transform:uppercase}.close-detail{display:inline-flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;border:2px solid var(--ink);background:var(--surface);padding:7px 12px 7px 16px;font:700 12px Plex,monospace;text-transform:uppercase;transition:background .2s var(--ease)}.close-detail span{font:400 25px/1 Work,sans-serif}.detail-body{padding:32px 38px 38px}.detail-side{font:700 12px Plex,monospace;letter-spacing:.1em;color:#a3452d}.detail-body h2{font:600 clamp(44px,5.2vw,72px)/1.02 Oswald,sans-serif;letter-spacing:-.03em;margin:12px 0 13px}.detail-summary{font-size:18px;line-height:1.52;max-width:560px;margin:0 0 23px}.detail-meta{display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--ink);border-left:1px solid var(--line)}.detail-meta div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:11px 12px}.detail-meta dt{font:700 10px Plex,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.detail-meta dd{margin:0;font-size:15px;font-weight:600}.liner-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--ink);margin-top:26px;padding-bottom:8px;font:700 12px Plex,monospace;letter-spacing:.08em}.liner-heading span:last-child{font-size:19px;color:#a3452d}.detail-story{padding-block:15px 17px}.detail-story p{font-size:16px;line-height:1.6;max-width:60ch;margin:0 0 12px}.save-button{width:100%;display:flex;align-items:center;justify-content:space-between;min-height:54px;padding:12px 18px;background:var(--ink);color:var(--cream);border:2px solid var(--ink);font:700 13px Plex,monospace;text-transform:uppercase;letter-spacing:.06em;transition:background .2s var(--ease),color .2s var(--ease)}.save-button[aria-pressed=true]{background:var(--accent);color:var(--ink)}.save-button span:last-child{font-size:20px}
@keyframes cassette-arrive{from{opacity:0;transform:translate(25px,16px) rotate(-8deg)}to{opacity:1;transform:rotate(-5deg)}}@keyframes reel-turn{to{transform:rotate(360deg)}}
@media (hover:hover) and (pointer:fine){.wordmark:hover{color:var(--accent)}.header-nav a:hover{color:var(--accent);border-color:var(--accent)}.primary-link:hover{background:var(--cream);border-color:var(--cream);transform:translateY(-2px)}.saved-toggle:hover{background:#383d36}.saved-toggle[aria-pressed=true]:hover{background:#ff815b}.event-row:hover{background:#eae7dc;padding-inline:10px}.event-row:hover .event-open{background:var(--accent)}.event-open:hover{background:var(--accent);transform:rotate(45deg)}.empty-state button:hover{background:var(--accent);color:var(--ink)}.outro-copy a:hover{color:#a3452d;border-color:#a3452d}.footer-inner a:hover{color:var(--accent)}.close-detail:hover{background:var(--cream)}.save-button:hover{background:#383d36}.save-button[aria-pressed=true]:hover{background:#ff815b}.field select:hover,.field input:hover{color:#a3452d}}
@media(max-width:1050px){.hero-grid{grid-template-columns:1fr .9fr;gap:22px}.hero h1{font-size:clamp(67px,8.5vw,110px)}.cassette-stage{min-height:350px}.cassette{padding:13px 16px}.cassette-window .reel{width:58px;border-width:7px}.cassette-label strong{font-size:40px}.event-row{grid-template-columns:90px minmax(0,1fr) 145px 48px;gap:16px}}
@media(max-width:760px){.shell{width:calc(100% - 40px)}.header-inner{min-height:64px}.wordmark{font-size:16px}.wordmark .mark{width:34px;height:34px;font-size:11px}.header-nav{gap:12px}.header-nav a{font-size:10px;gap:4px}.header-nav a:nth-child(2){display:none}.hero-grid{display:flex;flex-direction:column;align-items:stretch;gap:11px;min-height:0;padding-block:40px 37px}.hero-eyebrow{font-size:10px;gap:6px;margin-bottom:15px;white-space:nowrap}.eyebrow-line{width:15px}.hero h1{font-size:clamp(64px,17vw,104px);margin-bottom:15px}.hero-description{font-size:16px;line-height:1.5;margin-bottom:19px}.primary-link{min-height:48px;padding-block:10px}.cassette-stage{min-height:245px;margin-top:10px}.cassette{width:min(330px,90%);padding:9px 12px;border-width:4px;box-shadow:8px 9px 0 #10130f,11px 12px 0 #6e766a}.cassette-topline,.cassette-bottom{font-size:7px}.cassette-label{margin-top:6px;border-width:2px;padding:3px 8px}.cassette-label strong{font-size:29px}.cassette-label-small,.cassette-label-bottom{font-size:6px}.cassette-window{margin-top:6px;margin-bottom:3px;border-width:3px}.cassette-window .reel{width:44px;border-width:5px}.cassette-window .reel i{width:13px;height:13px;border-width:3px}.cassette-screws{bottom:6px;font-size:10px}.stage-caption{font-size:8px}.hero-ticker{height:32px;font-size:9px;justify-content:flex-start;padding-inline:15px}.lineup{padding-block:68px 82px}.section-heading{display:block;margin-bottom:24px}.section-heading h2{font-size:49px}.section-heading>p{font-size:15px;margin-top:10px}.control-board{grid-template-columns:1fr 1fr}.search-field{grid-column:1/-1;border-right:0;border-bottom:2px solid var(--ink)}.category-field{border-right:2px solid var(--ink)}.field{padding:10px 12px}.field label{font-size:10px}.field input,.field select{font-size:16px}.saved-toggle{min-width:0;font-size:11px;padding:10px 7px;gap:6px}.saved-count{min-width:23px;height:23px;font-size:10px}.results-line{font-size:10px;padding-top:19px}.results-line span{display:none}.day-group{padding-top:32px}.day-heading{align-items:end}.day-name{gap:10px}.side-badge{font-size:10px;padding:7px 8px}.day-heading h3{font-size:37px}.day-heading>span{font-size:10px}.event-row{grid-template-columns:66px minmax(0,1fr) 44px;gap:10px;min-height:129px}.event-time{font-size:12px;padding-top:26px}.event-main{padding-block:17px}.event-category{font-size:9px}.event-main h4{font-size:25px;margin:4px 0 7px}.event-main p{font-size:13px;line-height:1.4}.event-facts{grid-column:2;grid-row:2;display:flex;flex-direction:row;gap:8px;padding-bottom:15px;font-size:11px}.event-facts strong{font-size:11px}.event-open{grid-column:3;grid-row:1/3;width:42px;height:44px;font-size:21px}.outro-inner{padding-block:70px 77px;display:block}.outro h2{font-size:55px}.outro-copy{margin-top:24px}.outro-copy p{font-size:16px}.footer-inner{min-height:100px;flex-wrap:wrap;column-gap:12px;row-gap:0;padding-block:15px;font-size:9px}.footer-inner span:nth-child(2){display:none}.detail-dialog{width:calc(100% - 20px);max-height:94vh;box-shadow:5px 5px 0 var(--ink)}.detail-top{min-height:55px;padding:6px 12px}.detail-kicker{font-size:10px}.detail-body{padding:23px 19px 25px}.detail-body h2{font-size:clamp(38px,11vw,55px)}.detail-summary{font-size:16px}.detail-meta dd{font-size:13px}.detail-story p{font-size:15px}}
@media(max-width:370px){.hero h1{font-size:16vw}.hero-eyebrow{font-size:8px}.header-nav a{font-size:9px}.section-heading h2{font-size:44px}.event-main h4{font-size:22px}}
.field input,.field select{min-height:44px}
.wordmark:focus-visible,.header-nav a:focus-visible,.footer-inner a:focus-visible{outline-color:var(--cream)}
.primary-link:focus-visible{outline-color:var(--cream);outline-offset:5px}
.field input:focus-visible,.field select:focus-visible{outline-color:var(--ink);background:#f4f0e5}
.saved-toggle:focus-visible,.save-button:focus-visible{outline-offset:5px}
.event-open:focus-visible{background:var(--accent);outline-color:var(--ink)}
.close-detail:focus-visible{background:var(--cream);outline-color:var(--ink)}
.event-open:active{background:var(--accent);transform:scale(.95)}
.saved-toggle:active,.save-button:active{transform:scale(.97)}
.field input:active,.field select:active{box-shadow:inset 0 -2px 0 var(--accent)}
@media(max-width:760px){.header-nav a:nth-child(2){display:inline-flex}.header-nav{white-space:nowrap}}
@media(max-width:370px){.header-inner{flex-wrap:wrap;gap:0}.header-nav{width:100%;justify-content:space-between;overflow-x:auto}.header-nav a{font-size:10px}}
@media (hover:hover) and (pointer:fine){.cassette-stage:hover .reel{animation-duration:3s}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cassette,.reel{animation:none}button,a,input,select,.event-row{transition:none!important}}
