.illustrated-band-heading h3{font-family:'Playfair Display',Georgia,serif;font-size:clamp(28px,4vw,48px);line-height:1.2;font-weight:500;margin:0 0 24px}
.illustrated-band{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:start}

.illustrated-stage{position:relative;min-width:0;aspect-ratio:3/2;isolation:isolate}
.illustrated-stage-art{display:block;width:100%;height:auto;pointer-events:none}
.illustrated-stage .stage-person{position:absolute;left:var(--person-x);top:var(--person-y);width:var(--person-w);height:var(--person-h);margin:0;padding:0;border:0;border-radius:4px;background:transparent;color:var(--cream);text-align:center;line-height:1.25;min-width:0}
.illustrated-stage .stage-person:hover{background:rgba(214,184,117,.07)}
.illustrated-stage .stage-person:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.stage-original-stand{display:block;position:absolute;bottom:0;left:10%;width:80%;height:56%;object-fit:contain;object-position:center bottom;pointer-events:none;filter:drop-shadow(2px 4px 3px #0005)}
.stage-person[aria-pressed=true] .stage-original-stand{filter:drop-shadow(0 0 3px var(--gold)) drop-shadow(0 0 2px var(--gold))}
.stage-person-caption{position:absolute;bottom:4%;left:0;right:0;font-size:clamp(11px,1vw,13px);text-shadow:0 1px 3px #000;pointer-events:none;z-index:1}
.stage-person-role,.stage-person-name{display:block}.stage-person-name{color:var(--gold)}
.stage-person:not(.stage-person-wind) .stage-person-caption{bottom:0;background:#122338d9;border-radius:4px;padding:3px 0}
.stage-person:not(.stage-person-wind)[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--gold)}
.stage-member-panel{min-width:0;border-left:1px solid var(--gold);padding:0 0 0 24px;scroll-margin-top:100px}
.stage-member-tools{display:flex;align-items:center;gap:8px;margin-bottom:16px}
.stage-member-tools button{min-width:44px;min-height:44px;padding:6px 12px;border:1px solid var(--gold);border-radius:6px;background:transparent;color:var(--gold);font:inherit}
.stage-member-tools .stage-member-close{margin-left:auto;font-size:24px}
.stage-member-panel .musician-profile{display:block;background:transparent;border:0;padding:0;margin:0}
.stage-member-panel .musician-profile>img{height:auto;max-height:350px;aspect-ratio:1;object-fit:cover;object-position:center;background:transparent;margin:0 0 20px}
.stage-member-panel .musician-info h3{font-size:clamp(24px,2.6vw,36px);line-height:1.2;margin-bottom:18px}
.stage-member-panel .musician-placeholder{height:200px;margin-bottom:20px}
.stage-member-panel .musician-info p,.stage-member-panel .leader-biography>p{font-size:14px;line-height:1.7}
.stage-vacancies{font-size:12px;color:var(--muted);margin-top:16px}.stage-vacancy-label{display:inline}.stage-vacancy-label .stage-short{display:none}.stage-vacancy-label small:before{content:' · '}
@media(max-width:1000px){.stage-person-role{display:none}}
@media(max-width:760px){.illustrated-band.has-selection{grid-template-columns:minmax(0,1fr)}.stage-member-panel{border-left:0;border-top:1px solid var(--gold);padding:20px 0 0}.stage-member-panel .musician-profile{display:grid;grid-template-columns:minmax(100px,30%) minmax(0,1fr);gap:20px}.stage-member-panel .musician-profile>img{margin:0;max-height:260px;aspect-ratio:auto;object-fit:contain}.stage-person-caption{font-size:11px}.stage-member-chip{font-size:13px}.stage-member-panel .musician-info h3{font-size:28px}}
@media(max-width:420px){.stage-person-caption{bottom:1%}.stage-person:not(.stage-person-wind) .stage-person-caption{padding:1px 0}.stage-member-panel .musician-profile{display:block}.stage-member-panel .musician-profile>img{max-height:260px;width:100%;margin-bottom:20px}.stage-member-list{gap:6px}.stage-member-chip{padding:7px 9px}}
@media(prefers-reduced-motion:no-preference){.illustrated-stage .stage-person:hover .stage-original-stand{transform:translateY(-2px)}.stage-original-stand{transition:filter .15s,transform .15s}}

/* Keep desks and captions clear of the illustrated row in front. */
.stage-person-trumpet .stage-original-stand{height:45%}
.stage-person-trombone .stage-original-stand{height:70%}
.stage-person-sax .stage-original-stand{left:5%;width:90%;height:65%}
.stage-person[data-musician=drums] .stage-person-caption{right:55%}
.stage-person[data-musician=gitaar] .stage-person-caption{left:50%;right:-10%}
.stage-member-panel .musician-profile>img{aspect-ratio:4/5;object-position:20% center}
@media(max-width:760px){.stage-member-panel .musician-profile>img{aspect-ratio:auto}}

/* Upper-row name labels remain clickable where hit areas meet. */
.stage-person-trumpet{z-index:3}.stage-person-trombone{z-index:2}.stage-person-sax{z-index:1}.stage-person[data-musician=loet]{z-index:4}

/* Desks are grounded on the rear riser; foreground people provide natural depth. */
.stage-person-trumpet .stage-person-caption{bottom:34%}
.stage-person-trombone .stage-original-stand{bottom:-24%}
.stage-person-trombone .stage-person-caption{bottom:22%}
.stage-clip-definitions{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.stage-people-foreground{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}
.stage-middle-foreground{z-index:4}.stage-front-foreground{z-index:5}

.stage-member-modal{position:fixed;inset:auto;left:50%;transform:translate(-50%,-50%);top:50%;margin:0;width:calc(100% - 24px);max-width:460px;max-height:calc(100dvh - 24px);padding:18px;border:1px solid var(--gold);border-radius:10px;background:var(--bg);color:var(--cream);overflow:auto;box-shadow:0 18px 65px #0008}
.stage-member-modal::backdrop{background:rgba(5,13,24,.46)}
.stage-member-modal .stage-member-panel{border:0;padding:0}
.stage-member-modal .stage-member-tools{position:sticky;top:0;z-index:1;background:var(--bg)}


.stage-member-summary{display:none}
@media(max-width:760px),(max-height:500px){
 .stage-member-modal{padding:14px;max-width:460px}
 .stage-member-modal .stage-member-tools{margin-bottom:12px}
 .stage-member-modal .musician-profile{display:block}
 .stage-member-modal .musician-profile>img,.stage-member-modal .musician-placeholder{display:block;width:100%;height:clamp(100px,28dvh,220px);max-height:none;aspect-ratio:auto;object-fit:contain;margin:0 0 12px}
 .stage-member-modal .musician-info .musician-role{margin:0 0 4px;font-size:12px;line-height:1.4}
 .stage-member-modal .musician-info h3{margin:0 0 10px;font-size:25px;line-height:1.15}
 .stage-member-modal .musician-description,.stage-member-modal .leader-biography{display:none}
 .stage-member-modal .musician-info .stage-member-summary{display:block;margin:0;font-size:14px;line-height:1.5}
}
@media(max-height:500px){
 .stage-member-modal{max-width:620px;padding:12px}
 .stage-member-modal .musician-profile{display:grid;grid-template-columns:minmax(90px,30%) minmax(0,1fr);gap:14px;align-items:center}
 .stage-member-modal .musician-profile>img,.stage-member-modal .musician-placeholder{height:min(50dvh,180px);margin:0}
 .stage-member-modal .musician-info h3{font-size:22px;margin-bottom:8px}
}
