@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.start{inset-inline-start:var(--spacing)}.contents{display:contents}.resize{resize:both}}:root{--ink:#f5f2ff;--muted:#9690ad;--line:#ffffff1a;--purple:#8f72ff;--deep:#090710}*{box-sizing:border-box}html{background:var(--deep)}body{color:var(--ink);background:#090710;margin:0;font-family:Arial,Noto Sans TC,sans-serif}button,input{font:inherit}button{color:inherit}.app-shell{background:radial-gradient(circle at 48% 39%,#2b1b58 0,#120c24 30%,#090710 63%);min-height:100vh;position:relative;overflow:hidden}.noise{opacity:.035;pointer-events:none;z-index:20;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E");position:fixed;inset:0}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:5;background:#08060eb3;grid-template-columns:280px 1fr 280px;align-items:center;height:86px;padding:0 30px;display:grid;position:relative}.brand{color:inherit;align-items:center;gap:12px;text-decoration:none;display:flex}.brand-mark{color:#d0c3ff;border:1px solid #9c83ff;border-radius:50%;place-items:center;width:37px;height:37px;display:grid;box-shadow:0 0 22px #6c48ff55,inset 0 0 14px #8e6cff44}.brand b{letter-spacing:.14em;font-size:17px;display:block}.brand small{color:#817b95;letter-spacing:.24em;margin-top:4px;font-size:8px;display:block}.event-title{text-align:center;color:#b6afc7;letter-spacing:.15em;font-size:13px}.event-title span{color:#fff}.sync-status{color:#827d92;justify-self:end;align-items:center;gap:8px;font-size:11px;display:flex}.sync-status i{background:#6fe7a8;border-radius:50%;width:7px;height:7px;box-shadow:0 0 9px #6fe7a8}.sync-status b{color:#bbb6ca;font-weight:500}.stage{grid-template-columns:230px minmax(480px,1fr) 310px;min-height:calc(100vh - 166px);display:grid;position:relative}.left-rail{border-right:1px solid var(--line);z-index:3;background:linear-gradient(90deg,#08060eb8,#08060e33);padding:52px 24px 24px 30px;position:relative}.eyebrow{color:#777187;letter-spacing:.26em;font-size:9px}.attendance-number{letter-spacing:-.05em;margin-top:17px;font-size:52px;font-weight:200;line-height:1}.attendance-number span{color:#615b6e;letter-spacing:0;font-size:15px}.left-rail p{color:#918a9e;font-size:12px}.progress{background:#2c2635;height:2px;margin:25px 0 26px}.progress span{background:linear-gradient(90deg,#7058ff,#bc98ff);height:100%;display:block;box-shadow:0 0 10px #8b6dff}.stat-list{border-top:1px solid var(--line)}.stat-list div{border-bottom:1px solid var(--line);color:#777182;justify-content:space-between;padding:17px 0;font-size:11px;display:flex}.stat-list strong{color:#e8e3f2;font-size:14px;font-weight:500}.ghost-button{color:#aaa3b8;cursor:pointer;background:#ffffff06;border:1px solid #342e42;border-radius:7px;width:100%;margin-top:24px;padding:12px;font-size:11px;transition:all .2s}.ghost-button:hover{color:#fff;border-color:#7861bd}.ghost-button span{color:#bba7ff;margin-right:7px;font-size:16px}.universe{place-items:center;min-height:620px;display:grid;position:relative;overflow:hidden}.universe:before{content:"";opacity:.13;background-image:radial-gradient(#fff .6px,#0000 .7px);background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000,#0000 72%);mask-image:radial-gradient(circle,#000,#0000 72%)}.planet{aspect-ratio:1;background:radial-gradient(circle at 42% 40%,#9a79ff3b,#321e5d57 38%,#0c0915bf 70%);border:1px solid #cabbff38;border-radius:50%;width:min(48vw,570px);transition:filter .5s;position:relative;box-shadow:inset 0 0 90px #8a5aff21,0 0 100px #5530aa2e}.planet:before,.planet:after{content:"";border:1px solid #c6b4ff14;border-radius:50%;position:absolute;inset:9%}.planet:after{inset:21%}.planet-grid{opacity:.12;background:repeating-radial-gradient(circle,#0000 0 27px,#c2acff 29px 30px),repeating-linear-gradient(41deg,#0000 0 60px,#cdbdff 61px 62px);border-radius:50%;position:absolute;inset:4%}.core-glow{aspect-ratio:1;filter:blur(12px);background:radial-gradient(circle,#d6c8ff55,#0000 68%);border-radius:50%;width:25%;animation:3s infinite pulse;position:absolute;top:38%;left:38%}.people-cloud{border-radius:50%;position:absolute;inset:5%}.person-name{white-space:nowrap;color:#c9c2d4;text-shadow:0 0 10px #c8b4ff99;animation:4.2s ease-in-out infinite nameGlow;position:absolute;transform:translate(-50%,-50%)}.person-name:nth-child(3n){color:#fff;font-weight:600}.person-name:nth-child(5n){color:#9a91a8}.halo,.orbital-ring{pointer-events:none;border-radius:50%;position:absolute}.halo-one{aspect-ratio:1;border:1px solid #bdadff14;width:min(57vw,660px)}.halo-two{aspect-ratio:1;border:1px solid #bdadff0a;width:min(67vw,780px)}.orbital-ring{border:1px solid #b299ff2b;width:min(57vw,680px);height:150px;transform:rotate(-11deg);box-shadow:0 0 22px #7e5fff14}.ring-b{opacity:.45;transform:rotate(63deg)}.stage-caption{text-align:center;pointer-events:none;text-shadow:0 4px 22px #090710;position:absolute;bottom:30px}.stage-caption span{color:#8d7cb8;letter-spacing:.3em;font-size:8px}.stage-caption h1{letter-spacing:.08em;margin:8px 0 4px;font-size:23px}.stage-caption p{color:#9c95aa;margin:0;font-size:12px}.is-drawing .planet{filter:brightness(1.55)blur(.4px);animation:.55s linear infinite spinPlanet}.is-drawing .orbital-ring{border-color:#a88bff88;animation:.65s linear infinite spinRing}.is-drawing .person-name{filter:blur(1.5px)}.shooting-name{z-index:4;opacity:0;text-shadow:0 0 30px #fff,0 0 70px #8d64ff;font-size:50px;font-weight:800;position:absolute}.is-drawing .shooting-name{animation:1s ease-in-out infinite shoot}.right-panel{border-left:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:4;background:#08060ead;padding:22px 20px;position:relative}.tabs{background:#13101b;border:1px solid #292332;border-radius:8px;grid-template-columns:repeat(3,1fr);padding:3px;display:grid}.tabs button{color:#706a7e;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:8px 3px;font-size:10px}.tabs button.active{color:#e9e3f5;background:#282135;box-shadow:0 1px 5px #0008}.panel-heading{justify-content:space-between;align-items:baseline;margin:25px 2px 13px;font-size:12px;display:flex}.panel-heading small{color:#625c6d;letter-spacing:.08em;font-size:7px}.prize-list{gap:8px;display:grid}.prize-card{--prize:#fff;text-align:left;cursor:pointer;background:#ffffff05;border:1px solid #28232f;border-radius:9px;grid-template-columns:29px 1fr auto;align-items:center;width:100%;padding:13px 12px;transition:all .2s;display:grid}.prize-card:hover{border-color:#4a3d67;transform:translate(-2px)}.prize-card.selected{background:linear-gradient(90deg, var(--prize), transparent)}@supports (color:color-mix(in lab, red, red)){.prize-card.selected{background:linear-gradient(90deg, color-mix(in srgb, var(--prize) 12%, transparent), transparent)}}.prize-card.selected{border-color:var(--prize)}@supports (color:color-mix(in lab, red, red)){.prize-card.selected{border-color:color-mix(in srgb, var(--prize) 42%, #292332)}}.prize-card.selected{box-shadow:inset 2px 0 var(--prize)}.prize-index{color:var(--prize);font-size:9px}.prize-copy b,.prize-copy small{display:block}.prize-copy b{font-size:12px;font-weight:500}.prize-copy small{color:#766f80;margin-top:5px;font-size:9px}.prize-count{color:#8e879b;font-size:10px}.winner-mini{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px;margin-top:17px;padding-top:15px;display:flex}.winner-mini>span{color:#6f687a;width:100%;font-size:9px}.winner-mini b{background:#241c36;border:1px solid #4e3a77;border-radius:15px;padding:5px 8px;font-size:9px;font-weight:500}.winner-mini em{color:#514b5b;font-size:10px;font-style:normal}.checkin-panel{text-align:center;padding-top:24px}.qr-box{color:#16121e;background:#fff;border-radius:8px;width:150px;margin:2px auto 21px;padding:13px 13px 9px;box-shadow:0 0 35px #9875ff33}.fake-qr{aspect-ratio:1;grid-template-columns:repeat(9,1fr);gap:2px;display:grid}.fake-qr i{background:0 0}.fake-qr i.on{background:#18131f}.qr-box>span{letter-spacing:.23em;margin-top:8px;font-size:6px;display:block}.checkin-panel h3{font-size:15px}.checkin-panel>p{color:#746e7f;font-size:10px;line-height:1.7}.secondary-button,.add-prize{cursor:pointer;background:#241b38;border:1px solid #59447f;border-radius:7px;width:100%;margin:9px 0 17px;padding:11px;font-size:10px}.recent-list{border-top:1px solid var(--line)}.recent-list>div{text-align:left;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:11px 2px;font-size:10px;display:flex}.recent-list small{color:#625c6d;margin-top:3px;font-size:8px;display:block}.recent-list time{color:#6fe7a8;font-size:8px}.settings-panel{padding-top:20px}.sheet-card{background:#12181a;border:1px solid #253a34;border-radius:8px;align-items:center;gap:10px;padding:12px;display:flex}.sheet-icon{background:#1d7c55;border-radius:5px;place-items:center;width:30px;height:30px;display:grid}.sheet-card div{flex:1}.sheet-card b,.sheet-card small{font-size:10px;display:block}.sheet-card small{color:#607069;margin-top:4px;font-size:8px}.sheet-card i{background:#6fe7a8;border-radius:50%;width:7px;height:7px}.settings-help{color:#6f687a;font-size:9px;line-height:1.6}.setting-rows{max-height:375px;padding-right:3px;overflow:auto}.setting-row{border-bottom:1px solid var(--line);grid-template-columns:1fr 50px 82px;gap:6px;padding:10px 0;display:grid}.setting-row input{color:#ddd7e9;background:#100d16;border:1px solid #2e2738;border-radius:5px;outline:none;width:100%;padding:7px;font-size:9px}.setting-row input:focus{border-color:#7255aa}.setting-row label{color:#686173;font-size:7px}.setting-row label input{margin-top:4px}.add-prize{color:#9f8fc4;background:0 0;border-style:dashed}.control-bar{border-top:1px solid var(--line);z-index:6;background:#07050ced;grid-template-columns:1fr 260px 1fr;align-items:center;height:80px;padding:0 31px;display:grid;position:relative}.current-prize small,.current-prize b,.current-prize span{display:inline-block}.current-prize small{color:#655e72;letter-spacing:.18em;width:100%;margin-bottom:5px;font-size:7px}.current-prize b{font-size:12px}.current-prize span{color:#8e879a;margin-left:8px;font-size:9px}.draw-button{cursor:pointer;background:linear-gradient(120deg,#7859df,#9a78f7);border:1px solid #beaaff;border-radius:26px;justify-content:center;align-items:center;gap:16px;height:51px;transition:all .2s;display:flex;box-shadow:0 0 34px #704bdb55,inset 0 1px #fff7}.draw-button:hover{filter:brightness(1.12);transform:scale(1.025)}.draw-button:disabled{opacity:.65;cursor:wait}.draw-button span{letter-spacing:.15em;font-size:15px;font-weight:700}.draw-button i{border:1px solid #d7cbff99;border-radius:4px;padding:4px 6px;font-size:7px;font-style:normal}.draw-note{color:#817a8c;text-align:right;justify-self:end;align-items:center;gap:9px;font-size:9px;display:flex}.draw-note span{color:#bca6ff}.draw-note p{margin:0;line-height:1.5}.draw-note small{color:#514b5b;font-size:7px}.winner-overlay{z-index:50;text-align:center;background:radial-gradient(circle,#40267df5,#07050dfa 65%);place-content:center;padding:30px;animation:.5s ease-out overlayIn;display:grid;position:fixed;inset:0}.winner-overlay:before{content:"";border:1px solid #bca7ff22;border-radius:50%;position:absolute;inset:8%;box-shadow:0 0 100px #8f69ff22}.close-winner{cursor:pointer;z-index:3;background:0 0;border:1px solid #fff3;border-radius:50%;width:38px;height:38px;font-size:23px;position:absolute;top:22px;right:30px}.winner-kicker{color:#cbbcff;letter-spacing:.38em;font-size:10px}.winner-overlay h2{letter-spacing:.12em;margin:14px 0 28px;font-size:clamp(30px,5vw,60px)}.winner-cards{z-index:2;flex-wrap:wrap;justify-content:center;gap:15px;display:flex;position:relative}.winner-cards article{opacity:0;background:linear-gradient(145deg,#ffffff21,#ffffff09);border:1px solid #d1c2ff44;border-radius:15px;width:190px;padding:26px 18px 21px;animation:.75s cubic-bezier(.17,.89,.32,1.35) forwards winnerFly;box-shadow:0 20px 60px #0006}.winner-cards article>span{color:#ffdf6e;text-shadow:0 0 15px #ffdf6e;font-size:23px}.winner-cards small{color:#8d85a0;letter-spacing:.15em;margin:12px 0 5px;font-size:9px;display:block}.winner-cards b{font-size:26px}.winner-cards p{color:#aca4b8;margin:7px 0 0;font-size:10px}.saved-note{color:#71e0a6;margin-top:23px;font-size:10px}.confetti{position:absolute;inset:0;overflow:hidden}.confetti i{--i:1;left:calc(var(--i) * 3.1%);background:hsl(calc(var(--i) * 33deg),80%,70%);width:5px;height:13px;animation:confettiFall calc(2.2s + var(--i) * 40ms) linear infinite;animation-delay:calc(var(--i) * -.08s);transform:rotate(calc(var(--i) * 19deg));position:absolute;top:-20px}@keyframes pulse{50%{opacity:.5}}@keyframes nameGlow{50%{opacity:.48;text-shadow:0 0 3px #fff}}@keyframes spinPlanet{to{transform:rotate(360deg)scale(1.03)}}@keyframes spinRing{to{transform:rotate(349deg)}}@keyframes shoot{0%{opacity:0;transform:translate(-300px,140px)scale(.4)}45%{opacity:1}to{opacity:0;transform:translate(340px,-170px)scale(1.7)}}@keyframes overlayIn{0%{opacity:0}}@keyframes winnerFly{0%{opacity:0;transform:translateY(180px)scale(.4)rotate(8deg)}to{opacity:1;transform:none}}@keyframes confettiFall{to{transform:translateY(105vh)rotate(640deg)}}@media (max-width:1080px){.stage{grid-template-columns:180px minmax(400px,1fr) 280px}.left-rail{padding-left:20px}.topbar{grid-template-columns:240px 1fr 240px}}@media (max-width:850px){.app-shell{overflow:auto}.topbar{grid-template-columns:1fr auto;height:72px;padding:0 18px}.event-title,.sync-status b{display:none}.stage{flex-direction:column;display:flex}.left-rail{border:0;border-top:1px solid var(--line);order:2;padding:22px}.universe{order:1;min-height:520px}.planet{width:min(88vw,520px)}.right-panel{border-left:0;border-top:1px solid var(--line);order:3;min-height:520px}.stat-list{gap:25px;display:flex}.stat-list div{flex:1}.control-bar{grid-template-columns:1fr 200px;padding:0 14px;position:sticky;bottom:0}.draw-note{display:none}}@media (max-width:520px){.brand small{display:none}.sync-status{font-size:9px}.universe{min-height:450px}.stage-caption{bottom:16px}.stage-caption h1{font-size:19px}.control-bar{grid-template-columns:120px 1fr}.current-prize span{display:none}.winner-cards article{width:145px;padding:18px 10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sync-status.demo i{background:#ffbd69;box-shadow:0 0 9px #ffbd69}.backend-entry{text-align:center;padding:36px 14px 10px}.backend-entry>span{color:#c7b5ff;background:#241b38;border:1px solid #59447f;border-radius:50%;place-items:center;width:50px;height:50px;margin:auto;font-size:20px;display:grid}.backend-entry h3{margin:16px 0 7px;font-size:15px}.backend-entry p{color:#746e7f;font-size:10px;line-height:1.7}.backend-entry a{color:#fff;background:linear-gradient(120deg,#7657db,#9675ee);border-radius:7px;margin-top:17px;padding:12px;font-size:11px;text-decoration:none;display:block}.admin-login-shell{background:radial-gradient(circle at 50% 42%,#2d1d59,#100b20 42%,#08060d 75%);place-items:center;min-height:100vh;display:grid;position:relative;overflow:hidden}.admin-login-shell:before{content:"";opacity:.1;background-image:radial-gradient(#fff .6px,#0000 .8px);background-size:41px 41px;position:absolute;inset:0}.login-orbit{border:1px solid #aa8cff22;border-radius:50%;width:620px;height:210px;position:absolute;transform:rotate(-18deg)}.login-orbit-two{opacity:.6;transform:rotate(68deg)}.login-card{z-index:2;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#100c1ae0;border:1px solid #ffffff16;border-radius:18px;width:min(430px,100vw - 32px);padding:35px 38px 27px;position:relative;box-shadow:0 30px 100px #000a,inset 0 1px #ffffff0d}.admin-brand{color:#f4f0ff;align-items:center;gap:12px;text-decoration:none;display:flex}.admin-brand>span{color:#d2c3ff;border:1px solid #9a7cff;border-radius:50%;place-items:center;width:38px;height:38px;display:grid;box-shadow:0 0 20px #7652ff44}.admin-brand b,.admin-brand small{display:block}.admin-brand b{letter-spacing:.14em;font-size:15px}.admin-brand small{color:#6f687c;letter-spacing:.2em;margin-top:4px;font-size:7px}.login-heading{margin:42px 0 28px}.login-heading small{color:#9179d7;letter-spacing:.3em;font-size:8px}.login-heading h1{margin:9px 0 7px;font-size:27px;font-weight:600}.login-heading p{color:#756e81;margin:0;font-size:11px}.login-card form label{color:#a19aa9;margin-bottom:16px;font-size:10px;display:block}.login-card form input{color:#efeaf7;background:#0c0912;border:1px solid #30293a;border-radius:8px;outline:none;width:100%;margin-top:7px;padding:13px 14px;display:block}.login-card form input:focus{border-color:#765ac9;box-shadow:0 0 0 3px #765ac922}.login-card form>button{color:#fff;letter-spacing:.08em;cursor:pointer;background:linear-gradient(120deg,#7355d8,#9877f0);border:1px solid #bba7ff;border-radius:9px;justify-content:center;gap:18px;width:100%;margin-top:8px;padding:14px 16px;font-weight:700;display:flex}.login-card form>button:disabled{opacity:.55}.login-error{color:#ff9fb6;background:#421b2a55;border-radius:6px;margin:-5px 0 12px;padding:10px;font-size:10px}.login-security{color:#5e5869;text-align:center;border-top:1px solid #ffffff10;margin-top:21px;padding-top:17px;font-size:8px}.login-security i{background:#68dda4;border-radius:50%;width:5px;height:5px;margin-right:6px;display:inline-block}.admin-shell{color:#eee9f7;background:#0a0810;grid-template-columns:230px 1fr;min-height:100vh;display:grid}.admin-sidebar{background:linear-gradient(#100c19,#09070e);border-right:1px solid #ffffff0e;flex-direction:column;min-height:100vh;padding:28px 19px 20px;display:flex}.admin-sidebar nav{gap:6px;margin-top:53px;display:grid}.admin-sidebar nav button{color:#756e80;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:12px 11px;font-size:11px;display:flex}.admin-sidebar nav button span{color:#8d78c7;text-align:center;width:22px;font-size:17px}.admin-sidebar nav button i{color:#877c9d;background:#252030;border-radius:10px;margin-left:auto;padding:2px 6px;font-size:8px;font-style:normal}.admin-sidebar nav button.active{color:#f1ebff;background:#21182f;border-color:#473467;box-shadow:inset 2px 0 #9b7aff}.admin-sync{background:#191218;border:1px solid #37262e;border-radius:8px;align-items:center;gap:9px;margin-top:auto;padding:11px;display:flex}.admin-sync>i{background:#ffbd69;border-radius:50%;flex:none;width:7px;height:7px;box-shadow:0 0 8px #ffbd69}.admin-sync.connected{background:#101a17;border-color:#243c34}.admin-sync.connected>i{background:#68dda4;box-shadow:0 0 8px #68dda4}.admin-sync b,.admin-sync small{display:block}.admin-sync b{font-size:9px}.admin-sync small{color:#655e6e;margin-top:4px;font-size:7px}.admin-logout{color:#6d6677;cursor:pointer;background:0 0;border:0;margin-top:9px;padding:10px;font-size:9px}.admin-content{background:radial-gradient(circle at 80% 0,#1b112c55,#0000 33%);min-width:0;padding:0 34px 35px}.admin-topbar{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;height:96px;display:flex}.admin-topbar small{color:#6f6879;letter-spacing:.12em;font-size:8px}.admin-topbar h1{margin:6px 0 0;font-size:23px}.admin-topbar a{color:#b4a7c6;border:1px solid #342c40;border-radius:7px;padding:10px 14px;font-size:9px;text-decoration:none}.admin-stats{grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0;display:grid}.admin-stats article{background:#100d16;border:1px solid #ffffff0d;border-radius:10px;padding:17px 18px}.admin-stats span,.admin-stats small{color:#716a79;font-size:8px;display:block}.admin-stats b{margin:7px 0 5px;font-size:26px;font-weight:400;display:block}.admin-stats small{color:#4f4956;font-size:7px}.admin-notice{color:#ffc883;background:#2f2415;border:1px solid #624b29;border-radius:7px;margin-bottom:14px;padding:11px 14px;font-size:9px}.admin-notice.success{color:#74dfa8;background:#12271e;border-color:#28523e}.admin-notice button{float:right;color:inherit;cursor:pointer;background:0 0;border:0}.admin-card{background:#100d16;border:1px solid #ffffff0e;border-radius:12px;overflow:hidden}.admin-card-title{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;min-height:76px;padding:17px 19px;display:flex}.admin-card-title h2{margin:0 0 5px;font-size:15px}.admin-card-title p{color:#686171;margin:0;font-size:8px}.admin-card-title>button{color:#fff;cursor:pointer;background:#302343;border:1px solid #684f8e;border-radius:7px;padding:10px 13px;font-size:9px}.admin-card-title>button:disabled{opacity:.35}.admin-prize-table,.winner-table{min-width:760px}.table-head,.admin-prize-row,.winner-row{align-items:center;column-gap:12px;display:grid}.admin-prize-table .table-head,.admin-prize-row{grid-template-columns:1.25fr 1.25fr 150px 1fr 28px}.winner-table .table-head,.winner-row{grid-template-columns:130px 1.2fr 100px 1fr 1.2fr}.table-head{color:#585260;letter-spacing:.08em;background:#0c0a10;padding:11px 18px;font-size:7px}.admin-prize-row,.winner-row{border-top:1px solid #ffffff09;padding:12px 18px}.admin-prize-row input{color:#dcd6e7;background:#0b0910;border:1px solid #2b2532;border-radius:6px;outline:none;min-width:0;padding:9px 10px;font-size:9px}.admin-prize-row input:focus{border-color:#7154a6}.prize-name-field{grid-template-columns:5px 23px 1fr;align-items:center;gap:7px;display:grid}.prize-name-field>i{border-radius:4px;width:4px;height:25px;box-shadow:0 0 7px}.prize-name-field>small{color:#655d6f;font-size:8px}.quota-stepper{grid-template-columns:28px 1fr 28px;display:grid}.quota-stepper button{color:#92899f;cursor:pointer;background:#16111f;border:1px solid #30283a;padding:0}.quota-stepper button:first-child{border-radius:6px 0 0 6px}.quota-stepper button:last-child{border-radius:0 6px 6px 0}.quota-stepper input{text-align:center;border-radius:0}.row-delete{color:#7c6d7d;cursor:pointer;background:0 0;border:0;width:26px;height:26px;font-size:16px}.admin-savebar{background:#0c0a10;border-top:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding:15px 18px;display:flex}.admin-savebar p{margin:0}.admin-savebar b,.admin-savebar span{display:block}.admin-savebar b{color:#978aa5;font-size:8px}.admin-savebar span{color:#56505c;margin-top:4px;font-size:7px}.admin-savebar button{color:#fff;cursor:pointer;background:linear-gradient(120deg,#7355d8,#9775ed);border:1px solid #bcaaff;border-radius:7px;padding:11px 18px;font-size:9px}.admin-loading{color:#777080;text-align:center;padding:80px}.winner-search{color:#736b80;background:#0b0910;border:1px solid #2b2532;border-radius:7px;gap:6px;width:230px;padding:8px 10px;display:flex}.winner-search input{color:#dcd6e7;background:0 0;border:0;outline:none;width:100%;font-size:8px}.winner-row{color:#aaa2b1;min-height:56px;font-size:9px}.winner-row time{color:#655f6d;font-size:8px}.winner-row b{color:#cbbaf6;font-weight:500}.winner-row code{color:#9a8ab5;background:#21192d;border-radius:4px;width:fit-content;padding:4px 7px;font-size:8px}.empty-winners{text-align:center;color:#554e5d;padding:75px}.empty-winners span{font-size:28px;display:block}.empty-winners b{color:#82798e;margin-top:12px;font-size:11px;display:block}.empty-winners p{font-size:8px}@media (max-width:1000px){.admin-shell{grid-template-columns:190px 1fr}.admin-content{padding:0 20px 25px;overflow-x:auto}.admin-stats{grid-template-columns:repeat(2,1fr)}}@media (max-width:680px){.admin-shell{display:block}.admin-sidebar{grid-template-columns:1fr auto;align-items:center;min-height:auto;padding:17px;display:grid}.admin-sidebar nav{grid-column:1/-1;grid-template-columns:1fr 1fr;margin-top:18px}.admin-sync,.admin-logout{display:none}.admin-content{padding:0 13px 20px}.admin-topbar{height:83px}.admin-topbar a{font-size:0}.admin-topbar a:after{content:"前台 ↗";font-size:9px}.admin-stats{gap:8px}.admin-stats article{padding:13px}.admin-card{overflow-x:auto}.admin-card-title,.admin-savebar{min-width:calc(100vw - 28px);position:sticky;left:0}}.app-shell{background:#1d1b20;min-height:100svh}.app-shell:before{content:"";pointer-events:none;background:radial-gradient(circle at 50% 48%,#ffffff06,#0000 45%),linear-gradient(120deg,#ffffff05,#0000 40%);position:fixed;inset:0}.app-shell .noise{opacity:.06}.app-shell .topbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;grid-template-columns:1fr auto auto;gap:36px;height:88px;padding:0 46px;position:absolute;inset:0 0 auto}.app-shell .top-actions{align-items:center;gap:13px;display:flex}.app-shell .stage-control-toggle{color:#77747b;cursor:pointer;letter-spacing:.08em;background:#ffffff06;border:1px solid #ffffff14;border-radius:5px;padding:7px 10px;font-size:8px;transition:all .2s}.app-shell .stage-control-toggle:hover{color:#e4e2e5;border-color:#ffffff3d}.app-shell .brand-mark{color:#d9d7da;box-shadow:none;border-color:#77747a}.app-shell .brand b{color:#d7d4d8;letter-spacing:.17em;font-weight:400}.app-shell .brand small{color:#77747a}.app-shell .event-title{color:#77747b;text-align:right}.app-shell .event-title span{color:#aaa7ac}.app-shell .sync-status{color:#77747b}.app-shell .sync-status i{background:#a6a4a8;box-shadow:0 0 8px #fff6}.app-shell .stage{min-height:100svh;display:block}.app-shell .universe{width:100%;min-height:100svh;overflow:hidden}.app-shell .universe:before{opacity:.035;background-size:53px 53px}.app-shell .planet{background:radial-gradient(circle at 42% 39%,#ffffff0b,#ffffff03 44%,#0000001f 72%);border-color:#ffffff29;width:min(55vw,630px);box-shadow:inset 0 0 75px #ffffff09,0 0 75px #ffffff06}.app-shell .planet:before,.app-shell .planet:after{display:none}.three-name-sphere{border-radius:50%;position:absolute;inset:-11%;overflow:visible}.three-name-sphere canvas{filter:grayscale();width:100%;height:100%;transition:filter .3s,opacity .3s;display:block}.app-shell .planet-grid{opacity:.13;background:repeating-radial-gradient(#0000 0 34px,#d8d6da 35px 36px),repeating-linear-gradient(73deg,#0000 0 78px,#d8d6da 79px 80px);inset:2%;-webkit-mask-image:radial-gradient(circle,#000 0 69%,#0000 71%);mask-image:radial-gradient(circle,#000 0 69%,#0000 71%)}.app-shell .network-lines{opacity:.13;background:repeating-linear-gradient(21deg,#0000 0 39px,#fff 40px 41px,#0000 42px 75px),repeating-linear-gradient(151deg,#0000 0 47px,#fff 48px 49px,#0000 50px 94px),repeating-linear-gradient(82deg,#0000 0 68px,#fff 69px 70px,#0000 71px 112px);border-radius:50%;position:absolute;inset:4%;overflow:hidden;-webkit-mask-image:radial-gradient(circle,#000 0 68%,#0000 72%);mask-image:radial-gradient(circle,#000 0 68%,#0000 72%)}.app-shell .core-glow{opacity:.18;filter:blur(18px);background:radial-gradient(circle,#fff4,#0000 68%)}.app-shell .people-cloud{animation:26s linear infinite orbitSphere}.app-shell .person-name{color:#bdbbc0;opacity:.8;text-shadow:0 0 7px #fff5;font-weight:400;animation:26s linear infinite counterOrbit,4.2s ease-in-out infinite nameGlow}.app-shell .person-name:nth-child(3n){color:#f2f1f3;font-weight:600}.app-shell .person-name:nth-child(5n){color:#78767b;font-size:9px!important}.app-shell .person-name:nth-child(7n){color:#fff;font-size:17px!important}.app-shell .halo-one{border-color:#ffffff09;width:min(62vw,700px)}.app-shell .halo-two{border-color:#ffffff05;width:min(70vw,800px)}.app-shell .orbital-ring{width:min(58vw,670px);box-shadow:none;border-color:#ffffff12}.app-shell .ring-b{opacity:.3}.app-shell .stage-caption{opacity:.75;bottom:105px}.app-shell .stage-caption span{color:#716f74}.app-shell .stage-caption h1{color:#e2e0e3;font-size:17px;font-weight:400}.app-shell .stage-caption p{color:#77747a}.app-shell .left-rail{z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;pointer-events:none;background:#141316bd;border:1px solid #ffffff0f;border-radius:10px;width:180px;padding:18px;transition:opacity .3s,transform .3s;position:absolute;top:50%;left:28px;transform:translateY(-42%)translate(-18px)}.app-shell.controls-open .left-rail{opacity:.96;pointer-events:auto;transform:translateY(-42%)translate(0)}.app-shell .attendance-number{font-size:38px}.app-shell .ghost-button{display:none}.app-shell .right-panel{z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;pointer-events:none;background:#141316bd;border:1px solid #ffffff0f;border-radius:10px;width:255px;padding:15px;transition:opacity .3s,transform .3s;position:absolute;top:50%;right:28px;transform:translateY(-42%)translate(18px)}.app-shell.controls-open .right-panel{opacity:.97;pointer-events:auto;transform:translateY(-42%)translate(0)}.app-shell .prize-card{background:#ffffff04;border-color:#ffffff0e}.app-shell .prize-card.selected{background:#ffffff0d;border-color:#ffffff2b;box-shadow:inset 2px 0 #d0cdd2}.app-shell .prize-index{color:#aaa7ad}.app-shell .control-bar{opacity:.18;background:linear-gradient(#0000,#0c0b0dc2);border:0;grid-template-columns:1fr 250px 1fr;height:90px;transition:opacity .3s,transform .3s;position:absolute;bottom:0;left:0;right:0;transform:translateY(22px)}.app-shell .control-bar:hover,.app-shell.controls-open .control-bar{opacity:1;transform:translateY(0)}.app-shell .draw-button{background:linear-gradient(120deg,#4b494d,#767379);border-color:#d4d1d5;height:48px;box-shadow:0 0 26px #ffffff12,inset 0 1px #fff5}.app-shell .draw-button:hover{filter:brightness(1.25)}.app-shell .is-drawing .planet{filter:brightness(1.55)blur(.25px);animation:.42s ease-in-out infinite alternate drawPulse}.app-shell .is-drawing .three-name-sphere canvas{filter:grayscale()brightness(1.3)}.app-shell .is-drawing .people-cloud{animation-duration:.62s}.app-shell .is-drawing .person-name{text-shadow:0 0 13px #fff;animation-duration:.62s,.2s}.app-shell .is-drawing .network-lines{opacity:.34;animation:.18s linear infinite alternate streakFlash}.app-shell .is-drawing .orbital-ring{border-color:#ffffff50;animation:.45s linear infinite spinRing}.app-shell .shooting-name{color:#fff;text-shadow:0 0 25px #fff,0 0 70px #fff7;font-size:60px}.app-shell .winner-overlay{background:radial-gradient(circle,#3e3c41fa,#0e0d0ffc 64%)}.app-shell .winner-overlay h2{color:#dad7dc;font-weight:300}.app-shell .winner-cards article{background:linear-gradient(145deg,#ffffff21,#ffffff09);border-color:#ffffff38}.app-shell .winner-cards article>span{color:#fff;text-shadow:0 0 15px #fff}.app-shell .confetti i{background:#d7d4d9}.app-shell .confetti i:nth-child(3n){background:#77747a}.app-shell .confetti i:nth-child(4n){background:#fff}.app-shell .saved-note{color:#aaa7ac}@keyframes orbitSphere{to{transform:rotate(360deg)}}@keyframes counterOrbit{0%{transform:translate(-50%,-50%)rotate(0)}to{transform:translate(-50%,-50%)rotate(-360deg)}}@keyframes drawPulse{0%{transform:scale(.99)}to{transform:scale(1.015)}}@keyframes streakFlash{to{opacity:.12;transform:rotate(2deg)scale(1.03)}}@media (max-width:850px){.app-shell .topbar{padding:0 18px}.app-shell .planet{width:min(92vw,650px)}.app-shell .left-rail{opacity:.18;width:150px;top:92px;left:14px;transform:none}.app-shell .right-panel{opacity:.18;width:205px;top:92px;right:14px;transform:none}.app-shell .control-bar{grid-template-columns:1fr 190px;position:fixed}}@media (max-width:560px){.app-shell .sync-status,.app-shell .right-panel,.app-shell .left-rail{display:none}.app-shell .planet{width:106vw}.app-shell .stage-caption{bottom:115px}}
