:root{--accent:#ffc53d;--accent-light:#ffe07a;--accent-dark:#d99b12;--accent-gradient:linear-gradient(180deg, #ffe07a 0%, #ffc53d 55%, #e0a312 100%);--cyan:#22e4ff;--cyan-dark:#0fa9c4;--cyan-light:#8df3ff;--cyan-glow:#22e4ff73;--amber:#ffc53d;--amber-dark:#d99b12;--purple:#a46bff;--purple-dark:#7b41e0;--x:#22e4ff;--x-glow:#22e4ff8c;--o:#ff3d9e;--o-glow:#ff3d9e8c;--pac:var(--x);--pac-glow:var(--x-glow);--poe:var(--o);--poe-glow:var(--o-glow);--white:#171e38;--cream:#0f1428;--ink:#0a0e1f;--text-primary:#e9eeff;--text-secondary:#a9b4e0;--text-muted:#6f7ba8;--text-dark:#0a0e1f;--danger:#ff4d6d;--danger-dark:#c9284a;--success:#4be87a;--success-dark:#21b84f;--bg-deep:#070a16;--bg-mid:#0e1428;--bg-surface:#171e38;--bg-gradient:radial-gradient(ellipse 120% 70% at 50% -10%, #a46bff47 0%, transparent 60%), radial-gradient(ellipse 90% 60% at 12% 100%, #22e4ff29 0%, transparent 62%), radial-gradient(ellipse 90% 60% at 88% 100%, #ff3d9e29 0%, transparent 62%), linear-gradient(180deg, #0b1024 0%, #070a16 100%);--outline:#4a5793;--outline-soft:#4a579380;--shadow-color:#04060f;--glass:#171e38;--glass-light:#1e2748;--glass-border:#4a5793;--glass-border-hover:#7c8ad6;--stroke:#e9eeff1f;--stroke-light:#e9eeff12;--shadow-sm:2px 2px 0 var(--shadow-color);--shadow-md:4px 4px 0 var(--shadow-color);--shadow-lg:6px 6px 0 var(--shadow-color);--shadow-glow:4px 4px 0 var(--shadow-color), 0 0 18px #22e4ff40;--shadow-cyan:4px 4px 0 var(--cyan-dark);--shadow-press:1px 1px 0 var(--shadow-color);--radius:0px;--radius-sm:0px;--radius-lg:0px;--radius-xl:0px;--radius-pill:0px;--transition:all .18s steps(4, end);--transition-fast:all .1s steps(3, end);--bounce:cubic-bezier(.34, 1.56, .64, 1);--font-display:"Press Start 2P", "VT323", monospace;--font-body:"VT323", "Press Start 2P", monospace;--font-mono:"VT323", monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:40px;--space-8:48px;--space-9:64px;--accent-alpha-05:#ffc53d14;--accent-alpha-10:#ffc53d24;--accent-alpha-15:#ffc53d33;--accent-alpha-25:#ffc53d4d;--cyan-alpha-10:#22e4ff24;--cyan-alpha-15:#22e4ff38}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:none;-moz-osx-font-smoothing:unset;font-smooth:never}img{image-rendering:pixelated;image-rendering:crisp-edges}body{font-family:var(--font-body);background:var(--bg-deep);background-image:var(--bg-gradient);color:var(--text-primary);background-attachment:fixed;min-height:100vh;font-size:20px;line-height:1.4;position:relative;overflow-x:hidden}body:before{content:"";z-index:9000;pointer-events:none;mix-blend-mode:multiply;opacity:.55;background:repeating-linear-gradient(#00000038 0 1px,#0000 1px 3px);position:fixed;inset:0}body:after{content:"";z-index:9001;pointer-events:none;background:linear-gradient(#0000 0%,#8cc8ff0d 42%,#bee6ff17 50%,#8cc8ff0d 58%,#0000 100%);height:40%;animation:7s linear infinite crtRoll;position:fixed;inset:-20% 0}@keyframes crtRoll{0%{transform:translateY(-60vh)}to{transform:translateY(160vh)}}h1,h2,h3{font-family:var(--font-display);letter-spacing:0;color:var(--text-primary);text-shadow:2px 2px 0 var(--shadow-color);font-weight:400;line-height:1.5}h1{font-size:22px}h2{font-size:16px}h3{font-size:14px}#app{z-index:1;flex-direction:column;min-height:100vh;display:flex;position:relative}.page-content{padding:var(--space-7) var(--space-5);flex:1;width:100%;max-width:1200px;margin:0 auto;animation:.32s steps(5,end) both pixelIn}@keyframes pixelIn{0%{opacity:0;filter:contrast(1.6)brightness(1.4);transform:translateY(10px)scale(.995)}60%{opacity:1;filter:contrast(1.1)brightness(1.1)}to{opacity:1;filter:none;transform:none}}.card{background:var(--glass);border:3px solid var(--outline);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-md);transition:var(--transition);position:relative}.card:after{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 2px 2px #e9eeff0f,inset -2px -2px #00000059}.card:hover{box-shadow:var(--shadow-lg);border-color:var(--glass-border-hover);transform:translateY(-2px)}.card-title{font-family:var(--font-display);color:var(--text-primary);margin-bottom:var(--space-4);font-size:12px;font-weight:400}.btn{justify-content:center;align-items:center;gap:var(--space-2);border:3px solid var(--outline);border-radius:var(--radius-pill);font-family:var(--font-display);letter-spacing:0;cursor:pointer;transition:var(--transition);white-space:nowrap;outline:none;min-height:48px;padding:14px 24px;font-size:11px;font-weight:400;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";pointer-events:none;background:linear-gradient(100deg,#0000,#ffffff73,#0000);width:60%;height:100%;transition:left .45s;position:absolute;top:0;left:-120%}.btn:hover:before{left:130%}.btn:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.btn-gold{background:var(--accent-gradient);color:var(--ink);border-color:var(--ink);box-shadow:var(--shadow-md), 0 0 16px #ffc53d40;text-shadow:0 1px #ffffff59}.btn-gold:hover{box-shadow:var(--shadow-lg), 0 0 26px #ffc53d73;filter:brightness(1.08);transform:translateY(-3px)}.btn-gold:active{box-shadow:var(--shadow-press);transform:translateY(2px)}.btn-outline{background:var(--bg-surface);color:var(--text-primary);border:3px solid var(--outline);box-shadow:var(--shadow-sm)}.btn-outline:hover{background:var(--glass-light);border-color:var(--cyan);color:var(--cyan-light);box-shadow:var(--shadow-md), 0 0 14px var(--cyan-alpha-15);transform:translateY(-2px)}.btn-outline:active{box-shadow:var(--shadow-press);transform:translateY(1px)}.btn-danger{background:linear-gradient(180deg, #ff8098, var(--danger));color:var(--ink);border:3px solid var(--ink);box-shadow:var(--shadow-md)}.btn-danger:hover{box-shadow:var(--shadow-lg), 0 0 20px #ff4d6d66;transform:translateY(-3px)}.btn-danger:active{box-shadow:var(--shadow-press);transform:translateY(2px)}.btn-sm{border-radius:var(--radius-pill);min-height:40px;padding:10px 16px;font-size:9px}.btn:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.6);box-shadow:var(--shadow-sm)!important;transform:none!important}.btn:disabled:before{display:none}.input-group{flex-direction:column;gap:6px;width:100%;display:flex}.input-group label{font-family:var(--font-display);color:var(--text-secondary);text-transform:uppercase;letter-spacing:0;font-size:9px;font-weight:400}.input-field{border:3px solid var(--outline);border-radius:var(--radius);background:var(--cream);color:var(--text-primary);font-size:19px;font-family:var(--font-body);transition:var(--transition);outline:none;width:100%;padding:12px 16px;font-weight:400;box-shadow:inset 2px 2px #00000073}.input-field:focus{border-color:var(--cyan);box-shadow:inset 2px 2px 0 #00000073, 0 0 0 3px var(--cyan-alpha-15);background:#0b1225}.input-field::placeholder{color:var(--text-muted);opacity:.8}.input-field:focus{caret-color:var(--cyan)}.text-gold{color:var(--accent)}.text-muted{color:var(--text-muted)}.text-danger{color:var(--danger)}.text-success{color:var(--success)}.text-center{text-align:center}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-16{margin-bottom:16px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}.w-full{width:100%}.cartoon-gradient-text{background:linear-gradient(180deg, var(--cyan) 0%, var(--o) 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(2px 2px 0 var(--shadow-color));-webkit-background-clip:text;background-clip:text}.pmark{shape-rendering:crispedges;width:100%;height:100%;display:block;overflow:visible}.pmark rect{fill:currentColor}.pmark-x{color:var(--x);filter:drop-shadow(0 0 6px var(--x-glow))}.pmark-o{color:var(--o);filter:drop-shadow(0 0 6px var(--o-glow))}.pmark-anim rect{transform-box:fill-box;transform-origin:50%;animation:.22s steps(3,end) both pmarkPixel;animation-delay:calc(var(--i,0) * 18ms)}@keyframes pmarkPixel{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.35)}to{opacity:1;transform:scale(1)}}.message{border-radius:var(--radius);border:3px solid var(--outline);box-shadow:var(--shadow-sm);padding:14px 18px;font-size:16px;font-weight:400;animation:.25s steps(4,end) both pixelIn}.message-error{border-color:var(--danger);color:#ff97ab;background:#ff4d6d24}.message-success{border-color:var(--success);color:#8df5ac;background:#4be87a1f}.spinner{border:4px solid var(--cyan);border-right-color:var(--o);border-bottom-color:var(--accent);width:32px;height:32px;box-shadow:0 0 12px var(--cyan-glow);border-radius:0;animation:.8s steps(8,end) infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-container{justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-8);flex-direction:column;display:flex}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:var(--bg-deep)}::-webkit-scrollbar-thumb{background:var(--outline);border:2px solid var(--bg-deep);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--cyan-dark)}.poke-bg{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.poke-bg span{font-family:var(--font-display);-webkit-user-select:none;user-select:none;opacity:0;animation:45s linear infinite pixelDrift;display:block;position:absolute}.poke-bg span.mote-x{color:var(--x);opacity:.16}.poke-bg span.mote-o{color:var(--o);opacity:.16}.poke-bg span.mote-dot{color:var(--accent);opacity:.22;animation:45s linear infinite pixelDrift,2.4s steps(2,end) infinite moteBlink}.poke-bg .pmark{filter:none}@keyframes pixelDrift{0%{opacity:0;transform:translate(0,0)rotate(0)}10%{opacity:.18}50%{transform:translate(14px,-60vh)rotate(90deg)}90%{opacity:.18}to{opacity:0;transform:translate(-14px,-125vh)rotate(180deg)}}@keyframes moteBlink{0%,to{opacity:.28}50%{opacity:.06}}@keyframes wiggle{0%,to{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}@keyframes popIn{0%{opacity:0;transform:scale(.8)}70%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes livePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.9)}}@keyframes glitchShift{0%,88%,to{text-shadow:2px 2px 0 var(--shadow-color);transform:translate(0)}90%{text-shadow:2px 0 0 var(--o), -2px 0 0 var(--cyan);transform:translate(-2px,1px)}93%{text-shadow:-2px 0 0 var(--o), 2px 0 0 var(--cyan);transform:translate(2px,-1px)}96%{text-shadow:1px 0 0 var(--cyan), -1px 0 0 var(--o);transform:translate(-1px)}}.glitch-text{animation:6s step-end infinite glitchShift}@keyframes neonPulse{0%,to{box-shadow:var(--shadow-md), 0 0 10px var(--cyan-alpha-15)}50%{box-shadow:var(--shadow-md), 0 0 24px var(--cyan-glow)}}@keyframes screenShake{0%,to{transform:translate(0)}15%{transform:translate(-6px,3px)}30%{transform:translate(5px,-4px)}45%{transform:translate(-4px,-2px)}60%{transform:translate(4px,3px)}80%{transform:translate(-2px,1px)}}.shake{animation:.45s steps(2,end) screenShake}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:.15}}.blink{animation:1s step-end infinite blink}@media (width<=768px){.page-content{padding:var(--space-5) var(--space-3)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}body:after,.poke-bg{display:none}}.auth-page{min-height:100vh;padding:var(--space-5);justify-content:center;align-items:center;display:flex;position:relative}.auth-page:before{content:"X";font-family:var(--font-display);color:var(--x);opacity:.16;pointer-events:none;z-index:0;font-size:64px;animation:7s ease-in-out infinite authFloat;position:fixed;top:12%;left:8%}.auth-page:after{content:"O";font-family:var(--font-display);color:var(--o);opacity:.16;pointer-events:none;z-index:0;font-size:56px;animation:9s ease-in-out infinite reverse authFloat;position:fixed;bottom:16%;right:10%}@keyframes authFloat{0%,to{transform:translateY(0)rotate(-6deg)}50%{transform:translateY(-24px)rotate(8deg)}}.auth-container{align-items:center;gap:var(--space-5);z-index:1;flex-direction:column;width:100%;max-width:440px;display:flex;position:relative}.auth-logo{align-items:center;gap:var(--space-3);transition:var(--transition);flex-direction:column;text-decoration:none;animation:.4s steps(5,end) both pixelIn;display:flex}.auth-logo:hover{transform:scale(1.05)}.auth-logo:hover .auth-logo-icon{transform:rotate(-8deg)scale(1.06)}.auth-logo-icon{border:3px solid var(--outline);width:72px;height:72px;box-shadow:var(--shadow-md), 0 0 26px #22e4ff40;transition:var(--transition);animation:5s ease-in-out infinite logoTilt;display:block}@keyframes logoTilt{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.auth-wordmark{font-family:var(--font-display);flex-direction:column;align-items:center;gap:8px;line-height:1;display:flex}.auth-wordmark-top{letter-spacing:10px;text-indent:10px;color:var(--accent);text-shadow:2px 2px 0 var(--shadow-color);font-size:13px}.auth-wordmark-bot{color:var(--text-primary);text-shadow:3px 3px 0 var(--shadow-color);font-size:clamp(18px,6vw,26px)}.auth-wordmark-bot i{color:var(--o);font-style:normal}.auth-card{background:var(--glass);border:4px solid var(--outline);border-radius:var(--radius-xl);width:100%;padding:var(--space-8) var(--space-6);box-shadow:var(--shadow-lg);animation:.4s steps(5,end) both pixelIn;position:relative;overflow:visible}.auth-card:after{content:"";background:linear-gradient(90deg, var(--x), var(--o));filter:blur(14px);opacity:.5;z-index:-1;height:18px;animation:4s ease-in-out infinite alternate authGlow;position:absolute;bottom:-14px;left:6%;right:6%}@keyframes authGlow{0%{opacity:.3}to{opacity:.7}}.auth-title{text-align:center;background:linear-gradient(180deg, var(--cyan) 0%, var(--o) 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(2px 2px 0 var(--shadow-color));-webkit-background-clip:text;background-clip:text;margin-bottom:8px;font-size:16px;line-height:1.6}.auth-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:var(--space-6);font-size:15px;font-weight:600;line-height:1.5}.auth-subtitle--with-x{margin-bottom:var(--space-3)}.auth-form{gap:var(--space-4);flex-direction:column;display:flex}.auth-form .btn{margin-top:var(--space-3);width:100%;padding:16px;font-size:17px}.auth-toggle{text-align:center;color:var(--text-muted);margin-top:var(--space-5);font-size:14px;font-weight:600}.auth-toggle a{color:var(--cyan);cursor:pointer;transition:var(--transition);font-weight:800;text-decoration:none}.auth-toggle a:hover{color:var(--accent);-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.auth-x-btns{width:100%;margin-bottom:var(--space-6);justify-content:center;display:flex}.auth-x-btns .auth-twitter-btn{margin:0}.auth-twitter-btn{border-radius:var(--radius-pill);border:3px solid var(--outline);background:var(--cream);width:100%;color:var(--text-primary);font-family:var(--font-display);transition:var(--transition);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;gap:10px;padding:14px 18px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.auth-twitter-btn:hover{background:var(--glass-light);border-color:var(--cyan);color:var(--cyan);box-shadow:var(--shadow-md), 0 0 14px var(--cyan-alpha-15);transform:translateY(-2px)}.auth-twitter-btn svg{flex-shrink:0}.game-page{align-items:center;gap:var(--space-5);padding-top:var(--space-4);flex-direction:column;display:flex}.game-page-wrap{align-items:center;gap:var(--space-5);flex-direction:column;width:100%;max-width:520px;display:flex;position:relative}.game-wait-overlay{z-index:8;border-radius:var(--radius-xl);border:4px dashed var(--outline);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#070a16ed;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.game-wait-inner{text-align:center;padding:var(--space-5);max-width:280px}.game-wait-title{font-family:var(--font-display);color:var(--accent);margin-top:var(--space-4);font-size:13px;line-height:1.6}.game-wait-hint{margin-top:var(--space-2);color:var(--text-muted);font-size:17px;font-weight:400;line-height:1.5}.game-match-starting-toast{z-index:1500;border-radius:var(--radius-pill);background:var(--accent-gradient);border:3px solid var(--ink);box-shadow:var(--shadow-lg), 0 0 22px var(--accent-alpha-25);font-family:var(--font-display);color:var(--ink);opacity:0;pointer-events:none;transition:opacity .3s ease, transform .3s var(--bounce);padding:14px 32px;font-size:11px;font-weight:400;position:fixed;top:100px;left:50%;transform:translate(-50%)translateY(-12px)}.game-match-starting-toast.visible{opacity:1;transform:translate(-50%)translateY(0)}.game-header{justify-content:space-between;align-items:center;width:100%;max-width:500px;display:flex}.game-player{border-radius:var(--radius-lg);transition:var(--transition);background:var(--white);border:3px solid #0000;flex-direction:column;align-items:center;gap:8px;min-width:120px;padding:16px 20px;display:flex}.game-player.active{background:var(--glass-light);border:3px solid var(--accent);box-shadow:var(--shadow-md), 0 0 18px var(--accent-alpha-25);animation:1.6s steps(4,end) infinite turnBob;transform:scale(1.05)}@keyframes turnBob{0%,to{transform:scale(1.05)translateY(0)}50%{transform:scale(1.05)translateY(-4px)}}.game-player:not(.active){opacity:.45;filter:saturate(.4);border:3px dashed var(--outline-soft)}.player-symbol{border:3px solid var(--outline);background:var(--cream);width:64px;height:64px;box-shadow:var(--shadow-sm);image-rendering:pixelated;border-radius:0;justify-content:center;align-items:center;padding:8px;display:flex}.player-symbol .pmark,.player-symbol img{object-fit:contain;width:100%;height:100%;image-rendering:pixelated}.player-symbol.x{border-color:var(--x);box-shadow:var(--shadow-sm), inset 0 0 14px #22e4ff2e}.player-symbol.o{border-color:var(--o);box-shadow:var(--shadow-sm), inset 0 0 14px #ff3d9e2e}.game-player.active .player-symbol.x{animation:1.6s ease-in-out infinite neonBreathX}.game-player.active .player-symbol.o{animation:1.6s ease-in-out infinite neonBreathO}@keyframes neonBreathX{0%,to{box-shadow:var(--shadow-sm), 0 0 8px var(--x-glow)}50%{box-shadow:var(--shadow-sm), 0 0 22px var(--x-glow)}}@keyframes neonBreathO{0%,to{box-shadow:var(--shadow-sm), 0 0 8px var(--o-glow)}50%{box-shadow:var(--shadow-sm), 0 0 22px var(--o-glow)}}.player-card-type{font-family:var(--font-display);letter-spacing:0;border:2px solid var(--ink);color:var(--ink);text-shadow:0 1px #ffffff40;border-radius:0;padding:4px 8px;font-size:8px;font-weight:400}.player-card-type.type-x{background:var(--x)}.player-card-type.type-o{background:var(--o)}.player-name{color:var(--text-primary);font-size:16px;font-weight:400}.game-vs{font-family:var(--font-display);color:var(--purple);font-size:12px;font-weight:400}.timer-container{width:100%;max-width:500px}.timer-bar-wrapper{background:var(--white);border:3px solid var(--outline);border-radius:var(--radius-pill);width:100%;height:14px;overflow:hidden;box-shadow:inset 2px 2px #00000080}.timer-bar{background:linear-gradient(90deg, var(--cyan), var(--success));border-radius:var(--radius-pill);height:100%;transition:width 1s linear}.timer-bar.urgent{background:linear-gradient(90deg, var(--danger), var(--amber));animation:.5s ease-in-out infinite timerPulse}@keyframes timerPulse{0%,to{opacity:1}50%{opacity:.6}}.timer-text{text-align:center;font-family:var(--font-display);color:var(--text-primary);margin-top:10px;font-size:11px;font-weight:400}.timer-text.urgent{color:var(--danger);animation:.5s ease-in-out infinite timerPulse}.board-container{flex-shrink:0;padding:6px;position:relative}.board-container:before{content:"";background:radial-gradient(ellipse at 30% 20%, var(--x-glow), transparent 60%), radial-gradient(ellipse at 70% 80%, var(--o-glow), transparent 60%);filter:blur(28px);opacity:.5;pointer-events:none;animation:6s ease-in-out infinite alternate boardAura;position:absolute;inset:10px}@keyframes boardAura{0%{opacity:.32}to{opacity:.62}}.board{border:4px solid var(--outline);width:336px;height:336px;box-shadow:var(--shadow-lg), inset 0 0 0 2px #22e4ff24;background:#05070f;border-radius:0;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:6px;padding:10px;animation:.45s steps(6,end) both boardBoot;display:grid;position:relative}@keyframes boardBoot{0%{opacity:0;filter:brightness(3);transform:scaleY(.02)scaleX(1.04)}45%{opacity:1;filter:brightness(2);transform:scaleY(1)scaleX(1)}to{opacity:1;filter:none;transform:none}}.board-scan{pointer-events:none;z-index:3;position:absolute;inset:6px;overflow:hidden}.board-scan:after{content:"";background:linear-gradient(#0000,#22e4ff17,#0000);height:26%;animation:4.5s linear infinite boardScan;position:absolute;left:0;right:0}@keyframes boardScan{0%{transform:translateY(-30%)}to{transform:translateY(400%)}}.board-cell{background:var(--cream);min-width:0;min-height:0;font-family:var(--font-display);cursor:pointer;color:var(--text-primary);image-rendering:pixelated;animation:.3s steps(3,end) both cellIn;animation-delay:calc(var(--cell,0) * 35ms + .18s);border:2px solid #4a57938c;border-radius:0;justify-content:center;align-items:center;padding:10%;transition:background .12s steps(2,end),border-color .12s steps(2,end),transform .1s steps(2,end);display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #0009}@keyframes cellIn{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.board-cell.playable:hover{background:#16203c;transform:scale(1.04)}.board-cell.playable.ghost-x:hover{border-color:var(--x);box-shadow:inset 0 0 16px #22e4ff4d}.board-cell.playable.ghost-o:hover{border-color:var(--o);box-shadow:inset 0 0 16px #ff3d9e4d}.board-cell.taken{cursor:default}.board-cell.disabled{cursor:not-allowed;opacity:.75}.board-cell .mark{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.board-cell .mark.ghost{opacity:0;transition:opacity .12s steps(2,end),transform .12s steps(2,end);transform:scale(.82)}.board-cell.playable:hover .mark.ghost{opacity:.3;transform:scale(1)}.board-cell.just-placed:after{content:"";opacity:0;pointer-events:none;border:3px solid;animation:.5s steps(5,end) stampRing;position:absolute;inset:22%}.board-cell.taken-x{color:var(--x)}.board-cell.taken-o{color:var(--o)}.board-cell.just-placed{animation:.28s steps(3,end) cellThump}@keyframes cellThump{0%{transform:scale(1.14)}60%{transform:scale(.96)}to{transform:scale(1)}}@keyframes stampRing{0%{opacity:.9;inset:40%}to{opacity:0;inset:-14%}}.board-cell.winning{border-color:var(--accent);animation:.5s steps(2,end) infinite winFlash;animation-delay:calc(var(--win-order,0) * 90ms);z-index:2;background:#ffc53d1f}@keyframes winFlash{0%,to{background:#ffc53d1a;transform:scale(1);box-shadow:inset 0 0 0 1px #0009}50%{box-shadow:0 0 22px var(--accent-alpha-25), inset 0 0 12px #ffc53d80;background:#ffc53d6b;transform:scale(1.07)}}.board.board-won{border-color:var(--accent);box-shadow:var(--shadow-lg), 0 0 34px var(--accent-alpha-25)}.game-status{font-family:var(--font-display);text-align:center;border-radius:var(--radius-pill);background:var(--white);border:3px solid var(--outline);box-shadow:var(--shadow-md);color:var(--text-secondary);padding:16px 28px;font-size:12px;font-weight:400;animation:.24s steps(4,end) both pixelIn}.game-status.win{color:var(--ink);background:var(--accent-gradient);border-color:var(--accent-light);text-shadow:0 1px #ffffff59;animation:.9s steps(3,end) infinite alternate winBanner}@keyframes winBanner{0%{box-shadow:var(--shadow-md), 0 0 12px var(--accent-alpha-25);transform:scale(1)}to{box-shadow:var(--shadow-md), 0 0 30px #ffc53d99;transform:scale(1.03)}}.game-status.lose{color:#ff97ab;border-color:var(--danger);background:#ff4d6d24}.game-status.tie{color:var(--text-muted)}.game-status.waiting{color:var(--text-muted);border-style:dashed}.coinflip-overlay{z-index:1000;justify-content:center;align-items:center;gap:var(--space-6);background:#070a16f2;flex-direction:column;display:flex;position:fixed;inset:0}.coinflip-title{font-family:var(--font-display);color:var(--accent);text-align:center;text-shadow:3px 3px 0 var(--shadow-color);font-size:18px;line-height:1.5;animation:2.4s step-end infinite glitchShift}.coinflip-subtitle{color:var(--text-secondary);text-align:center;margin-top:-8px;font-size:20px;font-weight:400}.coin{perspective:600px;width:160px;height:160px;position:relative}.coin-inner{width:100%;height:100%;transform-style:preserve-3d;position:relative}.coin-inner.flipping{animation:2s ease-out forwards coinFlip}.coin-inner.flipping-o{animation:2s ease-out forwards coinFlipO}@keyframes coinFlip{0%{transform:rotateY(0)}to{transform:rotateY(1800deg)}}@keyframes coinFlipO{0%{transform:rotateY(0)}to{transform:rotateY(1980deg)}}.coin-face{width:100%;height:100%;font-family:var(--font-display);backface-visibility:hidden;border:4px solid var(--outline);box-shadow:var(--shadow-lg);border-radius:50%;justify-content:center;align-items:center;font-size:72px;font-weight:700;display:flex;position:absolute}.coin-face img,.coin-face .pmark{object-fit:contain;width:72%;height:72%;image-rendering:pixelated}.coin-face{background:var(--cream);padding:14%;border-radius:0!important}.coin-x{border-color:var(--x);box-shadow:var(--shadow-lg), 0 0 26px var(--x-glow)}.coin-o{border-color:var(--o);box-shadow:var(--shadow-lg), 0 0 26px var(--o-glow);transform:rotateY(180deg)}.coinflip-result{font-family:var(--font-display);text-align:center;opacity:0;animation:fadeInUp .5s var(--bounce) forwards;font-size:14px;font-weight:400;line-height:1.6;animation-delay:2.2s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}.tie-counter{align-items:center;gap:var(--space-2);font-family:var(--font-display);color:var(--text-muted);text-transform:uppercase;letter-spacing:0;font-size:9px;font-weight:400;display:flex}.tie-dot{background:var(--white);border:3px solid var(--outline);width:14px;height:14px;transition:var(--transition);border-radius:50%}.tie-dot.active{background:var(--accent);border-color:var(--outline);transform:scale(1.15)}@media (width<=480px){.board{width:290px;height:290px}.board-cell{font-size:42px}.game-player{min-width:90px;padding:12px 14px}}.bracket-page{padding-top:var(--space-4)}.bracket-header{text-align:center;margin-bottom:var(--space-6)}.bracket-header h1{background:linear-gradient(180deg, var(--accent) 0%, var(--purple) 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(2px 2px 0 var(--shadow-color));-webkit-background-clip:text;background-clip:text;font-size:18px;line-height:1.6}.bracket-header p{color:var(--text-secondary);margin-top:var(--space-2);font-size:15px;font-weight:600}.bracket-wrapper{padding-bottom:var(--space-5);overflow-x:auto}.bracket{min-width:fit-content;padding:var(--space-5);align-items:center;gap:40px;display:flex}.bracket-round{gap:var(--space-4);flex-direction:column;align-items:center;display:flex}.round-title{font-family:var(--font-display);color:var(--purple);text-transform:uppercase;letter-spacing:0;margin-bottom:var(--space-3);text-align:center;background:var(--amber);border-radius:var(--radius-pill);border:2px solid var(--outline);padding:6px 14px;font-size:9px;font-weight:400}.bracket-match{background:var(--glass);border:3px solid var(--outline);border-radius:var(--radius);min-width:180px;transition:var(--transition);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;overflow:hidden}.bracket-match.active{border-color:var(--outline);box-shadow:var(--shadow-md);background:var(--amber);transform:scale(1.02)}.bracket-match.completed{opacity:.75}.match-player{border-bottom:2px solid var(--stroke);transition:var(--transition);justify-content:space-between;align-items:center;padding:12px 16px;font-size:14px;font-weight:700;display:flex}.match-player:last-of-type{border-bottom:none}.match-player.winner{background:var(--cyan-alpha-15);color:var(--text-primary);font-weight:800}.match-player.loser{opacity:.4}.match-player-name{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.match-player-symbol{flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.match-player-symbol img{object-fit:contain;width:100%;height:100%;filter:drop-shadow(1px 1px 0 var(--shadow-color))}.match-status{font-family:var(--font-display);text-align:center;color:var(--text-muted);background:var(--white);text-transform:uppercase;letter-spacing:.08em;padding:8px;font-size:10px;font-weight:700}.match-status.live{color:var(--success-dark);background:#e8fff0;animation:2s ease-in-out infinite livePulse}.bracket-connector{flex-direction:column;justify-content:center;width:40px;display:flex;position:relative}.prize-banner{text-align:center;margin-top:var(--space-6);padding:var(--space-6);background:var(--amber);border:4px solid var(--outline);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.prize-amount{font-family:var(--font-display);color:var(--accent);letter-spacing:0;-webkit-text-stroke:1px var(--outline);font-size:24px;font-weight:400}.prize-label{font-family:var(--font-display);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;margin-top:6px;font-size:12px;font-weight:700}.bracket-actions{justify-content:center;gap:var(--space-4);margin-top:var(--space-5);display:flex}.btn-spectate{border:none;border-top:2px solid var(--stroke);background:var(--purple);width:100%;color:var(--ink);font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:var(--transition);padding:10px 0;font-size:11px;font-weight:700;display:block}.btn-spectate:hover{background:var(--purple-dark);filter:brightness(1.1)}.spectate-hint{color:var(--purple);margin-top:6px;font-size:14px;font-weight:700}@media (width<=768px){.bracket{gap:20px}.bracket-match{min-width:140px}}.wallet-page{max-width:600px;padding-top:var(--space-4);margin:0 auto}.wallet-page h1{background:linear-gradient(180deg, var(--accent) 0%, var(--purple) 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(2px 2px 0 var(--shadow-color));margin-bottom:var(--space-5);-webkit-background-clip:text;background-clip:text;font-size:18px;line-height:1.6}.wallet-balance-card{background:var(--amber);border:4px solid var(--outline);border-radius:var(--radius-xl);padding:var(--space-8) var(--space-6);text-align:center;box-shadow:var(--shadow-lg);margin-bottom:var(--space-5);position:relative}.balance-label{font-family:var(--font-display);color:var(--text-secondary);text-transform:uppercase;letter-spacing:0;font-size:9px;font-weight:400}.balance-amount{font-family:var(--font-display);color:var(--accent);margin:var(--space-3) 0;letter-spacing:0;-webkit-text-stroke:1px var(--outline);font-size:30px;font-weight:400}.balance-refresh{font-family:var(--font-display);color:var(--text-secondary);margin-top:var(--space-3);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:8px;font-size:11px;font-weight:700;display:inline-flex}.refresh-dot{background:var(--success);border:2px solid var(--outline);border-radius:50%;width:10px;height:10px;animation:2s ease-in-out infinite livePulse}.wallet-address-card{margin-bottom:var(--space-5)}.address-display{align-items:center;gap:var(--space-2);margin-top:var(--space-2);display:flex}.address-text{background:var(--cream);border:3px solid var(--outline);border-radius:var(--radius);font-family:var(--font-body);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:all;user-select:all;flex:1;padding:12px 16px;font-size:12px;font-weight:600;overflow:hidden}.copy-btn{background:var(--cyan);border:3px solid var(--outline);border-radius:var(--radius);color:var(--text-primary);cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;min-width:48px;min-height:48px;padding:12px 16px;font-size:16px;display:inline-flex}.copy-btn:hover{background:var(--cyan-light);box-shadow:var(--shadow-md);transform:translateY(-2px)}.withdraw-section{margin-bottom:var(--space-5)}.withdraw-form{gap:var(--space-3);margin-top:var(--space-3);flex-direction:column;display:flex}.withdraw-row{gap:var(--space-3);display:flex}.withdraw-row .input-group{flex:1}.tx-list{gap:var(--space-2);margin-top:var(--space-3);flex-direction:column;display:flex}.tx-item{padding:14px var(--space-4);background:var(--white);border:3px solid var(--outline);border-radius:var(--radius);transition:var(--transition);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;display:flex}.tx-item:hover{box-shadow:var(--shadow-md);transform:translate(4px)}.tx-type{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:700}.tx-type.prize{color:var(--accent)}.tx-type.withdraw{color:var(--danger)}.tx-type.deposit{color:var(--success-dark)}.tx-amount{font-family:var(--font-display);color:var(--text-primary);font-size:16px;font-weight:700}.tx-date{color:var(--text-muted);margin-left:var(--space-2);font-size:11px;font-weight:600}@media (width<=480px){.withdraw-row{flex-direction:column}.balance-amount{font-size:40px}}.profile-page{max-width:600px;padding-top:var(--space-4);margin:0 auto}.profile-page h1{background:linear-gradient(180deg, var(--accent) 0%, var(--purple) 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(2px 2px 0 var(--shadow-color));margin-bottom:var(--space-5);-webkit-background-clip:text;background-clip:text;font-size:18px;line-height:1.6}.profile-avatar{background:linear-gradient(180deg, var(--accent-light), var(--accent));width:96px;height:96px;font-family:var(--font-display);color:var(--ink);margin:0 auto var(--space-4);border:4px solid var(--outline);box-shadow:var(--shadow-lg);border-radius:0;justify-content:center;align-items:center;font-size:40px;font-weight:700;display:flex}.profile-username{text-align:center;font-family:var(--font-display);color:var(--text-primary);margin-bottom:var(--space-6);font-size:15px;line-height:1.6}.profile-section{margin-bottom:var(--space-5)}.profile-section h2{color:var(--text-primary);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:3px dashed var(--stroke);font-size:18px}.password-form{gap:var(--space-3);flex-direction:column;display:flex}.key-display{margin-top:var(--space-2)}.key-row{gap:var(--space-2);margin-bottom:var(--space-3);flex-direction:column;display:flex}.key-label{font-family:var(--font-display);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:700}.key-value{align-items:center;gap:var(--space-2);display:flex}.key-text{background:var(--white);border:3px solid var(--outline);border-radius:var(--radius);font-family:var(--font-body);color:var(--text-primary);word-break:break-all;-webkit-user-select:all;user-select:all;flex:1;padding:12px 16px;font-size:11px;font-weight:600}.key-warning{align-items:center;gap:var(--space-2);border:3px solid var(--danger);border-radius:var(--radius);color:#ff97ab;margin-top:var(--space-2);box-shadow:var(--shadow-sm);background:#ff4d6d1f;padding:14px 16px;font-size:13px;font-weight:700;display:flex}.toggle-key-btn{border:3px solid var(--danger);border-radius:var(--radius-pill);color:#ff97ab;cursor:pointer;font-family:var(--font-display);transition:var(--transition);text-transform:uppercase;letter-spacing:.05em;box-shadow:var(--shadow-sm);background:#ff4d6d1f;padding:10px 18px;font-size:12px;font-weight:700}.toggle-key-btn:hover{background:var(--danger);color:var(--ink);box-shadow:var(--shadow-md);transform:translateY(-2px)}
