.sound-toggle{position:fixed;z-index:30;right:24px;bottom:calc(20px + env(safe-area-inset-bottom));min-height:44px;display:flex;align-items:center;gap:9px;padding:10px 16px;border:1px solid #b8cdeb;border-radius:100px;background:#f5f8fef2;color:#2868d1;font:600 13px/1.2 var(--font-body, sans-serif);box-shadow:0 4px 18px #2868d112;cursor:pointer;backdrop-filter:blur(12px)}
.sound-toggle[hidden]{display:none}
.sound-toggle svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.sound-toggle .sound-spark{fill:#e7b93f;stroke:none}
.sound-toggle[aria-pressed=true]{background:#2868d1;color:white;border-color:#2868d1}
.sound-toggle:hover{box-shadow:0 4px 20px #2868d130}
.sound-toggle:focus-visible{outline:3px solid #d7a82e;outline-offset:4px}
.sound-status{position:fixed;right:24px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:30;max-width:260px;font-size:13px;color:#2868d1;background:#f5f8fe;border-radius:12px;padding:10px 14px;box-shadow:0 4px 18px #2868d112}
.sound-status:empty{display:none}
@media(max-width:700px){.sound-toggle{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));font-size:12px;padding:10px 13px}.sound-status{right:12px;bottom:calc(64px + env(safe-area-inset-bottom))}}

.sound-invitation{position:fixed;z-index:31;right:24px;bottom:calc(20px + env(safe-area-inset-bottom));width:min(310px,calc(100vw - 24px));box-sizing:border-box;padding:20px;border:1px solid #b8cdeb;border-radius:24px;background:#f5f8fe;box-shadow:0 8px 32px #2868d11a;color:#2868d1;font-family:var(--font-body,sans-serif)}
.sound-invitation[hidden]{display:none}
.sound-invitation p{margin:0;font-size:20px;font-weight:600;line-height:1.25}
.sound-invitation .sound-invitation-copy{margin:8px 0 16px;font-size:14px;line-height:1.45;font-weight:400;color:#536b8d}
.sound-invitation div{display:flex;gap:8px}
.sound-invitation button{min-height:44px;border:1px solid #b8cdeb;border-radius:100px;padding:10px 16px;background:transparent;color:#2868d1;font:600 14px/1.2 var(--font-body,sans-serif);cursor:pointer}
.sound-invitation #sound-accept{background:#2868d1;color:white;border-color:#2868d1}
.sound-invitation button:focus-visible{outline:3px solid #d7a82e;outline-offset:3px}
@media(max-width:700px){.sound-invitation{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));padding:16px}}

/* Reserve a separate caption lane beside the measured sound controls. */
.experience .stage .scene-caption{
  right:max(6%,var(--sound-caption-clearance,24px));
  max-width:calc(94% - max(6%,var(--sound-caption-clearance,24px)));
}
.experience .scene-caption>span:first-child{flex:none}
.experience .scene-caption>span:last-child{min-width:0;overflow-wrap:anywhere}
