:root{color:#fff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;--action-button-size: clamp(88px, 17vw, 120px);--game-symbol-size: clamp(4rem, 23vw, 9rem);text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{height:100%;min-height:100%;margin:0;width:100%}body{background:inherit}button{-webkit-tap-highlight-color:transparent;border:0;color:inherit;font:inherit}.app-shell{align-items:center;background:var(--app-background);display:flex;height:100dvh;min-height:100dvh;overflow-x:hidden;padding:max(122px,calc(env(safe-area-inset-top) + 104px)) 18px max(30px,calc(env(safe-area-inset-bottom) + 22px));position:relative;width:100%}.app-shell:before{background:var(--app-background);content:"";top:-2px;right:-2px;bottom:-2px;left:-2px;pointer-events:none;position:fixed;z-index:0}.app-shell:after{background:var(--background-texture, none);content:"";top:-2px;right:-2px;bottom:-2px;left:-2px;opacity:var(--texture-opacity, 1);pointer-events:none;position:fixed;z-index:0}.theme-classic{background:#f4f5f7;--modal-surface: rgba(255, 255, 255, .94);--modal-border: rgba(31, 36, 48, .16);--modal-shadow: rgba(28, 32, 43, .18);--tile-surface: rgba(247, 248, 250, .96);--board-surface: rgba(31, 36, 48, .08);--cell-surface: rgba(255, 255, 255, .9);--app-background: radial-gradient(circle at 18% 12%, rgba(255, 255, 255, .96), transparent 24%), radial-gradient(circle at 84% 82%, rgba(220, 224, 232, .46), transparent 30%), linear-gradient(150deg, #ffffff 0%, #f4f5f7 52%, #e9ebf0 100%);--background-texture: linear-gradient(rgba(42, 47, 59, .075) 1px, transparent 1px) 0 0 / 42px 42px, linear-gradient(90deg, rgba(42, 47, 59, .075) 1px, transparent 1px) 0 0 / 42px 42px, radial-gradient(circle, rgba(42, 47, 59, .14) 0 1.2px, transparent 1.8px) 12px 14px / 84px 84px;--texture-opacity: .72}.theme-classic .background-button,.theme-classic .restart-button,.theme-classic .player-chip{background:#ffffffd1;border-color:#1f243033;box-shadow:inset 0 1px #ffffffe6,0 10px 24px #1f24301f;color:#242833}.theme-classic .player-chip.active{background:#fff;border-color:#ff4e83b8;box-shadow:0 0 0 5px #ff4e831f,0 10px 28px #1f243029}.theme-classic .board-wrap{-webkit-backdrop-filter:none;backdrop-filter:none;background:transparent;border-radius:0;box-shadow:none;padding:0}.theme-classic .board{gap:0}.theme-classic .cell,.theme-classic .cell:active,.theme-classic .cell:focus,.theme-classic .cell:focus-visible,.theme-classic .cell:disabled:active,.theme-classic .cell:disabled:focus,.theme-classic .cell:disabled:focus-visible{-webkit-backdrop-filter:none;backdrop-filter:none;background:transparent;border-radius:0;box-shadow:none}.theme-classic .cell:nth-child(3n+1),.theme-classic .cell:nth-child(3n+2){border-right:clamp(4px,1.2vw,7px) solid rgba(31,36,48,.72)}.theme-classic .cell:nth-child(-n+6){border-bottom:clamp(4px,1.2vw,7px) solid rgba(31,36,48,.72)}.theme-classic .cell:not(:disabled):hover{background:#1f24300a}.theme-classic .cell.winner-cell,.theme-classic .cell.draw-cell{background:#ff4e831a}.theme-space{background:#101044;--modal-surface: rgba(29, 18, 76, .84);--modal-border: rgba(198, 202, 255, .26);--modal-shadow: rgba(9, 8, 42, .42);--tile-surface: rgba(255, 255, 255, .1);--board-surface: rgba(255, 255, 255, .1);--cell-surface: rgba(255, 255, 255, .36);--app-background: radial-gradient(circle at 72% 14%, rgba(255, 255, 255, .2), transparent 5%), radial-gradient(circle at 18% 24%, rgba(113, 215, 255, .22), transparent 18%), radial-gradient(circle at 78% 78%, rgba(255, 79, 158, .24), transparent 22%), linear-gradient(155deg, #101044 0%, #32136d 48%, #751b78 100%);--background-texture: radial-gradient(circle, rgba(255, 255, 255, .95) 0 1px, transparent 1.4px) 8px 18px / 58px 58px, radial-gradient(circle, rgba(255, 255, 255, .72) 0 1px, transparent 1.4px) 32px 4px / 86px 86px, radial-gradient(circle, rgba(130, 227, 255, .72) 0 1.2px, transparent 1.7px) 14px 34px / 112px 112px;--texture-opacity: .72}.theme-garden{background:#4cbd8d;--modal-surface: rgba(225, 255, 236, .88);--modal-border: rgba(255, 255, 255, .34);--modal-shadow: rgba(19, 90, 66, .34);--tile-surface: rgba(255, 255, 255, .46);--board-surface: rgba(255, 255, 255, .14);--cell-surface: rgba(255, 255, 255, .4);--app-background: radial-gradient(circle at 16% 18%, rgba(255, 255, 255, .18), transparent 18%), radial-gradient(circle at 82% 20%, rgba(255, 234, 149, .2), transparent 20%), linear-gradient(145deg, #2fa778 0%, #4cbd8d 42%, #d85ca5 100%);--background-texture: radial-gradient(circle, rgba(255, 238, 150, .9) 0 2px, transparent 2.8px) 13px 18px / 74px 62px, radial-gradient(circle, rgba(255, 142, 196, .78) 0 2.4px, transparent 3.2px) 42px 45px / 88px 76px, radial-gradient(ellipse at center, rgba(18, 113, 70, .24) 0 2px, transparent 2.6px) 4px 0 / 24px 18px;--texture-opacity: .5}.theme-sunset{background:#d95a95;--modal-surface: rgba(255, 226, 219, .88);--modal-border: rgba(255, 255, 255, .34);--modal-shadow: rgba(92, 39, 94, .38);--tile-surface: rgba(255, 255, 255, .46);--board-surface: rgba(255, 255, 255, .14);--cell-surface: rgba(255, 255, 255, .4);--app-background: radial-gradient(circle at 20% 18%, rgba(255, 250, 187, .78), transparent 12%), radial-gradient(circle at 20% 18%, rgba(255, 180, 82, .36), transparent 26%), radial-gradient(circle at 82% 17%, rgba(235, 238, 255, .32), transparent 10%), radial-gradient(circle at 80% 22%, rgba(108, 121, 255, .2), transparent 24%), linear-gradient(180deg, transparent 0%, transparent 48%, rgba(255, 105, 96, .28) 74%, rgba(235, 67, 146, .32) 100%), linear-gradient(135deg, transparent 0%, transparent 52%, rgba(19, 24, 82, .52) 100%), linear-gradient(90deg, #ffd36e 0%, #ff9569 33%, #e25c9d 50%, #48309f 72%, #141a54 100%);--background-texture: radial-gradient(circle, rgba(255, 255, 255, .82) 0 1px, transparent 1.5px) 82% 16% / 64px 64px, radial-gradient(circle, rgba(255, 255, 255, .46) 0 1px, transparent 1.5px) 94% 38% / 88px 88px, linear-gradient(90deg, rgba(255, 255, 255, .16), transparent 34%, rgba(255, 255, 255, .08) 50%, transparent 66%, rgba(255, 255, 255, .12));--texture-opacity: .54}.theme-ocean{background:#19b4bd;--modal-surface: rgba(213, 247, 255, .84);--modal-border: rgba(255, 255, 255, .34);--modal-shadow: rgba(14, 81, 116, .38);--tile-surface: rgba(255, 255, 255, .42);--board-surface: rgba(255, 255, 255, .12);--cell-surface: rgba(255, 255, 255, .38);--app-background: radial-gradient(circle at 18% 16%, rgba(255, 255, 255, .2), transparent 18%), radial-gradient(circle at 72% 82%, rgba(57, 230, 218, .2), transparent 23%), linear-gradient(155deg, #1d87c9 0%, #19b4bd 45%, #6759d8 100%);--background-texture: radial-gradient(circle, rgba(255, 255, 255, .34) 0 2px, transparent 2.8px) 10px 16px / 58px 58px, radial-gradient(circle, rgba(212, 255, 255, .26) 0 4px, transparent 5px) 34px 6px / 92px 84px, radial-gradient(ellipse at center, rgba(255, 255, 255, .13) 0 2px, transparent 2.8px) 0 0 / 38px 26px;--texture-opacity: .56}.theme-candy{background:#b967ff;--modal-surface: rgba(255, 226, 249, .88);--modal-border: rgba(255, 255, 255, .34);--modal-shadow: rgba(118, 40, 105, .34);--tile-surface: rgba(255, 255, 255, .5);--board-surface: rgba(255, 255, 255, .14);--cell-surface: rgba(255, 255, 255, .4);--app-background: radial-gradient(circle at 18% 16%, rgba(255, 255, 255, .24), transparent 17%), linear-gradient(145deg, #ff6db5 0%, #b967ff 48%, #50c6ff 100%);--background-texture: radial-gradient(circle, rgba(255, 255, 255, .42) 0 3px, transparent 3.8px) 8px 10px / 72px 60px, radial-gradient(circle, rgba(255, 236, 120, .5) 0 3px, transparent 4px) 40px 38px / 88px 76px, linear-gradient(135deg, rgba(255, 255, 255, .14) 25%, transparent 25% 50%, rgba(255, 255, 255, .14) 50% 75%, transparent 75%) 0 0 / 36px 36px;--texture-opacity: .42}.theme-haunted{background:#25163f;--modal-surface: rgba(28, 18, 52, .86);--modal-border: rgba(216, 200, 255, .26);--modal-shadow: rgba(8, 8, 28, .5);--tile-surface: rgba(255, 255, 255, .11);--board-surface: rgba(255, 255, 255, .1);--cell-surface: rgba(255, 255, 255, .3);--app-background: radial-gradient(circle at 18% 16%, rgba(113, 255, 214, .18), transparent 20%), radial-gradient(circle at 82% 22%, rgba(255, 119, 192, .2), transparent 22%), linear-gradient(150deg, #10172f 0%, #4a1e60 50%, #16736e 100%);--background-texture: radial-gradient(circle, rgba(210, 255, 239, .56) 0 1.4px, transparent 2px) 12px 16px / 74px 66px, radial-gradient(ellipse at center, rgba(255, 164, 216, .18) 0 3px, transparent 4px) 36px 42px / 96px 82px, linear-gradient(135deg, transparent 0 47%, rgba(255, 255, 255, .06) 48% 52%, transparent 53%) 0 0 / 64px 64px;--texture-opacity: .58}.theme-dino{background:#35a96f;--modal-surface: rgba(225, 255, 232, .86);--modal-border: rgba(255, 255, 255, .34);--modal-shadow: rgba(16, 90, 54, .36);--tile-surface: rgba(255, 255, 255, .44);--board-surface: rgba(255, 255, 255, .13);--cell-surface: rgba(255, 255, 255, .38);--app-background: radial-gradient(circle at 16% 16%, rgba(255, 245, 157, .28), transparent 19%), radial-gradient(circle at 78% 82%, rgba(67, 221, 208, .24), transparent 24%), linear-gradient(145deg, #176f58 0%, #35a96f 46%, #d29c48 100%);--background-texture: radial-gradient(ellipse at center, rgba(9, 94, 55, .26) 0 4px, transparent 5px) 8px 10px / 42px 30px, radial-gradient(circle, rgba(255, 239, 135, .54) 0 2px, transparent 2.8px) 28px 34px / 82px 70px, linear-gradient(45deg, transparent 0 45%, rgba(255, 255, 255, .08) 46% 54%, transparent 55%) 0 0 / 72px 72px;--texture-opacity: .5}.theme-arcade{background:#10182f;--modal-surface: rgba(12, 17, 40, .84);--modal-border: rgba(85, 255, 230, .28);--modal-shadow: rgba(3, 7, 24, .52);--tile-surface: rgba(255, 255, 255, .1);--board-surface: rgba(255, 255, 255, .1);--cell-surface: rgba(255, 255, 255, .3);--app-background: radial-gradient(circle at 18% 18%, rgba(255, 69, 184, .3), transparent 20%), radial-gradient(circle at 82% 24%, rgba(52, 238, 229, .28), transparent 21%), linear-gradient(145deg, #0c1028 0%, #30206e 48%, #082f4b 100%);--background-texture: linear-gradient(90deg, rgba(65, 244, 226, .16) 2px, transparent 2px) 0 0 / 34px 34px, linear-gradient(rgba(255, 66, 181, .14) 2px, transparent 2px) 0 0 / 34px 34px, linear-gradient(135deg, transparent 0 46%, rgba(255, 234, 94, .1) 47% 53%, transparent 54%) 0 0 / 68px 68px;--texture-opacity: .68}.theme-frost{background:#62b9dc;--modal-surface: rgba(229, 250, 255, .86);--modal-border: rgba(255, 255, 255, .44);--modal-shadow: rgba(38, 91, 145, .34);--tile-surface: rgba(255, 255, 255, .48);--board-surface: rgba(255, 255, 255, .15);--cell-surface: rgba(255, 255, 255, .42);--app-background: radial-gradient(circle at 18% 16%, rgba(255, 255, 255, .42), transparent 18%), radial-gradient(circle at 78% 82%, rgba(197, 225, 255, .3), transparent 24%), linear-gradient(150deg, #3f91c1 0%, #62b9dc 46%, #7d73c7 100%);--background-texture: radial-gradient(circle, rgba(255, 255, 255, .8) 0 2px, transparent 2.8px) 10px 14px / 58px 54px, radial-gradient(circle, rgba(219, 246, 255, .64) 0 4px, transparent 5px) 38px 34px / 96px 86px, linear-gradient(45deg, transparent 0 47%, rgba(255, 255, 255, .12) 48% 52%, transparent 53%) 0 0 / 62px 62px;--texture-opacity: .58}.theme-undead{background:#294b3c;--modal-surface: rgba(25, 39, 37, .86);--modal-border: rgba(191, 255, 180, .24);--modal-shadow: rgba(8, 20, 17, .5);--tile-surface: rgba(255, 255, 255, .11);--board-surface: rgba(255, 255, 255, .09);--cell-surface: rgba(255, 255, 255, .28);--app-background: radial-gradient(circle at 18% 16%, rgba(184, 255, 113, .2), transparent 20%), radial-gradient(circle at 82% 22%, rgba(220, 69, 112, .2), transparent 22%), linear-gradient(150deg, #182d2a 0%, #356348 48%, #5e203f 100%);--background-texture: radial-gradient(circle, rgba(197, 255, 153, .4) 0 2px, transparent 2.8px) 12px 16px / 74px 64px, linear-gradient(45deg, transparent 0 46%, rgba(255, 255, 255, .06) 47% 53%, transparent 54%) 0 0 / 58px 58px, radial-gradient(ellipse at center, rgba(107, 16, 60, .2) 0 4px, transparent 5px) 34px 40px / 92px 76px;--texture-opacity: .58}.theme-race{background:#4daed1;--modal-surface: rgba(235, 253, 255, .88);--modal-border: rgba(255, 255, 255, .38);--modal-shadow: rgba(30, 91, 116, .34);--tile-surface: rgba(255, 255, 255, .48);--board-surface: rgba(255, 255, 255, .14);--cell-surface: rgba(255, 255, 255, .4);--app-background: radial-gradient(circle at 18% 16%, rgba(255, 246, 140, .44), transparent 18%), radial-gradient(circle at 78% 82%, rgba(90, 207, 112, .3), transparent 25%), linear-gradient(150deg, #3094c4 0%, #60c8d0 48%, #87b94c 100%);--background-texture: linear-gradient(90deg, rgba(255, 255, 255, .28) 0 8px, transparent 8px 16px) 0 0 / 32px 5px, radial-gradient(circle, rgba(255, 239, 101, .58) 0 2px, transparent 2.8px) 18px 24px / 78px 66px;--texture-opacity: .44}.theme-deepsea{background:#075f86;--modal-surface: rgba(10, 50, 76, .84);--modal-border: rgba(148, 239, 255, .28);--modal-shadow: rgba(3, 25, 44, .52);--tile-surface: rgba(255, 255, 255, .11);--board-surface: rgba(255, 255, 255, .1);--cell-surface: rgba(255, 255, 255, .3);--app-background: radial-gradient(circle at 16% 16%, rgba(81, 225, 235, .24), transparent 20%), radial-gradient(circle at 80% 82%, rgba(255, 107, 133, .2), transparent 23%), linear-gradient(155deg, #063754 0%, #075f86 46%, #18346f 100%);--background-texture: radial-gradient(circle, rgba(179, 248, 255, .4) 0 2px, transparent 2.8px) 10px 14px / 58px 54px, radial-gradient(circle, rgba(91, 218, 228, .28) 0 4px, transparent 5px) 36px 34px / 96px 84px, linear-gradient(135deg, transparent 0 47%, rgba(255, 255, 255, .06) 48% 52%, transparent 53%) 0 0 / 68px 68px;--texture-opacity: .62}.theme-random{background:var(--random-primary, #8b5cf6);--modal-surface: rgba(255, 255, 255, .62);--modal-border: rgba(255, 255, 255, .34);--modal-shadow: rgba(31, 14, 50, .34);--tile-surface: rgba(255, 255, 255, .46);--board-surface: rgba(255, 255, 255, .13);--cell-surface: rgba(255, 255, 255, .39);--app-background: radial-gradient(circle at 18% 18%, var(--random-glow, rgba(255, 255, 255, .24)), transparent 23%), radial-gradient(circle at 82% 22%, color-mix(in srgb, var(--random-accent, #ff7ac8) 38%, transparent), transparent 24%), radial-gradient(circle at 52% 86%, color-mix(in srgb, var(--random-secondary, #7dd3fc) 34%, transparent), transparent 28%), linear-gradient(145deg, var(--random-primary, #8b5cf6) 0%, var(--random-secondary, #ec4899) 48%, var(--random-deep, #1d1b64) 100%);--background-texture: radial-gradient(circle, var(--random-texture, rgba(255, 255, 255, .34)) 0 2px, transparent 2.8px) 14px 18px / 72px 62px, linear-gradient(135deg, rgba(255, 255, 255, .1) 25%, transparent 25% 50%, rgba(255, 255, 255, .1) 50% 75%, transparent 75%) 0 0 / 46px 46px;--texture-opacity: .45}.theme-midnight{background:#0b102f;--modal-surface: rgba(20, 22, 58, .78);--modal-border: rgba(219, 226, 255, .24);--modal-shadow: rgba(5, 7, 30, .46);--tile-surface: rgba(255, 255, 255, .1);--board-surface: rgba(255, 255, 255, .1);--cell-surface: rgba(255, 255, 255, .32);--app-background: radial-gradient(circle at 72% 20%, rgba(198, 205, 255, .28), transparent 13%), radial-gradient(circle at 24% 80%, rgba(101, 91, 255, .22), transparent 24%), linear-gradient(155deg, #0b102f 0%, #1b245b 54%, #2f1557 100%);--background-texture: radial-gradient(circle, rgba(255, 255, 255, .88) 0 1px, transparent 1.5px) 12px 20px / 76px 76px, radial-gradient(circle, rgba(177, 211, 255, .62) 0 1px, transparent 1.5px) 44px 10px / 104px 104px;--texture-opacity: .62}.theme-neon{background:#071022;--modal-surface: rgba(12, 15, 36, .76);--modal-border: rgba(111, 255, 238, .24);--modal-shadow: rgba(4, 9, 24, .48);--tile-surface: rgba(255, 255, 255, .1);--board-surface: rgba(255, 255, 255, .1);--cell-surface: rgba(255, 255, 255, .32);--app-background: radial-gradient(circle at 18% 18%, rgba(57, 255, 226, .3), transparent 20%), radial-gradient(circle at 82% 28%, rgba(255, 60, 193, .28), transparent 22%), linear-gradient(145deg, #071022 0%, #23105a 48%, #041c35 100%);--background-texture: linear-gradient(90deg, rgba(57, 255, 226, .16) 1px, transparent 1px) 0 0 / 42px 42px, linear-gradient(rgba(255, 60, 193, .13) 1px, transparent 1px) 0 0 / 42px 42px;--texture-opacity: .6}.theme-jungle{background:#26a455;--modal-surface: rgba(226, 255, 223, .82);--modal-border: rgba(255, 255, 255, .3);--modal-shadow: rgba(14, 78, 36, .38);--tile-surface: rgba(255, 255, 255, .42);--board-surface: rgba(255, 255, 255, .12);--cell-surface: rgba(255, 255, 255, .36);--app-background: radial-gradient(circle at 18% 18%, rgba(255, 238, 134, .18), transparent 20%), radial-gradient(circle at 76% 84%, rgba(29, 165, 88, .24), transparent 24%), linear-gradient(145deg, #0f6f3d 0%, #26a455 48%, #6f4f1c 100%);--background-texture: radial-gradient(ellipse at center, rgba(7, 78, 37, .24) 0 3px, transparent 3.6px) 8px 8px / 34px 24px, radial-gradient(circle, rgba(255, 236, 120, .5) 0 2px, transparent 2.8px) 18px 28px / 86px 70px;--texture-opacity: .5}.theme-blackout{background:#000;--modal-surface: rgba(18, 18, 18, .74);--modal-border: rgba(255, 255, 255, .18);--modal-shadow: rgba(0, 0, 0, .58);--tile-surface: rgba(255, 255, 255, .08);--board-surface: rgba(255, 255, 255, .08);--cell-surface: rgba(255, 255, 255, .24);--app-background: #000000;--background-texture: radial-gradient(circle, rgba(255, 255, 255, .38) 0 1px, transparent 1.4px) 20px 18px / 92px 92px;--texture-opacity: .32}.app-shell.game-over{box-shadow:inset 0 0 140px #ffffff24}.game{display:grid;gap:clamp(22px,4.5dvh,44px);margin:0 auto;max-width:660px;position:relative;width:min(100%,80dvh);z-index:1}.player-chip:active,.cell:active,.icon-button:active,.symbol-choice:active{transform:scale(.96)}.symbol-x{color:#ff4e83;text-shadow:0 4px 0 #d72f67,0 11px 18px rgba(104,16,86,.3)}.symbol-o{color:#050209;text-shadow:0 7px 16px rgba(43,5,57,.18)}.emoji-symbol{color:initial;font-weight:400;text-shadow:none}.player-strip{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));left:0;padding:max(12px,env(safe-area-inset-top)) 14px 0;pointer-events:none;position:fixed;right:0;top:0;z-index:4}.background-button{align-items:center;background:#ffffff26;border:3px solid rgba(255,255,255,.24);border-radius:999px;box-shadow:inset 0 1px #ffffff2e,0 10px 24px #3d157024;cursor:pointer;display:inline-flex;height:var(--action-button-size);justify-content:center;bottom:max(16px,calc(env(safe-area-inset-bottom) + 12px));left:max(16px,env(safe-area-inset-left));padding:0;position:fixed;top:auto;transform:none;transition:background .16s ease,border-color .16s ease,transform .16s ease;width:var(--action-button-size);z-index:4}.background-button svg{height:76%;stroke-width:3;width:76%}.background-button:active{transform:scale(.96)}.player-chip{align-items:center;aspect-ratio:1;background:#ffffff26;border:3px solid rgba(255,255,255,.24);border-radius:999px;box-shadow:inset 0 1px #ffffff2e,0 10px 24px #3d157024;cursor:pointer;display:flex;font-weight:900;justify-content:center;justify-self:start;min-height:0;pointer-events:auto;padding:0;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;width:clamp(88px,22vw,132px)}.player-chip:nth-child(2){justify-self:end}.player-chip.active{animation:turn-pulse 1.3s ease-in-out infinite;background:#ffffff52;border-color:#fff;box-shadow:0 0 0 5px #ffffff3d,0 0 26px #ffffff80,0 16px 34px #3d157038;transform:scale(1.07)}.player-chip.winner-player{animation:winner-player-pop .85s ease-in-out infinite alternate;background:#ffffff61;border-color:#fff;box-shadow:0 0 0 7px #ffffff3d,0 0 36px #ffffff9e,0 18px 40px #3d157042;transform:scale(1.1)}.player-chip.draw-player{animation:winner-player-pop .85s ease-in-out infinite alternate;background:#ffffff57;border-color:#fff;box-shadow:0 0 0 6px #fff3,0 0 30px #ffffff80,0 18px 40px #3d15703d}.chip-symbol{align-items:center;display:flex;font-size:var(--game-symbol-size);justify-content:center;line-height:1;transform:translateY(0)}.chip-symbol.symbol-offset-up{transform:translateY(-.2em)}.board-wrap{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--board-surface, rgba(255, 255, 255, .14));border-radius:clamp(16px,4vw,24px);box-shadow:inset 0 1px #ffffff24,0 18px 38px #1f0e321f;padding:clamp(12px,3.1vw,18px)}.board{display:grid;gap:clamp(10px,3vw,18px);grid-template-columns:repeat(3,minmax(0,1fr))}.cell{align-items:center;aspect-ratio:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--cell-surface, rgba(255, 255, 255, .4));border-radius:clamp(14px,4vw,20px);box-shadow:inset 0 1px #fff3,0 14px 28px #571a9014;cursor:pointer;display:flex;justify-content:center;min-width:0;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:background .16s ease,transform .16s ease,box-shadow .16s ease}.cell:active,.cell:focus,.cell:focus-visible{background:var(--cell-surface, rgba(255, 255, 255, .4));outline:none}.cell:disabled{cursor:default;opacity:1}.cell:disabled:active,.cell:disabled:focus,.cell:disabled:focus-visible{background:var(--cell-surface, rgba(255, 255, 255, .4))}.cell:not(:disabled):hover{background:#ffffff80}.winner-cell{animation:winner-pulse .72s ease-in-out infinite alternate;background:#ffeeffe6;box-shadow:inset 0 0 0 4px #fff6,0 0 0 5px #ffffff2e,0 16px 30px #571a901f}.winner-cell:active,.winner-cell:focus,.winner-cell:focus-visible,.winner-cell:disabled:active,.winner-cell:disabled:focus,.winner-cell:disabled:focus-visible{background:#ffeeffe6}.winner-cell .mark{animation:winning-mark .52s ease-in-out infinite alternate}.settled-cell{background:#180c281a;box-shadow:inset 0 0 0 2px #ffffff08,0 6px 12px #1f0e320a}.settled-cell .mark{filter:none;opacity:1;transform:scale(.86)}.draw-cell{animation:draw-cell-glow .76s ease-in-out infinite alternate;background:#ffeeffc7;box-shadow:inset 0 0 0 3px #ffffff47,0 0 0 4px #ffffff1f,0 14px 28px #571a901a}.draw-cell .mark{animation:winning-mark .56s ease-in-out infinite alternate}.mark{font-size:var(--game-symbol-size);font-weight:950;line-height:.9}.controls{display:flex;gap:clamp(14px,4vw,26px);bottom:max(16px,calc(env(safe-area-inset-bottom) + 12px));justify-content:end;padding:0;position:fixed;right:max(16px,env(safe-area-inset-right));z-index:4}.close-button{align-items:center;background:#ffffff24;border:3px solid rgba(255,255,255,.45);border-radius:999px;cursor:pointer;display:inline-flex;justify-content:center;transition:opacity .16s ease,transform .16s ease,background .16s ease}.restart-button{align-items:center;background:#ffffff29;border:3px solid rgba(255,255,255,.45);border-radius:999px;cursor:pointer;display:inline-flex;font-size:clamp(1.25rem,5vw,1.55rem);justify-content:center;height:var(--action-button-size);overflow:hidden;padding:0;position:relative;transition:background .16s ease,box-shadow .16s ease,transform .16s ease;width:var(--action-button-size)}.restart-button:before{animation:restart-sheen 10s ease-in-out infinite;background:linear-gradient(105deg,transparent 0%,rgba(255,255,255,0) 34%,rgba(255,255,255,.5) 50%,rgba(255,255,255,0) 66%,transparent 100%);content:"";inset:-18px auto -18px -72%;pointer-events:none;position:absolute;transform:translate(0) skew(-18deg);width:62%;z-index:0}.restart-button>*{position:relative;z-index:1}.restart-button svg{height:68%;stroke-width:3;width:68%}.restart-button:active{transform:scale(.96)}.restart-button.attention{animation:restart-complete-beacon 2375ms cubic-bezier(.22,.8,.32,1) .48s infinite;background:#4ade8061;border-color:#dcffe8f5;box-shadow:0 0 0 7px #4ade802e,0 0 28px #4ade8066}.restart-button.attention:before{animation-delay:1.3s;animation-duration:7.8s}.app-shell.splash-active{overflow:hidden}.app-shell.splash-active>:not(.splash-screen){display:none}.splash-screen{align-items:center;background:var(--app-background);display:flex;height:100vh;height:100svh;inset:0 0 auto;justify-content:center;overflow:hidden;padding:max(22px,env(safe-area-inset-top)) 18px max(24px,env(safe-area-inset-bottom));position:fixed;z-index:8}.splash-screen:before{background:var(--background-texture, none);content:"";top:0;right:0;bottom:0;left:0;opacity:var(--texture-opacity, 1);pointer-events:none;position:absolute}.logo-play-button{animation:logo-drop 1.05s cubic-bezier(.2,.8,.28,1) both;background:transparent;border:0;cursor:pointer;flex-shrink:0;padding:0;perspective:900px;position:relative;width:clamp(430px,128vw,680px);z-index:2}.splash-brand{animation:logo-idle 10s ease-in-out 1.1s infinite;display:block;filter:drop-shadow(0 18px 28px rgba(25,7,50,.34));height:auto;backface-visibility:visible;transform-style:preserve-3d;transform-origin:50% 56%;width:100%}.logo-play-button:focus-visible{border-radius:8px;outline:4px solid rgba(255,255,255,.9);outline-offset:8px}.logo-play-button:active .splash-brand{transform:scale(.96)}.coffee-button{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff24;border:0;border-radius:50%;bottom:max(18px,env(safe-area-inset-bottom));color:#fffc;cursor:pointer;display:inline-flex;height:42px;justify-content:center;left:max(18px,env(safe-area-inset-left));padding:0;position:absolute;transition:background .16s ease,transform .16s ease;width:42px;z-index:2}.coffee-button svg{height:20px;stroke-width:2.2;width:20px}.coffee-button:disabled{cursor:default;opacity:.58}@keyframes logo-drop{0%{opacity:0;transform:translateY(-110svh) rotate(-7deg) scale(.9)}62%{opacity:1;transform:translateY(12px) rotate(2deg) scale(1.05)}80%{transform:translateY(-8px) rotate(-1deg) scale(.99)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}@keyframes logo-idle{0%,20%,40%,60%{transform:translateY(0) rotate(-.6deg) rotateY(0) scale(1)}10%,30%,50%{transform:translateY(-8px) rotate(.8deg) rotateY(0) scale(1.018)}68%{transform:translateY(-3px) rotate(0) rotateY(0) scale(1)}72%{transform:translateY(-4px) rotate(-1deg) rotateY(-12deg) scale(1.04)}84%{transform:translateY(-6px) rotate(0) rotateY(372deg) scale(1.06)}89%{transform:translateY(3px) rotate(0) rotateY(360deg) scale(.98)}94%,to{transform:translateY(0) rotate(-.6deg) rotateY(360deg) scale(1)}}.splash-rain{contain:layout paint;top:0;right:0;bottom:0;left:0;isolation:isolate;overflow:hidden;pointer-events:none;position:absolute;z-index:1}.splash-rain span{animation:splash-rain-fall var(--splash-duration) cubic-bezier(.42,0,1,1) infinite;animation-delay:var(--splash-delay);backface-visibility:hidden;contain:paint;font-size:clamp(6.5rem,20vmin,10rem);left:var(--splash-x);line-height:1;opacity:1;position:absolute;top:-150px;transform:translateZ(0) rotate(var(--splash-start-spin));transform-origin:center;will-change:transform}@keyframes splash-rain-fall{0%{transform:translate3d(0,-30px,0) rotate(var(--splash-start-spin)) scale(1)}to{transform:translate3d(var(--splash-drift),132dvh,0) rotate(var(--splash-end-spin)) scale(1)}}@media(orientation:landscape)and (max-height:760px){.splash-screen{padding-inline:max(18px,env(safe-area-inset-left)) max(18px,env(safe-area-inset-right))}}.winning-rain{top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;position:fixed;z-index:3}.winning-rain span{animation:winning-rain-fall var(--duration) cubic-bezier(.28,.14,1,1) both;animation-delay:var(--delay);font-size:clamp(6.5rem,20vmin,10rem);font-weight:950;left:var(--x);line-height:1;opacity:1;position:absolute;top:-120px;transform:translateZ(0) rotate(var(--start-spin));will-change:transform}.tie-rain{top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;position:fixed;z-index:3}.tie-rain span{animation:tie-rain-fall var(--tie-duration) cubic-bezier(.28,.14,1,1) both;animation-delay:var(--tie-delay);font-size:clamp(6.5rem,20vmin,10rem);font-weight:950;left:var(--tie-x);line-height:1;opacity:1;position:absolute;text-shadow:0 8px 18px rgba(43,5,57,.2);top:-120px;will-change:transform}.tie-rain .symbol-x,.tie-rain .symbol-o{filter:saturate(.85);opacity:1}.ocean-bubbles{top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;position:fixed;z-index:0}.ocean-bubbles span{animation:ocean-bubble-rise var(--bubble-duration) ease-in infinite;animation-delay:var(--bubble-delay);border:2px solid rgba(224,255,255,.34);border-radius:999px;box-shadow:inset 2px 2px 5px #ffffff47,0 0 10px #adf6ff1f;height:var(--bubble-size);left:var(--bubble-x);opacity:0;position:absolute;top:110dvh;width:var(--bubble-size)}.space-stars{top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;position:fixed;z-index:0}.twinkle-star{animation:space-twinkle var(--star-duration) ease-in-out infinite;animation-delay:var(--star-delay);background:#fffffffa;border-radius:999px;box-shadow:0 0 8px #ffffffb8,0 0 14px #93d7ffad;height:4px;left:var(--star-x);opacity:.35;position:absolute;top:var(--star-y);width:4px}.twinkle-star:nth-child(3n){height:2px;width:2px}.twinkle-star:nth-child(5n){height:5px;width:5px}.storm-weather,.storm-rain,.snowfall,.fireflies{top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;position:fixed;z-index:0}.storm-weather:after{animation:haunted-lightning 9s linear infinite;background:#e2fff733;content:"";top:0;right:0;bottom:0;left:0;opacity:0;position:absolute}.arcade-trails{top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;position:fixed;z-index:0}.arcade-trail{animation-delay:var(--trail-delay);animation-duration:var(--trail-duration);animation-iteration-count:infinite;animation-timing-function:linear;border-radius:999px;opacity:0;position:absolute;will-change:opacity,transform}.arcade-trail-horizontal{animation-name:arcade-grid-run-horizontal;height:3px;left:-132px;top:var(--trail-lane);width:132px}.arcade-trail-vertical{animation-name:arcade-grid-run-vertical;height:132px;left:var(--trail-lane);top:-132px;width:3px}.arcade-trail:after{border-radius:50%;box-shadow:0 0 18px currentColor,0 0 34px currentColor;content:"";height:9px;position:absolute;width:9px}.arcade-trail-horizontal:after{right:-3px;top:-3px}.arcade-trail-vertical:after{bottom:-3px;left:-3px}.arcade-trail-cyan{box-shadow:0 0 9px #46fff0d6,0 0 22px #46fff07a;color:#53fff1}.arcade-trail-magenta{box-shadow:0 0 9px #ff42b5d6,0 0 22px #ff42b580;color:#ff42b5}.arcade-trail-horizontal.arcade-trail-cyan{background:linear-gradient(90deg,transparent,rgba(70,255,240,.2) 18%,#53fff1 100%)}.arcade-trail-horizontal.arcade-trail-magenta{background:linear-gradient(90deg,transparent,rgba(255,66,181,.2) 18%,#ff42b5 100%)}.arcade-trail-vertical.arcade-trail-cyan{background:linear-gradient(180deg,transparent,rgba(70,255,240,.2) 18%,#53fff1 100%)}.arcade-trail-vertical.arcade-trail-magenta{background:linear-gradient(180deg,transparent,rgba(255,66,181,.2) 18%,#ff42b5 100%)}.arcade-trail-cyan:after{background:#e7fffc}.arcade-trail-magenta:after{background:#fff0fa}.storm-rain span{animation:haunted-rain var(--rain-duration) linear infinite;animation-delay:var(--rain-delay);background:linear-gradient(to bottom,transparent,rgba(203,248,255,.34));height:var(--rain-length);left:var(--rain-x);position:absolute;top:-90px;transform:rotate(12deg);width:2px;will-change:transform}.snowfall span{animation:frost-snow var(--snow-duration) linear infinite;animation-delay:var(--snow-delay);background:#ffffffc7;border-radius:50%;box-shadow:0 0 7px #e1f9ff8a;height:var(--snow-size);left:var(--snow-x);position:absolute;top:-18px;width:var(--snow-size);will-change:transform}.fireflies span{animation:firefly-float var(--firefly-duration) ease-in-out infinite;animation-delay:var(--firefly-delay);background:#fff39a;border-radius:50%;box-shadow:0 0 6px #fff27be6,0 0 13px #6fffbc80;height:4px;left:var(--firefly-x);opacity:.18;position:absolute;top:var(--firefly-y);width:4px;will-change:transform,opacity}.undead-smoke,.neon-lighting{top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;position:fixed;z-index:0}.undead-smoke:before{animation:undead-fog-bed 7s ease-in-out infinite alternate;background:linear-gradient(to top,rgba(202,225,211,.24),transparent 88%);bottom:0;content:"";height:36dvh;left:0;position:absolute;right:0}.undead-smoke span{animation:undead-ground-fog var(--fog-duration) ease-in-out infinite;animation-delay:var(--fog-delay);background:radial-gradient(ellipse at 18% 60%,rgba(226,239,229,.86) 0 12%,transparent 31%),radial-gradient(ellipse at 44% 45%,rgba(208,186,224,.78) 0 15%,transparent 35%),radial-gradient(ellipse at 70% 62%,rgba(219,235,225,.82) 0 14%,transparent 34%),radial-gradient(ellipse at 92% 48%,rgba(155,207,185,.6) 0 11%,transparent 30%);bottom:var(--fog-bottom);filter:blur(10px);height:var(--fog-height);left:-28vw;opacity:0;position:absolute;width:var(--fog-width);will-change:transform,opacity}.undead-smoke span:nth-child(2n){animation-direction:reverse}.neon-lighting{animation:neon-light-shift 6.5s ease-in-out infinite alternate;background:linear-gradient(115deg,rgba(53,255,226,.16),transparent 42%),linear-gradient(295deg,rgba(255,57,180,.15),transparent 44%);mix-blend-mode:screen;opacity:.28}.neon-lightning-flash{animation:haunted-lightning 6.4s linear infinite;background:radial-gradient(circle at 26% 18%,rgba(235,255,255,.5),rgba(104,224,255,.24) 36%,transparent 72%),#c1f1ff29;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none;position:fixed;z-index:0}.theme-interaction-shield{top:0;right:0;bottom:0;left:0;pointer-events:auto;position:fixed;touch-action:none;z-index:7}.modal-backdrop{align-items:end;background:#220e344d;display:flex;top:0;right:0;bottom:0;left:0;padding:18px 18px max(50px,calc(env(safe-area-inset-bottom) + 34px));position:fixed;z-index:5}.background-backdrop{align-items:stretch;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0c082029;overflow:hidden;padding:14px}.symbol-backdrop{align-items:stretch;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0c082029;padding:14px}.symbol-modal{align-self:stretch;background:transparent;border:0;border-radius:0;box-shadow:none;color:#271335;display:flex;flex-direction:column;justify-content:flex-start;margin:0 auto;max-width:min(860px,calc(100vw - 28px));overflow:visible;padding:max(72px,calc(env(safe-area-inset-top) + 60px)) 0 max(18px,env(safe-area-inset-bottom));position:relative;width:100%}.symbol-modal .modal-header{height:0;left:0;margin:0;pointer-events:none;position:absolute;right:0;top:max(18px,calc(env(safe-area-inset-top) + 6px));z-index:6}.symbol-modal .close-button{left:50%;margin-left:0;pointer-events:auto;position:fixed;top:max(18px,calc(env(safe-area-inset-top) + 6px));transform:translate(-50%)}.visually-hidden{height:1px;margin:-1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.background-modal{align-self:stretch;background:transparent;border:0;box-shadow:none;color:#271335;display:flex;flex-direction:column;justify-content:flex-start;margin:0 auto;max-width:min(860px,calc(100vw - 28px));overflow:hidden;padding:max(72px,calc(env(safe-area-inset-top) + 60px)) 0 max(18px,env(safe-area-inset-bottom));position:relative;width:100%}.background-modal .modal-header{height:0;left:0;margin:0;pointer-events:none;position:absolute;right:0;top:max(18px,calc(env(safe-area-inset-top) + 6px));z-index:6}.background-modal .close-button{left:50%;margin-left:0;pointer-events:auto;position:fixed;top:max(18px,calc(env(safe-area-inset-top) + 6px));transform:translate(-50%)}.modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.modal-header h2{font-size:1.1rem;line-height:1.2;margin:0}.close-button{background:#ffffff2e;border-color:#ffffff47;color:#442353;height:40px;width:40px}.close-button svg{height:22px;width:22px}.theme-close-button{color:#050209;height:clamp(48px,12vw,64px);width:clamp(48px,12vw,64px)}.theme-close-button svg{height:52%;stroke-width:3;width:52%}.symbol-grid{display:grid;gap:clamp(10px,2.2vw,16px);grid-template-columns:repeat(3,minmax(0,1fr));max-height:calc(100dvh - max(104px,calc(env(safe-area-inset-top) + 92px)));overflow-y:auto;overscroll-behavior:contain;padding:4px 6px 8px;scrollbar-color:rgba(255,78,131,.58) rgba(91,46,130,.1)}.background-grid{align-content:start;display:grid;flex:1;gap:clamp(12px,2.4vw,18px);grid-template-columns:repeat(2,minmax(0,1fr));min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px 6px 8px;scrollbar-color:rgba(255,78,131,.58) rgba(91,46,130,.1)}.background-choice{align-items:center;background:var(--tile-surface, rgba(255, 255, 255, .58));contain:layout paint;border:2px solid rgba(255,255,255,.28);border-radius:8px;box-shadow:inset 0 1px #ffffff47,0 8px 18px #1f0e321f;cursor:pointer;display:flex;justify-content:center;min-width:0;padding:clamp(7px,1.5vw,10px);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.background-choice:active{transform:scale(.98)}.background-choice:disabled{cursor:default}.background-choice.selected{border-color:#ff4e83;box-shadow:inset 0 0 0 2px #ff4e8347,0 0 0 3px #ff4e832e,0 10px 22px #1f0e3224}.background-swatch{align-items:center;aspect-ratio:1;border-radius:6px;box-shadow:inset 0 0 0 1px #fff3,inset 0 -26px 48px #2713350f;display:flex;justify-content:center;overflow:hidden;position:relative;width:100%}.swatch-random .background-swatch{background:#fff}.swatch-icons{align-items:center;display:flex;gap:clamp(8px,2.5vw,16px);justify-content:center;position:relative;z-index:1}.swatch-icons span{align-items:center;display:flex;font-size:clamp(3.5rem,11vw,5.8rem);justify-content:center;line-height:1;text-shadow:0 7px 16px rgba(43,5,57,.28)}.swatch-icons.random-icons{perspective:640px}.swatch-icons.random-icons span{animation:random-dice-flip 3s ease-in-out infinite;backface-visibility:visible;font-size:clamp(5rem,14vw,8rem);text-shadow:0 8px 18px rgba(43,5,57,.16);transform-style:preserve-3d;will-change:transform}.swatch-icons .symbol-x{text-shadow:0 3px 0 #d72f67,0 8px 16px rgba(104,16,86,.26)}.swatch-icons .symbol-o{text-shadow:0 7px 16px rgba(43,5,57,.18)}.swatch-classic .background-swatch{background:linear-gradient(150deg,#fff,#f7f8fa 58%,#eceef2)}.swatch-space .background-swatch{background:radial-gradient(circle,rgba(255,255,255,.96) 0 1px,transparent 1.5px) 8px 8px / 28px 28px,radial-gradient(circle at 75% 22%,rgba(255,255,255,.24),transparent 12%),linear-gradient(155deg,#101044,#32136d 48%,#751b78)}.swatch-garden .background-swatch{background:radial-gradient(circle,rgba(255,238,150,.9) 0 2px,transparent 2.6px) 8px 8px / 28px 24px,radial-gradient(circle,rgba(255,142,196,.8) 0 2px,transparent 2.8px) 20px 18px / 34px 30px,radial-gradient(ellipse at center,rgba(18,113,70,.28) 0 2px,transparent 2.5px) 0 0 / 14px 10px,linear-gradient(145deg,#2fa778,#4cbd8d 42%,#d85ca5)}.swatch-sunset .background-swatch{background:radial-gradient(circle at 20% 25%,rgba(255,250,187,.78),transparent 14%),radial-gradient(circle at 82% 25%,rgba(235,238,255,.38),transparent 12%),radial-gradient(circle,rgba(255,255,255,.78) 0 1px,transparent 1.5px) 86% 18% / 28px 28px,linear-gradient(180deg,transparent 0%,transparent 48%,rgba(255,105,96,.28) 74%,rgba(235,67,146,.32) 100%),linear-gradient(135deg,transparent 0%,transparent 52%,rgba(19,24,82,.52) 100%),linear-gradient(90deg,#ffd36e,#ff9569 33%,#e25c9d 50%,#48309f 72%,#141a54)}.swatch-ocean .background-swatch{background:radial-gradient(circle,rgba(255,255,255,.42) 0 2px,transparent 2.8px) 8px 8px / 28px 28px,radial-gradient(circle,rgba(212,255,255,.3) 0 3px,transparent 4px) 20px 4px / 42px 38px,radial-gradient(ellipse at center,rgba(255,255,255,.22) 0 2px,transparent 2.8px) 0 0 / 24px 16px,linear-gradient(155deg,#1d87c9,#19b4bd 45%,#6759d8)}.swatch-candy .background-swatch{background:radial-gradient(circle,rgba(255,255,255,.5) 0 3px,transparent 3.8px) 8px 8px / 32px 28px,radial-gradient(circle,rgba(255,236,120,.56) 0 3px,transparent 4px) 18px 18px / 38px 34px,linear-gradient(135deg,rgba(255,255,255,.18) 25%,transparent 25% 50%,rgba(255,255,255,.18) 50% 75%,transparent 75%) 0 0 / 20px 20px,linear-gradient(145deg,#ff6db5,#b967ff 48%,#50c6ff)}.swatch-haunted .background-swatch{background:radial-gradient(circle,rgba(210,255,239,.7) 0 1.5px,transparent 2px) 8px 8px / 30px 28px,radial-gradient(circle at 78% 22%,rgba(255,119,192,.24),transparent 16%),linear-gradient(150deg,#10172f,#4a1e60,#16736e)}.swatch-dino .background-swatch{background:radial-gradient(ellipse at center,rgba(9,94,55,.3) 0 3px,transparent 4px) 6px 8px / 24px 18px,radial-gradient(circle,rgba(255,239,135,.6) 0 2px,transparent 2.8px) 20px 22px / 38px 34px,linear-gradient(145deg,#176f58,#35a96f 46%,#d29c48)}.swatch-arcade .background-swatch{background:linear-gradient(90deg,rgba(65,244,226,.2) 1px,transparent 1px) 0 0 / 18px 18px,linear-gradient(rgba(255,66,181,.18) 1px,transparent 1px) 0 0 / 18px 18px,linear-gradient(145deg,#0c1028,#30206e 48%,#082f4b)}.swatch-frost .background-swatch{background:radial-gradient(circle,rgba(255,255,255,.9) 0 2px,transparent 2.8px) 8px 8px / 28px 26px,radial-gradient(circle,rgba(219,246,255,.72) 0 3px,transparent 4px) 20px 18px / 42px 38px,linear-gradient(150deg,#3f91c1,#62b9dc 46%,#7d73c7)}.swatch-undead .background-swatch{background:radial-gradient(circle,rgba(197,255,153,.5) 0 2px,transparent 2.8px) 8px 8px / 30px 28px,radial-gradient(circle at 78% 22%,rgba(220,69,112,.24),transparent 16%),linear-gradient(150deg,#182d2a,#356348 48%,#5e203f)}.swatch-race .background-swatch{background:linear-gradient(90deg,rgba(255,255,255,.34) 0 8px,transparent 8px 16px) 0 0 / 32px 5px,radial-gradient(circle,rgba(255,239,101,.64) 0 2px,transparent 2.8px) 18px 20px / 38px 34px,linear-gradient(150deg,#3094c4,#60c8d0 48%,#87b94c)}.swatch-deepsea .background-swatch{background:radial-gradient(circle,rgba(179,248,255,.5) 0 2px,transparent 2.8px) 8px 8px / 28px 26px,radial-gradient(circle,rgba(91,218,228,.34) 0 3px,transparent 4px) 20px 18px / 42px 38px,linear-gradient(155deg,#063754,#075f86 46%,#18346f)}.swatch-midnight .background-swatch{background:radial-gradient(circle,rgba(255,255,255,.9) 0 1px,transparent 1.5px) 12px 10px / 32px 32px,radial-gradient(circle at 72% 22%,rgba(198,205,255,.34),transparent 15%),linear-gradient(155deg,#0b102f,#1b245b 54%,#2f1557)}.swatch-neon .background-swatch{background:linear-gradient(90deg,rgba(57,255,226,.18) 1px,transparent 1px) 0 0 / 18px 18px,linear-gradient(rgba(255,60,193,.16) 1px,transparent 1px) 0 0 / 18px 18px,linear-gradient(145deg,#071022,#23105a 48%,#041c35)}.swatch-jungle .background-swatch{background:radial-gradient(ellipse at center,rgba(7,78,37,.28) 0 3px,transparent 3.6px) 8px 8px / 24px 18px,radial-gradient(circle,rgba(255,236,120,.5) 0 2px,transparent 2.8px) 18px 22px / 38px 34px,linear-gradient(145deg,#0f6f3d,#26a455 48%,#6f4f1c)}.swatch-blackout .background-swatch{background:radial-gradient(circle,rgba(255,255,255,.54) 0 1px,transparent 1.4px) 10px 10px / 36px 36px,#000}.symbol-choice{align-items:center;aspect-ratio:1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffff9e;border:2px solid rgba(255,255,255,.28);border-radius:8px;box-shadow:inset 0 1px #ffffff47,0 8px 18px #1f0e321f;color:#1c0e25;cursor:pointer;display:flex;font-size:var(--game-symbol-size);font-weight:850;justify-content:center;line-height:1;min-width:0;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.symbol-choice.emoji-choice{font-size:var(--game-symbol-size)}.symbol-choice.symbol-x{color:#ff4e83;text-shadow:0 2px 0 #d72f67,0 7px 13px rgba(104,16,86,.26)}.symbol-choice.symbol-o{color:#050209;text-shadow:0 5px 12px rgba(43,5,57,.16)}.symbol-choice.emoji-choice{color:#1c0e25;text-shadow:0 5px 12px rgba(43,5,57,.12)}.symbol-choice.selected.symbol-x{background:#fee8f0;border-color:#ff4e83}.symbol-choice.selected.symbol-o{background:#f0e8ff;border-color:#1d0a2d}.symbol-choice.selected.emoji-choice{background:#fff6fb;border-color:#ff4e83}.symbol-choice.taken{background:#ffffff70;border-color:#5b2e8214;cursor:not-allowed;filter:grayscale(1);opacity:.28;text-shadow:none}@media(min-width:700px){.theme-interaction-shield{top:0;right:0;bottom:0;left:0;pointer-events:auto;position:fixed;touch-action:none;z-index:7}.modal-backdrop{align-items:center}}@media(orientation:portrait)and (min-width:700px)and (max-width:1100px){.symbol-modal{max-width:min(660px,calc(100vw - 56px))}.symbol-grid{gap:clamp(14px,2.4vw,22px)}}@media(max-width:430px){.app-shell{padding-inline:12px}.game{gap:clamp(20px,4dvh,34px);width:100%}.player-strip{gap:10px;padding-inline:10px}.player-chip{width:clamp(96px,27vw,120px)}}@media(max-height:760px){.game{gap:clamp(14px,3dvh,24px);width:min(100%,74dvh)}.player-chip{min-height:42px;padding-block:5px}.board-wrap{padding:10px}.board{gap:10px}}@keyframes winning-rain-fall{0%{transform:translate3d(0,-30px,0) rotate(var(--start-spin)) scale(1)}to{transform:translate3d(var(--drift),132dvh,0) rotate(var(--end-spin)) scale(1)}}@keyframes tie-rain-fall{0%{transform:translate3d(0,-30px,0) rotate(var(--tie-start-spin)) scale(1)}to{transform:translate3d(var(--tie-drift),132dvh,0) rotate(var(--tie-end-spin)) scale(1)}}@keyframes winner-pulse{0%{transform:scale(1)}to{transform:scale(1.035)}}@keyframes turn-pulse{0%,to{box-shadow:0 0 0 5px #ffffff38,0 0 24px #ffffff6b,0 16px 34px #3d157038;transform:scale(1.06)}50%{box-shadow:0 0 0 9px #ffffff24,0 0 34px #fff9,0 18px 36px #3d15703d;transform:scale(1.1)}}@keyframes winner-player-pop{0%{filter:brightness(1);transform:scale(1.08) rotate(-2deg)}to{filter:brightness(1.16);transform:scale(1.18) rotate(2deg)}}@keyframes draw-player-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}@keyframes winning-mark{0%{filter:brightness(1);transform:scale(1) rotate(-2deg)}to{filter:brightness(1.18);transform:scale(1.13) rotate(2deg)}}@keyframes draw-cell-glow{0%{filter:brightness(1);transform:scale(1)}to{filter:brightness(1.08);transform:scale(1.025)}}@keyframes restart-sheen{0%,76%{transform:translate(0) skew(-18deg)}90%,to{transform:translate(355%) skew(-18deg)}}@keyframes restart-complete-beacon{0%,12%,to{background:#4ade8061;border-color:#dcffe8f5;transform:scale(1);box-shadow:0 0 0 7px #4ade802e,0 0 28px #4ade8066,0 12px 28px #3d157029}24%{background:#4ade8094;border-color:#f0fff5;transform:scale(1.14);box-shadow:0 0 0 14px #4ade801f,0 0 42px #4ade8094,0 16px 34px #3d157033}38%{background:#38bdf86b;border-color:#dbf8fffa;transform:scale(1.04);box-shadow:0 0 0 9px #38bdf824,0 0 32px #38bdf86b}52%{background:#f472b666;border-color:#ffe1f2f5;transform:scale(1.09);box-shadow:0 0 0 11px #f472b61f,0 0 36px #f472b666}68%{background:#4ade806b;border-color:#dcffe8f5;transform:scale(1);box-shadow:0 0 0 7px #4ade8029,0 0 28px #4ade8061}}@keyframes ocean-bubble-rise{0%{opacity:0;transform:translateZ(0) scale(.78)}16%{opacity:.42}82%{opacity:.3}to{opacity:0;transform:translate3d(var(--bubble-drift),-124dvh,0) scale(1.08)}}@keyframes space-twinkle{0%,to{opacity:.28;transform:scale(.78)}48%{opacity:1;transform:scale(1.55)}}@keyframes haunted-rain{0%{transform:translate3d(0,-12dvh,0) rotate(12deg)}to{transform:translate3d(-38px,118dvh,0) rotate(12deg)}}@keyframes random-dice-flip{0%,68%{transform:rotateY(0) scale(1)}74%{transform:rotateY(180deg) scale(1.08)}80%,to{transform:rotateY(360deg) scale(1)}}@keyframes arcade-grid-run-horizontal{0%,12%{opacity:0;transform:translateZ(0)}18%{opacity:1}82%{opacity:1;transform:translate3d(calc(100vw + 264px),0,0)}88%,to{opacity:0;transform:translate3d(calc(100vw + 264px),0,0)}}@keyframes arcade-grid-run-vertical{0%,12%{opacity:0;transform:translateZ(0)}18%{opacity:1}82%{opacity:1;transform:translate3d(0,calc(100dvh + 264px),0)}88%,to{opacity:0;transform:translate3d(0,calc(100dvh + 264px),0)}}@keyframes haunted-lightning{0%,71%,74%,to{opacity:0}72%{opacity:.3}72.7%{opacity:.08}73.2%{opacity:.18}}@keyframes frost-snow{0%{transform:translate3d(0,-5dvh,0) rotate(0)}to{transform:translate3d(var(--snow-drift),112dvh,0) rotate(260deg)}}@keyframes firefly-float{0%,to{opacity:.12;transform:translate3d(-5px,5px,0) scale(.8)}45%{opacity:.86;transform:translate3d(7px,-9px,0) scale(1.3)}72%{opacity:.34;transform:translate3d(2px,-3px,0) scale(.94)}}@keyframes undead-ground-fog{0%{opacity:0;transform:translate3d(-24vw,64px,0) scaleY(.72)}24%{opacity:.86}64%{opacity:.7;transform:translate3d(8vw,-8px,0) scaleY(1)}to{opacity:0;transform:translate3d(28vw,-42px,0) scaleY(1.12)}}@keyframes undead-fog-bed{0%{opacity:.2;transform:translateY(18px)}to{opacity:.34;transform:translateY(0)}}@keyframes neon-light-shift{0%{filter:saturate(.9) brightness(.92);opacity:.18}48%{filter:saturate(1.15) brightness(1.08);opacity:.36}to{filter:saturate(1.02) brightness(1);opacity:.24}}@media(prefers-reduced-motion:reduce){.swatch-icons.random-icons span,.arcade-trails,.storm-weather,.snowfall,.fireflies,.undead-smoke,.neon-lightning-flash,.neon-lighting,.ocean-bubbles,.space-stars{display:none}}@media(max-height:680px){.app-shell{align-items:start;padding-top:max(86px,calc(env(safe-area-inset-top) + 72px))}.game{gap:12px}}@supports (-webkit-touch-callout: none){:root{--action-button-size: clamp(96px, 24vw, 132px);--game-symbol-size: clamp(4.2rem, 24vw, 9.4rem)}.chip-symbol{font-size:var(--game-symbol-size)}.chip-symbol.symbol-x{transform:translateY(.03em)}.chip-symbol.symbol-o{transform:translateY(.02em)}.mark{font-size:var(--game-symbol-size)}.mark.symbol-x{display:inline-block;transform:translateY(-.06em)}.mark.symbol-o{display:inline-block;transform:translateY(-.05em)}.symbol-choice.emoji-choice{font-size:var(--game-symbol-size)}.restart-button svg{height:82%;width:82%}}@media(orientation:landscape)and (max-height:760px){:root{--action-button-size: clamp(108px, 30dvh, 136px);--game-symbol-size: clamp(3.6rem, 21dvh, 7.8rem)}.app-shell{align-items:center;padding:env(safe-area-inset-top) 8px env(safe-area-inset-bottom)}.game{gap:clamp(8px,2dvh,16px);width:min(66vw,calc(100dvh - 18px),640px)}.player-strip{padding:max(8px,env(safe-area-inset-top)) 12px 0}.player-chip{min-height:0;padding:0;width:clamp(80px,23dvh,124px)}.chip-symbol{font-size:var(--game-symbol-size)}.symbol-modal{max-width:min(560px,calc(100vw - 96px),118dvh);padding-top:max(-24px,calc(env(safe-area-inset-top) - 24px))}.background-modal{max-width:min(620px,calc(100vw - 96px),138dvh);padding-top:max(-24px,calc(env(safe-area-inset-top) - 24px))}.symbol-modal .close-button,.background-modal .close-button{left:auto;right:max(18px,env(safe-area-inset-right));top:max(-24px,calc(env(safe-area-inset-top) - 24px));transform:none}.symbol-grid{gap:clamp(8px,2dvh,12px);max-height:calc(100dvh - max(42px,calc(env(safe-area-inset-top) + 30px)))}.background-grid{gap:clamp(8px,2dvh,12px)}.background-button svg{height:76%;width:76%}.board-wrap{padding:clamp(8px,2dvh,14px)}.board{gap:clamp(8px,2dvh,12px)}.controls{bottom:max(10px,calc(env(safe-area-inset-bottom) + 6px))}.restart-button svg{height:76%;width:76%}}@media(orientation:portrait)and (max-width:700px){:root{--action-button-size: clamp(108px, 24vw, 140px)}.app-shell{align-items:center;padding:max(104px,calc(env(safe-area-inset-top) + 88px)) 4px max(128px,calc(env(safe-area-inset-bottom) + 112px))}.game{gap:0;width:min(100%,84dvh)}.controls{bottom:max(16px,calc(env(safe-area-inset-bottom) + 12px));justify-content:end;padding:0;position:fixed;right:max(16px,env(safe-area-inset-right));z-index:4}.restart-button svg{height:78%;width:78%}.background-button{bottom:max(16px,calc(env(safe-area-inset-bottom) + 12px));left:max(16px,env(safe-area-inset-left));top:auto;transform:none}.background-button svg{height:76%;width:76%}.background-button:active{transform:scale(.96)}}
