*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#0f0f12;color:#e8e8ea}a{color:#8ab4ff;text-decoration:none}button{cursor:pointer;border:none;background:#4a6cf7;color:#fff;padding:.6rem 1rem;border-radius:6px;font-size:1rem;font-weight:600}button:hover:not(:disabled){background:#3a5ce0}button:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:#2a2a32;color:#e8e8ea}.btn-secondary:hover{background:#3a3a42}.btn-danger{background:#c73e3e}.btn-danger:hover{background:#a32e2e}input[type=text],input[type=password],input[type=file]{width:100%;padding:.6rem .75rem;background:#1a1a20;border:1px solid #2a2a32;color:#e8e8ea;border-radius:6px;font-size:1rem}input:focus{outline:2px solid #4a6cf7;outline-offset:0}label{display:block;margin-bottom:.75rem;font-size:.9rem;color:#b0b0b8}label input{margin-top:.25rem}.center-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.card{background:#17171d;border:1px solid #24242c;border-radius:10px;padding:1.5rem;margin-bottom:1rem;max-width:720px;width:100%}.card h1,.card h2{margin-top:0}.muted{color:#8a8a92;font-size:.9rem}.error{background:#3a1a1a;border:1px solid #c73e3e;padding:.6rem .75rem;border-radius:6px;margin-top:.75rem;color:#ff9a9a}.success{background:#1a3a1a;border:1px solid #3ec750;padding:.6rem .75rem;border-radius:6px;margin-top:.75rem;color:#9affa0}.page{max-width:900px;margin:0 auto;padding:1.5rem}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.topbar nav{display:flex;gap:.5rem}.topbar h1{margin:0}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.row input[type=file]{flex:1;min-width:200px}.grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem}.grid li{padding:.5rem .75rem;background:#1a1a20;border-radius:6px}ol{padding-left:1.5rem}ol li{margin-bottom:.4rem}.raffle-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem 2rem 8rem;gap:1.5rem;position:relative}.raffle-stage.ready-screen{padding:2rem}.confetti-canvas{position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:50}.ready-screen .ready-title{font-size:clamp(3rem,10vw,7rem);margin:0;letter-spacing:.05em;font-weight:900}.logo-row{display:flex;gap:3rem;align-items:center;justify-content:center;margin-bottom:1rem}.logo-slot{width:160px;height:160px;border:2px dashed #3a3a42;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#55555c;font-size:.9rem;letter-spacing:.05em;text-transform:uppercase;background:#13131a}.logo-slot.small{width:90px;height:90px;font-size:.7rem}.stage-header{display:flex;justify-content:center;align-items:center;gap:min(60vw,720px);margin-bottom:-.5rem}.fullscreen-btn{margin-top:.5rem}.fullscreen-btn-corner{position:absolute;top:1.5rem;right:50%;transform:translate(50%);font-size:.85rem;padding:.4rem .8rem;opacity:.6}.fullscreen-btn-corner:hover{opacity:1}.winners-banner{position:fixed;left:0;right:0;bottom:0;background:linear-gradient(180deg,#d8d8dc,#b8b8bc 40%,#9a9aa0 60%,#c8c8cc);border-top:3px solid #8e8e94;box-shadow:0 -8px 28px #0006;padding:1.25rem 2rem;display:flex;align-items:center;gap:1.25rem;z-index:10;overflow:hidden}.winners-label{color:#1a1a1a;font-weight:800;font-size:1.15rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.winners-scroll{display:flex;gap:.75rem;overflow-x:auto;flex:1;scrollbar-width:none}.winners-scroll::-webkit-scrollbar{display:none}.winner-chip{background:#1a1a1a;color:#f0f0f4;padding:.55rem 1.1rem;border-radius:999px;font-size:1.1rem;font-weight:600;white-space:nowrap;border:1px solid #6e1414}.winners-empty{color:#3a3a3a;font-style:italic}.raffle-window{width:min(90vw,900px);height:min(30vh,260px);background:#000;border:4px solid #333;border-radius:16px;box-shadow:inset 0 0 40px #000000e6,0 0 60px #4a6cf726;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.raffle-window:before,.raffle-window:after{content:"";position:absolute;left:0;right:0;height:40px;pointer-events:none;z-index:2}.raffle-window:before{top:0;background:linear-gradient(to bottom,#000,transparent)}.raffle-window:after{bottom:0;background:linear-gradient(to top,#000,transparent)}.slot{font-size:clamp(2.5rem,8vw,6rem);font-weight:800;color:#fff;text-align:center;padding:0 2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;transition:transform .2s ease}.slot.spinning .slot-text{animation:blur-flicker .08s infinite alternate}.slot.locked .slot-text{color:#ffd24a;text-shadow:0 0 20px rgba(255,210,74,.6),0 0 40px rgba(255,210,74,.3);animation:pop .5s ease-out}@keyframes blur-flicker{0%{filter:blur(1px);opacity:.85}to{filter:blur(0);opacity:1}}@keyframes pop{0%{transform:scale(.92)}60%{transform:scale(1.08)}to{transform:scale(1)}}.draw-button{font-size:1.5rem;padding:1rem 2.5rem;border-radius:999px;background:linear-gradient(180deg,#4a6cf7,#3a5ce0);box-shadow:0 6px 24px #4a6cf759;letter-spacing:.02em}.draw-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 28px #4a6cf773}
