@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700;900&display=swap";:root,[data-theme=glass-dark]{--bg-color:#050505;--glass-bg:#0f0f0f99;--glass-border:1px solid #ffffff0d;--neon-cyan:#00f0ff;--neon-magenta:#f05;--key-shadow:0 10px 30px #000c}[data-theme=cyberpunk]{--bg-color:#050505;--glass-bg:#0a0a0acc;--glass-border:1px solid #0ff;--neon-cyan:#0ff;--neon-magenta:#f0f;--key-shadow:0 10px 15px #0ff3}[data-theme=cyberpunk] .game-wrapper{background:repeating-linear-gradient(45deg,#050505,#050505 10px,#111 10px 20px)}[data-theme=retro-brutal]{--bg-color:#facc15;--glass-bg:#fff;--glass-border:4px solid #000;--neon-cyan:#2563eb;--neon-magenta:#ef4444;--key-shadow:6px 6px 0px #000}[data-theme=retro-brutal] *{color:#000!important;text-shadow:none!important}[data-theme=retro-brutal] .cell-inner{background:#fff}[data-theme=synthwave]{--bg-color:#2b0b3f;--glass-bg:linear-gradient(180deg, #2b0b3fcc 0%, #0d0221e6 100%);--glass-border:2px solid #ff007f;--neon-cyan:#00f0ff;--neon-magenta:#ff007f;--key-shadow:0 10px 20px #ff007f66}[data-theme=synthwave] .game-wrapper{background:linear-gradient(#0d0221 0%,#2b0b3f 60%,#ff007f 100%)}[data-theme=synthwave] .cell-inner{background:#160424}[data-theme=frost]{--bg-color:#e0e5ec;--glass-bg:#fff9;--glass-border:1px solid #fffc;--neon-cyan:#3182ce;--neon-magenta:#e53e3e;--key-shadow:0 10px 20px #0000000d}[data-theme=frost] *{color:#2d3748;text-shadow:none!important}[data-theme=frost] .cell-inner{background:#fffc}[data-theme=frost] .custom-cursor{background:#2d3748;box-shadow:0 0 15px #0003}[data-theme=matrix]{--bg-color:#000;--glass-bg:#001400d9;--glass-border:1px solid #0f0;--neon-cyan:#fff;--neon-magenta:#0f0;--key-shadow:0 10px 30px #0f03}[data-theme=matrix] *{font-family:Courier New,Courier,monospace!important}[data-theme=matrix] .orb{display:none}[data-theme=dracula]{--bg-color:#282a36;--glass-bg:#44475a;--glass-border:2px solid #bd93f9;--neon-cyan:#f55;--neon-magenta:#50fa7b;--key-shadow:0 10px 30px #0009, inset 0 2px 2px #ffffff0d}[data-theme=dracula] .cell-inner{background:#282a36}[data-theme=vaporwave]{--bg-color:#ffb8d1;--glass-bg:#ffffff4d;--glass-border:2px solid #ff7eb3;--neon-cyan:#00d2ff;--neon-magenta:#ff0844;--key-shadow:0 15px 35px #ff08444d}[data-theme=vaporwave] .cell-inner{background:#fff9}[data-theme=vaporwave] .game-wrapper{background:linear-gradient(#a18cd1 0%,#fbc2eb 100%)}[data-theme=monochrome]{--bg-color:#fff;--glass-bg:#fff;--glass-border:6px solid #000;--neon-cyan:#000;--neon-magenta:#000;--key-shadow:12px 12px 0px #000}[data-theme=monochrome] .cell-key{border:4px solid #000;border-radius:0}[data-theme=monochrome] .cell-inner{background:#fff;border-radius:0}[data-theme=monochrome] .floating-island{border-radius:0;box-shadow:10px 10px #000}[data-theme=monochrome] *{color:#000!important;text-shadow:none!important}[data-theme=monochrome] .glitch-title:before,[data-theme=monochrome] .glitch-title:after{display:none}*{box-sizing:border-box;margin:0;padding:0;font-family:Space Grotesk,sans-serif;cursor:none!important}body{background:var(--bg-color);color:#fff;overflow:hidden}.game-wrapper{justify-content:center;align-items:center;width:100vw;height:100vh;transition:background 1s;display:flex;position:relative}.custom-cursor{pointer-events:none;z-index:9999;width:12px;height:12px;box-shadow:0 0 15px 5px var(--neon-cyan), 0 0 30px var(--neon-magenta);mix-blend-mode:screen;background:#fff;border-radius:50%;transition:transform .1s ease-out;position:fixed;transform:translate(-50%,-50%)}body:active .custom-cursor{transform:translate(-50%,-50%)scale(1.5)}.sparks-container{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.spark{width:3px;height:3px;box-shadow:0 0 10px var(--neon-cyan);background:#fff;border-radius:50%;animation:linear infinite driftUp;position:absolute;bottom:-10px}.spark:first-child{animation-duration:8s;animation-delay:1s;left:10%}.spark:nth-child(2){background:var(--neon-magenta);animation-duration:12s;left:20%}.spark:nth-child(3){animation-duration:6s;animation-delay:2s;left:35%}.spark:nth-child(4){background:var(--neon-magenta);animation-duration:10s;left:50%}.spark:nth-child(5){animation-duration:7s;animation-delay:.5s;left:70%}.spark:nth-child(6){animation-duration:11s;left:85%}.spark:nth-child(7){background:var(--neon-magenta);animation-duration:9s;animation-delay:3s;left:95%}.spark:nth-child(8){animation-duration:5s;animation-delay:4s;left:25%}.spark:nth-child(9){animation-duration:14s;left:60%}.spark:nth-child(10){animation-duration:8s;animation-delay:2s;left:80%}.spark:nth-child(n+11){display:none}@keyframes driftUp{0%{opacity:0;transform:translateY(0)translate(0)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(-110vh)translate(30px)}}.noise-overlay{pointer-events:none;z-index:100;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");width:100vw;height:100vh;position:fixed;top:0;left:0}.orb{filter:blur(100px);opacity:.35;z-index:0;pointer-events:none;border-radius:50%;position:absolute}.orb-1{background:var(--neon-cyan);width:400px;height:400px;animation:10s infinite alternate float;top:5%;left:15%}.orb-2{background:var(--neon-magenta);width:500px;height:500px;animation:12s infinite alternate-reverse float;bottom:5%;right:10%}@keyframes float{0%{transform:translateY(0)}to{transform:translateY(60px)}}.scene-3d{transform-style:preserve-3d;z-index:10;flex-direction:column;align-items:center;gap:15px;transition:transform .1s cubic-bezier(.2,.8,.2,1);display:flex}.glitch-title{letter-spacing:4px;color:#fff;font-size:32px;font-weight:900;position:relative;transform:translateZ(60px)}.glitch-title:before,.glitch-title:after{content:attr(data-text);width:100%;height:100%;position:absolute;top:0;left:0}.glitch-title:before{text-shadow:-2px 0 var(--neon-magenta);clip:rect(24px, 550px, 90px, 0);animation:3s linear infinite alternate-reverse glitch-anim;left:2px}.glitch-title:after{text-shadow:-2px 0 var(--neon-cyan);clip:rect(85px, 550px, 140px, 0);animation:2.5s linear infinite alternate-reverse glitch-anim;left:-2px}@keyframes glitch-anim{0%{clip:rect(10px, 9999px, 31px, 0);transform:skew(.2deg)}5%{clip:rect(70px, 9999px, 11px, 0);transform:skew(.5deg)}20%{clip:rect(0px, 0px, 0px, 0px)}to{clip:rect(0px, 0px, 0px, 0px)}}.announcer-box{border-left:3px solid var(--neon-magenta);color:var(--neon-cyan);letter-spacing:1px;background:#050505d9;border-radius:4px;align-items:center;gap:8px;margin-bottom:10px;padding:8px 16px;font-family:Courier New,Courier,monospace;font-size:12px;font-weight:700;display:flex;transform:translateZ(50px);box-shadow:0 0 15px #ff00554d}.blink-dot{background:var(--neon-magenta);border-radius:50%;width:8px;height:8px;animation:1s infinite blink}.floating-island{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:var(--glass-border);border-radius:100px;justify-content:center;align-items:center;gap:20px;padding:10px 20px;display:flex;transform:translateZ(30px);box-shadow:0 20px 40px #0009,inset 0 1px 1px #ffffff1a}.top-island{gap:10px;padding:8px}.pill-selector{background:#00000080;border:1px solid #ffffff0d;border-radius:50px;padding:4px;display:flex}.pill-selector button{color:#777;background:0 0;border:none;border-radius:50px;padding:8px 18px;font-size:13px;font-weight:700;transition:all .3s}.pill-selector button.active{color:#000;background:#fff;box-shadow:0 0 10px #ffffff4d}.score-island{justify-content:space-between;width:100%;max-width:400px;transform:translateZ(40px)}.player-stat{align-items:center;gap:10px;display:flex}.player-stat h2{color:#fff;font-size:28px;font-weight:700}.x-stat span{color:var(--neon-cyan);font-size:20px;font-weight:900}.o-stat span{color:var(--neon-magenta);font-size:20px;font-weight:900}.turn-indicator{text-transform:uppercase;letter-spacing:2px;color:#aaa;font-size:14px;font-weight:700}.win-text{color:#fff;text-shadow:0 0 15px #fff}.board-grid{transform-style:preserve-3d;grid-template-columns:repeat(3,1fr);gap:16px;display:grid;transform:translateZ(50px)}.cell-key{width:100px;height:100px;box-shadow:var(--key-shadow);background:#141414b3;border:1px solid #ffffff0d;border-radius:32px;justify-content:center;align-items:center;font-size:50px;transition:transform .15s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.cell-key:before{content:"";background:radial-gradient(800px circle at var(--mouse-x) var(--mouse-y), #ffffff14, transparent 40%);z-index:1;opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .3s;position:absolute;top:0;left:0}.cell-key:hover:before{opacity:1}.cell-inner{z-index:2;pointer-events:none;background:#0a0a0ae6;border-radius:30px;justify-content:center;align-items:center;display:flex;position:absolute;inset:2px}.cell-key:hover:empty{transform:translateY(-4px)translateZ(10px)}.cell-key:active:empty,.cell-key:not(:empty){transform:translateY(2px)}.key-content{z-index:3;animation:.4s cubic-bezier(.175,.885,.32,1.275) pop;position:relative}@keyframes pop{0%{transform:scale(0)}to{transform:scale(1)}}.x-key .key-content{color:var(--neon-cyan);text-shadow:0 0 25px #00f0ffcc}.o-key .key-content{color:var(--neon-magenta);text-shadow:0 0 25px #f05c}.cell-key:empty:hover .cell-inner:after{content:attr(data-hover);opacity:.08;font-size:50px;position:absolute}.cell-key:empty:hover[data-hover=X] .cell-inner:after{color:var(--neon-cyan)}.cell-key:empty:hover[data-hover=O] .cell-inner:after{color:var(--neon-magenta)}.winner-key{z-index:5;border-color:#0000;transform:translateZ(30px)scale(1.08)!important}.winner-key .cell-inner{background:#ffffff0d;box-shadow:inset 0 0 30px}.winner-key.x-key .cell-inner{border:1px solid var(--neon-cyan);box-shadow:inset 0 0 40px #00f0ff66}.winner-key.o-key .cell-inner{border:1px solid var(--neon-magenta);box-shadow:inset 0 0 40px #f056}.fading-key .key-content{animation:1s infinite blinkFade}@keyframes blinkFade{0%,to{opacity:.15}50%{opacity:.9}}.reset-island{color:#fff;text-transform:uppercase;letter-spacing:2px;background:#ffffff0d;border-radius:14px;padding:14px 28px;font-size:12px;font-weight:700;transition:all .2s;transform:translateZ(20px)}.reset-island:hover{background:#ffffff1a;box-shadow:0 0 20px #ffffff1a}.reset-island:active{transform:translateZ(10px)translateY(2px)}.shake{animation:.5s shakeBoard}@keyframes shakeBoard{0%,to{transform:translateZ(50px)translate(0)}25%{transform:translateZ(50px)translate(-5px)}75%{transform:translateZ(50px)translate(5px)}}.recoil-active{transform:perspective(1200px)translateZ(-40px)scale(.98)!important}.env-x-win .orb-1{background:var(--neon-cyan);opacity:.6;transition:all 1s;transform:scale(2)}.env-x-win .orb-2{background:var(--neon-cyan);transition:all 1s}.env-o-win .orb-2{background:var(--neon-magenta);opacity:.6;transition:all 1s;transform:scale(2)}.env-o-win .orb-1{background:var(--neon-magenta);transition:all 1s}.boot-screen{width:100vw;height:100vh;color:var(--neon-cyan);background:#000;justify-content:center;align-items:center;font-family:Courier New,Courier,monospace;display:flex}.boot-terminal{width:400px}.boot-log{opacity:0;margin-bottom:8px;font-size:14px;font-weight:700;animation:.5s steps(30,end) forwards typeIn}.boot-log:first-child{animation-delay:.1s}.boot-log:nth-child(2){animation-delay:.8s}.boot-log:nth-child(3){animation-delay:1.6s}.boot-loader{background:#00f0ff33;width:100%;height:2px;margin-top:20px;position:relative;overflow:hidden}.boot-loader:after{content:"";background:var(--neon-cyan);width:30%;height:100%;box-shadow:0 0 10px var(--neon-cyan);animation:2.4s cubic-bezier(.4,0,.2,1) forwards loadProgress;position:absolute;top:0;left:0}@keyframes typeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes loadProgress{0%{width:0%;left:0}50%{width:70%;left:10%}to{width:100%;left:0}}@media (width<=500px){.cell-key{border-radius:24px;width:80px;height:80px;font-size:40px}.board-grid{gap:12px}.top-island{border-radius:20px;flex-direction:column}.glitch-title{font-size:26px}}
