@font-face{font-family:Manrope;src:url('/g/drop/assets/fonts/manrope.woff2') format('woff2');font-display:swap}
@font-face{font-family:Editorial;src:url('/g/drop/assets/fonts/editorial.woff2') format('woff2');font-display:swap}

:root{
 --rose:#f7bcc3;--dusty:#e2a3b0;--peach:#f7d3aa;--cream:#fae3d5;--ink:#1b1110;--berry:#c2185b;
 --pink:#ec407a;--deep:#8f123f;--paper:#fffaf9;--muted:#87666f;--line:rgba(173,65,99,.16);
 --success:#16845b;--warning:#bb6712;--danger:#b3261e;--shadow:0 18px 50px rgba(91,26,49,.12);
}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{min-width:320px;background:#fff7f8}
body{margin:0;font-family:Manrope,"Segoe UI",sans-serif;color:var(--ink);background:linear-gradient(145deg,#fffafb 0%,#fdeff2 52%,#f8dfe3 100%);min-height:100vh}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid rgba(194,24,91,.42);outline-offset:3px}
button:disabled{cursor:not-allowed;opacity:.55}
.eyebrow{margin:0;color:#a66e7f;font-size:10px;font-weight:800;letter-spacing:.22em;text-transform:uppercase}
.ambient{position:fixed;border-radius:50%;filter:blur(4px);pointer-events:none;z-index:0;opacity:.62}
.ambient-one{width:340px;height:340px;top:-150px;left:-90px;background:radial-gradient(circle,rgba(247,188,195,.76),rgba(247,188,195,0) 70%)}
.ambient-two{width:460px;height:460px;right:-150px;bottom:-220px;background:radial-gradient(circle,rgba(247,211,170,.48),rgba(247,211,170,0) 70%)}
.glass-card{background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.88);box-shadow:var(--shadow);backdrop-filter:blur(18px);border-radius:26px}

/* Game top bar */
.topbar{height:68px;padding:8px clamp(16px,2.2vw,36px);display:flex;align-items:center;gap:18px;background:rgba(255,255,255,.91);border-bottom:1px solid var(--line);box-shadow:0 5px 24px rgba(75,23,42,.06);position:relative;z-index:50}
.brand-lockup{display:flex;align-items:center;gap:14px;color:var(--ink);text-decoration:none;min-width:300px}
.brand-lockup>img{width:100px;height:48px;object-fit:contain}
.brand-divider{width:1px;height:30px;background:var(--line)}
.event-lockup{display:flex;flex-direction:column;gap:1px;line-height:1}
.event-lockup b{color:var(--berry);font-size:14px;letter-spacing:.12em}
.event-lockup small{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.12em;margin-top:5px}
.topbar-status{display:flex;align-items:center;justify-content:center;gap:8px;margin:auto}
.offline-chip,.mode-chip,.live-dot{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:7px 11px;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.offline-chip{color:var(--success);background:#e9f8f2;border:1px solid #c6eadc}
.offline-chip i,.live-dot i,.machine-state i{width:7px;height:7px;background:currentColor;border-radius:50%;box-shadow:0 0 0 4px rgba(22,132,91,.1)}
.mode-chip{background:#fff0f4;border:1px solid #f5c8d4;color:var(--berry)}
.mode-chip.live{background:#fff3df;color:#9a5409;border-color:#f2d29e}
.topbar-actions{display:flex;align-items:center;gap:8px}
.icon-button,.admin-link{height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #efc9d3;background:#fff;color:var(--berry);border-radius:14px;padding:0 13px;text-decoration:none;cursor:pointer;font-size:11px;font-weight:800;box-shadow:0 4px 12px rgba(108,29,57,.05)}
.icon-button:hover,.admin-link:hover{border-color:var(--berry);background:#fff7f9;transform:translateY(-1px)}
.icon-button[aria-pressed="true"]{background:var(--berry);color:#fff;border-color:var(--berry)}
.icon-button span,.admin-link span{font-size:16px;line-height:1}

/* Game layout */
.game-shell{width:min(1760px,100%);min-height:calc(100vh - 68px);margin:0 auto;padding:12px clamp(10px,1.4vw,22px) 16px;display:grid;grid-template-columns:minmax(215px,260px) minmax(460px,1fr) minmax(215px,260px);gap:clamp(10px,1.2vw,18px);align-items:stretch;position:relative;z-index:1}
.host-panel,.score-panel{padding:clamp(17px,1.5vw,24px);min-width:0;align-self:stretch}
.host-panel{display:flex;flex-direction:column;overflow:hidden}
.host-copy h1{font-family:Editorial,Georgia,serif;font-size:clamp(31px,2.4vw,44px);font-weight:600;line-height:1.02;margin:7px 0 10px;letter-spacing:-.025em}
.host-copy h1 em{color:var(--berry);font-style:italic}
.host-copy .intro{font-size:12px;line-height:1.6;color:#70525b;margin:0;max-width:32ch}
.mascot-stage{min-height:180px;height:clamp(190px,31vh,300px);flex-shrink:0;display:grid;place-items:center;margin:4px -10px -2px;position:relative;isolation:isolate}
.mascot-stage::before,.mascot-stage::after{content:"✦";position:absolute;color:#e890aa;opacity:.75;font-size:17px;animation:twinkle 2.3s ease-in-out infinite}
.mascot-stage::before{left:14%;top:25%}.mascot-stage::after{right:11%;top:15%;animation-delay:.9s;font-size:11px}
.mascot-halo{position:absolute;width:78%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.95),rgba(247,188,195,.26) 49%,transparent 70%);filter:blur(1px);z-index:-2}
.mascot-radiance{position:absolute;width:92%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,200,220,.5) 0%,rgba(247,188,195,.25) 52%,transparent 72%);filter:blur(8px);z-index:-3;animation:radiance-pulse 4s ease-in-out infinite alternate}
.mascot-particles{position:absolute;inset:0;pointer-events:none;z-index:2}
.mascot-particles i{position:absolute;font-style:normal;font-weight:900;animation:petal-float 4.5s ease-in-out infinite;pointer-events:none}
.mascot-particles .p-spark{left:10%;top:18%;color:#ffd77b;font-size:16px;animation-delay:0s}
.mascot-particles .p-heart{right:12%;top:32%;color:#f06292;font-size:14px;animation-delay:1.2s}
.mascot-particles .p-petal{left:16%;bottom:22%;color:#f48fb1;font-size:15px;animation-delay:2.4s}
.mascot-particles .p-spark2{right:14%;bottom:28%;color:#ffe082;font-size:12px;animation-delay:3.1s}
#mascot{position:absolute;inset:8% 5% 5%;border:0;background:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transform:translate3d(var(--dodge-x,0),var(--dodge-y,0),0);transition:transform .46s cubic-bezier(.2,.8,.2,1)}
#mascot img{width:100%;height:100%;min-height:0;object-fit:contain;display:block;filter:drop-shadow(0 12px 12px rgba(111,40,62,.21));transform-origin:50% 88%;will-change:transform}
.mascot-shadow{position:absolute;width:48%;height:15px;bottom:4%;border-radius:50%;background:rgba(80,30,46,.16);filter:blur(6px);z-index:-1;transition:transform .3s}
.mascot-stage[data-pose="host"] #mascot img{animation:mascot-breathe 3.6s ease-in-out infinite}
.mascot-stage[data-pose="focus"] #mascot img{animation:mascot-tense 1.4s ease-in-out infinite alternate}
.mascot-stage[data-pose="celebrate"] #mascot img{animation:mascot-win 1.3s ease-in-out infinite alternate}
.mascot-stage[data-pose="encourage"] #mascot img{animation:mascot-breathe 4s ease-in-out infinite}
.mascot-stage[data-pose="wave"] #mascot img{animation:mascot-wave .9s ease-in-out}
.mascot-stage[data-pose="dance"] #mascot img{animation:mascot-dance 1.2s ease-in-out}
.mascot-stage[data-pose="bow"] #mascot img{animation:mascot-bow 1s ease-in-out}
.mascot-stage[data-pose="tense"] #mascot img{animation:mascot-tense .42s ease-in-out infinite alternate}
.mascot-stage[data-pose="win"] #mascot img{animation:mascot-win .8s cubic-bezier(.2,.8,.2,1) infinite alternate}
.mascot-stage[data-pose="grand"] #mascot img{animation:mascot-grand .65s cubic-bezier(.2,.9,.2,1) infinite alternate;filter:drop-shadow(0 18px 20px rgba(194,24,91,.32)) drop-shadow(0 0 16px rgba(255,202,69,.7))}
.mascot-stage[data-pose="zonk"] #mascot img{animation:mascot-bow 1.4s ease-in-out infinite alternate}
.speech-bubble{position:relative;background:linear-gradient(135deg,#fff9fa,#fff0f4);border:1px solid #edc7d1;border-radius:15px;padding:10px 13px;color:#66454f;font-size:11px;font-weight:700;line-height:1.45;min-height:40px;box-shadow:0 7px 18px rgba(94,33,53,.06)}
.speech-bubble::before{content:"";position:absolute;left:50%;top:-7px;width:12px;height:12px;background:#fff7f9;border-left:1px solid #edc7d1;border-top:1px solid #edc7d1;transform:translateX(-50%) rotate(45deg)}
.player-form{margin-top:12px}
.player-form label{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:800;color:#4c333b;margin-bottom:6px}
.player-form label span{color:#a47a86;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}
.input-shell{height:42px;display:flex;align-items:center;gap:7px;padding:0 10px;border:1px solid #e8bdc8;border-radius:13px;background:#fff;box-shadow:inset 0 2px 6px rgba(91,25,48,.035)}
.input-shell>span{color:var(--berry);font-size:16px}
.input-shell input{min-width:0;width:100%;height:100%;border:0;outline:0;padding:0;background:transparent;color:var(--ink);font-size:12px}
.input-shell:focus-within{border-color:var(--berry);box-shadow:0 0 0 3px rgba(194,24,91,.1)}
.player-form>small{display:block;margin-top:6px;color:#987581;font-size:9px;line-height:1.45}
.control-hints{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:12px;color:#82616b;font-size:9px;font-weight:800}
.control-hints span{display:flex;align-items:center;gap:3px}
kbd{min-width:22px;height:20px;padding:2px 5px;border:1px solid #e5bdc8;border-bottom-width:2px;border-radius:6px;background:#fff;color:#704a57;display:inline-grid;place-items:center;font:700 9px Manrope, sans-serif}

/* Machine */
.machine-panel{min-width:0;align-self:start;position:relative;filter:drop-shadow(0 24px 30px rgba(111,27,59,.16))}
.machine-crown{height:64px;padding:7px 22px;display:flex;align-items:center;justify-content:center;gap:18px;color:#fff;border-radius:28px 28px 8px 8px;border:1px solid rgba(255,255,255,.55);background:linear-gradient(135deg,#e84a7b 0%,#c2185b 54%,#971039 100%);box-shadow:inset 0 2px 0 rgba(255,255,255,.42),inset 0 -7px 18px rgba(91,7,38,.2),0 8px 20px rgba(156,15,61,.19);position:relative;z-index:4}
.machine-crown::after{content:"";position:absolute;inset:7px 9px;border:1px solid rgba(255,255,255,.24);border-radius:20px;pointer-events:none}
.machine-crown>div{display:flex;align-items:baseline;gap:9px;position:relative;z-index:1}
.machine-crown small{font-size:9px;font-weight:800;letter-spacing:.16em;opacity:.86}
.machine-crown strong{font-family:Editorial,Georgia,serif;font-size:30px;line-height:1;letter-spacing:.02em}
.crown-star{font-size:16px;color:#ffd6a1;text-shadow:0 0 12px #fff;animation:twinkle 1.8s ease-in-out infinite}
.crown-star:last-child{animation-delay:.8s}
.machine-state{position:absolute;right:20px;top:19px;display:flex;align-items:center;gap:7px;font-size:9px;font-weight:800;letter-spacing:.11em;background:rgba(255,255,255,.17);padding:6px 10px;border-radius:999px;z-index:2}
.machine-state i{box-shadow:0 0 0 4px rgba(255,255,255,.12)}
.machine-state.busy i{animation:status-pulse .75s ease-in-out infinite}
.cabinet{height:clamp(420px,calc(100vh - 320px),580px);min-height:420px;margin:0 13px;background:linear-gradient(145deg,#fbcbd4 0%,#eba2b4 47%,#d96a8a 100%);border:12px solid #f37ba0;border-top-width:8px;border-bottom-width:15px;border-radius:5px 5px 25px 25px;box-shadow:inset 0 0 0 3px rgba(255,255,255,.78),inset 0 0 80px rgba(130,21,61,.22),inset 20px 0 28px rgba(255,255,255,.16),0 10px 0 #b52c5a;position:relative;overflow:hidden;cursor:crosshair;isolation:isolate;touch-action:pan-y}
.cabinet::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,rgba(255,255,255,.38) 0 9%,transparent 10% 72%,rgba(255,255,255,.12) 73% 75%,transparent 76%);pointer-events:none;z-index:30}
.cabinet::after{content:"";position:absolute;inset:0;border:8px solid rgba(255,255,255,.19);pointer-events:none;z-index:31}
.cabinet .scan-line{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(255,255,255,.03) 2px,rgba(255,255,255,.03) 4px);pointer-events:none;z-index:29;animation:scan-sweep 8s linear infinite}
.cabinet .scan-beam{position:absolute;left:0;right:0;height:3px;top:-3px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);pointer-events:none;z-index:29;animation:scan-beam-move 6s ease-in-out infinite}
.cabinet:focus-visible{outline-color:#76213e;outline-offset:2px}
.glass-shine{position:absolute;inset:0;background:radial-gradient(circle at 50% 10%,rgba(255,255,255,.52),transparent 48%),linear-gradient(to bottom,rgba(255,255,255,.21),transparent 60%);pointer-events:none;z-index:-1}
.cabinet-lights{position:absolute;left:16px;right:16px;top:12px;display:flex;justify-content:space-between;z-index:28;pointer-events:none}
.cabinet-lights i{width:9px;height:9px;border-radius:50%;background:#fff8d7;box-shadow:0 0 6px #fff,0 0 14px #ffe4a0,0 0 28px rgba(255,228,160,.5);animation:neon-bulb 1.8s ease-in-out infinite alternate}
.cabinet-lights i:nth-child(2n){animation-delay:.35s;box-shadow:0 0 6px #fff,0 0 14px #ffb8d4,0 0 28px rgba(255,184,212,.5)}
.cabinet-lights i:nth-child(3n){animation-delay:.7s;box-shadow:0 0 6px #fff,0 0 14px #b8e8ff,0 0 28px rgba(184,232,255,.4)}
.cabinet-lights i:nth-child(4n){animation-delay:1.1s;box-shadow:0 0 6px #fff,0 0 14px #ffe4a0,0 0 28px rgba(255,228,160,.5)}
.back-brand{position:absolute;left:50%;top:22%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:11px;color:rgba(255,255,255,.25);z-index:-1;pointer-events:none}
.back-brand>span{font-family:Editorial,Georgia,serif;font-size:88px;line-height:.7}
.back-brand small{font-size:8px;font-weight:900;letter-spacing:.2em;line-height:1.55}
.rail{position:absolute;top:32px;left:6%;right:6%;height:10px;border-radius:999px;background:linear-gradient(to bottom,#fff,#ead8dc 50%,#bb7187 51%,#fff);box-shadow:0 3px 7px rgba(89,20,45,.22);z-index:23}
.rail::before,.rail::after{content:"";position:absolute;width:15px;height:17px;top:-4px;border-radius:5px;background:linear-gradient(#fff,#d990a7);box-shadow:0 2px 5px rgba(84,20,42,.2)}
.rail::before{left:-4px}.rail::after{right:-4px}
.rail-glint{display:block;width:40%;height:2px;margin:2px 8%;background:rgba(255,255,255,.95);filter:blur(.3px)}
.aim-guide{position:absolute;top:46px;bottom:34px;left:50%;width:2px;transform:translateX(-50%);z-index:22;opacity:.82;transition:left .12s linear,opacity .2s;pointer-events:none}
.aim-laser{position:absolute;top:0;bottom:26px;left:0;width:2px;background:linear-gradient(to bottom,rgba(255,40,110,.9),rgba(255,100,160,.5) 60%,rgba(255,30,80,.95));box-shadow:0 0 6px #ff4081,0 0 14px rgba(255,64,129,.4)}
.aim-reticle{position:absolute;bottom:0;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:2px}
.reticle-ring{width:24px;height:24px;border-radius:50%;border:2px dashed #ff2a7a;box-shadow:0 0 10px #ff4081,inset 0 0 6px #ff4081;display:grid;place-items:center;animation:reticle-spin 5s linear infinite}
.reticle-ring::after{content:"";width:5px;height:5px;border-radius:50%;background:#fff;box-shadow:0 0 7px #ff2a7a}
.reticle-text{font-size:7px;font-weight:900;letter-spacing:.12em;color:#fff;background:rgba(180,10,60,.82);padding:1px 5px;border-radius:4px;box-shadow:0 2px 6px rgba(0,0,0,.3);white-space:nowrap}

.claw{position:absolute;top:31px;left:50%;width:116px;transform:translateX(-50%);transition-property:left,top;transition-duration:.14s;transition-timing-function:cubic-bezier(.35,.02,.2,1);z-index:26;will-change:left,top}
.claw.spy-claw .trolley{width:64px;height:24px;margin:auto;border-radius:8px;background:linear-gradient(145deg,#23131c,#471a2c 60%,#180a11);border:2px solid rgba(255,255,255,.85);box-shadow:0 5px 12px rgba(40,10,20,.4),inset 0 1px 1px #fff;display:flex;align-items:center;justify-content:space-between;padding:0 6px}
.claw.spy-claw .trolley-wheel{width:8px;height:8px;border-radius:50%;background:#ffd399;box-shadow:inset 0 1px 2px #000,0 0 4px #ffa726}
.claw.spy-claw .trolley-sensor{width:12px;height:6px;border-radius:3px;background:#00e5ff;box-shadow:0 0 8px #00e5ff;animation:stealth-beacon 1.2s ease-in-out infinite alternate}
.claw.spy-claw .cable{width:4px;height:36px;margin:-1px auto 0;border-radius:2px;background:repeating-linear-gradient(180deg,#1b0d14 0 4px,#3e1e2c 4px 6px,#fff 6px 7px);box-shadow:0 0 4px rgba(0,0,0,.4)}
.claw.spy-claw .cable-core{display:block;width:100%;height:100%}

/* Spy Mascot B! Hub */
.claw-hub.spy-mascot-hub{width:70px;height:66px;margin:-4px auto 0;border-radius:24px 24px 20px 20px;background:none;border:none;box-shadow:none;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow:visible;z-index:2}
.spy-tulip-hood{position:absolute;top:-4px;width:66px;height:44px;z-index:1;display:flex;justify-content:center}
.spy-tulip-hood .petal{position:absolute;background:linear-gradient(160deg,#ffb2c4 0%,#f06292 65%,#c2185b 100%);border:2px solid #fff;box-shadow:0 3px 6px rgba(111,20,50,.35)}
.spy-tulip-hood .p-mid{width:32px;height:42px;top:0;border-radius:50% 50% 12px 12px;clip-path:polygon(50% 0%, 100% 35%, 100% 100%, 0% 100%, 0% 35%);z-index:2}
.spy-tulip-hood .p-left{width:26px;height:36px;top:4px;left:4px;border-radius:35px 8px 14px 20px;transform:rotate(-24deg);z-index:1}
.spy-tulip-hood .p-right{width:26px;height:36px;top:4px;right:4px;border-radius:8px 35px 20px 14px;transform:rotate(24deg);z-index:1}
.spy-head{position:relative;width:52px;height:42px;margin-top:10px;border-radius:22px;background:radial-gradient(circle at 50% 38%,#fff5ea 0%,#fce1d2 75%,#f7caa8 100%);box-shadow:0 3px 8px rgba(90,20,40,.25),inset 0 -2px 4px rgba(220,130,130,.2);z-index:3;display:flex;flex-direction:column;align-items:center}
.spy-hair{position:absolute;top:2px;width:38px;height:12px;border-radius:0 0 10px 10px;background:#fcd192;box-shadow:inset 0 -1px 2px #e5b068}
.spy-shades{position:absolute;top:13px;width:46px;height:16px;display:flex;align-items:center;justify-content:center;z-index:4}
.spy-shades .lens{position:relative;width:19px;height:14px;border-radius:4px 4px 10px 10px;background:linear-gradient(145deg,#0e0b14,#211827 60%,#11091a);border:1.5px solid #ff4081;box-shadow:0 2px 6px rgba(0,0,0,.6),inset 0 1px 2px rgba(255,255,255,.2);overflow:hidden}
.spy-shades .lens .lens-glint{position:absolute;top:1px;left:2px;width:6px;height:10px;background:linear-gradient(135deg,rgba(0,229,255,.85),rgba(245,0,87,.6) 80%,transparent);border-radius:2px;transform:skewX(-20deg)}
.spy-shades .lens-bridge{width:6px;height:3px;background:#ff4081;box-shadow:0 1px 2px rgba(0,0,0,.4)}
.spy-cheeks{position:absolute;top:28px;width:40px;height:7px;background:radial-gradient(circle at 18% 50%,#ff8fa3 0,transparent 45%),radial-gradient(circle at 82% 50%,#ff8fa3 0,transparent 45%);opacity:.85}
.spy-smile{position:absolute;top:28px;width:8px;height:5px;border-bottom:2px solid #6d213c;border-radius:0 0 50% 50%}
.spy-vest{position:absolute;bottom:-2px;width:38px;height:18px;border-radius:8px 8px 12px 12px;background:linear-gradient(145deg,#23131c,#3d1727 60%,#1f0914);border:2px solid #ff80ab;box-shadow:0 4px 8px rgba(0,0,0,.35);display:grid;place-items:center;z-index:4}
.spy-emblem{font-size:9px;font-weight:900;color:#fff;text-shadow:0 0 4px #ff4081;letter-spacing:-.05em}
.spy-scanner-light{position:absolute;bottom:0;width:8px;height:4px;border-radius:50%;background:#ff1744;box-shadow:0 0 8px #ff1744,0 0 16px #ff5252;animation:scanner-blink 1s ease-in-out infinite alternate;z-index:5}

/* Spy Grapple Mechanical Prongs */
.claw-prongs.spy-prongs{width:96px;height:66px;margin:-4px auto 0;position:relative}
.claw-prongs.spy-prongs i{position:absolute;top:2px;width:36px;height:58px;border:5px solid #23121b;border-top:0;filter:drop-shadow(0 4px 6px rgba(40,8,20,.4));transition:transform .24s cubic-bezier(.2,.8,.2,1)}
.claw-prongs.spy-prongs .prong-left{left:4px;border-right:0!important;border-radius:0 0 0 32px;transform:rotate(20deg);transform-origin:100% 0;background:linear-gradient(135deg,rgba(255,100,150,.15),transparent)}
.claw-prongs.spy-prongs .prong-right{right:4px;border-left:0!important;border-radius:0 0 32px 0;transform:rotate(-20deg);transform-origin:0 0;background:linear-gradient(-135deg,rgba(255,100,150,.15),transparent)}
.claw-prongs.spy-prongs .stealth-joint{position:absolute;top:-4px;width:12px;height:12px;border-radius:50%;background:linear-gradient(#fff,#ff80ab);border:2px solid #23121b;box-shadow:0 0 5px #ff4081}
.claw-prongs.spy-prongs .prong-left .stealth-joint{right:-6px}
.claw-prongs.spy-prongs .prong-right .stealth-joint{left:-6px}
.claw-prongs.spy-prongs .claw-pad{position:absolute;bottom:-3px;width:14px;height:8px;border-radius:4px;background:#ff4081;box-shadow:0 0 6px #ff4081}
.claw-prongs.spy-prongs .prong-left .claw-pad{left:2px}
.claw-prongs.spy-prongs .prong-right .claw-pad{right:2px}
.claw-prongs.spy-prongs .prong-center{left:46px;width:4px;height:36px;border:0;border-left:3px solid #ff80ab;filter:drop-shadow(0 0 4px #ff4081)}

.claw.closed .prong-left{transform:translateX(15px) rotate(8deg)}
.claw.closed .prong-right{transform:translateX(-15px) rotate(-8deg)}
.claw.closed .spy-scanner-light{background:#00e676;box-shadow:0 0 10px #00e676}

.caught-pod{position:absolute;width:66px;height:66px;left:25px;top:98px;border-radius:50%;padding:8px;background:radial-gradient(circle at 32% 25%,rgba(255,255,255,.98),rgba(255,255,255,.55) 38%,rgba(244,163,185,.54) 78%);border:2px solid rgba(255,255,255,.88);box-shadow:inset -8px -10px 15px rgba(181,58,94,.18),0 8px 10px rgba(89,20,43,.22);animation:caught-sway .55s ease-in-out infinite alternate}
.caught-pod img{width:100%;height:100%;object-fit:contain;border-radius:50%;background:#fff}

/* Dense Prize Pit Covering >50% of the screen */
.prize-pit{position:absolute;left:4%;right:4%;bottom:26px;height:55%;z-index:4;pointer-events:none}
.pit-floor{position:absolute;left:-3%;right:-3%;bottom:-10px;height:148px;border-radius:50% 50% 0 0;background:radial-gradient(ellipse at 50% 20%,#f9a8bc 0%,#d85f82 52%,#88133c 100%);box-shadow:inset 0 16px 24px rgba(255,255,255,.28),0 -8px 24px rgba(65,10,30,.25);z-index:1}
.prize-ball{--size:clamp(46px,4.9vw,66px);position:absolute;left:var(--x);bottom:var(--y);width:var(--size);height:var(--size);transform:translateX(-50%) rotate(var(--r)) scale(var(--scale));z-index:var(--z);filter:drop-shadow(0 8px 8px rgba(80,18,40,.24));transition:opacity .25s,transform .3s;animation:ball-float 3.6s ease-in-out infinite;animation-delay:var(--delay);pointer-events:auto;cursor:pointer}
.prize-ball:hover{filter:drop-shadow(0 10px 12px rgba(80,18,40,.3)) brightness(1.1);transform:translateX(-50%) rotate(var(--r)) scale(calc(var(--scale) * 1.08))}
.ball-shell{width:100%;height:100%;border-radius:50%;display:grid;place-items:center;position:relative;overflow:hidden;background:radial-gradient(circle at 29% 22%,rgba(255,255,255,.98) 0 8%,rgba(255,255,255,.58) 10% 32%,rgba(255,225,234,.62) 58%,rgba(211,77,116,.4) 100%);border:2px solid rgba(255,255,255,.92);box-shadow:inset -8px -12px 18px rgba(173,43,82,.22),inset 7px 7px 12px rgba(255,255,255,.7)}
.ball-shell::before{content:"";position:absolute;left:3%;right:3%;top:49%;height:2px;background:rgba(194,47,91,.35);box-shadow:0 1px 0 rgba(255,255,255,.7);z-index:2}
.ball-shell::after{content:"";position:absolute;width:34%;height:17%;left:18%;top:10%;border-radius:50%;background:rgba(255,255,255,.72);transform:rotate(-32deg);filter:blur(1px);animation:ball-shimmer 3.2s ease-in-out infinite}
.ball-shell img{width:69%;height:69%;object-fit:contain;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(85,18,40,.12)}
.prize-ball.tier-bundling .ball-shell,.prize-ball.tier-grand .ball-shell{box-shadow:inset -8px -12px 18px rgba(197,129,20,.22),inset 7px 7px 12px rgba(255,255,255,.85),0 0 16px rgba(255,221,94,.75);border-color:#fff3a8;animation:grand-glow 2.4s ease-in-out infinite}
.prize-ball.tier-special .ball-shell{box-shadow:inset -8px -12px 18px rgba(233,30,99,.25),inset 7px 7px 12px rgba(255,255,255,.9),0 0 14px rgba(255,100,160,.6);border-color:#ffe4ed}
.prize-ball.captured{opacity:0;transform:translateX(-50%) scale(.5)}

/* Cozzone Mini Mascot Festival Parade at bottom edge */
.cozzone-crowd{position:absolute;left:0;right:0;bottom:6px;height:44px;z-index:22;pointer-events:auto}
.crowd-track{position:relative;width:100%;height:100%;overflow:visible}
/* Parade .mini-mascot v1.2 dihapus di v1.3: markup-nya diganti runner
   yang digambar js/runners.js (lihat .runner di css/stage.css). */
.chute{position:absolute;left:13px;bottom:14px;width:104px;height:82px;border-radius:17px 17px 12px 12px;background:linear-gradient(145deg,#7e193e,#3d1424);border:5px solid #f7acc0;box-shadow:inset 0 8px 14px rgba(0,0,0,.42),0 5px 8px rgba(81,17,39,.25);z-index:15;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:8px;color:#fbd4df;font-size:8px;font-weight:900;letter-spacing:.2em;animation:chute-pulse 3s ease-in-out infinite}
.chute-mouth{position:absolute;width:68px;height:29px;top:12px;border-radius:50%;background:#210a12;box-shadow:inset 0 5px 10px #000,0 0 0 2px rgba(255,255,255,.12),0 0 12px rgba(247,172,192,.3)}
.chute.glow{background:linear-gradient(145deg,#c87c0a,#6f2b0a);border-color:#fff1a8;box-shadow:inset 0 8px 14px rgba(0,0,0,.3),0 0 30px rgba(255,224,100,.9),0 0 60px rgba(255,224,100,.4);animation:chute-glow-burst .6s ease-out}
.cabinet-message{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);min-width:210px;padding:10px 15px;border:1px solid rgba(255,255,255,.55);border-radius:14px;background:rgba(121,26,59,.35);backdrop-filter:blur(7px);color:#fff;text-align:center;z-index:10;opacity:0;transition:opacity .25s;pointer-events:none}
.cabinet-message.visible{opacity:1}
.cabinet-message b,.cabinet-message span{display:block}.cabinet-message b{font-size:12px}.cabinet-message span{font-size:8px;margin-top:3px;opacity:.82}
.cabinet.miss{animation:cabinet-shake .38s ease-in-out}
.machine-console{margin:-2px 7px 0;min-height:88px;padding:16px 18px 13px;display:flex;align-items:center;gap:14px;border-radius:0 0 27px 27px;border:1px solid rgba(255,255,255,.7);background:linear-gradient(150deg,#fff 0%,#ffe6ed 56%,#f1b0c2 100%);box-shadow:inset 0 3px 0 rgba(255,255,255,.8),0 9px 0 #d14a74,0 14px 22px rgba(118,26,57,.17)}
.console-instructions{display:flex;align-items:center;gap:10px;min-width:160px;color:#6a4752}
.console-led{width:14px;height:14px;flex:0 0 auto;border:3px solid #ffcbda;border-radius:50%;background:#34c58a;box-shadow:0 0 12px rgba(52,197,138,.75)}
.console-instructions div{display:flex;flex-direction:column;gap:3px}.console-instructions small{font-size:8px;font-weight:800;letter-spacing:.18em;color:#a77a87}.console-instructions b{font-size:10px;letter-spacing:.12em}
.play-button{margin-left:auto;min-height:57px;min-width:250px;padding:8px 13px 8px 17px;border:0;border-radius:18px;background:linear-gradient(115deg,#ef5b87,#cf1757 55%,#a20e3e);color:#fff;display:flex;align-items:center;gap:11px;cursor:pointer;box-shadow:inset 0 2px 0 rgba(255,255,255,.38),inset 0 -4px 8px rgba(103,5,39,.22),0 9px 17px rgba(181,27,77,.3);position:relative;overflow:hidden;transition:transform .16s,filter .16s;animation:button-glow 2.8s ease-in-out infinite}
.play-button::before{content:"";position:absolute;top:-70%;left:-30%;width:24%;height:230%;background:rgba(255,255,255,.23);transform:rotate(24deg);transition:left .5s}
.play-button::after{content:"";position:absolute;inset:0;border-radius:18px;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.12) 50%,transparent 70%);background-size:200% 100%;animation:button-shine 3s ease-in-out infinite}
.play-button:hover{transform:translateY(-2px);filter:saturate(1.08)}.play-button:hover::before{left:115%}.play-button:active{transform:translateY(1px) scale(.99)}
.play-button:disabled{animation:none}
.play-button>span:nth-child(2){display:flex;flex-direction:column;text-align:left;line-height:1.05;gap:4px}.play-button small{font-size:7px;font-weight:800;letter-spacing:.15em;opacity:.8}.play-button b{font-size:14px;letter-spacing:.075em}.play-button>i{width:31px;height:31px;margin-left:auto;border-radius:10px;background:rgba(255,255,255,.18);display:grid;place-items:center;font-style:normal;font-size:18px}.button-spark{font-size:17px;color:#ffecaa;animation:twinkle 1.4s ease-in-out infinite}
.fairness-note{margin:16px 18px 0;color:#8e6b75;text-align:center;font-size:9px;line-height:1.45}
.fairness-note span{color:var(--berry);font-weight:900}
.error-message{min-height:17px;margin:4px 18px 0;color:var(--danger);text-align:center;font-size:10px;font-weight:700}

/* Ranking and odds */
.score-panel{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.score-heading,.odds-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.score-heading h2{font-family:Editorial,Georgia,serif;font-size:25px;line-height:1;margin:5px 0 0;font-weight:600}
.live-dot{padding:6px 8px;color:var(--success);background:#e9f8f2;border:1px solid #c9ebdf;font-size:8px}
.ranking-list{margin:14px 0 17px;display:flex;flex-direction:column;min-height:82px}
.empty-state{padding:17px 8px;border:1px dashed #e8c6cf;border-radius:14px;color:#997681;font-size:10px;text-align:center;background:#fff9fa}
.rank-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 0;border-bottom:1px dashed #edd6dc}
.rank-medal{width:27px;height:27px;border-radius:9px;display:grid;place-items:center;background:#fff0f4;color:var(--berry);font-size:10px;font-weight:900}
.rank-row:nth-child(1) .rank-medal{color:#8e5a00;background:linear-gradient(135deg,#fff8c7,#f6d66f);box-shadow:0 3px 9px rgba(202,154,23,.2)}
.rank-copy{min-width:0}.rank-copy b{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-copy small{display:block;color:#9b7882;font-size:8px;margin-top:2px}.rank-points{text-align:right;color:var(--berry);font-size:11px;font-weight:900}.rank-points small{display:block;color:#a77d89;font-size:7px;font-weight:700}
.odds-heading{padding-top:15px;border-top:1px solid #f0d9df}.odds-heading h3{margin:4px 0 0;font-family:Editorial,Georgia,serif;font-size:18px;font-weight:600}.odds-heading>span{color:#a27682;font-size:13px}
.odds-list{display:grid;grid-template-columns:1fr;gap:6px;margin-top:12px}
.odd-row{display:grid;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 9px;border-radius:10px;background:#fff9fa;border:1px solid #f2dde2;color:#674852;font-size:10px}
.odd-row i{width:8px;height:8px;border-radius:50%;background:var(--dot,#e18da7);box-shadow:0 0 0 3px color-mix(in srgb,var(--dot,#e18da7) 15%,transparent)}
.odd-row b{color:#4c3039;font-size:11px}.odd-row small{color:#9c7480;font-size:9px;display:block;margin-top:1px}.odd-value{font-weight:900;color:var(--berry);font-size:11px}
.stock-notice{margin:auto 0 0;padding:10px 11px;border-radius:11px;background:#fff4e5;border:1px solid #f2d4aa;color:#865116;font-size:8px;line-height:1.5}.stock-notice span{color:#d08b20;margin-right:5px}.stock-notice.danger{background:#fff0ef;border-color:#f1c1bd;color:#a62720}

/* Result dialog */
.result-dialog{width:min(440px,calc(100vw - 24px));max-height:calc(100vh - 24px);padding:0;border:0;border-radius:28px;background:transparent;overflow:visible;color:var(--ink)}
.result-dialog::backdrop{background:rgba(54,10,27,.58);backdrop-filter:blur(8px)}
.result-card{padding:25px 28px 22px;border:1px solid rgba(255,255,255,.8);border-radius:28px;background:linear-gradient(150deg,#fff 0%,#fff7f9 56%,#fbdce4 100%);box-shadow:0 34px 90px rgba(62,9,29,.4);text-align:center;position:relative;overflow:hidden}
.result-card::before{content:"";position:absolute;left:-15%;right:-15%;top:-140px;height:270px;border-radius:50%;background:radial-gradient(circle,#ffdce6,rgba(255,220,230,0) 70%)}
.dialog-close{position:absolute;top:13px;right:13px;width:34px;height:34px;border:1px solid #efced7;border-radius:12px;background:rgba(255,255,255,.78);color:#8b5a69;font-size:21px;line-height:1;cursor:pointer;z-index:5}
.result-dialog .eyebrow{position:relative;color:var(--berry)}
.result-visual{height:166px;position:relative;display:grid;place-items:center}
.result-capsule{width:135px;height:135px;padding:16px;border-radius:50%;background:radial-gradient(circle at 29% 22%,#fff 0 9%,rgba(255,255,255,.62) 11% 35%,rgba(255,219,230,.76) 66%,rgba(215,66,111,.35));border:3px solid rgba(255,255,255,.92);box-shadow:inset -14px -17px 24px rgba(178,42,82,.2),0 17px 28px rgba(133,29,63,.2),0 0 0 7px rgba(247,188,195,.15);position:relative;z-index:2;animation:result-pop .55s cubic-bezier(.2,.9,.25,1.2)}
.result-capsule img{width:100%;height:100%;object-fit:contain;border-radius:50%;background:#fff}
.result-rays{position:absolute;width:210px;height:210px;border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(236,64,122,.14) 0 7deg,transparent 7deg 18deg);animation:spin-rays 14s linear infinite}
.result-spark{position:absolute;color:#e5a221;text-shadow:0 0 8px #ffe9a1;animation:twinkle 1s ease-in-out infinite;z-index:3}.result-spark.one{left:18%;top:28%;font-size:20px}.result-spark.two{right:17%;bottom:24%;font-size:13px;animation-delay:.45s}
.result-card h2{position:relative;margin:1px auto 6px;font-family:Editorial,Georgia,serif;font-size:26px;line-height:1.13;color:var(--berry);font-weight:600;max-width:350px}
.result-prize-theme-badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;margin:0 auto 6px;box-shadow:0 2px 8px rgba(0,0,0,.12);position:relative;z-index:3}
.result-congrats-quote{font-size:11px;font-style:italic;font-weight:700;color:#ad1457;margin:0 auto 8px;max-width:360px;line-height:1.4}
.theme-royal-bundling .result-prize-theme-badge{background:linear-gradient(90deg,#ffbe0b,#fb5607);color:#2e0854}
.theme-vip-500k .result-prize-theme-badge{background:linear-gradient(90deg,#7b1fa2,#c2185b);color:#ffe082}
.theme-gold-100k .result-prize-theme-badge{background:linear-gradient(90deg,#f59e0b,#d97706);color:#fff}
.theme-pink-50pct .result-prize-theme-badge{background:linear-gradient(90deg,#ec407a,#ad1457);color:#fff}
.theme-pink-25pct .result-prize-theme-badge{background:linear-gradient(90deg,#f06292,#c2185b);color:#fff}
.theme-welcome-newuser .result-prize-theme-badge{background:linear-gradient(90deg,#ba68c8,#8e24aa);color:#fff}
.theme-beauty-powder .result-prize-theme-badge,.theme-beauty-foundation .result-prize-theme-badge,.theme-beauty-stick .result-prize-theme-badge{background:linear-gradient(90deg,#00b4d8,#0077b6);color:#fff}
.theme-beauty-lipgloss .result-prize-theme-badge,.theme-beauty-lips .result-prize-theme-badge{background:linear-gradient(90deg,#ff4d6d,#c9184a);color:#fff}
.theme-beauty-lash .result-prize-theme-badge{background:linear-gradient(90deg,#ffaa00,#ff7b00);color:#212529}
.result-player{margin:0 0 8px;color:#664750;font-size:11px;font-weight:800}.result-terms{min-height:18px;margin:0 auto 12px;color:#84616b;font-size:10px;line-height:1.5;max-width:350px}
.voucher-ticket-pass{margin:10px 0 12px;border-radius:16px;background:linear-gradient(135deg,#fffbf0 0%,#fff0f5 50%,#ffe8ef 100%);border:2px solid #f6c042;box-shadow:0 8px 24px rgba(218,140,20,.18),inset 0 1px 0 rgba(255,255,255,.9);position:relative;overflow:hidden;padding:12px 14px 10px;text-align:left}
.voucher-ticket-pass::before,.voucher-ticket-pass::after{content:"";position:absolute;top:50%;width:14px;height:14px;background:#fbdce4;border-radius:50%;transform:translateY(-50%)}
.voucher-ticket-pass::before{left:-7px}
.voucher-ticket-pass::after{right:-7px}
.vtp-ribbon{display:inline-block;background:linear-gradient(90deg,#d81b60,#8e24aa);color:#fff;font-size:8px;font-weight:900;letter-spacing:.12em;padding:2px 8px;border-radius:999px;margin-bottom:6px;box-shadow:0 2px 6px rgba(216,27,96,.25)}
.vtp-body{display:flex;align-items:center;justify-content:space-between;gap:10px}
.vtp-info{display:flex;flex-direction:column}
.vtp-label{font-size:8px;font-weight:800;letter-spacing:.14em;color:#a36515}
.vtp-code{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;font-size:20px;font-weight:900;letter-spacing:.12em;color:#ad1457;text-shadow:0 1px 2px rgba(173,20,87,.15);margin:2px 0 1px}
.vtp-min{font-size:9px;font-weight:700;color:#6a535b}
.vtp-copy-btn{background:linear-gradient(135deg,#ffb300,#f57c00);border:none;border-radius:10px;color:#fff;padding:8px 14px;font-size:11px;font-weight:900;cursor:pointer;display:inline-flex;align-items:center;gap:5px;box-shadow:0 4px 12px rgba(245,124,0,.3);transition:transform .15s ease,filter .15s ease;white-space:nowrap}
.vtp-copy-btn:hover{transform:translateY(-1px) scale(1.03);filter:brightness(1.08)}
.vtp-copy-btn:active{transform:translateY(1px) scale(.97)}
.vtp-instruction{margin:6px 0 0;font-size:8.5px;color:#8c6772;font-style:italic}
.claim-code{padding:10px 12px;border:1px dashed #dca8b7;border-radius:14px;background:rgba(255,255,255,.7);display:flex;flex-direction:column;gap:3px}.claim-code small{font-size:7px;letter-spacing:.18em;color:#9d7580;font-weight:900}.claim-code b{font-size:17px;letter-spacing:.14em;color:#3e2630}.claim-code span{font-size:8px;color:#9a7781}.claim-code.demo{background:#fff8e8;border-color:#e7c98d}.claim-code.demo small{color:#9a6b19}
.result-primary{width:100%;margin-top:13px;min-height:46px;border:0;border-radius:14px;background:linear-gradient(110deg,#ed5c86,#c2185b);color:#fff;font-size:11px;font-weight:900;letter-spacing:.04em;cursor:pointer;box-shadow:0 8px 18px rgba(182,28,76,.25)}
.result-footnote{display:block;margin-top:9px;color:#a17d87;font-size:8px;line-height:1.45}
.result-dialog[data-tier="zonk"] .result-card{background:linear-gradient(150deg,#fff,#fff9ee)}
.result-dialog[data-tier="zonk"] .result-capsule{box-shadow:inset -14px -17px 24px rgba(150,105,39,.15),0 17px 28px rgba(95,62,20,.13);background:radial-gradient(circle at 29% 22%,#fff,#fff8dc 65%,#eccf8f)}
.result-dialog[data-tier="grand"] .result-capsule,.result-dialog[data-tier="bundling"] .result-capsule{box-shadow:inset -14px -17px 24px rgba(180,117,13,.2),0 17px 30px rgba(157,92,5,.22),0 0 35px rgba(255,212,79,.7)}
.confetti-layer{position:fixed;inset:0;z-index:999;pointer-events:none;overflow:hidden}.confetti-piece{position:absolute;top:-20px;width:9px;height:16px;border-radius:3px;background:var(--confetti);animation:confetti-fall var(--fall) cubic-bezier(.2,.7,.3,1) forwards;transform:translateX(var(--start)) rotate(var(--rotate))}
.prize-ball.slip-ball{pointer-events:none;z-index:40;animation:slip-fall .72s cubic-bezier(.2,.1,.8,1) forwards!important}
.toast{position:fixed;left:50%;bottom:20px;z-index:1000;max-width:min(420px,calc(100vw - 24px));padding:11px 16px;border-radius:13px;background:#35232a;color:#fff;font-size:10px;font-weight:700;box-shadow:0 12px 28px rgba(35,10,19,.25);opacity:0;transform:translate(-50%,12px);pointer-events:none;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translate(-50%,0)}

/* Admin shell */
.admin-page{min-height:100vh;background:linear-gradient(145deg,#fffafb,#fbecef)}
.admin-shell{width:min(1480px,100%);margin:0 auto;padding:22px clamp(14px,2vw,30px) 40px;position:relative;z-index:1}
.admin-login{width:min(420px,calc(100% - 28px));margin:8vh auto 0;padding:30px;border:1px solid rgba(255,255,255,.9);border-radius:28px;background:rgba(255,255,255,.91);box-shadow:0 24px 70px rgba(87,22,47,.16);text-align:center}
.admin-login .login-logo{width:130px;height:70px;object-fit:contain}.admin-login h1{font-family:Editorial,Georgia,serif;font-size:31px;margin:3px 0 7px;color:var(--berry);font-weight:600}.admin-login>p{margin:0 auto 18px;color:var(--muted);font-size:11px;line-height:1.5;max-width:33ch}.pin-field{display:flex;align-items:center;border:1px solid #e5bac6;border-radius:14px;background:#fff;padding:0 12px}.pin-field input{width:100%;height:50px;border:0;outline:0;background:transparent;text-align:center;font-size:22px;letter-spacing:.35em}.login-hint{margin-top:12px;padding:9px 11px;border-radius:10px;background:#fff7e8;color:#8b5a16;font-size:11px}.login-error{min-height:17px;color:var(--danger);font-size:11px;font-weight:700;margin:10px 0 0}.back-link{display:inline-flex;margin-top:13px;color:var(--berry);font-size:11px;font-weight:800;text-decoration:none}
.primary-button,.secondary-button,.danger-button,.success-button{min-height:40px;border:0;border-radius:12px;padding:9px 15px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:11px;font-weight:900;letter-spacing:.02em;text-decoration:none;cursor:pointer;transition:transform .15s,filter .15s}.primary-button{background:linear-gradient(110deg,#e94f7c,#c2185b);color:#fff;box-shadow:0 7px 16px rgba(183,26,74,.2)}.secondary-button{background:#fff;color:var(--berry);border:1px solid #e8bdc8}.danger-button{background:#b3261e;color:#fff}.success-button{background:#16845b;color:#fff}.primary-button:hover,.secondary-button:hover,.danger-button:hover,.success-button:hover{transform:translateY(-1px);filter:brightness(1.03)}.wide-button{width:100%}
.admin-app[hidden],.admin-login[hidden],.tab-pane[hidden]{display:none!important}
.admin-header{display:flex;align-items:center;gap:18px;padding:14px 18px;border:1px solid rgba(255,255,255,.88);border-radius:22px;background:rgba(255,255,255,.89);box-shadow:0 12px 36px rgba(87,22,47,.1);backdrop-filter:blur(15px)}
.admin-brand{display:flex;align-items:center;gap:12px;min-width:0}.admin-brand img{width:92px;height:48px;object-fit:contain}.admin-brand div{padding-left:12px;border-left:1px solid #edd3da;min-width:0}.admin-brand h1{font-family:Editorial,Georgia,serif;font-size:23px;margin:0;color:var(--berry);font-weight:600}.admin-brand p{font-size:11px;color:#936f7a;margin:4px 0 0;text-transform:uppercase;letter-spacing:.11em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-status{margin-left:auto;display:flex;gap:8px;align-items:center}.admin-actions{display:flex;gap:7px}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:#fff0f4;border:1px solid #efccd5;color:var(--berry);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.status-pill.live{background:#fff3df;border-color:#efd29f;color:#98550b}.status-pill.paused{background:#fff0ef;border-color:#f0c6c2;color:var(--danger)}
.admin-tabs{display:flex;gap:7px;margin:15px 0;overflow-x:auto;padding:2px;scrollbar-width:thin}.tab-button{flex:0 0 auto;min-height:38px;padding:8px 14px;border:1px solid #ebcbd3;border-radius:12px;background:rgba(255,255,255,.8);color:#77535e;font-size:11px;font-weight:900;cursor:pointer}.tab-button.active{background:var(--berry);color:#fff;border-color:var(--berry);box-shadow:0 6px 15px rgba(172,23,70,.2)}
.tab-pane{padding:22px;border:1px solid rgba(255,255,255,.9);border-radius:24px;background:rgba(255,255,255,.89);box-shadow:0 15px 42px rgba(87,22,47,.09);backdrop-filter:blur(14px)}
.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}.section-heading h2{font-family:Editorial,Georgia,serif;font-size:23px;margin:2px 0 0;color:#432a33;font-weight:600}.section-heading p{margin:5px 0 0;color:#96727d;font-size:11px;line-height:1.45}.section-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.stat-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:11px}.stat-card{padding:15px;border:1px solid #f0d9df;border-radius:16px;background:linear-gradient(145deg,#fff,#fff7f9);position:relative;overflow:hidden}.stat-card::after{content:"";position:absolute;width:52px;height:52px;right:-16px;top:-15px;border-radius:50%;background:var(--stat-color,#f7bcc3);opacity:.19}.stat-card small{color:#97717c;font-size:11px;font-weight:900;letter-spacing:.11em}.stat-card strong{display:block;margin-top:6px;color:#442b34;font-size:25px;line-height:1}.stat-card span{display:block;margin-top:5px;color:#aa818d;font-size:11px}
.dashboard-grid{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(360px,1.25fr);gap:14px;margin-top:14px}.panel-card{padding:17px;border:1px solid #f0dce1;border-radius:17px;background:#fff}.panel-card h3{margin:0 0 12px;color:#73515c;font-size:11px;letter-spacing:.13em;text-transform:uppercase}.donut-layout{display:flex;align-items:center;gap:18px}.donut{--value:0;width:132px;height:132px;border-radius:50%;background:conic-gradient(#c2185b 0 calc(var(--value)*1%),#ec7a9d calc(var(--value)*1%) 62%,#f6bd80 62% 78%,#f2dbe1 78%);display:grid;place-items:center;box-shadow:inset 0 0 0 1px #fff}.donut::after{content:"";width:83px;height:83px;border-radius:50%;background:#fff}.donut-label{position:absolute;text-align:center}.donut-label strong{display:block;font-size:23px}.donut-label small{font-size:11px;color:#9c7882}.legend{display:flex;flex-direction:column;gap:8px;min-width:0}.legend-row{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:7px;font-size:11px;color:#76545e}.legend-row i{width:7px;height:7px;border-radius:50%;background:var(--legend)}.legend-row b{font-size:11px;color:#422b33}
.hour-chart{height:150px;display:flex;align-items:flex-end;gap:7px;padding:8px 4px 24px;border-bottom:1px solid #efdce1}.hour-bar{flex:1;min-width:16px;height:max(4px,var(--bar-height));border-radius:7px 7px 2px 2px;background:linear-gradient(to top,#bd1652,#ef789b);position:relative}.hour-bar b{position:absolute;top:-16px;left:0;right:0;text-align:center;font-size:11px;color:#76515d}.hour-bar small{position:absolute;left:50%;bottom:-19px;transform:translateX(-50%);font-size:11px;color:#9a7580;white-space:nowrap}.warning-list{display:flex;flex-direction:column;gap:7px}.warning-item{padding:9px 11px;border-radius:10px;background:#fff8e9;border:1px solid #f1d7a8;color:#805019;font-size:11px;line-height:1.4}.warning-item.danger{background:#fff0ef;border-color:#efc3bf;color:#9d2721}.warning-item.success{background:#eef9f4;border-color:#cae9dc;color:#276e55}
.table-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search-field{height:39px;min-width:230px;border:1px solid #e6c4cc;border-radius:11px;background:#fff;padding:0 12px;font-size:11px;color:#4e343c}.admin-table-wrap{overflow:auto;border:1px solid #efdae0;border-radius:14px}.admin-table{width:100%;border-collapse:collapse;font-size:11px;background:#fff}.admin-table th{position:sticky;top:0;z-index:2;padding:10px;text-align:left;background:#fff6f8;color:#906d77;font-size:11px;letter-spacing:.07em;text-transform:uppercase;border-bottom:1px solid #ead2d9;white-space:nowrap}.admin-table td{padding:9px 10px;border-bottom:1px solid #f3e4e8;color:#594048;vertical-align:middle}.admin-table tr:last-child td{border-bottom:0}.admin-table tr:hover td{background:#fffbfc}.admin-table img{width:45px;height:45px;padding:3px;border-radius:11px;object-fit:contain;background:#fff7f9;border:1px solid #f0d8df}.table-prize{min-width:190px}.table-prize b{display:block;color:#442c34;font-size:11px}.table-prize small{display:block;color:#a07b85;font-size:11px;margin-top:3px;max-width:42ch}.stock-control{display:flex;align-items:center;gap:5px;white-space:nowrap}.stock-control input{width:72px;height:33px;border:1px solid #e3bdc7;border-radius:9px;padding:0 8px;font-size:11px}.tiny-button{min-height:30px;border:1px solid #e5c2cb;border-radius:9px;padding:5px 9px;background:#fff;color:#805363;font-size:11px;font-weight:900;cursor:pointer;white-space:nowrap}.tiny-button.primary{background:var(--berry);color:#fff;border-color:var(--berry)}.tiny-button.success{background:#16845b;color:#fff;border-color:#16845b}.tiny-button.danger{background:#fff0ef;color:var(--danger);border-color:#eec4c0}.tiny-button:disabled{background:#f1eeee;color:#aaa;border-color:#e5dddd}.switch{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;color:#77535e;white-space:nowrap}.switch input{appearance:none;width:30px;height:18px;border-radius:999px;background:#d9c5ca;position:relative;cursor:pointer}.switch input::after{content:"";position:absolute;width:14px;height:14px;top:2px;left:2px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.18);transition:left .18s}.switch input:checked{background:#1f9a6c}.switch input:checked::after{left:14px}
.inventory-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.form-group{display:flex;flex-direction:column;gap:5px}.form-group.full{grid-column:1/-1}.form-group label{font-size:11px;font-weight:900;color:#76525d;text-transform:uppercase;letter-spacing:.08em}.form-group input,.form-group select,.form-group textarea{width:100%;border:1px solid #e5c2cb;border-radius:10px;background:#fff;padding:9px 10px;font-size:11px;color:#422d34}.form-group textarea{min-height:76px;resize:vertical}.form-help{color:#a17e88;font-size:11px;line-height:1.45}.photo-preview{min-height:112px;border:1px dashed #e1b6c2;border-radius:12px;background:#fff8fa;display:flex;align-items:center;justify-content:center;gap:12px;padding:9px}.photo-preview img{width:94px;height:94px;object-fit:contain;border-radius:10px;background:#fff}.photo-preview span{color:#9a7580;font-size:11px}
.odds-grid{display:grid;grid-template-columns:minmax(320px,1fr) minmax(280px,.78fr);gap:16px}.slider-list{display:flex;flex-direction:column;gap:10px}.slider-row{display:grid;grid-template-columns:150px minmax(120px,1fr) 54px;align-items:center;gap:10px;padding:10px 12px;border:1px solid #efdae0;border-radius:12px;background:#fff}.slider-row label{font-size:11px;font-weight:800;color:#60434c}.slider-row input[type="range"]{accent-color:var(--berry)}.slider-value{text-align:right;font-size:11px;font-weight:900;color:var(--berry)}.total-meter{margin-top:12px;padding:12px;border-radius:12px;background:#fff7f9;border:1px solid #efd7de;display:flex;align-items:center;justify-content:space-between;font-size:11px}.total-meter strong.valid{color:var(--success)}.total-meter strong.invalid{color:var(--danger)}.effective-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.effective-card{padding:10px;border-radius:11px;background:#fff8fa;border:1px solid #f0dae0}.effective-card small{display:block;color:#97717c;font-size:11px}.effective-card strong{display:block;margin-top:4px;color:#573640;font-size:14px}.range-setting{margin-top:15px;padding-top:15px;border-top:1px solid #efdae0}
.filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.filter-row select{height:39px;border:1px solid #e5c2cb;border-radius:10px;background:#fff;padding:0 10px;font-size:11px}.badge{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.badge.unclaimed{background:#fff2df;color:#9a5a12}.badge.claimed{background:#e8f7f1;color:#26765b}.badge.zonk{background:#f1edef;color:#70565e}.leaderboard-admin{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.leader-card{padding:14px;border:1px solid #efdbe0;border-radius:15px;background:#fff;display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center}.leader-card .rank-medal{width:34px;height:34px}.leader-card b{font-size:11px}.leader-card small{display:block;color:#9a7580;font-size:11px;margin-top:3px}.leader-card strong{color:var(--berry);font-size:15px}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.settings-card{padding:17px;border:1px solid #efdbe0;border-radius:16px;background:#fff}.settings-card.full{grid-column:1/-1}.settings-card h3{font-size:11px;color:#63454e;margin:0 0 12px}.settings-card .inline-fields{display:flex;align-items:end;gap:9px;flex-wrap:wrap}.settings-card .inline-fields .form-group{flex:1;min-width:150px}.danger-zone{border-color:#ecc3bf;background:#fffafa}.backup-drop{padding:16px;border:1px dashed #dfaebb;border-radius:13px;background:#fff8fa;text-align:center}.backup-drop input{font-size:11px;max-width:100%}.audio-controls-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.audio-test-pad{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px;padding:12px;border-radius:12px;background:#fff8fa;border:1px solid #f0dae0}
.modal{width:min(620px,calc(100vw - 24px));max-height:calc(100vh - 30px);border:0;border-radius:22px;padding:0;background:#fff;box-shadow:0 30px 80px rgba(65,12,31,.35)}.modal::backdrop{background:rgba(47,10,24,.48);backdrop-filter:blur(5px)}.modal-inner{padding:22px}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:15px}.modal-header h2{font-family:Editorial,Georgia,serif;color:var(--berry);font-size:24px;margin:0}.modal-header p{font-size:11px;color:#98737e;margin:4px 0 0}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}

/* Animation */
@keyframes twinkle{0%,100%{opacity:.3;transform:scale(.8) rotate(0)}50%{opacity:1;transform:scale(1.18) rotate(20deg)}}
@keyframes bulb{from{opacity:.58;filter:brightness(.9)}to{opacity:1;filter:brightness(1.25)}}
@keyframes neon-bulb{0%{opacity:.5;filter:brightness(.85)}50%{opacity:1;filter:brightness(1.35)}100%{opacity:.7;filter:brightness(1.1)}}
@keyframes status-pulse{50%{opacity:.35;transform:scale(.72)}}
@keyframes mascot-breathe{0%,100%{transform:translateY(0) rotate(0) scale(1)}50%{transform:translateY(-6px) rotate(-1deg) scale(1.012)}}
@keyframes mascot-wave{0%,100%{transform:rotate(0) translateY(0)}25%{transform:rotate(-5deg) translateY(-7px)}55%{transform:rotate(5deg) translateY(-5px)}75%{transform:rotate(-3deg)}}
@keyframes mascot-dance{0%,100%{transform:translateX(0) rotate(0)}20%{transform:translateX(-10px) rotate(-6deg)}45%{transform:translateY(-12px) rotate(2deg)}70%{transform:translateX(10px) rotate(6deg)}}
@keyframes mascot-bow{0%,100%{transform:rotateX(0) translateY(0)}50%{transform:rotate(5deg) translateY(8px) scaleY(.96)}}
@keyframes mascot-tense{from{transform:translateY(0) rotate(-1deg)}to{transform:translateY(-3px) rotate(1deg)}}
@keyframes mascot-win{from{transform:translateY(0) rotate(-3deg)}to{transform:translateY(-19px) rotate(5deg)}}
@keyframes mascot-grand{from{transform:translateY(0) rotate(-6deg) scale(1)}to{transform:translateY(-25px) rotate(7deg) scale(1.04)}}
@keyframes ball-float{0%,100%{margin-bottom:0}50%{margin-bottom:4px}}
@keyframes ball-shimmer{0%,100%{opacity:.65;width:34%;left:18%;top:10%}50%{opacity:.9;width:38%;left:22%;top:8%}}
@keyframes grand-glow{0%,100%{box-shadow:inset -8px -12px 18px rgba(197,129,20,.2),inset 7px 7px 12px rgba(255,255,255,.8),0 0 15px rgba(255,221,94,.72)}50%{box-shadow:inset -8px -12px 18px rgba(197,129,20,.3),inset 7px 7px 12px rgba(255,255,255,.9),0 0 25px rgba(255,221,94,.9),0 0 45px rgba(255,200,60,.35)}}
@keyframes caught-sway{from{transform:rotate(-4deg)}to{transform:rotate(4deg)}}
@keyframes cabinet-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}50%{transform:translateX(4px)}75%{transform:translateX(-2px)}}
@keyframes result-pop{from{opacity:0;transform:scale(.5) rotate(-12deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes spin-rays{to{transform:rotate(360deg)}}
@keyframes confetti-fall{to{top:110vh;transform:translateX(var(--end)) rotate(calc(var(--rotate) + 720deg))}}
@keyframes slip-fall{0%{opacity:1;transform:translateX(-50%) translateY(-70px) rotate(-8deg) scale(var(--scale))}55%{opacity:1;transform:translateX(-50%) translateY(8px) rotate(18deg) scale(var(--scale))}100%{opacity:0;transform:translateX(-50%) translateY(42px) rotate(35deg) scale(.65)}}
@keyframes scan-sweep{0%{background-position:0 0}100%{background-position:0 100px}}
@keyframes scan-beam-move{0%,100%{top:-3px;opacity:0}10%{opacity:.6}50%{top:calc(100% - 3px);opacity:.4}90%{opacity:.6}}
@keyframes button-glow{0%,100%{box-shadow:inset 0 2px 0 rgba(255,255,255,.38),inset 0 -4px 8px rgba(103,5,39,.22),0 9px 17px rgba(181,27,77,.3)}50%{box-shadow:inset 0 2px 0 rgba(255,255,255,.38),inset 0 -4px 8px rgba(103,5,39,.22),0 9px 22px rgba(181,27,77,.42),0 0 32px rgba(236,64,122,.25)}}
@keyframes button-shine{0%{background-position:200% 0}100%{background-position:-200% 0}}
@keyframes chute-pulse{0%,100%{border-color:#f7acc0;box-shadow:inset 0 8px 14px rgba(0,0,0,.42),0 5px 8px rgba(81,17,39,.25)}50%{border-color:#ffbdd2;box-shadow:inset 0 8px 14px rgba(0,0,0,.42),0 5px 12px rgba(81,17,39,.3),0 0 18px rgba(247,172,192,.35)}}
@keyframes chute-glow-burst{0%{filter:brightness(1.4)}100%{filter:brightness(1)}}
@keyframes particle-drift{0%{transform:translateY(0) translateX(0) scale(1);opacity:.7}50%{opacity:1}100%{transform:translateY(-80px) translateX(var(--drift,15px)) scale(.4);opacity:0}}
@keyframes cable-stretch{0%{transform:scaleY(1)}50%{transform:scaleY(1.08)}100%{transform:scaleY(1)}}
@keyframes radiance-pulse{0%{transform:scale(.92);opacity:.4}100%{transform:scale(1.08);opacity:.75}}
@keyframes petal-float{0%{transform:translateY(0) rotate(0deg);opacity:0}20%{opacity:.85}50%{transform:translateY(-18px) translateX(8px) rotate(18deg);opacity:1}80%{opacity:.85}100%{transform:translateY(-34px) translateX(-6px) rotate(-15deg);opacity:0}}
@keyframes reticle-spin{to{transform:rotate(360deg)}}
@keyframes stealth-beacon{0%{opacity:.4;box-shadow:0 0 4px #00e5ff}100%{opacity:1;box-shadow:0 0 10px #00e5ff,0 0 16px #00e5ff}}
@keyframes scanner-blink{0%{opacity:.3;transform:scaleX(.8)}100%{opacity:1;transform:scaleX(1.2)}}

@media(max-width:1320px){
 .game-shell{grid-template-columns:235px minmax(520px,1fr) 235px;gap:12px;padding-left:12px;padding-right:12px}
 .host-panel,.score-panel{padding:17px}.host-copy h1{font-size:32px}.brand-lockup{min-width:270px}.machine-crown{height:58px}.machine-crown strong{font-size:27px}.machine-state{right:14px;top:16px}
 .cabinet{margin-left:9px;margin-right:9px}.play-button{min-width:225px}.score-heading h2{font-size:22px}.rank-row{padding:7px 0}.odd-row{padding:6px 8px}
}

@media(max-width:1120px){
 .topbar-status{display:none}.game-shell{grid-template-columns:240px minmax(0,1fr);height:auto}.score-panel{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;column-gap:26px}.score-heading,.ranking-list{grid-column:1}.odds-heading,.odds-list,.stock-notice{grid-column:2}.odds-heading{grid-row:1}.odds-list{grid-row:2}.stock-notice{grid-row:3}.ranking-list{margin-bottom:0}.host-panel{align-self:start}.cabinet{height:510px}
}

@media(max-width:760px){
 .topbar{height:auto;min-height:58px;padding:7px 10px;gap:8px;flex-wrap:wrap}.brand-lockup{min-width:0;flex:1}.brand-lockup>img{width:74px;height:39px}.brand-divider{height:25px}.event-lockup small{display:none}.topbar-actions{gap:5px}.icon-button,.admin-link{height:35px;padding:0 9px}.icon-button b{display:none}.icon-button span{font-size:18px}.admin-link{font-size:9px}.offline-chip{display:none}
 .game-shell{display:flex;flex-direction:column;padding:10px;gap:12px}.machine-panel{order:1;width:100%}.host-panel{order:2}.score-panel{order:3;display:flex;flex-direction:column}.host-panel,.score-panel{padding:18px}.host-copy{text-align:center}.host-copy .intro{margin-left:auto;margin-right:auto}.mascot-stage{height:255px}.control-hints{justify-content:center;margin-top:10px}
 .machine-crown{height:56px;border-radius:21px 21px 6px 6px;padding:7px 12px;justify-content:flex-start}.machine-crown>div{gap:6px}.machine-crown small{font-size:7px}.machine-crown strong{font-size:25px}.crown-star{display:none}.machine-state{right:11px;top:15px;font-size:7px}.cabinet{height:430px;min-height:430px;margin:0 5px;border-width:9px;border-bottom-width:12px}.cabinet-lights{left:9px;right:9px}.prize-pit{left:2%;right:1%;height:43%}.prize-ball{--size:52px}.chute{width:88px;height:70px}.machine-console{margin-left:0;margin-right:0;padding:12px;min-height:80px}.console-instructions{min-width:0}.console-instructions div{display:none}.play-button{min-width:0;flex:1;min-height:54px}.play-button b{font-size:12px}.fairness-note{margin-top:13px}
 .score-panel .odds-heading{padding-top:15px}.odds-list{grid-template-columns:repeat(2,minmax(0,1fr))}.result-card{padding:23px 18px 18px}.result-visual{height:155px}.result-capsule{width:125px;height:125px}
 .admin-shell{padding-top:12px}.admin-header{align-items:flex-start;flex-wrap:wrap}.admin-status{order:3;margin-left:0;width:100%}.admin-actions{margin-left:auto}.admin-actions .secondary-button span{display:none}.tab-pane{padding:15px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card:last-child{grid-column:1/-1}.dashboard-grid,.odds-grid,.settings-grid{grid-template-columns:1fr}.settings-card.full{grid-column:auto}.leaderboard-admin{grid-template-columns:1fr}.section-heading{flex-direction:column}.slider-row{grid-template-columns:105px minmax(90px,1fr) 46px}.inventory-editor{grid-template-columns:1fr}.form-group.full{grid-column:auto}.search-field{min-width:0;width:100%}
}

@media(max-width:410px){
 .event-lockup{display:none}.brand-divider{display:none}.machine-crown small{display:none}.machine-crown strong{font-size:24px}.cabinet{height:410px;min-height:410px}.prize-ball{--size:47px}.console-led{display:none}.play-button{padding-left:11px}.play-button>i{width:28px}.odds-list{grid-template-columns:1fr}.admin-brand div{display:none}.admin-actions .secondary-button{padding:8px}.donut-layout{flex-direction:column}.effective-grid{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
 .confetti-layer{display:none}
}
/* Compact player entry stays before the machine on touch screens. */
@media(max-width:760px){
 .host-panel{order:0;display:grid;grid-template-columns:78px minmax(0,1fr);column-gap:14px;align-items:center;padding:14px}
 .host-copy{grid-column:1/-1;text-align:left}.host-copy .eyebrow,.host-copy .intro{display:none}
 .host-copy h1{font-size:24px;margin:0 0 8px}.host-copy h1 br{display:none}
 .mascot-stage{grid-column:1;grid-row:2;height:100px;min-height:100px;margin:0}
 .speech-bubble{display:none}.player-form{grid-column:2;grid-row:2;margin:0}.player-form>small{font-size:10px}
 .control-hints{display:none}.host-panel .input-shell input{font-size:16px}
}

/* ==========================================================================
   COZZONE UP 2026 FESTIVAL EDITION: Advance Music Festival & 3D Mascot Claw
   ========================================================================== */
:root{
  --festival:#210838;
  --festival-deep:#110420;
  --festival-violet:#7b2cbf;
  --festival-neon-pink:#ff2a7a;
  --festival-neon-cyan:#00f0ff;
  --festival-gold:#ffbe0b;
  --festival-cream:#fff8eb;
}

body.game-page{
  background:radial-gradient(circle at 50% -15%,#4a1572 0%,#1c0830 45%,#0b0214 100%);
  color:#322341;
}

.game-page .ambient-one{
  width:420px;height:420px;
  background:radial-gradient(circle,rgba(255,42,122,.28),transparent 70%);
}
.game-page .ambient-two{
  width:520px;height:520px;
  background:radial-gradient(circle,rgba(0,240,255,.22),transparent 70%);
}
.ambient-festival{
  position:fixed;left:35%;bottom:-100px;width:600px;height:400px;
  background:radial-gradient(ellipse,rgba(123,44,191,.35),transparent 70%);
  pointer-events:none;z-index:0;
}

.game-page .glass-card{
  background:linear-gradient(160deg,rgba(255,252,246,.96),rgba(255,236,246,.92));
  border:1.5px solid rgba(255,214,120,.45);
  box-shadow:0 18px 44px rgba(11,2,24,.4),0 0 0 1px rgba(255,255,255,.3);
}

.topbar{
  background:linear-gradient(95deg,#1f0a33 0%,#311150 48%,#1f0a33 100%);
  border-bottom:2px solid #ffbe0b;
  box-shadow:0 8px 32px rgba(0,0,0,.45);
  color:#fff;
}
.topbar .brand-lockup b{
  color:#fff;
  text-shadow:0 0 12px rgba(255,42,122,.75);
  letter-spacing:.08em;
}
.cozzone-top-badge{
  display:inline-flex;align-items:center;gap:6px;
  color:#ffd166;font-size:9px;font-weight:900;letter-spacing:.12em;
}
.neon-pulse-dot{
  width:7px;height:7px;border-radius:50%;background:#00f0ff;
  box-shadow:0 0 8px #00f0ff,0 0 16px #00f0ff;
  animation:neon-pulse 1.2s ease-in-out infinite alternate;
}
@keyframes neon-pulse{
  from{transform:scale(.85);opacity:.7}
  to{transform:scale(1.25);opacity:1}
}

.game-page .host-copy .glow-tag{
  display:inline-block;padding:2px 7px;border-radius:6px;
  background:linear-gradient(90deg,#ff2a7a,#7b2cbf);
  color:#fff;font-weight:900;letter-spacing:.1em;
  box-shadow:0 0 10px rgba(255,42,122,.5);
}
.game-page .host-copy h1{
  color:var(--festival);
  text-shadow:0 2px 4px rgba(0,0,0,.08);
}
.game-page .host-copy h1 em{
  font-style:normal;
  background:linear-gradient(135deg,#c2185b,#ff2a7a 60%,#7b2cbf);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 2px 8px rgba(255,42,122,.25));
}

/* Pose Switcher */
.pose-control-bar{
  margin-top:8px;display:flex;align-items:center;justify-content:space-between;
  gap:8px;width:100%;padding:4px 6px;border-radius:12px;
  background:rgba(255,255,255,.8);border:1px solid #efccd5;
}
.pose-badge{
  font-size:10px;font-weight:800;color:#6b2543;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.pose-cycle-btn{
  flex-shrink:0;height:26px;padding:0 10px;border-radius:999px;
  border:0;background:linear-gradient(110deg,#e91e63,#9c27b0);
  color:#fff;font-size:9px;font-weight:900;letter-spacing:.04em;
  cursor:pointer;box-shadow:0 2px 6px rgba(156,39,176,.3);
  transition:transform .15s,filter .15s;
}
.pose-cycle-btn:hover{transform:scale(1.05);filter:brightness(1.1)}
.pose-cycle-btn:active{transform:scale(.97)}

/* Cozzone Event Card */
.cozzone-event-card{
  margin:10px 0 0;padding:10px 12px;border-radius:14px;
  background:linear-gradient(135deg,#200938 0%,#3d135d 65%,#1c0730 100%);
  border:1.5px solid #ffbe0b;color:#fff;
  box-shadow:0 6px 16px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.2);
  display:flex;flex-direction:column;gap:5px;
}
.cec-head{display:flex;align-items:center;justify-content:space-between;font-size:11px}
.cec-head b{color:#ffd166;letter-spacing:.05em}
.cec-tag{
  padding:2px 6px;border-radius:4px;background:#ff2a7a;
  font-size:8px;font-weight:900;letter-spacing:.12em;
}
.cec-body{display:flex;flex-direction:column;gap:3px;font-size:9px;color:#fce4ec}
.cec-body small{color:#00f0ff;font-weight:800;margin-top:2px}

/* Machine Crown with Stage Lighting */
.machine-panel{filter:drop-shadow(0 25px 35px rgba(5,1,16,.65))}
.machine-crown{
  height:78px;padding:8px 24px;display:flex;align-items:center;justify-content:space-between;
  background:linear-gradient(120deg,#1c0730,#4b196e 40%,#ff2a7a 75%,#22093a);
  border:2px solid #ffbe0b;border-radius:26px 26px 8px 8px;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.4),0 8px 24px rgba(0,0,0,.45);
  position:relative;overflow:hidden;
}
.festival-spotlights{position:absolute;inset:0;pointer-events:none;z-index:1}
.spot-cone{
  position:absolute;top:-40px;width:90px;height:140px;
  background:linear-gradient(to bottom,rgba(255,255,255,.6),transparent 85%);
  filter:blur(10px);transform-origin:50% 0;mix-blend-mode:screen;
}
.spot-cone.s-left{left:10%;transform:rotate(-28deg);animation:spot-sweep 4s ease-in-out infinite alternate}
.spot-cone.s-center{left:48%;transform:rotate(4deg);animation:spot-sweep 3.2s ease-in-out .8s infinite alternate-reverse}
.spot-cone.s-right{right:10%;transform:rotate(28deg);animation:spot-sweep 4.5s ease-in-out 1.5s infinite alternate}
@keyframes spot-sweep{
  from{transform:rotate(-35deg) scaleX(.9)}
  to{transform:rotate(35deg) scaleX(1.1)}
}

.crown-brand{display:flex;flex-direction:column;gap:3px;z-index:2}
.cozzone-brand-pill{
  font-size:9px;font-weight:900;letter-spacing:.14em;color:#ffbe0b;
  text-shadow:0 0 8px rgba(255,190,11,.6);
}
.machine-crown strong{
  font-family:Editorial,Georgia,serif;font-size:clamp(22px,2.2vw,32px);
  color:#fff;text-shadow:0 2px 4px #000,0 0 20px #ff2a7a;
  letter-spacing:.03em;
}
.crown-state-wrap{display:flex;align-items:center;gap:12px;z-index:2}
.dj-mini-eq{display:flex;align-items:flex-end;gap:3px;height:20px;padding:2px}
.dj-mini-eq .eq-bar{
  width:4px;border-radius:2px;background:#00f0ff;
  box-shadow:0 0 6px #00f0ff;
  animation:eq-dance .6s ease-in-out infinite alternate;
}
.dj-mini-eq .b1{height:40%;animation-delay:.1s}
.dj-mini-eq .b2{height:80%;animation-delay:.35s}
.dj-mini-eq .b3{height:60%;animation-delay:.2s}
.dj-mini-eq .b4{height:100%;animation-delay:.45s}
@keyframes eq-dance{from{height:20%}to{height:100%}}

/* Cabinet: Modern Cozzone Concert Glass Arena */
.cabinet{
  background:radial-gradient(circle at 50% 10%,#5a2185 0%,#2e0c4b 42%,#140424 100%);
  border:12px solid #3d145e;border-top-color:#ffbe0b;border-bottom-color:#200732;
  box-shadow:inset 0 0 0 3px rgba(255,214,120,.5),inset 0 0 80px rgba(0,0,0,.6),0 12px 0 #120320;
}

/* Cozzone Stage Backdrop */
.cozzone-stage-backdrop{
  position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;
}
.cs-neon-arch{
  position:absolute;left:50%;top:16%;transform:translateX(-50%);
  font-family:Editorial,Georgia,serif;font-size:clamp(32px,4.5vw,68px);
  font-weight:700;letter-spacing:.05em;color:#ffbe0b;
  text-shadow:0 0 20px #ff2a7a,0 0 40px #ff2a7a,0 0 70px #7b2cbf;
  white-space:nowrap;
}
.cs-neon-arch b{font-style:italic;color:#00f0ff;text-shadow:0 0 20px #00f0ff}
.cs-sub-banner{
  position:absolute;left:50%;top:36%;transform:translateX(-50%);
  font-size:9px;font-weight:900;letter-spacing:.22em;color:rgba(255,255,255,.8);
  text-shadow:0 0 8px rgba(255,42,122,.8);white-space:nowrap;
}
.cs-lasers{position:absolute;inset:0;pointer-events:none}
.cs-laser{
  position:absolute;top:0;height:100%;width:2px;opacity:.28;
  mix-blend-mode:screen;filter:blur(1px);
}
.cs-laser.l-cyan{left:18%;background:linear-gradient(170deg,#00f0ff,transparent);transform:rotate(15deg)}
.cs-laser.l-pink{right:18%;background:linear-gradient(190deg,#ff2a7a,transparent);transform:rotate(-15deg)}
.cs-laser.l-gold{left:50%;background:linear-gradient(180deg,#ffbe0b,transparent)}

/* Side DJ Equalizers */
.cabinet-side-eq{
  position:absolute;top:50px;bottom:140px;width:14px;
  display:flex;flex-direction:column;justify-content:space-evenly;
  z-index:1;pointer-events:none;opacity:.65;
}
.cabinet-side-eq.eq-left{left:10px}
.cabinet-side-eq.eq-right{right:10px}
.cabinet-side-eq i{
  height:4px;border-radius:2px;background:linear-gradient(90deg,#00f0ff,#ff2a7a);
  box-shadow:0 0 6px #ff2a7a;animation:side-eq-pulse 1.4s ease-in-out infinite alternate;
}
.cabinet-side-eq i:nth-child(even){animation-delay:.4s;background:linear-gradient(90deg,#ffbe0b,#00f0ff)}
@keyframes side-eq-pulse{from{width:35%;opacity:.3}to{width:100%;opacity:.9}}

/* 3D MASCOT B! DIVER CLAW */
.mascot-diver-claw{
  position:absolute;top:31px;left:50%;width:140px;
  transform:translateX(-50%);
  transition-property:left,top;transition-duration:.14s;
  transition-timing-function:cubic-bezier(.35,.02,.2,1);
  z-index:26;will-change:left,top;pointer-events:none;
}
.mascot-diver-claw .trolley{
  width:82px;height:24px;margin:auto;border-radius:8px;
  background:linear-gradient(145deg,#230938,#4a1a6b 60%,#1a062b);
  border:2px solid #ffbe0b;box-shadow:0 5px 12px rgba(0,0,0,.5);
  display:flex;align-items:center;justify-content:space-between;padding:0 7px;
}
.mascot-diver-claw .trolley-wheel{
  width:9px;height:9px;border-radius:50%;background:#ffbe0b;
  box-shadow:0 0 6px #ffbe0b;
}
.mascot-diver-claw .trolley-laser{
  width:10px;height:6px;border-radius:3px;background:#00f0ff;
  box-shadow:0 0 10px #00f0ff;
}
.mascot-diver-claw .cable{
  position:relative;width:6px;height:40px;margin:-1px auto 0;
  display:flex;justify-content:center;
}
.cable-core{
  width:3px;height:100%;border-radius:2px;
  background:repeating-linear-gradient(180deg,#ffbe0b 0 4px,#7b2cbf 4px 7px);
  box-shadow:0 0 5px rgba(255,190,11,.6);
}
.cable-strand{
  position:absolute;top:0;width:1.5px;height:100%;
  background:rgba(255,255,255,.5);
}
.cable-l{left:0}.cable-r{right:0}

/* Mascot Diver Body */
.mascot-claw-diver{
  position:relative;width:130px;height:150px;margin:-8px auto 0;
  display:flex;flex-direction:column;align-items:center;
  transition:transform .24s cubic-bezier(.2,.8,.2,1);
}
.diver-harness{
  width:36px;height:10px;border-radius:5px;
  background:linear-gradient(90deg,#ffbe0b,#ff2a7a);
  box-shadow:0 0 8px #ff2a7a;
}
.diver-body{
  position:relative;width:100%;height:100%;
  display:flex;justify-content:center;
}
.diver-mascot-img{
  width:100%;height:100%;object-fit:contain;
  filter:drop-shadow(0 10px 14px rgba(0,0,0,.45));
  transform-origin:50% 25%;
  animation:mascot-dive-sway 2.4s ease-in-out infinite alternate;
}
@keyframes mascot-dive-sway{
  from{transform:rotate(-3deg)}
  to{transform:rotate(3deg)}
}

/* Reaching Hands / Claw Arms */
.diver-reach-arms{
  position:absolute;bottom:10px;width:100px;height:46px;
  pointer-events:none;
}
.reach-arm{
  position:absolute;top:0;width:24px;height:44px;
  border-bottom:5px solid #ff2a7a;border-radius:12px;
  filter:drop-shadow(0 0 6px #ff2a7a);
  transition:transform .22s cubic-bezier(.2,.8,.2,1);
}
.reach-arm.left-arm{
  left:14px;border-left:5px solid #ff2a7a;
  transform:rotate(24deg);transform-origin:top left;
}
.reach-arm.right-arm{
  right:14px;border-right:5px solid #ff2a7a;
  transform:rotate(-24deg);transform-origin:top right;
}

/* Closed Claw (Mascot gripping the ball tightly) */
.mascot-diver-claw.closed .diver-reach-arms .left-arm{
  transform:rotate(6deg) translateX(10px);
}
.mascot-diver-claw.closed .diver-reach-arms .right-arm{
  transform:rotate(-6deg) translateX(-10px);
}
.mascot-diver-claw.closed .diver-mascot-img{
  transform:translateY(4px);
  animation:none;
}

/* Advance v1.4.0 3D Claw Energy Glow */
.claw-energy-ring{
  position:absolute;bottom:0;left:50%;transform:translateX(-50%);
  width:84px;height:24px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(0,240,255,.45) 0%,rgba(255,42,122,.25) 55%,transparent 75%);
  box-shadow:0 0 16px rgba(0,240,255,.6),0 0 28px rgba(255,42,122,.4);
  pointer-events:none;opacity:.65;
  animation:energy-ring-pulse 1.6s ease-in-out infinite alternate;
  z-index:1;
}
.mascot-diver-claw.closed .claw-energy-ring{
  opacity:.95;filter:brightness(1.3);
  box-shadow:0 0 24px rgba(255,190,11,.9),0 0 40px rgba(255,42,122,.7);
}
@keyframes energy-ring-pulse{
  from{transform:translateX(-50%) scale(.92);opacity:.5}
  to{transform:translateX(-50%) scale(1.08);opacity:.9}
}

/* Caught Pod in Mascot's Grasp */
.mascot-diver-claw .caught-pod{
  position:absolute;top:118px;left:50%;transform:translateX(-50%);
  width:48px;height:48px;border-radius:50%;padding:5px;
  background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.98),rgba(255,225,140,.85) 60%,rgba(255,42,122,.65));
  border:2.5px solid #fff;
  box-shadow:0 0 20px #ffbe0b,inset -6px -8px 14px rgba(181,58,94,.3);
  z-index:10;animation:caught-sway .55s ease-in-out infinite alternate;
}
.mascot-diver-claw .caught-pod img{
  width:100%;height:100%;object-fit:contain;border-radius:50%;background:#fff;
}
.pod-glow{
  position:absolute;inset:-8px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,215,100,.5),transparent 70%);
  animation:neon-pulse 1s ease-in-out infinite alternate;
}

/* INTERACTIVE PHYSICS BALL PIT */
.prize-pit.physics-pit{
  position:absolute;left:3%;right:3%;bottom:26px;height:55%;
  z-index:4;pointer-events:auto;
}
.prize-ball{
  --size:clamp(38px,4.15vw,56px);
  --prize-glow:rgba(255,63,156,.58);
  position:absolute;width:var(--size);height:var(--size);
  z-index:var(--z);
  filter:drop-shadow(0 5px 7px rgba(15,2,28,.38));
  pointer-events:auto;cursor:grab;touch-action:none;user-select:none;
  transform-origin:50% 50%;
  will-change:transform;isolation:isolate;
}
.prize-ball::before{
  content:"";position:absolute;inset:-22%;border-radius:50%;z-index:0;
  background:radial-gradient(circle,var(--prize-glow) 0 22%,rgba(255,255,255,.2) 36%,transparent 70%);
  filter:blur(5px);opacity:.72;pointer-events:none;
  animation:prize-aura 2.3s ease-in-out infinite alternate;
}
.prize-ball.tier-bundling,.prize-ball.tier-grand{--prize-glow:rgba(255,211,74,.92)}
.prize-ball.tier-special{--prize-glow:rgba(255,74,167,.82)}
.prize-ball.tier-product{--prize-glow:rgba(52,226,255,.68)}
.prize-ball.tier-newuser{--prize-glow:rgba(55,238,188,.68)}
.prize-ball:active{cursor:grabbing}
.prize-ball .ball-shell{
  width:100%;height:100%;border-radius:50%;display:grid;place-items:center;
  position:relative;overflow:hidden;z-index:1;
  background:radial-gradient(circle at 28% 22%,#fff 0 8%,rgba(255,255,255,.65) 12% 35%,rgba(255,220,240,.68) 60%,rgba(123,44,191,.4) 100%);
  border:2.5px solid rgba(255,255,255,.95);
  box-shadow:inset -8px -12px 18px rgba(89,27,120,.25),inset 7px 7px 12px rgba(255,255,255,.9),0 4px 12px rgba(0,0,0,.25);
  transition:filter .15s;
}
.prize-ball:hover .ball-shell{
  filter:brightness(1.15);
  box-shadow:inset -8px -12px 18px rgba(89,27,120,.2),inset 7px 7px 12px #fff,0 0 16px rgba(255,42,122,.6);
}
.surface-ball .ball-shell{
  animation:surface-dolphin var(--hop-duration,2.05s) cubic-bezier(.32,.72,.3,1) var(--hop-delay,0s) infinite;
}
.surface-ball.tier-bundling .ball-shell,.surface-ball.tier-grand .ball-shell{
  animation:surface-dolphin var(--hop-duration,2.05s) cubic-bezier(.32,.72,.3,1) var(--hop-delay,0s) infinite,
            grand-glow 2.4s ease-in-out infinite;
}
@keyframes surface-dolphin{
  0%,12%,42%,100%{transform:translate3d(0,0,0) rotate(0deg)}
  19%{transform:translate3d(-1px,-4px,0) rotate(-2deg)}
  25%{transform:translate3d(0,-10px,0) rotate(0deg)}
  31%{transform:translate3d(1px,-4px,0) rotate(2deg)}
}
@keyframes prize-aura{
  from{opacity:.48;transform:scale(.9)}
  to{opacity:.9;transform:scale(1.13)}
}
@media(prefers-reduced-motion:reduce){
  .surface-ball .ball-shell,.surface-ball.tier-bundling .ball-shell,.surface-ball.tier-grand .ball-shell,
  .prize-ball::before{animation:none}
}

/* Result Dialog Winner Mascot */
.result-mascot-winner{
  position:absolute;left:-20px;bottom:-10px;width:110px;height:120px;
  z-index:4;pointer-events:none;
}
.result-mascot-winner img{
  width:100%;height:100%;object-fit:contain;
  filter:drop-shadow(0 8px 12px rgba(0,0,0,.35));
  animation:mascot-win .8s cubic-bezier(.2,.8,.2,1) infinite alternate;
}

@media(max-width:760px){
  .machine-crown{height:68px;padding:6px 14px}
  .machine-crown strong{font-size:clamp(16px,4.5vw,24px)}
  .cozzone-top-badge{display:none}
  .cs-neon-arch{font-size:38px}
  .mascot-diver-claw{width:110px}
  .mascot-claw-diver{width:110px;height:120px}
}

.prize-ball:focus-visible{outline:3px solid #ffe39a;outline-offset:2px;border-radius:50%}
.prize-ball.tap-feedback .ball-shell{
  filter:brightness(1.22) saturate(1.15);
  box-shadow:inset -8px -12px 18px rgba(89,27,120,.2),inset 7px 7px 12px #fff,0 0 0 5px rgba(255,225,139,.55),0 0 20px rgba(255,42,122,.65);
}
@media(min-width:761px){
  #mascot{bottom:17%}
  .pose-control-bar{position:absolute;left:2%;right:2%;bottom:2px;width:auto;z-index:7;margin:0}
}
@media(max-width:760px){
  .pose-control-bar{display:none}
  .cozzone-event-card{grid-column:1/-1;min-width:0;margin-top:10px}
  .cec-body{overflow-wrap:break-word}
}

/* Reset acara: tombol dua langkah, tanpa mengetik kata kunci (v1.3.1). */
.reset-hint{align-self:center;color:#8e6b75;font-size:10px;line-height:1.5;flex:1 1 180px}
.danger-button.armed{
  background:#7f1027;
  box-shadow:0 0 0 3px rgba(207,23,87,.28),0 6px 16px rgba(127,16,39,.35);
  animation:reset-armed .85s ease-in-out infinite alternate;
}
@keyframes reset-armed{from{transform:scale(1)}to{transform:scale(1.03)}}

/* Beauty Drop: tipografi brand 2026 (Poppins) untuk dashboard petugas. */
@font-face{font-family:Poppins;src:url('/g/drop/assets/fonts/Poppins-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Poppins;src:url('/g/drop/assets/fonts/Poppins-700.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:Poppins;src:url('/g/drop/assets/fonts/Poppins-800.woff2') format('woff2');font-weight:800 900;font-display:swap}
.admin-page{font-family:Poppins,"Segoe UI",sans-serif;--berry:#d81f57;--pink:#e62b5e;--deep:#b3164b}
.admin-page [data-host-row] img{flex:none}
