.home-opening{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"hero" "news" "concert" "welcome"}.home-opening>.home-hero{grid-area:hero}.home-opening>.leadership-preview{grid-area:welcome}.home-opening>.concert-feature{grid-area:concert}.concert-feature{background:var(--cream)}.programme-card-poster .programme-card-media{background:#071e38}.programme-card-poster .programme-card-media img{object-fit:contain;padding:.6rem}.concert-feature-panel{display:grid;grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);align-items:center;gap:1.5rem clamp(2rem,5vw,4.5rem)}.concert-poster-link{grid-column:1;grid-row:1/span 2;display:block;max-width:28rem;justify-self:center;border-radius:1.1rem;overflow:hidden;box-shadow:0 18px 42px #170d1b1f}.concert-poster{width:100%;height:auto;aspect-ratio:4/5;object-fit:contain}.concert-feature-copy{min-width:0;grid-column:2;grid-row:1;align-self:end}.concert-feature-actions{grid-column:2;grid-row:2;align-self:start;display:flex;align-items:center;flex-wrap:wrap;gap:1rem 1.5rem}.concert-details-action{order:-1}.concert-detail-mobile-theme{display:none}.concert-feature-copy h2{font-size:clamp(2.5rem,4.6vw,4.35rem);max-width:16ch}.concert-theme{font:500 clamp(1.7rem,2.6vw,2.4rem)/1.2 var(--display);color:var(--plum);margin-bottom:1.5rem}.concert-theme>span{display:block;margin-bottom:.45rem;font:800 .65rem/1.6 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.concert-feature-intro{max-width:37rem;color:var(--prose);font-size:.94rem}.concert-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.5rem;margin:1.75rem 0 2rem;padding:1.4rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.concert-facts>div:first-child{grid-column:1/-1}.concert-facts dt{font-size:.65rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.concert-facts dd{margin:.3rem 0 0;font-size:1rem;font-weight:700;line-height:1.55}.concert-facts dd small{display:block;font-size:.75rem;font-weight:500;color:var(--muted)}.concert-page-heading{padding-bottom:2.5rem}.concert-page-heading h1{max-width:19ch;font-size:clamp(2.8rem,5.6vw,5rem)}.concert-page-heading .concert-theme{margin-bottom:0}.concert-detail{padding-top:0}.concert-detail-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,5rem);align-items:center}.concert-detail-poster{margin:0;max-width:29rem}.concert-detail-poster img{width:100%;height:auto;border-radius:1rem;box-shadow:0 18px 42px #170d1b1a}.concert-detail-poster figcaption{margin-top:.6rem;font-size:.8rem}.concert-detail-poster figcaption a{display:inline-flex;align-items:center;min-height:2.75rem;color:var(--plum);font-weight:750}.concert-detail-welcome h2{font-size:clamp(2.1rem,3.4vw,3.2rem);max-width:17ch}.concert-detail-welcome>.lede{font-size:1.05rem;color:var(--prose)}.concert-scripture{color:var(--muted);font-size:.9rem}.concert-detail-welcome .concert-facts{margin-bottom:0}.concert-artists{background:var(--cream);overflow:hidden}.concert-artists-heading{align-items:end;flex-direction:row}.concert-artists-heading h2{margin-bottom:0}.artist-carousel-controls{display:flex;gap:.65rem;flex-shrink:0}.artist-carousel-control{width:3rem;height:3rem;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--panel);color:var(--ink);font-size:1.3rem;line-height:1;transition:background .18s,color .18s}.artist-carousel-control:hover:not(:disabled){background:var(--action);color:#fff}.artist-carousel-control:disabled{opacity:.4;cursor:default}.artist-track{display:flex;gap:1.5rem;list-style:none;margin:0;padding:.35rem .15rem 1rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:.15rem;scrollbar-width:thin;scrollbar-color:var(--plum) var(--line);overscroll-behavior-inline:contain}.artist-card{min-width:0;flex:0 0 calc((100% - 3rem)/3);scroll-snap-align:start;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:1.1rem}.artist-portrait{aspect-ratio:4/5;width:calc(100% - 2.5rem);max-width:14rem;margin:1.25rem auto 0;border-radius:.7rem;background:var(--deep);overflow:hidden}.artist-portrait img{width:100%;height:100%;object-fit:cover;object-position:center top}.artist-portrait-placeholder{height:100%;display:grid;place-items:center;color:var(--gold);font:500 5rem var(--display)}.artist-card h3{padding:1.1rem 1.1rem 1.35rem;margin:0;text-align:center;font-size:clamp(1.12rem,1.8vw,1.45rem);overflow-wrap:anywhere}.artist-card h3:before{content:"";display:block;width:2rem;height:2px;margin:0 auto .85rem;background:var(--gold)}.artist-scroll-hint{font-size:.75rem;color:var(--muted);margin:1rem 0 0}.concert-practical .info-panel{align-self:start;padding:2rem;border:1px solid var(--line);border-radius:1rem;background:var(--cream)}.concert-practical .prose{min-width:0}.concert-practical .prose>:first-child{margin-top:0}.concert-announcement{position:fixed;z-index:60;right:1.25rem;bottom:1.25rem;width:min(28rem,calc(100% - 2.5rem),calc(80dvh - 11.2rem - env(safe-area-inset-bottom)));padding:2.75rem 0 0;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:1rem;box-shadow:0 14px 55px #160d1b35;overflow:hidden}.concert-announcement>a{display:block}.concert-announcement-poster{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:contain}.concert-announcement:focus-within{outline:3px solid var(--plum);outline-offset:3px}.concert-announcement-close{position:absolute;right:.35rem;top:0;display:grid;place-items:center;width:2.75rem;height:2.75rem;border:0;border-radius:50%;background:transparent;color:var(--ink);font-size:1.6rem;line-height:1}.concert-announcement-close:hover{background:var(--cream)}.concert-announcement-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.concert-without-poster{grid-template-columns:1fr}.concert-feature-panel.concert-without-poster>.concert-feature-copy,.concert-feature-panel.concert-without-poster>.concert-feature-actions{grid-column:1}@media(max-width:960px){.concert-announcement{bottom:calc(6rem + env(safe-area-inset-bottom))}.artist-card{flex-basis:calc((100% - 1.5rem)/2)}}@media(max-width:760px){.concert-feature-panel,.concert-detail-grid{grid-template-columns:1fr;gap:2rem}.home-opening{grid-template-areas:"hero" "news" "welcome" "concert"}.concert-feature-copy{display:none}.concert-feature-panel.concert-without-poster .concert-feature-copy{display:block;grid-column:1;grid-row:1}.concert-feature-actions{grid-column:1;grid-row:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;width:100%}.concert-feature-actions>a{justify-content:center;text-align:center;min-height:3rem;padding:.75rem .5rem;font-size:.75rem;line-height:1.35;gap:.35rem;border-radius:999px}.concert-directions-action{border:1px solid var(--line);text-decoration:none}.concert-details-action{order:0}.concert-feature-actions>a>span{display:none}.concert-page-heading>.concert-theme{display:none}.concert-detail-mobile-theme{display:block}.concert-feature-copy h2{max-width:20ch}.concert-poster-link{grid-column:1;grid-row:1;width:100%;max-width:30rem}.concert-detail-poster{grid-row:1;max-width:30rem;justify-self:center;width:100%}.concert-detail-welcome{grid-row:2}.concert-detail{padding-bottom:3rem}.concert-page-heading{padding-bottom:2rem}.concert-page-heading h1{max-width:20ch}.concert-facts{margin-block:1.4rem}.concert-artists-heading{gap:1rem}.concert-artists-heading h2{font-size:2.6rem}.artist-track{gap:1rem}.artist-card{flex-basis:78%}.artist-card h3{font-size:1.2rem}.artist-carousel-control{width:2.75rem;height:2.75rem}}@media(max-width:420px){.concert-feature-copy h2{font-size:2.55rem}.concert-facts{gap:.85rem 1rem}.concert-facts dd{font-size:.93rem}.concert-announcement{right:.75rem;width:min(28rem,calc(100% - 1.5rem),calc(80dvh - 11.2rem - env(safe-area-inset-bottom)))}.artist-card{flex-basis:84%}}@media(prefers-reduced-motion:reduce){.artist-track{scroll-behavior:auto}.artist-carousel-control{transition:none}}.home-opening>.news-ticker{grid-area:news}.news-ticker{min-width:0;background:var(--cream);border-block:1px solid var(--line)}.news-ticker-shell{display:flex;align-items:center;min-height:3.625rem;gap:0}.news-ticker-label{display:flex;align-items:center;align-self:stretch;gap:.5rem;padding:0 1rem;background:var(--deep);color:#fff;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;font-weight:800;flex-shrink:0}.news-ticker-label:before{content:"";width:.3rem;height:.3rem;border-radius:50%;background:var(--gold)}.news-ticker-window{min-width:0;flex:1;overflow-x:auto;scrollbar-width:thin}.news-ticker-belt{display:flex;width:max-content}.news-ticker-group{display:flex;align-items:center;gap:2rem;padding-inline:1rem;flex-shrink:0}.news-ticker-item{display:inline-flex;align-items:center;min-height:3.5rem;white-space:nowrap;font-size:.8rem;font-weight:650;color:var(--ink);text-decoration:none}.news-ticker-item:before{content:"◆";color:var(--gold);margin-right:1rem;font-size:.5rem}.news-ticker-repeat,.news-ticker-play{display:none}.news-ticker[data-ticker-ready] .news-ticker-window{overflow-x:hidden}.news-ticker[data-ticker-ready] .news-ticker-belt{animation:news-ticker-scroll 60s linear infinite}.news-ticker[data-ticker-ready] .news-ticker-repeat{display:flex}.news-ticker-window:hover .news-ticker-belt,.news-ticker[data-paused=true] .news-ticker-belt{animation-play-state:paused}.news-ticker-control{border:0;border-left:1px solid var(--line);width:2.75rem;min-height:2.75rem;display:grid;place-items:center;flex-shrink:0;background:transparent;color:var(--ink)}.news-ticker-control svg{width:1rem;height:1rem;fill:currentColor}.news-ticker[data-paused=true] .news-ticker-pause{display:none}.news-ticker[data-paused=true] .news-ticker-play{display:block}.news-ticker :focus-visible{outline:2px solid var(--action);outline-offset:-3px}.news-ticker[data-ticker-ready] .news-ticker-window:focus-within{overflow-x:auto}.news-ticker[data-ticker-ready] .news-ticker-window:focus-within .news-ticker-belt{animation:none}.news-ticker[data-ticker-ready] .news-ticker-window:focus-within .news-ticker-repeat{display:none}@keyframes news-ticker-scroll{to{transform:translate(-50%)}}@media(max-width:760px){.news-ticker-shell{width:100%}.news-ticker-label{padding-inline:.75rem;font-size:.6rem}.news-ticker-item{font-size:.78rem}}@media(prefers-reduced-motion:reduce){.news-ticker[data-ticker-ready] .news-ticker-belt{animation:none}.news-ticker[data-ticker-ready] .news-ticker-window{overflow-x:auto}.news-ticker[data-ticker-ready] .news-ticker-repeat,.news-ticker-control{display:none}}
