@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600;700&family=Share+Tech+Mono&display=swap";:root{--bg-void: #0a0a0a;--bg-panel: #0d0d0d;--bg-card: #111111;--bg-elevated: #181818;--bg-input: #0e0e0e;--neon-green: #00ff41;--neon-green-dim: #00cc33;--neon-green-glow: rgba(0, 255, 65, .15);--neon-cyan: #00ffff;--neon-cyan-dim: #00cccc;--neon-cyan-glow: rgba(0, 255, 255, .12);--neon-red: #ff0040;--neon-red-dim: #cc0033;--neon-red-glow: rgba(255, 0, 64, .15);--neon-amber: #f0c040;--neon-amber-dim: #c09a30;--neon-magenta: #ff00ff;--text-primary: #c8c8c8;--text-secondary: #707070;--text-dim: #404040;--text-bright: #e8e8e8;--border-dim: #1a1a1a;--border-subtle: #222222;--border-active: #333333;--font-mono: "JetBrains Mono", "Share Tech Mono", "Courier New", monospace;--font-display: "Share Tech Mono", "JetBrains Mono", monospace;--glow-sm: 0 0 4px;--glow-md: 0 0 8px;--glow-lg: 0 0 16px;--glow-xl: 0 0 24px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow-x:hidden}body{font-family:var(--font-mono);background:var(--bg-void);color:var(--text-primary);line-height:1.6;font-size:13px;font-weight:400}#root{min-height:100vh;position:relative}#root:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px)}#root:after{content:"";position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9998;background:radial-gradient(ellipse at center,transparent 0%,transparent 70%,rgba(0,0,0,.4) 100%)}::selection{background:var(--neon-green);color:var(--bg-void)}.pixel-btn{font-family:var(--font-mono);font-size:12px;font-weight:500;padding:10px 20px;background:transparent;color:var(--neon-green);border:1px solid var(--neon-green-dim);cursor:pointer;text-transform:uppercase;letter-spacing:1px;position:relative;transition:all .15s ease}.pixel-btn:hover{background:var(--neon-green-glow);box-shadow:var(--glow-sm) var(--neon-green-dim),inset var(--glow-sm) var(--neon-green-glow);text-shadow:var(--glow-sm) var(--neon-green)}.pixel-btn:active{transform:scale(.98)}.pixel-btn.primary{background:var(--neon-green-glow);border-color:var(--neon-green);color:var(--neon-green);box-shadow:var(--glow-sm) var(--neon-green-dim)}.pixel-btn.primary:hover{background:#00ff4140;box-shadow:var(--glow-md) var(--neon-green-dim)}.pixel-btn.danger{color:var(--neon-red);border-color:var(--neon-red-dim)}.pixel-btn.danger:hover{background:var(--neon-red-glow);box-shadow:var(--glow-sm) var(--neon-red-dim)}.pixel-btn:disabled{opacity:.3;cursor:not-allowed;box-shadow:none}.app-container{min-height:100vh;position:relative;overflow:hidden}.background-effects{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden}.background-effects:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,rgba(0,255,65,.02) 1px,transparent 1px),linear-gradient(rgba(0,255,65,.02) 1px,transparent 1px);background-size:40px 40px}.gradient-orb,.grid-overlay{display:none}.main-content{position:relative;z-index:1;min-height:100vh;padding:20px}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-void)}.loading-content{text-align:center}.loading-logo{font-size:48px;margin-bottom:20px;animation:pulse-glow-icon 2s ease-in-out infinite}@keyframes pulse-glow-icon{0%,to{filter:drop-shadow(0 0 4px var(--neon-green-dim));transform:scale(1)}50%{filter:drop-shadow(0 0 16px var(--neon-green));transform:scale(1.05)}}.loading-title{font-family:var(--font-display);font-size:28px;color:var(--neon-green);text-shadow:var(--glow-md) var(--neon-green-dim);margin-bottom:32px;letter-spacing:4px}.loading-bar-container{width:300px;height:3px;background:var(--border-dim);margin:0 auto 24px;border-radius:2px;overflow:hidden}.loading-bar{height:100%;background:var(--neon-green);box-shadow:var(--glow-sm) var(--neon-green);animation:loading-sweep 1.5s ease-in-out infinite}@keyframes loading-sweep{0%{width:0%;opacity:.5}50%{opacity:1}to{width:100%;opacity:.5}}.loading-message{color:var(--text-secondary);font-size:12px;font-family:var(--font-mono)}.loading-message:before{content:"> ";color:var(--neon-green-dim)}.loading-message:after{content:"█";animation:cursor-blink .8s step-end infinite;color:var(--neon-green);margin-left:2px}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}.loading-particles{display:none}.portal-container{max-width:960px;margin:0 auto;padding:20px}.portal-header{text-align:center;margin-bottom:40px;padding:32px 0;border-bottom:1px solid var(--border-dim)}.portal-title{font-family:var(--font-display);font-size:32px;color:var(--neon-green);text-shadow:var(--glow-lg) var(--neon-green-dim);display:flex;align-items:center;justify-content:center;gap:16px;letter-spacing:3px}.title-icon{font-size:28px;filter:drop-shadow(0 0 8px var(--neon-green-dim))}.title-logo{width:36px;height:36px;border-radius:50%;object-fit:cover;margin-right:8px;vertical-align:middle;filter:drop-shadow(0 0 8px var(--neon-green-dim))}.loading-logo-img{width:64px;height:64px;border-radius:50%;object-fit:cover}.portal-subtitle{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);margin-top:8px;letter-spacing:2px}.portal-subtitle:before{content:"// ";color:var(--text-dim)}.portal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:32px}.project-card{background:var(--bg-card);border:1px solid var(--border-subtle);padding:24px;text-align:center;text-decoration:none;color:var(--text-primary);display:flex;flex-direction:column;align-items:center;gap:12px;cursor:pointer;transition:all .2s ease;position:relative}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--neon-cyan-dim),transparent);opacity:0;transition:opacity .2s}.project-card:hover{border-color:var(--neon-cyan-dim);background:var(--bg-elevated);box-shadow:var(--glow-sm) var(--neon-cyan-glow)}.project-card:hover:before{opacity:1}.project-card.iq-card{border-color:var(--neon-green-dim);background:#00ff4108}.project-card.iq-card:before{background:linear-gradient(90deg,transparent,var(--neon-green-dim),transparent)}.project-card.iq-card:hover{border-color:var(--neon-green);box-shadow:var(--glow-md) var(--neon-green-glow)}.project-card.iq-card:hover:before{opacity:1}.project-icon{font-size:36px;filter:drop-shadow(var(--glow-sm) var(--neon-cyan-dim))}.project-card.iq-card .project-icon{filter:drop-shadow(var(--glow-sm) var(--neon-green-dim))}.project-image{width:64px;height:64px;object-fit:cover;border:1px solid var(--border-subtle);border-radius:4px}.project-card h3{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--text-bright)}.project-card p{font-family:var(--font-mono);font-size:11px;color:var(--text-secondary)}.project-tag{font-family:var(--font-mono);font-size:10px;padding:3px 10px;border:1px solid var(--neon-cyan-dim);color:var(--neon-cyan);letter-spacing:1px;text-transform:uppercase}.admin-toggle{text-align:center;margin:24px 0}.admin-panel{background:var(--bg-panel);border:1px solid var(--border-subtle);padding:24px;margin-top:16px}.admin-panel h3{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--neon-green);margin-bottom:16px}.admin-panel h3:before{content:"$ ";color:var(--text-dim)}.admin-form{display:flex;flex-direction:column;gap:12px}.admin-form input,.admin-form textarea,.admin-form select{font-family:var(--font-mono);font-size:13px;padding:10px 12px;background:var(--bg-input);border:1px solid var(--border-subtle);color:var(--text-primary);outline:none;transition:border-color .15s}.admin-form input:focus,.admin-form textarea:focus,.admin-form select:focus{border-color:var(--neon-cyan-dim);box-shadow:var(--glow-sm) var(--neon-cyan-glow)}.admin-message{margin-top:12px;font-size:12px;color:var(--neon-green)}.iq-app{max-width:900px;margin:0 auto}.iq-header{display:flex;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border-dim)}.back-btn{font-size:11px!important;padding:6px 14px!important;color:var(--text-secondary)!important;border-color:var(--border-subtle)!important}.back-btn:hover{color:var(--neon-cyan)!important;border-color:var(--neon-cyan-dim)!important}.iq-title{font-family:var(--font-display);font-size:22px;color:var(--neon-green);text-shadow:var(--glow-md) var(--neon-green-dim);letter-spacing:2px}.iq-tabs{display:flex;gap:4px;margin-bottom:24px;border-bottom:1px solid var(--border-dim);padding-bottom:0;flex-wrap:wrap}.tab-btn{font-family:var(--font-mono);font-size:11px;font-weight:500;padding:10px 16px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);cursor:pointer;letter-spacing:.5px;transition:all .15s}.tab-btn.active{border-bottom-color:var(--neon-green);color:var(--neon-green);text-shadow:var(--glow-sm) var(--neon-green-dim)}.tab-btn:hover:not(.active){color:var(--text-primary);border-bottom-color:var(--border-active)}.iq-content{min-height:400px}.iq-loading{text-align:center;padding:48px;color:var(--text-secondary);font-size:12px}.iq-loading .loading-logo{font-size:36px;margin-bottom:16px}.iq-blocked{text-align:center;padding:48px 24px}.blocked-icon{font-size:40px;margin-bottom:16px;filter:drop-shadow(var(--glow-md) var(--neon-red-dim))}.iq-blocked h2{font-family:var(--font-mono);font-size:16px;font-weight:600;color:var(--neon-red);text-shadow:var(--glow-sm) var(--neon-red-dim);margin-bottom:12px}.iq-blocked p{font-size:12px;color:var(--text-secondary);margin-bottom:20px}.whitelist-request-form{display:flex;flex-direction:column;gap:12px;max-width:400px;margin:0 auto}.intro-input{font-family:var(--font-mono);font-size:13px;padding:12px;background:var(--bg-input);border:1px solid var(--border-subtle);color:var(--text-primary);outline:none;resize:none;transition:border-color .15s}.intro-input:focus{border-color:var(--neon-cyan-dim);box-shadow:var(--glow-sm) var(--neon-cyan-glow)}.intro-input::placeholder{color:var(--text-dim);font-size:12px}.section-title{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--neon-cyan);margin-bottom:16px;letter-spacing:1px}.section-title:before{content:"> ";color:var(--text-dim)}.rank-board{background:var(--bg-panel);border:1px solid var(--border-subtle);padding:24px}.rank-list{display:flex;flex-direction:column;gap:4px}.rank-item{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border-dim);border-left:3px solid var(--border-subtle);transition:all .15s}.rank-item:hover{border-left-color:var(--neon-cyan-dim);background:var(--bg-elevated)}.rank-item.is-me{border-left-color:var(--neon-green);background:#00ff410a}.rank-item.is-me:hover{background:#00ff4114}.rank-position{font-family:var(--font-mono);font-size:14px;font-weight:700;min-width:44px;text-align:center;color:var(--neon-amber)}.rank-name{font-family:var(--font-mono);font-size:13px;color:var(--text-primary)}.you-label{color:var(--neon-green);font-size:10px;margin-left:8px;font-weight:500}.unranked-section{margin-top:16px;padding-top:12px;border-top:1px solid var(--border-dim)}.unranked-label{font-size:11px;color:var(--text-dim);margin-bottom:4px}.unranked-names{font-size:12px;color:var(--text-secondary)}.voting-panel{background:var(--bg-panel);border:1px solid var(--border-subtle);padding:24px}.vote-instructions{font-size:11px;color:var(--text-secondary);margin-bottom:16px}.vote-instructions:before{content:"// ";color:var(--text-dim)}.voted-badge{color:var(--neon-green)}.sortable-list{display:flex;flex-direction:column;gap:4px;margin-bottom:20px}.sortable-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border-dim);border-left:3px solid var(--neon-cyan-dim);cursor:grab;touch-action:none;transition:all .1s}.sortable-item:hover{background:var(--bg-elevated);border-left-color:var(--neon-cyan)}.sortable-item.dragging{border-color:var(--neon-amber);border-left-color:var(--neon-amber);background:#f0c04014;cursor:grabbing;box-shadow:var(--glow-sm) #f0c04033}.sort-rank{font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--neon-cyan);min-width:28px;text-align:center}.sort-handle{color:var(--text-dim);font-size:14px}.sort-name{font-family:var(--font-mono);font-size:12px;color:var(--text-primary);flex:1}.sort-label{font-family:var(--font-mono);font-size:9px;font-weight:600;color:var(--neon-amber);border:1px solid var(--neon-amber-dim);padding:2px 6px;letter-spacing:.5px}.submit-vote-btn{width:100%}.vote-message{margin-top:12px;font-size:11px;text-align:center;color:var(--text-secondary)}.vote-closed{text-align:center;padding:48px}.closed-icon{font-size:36px;margin-bottom:16px}.vote-closed h2{font-size:14px;font-weight:600;color:var(--text-secondary);margin-bottom:12px}.vote-closed p{font-size:11px;color:var(--text-dim)}.voted-tag{color:var(--neon-green);margin-top:12px;display:block;font-size:11px}.challenge-list{background:var(--bg-panel);border:1px solid var(--border-subtle);padding:24px}.challenge-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.challenges-grid{display:flex;flex-direction:column;gap:8px}.challenge-card{background:var(--bg-card);border:1px solid var(--border-dim);border-left:3px solid var(--neon-red-dim);padding:16px;cursor:pointer;transition:all .15s}.challenge-card:hover{border-left-color:var(--neon-red);background:var(--bg-elevated);box-shadow:var(--glow-sm) var(--neon-red-glow)}.challenge-card-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;font-weight:500}.proposer{color:var(--neon-cyan)}.arrow{color:var(--text-dim)}.target{color:var(--neon-amber)}.challenge-card-body{display:flex;justify-content:space-between;margin-bottom:8px;font-size:11px}.rank-change{color:var(--neon-green)}.vote-counts{color:var(--text-secondary)}.challenge-card-footer{display:flex;justify-content:space-between;font-size:10px;color:var(--text-dim)}.empty-challenges{text-align:center;padding:32px;font-size:12px;color:var(--text-dim)}.challenge-detail{background:var(--bg-panel);border:1px solid var(--border-subtle);padding:24px}.detail-header{display:flex;justify-content:space-between;align-items:center;margin:16px 0}.detail-header h2{font-size:14px;font-weight:600;color:var(--text-bright)}.detail-change{font-size:12px;padding:4px 12px;border:1px solid var(--neon-green-dim);color:var(--neon-green);font-weight:600}.detail-reason{margin:16px 0;padding:16px;background:var(--bg-card);border:1px solid var(--border-dim);border-left:3px solid var(--neon-amber-dim)}.detail-reason h3{font-size:11px;font-weight:600;color:var(--neon-amber);margin-bottom:8px}.detail-reason p{font-size:13px;color:var(--text-primary);line-height:1.6}.detail-deadline{font-size:11px;color:var(--neon-red);margin-bottom:16px}.detail-deadline:before{content:"⏱ "}.vote-section{margin:16px 0}.vote-section h3{font-size:11px;font-weight:600;color:var(--neon-cyan);margin-bottom:8px}.vote-buttons{display:flex;gap:8px}.vote-btn{font-family:var(--font-mono);font-size:11px;font-weight:500;padding:10px 16px;border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;flex:1;text-align:center;transition:all .15s}.vote-btn.agree.active{border-color:var(--neon-green-dim);background:var(--neon-green-glow);color:var(--neon-green);box-shadow:var(--glow-sm) var(--neon-green-glow)}.vote-btn.disagree.active{border-color:var(--neon-red-dim);background:var(--neon-red-glow);color:var(--neon-red);box-shadow:var(--glow-sm) var(--neon-red-glow)}.vote-btn:hover{border-color:var(--text-dim);background:var(--bg-elevated)}.comments-section{margin-top:24px}.comments-section h3{font-size:11px;font-weight:600;color:var(--neon-cyan);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border-dim)}.comments-list{display:flex;flex-direction:column;gap:6px;max-height:400px;overflow-y:auto;margin-bottom:16px}.comment-item{padding:12px;background:var(--bg-card);border:1px solid var(--border-dim);border-left:3px solid var(--border-subtle)}.comment-item.agree{border-left-color:var(--neon-green-dim)}.comment-item.disagree{border-left-color:var(--neon-red-dim)}.comment-header{display:flex;justify-content:space-between;margin-bottom:6px}.comment-author{font-size:11px;color:var(--neon-cyan);font-weight:500}.comment-stance{font-size:10px;font-weight:600}.comment-stance.agree{color:var(--neon-green)}.comment-stance.disagree{color:var(--neon-red)}.comment-content{font-size:13px;color:var(--text-primary);line-height:1.5}.comment-time{font-size:10px;color:var(--text-dim);margin-top:4px;display:block}.comment-form{display:flex;flex-direction:column;gap:8px}.stance-select{display:flex;gap:6px}.stance-btn{font-family:var(--font-mono);font-size:10px;font-weight:500;padding:6px 12px;background:transparent;border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;transition:all .15s}.stance-btn.active{border-color:var(--neon-green-dim);color:var(--neon-green);background:var(--neon-green-glow)}.comment-form textarea{font-family:var(--font-mono);font-size:13px;padding:10px;background:var(--bg-input);border:1px solid var(--border-subtle);color:var(--text-primary);outline:none;resize:vertical;transition:border-color .15s}.comment-form textarea:focus{border-color:var(--neon-cyan-dim);box-shadow:var(--glow-sm) var(--neon-cyan-glow)}.challenge-form{background:var(--bg-panel);border:1px solid var(--border-subtle);padding:24px}.challenge-form form{display:flex;flex-direction:column;gap:16px;margin-top:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:11px;font-weight:600;color:var(--neon-cyan);letter-spacing:.5px}.form-group label:before{content:"# ";color:var(--text-dim)}.form-group input,.form-group select,.form-group textarea{font-family:var(--font-mono);font-size:13px;padding:10px 12px;background:var(--bg-input);border:1px solid var(--border-subtle);color:var(--text-primary);outline:none;transition:border-color .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--neon-cyan-dim);box-shadow:var(--glow-sm) var(--neon-cyan-glow)}.form-group select{cursor:pointer}.form-group select option{background:var(--bg-card)}.baseline-info{font-size:11px;color:var(--neon-amber);padding:8px 12px;background:#f0c0400f;border:1px solid rgba(240,192,64,.2)}.form-message{margin-top:12px;font-size:11px;text-align:center}.history-chart{background:var(--bg-panel);border:1px solid var(--border-subtle);padding:24px}.chart-container{margin:16px 0}.history-table{margin-top:24px}.history-table h3{font-size:11px;font-weight:600;color:var(--neon-cyan);margin-bottom:12px}.table-rows{display:flex;flex-direction:column;gap:2px}.table-row{display:flex;justify-content:space-between;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border-dim);font-size:12px}.table-month{color:var(--text-secondary)}.table-rank{color:var(--neon-green);font-weight:600}.history-empty{text-align:center;padding:48px}.history-empty .empty-icon{font-size:36px;margin-bottom:16px}.history-empty h2{font-size:14px;font-weight:600;color:var(--text-secondary);margin-bottom:12px}.history-empty p{font-size:11px;color:var(--text-dim)}.lobby-container{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;min-height:calc(100vh - 40px)}.lobby-header{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--border-dim);margin-bottom:24px}.lobby-title-group{display:flex;flex-direction:column;gap:4px}.lobby-title{font-family:var(--font-display);font-size:20px;display:flex;align-items:center;gap:12px;color:var(--neon-green);text-shadow:var(--glow-sm) var(--neon-green-dim);letter-spacing:2px}.lobby-subtitle{color:var(--text-dim);font-size:11px}.lobby-subtitle:before{content:"// ";color:var(--text-dim)}.host-badge{background:#f0c0401a;color:var(--neon-amber);padding:6px 14px;font-size:10px;font-weight:600;border:1px solid var(--neon-amber-dim);letter-spacing:1px;text-transform:uppercase}.lobby-content{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:20px}@media (max-width: 900px){.lobby-content{grid-template-columns:1fr}}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border-dim)}.section-header h2{font-size:12px;font-weight:600;display:flex;align-items:center;gap:8px;color:var(--neon-cyan);text-transform:uppercase;letter-spacing:1px}.section-icon{font-size:14px}.player-count{background:var(--bg-card);border:1px solid var(--neon-green-dim);padding:3px 10px;font-size:10px;color:var(--neon-green);font-weight:600}.players-section,.games-section{background:var(--bg-panel);border:1px solid var(--border-subtle);padding:20px}.players-section:before,.games-section:before{display:none}.players-grid,.games-grid{display:flex;flex-direction:column;gap:8px}.empty-state{text-align:center;padding:32px;color:var(--text-dim)}.empty-icon{font-size:28px;display:block;margin-bottom:8px}.player-card{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border-dim);border-left:3px solid var(--border-subtle);cursor:default;transition:all .15s}.player-card:hover{border-left-color:var(--neon-cyan-dim);background:var(--bg-elevated)}.player-card.is-current-user{border-left-color:var(--neon-green);background:#00ff410a}.player-card.is-host{border-left-color:var(--neon-amber)}.player-avatar-wrapper{position:relative}.player-avatar{width:36px;height:36px;border:1px solid var(--border-subtle);background:var(--bg-card);border-radius:2px}.host-crown{position:absolute;top:-10px;right:-6px;font-size:12px}.current-user-indicator{position:absolute;bottom:-4px;right:-4px;font-size:10px}.player-info{flex:1;display:flex;flex-direction:column;gap:2px}.player-name{font-size:12px;color:var(--text-primary);font-weight:500}.you-tag{color:var(--neon-green);font-size:9px;margin-left:6px;font-weight:600}.player-role{font-size:10px;color:var(--neon-amber)}.player-status{display:flex;align-items:center;gap:4px}.status-dot{width:6px;height:6px;border-radius:50%}.status-dot.online{background:var(--neon-green);box-shadow:var(--glow-sm) var(--neon-green)}.game-card{background:var(--bg-card);border:1px solid var(--border-dim);padding:14px;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;transition:all .15s}.game-card.playable{border-color:var(--neon-green-dim)}.game-card.playable:hover{background:var(--bg-elevated);box-shadow:var(--glow-sm) var(--neon-green-glow)}.game-card.disabled{opacity:.35;cursor:not-allowed}.game-icon{font-size:28px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:1px solid var(--border-subtle)}.game-info{display:flex;flex-direction:column;gap:4px}.game-name{font-size:13px;font-weight:600;color:var(--text-bright)}.game-description{font-size:11px;color:var(--text-secondary)}.game-requirements{display:flex;gap:12px;font-size:10px}.player-range{color:var(--neon-cyan)}.needs-more{color:var(--neon-red);animation:cursor-blink 1s step-end infinite}.play-status{padding:4px 10px;font-size:9px;font-weight:600;border:1px solid;letter-spacing:.5px;text-transform:uppercase}.play-status.ready{background:var(--neon-green-glow);border-color:var(--neon-green-dim);color:var(--neon-green)}.play-status.waiting{background:var(--neon-red-glow);border-color:var(--neon-red-dim);color:var(--neon-red)}.waiting-section{background:var(--bg-panel);border:1px solid var(--border-subtle);padding:20px;display:flex;align-items:center;justify-content:center}.waiting-content{text-align:center}.waiting-icon{font-size:36px;margin-bottom:12px}.waiting-content h3{font-size:14px;font-weight:600;margin-bottom:8px;color:var(--neon-cyan)}.waiting-content p{color:var(--text-dim);font-size:11px}.confirm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.confirm-dialog{background:var(--bg-panel);border:1px solid var(--neon-green-dim);padding:32px;text-align:center;max-width:400px;box-shadow:var(--glow-lg) var(--neon-green-glow)}.confirm-icon{font-size:36px;margin-bottom:16px}.confirm-dialog h3{font-size:14px;font-weight:600;margin-bottom:12px;color:var(--neon-amber)}.confirm-dialog p{color:var(--text-secondary);margin-bottom:24px;font-size:12px}.confirm-buttons{display:flex;gap:12px;justify-content:center}.btn-cancel,.btn-confirm{font-family:var(--font-mono);font-size:11px;font-weight:500;padding:10px 20px;border:1px solid;cursor:pointer;transition:all .15s}.btn-cancel{background:transparent;color:var(--text-secondary);border-color:var(--border-subtle)}.btn-cancel:hover{border-color:var(--text-dim);color:var(--text-primary)}.btn-confirm{background:var(--neon-green-glow);color:var(--neon-green);border-color:var(--neon-green-dim)}.btn-confirm:hover{background:#00ff4133;box-shadow:var(--glow-sm) var(--neon-green-glow)}.lobby-footer{padding:12px 0;border-top:1px solid var(--border-dim);margin-top:24px}.footer-info{display:flex;gap:24px;justify-content:center}.info-item{color:var(--text-dim);font-size:10px}.werewolf-game{max-width:1100px;margin:0 auto;min-height:calc(100vh - 40px);display:flex;flex-direction:column}.game-header{text-align:center;padding:16px 0;border-bottom:1px solid var(--border-dim);margin-bottom:24px}.game-header h1{font-family:var(--font-display);font-size:24px;margin-bottom:16px;color:var(--neon-red);text-shadow:var(--glow-md) var(--neon-red-dim);letter-spacing:3px}.phase-indicator{display:flex;align-items:center;justify-content:center;gap:12px}.phase{padding:6px 16px;font-size:10px;font-weight:600;border:1px solid;text-transform:uppercase;letter-spacing:1px}.phase.setup{background:transparent;color:var(--neon-cyan);border-color:var(--neon-cyan-dim)}.phase.night{background:#0000ff0d;color:#6060ff;border-color:#4040aa}.phase.discussion{background:#f0c04014;color:var(--neon-amber);border-color:var(--neon-amber-dim)}.phase.voting{background:var(--neon-red-glow);color:var(--neon-red);border-color:var(--neon-red-dim)}.phase.result{background:var(--neon-green-glow);color:var(--neon-green);border-color:var(--neon-green-dim)}.timer{font-family:var(--font-mono);font-size:20px;font-weight:700;color:var(--neon-amber);text-shadow:var(--glow-sm) var(--neon-amber-dim)}.game-main{flex:1}.setup-phase{display:flex;align-items:center;justify-content:center;min-height:400px}.setup-content{text-align:center}.setup-content h2{font-size:16px;font-weight:600;margin-bottom:16px;color:var(--neon-green)}.my-role-section{margin:32px 0}.my-role-section h3{margin-bottom:16px;color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:1px}.role-card{background:var(--bg-card);border:1px solid var(--neon-green-dim);padding:32px 48px;display:inline-block;box-shadow:var(--glow-md) var(--neon-green-glow)}.role-card:before,.role-card:after{display:none}.role-emoji{font-size:40px;margin-bottom:12px}.role-name{font-size:16px;font-weight:600;color:var(--text-bright);margin-bottom:12px}.role-team{font-size:10px;padding:4px 12px;display:inline-block;font-weight:600;border:1px solid;letter-spacing:1px;text-transform:uppercase}.role-team.wolf{background:var(--neon-red-glow);color:var(--neon-red);border-color:var(--neon-red-dim)}.role-team.village{background:var(--neon-green-glow);color:var(--neon-green);border-color:var(--neon-green-dim)}.btn-start-night,.btn-start-voting,.btn-vote,.btn-confirm-action{font-family:var(--font-mono);font-weight:600;letter-spacing:1px;cursor:pointer;transition:all .15s}.btn-start-night{margin-top:32px;font-size:12px;padding:12px 28px;background:transparent;color:var(--neon-cyan);border:1px solid var(--neon-cyan-dim)}.btn-start-night:hover{background:var(--neon-cyan-glow);box-shadow:var(--glow-sm) var(--neon-cyan-glow)}.night-phase{position:relative;min-height:400px;border:1px solid var(--border-subtle);overflow:hidden;background:#050510}.night-sky{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg,#050510,#0a0a1a,#050510)}.stars{position:absolute;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(1px 1px at 20px 30px,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 80px 50px,rgba(0,255,255,.4),transparent),radial-gradient(1px 1px at 140px 80px,rgba(255,255,255,.3),transparent),radial-gradient(1px 1px at 200px 40px,rgba(255,255,255,.4),transparent),radial-gradient(1px 1px at 260px 90px,rgba(0,255,65,.3),transparent);background-repeat:repeat;background-size:300px 150px}.moon{position:absolute;top:16px;right:32px;font-size:28px;filter:drop-shadow(var(--glow-md) rgba(200,200,255,.3))}.night-content{position:relative;z-index:1;padding:32px;text-align:center}.night-content h2{font-size:14px;font-weight:600;margin-bottom:20px;color:#6060ff}.my-role-mini{background:var(--bg-card);display:inline-block;padding:6px 16px;margin-bottom:24px;border:1px solid var(--neon-cyan-dim);color:var(--neon-cyan);font-size:11px}.action-panel{background:var(--bg-card);border:1px solid var(--neon-green-dim);padding:24px;margin-top:20px}.action-panel h3{color:var(--neon-amber);font-size:12px;font-weight:600;margin-bottom:12px}.action-panel p{color:var(--text-secondary);margin-bottom:20px;font-size:11px}.player-selector,.center-card-selector{margin:20px 0}.player-selector h4,.center-card-selector h4{margin-bottom:12px;color:var(--text-dim);font-size:11px}.player-options,.center-cards{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.player-option,.center-card{padding:8px 16px;background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;font-size:11px;transition:all .15s}.player-option:hover,.center-card:hover{border-color:var(--neon-cyan-dim);color:var(--text-primary)}.player-option.selected,.center-card.selected{border-color:var(--neon-green);background:var(--neon-green-glow);color:var(--neon-green)}.center-card{display:flex;flex-direction:column;align-items:center;padding:12px 20px}.card-back{font-size:20px;margin-bottom:6px}.card-label{font-size:9px}.btn-confirm-action{margin-top:20px;font-size:11px;padding:10px 24px;background:transparent;color:var(--neon-green);border:1px solid var(--neon-green-dim)}.btn-confirm-action:hover{background:var(--neon-green-glow);box-shadow:var(--glow-sm) var(--neon-green-glow)}.btn-confirm-action:disabled{opacity:.3;cursor:not-allowed}.action-result{background:var(--neon-green-glow);border:1px solid var(--neon-green-dim);padding:12px 16px;margin-top:20px}.action-result p{margin:0;color:var(--neon-green);font-size:12px}.discussion-phase{text-align:center;padding:32px;position:relative}.sun-bg{font-size:36px;position:absolute;top:16px;right:32px}.discussion-phase h2{font-size:16px;font-weight:600;margin-bottom:12px;color:var(--neon-amber)}.discussion-warning{color:var(--neon-red);font-size:11px;margin-bottom:20px}.discussion-timer{font-family:var(--font-mono);font-size:28px;font-weight:700;color:var(--neon-amber);margin:24px 0;text-shadow:var(--glow-md) var(--neon-amber-dim)}.players-discussion{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:24px 0}.discussion-player{padding:8px 16px;background:var(--bg-card);border:1px solid var(--neon-cyan-dim);font-size:11px;color:var(--neon-cyan)}.btn-start-voting{font-size:12px;padding:12px 28px;background:transparent;color:var(--neon-red);border:1px solid var(--neon-red-dim)}.btn-start-voting:hover{background:var(--neon-red-glow);box-shadow:var(--glow-sm) var(--neon-red-glow)}.voting-section{text-align:center;padding:32px}.voting-section h3{font-size:16px;font-weight:600;margin-bottom:12px;color:var(--neon-red)}.vote-options{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:24px 0}.vote-option{padding:10px 20px;background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;font-size:11px;transition:all .15s}.vote-option:hover{border-color:var(--neon-red-dim)}.vote-option.selected{border-color:var(--neon-red);background:var(--neon-red-glow);color:var(--neon-red)}.btn-vote{font-size:12px;padding:12px 28px;background:transparent;color:var(--neon-red);border:1px solid var(--neon-red-dim)}.btn-vote:disabled{opacity:.3;cursor:not-allowed}.vote-progress{margin-top:20px;color:var(--text-dim);font-size:11px}.result-section{text-align:center;padding:32px}.result-title{font-family:var(--font-display);font-size:24px;margin-bottom:24px;letter-spacing:3px}.result-title.village{color:var(--neon-green);text-shadow:var(--glow-lg) var(--neon-green-dim)}.result-title.wolf{color:var(--neon-red);text-shadow:var(--glow-lg) var(--neon-red-dim)}.eliminated-players{background:var(--bg-card);border:1px solid var(--neon-red-dim);padding:20px;margin-bottom:24px}.eliminated-player{font-size:12px;padding:6px;color:var(--neon-red)}.all-roles h4,.eliminated-players h4{margin-bottom:16px;color:var(--text-dim);font-size:10px;text-transform:uppercase;letter-spacing:1px}.roles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.role-reveal{background:var(--bg-card);border:1px solid var(--border-dim);padding:14px;text-align:left}.role-reveal .player-name{font-weight:600;margin-bottom:6px;display:block;font-size:12px}.original-role,.final-role{display:block;font-size:11px;color:var(--text-dim)}.final-role{color:var(--neon-amber)}.result-actions{margin-top:32px;display:flex;gap:12px;justify-content:center}.btn-restart,.btn-lobby{font-family:var(--font-mono);font-size:11px;font-weight:500;padding:10px 24px;border:1px solid;cursor:pointer;transition:all .15s}.btn-restart{background:transparent;color:var(--neon-green);border-color:var(--neon-green-dim)}.btn-restart:hover{background:var(--neon-green-glow)}.btn-lobby{background:transparent;color:var(--text-secondary);border-color:var(--border-subtle)}.btn-lobby:hover{border-color:var(--text-dim)}.game-b-container{min-height:calc(100vh - 40px);display:flex;align-items:center;justify-content:center}.coming-soon{text-align:center;background:var(--bg-panel);border:1px solid var(--border-subtle);padding:48px;max-width:480px}.construction-icon{font-size:36px;margin-bottom:20px}.coming-soon h1{font-size:20px;font-weight:700;margin-bottom:12px;color:var(--neon-amber)}.coming-soon h2{color:var(--neon-cyan);font-size:12px;margin-bottom:20px}.coming-soon h2:after{content:"█";animation:cursor-blink .8s step-end infinite;margin-left:2px}.coming-soon .description{color:var(--text-secondary);margin-bottom:24px;font-size:12px;line-height:1.8}.progress-section{margin:24px 0}.progress-label{display:block;margin-bottom:8px;color:var(--text-dim);font-size:11px}.progress-bar{height:3px;background:var(--border-dim);margin-bottom:8px;overflow:hidden}.progress-fill{height:100%;background:var(--neon-green);box-shadow:var(--glow-sm) var(--neon-green)}.progress-percent{color:var(--neon-green);font-size:12px;font-weight:600}.features-preview{text-align:left;margin:24px 0}.features-preview h3{margin-bottom:12px;text-align:center;color:var(--neon-cyan);font-size:12px}.features-preview ul{list-style:none}.features-preview li{padding:8px 0;border-bottom:1px solid var(--border-dim);color:var(--text-secondary);font-size:11px}.features-preview li:before{content:"> ";color:var(--neon-green-dim)}.features-preview li:last-child{border-bottom:none}.btn-back-lobby{margin-top:20px;font-family:var(--font-mono);font-size:11px;padding:10px 24px;background:transparent;color:var(--text-secondary);border:1px solid var(--border-subtle);cursor:pointer;transition:all .15s}.btn-back-lobby:hover{border-color:var(--text-dim);color:var(--text-primary)}.waiting-host{margin-top:20px;color:var(--text-dim);font-size:11px}.bg-decorations,.floating-gear{display:none}.error-toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--bg-panel);color:var(--neon-red);padding:10px 20px;border:1px solid var(--neon-red-dim);font-size:11px;z-index:1000;box-shadow:var(--glow-md) var(--neon-red-glow)}@media (max-width: 768px){body{font-size:12px}.main-content{padding:12px}.lobby-header{flex-direction:column;gap:8px;text-align:center}.lobby-title{font-size:16px}.lobby-content{grid-template-columns:1fr;gap:12px}.game-header h1{font-size:18px}.role-card{padding:24px 32px}.role-emoji{font-size:32px}.role-name{font-size:14px}.confirm-dialog{margin:16px;padding:24px}.coming-soon{margin:16px;padding:28px 20px}.discussion-timer{font-size:22px}.result-title{font-size:18px}.portal-title{font-size:22px}.portal-grid{grid-template-columns:1fr}.iq-title{font-size:18px}}@keyframes flicker{0%,to{opacity:1}92%{opacity:1}93%{opacity:.7}94%{opacity:1}95%{opacity:.85}96%{opacity:1}}@keyframes pulse-glow{0%,to{box-shadow:none}50%{box-shadow:var(--glow-sm) var(--neon-amber-dim)}}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-4px)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes twinkle{0%,to{opacity:1}50%{opacity:.5}}@keyframes twinkle-stars{0%,50%{opacity:1}25%,75%{opacity:.7}}
