:root{--bg-primary: #1a0a2e;--bg-secondary: #2d1b4e;--bg-card: #3d2b5e;--text-primary: #f5e6d3;--text-secondary: #c9a8e8;--accent-gold: #ffd700;--accent-red: #e63946;--accent-green: #2ecc71;--accent-blue: #4ecdc4;--border-radius: 12px;--shadow: 0 4px 20px rgba(0, 0, 0, .3)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow-x:hidden}.app{max-width:600px;margin:0 auto;padding:16px;padding-top:calc(16px + var(--discord-overlay-top, 0px));min-height:100vh;display:flex;flex-direction:column}.app-header{text-align:center;padding:12px 0}.app-header h1{font-size:1.8rem;background:linear-gradient(135deg,var(--accent-gold),var(--accent-red));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.app-main{flex:1;display:flex;flex-direction:column;gap:16px}.debug-banner{background:var(--accent-red);color:#fff;padding:4px 12px;border-radius:6px;font-size:.75rem;font-weight:700;margin-top:4px;display:inline-block}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.spinner{width:40px;height:40px;border:4px solid var(--bg-card);border-top-color:var(--accent-gold);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.letter-display{display:flex;gap:12px;justify-content:center;margin:20px 0}.letter-card{width:60px;height:72px;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:800;background:var(--bg-card);border:3px solid var(--text-secondary);border-radius:var(--border-radius);color:var(--text-primary);animation:letterReveal .4s ease-out backwards;transition:border-color .2s,background .2s}.letter-card.correct{border-color:var(--accent-green);background:#2ecc7126}.letter-card.incorrect{border-color:var(--accent-red);background:#e74c3c26}@keyframes letterReveal{0%{transform:scale(0) rotateY(180deg);opacity:0}to{transform:scale(1) rotateY(0);opacity:1}}.phase-timer{text-align:center;padding:8px;background:var(--bg-secondary);border-radius:8px;font-size:.9rem}.phase-label{color:var(--text-secondary);margin-right:8px}.phase-countdown{color:var(--accent-gold);font-weight:700}.page{display:flex;flex-direction:column;align-items:center;gap:16px}.page h2{font-size:1.3rem;color:var(--text-secondary)}.submission-form{width:100%;display:flex;flex-direction:column;gap:12px}.submission-form label{font-size:.9rem;color:var(--text-secondary);text-align:center}.submission-form input{width:100%;padding:14px 16px;background:var(--bg-secondary);border:2px solid var(--bg-card);border-radius:var(--border-radius);color:var(--text-primary);font-size:1.1rem;outline:none;transition:border-color .2s}.submission-form input:focus{border-color:var(--accent-blue)}.submission-form input::placeholder{color:#f5e6d34d;letter-spacing:2px}.validation-error,.submission-error{color:var(--accent-red);font-size:.85rem;text-align:center}.submit-btn,.vote-btn{padding:14px 24px;background:linear-gradient(135deg,var(--accent-gold),#f0a500);color:var(--bg-primary);border:none;border-radius:var(--border-radius);font-size:1rem;font-weight:700;cursor:pointer;transition:transform .15s,opacity .15s}.submit-btn:hover:not(:disabled),.vote-btn:hover:not(:disabled){transform:scale(1.02)}.submit-btn:disabled,.vote-btn:disabled{opacity:.5;cursor:not-allowed}.submission-count{color:var(--text-secondary);font-size:.85rem}.submission-confirmed,.vote-confirmed{text-align:center;padding:24px;background:var(--bg-secondary);border-radius:var(--border-radius);border:2px solid var(--accent-green)}.check-icon{font-size:2.5rem;margin-bottom:8px}.submitted-text{color:var(--accent-gold);font-style:italic;margin-top:8px;font-size:1.1rem}.vote-subtext{color:var(--text-secondary);font-size:.85rem;margin-top:8px}.voting-ballot{width:100%;display:flex;flex-direction:column;gap:12px}.voting-ballot h3{text-align:center;color:var(--text-secondary);font-size:1rem}.ballot-entries{display:flex;flex-direction:column;gap:8px}.ballot-entry{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-secondary);border:2px solid transparent;border-radius:var(--border-radius);cursor:pointer;transition:border-color .2s,background .2s}.ballot-entry:hover{background:var(--bg-card)}.ballot-entry.selected{border-color:var(--accent-gold);background:#ffd70014}.ballot-entry input[type=radio]{accent-color:var(--accent-gold);width:18px;height:18px}.entry-text{font-size:1rem;color:var(--text-primary);font-style:italic}.vote-error,.ballot-error{color:var(--accent-red);text-align:center;font-size:.85rem}.no-entries{text-align:center;padding:24px;color:var(--text-secondary)}.results-board{width:100%;text-align:center}.results-board h2{margin-bottom:16px}.podium{display:flex;flex-direction:column;gap:12px}.podium-entry{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-secondary);border-radius:var(--border-radius);border-left:4px solid var(--bg-card)}.podium-entry.gold{border-left-color:var(--accent-gold);background:#ffd70014}.podium-entry.silver{border-left-color:silver}.podium-entry.bronze{border-left-color:#cd7f32}.rank-emoji{font-size:1.8rem}.winner-info{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.winner-name{font-weight:700;font-size:1rem}.winner-acronym{font-style:italic;color:var(--accent-gold);font-size:.95rem}.winner-votes{color:var(--text-secondary);font-size:.8rem}.no-results{text-align:center;padding:24px;color:var(--text-secondary)}.presence-bar{display:flex;gap:8px;padding:12px 0;flex-wrap:wrap;justify-content:center;border-bottom:1px solid var(--bg-card);margin-bottom:8px}.avatar-bubble{position:relative;width:42px;height:42px;border-radius:50%;border:3px solid var(--bg-card);transition:border-color .3s,opacity .3s;overflow:visible}.avatar-bubble.submitted{border-color:var(--accent-green);box-shadow:0 0 8px #2ecc7166}.avatar-bubble.away{opacity:.6}.avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover}.vote-badge{position:absolute;bottom:-4px;right:-4px;font-size:.75rem;line-height:1}.not-participant{text-align:center;padding:32px 16px;background:var(--bg-secondary);border-radius:var(--border-radius)}.not-participant-icon{font-size:3rem;margin-bottom:12px}.not-participant h3{color:var(--accent-gold);margin-bottom:8px}.not-participant p{color:var(--text-secondary);font-size:.9rem;margin-top:4px}.error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center}.error-screen p{color:var(--accent-red)}@media (max-width: 400px){.letter-card{width:48px;height:58px;font-size:1.5rem}.letter-display{gap:8px}}
