:root{--bg: #0b0f1a;--bg-card: #141928;--bg-board: #1c2235;--accent: #7c3aed;--accent-light: #a78bfa;--accent-glow: rgba(124, 58, 237, .3);--green: #34d399;--red: #f87171;--text: #eaecf4;--text-muted: #6b7591;--stone-color: #a1855a;--stone-highlight: #d4a96a;--pit-bg: #1a2235;--pit-hover: #232d45;--store-bg: #131a2c;--radius: 14px;--radius-sm: 8px;--shadow: 0 8px 32px rgba(0, 0, 0, .7);--transition: .18s ease;--font: "Outfit", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;display:flex;align-items:center;justify-content:center;-webkit-text-size-adjust:100%;letter-spacing:.01em}#root{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center}button{cursor:pointer;border:none;font:inherit;touch-action:manipulation}a{touch-action:manipulation}*{-webkit-tap-highlight-color:transparent}.app,.screen{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center}.portal-screen{background:radial-gradient(ellipse at 50% -10%,#2e1065 0%,transparent 55%),radial-gradient(ellipse at 80% 80%,#0f172a 0%,transparent 60%),#0b0f1a;overflow-y:auto;align-items:flex-start}.portal-screen .portal-content{margin:auto}.portal-content{display:flex;flex-direction:column;align-items:center;gap:2.5rem;width:100%;max-width:760px;padding:2.5rem 1.5rem;padding-bottom:max(2.5rem,env(safe-area-inset-bottom))}.portal-header{text-align:center}.portal-title{font-size:4rem;font-weight:900;letter-spacing:-2px;background:linear-gradient(135deg,#c4b5fd,#a78bfa 40%,#818cf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 0 32px rgba(124,58,237,.5))}.portal-subtitle{color:var(--text-muted);margin-top:.5rem;font-size:1rem}.error-boundary-screen{background:var(--bg)}.error-boundary-content{display:flex;flex-direction:column;align-items:center;gap:1rem;max-width:480px;padding:2rem;text-align:center}.error-boundary-title{font-size:1.8rem;color:var(--text)}.error-boundary-message{color:var(--text-muted)}.error-boundary-detail{font-size:.8rem;color:var(--red);font-family:monospace;background:var(--bg-card);padding:.5rem 1rem;border-radius:var(--radius-sm);word-break:break-word}.error-boundary-actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center;margin-top:.5rem}.portal-footer{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.4rem}.bug-report-link{font-size:.75rem;color:var(--text-muted);text-decoration:none}.bug-report-link:hover{color:var(--text);text-decoration:underline}.game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;width:100%}.game-card{background:linear-gradient(160deg,#181f33 0%,var(--bg-card) 100%);border:1px solid rgba(255,255,255,.07);border-radius:var(--radius);padding:1.5rem 1.25rem;display:flex;flex-direction:column;gap:.75rem;position:relative;transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition);box-shadow:0 2px 12px #00000059}.game-card--available{cursor:pointer}.game-card--available:hover{transform:translateY(-4px);border-color:#a78bfa59;box-shadow:0 12px 32px #00000080,0 0 0 1px #a78bfa26}.game-card--available:focus-visible{outline:2px solid var(--accent-light);outline-offset:2px}.game-card--soon{opacity:.45;cursor:default}.game-card-emoji{font-size:2.5rem;line-height:1}.game-card-title{font-size:1.15rem;font-weight:700;color:var(--text);letter-spacing:-.01em}.game-card-desc{font-size:.82rem;color:var(--text-muted);line-height:1.45}.game-card-meta{font-size:.74rem;color:var(--accent-light);font-weight:600;opacity:.8}.game-card-badge{position:absolute;top:.75rem;right:.75rem;background:#ffffff12;color:var(--text-muted);font-size:.63rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:.2rem .55rem;border-radius:999px;border:1px solid rgba(255,255,255,.08)}.back-to-portal-btn{align-self:flex-start;background:transparent;color:var(--text-muted);font-size:.85rem;padding:.3rem 0;transition:color var(--transition)}.back-to-portal-btn:hover{color:var(--text)}.tipjar{position:fixed;bottom:1.25rem;right:1.25rem;display:flex;align-items:center;gap:.6rem;z-index:50;background:var(--bg-card);border:1px solid rgba(200,136,42,.3);border-radius:999px;padding:.4rem;box-shadow:0 4px 16px #0006;transition:padding var(--transition)}.tipjar--expanded{padding:.4rem .75rem}.tipjar-collapsed{display:flex;align-items:center;gap:.5rem;padding:0 .25rem 0 .6rem}.tipjar-nudge{font-size:.7rem;font-style:italic;color:#c8882a;opacity:.75;white-space:nowrap;letter-spacing:.01em;font-family:Georgia,Times New Roman,serif}.tipjar-toggle{width:36px;height:36px;border-radius:50%;background:transparent;font-size:1.2rem;display:flex;align-items:center;justify-content:center;transition:transform var(--transition)}.tipjar-toggle:hover{transform:scale(1.15)}.tipjar-text{font-size:.8rem;color:var(--text-muted);white-space:nowrap}.tipjar-link{font-size:.85rem;font-weight:600;color:var(--accent-light);text-decoration:none;white-space:nowrap;transition:color var(--transition)}.tipjar-link:hover{color:#fff}.tipjar-close{width:24px;height:24px;border-radius:50%;background:transparent;color:var(--text-muted);font-size:.7rem;display:flex;align-items:center;justify-content:center}.tipjar-close:hover{color:var(--text)}.theme-kalaha{--accent: #c47d0e;--accent-light: #f5a623;--accent-glow: rgba(196, 125, 14, .35)}.theme-kalaha .home-screen,.theme-kalaha.home-screen{background:radial-gradient(ellipse at 50% 0%,#271600,#0d1117 65%)}.theme-kalaha .game-screen,.theme-kalaha.game-screen{background:var(--bg)}.theme-checkers{--accent: #9a6234;--accent-light: #c4935a;--accent-glow: rgba(154, 98, 52, .35)}.theme-checkers .home-screen,.theme-checkers.home-screen{background:radial-gradient(ellipse at 50% 0%,#1e0f00,#0d1117 65%)}.theme-checkers .game-screen,.theme-checkers.game-screen{background:var(--bg)}.game-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--radius) var(--radius) 0 0;opacity:.7}.game-card[data-game=kalaha]:before{background:linear-gradient(90deg,#f5a623,#c47d0e)}.game-card[data-game=checkers]:before{background:linear-gradient(90deg,#c4935a,#9a6234)}.game-card[data-game=solitaire]:before{background:linear-gradient(90deg,#4ade80,#16a34a)}.game-card[data-game=yatzy]:before{background:linear-gradient(90deg,#60a5fa,#2563eb)}.game-card[data-game=connect4]:before{background:linear-gradient(90deg,#f87171,#dc2626)}.game-card[data-game=backgammon]:before{background:linear-gradient(90deg,#c084fc,#7c3aed)}.game-card[data-game=kalaha] .game-card-meta{color:#f5a623}.game-card[data-game=checkers] .game-card-meta{color:#c4935a}.game-card[data-game=solitaire] .game-card-meta{color:#4ade80}.game-card[data-game=yatzy] .game-card-meta{color:#60a5fa}.game-card[data-game=connect4] .game-card-meta{color:#f87171}.game-card[data-game=backgammon] .game-card-meta{color:#c084fc}.home-screen{background:radial-gradient(ellipse at 50% 0%,#1a1535,#0d1117 60%)}.home-content{display:flex;flex-direction:column;align-items:center;gap:2rem;max-width:420px;width:90%;padding:2rem}.home-title{font-size:4rem;font-weight:800;color:var(--accent-light);text-shadow:0 0 40px var(--accent-glow);letter-spacing:-1px}.home-subtitle{color:var(--text-muted);font-size:1rem;margin-top:-1rem}.mode-section{width:100%;background:var(--bg-card);border:1px solid rgba(200,136,42,.2);border-radius:var(--radius);padding:1.5rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.mode-section h2{font-size:1.1rem;color:var(--accent-light)}.mode-desc{font-size:.85rem;color:var(--text-muted);text-align:center}.how-to-play{width:100%}.how-to-play-toggle{background:none;border:none;color:var(--text-muted);font-size:.82rem;padding:0;display:flex;align-items:center;gap:.35rem;transition:color var(--transition)}.how-to-play-toggle:hover{color:var(--text)}.how-to-play-toggle-icon{font-size:.65rem;transition:transform var(--transition)}.how-to-play-toggle-icon--open{transform:rotate(90deg)}.how-to-play-body{margin-top:.75rem;background:var(--bg-card);border:1px solid rgba(200,136,42,.15);border-radius:var(--radius-sm);padding:1rem 1.1rem}.how-to-play-body ol{list-style:decimal;padding-left:1.2rem;display:flex;flex-direction:column;gap:.45rem}.how-to-play-body li{font-size:.82rem;color:var(--text-muted);line-height:1.45}.skill-selector{display:flex;gap:.5rem}.skill-btn{padding:.4rem 1rem;border-radius:999px;background:var(--bg-board);color:var(--text-muted);border:1px solid transparent;font-size:.85rem;transition:var(--transition)}.skill-btn.active{background:var(--accent);color:#fff;border-color:var(--accent-light)}.skill-btn:hover:not(.active){border-color:var(--accent);color:var(--text)}.primary-btn{padding:.75rem 2rem;border-radius:10px;background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;font-size:1rem;font-weight:700;font-family:var(--font);letter-spacing:.02em;transition:var(--transition);box-shadow:0 2px 12px #6d28d973,inset 0 1px #ffffff1f;min-height:44px}.primary-btn:hover{background:linear-gradient(135deg,#8b5cf6,#7c3aed);transform:translateY(-2px);box-shadow:0 6px 20px #6d28d98c,inset 0 1px #ffffff26}.primary-btn:active{transform:translateY(0)}.online-btn{background:#0f766e}.online-btn:hover{background:#0d9488}.divider{color:var(--text-muted);font-size:.85rem}.copyright{color:var(--text-muted);font-size:.72rem;opacity:.6;letter-spacing:.03em}.portal-auth-bar{display:flex;align-items:center;gap:.6rem;margin-top:1rem;justify-content:center;flex-wrap:wrap}.portal-username{color:var(--accent-light);font-size:.9rem;font-weight:600}.portal-auth-btn{padding:.4rem 1rem;font-size:.85rem;text-decoration:none;display:inline-flex;align-items:center}.auth-screen{background:radial-gradient(ellipse at 50% 0%,#1a1535,#0d1117 60%)}.auth-content{display:flex;flex-direction:column;align-items:center;gap:1.75rem;max-width:400px;width:90%;padding:2rem}.auth-title{font-size:2rem;font-weight:800;color:var(--accent-light);text-shadow:0 0 30px var(--accent-glow)}.auth-form{width:100%;display:flex;flex-direction:column;gap:1.1rem}.form-group{display:flex;flex-direction:column;gap:.35rem}.form-label{font-size:.85rem;color:var(--text-muted);display:flex;align-items:baseline;gap:.5rem}.form-hint{font-size:.72rem;color:var(--text-muted);opacity:.7}.form-input{padding:.65rem .9rem;border-radius:var(--radius-sm);background:var(--bg-board);border:1px solid rgba(200,136,42,.25);color:var(--text);font:inherit;font-size:.95rem;transition:border-color var(--transition);outline:none;width:100%}.form-input:focus{border-color:var(--accent)}.form-input:disabled{opacity:.5;cursor:not-allowed}.auth-submit-btn{width:100%;margin-top:.25rem;padding:.75rem}.auth-error{display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:#e539351f;border:1px solid rgba(229,57,53,.4);border-radius:var(--radius-sm);color:#ef9a9a;font-size:.85rem;padding:.6rem .8rem}.auth-error-close{background:transparent;color:inherit;font-size:1.1rem;line-height:1;padding:0;flex-shrink:0}.auth-success{background:#34d3991a;border:1px solid rgba(52,211,153,.3);border-radius:var(--radius-sm);color:var(--green);font-size:.9rem;padding:1rem;text-align:center;line-height:1.5}.auth-switch{font-size:.85rem;color:var(--text-muted)}.auth-link{color:var(--accent-light);text-decoration:none;font-weight:600}.auth-link:hover{color:#fff}.auth-required-block{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%}.auth-required-text{font-size:.85rem;color:var(--text-muted)}.auth-required-actions{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center}.auth-required-actions a{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.secondary-btn{padding:.6rem 1.5rem;border-radius:10px;background:#ffffff0d;color:var(--text-muted);border:1px solid rgba(255,255,255,.12);font-size:.9rem;font-family:var(--font);font-weight:600;transition:var(--transition)}.secondary-btn:hover{color:var(--text);border-color:#ffffff47;background:#ffffff14}.lobby-screen{background:var(--bg)}.lobby-content{display:flex;flex-direction:column;align-items:center;gap:1.5rem;text-align:center}.lobby-content h2{font-size:1.5rem;color:var(--accent-light)}.lobby-content p{color:var(--text-muted)}.spinner{width:48px;height:48px;border:4px solid rgba(200,136,42,.2);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.game-screen{flex-direction:column;background:var(--bg);padding:1rem}.game-header{width:100%;max-width:960px;display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.back-btn{background:transparent;color:var(--text-muted);font-size:.9rem;padding:.4rem .8rem;border-radius:var(--radius-sm);transition:var(--transition)}.back-btn:hover{color:var(--text);background:#ffffff0d}.mode-label{color:var(--text-muted);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40vw}.game-header-actions{display:flex;align-items:center;gap:.25rem}.header-icon-btn{background:transparent;color:var(--text-muted);font-size:1.1rem;padding:.35rem .5rem;border-radius:var(--radius-sm);transition:var(--transition);line-height:1}.header-icon-btn:hover{color:var(--text);background:#ffffff0d}.header-icon-btn:disabled{opacity:.3;cursor:default}.speed-selector{display:flex;gap:.25rem}.speed-btn{width:32px;height:32px;border-radius:8px;background:var(--bg-board);border:1px solid transparent;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:var(--transition);line-height:1}.speed-btn:hover{border-color:var(--accent)}.speed-btn.active{background:var(--accent);border-color:var(--accent-light)}.turn-indicator{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:999px;font-size:.9rem;font-weight:600;margin-bottom:1rem;transition:var(--transition)}.turn-indicator--yours{background:#4caf5026;color:var(--green)}.turn-indicator--theirs{background:#ffffff0d;color:var(--text-muted)}.turn-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.turn-dot--animating{animation:pulse .6s ease infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.game-wrapper{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%;max-width:960px}.board{display:flex;align-items:stretch;gap:.6rem;background:var(--bg-board);border-radius:999px;padding:1rem;box-shadow:var(--shadow),inset 0 2px 4px #0000004d;border:2px solid rgba(200,136,42,.2);width:100%}.pits-column{flex:1;display:flex;flex-direction:column;gap:.5rem}.pits-row{display:grid;grid-template-columns:repeat(6,1fr);gap:.5rem}.pit{aspect-ratio:1;border-radius:50%;background:var(--pit-bg);border:2px solid transparent;display:flex;align-items:center;justify-content:center;cursor:default;transition:background var(--transition),border-color var(--transition),transform var(--transition);position:relative;min-width:72px;min-height:72px}.pit--playable{cursor:pointer;border-color:#c8882a66}.pit--playable:hover{background:var(--pit-hover);border-color:var(--accent);transform:scale(1.05)}.pit--playable:focus-visible{outline:2px solid var(--accent-light);outline-offset:2px}.pit--empty{opacity:.4}.pit-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100%;height:100%}.pit-count{font-size:.75rem;font-weight:700;color:var(--text-muted);line-height:1;position:absolute;bottom:6px;right:8px}.stones-grid{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:2px;padding:8px;max-width:100%}.stone{display:inline-block;width:8px;height:8px;border-radius:50%;background:radial-gradient(circle at 35% 35%,var(--stone-highlight),var(--stone-color));box-shadow:0 1px 2px #0006;flex-shrink:0}.store{display:flex;flex-direction:column;align-items:center;justify-content:space-between;background:var(--store-bg);border-radius:var(--radius);padding:.6rem .4rem;width:clamp(56px,7%,78px);flex-shrink:0;border:1px solid rgba(200,136,42,.15)}.store-label{font-size:.55rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;text-align:center}.store-count{font-size:1.6rem;font-weight:800;color:var(--accent-light);line-height:1}.store-stones{display:flex;flex-wrap:wrap;justify-content:center;gap:2px;max-width:50px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--bg-card);border-radius:var(--radius);padding:2.5rem;max-width:380px;width:90%;display:flex;flex-direction:column;align-items:center;gap:1.5rem;border:1px solid rgba(200,136,42,.3);box-shadow:var(--shadow)}.modal{animation:modal-pop .28s cubic-bezier(.34,1.56,.64,1) both}@keyframes modal-pop{0%{transform:scale(.8) translateY(12px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.modal-emoji{font-size:3rem;line-height:1}.modal-title{font-size:2rem;font-weight:800}.result-win .modal-title{color:var(--green)}.result-loss .modal-title{color:var(--red)}.result-draw .modal-title{color:var(--accent-light)}.score-display{display:flex;align-items:center;gap:1.5rem}.score-item{display:flex;flex-direction:column;align-items:center;gap:.25rem}.score-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase}.score-value{font-size:2.5rem;font-weight:800;color:var(--text)}.score-divider{font-size:1.5rem;color:var(--text-muted)}.modal-actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.status-banner{border-radius:var(--radius-sm);padding:.5rem 1rem;font-size:.85rem;text-align:center;width:100%;max-width:960px}.status-banner--disconnected{background:#e5393526;border:1px solid rgba(229,57,53,.4);color:#ef9a9a}.status-banner--reconnected{background:#4caf5026;border:1px solid rgba(76,175,80,.4);color:#a5d6a7;animation:fadeOut 3s ease forwards}.status-banner--timeout{background:#fbbf2426;border:1px solid rgba(251,191,36,.4);color:#fde68a;animation:fadeOut 4s ease forwards}@keyframes fadeOut{0%,60%{opacity:1}to{opacity:0}}.pit--last-move{box-shadow:0 0 0 2px var(--accent-light)}.board-loading{color:var(--text-muted)}@keyframes stoneDrop{0%{transform:translateY(-14px) scale(1.4);opacity:.5}55%{transform:translateY(2px) scale(.92);opacity:1}75%{transform:translateY(-3px) scale(1.04)}to{transform:translateY(0) scale(1)}}@keyframes captureFlash{0%{box-shadow:0 0 #ffc832e6}40%{box-shadow:0 0 0 10px #ffc8324d}to{box-shadow:0 0 0 14px #ffc83200}}@keyframes sweepGlow{0%{box-shadow:inset 0 0 0 2px #64dcff00}50%{box-shadow:inset 0 0 0 2px #64dcffcc}to{box-shadow:inset 0 0 0 2px #64dcff00}}@keyframes pitGlow{0%{border-color:var(--accent-light);box-shadow:0 0 10px 2px var(--accent-glow)}to{border-color:transparent;box-shadow:none}}.pit--active-normal{animation:pitGlow .35s ease-out forwards}.pit--active-capture,.store--active-capture{animation:captureFlash .45s ease-out forwards}.store--active-sweep{animation:sweepGlow .45s ease-out forwards}.store--active-normal{animation:pitGlow .35s ease-out forwards}.stone--new{animation:stoneDrop .22s cubic-bezier(.22,.61,.36,1) both}@media(max-width:768px){.pit{min-width:56px;min-height:56px}.home-title{font-size:3.5rem}}@media(max-width:520px){.portal-content{padding:1.5rem 1rem;gap:1.5rem;padding-bottom:max(1.5rem,env(safe-area-inset-bottom))}.portal-title{font-size:2.8rem;letter-spacing:-1px}.game-grid{grid-template-columns:repeat(2,1fr);gap:.65rem}.game-card{padding:1rem .85rem;gap:.5rem}.game-card-emoji{font-size:2rem}.game-card-title{font-size:.95rem}.game-card-desc{font-size:.72rem}.game-card-meta{font-size:.68rem}.game-card-badge{font-size:.6rem;padding:.15rem .4rem}.game-screen{padding:.5rem;padding-bottom:max(.5rem,env(safe-area-inset-bottom));overflow-y:auto;align-items:center;justify-content:center}.game-header{margin-bottom:.5rem}.back-btn{font-size:.8rem;padding:.3rem .6rem;min-height:36px}.mode-label{font-size:.72rem}.speed-btn{width:28px;height:28px;font-size:.85rem}.mode-section .primary-btn,.mode-section .online-btn{width:100%}.board{padding:.5rem .4rem;gap:.3rem;border-radius:16px}.pits-row,.pits-column{gap:.3rem}.pit{min-width:0;min-height:0;aspect-ratio:1}.stone{width:6px;height:6px}.pit-count{font-size:.65rem;bottom:3px;right:4px}.store{width:clamp(36px,9vw,52px);padding:.4rem .25rem}.store-count{font-size:1.2rem}.store-label{font-size:.5rem}.turn-indicator{font-size:.8rem;padding:.4rem .8rem;margin-bottom:.5rem}.home-title{font-size:2.8rem}.home-content{gap:1.25rem;padding:1.25rem}.modal{padding:1.75rem 1.25rem}.score-value{font-size:2rem}.status-banner{font-size:.8rem;padding:.4rem .75rem}.auth-content{padding:1.5rem 1rem}.auth-title{font-size:1.6rem}}@media(max-width:520px){.game-screen~.tipjar,.game-screen+.tipjar{display:none}}@media(max-height:500px)and (orientation:landscape){.game-screen{padding:.25rem .75rem;padding-bottom:max(.25rem,env(safe-area-inset-bottom));justify-content:center;align-items:center;overflow-y:auto}.game-header{margin-bottom:.25rem}.turn-indicator{margin-bottom:.25rem;padding:.25rem .75rem;font-size:.75rem}.board{padding:.4rem;gap:.25rem}.pit{min-width:0;aspect-ratio:1}.stone{width:5px;height:5px}}.checkers-game-wrapper{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%}.checkers-board{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);width:min(80vw,560px);height:min(80vw,560px);border:3px solid #2a3350;border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow)}.checkers-square{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0;border:none;background:none;position:relative;transition:background var(--transition)}.checkers-square--light{background:#e8d5b0}.checkers-square--dark{background:#6b4c2a}.checkers-square--selected{background:#9b7a45!important;box-shadow:inset 0 0 0 3px var(--accent-light)}.checkers-square--target{background:#7a5a35!important;cursor:pointer}.checkers-square--target:hover{background:#8a6a45!important}.checkers-square--must-move{box-shadow:inset 0 0 0 2px var(--accent-light)}.checkers-square--last-move{background:#5a7a4a!important}.checkers-dot{width:28%;height:28%;border-radius:50%;background:#a78bfab3;pointer-events:none}.checkers-piece{width:72%;height:72%;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;box-shadow:0 3px 8px #00000080,inset 0 1px 3px #fff3;transition:transform .12s ease;pointer-events:none}.checkers-piece--south{background:radial-gradient(circle at 35% 35%,#e84545,#8b1a1a);border:2px solid #c03030}.checkers-piece--north{background:radial-gradient(circle at 35% 35%,#f0f0f0,#a0a0a0);border:2px solid #808080}.checkers-piece--king{box-shadow:0 3px 8px #00000080,0 0 10px #ffd70099,inset 0 1px 3px #fff3}.checkers-piece-crown{font-size:42%;line-height:1;color:gold;text-shadow:0 1px 3px rgba(0,0,0,.7)}.checkers-square--dark:not(:disabled):hover .checkers-piece{transform:scale(1.08)}@media(max-width:520px){.checkers-board{width:min(96vw,400px);height:min(96vw,400px)}.checkers-dot{width:30%;height:30%}.checkers-piece{width:78%;height:78%}}@media(max-height:500px)and (orientation:landscape){.checkers-board{width:min(72vh,380px);height:min(72vh,380px)}.checkers-game-wrapper{gap:.4rem}}.theme-solitaire{--accent: #16a34a;--accent-light: #4ade80;--accent-glow: rgba(22, 163, 74, .35)}.theme-solitaire.home-screen{background:radial-gradient(ellipse at 50% 0%,#001a09,#0d1117 65%)}.theme-solitaire.game-screen{background:#071a0b;overflow-y:auto}:root{--card-w: 78px;--card-h: 110px}.card{width:var(--card-w);height:var(--card-h);border-radius:7px;border:none;cursor:pointer;position:relative;flex-shrink:0;font-family:Georgia,serif;transition:transform .1s ease,box-shadow .1s ease;-webkit-user-select:none;user-select:none;display:block}.card--front{background:#fff;box-shadow:0 2px 8px #0000008c;display:flex;flex-direction:column;justify-content:space-between;padding:4px 5px;border:1px solid rgba(0,0,0,.08)}.card--red{color:#c0392b}.card--black{color:#111}.card--back{background:linear-gradient(145deg,#1e3a5f,#0f2544);box-shadow:0 2px 6px #0000008c;overflow:hidden}.card--back:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:2px solid rgba(255,255,255,.12);border-radius:4px;background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(255,255,255,.04) 4px,rgba(255,255,255,.04) 8px)}.card--empty{background:#ffffff0a;border:2px dashed rgba(255,255,255,.14);box-shadow:none;display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:#ffffff2e;cursor:default}.card--empty-target{border-color:var(--accent);background:#16a34a1a;cursor:pointer}.card--selected{box-shadow:0 0 0 2px var(--accent-light),0 6px 18px var(--accent-glow)!important;transform:translateY(-4px);z-index:10}.card--target{box-shadow:0 0 0 2px var(--accent),0 4px 12px var(--accent-glow)!important}.card-corner{display:flex;flex-direction:column;align-items:center;line-height:1;gap:0}.card-corner--br{transform:rotate(180deg);align-self:flex-end}.card-rank{font-size:calc(var(--card-w) * .185);font-weight:700;line-height:1;letter-spacing:-.02em}.card-suit-sm{font-size:calc(var(--card-w) * .14);line-height:1.1}.card-suit-lg{font-size:1.9rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);line-height:1;pointer-events:none}.card-pips{position:relative;flex:1;width:100%;min-height:0}.card-pip{position:absolute;font-size:calc(var(--card-w) * .22);line-height:1;transform:translate(-50%,-50%);pointer-events:none;display:block;-webkit-user-select:none;user-select:none}.card-pip--inv{transform:translate(-50%,-50%) rotate(180deg)}.card-pips--ace .card-pip{font-size:calc(var(--card-w) * .42)}.card-face-center{flex:1;display:flex;align-items:center;justify-content:center;font-size:calc(var(--card-w) * .38);font-weight:700;line-height:1;-webkit-user-select:none;user-select:none}.solitaire-game-wrapper{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:100%;padding:8px .25rem 0;overflow-x:auto;overflow-y:visible}.solitaire-top-row{display:flex;gap:var(--solitaire-gap, 8px);align-items:flex-start;flex-shrink:0}.solitaire-spacer{width:var(--card-w);flex-shrink:0}.solitaire-tableau{display:flex;gap:var(--solitaire-gap, 8px);align-items:flex-start;flex-shrink:0}.tableau-col{position:relative;width:var(--card-w);flex-shrink:0;min-height:var(--card-h)}.tableau-card{position:absolute;left:0}.stock-pile{cursor:pointer}.solitaire-autocomplete-btn{padding:.5rem 1.75rem;border-radius:999px;background:var(--accent);color:#fff;font-weight:600;font-size:.9rem;transition:var(--transition);box-shadow:0 2px 8px var(--accent-glow)}.solitaire-autocomplete-btn:hover{background:var(--accent-light);color:#000}@keyframes hint-pulse{0%,to{box-shadow:0 0 0 2px var(--accent-light)}50%{box-shadow:0 0 0 4px var(--accent-light),0 0 20px var(--accent-glow)}}.card--hint{animation:hint-pulse .75s ease-in-out 3!important;z-index:5}.confetti-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:195}.confetti-piece{position:absolute;top:-12px;background:var(--confetti-color);border-radius:2px;animation:confetti-fall linear forwards}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}85%{opacity:1}to{transform:translateY(110vh) rotate(720deg);opacity:0}}.solitaire-win-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.solitaire-win-content{background:var(--bg-card);border-radius:var(--radius);padding:2.5rem;max-width:380px;width:90%;display:flex;flex-direction:column;align-items:center;gap:1.25rem;border:1px solid rgba(200,136,42,.3);box-shadow:var(--shadow);animation:modal-pop .28s cubic-bezier(.34,1.56,.64,1) both}.solitaire-win-content h2{font-size:2rem;font-weight:800;color:var(--green)}.solitaire-win-content p{color:var(--text-muted);font-size:1.1rem}@media(max-width:520px){:root{--card-w: 44px;--card-h: 62px}.card--front{padding:3px}}.theme-yatzy{--accent: #2563eb;--accent-light: #60a5fa;--accent-glow: rgba(37, 99, 235, .35)}.theme-yatzy.home-screen{background:radial-gradient(ellipse at 50% 0%,#0a1929,#0b0f1a 65%)}.theme-yatzy.game-screen{background:#080d18;overflow-y:auto}.yatzy-layout{display:flex;flex-direction:column;align-items:center;gap:1.25rem;width:100%;max-width:700px;padding:0 1rem 2rem}.yatzy-dice-area{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%}.yatzy-dice-row{display:flex;gap:.65rem;justify-content:center;padding-top:10px}.yatzy-die{width:64px;height:64px;border-radius:12px;background:#fff;border:2px solid rgba(255,255,255,.2);position:relative;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;flex-shrink:0;box-shadow:0 3px 10px #00000080}.yatzy-die:not(.yatzy-die--disabled):hover{transform:translateY(-3px);box-shadow:0 6px 16px #0009}.yatzy-die--held{border-color:var(--accent-light);box-shadow:0 0 0 2px var(--accent-light),0 4px 12px var(--accent-glow);transform:translateY(-6px)}.yatzy-die--rolling{animation:die-roll var(--die-dur, .38s) cubic-bezier(.36,.07,.19,.97) both;filter:blur(.5px)}@keyframes die-roll{0%{transform:translate(0) rotate(0) scale(1);filter:blur(0)}15%{transform:translate(-3px,-5px) rotate(-18deg) scale(.95);filter:blur(1.5px)}30%{transform:translate(3px,-3px) rotate(12deg) scale(.97);filter:blur(2px)}45%{transform:translate(-2px,2px) rotate(-8deg) scale(.96);filter:blur(1.5px)}60%{transform:translate(2px,-2px) rotate(6deg) scale(.98);filter:blur(1px)}75%{transform:translate(-1px,1px) rotate(-3deg) scale(.99);filter:blur(.5px)}to{transform:translate(0) rotate(0) scale(1);filter:blur(0)}}.yatzy-die--disabled{cursor:default;opacity:.85}.yatzy-die-wrapper{display:flex;flex-direction:column;align-items:center;gap:.35rem}.yatzy-held-label{font-size:.6rem;font-weight:700;letter-spacing:.1em;color:var(--accent-light);text-transform:uppercase;height:.75rem;visibility:hidden}.yatzy-die--held~.yatzy-held-label,.yatzy-die-wrapper:has(.yatzy-die--held) .yatzy-held-label{visibility:visible}.yatzy-die-face{position:relative;width:100%;height:100%}.yatzy-die-dot{position:absolute;width:11px;height:11px;border-radius:50%;background:#1a1a2e;transform:translate(-50%,-50%);box-shadow:inset 0 1px 2px #0006}.yatzy-roll-area{display:flex;flex-direction:column;align-items:center;gap:.5rem}.yatzy-roll-btn{min-width:190px}@keyframes roll-btn-pulse{0%,to{box-shadow:0 2px 12px #6d28d973,inset 0 1px #ffffff1f}50%{box-shadow:0 4px 22px #6d28d9bf,inset 0 1px #fff3;transform:translateY(-1px)}}.yatzy-roll-btn--pulse{animation:roll-btn-pulse 1.4s ease-in-out infinite}.yatzy-hold-hint{font-size:.78rem;color:var(--text-muted)}.yatzy-turn-banner{display:flex;align-items:center;gap:.6rem;padding:.5rem 1.25rem;border-radius:999px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);margin-bottom:.25rem;font-size:.9rem;font-weight:600;color:var(--text)}.yatzy-turn-dot{width:10px;height:10px;border-radius:50%;background:var(--player-color, var(--accent-light));flex-shrink:0;box-shadow:0 0 8px var(--player-color, var(--accent-glow));animation:turn-dot-pulse 1.2s ease-in-out infinite}@keyframes turn-dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.8)}}.yatzy-turn-label{flex:1}.yatzy-rolls-pip{display:flex;gap:4px;align-items:center}.yatzy-roll-pip{width:8px;height:8px;border-radius:50%}.yatzy-roll-pip--left{background:var(--player-color, var(--accent-light))}.yatzy-roll-pip--used{background:#ffffff26}@keyframes yatzy-flash{0%{box-shadow:none}25%{box-shadow:0 0 0 4px #fbbf24,0 0 40px #fbbf2499}75%{box-shadow:0 0 0 4px #fbbf24,0 0 40px #fbbf2466}to{box-shadow:none}}.yatzy-flash{animation:yatzy-flash .9s ease}.score-cell--yatzy{background:#fbbf2433!important;border-color:#fbbf24!important;color:#fbbf24!important;animation:roll-btn-pulse .8s ease-in-out infinite}.yatzy-scorecard-wrapper{width:100%;overflow-x:auto}.yatzy-scorecard{width:100%;border-collapse:collapse;font-size:.85rem;table-layout:fixed}.yatzy-scorecard th,.yatzy-scorecard td{padding:0 .5rem;text-align:center;border-bottom:1px solid rgba(255,255,255,.05);overflow:hidden;height:2rem;vertical-align:middle}.scorecard-label-col{text-align:left;width:38%}.scorecard-player-col{width:auto;font-size:.78rem;color:var(--text-muted)}.scorecard-player-col--active{color:var(--accent-light)}.scorecard-player-name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px}.scorecard-bot-tag{font-size:.65rem;margin-left:2px}.scorecard-section-header td{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding-top:.65rem;background:#ffffff05;text-align:left}.scorecard-label{text-align:left;color:var(--text-muted);font-size:.82rem}.scorecard-cell{text-align:center;height:2rem;vertical-align:middle}.score-cell{display:inline-flex;align-items:center;justify-content:center;min-width:2.2rem;height:1.6rem;font-weight:600;font-size:.85rem;border-radius:6px;border:1px solid transparent;padding:0 .35rem;box-sizing:border-box}.score-cell--scored{color:var(--text)}.score-cell--empty{color:#ffffff1f;font-weight:400}.score-cell--preview{background:#2563eb2e;color:var(--accent-light);font-weight:700;border-color:#60a5fa59;transition:background var(--transition);cursor:pointer}.score-cell--preview:hover{background:#2563eb59}.score-cell--zero{color:#fff3;font-weight:400}.score-cell--bonus{color:var(--green)}.score-cell--total{color:var(--accent-light);font-size:1rem}.scorecard-bonus-row td{background:#34d3990a}.scorecard-total-row td{border-top:2px solid rgba(255,255,255,.1);padding-top:.5rem}.yatzy-final-scores{display:flex;flex-direction:column;gap:.4rem;width:100%}.yatzy-final-row{display:flex;justify-content:space-between;padding:.35rem .75rem;border-radius:8px;background:#ffffff0a;font-size:.9rem;color:var(--text-muted)}.yatzy-final-row--winner{background:#34d3991f;color:var(--green);font-weight:700}.yatzy-player-list{display:flex;flex-direction:column;gap:.5rem;width:100%}.yatzy-player-row{display:flex;align-items:center;gap:.5rem}.yatzy-kind-btn{width:36px;height:36px;border-radius:8px;background:var(--bg-board);border:1px solid rgba(255,255,255,.1);font-size:1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:var(--transition)}.yatzy-kind-btn.active{border-color:var(--accent-light);background:#2563eb26}.yatzy-name-input{flex:1;background:var(--bg-board);border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text);font:inherit;font-size:.9rem;padding:.45rem .75rem;outline:none;transition:border-color var(--transition)}.yatzy-name-input:focus{border-color:var(--accent-light)}.yatzy-remove-btn{width:30px;height:30px;border-radius:6px;background:transparent;color:var(--text-muted);font-size:.75rem;flex-shrink:0;transition:var(--transition)}.yatzy-remove-btn:hover{color:var(--red);background:#f871711a}@media(max-width:520px){.yatzy-die{width:52px;height:52px;border-radius:10px}.yatzy-die-dot{width:9px;height:9px}.yatzy-scorecard{font-size:.78rem}.scorecard-label-col{width:35%}}@media(max-height:500px)and (orientation:landscape){:root{--card-w: 56px;--card-h: 78px}.card-suit-lg{font-size:1.2rem}.card-rank{font-size:.8rem}}
