/* Cabinet Night v2: retain the recovered artwork; fit the complete working cabinet above the fold.
   The board uses nine-slice art so its bolts and rim retain their shape at every width. */
.cabinet{padding-bottom:12px}
.topbar{padding-top:5px;padding-bottom:5px;min-height:58px}
.cab-body{width:calc(100% - 32px);max-width:1240px;border-radius:22px 22px 10px 10px}
.marquee{margin:10px 14px 0;height:clamp(66px,9svh,104px)}
.logo{width:calc(clamp(140px,18svh,218px) * var(--sz,1))}
.mq-bulbs i{width:6px;height:6px;margin:-3px 0 0 -3px}
.bay-row{position:relative;grid-template-columns:minmax(0,1fr);gap:16px;padding:10px 22px 0;min-height:0}
.tube{width:min(100%,calc(clamp(380px,62svh,700px) * var(--tsz,1)))}
.attendant{position:absolute;right:22px;top:50%;transform:translateY(-50%);display:grid;grid-template-columns:1fr;justify-items:center;gap:7px;width:180px;max-width:none;margin:0}
.cam{width:calc(clamp(66px,10svh,112px) * var(--sz,1))}
.say{font-size:11px;padding:7px 9px;min-height:0;text-align:center;max-width:180px}
.scout{width:calc(clamp(66px,10svh,112px) * var(--sz,1))}
.deck{--control-h:clamp(44px,6svh,60px);isolation:isolate;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;margin:9px 22px 0;padding:14px 24px;background:none;box-shadow:none;border-radius:0}
.deck::before{display:none}
.deck-art{position:absolute;inset:0;z-index:-1;pointer-events:none;border:22px solid transparent;border-image:var(--panel-art) 100 100 fill / 22px / 0 stretch;filter:drop-shadow(0 5px 5px #0008)}
.deck .dk-grp,.deck .act{position:relative;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:12px;min-width:0;order:initial}
.deck .act-grp{gap:16px;justify-self:end}
.deck .btn{--bscale:.8}
.deck .btn.key{width:calc(var(--control-h) * var(--kar,1) * var(--sz,1))}
.deck .btn.pbtn{width:calc(var(--control-h) * var(--par,1) * var(--sz,1))}
.deck .btn .lbl{font-size:clamp(14px,2.2svh,20px)}
.deck .silk,.deck .bsilk{display:none}
.deck .port-grp{display:none}
.deck .sel-grp{width:100%;align-items:stretch}
.sel-row{gap:10px;width:100%;min-width:0;justify-content:center}
.lcd-mini{flex:none;min-width:60px;height:26px;padding:0 6px}
#fader{min-width:60px;max-width:360px}
.shelf-wrap{margin:4px 22px 10px}
.changer{aspect-ratio:auto;height:clamp(168px,25svh,270px);max-height:none;background:none;box-shadow:none}
.changer-hint{font-size:9px;letter-spacing:.04em;text-align:center;margin:0;line-height:1.4;color:var(--ink-3)}
/* Keep a useful game view and full changer on portrait screens; compact controls use two aligned rows. */
@media(max-width:1100px){.attendant{display:none}}
@media(max-width:760px){
 .topbar{gap:2px;padding:3px 12px;flex-wrap:wrap;justify-content:center;min-height:0}
 .coinop{width:100%;order:2;text-align:center;font-size:9px;line-height:1.6;letter-spacing:.09em}
 .ctrl{padding:2px 4px}.navl{font-size:12px;padding:0 6px}.keyt .ktxt{display:none}
 .cab-body{width:calc(100% - 16px);border-width:4px}
 .marquee{height:60px;margin:7px 8px 0}.logo{width:132px}
 .bay-row{grid-template-columns:1fr;padding:8px 9px 0;gap:0}
 .tube{width:min(100%,calc(560px * var(--tsz,1)))}
 .attendant{display:none}
 .deck{--control-h:44px;grid-template-columns:44px minmax(0,1fr);gap:8px 10px;justify-items:stretch;padding:17px 13px;margin:7px 8px 0}
 .deck-art{border-width:16px;border-image-width:16px}
 .deck .act-grp{grid-column:1/-1;justify-self:center;gap:18px}
 .deck .act{gap:0}
 .deck .btn .lbl{font-size:15px}
 .lcd-mini{position:absolute;right:6px;top:-12px;height:18px;min-width:46px;transform:scale(.75);transform-origin:top right}
 .sel-row{gap:5px}
 #fader{min-width:36px}
 .shelf-wrap{margin:3px 8px 8px}
 .changer{height:clamp(164px,23svh,220px)}
 .changer-hint{font-size:8px;max-width:290px;margin:0 auto}
}
@media(prefers-reduced-motion:reduce){.ns *,.ns *::before,.ns *::after{animation:none!important;transition-duration:.01ms!important}}
