@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap');
:root{--bg:#06090a;--bg2:#0b1011;--surface:rgba(14,19,20,.78);--surface2:#111718;--ink:#f2ede3;--muted:#9ea6a4;--dim:#68706f;--gold:#c5a565;--gold2:#e0c485;--cyan:#84c5c5;--line:rgba(226,214,187,.13);--line2:rgba(132,197,197,.16);--danger:#c85f5f;--success:#8bc5a0;--shadow:0 26px 80px rgba(0,0,0,.38);--serif:'Cormorant Garamond',Georgia,serif;--ui:'Inter',system-ui,-apple-system,Segoe UI,sans-serif;--container:min(1180px,calc(100vw - 40px));}
*{box-sizing:border-box}html{background:var(--bg);color-scheme:dark}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--ui);font-size:15px;line-height:1.6;min-height:100vh}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}.bg,.show-bg{position:fixed;inset:0;z-index:-3;background:linear-gradient(90deg,rgba(2,6,7,.96) 0%,rgba(4,9,10,.84) 35%,rgba(4,9,10,.28) 67%,rgba(3,7,8,.83) 100%),linear-gradient(180deg,rgba(1,4,5,.16),rgba(1,4,5,.94)),url('arena-bg.jpg') center/cover no-repeat}.grain{position:fixed;inset:0;z-index:-2;pointer-events:none;opacity:.22;background-image:radial-gradient(rgba(255,255,255,.035) .7px,transparent .7px);background-size:4px 4px;mix-blend-mode:soft-light}.topbar{height:84px;width:var(--container);margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:5}.brand{display:flex;align-items:center;gap:14px}.brand img{width:62px;height:auto;filter:drop-shadow(0 8px 20px rgba(0,0,0,.45))}.brand span{display:grid;line-height:1.2}.brand b{font-family:var(--serif);font-size:21px;font-weight:600;letter-spacing:.02em}.brand small{font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);margin-top:2px}.topbar nav{display:flex;align-items:center;gap:26px;color:#c5cbc8;font-size:12px}.topbar nav a,.link-btn{transition:color .2s ease}.topbar nav a:hover,.link-btn:hover{color:var(--ink)}.inline{display:inline;margin:0}.link-btn{border:0;background:transparent;color:#c5cbc8;padding:0}.shell,.admin-shell{width:var(--container);margin:auto}.hero{min-height:390px;display:flex;align-items:center;position:relative}.hero-copy{max-width:690px;padding:56px 0 38px}.eyebrow,.step,.event-kicker,.section-head span{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--gold2);font-weight:700}.pulse-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 5px rgba(139,197,160,.08);margin-right:10px}.hero h1{font-family:var(--serif);font-size:clamp(56px,6.2vw,92px);line-height:.88;margin:18px 0 22px;font-weight:600;letter-spacing:-.035em}.hero h1 em{font-style:normal;color:#d7ded9;font-weight:500}.hero p{max-width:620px;color:#b4bcba;font-size:16px;line-height:1.75}.hero-meta{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:27px;align-items:center;color:#99a3a0;font-size:12px}.hero-meta b{color:var(--ink);font-size:14px}.hero-meta code,.proof code{color:#cfc3a9;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.status{padding:7px 11px;border:1px solid var(--line);color:#d8dedb}.status-open{border-color:rgba(139,197,160,.32);color:#a8d9b8}.status-closed{border-color:rgba(197,165,101,.32);color:#d9bd84}.flash{width:var(--container);margin:0 auto 18px;padding:13px 16px;border-left:3px solid var(--gold);background:rgba(18,22,22,.92);box-shadow:var(--shadow)}.shell>.flash{width:100%}.flash.error{border-color:var(--danger);color:#f0c5c5}.flash.success{border-color:var(--success);color:#c8e7d3}.event-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(330px,.7fr);gap:22px;margin:14px 0 56px}.event-card,.join-card,.control-card{position:relative;background:linear-gradient(145deg,rgba(13,18,19,.86),rgba(8,12,13,.76));border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden}.event-card:before,.join-card:before,.control-card:before{content:'';position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,var(--gold),transparent 44%);opacity:.65}.event-card{padding:42px 44px}.event-card h2{font-family:var(--serif);font-size:45px;line-height:1;margin:8px 0 26px;font-weight:600}.event-card>p{color:#aab2b0;max-width:650px}.prize{margin:24px 0;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;gap:4px}.prize small,.facts small,.admin-stats small,.stage-stats small{color:var(--dim);text-transform:uppercase;letter-spacing:.14em;font-size:9px}.prize strong{font-family:var(--serif);font-size:32px;color:#e6d7b7;font-weight:600}.facts{display:grid;grid-template-columns:repeat(3,1fr);margin-top:28px}.facts>div{padding-right:18px}.facts>div+div{padding-left:18px;border-left:1px solid var(--line)}.facts b{display:block;font-size:13px;margin-top:4px}.join-card{padding:36px}.join-card h3{font-family:var(--serif);font-size:35px;line-height:1.05;margin:8px 0 13px}.join-card>p,.muted{color:#9fa8a5}.stack{display:grid;gap:14px}.stack label,.form-row label{display:grid;gap:6px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#9ea7a4}.stack input,.stack textarea,.stack select,.form-row input,.form-row select,.message-bar input{width:100%;background:#0a0e0f;border:1px solid rgba(227,216,191,.12);color:var(--ink);padding:12px 13px;outline:none;transition:border-color .2s,box-shadow .2s}.stack input:focus,.stack textarea:focus,.stack select:focus,.form-row input:focus,.form-row select:focus,.message-bar input:focus{border-color:rgba(197,165,101,.56);box-shadow:0 0 0 3px rgba(197,165,101,.07)}.primary,.danger,.draw-btn,.message-bar button{border:0;min-height:46px;padding:0 18px;font-weight:700;font-size:12px;letter-spacing:.02em}.primary{background:#d7d2c6;color:#0d1111}.primary:hover{background:#f1ece1}.danger{background:transparent;color:#e6bbbb;border:1px solid rgba(200,95,95,.35)}.draw-btn{background:linear-gradient(90deg,#a8874e,#d4b36d);color:#0b0d0d;box-shadow:0 10px 30px rgba(197,165,101,.16)}.as-link{display:inline-flex;align-items:center;justify-content:center}.characters{display:grid;gap:8px;margin-top:18px}.character{display:grid;grid-template-columns:auto 42px 1fr auto;align-items:center;gap:12px;border:1px solid var(--line);padding:9px 11px;cursor:pointer;background:rgba(255,255,255,.018);transition:.2s}.character:hover{border-color:rgba(197,165,101,.36);background:rgba(197,165,101,.04)}.character input{accent-color:#b89a5d}.character img{width:42px;height:42px;border-radius:50%;object-fit:cover}.character span{display:grid;line-height:1.25}.character span b{text-transform:none;font-size:13px;letter-spacing:0;color:var(--ink)}.character span small{color:var(--muted);font-size:10px;text-transform:none;letter-spacing:0;margin-top:3px}.character i{font-style:normal;color:var(--gold2);font-size:10px}.success-seal{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(139,197,160,.33);background:rgba(139,197,160,.05);margin-bottom:17px}.success-seal span{font-family:var(--serif);font-size:35px;color:#a8d9b8}.ticket{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;margin-top:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 0}.ticket span{color:var(--gold);font-weight:700}.ticket small{color:var(--dim)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}.section-head h2{font-family:var(--serif);font-size:38px;line-height:1;margin:4px 0 0;font-weight:600}.section-head>a{font-size:11px;color:#c2c9c6;border-bottom:1px solid var(--line);padding-bottom:3px}.roster,.winners{margin:20px 0 64px;padding-top:26px;border-top:1px solid var(--line)}.roster-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.roster-item{display:flex;align-items:center;gap:10px;padding:9px;background:rgba(10,14,15,.62);border:1px solid rgba(227,216,191,.07);min-width:0}.roster-item img{width:32px;height:32px;border-radius:50%;object-fit:cover}.roster-item span{display:grid;line-height:1.15;min-width:0}.roster-item b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roster-item small{font-size:9px;color:var(--dim);margin-top:4px}.roster-item.more{justify-content:center;color:var(--gold)}.winner-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.winner-list article{display:grid;grid-template-columns:36px 54px 1fr;gap:13px;align-items:center;padding:17px;border:1px solid var(--line);background:rgba(12,16,17,.75)}.winner-list article>b{font-family:var(--serif);font-size:20px;color:var(--gold)}.winner-list img{width:54px;height:54px;border-radius:50%}.winner-list article div{display:grid}.winner-list strong{font-family:var(--serif);font-size:23px}.winner-list small{color:var(--muted)}.proof{font-size:11px;color:var(--dim);margin-top:18px;word-break:break-all}.empty-state{min-height:440px;padding:70px 0}.empty-state>span{color:var(--gold);text-transform:uppercase;font-size:10px;letter-spacing:.15em}.empty-state h2{font-family:var(--serif);font-size:52px;max-width:620px;line-height:1;margin:10px 0}.empty-state p{color:var(--muted)}footer{width:var(--container);margin:50px auto 0;padding:26px 0 40px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#65706d;font-size:10px;text-transform:uppercase;letter-spacing:.12em}
/* Admin */
.admin-shell{padding:42px 0 80px}.admin-login,.setup-shell{max-width:680px;margin:8vh auto;padding:44px;border:1px solid var(--line);background:rgba(10,14,15,.89);box-shadow:var(--shadow)}.admin-login h1,.setup-shell h1{font-family:var(--serif);font-size:54px;margin:8px 0 12px;line-height:1}.admin-login p,.setup-shell p{color:var(--muted)}.narrow{max-width:430px}.admin-grid{display:grid;grid-template-columns:1.5fr .75fr;gap:20px}.control-card{padding:30px}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:22px 0}.admin-stats>div{padding:16px}.admin-stats>div+div{border-left:1px solid var(--line)}.admin-stats b,.admin-stats code{display:block;margin-top:4px}.actions{display:flex;gap:10px;flex-wrap:wrap}.actions form{margin:0}.message-bar{display:grid;grid-template-columns:1fr auto;margin-top:20px}.message-bar button{background:#1a2121;color:#dbe1de;border:1px solid var(--line)}.broadcast-tip{display:grid;grid-template-columns:auto 1fr;gap:12px;border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.broadcast-tip>span{color:var(--gold);font-size:10px;letter-spacing:.14em}.broadcast-tip p{margin:0;color:var(--muted);font-size:12px}.participants-admin{margin-top:20px}.admin-list{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.admin-list>div{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:10px;background:rgba(255,255,255,.018);border-bottom:1px solid rgba(255,255,255,.04)}.admin-list img{width:38px;height:38px;border-radius:50%}.admin-list span{display:grid;line-height:1.2}.admin-list span b{font-size:12px}.admin-list span small{font-size:9px;color:var(--dim)}.icon-danger{width:28px;height:28px;border:1px solid rgba(200,95,95,.2);background:transparent;color:#d78b8b}.form-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.setup-shell{max-width:820px}.setup-logo{width:86px}.setup-form{margin-top:25px}.setup-note{font-size:11px}.notice{border-left:2px solid var(--gold);padding:11px 12px;background:rgba(197,165,101,.04);color:#b8b2a6}
/* Show */
.show-page{overflow:hidden;background:#020405}.show-bg{z-index:-3;background:radial-gradient(circle at 50% 52%,rgba(23,36,36,.22),rgba(2,5,6,.78) 55%,rgba(1,3,4,.97)),url('arena-bg.jpg') center/cover no-repeat;transform:scale(1.02)}.show-vignette{position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 200px rgba(0,0,0,.75);z-index:-1}.show-header{height:100px;display:flex;align-items:center;gap:15px;padding:0 3.4vw;border-bottom:1px solid rgba(229,217,190,.12)}.show-header img{width:70px}.show-header>div:nth-child(2){display:grid;line-height:1.05}.show-header span{font-size:10px;text-transform:uppercase;letter-spacing:.17em;color:#9ba5a2}.show-header b{font-family:var(--serif);font-size:25px}.live-badge{margin-left:auto!important;display:flex!important;grid-auto-flow:column;align-items:center;gap:8px;color:#c5cbc8;font-size:10px;letter-spacing:.14em}.live-badge i{width:7px;height:7px;background:#cf645f;border-radius:50%;box-shadow:0 0 0 5px rgba(207,100,95,.08);animation:pulse 1.8s infinite}.stage{height:calc(100vh - 100px);display:grid;grid-template-columns:minmax(340px,.7fr) minmax(520px,1.3fr);align-items:center;padding:0 4vw 3vh;gap:3vw}.stage-copy{max-width:560px}.stage-copy h1{font-family:var(--serif);font-size:clamp(50px,5vw,78px);line-height:.94;margin:10px 0 17px;font-weight:600}.stage-copy>p{color:#a7b0ad;font-size:15px}.stage-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stage-stats>div{padding:14px 10px 14px 0}.stage-stats>div+div{padding-left:14px;border-left:1px solid var(--line)}.stage-stats b,.stage-stats code{display:block;margin-top:4px;color:#e2ded4}.show-message{min-height:28px;margin-top:18px;color:#d3be8f;font-family:var(--serif);font-size:22px}.wheel-zone{display:grid;grid-template-columns:minmax(420px,760px) 180px;align-items:center;justify-content:center;gap:26px}.wheel-wrap{position:relative;width:min(68vh,760px);aspect-ratio:1/1;filter:drop-shadow(0 34px 80px rgba(0,0,0,.48))}.wheel-wrap:before{content:'';position:absolute;inset:4%;border:1px solid rgba(224,196,133,.15);border-radius:50%;box-shadow:0 0 0 8px rgba(0,0,0,.14),inset 0 0 60px rgba(0,0,0,.5);pointer-events:none;z-index:2}.wheel-wrap canvas{width:100%;height:100%;display:block}.wheel-core{position:absolute;inset:50% auto auto 50%;width:120px;height:120px;transform:translate(-50%,-50%);border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#172020,#080b0c 65%);border:1px solid rgba(224,196,133,.35);box-shadow:0 0 0 8px rgba(2,5,6,.7),0 0 60px rgba(197,165,101,.1);z-index:3}.wheel-core img{width:74px}.wheel-pointer{position:absolute;left:50%;top:-6px;transform:translateX(-50%);z-index:5;width:0;height:0;border-left:18px solid transparent;border-right:18px solid transparent;border-top:38px solid var(--gold2);filter:drop-shadow(0 6px 9px rgba(0,0,0,.6))}.candidate{align-self:center;border-left:1px solid var(--line);padding-left:22px;display:grid}.candidate span{font-size:9px;text-transform:uppercase;letter-spacing:.16em;color:var(--dim)}.candidate b{font-family:var(--serif);font-size:30px;line-height:1;margin-top:5px;word-break:break-word}.candidate small{color:var(--gold);margin-top:6px}.winner-reveal{position:fixed;inset:0;z-index:20;background:rgba(2,4,5,.83);backdrop-filter:blur(9px);display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .55s}.winner-reveal.show{opacity:1;pointer-events:auto}.winner-card{position:relative;text-align:center;width:min(620px,88vw);padding:58px 30px 48px;border-top:1px solid rgba(224,196,133,.45);border-bottom:1px solid rgba(224,196,133,.25);background:radial-gradient(circle at 50% 40%,rgba(197,165,101,.12),rgba(10,14,15,.72) 55%,rgba(7,10,11,.88));overflow:hidden}.winner-card>span{font-size:11px;letter-spacing:.24em;color:var(--gold2);font-weight:700}.winner-card img{display:block;width:100px;height:100px;margin:24px auto 10px;border-radius:50%;filter:drop-shadow(0 0 26px rgba(197,165,101,.18))}.winner-card h2{font-family:var(--serif);font-size:72px;line-height:.9;margin:14px 0 8px}.winner-card p{font-size:14px;color:#b4bcba}.winner-proof{margin-top:24px;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#7f8986}.winner-rays{position:absolute;width:700px;height:700px;left:50%;top:30%;transform:translate(-50%,-50%);background:repeating-conic-gradient(from 0deg,rgba(197,165,101,.06) 0deg 3deg,transparent 3deg 17deg);mask:radial-gradient(circle,black,transparent 66%);animation:slowspin 24s linear infinite;pointer-events:none}.winner-card>*:not(.winner-rays){position:relative;z-index:2}
@keyframes pulse{50%{opacity:.45;transform:scale(.85)}}@keyframes slowspin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:1050px){.roster-grid{grid-template-columns:repeat(4,1fr)}.event-grid,.admin-grid{grid-template-columns:1fr}.admin-list{grid-template-columns:repeat(2,1fr)}.stage{grid-template-columns:1fr;padding-top:3vh;overflow:auto}.stage-copy{text-align:center;margin:auto}.stage-copy>p{margin-left:auto;margin-right:auto}.wheel-zone{grid-template-columns:minmax(360px,620px);}.candidate{display:none}.wheel-wrap{width:min(58vh,620px);margin:auto}.show-page{overflow:auto}}
@media(max-width:720px){:root{--container:min(100% - 26px,1180px)}.topbar{height:70px}.brand img{width:50px}.brand span{display:none}.topbar nav{gap:13px;font-size:10px}.topbar nav a:nth-child(1),.topbar nav a:nth-child(2){display:none}.hero{min-height:335px}.hero-copy{padding:44px 0 30px}.hero h1{font-size:52px}.hero p{font-size:14px}.hero-meta{gap:8px 14px}.event-grid{margin-top:4px}.event-card,.join-card,.control-card{padding:24px}.event-card h2{font-size:36px}.facts{grid-template-columns:1fr;gap:12px}.facts>div,.facts>div+div{padding:0;border:0}.roster-grid{grid-template-columns:repeat(2,1fr)}.section-head h2{font-size:32px}.form-row{grid-template-columns:1fr}.admin-stats{grid-template-columns:repeat(2,1fr)}.admin-stats>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.admin-stats>div:nth-child(4){border-top:1px solid var(--line)}.admin-list{grid-template-columns:1fr}.admin-login,.setup-shell{margin:18px 13px;padding:28px}.stage{height:auto;min-height:calc(100vh - 78px);grid-template-columns:1fr;padding:28px 16px 50px}.show-header{height:78px;padding:0 16px}.show-header img{width:50px}.show-header b{font-size:20px}.stage-copy h1{font-size:46px}.stage-stats{grid-template-columns:1fr}.stage-stats>div,.stage-stats>div+div{border-left:0;border-bottom:1px solid var(--line);padding:10px 0}.wheel-zone{grid-template-columns:1fr}.wheel-wrap{width:min(92vw,520px)}.wheel-core{width:88px;height:88px}.wheel-core img{width:55px}.winner-card h2{font-size:52px}footer{flex-direction:column;gap:8px}.winner-list{grid-template-columns:1fr}}
