.audio-controls { display: flex; align-items: center; gap: 3px; }
.gate-scene { overflow: clip; }
.audio-controls .sound-toggle { margin: 0; width: 44px; height: 44px; padding: 11px; }
.audio-settings { position: relative; color: #a43e75; }
.audio-settings summary { list-style: none; width: 44px; height: 44px; padding: 11px; cursor: pointer; }
.audio-settings summary::-webkit-details-marker { display: none; }
.audio-settings summary svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linecap: round; }
.audio-settings summary:focus-visible { outline: 2px solid #b44480; outline-offset: 2px; }
.audio-panel { position: absolute; top: 51px; right: 0; width: 230px; padding: 22px; border: 1px solid #b9ddeb; border-radius: 6px; box-shadow: 0 8px 25px #365b7312; background: #fbfdff; display: grid; gap: 15px; }
.audio-panel label { display: flex; justify-content: space-between; color: #365b73; font-size: 12px; }
.audio-panel output { color: #a43e75; font-variant-numeric: tabular-nums; }
.audio-panel input { width: 100%; margin: 0 0 8px; accent-color: #bd6d99; cursor: pointer; min-height: 24px; }
#musicToggle.is-playing { color: #a43e75; }
.potion-touch { display: block; transform-origin: 50% 70%; transition: transform .45s cubic-bezier(.2,.7,.25,1); }
.potion.is-near .potion-touch,.potion:focus-visible .potion-touch { transform: translateY(-9px) scale(1.035); }
.potion.is-near .potion-name { opacity: 1; transform: translate(-50%,0); }
.gate-art.is-ringing .gate-frame { animation: gate-welcome 1s ease both; }
@keyframes gate-welcome { 0%,100% { filter: none; } 38% { filter: drop-shadow(0 0 5px #8ecde680) brightness(1.06); } }
.cauldron { --brew: #b1ddea; }
.cauldron[data-elixir="brand"],.cauldron[data-elixir="graphic"] { --brew: #dfa7c8; }
.cauldron.is-brewing .brewing-ripples i { border-color: var(--brew); }
.cauldron.is-brewing .pot-steam svg { stroke: var(--brew); }
.cauldron.is-brewing::after { content: ""; position: absolute; left: 54%; top: 52.5%; width: 35%; height: 6%; transform: translate(-50%,-50%); border-radius: 50%; background: var(--brew); opacity: .25; filter: blur(5px); pointer-events: none; }
.preview-flight { position: fixed; z-index: 5; pointer-events: none; object-fit: fill; transform-origin: top left; border-radius: 5px; margin: 0; }
#lightbox.is-card-opening #lightboxImage,#lightbox.is-card-opening figcaption { opacity: 0; }
.preview-origin { opacity: 0 !important; }
#lightbox[data-kind="image"] figure { width: 100%; min-width: 0; min-height: 0; }
#lightbox[data-kind="image"] #lightboxImage { width: 100%; height: 100%; min-width: 0; min-height: 0; object-fit: contain; }
@media(max-width:820px) { .header-right { gap: 12px; } .audio-controls { gap: 0; } }
@media(max-width:420px) { .identity b { display: none; } .header-right { gap: 6px; } .header-right a { font-size: 12px; } .rope-prompt { left: auto; right: -4px; top: 100%; } }
@media(prefers-reduced-motion:reduce) {
  .potion-touch { transition: none; }
  .potion.is-near .potion-touch,.potion:focus-visible .potion-touch { transform: none; }
  .gate-art.is-ringing .gate-frame { animation: none; }
}
