/* Sound settings belong to the independent UI preview; production still needs its own integration. */
.game-top{position:relative;z-index:22}
.music{padding-right:5px;gap:8px}
.music:has(.awaiting-start) #music-label{cursor:pointer;color:#9b473e;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.music #music-toggle.awaiting-start{animation:music-start-pulse 1.1s ease-in-out infinite}
@keyframes music-start-pulse{50%{transform:scale(1.12) rotate(-7deg);background:#f2d394}}
.music output{min-width:36px;text-align:right}
.music #audio-lab-toggle{position:relative;display:grid;place-items:center;flex:none;width:38px;height:35px;margin-left:2px;padding:2px;background:#d7b87d;border:3px solid #172b33;border-radius:10px 13px 11px 9px;box-shadow:2px 2px 0 #172b33;transform:rotate(-3deg);transition:transform .25s cubic-bezier(.2,1.7,.4,1),background .2s}
.music #audio-lab-toggle:hover{background:#edce8b;transform:rotate(3deg) translateY(-2px) scale(1.07)}
.music #audio-lab-toggle:active{transform:translate(2px,2px) scale(.94);box-shadow:none}
.music #audio-lab-toggle svg{width:24px;height:24px;fill:none;stroke:#172b33;stroke-width:4px;transition:transform .36s cubic-bezier(.2,1.7,.4,1)}
.music #audio-lab-toggle[aria-expanded=true]{background:#edce8b}
.music #audio-lab-toggle[aria-expanded=true] svg{transform:rotate(180deg)}

.audio-lab{position:absolute;z-index:21;right:34px;top:70px;width:min(450px,calc(100% - 24px));max-height:min(645px,calc(100vh - 125px));overflow:auto;padding:15px;color:#f7efd1;background:radial-gradient(ellipse at 18% 14%,#337264 0 2px,transparent 3px),radial-gradient(ellipse at 83% 33%,#337264 0 3px,transparent 4px),linear-gradient(157deg,#24574e,#173c3d 68%,#12343a);background-size:47px 53px,73px 61px,auto;border:5px solid #102b32;border-radius:23px 17px 27px 19px / 18px 25px 17px 26px;box-shadow:7px 9px 0 #0b252b,inset 0 0 0 3px #68a082;animation:lab-enter .46s cubic-bezier(.16,1.45,.42,1) both;font-family:'Microsoft YaHei',sans-serif;scrollbar-color:#d7b87d #163a3c;scrollbar-width:thin}
.audio-lab:before{content:'';position:absolute;inset:8px;pointer-events:none;border:2px dashed #7cae8d55;border-radius:18px 12px 20px 13px}
.audio-lab>*{position:relative}
.audio-lab-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 13px;padding:3px 3px 10px;border-bottom:3px dashed #5f9681}
.audio-lab-head strong{font:29px/1 Happy,'Microsoft YaHei',sans-serif;color:#f0d591;letter-spacing:2px;text-shadow:2px 3px 0 #0d2830;-webkit-text-stroke:.5px #102b32;animation:lab-title-bob 2.8s steps(1,end) infinite}
.audio-lab-head strong span{font:19px Happy;color:#f4e8bb;display:inline-block;animation:lab-spark 2.5s ease-in-out infinite}
.audio-lab button{cursor:pointer;color:#172b33;background:#d7b87d;border:3px solid #102b32;border-radius:10px 13px 9px 12px;box-shadow:2px 3px 0 #0c262c;font:15px Happy,'Microsoft YaHei',sans-serif;transition:transform .23s cubic-bezier(.2,1.6,.4,1),background .2s,box-shadow .2s}
.audio-lab button:hover{background:#f0d18a;transform:translateY(-3px) rotate(-2deg) scale(1.05)}
.audio-lab button:active{transform:translate(2px,2px) scale(.95);box-shadow:none}
.audio-lab-head button{width:34px;height:34px;padding:0;font-size:25px;line-height:1}
.audio-lab-row{display:grid;grid-template-columns:94px minmax(62px,1fr) 42px 46px;align-items:center;gap:7px;margin:8px 0;padding:7px 8px;background:#2b6053;border:2px solid #112f34;border-radius:12px 9px 14px 11px;box-shadow:2px 3px 0 #0d2e32,inset 0 0 0 1px #79a78255}
.audio-lab-row:nth-child(even){background:#28594f;transform:rotate(.25deg)}
.audio-lab-row label{font:16px Happy,'Microsoft YaHei',sans-serif;white-space:nowrap;text-shadow:1px 2px 0 #16382f;animation:lab-label-bob 3.2s steps(1,end) infinite;animation-delay:calc(var(--row,0)*-.31s)}
.audio-lab-row output{text-align:right;white-space:nowrap;font:14px Happy,'Microsoft YaHei',sans-serif;font-variant-numeric:tabular-nums;color:#f4e0ab}
.audio-lab-row input[type=range]{width:100%;height:13px;margin:0;appearance:none;-webkit-appearance:none;background:#b4c59d;border:3px solid #102b32;border-radius:20px;cursor:pointer}
.audio-lab-row input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:23px;height:24px;background:#ebc478;border:3px solid #102b32;border-radius:48% 56% 43% 57%;box-shadow:2px 2px 0 #0b2830;cursor:grab}
.audio-lab-row input[type=range]::-moz-range-thumb{width:17px;height:18px;background:#ebc478;border:3px solid #102b32;border-radius:48% 56% 43% 57%;box-shadow:2px 2px 0 #0b2830;cursor:grab}
.audio-lab-row input[type=range]:active::-webkit-slider-thumb{cursor:grabbing;transform:scale(1.1)}
.audio-lab-row button{padding:3px 4px;font-size:13px;white-space:nowrap}
.audio-lab-row.extra{grid-template-columns:139px minmax(65px,1fr) 53px;margin-top:11px}
.audio-lab-row.extra label{font-size:14px}
.audio-lab-tests{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin:16px 1px 11px}
.audio-lab-tests button{min-height:37px;padding:5px 4px;font-size:13px;white-space:nowrap;animation:lab-action-bob 3.1s ease-in-out infinite}
.audio-lab-tests button:nth-child(2){animation-delay:.25s}.audio-lab-tests button:nth-child(3){animation-delay:.5s}
#audio-status{min-height:22px;margin:8px 3px 2px;padding:8px 10px;background:#153a3c;border:2px solid #0b2830;border-radius:9px 12px 8px 10px;color:#e9e6c6;font:12px/1.5 'Microsoft YaHei',sans-serif}
@keyframes lab-enter{0%{opacity:0;transform:translateY(-13px) scale(.88) rotate(-2deg)}60%{opacity:1;transform:translateY(4px) scale(1.025) rotate(.6deg)}100%{opacity:1;transform:translateY(0) scale(1) rotate(0)}}
@keyframes lab-title-bob{0%,100%{transform:translateY(0) rotate(-1deg)}33%{transform:translateY(-2px) rotate(.6deg)}66%{transform:translateY(1px) rotate(-.5deg)}}
@keyframes lab-label-bob{0%,100%{transform:translateY(0)}25%{transform:translateY(-1px) rotate(-1deg)}50%{transform:translateY(1px)}75%{transform:translateY(-1px) rotate(.8deg)}}
@keyframes lab-spark{50%{transform:translateY(-3px) rotate(18deg) scale(1.15)}}
@keyframes lab-action-bob{0%,100%{translate:0 0}50%{translate:0 -2px}}
@media(max-width:700px){.music{gap:6px;padding-right:4px}.music output{min-width:31px}.music #audio-lab-toggle{width:32px;height:31px;margin-left:0}.music #audio-lab-toggle svg{width:20px;height:20px}.audio-lab{right:9px;top:59px;width:calc(100% - 18px);max-height:calc(100vh - 155px);padding:11px;border-width:4px}.audio-lab-head strong{font-size:26px}.audio-lab-row{grid-template-columns:75px minmax(49px,1fr) 37px 43px;gap:5px;padding:7px 6px}.audio-lab-row label{font-size:14px}.audio-lab-row output{font-size:12px}.audio-lab-row.extra{grid-template-columns:112px minmax(50px,1fr) 45px}.audio-lab-row.extra label{font-size:12px}.audio-lab-tests button{font-size:11px}}
@media(max-width:370px){.music{gap:4px}.music input{width:66px}.audio-lab-row{grid-template-columns:67px minmax(44px,1fr) 34px 39px;gap:4px}.audio-lab-row label{font-size:13px}.audio-lab-row button{font-size:11px}.audio-lab-tests button{font-size:10px}}
.reduce-motion .audio-lab *, .reduce-motion .audio-lab, .reduce-motion #audio-lab-toggle{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.audio-lab,.audio-lab *,.music #audio-lab-toggle,.music #audio-lab-toggle svg,.music #music-toggle.awaiting-start{animation:none!important;transition:none!important}}
