:root{--red: #cc1111;--red-dark: #7a0000;--red-glow: rgba(204, 17, 17, .45);--bg: #080808;--cream: #e8dfd0;--cream-dim: #8a7f70;--font-display: "Anton", sans-serif;--font-heading: "Bebas Neue", sans-serif;--font-body: "Courier Prime", monospace}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{background:var(--bg);color:var(--cream);font-family:var(--font-body);overflow-x:hidden}body{background:radial-gradient(ellipse at center,transparent 50%,rgba(100,0,0,.35) 100%),var(--bg);min-height:100vh}html:not(.has-access) .site-shell{display:none}html.has-access .access-gate{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.access-gate{min-height:100vh;display:grid;place-items:center;padding:2rem 1.5rem}.access-card{width:min(100%,28rem);border:2px solid var(--red);outline:1px solid var(--red-dark);outline-offset:.5rem;padding:2rem;background:#080808f5;box-shadow:0 0 80px #cc11111f;text-align:center}.access-kicker{font-family:var(--font-body);font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:var(--cream-dim);margin-bottom:.75rem}.access-card h2{font-family:var(--font-display);font-size:clamp(2rem,9vw,3.5rem);line-height:.95;color:var(--red);text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem}.access-copy{font-size:.9rem;line-height:1.7;color:var(--cream);max-width:28ch;margin:0 auto 1.5rem}.access-form{display:grid;gap:.85rem}.access-form input,.access-form button{width:100%;border:1px solid var(--cream-dim);background:#111;color:var(--cream);font:inherit;letter-spacing:.14em;text-transform:uppercase}.access-form input{padding:.95rem 1rem}.access-form button{padding:.95rem 1rem;cursor:pointer}.access-form button:hover{border-color:var(--red);color:var(--red)}.access-error{min-height:1.25rem;margin-top:1rem;color:var(--red);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}.grain{position:fixed;inset:-100px;width:calc(100% + 200px);height:calc(100% + 200px);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.045;pointer-events:none;z-index:9999;animation:grain .4s steps(1) infinite}@keyframes grain{0%{transform:translate(0)}20%{transform:translate(-3px,2px)}40%{transform:translate(2px,-3px)}60%{transform:translate(-2px,3px)}80%{transform:translate(3px,-2px)}to{transform:translate(0)}}.ticker-wrap{background:var(--red);overflow:hidden;padding:.55rem 0;border-bottom:2px solid var(--red-dark)}.ticker{display:inline-flex;gap:1.2rem;white-space:nowrap;font-family:var(--font-heading);font-size:.95rem;letter-spacing:.18em;color:#000;animation:ticker-scroll 30s linear infinite}.ticker .sep{opacity:.45}@keyframes ticker-scroll{0%{transform:translate(0)}to{transform:translate(-25%)}}.hero{padding:4rem 1.5rem 3rem;display:flex;justify-content:center}.poster-frame{position:relative;max-width:460px;width:100%;border:4px solid var(--red);outline:2px solid var(--red-dark);outline-offset:7px;box-shadow:0 0 0 11px var(--bg),0 0 0 13px var(--red-dark),0 0 80px #cc111140,0 0 160px #cc11111a;padding:5px;background:#0d0d0d;transition:box-shadow .4s ease}.poster-frame:hover{box-shadow:0 0 0 11px var(--bg),0 0 0 13px var(--red-dark),0 0 100px #c116,0 0 200px #c113}.poster-frame img{width:100%;height:auto;display:block;filter:contrast(1.04) brightness(.97)}.corner{position:absolute;font-size:1.5rem;color:var(--red);line-height:1;z-index:2}.corner.tl{top:-2.2rem;left:-2.2rem}.corner.tr{top:-2.2rem;right:-2.2rem}.corner.bl{bottom:-2.2rem;left:-2.2rem}.corner.br{bottom:-2.2rem;right:-2.2rem}.lineup{padding:4rem 1rem 3rem;text-align:center;max-width:680px;margin:0 auto}.section-rule{font-family:var(--font-heading);font-size:.9rem;letter-spacing:.35em;color:var(--cream-dim);margin-bottom:2rem}.section-rule.red{color:var(--red);font-size:1.5rem;letter-spacing:.2em;margin-bottom:2rem}.headliner{font-family:var(--font-heading);font-size:clamp(2.8rem,9vw,5rem);letter-spacing:.1em;color:var(--cream);margin-bottom:.75rem}.lineup-sep{color:var(--red);font-size:1.5rem;letter-spacing:.6em;margin:.75rem 0 1.25rem}.artist-row{font-family:var(--font-body);font-size:clamp(.8rem,2.4vw,1rem);font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--cream);opacity:.85;margin:.5rem 0;line-height:1.8}.dot{color:var(--red);margin:0 .5rem}.lineup-stars{font-size:1.1rem;color:var(--red);letter-spacing:.6em;margin-top:2rem;opacity:.8}.tickets{padding:2rem 1.5rem 3rem;max-width:560px;margin:0 auto}.ticket-embed-area{border:2px dashed rgba(204,17,17,.5);padding:2rem 1.5rem;background:#cc111108}.ticket-stub{display:flex;border:1px solid var(--cream-dim);max-width:380px;margin:0 auto 1.5rem;background:#111}.stub-left{flex:1;padding:1rem 1.2rem}.stub-event{font-family:var(--font-heading);font-size:1.9rem;color:var(--red);letter-spacing:.08em;line-height:1;margin-bottom:.5rem}.stub-date{font-family:var(--font-body);font-weight:700;font-size:.75rem;letter-spacing:.18em;color:var(--cream);margin-bottom:.2rem}.stub-venue{font-family:var(--font-body);font-size:.65rem;letter-spacing:.12em;color:var(--cream-dim);text-transform:uppercase}.stub-tear{width:1px;background:repeating-linear-gradient(to bottom,var(--cream-dim) 0,var(--cream-dim) 5px,transparent 5px,transparent 9px);margin:.6rem 0}.stub-right{width:80px;display:flex;align-items:center;justify-content:center;border-left:1px dashed var(--cream-dim);padding:1rem}.stub-admit{font-family:var(--font-heading);font-size:1rem;letter-spacing:.18em;color:var(--cream-dim);text-align:center;line-height:1.3;transform:rotate(-90deg);white-space:nowrap}.ticket-cta{font-family:var(--font-body);font-size:.78rem;letter-spacing:.12em;color:var(--cream-dim);text-align:center;text-transform:uppercase}.details{padding:3rem 1rem 4rem;text-align:center}.details-inner{display:inline-block;border-top:2px solid var(--red);border-bottom:2px solid var(--red);padding:2rem 3.5rem}.venue-name{font-family:var(--font-heading);font-size:clamp(2rem,7vw,3.5rem);color:var(--red);letter-spacing:.06em;margin-bottom:.6rem}.event-date{font-family:var(--font-body);font-weight:700;font-size:1rem;letter-spacing:.28em;color:var(--cream);margin-bottom:.3rem}.event-location{font-family:var(--font-body);font-size:.85rem;letter-spacing:.22em;color:var(--cream-dim);text-transform:uppercase}footer{padding:2rem 1rem 2.5rem;text-align:center;border-top:1px solid #1e1e1e}.footer-motif{color:var(--red);font-size:.85rem;letter-spacing:.5rem;opacity:.5}.artist-link{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:color .15s ease,border-color .15s ease}.artist-link:hover{color:var(--red);border-bottom-color:var(--red)}.headliner-link{border-bottom:none}.headliner-link:hover{border-bottom:none;text-shadow:0 0 20px rgba(204,17,17,.4)}.venue-link{text-decoration:none}.venue-link .venue-name{transition:opacity .15s ease,letter-spacing .15s ease}.venue-link:hover .venue-name{opacity:.75;letter-spacing:.1em}@media(max-width:480px){.details-inner{padding:1.5rem 2rem}.stub-right,.stub-tear{display:none}}@media(min-width:640px){.hero{padding:4rem 2rem}}
