:root{--ink:#102e42;--blue:#123c55;--cream:#f7f4ed;--gold:#e5b65c;--muted:#506471;--line:#d6dcd9}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--cream);color:var(--ink);font:17px/1.7 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}a{color:inherit;text-underline-offset:5px}a:hover{color:#8b5913}a:focus-visible,summary:focus-visible{outline:3px solid #c38d33;outline-offset:6px}h1,h2,h3,h4,p{margin-top:0}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.08;letter-spacing:-.035em}h1{font-size:clamp(3rem,6vw,5.8rem);margin-bottom:28px}h2{font-size:clamp(2.3rem,4vw,3.6rem);margin-bottom:24px}h3{font-size:1.4rem;line-height:1.25}h4{font-size:1.1rem;margin-bottom:3px}img{max-width:100%;display:block}header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px max(5vw,20px);background:var(--cream);border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-size:11px;line-height:1.4;letter-spacing:1.6px}.brand strong{font-size:15px;letter-spacing:1px}.brand img{object-fit:contain}nav{display:flex;gap:28px;font-size:14px}nav a{text-decoration:none}.skip{position:absolute;top:-100px;z-index:100;background:white;padding:10px}.skip:focus{top:5px}.hero{position:relative;overflow:hidden;display:grid;grid-template-columns:1.4fr 1fr;gap:10%;padding:80px max(7vw,24px);background:var(--blue);color:#fff}.hero-copy,.next-concert{position:relative;z-index:1}.hero-copy{animation:entrance .9s both}.hero em{color:var(--gold);font-size:.76em;font-weight:400}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;line-height:1.6}.intro{max-width:520px;color:#dbe5e8;font-size:18px}.button{display:inline-flex;gap:30px;align-items:center;background:var(--gold);color:var(--ink);padding:14px 24px;text-decoration:none;font-weight:650;font-size:14px;margin-top:10px}.button:hover{background:#f2cb82;color:var(--ink)}.next-concert{border:1px solid #7e929b;padding:30px 36px;align-self:center;background:#183e53;animation:entrance 1s .15s both}.next-concert h2{font-size:2rem;margin:14px 0}.next-concert p{margin-bottom:15px;font-size:15px}.next-concert .eyebrow{font-size:11px}.big-date{font-family:Georgia,serif;letter-spacing:5px;color:var(--gold)}.big-date span{font-size:6rem;line-height:1;display:block;letter-spacing:-5px}.next-concert hr{border:0;border-top:1px solid #7e929b;margin:22px 0}.next-concert a{font-size:14px}.staff{position:absolute;right:-10%;top:8%;width:80%;height:85%;transform:rotate(-22deg);background:repeating-linear-gradient(0deg,transparent 0,transparent 37px,#ffffff0c 38px,#ffffff0c 39px);animation:drift 12s ease-in-out infinite alternate;pointer-events:none}.season-ribbon{display:flex;justify-content:center;gap:35px;flex-wrap:wrap;padding:18px;background:var(--gold);font-size:12px;letter-spacing:1.5px;text-transform:uppercase}.section{padding:85px max(7vw,24px)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:36px;margin-bottom:24px}.section-heading h2{margin-bottom:0}.text-link{font-size:14px;display:inline-block}.season-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:40px;gap:30px}.season-item{border-top:3px solid var(--ink);padding-top:22px}.season-item .eyebrow{color:var(--muted)}.concert-date{font-size:18px}.small{font-size:13px}.season-item details{font-size:14px}.season-item ul{padding-left:18px}details{border-top:1px solid var(--line);margin:20px 0;padding-top:12px}summary{cursor:pointer;font-weight:600;padding:5px 0}details p{margin-top:16px}details li{margin-bottom:8px}.program-section{background:#e9ede9}.heading-note{max-width:430px;margin:0}.program ul{list-style:none;padding:0}.program li{display:flex;justify-content:space-between;gap:30px;padding:18px 0;border-bottom:1px solid var(--line)}.program li p{margin:0;font-size:14px;color:var(--muted)}.program li span{font-size:13px;text-align:right;max-width:200px}.conductor{display:grid;grid-template-columns:.9fr 1.1fr;gap:9%;align-items:center}.conductor figure{margin:0}.conductor img{width:100%;height:auto}.conductor figcaption{font-size:12px;color:var(--muted);margin-top:10px}.lead{font-size:21px;line-height:1.55}.thanks{border-left:2px solid #b78636;padding-left:18px;margin-top:28px;color:var(--muted)}.band-photo{position:relative}.band-photo img{width:100%;height:auto}.band-photo p{position:absolute;bottom:0;left:0;margin:0;padding:18px 7vw;background:#102e42df;color:#fff;font-family:Georgia,serif;font-size:clamp(1.2rem,3vw,2rem)}.about{display:grid;grid-template-columns:.8fr 1.2fr;gap:8%}.join{display:grid;grid-template-columns:1.1fr 1fr;gap:10%;background:var(--blue);color:white}.join .eyebrow{color:var(--gold)}.join details{border-color:#6b8493}.rehearsal{border-left:1px solid #6b8493;padding-left:40px}.contact{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px}.contact h2{font-size:2.6rem}.contact p,.contact a{font-size:14px;overflow-wrap:anywhere}footer{border-top:1px solid var(--line);display:flex;gap:20px;align-items:center;padding:24px 7vw;font-size:12px}footer p{margin:0}footer a{margin-left:auto}.reveal.visible{animation:entrance .75s both}@keyframes entrance{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes drift{to{transform:translateY(22px) rotate(-22deg)}}@media(max-width:850px){header{flex-wrap:wrap;justify-content:center}nav{gap:22px;flex-wrap:wrap;justify-content:center}.hero{gap:35px;grid-template-columns:1fr 1fr;padding-top:55px}.next-concert{padding:25px}.season-grid{grid-template-columns:repeat(2,1fr)}.section-heading{align-items:start;flex-direction:column}.contact{grid-template-columns:1fr 1fr}.contact>div:first-child{grid-column:1/-1}.conductor{gap:40px}.season-ribbon{gap:15px}}@media(max-width:600px){html{scroll-padding-top:150px}nav{font-size:12px;gap:18px}.hero,.conductor,.about,.join,.contact{grid-template-columns:1fr}.hero{padding-top:45px}.hero h1{font-size:3.3rem}.next-concert{margin-top:15px}.season-ribbon{font-size:10px;gap:10px}.season-ribbon span{display:none}.section{padding-top:55px;padding-bottom:55px}.season-grid{gap:22px}.season-item h3{font-size:1.2rem}.concert-date{font-size:16px}.conductor figure{max-width:360px}.program li{flex-direction:column;gap:5px}.program li span{text-align:left;max-width:none}.rehearsal{padding:25px 0 0;border-left:0;border-top:1px solid #6b8493}.contact>div:first-child{grid-column:auto}.band-photo img{min-height:240px;object-fit:cover}.brand img{height:45px;width:auto}footer{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}@media print{header,footer,.staff,.button{display:none}.section,.hero{padding:20px;background:white;color:black}.season-grid{grid-template-columns:repeat(2,1fr)}details{display:block}.conductor img{max-height:300px;width:auto}.band-photo{display:none}}

/* Original band identity restored prominently in the opening. */
.hero{grid-template-columns:1.35fr 1fr;gap:38px 7%;padding-top:45px;padding-bottom:55px}
.hero-identity{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:36px;position:relative;z-index:1;animation:entrance .9s both}
.hero-identity h1{font-size:clamp(2.8rem,5.5vw,5.5rem);margin:0}
.hero-logo{width:clamp(150px,19vw,240px);height:auto;flex-shrink:0}
.hero-group{grid-column:1/-1;margin:0;position:relative;z-index:1;animation:entrance 1s .1s both}
.hero-group img{width:100%;height:auto;border-radius:14px}
.hero .tagline{font-family:system-ui,sans-serif;font-size:clamp(1.4rem,2.5vw,2rem);font-weight:650;letter-spacing:-.025em;line-height:1.35;color:var(--gold)}
.hero .intro{max-width:650px}.welcome{font-size:21px;font-weight:650}.hero .next-concert{padding:24px 30px}.hero .big-date{float:left;margin-right:24px}.hero .big-date span{font-size:4.5rem}.hero .next-concert hr{clear:both}
@media(max-width:600px){.hero{grid-template-columns:1fr;padding-top:30px;gap:28px}.hero-identity{flex-direction:column-reverse;text-align:center;gap:22px}.hero-logo{width:160px}.hero .hero-identity h1{font-size:2.7rem}.hero-group img{border-radius:8px}.hero .intro{font-size:16px}.hero .next-concert{margin-top:0}.hero .tagline{font-size:1.4rem}}

/* Logo overlap and restored photos, donations, and news. */
.hero-identity{padding-right:240px;min-height:170px}.hero-group{isolation:isolate}.hero-group>img:not(.hero-logo){position:relative;z-index:0}
.hero-group .hero-logo{position:absolute;right:20px;top:-190px;width:230px;height:auto;z-index:2;filter:drop-shadow(0 5px 6px #0004)}
.hero .next-concert{padding:22px 18px}.venue-name{white-space:nowrap;font-size:clamp(11px,.95vw,14px)}
.membership-photo{margin:25px 0}.membership-photo img{width:100%;height:auto;border-radius:8px}
.news-section{background:#e9ede9}.news-feature{display:grid;grid-template-columns:180px 1fr;gap:35px;align-items:center;max-width:950px}.news-feature>img{height:220px;width:180px;object-fit:cover;object-position:top;border-radius:8px}.news-feature h3{font-family:Georgia,serif;font-size:1.8rem;font-weight:400}.donations{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:center}.donation-code{margin:0;max-width:451px}.donation-code img{width:100%;height:auto;background:white}.donation-code figcaption{font-size:12px;margin-top:10px;color:var(--muted)}
.article-shell{max-width:1050px;margin:auto}.article-body{max-width:760px}.article-body p{margin-bottom:22px}.article-body img{width:280px;height:auto;margin:25px 0}.archive-notice{border-left:3px solid var(--gold);padding-left:20px;color:var(--muted)}.news-list{list-style:none;padding:0}.news-list li{padding:25px 0;border-bottom:1px solid var(--line)}.news-list h2{font-size:1.8rem}.article-shell h1{font-size:clamp(2.4rem,5vw,4rem)}
@media(min-width:601px) and (max-width:1050px){.hero{grid-template-columns:1fr}.hero .next-concert{max-width:650px}.venue-name{font-size:14px}.hero-identity{padding-right:190px}.hero-group .hero-logo{width:180px;top:-145px}.hero-identity h1{font-size:3rem}}
@media(max-width:600px){header nav{gap:12px}.hero-identity{padding-right:0;min-height:0}.hero-group{margin-top:60px}.hero-group .hero-logo{width:105px;top:-95px;right:10px}.venue-name{white-space:normal;font-size:14px}.news-feature{grid-template-columns:1fr;gap:22px}.news-feature>img{width:150px;height:185px}.donations{grid-template-columns:1fr;gap:25px}.donation-code{max-width:360px}.article-body img{max-width:100%}}

/* Compact mobile header with accessible touch navigation. */
.menu-toggle{display:none}.menu-icon{display:grid;gap:5px;width:22px}.menu-icon span{height:2px;background:currentColor;display:block;transition:transform .2s,opacity .2s}
nav[hidden]{display:none!important}
@media(max-width:700px){
 html{scroll-padding-top:100px}
 header{padding:12px 18px;gap:14px;justify-content:space-between;align-items:center}
 .brand{min-width:0;gap:9px;font-size:9px;letter-spacing:1px}.brand strong{font-size:12px}.brand img{width:35px;height:44px}
 .menu-enabled .menu-toggle{display:flex;align-items:center;gap:9px;min-width:78px;min-height:44px;padding:10px;border:1px solid var(--line);border-radius:5px;background:transparent;color:var(--ink);font:600 13px system-ui;cursor:pointer}
 .menu-toggle[aria-expanded="true"] .menu-icon span:nth-child(1){transform:translateY(7px) rotate(45deg)}
 .menu-toggle[aria-expanded="true"] .menu-icon span:nth-child(2){opacity:0}
 .menu-toggle[aria-expanded="true"] .menu-icon span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
 header nav{flex-basis:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;text-align:left;border-top:1px solid var(--line);padding-top:10px;max-height:65vh;overflow:auto}
 header nav a{display:flex;align-items:center;min-height:48px;padding:10px 14px;font-size:15px;border-radius:4px}
 header nav a:hover,header nav a:focus-visible{background:#e9ede9;color:var(--ink)}
 .section{padding-left:22px;padding-right:22px}.hero{padding-left:22px;padding-right:22px}
 summary{min-height:44px;padding-top:10px;padding-bottom:10px}.button{min-height:48px}
 .contact a,.rehearsal>a,.next-concert>a,.text-link{display:inline-block;padding-top:8px;padding-bottom:8px}
 .hero .next-concert{padding:24px}.season-grid{gap:28px 20px}
}
@media(max-width:380px){.season-grid{grid-template-columns:1fr}.hero .hero-identity h1{font-size:2.25rem}.brand strong{font-size:11px}.menu-enabled .menu-toggle{min-width:70px;gap:7px;padding:9px}.section{padding-left:18px;padding-right:18px}}
@media print{.menu-toggle{display:none!important}}
