:root{--bg-primary: #000000;--bg-secondary: #0a0a0a;--bg-tertiary: #1a1a1a;--text-primary: #00ff00;--text-secondary: #00cc00;--text-tertiary: #009900;--text-muted: #006600;--border-color: #003300;--accent-color: #00ff00;--error-color: #ff0000;--warning-color: #ffff00;--success-color: #00ff00;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--font-mono: "Courier New", "Consolas", monospace;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-mono);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh}#app{min-height:100vh;display:flex;flex-direction:column}header{background:var(--bg-secondary);border-bottom:2px solid var(--border-color);padding:var(--spacing-lg);display:flex;justify-content:space-between;align-items:center}header h1{font-size:var(--font-size-xl);color:var(--accent-color);text-shadow:0 0 10px var(--accent-color)}.tagline{color:var(--text-secondary);font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.back-link{color:var(--text-secondary);text-decoration:none;font-size:var(--font-size-sm)}.back-link:hover{color:var(--accent-color)}main{flex:1;padding:var(--spacing-xl);max-width:1200px;width:100%;margin:0 auto}.hero{text-align:center;margin:var(--spacing-xl) 0}.description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-xl);max-width:800px;margin-left:auto;margin-right:auto}.cta-buttons{display:flex;gap:var(--spacing-lg);justify-content:center;margin-top:var(--spacing-xl)}.btn{display:inline-block;padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-tertiary);border:2px solid var(--accent-color);color:var(--accent-color);text-decoration:none;font-family:var(--font-mono);font-size:var(--font-size-md);cursor:pointer;transition:all .3s}.btn:hover{background:var(--accent-color);color:var(--bg-primary);box-shadow:0 0 20px var(--accent-color)}.btn-primary{background:var(--accent-color);color:var(--bg-primary)}.btn-primary:hover{background:var(--bg-primary);color:var(--accent-color);box-shadow:0 0 20px var(--accent-color)}.btn-secondary{background:var(--bg-tertiary)}.btn-small{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm)}.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg);margin-top:var(--spacing-xl)}.feature{background:var(--bg-secondary);border:1px solid var(--border-color);padding:var(--spacing-lg)}.feature h3{color:var(--accent-color);margin-bottom:var(--spacing-sm)}.feature p{color:var(--text-secondary);font-size:var(--font-size-sm)}footer{background:var(--bg-secondary);border-top:2px solid var(--border-color);padding:var(--spacing-lg);text-align:center;color:var(--text-muted);font-size:var(--font-size-sm)}.status{display:inline-block;margin-left:var(--spacing-md)}#router-status{color:var(--warning-color)}#router-status.online{color:var(--success-color)}#router-status.offline{color:var(--error-color)}.auth-container{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl);margin-top:var(--spacing-xl)}.auth-form,.auth-info{background:var(--bg-secondary);border:1px solid var(--border-color);padding:var(--spacing-xl)}.auth-form h2,.auth-info h3{color:var(--accent-color);margin-bottom:var(--spacing-lg)}.instructions{color:var(--text-secondary);margin-bottom:var(--spacing-lg)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.form-group input{width:100%;padding:var(--spacing-md);background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-md)}.form-group input:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 10px #00ff004d}.form-group small{display:block;color:var(--text-muted);margin-top:var(--spacing-xs);font-size:var(--font-size-sm)}.auth-status{padding:var(--spacing-md);margin-bottom:var(--spacing-lg);border:1px solid transparent;display:none}.auth-status.visible{display:block}.auth-status.success{border-color:var(--success-color);color:var(--success-color)}.auth-status.error{border-color:var(--error-color);color:var(--error-color)}.auth-info ul{list-style:none;margin-top:var(--spacing-md)}.auth-info li{padding:var(--spacing-sm) 0;color:var(--text-secondary)}.worlds-container{margin-top:var(--spacing-xl)}.filters{margin-bottom:var(--spacing-lg)}.search-input{width:100%;padding:var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-md);margin-bottom:var(--spacing-md)}.search-input:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 10px #00ff004d}.filter-tags{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.tag-filter{padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;transition:all .3s}.tag-filter:hover,.tag-filter.active{border-color:var(--accent-color);color:var(--accent-color)}.worlds-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-lg)}.world-card{background:var(--bg-secondary);border:1px solid var(--border-color);padding:var(--spacing-lg);cursor:pointer;transition:all .3s}.world-card:hover{border-color:var(--accent-color);box-shadow:0 0 20px #0f03}.world-card h3{color:var(--accent-color);margin-bottom:var(--spacing-sm)}.world-card .description{color:var(--text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-md)}.world-meta{display:flex;justify-content:space-between;font-size:var(--font-size-sm);color:var(--text-muted);margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.world-tags{display:flex;gap:var(--spacing-xs);margin-top:var(--spacing-sm);flex-wrap:wrap}.world-tag{font-size:var(--font-size-sm);color:var(--text-muted);padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color)}.loading{text-align:center;color:var(--text-secondary);padding:var(--spacing-xl)}@media(max-width:768px){.auth-container{grid-template-columns:1fr}.cta-buttons{flex-direction:column;align-items:center}.features{grid-template-columns:1fr}}
