/* Instrument-only additions. Studio 88's application styles remain unchanged. */
body.gt-ui #piano{height:clamp(330px,54dvh,660px)!important;width:100%!important;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 72%,rgba(149,164,154,.07),transparent 65%);overflow:hidden;touch-action:pan-y;}
body.gt-ui.gt-kbd-sm #piano{height:clamp(220px,33dvh,340px)!important;}
#piano #rudix-drumkit{display:block;width:auto;height:100%;max-width:100%;overflow:visible;user-select:none;-webkit-user-select:none;}
#piano .r-hit,#piano .r-pedal{cursor:pointer;outline:none;touch-action:none;}
#piano .r-impact{opacity:0;pointer-events:none;}
#piano .r-hit:focus-visible{outline:1px dashed #eee;outline-offset:4px;}
#piano .r-hit .r-moving{transform-box:view-box;}
#piano .r-key{opacity:0;transition:opacity .15s;pointer-events:none;}
#piano .r-key rect{fill:#0b1011;fill-opacity:.84;stroke:#b4c0b8;stroke-opacity:.4;}
#piano .r-key text{fill:#eee9dd;font:11px Poppins,sans-serif;}
#piano .r-show-keys .r-key,#piano .r-hit:hover>.r-key,#piano .r-hit:focus-visible>.r-key{opacity:1;}
#piano .r-hardware{pointer-events:none;}
body.gt-ui #oct-row,body.gt-ui #drum-panel,body.gt-ui #drums-tab,body.gt-ui #keys-tab{display:none!important;}
#rudix-settings{padding:11px 9px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:linear-gradient(145deg,rgba(35,39,37,.58),rgba(11,13,12,.38));box-shadow:inset 0 1px rgba(255,255,255,.08);font:10px Poppins,sans-serif;color:var(--white);}
#rudix-settings h3{font-size:9px;font-weight:500;color:var(--gold);letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px;}
#rudix-settings label{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:9px;line-height:1.5;margin:10px 0 6px;}
#rudix-settings select{width:100%;border:1px solid var(--b3);border-radius:7px;padding:7px;color:var(--white);background:var(--p1);font:9px Poppins,sans-serif;}
#rudix-settings input[type=color]{height:27px;width:38px;border:1px solid var(--b3);border-radius:5px;background:transparent;padding:2px;cursor:pointer;}
#rudix-settings input[type=range]{width:100%;accent-color:var(--gold);}
.rudix-swatches{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:6px;}
.rudix-swatches button{width:21px;height:21px;min-height:0;border:2px solid transparent;border-radius:50%;background:var(--swatch);cursor:pointer;padding:0;box-shadow:inset 0 1px 2px #fff3;}
.rudix-swatches button[aria-pressed=true]{outline:1px solid var(--gold);outline-offset:2px;border-color:var(--p1);}
.rudix-swatches button:focus-visible,#rudix-settings :focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
#rudix-velocity-meter{height:5px;overflow:hidden;border-radius:5px;background:var(--b2);}
#rudix-velocity-fill{height:100%;width:0;background:linear-gradient(90deg,var(--local-key),var(--gold));transition:width .06s;}
#rudix-settings p{font-size:8px;line-height:1.7;color:var(--g1);margin:9px 0 0;}
#rudix-input-source{color:var(--g1);font-size:8px;}
#rudix-model-description{font-size:8px;color:var(--g1);line-height:1.6;margin-top:8px;}
body.light #rudix-settings{background:rgba(255,255,255,.5);border-color:rgba(255,255,255,.7);}
body.light #piano{background:radial-gradient(ellipse at 50% 72%,rgba(60,75,64,.08),transparent 68%);}
@media(max-width:600px){body.gt-ui #piano{height:clamp(270px,45dvh,430px)!important;}body.gt-ui.gt-kbd-sm #piano{height:190px!important;}}
@media(prefers-reduced-motion:reduce){#piano .r-key,#rudix-velocity-fill{transition:none;}}

#piano .r-pedal:focus-visible{filter:drop-shadow(0 0 3px var(--gold));}
#piano .r-pedal .r-footboard,#piano .r-beater{transform-box:view-box;}
#piano .r-hat-top{transition:transform 35ms linear;}
#piano .r-shell-response,#piano .r-head-response{pointer-events:none;}
@media(prefers-reduced-motion:reduce){#piano .r-hat-top{transition:none;}}
/* Photographic instrument stage: original local assets, independently animated pieces. */
body.gt-ui #gt-dock{background-image:linear-gradient(180deg,rgba(7,10,10,.48),rgba(8,10,11,.15) 35%,rgba(5,7,8,.4)),url('./assets/drums/rudix-studio-stage-v1.png');background-size:cover;background-position:center bottom;}
body.gt-ui #piano,body.light.gt-ui #piano{background:none;}
body.gt-ui #gt-dock #chassis{box-shadow:none;}
#piano .r-photo{pointer-events:none;}
#piano.r-matte .r-moving{filter:contrast(.92) saturate(.88);}
#piano .r-hit{pointer-events:bounding-box;}
#piano .r-pedal{pointer-events:bounding-box;}
body.gt-ui #gt-dock-bar{background:rgba(7,10,11,.7);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);}
#piano svg.r-photo{overflow:hidden!important;pointer-events:none;}
#piano .r-hit,#piano .r-pedal{pointer-events:bounding-box;}
#piano .r-hit .r-impact{pointer-events:all;}
#piano .r-pedal-target{pointer-events:all;}
body.gt-ui #gt-dock #chassis{background:transparent;border-top:0;}
body.light.gt-ui #gt-dock{background-image:linear-gradient(180deg,rgba(7,10,10,.3),rgba(8,10,11,.08) 35%,rgba(5,7,8,.3)),url('./assets/drums/rudix-studio-stage-v1.png');}

#piano .r-head-response{mix-blend-mode:multiply;}

/* Shell finish and performance feedback are deliberately independent. */
body.gt-ui #b-c4,#piano .r-key{display:none!important;}
#piano .r-cymbal-response{pointer-events:none;mix-blend-mode:multiply;}
#piano .r-hat-wobble{transform-box:view-box;}
#piano .r-head-response{transform-box:view-box;}
/* Override the inherited short piano height: keep a playable kit on shorter windows. */
body.gt-ui #gt-dock #piano{height:clamp(240px,min(54dvh,60vw),660px)!important;}
body.gt-ui.gt-kbd-sm #gt-dock #piano{height:clamp(180px,30dvh,300px)!important;}
@media(max-height:760px){body.gt-ui #gt-dock #piano{height:clamp(220px,36dvh,300px)!important;}body.gt-ui.gt-kbd-sm #gt-dock #piano{height:180px!important;}}
/* Coherent scene: hit areas follow the visible surfaces, never image bounds. */
#piano .r-hit,#piano .r-pedal{pointer-events:none;}
#piano .r-hit .r-impact{pointer-events:none;}
#piano .r-zone-target,#piano .r-pedal-target{pointer-events:all;}
#piano .r-hat-top,#piano .r-hat-wobble,#piano .r-beater-head,#piano .r-beater-shaft,#piano .r-footboard{transform-box:view-box;}
#piano .r-hat-wobble{transform-origin:178px 332px;}
#piano.r-matte .r-moving{filter:none;}
#piano.r-matte .r-kit-finish{filter:contrast(.94) saturate(.9);}
/* Reserve the real session-toolbar height. Small windows scroll instead of
   hiding session controls behind the score or shrinking the kit to a strip. */
body.gt-ui{grid-template-rows:auto minmax(var(--rudix-stage-min,136px),1fr) auto;overflow-y:auto;max-height:none;}
body.gt-ui #gt-dock #piano{height:clamp(220px,min(54dvh,60vw,var(--rudix-kit-max,660px)),660px)!important;}
body.gt-ui.gt-kbd-sm #gt-dock #piano{height:clamp(180px,min(30dvh,var(--rudix-kit-max,300px)),300px)!important;}
@media(max-height:760px){body.gt-ui #gt-dock #piano{height:clamp(220px,min(36dvh,var(--rudix-kit-max,300px)),300px)!important;}body.gt-ui.gt-kbd-sm #gt-dock #piano{height:180px!important;}}
/* Note colors appear only during a strike, then return to the natural photo. */
#piano .r-head-response{mix-blend-mode:multiply;}
#piano [data-piece="kick"] .r-head-response{mix-blend-mode:screen;}
#piano .r-moving,#piano .r-hat-wobble{will-change:transform;}
