:root{--gold:#ffd66f;--cyan:#53d7ff;--violet:#c755ff;--green:#7cff33;--ink:#030912}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;background:#030711;font-family:Georgia,"Times New Roman",serif;color:#fff}
button{font:inherit;color:inherit;border:0;background:none;touch-action:manipulation;cursor:pointer}
.screen{position:fixed;inset:0;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 25%,#163b64 0,#08162b 38%,#02050b 100%)}
.screen:before{content:"";position:absolute;inset:-10%;background:url('/moonlit-assets-v3/machine.webp') center/cover no-repeat;filter:blur(28px) brightness(.35) saturate(1.3);opacity:.55;transform:scale(1.08)}
.machine{position:relative;isolation:isolate;width:min(100vw,calc(100dvh * 941 / 1672));height:min(100dvh,calc(100vw * 1672 / 941));aspect-ratio:941/1672;background:url('/moonlit-assets-v3/machine.webp') center/100% 100% no-repeat;overflow:hidden;box-shadow:0 0 42px #000,0 0 90px rgba(40,107,178,.35);user-select:none}
.machine:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:30;background:linear-gradient(115deg,transparent 0 32%,rgba(255,255,255,.055) 37%,transparent 42% 100%);mix-blend-mode:screen;animation:glassSweep 8s ease-in-out infinite}
.hotspot{position:absolute;z-index:25;border-radius:50%;outline:none}.hotspot:active,.spin-hotspot:active{transform:scale(.96)}
.menu-hotspot{left:2%;top:1.1%;width:10.5%;aspect-ratio:1}
.sound-button{position:absolute;right:2.2%;top:7.2%;z-index:28;width:7%;aspect-ratio:1;border:1px solid rgba(255,221,124,.75);border-radius:50%;background:rgba(2,13,25,.76);box-shadow:0 0 12px rgba(82,205,255,.35),inset 0 0 12px rgba(255,221,124,.18);font:700 clamp(12px,2.5vw,22px)/1 serif;color:#ffe8a0}
.reel-window{position:absolute;left:1.2%;top:17.75%;width:97.6%;height:49.75%;z-index:5;overflow:hidden;border-radius:1.4%;background:#030813;box-shadow:inset 0 0 0 2px rgba(255,216,105,.55),inset 0 0 22px #000}
.reels{position:absolute;inset:.3%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.32%;background:#020711}
.reel{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:.25%;min-width:0;overflow:hidden;transition:filter .15s ease}
.reel.spinning{filter:blur(2.2px) brightness(.78);animation:reelVibrate .09s linear infinite}
.symbol{position:relative;min-width:0;min-height:0;overflow:hidden;background:#07101d;transform:translateZ(0)}
.symbol img{width:100%;height:100%;display:block;object-fit:cover;transform:scale(1.025);transition:filter .18s ease,transform .18s ease}
.symbol:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(112deg,transparent 0 36%,rgba(255,255,255,.16) 43%,transparent 50% 100%);transform:translateX(-160%)}
.symbol.win{z-index:4;animation:winPulse .55s ease-in-out infinite alternate}.symbol.win img{filter:brightness(1.24) saturate(1.25);transform:scale(1.075)}.symbol.win:after{animation:symbolSweep .85s linear infinite}
.symbol .tag{position:absolute;left:50%;bottom:3%;transform:translateX(-50%);padding:.4% 5%;border-radius:999px;font:900 clamp(7px,1.4vw,14px)/1.25 Arial,sans-serif;letter-spacing:.08em;white-space:nowrap;color:#fff6c9;text-shadow:0 1px 2px #000;border:1px solid rgba(255,226,114,.85);background:linear-gradient(#7b2017,#2d0704);box-shadow:0 0 8px #ff743e}
.symbol.scatter .tag{background:linear-gradient(#183785,#071539);box-shadow:0 0 9px #4fdcff}
.payline-layer{position:absolute;inset:0;z-index:11;pointer-events:none;overflow:visible}.payline-layer polyline{fill:none;stroke:#fff36c;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 5px #ff8b19);stroke-dasharray:12 8;animation:lineFlow .55s linear infinite}
.feature-flash{position:absolute;inset:0;pointer-events:none;z-index:13;opacity:0;background:radial-gradient(circle,rgba(255,255,218,.8),rgba(76,231,255,.3) 35%,transparent 70%)}.feature-flash.show{animation:featureFlash .9s ease-out}
.message{position:absolute;z-index:20;left:16%;top:67.15%;width:68%;height:3.2%;display:grid;place-items:center;text-align:center;color:#ffeeb1;font:700 clamp(8px,1.75vw,17px)/1 Arial,sans-serif;letter-spacing:.05em;text-shadow:0 2px 3px #000,0 0 9px #1466a8;pointer-events:none}.message.big{animation:messagePop .65s ease-out;color:#fff56f;font-size:clamp(11px,2.4vw,22px)}
.status{position:absolute;z-index:21;top:72.25%;height:6.15%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(180deg,rgba(0,9,17,.93),rgba(0,18,28,.96));border:1px solid rgba(229,183,83,.62);box-shadow:inset 0 0 12px #000,0 0 10px rgba(0,0,0,.55);pointer-events:none}.status span{font:700 clamp(7px,1.35vw,14px)/1 Arial,sans-serif;color:#f4e6bf;letter-spacing:.07em;margin-bottom:3%}.status b{font:700 clamp(11px,2.4vw,25px)/1 Georgia,serif;color:#fff0b2;text-shadow:0 2px 2px #000}.status-balance{left:3%;width:27%}.status-win{left:31.3%;width:28.3%}.status-bet{right:3%;width:36%}.status-win b{color:#65e8ff}
.bet-down{left:61.5%;top:73.1%;width:7%;height:4.6%}.bet-up{right:3.8%;top:73.1%;width:7%;height:4.6%}
.turbo-hotspot{left:3.8%;top:82.2%;width:14.5%;height:9.5%}.auto-hotspot{left:20.2%;top:82.1%;width:14.5%;height:9.5%}
.hotspot.active{box-shadow:0 0 0 3px rgba(99,231,255,.95),0 0 25px #22b9ff,inset 0 0 18px rgba(83,224,255,.38)}
.spin-hotspot{position:absolute;left:34.5%;top:78.3%;z-index:26;width:31%;height:17.2%;border-radius:50%;outline:none;display:grid;place-items:center;background:radial-gradient(circle at 45% 38%,rgba(209,255,112,.65),rgba(76,199,8,.35) 32%,rgba(6,72,9,.18) 68%,transparent 72%);box-shadow:0 0 26px rgba(90,255,36,.42);transition:filter .2s ease,transform .08s ease}.spin-hotspot span{opacity:0}.spin-hotspot:focus-visible{box-shadow:0 0 0 4px #fff,0 0 30px #79ff3b}.spin-hotspot.spinning{animation:spinGlow .35s ease-in-out infinite alternate;pointer-events:none}.spin-hotspot:disabled{filter:grayscale(.5) brightness(.65)}
.feature-badge{position:absolute;z-index:24;left:2.8%;top:13.7%;width:17%;padding:1.3% 1%;text-align:center;border-radius:9px;background:linear-gradient(180deg,rgba(4,28,44,.92),rgba(1,8,15,.96));border:1px solid #61c9f5;box-shadow:0 0 15px rgba(68,207,255,.45);font-family:Arial,sans-serif}.feature-badge b{display:block;color:#ffe672;font-size:clamp(8px,1.65vw,16px)}.feature-badge span{font-size:clamp(5px,.9vw,9px);color:#7fdefe;letter-spacing:.08em}
.free-badge{position:absolute;right:2.8%;top:13.7%;z-index:24;width:17%;padding:1.2% 1%;text-align:center;border-radius:9px;background:linear-gradient(180deg,#49266c,#140523);border:1px solid #d584ff;box-shadow:0 0 16px #8a37d0;font-family:Arial,sans-serif}.free-badge span{display:block;font-size:clamp(5px,.9vw,9px);color:#f2c7ff}.free-badge b{font-size:clamp(9px,1.7vw,17px);color:#fff383}.hidden{display:none!important}
.auto-count{position:absolute;z-index:29;left:20.2%;top:91.2%;width:14.5%;text-align:center;font:700 clamp(7px,1.2vw,12px)/1 Arial,sans-serif;color:#64eaff;text-shadow:0 0 8px #29a9ff}.demo-note{position:absolute;left:20%;bottom:.6%;z-index:22;width:60%;text-align:center;font:600 clamp(5px,.8vw,9px)/1 Arial,sans-serif;color:rgba(218,232,243,.72);letter-spacing:.02em}
@keyframes reelVibrate{0%{transform:translateY(-1.5%)}50%{transform:translateY(1.5%)}100%{transform:translateY(-1.5%)}}
@keyframes winPulse{from{filter:drop-shadow(0 0 4px #fff46d)}to{filter:drop-shadow(0 0 16px #ffcf36)}}
@keyframes symbolSweep{to{transform:translateX(160%)}}
@keyframes lineFlow{to{stroke-dashoffset:-20}}
@keyframes featureFlash{0%{opacity:0}25%{opacity:1}100%{opacity:0}}
@keyframes messagePop{0%{transform:scale(.75);opacity:.2}55%{transform:scale(1.18)}100%{transform:scale(1);opacity:1}}
@keyframes spinGlow{from{filter:brightness(.9)}to{filter:brightness(1.35)}}
@keyframes glassSweep{0%,65%{transform:translateX(-75%)}82%,100%{transform:translateX(75%)}}
@media (max-aspect-ratio:9/16){.machine{width:100vw;height:auto}}
@media (min-aspect-ratio:9/16){.machine{height:100dvh;width:auto}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}

/* v5 server wallet, 3D wins, menus */
.reel{overflow:visible;perspective:650px}.reels{overflow:hidden}
.symbol{transform-style:preserve-3d;transition:transform .2s ease,filter .2s ease,box-shadow .2s ease}
.symbol.win{z-index:15;animation:win3dPulse .62s cubic-bezier(.2,.85,.25,1) infinite alternate;box-shadow:0 0 0 3px #ffe96b,0 0 20px 7px rgba(255,199,40,.85),inset 0 0 18px rgba(255,255,210,.48)}
.symbol.win img{filter:brightness(1.3) saturate(1.28) contrast(1.05);transform:scale(1.08) translateZ(28px)}
@keyframes win3dPulse{from{transform:scale(1.035) translateZ(12px) rotateX(0deg)}to{transform:scale(1.125) translateZ(36px) rotateX(-2deg)}}
.hotspot.active{box-shadow:none}
.turbo-hotspot.active{background:rgba(255,205,31,.34);box-shadow:inset 0 0 20px rgba(255,244,108,.72),0 0 17px rgba(255,194,19,.7);filter:sepia(1) saturate(2.5) brightness(1.25)}
.auto-hotspot.active{background:rgba(47,207,255,.20);box-shadow:inset 0 0 18px rgba(111,236,255,.6)}
.hotspot:disabled{pointer-events:none;opacity:.55}
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) 14px max(16px,env(safe-area-inset-bottom));background:rgba(1,5,13,.78);backdrop-filter:blur(9px);font-family:Arial,"Noto Sans KR",sans-serif}
.modal-card{position:relative;width:min(92vw,560px);max-height:88dvh;overflow:auto;border:2px solid #c99a3b;border-radius:22px;background:linear-gradient(160deg,rgba(9,34,54,.98),rgba(4,10,21,.99) 60%,rgba(30,10,45,.98));box-shadow:0 24px 80px #000,0 0 35px rgba(77,207,255,.24),inset 0 0 30px rgba(255,204,82,.08);padding:20px;color:#f7f4e9}
.modal-card h2{margin:4px 0 15px;text-align:center;color:#ffe184;text-shadow:0 2px 0 #603b00,0 0 13px rgba(255,203,67,.5);letter-spacing:.07em}
.modal-close{position:absolute;right:12px;top:10px;width:36px;height:36px;border-radius:50%;background:#192c3f;border:1px solid #8cb8d2;color:#fff;font:700 25px/1 Arial;z-index:3}
.menu-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0 42px 16px 0}.menu-tab{padding:11px;border-radius:12px;background:#0d2638;border:1px solid #335b75;color:#9dc9db;font-weight:800}.menu-tab.active{background:linear-gradient(#7e5714,#392000);border-color:#ffd76f;color:#fff0a3;box-shadow:0 0 13px rgba(255,210,75,.25)}
.menu-panel{display:none}.menu-panel.active{display:block}.rule-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rule-summary>div{padding:11px;border-radius:12px;background:rgba(1,18,31,.75);border:1px solid #244d67}.rule-summary b,.rule-summary span{display:block}.rule-summary b{color:#70e1ff;margin-bottom:5px}.rule-summary span{font-size:12px;line-height:1.45;color:#d6e4e9}.paytable-note,.wallet-notice{font-size:12px;line-height:1.55;color:#b9c9d1;text-align:center}.paytable-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.paytable-grid article{display:flex;align-items:center;gap:9px;padding:7px;border:1px solid #315268;border-radius:12px;background:rgba(2,14,25,.76)}.paytable-grid img{width:54px;height:54px;object-fit:cover;border-radius:9px}.paytable-grid b,.paytable-grid span{display:block}.paytable-grid b{color:#ffe493}.paytable-grid span{font-size:10px;line-height:1.4;color:#c6dae3;margin-top:3px}.danger-action{width:100%;margin-top:15px;padding:12px;border-radius:12px;background:linear-gradient(#732f31,#3a1118);border:1px solid #e57272;font-weight:800}
.wallet-balances{display:grid;grid-template-columns:1fr 1fr;gap:10px}.wallet-balances>div{padding:14px 10px;border-radius:14px;text-align:center;background:rgba(1,17,29,.85);border:1px solid #346279}.wallet-balances span,.wallet-balances b{display:block}.wallet-balances span{font-size:12px;color:#a8c4d2}.wallet-balances b{font:700 20px/1.2 Georgia;color:#ffe49a;margin-top:6px}.rolling-card{margin:13px 0;padding:13px;border:1px solid #4c6b75;border-radius:14px;background:rgba(5,21,31,.82)}.rolling-head{display:flex;justify-content:space-between;gap:10px;font-size:13px}.rolling-head b{color:#7ceaff}.rolling-head span{color:#ffe693}.rolling-track{height:13px;margin:9px 0;border-radius:999px;background:#07131b;border:1px solid #28404a;overflow:hidden}.rolling-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#178eab,#6de9ff,#ffe164);box-shadow:0 0 10px #55dfff;transition:width .3s ease}.rolling-card p{margin:0;font-size:11px;color:#aec6d0}.rolling-card p.complete{color:#8dff8a}.exchange-label{display:block;margin:12px 0 6px;font-weight:700;color:#d9edf5}.exchange-input{display:flex;align-items:center;border:1px solid #62859a;border-radius:12px;background:#020c15;padding:0 13px}.exchange-input span{color:#ffe17a;font-weight:900}.exchange-input input{width:100%;padding:13px 8px;border:0;outline:0;background:transparent;color:#fff;font-size:18px;text-align:right}.amount-presets{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin:8px 0 13px}.amount-presets button{padding:8px 3px;border-radius:9px;background:#173348;border:1px solid #39667e;font-size:11px}.exchange-primary,.exchange-secondary{width:100%;padding:13px;margin-top:8px;border-radius:13px;font-weight:900}.exchange-primary{background:linear-gradient(#15956e,#07543e);border:1px solid #59eab5}.exchange-secondary{background:linear-gradient(#66591b,#302805);border:1px solid #b09b40;color:#bdb486}.exchange-secondary.unlocked{background:linear-gradient(#b17b12,#674000);border-color:#ffe06a;color:#fff5b3;box-shadow:0 0 14px rgba(255,207,53,.25)}.exchange-primary:disabled,.exchange-secondary:disabled{filter:grayscale(.8);opacity:.48;cursor:not-allowed}
.auto-card{width:min(88vw,410px);text-align:center}.auto-card p{color:#bad0da}.auto-options{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.auto-options button{padding:15px;border-radius:13px;background:linear-gradient(#174b68,#09273a);border:1px solid #5cc9f3;color:#e8faff;font-weight:900}.auto-options button:active{background:linear-gradient(#906313,#4c2f00);border-color:#ffe170}
.feature-modal{background:radial-gradient(circle,rgba(36,136,194,.45),rgba(2,4,13,.9) 63%)}.free-3d-card{position:relative;width:min(82vw,430px);padding:32px 20px 25px;text-align:center;border-radius:28px;border:3px solid #ffe56f;background:radial-gradient(circle at 50% 20%,#285cab 0,#31135c 37%,#080516 76%);box-shadow:0 35px 90px #000,0 0 38px #53dfff,inset 0 0 45px rgba(255,226,76,.25);transform:perspective(800px) rotateX(3deg);animation:featureCardIn .7s cubic-bezier(.12,.85,.22,1.25)}.free-3d-card:before{content:"";position:absolute;inset:8px;border:1px solid rgba(255,244,169,.48);border-radius:21px;pointer-events:none}.free-3d-card span{font-weight:900;letter-spacing:.22em;color:#78e8ff}.free-3d-card h2{margin:11px 0 0;font:900 clamp(32px,9vw,58px)/1 Georgia;color:#fff2a2;text-shadow:0 4px 0 #7a3b00,0 0 22px #ffcc41}.free-3d-card b{display:block;font:900 clamp(74px,23vw,130px)/.95 Georgia;color:#fff;text-shadow:0 7px 0 #5c2aa1,0 0 30px #57ddff}.free-3d-card p{font-weight:800;color:#ffe8a7}.free-3d-card button{position:relative;padding:13px 45px;border-radius:999px;background:linear-gradient(#b2ff4d,#319c0a);border:2px solid #eaff9d;box-shadow:0 7px 0 #145300,0 0 22px #76ff32;color:#102500;font-weight:950}.slot-toast{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));z-index:200;transform:translateX(-50%);width:min(88vw,440px);padding:13px 16px;border-radius:12px;text-align:center;background:rgba(4,22,33,.95);border:1px solid #5eb9d5;box-shadow:0 12px 40px #000;color:#e7faff;font:700 13px/1.4 Arial,sans-serif}.slot-toast.success{border-color:#6ee7a8;color:#a8ffd2}.slot-toast.error{border-color:#f07878;color:#ffd0d0}
@keyframes featureCardIn{0%{opacity:0;transform:perspective(800px) rotateX(55deg) scale(.55) translateY(100px)}100%{opacity:1;transform:perspective(800px) rotateX(3deg) scale(1) translateY(0)}}
@media(max-width:430px){.modal-card{padding:17px 12px}.rule-summary,.paytable-grid{grid-template-columns:1fr}.paytable-grid img{width:48px;height:48px}.amount-presets{grid-template-columns:repeat(3,1fr)}}

/* v6: visible bet stepper + feature purchase */
.feature-buy{position:absolute;z-index:27;left:2.5%;top:13.35%;width:20.5%;min-height:5.7%;padding:.7% 1.1%;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:11px;background:linear-gradient(180deg,rgba(91,35,125,.97),rgba(20,4,38,.98));border:1px solid #efb7ff;box-shadow:0 0 17px rgba(202,84,255,.58),inset 0 0 14px rgba(255,223,122,.12);font-family:Arial,"Noto Sans KR",sans-serif;text-align:center;transform:translateZ(0)}
.feature-buy span{font-size:clamp(6px,1.05vw,11px);font-weight:950;color:#fff0a0;letter-spacing:.03em}.feature-buy b{display:block;margin:.2em 0 .05em;color:#fff;font-size:clamp(8px,1.5vw,15px);text-shadow:0 0 8px #66dcff}.feature-buy em{font-style:normal;font-size:clamp(5px,.82vw,9px);font-weight:800;color:#deb8ff}.feature-buy:active{transform:scale(.96)}.feature-buy:disabled{filter:grayscale(.75);opacity:.5;pointer-events:none}
.bet-selector{position:absolute;right:2.3%;top:81.3%;z-index:29;width:24.5%;height:11.3%;display:grid;grid-template-columns:25% 50% 25%;align-items:stretch;border:2px solid #d8a742;border-radius:999px;background:linear-gradient(180deg,rgba(8,29,44,.99),rgba(2,9,18,.99));box-shadow:0 7px 20px rgba(0,0,0,.75),0 0 18px rgba(255,198,57,.25),inset 0 0 18px rgba(255,226,119,.09);overflow:hidden;font-family:Arial,"Noto Sans KR",sans-serif}
.bet-selector>button{display:grid;place-items:center;background:linear-gradient(180deg,#75510f,#2e1a02);color:#fff09e;font-size:clamp(12px,3vw,28px);font-weight:950;text-shadow:0 2px 2px #000}.bet-selector>button:first-child{border-right:1px solid rgba(255,216,102,.55)}.bet-selector>button:last-child{border-left:1px solid rgba(255,216,102,.55)}.bet-selector>button:active{background:linear-gradient(180deg,#b8881c,#573501);filter:brightness(1.2)}.bet-selector>button:disabled{filter:grayscale(1);opacity:.4;pointer-events:none}
.bet-selector>div{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 2%;background:radial-gradient(circle at 50% 35%,rgba(33,94,117,.48),rgba(0,9,16,.8))}.bet-selector span{font-size:clamp(6px,1vw,10px);font-weight:900;color:#9edcf1;letter-spacing:.1em}.bet-selector b{max-width:100%;font:900 clamp(9px,1.65vw,17px)/1.2 Georgia,serif;color:#fff1a5;white-space:nowrap;text-shadow:0 2px 2px #000,0 0 8px rgba(255,207,63,.55)}
.feature-buy-card{width:min(88vw,430px);text-align:center;overflow:hidden}.feature-buy-card:before{content:"";position:absolute;inset:-35% -15% 52%;background:radial-gradient(circle,rgba(80,221,255,.27),transparent 68%);pointer-events:none}.feature-buy-kicker{position:relative;display:block;color:#8eeaff;font-size:12px;font-weight:950;letter-spacing:.2em}.feature-buy-card h2{position:relative;margin:9px 0 8px;font-size:clamp(28px,8vw,48px)}.feature-buy-card p{position:relative;color:#d2e7ee;line-height:1.55}.feature-buy-cost{position:relative;margin:18px 0;padding:16px;border:1px solid #d2a642;border-radius:16px;background:rgba(1,14,24,.8);box-shadow:inset 0 0 18px rgba(255,203,56,.08)}.feature-buy-cost span,.feature-buy-cost b{display:block}.feature-buy-cost span{font-size:12px;color:#a8c4d0}.feature-buy-cost b{margin-top:6px;color:#fff19b;font:900 27px/1.15 Georgia,serif;text-shadow:0 0 12px rgba(255,201,50,.45)}.feature-buy-confirm{position:relative;width:100%;padding:14px;border-radius:14px;background:linear-gradient(#9dda28,#327c08);border:2px solid #dfff86;color:#102300;font-weight:950;box-shadow:0 7px 0 #164600,0 0 18px rgba(131,255,43,.32)}.feature-buy-confirm:disabled{filter:grayscale(.8);opacity:.5;box-shadow:none}
