:root{--bg-deep: #1f123e;--bg-violet: #340B77;--bg-plum: #58156e;--bg-pink: #a81d6c;--ink: #ffffff;--ink-dim: rgba(255, 255, 255, .72);--cyan: #00c4f9;--magenta: #d94ef0;--violet: #6d28e8;--amber: #f0b44a;--hub-a: #ff3d9a;--hub-b: #b428e0;--card: #2a1257;--radius: 22px;--font: "TikTok Sans", system-ui, -apple-system, sans-serif}@font-face{font-family:TikTok Sans;src:url(/fonts/TikTokSans.ttf) format("truetype-variations");font-weight:100 900;font-stretch:75% 125%;font-display:swap}*{box-sizing:border-box;margin:0}html,body,#root{height:100%}body{font-family:var(--font);color:var(--ink);background:linear-gradient(135deg,var(--bg-violet) 0%,var(--bg-deep) 100%);background-attachment:fixed;overflow:hidden;-webkit-font-smoothing:antialiased;user-select:none;-webkit-user-select:none}body:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(/images/bg_overlay.png);background-repeat:no-repeat;background-size:cover}:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.screen{position:relative;height:100%;display:flex;flex-direction:column;overflow:hidden}.screen.center{align-items:center;justify-content:center;font-size:1.1rem;color:var(--ink-dim)}.glow{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55;pointer-events:none;animation:drift 14s ease-in-out infinite alternate}.glow-a{width:60vmax;height:60vmax;left:-22vmax;top:8vmax;background:radial-gradient(circle,hsla(262,81%,53%,.55),transparent 65%)}.glow-b{width:48vmax;height:48vmax;right:-16vmax;bottom:-14vmax;background:radial-gradient(circle,rgba(65,30,152,.4),transparent 65%);animation-delay:-7s}@keyframes drift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(4vmax,-3vmax,0) scale(1.12)}}.topbar{position:absolute;top:0;left:0;right:0;padding:20px 28px;z-index:3}.logo{height:26px;display:block}.stage{flex:1;display:grid;grid-template-columns:55% 45%;align-items:center;min-height:0;z-index:1}.wheel-col{height:100%;display:flex;align-items:center;justify-content:center;min-width:0}.copy-col{padding:0 6vw 0 1vw;display:flex;flex-direction:column;align-items:flex-start;gap:14px}@media(orientation:portrait),(max-width:720px){.stage{grid-template-columns:1fr;grid-template-rows:auto 1fr;padding-top:64px}.copy-col{order:-1;align-items:center;text-align:center;padding:8px 24px 0}}.eyebrow{font-weight:700;font-stretch:90%;font-size:.82rem;letter-spacing:.34em;text-transform:uppercase;color:var(--cyan)}.title{display:flex;flex-direction:column;line-height:.92;text-transform:uppercase;font-weight:900;font-stretch:118%;font-size:clamp(3rem,7.2vw,6rem);letter-spacing:.01em;filter:drop-shadow(0 6px 0 rgba(27,8,56,.85)) drop-shadow(0 14px 30px rgba(0,0,0,.35))}.title-line{position:relative;background:linear-gradient(180deg,#ff6fd8,#d94ef0 48%,#7a2bea);-webkit-background-clip:text;background-clip:text;color:transparent}.title-line:before{content:attr(data-text);position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;-webkit-text-stroke:.13em #ffffff;color:#fff}.title-line:after{content:attr(data-text);position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.85) 50%,transparent 58%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 5.5s ease-in-out infinite}@keyframes shine{0%,62%{background-position:120% 0}86%,to{background-position:-40% 0}}.subtitle{font-size:clamp(1.05rem,1.8vw,1.4rem);font-weight:600;color:var(--ink);max-width:26ch}.hint{font-size:.95rem;color:var(--ink-dim)}.empty{color:var(--ink-dim);font-size:1.1rem;text-align:center;padding:0 32px}.wheel-wrap{position:relative;width:min(94%,86vh);aspect-ratio:1;display:flex;align-items:center;justify-content:center;animation:wheel-enter .9s cubic-bezier(.2,.9,.3,1.2) both}@keyframes wheel-enter{0%{transform:scale(.86);opacity:0}}.wheel-canvas{width:100%;height:100%;border-radius:50%;box-shadow:0 0 0 6px #ffffff0f,0 24px 70px #0a021e99,0 0 90px #d94ef040}.wheel-pointer{position:absolute;top:-1.5%;left:50%;width:9%;transform:translate(-50%);filter:drop-shadow(0 5px 8px rgba(10,2,30,.55));z-index:2}.wheel-hub{position:absolute;top:50%;left:50%;width:27%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;border:.35em solid rgba(255,255,255,.92);background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.42),transparent 46%),linear-gradient(160deg,var(--hub-a),var(--hub-b));color:#fff;font-family:var(--font);font-weight:900;font-stretch:108%;text-transform:uppercase;letter-spacing:.06em;font-size:clamp(.9rem,2.6vmin,1.5rem);cursor:pointer;box-shadow:0 10px 26px #b428e08c,inset 0 -6px 14px #3c055a73;transition:transform .15s ease,box-shadow .15s ease,filter .2s ease;animation:hub-pulse 2.4s ease-in-out infinite}.wheel-hub:hover:not(:disabled){transform:translate(-50%,-50%) scale(1.045)}.wheel-hub:active:not(:disabled){transform:translate(-50%,-50%) scale(.96)}.wheel-hub:disabled{cursor:default;filter:saturate(.55) brightness(.85);animation:none}@keyframes hub-pulse{0%,to{box-shadow:0 10px 26px #b428e08c,0 0 #ff5ac88c,inset 0 -6px 14px #3c055a73}55%{box-shadow:0 10px 26px #b428e08c,0 0 0 18px #ff5ac800,inset 0 -6px 14px #3c055a73}}.btn-primary,.btn-secondary{font-family:var(--font);font-weight:800;font-size:1.02rem;letter-spacing:.02em;padding:14px 30px;border-radius:999px;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,filter .2s ease}.btn-primary{border:none;color:#fff;background:linear-gradient(120deg,var(--hub-a),var(--hub-b) 85%);background-size:150% 100%;box-shadow:0 8px 24px #e0269c73}.btn-primary:hover{background-position:90% 0;transform:translateY(-1px)}.btn-primary:active{transform:translateY(1px) scale(.98)}.btn-secondary{border:2px solid var(--cyan);color:var(--cyan);background:transparent}.btn-secondary:hover{background:#00c4f91a}.admin-link{position:absolute;right:16px;bottom:12px;z-index:3;border:none;background:none;color:#ffffff59;font-family:var(--font);font-size:.8rem;letter-spacing:.08em;cursor:pointer;padding:8px 10px}.admin-link:hover{color:#ffffffb3}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:24px;background:#100626b8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:fade-in .25s ease both}.modal-card{width:min(440px,100%);background:radial-gradient(120% 90% at 50% -20%,rgba(217,78,240,.28),transparent 60%),var(--card);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);padding:34px 32px 30px;text-align:center;display:flex;flex-direction:column;gap:16px;box-shadow:0 30px 80px #05001499;animation:card-pop .42s cubic-bezier(.2,1.1,.3,1.15) both}@keyframes fade-in{0%{opacity:0}}@keyframes card-pop{0%{transform:translateY(26px) scale(.92);opacity:0}}.modal-card h2{font-size:2rem;font-weight:900;font-stretch:112%;text-transform:uppercase}.modal-prize{font-size:1.5rem;font-weight:800;color:var(--amber);text-transform:uppercase;letter-spacing:.03em}.modal-body{color:var(--ink-dim);font-size:1.02rem;line-height:1.5}.modal-card form{display:flex;flex-direction:column;gap:12px;text-align:left}.field-label{font-size:.86rem;font-weight:700;color:var(--ink-dim)}.modal-card input{font-family:var(--font);font-size:1.05rem;color:var(--ink);background:#0c04208c;border:2px solid rgba(255,255,255,.18);border-radius:14px;padding:13px 16px;transition:border-color .2s ease}.modal-card input:focus{outline:none;border-color:var(--cyan)}.modal-card input[aria-invalid=true]{border-color:#ff5d6e}.field-error{color:#ff8d99;font-size:.88rem}.disclaimer{color:#ffffff8c;font-size:.8rem;line-height:1.45}.consent{display:flex;gap:12px;align-items:flex-start;cursor:pointer;color:#ffffffb8;font-size:.85rem;line-height:1.45}.consent input{flex:0 0 auto;width:22px;height:22px;margin-top:1px;accent-color:var(--cyan);cursor:pointer}.modal-card .btn-primary{margin-top:4px}.modal-card .btn-primary:disabled{cursor:default;filter:saturate(.5) brightness(.8)}@media(prefers-reduced-motion:reduce){.glow,.title-line:after,.wheel-hub{animation:none}.wheel-wrap,.modal-backdrop,.modal-card{animation-duration:.01s}}.pin-card{gap:14px}.pin-shake{animation:admin-pin-shake .42s ease}@keyframes admin-pin-shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(3px)}30%,50%,70%{transform:translate(-7px)}40%,60%{transform:translate(7px)}}.admin-screen{padding:0}.admin-scroll{flex:1;min-height:0;overflow-y:auto;padding:24px 28px 32px;display:flex;flex-direction:column;gap:18px}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.admin-header h1{font-size:1.5rem;font-weight:900;font-stretch:112%;text-transform:uppercase;letter-spacing:.02em}.admin-alert{background:#ff5d6e24;border:1px solid rgba(255,93,110,.4);border-radius:14px;padding:12px 18px;color:#ff8d99;font-size:.9rem;line-height:1.5}.admin-card{background:radial-gradient(120% 90% at 50% -20%,rgba(217,78,240,.14),transparent 60%),var(--card);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);padding:22px 24px;display:flex;flex-direction:column;gap:14px}.admin-card h2{font-size:1.12rem;font-weight:800;font-stretch:108%}.admin-card-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.admin-hint{color:var(--ink-dim);font-size:.86rem;line-height:1.5}.admin-inline-message{color:var(--ink-dim);font-size:.86rem}.admin-textarea{width:100%;margin-top:12px;font-family:var(--font);font-size:1rem;line-height:1.5;color:var(--ink);background:#0c04208c;border:2px solid rgba(255,255,255,.18);border-radius:14px;padding:13px 16px;resize:vertical;transition:border-color .2s ease}.admin-textarea:focus{outline:none;border-color:var(--cyan)}.logo-preview{display:flex;align-items:center;justify-content:center;min-height:88px;padding:20px;margin-top:12px;background:var(--bg-deep);border:1px solid rgba(255,255,255,.12);border-radius:14px}.logo-preview img{max-height:52px;max-width:80%;object-fit:contain}.logo-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px}.logo-upload,.file-input-btn{display:inline-flex;align-items:center;cursor:pointer}.logo-upload input,.file-input-btn input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.config-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px}.publish-block{margin-top:22px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12)}.publish-block h3{font-size:1rem;font-weight:800;margin-bottom:8px}.admin-hint code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82em;color:var(--cyan)}.admin-card input[type=text],.admin-card input[type=number]{font-family:var(--font);font-size:1rem;color:var(--ink);background:#0c04208c;border:2px solid rgba(255,255,255,.18);border-radius:12px;padding:10px 14px;transition:border-color .2s ease}.admin-card input[type=text]:focus,.admin-card input[type=number]:focus{outline:none;border-color:var(--cyan)}.admin-card input[aria-invalid=true]{border-color:#ff5d6e}.reward-list{display:flex;flex-direction:column;gap:12px}.reward-row{background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:opacity .2s ease}.reward-row-disabled{opacity:.6}.reward-row-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.reward-label-input{flex:1 1 200px;min-width:0}.reward-weight-input{width:84px;text-align:center;flex:0 0 auto}.reward-row-errors{display:flex;flex-direction:column;gap:2px}.reward-row-sub{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.reward-row-delete{margin-left:auto}.admin-add-btn{align-self:flex-start}.swatches{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.swatch{width:28px;height:28px;border-radius:50%;border:2px solid rgba(255,255,255,.3);padding:0;cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.swatch:hover{transform:scale(1.08)}.swatch-active{border-color:#fff;box-shadow:0 0 0 3px #ffffff59}.swatch-custom{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:28px;height:28px;border-radius:50%;border:2px dashed rgba(255,255,255,.45);padding:0;background:transparent;cursor:pointer}.swatch-custom::-webkit-color-swatch-wrapper{padding:0;border-radius:50%;overflow:hidden}.swatch-custom::-webkit-color-swatch{border:none;border-radius:50%}.toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.toggle-track{position:relative;width:38px;height:22px;border-radius:999px;background:#fff3;flex-shrink:0;transition:background .2s ease}.toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s ease}.toggle input:checked+.toggle-track:after{transform:translate(16px)}.toggle-label{font-size:.85rem;font-weight:600;color:var(--ink-dim)}.toggle input:focus-visible+.toggle-track{outline:3px solid var(--cyan);outline-offset:2px}.toggle-enabled{padding:6px 14px;border-radius:999px;background:#ffffff0f;border:1px solid rgba(255,255,255,.16)}.toggle-enabled .toggle-track{width:44px;height:25px}.toggle-enabled .toggle-track:after{width:21px;height:21px}.toggle-enabled input:checked+.toggle-track:after{transform:translate(19px)}.toggle-enabled input:checked+.toggle-track{background:linear-gradient(120deg,var(--cyan),var(--magenta))}.toggle-enabled .toggle-label{font-size:.9rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--ink)}.toggle-nowin input:checked+.toggle-track{background:var(--amber)}.toggle-collect input:checked+.toggle-track{background:var(--cyan)}.btn-inline,.btn-inline-danger{font-family:var(--font);font-size:.84rem;font-weight:700;padding:7px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:transparent;color:var(--ink-dim);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.btn-inline:hover{background:#ffffff1a;color:var(--ink)}.btn-inline-danger{border-color:#ff5d6e80;color:#ff8d99}.btn-inline-danger:hover{background:#ff5d6e29}.confirm-inline{display:inline-flex;align-items:center;gap:8px;font-size:.86rem;color:var(--ink-dim)}.confirm-inline-block{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.confirm-inline-actions{display:flex;gap:10px}.entries-table-wrap{overflow-x:auto;border-radius:12px;border:1px solid rgba(255,255,255,.14)}.entries-table{width:100%;border-collapse:collapse;font-size:.9rem}.entries-table th,.entries-table td{padding:10px 14px;text-align:left;white-space:nowrap}.entries-table th:last-child,.entries-table td:last-child{white-space:normal;word-break:break-all}.entries-table thead{background:#ffffff14}.entries-table tbody tr:nth-child(2n){background:#ffffff08}.admin-save-bar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 28px;background:#0f0624e0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid rgba(255,255,255,.14);z-index:2}.admin-save-status{display:flex;flex-direction:column;gap:2px;font-size:.85rem;min-width:0}.admin-save-hint{color:var(--amber);font-weight:700}.admin-save-message-success{color:#8cffb0;font-weight:700}.admin-save-message-error{color:#ff8d99;font-weight:700}.admin-save-btn-pulse{animation:admin-save-pulse 1.6s ease-in-out infinite}@keyframes admin-save-pulse{0%,to{box-shadow:0 8px 24px #e0269c73}50%{box-shadow:0 8px 32px #e0269cd9,0 0 0 6px #e0269c2e}}@media(prefers-reduced-motion:reduce){.pin-shake,.admin-save-btn-pulse{animation:none}}@media(max-width:640px){.admin-scroll{padding:18px 16px 24px}.admin-save-bar{padding:12px 16px}.reward-row-delete{margin-left:0}}
