:root{--color-bg: #0a0a0f;--color-bg-elevated: #12121a;--color-bg-card: #1a1a24;--color-border: #2a2a3a;--color-text: #e8e8f0;--color-text-muted: #8888a0;--color-accent: #7c3aed;--color-accent-hover: #8b5cf6;--color-accent-muted: #5b21b6;--color-success: #10b981;--color-warning: #f59e0b;--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", SFMono-Regular, ui-monospace, monospace;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--max-width: 1200px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}.skip-link{position:absolute;top:-40px;left:0;background:var(--color-accent);color:#fff;padding:8px 16px;z-index:100;transition:top .2s}.skip-link:focus{top:0}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;color:var(--color-text)}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}@media(min-width:768px){h1{font-size:2.5rem}h2{font-size:1.75rem}}a{color:var(--color-accent);text-decoration:none;transition:color .2s}a:hover{color:var(--color-accent-hover)}p{margin-bottom:1rem}.site-header{background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:50}.nav-container{max-width:var(--max-width);margin:0 auto;padding:1rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}.logo{font-size:1.25rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.logo:hover{color:var(--color-accent)}.nav-toggle{display:block;background:none;border:none;cursor:pointer;padding:8px}.hamburger{display:block;width:24px;height:2px;background:var(--color-text);position:relative}.hamburger:before,.hamburger:after{content:"";position:absolute;width:24px;height:2px;background:var(--color-text);left:0}.hamburger:before{top:-7px}.hamburger:after{top:7px}.nav-links{display:none;list-style:none;width:100%;padding-top:1rem}.nav-links.open{display:flex;flex-direction:column;gap:.5rem}.nav-links a{display:block;padding:.5rem 0;color:var(--color-text-muted);font-weight:500}.nav-links a:hover{color:var(--color-text)}@media(min-width:768px){.nav-toggle{display:none}.nav-links{display:flex;flex-direction:row;width:auto;padding-top:0;gap:2rem}}main{flex:1;width:100%;max-width:var(--max-width);margin:0 auto;padding:1.5rem 1rem}@media(min-width:768px){main{padding:2rem 1.5rem}}.page-header{margin-bottom:2rem}.page-header h1{margin-bottom:.5rem}.page-header p{color:var(--color-text-muted);font-size:1.125rem;margin:0}.card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem;transition:border-color .2s,transform .2s}.card:hover{border-color:var(--color-accent-muted)}.card-link{display:block;color:inherit}.card-link:hover{color:inherit}.event-card{display:flex;flex-direction:column;gap:.75rem}.event-date{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--color-accent);font-weight:500}.event-title{font-size:1.25rem;font-weight:600;margin:0}.event-meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.875rem;color:var(--color-text-muted)}.event-venue{font-weight:500}.event-artists{color:var(--color-text-muted);font-size:.9rem}.event-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.tag{display:inline-block;padding:.25rem .75rem;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:999px;font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.tag-genre{border-color:var(--color-accent-muted);color:var(--color-accent)}.tag-ages{border-color:var(--color-warning);color:var(--color-warning)}.events-grid{display:grid;gap:1rem}@media(min-width:640px){.events-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.events-grid{grid-template-columns:repeat(3,1fr)}}.date-section{margin-bottom:2.5rem}.date-heading{font-size:1rem;color:var(--color-text-muted);font-weight:500;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border)}.date-heading .day-name{color:var(--color-text);font-weight:600}.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;padding:1rem;background:var(--color-bg-elevated);border-radius:var(--radius-md)}.filter-btn{padding:.5rem 1rem;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:.875rem;cursor:pointer;transition:all .2s}.filter-btn:hover{border-color:var(--color-accent-muted);color:var(--color-text)}.filter-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.newsletter-block{background:linear-gradient(135deg,var(--color-accent-muted) 0%,var(--color-bg-card) 100%);border:1px solid var(--color-accent-muted);border-radius:var(--radius-lg);padding:2rem;margin:3rem 0;text-align:center}.newsletter-block h2{margin-bottom:.5rem}.newsletter-block p{color:var(--color-text-muted);margin-bottom:1.5rem}.newsletter-form{display:flex;flex-direction:column;gap:.75rem;max-width:400px;margin:0 auto}.newsletter-form input[type=email]{padding:.75rem 1rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-size:1rem}.newsletter-form input[type=email]:focus{outline:none;border-color:var(--color-accent)}@media(min-width:480px){.newsletter-form{flex-direction:row}.newsletter-form input[type=email]{flex:1}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s;text-decoration:none}.btn:hover{background:var(--color-accent-hover);color:#fff}.btn-outline{background:transparent;border:1px solid var(--color-accent);color:var(--color-accent)}.btn-outline:hover{background:var(--color-accent);color:#fff}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.75rem 1rem;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-size:1rem;font-family:inherit}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--color-accent)}.form-group textarea{min-height:120px;resize:vertical}.form-hint{font-size:.875rem;color:var(--color-text-muted);margin-top:.25rem}.venues-grid{display:grid;gap:1.5rem}@media(min-width:640px){.venues-grid{grid-template-columns:repeat(2,1fr)}}.venue-card{padding:1.5rem}.venue-card h3{margin-bottom:.5rem}.venue-card .address{color:var(--color-text-muted);font-size:.875rem;margin-bottom:.75rem}.venue-card .description{margin-bottom:0;color:var(--color-text-muted)}.site-footer{background:var(--color-bg-elevated);border-top:1px solid var(--color-border);padding:3rem 1rem 1.5rem;margin-top:auto}.footer-content{max-width:var(--max-width);margin:0 auto;display:grid;gap:2rem}@media(min-width:640px){.footer-content{grid-template-columns:2fr 1fr 1fr}}.footer-section h3,.footer-section h4{margin-bottom:1rem}.footer-section ul{list-style:none}.footer-section li{margin-bottom:.5rem}.footer-section a{color:var(--color-text-muted);font-size:.9rem}.footer-section a:hover{color:var(--color-text)}.footer-bottom{max-width:var(--max-width);margin:2rem auto 0;padding-top:1.5rem;border-top:1px solid var(--color-border);text-align:center;color:var(--color-text-muted);font-size:.875rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-muted{color:var(--color-text-muted)}.text-center{text-align:center}.mt-2{margin-top:2rem}.mb-2{margin-bottom:2rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--color-text-muted)}.empty-state h3{color:var(--color-text);margin-bottom:.5rem}
