@import"https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap";:root{--font-pixel: "Press Start 2P", monospace;--font-mono: Consolas, "Courier New", monospace;--color-void: #05060f;--color-deep: #0a0d1f;--color-abyss: #0d1230;--color-midnight: #111840;--color-current: #1a2560;--color-ripple: #1e3a8a;--color-wave: #2563eb;--color-foam: #60a5fa;--color-mist: #93c5fd;--color-dusk: #2d1b69;--color-violet: #4c1d95;--color-amethyst: #7c3aed;--color-lavender: #a78bfa;--color-text-primary: #e0e8ff;--color-text-secondary: #7b9fd4;--color-text-muted: #4a6fa5;--color-border: #1e3a8a;--color-border-glow: #2563eb;--glow-blue: 0 0 8px #2563eb, 0 0 20px rgba(37, 99, 235, .4);--glow-purple: 0 0 8px #7c3aed, 0 0 20px rgba(124, 58, 237, .4);--pixel: 2px;font-family:var(--font-pixel);font-size:14px;color:var(--color-text-primary);background:var(--color-void);image-rendering:pixelated}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--color-void);background-image:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(30,58,138,.04) 3px,rgba(30,58,138,.04) 4px),repeating-linear-gradient(90deg,transparent,transparent 3px,rgba(30,58,138,.04) 3px,rgba(30,58,138,.04) 4px),radial-gradient(ellipse at 50% 0%,#1a2560,#0a0d1f,#05060f);overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.15) 2px,rgba(0,0,0,.15) 4px)}body:after{content:"";position:fixed;bottom:0;left:0;right:0;height:120px;pointer-events:none;z-index:0;background:linear-gradient(to top,rgba(37,99,235,.12) 0%,rgba(124,58,237,.06) 50%,transparent 100%);animation:streamFlow 6s ease-in-out infinite alternate}@keyframes streamFlow{0%{opacity:.6;transform:scaleX(1)}to{opacity:1;transform:scaleX(1.02)}}button,input{font:inherit}.app-shell{max-width:860px;margin:0 auto;padding:2.5rem 1.5rem 4rem;position:relative;z-index:1}.app-header{margin-bottom:2.5rem;text-align:center;position:relative}.app-header h1{margin:0 0 .75rem;font-size:1.6rem;font-family:var(--font-pixel);color:var(--color-foam);text-shadow:3px 3px 0 var(--color-ripple),0 0 20px rgba(96,165,250,.6),0 0 40px rgba(37,99,235,.3);letter-spacing:.05em;line-height:1.4;image-rendering:pixelated}.app-header p{margin:0;font-size:.75rem;color:var(--color-text-secondary);letter-spacing:.08em;line-height:1.8}.app-header:after{content:"";display:block;margin:1.25rem auto 0;width:80%;height:2px;background:linear-gradient(90deg,transparent 0%,var(--color-ripple) 20%,var(--color-amethyst) 50%,var(--color-ripple) 80%,transparent 100%);box-shadow:0 0 8px var(--color-wave),0 0 16px #7c3aed4d;animation:streamPulse 3s ease-in-out infinite alternate}@keyframes streamPulse{0%{opacity:.6;width:60%}to{opacity:1;width:85%}}.card{background:var(--color-abyss);border:var(--pixel) solid var(--color-border);box-shadow:0 0 0 var(--pixel) var(--color-void),0 0 0 calc(var(--pixel) * 2) var(--color-border),inset 0 1px #60a5fa14,0 8px 32px #05060fb3,0 0 24px #1e3a8a26;border-radius:0;padding:1.5rem;position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--color-wave) 30%,var(--color-amethyst) 70%,transparent);opacity:.5}.card h2{margin:0 0 .5rem;font-size:1.1rem;font-family:var(--font-pixel);color:var(--color-foam);text-shadow:2px 2px 0 var(--color-ripple),0 0 12px rgba(96,165,250,.4);letter-spacing:.05em;line-height:1.5}.muted{margin-top:.5rem;margin-bottom:.75rem;font-size:.72rem;color:var(--color-text-secondary);line-height:1.9;letter-spacing:.04em}.login-form{margin-top:1.25rem;display:grid;gap:.5rem}.login-form label{font-size:.7rem;font-family:var(--font-pixel);color:var(--color-lavender);letter-spacing:.06em;text-shadow:0 0 8px rgba(167,139,250,.4)}.login-form input{width:100%;background:var(--color-deep);border:var(--pixel) solid var(--color-border);border-radius:0;padding:.75rem .85rem;color:var(--color-text-primary);font-size:.75rem;font-family:var(--font-mono);letter-spacing:.04em;transition:border-color .15s,box-shadow .15s;box-shadow:inset 2px 2px #00000080,inset -1px -1px #60a5fa0d}.login-form input::placeholder{color:var(--color-text-muted);opacity:.7}.login-form input:focus{outline:none;border-color:var(--color-amethyst);box-shadow:inset 2px 2px #00000080,0 0 0 var(--pixel) var(--color-amethyst),var(--glow-purple)}.login-form input:disabled{opacity:.5;cursor:not-allowed}.error-text{margin:.25rem 0;font-size:.65rem;color:#f87171;text-shadow:0 0 8px rgba(248,113,113,.5);letter-spacing:.04em;line-height:1.7}.session-list{margin:.75rem 0;display:grid;gap:.6rem}.session-list div{display:grid;gap:.2rem}.session-list dt{font-size:.62rem;font-family:var(--font-pixel);color:var(--color-lavender);letter-spacing:.06em;text-transform:uppercase}.session-list dd{margin:0;font-family:var(--font-mono);font-size:.8rem;color:var(--color-foam);word-break:break-all;letter-spacing:.02em}.actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.75rem}button{border:var(--pixel) solid var(--color-wave);border-radius:0;padding:.75rem 1.25rem;background:var(--color-ripple);color:var(--color-foam);cursor:pointer;font-family:var(--font-pixel);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;position:relative;transition:background .1s,box-shadow .1s,transform .05s;box-shadow:3px 3px 0 var(--color-deep),0 0 12px #2563eb4d;image-rendering:pixelated}button:hover:not(:disabled){background:var(--color-wave);box-shadow:3px 3px 0 var(--color-deep),var(--glow-blue);transform:translateY(-1px)}button:active:not(:disabled){transform:translate(2px,2px);box-shadow:1px 1px 0 var(--color-deep)}button:disabled{opacity:.4;cursor:not-allowed;box-shadow:2px 2px 0 var(--color-deep)}button.secondary{background:var(--color-dusk);border-color:var(--color-amethyst);color:var(--color-lavender);box-shadow:3px 3px 0 var(--color-deep),0 0 12px #7c3aed33}button.secondary:hover:not(:disabled){background:var(--color-violet);box-shadow:3px 3px 0 var(--color-deep),var(--glow-purple)}.game-card{background:var(--color-midnight);border:var(--pixel) solid var(--color-current);padding:1rem;position:relative;transition:border-color .15s,box-shadow .15s;box-shadow:inset 0 1px #60a5fa0d,2px 2px 0 var(--color-void)}.game-card:hover{border-color:var(--color-amethyst);box-shadow:inset 0 1px #a78bfa14,2px 2px 0 var(--color-void),0 0 16px #7c3aed33}.game-card h3{margin:0 0 .4rem;font-size:.85rem;font-family:var(--font-pixel);color:var(--color-lavender);text-shadow:2px 2px 0 var(--color-dusk),0 0 10px rgba(167,139,250,.3);letter-spacing:.05em;line-height:1.5}.game-card p{margin:0 0 .75rem;font-size:.7rem;color:var(--color-text-secondary);line-height:1.9;letter-spacing:.04em}.status-card{text-align:left}.app-header:before{content:"🦆";position:absolute;right:0;top:0;font-size:1.4rem;filter:drop-shadow(0 0 6px rgba(96,165,250,.6));animation:duckBob 2s ease-in-out infinite;image-rendering:pixelated}@keyframes duckBob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-void)}::-webkit-scrollbar-thumb{background:var(--color-current);border:1px solid var(--color-border)}::-webkit-scrollbar-thumb:hover{background:var(--color-ripple)}::selection{background:var(--color-amethyst);color:var(--color-text-primary)}
