.concert-calendar-root{color-scheme:dark;--bg:#060b19;--panel:#101829;--line:#243147;--text:#eef2fa;--muted:#a0adc3;--purple:#b9a3ff;--blue:#83c8ff;--mint:#79dfbe;--pink:#f5a5c6;--amber:#edcb82;font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif}.concert-calendar-root *{box-sizing:border-box}.concert-calendar-root{margin:0;background:radial-gradient(ellipse at 78% 0, #19224888,transparent 45%),var(--bg);color:var(--text)}.concert-calendar-root a{color:inherit;text-decoration:none}.concert-calendar-root button,.concert-calendar-root input,.concert-calendar-root select{font:inherit}.concert-calendar-root button,.concert-calendar-root a,.concert-calendar-root input,.concert-calendar-root select{-webkit-tap-highlight-color:transparent}.concert-calendar-root button{cursor:pointer;color:inherit;background:#182236;border:1px solid var(--line);border-radius:7px;padding:8px 14px}.concert-calendar-root button:hover{background:#26334e}.concert-calendar-root a:hover{color:#c6b5ff}.concert-calendar-root button:focus-visible,.concert-calendar-root a:focus-visible,.concert-calendar-root input:focus-visible,.concert-calendar-root select:focus-visible{outline:2px solid #c5b1ff;outline-offset:4px}.concert-calendar-root [hidden]{display:none!important}.concert-calendar-root .site-header{min-height:89px;padding:18px 3.8%;display:flex;align-items:center;gap:26px;border-bottom:1px solid #253046;background:#070d1bec}.concert-calendar-root .brand{display:flex;gap:12px;align-items:center;flex-shrink:0}.concert-calendar-root .brand img{width:45px;height:45px;object-fit:contain}.concert-calendar-root .brand strong{font-size:19px;letter-spacing:2px;display:block}.concert-calendar-root .brand small{font-size:10px;letter-spacing:.7px;color:var(--muted);display:block;margin-top:7px}.concert-calendar-root .site-header nav{margin-left:auto;display:flex;gap:23px;font-size:13px;white-space:nowrap}.concert-calendar-root .site-header .current{color:var(--purple)}.concert-calendar-root .preview{color:#c8baf0;border:1px solid #534371;border-radius:4px;padding:5px 8px;font-size:10px;white-space:nowrap}.concert-calendar-root main{max-width:1248px;margin:auto;padding:0 32px}.concert-calendar-root .hero{position:relative;padding:56px 0 29px;overflow:hidden;border-bottom:1px solid var(--line)}.concert-calendar-root .eyebrow{font-family:ui-monospace,SFMono-Regular,monospace;font-size:10px;letter-spacing:2.3px;color:var(--purple);font-weight:600;margin:0 0 13px}.concert-calendar-root h1{font-size:40px;line-height:1.3;letter-spacing:1px;margin:0 0 16px;font-weight:650}.concert-calendar-root h1 span{color:#bccbdf}.concert-calendar-root .intro{font-size:14px;line-height:1.9;color:var(--muted);margin-bottom:27px}.concert-calendar-root .categories{display:flex;gap:9px;position:relative;z-index:1}.concert-calendar-root .categories a{font-size:12px;padding:9px 21px;border:1px solid #2b3651;border-radius:30px;color:#aebcd4}.concert-calendar-root .categories .active{background:#b4a0f4;color:#101226;border-color:#b4a0f4;font-weight:600}.concert-calendar-root .hero-orbit{position:absolute;right:45px;top:4px;width:290px;height:250px;opacity:.6;transform:rotate(-18deg);pointer-events:none}.concert-calendar-root .hero-orbit i{position:absolute;border:1px solid #7f7acf55;border-radius:50%;inset:15px 0}.concert-calendar-root .hero-orbit i:nth-child(2){inset:45px 25px;transform:rotate(55deg)}.concert-calendar-root .hero-orbit i:nth-child(3){inset:75px 55px}.concert-calendar-root .hero-orbit:after{content:"";position:absolute;width:9px;height:9px;border-radius:50%;background:#b2a9ff;top:61px;right:24px;box-shadow:0 0 25px #b2a9ff}.concert-calendar-root .hero-orbit span{position:absolute;top:70px;left:113px;font-size:80px;color:#b2a9ff66}.concert-calendar-root .mobile-break{display:none}.concert-calendar-root .calendar-section{padding-top:33px}.concert-calendar-root .section-heading{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:20px}.concert-calendar-root .section-heading h2{font-size:24px;margin:0;letter-spacing:1px}.concert-calendar-root .section-heading .eyebrow{font-size:9px;margin-bottom:9px}.concert-calendar-root .section-heading>span,.concert-calendar-root .local-note{color:var(--muted);font-size:11px;margin:0}.concert-calendar-root .local-note span{padding:0 8px;color:#586982}.concert-calendar-root .calendar-shell{border:1px solid #33405a;border-radius:13px;background:linear-gradient(110deg,#111b2f,#0e1626);overflow:hidden;box-shadow:0 22px 70px #0003}.concert-calendar-root .toolbar{padding:23px 24px 17px;display:flex;justify-content:space-between;align-items:center;gap:12px}.concert-calendar-root .month-nav{display:flex;align-items:center;gap:10px}.concert-calendar-root .month-nav h3{font:500 23px ui-monospace,monospace;margin:0 14px;min-width:166px}.concert-calendar-root .arrow{font-size:24px;line-height:26px;width:34px;padding:0;background:transparent}.concert-calendar-root .month-nav #today{font-size:11px;padding:6px 12px;margin-left:5px}.concert-calendar-root .view-toggle{display:flex;border:1px solid #35415d;border-radius:7px;padding:3px;background:#080f1d}.concert-calendar-root .view-toggle button{border:0;background:none;font-size:12px;padding:7px 17px}.concert-calendar-root .view-toggle button[aria-pressed=true]{background:#b4a0f4;color:#101326;font-weight:600}.concert-calendar-root .filterbar{display:flex;gap:10px;margin:0 24px 18px}.concert-calendar-root .search{border:1px solid #303d56;display:flex;align-items:center;border-radius:7px;padding:0 12px;background:#0b1322;min-width:170px;width:320px;gap:10px}.concert-calendar-root .search span{font-size:25px;color:#a2b0c9}.concert-calendar-root .search input{background:transparent;color:var(--text);border:0;width:100%;min-width:0;outline-offset:2px;font-size:12px;padding:10px 0}.concert-calendar-root .search input::placeholder{color:#8f9eb6}.concert-calendar-root select{background:#0b1322;color:#cbd5e5;border:1px solid #303d56;border-radius:7px;padding:8px 28px 8px 12px;font-size:11px}.concert-calendar-root #reset{font-size:11px}.concert-calendar-root .legend{display:flex;gap:19px;padding:0 24px 18px;color:#a9b6cc;font-size:10px;align-items:center;flex-wrap:wrap}.concert-calendar-root .legend span{display:flex;align-items:center;gap:6px}.concert-calendar-root .legend i{width:6px;height:6px;background:var(--event);border-radius:50%}.concert-calendar-root .legend strong{font-weight:400;margin-left:auto;color:#c7d0e0}.concert-calendar-root .orchestra{--event:var(--purple);--tint:#ae91ff18}.concert-calendar-root .live{--event:var(--blue);--tint:#63b3ff16}.concert-calendar-root .festival{--event:var(--mint);--tint:#68d9b619}.concert-calendar-root .chamber{--event:var(--pink);--tint:#f4a2c91a}.concert-calendar-root .screening{--event:var(--amber);--tint:#edcb8219}.concert-calendar-root .weekdays,.concert-calendar-root .month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.concert-calendar-root .weekdays{border-top:1px solid var(--line);background:#0b1322;color:#95a4bc;text-align:right;font-size:10px}.concert-calendar-root .weekdays span{padding:12px}.concert-calendar-root .weekdays span:nth-last-child(-n+2){color:#b3a2d7}.concert-calendar-root .day{min-height:130px;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:6px;position:relative;min-width:0;background:#10192b60}.concert-calendar-root .day:nth-child(7n){border-right:0}.concert-calendar-root .day.off{background:#070e1b88}.concert-calendar-root .day.selected{background:#2a26484d;box-shadow:inset 0 0 0 1px #aa93ed}.concert-calendar-root .day.today .date-button span{background:#ad95f0;color:#0c1223}.concert-calendar-root .date-button{border:0;background:none;width:100%;padding:0 3px 5px;display:flex;justify-content:flex-end;align-items:center;gap:7px;font-size:12px}.concert-calendar-root .date-button:hover{background:#ffffff09}.concert-calendar-root .date-button span{width:25px;height:25px;display:grid;place-items:center;border-radius:50%}.concert-calendar-root .date-button small{font-size:8px;color:var(--purple)}.concert-calendar-root .off .date-button{color:#546078}.concert-calendar-root .event-chip{display:block;border-left:2px solid var(--event);border-radius:3px;background:var(--tint);margin-bottom:4px;padding:5px 6px;color:var(--event);font-size:10px;line-height:1.5;overflow:hidden}.concert-calendar-root .event-chip:hover{background:#34435d;color:#fff}.concert-calendar-root .event-chip strong{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:550}.concert-calendar-root .event-chip small{display:block;font-size:9px;color:#a7b6cf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.concert-calendar-root .extra{border:0;background:transparent;font-size:10px;color:#c0b0ed;padding:3px 5px}.concert-calendar-root .dots{display:none}.concert-calendar-root .calendar-bottom{display:flex;justify-content:space-between;gap:12px;padding:13px 18px;font-size:9px;color:#99a8c0;border-top:1px solid var(--line);background:#0b1322}.concert-calendar-root .empty-month{padding:25px;text-align:center;color:var(--muted);font-size:13px}.concert-calendar-root .empty-month button{margin:15px auto 0;display:block;font-size:12px}.concert-calendar-root .day-section{padding:27px 0 31px}.concert-calendar-root .day-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.concert-calendar-root .day-heading h3{font-size:20px;margin:0}.concert-calendar-root .day-heading .eyebrow{font-size:9px;margin-bottom:9px}.concert-calendar-root .day-heading>span{font-size:11px;color:var(--muted)}.concert-calendar-root .day-events{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.concert-calendar-root .event-card{border:1px solid var(--line);border-radius:9px;padding:16px;display:flex;align-items:center;gap:16px;background:#111a2a;min-width:0}.concert-calendar-root .event-card img{width:78px;height:88px;object-fit:contain;background:#060c17;border-radius:4px}.concert-calendar-root .event-card .copy{flex:1;min-width:0}.concert-calendar-root .event-card .tag{color:var(--event);font-size:9px}.concert-calendar-root .event-card h4{font-size:14px;line-height:1.6;margin:6px 0}.concert-calendar-root .event-card p{color:var(--muted);font-size:11px;line-height:1.6;margin:4px 0}.concert-calendar-root .event-card .read{color:var(--purple);font-size:11px;display:inline-block;margin-top:6px}.concert-calendar-root .event-card:hover{border-color:#716194}.concert-calendar-root .event-time{font:500 19px ui-monospace,monospace;align-self:flex-start;color:var(--event);border-left:2px solid var(--event);padding-left:12px;min-width:70px}.concert-calendar-root .day-empty{padding:26px;background:#101827;border:1px dashed #344059;border-radius:9px;color:var(--muted);grid-column:1/-1;font-size:13px}.concert-calendar-root .news-section{padding:25px 0;border-top:1px solid var(--line)}.concert-calendar-root .news-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.concert-calendar-root .news-card{background:#11192a;border:1px solid var(--line);border-radius:9px;overflow:hidden;display:flex;flex-direction:column}.concert-calendar-root .news-card img{width:100%;height:145px;object-fit:contain;background:linear-gradient(120deg,#17273b,#221b3b)}.concert-calendar-root .poster-fallback{height:100px;display:flex;align-items:center;justify-content:center;font-size:25px;letter-spacing:6px;color:#8ca3c5;background:linear-gradient(120deg,#14213b,#241c3c)}.concert-calendar-root .news-card .copy{padding:19px}.concert-calendar-root .news-card time{font:10px ui-monospace,monospace;letter-spacing:1px;color:var(--muted)}.concert-calendar-root .news-card h3{font-size:14px;line-height:1.75;margin:10px 0}.concert-calendar-root .news-card small{font-size:11px;color:var(--purple)}.concert-calendar-root .more{display:block;margin:22px auto 0;background:none;font-size:12px}.concert-calendar-root .coverage{font-size:11px;color:#9daac0;line-height:1.8;padding-bottom:32px}.concert-calendar-root footer{border-top:1px solid var(--line);padding:27px max(32px,calc((100vw - 1184px)/2));display:flex;gap:25px;align-items:center;font-size:10px;color:var(--muted)}.concert-calendar-root footer strong{letter-spacing:3px;color:#d1c1f1;font-size:12px}.concert-calendar-root footer span:last-child{margin-left:auto}.concert-calendar-root .month-list{padding:0 24px 20px}.concert-calendar-root .agenda-group{display:grid;grid-template-columns:95px 1fr;border-top:1px solid var(--line);padding:17px 0;gap:18px}.concert-calendar-root .agenda-date{font-size:13px;color:#d2c6f3;padding-top:10px}.concert-calendar-root .agenda-date small{display:block;color:var(--muted);font-size:10px;margin-top:6px}.concert-calendar-root .agenda-events{display:grid;gap:8px}.concert-calendar-root .agenda-events .event-card{padding:12px}.concert-calendar-root .agenda-events .event-card img{height:64px;width:60px}@media(min-width:1400px){.concert-calendar-root .day{min-height:143px}}@media(max-width:1100px){.concert-calendar-root .site-header{flex-wrap:wrap;gap:16px;padding:15px 24px}.concert-calendar-root .site-header nav{gap:20px}.concert-calendar-root .brand small{display:none}.concert-calendar-root .preview{display:none}.concert-calendar-root .hero-orbit{right:0}.concert-calendar-root .month-nav h3{font-size:20px;min-width:145px}.concert-calendar-root .event-time{display:none}}@media(max-width:760px){.concert-calendar-root main{padding:0 17px}.concert-calendar-root .site-header{padding:15px 18px 10px;gap:15px}.concert-calendar-root .brand strong{font-size:17px}.concert-calendar-root .brand img{height:33px;width:33px}.concert-calendar-root .brand small{display:block;font-size:8px}.concert-calendar-root .site-header nav{order:3;width:100%;margin:0;overflow-x:auto;padding-bottom:5px;gap:24px;font-size:12px}.concert-calendar-root .hero{padding:32px 0 24px}.concert-calendar-root .hero h1{font-size:28px;line-height:1.5}.concert-calendar-root .hero .eyebrow{font-size:8px;letter-spacing:1.7px}.concert-calendar-root .intro{font-size:12px;line-height:1.85;position:relative}.concert-calendar-root .mobile-break{display:block}.concert-calendar-root .hero-orbit{right:-110px;top:0;opacity:.3}.concert-calendar-root .categories{gap:6px;overflow:auto}.concert-calendar-root .categories a{padding:8px 11px;white-space:nowrap;font-size:10px}.concert-calendar-root .calendar-section{padding-top:27px}.concert-calendar-root .section-heading{display:block;margin-bottom:17px}.concert-calendar-root .section-heading h2{font-size:21px}.concert-calendar-root .local-note{margin-top:11px;font-size:10px}.concert-calendar-root .toolbar{padding:16px 12px;flex-wrap:wrap}.concert-calendar-root .month-nav{gap:7px}.concert-calendar-root .month-nav h3{font-size:19px;min-width:131px;margin:0 2px}.concert-calendar-root .month-nav #today{margin:0}.concert-calendar-root .view-toggle{margin-left:auto}.concert-calendar-root .view-toggle button{font-size:10px;padding:7px 11px}.concert-calendar-root .filterbar{margin:0 12px 14px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.concert-calendar-root .search{width:100%;grid-column:1/-1}.concert-calendar-root .filterbar select{width:100%;font-size:10px}.concert-calendar-root .legend{padding:0 12px 14px;gap:9px 11px;font-size:8px}.concert-calendar-root .legend strong{width:100%;margin:0;font-size:10px}.concert-calendar-root .weekdays span{padding:10px 0;text-align:center;font-size:9px}.concert-calendar-root .day{min-height:64px;padding:3px 1px}.concert-calendar-root .date-button{padding:4px 0;width:100%;justify-content:center;font-size:12px}.concert-calendar-root .date-button small{display:none}.concert-calendar-root .day .event-chip,.concert-calendar-root .day .extra{display:none}.concert-calendar-root .dots{display:flex;justify-content:center;gap:3px;flex-wrap:wrap;max-width:40px;margin:2px auto;pointer-events:none}.concert-calendar-root .dots i{width:4px;height:4px;border-radius:50%;background:var(--event)}.concert-calendar-root .calendar-bottom{font-size:8px;padding:11px;flex-direction:column;gap:4px}.concert-calendar-root .day-heading h3{font-size:18px}.concert-calendar-root .day-events{grid-template-columns:1fr}.concert-calendar-root .event-card{padding:12px;gap:12px}.concert-calendar-root .event-card img{width:64px;height:77px}.concert-calendar-root .event-card h4{font-size:13px}.concert-calendar-root .event-card p{font-size:10px}.concert-calendar-root .event-time{display:none}.concert-calendar-root .news-cards{grid-template-columns:1fr}.concert-calendar-root .news-card{flex-direction:row}.concert-calendar-root .news-card img{width:105px;height:auto;min-height:140px;max-height:180px}.concert-calendar-root .news-card .copy{padding:13px}.concert-calendar-root .news-card h3{font-size:12px}.concert-calendar-root .news-section .section-heading>span{display:block;margin-top:10px;font-size:10px}.concert-calendar-root .poster-fallback{width:70px;height:auto;flex-shrink:0;font-size:12px;writing-mode:vertical-rl}.concert-calendar-root .coverage{font-size:10px}.concert-calendar-root .month-list{padding:0 12px 12px}.concert-calendar-root .agenda-group{grid-template-columns:1fr;gap:10px}.concert-calendar-root .agenda-date small{display:inline;margin-left:8px}.concert-calendar-root .agenda-date{padding:0}.concert-calendar-root .agenda-events .event-card img{width:47px}.concert-calendar-root footer{padding:23px 18px;gap:14px;flex-wrap:wrap}.concert-calendar-root footer span:last-child{margin-left:0}.concert-calendar-root .view-toggle{margin-left:0}}@media(prefers-reduced-motion:reduce){.concert-calendar-root *{scroll-behavior:auto!important}}

.concert-calendar-root{display:block;width:100%;min-width:0;background:none}.concert-calendar-root .calendar-section{padding-top:0}.concert-calendar-root .event-card{color:var(--text)}.concert-calendar-root .event-card img{flex-shrink:0}.concert-calendar-root .news-card img{object-fit:contain}.concert-calendar-root .news-section h3{color:var(--text)}
