:root{--bg:#000;--panel:#0e0e0e;--panel-2:#161616;--border:#2a2a2a;--border-bright:#3a3a3a;--red:#ff2a2a;--red-dim:#a01a1a;--green:#39ff39;--green-dim:#1faa1f;--text:#f5f5f5;--muted:#8a8a8a;--font-pixel:"Press Start 2P", ui-monospace, Menlo, Consolas, monospace;--font-readable:"VT323", ui-monospace, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-readable);-webkit-font-smoothing:none;image-rendering:pixelated;margin:0;font-size:20px}h1,h2,h3,h4,nav a,button,.btn,.cta-label,.brand,.pill{font-family:var(--font-pixel);letter-spacing:1px;text-transform:uppercase}.app{flex-direction:column;min-height:100%;display:flex}.nav{border-bottom:2px solid var(--red-dim);background:#000;align-items:center;gap:16px;padding:14px 18px;display:flex}.brand{color:var(--red);text-shadow:2px 2px #300;font-size:18px}.nav nav{flex-wrap:wrap;flex:1;gap:12px;margin-left:12px;display:flex}.nav nav a{color:var(--text);border:2px solid var(--border);background:var(--panel);padding:8px 10px;font-size:10px;text-decoration:none}.nav nav a:hover{border-color:var(--red);color:var(--red)}.nav nav a.active{border-color:var(--red);color:var(--red);background:#1a0505}.user{align-items:center;gap:10px;display:flex}.status-chip{border:2px solid var(--border);background:var(--panel);font-family:var(--font-pixel);letter-spacing:1px;color:var(--text);align-items:center;gap:10px;padding:6px 12px;font-size:10px;text-decoration:none;display:inline-flex;box-shadow:3px 3px #000}.status-chip .status-label{color:var(--muted)}.status-chip .status-time{color:var(--text);font-size:12px}.status-chip.stage-submit{border-color:var(--accent)}.status-chip.stage-submit .status-label{color:#6d8cff}.status-chip.stage-r1{border-color:var(--green-dim)}.status-chip.stage-r1 .status-label{color:var(--green)}.status-chip.stage-r2{border-color:var(--red);animation:1.4s ease-in-out infinite pulse}.status-chip.stage-r2 .status-label{color:var(--red)}.status-chip.stage-ended{border-color:var(--red);color:var(--red);background:#1a0303;animation:1.6s ease-in-out infinite pulse}.status-chip.stage-ended:hover{color:var(--text);background:#2a0404}.status-chip.stage-standby{border-color:var(--border)}.status-chip.expired .status-time{color:var(--red);animation:1s step-end infinite blink}@keyframes pulse{50%{box-shadow:0 0 12px #ff2a2a59,3px 3px #000}}.signed-in{border:2px solid var(--border);background:var(--panel);text-align:right;font-family:var(--font-pixel);padding:6px 12px;font-size:10px;line-height:1.6}.signed-in .label{color:#bbb;font-size:8px;display:block}.signed-in .name{color:var(--red)}.signed-in .role{color:var(--green)}.pill{border:1px solid var(--green);color:var(--green);margin-left:4px;padding:2px 6px;font-size:8px;display:inline-block}.content{width:100%;max-width:960px;margin:0 auto;padding:24px}.card{background:var(--panel);border:2px solid var(--border);margin-bottom:16px;padding:20px;box-shadow:4px 4px #000}button,.btn{color:var(--text);border:2px solid var(--border-bright);cursor:pointer;background:#0a0a0a;padding:12px 18px;font-size:11px;font-weight:400;text-decoration:none;transition:none;display:inline-block;box-shadow:3px 3px #000}button:hover,.btn:hover{border-color:var(--red);color:var(--red)}button:active,.btn:active{transform:translate(2px,2px);box-shadow:1px 1px #000}button:disabled{opacity:.4;cursor:not-allowed;border-color:var(--border);color:var(--muted)}button.danger{border-color:var(--red-dim);color:var(--red)}button.danger:hover{border-color:var(--red);background:#1a0505}input,textarea{color:var(--text);border:2px solid var(--border);font-size:18px;font-family:var(--font-readable);background:#000;width:100%;padding:10px 12px}input:focus,textarea:focus{border-color:var(--red);outline:none}input[type=file]{font-family:var(--font-readable);padding:8px}label>span{font-family:var(--font-pixel);color:#ccc;font-size:10px;display:block}.muted{color:var(--muted)}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.home{flex-direction:column;align-items:center;gap:28px;padding-top:36px;display:flex}.home-logo{font-size:64px;line-height:1}.home-title{font-family:var(--font-pixel);color:var(--text);text-shadow:4px 4px 0 var(--red-dim);text-align:center;margin:0;font-size:40px}.home-sub{color:var(--muted);text-align:center;max-width:560px;margin:0;font-size:18px;line-height:1.5}.home-cta{flex-direction:column;gap:14px;width:min(420px,100%);margin-top:8px;display:flex}.cta-card{text-align:center;border:2px solid var(--border-bright);background:var(--panel);width:100%;color:var(--text);font-family:var(--font-pixel);padding:18px 20px;font-size:16px;text-decoration:none;display:block;box-shadow:4px 4px #000}.cta-card:hover{border-color:var(--red);color:var(--red)}.cta-desc{color:var(--muted);font-family:var(--font-readable);text-transform:none;letter-spacing:0;margin-top:6px;font-size:14px;display:block}.home-login{text-align:center;padding-top:8px}.admin-stats{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin:8px 0;display:grid}.stat-box{border:2px solid var(--border);background:#000;padding:10px 12px}.stat-label{font-family:var(--font-pixel);color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:6px;font-size:9px}.stat-value{font-family:var(--font-pixel);color:var(--red);font-size:18px}.stat-aux{font-family:var(--font-readable);color:var(--muted);margin-top:4px;font-size:13px}.submitter{background:var(--panel-2);border:2px solid var(--border);align-items:center;gap:10px;width:fit-content;padding:6px 10px;display:flex}.submitter img{border:1px solid var(--border-bright);border-radius:0;width:28px;height:28px}.submitter .name{font-size:12px;line-height:1.2;font-family:var(--font-pixel)}.submitter .artist{color:var(--red)}.submitter .handle{color:var(--muted);margin-top:2px;font-size:9px}.banner{font-family:var(--font-pixel);justify-content:space-between;align-items:center;padding:10px 16px;font-size:11px;display:flex}.banner.error{color:var(--red);border-bottom:2px solid var(--red-dim);background:#200}.gallery{flex-direction:column;gap:14px;display:flex}.vote-card{background:var(--panel);border:2px solid var(--border);flex-direction:column;gap:10px;padding:16px;display:flex;box-shadow:4px 4px #000}.vote-card .head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.vote-title{font-family:var(--font-pixel);margin:0;font-size:14px}.vote-title .artist{color:var(--red)}.vote-actions{align-items:center;gap:8px;display:flex}.vote-btn{min-width:80px;padding:10px 14px;font-size:14px}.vote-btn.up.active{border-color:var(--green);color:var(--green);background:#031a03}.vote-btn.down.active{border-color:var(--red);color:var(--red);background:#1a0303}.vote-score{font-family:var(--font-pixel);color:var(--muted);text-align:center;flex-direction:column;gap:10px;min-width:68px;font-size:12px;display:flex}.vote-score .delta{color:var(--text);font-size:16px}.vote-score .breakdown{font-size:9px}.rating-row{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.rating-btn{width:42px;color:var(--muted);border-color:var(--border);padding:8px 0;font-size:18px}.rating-btn.active{color:var(--green);border-color:var(--green);background:#031a03}.rating-btn:hover:not(:disabled){color:var(--red);border-color:var(--red)}.dq-row{border-top:1px dashed var(--border);align-items:center;gap:14px;margin-top:8px;padding-top:10px;display:flex}.dq-meter{flex-direction:column;flex:1;gap:4px;display:flex}.dq-label{font-family:var(--font-pixel);color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-size:9px}.dq-count{font-family:var(--font-pixel);color:var(--red);font-size:11px}.dq-bar{border:1px solid var(--border);background:#1a0303;height:6px}.dq-fill{background:var(--red);height:100%;transition:width .4s ease-out}.dq-btn{padding:8px 12px;font-size:10px}.dq-btn.active{border-color:var(--red);color:var(--red);background:#1a0303}.timer-row{border:2px solid var(--border);background:#000;flex-direction:column;gap:8px;padding:10px;display:flex}.timer-info{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.timer-label{font-family:var(--font-pixel);color:var(--text);font-size:11px}.timer-when{color:var(--muted);flex-wrap:wrap;gap:8px;font-size:13px;display:flex}.timer-ok{color:var(--green)}.timer-expired{color:var(--red)}.mod-btn{border-color:var(--red-dim);color:var(--red);padding:6px 10px;font-size:10px}.mod-btn:hover:not(:disabled){border-color:var(--red);background:#1a0303}.danger-zone{border-color:var(--red-dim)}.danger-zone:hover{border-color:var(--red)}.winner-hero{background:var(--panel);border:2px solid var(--red);text-align:center;padding:32px 20px;animation:.6s cubic-bezier(.2,.8,.2,1) both winnerPop;box-shadow:0 0 0 4px #000,0 0 40px #ff2a2a40}@keyframes winnerPop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.winner-trophy{margin-bottom:8px;font-size:64px;line-height:1}.winner-label{font-family:var(--font-pixel);letter-spacing:4px;color:var(--green);margin-bottom:16px;font-size:14px;animation:1.2s step-end infinite blink}@keyframes blink{50%{opacity:.4}}.winner-name{font-family:var(--font-pixel);color:var(--red);text-shadow:3px 3px #000;font-size:28px}.winner-handle{color:var(--muted);font-family:var(--font-pixel);margin-top:4px;font-size:10px}.winner-title{color:var(--text);margin:14px 0;font-size:20px}.winner-avatar{margin:12px 0}.winner-avatar img{border:3px solid var(--red);width:128px;height:128px;image-rendering:pixelated}.winner-hero audio{max-width:480px;margin:8px auto 16px;display:block}.winner-score{font-family:var(--font-pixel);color:var(--green);margin-top:8px;font-size:11px}.podium{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=600px){.podium{grid-template-columns:1fr}}.podium-card{background:var(--panel);border:2px solid var(--border);text-align:center;padding:18px;box-shadow:4px 4px #000}.podium-card.place-2{border-color:silver}.podium-card.place-3{border-color:#cd7f32}.podium-place{font-family:var(--font-pixel);color:var(--text);font-size:16px}.podium-card.place-2 .podium-place{color:#e8e8e8}.podium-card.place-3 .podium-place{color:#cd7f32}.podium-title{margin:8px 0;font-size:16px}.podium-score{font-family:var(--font-pixel);color:var(--green);margin-bottom:12px;font-size:12px}.lb-table{flex-direction:column;display:flex}.lb-head,.lb-row{border-bottom:1px solid var(--border);grid-template-columns:48px 1fr 80px 80px;align-items:center;gap:10px;padding:10px 6px;display:grid}.lb-head{font-family:var(--font-pixel);color:var(--muted);text-transform:uppercase;letter-spacing:1px;border-bottom:2px solid var(--border);font-size:9px}.lb-rank{font-family:var(--font-pixel);color:var(--muted);font-size:11px}.lb-artist{font-family:var(--font-pixel);color:var(--red);font-size:11px}.lb-title{color:var(--text);margin-top:2px;font-size:14px}.lb-r1,.lb-r2{font-family:var(--font-pixel);color:var(--text);text-align:center;font-size:11px}.lb-row.finalist{background:#39ff390a}.lb-row.winner{border-left:4px solid var(--red);background:#ff2a2a14;padding-left:10px}.lb-row.winner .lb-rank:before{content:"🏆 "}.cta-winner{border-color:var(--red);color:var(--red)}.cta-winner:hover{background:#1a0505}audio{border:2px solid var(--border);filter:invert(.92)hue-rotate(180deg);background:#1a1a1a;border-radius:0;width:100%;height:40px}
