:root{--ttt-cyan:#06b6d4;--ttt-cyan-glow:rgba(6,182,212,0.4);--ttt-orange:#f97316;--ttt-orange-glow:rgba(249,115,22,0.4);--ttt-bg:rgba(15,15,30,0.95);--ttt-card:rgba(25,25,50,0.9);--ttt-border:rgba(255,255,255,0.08);--ttt-gold:#fbbf24;--ttt-red:#ef4444;--ttt-green:#22c55e;--ttt-purple:#8b5cf6}.game-background{position:fixed;inset:0;background:radial-gradient(ellipse at 20% 80%,rgba(6,182,212,0.12) 0,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(249,115,22,0.08) 0,transparent 50%),radial-gradient(ellipse at 50% 50%,rgba(15,10,35,0.8) 0,transparent 70%),linear-gradient(180deg,#0a0a1a 0,#0f0a2a 100%);z-index:-1}.ttt-game-container{max-width:640px;margin:0 auto;padding:100px 1rem 2rem;min-height:100vh}.ttt-game-header{text-align:center;margin-bottom:1rem}.ttt-game-header h1{font-size:1.8rem;font-weight:700;background:linear-gradient(135deg,var(--ttt-cyan),var(--ttt-orange));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 .25rem 0}.ttt-back-link{color:rgba(255,255,255,0.6);text-decoration:none;font-size:.85rem;display:inline-flex;align-items:center;gap:.4rem;transition:color .2s}.ttt-back-link:hover{color:var(--ttt-cyan)}.ttt-game-card{background:var(--ttt-card);border:1px solid var(--ttt-border);border-radius:16px;padding:1.5rem;backdrop-filter:blur(10px)}.ttt-instructions-bar{background:rgba(6,182,212,0.08);border:1px solid rgba(6,182,212,0.15);border-radius:10px;padding:.75rem 1rem;margin-bottom:1rem;text-align:center;font-size:.85rem;color:rgba(255,255,255,0.8);line-height:1.5}.ttt-instructions-bar strong{color:var(--ttt-orange)}.ttt-mode-tabs{display:flex;gap:4px;margin-bottom:1.5rem;background:rgba(255,255,255,0.05);border-radius:10px;padding:4px;width:100%}.ttt-mode-tab{flex:1;padding:.6rem .5rem;background:transparent;border:1px solid transparent;border-radius:8px;color:rgba(255,255,255,0.6);font-weight:600;font-size:.8rem;cursor:pointer;transition:all .2s;text-align:center;white-space:nowrap}.ttt-mode-tab:hover{background:rgba(255,255,255,0.08);color:white}.ttt-mode-tab.active{background:rgba(6,182,212,0.2);color:var(--ttt-gold);border:1px solid rgba(6,182,212,0.4)}.ttt-mode-content{animation:tttFadeIn .2s ease}@keyframes tttFadeIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.ttt-difficulty-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1rem}.ttt-diff-btn{background:rgba(255,255,255,0.05);border:1px solid var(--ttt-border);border-radius:12px;padding:1rem .5rem;color:white;cursor:pointer;transition:all .25s;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem}.ttt-diff-btn:hover{border-color:var(--ttt-cyan);background:rgba(6,182,212,0.1);transform:translateY(-2px)}.ttt-diff-btn .diff-icon{font-size:1.5rem}.ttt-diff-btn .diff-label{font-weight:700;font-size:.95rem}.ttt-diff-btn .diff-size{font-size:.75rem;color:rgba(255,255,255,0.5)}.ttt-diff-btn.easy{border-color:rgba(34,197,94,0.3)}.ttt-diff-btn.easy:hover{border-color:var(--ttt-green);background:rgba(34,197,94,0.1)}.ttt-diff-btn.medium{border-color:rgba(251,191,36,0.3)}.ttt-diff-btn.medium:hover{border-color:var(--ttt-gold);background:rgba(251,191,36,0.1)}.ttt-diff-btn.hard{border-color:rgba(239,68,68,0.3)}.ttt-diff-btn.hard:hover{border-color:var(--ttt-red);background:rgba(239,68,68,0.1)}.ttt-submissions-info{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;background:rgba(139,92,246,0.1);border:1px solid rgba(139,92,246,0.3);color:var(--ttt-purple);border-radius:8px;font-size:.9rem;font-weight:500}.ttt-mp-settings{display:flex;flex-direction:column;gap:1rem}.ttt-setting-group{display:flex;flex-direction:column;gap:.5rem}.ttt-setting-label{font-size:.85rem;font-weight:600;color:rgba(255,255,255,0.7)}.ttt-option-group{display:flex;gap:.5rem;flex-wrap:wrap}.ttt-option-btn{flex:1;min-width:60px;padding:.5rem .75rem;background:rgba(255,255,255,0.05);border:1px solid var(--ttt-border);border-radius:8px;color:rgba(255,255,255,0.7);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s;text-align:center}.ttt-option-btn:hover{background:rgba(6,182,212,0.1);border-color:rgba(6,182,212,0.3)}.ttt-option-btn.selected{background:rgba(6,182,212,0.2);border-color:var(--ttt-cyan);color:var(--ttt-cyan)}.ttt-friend-list{max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.15) transparent}.ttt-friend-item{display:flex;justify-content:space-between;align-items:center;background:rgba(255,255,255,0.05);border:1px solid var(--ttt-border);border-radius:8px;padding:.6rem .75rem;cursor:pointer;transition:all .2s}.ttt-friend-item:hover{border-color:var(--ttt-cyan);background:rgba(6,182,212,0.08)}.ttt-friend-item .friend-name{font-weight:600;font-size:.9rem}.ttt-friend-item .friend-status{font-size:.75rem;color:var(--ttt-green)}.ttt-queue-btn{width:100%;padding:.85rem;background:linear-gradient(135deg,var(--ttt-cyan),var(--ttt-purple));border:0;border-radius:10px;color:white;font-weight:700;font-size:1rem;cursor:pointer;transition:all .2s}.ttt-queue-btn:hover{transform:translateY(-1px);box-shadow:0 4px 15px var(--ttt-cyan-glow)}.ttt-queue-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.ttt-cancel-btn{width:100%;padding:.6rem;background:rgba(239,68,68,0.15);border:1px solid rgba(239,68,68,0.3);border-radius:8px;color:var(--ttt-red);font-weight:600;font-size:.85rem;cursor:pointer;transition:all .2s;margin-top:.5rem}.ttt-cancel-btn:hover{background:rgba(239,68,68,0.25)}.ttt-waiting-status{text-align:center;padding:1.5rem;color:rgba(255,255,255,0.7)}.ttt-waiting-status .spinner{display:inline-block;width:24px;height:24px;border:3px solid rgba(6,182,212,0.2);border-top-color:var(--ttt-cyan);border-radius:50%;animation:tttSpin .8s linear infinite;margin-bottom:.75rem}@keyframes tttSpin{to{transform:rotate(360deg)}}.ttt-resume-banner{background:linear-gradient(135deg,rgba(6,182,212,0.15),rgba(139,92,246,0.15));border:1px solid rgba(6,182,212,0.3);border-radius:10px;padding:.75rem 1rem;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center;animation:tttPulse 2s infinite}@keyframes tttPulse{0%,100%{border-color:rgba(6,182,212,0.3)}50%{border-color:rgba(6,182,212,0.6)}}.ttt-resume-banner .resume-text{font-weight:600;font-size:.9rem}.ttt-resume-banner .resume-btn{padding:.4rem 1rem;background:var(--ttt-cyan);border:0;border-radius:6px;color:white;font-weight:600;font-size:.85rem;cursor:pointer}.ttt-game-screen{display:flex;flex-direction:column;align-items:center;gap:1rem}.ttt-player-bar{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.5rem}.ttt-player-info{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;border-radius:8px;background:rgba(255,255,255,0.05);border:1px solid var(--ttt-border);font-size:.85rem;font-weight:600;min-width:0;flex:1}.ttt-player-info.active-turn{border-color:var(--ttt-cyan);background:rgba(6,182,212,0.1);box-shadow:0 0 10px var(--ttt-cyan-glow)}.ttt-player-info .mark-badge{font-weight:800;font-size:1.1rem;min-width:24px;text-align:center}.ttt-player-info .mark-badge.mark-o{color:var(--ttt-cyan)}.ttt-player-info .mark-badge.mark-x{color:var(--ttt-orange)}.ttt-player-info .player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ttt-clock{font-family:'Space Grotesk',monospace;font-weight:700;font-size:.85rem;margin-left:auto;padding:.2rem .5rem;border-radius:4px;background:rgba(0,0,0,0.3)}.ttt-clock.low-time{color:var(--ttt-red);animation:clockPulse 1s infinite}@keyframes clockPulse{0%,100%{opacity:1}50%{opacity:.5}}.ttt-round-indicator{font-size:.75rem;color:rgba(255,255,255,0.5);text-align:center}.ttt-status-bar{text-align:center;font-size:.9rem;font-weight:600;color:var(--ttt-gold);min-height:24px}.ttt-board{display:grid;gap:4px;width:100%;max-width:400px;aspect-ratio:1;background:rgba(255,255,255,0.05);border-radius:12px;padding:6px}.ttt-board.size-3{grid-template-columns:repeat(3,1fr)}.ttt-board.size-4{grid-template-columns:repeat(4,1fr)}.ttt-board.size-5{grid-template-columns:repeat(5,1fr)}.ttt-cell{aspect-ratio:1;background:rgba(20,20,40,0.8);border:2px solid rgba(255,255,255,0.06);border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:800;cursor:pointer;transition:all .15s;position:relative;user-select:none}.ttt-cell:hover:not(.occupied):not(.disabled){background:rgba(6,182,212,0.12);border-color:rgba(6,182,212,0.3);transform:scale(1.03)}.ttt-cell.occupied{cursor:default}.ttt-cell.disabled{cursor:default;opacity:.7}.ttt-cell .cell-mark{font-size:2.5rem;line-height:1;transition:all .2s}.ttt-board.size-4 .ttt-cell .cell-mark{font-size:2rem}.ttt-board.size-5 .ttt-cell .cell-mark{font-size:1.5rem}.ttt-cell .cell-mark.mark-o{color:var(--ttt-cyan);text-shadow:0 0 12px var(--ttt-cyan-glow)}.ttt-cell .cell-mark.mark-x{color:var(--ttt-orange);text-shadow:0 0 12px var(--ttt-orange-glow)}.ttt-cell.last-move{border-color:rgba(251,191,36,0.4);background:rgba(251,191,36,0.06)}.ttt-cell.losing-line{border-color:var(--ttt-red);background:rgba(239,68,68,0.15);animation:losingFlash .5s ease 3}@keyframes losingFlash{0%,100%{background:rgba(239,68,68,0.15)}50%{background:rgba(239,68,68,0.35)}}.ttt-cell.mark-placed{animation:markPop .25s cubic-bezier(0.34,1.56,0.64,1)}@keyframes markPop{0%{transform:scale(0.5)}100%{transform:scale(1)}}.ttt-game-controls{display:flex;gap:.5rem;width:100%}.ttt-ctrl-btn{flex:1;padding:.5rem;background:rgba(255,255,255,0.05);border:1px solid var(--ttt-border);border-radius:8px;color:rgba(255,255,255,0.7);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s}.ttt-ctrl-btn:hover{background:rgba(239,68,68,0.1);border-color:rgba(239,68,68,0.3);color:var(--ttt-red)}.ttt-end-screen{text-align:center;padding:1.5rem 0}.ttt-end-title{font-size:2rem;font-weight:800;margin-bottom:.5rem}.ttt-end-title.win{color:var(--ttt-green)}.ttt-end-title.loss{color:var(--ttt-red)}.ttt-end-title.draw{color:var(--ttt-gold)}.ttt-end-method{font-size:.9rem;color:rgba(255,255,255,0.6);margin-bottom:1.5rem}.ttt-end-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.75rem;margin-bottom:1.5rem}.ttt-stat-box{background:rgba(255,255,255,0.05);border:1px solid var(--ttt-border);border-radius:10px;padding:.75rem}.ttt-stat-box .stat-value{font-size:1.3rem;font-weight:800;color:var(--ttt-gold)}.ttt-stat-box .stat-label{font-size:.7rem;color:rgba(255,255,255,0.5);margin-top:.2rem}.ttt-end-actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.ttt-end-btn{padding:.7rem 1.5rem;border:0;border-radius:10px;font-weight:700;font-size:.9rem;cursor:pointer;transition:all .2s}.ttt-end-btn.primary{background:linear-gradient(135deg,var(--ttt-cyan),var(--ttt-purple));color:white}.ttt-end-btn.primary:hover{transform:translateY(-1px);box-shadow:0 4px 15px var(--ttt-cyan-glow)}.ttt-end-btn.secondary{background:rgba(255,255,255,0.08);border:1px solid var(--ttt-border);color:rgba(255,255,255,0.8)}.ttt-end-btn.secondary:hover{background:rgba(255,255,255,0.12)}.ttt-ad-multiplier{margin-bottom:1.5rem;padding:1rem;background:rgba(6,182,212,0.05);border:1px solid rgba(6,182,212,0.2);border-radius:12px;text-align:center}.ttt-ad-multiplier h4{color:var(--ttt-gold);margin:0 0 .75rem 0;font-size:.95rem}.ttt-multiplier-buttons{display:flex;gap:.75rem;justify-content:center}.ttt-multiplier-btn{padding:.5rem 1rem;border-radius:8px;border:1px solid var(--ttt-border);background:rgba(139,92,246,0.1);color:rgba(255,255,255,0.9);cursor:pointer;transition:all .2s;font-weight:600;font-size:.85rem}.ttt-multiplier-btn.gold{border-color:rgba(251,191,36,0.4);background:rgba(251,191,36,0.1)}.ttt-multiplier-btn:hover{transform:translateY(-1px);box-shadow:0 3px 10px rgba(0,0,0,0.3)}.ttt-tier-badge{display:inline-block;padding:.3rem .8rem;border-radius:20px;font-weight:700;font-size:.85rem;margin-bottom:.5rem}.ttt-tier-badge.Diamond{background:linear-gradient(135deg,#b9f2ff,#0ea5e9);color:#0c4a6e}.ttt-tier-badge.Platinum{background:linear-gradient(135deg,#e2e8f0,#94a3b8);color:#1e293b}.ttt-tier-badge.Gold{background:linear-gradient(135deg,#fde68a,#f59e0b);color:#78350f}.ttt-tier-badge.Silver{background:linear-gradient(135deg,#d1d5db,#6b7280);color:#1f2937}.ttt-tier-badge.Bronze{background:linear-gradient(135deg,#fbbf24,#b45309);color:#78350f}.ttt-tier-badge.Starter{background:rgba(255,255,255,0.15);color:rgba(255,255,255,0.8)}.game-leaderboard{margin-top:1.5rem;max-width:640px;width:100%;background:var(--ttt-card);border:1px solid var(--ttt-border);border-radius:16px;padding:1.25rem}.leaderboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.leaderboard-header h3{font-size:1rem;font-weight:700;margin:0;color:var(--ttt-gold)}.leaderboard-header h3 i{margin-right:.4rem}.leaderboard-reset{font-size:.75rem;color:rgba(255,255,255,0.4)}.leaderboard-loading{text-align:center;padding:1rem;color:rgba(255,255,255,0.5);font-size:.9rem}.hidden{display:none !important}@media(max-width:640px){.ttt-game-container{padding:80px .75rem 1.5rem}.ttt-game-header h1{font-size:1.4rem}.ttt-game-card{padding:1rem;border-radius:12px}.ttt-mode-tab{font-size:.7rem;padding:.5rem .4rem}.ttt-mode-tab i{display:none}.ttt-difficulty-grid{gap:.5rem}.ttt-diff-btn{padding:.75rem .4rem}.ttt-diff-btn .diff-icon{font-size:1.2rem}.ttt-cell .cell-mark{font-size:2rem}.ttt-board.size-4 .ttt-cell .cell-mark{font-size:1.6rem}.ttt-board.size-5 .ttt-cell .cell-mark{font-size:1.2rem}.ttt-player-info{font-size:.75rem;padding:.3rem .5rem}.ttt-end-title{font-size:1.5rem}}@media(max-width:400px){.ttt-board{gap:3px;padding:4px}.ttt-cell{border-radius:6px}.ttt-cell .cell-mark{font-size:1.6rem}.ttt-board.size-4 .ttt-cell .cell-mark{font-size:1.3rem}.ttt-board.size-5 .ttt-cell .cell-mark{font-size:1rem}}.ttt-fullscreen-btn{display:flex;align-items:center;justify-content:center;gap:.4rem;flex:1;padding:.5rem;background:rgba(139,92,246,0.08);border:1px solid var(--ttt-border);border-radius:8px;color:rgba(255,255,255,0.7);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s}.ttt-fullscreen-btn:hover{background:rgba(139,92,246,0.15);color:var(--ttt-cyan);border-color:rgba(139,92,246,0.3)}body.ttt-fs-active{overflow:hidden !important}body.ttt-fs-active #header-placeholder,body.ttt-fs-active .game-background,body.ttt-fs-active .ttt-game-header,body.ttt-fs-active .ttt-instructions-bar,body.ttt-fs-active .ttt-resume-banner,body.ttt-fs-active .game-leaderboard,body.ttt-fs-active #companion-selector-container,body.ttt-fs-active #start-screen,body.ttt-fs-active #end-screen,body.ttt-fs-active #mp-end-screen,body.ttt-fs-active .ttt-fullscreen-btn{display:none !important}body.ttt-fs-active .ttt-game-container{position:fixed;inset:0;z-index:9998;padding:0;min-height:0;max-width:none;background:#07060e;display:flex;align-items:center;justify-content:center}body.ttt-fs-active .ttt-game-card{max-width:none;width:100%;height:100%;border:0;border-radius:0;background:transparent;padding:0;backdrop-filter:none;display:flex;align-items:center;justify-content:center}body.ttt-fs-active #game-screen{width:100%;height:100%;display:flex !important;align-items:center;justify-content:center}body.ttt-fs-active .ttt-game-screen{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px;gap:6px}body.ttt-fs-active .ttt-board{--ttt-fs-size:min(calc(100vw - 32px),calc(100vh - 180px));width:var(--ttt-fs-size);max-width:var(--ttt-fs-size);flex:0 0 auto}body.ttt-fs-active .ttt-player-bar,body.ttt-fs-active .ttt-round-indicator,body.ttt-fs-active .ttt-status-bar,body.ttt-fs-active .ttt-game-controls{max-width:var(--ttt-fs-size,400px);width:100%;flex-shrink:0}.ttt-fs-exit-btn{display:none;position:fixed;top:10px;right:10px;z-index:9999;width:40px;height:40px;border-radius:10px;background:rgba(15,15,30,0.85);border:1px solid rgba(255,255,255,0.15);color:#94a3b8;cursor:pointer;align-items:center;justify-content:center;font-size:1.1rem;transition:all .2s;backdrop-filter:blur(8px)}body.ttt-fs-active .ttt-fs-exit-btn{display:flex}.ttt-fs-exit-btn:hover{background:rgba(239,68,68,0.25);border-color:rgba(239,68,68,0.5);color:#f87171}.npz-resign-modal{display:none;position:fixed;inset:0;z-index:10000;align-items:center;justify-content:center}.npz-resign-modal.visible{display:flex}.npz-resign-backdrop{position:absolute;inset:0;background:rgba(0,0,0,0.65);backdrop-filter:blur(6px);animation:resignFadeIn .2s ease}.npz-resign-content{position:relative;background:linear-gradient(145deg,rgba(25,20,50,0.97),rgba(15,12,35,0.98));border:1px solid rgba(239,68,68,0.25);border-radius:20px;padding:2rem 2.5rem;max-width:360px;width:90%;text-align:center;box-shadow:0 24px 80px rgba(0,0,0,0.6),0 0 40px rgba(239,68,68,0.08);animation:resignSlideIn .25s ease}.npz-resign-icon{width:56px;height:56px;margin:0 auto 1rem;border-radius:50%;background:rgba(239,68,68,0.12);border:1px solid rgba(239,68,68,0.25);display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:#f87171}.npz-resign-content h3{font-family:'Fredoka',sans-serif;font-size:1.3rem;font-weight:600;color:#f1f5f9;margin:0 0 .5rem}.npz-resign-content p{font-size:.9rem;color:#94a3b8;margin:0 0 1.5rem;line-height:1.5}.npz-resign-actions{display:flex;gap:.75rem}.npz-resign-cancel{flex:1;padding:.7rem 1rem;border-radius:12px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);color:#cbd5e1;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.npz-resign-cancel:hover{background:rgba(255,255,255,0.1);color:#f1f5f9}.npz-resign-confirm{flex:1;padding:.7rem 1rem;border-radius:12px;background:rgba(239,68,68,0.15);border:1px solid rgba(239,68,68,0.35);color:#f87171;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.4rem}.npz-resign-confirm:hover{background:rgba(239,68,68,0.25);border-color:rgba(239,68,68,0.5);color:#fca5a5}@keyframes resignFadeIn{from{opacity:0}to{opacity:1}}@keyframes resignSlideIn{from{opacity:0;transform:scale(0.92) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}