
:root{
  --ink:#fff8eb;--gold:#ffc45f;--orange:#e86727;--night:#02050d;
  --panel:rgba(255,255,255,.075);--line:rgba(255,255,255,.18);
  --progress:0;--mx:50vw;--my:30vh;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:#02050d}
body{margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:transparent;overflow-x:hidden}
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at var(--mx) var(--my),rgba(120,150,255,.18),transparent 24rem),
    linear-gradient(to bottom,#02050d 0%,#071127 23%,#212553 47%,#704155 66%,#d75b25 84%,#ffb837 100%);
  background-size:100% 330vh;
  background-position:center calc(var(--progress) * -230vh)
}
canvas#stars{position:fixed;inset:0;z-index:1;pointer-events:none}

.page{position:relative;z-index:3}
a{color:inherit}
.topbar{position:fixed;inset:0 0 auto;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:20px clamp(18px,4vw,60px);border-bottom:1px solid transparent;transition:.3s}
.topbar.scrolled{background:rgba(3,7,18,.72);backdrop-filter:blur(18px);border-color:rgba(255,255,255,.1)}
.brand{text-decoration:none;display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border:1px solid rgba(255,255,255,.45);border-radius:50%;display:grid;place-items:center;font-family:Georgia,serif;font-size:23px}.brand strong{display:block;font:400 18px/.92 Georgia,serif}.brand small{font-size:8px;letter-spacing:.25em;opacity:.7}
.nav{display:flex;align-items:center;gap:clamp(12px,2vw,30px)}.nav a{text-decoration:none;text-transform:uppercase;font-size:10px;letter-spacing:.14em;opacity:.82}.nav a:hover{opacity:1}
.nav .reserve{padding:12px 16px;border:1px solid var(--gold);color:var(--gold)}
main{position:relative}
.section{min-height:100vh;padding:130px clamp(22px,7vw,110px);position:relative}
.hero{min-height:105vh;display:grid;align-items:center}
.hero-inner{max-width:1050px}.kicker{display:flex;align-items:center;gap:14px;color:var(--gold);text-transform:uppercase;letter-spacing:.32em;font-size:10px;margin-bottom:24px}.kicker:before{content:"";width:42px;height:1px;background:currentColor}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;margin:0}
h1{font-size:clamp(56px,8.7vw,132px);line-height:.88;letter-spacing:-.055em}
h2{font-size:clamp(43px,6vw,88px);line-height:.98}
h3{font-size:clamp(28px,3.2vw,48px)}
.lead{max-width:700px;font-size:clamp(17px,1.9vw,22px);line-height:1.7;color:rgba(255,255,255,.78);margin:32px 0}
.buttons{display:flex;flex-wrap:wrap;gap:12px}.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;padding:15px 19px;border:1px solid rgba(255,255,255,.38);background:rgba(255,255,255,.035);backdrop-filter:blur(12px);text-transform:uppercase;letter-spacing:.14em;font-size:10px;transition:.25s}.btn:hover{transform:translateY(-3px);background:#fff;color:#111}.btn.gold{background:var(--gold);border-color:var(--gold);color:#1b1004}.btn.orange{background:var(--orange);border-color:var(--orange)}
.reveal{opacity:0;transform:translateY(58px);transition:.9s cubic-bezier(.22,.75,.16,1)}.reveal.visible{opacity:1;transform:none}
.intro-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:8vw;align-items:center}.intro-grid p{font-size:18px;line-height:1.8;color:rgba(255,255,255,.76)}
.orbit{aspect-ratio:1;border:1px solid rgba(255,255,255,.15);border-radius:50%;position:relative;background:radial-gradient(circle,rgba(255,198,96,.16),transparent 60%)}.orbit:before,.orbit:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.12);border-radius:50%;inset:14%;animation:spin 15s linear infinite}.orbit:after{inset:30%;animation-direction:reverse;animation-duration:9s}@keyframes spin{to{transform:rotate(360deg)}}
.program-header{text-align:center;max-width:850px;margin:0 auto 65px}.program-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}
.show-card{position:relative;padding:30px;border:1px solid var(--line);background:linear-gradient(150deg,rgba(255,255,255,.11),rgba(255,255,255,.025));backdrop-filter:blur(16px);min-height:500px;display:flex;flex-direction:column;overflow:hidden;transition:.3s}
.show-card:nth-child(2){transform:translateY(-18px)}
.show-card.featured{transform:translateY(-44px) scale(1.035);border-color:rgba(255,196,95,.85);box-shadow:0 30px 90px rgba(72,20,0,.35);background:linear-gradient(150deg,rgba(255,196,95,.18),rgba(255,91,25,.07))}
.show-card:hover{border-color:rgba(255,210,125,.8);translate:0 -8px}
.show-card .step{font:400 82px Georgia,serif;opacity:.12}.show-card .date{color:var(--gold);text-transform:uppercase;letter-spacing:.18em;font-size:11px;margin:5px 0 18px}.show-card h3{text-transform:uppercase}.show-card p{line-height:1.7;color:rgba(255,255,255,.72);flex:1}.show-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:25px}.show-actions .btn{padding:13px 9px}
.quote{min-height:90vh;display:grid;place-items:center;text-align:center}.quote blockquote{margin:0;max-width:1200px;font:400 clamp(38px,6vw,86px)/1.08 Georgia,serif}.quote span{color:var(--gold)}
.artist-section{min-height:auto}.section-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:38px}.section-head p{max-width:520px;color:rgba(255,255,255,.7);line-height:1.7}
.carousel-shell{position:relative}.carousel{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,26vw);gap:15px;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px 2px 22px;scrollbar-width:none}.carousel::-webkit-scrollbar{display:none}
.artist{scroll-snap-align:start;border:1px solid var(--line);background:var(--panel);padding:24px;min-height:330px;cursor:pointer;transition:.3s;position:relative}.artist:hover{transform:translateY(-7px);border-color:var(--gold)}.portrait{width:88px;height:88px;border-radius:50%;display:grid;place-items:center;font:400 30px Georgia,serif;background:linear-gradient(145deg,#243269,#d86639);margin-bottom:38px}.artist .voice{color:var(--gold);font-size:10px;text-transform:uppercase;letter-spacing:.2em}.artist h3{font-size:29px;margin:8px 0}.artist p{color:rgba(255,255,255,.67);line-height:1.6;font-size:14px}.artist .more{position:absolute;right:20px;bottom:18px;color:var(--gold)}
.carousel-controls{display:flex;gap:8px}.round{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.05);color:#fff;cursor:pointer}
.modal{position:fixed;inset:0;z-index:80;background:rgba(1,3,9,.82);backdrop-filter:blur(18px);display:none;place-items:center;padding:22px}.modal.open{display:grid}.modal-card{width:min(760px,94vw);background:#10162d;border:1px solid rgba(255,196,95,.5);padding:clamp(28px,5vw,60px);position:relative}.modal-card .close{position:absolute;right:18px;top:14px;background:none;border:0;color:#fff;font-size:30px;cursor:pointer}.modal-card p{line-height:1.8;color:rgba(255,255,255,.76)}
.people-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.profile-panel{border:1px solid var(--line);background:var(--panel);padding:clamp(28px,4vw,55px)}.profile-panel strong{color:var(--gold);text-transform:uppercase;letter-spacing:.18em;font-size:10px}.profile-panel p,.choirs p{line-height:1.8;color:rgba(255,255,255,.73)}
.choirs{margin-top:18px;border:1px solid var(--line);padding:clamp(30px,5vw,65px);background:linear-gradient(120deg,rgba(13,20,53,.72),rgba(145,58,30,.3))}.choir-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.tag{border:1px solid rgba(255,255,255,.24);padding:11px 14px;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.donation{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:center}.calculator{border:1px solid rgba(255,196,95,.55);background:rgba(9,10,22,.55);backdrop-filter:blur(18px);padding:clamp(28px,5vw,58px)}.amount{font:400 clamp(50px,7vw,90px) Georgia,serif;color:var(--gold)}input[type=range]{width:100%;accent-color:#ffba47;margin:26px 0}.calc-row{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:15px 0;color:rgba(255,255,255,.74)}.calc-row strong{color:#fff}.quick{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}.quick button{border:1px solid var(--line);background:rgba(255,255,255,.05);color:#fff;padding:10px 14px;cursor:pointer}
.zenith{min-height:120vh;display:flex;align-items:flex-end;justify-content:center;padding-bottom:0;overflow:hidden}.zenith-copy{position:absolute;top:18vh;text-align:center;z-index:4;width:min(950px,90vw)}.building{height:min(53vw,700px);width:100vw;background:url("assets/zenith-reveal.jpg") center bottom/cover no-repeat;position:relative;z-index:3;mask-image:linear-gradient(to top,#000 78%,transparent);-webkit-mask-image:linear-gradient(to top,#000 78%,transparent)}
footer{position:relative;z-index:5;background:#080604;padding:55px clamp(22px,7vw,110px);display:flex;justify-content:space-between;gap:25px;flex-wrap:wrap;color:rgba(255,255,255,.65)}
.subhero{min-height:78vh;display:grid;align-items:end;padding-bottom:90px}.subhero h1{font-size:clamp(58px,10vw,145px);text-transform:uppercase}.event-meta{display:flex;gap:18px;flex-wrap:wrap;margin-top:30px}.event-meta span{border:1px solid var(--line);padding:12px 16px;text-transform:uppercase;letter-spacing:.15em;font-size:10px}.content-grid{display:grid;grid-template-columns:1fr .55fr;gap:7vw}.content-grid p{line-height:1.85;color:rgba(255,255,255,.76);font-size:18px}.sidebar{border-left:1px solid var(--line);padding-left:30px}.sidebar dt{color:var(--gold);text-transform:uppercase;letter-spacing:.15em;font-size:10px}.sidebar dd{margin:7px 0 24px}
@media(max-width:900px){.nav{display:none}.intro-grid,.donation,.people-grid,.content-grid{grid-template-columns:1fr}.program-grid{grid-template-columns:1fr}.show-card:nth-child(2),.show-card.featured{transform:none}.carousel{grid-auto-columns:78vw}.section-head{align-items:start;flex-direction:column}.sidebar{border-left:0;border-top:1px solid var(--line);padding:25px 0 0}.building{height:65vw;min-height:390px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}


/* Carousel v4 */
.carousel-shell{
  overflow:hidden;
  position:relative;
}
.carousel{
  display:flex;
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  overscroll-behavior-x:contain;
  scrollbar-width:none;
  padding:12px 4px 28px;
  cursor:grab;
}
.carousel.dragging{
  cursor:grabbing;
  scroll-snap-type:none;
  user-select:none;
}
.carousel::-webkit-scrollbar{display:none}
.artist{
  flex:0 0 clamp(240px,27vw,360px);
  scroll-snap-align:start;
  border-radius:18px;
}
.concert-badge{
  display:inline-flex;
  margin:12px 0 2px;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid rgba(255,196,95,.45);
  background:rgba(255,196,95,.09);
  color:#ffd98f;
  font-size:9px;
  line-height:1.35;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.carousel-controls .round{
  transition:transform .2s, background .2s, border-color .2s;
}
.carousel-controls .round:hover{
  transform:scale(1.08);
  background:rgba(255,196,95,.16);
  border-color:var(--gold);
}
.modal{
  opacity:0;
  visibility:hidden;
  display:grid;
  transition:opacity .28s ease, visibility .28s ease;
}
.modal.open{
  opacity:1;
  visibility:visible;
}
.modal-card{
  border-radius:24px;
  transform:scale(.72) translateY(28px);
  opacity:0;
  transition:
    transform .48s cubic-bezier(.2,.85,.25,1.15),
    opacity .35s ease;
  box-shadow:0 35px 120px rgba(0,0,0,.48);
}
.modal.open .modal-card{
  transform:scale(1) translateY(0);
  opacity:1;
}
.modal-concert{
  display:inline-flex;
  margin:0 0 18px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(255,196,95,.45);
  color:var(--gold);
  background:rgba(255,196,95,.08);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:10px;
}
@media(max-width:900px){
  .artist{flex-basis:82vw}
}

.expandable-carousel,.choir-carousel-shell{position:relative;padding:0 58px}
.carousel-controls.floating{position:absolute;inset:50% 0 auto;display:flex;justify-content:space-between;transform:translateY(-50%);pointer-events:none}
.carousel-controls.floating button{pointer-events:auto;background:rgba(5,8,20,.82);backdrop-filter:blur(10px)}
.expand-card{flex:0 0 clamp(290px,31vw,410px);scroll-snap-align:start;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.075);backdrop-filter:blur(16px);padding:24px;transition:flex-basis .55s cubic-bezier(.2,.8,.2,1),background .35s,border-color .35s,transform .35s;overflow:hidden}
.expand-card.open{flex-basis:min(760px,80vw);border-color:rgba(255,196,95,.75);background:rgba(14,19,43,.94)}
.expand-summary{display:flex;align-items:center;gap:18px;min-height:150px}
.artist-main{min-width:0;flex:1}.artist-main h3{font-size:clamp(25px,2.6vw,38px);margin:8px 0}.role{margin:0;color:rgba(255,255,255,.62)}
.expand-toggle{width:44px;height:44px;flex:0 0 44px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06);color:white;font-size:22px;cursor:pointer;transition:transform .4s,background .3s}
.expand-card.open .expand-toggle{transform:rotate(45deg);background:var(--gold);color:#171006}
.expand-content{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .55s cubic-bezier(.2,.8,.2,1),opacity .4s .05s}
.expand-content>*{overflow:hidden}.expand-card.open .expand-content{grid-template-rows:1fr;opacity:1}.expand-content p{line-height:1.8;color:rgba(255,255,255,.78);padding-top:18px;border-top:1px solid var(--line)}
.choir-card{flex-basis:clamp(390px,47vw,650px)}.choir-card.open{flex-basis:min(880px,84vw)}.choir-logo{width:95px;height:95px;flex:0 0 95px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(145deg,#29366e,#d96a38);font:400 28px Georgia,serif}
.expand-list{display:grid;gap:18px}.expand-list .expand-card{width:100%;max-width:none;flex-basis:auto}.expand-list .expand-card.open{flex-basis:auto}
@media(max-width:900px){.expandable-carousel,.choir-carousel-shell{padding:0 42px}.expand-card{flex-basis:82vw}.expand-card.open{flex-basis:82vw}.choir-card,.choir-card.open{flex-basis:82vw}.expand-summary{align-items:flex-start}.portrait,.choir-logo{width:70px;height:70px;flex-basis:70px}}


/* Portrait cards — version 6 */
.artist-card{
  padding:0;
  border-radius:24px;
  overflow:hidden;
  background:rgba(12,17,38,.82);
}
.artist-card .artist-photo{
  width:100%;
  height:clamp(330px,42vw,520px);
  overflow:hidden;
  background:linear-gradient(145deg,#29366e,#d96a38);
}
.artist-card .artist-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
  display:block;
  filter:grayscale(1) contrast(1.05);
  transform:scale(1.01);
  transition:filter .55s ease,transform .65s cubic-bezier(.2,.8,.2,1);
}
.artist-card:hover .artist-photo img,
.artist-card:focus-within .artist-photo img,
.artist-card.open .artist-photo img{
  filter:grayscale(0) contrast(1);
  transform:scale(1.045);
}
.artist-card .portrait-placeholder{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  font:400 clamp(54px,8vw,100px) Georgia,serif;
  color:rgba(255,255,255,.9);
  background:linear-gradient(145deg,#29366e,#d96a38);
  filter:grayscale(1);
  transition:filter .5s ease;
}
.artist-card:hover .portrait-placeholder,
.artist-card.open .portrait-placeholder{
  filter:grayscale(0);
}
.artist-card .expand-summary{
  padding:24px 26px 20px;
  min-height:auto;
}
.artist-card .expand-content{
  padding:0 26px 24px;
}
.artist-card .expand-content p{
  margin-top:0;
}
.artist-card.open{
  flex-basis:min(820px,84vw);
}
.artist-card.open .artist-photo{
  height:clamp(380px,48vw,610px);
}
.expand-list .artist-card{
  display:grid;
  grid-template-columns:minmax(280px,38%) 1fr;
  align-items:stretch;
}
.expand-list .artist-card .artist-photo{
  height:100%;
  min-height:430px;
}
.expand-list .artist-card .expand-summary,
.expand-list .artist-card .expand-content{
  grid-column:2;
}
.expand-list .artist-card .artist-photo{
  grid-row:1 / span 2;
}
@media(max-width:900px){
  .artist-card .artist-photo{height:430px}
  .artist-card.open .artist-photo{height:470px}
  .expand-list .artist-card{display:block}
  .expand-list .artist-card .artist-photo{min-height:0;height:440px}
}


/* Carousel sizing and autoplay — version 7 */
.carousel-shell{
  width:100%;
  overflow:hidden;
}
.carousel{
  display:flex;
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  padding:12px 0 28px;
}
.carousel::-webkit-scrollbar{display:none}

/* Exactly three complete soloist cards on desktop */
.expandable-carousel .carousel{
  --gap:18px;
}
.expandable-carousel .artist-card{
  flex:0 0 calc((100% - (var(--gap) * 2)) / 3);
  min-width:0;
  max-width:none;
}
.expandable-carousel .artist-card.open{
  flex-basis:calc((100% - var(--gap)) / 2);
}

/* Exactly two complete choir cards on desktop */
.choir-carousel{
  --gap:18px;
}
.choir-carousel .choir-card{
  flex:0 0 calc((100% - var(--gap)) / 2);
  min-width:0;
  max-width:none;
}
.choir-carousel .choir-card.open{
  flex-basis:100%;
}

/* No cards are partially visible at rest */
.expand-card{
  scroll-snap-align:start;
  scroll-snap-stop:always;
}
.carousel-shell{
  padding-inline:58px;
}
.carousel-controls.floating{
  inset-inline:0;
}

/* Expanded choir cards remain fully readable */
.choir-card.open .expand-content{
  padding-bottom:8px;
}

/* Responsive */
@media(max-width:1100px){
  .expandable-carousel .artist-card{
    flex-basis:calc((100% - 18px) / 2);
  }
  .expandable-carousel .artist-card.open{
    flex-basis:100%;
  }
}
@media(max-width:760px){
  .carousel-shell{
    padding-inline:44px;
  }
  .expandable-carousel .artist-card,
  .expandable-carousel .artist-card.open,
  .choir-carousel .choir-card,
  .choir-carousel .choir-card.open{
    flex-basis:100%;
  }
}


/* Expanded biographies — version 8 */
.artist-card.open{
  flex-basis:min(930px,88vw);
}
.artist-card.open .expand-content{
  max-height:560px;
  overflow-y:auto;
  padding-right:12px;
  scrollbar-width:thin;
}
.artist-card.open .expand-content p{
  overflow:visible;
}
.expand-content p + p{
  border-top:0;
  padding-top:0;
}
.artist-card.open .artist-photo{
  height:420px;
}
@media(max-width:900px){
  .artist-card.open .expand-content{max-height:480px}
}


/* Horizontal biography expansion — version 9 */
.expandable-carousel .artist-card{
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:auto auto auto;
  height:680px;
  transition:
    flex-basis .55s cubic-bezier(.2,.8,.2,1),
    grid-template-columns .55s cubic-bezier(.2,.8,.2,1),
    background .35s,
    border-color .35s;
}

.expandable-carousel .artist-card .artist-photo{
  grid-column:1;
  grid-row:1;
  height:500px;
}

.expandable-carousel .artist-card .expand-summary{
  grid-column:1;
  grid-row:2;
}

.expandable-carousel .artist-card .expand-content{
  grid-column:1;
  grid-row:3;
  max-height:0;
  overflow:hidden;
  padding:0 26px;
  opacity:0;
}

/* Opened card grows horizontally and keeps a stable height */
.expandable-carousel .artist-card.open{
  flex-basis:min(980px,82vw);
  grid-template-columns:minmax(320px,42%) minmax(0,1fr);
  grid-template-rows:auto 1fr;
  height:680px;
}

.expandable-carousel .artist-card.open .artist-photo{
  grid-column:1;
  grid-row:1 / span 2;
  height:100%;
  min-height:680px;
}

.expandable-carousel .artist-card.open .expand-summary{
  grid-column:2;
  grid-row:1;
  align-self:start;
  padding:34px 34px 18px;
}

.expandable-carousel .artist-card.open .expand-content{
  grid-column:2;
  grid-row:2;
  max-height:none;
  height:auto;
  overflow-y:auto;
  opacity:1;
  padding:0 34px 34px;
  display:block;
  scrollbar-width:thin;
}

.expandable-carousel .artist-card.open .expand-content p{
  overflow:visible;
  padding-top:18px;
  margin-top:0;
}

/* Choirs also expand horizontally */
.choir-carousel .choir-card{
  height:360px;
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:auto auto;
}

.choir-carousel .choir-card.open{
  flex-basis:min(920px,82vw);
  grid-template-columns:minmax(260px,34%) minmax(0,1fr);
  grid-template-rows:1fr;
  height:360px;
}

.choir-carousel .choir-card.open .expand-summary{
  grid-column:1;
  grid-row:1;
  align-self:stretch;
  padding:30px;
  border-right:1px solid var(--line);
}

.choir-carousel .choir-card.open .expand-content{
  grid-column:2;
  grid-row:1;
  max-height:none;
  height:100%;
  overflow-y:auto;
  opacity:1;
  padding:30px 34px;
  display:block;
}

/* Prevent vertical stretching from older rules */
.expandable-carousel .artist-card.open .expand-content,
.choir-carousel .choir-card.open .expand-content{
  grid-template-rows:none;
}

@media(max-width:900px){
  .expandable-carousel .artist-card,
  .expandable-carousel .artist-card.open{
    height:auto;
    min-height:0;
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto;
  }

  .expandable-carousel .artist-card.open .artist-photo{
    grid-column:1;
    grid-row:1;
    min-height:0;
    height:470px;
  }

  .expandable-carousel .artist-card.open .expand-summary{
    grid-column:1;
    grid-row:2;
    padding:24px 26px 18px;
  }

  .expandable-carousel .artist-card.open .expand-content{
    grid-column:1;
    grid-row:3;
    max-height:420px;
    padding:0 26px 26px;
  }

  .choir-carousel .choir-card,
  .choir-carousel .choir-card.open{
    height:auto;
    grid-template-columns:1fr;
    grid-template-rows:auto auto;
  }

  .choir-carousel .choir-card.open .expand-summary{
    grid-column:1;
    grid-row:1;
    border-right:0;
    border-bottom:1px solid var(--line);
  }

  .choir-carousel .choir-card.open .expand-content{
    grid-column:1;
    grid-row:2;
    max-height:380px;
  }
}


/* Version 10 — carrousels sans autoplay et biographies fiables */
.carousel {
  scroll-behavior: smooth;
  overscroll-behavior-x: contain;
}
.expand-card { cursor: pointer; }
.expand-card .expand-content { pointer-events: none; }
.expand-card.open .expand-content { pointer-events: auto; }

@media(min-width: 901px) {
  .expandable-carousel .artist-card.open {
    flex-basis: min(980px, 88vw);
    display: grid;
    grid-template-columns: minmax(320px, 42%) minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    height: 680px;
  }
  .expandable-carousel .artist-card.open .artist-photo {
    grid-column: 1;
    grid-row: 1 / span 2;
    height: 680px;
    min-height: 680px;
  }
  .expandable-carousel .artist-card.open .expand-summary {
    grid-column: 2;
    grid-row: 1;
  }
  .expandable-carousel .artist-card.open .expand-content {
    grid-column: 2;
    grid-row: 2;
    display: block;
    opacity: 1;
    max-height: none;
    overflow-y: auto;
    padding: 0 34px 34px;
  }

  .choir-carousel .choir-card.open {
    flex-basis: min(920px, 88vw);
    display: grid;
    grid-template-columns: minmax(260px, 34%) minmax(0, 1fr);
    grid-template-rows: 1fr;
    height: 360px;
  }
  .choir-carousel .choir-card.open .expand-summary {
    grid-column: 1;
    grid-row: 1;
  }
  .choir-carousel .choir-card.open .expand-content {
    grid-column: 2;
    grid-row: 1;
    display: block;
    opacity: 1;
    max-height: none;
    overflow-y: auto;
    padding: 30px 34px;
  }
}

/* =========================================================
   STYLES SPÉCIFIQUES À LA PAGE D’ACCUEIL
   Anciennement intégrés dans index.html
   ========================================================= */

/* Carrousel classique des solistes */
.soloist-carousel{position:relative;margin-top:28px;padding:0 58px 34px}
.soloist-viewport{overflow:hidden;width:100%}
.soloist-track{display:flex;gap:18px;transition:transform .48s cubic-bezier(.22,.61,.36,1);will-change:transform}
.soloist-card{flex:0 0 calc((100% - 54px)/4);min-width:0;border:1px solid rgba(255,255,255,.13);border-radius:18px;overflow:hidden;background:rgba(255,255,255,.055);box-shadow:0 14px 34px rgba(0,0,0,.18)}
.soloist-photo{aspect-ratio:1/1;overflow:hidden;background:rgba(255,255,255,.06)}
.soloist-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 22%;filter:grayscale(100%) contrast(1.02);transform:scale(1.05);transition:transform .35s ease,filter .35s ease}
.soloist-card:hover .soloist-photo img,.soloist-card:focus-within .soloist-photo img{transform:scale(1.09);filter:grayscale(0%) contrast(1.03)}
.soloist-placeholder{display:grid;place-items:center;width:100%;height:100%;font-size:clamp(2rem,4vw,4rem);font-weight:800;letter-spacing:.08em;color:var(--gold);background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.025))}
.soloist-info{padding:15px 16px 18px;min-height:92px}
.soloist-info span{display:block;margin-bottom:7px;color:var(--gold);font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.soloist-info h3{margin:0;font-size:clamp(.98rem,1.35vw,1.25rem);line-height:1.18}
.soloist-arrow{position:absolute;top:calc(50% - 31px);z-index:3;width:44px;height:44px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:rgba(10,12,21,.88);color:#fff;font-size:1.3rem;cursor:pointer;backdrop-filter:blur(8px);transition:transform .2s ease,background .2s ease,opacity .2s ease}
.soloist-arrow:hover{transform:scale(1.07);background:var(--gold);color:#111}
.soloist-arrow:disabled{opacity:.28;cursor:default;transform:none}
.soloist-prev{left:0}.soloist-next{right:0}
.soloist-dots{position:absolute;left:50%;bottom:0;display:flex;gap:8px;transform:translateX(-50%)}
.soloist-dot{width:8px;height:8px;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.3);cursor:pointer;transition:width .25s ease,background .25s ease}
.soloist-dot[aria-current="true"]{width:25px;background:var(--gold)}
@media (max-width:980px){.soloist-card{flex-basis:calc((100% - 18px)/2)}}
@media (max-width:620px){.soloist-carousel{padding:0 42px 32px}.soloist-card{flex-basis:100%}.soloist-arrow{width:36px;height:36px}.soloist-info{min-height:84px}}
@media (prefers-reduced-motion:reduce){.soloist-track,.soloist-photo img,.soloist-arrow,.soloist-dot{transition:none}}

/* Direction musicale et choeurs */
.music-direction{padding-top:70px}
.direction-feature{position:relative;display:grid;grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);min-height:620px;margin-top:30px;border:1px solid rgba(255,255,255,.13);border-radius:28px;overflow:hidden;background:linear-gradient(135deg,rgba(255,255,255,.075),rgba(255,255,255,.025));box-shadow:0 12px 32px rgba(0,0,0,.11)}
.direction-portrait{position:relative;height:620px;overflow:hidden;align-self:start}
.direction-portrait:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 78%,rgba(8,10,18,.18) 100%);pointer-events:none}
.direction-portrait img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 22%;filter:grayscale(100%);transition:filter .45s ease}
.direction-feature:hover .direction-portrait img{filter:grayscale(0%)}
.direction-copy{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;padding:clamp(34px,5vw,72px)}
.direction-label{color:var(--gold);font-size:.76rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.direction-copy h2{margin:12px 0 8px;font-size:clamp(2.35rem,5vw,5.4rem);line-height:.92}
.direction-roles{margin:0 0 26px;color:rgba(255,255,255,.72);font-size:clamp(1rem,1.5vw,1.2rem)}
.direction-intro{max-width:760px;margin:0;font-size:1.05rem;line-height:1.75;color:rgba(255,255,255,.83)}
.bio-toggle{align-self:flex-start;margin-top:28px}
.direction-bio{display:none;margin-top:28px}
.direction-bio>div{overflow:visible}
.direction-bio p{margin:0 0 18px;color:rgba(255,255,255,.76);line-height:1.75}
.direction-feature.bio-open .direction-bio{display:block}
.direction-feature.bio-open .direction-intro{display:none}
.direction-feature.bio-open .direction-copy{justify-content:flex-start;overflow-y:auto;max-height:620px;scrollbar-width:thin;scrollbar-color:rgba(224,184,92,.85) rgba(255,255,255,.07)}
.direction-feature.bio-open .direction-copy::-webkit-scrollbar{width:8px}
.direction-feature.bio-open .direction-copy::-webkit-scrollbar-track{background:rgba(255,255,255,.06);border-radius:999px}
.direction-feature.bio-open .direction-copy::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--gold),rgba(224,184,92,.5));border-radius:999px;border:2px solid transparent;background-clip:padding-box}
.direction-feature.bio-open .direction-copy::-webkit-scrollbar-thumb:hover{background:var(--gold);background-clip:padding-box}

/* Ouverture de biographie sans déplacement du bloc */
.direction-feature,.direction-copy,.direction-bio,.direction-intro{animation:none!important}
.direction-feature.bio-open{min-height:620px}

.choirs-section{padding-top:85px}
.choirs-intro{max-width:820px;margin-top:12px;color:rgba(255,255,255,.72);line-height:1.7}
.choirs-stack{display:grid;gap:34px;margin-top:34px}
.choir-feature{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr);min-height:430px;border:1px solid rgba(255,255,255,.12);border-radius:26px;overflow:hidden;background:rgba(255,255,255,.045);transition:transform .35s ease,border-color .35s ease,background .35s ease}
.choir-feature:hover{transform:translateY(-5px);border-color:rgba(224,184,92,.45);background:rgba(255,255,255,.065)}
.choir-feature.reverse{grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr)}
.choir-feature.reverse .choir-visual{order:2}
.choir-feature.reverse .choir-copy{order:1}
.choir-visual{position:relative;min-height:430px;height:100%;align-self:stretch;overflow:hidden}
.choir-visual img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;transition:transform .75s ease,filter .55s ease;filter:grayscale(100%)}
.choir-feature:hover .choir-visual img{transform:scale(1.025);filter:grayscale(0%)}
.choir-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(30px,4.5vw,62px)}
.choir-number{color:var(--gold);font-size:.74rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.choir-copy h3{margin:12px 0 20px;font-size:clamp(1.9rem,3.5vw,3.8rem);line-height:1}
.choir-copy p{margin:0;color:rgba(255,255,255,.76);line-height:1.7}
.choir-feature.compact{grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);min-height:340px}
.choir-feature.compact .choir-visual{min-height:340px;height:100%;align-self:stretch}
.choir-feature.compact .choir-visual img{object-position:center center}
.choir-feature.compact .choir-copy{padding:28px 36px}
.choir-feature.compact .choir-copy h3{font-size:clamp(1.8rem,3vw,3.1rem);margin:10px 0 16px}
.choir-feature.compact .choir-copy p{font-size:.98rem;line-height:1.62}
@media(max-width:900px){
  .direction-feature,.choir-feature,.choir-feature.reverse{grid-template-columns:1fr}
  .direction-portrait{height:520px}.direction-portrait:after{background:linear-gradient(180deg,transparent 82%,rgba(8,10,18,.16) 100%)}
  .direction-copy{margin-top:-90px;padding-top:120px}.direction-feature.bio-open .direction-copy{margin-top:0;padding-top:40px;max-height:none}
  .choir-feature.reverse .choir-visual,.choir-feature.reverse .choir-copy{order:initial}
  .choir-visual{min-height:330px}.choir-copy{padding:32px}
  .choir-feature.compact{grid-template-columns:1fr;min-height:0}
  .choir-feature.compact .choir-visual{height:300px;min-height:300px}
  .choir-feature.compact .choir-copy{padding:28px 30px}
}
@media(max-width:620px){
  .direction-portrait{height:430px}.direction-copy h2{font-size:2.8rem}.direction-copy{padding:96px 24px 30px}
  .choir-visual{min-height:250px}.choir-copy h3{font-size:2rem}
}



/* Espace de don enrichi */
.donation{align-items:stretch}
.calculator{border-radius:28px!important;overflow:hidden;border:1px solid rgba(255,255,255,.14);box-shadow:0 22px 55px rgba(0,0,0,.22);background:linear-gradient(145deg,rgba(255,255,255,.085),rgba(255,255,255,.035))!important;padding:clamp(26px,4vw,42px)!important}
.donor-status{display:inline-flex;align-items:center;justify-content:center;min-height:34px;margin:8px 0 20px;padding:7px 15px;border:1px solid rgba(224,184,92,.42);border-radius:999px;background:rgba(224,184,92,.11);color:var(--gold);font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;transition:transform .28s ease,background .28s ease,border-color .28s ease}
.donor-status.is-changing{transform:scale(1.08);background:rgba(224,184,92,.22);border-color:var(--gold)}
.quick{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px!important;margin-top:20px}
.quick button{position:relative;overflow:hidden;min-height:44px;border-radius:14px!important;border:1px solid rgba(255,255,255,.16)!important;background:rgba(255,255,255,.055)!important;color:#fff!important;font-weight:750;cursor:pointer;transform:translateY(0);transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease,color .22s ease}
.quick button:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 15%,rgba(255,255,255,.2) 48%,transparent 82%);transform:translateX(-140%);transition:transform .55s ease}
.quick button:hover{transform:translateY(-3px);border-color:rgba(224,184,92,.75)!important;background:rgba(224,184,92,.14)!important;box-shadow:0 10px 22px rgba(0,0,0,.2);color:var(--gold)!important}
.quick button:hover:before{transform:translateX(140%)}
.quick button.is-active{border-color:var(--gold)!important;background:var(--gold)!important;color:#111!important;box-shadow:0 10px 26px rgba(224,184,92,.25)}
.quick button:active{transform:translateY(0) scale(.97)}
@media(max-width:760px){.quick{grid-template-columns:repeat(2,minmax(0,1fr))}}
#donationRange{position:relative;z-index:4;width:100%;cursor:grab;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none}
#donationRange:active{cursor:grabbing}
.quick button:before{pointer-events:none}

/* =========================================================
   FONDU PLUS MARQUÉ ENTRE LES PAGES INTERNES
   ========================================================= */
body {
  opacity: 1;
}

body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  background: #02050d;
  opacity: 0;
  transition: opacity .36s cubic-bezier(.4,0,.2,1);
}

.page,
canvas#stars,
.noise {
  animation: pageFadeIn .46s cubic-bezier(.22,.72,.2,1) both;
}

body.page-leaving::after {
  opacity: .72;
}

body.page-leaving .page,
body.page-leaving canvas#stars,
body.page-leaving .noise {
  animation: pageFadeOut .36s cubic-bezier(.4,0,.2,1) both;
  pointer-events: none;
}

@keyframes pageFadeIn {
  from {
    opacity: 0;
    transform: translateY(16px) scale(.992);
    filter: blur(5px);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
  }
}

@keyframes pageFadeOut {
  from {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
  }
  to {
    opacity: 0;
    transform: translateY(-12px) scale(.992);
    filter: blur(4px);
  }
}

@media (prefers-reduced-motion: reduce) {
  body::after {
    transition: none !important;
  }

  .page,
  canvas#stars,
  .noise,
  body.page-leaving .page,
  body.page-leaving canvas#stars,
  body.page-leaving .noise {
    animation: none !important;
  }
}

/* Suppression de l'effet granulé sur le fond */
.noise {
  display: none !important;
}

/* Désactivation définitive de la texture granuleuse */
.noise {
  display: none !important;
  background: none !important;
  background-image: none !important;
  opacity: 0 !important;
}
