:root{color-scheme:dark;--font-sans: "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", "Segoe UI", Arial, sans-serif;--bg: #08070f;--bg-soft: #10131b;--surface: #171923;--surface-2: #202434;--surface-glass: rgba(18, 20, 31, .78);--text: #f7f4ec;--muted: #9da7b8;--border: rgba(255, 255, 255, .11);--accent: #36d0ff;--gold: #ffd66b;--gold-2: #ff9f43;--danger: #ff5b7a;--success: #70e3a1;--radius: 8px;--shadow: 0 24px 70px rgba(0, 0, 0, .36)}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);letter-spacing:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit}.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh;background:linear-gradient(145deg,rgba(54,208,255,.08),transparent 36%),linear-gradient(315deg,rgba(255,214,107,.08),transparent 42%),var(--bg)}.app-sidebar{position:sticky;top:0;height:100vh;padding:28px 20px;border-right:1px solid var(--border);background:#08070fc7;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:12px;margin-bottom:32px}.brand-mark{display:grid;width:42px;height:42px;place-items:center;border:1px solid rgba(255,214,107,.42);border-radius:var(--radius);color:var(--gold);font-weight:800}.brand strong,.brand span{display:block}.brand strong{font-size:18px}.brand div span{margin-top:4px;color:var(--muted);font-size:12px}.app-nav{display:grid;gap:8px}.app-nav a{padding:12px 14px;border-radius:var(--radius);color:var(--muted);text-decoration:none}.app-nav a.router-link-active,.app-nav a:hover{background:#ffffff14;color:var(--text)}.app-main{min-width:0;padding:32px}.page-stack{display:grid;gap:20px;max-width:1400px;margin:0 auto}.access-gate{display:grid;min-height:calc(100vh - 64px);place-items:center}.access-card{width:min(520px,100%)}.access-card .panel-heading{display:block}.access-card h1{margin:0 0 10px;font-size:clamp(28px,3vw,42px)}.access-form{display:grid;gap:14px}.access-error{margin:0;border:1px solid rgba(255,91,122,.3);border-radius:var(--radius);padding:10px 12px;background:#ff5b7a1a;color:#ffb0be}.access-message{margin:0;border:1px solid rgba(42,229,166,.26);border-radius:var(--radius);padding:10px 12px;background:#2ae5a614;color:var(--success)}.access-reset{margin-top:16px;border-top:1px solid var(--border);padding-top:14px}.access-reset summary{width:max-content;color:var(--muted);cursor:pointer;font-weight:700}.access-reset p{margin:12px 0;color:var(--muted);line-height:1.65}.access-reset .button{width:100%;margin-top:12px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;min-height:120px;gap:16px}.page-header h1{margin:0 0 10px;font-size:clamp(28px,3vw,48px);line-height:1.08}.page-header p,.panel-heading p{max-width:760px;margin:0;color:var(--muted);line-height:1.7}.admin-session-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px}.room-code-chip{display:grid;min-width:118px;gap:3px;border:1px solid rgba(255,214,107,.26);border-radius:var(--radius);padding:8px 12px;background:#ffd66b14}.room-code-chip span{color:var(--muted);font-size:12px}.room-code-chip strong{color:var(--gold);font-size:20px;line-height:1;letter-spacing:0}.control-lock-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px}.control-lock-card span{color:var(--muted);font-size:13px}.control-lock-card strong{display:block;margin-top:6px;font-size:18px}.control-lock-card p{margin:8px 0 0;color:var(--muted);line-height:1.55}.control-lock-card.is-owner{border-color:#2ae5a642;background:linear-gradient(135deg,rgba(42,229,166,.08),transparent 56%),var(--surface-glass)}.control-lock-card.is-readonly{border-color:#ffd66b4d;background:linear-gradient(135deg,rgba(255,214,107,.08),transparent 58%),var(--surface-glass)}.admin-console{display:grid;gap:20px;transition:opacity .18s ease,filter .18s ease}.admin-console.is-readonly{pointer-events:none;filter:saturate(.72);opacity:.52}.dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat-card,.panel,.status-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-glass);box-shadow:var(--shadow)}.stat-card{padding:18px}.stat-card span,.status-card span{color:var(--muted);font-size:13px}.stat-card strong,.status-card strong{display:block;margin-top:8px;font-size:34px}.panel{padding:22px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.panel-heading h2{margin:0 0 8px;font-size:20px}.text-link{color:var(--accent);font-size:14px;text-decoration:none;white-space:nowrap}.import-grid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(360px,1.2fr);gap:16px}.drop-zone{display:grid;min-height:210px;place-items:center;padding:24px;border:1px dashed rgba(255,214,107,.46);border-radius:var(--radius);background:#ffd66b0d;text-align:center}.drop-zone input,.mini-upload input{display:none}.drop-zone strong,.drop-zone span{display:block}.drop-zone span{margin-top:8px;color:var(--muted)}.text-import{display:grid;gap:12px}textarea,input,select{width:100%;border:1px solid var(--border);border-radius:var(--radius);background:#ffffff12;color:var(--text);outline:none}textarea{min-height:160px;padding:14px;resize:vertical}input,select{height:42px;padding:0 12px}select{color:var(--text)}select option{background:#151821}.button{min-height:42px;border:1px solid transparent;border-radius:var(--radius);padding:0 16px;background:#ffffff14;color:var(--text);font-weight:700}.button.primary{background:linear-gradient(135deg,#24a7ff,#45e0ff);color:#06111b}.button.gold{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#211303}.button.ghost{border-color:var(--border);background:#ffffff0f}.button.danger,.icon-button.danger{background:#ff5b7a26;color:#ffb0be}.button.xl{min-height:54px;padding:0 28px;font-size:17px}.summary-line{color:var(--success)}.issue-list{display:grid;gap:8px;margin:16px 0 0;padding:0;list-style:none}.issue-list li{border-radius:var(--radius);padding:10px 12px;background:#ffffff0f}.issue-list .error{color:#ffb0be}.issue-list .warning{color:#ffe2a1}.prize-table,.record-table{display:grid;gap:8px;overflow-x:auto}.prize-row,.record-row{display:grid;align-items:center;gap:8px}.prize-row{grid-template-columns:72px 1fr 1.2fr 90px 90px 150px 58px 42px;min-width:980px}.record-row{grid-template-columns:190px 110px 1fr 110px 110px 1fr;min-width:900px}.table-head{color:var(--muted);font-size:13px}.mini-upload{display:grid;height:42px;place-items:center;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);padding:0 10px;color:var(--accent);text-overflow:ellipsis;white-space:nowrap}.icon-button{width:42px;height:42px;border:0;border-radius:var(--radius);font-size:22px}.prize-form{display:grid;grid-template-columns:1fr 1fr 1.2fr 100px 100px 128px;gap:10px;margin-top:16px}.control-grid{display:grid;grid-template-columns:1fr 220px;gap:16px}.field{display:grid;gap:8px}.field span{color:var(--muted);font-size:13px}.status-card{padding:14px}.prize-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.prize-progress div{display:grid;gap:6px;border-radius:var(--radius);padding:12px;background:#ffffff0f}.prize-progress span,.prize-progress em{color:var(--muted);font-style:normal;font-size:13px}.prize-progress strong{font-size:22px}.stage-settings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.stage-settings label{display:grid;gap:8px;border-radius:var(--radius);padding:12px;background:#ffffff0f}.stage-settings span{color:var(--muted);font-size:13px}.stage-settings input[type=checkbox]{width:22px;height:22px;padding:0}.action-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.action-row.compact{margin-top:10px}.participant-preview{display:flex;flex-wrap:wrap;gap:8px}.participant-preview span{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;background:#ffffff0f}.participant-preview em{color:var(--muted);font-style:normal;font-size:12px}.empty-text{margin:18px 0 0;color:var(--muted)}.preview-stage{position:relative;min-height:560px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:radial-gradient(circle at 50% 26%,rgba(255,214,107,.18),transparent 28%),#08070f}@media(max-width:1100px){.app-shell{grid-template-columns:1fr}.app-sidebar{position:static;height:auto}.dashboard-grid,.import-grid,.control-grid,.prize-progress,.stage-settings{grid-template-columns:1fr}.prize-form{grid-template-columns:1fr 1fr}}@media(max-width:680px){.app-main{padding:20px}.page-header{display:grid;min-height:auto}.admin-session-actions,.control-lock-card{justify-content:stretch}.control-lock-card{display:grid}.control-lock-card .button,.admin-session-actions .button{width:100%}.panel-heading{display:grid}.prize-form{grid-template-columns:1fr}}.stage-page{position:relative;isolation:isolate;min-height:100vh;overflow:hidden;background:linear-gradient(112deg,#060b14f5,#0c0d13e0 46%,#1d1710f0),radial-gradient(circle at 50% 10%,rgba(255,214,107,.14),transparent 36%),radial-gradient(circle at 18% 76%,rgba(54,208,255,.11),transparent 34%),#08070f}.stage-page:before{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;content:"";background:linear-gradient(90deg,transparent,rgba(255,255,255,.055),transparent),repeating-linear-gradient(90deg,rgba(255,255,255,.022) 0,rgba(255,255,255,.022) 1px,transparent 1px,transparent 92px),repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0,rgba(255,255,255,.018) 1px,transparent 1px,transparent 76px);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 14%,#000 88%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 14%,#000 88%,transparent);opacity:.92}.stage-page:after{position:absolute;inset:auto 0 0;height:42vh;pointer-events:none;content:"";background:linear-gradient(to top,rgba(255,214,107,.16),transparent 74%),repeating-linear-gradient(90deg,rgba(255,214,107,.08) 0,rgba(255,214,107,.08) 1px,transparent 1px,transparent 120px);opacity:0;transition:opacity .52s ease}.stage-page.rolling:after,.stage-page.settling:after,.stage-page.revealing:after{opacity:1}.stage-canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%}.stage-content{position:relative;z-index:2;display:grid;grid-template-rows:minmax(238px,34vh) minmax(330px,1fr) minmax(150px,auto);gap:12px;min-height:100vh;padding:74px clamp(26px,4vw,76px) clamp(20px,2.4vw,42px)}.stage-page.rolling .stage-content,.stage-page.settling .stage-content,.stage-page.intro .stage-content,.stage-page.idle .stage-content{display:block;padding:0 clamp(42px,5vw,96px)}.stage-page.revealing .stage-content{display:block}.stage-toolbar{position:fixed;top:24px;right:24px;z-index:4;display:flex;gap:6px;opacity:.58;transition:opacity .22s ease}.stage-toolbar:hover{opacity:1}.stage-page.revealing .stage-toolbar{opacity:0;pointer-events:none}.stage-toolbar button{border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);padding:8px 11px;background:#08070f42;color:#f7f4ecb8;font-size:14px;font-weight:700;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.stage-status-line{position:fixed;top:22px;left:50%;z-index:4;min-width:auto;border:0;padding:0;background:transparent;color:var(--gold);font-weight:800;text-align:center;transform:translate(-50%);-webkit-backdrop-filter:none;backdrop-filter:none}.prize-showcase{position:fixed;top:24px;left:clamp(18px,2vw,34px);z-index:4;display:block;width:auto;margin:0;pointer-events:none;--badge-size: 124px;--badge-glow: rgba(255, 214, 107, .14);--badge-line-opacity: 1}.prize-showcase:before,.prize-showcase:after{position:absolute;top:50%;pointer-events:none;content:"";transform:translateY(-50%)}.prize-showcase:before{left:calc(100% + 10px);width:74px;height:2px;background:linear-gradient(90deg,rgba(255,214,107,.74),rgba(255,214,107,.28),transparent);opacity:var(--badge-line-opacity);box-shadow:0 0 18px #ffd66b61}.prize-showcase:after{left:calc(100% + 92px);width:7px;height:7px;border-radius:50%;background:#ffd66bb8;opacity:var(--badge-line-opacity);box-shadow:0 0 16px #ffd66b80,-28px 0 22px #36d0ff29}.prize-ring{position:relative;display:grid;width:var(--badge-size);height:var(--badge-size);aspect-ratio:1;max-height:none;min-height:0;place-items:center;border:1px solid rgba(255,214,107,.34);border-radius:50%;background:repeating-conic-gradient(from -10deg,rgba(255,214,107,.18) 0deg 6deg,transparent 6deg 19deg),radial-gradient(circle at 50% 50%,rgba(255,214,107,.22),transparent 56%),radial-gradient(circle at 38% 24%,rgba(54,208,255,.12),transparent 44%),#08070f57;opacity:.9;box-shadow:0 0 38px var(--badge-glow),0 0 0 1px #ffd66b14,inset 0 0 28px #ffffff0f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.prize-badge-title{position:relative;z-index:1;display:grid;width:100%;height:100%;place-items:center;overflow:hidden;padding:10px;color:#ffd66bf2;font-size:25px;font-weight:900;line-height:1.05;text-align:center;text-overflow:ellipsis;text-shadow:0 0 16px rgba(255,214,107,.26)}.prize-ring:before,.prize-ring:after{position:absolute;top:13%;right:13%;bottom:13%;left:13%;border:1px solid rgba(255,255,255,.14);border-radius:50%;content:""}.prize-ring:before{border-color:#ffffff29;box-shadow:inset 0 0 18px #36d0ff14}.prize-ring:after{top:-10%;right:-10%;bottom:-10%;left:-10%;border-color:#ffd66b38;box-shadow:0 0 0 6px #ffd66b09,0 0 34px #ffd66b1f;animation:stage-spin 14s linear infinite}.prize-showcase.is-rolling,.prize-showcase.is-settling{--badge-glow: rgba(255, 214, 107, .2);--badge-line-opacity: .9}.prize-showcase.is-rolling .prize-ring:after,.prize-showcase.is-settling .prize-ring:after{animation-duration:8s}.prize-showcase.is-revealing{--badge-glow: rgba(255, 214, 107, .18)}.round-presentation{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;display:grid;place-items:center;pointer-events:none}.round-presentation:before,.round-presentation:after{position:absolute;pointer-events:none;content:""}.round-presentation:before{top:19vh;right:8vw;bottom:19vh;left:8vw;border-block:1px solid rgba(255,214,107,.18);background:linear-gradient(90deg,transparent,rgba(255,214,107,.14),rgba(54,208,255,.08),transparent),repeating-linear-gradient(90deg,transparent 0,transparent 78px,rgba(255,255,255,.035) 79px,transparent 80px);-webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);opacity:0}.round-presentation:after{width:min(72vw,1180px);height:min(72vw,1180px);border:1px solid rgba(255,214,107,.17);border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(255,214,107,.14) 0deg 2deg,transparent 2deg 13deg),radial-gradient(circle,transparent 58%,rgba(54,208,255,.055) 59%,transparent 71%);opacity:0;transform:scale(.74)}.round-presentation.is-intro:before{animation:round-scan-in 2.1s ease both}.round-presentation.is-intro:after{animation:round-ring-burst 2.1s cubic-bezier(.16,1,.3,1) both}.round-intro{position:relative;display:grid;justify-items:center;gap:clamp(10px,1.8vw,24px);text-align:center;animation:round-title-land 2.1s cubic-bezier(.16,1,.3,1) both}.round-intro span{color:#ffd66bd6;font-size:clamp(18px,1.9vw,34px);font-weight:900;letter-spacing:0;text-transform:uppercase}.round-intro strong{max-width:min(1280px,88vw);overflow:hidden;color:#fff8de;font-size:clamp(98px,13vw,260px);font-weight:950;line-height:.92;text-align:center;text-overflow:ellipsis;text-shadow:0 0 36px rgba(255,214,107,.38),0 34px 80px rgba(0,0,0,.5);white-space:nowrap}.round-ready{position:relative;display:grid;grid-template-columns:minmax(260px,.74fr) minmax(340px,1fr);align-items:center;width:min(1180px,calc(100vw - 220px));min-height:clamp(240px,30vh,380px);gap:clamp(28px,4vw,64px);border-block:1px solid rgba(255,214,107,.26);padding:clamp(28px,4vw,58px) clamp(34px,5vw,76px);background:linear-gradient(90deg,#08070f1f,#ffd66b1f,#36d0ff14,#08070f1f),#08070f33;box-shadow:0 0 90px #ffd66b24,inset 0 1px #ffffff1f;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);animation:round-ready-in .76s cubic-bezier(.16,1,.3,1) both}.round-presentation:not(.has-image) .round-ready{grid-template-columns:.72fr 1fr}.round-prize-image{position:relative;display:grid;aspect-ratio:16 / 10;min-width:0;overflow:hidden;place-items:center;border:1px solid rgba(255,214,107,.26);border-radius:var(--radius);background:linear-gradient(135deg,rgba(255,255,255,.08),transparent),#08070f75;box-shadow:0 24px 60px #00000057,0 0 36px #36d0ff1a}.round-prize-image:after{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;content:"";background:linear-gradient(110deg,transparent 24%,rgba(255,255,255,.22),transparent 48%),linear-gradient(180deg,transparent 64%,rgba(8,7,15,.32));opacity:.34}.round-prize-image img{width:100%;height:100%;object-fit:contain}.round-prize-mark{position:relative;display:grid;aspect-ratio:1;place-items:center;border:1px solid rgba(255,214,107,.26);border-radius:50%;background:repeating-conic-gradient(from 12deg,rgba(255,214,107,.16) 0deg 4deg,transparent 4deg 18deg),radial-gradient(circle,rgba(255,214,107,.18),transparent 64%);box-shadow:0 0 56px #ffd66b1f,inset 0 0 30px #ffffff0f}.round-prize-mark:before,.round-prize-mark:after{position:absolute;border:1px solid rgba(255,255,255,.12);border-radius:50%;content:""}.round-prize-mark:before{top:15%;right:15%;bottom:15%;left:15%}.round-prize-mark:after{top:-8%;right:-8%;bottom:-8%;left:-8%;border-color:#ffd66b33;animation:stage-spin 18s linear infinite}.round-prize-mark span{max-width:72%;overflow:hidden;color:#ffd66bf5;font-size:clamp(28px,3vw,58px);font-weight:950;line-height:1.04;text-align:center;text-overflow:ellipsis}.round-prize-copy{display:grid;min-width:0;gap:clamp(12px,1.4vw,18px);justify-items:start}.round-prize-copy span{color:#ffd66be6;font-size:clamp(24px,3vw,54px);font-weight:950;line-height:1}.round-prize-copy strong{max-width:100%;overflow-wrap:anywhere;color:#fff8de;font-size:clamp(58px,7vw,138px);font-weight:950;line-height:.96;text-shadow:0 0 34px rgba(255,214,107,.2)}.round-prize-copy em{color:#f7f4ec94;font-size:clamp(18px,1.8vw,30px);font-style:normal;font-weight:900;text-transform:uppercase}.name-reel{position:relative;align-self:center;display:grid;width:min(1840px,100%);min-height:330px;margin:0 auto;place-items:center;opacity:.86;transform-origin:center;transition:opacity .32s ease,transform .32s ease}.stage-page.idle .name-reel{position:absolute;top:52%;left:50%;width:min(1780px,calc(100% - 170px));min-height:min(460px,54vh);opacity:.8;transform:translate(-50%,-50%)}.stage-page.intro .name-reel{position:absolute;top:52%;left:50%;width:min(1780px,calc(100% - 170px));min-height:min(460px,54vh);opacity:.34;filter:blur(.2px) saturate(.82);transform:translate(-50%,-50%) scale(.98)}.stage-page.is-round-ready .name-reel{opacity:.42;filter:saturate(.85) brightness(.78)}.stage-page.rolling .name-reel,.stage-page.settling .name-reel{position:absolute;top:52%;left:50%;width:min(1840px,calc(100% - 170px));min-height:min(560px,62vh);transform:translate(-50%,-50%)}.stage-page.idle .name-reel:before{top:-18px;right:-22px;bottom:-18px;left:-22px}.stage-page.intro .name-reel:before,.stage-page.is-round-ready .name-reel:before{top:-18px;right:-22px;bottom:-18px;left:-22px}.stage-page.idle .name-reel:after{opacity:.28}.stage-page.intro .name-reel:after,.stage-page.is-round-ready .name-reel:after{opacity:.2}.name-reel:before,.name-reel:after{position:absolute;pointer-events:none;content:""}.name-reel:before{top:-26px;right:-42px;bottom:-26px;left:-42px;border-block:1px solid rgba(255,214,107,.15);background:linear-gradient(90deg,transparent,rgba(54,208,255,.08) 18%,rgba(255,214,107,.12) 50%,rgba(54,208,255,.08) 82%,transparent),repeating-linear-gradient(0deg,rgba(255,255,255,.034) 0,rgba(255,255,255,.034) 1px,transparent 1px,transparent 54px);-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}.name-reel:after{inset:50% -36px auto;height:1px;background:linear-gradient(90deg,transparent,rgba(255,214,107,.62),transparent);box-shadow:0 0 26px #ffd66b6b;opacity:.42}.name-reel.rolling{opacity:1;transform:scale(1.018)}.stage-page.rolling .name-reel.rolling{transform:translate(-50%,-50%) scale(1.018)}.name-reel.settling{opacity:1;transform:scale(.985)}.stage-page.settling .name-reel.settling{transform:translate(-50%,-50%) scale(.985)}.name-reel.revealed{opacity:.2;transform:translateY(-16px) scale(.92)}.stage-page.revealing .name-reel.revealed{position:absolute;inset:88px clamp(18px,3vw,64px) clamp(18px,4vh,54px);z-index:1;width:auto;min-height:0;opacity:.24;transform:none}.stage-page.revealing .name-reel.revealed:before{top:0;right:0;bottom:0;left:0;border-block-color:rgba(255,214,107,.08)}.stage-page.revealing .name-reel.revealed:after{opacity:.18}.reel-stack{position:relative;z-index:1;display:grid;grid-template-rows:44px minmax(0,1fr) 44px;gap:12px;width:100%;min-height:330px;transform-style:preserve-3d}.stage-page.idle .reel-stack,.stage-page.intro .reel-stack{min-height:min(460px,54vh)}.stage-page.revealing .reel-stack{height:100%;min-height:0}.reel-ribbon{display:flex;gap:8px;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}.reel-ribbon span{flex:0 0 118px;min-width:0;overflow:hidden;border-block:1px solid rgba(255,255,255,.09);padding:9px 10px;background:#ffffff0b;color:#f7f4ec7a;font-size:15px;font-weight:700;text-align:center;text-overflow:ellipsis;white-space:nowrap}.name-grid{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));grid-auto-rows:minmax(52px,1fr);gap:10px;min-height:0;perspective:980px;perspective-origin:50% 46%;transform-style:preserve-3d}.stage-page.idle .name-grid,.stage-page.intro .name-grid,.stage-page.revealing .name-grid{height:100%}.name-cell{position:relative;isolation:isolate;display:grid;min-height:52px;min-width:0;align-content:center;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);padding:8px 10px;background:linear-gradient(135deg,#ffffff14,#ffffff06),#08070f6b;color:#f7f4ecc7;text-align:center;backface-visibility:hidden;transform:translateZ(0);transform-origin:50% 55%;contain:layout paint;--wave-rise: -26px;--wave-depth: 38px;--wave-drift: 0px;--wave-drift-back: 0px;--wave-scale: 1.055}.name-cell:before{position:absolute;top:-35%;right:-18%;bottom:-35%;left:-18%;z-index:0;pointer-events:none;content:"";background:radial-gradient(circle at 50% 30%,rgba(255,214,107,.28),transparent 36%),linear-gradient(120deg,transparent 18%,rgba(255,255,255,.2),transparent 54%);opacity:0;transform:translate3d(-34%,22%,0) rotate(0)}.name-cell strong,.name-cell small{position:relative;z-index:1;display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.name-cell strong{color:#f7f4eceb;font-size:19px;line-height:1.15}.name-cell small{margin-top:3px;color:#9da7b8bd;font-size:11px;line-height:1.15}.name-cell.is-gold,.reel-ribbon .is-gold{border-color:#ffd66b47;background-color:#ffd66b14}.name-cell.is-cyan,.reel-ribbon .is-cyan{border-color:#36d0ff3d;background-color:#36d0ff11}.name-cell.is-soft{opacity:.78}.name-cell.is-muted{opacity:.62}.rolling .reel-stack{animation:reel-breathe 1.8s ease-in-out infinite alternate}.rolling .reel-ribbon-top span{animation:ribbon-drift-left 1.6s linear infinite}.rolling .reel-ribbon-bottom span{animation:ribbon-drift-right 1.9s linear infinite}.rolling .name-grid{animation:grid-surge 1.5s ease-in-out infinite alternate}.rolling .name-cell{border-color:#ffd66b33;box-shadow:0 14px 28px #00000047,0 0 0 1px #ffd66b0a,inset 0 1px #ffffff1c;will-change:transform,opacity;animation:name-boil-wave var(--wave-duration, 1.28s) cubic-bezier(.22,1,.36,1) infinite;animation-delay:var(--wave-delay, 0ms)}.rolling .name-cell.is-gold:before,.rolling .name-cell.is-cyan:before{animation:cell-shine var(--wave-duration, 1.28s) ease-in-out infinite;animation-delay:var(--wave-delay, 0ms)}.settling .reel-ribbon{opacity:.45;transform:scaleX(.94);transition:opacity .5s ease,transform .5s ease}.settling .name-cell{animation:name-settle .9s cubic-bezier(.2,.84,.28,1) both}.settling .name-cell:nth-child(3n){animation-delay:80ms}.settling .name-cell:nth-child(4n){animation-delay:.14s}.stage-page.idle .winner-reveal,.stage-page.intro .winner-reveal,.stage-page.rolling .winner-reveal,.stage-page.settling .winner-reveal{max-height:0;overflow:hidden;padding-bottom:0}.screen-empty{display:grid;min-height:180px;place-items:center;color:var(--muted);font-size:clamp(20px,2vw,32px)}.winner-reveal{position:relative;z-index:2;width:min(1500px,100%);margin:0 auto;padding-bottom:clamp(12px,2vw,28px);opacity:0;transform:translateY(24px);transition:opacity .52s ease,transform .52s ease}.stage-page.revealing .winner-reveal{position:absolute;top:50%;left:50%;width:min(1500px,calc(100% - 96px));padding-bottom:0;transform:translate(-50%,calc(-50% + 22px))}.winner-reveal:before{position:absolute;inset:-46px 12% auto;height:150px;pointer-events:none;content:"";background:linear-gradient(90deg,transparent,rgba(255,214,107,.2),transparent),linear-gradient(180deg,rgba(255,214,107,.2),transparent);filter:blur(18px);opacity:0;transition:opacity .52s ease}.winner-reveal.active{opacity:1;transform:translateY(0)}.stage-page.revealing .winner-reveal.active{transform:translate(-50%,-50%)}.winner-reveal.active:before{opacity:.42}.winner-headline{position:relative;display:grid;justify-items:center;gap:clamp(14px,1.6vw,24px);margin-bottom:0;text-align:center}.winner-headline span{margin:0;color:var(--gold);font-size:clamp(30px,2.9vw,54px);font-weight:950;line-height:1;text-shadow:0 0 18px rgba(255,214,107,.3),0 14px 38px rgba(0,0,0,.36)}.winner-headline p{margin:-2px 0 0;color:#f7f4ec9e;font-size:18px;font-weight:700}.winner-name-stage{display:grid;width:100%;justify-items:center;align-items:center;justify-content:center;gap:14px 28px}.winner-reveal.is-multiple .winner-name-stage{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(18px,3vw,56px) clamp(42px,6vw,120px)}.winner-reveal.is-many .winner-name-stage{gap:clamp(14px,2vw,34px) clamp(26px,4vw,72px)}.winner-name{display:block;max-width:100%;min-width:0;overflow:hidden;color:#fff8de;font-size:clamp(64px,6rem,112px);line-height:.92;text-overflow:ellipsis;white-space:nowrap;text-shadow:none;text-align:center;animation:reveal-pop .62s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--delay, 0ms)}.winner-reveal.is-multiple .winner-name{flex:0 1 260px;font-size:clamp(48px,4.75rem,76px);line-height:1}.winner-reveal.is-many .winner-name{flex-basis:210px;font-size:clamp(34px,3.25rem,56px)}.winner-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:26px}.winner-pagination button{display:grid;width:44px;height:44px;place-items:center;border:1px solid rgba(255,214,107,.24);border-radius:var(--radius);background:#ffd66b1a;color:var(--gold);font-size:30px;line-height:1}.winner-pagination span{color:#f7f4ec94;font-size:14px;font-weight:800}@keyframes stage-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes round-scan-in{0%{opacity:0;transform:scaleX(.72)}16%,72%{opacity:.88;transform:scaleX(1)}to{opacity:0;transform:scaleX(1.08)}}@keyframes round-ring-burst{0%{opacity:0;transform:scale(.52) rotate(-18deg)}18%{opacity:.46}74%{opacity:.26;transform:scale(1) rotate(10deg)}to{opacity:0;transform:scale(1.18) rotate(18deg)}}@keyframes round-title-land{0%{opacity:0;filter:blur(16px);transform:translateY(34px) scale(.74)}18%{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}70%{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}to{opacity:0;filter:blur(10px);transform:translateY(-22px) scale(1.08)}}@keyframes round-ready-in{0%{opacity:0;filter:blur(10px);transform:translateY(28px) scale(.96)}to{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}}@keyframes name-boil-wave{0%{opacity:.5;transform:translate3d(0,16px,-34px) scale(.955)}18%{opacity:.78;transform:translate3d(var(--wave-drift-back),-4px,14px) scale(1.006)}48%{opacity:1;transform:translate3d(var(--wave-drift),var(--wave-rise),var(--wave-depth)) scale(var(--wave-scale))}62%{opacity:.96;transform:translate3d(var(--wave-drift),var(--wave-rise),var(--wave-depth)) scale(var(--wave-scale))}82%{opacity:.74;transform:translate3d(var(--wave-drift-back),-2px,12px) scale(1.006)}to{opacity:.52;transform:translate3d(0,16px,-30px) scale(.96)}}@keyframes cell-shine{0%,18%{opacity:0;transform:translate3d(-36%,26%,0)}48%{opacity:.48;transform:translateZ(0)}to{opacity:0;transform:translate3d(36%,-24%,0)}}@keyframes name-settle{0%{border-color:#36d0ff52;color:#f7f4ecf2;opacity:1;transform:translateY(-8px) scale(1.04)}to{border-color:#ffd66b2e;color:#f7f4ec85;opacity:.5;transform:translateY(12px) scale(.92)}}@keyframes grid-surge{0%{transform:translate3d(-10px,2px,0) scale(.998)}to{transform:translate3d(10px,-2px,0) scale(1.006)}}@keyframes reel-breathe{0%{opacity:.94}to{opacity:1}}@keyframes ribbon-drift-left{0%{transform:translate(0)}to{transform:translate(-64px)}}@keyframes ribbon-drift-right{0%{transform:translate(-64px)}to{transform:translate(0)}}@keyframes reveal-pop{0%{opacity:0;transform:translateY(24px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:900px){.stage-content{grid-template-rows:auto minmax(380px,1fr) auto;padding:72px 18px}.stage-page.intro .stage-content,.stage-page.idle .stage-content{display:block;padding:0 14px}.stage-page.rolling .stage-content,.stage-page.settling .stage-content{padding:0 14px}.stage-page.revealing .stage-content{display:block}.prize-showcase{top:14px;left:12px;--badge-size: 86px}.prize-ring{width:var(--badge-size);height:var(--badge-size);min-height:0;margin:0}.prize-showcase:before{left:calc(100% + 8px);width:42px}.prize-showcase:after{left:calc(100% + 54px);width:5px;height:5px}.prize-badge-title{padding:9px;font-size:18px}.round-presentation:before{top:18vh;right:4vw;bottom:18vh;left:4vw}.round-presentation:after{width:92vw;height:92vw}.round-intro span{font-size:15px}.round-intro strong{max-width:92vw;font-size:clamp(58px,21vw,120px);white-space:normal}.round-ready,.round-presentation:not(.has-image) .round-ready{grid-template-columns:1fr;width:calc(100vw - 34px);min-height:auto;gap:18px;padding:28px 22px}.round-prize-image{width:min(100%,420px);justify-self:center}.round-prize-mark{width:min(58vw,220px);justify-self:center}.round-prize-copy{justify-items:center;text-align:center}.round-prize-copy span{font-size:24px}.round-prize-copy strong{font-size:clamp(46px,15vw,82px)}.round-prize-copy em{font-size:16px}.stage-page.idle .name-reel,.stage-page.intro .name-reel{top:52%;width:calc(100% - 28px);min-height:min(420px,56vh)}.stage-page.rolling .name-reel,.stage-page.settling .name-reel{width:calc(100% - 28px);min-height:min(420px,56vh)}.stage-page.idle .reel-stack,.stage-page.intro .reel-stack{min-height:min(420px,56vh)}.name-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:48px}.reel-stack{min-height:420px}.reel-ribbon span{flex-basis:96px;font-size:13px}.name-cell strong{font-size:16px}.name-cell small{display:none}.stage-toolbar{top:12px;right:12px}.stage-status-line{top:auto;bottom:12px}.stage-page.revealing .winner-reveal{top:50%;width:calc(100% - 32px)}.stage-page.revealing .name-reel.revealed{top:72px;right:12px;bottom:56px;left:12px}.winner-headline span{font-size:clamp(24px,6.8vw,34px)}.winner-name,.winner-reveal.is-multiple .winner-name,.winner-reveal.is-many .winner-name{font-size:48px}.winner-reveal.is-multiple .winner-name-stage,.winner-reveal.is-many .winner-name-stage{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 22px}.winner-reveal.is-multiple .winner-name,.winner-reveal.is-many .winner-name{flex-basis:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
