@import"https://fonts.googleapis.com/css2?family=Syne:wght@700;800&family=DM+Sans:ital,wght@0,300;0,400;0,500;1,300&display=swap";.app{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto;grid-template-areas:"header" "arena" "footer";background:var(--bg);position:relative;overflow:hidden}.bg-noise{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px}.app-header{grid-area:header;position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:20px 28px;border-bottom:1px solid var(--border);background:#08080fb3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);gap:16px}.wordmark{display:flex;align-items:baseline;gap:5px;flex-shrink:0;letter-spacing:-.02em}.wm-ultra{font-family:var(--font-display);font-size:1.1rem;font-weight:800;color:var(--text-primary);letter-spacing:.08em}.wm-ttt{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--text-muted);letter-spacing:.08em}.header-center{flex:1;display:flex;justify-content:center}.status-turn,.status-winner{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:.875rem;font-weight:500;padding:6px 14px;border-radius:100px;border:1px solid var(--border-strong);background:var(--surface);transition:all .3s ease}.status-mark{display:flex;align-items:center;opacity:.9}.status-sub{color:var(--text-muted);font-weight:300}.status-turn-X{color:var(--x-accent);border-color:#60a5fa33;background:#60a5fa0f}.status-turn-O{color:var(--o-accent);border-color:#f8717133;background:#f871710f}.status-winner{color:var(--active-accent);border-color:#34d39940;background:#34d39914;animation:winnerPulse 2s ease-in-out infinite}.status-winner-tie{color:var(--text-secondary);border-color:var(--border-strong);background:var(--surface);animation:none}@keyframes winnerPulse{0%,to{opacity:1}50%{opacity:.75}}.header-right{display:flex;align-items:center;gap:12px;flex-shrink:0}.score-pill{display:flex;align-items:center;gap:0;background:var(--surface);border:1px solid var(--border-strong);border-radius:100px;overflow:hidden;font-family:var(--font-display);font-size:.75rem;font-weight:700;letter-spacing:.03em}.score-x,.score-o{display:flex;align-items:center;gap:5px;padding:5px 12px;color:var(--text-muted);transition:all .25s ease}.score-sep{width:1px;height:18px;background:var(--border-strong)}.score-current.score-x{color:var(--x-accent);background:var(--x-dim)}.score-current.score-o{color:var(--o-accent);background:var(--o-dim)}.score-won.score-x{color:var(--x-accent);background:#60a5fa2e}.score-won.score-o{color:var(--o-accent);background:#f871712e}.btn-new{font-family:var(--font-body);font-size:.8rem;font-weight:500;color:var(--text-secondary);background:transparent;border:1px solid var(--border-strong);border-radius:100px;padding:6px 16px;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-new:hover{color:var(--text-primary);border-color:#ffffff38;background:var(--surface-2)}.arena{grid-area:arena;position:relative;display:flex;align-items:center;justify-content:center;padding:32px 20px;z-index:1}.mega-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:0;width:min(640px,94vw,80vh);aspect-ratio:1;position:relative;border:1px solid var(--border-strong);border-radius:16px;overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px var(--border),0 32px 80px #0009,0 8px 24px #0006}.small-grid{position:relative;display:flex;align-items:stretch;justify-content:stretch;border-right:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong);transition:background .25s ease,box-shadow .25s ease;background:var(--surface)}.small-grid:nth-child(3n){border-right:none}.small-grid:nth-child(n+7){border-bottom:none}.small-grid.active{background:var(--active-dim);box-shadow:inset 0 0 0 2px #34d39959;z-index:2;animation:activeBreath 2.4s ease-in-out infinite}@keyframes activeBreath{0%,to{box-shadow:inset 0 0 0 2px #34d39959}50%{box-shadow:inset 0 0 0 2px #34d39999}}.small-grid.inactive{background:var(--surface)}.small-grid.inactive .cell-grid{opacity:.28}.small-grid.won{z-index:3}.small-grid.won-X{background:#60a5fa12}.small-grid.won-O{background:#f8717112}.small-grid.won-tie{background:#ffffff06}.cell-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;gap:0;transition:opacity .25s ease}.cell{position:relative;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:default;padding:0;transition:background .15s ease;-webkit-tap-highlight-color:transparent}.cell:nth-child(3n){border-right:none}.cell:nth-child(n+7){border-bottom:none}.cell.playable{cursor:pointer}.cell.playable:hover{background:#ffffff0a}.cell.playable:active{background:#ffffff12}.cell-inner{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.cell-X{color:var(--x-accent)}.cell-X .cell-inner{animation:markPop .2s cubic-bezier(.34,1.56,.64,1) both}.cell-O{color:var(--o-accent)}.cell-O .cell-inner{animation:markPop .2s cubic-bezier(.34,1.56,.64,1) both}@keyframes markPop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.cell-ghost{opacity:0;transform:scale(.8);transition:opacity .15s ease,transform .15s ease;display:flex;align-items:center;justify-content:center}.cell.playable:hover .cell-ghost{opacity:.3;transform:scale(1)}.board-winner{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:5;border-radius:0;animation:boardWon .35s cubic-bezier(.34,1.4,.64,1) both}.board-winner-X{background:#60a5fae0;color:#fff}.board-winner-O{background:#f87171e0;color:#fff}.board-winner-tie{background:#1e1e32d9;color:var(--text-muted)}@keyframes boardWon{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.board-winner-mark{display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 2px 8px rgba(0,0,0,.3))}.board-winner-text{font-family:var(--font-display);font-size:1.5rem;font-weight:700;letter-spacing:.1em}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:20;animation:overlayIn .4s ease both;border-radius:16px;overflow:hidden}.overlay-X{background:#0a0f1ed1;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.overlay-O{background:#140a0ad1;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.overlay-tie{background:#08080fd1;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.overlay-card{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 40px;animation:cardIn .45s cubic-bezier(.34,1.3,.64,1) .1s both}@keyframes cardIn{0%{transform:scale(.85) translateY(12px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.overlay-eyebrow{font-family:var(--font-body);font-size:.7rem;font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted)}.overlay-title{font-family:var(--font-display);font-size:clamp(2rem,7vw,3rem);font-weight:800;line-height:1;color:var(--text-primary);display:flex;align-items:center;gap:14px;letter-spacing:-.02em;margin:4px 0}.overlay-title-X{color:var(--x-accent)}.overlay-title-O{color:var(--o-accent)}.overlay-mark{display:flex;align-items:center}.overlay-body{font-family:var(--font-body);font-size:.85rem;font-weight:300;color:var(--text-secondary);font-style:italic;margin-bottom:20px}.btn-play-again{font-family:var(--font-body);font-size:.9rem;font-weight:500;color:var(--text-primary);background:var(--surface-3);border:1px solid var(--border-strong);border-radius:100px;padding:10px 28px;cursor:pointer;transition:all .2s ease;letter-spacing:.01em}.btn-play-again:hover{background:var(--surface-2);border-color:#ffffff38;transform:translateY(-1px);box-shadow:0 4px 16px #0006}.btn-play-again:active{transform:translateY(0)}.app-footer{grid-area:footer;position:relative;z-index:10;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:14px 24px;border-top:1px solid var(--border);font-family:var(--font-body);font-size:.72rem;font-weight:300;color:var(--text-muted);background:#08080f80;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.footer-dot{opacity:.35}@media (max-width: 600px){.app-header{padding:14px 16px;gap:10px}.wm-ultra,.wm-ttt{font-size:.95rem}.status-turn,.status-winner{font-size:.78rem;padding:5px 10px;gap:6px}.status-sub,.score-pill{display:none}.btn-new{font-size:.75rem;padding:5px 12px}.arena{padding:16px 12px}.overlay-card{padding:24px 28px}.app-footer{font-size:.65rem;gap:6px;padding:10px 16px}}@media (max-width: 400px){.header-center{display:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.cell:focus-visible{outline:2px solid var(--active-accent);outline-offset:-2px;z-index:1}.btn-new:focus-visible,.btn-play-again:focus-visible{outline:2px solid var(--active-accent);outline-offset:3px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #08080f;--surface: #0f0f1a;--surface-2: #16162a;--surface-3: #1e1e35;--border: rgba(255,255,255,.06);--border-strong: rgba(255,255,255,.12);--x-accent: #60a5fa;--x-glow: rgba(96, 165, 250, .3);--x-dim: rgba(96, 165, 250, .12);--o-accent: #f87171;--o-glow: rgba(248, 113, 113, .3);--o-dim: rgba(248, 113, 113, .12);--active-accent: #34d399;--active-glow: rgba(52, 211, 153, .2);--active-dim: rgba(52, 211, 153, .08);--text-primary: #eeeef8;--text-secondary: #7878a0;--text-muted: #44445a;--font-display: "Syne", sans-serif;--font-body: "DM Sans", sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}html,body{width:100%;min-height:100vh;background:var(--bg);color:var(--text-primary);font-family:var(--font-body)}#root{width:100%;min-height:100vh}
