.feature-screen{inset:8% 15% 4%;grid-template-rows:auto auto minmax(0,1fr) auto;padding:1.5% 2%;border-radius:2.5%;background:radial-gradient(circle at 50% 15%,#4a1d68 0,#180b27 55%,#07040d 100%);box-shadow:inset 0 0 2.4rem #000c,0 0 1.6rem #ff9d25}
.feature-header strong{font-size:clamp(20px,2.7vw,42px)}
.feature-board{width:min(86%,780px);max-height:none;gap:.7%;padding:.75%;border-width:clamp(2px,.22vw,4px);background:#08050fdb}
.feature-board[data-board-count="2"]{grid-template-rows:repeat(6,1fr)}
.feature-board[data-board-count="2"]>.feature-cell:nth-child(16){box-shadow:inset 0 4px 0 #ffcf53aa,0 -2px 0 #ffcf53aa}
.feature-cell{overflow:hidden;border-radius:6%;background:radial-gradient(circle at 50% 38%,#382044,#100918 74%)}
.feature-cell>.symbol{position:relative;width:100%;height:100%;min-width:0;min-height:0;border:0;background:transparent}
.feature-cell>.symbol .symbol-art{transform:scale(.82)!important}
.feature-cell.transient{border-color:#6f4b78;filter:saturate(.72) brightness(.82)}
.feature-cell.transient>.symbol{opacity:.84}
.feature-cell.locked{border-color:#ffcf53;filter:none;box-shadow:inset 0 0 .7rem #ffd55455,0 0 .4rem #ff9a28}
.feature-cell.locked.boosted{box-shadow:0 0 0 2px #62ddff,0 0 18px #62ddff,inset 0 0 14px #d7fbff}
.feature-cell.locked.boosted::after{content:none}
@keyframes boost-pulse{0%,100%{opacity:.35;transform:scale(.94)}50%{opacity:1;transform:scale(1)}}
.blue-boost-performance{position:absolute;z-index:40;inset:0;pointer-events:none;overflow:hidden}
.blue-boost-performance>img{position:absolute;left:50%;top:8%;width:35%;height:35%;object-fit:contain;translate:-50% 0;filter:drop-shadow(0 0 22px #45bbff);animation:blue-boost-enter .3s ease-out both}
.blue-boost-addition{position:absolute;translate:-50% -50%;font:900 clamp(22px,5vw,58px)/1 CarnivalCoin,Georgia,serif;color:#e7fbff;text-shadow:0 2px 4px #002b65,0 0 16px #009fff;animation:blue-addition 1.15s ease-out both}
.blue-boost-arrival{overflow:visible!important;z-index:6}
.blue-boost-arrival>.symbol{animation:blue-coin-arrival 1.5s ease-in-out both;transform-origin:50% 80%}
@keyframes blue-boost-enter{from{opacity:0;scale:.8}to{opacity:1;scale:1}}
@keyframes blue-addition{0%{opacity:0;scale:.5}20%,65%{opacity:1;scale:1.15}100%{opacity:0;translate:-50% -100%;scale:.9}}
@keyframes blue-coin-arrival{0%,100%{transform:translateY(0) scale(1)}18%{transform:translateY(4%) scale(.92)}42%{transform:translateY(-28%) scale(1.2);filter:brightness(1.65) drop-shadow(0 0 22px #8eedff)}65%{transform:translateY(-14%) scale(1.12)}82%{transform:translateY(3%) scale(1.04);filter:brightness(1.35)}}
@media(max-width:900px) and (orientation:portrait){.blue-boost-performance>img{width:60%;top:6%;height:27%}}
@media(max-width:900px) and (orientation:portrait){.feature-cell>.boost-badge{font-size:clamp(8px,2.6vw,12px)}}
.feature-cell.locked>.symbol .coin-art{inset:2%;width:96%;height:96%}
.feature-cell.spinning>.symbol{filter:brightness(1.08)}
.feature-cell.spinning .coin,.feature-cell.spinning .coin-art,.feature-cell.spinning .coin::after{animation:none!important}
.feature-cell.spinning>.symbol{opacity:1}
.feature-meter{gap:2.2%}.feature-spin{min-width:clamp(100px,10vw,160px)}
@media(max-width:900px){.feature-screen{inset:7% 3% 3%;padding:3% 2.5%}.feature-board{width:100%;max-height:68%}.feature-cell>.symbol .symbol-art{transform:scale(.88)!important}.feature-cell.locked>.symbol .coin-value{font-size:clamp(12px,4.8vw,20px)}}
@media(prefers-reduced-motion:reduce){.feature-cell.locked.boosted::after{animation:none}}
/* Feature mode uses the cabinet's painted windows and controls, not another modal. */
.lower-screen>.feature-screen{inset:0;padding:0;display:block;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible;pointer-events:none}
.lower-screen>.feature-screen[hidden]{display:none}
.feature-screen::before{content:none}
.feature-screen>.feature-board{position:absolute;left:var(--window-x);top:var(--window-y);width:var(--window-w);height:var(--window-h);max-height:none;padding:0;border:0;border-radius:0;box-shadow:none;background:none;gap:1px}
.feature-board>.feature-cell{border:0;border-radius:0;background:#12091840}
.feature-board>.feature-cell.locked{box-shadow:inset 0 0 12px #ffd55455}
.feature-screen>.feature-header{position:absolute;left:28%;top:var(--message-top);width:44%;height:6%;display:grid;place-items:center}
.feature-header strong{display:none}
.feature-header small{font-size:clamp(10px,2dvh,20px);letter-spacing:.06em}
.feature-screen>.feature-modifiers{position:absolute;left:19%;top:16%;width:62%;font-size:clamp(6px,1.1dvh,11px);height:4%}
.feature-modifiers span{padding:0;border:0;box-shadow:none;border-radius:0;opacity:.35;display:grid;place-items:center}
.feature-modifiers span:not(.armed){visibility:hidden}
.feature-modifiers span.armed{opacity:1}
.feature-screen>.feature-meter{display:contents}
.feature-meter>span,.feature-meter>output,.feature-meter>small{position:absolute;top:86%;height:7%;display:grid;place-items:center;text-align:center}
.feature-meter>span{left:19%;width:12%;font-size:clamp(8px,1.4dvh,14px)}
.feature-meter>output{left:32%;width:11%;aspect-ratio:auto;background:none;border:0;box-shadow:none;border-radius:0;font-size:clamp(14px,2.8dvh,25px)}
.feature-meter>small{left:44%;width:25%;font-size:clamp(6px,1.1dvh,11px);letter-spacing:0}
.feature-meter>.feature-spin{position:absolute;right:var(--spin-right);top:var(--spin-top);width:var(--spin-width);height:auto;aspect-ratio:1;min-width:0;padding:0 1%;border:0;background:none;box-shadow:none;border-radius:50%;pointer-events:auto;display:grid;place-items:center;font-size:clamp(10px,1.8dvh,20px);line-height:1.2;letter-spacing:0;overflow-wrap:normal}
.feature-screen>.feature-close{left:12%;right:auto;top:82%;width:8%;height:12%;aspect-ratio:auto;border:0;background:none;pointer-events:auto;font-size:clamp(18px,3dvh,28px)}
.feature-spin:focus-visible,.feature-close:focus-visible{outline:2px solid #fff2a7;outline-offset:1px}
@media(max-width:900px) and (orientation:portrait){
 .feature-screen>.feature-header{left:14%;width:72%;height:4.6%}
 .feature-screen>.feature-modifiers{left:10%;top:20%;width:80%;height:3%;font-size:7px}
 .feature-meter>span,.feature-meter>output{top:var(--message-top);height:4.6%}
 .feature-screen>.feature-close{left:6%;top:82%;width:12%;height:8%}
}
/* The painted BALANCE/BET/WIN wells keep their original live values in both modes. */
.feature-screen>.feature-header{display:none}
.feature-meter>span,.feature-meter>output{top:var(--message-top);height:6%}
.feature-meter>span{left:29%;width:34%;font-size:clamp(10px,1.8dvh,18px)}
.feature-meter>output{left:63%;width:8%;font-size:clamp(12px,2.2dvh,22px)}
.feature-meter>small{display:none}
@media(max-width:900px) and (orientation:portrait){
 .feature-meter>span,.feature-meter>output{height:4.6%}
 .feature-meter>span{left:20%;width:48%}.feature-meter>output{left:68%;width:12%}
}
/* 2026-09-25 volatility pass: Hold & Spin MULTIPLIER (violet, "×N") and COLLECT (onyx) coins, the collector
   sweep and the end-of-bonus board multiply beat (docs/volatility-math-2026-09-25.md). */
.coin.coin-multiplier .coin-art{filter:drop-shadow(0 0 .4rem #d38bffdd) drop-shadow(0 .22rem .18rem #08010bb8)}
.coin.coin-collector .coin-art{filter:drop-shadow(0 0 .38rem #ffd46add) drop-shadow(0 .22rem .18rem #08010bb8)}
.coin.coin-multiplier .coin-value{max-width:70%;color:#fff4ff;-webkit-text-stroke:.05em #3b0a55;text-shadow:0 .08em 0 #5b1680,0 .14em .12em #050107,0 0 .3em #e7a6ff}
.feature-cell.locked .coin.coin-multiplier .coin-value{transform:translateY(-6%)}
.coin.coin-collector .coin-value{color:#ffeaa8;transform:translateY(-8%)}
.coin-ribbon{position:absolute;z-index:2;left:50%;bottom:10%;transform:translateX(-50%);padding:.16em .55em .12em;border-radius:.7em;font:900 clamp(7px,.95vw,13px)/1 CarnivalCoin,Georgia,serif;letter-spacing:.05em;white-space:nowrap;pointer-events:none}
.coin-multiplier .coin-ribbon{color:#fff;background:linear-gradient(#bd62ff,#6a1aa8);box-shadow:0 0 0 1px #f3d27a,0 0 8px #c77dff}
.coin-collector .coin-ribbon{display:none}.feature-cell .coin-collector .coin-value{position:absolute!important;left:50%;top:39%!important;transform:translate(-50%,-50%)!important;max-width:58%}
.feature-cell.special-multiplier::after,.feature-cell.special-collector::after{content:'';position:absolute;inset:6%;border-radius:50%;pointer-events:none;animation:special-ring 1.6s ease-in-out infinite}
.feature-cell.special-multiplier::after{box-shadow:0 0 0 2px #d9a2ffbb,0 0 16px #b45cff}
.feature-cell.special-collector::after{box-shadow:0 0 0 2px #ffe08abb,0 0 16px #ffb938}
@keyframes special-ring{0%,100%{opacity:.45;transform:scale(.94)}50%{opacity:1;transform:scale(1.02)}}
.feature-cell.collecting .coin-art{animation:collector-gulp .52s ease-in-out infinite alternate}
.feature-cell.collected .coin-value{animation:collector-pop .42s cubic-bezier(.2,1.6,.4,1)}
.feature-cell.collected-source .coin-value{opacity:.55;transition:opacity .2s}
@keyframes collector-gulp{from{transform:scale(1);filter:brightness(1)}to{transform:scale(1.1);filter:brightness(1.35)}}
@keyframes collector-pop{0%{transform:translateY(-8%) scale(.6)}60%{transform:translateY(-8%) scale(1.35)}100%{transform:translateY(-8%) scale(1)}}
.feature-cell.multiplier-firing .coin-art{animation:multiplier-fire .45s ease-in-out 3}
@keyframes multiplier-fire{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.16);filter:brightness(1.6) drop-shadow(0 0 14px #e3b2ff)}}
.collect-flyer{position:absolute;z-index:40;transform:translate(-50%,-50%);padding:.14em .42em .1em;border-radius:.7em;font:900 16px/1 CarnivalCoin,Georgia,serif;color:#3b1200;background:linear-gradient(#fff6c4,#f0b53a);box-shadow:0 0 0 1.5px #7a3a00,0 0 14px #ffd76f;pointer-events:none;white-space:nowrap}
.board-multiplier-chip{position:absolute;z-index:30;left:calc(var(--window-x,15%) + var(--window-w,70%)/2);top:var(--window-y,18%);transform:translate(-50%,-108%);padding:.28em .9em .22em;border-radius:1em;font:900 clamp(11px,2.1dvh,21px)/1.1 CarnivalCoin,Georgia,serif;letter-spacing:.03em;color:#fff;background:linear-gradient(#b454ff,#5a1296);box-shadow:0 0 0 2px #f3d27a,0 0 16px #c77dff;pointer-events:none;white-space:nowrap}
.board-multiplier-chip[data-state="firing"]{font-size:clamp(13px,2.8dvh,28px);color:#3b1200;background:linear-gradient(#fff0a0,#e8950f);box-shadow:0 0 0 2px #fff4c2,0 0 28px #ffcf53;animation:chip-fire .9s cubic-bezier(.2,1.5,.4,1)}
.board-multiplier-chip[data-state="applied"]{color:#3b1200;background:linear-gradient(#fff0a0,#e8950f);box-shadow:0 0 0 2px #fff4c2,0 0 14px #ffcf53}
@keyframes chip-fire{0%{transform:translate(-50%,-108%) scale(.7)}55%{transform:translate(-50%,-108%) scale(1.25)}100%{transform:translate(-50%,-108%) scale(1)}}
@media(max-width:900px) and (orientation:portrait){.coin-ribbon{font-size:clamp(6px,1.9vw,9px);bottom:8%}.board-multiplier-chip{font-size:clamp(10px,3.2vw,15px)}}
@media(prefers-reduced-motion:reduce){.feature-cell.special-multiplier::after,.feature-cell.special-collector::after,.feature-cell.collecting .coin-art,.feature-cell.multiplier-firing .coin-art,.board-multiplier-chip{animation:none}}

/* Board multiplier burst (2026-09-26): the ×N moment at collect, drawn numerals over the board centre. */
.board-multiplier-burst{position:absolute;z-index:31;left:calc(var(--window-x,15%) + var(--window-w,70%)/2);top:calc(var(--window-y,18%) + var(--window-h,52%)/2);
  translate:-50% -50%;display:grid;justify-items:center;gap:.4em;pointer-events:none;--digit:clamp(70px,17dvh,170px);
  animation:mult-burst-in .5s cubic-bezier(.2,1.6,.4,1) both}
.board-multiplier-burst::before{content:"";position:absolute;inset:-40% -30%;z-index:-1;border-radius:50%;
  background:radial-gradient(closest-side,#ffe78acc,#ff9d1d66 45%,transparent 72%);animation:mult-burst-glow .9s ease-out both}
.board-multiplier-burst .burst-numerals{display:flex;align-items:flex-end;gap:calc(var(--digit) * .02);filter:drop-shadow(0 6px 10px #2a0610cc) drop-shadow(0 0 18px #ffd97a99)}
.board-multiplier-burst .burst-numerals i{display:block;flex:none;height:var(--digit);width:calc(var(--digit) * var(--gw) / 240);
  background:url('../../assets/ui/win-numerals-v3.webp') no-repeat;background-size:calc(var(--digit)  * 2128 / 240) var(--digit);
  background-position:calc(var(--digit) * var(--gx) / -240) 0}
.board-multiplier-burst .burst-line{padding:.25em .9em;border-radius:999px;font:900 clamp(14px,2.6dvh,26px)/1 CarnivalCoin,Georgia,serif;color:#3b1200;
  background:linear-gradient(#fff0a0,#e8950f);box-shadow:0 0 0 2px #fff4c2,0 0 22px #ffcf53;white-space:nowrap}
.board-multiplier-burst.leaving{animation:mult-burst-out .26s ease-in both}
@keyframes mult-burst-in{0%{opacity:0;scale:.3}60%{opacity:1;scale:1.12}100%{opacity:1;scale:1}}
@keyframes mult-burst-glow{0%{opacity:0;scale:.4}35%{opacity:1;scale:1.1}100%{opacity:.75;scale:1}}
@keyframes mult-burst-out{to{opacity:0;scale:.8}}
@media(max-width:900px) and (orientation:portrait){.board-multiplier-burst{--digit:clamp(60px,22vw,110px)}}
/* RED DOUBLE split respins (2026-09-29): one well, a gold divider, each board's own count. */
#respin-count[data-split="true"]{display:inline-flex;align-items:center;justify-content:center;gap:.55em}
#respin-count .respin-side{min-width:1.1em;text-align:center}
#respin-count .respin-side.done{opacity:.35}
#respin-count .respin-divider{display:block;width:2px;height:1.05em;border-radius:1px;background:linear-gradient(#fff3b0,#e0a21c);box-shadow:0 0 6px #ffcf4a}
/* A board whose respins are over dims until collect. */
.feature-cell.board-finished{filter:brightness(.55) saturate(.6);transition:filter .3s ease}
.feature-cell{position:relative}.feature-reel-mask{position:absolute;inset:0;clip-path:inset(3%);overflow:hidden;z-index:5;background:#150921}.feature-reel-strip{display:grid;width:100%;will-change:transform}.feature-reel-strip>.symbol{position:relative;min-height:0;width:100%;height:100%;overflow:hidden;animation:none!important}.feature-reel-strip .coin::after{animation:none}.feature-reel-strip .coin-art{object-fit:contain;animation:none!important}
/* Clip the travel inside the painted frame without shrinking its layout.
   The stopped face AND its live amount retain their exact cell-relative size. */
/* Strip travel owns arrival; board repaint must not replay a second drop. */
.feature-board .symbol.coin{animation:none!important}

/* Live numerals use the cabinet's own lettering; no new plaque or moving art. */
.hold-total-flyer{position:absolute;z-index:45;pointer-events:none;white-space:nowrap;font-family:CarnivalCoin,Georgia,serif;font-weight:900;line-height:1;color:#fff1ae;-webkit-text-stroke:.035em #66300b;text-shadow:0 2px 2px #42120c,0 0 9px #ffcf54;will-change:transform,opacity}
.feature-cell.total-source .coin-value{opacity:.35;transition:opacity .12s}
.feature-screen[data-counting="true"] .feature-readout{color:#fff5be}
