@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;700&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--x-color:#22d3ee;--o-color:#f472b6}*{box-sizing:border-box;margin:0;padding:0}html,body{color:#f3f4f6;-webkit-font-smoothing:antialiased;background:#080810;width:100%;height:100%;font-family:Outfit,Consolas,Courier New,monospace;overflow:hidden}#app{background:radial-gradient(circle,#141330 0%,#07070f 100%);justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:relative}.ttt-board{background:#ffffff08;border:1px solid #ffffff12;border-radius:26px;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:clamp(8px,1.8vmin,16px);width:min(80vmin,520px);height:min(80vmin,520px);padding:clamp(10px,1.8vmin,18px);display:grid;box-shadow:0 20px 60px #00000073}.cell{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:#ffffff05;border:1px solid #ffffff17;border-radius:18px;outline:none;justify-content:center;align-items:center;transition:background .15s,box-shadow .15s,border-color .15s;display:flex;position:relative}.ttt-board.is-locked .cell{cursor:default;pointer-events:none}.ttt-board:not(.is-locked) .cell.is-empty:hover{background:#22d3ee14;border-color:#22d3ee66;box-shadow:inset 0 0 24px #22d3ee1f}.cell__mark{justify-content:center;align-items:center;width:70%;height:70%;animation:.24s cubic-bezier(.25,1.4,.5,1) mark-pop;display:flex}.cell__mark svg{fill:none;stroke-width:9px;stroke-linecap:round;width:100%;height:100%}.cell.is-x .cell__mark svg{stroke:var(--x-color);filter:drop-shadow(0 0 8px #22d3eed9)}.cell.is-o .cell__mark svg{stroke:var(--o-color);filter:drop-shadow(0 0 8px #f472b6d9)}.cell.is-removable .cell__mark{opacity:.32;animation:1.1s ease-in-out infinite alternate mark-fade}.cell.is-win{background:#ffffff0f;border-color:#ffffff8c;animation:.7s ease-in-out infinite alternate win-pulse;box-shadow:0 0 0 2px #ffffff80,0 0 34px 6px #ffffff47}@keyframes mark-pop{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes mark-fade{0%{opacity:.32}to{opacity:.12}}@keyframes win-pulse{0%{box-shadow:0 0 0 2px #fff6,0 0 22px 4px #fff3}to{box-shadow:0 0 0 3px #ffffffb3,0 0 44px 10px #fff6}}.hud-bar{z-index:30;-webkit-backdrop-filter:blur(12px);pointer-events:none;background:#0d0c1c80;border:1px solid #ffffff14;border-radius:16px;justify-content:space-between;align-items:center;gap:20px;width:calc(100% - 48px);max-width:560px;padding:14px 28px;transition:opacity .3s;display:flex;position:absolute;top:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0006}.hud-bar.hidden{opacity:0}.hud-bar__score,.hud-bar__best{letter-spacing:2px;color:#fff9;text-transform:uppercase;white-space:nowrap;font-size:13px;font-weight:600}.hud-bar__status{text-align:center;letter-spacing:3px;color:#ffffffbf;text-transform:uppercase;white-space:nowrap;flex:1;font-size:13px;font-weight:700}.hud-bar__status.is-mine{color:#22d3ee;text-shadow:0 0 14px #22d3ee80}.players-panel{z-index:30;pointer-events:none;gap:12px;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.players-panel.hidden{display:none}.player-chip{background:#0d0c1c99;border:1px solid #ffffff1a;border-radius:999px;align-items:center;gap:8px;padding:8px 16px;transition:box-shadow .2s,border-color .2s;display:flex}.player-chip.is-turn{border-color:var(--player-color);box-shadow:0 0 0 1px var(--player-color), 0 0 22px -4px var(--player-color)}.player-chip__mark{color:var(--player-color);text-shadow:0 0 10px var(--player-color);font-size:15px;font-weight:700}.player-chip__name{letter-spacing:1px;color:#ffffffd9;white-space:nowrap;font-size:13px;font-weight:600}.overlay{-webkit-backdrop-filter:blur(20px);z-index:40;text-align:center;background:#06060fd9;flex-direction:column;justify-content:center;align-items:center;padding:32px;transition:opacity .3s;display:flex;position:absolute;inset:0}.overlay.hidden{display:none!important}.overlay__title{letter-spacing:8px;background:linear-gradient(135deg,#fff 30%,#22d3ee 100%);-webkit-text-fill-color:transparent;text-shadow:0 10px 30px #22d3ee26;-webkit-background-clip:text;margin-bottom:8px;font-size:52px;font-weight:700}.overlay__subtitle{letter-spacing:1px;color:#fff9;max-width:520px;margin-bottom:24px;font-size:16px;font-weight:300;line-height:1.5}.overlay__score{letter-spacing:1px;color:#fff;text-shadow:0 2px 10px #ffffff1a;margin-bottom:24px;font-size:26px;font-weight:600}.overlay__hint{letter-spacing:2px;color:#fff6;text-transform:uppercase;font-size:12px;font-weight:500}.countdown{pointer-events:none;z-index:45;letter-spacing:4px;color:#fff;text-shadow:0 0 40px #22d3ee66,0 10px 40px #0009;opacity:0;justify-content:center;align-items:center;font-size:160px;font-weight:700;display:flex;position:absolute;inset:0}.countdown.is-shown{animation:.75s cubic-bezier(.25,1,.5,1) countdown-pop}@keyframes countdown-pop{0%{opacity:0;transform:scale(.3)}25%{opacity:1;transform:scale(1.1)}45%{transform:scale(1)}85%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.2)}}@media (width<=600px){.overlay__title{font-size:38px}.countdown{font-size:110px}.hud-bar{gap:12px;padding:12px 18px}.players-panel{bottom:16px}}@media (width<=899px){.hud-bar{top:52px}}
