:root{--paper:#eeece1;--ink:#1f2120;--red:#cf3338;--muted:#595b58;--line:#cecec4;--white:#fff; font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-size:16px;color-scheme:light}*{box-sizing:border-box}body{margin:0}a{color:inherit}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,select,summary{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--red);outline-offset:4px}.wrap{max-width:1120px;margin:auto;padding:0 32px}.masthead{background:var(--ink);color:var(--paper);border-top:5px solid var(--red)}.masthead-inner{min-height:90px;display:flex;justify-content:space-between;align-items:center;gap:20px}.wordmark{font:32px Georgia,serif;text-decoration:none;letter-spacing:-1px}.wordmark em{color:#ff888b}.masthead-inner>span{font-size:12px;letter-spacing:2.5px}.intro{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;padding:42px 0 30px}.eyebrow{font-size:14px;font-weight:bold;letter-spacing:1px;color:#ac282d;margin:0 0 12px}h1{font:normal clamp(36px,5vw,56px)/1.1 Georgia,serif;letter-spacing:-1.7px;margin:0 0 12px}.intro p:last-child{font-size:16px;color:var(--muted);line-height:1.6;margin-bottom:0}.time-note{display:flex;flex-direction:column;gap:7px;text-align:right;flex-shrink:0;font-size:13px;color:var(--muted)}.time-note strong{font-size:15px;color:var(--ink)}.controls{border-bottom:1px solid var(--line);padding-bottom:25px}.periods{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}.periods button{border:1px solid var(--line);background:transparent;padding:11px 19px;border-radius:4px;font-size:15px;color:var(--ink)}.periods button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--white)}.periods button:hover{border-color:var(--ink)}.filter-row{display:grid;grid-template-columns:1fr 1fr 1.6fr;gap:20px}label{font-size:13px;font-weight:bold;display:flex;flex-direction:column;gap:8px}select,input{font-weight:normal;font-size:15px;width:100%;padding:12px;border:1px solid #adada4;border-radius:3px;background:#f9f8f2;color:var(--ink);min-height:45px}.list-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:27px 0 22px}.list-heading h2{font-size:15px;font-weight:normal;margin:0;color:var(--muted)}.text-button{background:none;border:none;padding:5px 0;border-bottom:1px solid currentColor;color:#a9272c;font-size:14px}.text-button:disabled{opacity:.5;cursor:default}.day-group{display:grid;grid-template-columns:130px 1fr;gap:28px;margin-bottom:30px}.day-heading{font-size:14px;line-height:1.5;margin:0;padding-top:22px;position:sticky;top:16px;align-self:start}.day-heading .day-number{display:block;font:36px Georgia,serif;margin:2px 0}.day-heading .weekday{font-size:12px;text-transform:uppercase;letter-spacing:1.4px;color:var(--muted)}.concerts{border-top:2px solid var(--ink)}.concert{padding:24px 0;display:grid;grid-template-columns:86px minmax(0,1fr) auto;gap:20px;border-bottom:1px solid var(--line)}.concert-time{font-size:17px;font-weight:bold;line-height:1.6}.concert-time small{display:block;font-size:12px;font-weight:normal;color:var(--muted)}.concert-info h3{font:normal 25px/1.2 Georgia,serif;margin:7px 0 10px;overflow-wrap:anywhere}.institution{font-size:12px;letter-spacing:.7px;text-transform:uppercase;font-weight:bold;color:#a9272c;margin:0}.program{font-size:14px;line-height:1.6;margin:0 0 10px;color:var(--muted)}.metadata{display:flex;gap:9px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted)}.metadata span+span{border-left:1px solid #999;padding-left:9px}.source-link{font-size:12px;color:var(--muted)}.actions{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding-top:4px;min-width:137px}.watch{display:block;text-align:center;background:var(--red);color:var(--white);padding:11px 17px;border-radius:3px;text-decoration:none;font-size:14px;font-weight:bold}.watch:hover{background:#b32329}.calendar-button{background:transparent;border:1px solid #999a91;border-radius:3px;color:var(--ink);padding:10px 13px;font-size:13px}.actions small{font-size:12px;line-height:1.4;max-width:140px;color:var(--muted)}.now{display:inline-block;color:#a9272c;font-size:12px;margin-top:8px;font-weight:bold}.empty{padding:45px 25px;text-align:center;border:1px solid var(--line);line-height:1.7}.empty strong{display:block;font:26px Georgia,serif;margin-bottom:7px}.empty button{margin-top:14px}.notice{background:var(--ink);color:var(--paper);padding:18px 22px;font-size:14px;line-height:1.6}.about{border-top:1px solid var(--line);margin:40px 0 30px;padding-top:22px;font-size:14px;line-height:1.7}.about summary{font-weight:bold}.about-content{max-width:780px;color:var(--muted)}.about li{margin-bottom:10px}.about a{color:var(--ink)}footer{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:13px;margin-bottom:30px!important}footer span:first-child{font-family:Georgia,serif;font-size:18px}.skip{position:absolute;left:20px;top:-60px;padding:12px;background:var(--white);z-index:10}.skip:focus{top:15px}[hidden]{display:none!important}@media(max-width:760px){.wrap{padding:0 20px}.masthead-inner{min-height:73px}.masthead-inner>span{display:none}.intro{padding-top:28px;display:block}.time-note{margin-top:20px;text-align:left;gap:5px}.time-note>span:first-child{display:none}.filter-row{grid-template-columns:1fr 1fr;gap:14px}.search-label{grid-column:1/-1}.periods{gap:7px}.periods button{padding:10px 12px;font-size:14px}.day-group{grid-template-columns:1fr;gap:12px;margin-bottom:25px}.day-heading{display:flex;align-items:baseline;gap:8px;position:static;padding:0}.day-heading .day-number{font-size:25px}.concert{grid-template-columns:65px minmax(0,1fr);gap:15px;padding:22px 0}.concert-info h3{font-size:23px}.concert-time{font-size:15px}.actions{grid-column:2;display:flex;flex-direction:row;flex-wrap:wrap;padding-top:0}.actions small{max-width:none;width:100%}.list-heading{align-items:flex-start}.text-button{max-width:140px;text-align:right;font-size:13px;line-height:1.5}.program{font-size:14px}footer{flex-direction:column;gap:10px}}@media(prefers-reduced-motion:no-preference){button,a{transition:background .15s ease,border-color .15s ease}}
.about{margin:0 0 26px;padding-top:16px}.about-content{padding-bottom:8px}.about-content h2{font-size:18px;color:var(--ink);line-height:1.35;margin:24px 0 8px}.about-content p{margin:0 0 14px}
footer{align-items:baseline}footer span:first-child{color:var(--ink)}footer a{color:var(--ink)}
@media(max-width:760px){footer{align-items:flex-start}}
