/* Additive only: the original website stylesheet, copy and curtain script are unchanged. */
.music-credit{max-width:900px;margin:0 auto;padding:12px 24px 25px;font-size:.75rem;line-height:1.7;color:#c9bba9;text-align:center}.music-credit a{color:#f5d09c;text-underline-offset:3px}
.stage-piano{position:absolute;left:8%;bottom:21%;z-index:2;width:clamp(160px,26vw,310px);height:auto;pointer-events:none;filter:drop-shadow(0 7px 9px #0009)}
.stage-music-controls{position:absolute;left:8%;bottom:9%;z-index:2;width:clamp(160px,26vw,310px);text-align:center;color:#efe4d3;display:grid;gap:5px}.stage-music-controls button{font:inherit;font-size:.8rem;min-height:44px;padding:7px 12px;color:#ffdda6;background:#0c0906db;border:1px solid #a98556;border-radius:5px;cursor:pointer}.stage-music-controls button:disabled{cursor:not-allowed;color:#d5c7b5;border-color:#6c5b44}.stage-music-controls small{font-size:.68rem;line-height:1.4}.stage-music-controls button:focus-visible{outline:2px solid #ffdda6;outline-offset:4px}.is-playing .stage-piano,.is-playing .stage-music-controls{animation:mic-reveal 6.2s both}
@media(max-width:700px){.stage-piano{left:3%;width:30%;bottom:25%}.stage-music-controls{left:3%;width:31%;bottom:9%}}
@media(max-width:420px){.stage-piano{bottom:25%;width:34%}.stage-music-controls{width:38%;bottom:9%}}
@media(max-width:320px){.stage-piano{display:none}.stage-music-controls{position:relative;left:auto;bottom:auto;width:80%;margin:0 auto 65px}}
@media(prefers-reduced-motion:reduce){.stage-piano,.stage-music-controls{animation:none!important}}
.stage-mic{position:absolute;right:12%;bottom:12%;z-index:2;display:flex;flex-direction:column;align-items:center;gap:3px;width:172px;max-width:26%;padding:0 4px 6px;background:transparent;border:0;color:#ffdda6;cursor:pointer;text-shadow:0 2px 8px #000;font:inherit}
.stage-mic img{height:clamp(150px,22vh,215px);width:auto;max-width:100%;object-fit:contain;filter:drop-shadow(0 3px 7px #000);transition:filter .25s,transform .25s;transform-origin:bottom center}
.stage-mic:hover img,.stage-mic:focus-visible img{filter:drop-shadow(0 0 15px #f7b75799);transform:scale(1.045)}
.stage-mic span{font-size:.85rem;line-height:1.4;text-decoration:underline;text-underline-offset:4px}.stage-mic small{font-size:.7rem;line-height:1.45;color:#efe4d3}.stage-mic:focus-visible{outline:2px solid #f1c18b;outline-offset:5px;border-radius:5px}.is-playing .stage-mic{animation:mic-reveal 6.2s both}
@keyframes mic-reveal{0%,78%{opacity:0}100%{opacity:1}}
#voice-dialog{position:fixed;top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);z-index:20;margin:0;width:min(92vw,570px);max-height:80dvh;overflow:auto;padding:36px;border:1px solid #ae8653;border-radius:12px;color:#f9edda;background:linear-gradient(135deg,#211a13,#090909 70%);box-shadow:0 24px 100px #000b;font:inherit}
#voice-dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}.voice-close{position:absolute;top:10px;right:10px;min-width:44px;min-height:44px;border:0;background:none;color:#f8ddb5;font-size:1.8rem;cursor:pointer}.voice-eyebrow{font-size:.8rem;letter-spacing:.18em;color:#e8bd83;margin:0 0 18px}#voice-dialog h2{font-size:2.3rem;margin-right:15px}#voice-disclosure{font-size:1rem;line-height:1.7;color:#e2d8cb}.voice-status{border-block:1px solid #574432;padding:12px 0;color:#f6ce95;font-size:.9rem}.voice-wave{display:flex;justify-content:center;align-items:center;gap:6px;height:65px}.voice-wave i{width:5px;height:12px;background:#e8ba7d;border-radius:5px}.voice-wave i:nth-child(2n){height:25px}.voice-wave i:nth-child(3n){height:40px}.demo-active .voice-wave i,.live-active .voice-wave i{animation:mic-bars .75s infinite alternate ease-in-out}.voice-wave i:nth-child(2n){animation-delay:-.3s}.voice-wave i:nth-child(3n){animation-delay:-.6s}@keyframes mic-bars{to{transform:scaleY(.4);opacity:.6}}
.voice-captions{font:1.05rem/1.7 Georgia,serif;border-left:2px solid #d29e54;padding:8px 0 8px 17px;min-height:95px;max-height:180px;overflow:auto;overflow-wrap:anywhere}.voice-actions{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 0}.voice-actions button{min-height:46px;padding:11px 15px;font:inherit;font-size:.88rem;border:1px solid #a98556;background:#e9bd80;color:#22180c;border-radius:5px;cursor:pointer}.voice-actions button:disabled{opacity:.45;cursor:not-allowed}.voice-actions #voice-stop{background:transparent;color:#efd8b7}.voice-note{color:#c5b8a5;font-size:.8rem;line-height:1.65;margin-bottom:0}#voice-dialog button:focus-visible{outline:2px solid #ffdda6;outline-offset:4px}#voice-output{width:100%;margin-top:15px}[hidden]{display:none!important}
@media(max-width:700px){.stage-mic{right:2%;bottom:14%;max-width:22%;width:135px}.stage-mic img{height:130px}.stage-mic span{font-size:.72rem}.stage-mic small{font-size:.65rem}#voice-dialog{padding:28px 22px}}
@media(max-width:420px){.stage-mic{right:3%;bottom:11%;max-width:27%}.stage-mic img{height:108px}.stage-mic small{font-size:.65rem}.stage-mic span{font-size:.72rem}.stage-copy{padding-bottom:125px}}
@media(max-width:320px){.stage-mic{position:relative;right:auto;bottom:auto;max-width:100%;width:100%;margin-top:-45px;margin-bottom:24px}.stage-mic img{height:100px}.stage-mic small{font-size:.75rem}.stage-mic span{font-size:.9rem}}
@media(prefers-reduced-motion:reduce){.stage-mic,.voice-wave i{animation:none!important}.stage-mic img{transition:none;transform:none!important}}

/* Premium stage refinement: life-size proportions, a shared floor line,
   neutral material highlights, and quiet controls. Original artwork retained. */
.stage{min-height:760px;height:auto;aspect-ratio:1672 / 941;max-height:none;--instrument-floor:17%}
/* Reveal the actual footlights already photographed in the original asset.
   This is a photographic crop, not newly drawn fixtures or an extra spotlight. */
.stage-art{background-size:auto 100%;filter:brightness(.93) saturate(1.15) contrast(1.03)}
.stage-art::after{content:"";position:absolute;inset:0;background:inherit;mask-image:linear-gradient(transparent 68%,#000 83%);filter:brightness(1.22) saturate(.9)}
.stage:before{background:linear-gradient(0deg,#000 0%,transparent 3%,transparent 90%,#000 100%)}
.stage-copy{position:absolute;top:38%;left:50%;transform:translate(-50%,-50%);width:min(66%,850px);padding:0 10px;text-shadow:0 2px 16px #000}
.stage-copy .eyebrow{margin-bottom:14px}
.stage-copy h1{font-size:clamp(2.7rem,5vw,5rem)}
.stage-copy .intro{margin:18px 0 12px}
.stage-copy .discover{padding:6px 0;min-height:44px}
.stage-piano{left:8%;bottom:var(--instrument-floor);width:clamp(310px,38vw,550px);height:auto;filter:drop-shadow(0 3px 2px #0009)}
.stage-mic{right:15%;bottom:var(--instrument-floor);width:160px;max-width:none;padding:0;gap:0;margin:0;text-shadow:none;color:#f5f5f7}
.stage-mic img{height:clamp(290px,36svh,405px);width:auto;max-width:100%;filter:sepia(.3) saturate(1.28) drop-shadow(0 2px 2px #0008);transition:filter .25s;transform:none}
.stage-mic:hover img,.stage-mic:focus-visible img{filter:sepia(.3) saturate(1.28) brightness(1.08) drop-shadow(0 2px 2px #0008);transform:none}
.stage-mic span{position:absolute;top:calc(100% + 16px);left:50%;transform:translateX(-50%);width:230px;min-height:44px;padding:10px 16px;border:1px solid #ffffff38;border-radius:24px;background:#1d1d1fe8;box-shadow:inset 0 1px 0 #ffffff0d;color:#f5f5f7;font-size:.88rem;font-weight:500;letter-spacing:-.015em;line-height:1.4;text-decoration:none}
.stage-mic small{position:absolute;top:calc(100% + 68px);left:50%;transform:translateX(-50%);width:250px;color:#bbb8b4;font-size:.75rem;line-height:1.5}
.stage-mic:focus-visible{outline:2px solid #eee;outline-offset:10px;border-radius:14px}
.stage-music-controls{left:8%;bottom:auto;top:calc(100% - var(--instrument-floor) + 16px);width:clamp(310px,38vw,550px);justify-items:center;gap:8px}
.stage-music-controls button{width:230px;max-width:100%;min-height:44px;padding:10px 16px;color:#f5f5f7;background:#1d1d1fe8;border:1px solid #ffffff38;border-radius:24px;box-shadow:inset 0 1px 0 #ffffff0d;font-size:.88rem;font-weight:500;letter-spacing:-.015em;line-height:1.4}
.stage-music-controls button:hover:not(:disabled),.stage-mic:hover span{background:#303033;border-color:#ffffff70}
.stage-music-controls small{font-size:.75rem;line-height:1.5;color:#bbb8b4}
.stage-control{right:auto;left:50%;transform:translateX(-50%);bottom:12px;background:transparent;color:#bcb8b2;border:0;border-radius:20px;font-size:.75rem;min-height:36px;padding:6px 12px}
.stage-control:hover{background:#ffffff0d;color:#fff}
#voice-dialog{background:#141416;border-color:#ffffff2e;border-radius:24px;box-shadow:0 30px 100px #000b;color:#f5f5f7}
.voice-eyebrow,.voice-close,.voice-status{color:#e2d4bf}
.voice-actions button{background:#f5f5f7;color:#161617;border-color:#ffffff38;border-radius:24px}
.voice-actions #voice-stop{color:#f5f5f7}
.music-credit{font-size:.75rem;color:#aaa6a0}
@media(min-width:1600px){
  .stage-copy{padding-top:0}
  .stage-piano,.stage-music-controls{left:12%;width:min(35vw,650px)}
  .stage-mic{right:18%}
  .stage-mic img{height:clamp(350px,38svh,480px)}
}
@media(max-width:900px){
  .stage{min-height:720px;--instrument-floor:19%}
  .stage-piano,.stage-music-controls{left:5%;width:45%}
  .stage-mic{right:10%;width:120px}
  .stage-mic img{height:270px}
  .stage-mic span,.stage-mic small{width:190px}
  .stage-music-controls button{width:210px}
}
@media(max-width:600px){
  .stage{height:auto;min-height:760px;max-height:none;--instrument-floor:22%}
  .stage-copy{top:32%;width:90%;padding:0 8px}
  .stage-copy h1{font-size:clamp(2.4rem,10vw,3.6rem)}
  .stage-copy .intro{font-size:1rem;margin:16px 0 12px}
  .stage-piano{left:3%;width:56%}
  .stage-mic{right:9%;width:78px}
  .stage-mic img{height:230px}
  .stage-mic span{width:142px;padding:10px 8px;font-size:.83rem}
  .stage-mic small{top:calc(100% + 87px);width:140px;font-size:.72rem}
  .stage-music-controls{left:3%;width:53%;gap:10px}
  .stage-music-controls button{width:165px;font-size:.83rem}
  .stage-music-controls small{font-size:.72rem;max-width:180px}
  .stage-control{bottom:16px}
}
@media(max-width:360px){
  .stage{display:flex;flex-direction:column;min-height:0;gap:0;padding-bottom:30px}
  .stage-copy{position:relative;top:auto;left:auto;transform:none;padding:80px 10px 30px;width:94%}
  .stage-copy h1{font-size:2.35rem}
  .stage-piano{display:block;position:relative;left:auto;bottom:auto;width:82%;margin:8px auto 0}
  .stage-music-controls{position:relative;left:auto;top:auto;bottom:auto;width:90%;margin:16px auto 34px}
  .stage-mic{position:relative;right:auto;bottom:auto;width:90%;margin:0 auto;padding:0;max-width:none}
  .stage-mic img{height:235px}
  .stage-mic span,.stage-mic small{position:static;transform:none;width:auto;max-width:100%;margin-top:12px}
  .stage-mic small{margin-top:8px}
  .stage-control{display:none}
}
@media(prefers-reduced-motion:reduce){.stage-mic img{transition:none}}
@media(forced-colors:active){.stage-mic span,.stage-music-controls button{border:1px solid ButtonText;color:ButtonText;background:ButtonFace}}

/* The instruments are the controls; names remain available to screen readers. */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
button.stage-piano{display:block;padding:0;border:0;background:transparent;line-height:0;pointer-events:auto;cursor:pointer;border-radius:12px}
button.stage-piano img{display:block;width:100%;height:auto}
/* Subtle photographic grading preserves black lacquer and warms brass hardware. */
button.stage-piano img{filter:sepia(.14) saturate(1.2) brightness(1.04)}
button.stage-piano:focus-visible{outline:2px solid #f5f5f7;outline-offset:10px}
button.stage-piano:disabled{cursor:default}
.music-mute{position:fixed;bottom:max(18px,env(safe-area-inset-bottom));left:max(18px,env(safe-area-inset-left));z-index:8;display:grid;place-items:center;width:44px;height:44px;border:1px solid #ffffff45;border-radius:50%;background:#141416eb;color:#f5f5f7;cursor:pointer}
.music-mute:focus-visible{outline:2px solid #fff;outline-offset:4px}
.music-mute .muted-cross,.music-mute .music-play{display:none}
.music-mute[data-music-state="muted"] .muted-cross{display:block}
.music-mute[data-music-state="muted"] .sound-waves,.music-mute[data-music-state="paused"] .sound-waves,.music-mute[data-music-state="paused"] .speaker-shape{display:none}
.music-mute[data-music-state="paused"] .music-play{display:block;fill:currentColor;stroke:none}
.music-mute:disabled{cursor:default;opacity:.5}

/* Stationary original curtain photograph only: no animated curtain elements. */

/* Visitor controls, not a setup screen. No stage or instrument styling changes. */
#voice-dialog{top:auto;left:auto;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));transform:none;width:min(410px,calc(100vw - 40px));max-height:calc(100dvh - 40px);padding:28px;border-radius:18px;border-color:#ffdb9840;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
#voice-dialog::backdrop{background:transparent;backdrop-filter:none}
#voice-dialog .voice-eyebrow{font-size:.8rem;line-height:1.5;letter-spacing:.14em;margin:0 36px 10px 0;color:#ffdb98}
#voice-dialog h2{font-size:1.9rem;line-height:1.2;margin:0 12px 16px 0}
#voice-dialog #voice-disclosure{font-size:1rem;line-height:1.6;margin:0;color:#ede5d9}
#voice-dialog a,.voice-privacy a{color:#ffdb98;text-decoration:underline;text-underline-offset:3px}
#voice-dialog a:focus-visible,.voice-privacy a:focus-visible{outline:2px solid #ffdb98;outline-offset:4px}
#voice-dialog .voice-status{font-size:1rem;line-height:1.6;border-block:0;margin:16px 0 0;padding:0;color:#d3c6b4}
#voice-dialog .voice-wave{display:none;height:38px;margin-top:12px}
#voice-dialog.live-active .voice-wave{display:flex}
#voice-dialog .voice-captions{font-size:1rem;line-height:1.6;white-space:pre-wrap;min-height:0;max-height:160px;margin-top:16px}
#voice-dialog .voice-actions{margin-top:22px}
#voice-dialog .voice-actions button{font-size:1rem;border-radius:9px}
#voice-dialog #voice-start{background:#ffdb98;color:#21170b;border-color:#ffdb98}
.voice-privacy{background:#080706;border-top:1px solid #ffdb9833;color:#dfd6c9;padding:48px max(24px,env(safe-area-inset-right)) max(88px,env(safe-area-inset-bottom));scroll-margin-top:28px}
.voice-privacy-inner{width:100%;max-width:1000px;margin:0 auto}
.voice-privacy h2{font-size:1.4rem;line-height:1.4;color:#ffdb98;margin:0 0 22px}
.voice-privacy p{font-size:1rem;line-height:1.8;margin:0 0 18px;max-width:85ch}
.voice-privacy p:last-child{margin-bottom:0}
.voice-privacy:focus-visible{outline:2px solid #ffdb98;outline-offset:-6px}
@media(max-width:480px){#voice-dialog{right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:24px}#voice-dialog h2{font-size:1.7rem}.voice-privacy{padding-top:36px}}
@media(forced-colors:active){#voice-dialog,.voice-privacy{background:Canvas;color:CanvasText;border-color:CanvasText}#voice-dialog h2,#voice-dialog #voice-disclosure,#voice-dialog .voice-status,.voice-privacy h2{color:CanvasText}#voice-dialog a,.voice-privacy a{color:LinkText}#voice-dialog #voice-start{background:ButtonFace;color:ButtonText;border-color:ButtonText}}
