/* Step 3: a dedicated folding rail in the quiet margin beside the board.
   It never covers a playable cell or changes the approved merged HUD. */
.fold-console{position:absolute;left:686px;top:314px;width:90px;height:294px;z-index:7;display:flex;align-items:center;flex-direction:column;color:#172f26;font-family:PaperBrush,PaperCJK,serif;isolation:isolate}
.fold-ribbon{position:absolute;left:-51px;top:51px;width:192px;height:192px;object-fit:contain;transform:rotate(90deg);z-index:-2;pointer-events:none;filter:drop-shadow(0 3px 4px #1d2d2344)}
.fold-sequence{height:96px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:0;padding-top:2px}
.fold-bead{position:relative;display:block;width:31px;height:31px;border-radius:50%;opacity:.34;filter:grayscale(.9);transition:filter .2s,opacity .2s,transform .2s}
.fold-bead img{display:block;width:31px;height:31px;object-fit:contain}
.fold-bead.lit{opacity:1;filter:none;transform:scale(1.08);filter:drop-shadow(0 0 5px #f2d576)}
.fold-bead.next{opacity:.82;filter:none;animation:fold-next 1.15s ease-in-out infinite alternate}
.fold-cast,.fold-axis{position:relative;display:block;border:0;background:transparent;color:#172f26;font-family:PaperBrush,PaperCJK,serif;padding:0;overflow:visible}
.fold-cast{width:83px;height:83px;margin-top:1px}
.fold-seal{position:absolute;left:0;top:0;width:83px;height:83px;object-fit:contain}
.fold-orb{position:absolute;right:-2px;top:-7px;width:34px;height:34px;object-fit:contain;opacity:0;transform:scale(.6)}
.fold-cast.ready .fold-orb{opacity:1;transform:scale(1);filter:drop-shadow(0 0 8px #f3d272);animation:fold-ready 1s ease-in-out infinite alternate}
.fold-cast>span{position:absolute;left:8px;top:29px;width:67px;font-size:20px;line-height:22px;color:#173b2f;text-shadow:0 1px #fff2cb}
.fold-cast>b{position:absolute;right:-1px;bottom:2px;min-width:31px;height:22px;border:1px solid #8f6d3e;border-radius:11px;background:#f6ead1;font:700 15px/20px PaperCJK,serif;color:#8a3028}
.fold-cast.active{filter:drop-shadow(0 0 8px #e2b74d)}
.fold-cast:disabled{opacity:1;filter:grayscale(.72)}
.fold-cast:disabled .fold-seal{opacity:.72}
.fold-axis{width:64px;height:61px;margin-top:1px}
.fold-arrow{position:absolute;left:9px;top:0;width:46px;height:46px;object-fit:contain;transition:transform .22s}
.fold-arrow.col{transform:rotate(90deg)}
.fold-axis>span{position:absolute;left:0;top:42px;width:64px;font-size:17px;line-height:19px}
.fold-axis:focus-visible,.fold-cast:focus-visible{outline:4px solid #f1d36e;outline-offset:1px;border-radius:18px}
.fold-console>p{margin:4px 0 0;width:86px;text-align:center;font:16px/18px PaperCJK,serif;color:#6e3c28;white-space:nowrap}
@keyframes fold-next{from{transform:scale(.92)}to{transform:scale(1.13);filter:drop-shadow(0 0 5px #d8ad54)}}
@keyframes fold-ready{from{transform:scale(.88) rotate(-8deg)}to{transform:scale(1.08) rotate(8deg)}}
.reduced .fold-bead.next,.reduced .fold-cast.ready .fold-orb{animation:none}

/* The tall/mobile composition is scaled from the same 780-LU stage, so the
   rail remains a 42px-class touch target at the 390px boundary. */
#stage[data-tall=true] .fold-console{top:314px}
@media (forced-colors:active){.fold-cast:focus-visible,.fold-axis:focus-visible{outline:4px solid Highlight;filter:none}.fold-bead{opacity:1}}
