/* Six continuous field mappings, four independent holds, one main Reset. */
.fx-deck{--deck-level:0;position:absolute;inset:0;container-type:size;display:grid;grid-template-rows:44px minmax(0,1fr) auto;gap:10px;padding:14px;background:var(--panel);color:var(--fg);overflow:hidden;user-select:none;-webkit-user-select:none;}
body[data-immersive="true"] .fx-deck{inset:var(--immersive-top,72px) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border:0;border-radius:0;}
body[data-immersive="true"] .deck-platter:focus-visible{outline:none;}
body[data-immersive="true"] .deck-platter:focus-visible::after{content:'';position:absolute;right:8px;bottom:8px;width:5px;height:5px;border-radius:50%;background:var(--focus);pointer-events:none;}
.deck-selector{display:grid;grid-template-columns:minmax(0,1fr);min-height:44px;}
.deck-selector select,.deck-selector button{min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--fg);font:inherit;font-size:12px;font-weight:600;padding:0 12px;}
.deck-selector select{width:100%;cursor:pointer;}.deck-selector button{padding:0 7px;cursor:pointer;}
@media(any-pointer:coarse),(max-width:900px){.deck-selector select{font-size:16px;}}
.deck-selector button:hover{background:var(--accent-hover);color:var(--accent-ink);border-color:var(--accent-hover);}
.deck-selector :focus-visible,.deck-pads button:focus-visible,.deck-platter:focus-visible{outline:2px solid var(--focus);outline-offset:2px;}
.deck-console{display:grid;grid-template-rows:minmax(44px,1fr) 60px;gap:9px;min-width:0;min-height:0;}
.deck-record-stage{position:relative;min-height:0;min-width:0;padding-bottom:19px;}
.deck-platter{position:absolute;inset:0 0 19px;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:4px;background:var(--panel);cursor:crosshair;touch-action:none;overflow:hidden;isolation:isolate;}
.deck-record,.deck-marker{display:none;}
.deck-signal{position:absolute;z-index:1;inset:13% 4%;width:92%;height:74%;fill:none;stroke:var(--accent-text);stroke-width:1.5;pointer-events:none;overflow:hidden;}
.deck-signal-main,.deck-signal-right{vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;}
.deck-signal-main{stroke-width:2;}.deck-signal-right{stroke-width:1.3;}.deck-signal-fill{fill:var(--accent-text);stroke:none;}
.fx-art{position:absolute;z-index:0;inset:0;width:100%;height:100%;fill:none;overflow:hidden;color:var(--accent-text);pointer-events:none;}
.fx-art-trace{stroke:currentColor;stroke-width:.9;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;}
.fx-art-ribbon{fill:currentColor;fill-opacity:.07;stroke:none;}
.fx-art-focus{fill:none;stroke:var(--fg);stroke-width:1;stroke-opacity:.36;stroke-linecap:round;vector-effect:non-scaling-stroke;}
.deck-label{display:none;}
.deck-audio-ring{position:absolute;inset:0;border:1px solid var(--accent-text);border-radius:inherit;opacity:calc(var(--deck-level)*.75);pointer-events:none;}
.deck-touch-dot{position:absolute;z-index:3;width:12px;height:12px;border:1px solid var(--fg);background:var(--accent);opacity:0;transform:translate(-50%,-50%);pointer-events:none;}.deck-touching .deck-touch-dot{opacity:1;}
.deck-rolling .deck-platter{border-style:dashed;}
.deck-bend{position:absolute;bottom:0;left:0;right:0;min-width:0;font:11px/1.45 var(--mono);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.deck-pads{display:grid;grid-template-columns:repeat(4,minmax(44px,1fr));gap:7px;min-height:44px;min-width:0;border-top:1px solid var(--line);padding-top:9px;}
.deck-pads button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:44px;min-height:44px;padding:5px 3px 8px;border:1px solid var(--line);border-radius:4px;background:none;color:var(--fg);font-size:11px;font-weight:600;touch-action:none;}
.deck-pads button::before{content:'';position:absolute;left:18%;right:18%;bottom:4px;height:2px;background:currentColor;opacity:.5;transform:scaleX(var(--pad-amount,0));transform-origin:left;pointer-events:none;}
.deck-pads button::after{content:'';position:absolute;top:4px;right:5px;font:9px/1 var(--mono);font-variant-numeric:tabular-nums;opacity:.8;pointer-events:none;}
.deck-pads button[aria-pressed="true"]::after{content:attr(data-amount);}
.deck-pads button[aria-pressed="true"]{--pad-amount:1;}
.deck-pads button:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-ink);}.deck-pads button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);}
.deck-pad-symbol{display:block;width:27px;height:16px;}.deck-pad-symbol svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;}
.deck-foot{display:flex;align-items:center;gap:8px;min-height:24px;min-width:0;color:var(--muted);font-size:11px;line-height:1.3;pointer-events:none;}.deck-foot p{flex:1;margin:0;min-width:0;}.deck-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
.fx-deck[data-gentle="true"] .deck-audio-ring{opacity:0;}.fx-deck[data-gentle="true"] .deck-marker{transition:none;}
/* 220/237px stages retain all real 44px hit targets with no vertical scrolling. */
@container(max-height:320px){.deck-console{grid-template-columns:minmax(44px,1fr) 116px;grid-template-rows:minmax(0,1fr);gap:9px;}.deck-pads{grid-template-columns:repeat(2,minmax(44px,1fr));grid-template-rows:repeat(2,minmax(44px,1fr));gap:6px;border-top:0;border-left:1px solid var(--line);padding-top:0;padding-left:8px;}.deck-pads button{gap:3px;font-size:10px;}.deck-foot{min-height:20px;font-size:10px;}}
@container(max-height:250px){.deck-pad-symbol{height:12px;width:23px;}.deck-console{grid-template-columns:minmax(44px,1fr) 104px;gap:7px;}.deck-record-stage{padding-bottom:17px;}.deck-platter{bottom:17px;}.deck-foot{font-size:9px;}}
@media(max-width:360px){.fx-deck{padding:10px;gap:8px;}.deck-console{gap:7px;}}
@media(prefers-reduced-motion:reduce){.deck-audio-ring{opacity:0!important;}.deck-marker{transition:none;}}
