:root{--bg:#070b1b;--bg-2:#0c1530;--card:#101b38;--card-2:#17264b;--text:#f9f5e8;--muted:#aab8cf;--primary:#f6cf68;--primary-2:#b77b22;--accent:#7bc7ff;--danger:#ff5c72;--border:#2a416c;--radius:18px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans KR,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(900px 540px at 18% -12%, #2959ab7a, transparent 62%), radial-gradient(760px 460px at 92% 8%, #da9f2c2e, transparent 58%), var(--bg);color:var(--text);min-height:100vh;margin:0}button{font-family:inherit}input{background:var(--bg-2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:10px;outline:none;padding:12px 14px;font-size:15px}input:focus{border-color:var(--accent)}.center-screen{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.page{min-height:100vh}.container{max-width:960px;margin:0 auto;padding:20px}.topbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:10;background:#070b1bc7;justify-content:space-between;align-items:center;padding:14px 20px;display:flex;position:sticky;top:0}.topbar-actions{align-items:center;gap:14px;display:flex}.brand{letter-spacing:-.02em;font-size:22px;font-weight:800}.brand.small{font-size:16px}.card{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(145deg,#17264beb,#080f22f0);padding:20px;box-shadow:0 22px 60px #0000004d,inset 0 1px #ffffff0a}.auth-card{text-align:center;width:100%;max-width:380px}.auth-card h1{margin:8px 0 20px;font-size:24px}.join-test-tools{border-top:1px dashed var(--border);text-align:left;gap:8px;margin-top:20px;padding-top:16px;display:grid}.join-test-tools strong{color:var(--primary);font-size:12px}.join-test-tools p,.join-test-tools span{color:var(--muted);margin:0;font-size:11px;line-height:1.5}.join-test-tools .btn{width:100%}.join-test-count{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;display:grid}.join-test-count input{text-align:right;min-width:0}.join-test-count>span{color:var(--muted);font-size:12px}.join-test-count .btn{width:auto;min-width:72px;padding-inline:12px;font-size:12px}.stack{flex-direction:column;gap:12px;display:flex}.stack.center{align-items:center}.row{gap:10px;display:flex}.row input{flex:1}.btn{border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;padding:11px 16px;font-size:14px;font-weight:600;text-decoration:none;transition:transform 50ms,filter .15s;display:inline-flex}.btn:hover{filter:brightness(1.1)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:linear-gradient(135deg, #ffe39a 0%, var(--primary) 42%, var(--primary-2) 100%);color:#231607;border:none}.btn.ghost{background:0 0}.btn.danger{color:var(--danger);border-color:var(--danger)}.btn.big{width:100%;padding:16px 24px;font-size:18px}.btn.small{padding:6px 10px;font-size:12px}.link{color:var(--accent);cursor:pointer;background:0 0;border:none;font-size:14px;text-decoration:none}.link:hover{text-decoration:underline}.muted{color:var(--muted)}.small{font-size:12px}.center{text-align:center}.error{border:1px solid var(--danger);color:#ffb3be;background:#ff5c721f;border-radius:8px;padding:8px 12px;font-size:13px}.success{color:#7cffb0;font-weight:600}.section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:24px 0 12px;font-size:15px}.big-check{font-size:56px}.badge{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}.status-open{color:#7cffb0;background:#7cffb026}.status-drawing{color:var(--primary);background:#ffcf3326}.status-closed{color:var(--muted);background:#9aa0c026}.draw-list{flex-direction:column;gap:12px;padding:0;list-style:none;display:flex}.draw-item{justify-content:space-between;align-items:center;gap:12px;display:flex}.draw-info{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.draw-name{font-size:16px;font-weight:700}.draw-actions{gap:8px;display:flex}.session-entry-page{min-height:100dvh}.session-entry-shell{width:min(980px,100% - 32px);margin:0 auto;padding:clamp(56px,10vh,110px) 0 60px}.session-entry-heading{text-align:center;margin-bottom:34px}.session-entry-heading h1{margin:0 0 10px;font-size:clamp(28px,4vw,46px)}.session-entry-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.session-entry-card{min-height:280px;color:var(--text);flex-direction:column;justify-content:space-between;gap:24px;padding:30px;text-decoration:none;transition:transform .18s,border-color .18s,box-shadow .18s;display:flex}.session-entry-card:hover{border-color:var(--primary);transform:translateY(-4px);box-shadow:0 18px 46px #00000047}.session-entry-card.stage{background:linear-gradient(145deg,#f6cf6824,#142348b8)}.session-entry-icon{font-size:52px;line-height:1}.session-entry-card strong{margin-bottom:10px;font-size:25px;display:block}.session-entry-card small{min-height:48px;color:var(--muted);font-size:14px;line-height:1.65;display:block}.session-entry-card b{color:var(--primary);font-size:14px}.session-entry-tip{color:var(--muted);text-align:center;margin-top:22px;font-size:13px}.host-grid{grid-template-columns:330px minmax(0,1fr);align-items:start;gap:20px;padding:20px;display:grid}.stage-only{width:min(980px,100% - 40px);margin:0 auto;padding:34px 0}.entry-layout{grid-template-columns:minmax(340px,.85fr) minmax(0,1.15fr);align-items:start;gap:20px;max-width:1100px;padding-top:34px;display:grid}.entry-qr-card{text-align:center}.entry-qr-card h1{margin:6px 0 16px}.entry-qr-card .qr-box{margin-inline:auto}.entry-qr-card .status-row{justify-content:center}.entry-participants h2{margin:6px 0 14px;font-size:32px}@media (width<=800px){.host-grid,.entry-layout{grid-template-columns:1fr}}.qr-box{background:#fff;border-radius:14px;margin:8px 0;padding:16px;display:inline-flex}.join-url{color:var(--muted);word-break:break-all;font-size:12px}.status-row{align-items:center;gap:10px;margin:10px 0;display:flex}.participant-list{flex-direction:column;gap:6px;max-height:300px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.participant-list li{background:var(--bg-2);border-radius:8px;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.participant-list li.won{opacity:.55}.participant-list.full{max-height:none}.won-mark{color:var(--primary);font-size:13px}.draw-panel{text-align:center;overflow:hidden}.draw-panel h2{letter-spacing:.16em;text-transform:uppercase;color:var(--primary);font-size:14px}.roller{max-width:680px;margin:22px auto;position:relative}.roller-marquee{color:var(--primary);letter-spacing:.16em;justify-content:center;align-items:center;gap:13px;padding-bottom:10px;font-size:11px;font-weight:800;display:flex}.roller-marquee i{opacity:.75;font-style:normal}.roller-frame{background:linear-gradient(145deg,#11275a 0%,#081531 52%,#17102b 100%);border:2px solid #f6cf68f2;border-radius:24px;padding:18px 25px 16px;position:relative;overflow:hidden;box-shadow:0 0 0 5px #f6cf681a,inset 0 0 50px #000000a6,0 20px 45px #0000006b}.roller-frame:before{content:"";background:linear-gradient(90deg,#0000 0%,#ffffff14 48%,#0000 52%);position:absolute;inset:0;transform:translate(-130%)}.roller.spinning .roller-frame:before{animation:1.1s linear infinite machine-sweep}.roller-lights{pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;inset:7px}.roller-lights span{background:#ffefad;border-radius:50%;width:5px;height:5px;animation:1.4s ease-in-out infinite light-pulse;box-shadow:0 0 9px #ffcb4d}.roller-lights span:nth-child(3n){animation-delay:.2s}.roller-lights span:nth-child(4n){animation-delay:.45s}.roller-window{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;height:184px;display:grid;position:relative}.roller-window.count-2{grid-template-columns:repeat(2,minmax(0,1fr))}.roller-window.count-4{grid-template-columns:repeat(4,minmax(0,1fr))}.mode1-letter-reel{background:linear-gradient(#000000ad,#0c1b40d1,#000000ad);border:1px solid #f6cf686b;border-radius:14px;height:184px;position:relative;overflow:hidden;box-shadow:inset 0 0 28px #0006}.roller-window .smooth-reel-track span{color:#f9f5e8b8;letter-spacing:-.035em;padding:0 6px;font-size:clamp(54px,8vw,88px);font-weight:900}.roller.settled .roller-frame{border-color:#b8ffcf;animation:.5s pop;box-shadow:0 0 0 6px #7cffb01c,0 0 65px #7cffb045,inset 0 0 50px #000000a6}.roller.settled .smooth-reel-track span.smooth-reel-target{color:#c9ffde;text-shadow:0 0 30px #7cffb0c2}.roller-caption{color:var(--primary);letter-spacing:.2em;margin-top:12px;font-size:10px;font-weight:800}@keyframes machine-sweep{to{transform:translate(130%)}}@keyframes light-pulse{50%{opacity:.3;transform:scale(.72)}}@keyframes pop{0%{transform:scale(.9)}60%{transform:scale(1.06)}to{transform:scale(1)}}.confetti-burst{z-index:5;color:var(--primary);pointer-events:none;justify-content:space-around;font-size:24px;animation:.5s pop;display:flex;position:absolute;inset:-16px -30px auto}.confetti-burst span{animation:1.8s cubic-bezier(.12,.75,.28,1) both confetti-fall}.confetti-burst span:nth-child(2n){color:#8effc0;animation-delay:80ms}.confetti-burst span:nth-child(3n){color:#ff8fc7;animation-delay:.18s}.confetti-burst span:nth-child(4n){animation-delay:.28s}@keyframes confetti-fall{0%{opacity:0;transform:translateY(-10vh)rotate(0)}8%{opacity:1}to{transform:translate3d(var(--drift),115vh,0) rotate(900deg);opacity:.9}}.draw-controls{margin:16px 0}.recent-winners ol,.winner-list{text-align:left;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.recent-winners li,.winner-list li{background:var(--bg-2);border-radius:8px;align-items:center;gap:10px;padding:8px 12px;display:flex}.round{background:var(--accent);color:#fff;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:700}.wname{flex:1;font-weight:700}.history-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (width<=800px){.history-grid{grid-template-columns:1fr}}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;margin:20px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.join-bg{background:radial-gradient(800px 600px at 50% 0%, #2a1f3f 0%, var(--bg) 60%)}.preview-badge{color:var(--primary);letter-spacing:.12em;border:1px solid #f6cf6873;padding:5px 9px;font-size:10px;font-weight:800}.preview-qr{color:#101b38;background:repeating-conic-gradient(#101b38 0 25%, #f9f5e8 0 50%) 50% / 20px 20px;border:12px solid #f9f5e8;place-items:center;width:132px;height:132px;margin:12px 0 18px;font-size:0;display:grid;box-shadow:0 0 0 1px #f6cf6866}.preview-add{gap:8px;display:flex}.preview-add input{min-width:0}@media (width<=800px){.preview-badge{display:none}}.mode-select{padding-top:4vh}.mode-select h1{margin:8px 0 24px;font-size:clamp(30px,4vw,48px)}.mode-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.mode-card{min-height:0;color:var(--text);flex-direction:column;justify-content:flex-end;padding:16px;text-decoration:none;transition:transform .2s,border-color .2s;display:flex}.mode-card:hover{border-color:var(--primary);transform:translateY(-5px)}.mode-number{color:var(--primary);margin-bottom:auto;font-size:52px;font-weight:900}.mode-card h2{margin:11px 0 5px;font-size:clamp(20px,2vw,25px)}.mode-card p{color:var(--muted);margin:0;line-height:1.55}.letter-draw-page{background:radial-gradient(900px 540px at 50% 0,#2265964d,#0000 65%),#06101f}.letter-stage-shell{max-width:1640px;margin:0 auto;padding:26px 24px 120px}.letter-stage{align-content:center;gap:18px;min-height:calc(100dvh - 190px);display:grid}.letter-stage.count-1,.letter-stage.count-2,.letter-stage.count-3{grid-template-columns:minmax(0,760px);justify-content:center}.letter-stage.count-4{grid-template-columns:repeat(2,minmax(0,1fr))}.letter-stage.count-5,.letter-stage.count-6,.letter-stage.count-7{grid-template-columns:repeat(3,minmax(0,1fr))}.letter-stage.count-5 .letter-winner,.letter-stage.count-6 .letter-winner,.letter-stage.count-7 .letter-winner{padding:16px 10px}.letter-stage.count-5 .letter-reel,.letter-stage.count-6 .letter-reel,.letter-stage.count-7 .letter-reel{width:clamp(58px,5.2vw,92px);font-size:clamp(30px,3.3vw,42px)}.letter-stage.count-5 .letter-reels,.letter-stage.count-6 .letter-reels,.letter-stage.count-7 .letter-reels{gap:7px;min-height:104px}.letter-winner{background:#091934db;border:1px solid #7bc7ff4d;padding:24px;box-shadow:inset 0 1px #ffffff0d,0 24px 55px #00000047}.letter-reels{justify-content:center;gap:12px;min-height:142px;display:flex;overflow:hidden}.letter-reel{aspect-ratio:1;color:#8fd7ff;background:linear-gradient(145deg,#163b70,#0b1b39);border:2px solid #7bc7ff66;border-radius:50%;place-items:center;width:clamp(76px,10vw,126px);font-size:clamp(38px,4.2vw,58px);font-weight:900;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 -16px 30px #0000005c,0 8px 24px #0000003d}.letter-reel.masked{color:#aac9e647;background:radial-gradient(circle at 35% 28%,#244a7e,#0a1730 72%);border-color:#7bc7ff33;box-shadow:inset 0 0 34px #000000b3,0 8px 24px #0000003d}.letter-mask{text-shadow:0 0 18px #7bc7ff40;font-size:.72em;transform:translateY(-3px)}.smooth-reel-window{width:100%;position:relative;overflow:hidden}.smooth-reel-track{will-change:transform, filter;position:absolute;top:0;left:0;right:0}.smooth-reel-track span{place-items:center;width:100%;display:grid}.letter-reel .smooth-reel-window{width:100%;transform:translateY(-2px)}.letter-reel .smooth-reel-track span{color:#e9f7ff;text-shadow:0 0 22px #7bc7ff94}.letter-reel.settled .smooth-reel-track span{opacity:.24;color:#8ca9bd;text-shadow:none}.letter-reel.settled .smooth-reel-track span.smooth-reel-target{opacity:1;color:#e9f7ff;text-shadow:0 0 22px #7bc7ffb8}.letter-reel.reveal-target:before,.letter-reel.reveal-target:after{content:"";z-index:2;pointer-events:none;height:28%;position:absolute;left:0;right:0}.letter-reel.reveal-target:before{background:linear-gradient(#071225 10%,#0000);top:0}.letter-reel.reveal-target:after{background:linear-gradient(#0000,#071225 90%);bottom:0}.letter-stage.is-spinning .letter-reel.masked{animation:.38s ease-in-out infinite alternate mask-pulse}.letter-stage.is-revealing .letter-reel.reveal-target{border-color:var(--primary);box-shadow:inset 0 -16px 30px #0000005c,0 0 32px #f6cf6880}.letter-meta{text-align:center;color:var(--primary);letter-spacing:.2em;margin-top:17px;font-size:11px;font-weight:900}.letter-empty{min-height:610px;color:var(--muted);border:1px dashed var(--border);place-items:center;font-size:22px;display:grid}.letter-console{z-index:20;border:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#070b1beb;border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;width:min(920px,100% - 32px);padding:12px;display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 18px 60px #00000075}.count-picker{gap:5px;margin-right:6px;display:flex}@keyframes letter-roll{0%{filter:blur(.2px);transform:translateY(-18px)rotate(-4deg)}50%{transform:translateY(0)rotate(3deg)}to{filter:blur(.2px);transform:translateY(18px)rotate(-4deg)}}@keyframes mask-pulse{0%{filter:brightness(.78);transform:scale(.985)}to{filter:brightness(1.08);transform:scale(1.015)}}@media (width<=1100px){.letter-stage.count-4,.letter-stage.count-5,.letter-stage.count-6,.letter-stage.count-7{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=800px){.mode-cards,.letter-stage,.letter-stage.count-2,.letter-stage.count-3,.letter-stage.count-4,.letter-stage.count-5,.letter-stage.count-6,.letter-stage.count-7{grid-template-columns:1fr}.letter-stage{align-content:center;min-height:calc(100dvh - 190px)}.letter-stage .letter-reel{width:76px;font-size:32px}.letter-stage .letter-reels{align-items:center;min-height:76px}.letter-stage.count-5,.letter-stage.count-6,.letter-stage.count-7{gap:8px}.letter-stage.count-5 .letter-winner,.letter-stage.count-6 .letter-winner,.letter-stage.count-7 .letter-winner{padding-block:8px}.letter-stage.count-5 .letter-reel,.letter-stage.count-6 .letter-reel,.letter-stage.count-7 .letter-reel{width:62px;font-size:28px}.letter-stage.count-5 .letter-reels,.letter-stage.count-6 .letter-reels,.letter-stage.count-7 .letter-reels{min-height:62px}.letter-empty{min-height:60vh}}@media (width<=480px){.letter-stage-shell{padding-inline:12px}.letter-winner{padding-inline:8px}.letter-stage .letter-reel,.letter-stage.count-5 .letter-reel,.letter-stage.count-6 .letter-reel,.letter-stage.count-7 .letter-reel{width:62px;font-size:27px}.letter-stage .letter-reels{gap:6px;min-height:62px}}.marble-page{background:#000;height:100dvh;overflow:hidden}.marble-topbar{z-index:4;background:#070b1bf0;position:relative}.marble-attribution{color:#71869c;letter-spacing:.02em;font-size:10px}.marble-attribution a{color:#9eb7d0;font-weight:800;text-decoration:none}.marble-attribution a:hover{color:var(--primary);text-decoration:underline}.marble-stage{background:#000;position:absolute;inset:51px 0 108px}.marble-stage iframe{border:0;width:100%;height:100%;display:block}.marble-winner-board{z-index:4;color:#fff;background:radial-gradient(circle at 50% 20%,#2c3961fa,#040814fa 64%);border:2px solid #f6cf6899;border-radius:30px;align-content:center;justify-items:center;padding:34px;display:grid;position:absolute;inset:5% 8%;box-shadow:0 30px 90px #000000b3}.marble-winner-board p{color:var(--primary);letter-spacing:.08em;margin:0 0 4px;font-weight:800}.marble-winner-board h2{margin:0 0 22px;font-size:clamp(32px,5vw,68px)}.marble-winner-board ol{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;width:min(920px,100%);margin:0;padding:0;list-style:none;display:grid}.marble-winner-board li{background:#ffffff14;border:1px solid #ffffff2e;border-radius:16px;align-items:center;gap:14px;padding:14px 18px;display:flex}.marble-winner-board li span{background:var(--primary);color:#15100a;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;font-weight:900;display:grid}.marble-winner-board li strong{text-overflow:ellipsis;white-space:nowrap;font-size:clamp(22px,2.5vw,36px);overflow:hidden}.marble-loading{color:var(--muted);background:#000;place-content:center;justify-items:center;gap:14px;display:grid;position:absolute;inset:0}.marble-console{z-index:5;border:1px solid var(--border);background:#070b1bf5;border-radius:16px;flex-wrap:nowrap;justify-content:center;align-items:center;gap:8px;width:min(1080px,100% - 32px);padding:12px;display:flex;position:fixed;bottom:14px;left:50%;overflow-x:auto;transform:translate(-50%);box-shadow:0 -12px 40px #00000040}.marble-map-picker{color:var(--muted);white-space:nowrap;flex:0 auto;align-items:center;gap:6px;font-size:11px;font-weight:800;display:flex}.marble-map-picker select{border:1px solid var(--border);min-width:0;max-width:170px;color:var(--text);font:inherit;background:#0d1730;border-radius:9px;padding:9px 27px 9px 9px}.marble-console .btn{white-space:nowrap;flex:none}@media (width<=700px){.marble-attribution{display:none}}.operator-launch{color:var(--text);background:linear-gradient(120deg,#f6cf6821,#20397057);border-color:#f6cf6873;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px;text-decoration:none;display:flex}.operator-launch span{font-size:14px;font-weight:900}.operator-launch b{color:#081124;background:var(--primary);border-radius:5px;margin-right:8px;padding:3px 6px;font-size:9px}.operator-launch strong{color:var(--primary);font-size:13px}.operator-page{background:radial-gradient(700px 420px at 50% 0,#1f4b8747,#0000),#070d1c;min-height:100dvh}.operator-shell{width:min(980px,100%);margin:0 auto;padding:28px 20px 100px}.operator-heading h1{margin:5px 0 8px;font-size:clamp(30px,6vw,52px)}.operator-heading{margin-bottom:22px}.setup-card label,.prize-fields label{color:var(--muted);gap:7px;font-size:12px;font-weight:800;display:grid}.setup-card input,.prize-fields input,.prize-fields select{width:100%}.setup-section-title{justify-content:space-between;align-items:center;margin:34px 0 14px;display:flex}.setup-section-title h2{margin:0}.prize-editor-list{gap:14px;display:grid}.prize-editor{grid-template-columns:auto 150px 1fr auto;align-items:start;gap:18px;display:grid;position:relative}.prize-order{color:var(--primary);font-size:24px;font-weight:900}.prize-image-input{border:1px dashed var(--border);min-height:130px;color:var(--muted);border-radius:12px;place-items:center;font-size:12px;display:grid;position:relative;overflow:hidden}.prize-image-input img{object-fit:cover;width:100%;height:130px}.prize-image-input input{opacity:0;cursor:pointer;position:absolute;inset:0}.prize-fields{gap:12px;display:grid}.field-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.prize-total{color:var(--primary);font-size:12px;font-weight:900}.setup-save{width:100%;margin-top:22px;padding-block:15px;position:sticky;bottom:18px;box-shadow:0 14px 45px #00000080}.control-shell{flex-direction:column;max-width:640px;min-height:calc(100dvh - 54px);display:flex}.control-status{color:var(--primary);letter-spacing:.14em;justify-content:space-between;font-size:11px;font-weight:900;display:flex}.control-status strong{color:var(--text)}.control-join-card{background:#0c1730c7;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin-top:12px;padding:13px 14px;display:grid}.control-join-card div{min-width:0}.control-join-card span{color:var(--muted);margin-bottom:5px;font-size:10px;font-weight:800;display:block}.control-join-card a{color:#86d9ff;text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.control-join-card button{min-height:38px;color:var(--text);font:inherit;cursor:pointer;background:#0d1931;border:1px solid #385486;border-radius:9px;padding:0 13px;font-size:11px;font-weight:850}.stage-preview{text-align:center;background:radial-gradient(circle at 50% 40%,#2d5f9e61,#0000 55%),#0a142a;place-content:center;justify-items:center;min-height:300px;margin-top:12px;display:grid}.preview-kicker{color:var(--muted);letter-spacing:.14em;place-self:start;font-size:10px;position:absolute}.preview-symbol{color:var(--primary);font-size:72px}.stage-preview h2{margin:8px 0;font-size:clamp(25px,6vw,38px)}.stage-preview p{color:var(--muted);margin:0}.control-summary{grid-template-columns:1fr 1fr;gap:10px;margin:14px 0;display:grid}.control-summary div{border:1px solid var(--border);background:#0c1730ad;border-radius:12px;padding:13px}.control-summary span{color:var(--muted);margin-bottom:5px;font-size:10px;display:block}.control-summary strong{font-size:13px}.control-next{color:#101529;cursor:pointer;background:linear-gradient(135deg,#ffe48a,#dca52f);border:0;border-radius:16px;justify-content:center;align-items:center;gap:15px;width:100%;min-height:70px;font-size:22px;font-weight:900;display:flex}.control-next span{font-size:36px;line-height:0}.control-game-buttons{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px;display:grid}.control-game-start,.control-game-redraw,.control-game-secondary{min-height:68px;font:inherit;cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:10px;font-size:16px;font-weight:900;display:flex}.control-game-start{color:#031711;background:linear-gradient(135deg,#0e8b70,#36d6a5);border:1px solid #64e6bb;box-shadow:0 12px 36px #36d6a52e}.control-game-secondary{color:#e3ebfa;background:#0d1931;border:1px solid #385486}.control-game-redraw{color:#ffd66f;background:#151b2d;border:1px solid #e4b858}.control-game-start span,.control-game-redraw span{font-size:18px}.control-game-buttons.mode-mode1 .control-game-start,.control-game-buttons.mode-free .control-game-start{min-height:82px}.control-game-count{border:1px solid var(--border);background:#081022b3;border-radius:14px;grid-column:1/-1;padding:11px}.control-game-count>span{color:var(--muted);margin-bottom:8px;font-size:11px;font-weight:800;display:block}.control-game-count>div{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.control-game-count button{color:#b9c6da;min-height:38px;font:inherit;cursor:pointer;background:#0b1529;border:1px solid #31466d;border-radius:9px;padding:0;font-size:12px;font-weight:850}.control-game-count button.active{color:#76f2ca;background:#123c35;border-color:#64e6bb}.control-marble-map{border:1px solid var(--border);color:var(--muted);background:#081022b3;border-radius:14px;grid-column:1/-1;gap:7px;padding:11px;font-size:11px;font-weight:800;display:grid}.control-marble-map select{color:#f1f5fb;width:100%;min-height:44px;font:inherit;background:#0b1529;border:1px solid #385486;border-radius:10px;font-size:14px}.control-actions{grid-template-columns:repeat(5,1fr);gap:6px;margin-top:auto;padding-top:18px;display:grid}.control-actions button,.control-actions a{border:1px solid var(--border);min-height:68px;color:var(--muted);font:inherit;text-align:center;cursor:pointer;background:#0b152b;border-radius:11px;place-content:center;gap:5px;font-size:10px;text-decoration:none;display:grid}.control-actions span{color:var(--text);font-size:19px}.control-actions .active{border-color:var(--primary);color:var(--primary)}.control-actions button:disabled{opacity:.35}.audience-stage{color:#f9f5e8;background:radial-gradient(900px 600px at 50% 25%,#173a69,#050914 72%);grid-template-rows:auto 1fr;min-height:100dvh;display:grid;overflow:hidden}.audience-brand{border-bottom:1px solid #f6cf6840;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;padding:15px 34px;display:grid}.audience-brand span{color:var(--primary);font-size:13px;font-weight:900}.audience-brand strong{letter-spacing:.16em;font-size:13px}.audience-brand button{color:#ffd66f;font:inherit;cursor:pointer;background:#081022bf;border:1px solid #f6cf6859;border-radius:999px;justify-self:end;padding:7px 12px;font-size:11px;font-weight:800}.audience-brand button.sound-ready{color:#64e6bb;border-color:#64e6bb73}.audience-opening{text-align:center;background:radial-gradient(circle at 50% 45%,#2869b09e,#0000 34%),linear-gradient(145deg,#050914,#0c1d3c 58%,#160d29);place-content:center;justify-items:center;padding:6vw;animation:.7s both stage-enter;display:grid;position:relative;overflow:hidden}.audience-opening p{z-index:2;color:#ffd76d;letter-spacing:.18em;margin:0 0 18px;font-size:clamp(18px,2vw,30px);font-weight:900}.audience-opening h1{z-index:2;text-shadow:0 12px 55px #50a3ff59;max-width:1100px;margin:0;font-size:clamp(58px,9vw,132px);line-height:.98}.audience-opening h2{z-index:2;color:#cbd7e9;letter-spacing:.22em;margin:24px 0 0;font-size:clamp(20px,2.6vw,38px)}.opening-kicker{z-index:2;color:#ffd76d;letter-spacing:.32em;border:1px solid #ffd76d8c;border-radius:999px;margin-top:42px;padding:12px 28px;font-size:14px;font-weight:900}.opening-orbit{aspect-ratio:1;border:1px solid #62b3ff2e;border-radius:50%;width:min(68vw,850px);animation:22s linear infinite opening-spin;position:absolute}.opening-orbit:before,.opening-orbit:after{content:"";border:1px solid #ffd76d24;border-radius:50%;position:absolute;inset:12%}.opening-orbit:after{inset:28%}.opening-orbit i{background:#ffd76d;border-radius:50%;width:16px;height:16px;position:absolute;box-shadow:0 0 28px #ffd76d}.opening-orbit i:first-child{top:8%;left:28%}.opening-orbit i:nth-child(2){background:#65d9ff;bottom:34%;right:6%;box-shadow:0 0 28px #65d9ff}.opening-orbit i:nth-child(3){background:#de72ff;bottom:4%;left:38%;box-shadow:0 0 28px #de72ff}.audience-opening .opening-kicker{background:#05091461;margin:0 0 24px}.opening-divider{z-index:2;color:#ffd76d;align-items:center;gap:18px;width:min(560px,58vw);margin:34px 0 24px;display:flex}.opening-divider i{background:linear-gradient(90deg,#0000,#ffd76db3);flex:1;height:1px}.opening-divider i:last-child{transform:rotate(180deg)}.opening-divider span{font-size:18px}.opening-message{z-index:2;gap:9px;display:grid}.opening-message strong{font-size:clamp(19px,2vw,29px)}.opening-message span{color:#aebed5;letter-spacing:.04em;font-size:clamp(13px,1.25vw,18px)}@keyframes opening-spin{to{transform:rotate(360deg)}}.audience-qr,.audience-prize,.audience-game{text-align:center;place-content:center;justify-items:center;padding:30px;animation:.5s both stage-enter;display:grid}.audience-qr p,.audience-prize p,.audience-game p{color:var(--primary);letter-spacing:.25em;font-size:13px;font-weight:900}.audience-qr h1,.audience-prize h1,.audience-game h1{margin:4px 0 20px;font-size:clamp(42px,7vw,88px)}.audience-qr h2{margin:18px 0 6px}.audience-qr>span{color:#9eacc1}.audience-qr-code{background:#fff;border-radius:20px;padding:12px;box-shadow:0 0 70px #f6cf6833}.audience-count{color:#afbdd0;border:1px solid #f6cf6859;border-radius:999px;margin-top:22px;padding:10px 20px}.audience-count strong{color:var(--primary)}.audience-prize img{object-fit:contain;width:min(390px,52vw);height:min(310px,36vh)}.audience-gift-placeholder{filter:drop-shadow(0 15px 35px #00000059);font-size:160px}.audience-prize h2,.audience-game h2{color:#b9c5d6}.audience-game-ready{border:1px solid var(--primary);color:var(--primary);letter-spacing:.3em;margin-top:35px;padding:15px 50px;font-weight:900}.audience-game-live{background:#050914;min-height:0;position:relative;overflow:hidden}.audience-game-live iframe{border:0;width:100%;height:100%;display:block}.audience-game-label{z-index:2;pointer-events:none;white-space:nowrap;background:#050914e0;border:1px solid #f6cf6847;border-radius:999px;align-items:center;gap:12px;max-width:calc(100% - 40px);padding:8px 16px;display:flex;position:absolute;top:10px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000004d}.audience-game-label span{text-overflow:ellipsis;color:#f9f5e8;max-width:48vw;overflow:hidden}.audience-game-label strong{color:var(--primary);font-size:12px}.audience-finale{text-align:center;background:radial-gradient(circle at 50% 20%,#3265aaad,#0000 42%),linear-gradient(160deg,#071024,#16091f 62%,#050914);align-content:start;justify-items:center;min-height:0;padding:8vh 5vw 0;display:grid;position:relative;overflow:hidden}.audience-finale>p{z-index:2;color:#ffd76d;letter-spacing:.35em;margin:0;font-weight:900}.audience-finale>h1{z-index:2;text-shadow:0 8px 40px #ffbe4657;margin:8px 0 4px;font-size:clamp(54px,8vw,118px)}.audience-finale>h2{z-index:2;color:#c8d5e8;margin:0;font-size:clamp(18px,2vw,30px)}.finale-credits{z-index:3;background:linear-gradient(#0000,#030712f0 28%);border-top:1px solid #ffd76d47;height:35vh;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.finale-credits-track{gap:14px;width:min(1100px,90vw);animation:28s linear infinite finale-roll;display:grid;position:absolute;top:100%;left:50%}.finale-credits article{text-align:left;background:#0c142ae6;border:1px solid #ffffff26;border-radius:22px;grid-template-columns:110px 1fr;align-items:center;gap:24px;min-height:112px;padding:12px 24px;display:grid;box-shadow:0 14px 40px #00000040}.finale-credits img{object-fit:contain;width:100px;height:88px}.finale-credits article div{gap:8px;min-width:0;display:grid}.finale-credits strong{color:#ffd76d;font-size:clamp(18px,2vw,30px)}.finale-credits span{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(17px,1.7vw,26px);overflow:hidden}.finale-credit-gift{place-items:center;width:100px;height:88px;font-size:48px;display:grid!important}.finale-confetti{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.finale-confetti i{top:-12%;left:var(--x);background:hsl(calc(var(--i) * 53deg) 90% 62%);width:10px;height:17px;animation:confetti-fall calc(4s + var(--i) * 35ms) linear calc(var(--i) * -.13s) infinite;border-radius:2px;position:absolute}.finale-confetti i:nth-child(3n){border-radius:50%;width:13px;height:13px}.finale-confetti i:nth-child(4n){width:7px;height:22px;box-shadow:0 0 12px}@keyframes finale-roll{0%{transform:translate(-50%)}to{transform:translate(-50%,calc(-50% - 7px))}}.finale-credits-track{transition:none;animation:none;top:18%;transform:translate(-50%)}.finale-credits-track.is-moving{transition:transform 3.2s linear;transform:translate(-50%,-126px)}.finale-credits{background:linear-gradient(#0000 0%,#0307121f 18%,#03071294 52%,#030712f5 100%);border-top:0;height:43vh;-webkit-mask-image:linear-gradient(#0000 0%,#00000047 12%,#000 34% 100%);mask-image:linear-gradient(#0000 0%,#00000047 12%,#000 34% 100%)}.finale-single-credit{place-items:center;padding:7vh 5vw 3vh;display:grid;-webkit-mask-image:none;mask-image:none}.finale-single-credit article{background:linear-gradient(135deg,#1b2b4ef5,#0c1124f5);border-color:#ffd76d6b;grid-template-columns:minmax(150px,220px) 1fr;gap:clamp(24px,4vw,52px);width:min(1050px,86vw);min-height:190px;padding:clamp(20px,3vw,38px);animation:.8s both finale-single-rise,3.6s ease-in-out infinite alternate finale-single-glow}.finale-single-credit img,.finale-single-gift{object-fit:contain;width:100%;height:150px}.finale-single-gift{place-items:center;font-size:84px;display:grid}.finale-single-credit article div{gap:10px}.finale-single-credit small{color:#8eb5e8;letter-spacing:.16em;font-size:12px;font-weight:900}.finale-single-credit strong{font-size:clamp(25px,3.5vw,48px)}.finale-single-credit span{text-overflow:clip;white-space:normal;font-size:clamp(16px,2vw,27px);line-height:1.5;overflow:visible}@keyframes finale-single-rise{0%{opacity:0;transform:translateY(42px)scale(.97)}}@keyframes finale-single-glow{to{border-color:#ffd76dcc;box-shadow:0 18px 68px #ffc3412e}}@keyframes stage-enter{0%{opacity:0;transform:translateY(16px)scale(.985)}to{opacity:1;transform:none}}@media (width<=700px){.operator-shell{padding:20px 14px 80px}.operator-launch{flex-direction:column;align-items:flex-start}.prize-editor{grid-template-columns:42px 1fr}.prize-image-input,.prize-fields{grid-column:1/-1}.control-shell{padding-bottom:18px}.stage-preview{min-height:36vh}.control-actions{background:linear-gradient(#0000,#070d1c 16%);padding:9px 4px 4px;position:sticky;bottom:0}.control-actions button,.control-actions a{border-radius:9px;min-height:62px}.audience-brand{padding:16px 18px}.audience-brand strong{font-size:10px}.audience-qr-code svg{width:min(260px,66vw);height:auto}.session-entry-shell{padding-top:34px}.session-entry-options{grid-template-columns:1fr}.session-entry-card{min-height:210px;padding:24px}.session-entry-icon{font-size:42px}}.game-card-preview{background:radial-gradient(circle at 50% 20%,#254d82,#080f22 72%);border-bottom:1px solid #ffffff1a;border-radius:17px 17px 0 0;justify-content:center;align-items:center;gap:8px;height:128px;margin:-16px -16px 16px;display:flex;position:relative;overflow:hidden}.game-card-live iframe{pointer-events:none;border:0;width:1280px;height:720px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.31)}.game-thumbnail-mode>.topbar,.game-thumbnail-mode .letter-console,.game-thumbnail-mode>.marble-console{display:none!important}.game-thumbnail-mode.marble-page .marble-stage{inset:0}.game-thumbnail-mode.letter-draw-page .letter-stage-shell{min-height:100dvh}.game-embedded-mode>.topbar,.game-embedded-mode .letter-console,.game-embedded-mode>.marble-console,.game-embedded-mode .draw-controls,.game-embedded-mode .recent-winners{display:none!important}.game-embedded-mode.marble-page .marble-stage{inset:0}.game-embedded-mode.letter-draw-page .letter-stage-shell{min-height:100dvh}.game-card-preview i{color:#10162a;background:linear-gradient(#fff9e8,#e9d8aa);border:2px solid #d6aa48;border-radius:12px;place-items:center;width:62px;height:78px;font-size:38px;font-style:normal;font-weight:950;display:grid;box-shadow:inset 0 0 0 5px #222a411f,0 12px 24px #00000040}.game-card-preview>span{color:#10162a;letter-spacing:.08em;background:#ffd76d;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:950;position:absolute;bottom:10px;right:12px}.preview-letter-reveal i:nth-child(n+2){color:#ffd76d;background:#111b34}.preview-marble-race{background:linear-gradient(165deg,#09152b,#122d3e 58%,#07101d);align-items:flex-start}.preview-marble-race:before,.preview-marble-race:after{content:"";background:#5de2ff8c;width:2px;position:absolute;top:0;bottom:0;transform:rotate(18deg)}.preview-marble-race:before{left:35%}.preview-marble-race:after{right:35%}.preview-marble-race i{z-index:1;width:25px;height:25px;margin-top:calc(18px + var(--drop,0px));background:#ff6e9c;border:2px solid #fffc;border-radius:50%;position:relative;box-shadow:0 6px 15px #00000059}.preview-marble-race i:nth-child(2){--drop:34px;background:#65d9ff}.preview-marble-race i:nth-child(3){--drop:62px;background:#ffd76d}.preview-marble-race i:nth-child(4){--drop:18px;background:#8bf58d}.preview-marble-race b{color:#64e6bb;letter-spacing:.18em;font-size:11px;position:absolute;bottom:10px;right:14px}
