@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.3gpqod6e6kd7d.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.1ay-qk1u8nydy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.3gpqod6e6kd7d.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.1ay-qk1u8nydy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.3gpqod6e6kd7d.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.1ay-qk1u8nydy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:800;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.3gpqod6e6kd7d.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-weight:800;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.1ay-qk1u8nydy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:900;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.3gpqod6e6kd7d.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-weight:900;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.1ay-qk1u8nydy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit Fallback;src:local(Arial);ascent-override:100.18%;descent-override:26.05%;line-gap-override:0.0%;size-adjust:99.82%}.outfit_2447f963-module__tPG-7a__className{font-family:Outfit,Outfit Fallback;font-style:normal}.outfit_2447f963-module__tPG-7a__variable{--font-outfit:"Outfit", "Outfit Fallback"}
:root{--bg-gradient:radial-gradient(circle at 50% 20%, #1e1b4b 0%, #0f172a 60%, #020617 100%);--card-bg:#1e293bbf;--card-border:#ffffff1a;--board-bg:#1d4ed8;--board-shadow:#1e3a8a;--slot-empty:#0b132b;--player1-color:#ef4444;--player1-glow:#ef444499;--player2-color:#eab308;--player2-glow:#eab30899;--text-main:#f8fafc;--text-muted:#94a3b8;--accent:#38bdf8;--accent-glow:#38bdf866}*{box-sizing:border-box;font-family:var(--font-outfit), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;-webkit-user-select:none;user-select:none;margin:0;padding:0}body{background:var(--bg-gradient);min-height:100vh;color:var(--text-main);flex-direction:column;justify-content:center;align-items:center;padding:1.5rem 1rem;display:flex;position:relative;overflow-x:hidden}.confetti-canvas{pointer-events:none;z-index:999;width:100vw;height:100vh;position:fixed;top:0;left:0}.container{flex-direction:column;align-items:center;gap:1.25rem;width:100%;max-width:680px;display:flex}header{text-align:center;position:relative}h1{letter-spacing:-.03em;background:linear-gradient(135deg,#ef4444 0%,#f59e0b 50%,#38bdf8 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 4px 12px #f59e0b4d);-webkit-background-clip:text;font-size:clamp(2rem,5vw,3rem);font-weight:900;display:inline-block}.subtitle{color:var(--text-muted);margin-top:.25rem;font-size:.95rem}.status-panel{background:var(--card-bg);border:1px solid var(--card-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:1.25rem;grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;width:100%;padding:.75rem 1.25rem;display:grid;box-shadow:0 10px 30px -10px #00000080}.player-card{border-radius:.85rem;align-items:center;gap:.75rem;padding:.5rem .75rem;transition:all .3s;display:flex}.player-card.active{background:#ffffff14;transform:scale(1.03);box-shadow:0 0 15px #ffffff0d}.player-card.p1.active{box-shadow:0 0 20px var(--player1-glow);border:1px solid #ef444480}.player-card.p2.active{box-shadow:0 0 20px var(--player2-glow);border:1px solid #eab30880}.player-token-indicator{border-radius:50%;flex-shrink:0;width:32px;height:32px;position:relative}.token-p1{background:radial-gradient(circle at 35% 35%,#fca5a5 0%,#ef4444 60%,#991b1b 100%);box-shadow:inset 0 2px 4px #fff6,0 2px 6px #0006}.token-p2{background:radial-gradient(circle at 35% 35%,#fef08a 0%,#eab308 60%,#854d0e 100%);box-shadow:inset 0 2px 4px #fff6,0 2px 6px #0006}.player-info{flex-direction:column;display:flex}.player-name{color:var(--text-main);font-size:.85rem;font-weight:700}.player-score{margin-top:2px;font-size:1.3rem;font-weight:900;line-height:1}.versus-badge{flex-direction:column;justify-content:center;align-items:center;padding:0 .5rem;display:flex}.turn-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.75rem;font-weight:700}.turn-detail{margin-top:2px;font-size:.85rem;font-weight:800}.controls-panel{border:1px solid var(--card-border);background:#0f172a99;border-radius:1rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;width:100%;padding:.5rem 1rem;display:flex}.controls-group{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.btn-select,.btn-action{color:var(--text-main);cursor:pointer;background:#1e293b;border:1px solid #ffffff26;border-radius:.6rem;outline:none;align-items:center;gap:.35rem;padding:.45rem .8rem;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-select:hover,.btn-action:hover{background:#334155;border-color:#ffffff4d;transform:translateY(-1px)}.btn-action.primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;box-shadow:0 4px 12px #2563eb66}.btn-action.primary:hover{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 6px 16px #2563eb99}.game-area{flex-direction:column;align-items:center;width:100%;display:flex;position:relative}.drop-indicators{gap:10px;width:100%;max-width:440px;height:48px;margin-bottom:8px;padding:0 14px;display:grid}.drop-indicator{cursor:pointer;opacity:0;justify-content:center;align-items:center;transition:opacity .15s,transform .2s;display:flex}.drop-indicator.hover{opacity:1;transform:translateY(3px)}.drop-preview-token{aspect-ratio:1;opacity:.85;border-radius:50%;width:78%;box-shadow:0 4px 10px #0000004d}.board-frame{background:linear-gradient(145deg,#2563eb 0%,#1e40af 100%);border-radius:1.5rem;width:100%;max-width:460px;padding:14px;position:relative;box-shadow:0 15px 35px -5px #0009,inset 0 2px 4px #ffffff4d,inset 0 -6px 12px #0006}.board-grid{background:0 0;gap:10px;width:100%;display:grid}.cell{aspect-ratio:1;background:var(--slot-empty);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:transform .15s,box-shadow .2s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 6px 10px #000c,inset 0 1px 2px #000000e6,0 1px 1px #fff3}.cell:hover{box-shadow:inset 0 6px 10px #000c,0 0 10px #ffffff4d}.chip{border-radius:50%;width:90%;height:90%;animation:.38s cubic-bezier(.34,1.35,.64,1) dropIn;position:relative}@keyframes dropIn{0%{opacity:.3;transform:translateY(-280px)scale(.9)}70%{transform:translateY(0)scale(1.05)}85%{transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.chip.placed{animation:.25s cubic-bezier(.175,.885,.32,1.275) popIn}@keyframes popIn{0%{opacity:0;transform:scale(.2)}80%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.chip.winner{z-index:10;animation:.9s cubic-bezier(.45,.05,.55,.95) infinite alternate winPulse;box-shadow:0 0 25px #fff,inset 0 0 15px #fffc}@keyframes winPulse{0%{filter:brightness(1.1);transform:scale(1)}to{filter:brightness(1.5);transform:scale(1.12)}}.message-banner{background:var(--card-bg);border:1px solid var(--card-border);text-align:center;border-radius:1rem;justify-content:center;align-items:center;gap:.5rem;width:100%;max-width:460px;min-height:52px;margin-top:1rem;padding:.85rem 1.5rem;font-size:1.15rem;font-weight:800;transition:all .3s;display:flex;box-shadow:0 4px 20px #0006}.message-banner.win-p1{color:#fca5a5;text-shadow:0 0 12px var(--player1-glow);background:#ef444426;border-color:#ef4444}.message-banner.win-p2{color:#fef08a;text-shadow:0 0 12px var(--player2-glow);background:#eab30826;border-color:#eab308}.message-banner.draw{color:#bae6fd;background:#38bdf826;border-color:#38bdf8}footer{color:var(--text-muted);text-align:center;flex-direction:column;gap:.25rem;margin-top:.5rem;font-size:.8rem;display:flex}.modal{width:100%;max-width:512px;max-height:100dvh;color:inherit;background:0 0;border:none;margin:auto;padding:1rem;overflow-y:auto}.modal::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#020617cc}.modal[open]{animation:.25s modalIn}@keyframes modalIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-content{background:#1e293b;border:1px solid #ffffff26;border-radius:1.25rem;width:100%;padding:1.75rem;box-shadow:0 20px 40px #0009}.modal-title{color:#f8fafc;justify-content:space-between;align-items:center;margin-bottom:.75rem;font-size:1.4rem;font-weight:800;display:flex}.modal-body{color:#cbd5e1;flex-direction:column;gap:.85rem;font-size:.92rem;line-height:1.55;display:flex}.modal-close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:1.5rem;line-height:1}.modal-close-btn:hover{color:#fff}.rule-item{align-items:flex-start;gap:.5rem;display:flex}.rule-dot{color:var(--accent);font-weight:700}@media (max-width:480px){.controls-panel{justify-content:center}.status-panel{padding:.5rem .75rem}.player-card{gap:.5rem;padding:.35rem .5rem}.player-token-indicator{width:26px;height:26px}}button.cell{color:inherit;border:none;padding:0}button.cell:disabled{cursor:default}.cell:focus-visible,.btn-select:focus-visible,.btn-action:focus-visible,.modal-close-btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.player-name,.subtitle,footer{-webkit-user-select:text;user-select:text}kbd{background:#0f172a;border:1px solid #fff3;border-bottom-width:2px;border-radius:.3rem;padding:0 .35em;font-family:inherit;font-size:.8em}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.chip,.chip.placed,.chip.winner,.modal[open]{animation:none}}@media (hover:none){.drop-indicators{display:none!important}}@media (max-width:480px){.player-name{white-space:nowrap}.btn-select,.btn-action{min-height:40px}}
