.tile-v2{--tile-delay: 0ms;position:relative;aspect-ratio:1;cursor:pointer;animation:tile-v2-entrance .5s cubic-bezier(.34,1.56,.64,1) backwards;animation-delay:var(--tile-delay);transform-origin:center center}.tile-v2:hover{transform:scale(1.04) translateY(-4px)}.tile-v2:hover .tile-v2-icon{transform:rotate(calc(var(--icon-rotation) + 3deg)) scale(calc(var(--icon-scale) * 1.08))}.tile-v2:active{transform:scale(.98)}@keyframes tile-v2-entrance{0%{opacity:0;transform:scale(.8) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}.tile-v2-bezel{position:absolute;top:0;right:0;bottom:0;left:0;background:#1a1a1a;border-radius:20px;padding:0;border:3px solid #1A1A1A;box-shadow:0 8px 24px #00000040,0 2px 8px #00000026;transition:box-shadow .3s ease,transform .3s ease;overflow:hidden}.tile-v2:hover .tile-v2-bezel{box-shadow:0 12px 32px #0000004d,0 4px 12px #0003,inset 0 1px #ffffffe6}.tile-v2-inner{position:relative;width:100%;height:100%;border-radius:17px;border:none;overflow:hidden}.tile-v2-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,var(--gradient-from) 0%,var(--gradient-to) 100%)}.tile-v2-blob{position:absolute;border-radius:50%;pointer-events:none;filter:blur(20px)}.tile-v2-blob-1{left:var(--blob1-x);top:var(--blob1-y);width:var(--blob1-size);height:var(--blob1-size);background:rgba(255,255,255,var(--blob1-opacity));transform:translate(-50%,-50%)}.tile-v2-blob-2{left:var(--blob2-x);top:var(--blob2-y);width:var(--blob2-size);height:var(--blob2-size);background:rgba(0,0,0,var(--blob2-opacity));transform:translate(-50%,-50%)}.tile-v2-icon-container{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.tile-v2-icon-picture{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.tile-v2-icon{width:100%;height:100%;object-fit:cover;transform:rotate(var(--icon-rotation)) scale(var(--icon-scale));transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.tile-v2-icon-placeholder:after{content:"🎮";font-size:64px;filter:drop-shadow(2px 3px 4px rgba(0,0,0,.3))}.tile-v2-title{display:none;position:absolute;bottom:0;left:0;right:0;padding:12px 14px 14px;background:linear-gradient(180deg,#0000,#0006)}.tile-v2-title-text{display:block;font-family:Fredoka,Nunito,sans-serif;font-size:18px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.5px;line-height:1.1;text-shadow:-1px -1px 0 #1A1A1A,1px -1px 0 #1A1A1A,-1px 1px 0 #1A1A1A,1px 1px 0 #1A1A1A,2px 2px 4px rgba(0,0,0,.5)}@media (max-width: 600px){.tile-v2-bezel{padding:0;border-radius:16px}.tile-v2-inner{border-radius:16px}.tile-v2-title-text{font-size:14px}.tile-v2-title{padding:10px 12px 12px}}.tile-v2-inner:before{content:"";position:absolute;top:-100%;left:-100%;width:50%;height:200%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transform:rotate(25deg);transition:left .6s ease;pointer-events:none;z-index:10}.tile-v2:hover .tile-v2-inner:before{left:150%}.page-transition{opacity:0;transform:translateY(12px);transition:opacity .25s ease-out,transform .25s ease-out;min-height:100%;width:100%}.page-transition.page-visible{opacity:1;transform:translateY(0)}.page-transition.page-fast{transition-duration:.15s}.page-transition.from-left{transform:translate(-20px)}.page-transition.from-left.page-visible{transform:translate(0)}.page-transition.from-right{transform:translate(20px)}.page-transition.from-right.page-visible{transform:translate(0)}.page-transition.scale-in{transform:scale(.95)}.page-transition.scale-in.page-visible{transform:scale(1)}.ttt-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;position:fixed;top:0;right:0;bottom:0;left:0;transition:background .3s ease;z-index:50}.ttt-header{position:absolute;top:24px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:12px}.ttt-turn-indicator{font-family:Fredoka,sans-serif;font-size:32px;font-weight:700;text-transform:uppercase;padding:12px 32px;border-radius:20px;text-shadow:2px 3px 0 rgba(0,0,0,.2)}.ttt-turn-yours{background:#ffffffe6;color:#2a2a2a;animation:turn-pulse 1s ease-in-out infinite alternate}.ttt-turn-opponent{background:#0003;color:#fff}@keyframes turn-pulse{0%{transform:scale(1);box-shadow:0 4px 12px #0003}to{transform:scale(1.03);box-shadow:0 6px 20px #0000004d}}.ttt-timer{font-family:Fredoka,sans-serif;font-size:28px;font-weight:700;color:#fff;text-shadow:2px 3px 0 rgba(0,0,0,.2);background:#00000026;padding:6px 20px;border-radius:12px}.ttt-timer-warning{color:#ff6b6b;animation:timer-pulse .5s ease-in-out infinite alternate}@keyframes timer-pulse{0%{transform:scale(1)}to{transform:scale(1.1)}}.ttt-win-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:1000;animation:win-screen-fade-in .3s ease-out}.ttt-win-screen-blue{background:linear-gradient(180deg,#a8d5e5,#6bade0)}.ttt-win-screen-red{background:linear-gradient(180deg,#fff5f3,#fdddd8)}.ttt-win-screen-tie{background:linear-gradient(180deg,#d0d0d0,#a0a0a0)}.ttt-win-text{font-family:Fredoka,sans-serif;font-size:72px;font-weight:700;color:#fff;text-transform:uppercase;text-shadow:4px 6px 0 rgba(0,0,0,.2),2px 3px 0 rgba(0,0,0,.1);animation:win-text-pop .5s ease-out}.ttt-restart-text{font-family:Fredoka,sans-serif;font-size:24px;font-weight:500;color:#fff;margin-top:16px;opacity:.9;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.9}50%{opacity:.5}}@keyframes win-screen-fade-in{0%{opacity:0}to{opacity:1}}@keyframes win-text-pop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.ttt-board{position:relative;width:500px;height:500px;background:transparent;transform:scale(1.1)}.ttt-grid-lines{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.ttt-line{position:absolute;background:#1a1a1a;border-radius:6px}.ttt-line-v1{left:33.33%;top:2%;width:12px;height:96%;transform:translate(-50%)}.ttt-line-v2{left:66.66%;top:2%;width:12px;height:96%;transform:translate(-50%)}.ttt-line-h1{top:33.33%;left:2%;height:12px;width:96%;transform:translateY(-50%)}.ttt-line-h2{top:66.66%;left:2%;height:12px;width:96%;transform:translateY(-50%)}.ttt-cells{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr)}.ttt-cell{display:flex;align-items:center;justify-content:center;padding:15px}.ttt-cell-clickable{cursor:pointer}.ttt-cell-clickable:hover:before{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;background:#ffffff40;border-radius:16px;pointer-events:none}.ttt-cell-clickable{position:relative}.ttt-piece{width:95%;height:95%;display:flex;align-items:center;justify-content:center}.ttt-piece svg{width:100%;height:100%}.ttt-piece-sprite{width:100%;height:100%;object-fit:contain;filter:drop-shadow(3px 4px 6px rgba(0,0,0,.35))}.ttt-piece-new{animation:piece-pop .25s cubic-bezier(.34,1.56,.64,1)}@keyframes piece-pop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}.ttt-win-line-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:500px;height:500px;pointer-events:none;z-index:10}.ttt-win-line-glow{stroke-dasharray:700;stroke-dashoffset:700;animation:win-line-draw 1s ease-out forwards;opacity:.6}.ttt-win-line-stroke{stroke-dasharray:700;stroke-dashoffset:700;animation:win-line-draw 1s ease-out forwards;filter:drop-shadow(0 0 15px rgba(255,255,255,.9)) drop-shadow(3px 4px 8px rgba(0,0,0,.5))}@keyframes win-line-draw{0%{stroke-dashoffset:700;stroke-width:20;opacity:.8}70%{stroke-dashoffset:0;stroke-width:20;opacity:1}85%{stroke-width:26}to{stroke-dashoffset:0;stroke-width:22;opacity:1}}.ttt-win-line-phase{display:flex;align-items:center;justify-content:center}.ttt-board-winning{animation:board-pulse .3s ease-out}@keyframes board-pulse{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}.rps-container{display:flex;flex-direction:column;align-items:center;gap:20px;padding:15px;transition:transform .1s;transform:scale(1.15);transform-origin:center center}.rps-shake{animation:rps-shake-anim .5s ease-out}@keyframes rps-shake-anim{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(10px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}.rps-loading{display:flex;flex-direction:column;align-items:center;gap:16px;color:#fff;font-size:20px}.rps-loading-spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.rps-scores{display:flex;align-items:center;gap:20px}.rps-player{display:flex;flex-direction:column;align-items:center;padding:12px 24px;border-radius:16px;border:4px solid var(--color-outline-dark)}.rps-player-blue{background:linear-gradient(180deg,#5dade2,#3498db)}.rps-player-red{background:linear-gradient(180deg,#ec7063,#e74c3c)}.rps-player-you{box-shadow:0 0 20px #ffffff4d}.rps-player-label{font-size:12px;font-weight:700;color:#fffc;text-transform:uppercase}.rps-player-score{font-family:Fredoka,sans-serif;font-size:40px;font-weight:700;color:#fff;text-shadow:2px 3px 0 rgba(0,0,0,.3)}.rps-vs-badge{display:flex;flex-direction:column;align-items:center;font-family:Fredoka,sans-serif;font-size:24px;font-weight:700;color:#fff;text-shadow:2px 2px 0 var(--color-outline-dark)}.rps-round{font-size:12px;opacity:.7;text-transform:uppercase}.rps-target{font-size:16px;color:#fffc;font-weight:600}.rps-timer{width:100px;height:100px}.rps-timer-circle{position:relative;width:100%;height:100%}.rps-timer-circle svg{width:100%;height:100%}.rps-timer-progress{transition:stroke-dasharray .3s linear}.rps-timer-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:Fredoka,sans-serif;font-size:42px;font-weight:700;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.3)}.rps-timer-warning .rps-timer-text{color:#e74c3c;animation:rps-timer-pulse .5s ease-in-out infinite}.rps-timer-warning .rps-timer-progress{stroke:#e74c3c}@keyframes rps-timer-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.rps-instruction{font-family:Fredoka,sans-serif;font-size:22px;font-weight:700;color:#fff;text-shadow:2px 2px 0 var(--color-outline-dark)}.rps-choices{display:flex;gap:16px}.rps-choice-btn{display:flex;align-items:center;justify-content:center;padding:8px;background:linear-gradient(180deg,#f5f5f5,#e0e0e0);border:4px solid var(--color-outline-dark);border-radius:20px;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 6px #bdbdbd;overflow:hidden}.rps-choice-btn:hover:not(:disabled){transform:translateY(-4px);box-shadow:0 10px #bdbdbd}.rps-choice-btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px #bdbdbd}.rps-choice-selected{background:linear-gradient(180deg,#a8e6cf,#7dcea0);box-shadow:0 6px #5da47a;transform:scale(1.1)}.rps-choice-dimmed{opacity:.5;transform:scale(.9)}.rps-choice-sprite-btn{display:flex;align-items:center;justify-content:center;width:100px;height:100px}.rps-choice-sprite-btn img{width:100%;height:100%;object-fit:contain;transition:transform .2s ease;border-radius:12px}.rps-choice-btn:hover:not(:disabled) .rps-choice-sprite-btn img{transform:scale(1.05)}.rps-choice-sprite{object-fit:contain}.rps-choice-unknown{font-size:48px;color:#0000004d}.rps-choice-name{font-family:Fredoka,sans-serif;font-size:14px;font-weight:700;color:#2c3e50;text-transform:uppercase}.rps-result-overlay{display:flex;flex-direction:column;align-items:center;gap:24px;padding:32px;border-radius:24px;border:4px solid var(--color-outline-dark);animation:rps-result-pop .4s cubic-bezier(.34,1.56,.64,1)}.rps-result-win{background:linear-gradient(180deg,#2ecc71,#27ae60)}.rps-result-lose{background:linear-gradient(180deg,#e74c3c,#c0392b)}.rps-result-tie{background:linear-gradient(180deg,#7f8c8d,#5d6d7e)}@keyframes rps-result-pop{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.rps-result-hands{display:flex;align-items:center;gap:24px}.rps-hand{display:flex;flex-direction:column;align-items:center;gap:8px}.rps-hand-sprite{width:100px;height:100px;display:flex;align-items:center;justify-content:center;animation:rps-hand-bounce .5s ease-out backwards}.rps-hand-left .rps-hand-sprite{animation-delay:.1s}.rps-hand-right .rps-hand-sprite{animation-delay:.2s}@keyframes rps-hand-bounce{0%{transform:translateY(-30px) scale(.8);opacity:0}60%{transform:translateY(5px) scale(1.05)}to{transform:translateY(0) scale(1);opacity:1}}.rps-hand-label{font-family:Fredoka,sans-serif;font-size:14px;font-weight:700;color:#fffc}.rps-result-vs{display:flex;align-items:center;justify-content:center}.rps-vs-sprite{width:80px;height:40px;filter:drop-shadow(2px 3px 4px rgba(0,0,0,.3));animation:rps-vs-pulse 1s ease-in-out infinite}@keyframes rps-vs-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.rps-result-text{font-family:Fredoka,sans-serif;font-size:36px;font-weight:700;color:#fff;text-shadow:3px 3px 0 rgba(0,0,0,.3)}.c4-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px;font-family:Fredoka,sans-serif;font-size:18px;color:var(--color-outline-dark)}.c4-loading-spinner{width:48px;height:48px;border:4px solid var(--color-sky);border-top-color:var(--color-salmon);border-radius:50%;animation:c4-spin 1s linear infinite}@keyframes c4-spin{to{transform:rotate(360deg)}}.c4-container{display:flex;flex-direction:column;align-items:center;gap:16px;padding:10px;transform:scale(1.2);transform-origin:center center}.c4-turn-banner{display:flex;align-items:center;gap:12px;font-family:Fredoka,sans-serif;font-size:24px;font-weight:700;padding:12px 28px;border-radius:var(--radius-pill);border:4px solid var(--color-outline-dark);text-shadow:2px 2px 0 rgba(0,0,0,.3)}.c4-turn-yours{background:linear-gradient(180deg,#f1c40f,#f39c12);color:#2c3e50;animation:c4-pulse 1s ease-in-out infinite}.c4-turn-theirs{background:linear-gradient(180deg,#7f8c8d,#5d6d7e);color:#fff}@keyframes c4-pulse{0%,to{transform:scale(1);box-shadow:0 0 #f1c40f00}50%{transform:scale(1.02);box-shadow:0 0 20px #f1c40f80}}.c4-turn-piece{width:28px;height:28px;border-radius:50%;border:3px solid var(--color-outline-dark)}.c4-timer{font-size:20px;font-weight:600;padding:4px 12px;background:#0003;border-radius:8px;min-width:50px;text-align:center;margin-left:auto}.c4-timer-urgent{background:linear-gradient(180deg,#e74c3c,#c0392b);color:#fff;animation:c4-timer-blink .5s ease-in-out infinite}@keyframes c4-timer-blink{0%,to{opacity:1}50%{opacity:.7}}.c4-board-wrapper{position:relative}.c4-column-highlights{position:absolute;top:0;left:16px;right:16px;bottom:0;display:flex;gap:8px;pointer-events:none;z-index:1}.c4-col-highlight{flex:1;background:transparent;border-radius:8px;transition:background .2s}.c4-col-highlight.active{background:#ffffff1a}.c4-preview{position:absolute;top:-50px;z-index:10;animation:c4-bounce .6s ease-in-out infinite}@keyframes c4-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.c4-piece-ghost{opacity:.6}.c4-board{display:flex;gap:8px;background:linear-gradient(180deg,#2c5aa0,#1e3a6e);padding:16px;border-radius:16px;border:6px solid var(--color-outline-dark);box-shadow:0 8px 24px #0006,inset 0 2px #ffffff1a;position:relative;z-index:2}.c4-column{display:flex;flex-direction:column;gap:8px;position:relative}.c4-column-clickable{cursor:pointer}.c4-column-clickable:hover .c4-cell{background:#ffffff26}.c4-cell{width:50px;height:50px;background:#1a2d4a;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .15s ease;box-shadow:inset 0 3px 8px #0006}.c4-cell-win{background:#ffd7004d!important;box-shadow:inset 0 3px 8px #0006,0 0 15px #ffd70080}.c4-piece{width:42px;height:42px;border-radius:50%;border:4px solid var(--color-outline-dark);box-shadow:inset 0 -4px #0003,inset 0 4px 8px #fff3}.c4-piece-blue{background:radial-gradient(circle at 35% 35%,#6cb4e8,#3498db)}.c4-piece-red{background:radial-gradient(circle at 35% 35%,#f07c6c,#e74c3c)}.c4-piece-dropping{animation:c4-drop .4s cubic-bezier(.25,.46,.45,.94)}@keyframes c4-drop{0%{transform:translateY(-350px);opacity:.8}60%{transform:translateY(8px)}80%{transform:translateY(-4px)}to{transform:translateY(0);opacity:1}}.c4-piece-win{animation:c4-win-pulse .8s ease-in-out infinite}@keyframes c4-win-pulse{0%,to{transform:scale(1);box-shadow:inset 0 -4px #0003,inset 0 4px 8px #fff3,0 0 #ffd70000}50%{transform:scale(1.08);box-shadow:inset 0 -4px #0003,inset 0 4px 8px #fff3,0 0 20px #ffd700cc}}.c4-win-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5}.c4-win-line{width:100%;height:100%}.c4-win-stroke-glow{stroke-dasharray:500;stroke-dashoffset:500;animation:c4-line-draw .8s ease-out forwards}.c4-win-stroke{stroke-dasharray:500;stroke-dashoffset:500;animation:c4-line-draw .8s ease-out forwards,c4-line-glow 1.5s ease-in-out infinite .8s;filter:drop-shadow(0 0 8px white)}@keyframes c4-line-draw{to{stroke-dashoffset:0}}@keyframes c4-line-glow{0%,to{filter:drop-shadow(0 0 8px white)}50%{filter:drop-shadow(0 0 15px white)}}.c4-piece-landed{animation:c4-piece-land .4s ease-out}@keyframes c4-piece-land{0%{transform:translateY(-300px)}50%{transform:translateY(8px)}70%{transform:translateY(-4px)}85%{transform:translateY(2px)}to{transform:translateY(0)}}.c4-column-clickable:hover{position:relative}.c4-column-clickable:hover:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg,rgba(255,255,255,.15),transparent);border-radius:8px;pointer-events:none;animation:c4-column-glow .3s ease-out}@keyframes c4-column-glow{0%{opacity:0}to{opacity:1}}.c4-board-shake{animation:c4-board-shake .5s ease-out}@keyframes c4-board-shake{0%,to{transform:translate(0) rotate(0)}10%{transform:translate(-4px,-2px) rotate(-1deg)}20%{transform:translate(4px,2px) rotate(1deg)}30%{transform:translate(-3px,1px) rotate(-.5deg)}40%{transform:translate(3px,-1px) rotate(.5deg)}50%{transform:translate(-2px,1px) rotate(-.25deg)}60%{transform:translate(2px,-1px) rotate(.25deg)}}.c4-piece-dropping{animation:c4-drop-spin .4s cubic-bezier(.25,.46,.45,.94)}@keyframes c4-drop-spin{0%{transform:translateY(-350px) rotate(0);opacity:.8}60%{transform:translateY(8px) rotate(180deg)}80%{transform:translateY(-4px) rotate(200deg)}to{transform:translateY(0) rotate(180deg);opacity:1}}.c4-win-flash{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;animation:c4-win-flash .3s ease-out;z-index:10}@keyframes c4-win-flash{0%{background:#fff6}to{background:transparent}}.c4-score-pop{animation:c4-score-pop .3s ease-out}@keyframes c4-score-pop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.dab-container{display:flex;flex-direction:column;align-items:center;gap:16px;padding:10px;transform:scale(1.15);transform-origin:center center}.dab-scoreboard{display:flex;align-items:center;gap:16px;font-family:Fredoka,sans-serif}.dab-score{display:flex;align-items:center;gap:10px;padding:8px 20px;border-radius:var(--radius-pill);border:4px solid var(--color-outline-dark)}.dab-score-blue{background:linear-gradient(180deg,#3498db,#2980b9)}.dab-score-red{background:linear-gradient(180deg,#e74c3c,#c0392b)}.dab-score-label{font-size:14px;font-weight:600;color:#fffc;text-transform:uppercase}.dab-score-value{font-size:32px;font-weight:700;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.3);min-width:36px;text-align:center}.dab-score-divider{font-size:28px;font-weight:700;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.3)}.dab-turn-banner{display:flex;align-items:center;gap:12px;font-family:Fredoka,sans-serif;font-size:22px;font-weight:700;padding:12px 28px;border-radius:var(--radius-pill);border:4px solid var(--color-outline-dark);text-shadow:2px 2px 0 rgba(0,0,0,.3)}.dab-turn-yours{background:linear-gradient(180deg,#f1c40f,#f39c12);color:#2c3e50;animation:dab-pulse 1s ease-in-out infinite}.dab-turn-theirs{background:linear-gradient(180deg,#7f8c8d,#5d6d7e);color:#fff}.dab-timer{font-size:18px;font-weight:700;padding:4px 12px;background:#0003;border-radius:12px;min-width:50px;text-align:center}.dab-timer-urgent{background:#e74c3c;animation:dab-timer-blink .5s ease-in-out infinite}@keyframes dab-timer-blink{0%,to{opacity:1}50%{opacity:.6}}@keyframes dab-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.dab-turn-dot{width:20px;height:20px;border-radius:50%;border:3px solid var(--color-outline-dark)}.dab-dot-blue{background:var(--color-accent-blue)}.dab-dot-red{background:var(--color-accent-red)}.dab-board{position:relative;background:#0003;border-radius:12px;padding:4px}.dab-box{position:absolute;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .3s}.dab-box-blue{background:#3498dbb3;border:2px solid rgba(52,152,219,.9);animation:dab-box-fill .3s ease-out}.dab-box-red{background:#e74c3cb3;border:2px solid rgba(231,76,60,.9);animation:dab-box-fill .3s ease-out}.dab-box-new{animation:dab-box-pop .5s ease-out}@keyframes dab-box-fill{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes dab-box-pop{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.dab-line{position:absolute;border-radius:4px;cursor:default;display:flex;align-items:center;justify-content:center}.dab-line-inner{width:100%;height:100%;border-radius:4px;background:transparent;transition:background .15s,transform .15s}.dab-line-clickable{cursor:pointer}.dab-line-clickable:hover .dab-line-inner{background:#fff6;transform:scale(1.1)}.dab-line-placed .dab-line-inner{background:#6b7280;box-shadow:0 0 4px #6b72804d}.dab-line-preview-blue.dab-line-hovered .dab-line-inner{background:var(--color-accent-blue);box-shadow:0 0 12px #3498db99}.dab-line-preview-red.dab-line-hovered .dab-line-inner{background:var(--color-accent-red);box-shadow:0 0 12px #e74c3c99}.dab-line-new .dab-line-inner{animation:dab-line-pop .3s ease-out}.dab-line-new-blue .dab-line-inner{animation:dab-line-pop .3s ease-out,dab-line-flash-blue .6s ease-out}.dab-line-new-red .dab-line-inner{animation:dab-line-pop .3s ease-out,dab-line-flash-red .6s ease-out}@keyframes dab-line-pop{0%{transform:scale(0)}70%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes dab-line-flash-blue{0%,30%{background:var(--color-accent-blue);box-shadow:0 0 15px #3498dbcc}to{background:#6b7280;box-shadow:0 0 4px #6b72804d}}@keyframes dab-line-flash-red{0%,30%{background:var(--color-accent-red);box-shadow:0 0 15px #e74c3ccc}to{background:#6b7280;box-shadow:0 0 4px #6b72804d}}.dab-dot{position:absolute;border-radius:50%;background:linear-gradient(180deg,#f5f5f5,#e0e0e0);border:3px solid var(--color-outline-dark);box-shadow:0 2px 4px #0000004d;z-index:10}.mem-container{display:flex;flex-direction:column;align-items:center;gap:16px;padding:10px;transform:scale(1.15);transform-origin:center center}.mem-loading{display:flex;flex-direction:column;align-items:center;gap:16px;color:#fff;font-size:20px}.mem-loading-spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.mem-turn-banner{font-family:Fredoka,sans-serif;font-size:24px;font-weight:700;padding:12px 28px;border-radius:var(--radius-pill);border:4px solid var(--color-outline-dark);text-shadow:2px 2px 0 rgba(0,0,0,.3);display:flex;align-items:center;gap:16px}.mem-turn-yours{background:linear-gradient(180deg,#f1c40f,#f39c12);color:#2c3e50;animation:mem-pulse 1s ease-in-out infinite}.mem-turn-theirs{background:linear-gradient(180deg,#7f8c8d,#5d6d7e);color:#fff}@keyframes mem-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.mem-timer{font-size:20px;font-weight:600;padding:4px 12px;background:#0003;border-radius:8px;min-width:50px;text-align:center}.mem-timer-urgent{background:linear-gradient(180deg,#e74c3c,#c0392b);color:#fff;animation:mem-timer-blink .5s ease-in-out infinite}@keyframes mem-timer-blink{0%,to{opacity:1}50%{opacity:.7}}.mem-scores{display:flex;align-items:center;gap:20px}.mem-score{display:flex;align-items:center;gap:12px;padding:10px 20px;border-radius:16px;border:3px solid var(--color-outline-dark);transition:transform .2s,box-shadow .2s}.mem-score.active{transform:scale(1.05);box-shadow:0 0 20px #ffffff4d}.mem-score-blue{background:linear-gradient(180deg,#5dade2,#3498db)}.mem-score-red{background:linear-gradient(180deg,#ec7063,#e74c3c)}.mem-score-avatar{font-size:28px}.mem-score-info{display:flex;flex-direction:column}.mem-score-label{font-size:12px;font-weight:700;color:#fffc;text-transform:uppercase}.mem-score-value{font-family:Fredoka,sans-serif;font-size:28px;font-weight:700;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.3)}.mem-score-vs{font-family:Fredoka,sans-serif;font-size:18px;font-weight:700;color:#fff;text-shadow:2px 2px 0 var(--color-outline-dark)}.mem-grid{display:grid;gap:8px;padding:16px;background:#0003;border-radius:16px;border:4px solid rgba(255,255,255,.1)}.mem-card{width:55px;height:55px;perspective:1000px;cursor:default}.mem-card-clickable{cursor:pointer}.mem-card-clickable:hover .mem-card-inner{transform:scale(1.05)}.mem-card-inner{position:relative;width:100%;height:100%;transition:transform .4s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d}.mem-card-flipped .mem-card-inner{transform:rotateY(180deg)}.mem-card-front,.mem-card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;border-radius:10px;display:flex;align-items:center;justify-content:center;border:3px solid var(--color-outline-dark)}.mem-card-front{transform:rotateY(180deg);background:linear-gradient(180deg,#f5f5f5,#e0e0e0);box-shadow:inset 0 2px #fffc,0 4px 8px #0003}.mem-card-back{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:inset 0 2px #ffffff4d,0 4px 8px #0000004d}.mem-card-back:before{content:"✨";font-size:16px;position:absolute;opacity:.4}.mem-card-icon{font-size:28px}.mem-card-question{font-family:Fredoka,sans-serif;font-size:24px;font-weight:700;color:#fff;text-shadow:1px 2px 0 rgba(0,0,0,.3)}.mem-card-matched .mem-card-front{background:linear-gradient(180deg,#a8e6cf,#7dcea0);opacity:.8}.mem-card-match-anim .mem-card-inner{animation:card-match .6s ease-out}@keyframes card-match{0%{transform:rotateY(180deg) scale(1)}50%{transform:rotateY(180deg) scale(1.2)}to{transform:rotateY(180deg) scale(1)}}.mem-card-shake .mem-card-inner{animation:card-shake .4s ease-out}@keyframes card-shake{0%,to{transform:rotateY(180deg) translate(0)}25%{transform:rotateY(180deg) translate(-5px)}75%{transform:rotateY(180deg) translate(5px)}}.mem-card-clickable:hover .mem-card-inner{transform:scale(1.05) translateY(-4px);filter:brightness(1.05)}.mem-card-clickable:hover .mem-card-back{box-shadow:inset 0 2px #fff3,0 8px 16px #0006}.mem-card-match-anim{position:relative}.mem-card-match-anim:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:14px;background:transparent;animation:mem-sparkle-ring .6s ease-out;pointer-events:none}@keyframes mem-sparkle-ring{0%{box-shadow:0 0 #2ecc71cc}to{box-shadow:0 0 0 12px #2ecc7100}}.mem-sparkles{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:10}.mem-sparkle{position:absolute;font-size:12px;animation:mem-sparkle-burst .6s ease-out forwards}@keyframes mem-sparkle-burst{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--dx, 0),var(--dy, 0)) scale(.5);opacity:0}}.mem-combo{position:absolute;top:-40px;left:50%;transform:translate(-50%);font-family:Fredoka,sans-serif;font-size:20px;font-weight:700;color:gold;text-shadow:2px 2px 0 rgba(0,0,0,.5);white-space:nowrap;animation:mem-combo-pop .3s ease-out;z-index:20}@keyframes mem-combo-pop{0%{transform:translate(-50%) scale(.5);opacity:0}60%{transform:translate(-50%) scale(1.2)}to{transform:translate(-50%) scale(1);opacity:1}}.mem-score-value.score-pop{animation:mem-score-pop .3s ease-out}@keyframes mem-score-pop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.mem-grid-complete{animation:mem-grid-celebrate .5s ease-out}@keyframes mem-grid-celebrate{0%{transform:scale(1)}50%{transform:scale(1.02);filter:brightness(1.1)}to{transform:scale(1)}}.mem-card-flipping:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:10px;background:#ffffff4d;animation:mem-flip-ripple .4s ease-out;pointer-events:none;z-index:5}@keyframes mem-flip-ripple{0%{transform:scale(.8);opacity:1}to{transform:scale(1.3);opacity:0}}.mem-card-no-match .mem-card-front{animation:mem-no-match-flash .3s ease-out}@keyframes mem-no-match-flash{0%,to{background:linear-gradient(180deg,#f5f5f5,#e0e0e0)}50%{background:linear-gradient(180deg,#ffcccb,#ffb3b3)}}.chk-container{display:flex;flex-direction:column;align-items:center;gap:16px;padding:10px;transform:scale(1.2);transform-origin:center center}.chk-loading{display:flex;flex-direction:column;align-items:center;gap:16px;color:#fff;font-size:20px}.chk-loading-spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:chk-spin 1s linear infinite}@keyframes chk-spin{to{transform:rotate(360deg)}}.chk-turn-banner{font-family:Fredoka,sans-serif;font-size:22px;font-weight:700;padding:12px 28px;border-radius:var(--radius-pill);border:4px solid var(--color-outline-dark);text-shadow:2px 2px 0 rgba(0,0,0,.3);display:flex;align-items:center;gap:16px}.chk-timer{font-size:16px;padding:4px 12px;background:#0003;border-radius:8px}.chk-timer-urgent{background:#e74c3c;animation:chk-timer-blink .5s ease-in-out infinite}@keyframes chk-timer-blink{0%,to{opacity:1}50%{opacity:.6}}.chk-turn-yours{background:linear-gradient(180deg,#f1c40f,#f39c12);color:#2c3e50;animation:chk-pulse 1s ease-in-out infinite}.chk-turn-theirs{background:linear-gradient(180deg,#7f8c8d,#5d6d7e);color:#fff}@keyframes chk-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.chk-scores{display:flex;align-items:center;gap:20px}.chk-player{display:flex;align-items:center;gap:10px;padding:10px 20px;border-radius:16px;border:4px solid var(--color-outline-dark);transition:transform .2s}.chk-player-you{box-shadow:0 0 15px #ffffff4d}.chk-player-blue{background:linear-gradient(180deg,#5dade2,#3498db)}.chk-player-red{background:linear-gradient(180deg,#ec7063,#e74c3c)}.chk-piece-preview{width:28px;height:28px;border-radius:50%;border:3px solid var(--color-outline-dark)}.chk-piece-preview-blue{background:radial-gradient(circle at 35% 35%,#6cb4e8,#3498db)}.chk-piece-preview-red{background:radial-gradient(circle at 35% 35%,#f07c6c,#e74c3c)}.chk-player-count{font-family:Fredoka,sans-serif;font-size:28px;font-weight:700;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.3)}.chk-vs{font-family:Fredoka,sans-serif;font-size:20px;font-weight:700;color:#fff;text-shadow:2px 2px 0 var(--color-outline-dark)}.chk-board{display:grid;grid-template-columns:repeat(8,50px);grid-template-rows:repeat(8,50px);border:6px solid var(--color-outline-dark);border-radius:8px;box-shadow:0 8px 24px #0006;overflow:hidden}.chk-board-flipped{transform:rotate(180deg)}.chk-cell{width:50px;height:50px;display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer;transition:background .15s}.chk-cell-light{background:wheat}.chk-cell-dark{background:#8b4513}.chk-cell-selected{background:#f1c40f80!important}.chk-cell-valid{cursor:pointer}.chk-cell-valid:hover{background:#2ecc7166!important}.chk-cell-last-from{background:#9b59b64d!important}.chk-cell-last-to{background:#9b59b680!important}.chk-piece{width:40px;height:40px;border-radius:50%;border:4px solid var(--color-outline-dark);display:flex;align-items:center;justify-content:center;transition:transform .15s,box-shadow .15s;box-shadow:inset 0 -4px #0003,0 4px 8px #0000004d}.chk-piece-blue{background:radial-gradient(circle at 35% 35%,#6cb4e8,#3498db)}.chk-piece-red{background:radial-gradient(circle at 35% 35%,#f07c6c,#e74c3c)}.chk-piece-flipped{transform:rotate(180deg)}.chk-piece-movable{animation:chk-glow 1.5s ease-in-out infinite}@keyframes chk-glow{0%,to{box-shadow:inset 0 -4px #0003,0 4px 8px #0000004d}50%{box-shadow:inset 0 -4px #0003,0 0 20px #f1c40f99}}.chk-piece-selected{transform:scale(1.15);box-shadow:inset 0 -4px #0003,0 0 20px #f1c40fcc!important}.chk-piece-king{border-width:5px}.chk-crown{font-size:18px}.chk-move-indicator{width:20px;height:20px;border-radius:50%;background:#2ecc7199;animation:chk-indicator-pulse 1s ease-in-out infinite}.chk-jump-indicator{background:#e74c3cb3;width:28px;height:28px}@keyframes chk-indicator-pulse{0%,to{transform:scale(.9);opacity:.7}50%{transform:scale(1.1);opacity:1}}.chk-piece-moving{animation:chk-piece-slide .3s ease-out forwards;z-index:10}@keyframes chk-piece-slide{0%{transform:translate(var(--from-x, 0),var(--from-y, 0))}to{transform:translate(0)}}.chk-piece-captured{animation:chk-piece-capture .4s ease-out forwards;pointer-events:none}@keyframes chk-piece-capture{0%{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.7}to{transform:scale(0);opacity:0}}.chk-piece-promoting{animation:chk-promotion .5s ease-out}@keyframes chk-promotion{0%{transform:scale(1)}30%{transform:scale(1.3);filter:brightness(1.3)}60%{transform:scale(1.1)}to{transform:scale(1)}}.chk-crown-drop{animation:chk-crown-drop .5s ease-out}@keyframes chk-crown-drop{0%{transform:translateY(-30px) scale(1.5);opacity:0}60%{transform:translateY(5px) scale(1.1);opacity:1}to{transform:translateY(0) scale(1);opacity:1}}.chk-board-shake{animation:chk-board-shake .3s ease-out}@keyframes chk-board-shake{0%,to{transform:translate(0)}20%{transform:translate(-3px,-2px)}40%{transform:translate(3px,2px)}60%{transform:translate(-2px,1px)}80%{transform:translate(2px,-1px)}}.chk-jump-trail{position:absolute;width:8px;height:8px;border-radius:50%;background:#f1c40f99;pointer-events:none;animation:chk-trail-fade .5s ease-out forwards}@keyframes chk-trail-fade{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.5)}}.chk-cell-land{animation:chk-cell-land .3s ease-out}@keyframes chk-cell-land{0%{background:#f1c40fcc!important}to{background:inherit}}.chk-victory-piece{animation:chk-victory-bounce .5s ease-out infinite alternate}@keyframes chk-victory-bounce{0%{transform:translateY(0)}to{transform:translateY(-8px)}}.chk-player-count.score-pop{animation:chk-score-pop .3s ease-out}@keyframes chk-score-pop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.bs-container{display:flex;flex-direction:column;align-items:center;gap:12px;padding:10px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.bs-horizontal.bs-combat{flex-direction:column}.bs-horizontal .bs-grids-container{display:flex;flex-direction:row;gap:24px;align-items:flex-start}.bs-horizontal .bs-grid-section{padding-bottom:0}.bs-deploy-header{display:flex;align-items:center;gap:16px;justify-content:center}.bs-deploy-buttons{display:flex;gap:12px;align-items:center}.bs-container *{user-select:none;-webkit-user-select:none;-webkit-user-drag:none}.bs-title{font-family:Fredoka,sans-serif;font-size:32px;font-weight:700;color:#1a1a1a;text-shadow:2px 2px 0 rgba(255,255,255,.8);margin:0}.bs-subtitle{font-family:Fredoka,sans-serif;font-size:16px;color:#333;text-shadow:none;text-align:center;margin:0;line-height:1.4}.bs-btn{font-family:Fredoka,sans-serif;font-weight:700;border:4px solid var(--color-outline-dark);border-radius:var(--radius-pill);cursor:pointer;text-shadow:1px 2px 0 rgba(0,0,0,.3);transition:transform .15s,box-shadow .15s}.bs-btn:hover{transform:scale(1.05)}.bs-btn:active{transform:scale(.98)}.bs-random-btn{background:linear-gradient(180deg,#5dade2,#3498db);color:#fff;padding:12px 32px;font-size:18px;box-shadow:0 4px #2874a6}.bs-ready-btn{background:linear-gradient(180deg,#2ecc71,#27ae60);color:#fff;padding:14px 40px;font-size:20px;box-shadow:0 5px #1e8449;display:flex;align-items:center;gap:8px}.bs-ship-tray{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;padding:12px;background:#0003;border-radius:12px;border:3px solid rgba(255,255,255,.1);margin-top:8px}.bs-tray-ship{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 12px;background:linear-gradient(180deg,#7f8c8d,#5d6d7e);border:3px solid var(--color-outline-dark);border-radius:10px;cursor:pointer;transition:transform .15s,box-shadow .15s}.bs-tray-ship:hover{transform:scale(1.05)}.bs-tray-ship.selected{outline:4px solid #F1C40F;transform:scale(1.1);box-shadow:0 0 20px #f1c40f80}.bs-ship-name{font-size:10px;font-weight:700;color:#fff;text-transform:uppercase;text-shadow:1px 1px 0 rgba(0,0,0,.5)}.bs-grid{display:grid;grid-template-columns:repeat(8,34px);grid-template-rows:repeat(8,34px);gap:2px;padding:4px;border-radius:10px;position:relative;border:4px solid var(--color-outline-dark)}.bs-grid-deploy{background:linear-gradient(180deg,#e07a5f,#c0604a)}.bs-grid-enemy{background:linear-gradient(180deg,#3d5a80,#2c4a6e);overflow:hidden}.bs-grid-mine{background:linear-gradient(180deg,#e07a5f,#c0604a);transition:filter .3s ease}.bs-my-grid-blurred .bs-grid-mine{filter:blur(2px);opacity:.7}.bs-cell{background:#00000026;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:18px;transition:all .15s;position:relative;z-index:2}.bs-cell-placing{cursor:crosshair}.bs-cell-placing:hover{background:#ffffff4d}.bs-cell-ghost-valid{background:#2ecc7180!important;box-shadow:inset 0 0 8px #2ecc7180}.bs-cell-ghost-invalid{background:#e74c3c80!important;box-shadow:inset 0 0 8px #e74c3c80}.bs-cell-ship-mine{background:#27ae6040}.bs-cell-hit{background:#e74c3c99!important}.bs-cell-miss{background:#0000004d}.bs-cell-sunk{background:#641e1eb3!important}.bs-cell-target{cursor:crosshair}.bs-cell-target:hover{background:#ffc80099!important;box-shadow:0 0 12px #ffc80080;transform:scale(1.05);z-index:10}.bs-cell-hit-anim{animation:hit-explosion .5s ease-out}.bs-cell-miss-anim{animation:miss-splash .5s ease-out}@keyframes hit-explosion{0%{transform:scale(1);background:#ffc800}50%{transform:scale(1.3)}to{transform:scale(1);background:#e74c3c99}}@keyframes miss-splash{0%{transform:scale(1)}50%{transform:scale(1.2);background:#3498dbcc}to{transform:scale(1)}}.bs-hit-marker{font-size:20px;animation:marker-pop .3s ease-out}.bs-miss-marker{font-size:22px;font-weight:900;color:#fff;text-shadow:1px 1px 2px rgba(0,0,0,.5);animation:marker-pop .3s ease-out}@keyframes marker-pop{0%{transform:scale(0)}70%{transform:scale(1.3)}to{transform:scale(1)}}.bs-placed-ship{position:absolute;cursor:grab;z-index:10;transition:transform .1s,box-shadow .1s;overflow:hidden}.bs-placed-ship:hover{z-index:20}.bs-placed-ship.dragging{cursor:grabbing;z-index:30;transform:scale(1.02);box-shadow:0 4px 20px #0006}.bs-ship-body{width:100%;height:100%;display:flex;background:linear-gradient(135deg,#e86b6b,#c0392b);border:3px solid var(--color-outline-dark);border-radius:8px;overflow:hidden;box-sizing:border-box}.bs-ship-body.vertical{flex-direction:column}.bs-ship-bow{flex:0 0 auto;width:100%;height:100%;min-width:32px;min-height:32px;background:linear-gradient(135deg,#ef8888,#e86b6b);clip-path:polygon(0 20%,100% 0%,100% 100%,0 80%)}.bs-ship-body.vertical .bs-ship-bow{clip-path:polygon(20% 0,80% 0,100% 100%,0 100%)}.bs-ship-segment{flex:1;background:linear-gradient(180deg,rgba(255,255,255,.1) 0%,transparent 50%);border-left:1px solid rgba(0,0,0,.2)}.bs-ship-body.vertical .bs-ship-segment{border-left:none;border-top:1px solid rgba(0,0,0,.2)}.bs-ship-rotate-hint{position:absolute;top:-8px;right:-8px;width:18px;height:18px;background:#f1c40f;border:2px solid #1A1A1A;border-radius:50%;font-size:10px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;pointer-events:none}.bs-placed-ship:hover .bs-ship-rotate-hint{opacity:1}.bs-ghost-ship-preview{position:absolute;z-index:5;pointer-events:none;transition:opacity .15s;overflow:hidden}.bs-ship-image{display:block}.bs-my-ship{position:absolute;z-index:5;pointer-events:none;box-sizing:border-box;overflow:hidden}.bs-my-ship-sunk{opacity:.7}.bs-my-ship-damaged{animation:ship-damage-pulse 1s ease-in-out infinite}@keyframes ship-damage-pulse{0%,to{opacity:1}50%{opacity:.8}}.bs-ship-hit-marker{pointer-events:none;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.bs-sunk-ship{position:absolute;z-index:3;opacity:.8;animation:sink 1s ease-out;box-sizing:border-box;overflow:hidden}@keyframes sink{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:.8}}.bs-targeting-reticle{position:absolute;width:30px;height:30px;transform:translate(-50%,-50%);pointer-events:none;z-index:50}.bs-targeting-reticle:before,.bs-targeting-reticle:after{content:"";position:absolute;background:#fff;box-shadow:0 0 4px #00000080}.bs-targeting-reticle:before{width:2px;height:100%;left:50%;transform:translate(-50%)}.bs-targeting-reticle:after{width:100%;height:2px;top:50%;transform:translateY(-50%)}.bs-cannon{display:flex;flex-direction:column;align-items:center;margin-top:8px;animation:cannon-ready 1s ease-in-out infinite;z-index:20}.bs-cannon-img{width:80px;height:auto;filter:drop-shadow(3px 4px 6px rgba(0,0,0,.4))}@keyframes cannon-ready{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.bs-grid-blue{background:linear-gradient(180deg,#b8d4e8,#8ab8d9);border-color:#3498db}.bs-grid-blue .bs-cell{background:linear-gradient(135deg,#cce5f5,#a8d4f0);border-color:#5dade2}.bs-grid-red{background:linear-gradient(180deg,#e8b8b8,#d98a8a);border-color:#e74c3c}.bs-grid-red .bs-cell{background:linear-gradient(135deg,#f5cccc,#f0a8a8);border-color:#ec7063}.bs-cannonball{position:absolute;width:16px;height:16px;background:radial-gradient(circle at 30% 30%,#4a4a4a,#1a1a1a);border-radius:50%;z-index:100;pointer-events:none;animation:cannonball-fly .4s ease-in forwards;left:var(--from-x);top:var(--from-y);transform:translate(-50%,-50%)}@keyframes cannonball-fly{0%{left:var(--from-x);top:var(--from-y);transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.3)}to{left:var(--to-x);top:var(--to-y);transform:translate(-50%,-50%) scale(1)}}.bs-waiting{justify-content:center;min-height:400px}.bs-waiting-icon{font-size:80px;animation:bob 2s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.bs-waiting-dots{display:flex;gap:8px}.bs-dot{width:12px;height:12px;background:#fff;border-radius:50%;animation:dot-pulse 1.4s ease-in-out infinite}.bs-dot:nth-child(2){animation-delay:.2s}.bs-dot:nth-child(3){animation-delay:.4s}@keyframes dot-pulse{0%,80%,to{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}.bs-combat{gap:10px}.bs-grid-section{display:flex;flex-direction:column;align-items:center;gap:6px;position:relative}.bs-grid-label{font-family:Fredoka,sans-serif;font-size:14px;font-weight:700;color:#1a1a1a;text-shadow:none;text-transform:uppercase}.bs-ship-status-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 16px;background:#0000004d;border-radius:12px;border:3px solid rgba(255,255,255,.1);width:100%;max-width:340px}.bs-status-group{display:flex;flex-direction:column;align-items:center;gap:4px}.bs-status-label{font-size:9px;font-weight:700;color:#ffffffb3;text-transform:uppercase;letter-spacing:.5px}.bs-status-ships{display:flex;flex-direction:column;gap:2px}.bs-status-ship-item{transition:opacity .3s,transform .3s}.bs-status-ship-item.sunk{opacity:.4;transform:scale(.9)}.bs-score-indicator{display:flex;align-items:center;gap:6px;font-family:Fredoka,sans-serif;font-size:24px;font-weight:700}.bs-score{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.3)}.bs-score.blue{background:linear-gradient(180deg,#5bb5e0,#3498db);border:2px solid #1A1A1A}.bs-score.red{background:linear-gradient(180deg,#e86b6b,#c0392b);border:2px solid #1A1A1A}.bs-score-divider{color:#ffffff80}.bs-timer{font-family:Fredoka,sans-serif;font-size:20px;font-weight:700;padding:8px 16px;background:#0000004d;border-radius:12px;color:#fff}.bs-timer-urgent{background:#e74c3c;animation:timer-blink .5s ease-in-out infinite}@keyframes timer-blink{0%,to{opacity:1}50%{opacity:.6}}.bs-turn-timer{font-size:16px;padding:4px 10px;background:#0003;border-radius:8px;margin-left:12px}.bs-turn-banner{font-family:Fredoka,sans-serif;font-size:18px;font-weight:700;padding:10px 24px;border-radius:var(--radius-pill);text-shadow:2px 2px 0 rgba(0,0,0,.3);border:4px solid var(--color-outline-dark);display:flex;align-items:center;justify-content:center}.bs-turn-yours{background:linear-gradient(180deg,#f1c40f,#f39c12);color:#2c3e50;animation:pulse-turn 1s ease-in-out infinite}.bs-turn-theirs{background:linear-gradient(180deg,#7f8c8d,#5d6d7e);color:#fff}@keyframes pulse-turn{0%,to{transform:scale(1);box-shadow:0 0 #f1c40f00}50%{transform:scale(1.02);box-shadow:0 0 20px #f1c40f80}}.bs-sunk-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000080;z-index:100;animation:sunk-overlay-in .3s ease-out}@keyframes sunk-overlay-in{0%{opacity:0}to{opacity:1}}.bs-sunk-text{font-family:Fredoka,sans-serif;font-size:40px;font-weight:700;color:#e74c3c;text-shadow:4px 4px 0 var(--color-outline-dark),0 0 30px rgba(231,76,60,.8);animation:sunk-text-pop .5s cubic-bezier(.34,1.56,.64,1)}@keyframes sunk-text-pop{0%{transform:scale(0) rotate(-10deg)}70%{transform:scale(1.2) rotate(5deg)}to{transform:scale(1) rotate(0)}}.bs-game-end-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#000c;z-index:200}.bs-game-end-animation{display:flex;flex-direction:column;align-items:center;gap:16px;animation:game-end-appear .6s cubic-bezier(.34,1.56,.64,1)}.bs-game-end-animation.win{color:#f1c40f}.bs-game-end-animation.lose{color:#e74c3c}.bs-game-end-icon{font-size:100px;animation:game-end-icon-bounce 1s ease-in-out infinite}.bs-game-end-text{font-family:Fredoka,sans-serif;font-size:56px;font-weight:700;text-shadow:4px 4px 0 #1A1A1A}.bs-game-end-sub{font-family:Fredoka,sans-serif;font-size:20px;color:#fffc}@keyframes game-end-appear{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes game-end-icon-bounce{0%,to{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-20px) rotate(5deg)}}.bs-ship-icon.sunk{filter:grayscale(1)}.sumo-container{display:flex;flex-direction:column;align-items:center;gap:14px;padding:10px;cursor:pointer;-webkit-user-select:none;user-select:none;transform:scale(1.15);transform-origin:center center}.sumo-shake{animation:sumo-shake-anim .05s ease-out}@keyframes sumo-shake-anim{0%,to{transform:translate(0)}50%{transform:translate(2px)}}.sumo-header{display:flex;flex-direction:column;align-items:center;gap:4px}.sumo-title{font-family:Fredoka,sans-serif;font-size:32px;font-weight:700;color:#fff;text-shadow:3px 3px 0 var(--color-outline-dark)}.sumo-threshold{font-size:14px;color:#fffc}.sumo-scores{display:flex;align-items:center;gap:16px}.sumo-player{display:flex;flex-direction:column;align-items:center;padding:10px 24px;border-radius:16px;border:4px solid var(--color-outline-dark)}.sumo-player-you{box-shadow:0 0 15px #ffffff4d}.sumo-player-blue{background:linear-gradient(180deg,#5dade2,#3498db)}.sumo-player-red{background:linear-gradient(180deg,#ec7063,#e74c3c)}.sumo-player-label{font-size:12px;font-weight:700;color:#fffc;text-transform:uppercase}.sumo-player-value{font-family:Fredoka,sans-serif;font-size:28px;font-weight:700;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.3)}.sumo-diff{font-family:Fredoka,sans-serif;font-size:24px;font-weight:700;color:#fff;text-shadow:2px 2px 0 var(--color-outline-dark);min-width:60px;text-align:center}.sumo-diff-blue{color:#3498db}.sumo-diff-red{color:#e74c3c}.sumo-ring{position:relative;width:400px;height:220px;display:flex;align-items:center;justify-content:center}.sumo-arena-bg{position:absolute;width:100%;height:auto;bottom:0;object-fit:contain;pointer-events:none}.sumo-ring-floor{display:none}.sumo-wrestler{position:absolute;width:120px;height:120px;display:flex;align-items:center;justify-content:center;transform:translate(var(--wrestler-pos, 0px));transition:transform .1s ease-out;z-index:10;bottom:40px}.sumo-wrestler-blue{left:50%;margin-left:-115px}.sumo-wrestler-red{left:50%;margin-left:-5px}.sumo-wrestler-img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(3px 3px 5px rgba(0,0,0,.4))}.sumo-wrestler-img-flipped{transform:scaleX(-1)}.sumo-desperate{animation:sumo-desperate-shake .1s ease-in-out infinite}@keyframes sumo-desperate-shake{0%,to{transform:translate(var(--wrestler-pos, 0px)) rotate(-2deg)}50%{transform:translate(var(--wrestler-pos, 0px)) rotate(2deg)}}.sumo-falling-left{animation:sumo-fall-left 1.5s ease-in forwards!important}@keyframes sumo-fall-left{0%{transform:translate(var(--wrestler-pos, -120px)) translateY(0) rotate(0);opacity:1}20%{transform:translate(calc(var(--wrestler-pos, -120px) - 40px)) translateY(-30px) rotate(10deg)}to{transform:translate(-250px) translateY(150px) rotate(-60deg);opacity:0}}.sumo-falling-right{animation:sumo-fall-right 1.5s ease-in forwards!important}@keyframes sumo-fall-right{0%{transform:translate(var(--wrestler-pos, 120px)) translateY(0) rotate(0);opacity:1}20%{transform:translate(calc(var(--wrestler-pos, 120px) + 40px)) translateY(-30px) rotate(-10deg)}to{transform:translate(250px) translateY(150px) rotate(60deg);opacity:0}}.sumo-progress-wrapper{width:300px}.sumo-progress{position:relative;height:24px;background:linear-gradient(180deg,#ec7063,#e74c3c);border:4px solid var(--color-outline-dark);border-radius:12px;overflow:hidden}.sumo-progress-fill{height:100%;background:linear-gradient(180deg,#5dade2,#3498db);transition:width .15s}.sumo-progress-center{position:absolute;top:0;bottom:0;left:50%;width:4px;background:#fff;transform:translate(-50%);box-shadow:0 0 8px #fffc}.sumo-progress-labels{display:flex;justify-content:space-between;margin-top:4px;font-size:11px;color:#fff9;text-transform:uppercase}.sumo-click-prompt{margin-top:8px}.sumo-click-btn{display:flex;flex-direction:column;align-items:center;padding:16px 40px;border-radius:20px;border:4px solid var(--color-outline-dark);cursor:pointer;transition:transform .05s}.sumo-click-btn:active{transform:scale(.95)}.sumo-click-blue{background:linear-gradient(180deg,#5dade2,#3498db);box-shadow:0 6px #2874a6}.sumo-click-red{background:linear-gradient(180deg,#ec7063,#e74c3c);box-shadow:0 6px #b03a2e}.sumo-click-text{font-family:Fredoka,sans-serif;font-size:24px;font-weight:700;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.3)}.sumo-click-count{font-family:Fredoka,sans-serif;font-size:16px;color:#fffc}.sumo-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:100;animation:sumo-overlay-in .3s ease-out}.sumo-overlay-blue{background:#3498dbe6}.sumo-overlay-red{background:#e74c3ce6}@keyframes sumo-overlay-in{0%{opacity:0}to{opacity:1}}.sumo-overlay-content{display:flex;flex-direction:column;align-items:center;gap:16px}.sumo-overlay-emoji{font-size:80px;animation:sumo-emoji-bounce .5s cubic-bezier(.34,1.56,.64,1)}@keyframes sumo-emoji-bounce{0%{transform:scale(0)}to{transform:scale(1)}}.sumo-overlay-text{font-family:Fredoka,sans-serif;font-size:48px;font-weight:700;color:#fff;text-shadow:4px 4px 0 rgba(0,0,0,.3)}.wam-container{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 15px 15px;width:100%;max-width:100vw;margin:0 auto;background:linear-gradient(180deg,#5d4037,#3e2723,#4e342e);min-height:100vh;box-sizing:border-box}.wam-container>*{max-width:500px}.wam-header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px}.wam-score{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:12px;font-family:Fredoka,sans-serif;font-weight:700;border:4px solid var(--color-outline-dark)}.wam-score-blue{background:linear-gradient(180deg,#5dade2,#3498db);color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.3)}.wam-score-red{background:linear-gradient(180deg,#ec7063,#e74c3c);color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.3)}.wam-score-icon{font-size:18px}.wam-score-num{font-size:22px}.wam-timer{font-family:Fredoka,sans-serif;font-size:24px;font-weight:700;color:#fff;text-shadow:2px 2px 0 var(--color-outline-dark);background:#0000004d;padding:8px 16px;border-radius:8px}.wam-timer-warning{color:#ff6b6b;animation:wam-timer-pulse .5s ease-in-out infinite}.wam-timer-overtime{background:linear-gradient(135deg,#f39c12,#e74c3c);color:#fff;font-weight:700;animation:wam-overtime-pulse .3s ease-in-out infinite}@keyframes wam-timer-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes wam-overtime-pulse{0%,to{transform:scale(1);box-shadow:0 0 10px #e74c3c80}50%{transform:scale(1.05);box-shadow:0 0 20px #e74c3ccc}}.wam-info{font-family:Fredoka,sans-serif;font-size:18px;color:#fff;text-shadow:2px 2px 0 var(--color-outline-dark)}.wam-target-blue{color:#5dade2;font-weight:700}.wam-target-red{color:#ec7063;font-weight:700}.wam-board{position:relative;width:100%;max-width:500px;aspect-ratio:4 / 3;border-radius:20px;border:8px solid var(--color-outline-dark);overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}.wam-dirt-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 20% 30%,rgba(139,90,43,.3) 0%,transparent 30%),radial-gradient(circle at 80% 60%,rgba(101,67,33,.3) 0%,transparent 30%),radial-gradient(circle at 50% 80%,rgba(139,90,43,.2) 0%,transparent 40%),linear-gradient(180deg,#5d4037,#3e2723,#4e342e);background-size:cover}.wam-dirt-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at 10% 20%,#654321 2px,transparent 2px),radial-gradient(circle at 90% 10%,#654321 1px,transparent 1px),radial-gradient(circle at 30% 70%,#8B4513 2px,transparent 2px),radial-gradient(circle at 70% 90%,#654321 1px,transparent 1px),radial-gradient(circle at 50% 40%,#8B4513 1px,transparent 1px);background-size:100px 100px;opacity:.5}.wam-hole{position:absolute;width:70px;height:70px;transform:translate(-50%,-50%);cursor:pointer}.wam-hole-opening{position:absolute;bottom:20px;left:50%;transform:translate(-50%);width:55px;height:50px;background:radial-gradient(ellipse at center,#1a0a00 0%,#2d1000 70%,transparent 100%);border-radius:50%/40% 40% 60% 60%;overflow:hidden}.wam-hole-rim{position:absolute;bottom:10px;left:50%;transform:translate(-50%);width:65px;height:25px;background:linear-gradient(180deg,#654321,#4a3015);border-radius:50%;border:3px solid #3d2009;box-shadow:inset 0 -4px 8px #0006,0 2px 6px #00000080}.wam-mole{position:absolute;bottom:-5px;left:50%;transform:translate(-50%);animation:mole-pop-up .2s ease-out}@keyframes mole-pop-up{0%{transform:translate(-50%) translateY(100%)}70%{transform:translate(-50%) translateY(-5px)}to{transform:translate(-50%) translateY(0)}}.wam-mole-image{width:60px;height:auto;display:block;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3));transition:transform .1s ease}.wam-hole-active:hover .wam-mole-image{transform:scale(1.1)}.wam-hole-active:active .wam-mole-image{transform:scale(.9)}.wam-mole-body{width:45px;height:45px;background:linear-gradient(180deg,#8b7355,#6b5344);border-radius:50% 50% 45% 45%;border:3px solid #5D4037;position:relative;box-shadow:inset 0 8px 12px #fff3,inset 0 -8px 12px #0000004d}.wam-mole-accessory{position:absolute;top:-15px;left:50%;transform:translate(-50%);font-size:20px;animation:accessory-wiggle .5s ease-in-out infinite}@keyframes accessory-wiggle{0%,to{transform:translate(-50%) rotate(-5deg)}50%{transform:translate(-50%) rotate(5deg)}}.wam-mole-face{position:absolute;top:8px;left:50%;transform:translate(-50%);width:100%}.wam-mole-eyes{display:flex;justify-content:center;gap:8px;margin-bottom:4px}.wam-mole-eye{width:10px;height:10px;border-radius:50%;background:#fff;position:relative}.wam-mole-eye:after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:#1a1a1a;top:2px;left:3px}.wam-eye-blue:after{background:#3498db}.wam-eye-red:after{background:#e74c3c}.wam-mole-nose{width:10px;height:8px;background:#d4a574;border-radius:50%;margin:0 auto;border:2px solid #5D4037}.wam-mole-whiskers{position:absolute;bottom:-2px;left:50%;transform:translate(-50%);display:flex;gap:4px}.wam-whisker{width:10px;height:2px;background:#5d4037;border-radius:2px}.wam-mole-blue .wam-mole-body{border-color:#3498db;box-shadow:inset 0 8px 12px #fff3,inset 0 -8px 12px #0000004d,0 0 15px #3498db80}.wam-mole-red .wam-mole-body{border-color:#e74c3c;box-shadow:inset 0 8px 12px #fff3,inset 0 -8px 12px #0000004d,0 0 15px #e74c3c80}.wam-hit-effect{position:absolute;top:-10px;left:50%;transform:translate(-50%);font-family:Fredoka,sans-serif;font-size:24px;font-weight:700;pointer-events:none;animation:hit-pop .4s ease-out forwards;z-index:20}.wam-hit-correct{color:#2ecc71;text-shadow:2px 2px 0 rgba(0,0,0,.5)}.wam-hit-wrong{color:#e74c3c;text-shadow:2px 2px 0 rgba(0,0,0,.5)}@keyframes hit-pop{0%{transform:translate(-50%) scale(0);opacity:1}50%{transform:translate(-50%) scale(1.3) translateY(-15px);opacity:1}to{transform:translate(-50%) scale(1) translateY(-30px);opacity:0}}.wam-hole-active{z-index:10}.wam-hole-active:hover .wam-mole-body{transform:scale(1.05)}.wam-hole-active:active .wam-mole-body{transform:scale(.95)}.wam-hit-correct:after{content:"⭐";position:absolute;font-size:14px;animation:stars-burst .4s ease-out forwards}@keyframes stars-burst{0%{transform:translate(0) scale(0);opacity:1}to{transform:translate(20px,-20px) scale(1);opacity:0}}.wam-progress-score.score-pop{animation:score-pop .3s ease-out}@media (max-width: 500px){.wam-hole{width:55px;height:55px}.wam-hole-opening{width:42px;height:38px}.wam-hole-rim{width:50px;height:20px}.wam-mole-image{width:45px}.wam-mole-body{width:35px;height:35px}.wam-mole-accessory{font-size:16px;top:-12px}.wam-mole-eye{width:8px;height:8px}.wam-mole-eye:after{width:4px;height:4px;top:1px;left:2px}}.snakes-container{display:flex;flex-direction:column;align-items:center;gap:10px;padding:10px;transform:scale(1.2);transform-origin:center center}.snakes-shake{animation:snakes-shake .3s ease-out}@keyframes snakes-shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.snakes-progress-container{display:flex;gap:16px;width:100%;max-width:500px}.snakes-progress-bar{flex:1;height:32px;border-radius:16px;border:4px solid var(--color-outline-dark);position:relative;overflow:hidden}.snakes-progress-blue{background:linear-gradient(180deg,#1a3a5c,#0d2233)}.snakes-progress-red{background:linear-gradient(180deg,#5c1a1a,#330d0d)}.snakes-progress-fill{position:absolute;top:0;left:0;height:100%;transition:width .3s ease-out}.snakes-progress-blue .snakes-progress-fill{background:linear-gradient(180deg,#5dade2,#3498db)}.snakes-progress-red .snakes-progress-fill{background:linear-gradient(180deg,#ec7063,#e74c3c)}.snakes-progress-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:6px;font-family:Fredoka,sans-serif;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.5);z-index:1}.snakes-progress-icon{font-size:18px}.snakes-progress-score{font-size:16px;font-weight:700}.snakes-info{font-size:14px;color:#ffffffe6;text-align:center}.snakes-info kbd{background:#fff3;padding:2px 6px;border-radius:4px;font-weight:700;margin:0 2px}.snakes-board{position:relative;background:#1a2a1a;border:6px solid var(--color-outline-dark);border-radius:12px;overflow:hidden}.snakes-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:20px 20px}.snakes-apple{position:absolute;display:flex;align-items:center;justify-content:center;font-size:16px;animation:apple-pulse 1s ease-in-out infinite}@keyframes apple-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.snakes-segment{position:absolute;border-radius:50%}.snakes-segment-blue{background:linear-gradient(180deg,#7dd3f0,#5dade2 30%,#3498db 70%,#2980b9);border:3px solid #1a5276;box-shadow:inset 2px 2px 4px #fff6,inset -1px -1px 3px #0003,2px 2px 4px #0000004d}.snakes-segment-red{background:linear-gradient(180deg,#f1948a,#ec7063 30%,#e74c3c 70%,#c0392b);border:3px solid #7B241C;box-shadow:inset 2px 2px 4px #fff6,inset -1px -1px 3px #0003,2px 2px 4px #0000004d}.snakes-head{z-index:10;border-radius:45%}.snakes-segment-blue.snakes-head{background:linear-gradient(180deg,#85c1e9,#5dade2 40%,#3498db);box-shadow:inset 3px 3px 6px #ffffff80,inset -2px -2px 4px #0003,3px 3px 6px #0006}.snakes-segment-red.snakes-head{background:linear-gradient(180deg,#f5b7b1,#ec7063 40%,#e74c3c);box-shadow:inset 3px 3px 6px #ffffff80,inset -2px -2px 4px #0003,3px 3px 6px #0006}.snakes-dead{opacity:.5!important;filter:grayscale(50%)}.snakes-eyes{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:3px}.snakes-eye{width:8px;height:8px;background:radial-gradient(circle at 30% 30%,#fff,#f0f0f0);border-radius:50%;position:relative;border:1px solid rgba(0,0,0,.3);box-shadow:1px 1px 2px #0003}.snakes-eye:after{content:"";position:absolute;width:4px;height:4px;background:#1a1a1a;border-radius:50%;top:2px;left:2px}.snakes-eyes[data-dir=up]{flex-direction:row;padding-bottom:2px}.snakes-eyes[data-dir=up] .snakes-eye:after{top:0;left:2px}.snakes-eyes[data-dir=down]{flex-direction:row;padding-top:2px}.snakes-eyes[data-dir=down] .snakes-eye:after{top:4px;left:2px}.snakes-eyes[data-dir=left]{flex-direction:column;padding-right:2px}.snakes-eyes[data-dir=left] .snakes-eye:after{top:2px;left:0}.snakes-eyes[data-dir=right]{flex-direction:column;padding-left:2px}.snakes-eyes[data-dir=right] .snakes-eye:after{top:2px;left:4px}.snakes-death-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#000000b3;font-family:Fredoka,sans-serif;font-size:24px;font-weight:700;color:#fff;text-shadow:3px 3px 0 rgba(0,0,0,.5);animation:death-fade-in .3s ease-out;z-index:20}@keyframes death-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.snakes-win-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#000c;z-index:25;animation:win-overlay-in .5s ease-out}.snakes-win-blue{background:linear-gradient(135deg,#3498dbe6,#2980b9f2)}.snakes-win-red{background:linear-gradient(135deg,#e74c3ce6,#c0392bf2)}.snakes-win-content{display:flex;flex-direction:column;align-items:center;gap:12px;animation:win-content-bounce .6s ease-out}.snakes-win-emoji{font-size:64px;animation:win-trophy-spin .8s ease-out}.snakes-win-text{font-family:Fredoka,sans-serif;font-size:42px;font-weight:700;color:#fff;text-shadow:4px 4px 0 rgba(0,0,0,.3)}.snakes-win-score{font-family:Fredoka,sans-serif;font-size:18px;font-weight:500;color:#ffffffe6;text-shadow:2px 2px 0 rgba(0,0,0,.2)}@keyframes win-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes win-content-bounce{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@keyframes win-trophy-spin{0%{transform:rotate(-20deg) scale(.5)}50%{transform:rotate(10deg) scale(1.2)}to{transform:rotate(0) scale(1)}}.snakes-loading{display:flex;flex-direction:column;align-items:center;gap:16px;padding:40px;color:#fff}.snakes-loading-spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.cj-container{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px;width:100%;max-width:900px;margin:0 auto;cursor:pointer;-webkit-user-select:none;user-select:none;transform:scale(1.1);transform-origin:center center}.cj-timer{font-family:Fredoka,sans-serif;font-size:20px;font-weight:600;color:#fff;text-shadow:2px 2px 0 var(--color-outline-dark);background:#0000004d;padding:6px 14px;border-radius:8px}.cj-timer-num{font-size:26px;font-weight:700;color:#f1c40f}.cj-timer-warning{color:#ff6b6b;animation:cj-timer-pulse .5s ease-in-out infinite}.cj-timer-warning .cj-timer-num{color:#ff6b6b}@keyframes cj-timer-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.cj-controls{font-size:14px;color:#fffc;text-align:center}.cj-controls kbd{background:#fff3;padding:4px 10px;border-radius:6px;font-weight:700;margin:0 4px}.cj-click{font-weight:700;color:#f1c40f}.cj-game-area{display:flex;gap:16px;width:100%;justify-content:center;align-items:flex-end}.cj-divider{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:50px}.cj-vs{font-family:Fredoka,sans-serif;font-size:24px;font-weight:700;color:#fff;text-shadow:3px 3px 0 var(--color-outline-dark)}.cj-tower{position:relative;width:350px;height:350px;border:6px solid var(--color-outline-dark);border-radius:16px;background:url(/games/chicken-jump/background.png) center bottom / cover no-repeat;overflow:hidden;box-shadow:0 8px 24px #0000004d,inset 0 0 60px #ffffff1a}.cj-tower-failed{opacity:.7;filter:grayscale(50%)}.cj-tower-inner{position:absolute;bottom:30px;left:0;right:0;transition:transform .3s ease-out}.cj-tower-score{position:absolute;top:10px;left:50%;transform:translate(-50%);font-family:Fredoka,sans-serif;font-size:16px;font-weight:700;padding:6px 16px;border-radius:20px;border:3px solid var(--color-outline-dark);z-index:10}.cj-score-blue{background:linear-gradient(180deg,#5dade2,#3498db);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.3)}.cj-score-red{background:linear-gradient(180deg,#ec7063,#e74c3c);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.3)}.cj-ground{position:absolute;bottom:0;left:0;right:0;height:30px;background:transparent}.cj-block{position:absolute;border-radius:2px;border:2px solid rgba(0,0,0,.25);box-shadow:inset 0 3px 6px #ffffff4d,inset 0 -3px 6px #00000026,0 2px 6px #0000004d}.cj-block-stacked{transition:none}.cj-block-new{animation:block-land .2s ease-out}@keyframes block-land{0%{transform:scaleY(1.2)}50%{transform:scaleY(.9)}to{transform:scaleY(1)}}.cj-block-moving{background:linear-gradient(180deg,#ffd93d,#f1c40f,#e67e22);border-color:#0000004d;box-shadow:inset 0 2px 4px #ffffff4d,inset 0 -2px 4px #00000026,0 2px 8px #f1c40f66,0 0 12px #f1c40f33;animation:block-glow .6s ease-in-out infinite}@keyframes block-glow{0%,to{box-shadow:inset 0 2px 4px #ffffff4d,inset 0 -2px 4px #00000026,0 2px 8px #f1c40f66,0 0 12px #f1c40f33}50%{box-shadow:inset 0 2px 4px #ffffff4d,inset 0 -2px 4px #00000026,0 4px 12px #f1c40f80,0 0 18px #f1c40f4d}}.cj-chicken-top{position:absolute;font-size:32px;transition:left .3s ease-out,bottom .3s ease-out;filter:drop-shadow(2px 2px 2px rgba(0,0,0,.3));animation:chicken-bob .5s ease-in-out infinite}@keyframes chicken-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.cj-drop-success .cj-tower-mine{animation:drop-success-tower .3s ease-out}@keyframes drop-success-tower{0%,to{box-shadow:0 8px 24px #0000004d}50%{box-shadow:0 8px 32px #2ecc7180,0 0 20px #2ecc714d}}.cj-drop-fail .cj-tower-mine{animation:tower-shake .4s ease-out}@keyframes tower-shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.cj-failed-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 40px;background:#000c;border-radius:16px;border:4px solid #E74C3C;z-index:100;animation:failed-pop .3s ease-out}@keyframes failed-pop{0%{transform:translate(-50%,-50%) scale(0);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.cj-failed-text{font-family:Fredoka,sans-serif;font-size:32px;font-weight:700;color:#e74c3c;text-shadow:2px 2px 0 rgba(0,0,0,.5)}.cj-failed-sub{font-size:14px;color:#ffffffb3}@media (max-width: 768px){.cj-tower{width:160px;height:300px}.cj-game-area{gap:8px}.cj-vs{font-size:18px}.cj-tower-score{font-size:12px;padding:4px 10px}}.flp-container{display:flex;flex-direction:column;align-items:center;gap:10px;padding:10px;width:100%;max-width:620px;margin:0 auto;cursor:pointer;-webkit-user-select:none;user-select:none;transform:scale(1.1);transform-origin:center center}.flp-survival{display:flex;align-items:center;gap:12px;font-family:Fredoka,sans-serif}.flp-survival-label{font-size:14px;color:#ffffffb3;text-transform:uppercase}.flp-survival-time{font-size:32px;font-weight:700;color:#fff;text-shadow:2px 2px 0 var(--color-outline-dark)}.flp-speed{font-size:14px;color:#f1c40f;background:#0000004d;padding:4px 8px;border-radius:6px}.flp-speed-fast{color:#e74c3c;animation:speed-pulse .5s ease-in-out infinite}@keyframes speed-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.flp-status{display:flex;gap:16px}.flp-player-status{font-family:Fredoka,sans-serif;font-size:14px;font-weight:600;padding:4px 12px;border-radius:20px;border:3px solid var(--color-outline-dark)}.flp-alive{background:linear-gradient(180deg,#27ae60,#1e8449);color:#fff}.flp-dead{background:linear-gradient(180deg,#7f8c8d,#5d6d7e);color:#bdc3c7}.flp-game-area{position:relative;width:580px;height:480px;border:6px solid var(--color-outline-dark);border-radius:12px;overflow:hidden}.flp-sky{position:absolute;top:0;right:0;bottom:0;left:0;background:url(/games/flappy/background.png) center center / cover no-repeat}.flp-pipe-group{position:absolute;width:40px}.flp-pipe{position:absolute;width:40px;background:linear-gradient(90deg,#1b5e20,#2e7d32 40%,#1b5e20);border:2px solid #0D3B12;border-radius:3px;box-shadow:4px 0 8px #0006,inset -4px 0 8px #0000004d}.flp-pipe-top{top:0;border-top:none;border-top-left-radius:0;border-top-right-radius:0}.flp-pipe-top:after{content:"";position:absolute;bottom:-2px;left:-5px;right:-5px;height:16px;background:linear-gradient(90deg,#1b5e20,#388e3c 40%,#1b5e20);border:2px solid #0D3B12;border-radius:3px;box-shadow:3px 3px 6px #0006,inset -3px 0 6px #0003}.flp-pipe-bottom{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.flp-pipe-bottom:before{content:"";position:absolute;top:-2px;left:-5px;right:-5px;height:16px;background:linear-gradient(90deg,#1b5e20,#388e3c 40%,#1b5e20);border:2px solid #0D3B12;border-radius:3px;box-shadow:3px -3px 6px #0006,inset -3px 0 6px #0003}.flp-bird{position:absolute;left:72px;z-index:10;filter:drop-shadow(3px 3px 4px rgba(0,0,0,.4))}.flp-bird-img{width:56px;height:auto}.flp-bird-blue{filter:drop-shadow(0 0 6px rgba(52,152,219,.6))}.flp-bird-red{left:100px;filter:drop-shadow(0 0 6px rgba(231,76,60,.6))}.flp-bird-dead{opacity:.7;filter:grayscale(50%) drop-shadow(3px 3px 4px rgba(0,0,0,.5))}.flp-bird-flap .flp-bird-img{animation:bird-flap .15s ease-out}@keyframes bird-flap{0%,to{transform:scale(1) translateY(0)}50%{transform:scale(1.15) translateY(-5px)}}.flp-death-message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:Fredoka,sans-serif;font-size:24px;font-weight:700;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.5);background:#000000b3;padding:12px 24px;border-radius:12px;z-index:20;animation:death-pop .3s ease-out}@keyframes death-pop{0%{transform:translate(-50%,-50%) scale(0)}50%{transform:translate(-50%,-50%) scale(1.2)}to{transform:translate(-50%,-50%) scale(1)}}.flp-controls{font-size:12px;color:#ffffffb3}.flp-controls kbd{background:#fff3;padding:2px 8px;border-radius:4px;font-weight:700}.flp-tap{color:#f1c40f;font-weight:700}.ah-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px;transform:scale(1.3);transform-origin:center center}.ah-table{background:linear-gradient(180deg,#fff,#f0f0f0);border-radius:24px;border:10px solid var(--color-outline-dark);position:relative;cursor:none;overflow:hidden;box-shadow:0 8px 32px #0000004d,inset 0 0 40px #00000014;transition:transform .05s linear}.ah-table-goal{animation:table-shake .3s ease-out}@keyframes table-shake{0%,to{transform:translate(0)}10%{transform:translate(-5px,3px)}20%{transform:translate(5px,-3px)}30%{transform:translate(-3px,5px)}40%{transform:translate(3px,-5px)}50%{transform:translate(-5px)}60%{transform:translate(5px)}70%{transform:translate(-3px,3px)}80%{transform:translate(3px,-3px)}90%{transform:translate(-2px,2px)}}.ah-center-line{position:absolute;top:50%;left:8%;right:8%;height:4px;background:#c8000066;transform:translateY(-50%);border-radius:2px}.ah-center-circle{position:absolute;top:50%;left:50%;width:100px;height:100px;transform:translate(-50%,-50%);border:4px solid rgba(200,0,0,.4);border-radius:50%}.ah-goal{position:absolute;left:50%;transform:translate(-50%);width:100px;height:16px;background:linear-gradient(180deg,#1a1a1a,#333);border:3px solid #444}.ah-goal-top{top:0;border-top:none;border-radius:0 0 12px 12px;box-shadow:0 4px 12px #0000004d}.ah-goal-bottom{bottom:0;border-bottom:none;border-radius:12px 12px 0 0;box-shadow:0 -4px 12px #0000004d}.ah-trail-svg{position:absolute;top:0;left:0;pointer-events:none;z-index:1}.ah-puck{position:absolute;width:36px;height:36px;background:radial-gradient(circle at 30% 30%,#3a3a3a,#1a1a1a);border-radius:50%;border:3px solid #444;box-shadow:0 4px 12px #0009,0 0 20px var(--puck-glow-color, rgba(100, 150, 255, .3));z-index:5;transition:box-shadow .1s ease}.ah-puck-fast{box-shadow:0 4px 12px #0009,0 0 30px var(--puck-glow-color, rgba(255, 200, 100, .6)),0 0 50px var(--puck-glow-color, rgba(255, 150, 50, .4));animation:ah-puck-spin .3s linear infinite}@keyframes ah-puck-spin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.ah-puck-trail{position:absolute;width:24px;height:24px;background:radial-gradient(circle,var(--trail-color, rgba(100, 150, 255, .3)),transparent 70%);border-radius:50%;pointer-events:none;z-index:4}.ah-puck-trail-1{opacity:.5}.ah-puck-trail-2{opacity:.25}.ah-puck-trail-3{opacity:.1}.ah-paddle{position:absolute;width:60px;height:60px;border-radius:50%;border:5px solid var(--color-outline-dark);box-shadow:0 6px 16px #0006,inset 0 -3px 8px #0000004d;z-index:10;transition:transform .05s ease-out}.ah-paddle-blue{background:radial-gradient(circle at 40% 40%,#6cb4e8,#3498db)}.ah-paddle-red{background:radial-gradient(circle at 40% 40%,#f07c6c,#e74c3c)}.ah-wall-flash{position:absolute;width:40px;height:40px;background:radial-gradient(circle,rgba(255,200,0,.9),transparent);border-radius:50%;pointer-events:none;z-index:2;animation:wall-flash .15s ease-out forwards}@keyframes wall-flash{0%{transform:scale(.5);opacity:1}to{transform:scale(2.5);opacity:0}}.ah-goal-flash{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:20;animation:goal-flash 1.5s ease-out forwards}.ah-goal-flash-blue{background:radial-gradient(circle at center,rgba(52,152,219,.6),transparent)}.ah-goal-flash-red{background:radial-gradient(circle at center,rgba(231,76,60,.6),transparent)}@keyframes goal-flash{0%{opacity:1;transform:scale(1)}50%{opacity:.8}to{opacity:0;transform:scale(1.5)}}.ah-goal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:100;animation:goal-overlay-in .3s ease-out}.ah-goal-overlay-blue{background:radial-gradient(circle,rgba(52,152,219,.4),transparent 70%)}.ah-goal-overlay-red{background:radial-gradient(circle,rgba(231,76,60,.4),transparent 70%)}@keyframes goal-overlay-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.ah-goal-text{font-family:Fredoka,sans-serif;font-size:80px;font-weight:700;color:#fff;text-shadow:4px 6px 0 rgba(0,0,0,.4),0 0 40px rgba(255,255,255,.6);animation:goal-text-pop .5s cubic-bezier(.34,1.56,.64,1)}@keyframes goal-text-pop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.ah-paddle-hit{animation:ah-paddle-hit .15s ease-out}@keyframes ah-paddle-hit{0%{transform:scale(1)}50%{transform:scale(1.15);filter:brightness(1.3)}to{transform:scale(1)}}.ah-paddle-hit:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:50%;background:transparent;animation:ah-paddle-ripple .3s ease-out;pointer-events:none}@keyframes ah-paddle-ripple{0%{box-shadow:0 0 #fff9}to{box-shadow:0 0 0 15px #fff0}}.ah-wall-spark{position:absolute;width:4px;height:4px;background:gold;border-radius:50%;pointer-events:none;z-index:3;animation:ah-spark-fly .4s ease-out forwards}@keyframes ah-spark-fly{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--dx, 0),var(--dy, 0)) scale(0);opacity:0}}.ah-wall-impact{position:absolute;width:60px;height:8px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent);pointer-events:none;z-index:2;animation:ah-wall-impact-flash .2s ease-out forwards}.ah-wall-impact-top,.ah-wall-impact-bottom{left:50%;transform:translate(-50%)}.ah-wall-impact-top{top:0}.ah-wall-impact-bottom{bottom:0}.ah-wall-impact-left,.ah-wall-impact-right{width:8px;height:60px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.8),transparent);top:50%;transform:translateY(-50%)}.ah-wall-impact-left{left:0}.ah-wall-impact-right{right:0}@keyframes ah-wall-impact-flash{0%{opacity:1}to{opacity:0}}.ah-near-goal{animation:ah-near-goal-pulse .3s ease-in-out infinite}@keyframes ah-near-goal-pulse{0%,to{box-shadow:0 8px 32px #00000080,inset 0 0 60px #0000004d}50%{box-shadow:0 8px 32px #00000080,inset 0 0 60px #0000004d,0 0 20px #f003}}.ah-scoreboard{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:12px;padding:8px 20px;background:#0006;border-radius:20px;border:3px solid var(--color-outline-dark)}.ah-score{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:12px;font-family:Fredoka,sans-serif;font-weight:700}.ah-score-blue{background:linear-gradient(180deg,#5dade2,#3498db);border:3px solid var(--color-outline-dark)}.ah-score-red{background:linear-gradient(180deg,#ec7063,#e74c3c);border:3px solid var(--color-outline-dark)}.ah-score-icon{font-size:16px}.ah-score-num{font-size:24px;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.4)}.ah-timer{display:flex;align-items:center;gap:6px;padding:6px 14px;background:#0000004d;border-radius:12px;font-family:Fredoka,sans-serif;font-weight:700}.ah-timer-icon{font-size:16px}.ah-timer-num{font-size:20px;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.4)}.ah-timer-warning{animation:ah-timer-pulse .5s ease-in-out infinite}.ah-timer-warning .ah-timer-num{color:#ff6b6b}.ah-timer-overtime{background:linear-gradient(180deg,#f1c40f,#e67e22);animation:ah-overtime-pulse .8s ease-in-out infinite}.ah-timer-overtime .ah-timer-num{color:#fff;font-weight:800}@keyframes ah-timer-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes ah-overtime-pulse{0%,to{transform:scale(1);box-shadow:0 0 10px #f1c40f80}50%{transform:scale(1.05);box-shadow:0 0 20px #f1c40fcc}}.pb-container{display:flex;flex-direction:column;align-items:center;gap:12px;padding:10px;transform:scale(1.2);transform-origin:center center}.pb-header{display:flex;align-items:center;gap:20px}.pb-score{font-family:Fredoka,sans-serif;font-size:32px;font-weight:700;padding:8px 20px;border-radius:12px;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.3);border:4px solid var(--color-outline-dark)}.pb-score-blue{background:linear-gradient(180deg,#5dade2,#3498db)}.pb-score-red{background:linear-gradient(180deg,#ec7063,#e74c3c)}.pb-score-you{box-shadow:0 0 15px #fff6}.pb-timer{font-family:Fredoka,sans-serif;font-size:24px;font-weight:700;color:#fff;background:#00000080;padding:6px 16px;border-radius:10px}.pb-timer-warning{color:#ff6b6b;animation:pb-pulse .5s ease-in-out infinite}@keyframes pb-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.pb-table{position:relative;background:linear-gradient(180deg,#3d4f5f,#2c3e50,#3d4f5f);border-radius:30px 30px 20px 20px;border:8px solid #1A252F;box-shadow:inset 0 0 50px #0006,0 10px 30px #00000080;overflow:hidden}.pb-wall{position:absolute;width:25px;top:60px;bottom:60px;background:linear-gradient(90deg,#1a252f,#2c3e50);border:3px solid #0F1A22}.pb-wall-left{left:0;border-left:none;border-radius:0 10px 10px 0}.pb-wall-right{right:0;border-right:none;border-radius:10px 0 0 10px;background:linear-gradient(90deg,#2c3e50,#1a252f)}.pb-goal{position:absolute;left:50%;transform:translate(-50%);width:50px;height:30px;display:flex;align-items:center;justify-content:center}.pb-goal-top{top:0;border-bottom-left-radius:10px;border-bottom-right-radius:10px;background:#34495ecc}.pb-goal-bottom{bottom:0;border-top-left-radius:10px;border-top-right-radius:10px;background:#34495ecc}.pb-goal-label{font-size:10px;color:#fff9;font-weight:600;white-space:nowrap}.pb-center-line{position:absolute;top:50%;left:30px;right:30px;height:2px;background:#ffffff26}.pb-bumper{position:absolute;border-radius:50%;background:radial-gradient(circle at 30% 30%,#95a5a6,#7f8c8d,#5d6d7e);border:4px solid #4A5568;box-shadow:inset 0 -3px 6px #0000004d,0 4px 8px #0006;transition:transform .1s,box-shadow .1s}.pb-bumper-flash{transform:scale(1.15);background:radial-gradient(circle at 30% 30%,#e8f4f8,#bdc3c7,#95a5a6);box-shadow:inset 0 -3px 6px #0003,0 0 20px #ffffff80,0 4px 8px #0000004d}.pb-flipper{position:absolute;width:55px;height:14px;border-radius:7px;border:3px solid rgba(0,0,0,.4);transition:transform .08s ease-out;box-shadow:0 3px 6px #0000004d}.pb-flipper-blue{background:linear-gradient(180deg,#5dade2,#2980b9)}.pb-flipper-red{background:linear-gradient(180deg,#ec7063,#c0392b)}.pb-flipper-bottom-left{bottom:45px;left:70px;transform-origin:left center;transform:rotate(-25deg)}.pb-flipper-bottom-left.pb-flipper-up{transform:rotate(-50deg)}.pb-flipper-bottom-right{bottom:45px;right:70px;transform-origin:right center;transform:rotate(25deg)}.pb-flipper-bottom-right.pb-flipper-up{transform:rotate(50deg)}.pb-flipper-top-left{top:45px;left:70px;transform-origin:left center;transform:rotate(25deg)}.pb-flipper-top-left.pb-flipper-up{transform:rotate(50deg)}.pb-flipper-top-right{top:45px;right:70px;transform-origin:right center;transform:rotate(-25deg)}.pb-flipper-top-right.pb-flipper-up{transform:rotate(-50deg)}.pb-ball{position:absolute;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#f8f9fa,#dee2e6,#adb5bd);border:2px solid #868E96;box-shadow:inset 0 -2px 4px #0003,0 3px 8px #0006;z-index:10}.pb-controls{font-size:12px;color:#ffffffb3}.pb-controls kbd{background:#fff3;padding:2px 8px;border-radius:4px;font-weight:700}.pk-container{display:flex;flex-direction:column;align-items:center;gap:20px;padding:20px}.pk-scores{display:flex;align-items:center;gap:24px}.pk-score{font-family:Fredoka,sans-serif;font-size:48px;font-weight:700;color:#fff;text-shadow:3px 3px 0 var(--color-outline-dark);padding:8px 24px;border-radius:16px;border:4px solid var(--color-outline-dark)}.pk-score-blue{background:linear-gradient(180deg,#5dade2,#3498db)}.pk-score-red{background:linear-gradient(180deg,#ec7063,#e74c3c)}.pk-round-info{display:flex;flex-direction:column;align-items:center;gap:4px}.pk-round{font-family:Fredoka,sans-serif;font-size:18px;font-weight:700;color:#fff;text-shadow:2px 2px 0 var(--color-outline-dark)}.pk-role{font-family:Fredoka,sans-serif;font-size:24px;font-weight:700;color:#f1c40f;text-shadow:2px 2px 0 var(--color-outline-dark)}.pk-timer{font-family:Fredoka,sans-serif;font-size:64px;font-weight:700;color:#fff;text-shadow:4px 4px 0 var(--color-outline-dark);width:100px;height:100px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#27ae60,#1e8449);border-radius:50%;border:6px solid var(--color-outline-dark)}.pk-timer-urgent{background:linear-gradient(180deg,#e74c3c,#c0392b);animation:pk-timer-pulse .5s ease-in-out infinite}@keyframes pk-timer-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.pk-field{position:relative;width:580px;height:420px;background:linear-gradient(180deg,#27ae60,#1e8449);border-radius:16px;border:6px solid var(--color-outline-dark);box-shadow:0 8px 24px #0006;overflow:hidden}.pk-goal-wrapper{position:absolute;top:10px;left:50%;transform:translate(-50%);width:500px;height:240px}.pk-goal-img{width:100%;height:auto;filter:drop-shadow(6px 8px 12px rgba(0,0,0,.5))}.pk-keeper-standing{position:absolute;bottom:15px;left:50%;transform:translate(-50%);height:180px;width:auto;filter:drop-shadow(4px 6px 8px rgba(0,0,0,.5));z-index:5;animation:pk-keeper-idle 2s ease-in-out infinite}@keyframes pk-keeper-idle{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-3px)}}.pk-goal{position:absolute;top:20px;left:50%;transform:translate(-50%);width:300px;height:120px}.pk-goal-net{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px);background-size:20px 20px;border-radius:0 0 8px 8px}.pk-goal-posts{position:absolute;top:0;right:0;bottom:0;left:0;border:8px solid white;border-top:none;border-radius:0 0 8px 8px;box-shadow:0 0 20px #ffffff80,inset 0 0 20px #0003}.pk-instructions{position:absolute;bottom:100px;left:0;right:0;text-align:center;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.5)}.pk-instructions p{margin:4px 0}.pk-action-prompt{font-family:Fredoka,sans-serif;font-size:28px;font-weight:700;animation:pk-prompt-pulse 1.5s ease-in-out infinite}@keyframes pk-prompt-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}.pk-waiting{position:absolute;bottom:100px;left:0;right:0;text-align:center;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.5);font-size:18px}.pk-waiting-text{opacity:.7;font-size:16px}.pk-choices{position:absolute;bottom:20px;left:20px;right:20px;display:flex;gap:16px}.pk-choice{flex:1;padding:18px;font-family:Fredoka,sans-serif;font-size:22px;font-weight:700;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.3);background:linear-gradient(180deg,#9b59b6,#8e44ad);border:4px solid var(--color-outline-dark);border-radius:14px;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 5px #6c3483}.pk-choice:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px #6c3483}.pk-choice:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px #6c3483}.pk-choice:disabled{opacity:.5;cursor:not-allowed}.pk-choice-selected{background:linear-gradient(180deg,#2ecc71,#27ae60);box-shadow:0 4px #1e8449;transform:scale(1.05)}.pk-result{width:580px}.pk-ball-animated{position:absolute;z-index:10}.pk-ball-img{width:56px;height:56px;filter:drop-shadow(4px 5px 8px rgba(0,0,0,.5))}.pk-ball-animated:after{content:"";position:absolute;bottom:-15px;left:50%;transform:translate(-50%);width:50px;height:15px;background:radial-gradient(ellipse,rgba(0,0,0,.3) 0%,transparent 70%);border-radius:50%;animation:pk-ball-shadow .8s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes pk-ball-shadow{0%{opacity:0;transform:translate(-50%) scale(.3)}to{opacity:1;transform:translate(-50%) scale(1)}}.pk-ball-to-left{top:82px;left:55px;animation:pk-ball-fly-left .8s cubic-bezier(.25,.46,.45,.94) forwards}.pk-ball-to-center{top:60px;left:50%;animation:pk-ball-fly-center .8s cubic-bezier(.25,.46,.45,.94) forwards}.pk-ball-to-right{top:82px;right:55px;animation:pk-ball-fly-right .8s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes pk-ball-fly-left{0%{transform:translateY(300px) translate(120px) scale(.3);opacity:0}15%{opacity:1}to{transform:translateY(0) translate(0) scale(1);opacity:1}}@keyframes pk-ball-fly-center{0%{transform:translateY(300px) translate(-50%) scale(.3);opacity:0}15%{opacity:1}to{transform:translateY(0) translate(-50%) scale(1);opacity:1}}@keyframes pk-ball-fly-right{0%{transform:translateY(300px) translate(-120px) scale(.3);opacity:0}15%{opacity:1}to{transform:translateY(0) translate(0) scale(1);opacity:1}}.pk-keeper-animated{position:absolute;z-index:5}.pk-keeper-dive-img{height:170px;width:auto;filter:drop-shadow(4px 6px 10px rgba(0,0,0,.5))}.pk-keeper-to-left{top:30px;left:60px;animation:pk-keeper-dive-horizontal-left .7s cubic-bezier(.25,.46,.45,.94) forwards}.pk-keeper-to-center{top:30px;left:50%;animation:pk-keeper-jump-center .6s cubic-bezier(.25,.46,.45,.94) forwards}.pk-keeper-to-right{top:30px;right:60px;animation:pk-keeper-dive-horizontal-right .7s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes pk-keeper-dive-horizontal-left{0%{transform:translate(140px) translateY(40px) rotate(0);opacity:0}20%{opacity:1;transform:translate(80px) translateY(25px) rotate(-30deg)}60%{transform:translate(20px) translateY(10px) rotate(-70deg)}to{transform:translate(0) translateY(0) rotate(-90deg);opacity:1}}@keyframes pk-keeper-dive-horizontal-right{0%{transform:translate(-140px) translateY(40px) scaleX(-1) rotate(0);opacity:0}20%{opacity:1;transform:translate(-80px) translateY(25px) scaleX(-1) rotate(-30deg)}60%{transform:translate(-20px) translateY(10px) scaleX(-1) rotate(-70deg)}to{transform:translate(0) translateY(0) scaleX(-1) rotate(-90deg);opacity:1}}@keyframes pk-keeper-jump-center{0%{transform:translate(-50%) translateY(40px) scale(.85);opacity:.5}30%{opacity:1}50%{transform:translate(-50%) translateY(-10px) scale(1.05)}75%{transform:translate(-50%) translateY(-5px) scale(1.02)}to{transform:translate(-50%) translateY(0) scale(1)}}.pk-ball{position:absolute;font-size:40px;top:60px;z-index:10}.pk-ball-left{left:30px;animation:pk-ball-kick-left .6s cubic-bezier(.25,.46,.45,.94) forwards}.pk-ball-center{left:50%;animation:pk-ball-kick-center .6s cubic-bezier(.25,.46,.45,.94) forwards}.pk-ball-right{right:30px;animation:pk-ball-kick-right .6s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes pk-ball-kick-left{0%{transform:translateY(180px) translate(80px) scale(.3) rotate(0);opacity:0}30%{opacity:1}to{transform:translateY(0) translate(0) scale(1) rotate(-720deg);opacity:1}}@keyframes pk-ball-kick-center{0%{transform:translateY(180px) translate(-50%) scale(.3) rotate(0);opacity:0}30%{opacity:1}to{transform:translateY(0) translate(-50%) scale(1) rotate(-540deg);opacity:1}}@keyframes pk-ball-kick-right{0%{transform:translateY(180px) translate(-80px) scale(.3) rotate(0);opacity:0}30%{opacity:1}to{transform:translateY(0) translate(0) scale(1) rotate(720deg);opacity:1}}.pk-keeper{position:absolute;font-size:48px;top:50px;z-index:5}.pk-keeper-left{left:20px;animation:pk-keeper-dive-left .5s cubic-bezier(.25,.46,.45,.94) forwards}.pk-keeper-center{left:50%;transform:translate(-50%);animation:pk-keeper-stay-center .4s ease-out forwards}.pk-keeper-right{right:20px;animation:pk-keeper-dive-right .5s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes pk-keeper-dive-left{0%{transform:translate(120px) rotate(0)}50%{transform:translate(40px) rotate(-30deg)}to{transform:translate(0) rotate(-15deg)}}@keyframes pk-keeper-dive-right{0%{transform:translate(-120px) rotate(0)}50%{transform:translate(-40px) rotate(30deg)}to{transform:translate(0) rotate(15deg)}}@keyframes pk-keeper-stay-center{0%{transform:translate(-50%) scale(.8)}50%{transform:translate(-50%) scale(1.1)}to{transform:translate(-50%) scale(1)}}.pk-result-text{position:absolute;bottom:50px;left:0;right:0;text-align:center;font-family:Fredoka,sans-serif;font-size:56px;font-weight:700;text-shadow:4px 4px 0 var(--color-outline-dark);animation:pk-result-pop .6s cubic-bezier(.34,1.56,.64,1) .6s both}.pk-goal-scored{color:#2ecc71;animation:pk-result-pop .6s cubic-bezier(.34,1.56,.64,1) .6s both,pk-goal-shake .5s ease-in-out 1.2s}.pk-save-made{color:#e74c3c;animation:pk-result-pop .6s cubic-bezier(.34,1.56,.64,1) .6s both,pk-save-flash .4s ease-in-out 1.2s}@keyframes pk-save-flash{0%,to{opacity:1}50%{opacity:.6;text-shadow:0 0 30px rgba(231,76,60,.8)}}@keyframes pk-result-pop{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes pk-goal-shake{0%,to{transform:translate(0) rotate(0)}20%{transform:translate(-8px) rotate(-3deg)}40%{transform:translate(8px) rotate(3deg)}60%{transform:translate(-4px) rotate(-1deg)}80%{transform:translate(4px) rotate(1deg)}}.pk-goal-scored:after{content:"🎉";position:absolute;font-size:32px;animation:pk-confetti 1s ease-out forwards;left:50%;transform:translate(-50%)}@keyframes pk-confetti{0%{transform:translate(-50%) translateY(0) scale(0);opacity:1}to{transform:translate(-50%) translateY(-50px) scale(1.5);opacity:0}}.pk-choice:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 6px #6c3483,0 0 20px #9b59b666}.pk-choice-selected{background:linear-gradient(180deg,#2ecc71,#27ae60);box-shadow:0 4px #1e8449,0 0 25px #2ecc7180;transform:scale(1.08);animation:pk-selected-glow 1s ease-in-out infinite}@keyframes pk-selected-glow{0%,to{box-shadow:0 4px #1e8449,0 0 15px #2ecc714d}50%{box-shadow:0 4px #1e8449,0 0 30px #2ecc7199}}.chess-container{display:flex;flex-direction:column;align-items:center;gap:12px;padding:10px;transform:scale(1.15);transform-origin:center center}.chess-loading{display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px}.chess-status{font-family:Fredoka,sans-serif;font-size:24px;font-weight:700;color:#fff;text-shadow:2px 2px 0 var(--color-outline-dark);padding:10px 24px;background:#0003;border-radius:var(--radius-pill);border:3px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:16px}.chess-timer{font-size:18px;padding:4px 12px;background:#0000004d;border-radius:8px}.chess-timer-urgent{background:#e74c3c;animation:chess-timer-blink .5s ease-in-out infinite}@keyframes chess-timer-blink{0%,to{opacity:1}50%{opacity:.6}}.chess-your-turn{color:#f1c40f;animation:chess-pulse 1.5s ease-in-out infinite}@keyframes chess-pulse{0%,to{opacity:1}50%{opacity:.7}}.chess-result{color:#e74c3c;font-size:28px}.chess-board-wrapper{position:relative;padding:20px}.chess-board{display:flex;flex-direction:column;border:6px solid var(--color-outline-dark);border-radius:8px;box-shadow:0 8px 24px #0006;overflow:hidden}.chess-row{display:flex}.chess-square{width:50px;height:50px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s;position:relative}.chess-square-light{background:#eeeed2}.chess-square-dark{background:#769656}.chess-square-selected{background:#baca44!important}.chess-square-last-move{background:#f7f769!important}.chess-square-dark.chess-square-last-move{background:#baca44!important}.chess-square-valid-move:after{content:"";position:absolute;width:14px;height:14px;background:#00000026;border-radius:50%;pointer-events:none}.chess-square-valid-capture:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:4px solid rgba(0,0,0,.15);border-radius:50%;pointer-events:none}.chess-square-check{background:#e74c3c99!important;animation:chess-check-pulse .5s ease-in-out infinite}@keyframes chess-check-pulse{0%,to{box-shadow:inset 0 0 10px #e74c3ccc}50%{box-shadow:inset 0 0 20px #e74c3c}}.chess-square:hover{filter:brightness(1.1)}.chess-piece{font-size:40px;line-height:1;-webkit-user-select:none;user-select:none;transition:transform .15s ease-out;position:relative;z-index:2}.chess-piece-white{color:#fafafa;text-shadow:1px 1px 0 #1A1A1A,-1px 1px 0 #1A1A1A,1px -1px 0 #1A1A1A,-1px -1px 0 #1A1A1A,2px 2px 4px rgba(0,0,0,.5)}.chess-piece-black{color:#2c3e50;text-shadow:1px 1px 0 #1A1A1A,-1px 1px 0 #1A1A1A,1px -1px 0 #1A1A1A,-1px -1px 0 #1A1A1A,2px 2px 4px rgba(0,0,0,.5)}.chess-square-selected .chess-piece{transform:scale(1.2);filter:drop-shadow(0 0 8px rgba(241,196,15,.8))}.chess-piece-moving{animation:chess-piece-slide .25s ease-out forwards;z-index:10}@keyframes chess-piece-slide{0%{transform:translate(var(--from-x, 0),var(--from-y, 0))}to{transform:translate(0)}}.chess-piece-captured{animation:chess-piece-capture .3s ease-out forwards;pointer-events:none}@keyframes chess-piece-capture{0%{transform:scale(1);opacity:1}50%{transform:scale(1.3) rotate(15deg);opacity:.7}to{transform:scale(0) rotate(45deg);opacity:0}}.chess-move-indicator{position:absolute;width:16px;height:16px;background:#00000040;border-radius:50%;z-index:1;animation:chess-indicator-pop .2s ease-out}.chess-capture-indicator{position:absolute;top:4px;right:4px;bottom:4px;left:4px;border:4px solid rgba(231,76,60,.5);border-radius:50%;z-index:1;animation:chess-capture-pulse 1s ease-in-out infinite}@keyframes chess-indicator-pop{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes chess-capture-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.chess-labels{position:absolute;display:flex;font-family:Fredoka,sans-serif;font-size:12px;font-weight:700;color:#ffffffb3}.chess-labels-files{bottom:2px;left:20px;right:20px;justify-content:space-around}.chess-labels-files span{width:50px;text-align:center}.chess-labels-ranks{left:4px;top:20px;bottom:20px;flex-direction:column;justify-content:space-around}.chess-labels-ranks span{height:50px;display:flex;align-items:center}.chess-captured{display:flex;flex-direction:column;gap:4px;background:#0003;padding:8px 16px;border-radius:12px;border:2px solid rgba(255,255,255,.1)}.chess-captured-row{display:flex;gap:2px;min-height:24px}.chess-captured-piece{font-size:20px;opacity:.7}.chess-promotion-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100}.chess-promotion-dialog{display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px;background:linear-gradient(180deg,#34495e,#2c3e50);border:4px solid var(--color-outline-dark);border-radius:16px;box-shadow:0 8px 24px #00000080}.chess-promotion-dialog span{font-family:Fredoka,sans-serif;font-size:20px;font-weight:700;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.3)}.chess-promotion-options{display:flex;gap:12px}.chess-promotion-options button{width:60px;height:60px;font-size:40px;background:linear-gradient(180deg,wheat,#deb887);border:4px solid var(--color-outline-dark);border-radius:12px;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 4px #8b7355}.chess-promotion-options button:hover{transform:translateY(-2px);box-shadow:0 6px #8b7355}.chess-promotion-options button:active{transform:translateY(2px);box-shadow:0 2px #8b7355}.chess-check-warning{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;animation:chess-check-flash .5s ease-out;z-index:50}@keyframes chess-check-flash{0%{background:#e74c3c66}to{background:transparent}}.chess-checkmate-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#000000d9;z-index:100;animation:chess-overlay-fade .3s ease-out}@keyframes chess-overlay-fade{0%{opacity:0}to{opacity:1}}.chess-checkmate-content{text-align:center;animation:chess-checkmate-pop .5s cubic-bezier(.175,.885,.32,1.275)}@keyframes chess-checkmate-pop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.chess-checkmate-text{font-family:Fredoka,sans-serif;font-size:56px;font-weight:700;color:gold;text-shadow:3px 3px 0 #B8860B,6px 6px 0 rgba(0,0,0,.3);margin-bottom:16px}.chess-checkmate-subtext{font-family:Fredoka,sans-serif;font-size:24px;color:#fffc}.chess-piece-falling{animation:chess-king-fall .8s ease-in forwards}@keyframes chess-king-fall{0%{transform:rotate(0)}30%{transform:rotate(15deg)}60%{transform:rotate(-10deg)}to{transform:rotate(90deg) translateY(10px);opacity:.5}}.chess-board-shake{animation:chess-board-shake .4s ease-out}@keyframes chess-board-shake{0%,to{transform:translate(0)}10%{transform:translate(-3px,-2px)}20%{transform:translate(3px,2px)}30%{transform:translate(-2px,1px)}40%{transform:translate(2px,-1px)}50%{transform:translate(-1px,1px)}}.chess-promotion-dialog{display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px;background:linear-gradient(180deg,#34495e,#2c3e50);border:4px solid var(--color-outline-dark);border-radius:16px;box-shadow:0 8px 24px #00000080;animation:chess-promotion-entrance .3s cubic-bezier(.175,.885,.32,1.275)}@keyframes chess-promotion-entrance{0%{transform:scale(.8) translateY(20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.chess-piece-new{animation:chess-piece-pop .2s ease-out}@keyframes chess-piece-pop{0%{transform:scale(.5)}60%{transform:scale(1.15)}to{transform:scale(1)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;font-family:var(--font-primary);font-size:24px;font-weight:700;text-transform:uppercase;letter-spacing:1px;border:var(--outline-medium) solid var(--color-outline-dark);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast);-webkit-user-select:none;user-select:none}.btn:hover:not(:disabled){transform:scale(1.03)}.btn:active:not(:disabled){transform:scale(.96)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-accent-cyan);color:var(--color-white);text-shadow:var(--shadow-text);padding:16px 48px;border-radius:var(--radius-pill);box-shadow:0 6px #3ba9a0,var(--shadow-soft)}.btn-primary:active:not(:disabled){box-shadow:0 2px #3ba9a0;transform:translateY(4px) scale(.98)}.btn-secondary{background:var(--color-accent-orange);color:var(--color-white);text-shadow:var(--shadow-text);padding:12px 36px;border-radius:var(--radius-pill);box-shadow:0 4px #c47a47,var(--shadow-soft)}.btn-secondary:active:not(:disabled){box-shadow:0 2px #c47a47;transform:translateY(2px) scale(.98)}.btn-gray{background:#6b7280;color:var(--color-white);text-shadow:var(--shadow-text);padding:12px 32px;border-radius:var(--radius-pill);box-shadow:0 4px #4b5563,var(--shadow-soft)}.btn-gray:active:not(:disabled){box-shadow:0 2px #4b5563;transform:translateY(2px) scale(.98)}.card{background:var(--color-white);border:var(--outline-medium) solid var(--color-outline-dark);border-radius:var(--radius-card);box-shadow:var(--shadow-heavy);padding:32px;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0003}.card-interactive{cursor:pointer}.card-interactive:active{transform:translateY(0);box-shadow:var(--shadow-soft)}.game-tile{position:relative;aspect-ratio:1;background:var(--tile-color, var(--color-accent-blue));border:var(--outline-thick) solid var(--color-outline-dark);border-radius:var(--radius-tile);box-shadow:var(--shadow-soft);cursor:pointer;overflow:hidden;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.game-tile:hover{transform:scale(1.03);box-shadow:var(--shadow-heavy)}.game-tile:active{transform:scale(.98)}.game-tile-title{position:absolute;bottom:16px;left:16px;right:16px;font-size:20px;font-weight:700;text-transform:uppercase;color:var(--color-white);text-shadow:var(--shadow-text);line-height:1.2}.capsule{background:var(--color-white);border:var(--outline-medium) solid var(--color-outline-dark);border-radius:var(--radius-pill);box-shadow:var(--shadow-soft)}.capsule-exit{writing-mode:vertical-rl;text-orientation:mixed;padding:24px 16px;font-size:18px;font-weight:700;text-transform:uppercase;cursor:pointer;transition:transform var(--transition-fast)}.capsule-exit:hover{transform:scale(1.05)}.capsule-exit:active{transform:scale(.95)}.capsule-score{padding:16px 12px;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:50px}.score-blue{color:var(--color-accent-blue);font-size:24px;font-weight:700}.score-red{color:var(--color-accent-red);font-size:24px;font-weight:700}.score-divider{width:24px;height:3px;background:var(--color-outline-dark);border-radius:2px}.pill-selector{display:flex;gap:8px;flex-wrap:wrap}.pill-option{padding:12px 24px;font-family:var(--font-primary);font-size:18px;font-weight:700;text-transform:uppercase;border:var(--outline-thin) solid var(--color-outline-dark);border-radius:var(--radius-pill);background:transparent;cursor:pointer;transition:all var(--transition-fast)}.pill-option:hover:not(.pill-option-selected){background:#0000000d}.pill-option-selected{background:var(--color-accent-blue);color:var(--color-white);text-shadow:var(--shadow-text)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:modal-backdrop-fade .2s ease-out}@keyframes modal-backdrop-fade{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--color-white);border:var(--outline-medium) solid var(--color-outline-dark);border-radius:var(--radius-card);box-shadow:var(--shadow-heavy);padding:40px;max-width:90%;text-align:center;animation:modal-content-entrance .3s cubic-bezier(.175,.885,.32,1.275)}@keyframes modal-content-entrance{0%{transform:scale(.8) translateY(20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.copy-link-box{display:flex;align-items:center;gap:12px;background:#f3f4f6;border:var(--outline-thin) solid var(--color-outline-dark);border-radius:var(--radius-input);padding:12px 16px}.copy-link-input{flex:1;font-family:var(--font-primary);font-size:16px;font-weight:600;background:transparent;border:none;outline:none;color:var(--color-text-dark)}.copy-link-btn{background:var(--color-accent-blue);color:var(--color-white);border:var(--outline-thin) solid var(--color-outline-dark);border-radius:var(--radius-button);padding:8px 16px;font-family:var(--font-primary);font-size:14px;font-weight:700;text-transform:uppercase;cursor:pointer;transition:transform var(--transition-fast)}.copy-link-btn:hover{transform:scale(1.05)}.copy-link-btn:active{transform:scale(.95)}.countdown-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.countdown-number{font-size:200px;font-weight:700;color:var(--color-white);text-shadow:4px 4px 0 var(--color-outline-dark);animation:countdown-pop 1s forwards}.player-slot{display:flex;align-items:center;gap:16px;padding:16px 24px;background:#f9fafb;border:var(--outline-thin) solid var(--color-outline-dark);border-radius:var(--radius-button)}.player-badge{width:32px;height:32px;border-radius:50%;border:3px solid var(--color-outline-dark)}.player-badge-blue{background:var(--color-accent-blue)}.player-badge-red{background:var(--color-accent-red)}.player-name{font-size:20px;font-weight:700}.player-status{margin-left:auto;font-size:16px;font-weight:600;color:#6b7280}.player-ready{color:var(--color-accent-green)}.player-ready-check{animation:ready-check-pop .4s cubic-bezier(.175,.885,.32,1.275)}@keyframes ready-check-pop{0%{transform:scale(0)}60%{transform:scale(1.3)}to{transform:scale(1)}}.player-slot{transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.player-slot:hover{transform:translate(4px);box-shadow:-4px 0 12px #0000001a}.waiting-dots{display:inline-flex;gap:4px}.waiting-dot{width:8px;height:8px;background:var(--color-text-dark);border-radius:50%;animation:dots 1.4s ease-in-out infinite}.waiting-dot:nth-child(2){animation-delay:.2s}.waiting-dot:nth-child(3){animation-delay:.4s}.btn:hover:not(:disabled){transform:scale(1.03);filter:brightness(1.05)}.btn-glow{animation:btn-glow-pulse 1.5s ease-in-out infinite}@keyframes btn-glow-pulse{0%,to{box-shadow:0 6px #3ba9a0,var(--shadow-soft)}50%{box-shadow:0 6px #3ba9a0,var(--shadow-soft),0 0 20px #4ecdc466}}.btn-loading{position:relative;pointer-events:none}.btn-loading:after{content:"";position:absolute;width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:btn-spin .8s linear infinite;margin-left:8px}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn-ripple{position:relative;overflow:hidden}.btn-ripple:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#ffffff4d;border-radius:50%;transform:translate(-50%,-50%);transition:width .3s,height .3s}.btn-ripple:active:before{width:200%;height:200%}.game-tile-entrance{animation:tile-entrance .4s ease-out backwards}@keyframes tile-entrance{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.game-tile-entrance:nth-child(1){animation-delay:0s}.game-tile-entrance:nth-child(2){animation-delay:.05s}.game-tile-entrance:nth-child(3){animation-delay:.1s}.game-tile-entrance:nth-child(4){animation-delay:.15s}.game-tile-entrance:nth-child(5){animation-delay:.2s}.game-tile-entrance:nth-child(6){animation-delay:.25s}.game-tile-entrance:nth-child(7){animation-delay:.3s}.game-tile-entrance:nth-child(8){animation-delay:.35s}.game-tile-entrance:nth-child(9){animation-delay:.4s}.game-tile-entrance:nth-child(10){animation-delay:.45s}.game-tile-entrance:nth-child(11){animation-delay:.5s}.game-tile-entrance:nth-child(12){animation-delay:.55s}.game-tile-entrance:nth-child(13){animation-delay:.6s}.game-tile-entrance:nth-child(14){animation-delay:.65s}.game-tile-entrance:nth-child(15){animation-delay:.7s}.game-tile-entrance:nth-child(16){animation-delay:.75s}.pulse-attention{animation:pulse-attention 1s ease-in-out infinite}@keyframes pulse-attention{0%,to{transform:scale(1)}50%{transform:scale(1.05);box-shadow:0 0 20px #f1c40f80}}:root{--color-background-salmon: #F89979;--color-background-salmon-dark: #CA6B55;--color-background-sky: #62AED0;--color-background-light: #DDEDFA;--color-background-purple: #7B6B8D;--color-background-yellow: #F5C842;--color-background-brown: #5C4A3D;--color-background-navy: #3D4F5F;--color-board-dark: #3D4A5C;--color-outline-dark: #1A1A1A;--color-accent-blue: #5BB5E0;--color-accent-red: #E86B6B;--color-accent-cyan: #4ECDC4;--color-accent-orange: #E8985B;--color-accent-green: #7BC47F;--color-white: #FFFFFF;--color-text-dark: #1A1A1A;--shadow-soft: 4px 4px 8px rgba(0, 0, 0, .15);--shadow-heavy: 6px 6px 12px rgba(0, 0, 0, .2);--shadow-text: 2px 2px 0px rgba(0, 0, 0, .3);--radius-tile: 24px;--radius-card: 32px;--radius-pill: 999px;--radius-button: 18px;--radius-input: 12px;--outline-thick: 6px;--outline-medium: 4px;--outline-thin: 3px;--font-primary: "Fredoka", "Nunito", system-ui, sans-serif;--transition-fast: .1s ease-out;--transition-normal: .2s ease-out;--transition-bounce: .3s cubic-bezier(.34, 1.56, .64, 1);--transition-slow: .4s ease-out;--transition-spring: .5s cubic-bezier(.175, .885, .32, 1.275);--duration-fast: .15s;--duration-normal: .3s;--duration-slow: .5s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-primary);font-weight:500;color:var(--color-text-dark);background:var(--color-background-light);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%;display:flex;flex-direction:column}.text-title{font-size:64px;font-weight:700;text-transform:uppercase;letter-spacing:2px}.text-heading{font-size:36px;font-weight:700;text-transform:uppercase;letter-spacing:1px}.text-button{font-size:24px;font-weight:700;text-transform:uppercase;letter-spacing:1px}.text-body{font-size:18px;font-weight:600}.text-caption{font-size:14px;font-weight:500}.text-light{color:var(--color-white);text-shadow:var(--shadow-text)}@keyframes bounce-in{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes countdown-pop{0%{transform:scale(1.4);opacity:0}20%{opacity:1}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes dots{0%,20%{transform:translateY(0)}40%{transform:translateY(-8px)}60%,to{transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slide-down{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slide-in-left{0%{transform:translate(-30px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slide-in-right{0%{transform:translate(30px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes shake{0%,to{transform:translate(0)}10%,50%,90%{transform:translate(-6px)}30%,70%{transform:translate(6px)}}@keyframes shake-vertical{0%,to{transform:translateY(0)}10%,50%,90%{transform:translateY(-4px)}30%,70%{transform:translateY(4px)}}@keyframes score-pop{0%{transform:scale(1)}50%{transform:scale(1.4)}to{transform:scale(1)}}@keyframes score-roll{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes glow-pulse{0%,to{filter:drop-shadow(0 0 4px currentColor)}50%{filter:drop-shadow(0 0 16px currentColor)}}@keyframes glow-intense{0%,to{box-shadow:0 0 8px #ffffff4d}50%{box-shadow:0 0 24px #fff9,0 0 48px #ffffff4d}}@keyframes float-up{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(-40px) scale(.8);opacity:0}}@keyframes float-up-fade{0%{transform:translateY(0);opacity:1}to{transform:translateY(-30px);opacity:0}}@keyframes ripple{0%{transform:scale(0);opacity:.6}to{transform:scale(2.5);opacity:0}}@keyframes ripple-ring{0%{transform:scale(.8);opacity:1;border-width:4px}to{transform:scale(1.8);opacity:0;border-width:1px}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin-reverse{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes victory-bounce{0%,to{transform:translateY(0) scale(1)}25%{transform:translateY(-15px) scale(1.05)}50%{transform:translateY(0) scale(1)}75%{transform:translateY(-8px) scale(1.02)}}@keyframes confetti-fall{0%{transform:translateY(-100%) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes squash{0%,to{transform:scaleX(1) scaleY(1)}50%{transform:scaleX(1.15) scaleY(.85)}}@keyframes stretch{0%,to{transform:scaleX(1) scaleY(1)}50%{transform:scaleX(.9) scaleY(1.15)}}@keyframes piece-drop{0%{transform:translateY(-100%)}60%{transform:translateY(5%)}80%{transform:translateY(-2%)}to{transform:translateY(0)}}@keyframes piece-slide{0%{transform:translate(var(--from-x, 0),var(--from-y, 0))}to{transform:translate(0)}}@keyframes impact-flash{0%{background-color:#fff0}50%{background-color:#ffffff4d}to{background-color:#fff0}}@keyframes impact-ring{0%{transform:scale(.5);opacity:1}to{transform:scale(2);opacity:0}}@keyframes heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.1)}28%{transform:scale(1)}42%{transform:scale(1.1)}70%{transform:scale(1)}}@keyframes wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.animate-bounce-in{animation:bounce-in var(--transition-bounce) forwards}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-fade-in{animation:fade-in var(--duration-normal) ease-out forwards}.animate-fade-out{animation:fade-out var(--duration-fast) ease-out forwards}.animate-slide-up{animation:slide-up var(--duration-normal) ease-out forwards}.animate-slide-down{animation:slide-down var(--duration-normal) ease-out forwards}.animate-shake{animation:shake .4s ease-out}.animate-score-pop{animation:score-pop .3s ease-out}.animate-glow{animation:glow-pulse 1.5s ease-in-out infinite}.animate-float-up{animation:float-up .8s ease-out forwards}.animate-spin{animation:spin 1s linear infinite}.animate-victory{animation:victory-bounce .6s ease-out}.animate-heartbeat{animation:heartbeat 1s ease-in-out infinite}.animate-wobble{animation:wobble .5s ease-in-out}@keyframes opponent-disconnect-slide{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes opponent-disconnect-pulse{0%,to{opacity:1}50%{opacity:.8}}
