@font-face{font-family:GatesFredoka;src:url('assets/gates/bonus/FredokaOne-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:GatesCinzel;src:url('assets/gates/bonus/CinzelDecorative-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
/* Full-screen receipt presentation; all amounts and awards come from the resolver. */
.bonus-dialog{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:clip;cursor:pointer;touch-action:manipulation;isolation:isolate;transition:opacity 280ms ease}
.bonus-dialog .modal-head{position:absolute;inset:0;display:block;margin:0;padding:0;pointer-events:none}
.bonus-dialog .modal-head h2{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0}
.bonus-dialog #close-modal{display:none}.bonus-dialog #modal-body{position:absolute;inset:0}
.bonus-dialog::backdrop{background:#0008;backdrop-filter:none}
.bonus-intro{background:radial-gradient(ellipse at center,#140d1ad9 15%,#08050bf5 75%)}
.bonus-wipe{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}
.wipe-layer{position:absolute;left:50%;width:max(120vw,1920px);height:auto;max-height:46dvh;object-fit:cover;opacity:var(--a);filter:brightness(0);transform:translateX(-50%);pointer-events:none}
.wipe-top{top:0;object-position:center top}.wipe-bottom{bottom:0;object-position:center bottom}
.bonus-logo{position:absolute;left:50%;top:42%;translate:-50% -50%;width:min(500px,62vw);height:clamp(82px,16vh,116px);display:grid;place-items:center;padding:16px 12px;border:2px solid #9a2844;border-radius:12px;box-shadow:inset 0 0 0 4px #08070c,0 0 0 2px #130b11,0 10px 24px #000a;background:#0b070dd9;color:#c22d48;font:700 clamp(20px,3.4vw,44px)/1 GaiaRubik;white-space:nowrap;text-shadow:0 2px #0009}
.bonus-logo.tier-4{border-color:#714a96;color:#c29ae7}.bonus-logo.tier-5{border-color:#ad8534;color:#ffcf78}.bonus-logo.is-activated{box-shadow:inset 0 0 0 4px #08070c,0 0 16px #cc2d7c30,0 10px 24px #000a}
.bonus-copy{position:absolute;left:0;right:0;top:58%;text-align:center;color:#f4e8ff;text-shadow:0 2px #000,0 8px 20px #000b;font-family:GatesFredoka,GaiaRubik,sans-serif}
#modal-body .intro-spins{font:400 clamp(28px,4.2vw,52px)/1.2 GatesFredoka,GaiaRubik,sans-serif;letter-spacing:.06em;color:#f4e8ff!important;margin:0;max-width:none}
.screen-continue{border:0;background:none;color:#f4e8ff;display:block;margin:14px auto 0;padding:0 8px;min-height:44px;font:400 clamp(16px,2.2vw,28px)/1.2 GatesFredoka,GaiaRubik,sans-serif;letter-spacing:.14em;text-shadow:0 2px #000;cursor:pointer;white-space:nowrap;animation:continue-pulse 1.4s ease-in-out infinite}
.screen-continue:hover{color:#fff!important}.screen-continue:focus-visible{outline:2px solid #f4e8ff;outline-offset:8px;border-radius:4px}
.bonus-outro{background:#00000050}.bonus-outro::backdrop{background:#0008}
.win-heading{position:absolute;left:50%;top:22%;translate:-50% -50%;width:min(520px,62vw);aspect-ratio:5005/2124;filter:drop-shadow(0 6px 12px #0009)}
.win-heading.is-total{background:url('assets/gates/bonus/Total_win_popup.PNG') 50% 43.636% / 123.057% 255.367% no-repeat}
.win-heading.is-maximum{display:grid;place-items:center;width:90vw;aspect-ratio:auto;font:400 clamp(30px,6vmin,72px)/1.1 GatesFredoka;color:#ffcf78;-webkit-text-stroke:5px #100c0e;paint-order:stroke fill;text-shadow:0 6px #0009}
.bonus-outro .result-total{position:absolute;left:50%;top:50%;translate:-50% -50%;width:92vw;max-width:1600px;margin:0;padding:0;display:grid;place-items:center;color:#fff;font:700 clamp(60px,18.4vmin,342px)/1 GatesCinzel,Georgia,serif;letter-spacing:-.02em;white-space:nowrap;-webkit-text-stroke:12px #000;paint-order:stroke fill;filter:drop-shadow(0 10px #000d);text-shadow:none}
.amount-display,.amount-width{grid-area:1/1;width:max-content}.amount-width{visibility:hidden;pointer-events:none}.amount-cents{font-size:.42em;letter-spacing:-.03em}
.bonus-outro .screen-continue{position:absolute;left:50%;top:83%;translate:-50% 0;margin:0;max-width:94vw}
.bonus-dialog.screen-out{pointer-events:none;opacity:0}.bonus-intro.screen-out{transition:opacity 620ms ease}
@keyframes continue-pulse{0%,100%{opacity:.58}50%{opacity:1}}
@keyframes bonus-top-in{from{transform:translate(-50%,-100%)}to{transform:translate(-50%,0)}}
@keyframes bonus-bottom-in{from{transform:translate(-50%,100%)}to{transform:translate(-50%,0)}}
@keyframes bonus-top-out{to{transform:translate(-50%,-100%)}}
@keyframes bonus-bottom-out{to{transform:translate(-50%,100%)}}
@keyframes bonus-logo-in{from{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}
@keyframes bonus-copy-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes win-screen-in{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:no-preference){
 .bonus-intro .wipe-top{animation:bonus-top-in .56s cubic-bezier(.22,.61,.36,1) calc(var(--i)*35ms) both}
 .bonus-intro .wipe-bottom{animation:bonus-bottom-in .56s cubic-bezier(.22,.61,.36,1) calc(var(--i)*35ms) both}
 .bonus-logo{animation:bonus-logo-in .42s cubic-bezier(.22,1.15,.28,1) .18s both}.bonus-copy{animation:bonus-copy-in .36s cubic-bezier(.22,1.15,.28,1) .28s both}
 .bonus-intro.screen-out .wipe-top{animation:bonus-top-out .62s cubic-bezier(.22,.61,.36,1) calc(var(--i)*30ms) forwards}
 .bonus-intro.screen-out .wipe-bottom{animation:bonus-bottom-out .62s cubic-bezier(.22,.61,.36,1) calc(var(--i)*30ms) forwards}
 .bonus-outro .win-heading,.bonus-outro .amount-display{animation:win-screen-in .48s cubic-bezier(.18,1.15,.28,1) both}
}
@media(orientation:portrait) and (max-width:700px){.bonus-logo{width:88vw;font-size:clamp(18px,5.2vw,32px);height:100px}.bonus-copy{top:58%}.bonus-outro .win-heading{width:86vw;top:29%}.bonus-outro .result-total{-webkit-text-stroke:7px #000}.bonus-outro .screen-continue{top:86%}.screen-continue{letter-spacing:.1em;font-size:clamp(16px,4.6vw,24px)}}
@media(max-height:450px) and (orientation:landscape){.bonus-logo{height:70px;top:36%;font-size:26px}.bonus-copy{top:55%}#modal-body .intro-spins{font-size:32px}.screen-continue{font-size:19px;margin-top:6px}.win-heading{width:260px;top:20%}.bonus-outro .screen-continue{top:82%}}
@media(prefers-reduced-motion:reduce){.bonus-dialog{transition:none}.screen-continue{animation:none;opacity:1}}
.win-heading.is-miss{display:grid;place-items:center;width:90vw;aspect-ratio:auto;top:36%;font:400 clamp(30px,7vmin,72px)/1.1 GatesFredoka;color:#f4e8ff;-webkit-text-stroke:5px #100c0e;paint-order:stroke fill}
#modal-body .miss-copy{position:absolute;top:54%;left:10%;width:80%;max-width:none;font:600 clamp(14px,2vw,24px)/1.4 GaiaRubik;text-align:center;color:#ddd;margin:0}
