.reload-prompt{bottom:var(--space-lg,1.5rem);z-index:9999;gap:var(--space-sm,.5rem);padding:var(--space-md,1rem) var(--space-lg,1.5rem);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:fixed;left:50%;transform:translate(-50%)}@media (width<=768px){.reload-prompt{bottom:calc(var(--mobile-nav-height) + var(--space-lg,1.5rem))}}.reload-prompt-message{color:var(--text-primary);margin:0;font-size:.9375rem}.reload-prompt-actions{gap:var(--space-sm);justify-content:flex-end;display:flex}.reload-prompt-btn{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);font-size:.875rem;font-weight:500}.reload-prompt-btn-primary{background:var(--accent-primary);color:var(--text-on-accent);border:none}.reload-prompt-btn-primary:hover{background:var(--accent-primary-hover)}.reload-prompt-btn-secondary{color:var(--text-secondary);border:1px solid var(--border-default);background:0 0}.reload-prompt-btn-secondary:hover{background:var(--bg-hover)}:root{--bg-base:#0c0c18;--bg-secondary:#0f0f23;--bg-surface:#13132a;--bg-elevated:#1a1a3e;--bg-card:#181838;--bg-hover:#1f1f4a;--bg-input:#10102a;--surface-subtle:#161632;--accent-primary:#7c6aef;--accent-primary-hover:#9384f7;--accent-secondary:#22d3ee;--accent-gradient:linear-gradient(135deg, #6366f1, #a855f7);--accent-gradient-hover:linear-gradient(135deg, #818cf8, #c084fc);--accent-glow:#6366f140;--accent-gold:#fbbf24;--accent-gold-dim:#fbbf2426;--color-success:#34d399;--color-warning:#fbbf24;--color-danger:#f87171;--color-danger-bg:#f871711a;--color-info:#60a5fa;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-tertiary:#64748b;--text-muted:#475469;--text-on-accent:#fff;--border-subtle:#ffffff0f;--border-default:#ffffff1a;--border-strong:#ffffff29;--border-accent:#6366f166;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 20px #6366f126;--shadow-card:0 2px 8px #0000004d, 0 0 0 1px var(--border-subtle);--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"SF Mono", "Fira Code", "Consolas", monospace;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--space-xxl:4rem;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease;--mobile-nav-height:0px;--board-light-color:#f0d9b5;--board-dark-color:#b58863}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);background:var(--bg-base);color:var(--text-primary);min-height:100dvh;line-height:1.6;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(80% 60% at 50% -20%,#6366f114,#0000),radial-gradient(60% 40% at 80% 100%,#a855f70d,#0000);position:fixed;inset:0}#root{z-index:1;position:relative}a{color:var(--accent-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-primary-hover)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}::selection{color:var(--text-primary);background:#6366f14d}.btn{justify-content:center;align-items:center;gap:var(--space-sm);font-family:var(--font-family);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base), transform var(--transition-fast);white-space:nowrap;border:none;font-size:.875rem;font-weight:600;line-height:1;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-md);background:var(--accent-gradient);color:var(--text-on-accent);border:none}.btn-primary:hover:not(:disabled){background:var(--accent-gradient-hover)}.btn-primary:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.btn-secondary{padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-md);color:var(--text-primary);border:1px solid var(--border-default);background:0 0}.btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.btn-secondary:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.modal-overlay{-webkit-backdrop-filter:blur(4px);-webkit-overflow-scrolling:touch;padding:var(--space-xl) var(--space-md);z-index:1000;background:#000000bf;justify-content:center;align-items:flex-start;animation:.2s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-content{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);box-sizing:border-box;width:100%;margin:auto 0;animation:.25s slideUp}.game-over-content{padding:var(--space-2xl) var(--space-3xl);text-align:center}.game-over-content h2{margin-bottom:var(--space-sm);letter-spacing:-.02em;font-size:1.75rem;font-weight:800}.game-over-content p{color:var(--accent-gold);margin-bottom:var(--space-xl);text-transform:capitalize;font-size:1.2rem;font-weight:600}.game-over-content button{background:var(--accent-gradient);color:var(--text-on-accent);padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-family);transition:all var(--transition-base);border:none;font-size:1rem;font-weight:600}.game-over-content button:hover{background:var(--accent-gradient-hover);transform:translateY(-1px);box-shadow:0 4px 16px #6366f14d}.game-over-actions{gap:var(--space-md);flex-wrap:wrap;justify-content:center;display:flex}.game-over-actions button:disabled{opacity:.5;cursor:not-allowed}.game-over-player-results{margin-bottom:var(--space-lg)}.game-over-player-result{margin-bottom:var(--space-xs);font-size:1.1rem;font-weight:600}.game-over-player-result.won{color:var(--accent-gold)}.game-over-player-result.lost{color:var(--text-secondary)}.transform-dialog{padding:var(--space-xl) var(--space-2xl);text-align:center}.transform-dialog h3{margin-bottom:var(--space-md);font-weight:700}.transform-options{gap:var(--space-sm);display:flex}.transform-option{background:var(--board-light-color);border:2px solid var(--border-strong);border-radius:var(--radius-md);cursor:pointer;width:64px;height:64px;transition:all var(--transition-base);justify-content:center;align-items:center;display:flex}.transform-option:hover{border-color:var(--accent-gold);transform:scale(1.05);box-shadow:0 0 12px #fbbf244d}.rules-button{background:var(--accent-gradient);color:var(--text-on-accent);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-family);transition:all var(--transition-base);border:none;font-size:.8rem;font-weight:600}.rules-button:hover{background:var(--accent-gradient-hover);box-shadow:0 2px 12px #6366f140}.restart-button,.leave-button{border:1px solid var(--border-default);color:var(--text-secondary);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-family);transition:all var(--transition-fast);background:0 0;font-size:.8rem;font-weight:500}.restart-button:hover,.leave-button:hover{color:var(--text-primary);border-color:var(--border-strong);background:#ffffff0a}.undo-button,.redo-button{border:1px solid var(--border-default);color:var(--text-secondary);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-family);transition:all var(--transition-fast);background:0 0;font-size:.8rem;font-weight:500}.undo-button:hover:not(:disabled),.redo-button:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-strong);background:#ffffff0a}.undo-button:disabled,.redo-button:disabled{opacity:.35;cursor:not-allowed}.confirm-dialog{padding:var(--space-2xl) var(--space-2xl);text-align:center}.confirm-dialog h2{margin-bottom:var(--space-sm);font-size:1.5rem;font-weight:700}.confirm-dialog p{color:var(--text-secondary);font-size:.95rem;line-height:1.6}.confirm-dialog-actions{gap:var(--space-md);margin-top:var(--space-xl);justify-content:center;display:flex}.confirm-dialog-cancel{border:1px solid var(--border-default);color:var(--text-secondary);padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-family);transition:all var(--transition-fast);background:0 0;font-size:.95rem;font-weight:500}.confirm-dialog-cancel:hover{color:var(--text-primary);border-color:var(--border-strong);background:#ffffff0a}.confirm-dialog-confirm{background:var(--accent-gradient);color:var(--text-on-accent);padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-family);transition:all var(--transition-base);border:none;font-size:.95rem;font-weight:600}.confirm-dialog-confirm:hover{background:var(--accent-gradient-hover);box-shadow:0 4px 16px #6366f14d}.email-verification-modal{padding:var(--space-2xl);max-width:420px}.email-verification-modal h2{margin-bottom:var(--space-sm);font-size:1.5rem;font-weight:700}.email-verification-subtitle{color:var(--text-secondary);margin-bottom:var(--space-xl);font-size:.95rem;line-height:1.6}.email-verification-modal label{margin-bottom:var(--space-xs);font-size:.9rem;font-weight:500;display:block}.email-verification-modal input:not(.email-verification-code-digit){width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-md);margin-bottom:var(--space-lg);box-sizing:border-box;font-size:1rem}.email-verification-modal input:not(.email-verification-code-digit):focus{border-color:var(--accent-primary);outline:none}.email-verification-hint{color:var(--text-secondary);margin-bottom:var(--space-md);font-size:.9rem}.email-verification-actions{gap:var(--space-md);margin-top:var(--space-lg);justify-content:flex-end;display:flex}.email-verification-actions button{padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-family);border:1px solid var(--border-default);color:var(--text-primary);background:0 0;font-size:.95rem;font-weight:500}.email-verification-actions button:last-child{background:var(--accent-gradient);color:var(--text-on-accent);border:none}.email-verification-actions button:last-child:hover{background:var(--accent-gradient-hover)}.email-verification-actions button:disabled{opacity:.6;cursor:not-allowed}.email-verification-success,.email-verification-error{margin-top:var(--space-lg)}.email-verification-error p{color:var(--color-danger);margin-bottom:var(--space-md)}.email-verification-error-inline{color:var(--color-danger);margin-bottom:var(--space-md);font-size:.9rem}.email-verification-switch{text-align:center;margin-top:var(--space-md);margin-bottom:0}.email-verification-switch-link{color:var(--text-secondary);cursor:pointer;text-underline-offset:2px;font-size:.85rem;font-family:var(--font-family);background:0 0;border:none;padding:0;text-decoration:underline}.email-verification-switch-link:hover{color:var(--accent-primary)}.email-verification-passkey-divider{align-items:center;gap:var(--space-sm);margin:var(--space-lg) 0 var(--space-md);display:flex}.email-verification-divider-line{background:var(--border-subtle);flex:1;height:1px}.email-verification-divider-text{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem}.email-verification-passkey-btn{width:100%;padding:var(--space-sm) var(--space-lg);color:var(--text-primary);background:var(--surface-subtle);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);font-family:inherit;font-size:.9rem;font-weight:600}.email-verification-passkey-btn:hover:not(:disabled){background:var(--bg-card);border-color:var(--accent-primary)}.email-verification-passkey-btn:disabled{opacity:.5;cursor:not-allowed}.feature-request-modal{padding:var(--space-2xl);max-width:420px}.feature-request-modal h2{margin-bottom:var(--space-xl);font-size:1.5rem;font-weight:700}.feature-request-modal label{margin-bottom:var(--space-xs);font-size:.9rem;font-weight:500;display:block}.feature-request-modal input[type=text],.feature-request-modal textarea{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-md);margin-bottom:var(--space-lg);box-sizing:border-box;font-size:1rem}.feature-request-modal textarea{resize:vertical;min-height:80px}.feature-request-modal input:focus,.feature-request-modal textarea:focus{border-color:var(--accent-primary);outline:none}.feature-request-type-options{gap:var(--space-lg);margin-bottom:var(--space-lg);display:flex}.feature-request-type-option{align-items:center;gap:var(--space-xs);cursor:pointer;font-weight:500;display:flex}.feature-request-error{color:var(--color-danger);margin-bottom:var(--space-md);font-size:.9rem}.feature-request-actions{gap:var(--space-md);margin-top:var(--space-xl);justify-content:flex-end;display:flex}.feature-request-actions button{padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-family);border:1px solid var(--border-default);color:var(--text-primary);background:0 0;font-size:.95rem;font-weight:500}.feature-request-actions button:disabled{opacity:.6;cursor:not-allowed}.email-verification-code-entry{margin-top:var(--space-lg)}.email-verification-code-entry p{margin-bottom:var(--space-lg)}.email-verification-code-error{color:var(--color-danger);margin-bottom:var(--space-md);font-size:.9rem}.email-verification-code-inputs{gap:var(--space-sm);margin-bottom:var(--space-lg);justify-content:center;display:flex}.email-verification-code-digit{text-align:center;border:1px solid var(--border-default);border-radius:var(--radius-md);width:44px;height:52px;color:var(--text-primary);box-sizing:border-box;background:0 0;margin:0;padding:0;font-family:monospace;font-size:1.5rem;font-weight:600}.email-verification-code-digit:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 2px #7c6aef33}.profile-setup-modal{padding:var(--space-2xl);max-width:420px}.profile-setup-modal h2{margin-bottom:var(--space-sm);font-size:1.5rem;font-weight:700}.profile-setup-subtitle{color:var(--text-secondary);margin-bottom:var(--space-xl);font-size:.95rem;line-height:1.6}.profile-setup-modal label{margin-bottom:var(--space-xs);font-size:.9rem;font-weight:500;display:block}.profile-setup-modal input:not([type=checkbox]),.profile-setup-modal textarea{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-md);margin-bottom:var(--space-sm);box-sizing:border-box;font-size:1rem;font-family:var(--font-family);background:var(--bg-input);color:var(--text-primary)}.profile-setup-modal textarea{resize:vertical;min-height:80px}.profile-setup-modal input:not([type=checkbox]):focus,.profile-setup-modal textarea:focus{border-color:var(--accent-primary);outline:none}.profile-setup-hint{color:var(--text-secondary);margin-bottom:var(--space-md);font-size:.9rem}.profile-setup-char-count{color:var(--text-tertiary);margin-top:calc(-1 * var(--space-sm));margin-bottom:var(--space-md);font-size:.8rem}.profile-setup-error{color:var(--color-danger);margin-bottom:var(--space-md);padding:var(--space-sm);border-radius:var(--radius-sm);background:#f871711a;font-size:.9rem}.profile-setup-modal .profile-setup-consent{gap:var(--space-sm);margin:var(--space-md) 0;flex-direction:column;display:flex}.profile-setup-modal .profile-setup-consent-label{align-items:flex-start;gap:var(--space-sm);color:var(--text-secondary);cursor:pointer;flex-direction:row;font-size:.85rem;display:flex}.profile-setup-modal .profile-setup-consent-label input[type=checkbox]{flex-shrink:0;width:auto;margin-top:2px}.profile-setup-modal .profile-setup-consent-label a{color:var(--accent-primary);text-decoration:none}.profile-setup-modal .profile-setup-consent-label a:hover{text-decoration:underline}.profile-setup-actions{gap:var(--space-md);margin-top:var(--space-lg);justify-content:flex-end;display:flex}.profile-setup-actions button{padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-family);border:1px solid var(--border-default);color:var(--text-primary);background:0 0;font-size:.95rem;font-weight:500}.profile-setup-actions button:last-child{background:var(--accent-gradient);color:var(--text-on-accent);border:none}.profile-setup-actions button:last-child:hover{background:var(--accent-gradient-hover)}.profile-setup-actions button:disabled{opacity:.6;cursor:not-allowed}@media (width<=480px){.profile-setup-modal{padding:var(--space-lg);max-width:none}.profile-setup-modal h2{font-size:1.25rem}.profile-setup-modal textarea{min-height:60px}.profile-setup-actions{flex-direction:column}.profile-setup-actions button{text-align:center;width:100%}}.rules-modal{flex-direction:column;width:90%;max-width:680px;max-height:80vh;display:flex}.rules-modal-header{padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.rules-modal-header h2{text-transform:capitalize;font-size:1.25rem;font-weight:700}.rules-close-button{border:1px solid var(--border-default);color:var(--text-secondary);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-family);transition:all var(--transition-fast);background:0 0;font-size:.8rem;font-weight:500}.rules-close-button:hover{color:var(--text-primary);border-color:var(--border-strong);background:#ffffff0a}.rules-modal .game-rules-content{padding:var(--space-xl);overflow-y:auto}.prompt-banner{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--bg-elevated);border:1px solid var(--accent-secondary);color:var(--text-primary);top:var(--space-md);z-index:10;white-space:nowrap;border-radius:8px;font-size:.875rem;display:flex;position:absolute;left:50%;transform:translate(-50%)}.prompt-banner+.prompt-banner{top:calc(var(--space-md) + 3rem)}.prompt-banner-success{color:#4caf50;border-color:#4caf50}.prompt-banner-actions{gap:var(--space-sm);flex-shrink:0;display:flex}.prompt-banner-primary{padding:var(--space-xs) var(--space-md);background:var(--accent-gradient);color:var(--text-on-accent);cursor:pointer;border:none;border-radius:6px;font-size:.8125rem;font-weight:500}.prompt-banner-primary:hover{opacity:.9}.prompt-banner-primary:disabled{opacity:.5;cursor:not-allowed}.prompt-banner-dismiss{padding:var(--space-xs) var(--space-md);color:var(--text-secondary);border:1px solid var(--border-default);cursor:pointer;background:0 0;border-radius:6px;font-size:.8125rem}.prompt-banner-dismiss:hover{border-color:var(--text-secondary)}@media (width<=768px){.prompt-banner{white-space:normal;text-align:center;left:var(--space-md);right:var(--space-md);flex-direction:column;width:auto;transform:none}.prompt-banner+.prompt-banner{top:calc(var(--space-md) + 5rem)}}.pwa-install-overlay{padding:var(--space-xl);text-align:center;flex-direction:column;align-items:center;max-width:360px;display:flex}.pwa-install-overlay-icon{width:96px;height:96px;margin-bottom:var(--space-md);object-fit:contain;border-radius:16px}.pwa-install-overlay-headline{color:var(--text-primary);margin:0 0 var(--space-sm);font-size:1.25rem;font-weight:600}.pwa-install-overlay-benefits{margin:0 0 var(--space-lg);color:var(--text-secondary);text-align:left;padding:0;font-size:.875rem;list-style:none}.pwa-install-overlay-benefits li{padding:var(--space-xs) 0;padding-left:1.5em;position:relative}.pwa-install-overlay-benefits li:before{content:"✓";color:var(--accent-primary);position:absolute;left:0}.pwa-install-overlay-actions{gap:var(--space-sm);flex-direction:column;width:100%;display:flex}.pwa-install-overlay-install{padding:var(--space-sm) var(--space-lg);background:var(--accent-gradient);color:var(--text-on-accent);cursor:pointer;border:none;border-radius:8px;font-size:1rem;font-weight:500}.pwa-install-overlay-install:hover{opacity:.9}.pwa-install-overlay-install:disabled{opacity:.5;cursor:not-allowed}.pwa-install-overlay-dismiss{padding:var(--space-xs) var(--space-md);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:.875rem}.pwa-install-overlay-dismiss:hover{color:var(--text-primary)}.pwa-install-overlay-ios-steps{align-items:center;gap:var(--space-sm);flex-direction:column;width:100%;display:flex}.pwa-install-overlay-ios-steps p{color:var(--text-secondary);margin:0;font-size:.9375rem;line-height:1.5}.pwa-ios-share-icon{vertical-align:middle;color:var(--accent-primary);display:inline-block}.notification-settings{background:var(--bg-card);border:1px solid var(--border-default);margin-bottom:var(--space-lg);border-radius:8px;flex-direction:column;gap:0;padding:0;display:flex;overflow:hidden}.notification-settings-heading{padding:var(--space-md) var(--space-lg);color:var(--text-primary);border-bottom:1px solid var(--border-default);background:var(--bg-elevated);margin:0;font-size:1rem;font-weight:600}.notification-settings-row{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.notification-settings-row:last-of-type{border-bottom:none}.notification-settings-label{color:var(--text-primary);flex:1;font-size:.875rem}.notification-settings-hint{padding:var(--space-sm) var(--space-lg) var(--space-md);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);margin:0;font-size:.8125rem;line-height:1.4}.notification-settings-hint:last-child{border-bottom:none}.notification-settings-channels{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border-default)}.notification-settings-channels-heading{margin:0 0 var(--space-sm);color:var(--text-secondary);font-size:.8125rem;font-weight:500}.notification-channel-row{align-items:center;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--border-subtle);display:flex}.notification-channel-row:last-child{border-bottom:none;padding-bottom:0}.notification-channel-label{min-width:0;color:var(--text-primary);flex:1;font-size:.875rem}.notification-channel-toggles{align-items:center;gap:var(--space-lg);flex-shrink:0;display:flex}.notification-toggle-inline{align-items:center;gap:var(--space-xs);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.8125rem;display:inline-flex}.notification-toggle-inline input{cursor:pointer}.notification-toggle-inline span{white-space:nowrap}.notification-toggle-disabled{opacity:.5;cursor:not-allowed}.notification-toggle-disabled input{cursor:not-allowed}.notification-toggle{align-items:center;gap:var(--space-md);color:var(--text-primary);font-size:.875rem;display:flex}.toggle-button{padding:var(--space-xs) var(--space-md);border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;min-width:3rem;font-size:.8125rem}.toggle-button:hover{border-color:var(--text-secondary)}.toggle-button.toggle-active{background:var(--accent-gradient);color:var(--text-on-accent);border-color:#0000}.toggle-button:disabled{opacity:.5;cursor:not-allowed}.player-select-container{align-items:center;gap:var(--space-xl);padding:var(--space-3xl) var(--space-xl);flex-direction:column;display:flex}.player-select-container h2{color:var(--text-primary);font-size:1.75rem;font-weight:700}.player-select-options{gap:var(--space-md);display:flex}.player-select-button{background:var(--bg-card);color:var(--text-primary);border:2px solid var(--border-default);padding:var(--space-lg) var(--space-2xl);border-radius:var(--radius-lg);cursor:pointer;font-family:var(--font-family);transition:all var(--transition-base);font-size:1.15rem;font-weight:600}.player-select-button:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-lg), var(--shadow-glow);transform:translateY(-3px)}.join-code-form{gap:var(--space-sm);display:flex}.join-code-input{background:var(--bg-input);border:1px solid var(--border-default);min-width:0;color:var(--text-primary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;text-align:center;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;flex:1;font-size:1.1rem;font-weight:600}.join-code-input::placeholder{color:var(--text-muted);font-family:var(--font-family);letter-spacing:normal;text-transform:none;font-size:.8rem;font-weight:400}.join-code-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow)}.join-code-button{background:var(--accent-gradient);color:var(--text-on-accent);padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-family);transition:all var(--transition-base);white-space:nowrap;border:none;font-size:.95rem;font-weight:600}.join-code-button:hover{background:var(--accent-gradient-hover);box-shadow:0 4px 16px #6366f14d}.join-code-button:disabled{opacity:.4;cursor:not-allowed}.lobby-list{gap:var(--space-sm);flex-direction:column;display:flex}.lobby-game-card{justify-content:space-between;align-items:center;gap:var(--space-sm);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-md);transition:border-color var(--transition-fast);display:flex}.lobby-game-card:hover{border-color:var(--border-default)}.lobby-game-info{gap:var(--space-xs);flex-direction:column;min-width:0;display:flex}.lobby-game-name{white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:600;overflow:hidden}.lobby-game-meta{align-items:center;gap:var(--space-sm);display:flex}.lobby-game-players{color:var(--text-secondary);border-radius:var(--radius-sm);white-space:nowrap;background:#6366f11a;padding:2px 8px;font-size:.75rem}.lobby-game-time{color:var(--text-tertiary);white-space:nowrap;font-size:.75rem}.lobby-join-button{background:var(--accent-gradient);color:var(--text-on-accent);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-family);transition:all var(--transition-base);border:none;font-size:.8rem;font-weight:600}.lobby-join-button:hover{background:var(--accent-gradient-hover);box-shadow:0 2px 12px #6366f140}.lobby-loading,.lobby-error,.lobby-empty{text-align:center;padding:var(--space-lg);color:var(--text-tertiary);font-size:.875rem}.lobby-error{color:var(--color-danger)}.copy-link-button{border:1px solid var(--border-default);color:var(--text-secondary);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-family);transition:all var(--transition-fast);background:0 0;font-size:.875rem;font-weight:500}.copy-link-button:hover{color:var(--text-primary);border-color:var(--accent-primary);background:#6366f114}.lobby-player-slots{gap:var(--space-sm);flex-direction:column;width:100%;display:flex}.lobby-player-slot{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-surface);transition:all var(--transition-base);justify-content:space-between;align-items:center;display:flex}.lobby-player-slot.filled{background:#34d3990d;border-color:#34d3994d}.lobby-player-slot-number{font-size:.9rem;font-weight:600}.lobby-player-slot-status{color:var(--text-tertiary);font-size:.8rem}.lobby-player-slot.filled .lobby-player-slot-status{color:var(--color-success);font-weight:600}.waiting-spinner{padding:var(--space-md)}.spinner{border:3px solid var(--border-default);border-top-color:var(--accent-primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.share-link-section{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-md);gap:var(--space-sm);flex-direction:column;display:flex}.share-link-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.share-link-url{font-family:var(--font-mono);color:var(--text-secondary);word-break:break-all;font-size:.75rem}.share-link-section .copy-link-button{margin-top:var(--space-xs)}.offline-indicator{color:var(--color-warning);padding:var(--space-xs) var(--space-sm);transition:opacity var(--transition-base);justify-content:center;align-items:center;display:inline-flex}.offline-indicator svg{display:block}.offline-indicator-pulse{animation:1.5s ease-in-out infinite offline-pulse}@keyframes offline-pulse{0%,to{opacity:1}50%{opacity:.5}}.cookie-notice{z-index:100;justify-content:center;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-xl);background:var(--bg-elevated);border-top:1px solid var(--border-default);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #0000004d}.cookie-notice-text{color:var(--text-secondary);max-width:700px;margin:0;font-size:.85rem}.cookie-notice-text a{color:var(--accent-primary);text-decoration:none}.cookie-notice-text a:hover{text-decoration:underline}.cookie-notice-btn{padding:var(--space-xs) var(--space-md);color:var(--text-on-accent);background:var(--accent-primary);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast);border:none;font-size:.85rem;font-weight:600}.cookie-notice-btn:hover{background:var(--accent-primary-hover)}.policy-update-banner{z-index:99;justify-content:center;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-xl);background:var(--bg-elevated);border-top:1px solid var(--border-accent);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #0000004d}.policy-update-banner-text{color:var(--text-secondary);max-width:700px;margin:0;font-size:.85rem}.policy-update-banner-text a{color:var(--accent-primary);text-decoration:none}.policy-update-banner-text a:hover{text-decoration:underline}.policy-update-banner-btn{padding:var(--space-xs) var(--space-md);color:var(--text-on-accent);background:var(--accent-primary);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast);border:none;font-size:.85rem;font-weight:600}.policy-update-banner-btn:hover{background:var(--accent-primary-hover)}@media (width<=768px){.cookie-notice,.policy-update-banner{text-align:center;padding:var(--space-md);bottom:var(--mobile-nav-height);flex-direction:column}}html{touch-action:manipulation}.page-header{padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(12px);z-index:50;background:#0c0c1899;justify-content:space-between;align-items:center;width:100%;display:flex;position:sticky;top:0}.page-header h1{letter-spacing:-.02em;background:var(--accent-gradient);-webkit-text-fill-color:transparent;white-space:nowrap;text-overflow:ellipsis;-webkit-background-clip:text;background-clip:text;min-width:0;font-size:1.5rem;font-weight:700;overflow:hidden}.page-header-actions{gap:var(--space-sm);display:flex}.page-header p{color:var(--text-tertiary);font-size:.875rem}.page-header-left{flex:1;align-items:center;min-width:0;display:flex}.page-header-title-block{text-align:center;flex-direction:column;gap:2px;min-width:0;display:flex}.page-header-title-block p{color:var(--text-tertiary);margin:0;font-size:.8rem}.back-link{color:var(--text-secondary);font-family:var(--font-family);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:none;flex-shrink:0;align-items:center;gap:4px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.back-link:before{content:"←";font-size:1rem}.back-link:hover{color:var(--text-primary);background:#ffffff0d}.game-play-page-unified{width:100%}.unified-game-layout{flex:1;width:100%;min-height:0;display:flex}.unified-game-board-area{align-items:center;gap:var(--space-xl);padding:var(--space-lg);flex:1;justify-content:center;min-width:0;display:flex;position:relative}.unified-game-board-area .game-board-container,.board-wrapper{position:relative}.board-preview-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:var(--radius-md);pointer-events:none;background:#0c0c1880;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.board-preview-overlay p{color:var(--text-secondary);background:var(--bg-elevated);padding:var(--space-md) var(--space-xl);border-radius:var(--radius-md);border:1px solid var(--border-subtle);font-size:1rem;font-weight:500}.player-sidebar{border-left:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:300px;min-width:300px;max-width:300px;transition:width var(--transition-base), min-width var(--transition-base);background:#13132acc;flex-direction:column;display:flex}.player-sidebar.collapsed{width:48px;min-width:48px;max-width:48px}.player-sidebar.collapsed .player-sidebar-header{justify-content:center}.player-sidebar.collapsed .player-sidebar-title,.player-sidebar.collapsed .sidebar-header-rules-btn{display:none}.player-sidebar-header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.player-sidebar-title{white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:700;overflow:hidden}.sidebar-header-rules-btn{padding:var(--space-xs) var(--space-sm);font-size:.75rem;font-weight:600;font-family:var(--font-family);background:var(--accent-gradient);color:var(--text-on-accent);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:none;flex-shrink:0}.sidebar-header-rules-btn:hover{background:var(--accent-gradient-hover);box-shadow:0 2px 8px #6366f140}.sidebar-toggle-btn{background:var(--bg-input);border:1px solid var(--border-default);width:32px;height:32px;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;display:flex}.sidebar-toggle-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.player-sidebar-tabs{border-bottom:1px solid var(--border-subtle);display:flex}.player-sidebar-tab{padding:var(--space-sm) var(--space-md);font-size:.875rem;font-weight:500;font-family:var(--font-family);color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;flex:1}.player-sidebar-tab:hover{color:var(--text-secondary)}.player-sidebar-tab.active{color:var(--accent-primary);border-bottom:2px solid var(--accent-primary);margin-bottom:-1px}.player-sidebar-new-tab,.player-sidebar-join-tab,.player-sidebar-playing{padding:var(--space-lg);gap:var(--space-lg);flex-direction:column;flex:1;display:flex;overflow-y:auto}.sidebar-actions{padding:var(--space-lg);border-top:1px solid var(--border-subtle);gap:var(--space-sm);flex-direction:column;margin-top:auto;display:flex}.sidebar-actions-row{gap:var(--space-sm);display:flex}.player-slots-list{gap:var(--space-sm);flex-direction:column;display:flex}.player-slot{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);gap:var(--space-xs);flex-direction:column;display:flex}.player-slot.current-turn{border-color:var(--accent-primary);background:#6366f114}.player-slot.player-slot-winner .player-slot-status{color:var(--accent-gold);font-weight:700}.player-slot.player-slot-forfeited .player-slot-status{color:var(--color-danger);font-weight:600}.player-slot-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.player-slot-status{font-size:.9rem;font-weight:500}.player-slot.filled .player-slot-status{color:var(--color-success)}.player-slot-type-select{background:var(--bg-input);border:1px solid var(--border-default);width:100%;color:var(--text-primary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-family:var(--font-family);cursor:pointer;font-size:.875rem}.player-slot-type-select:focus{border-color:var(--accent-primary);outline:none}.player-slot-invite-hint{color:var(--text-tertiary);margin-top:var(--space-xs);font-size:.75rem}.player-slot-deallocate-btn{padding:var(--space-xs) var(--space-sm);font-size:.75rem;font-weight:500;font-family:var(--font-family);background:var(--bg-input);border:1px solid var(--border-default);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);margin-top:var(--space-xs);align-self:flex-start}.player-slot-deallocate-btn:hover{background:var(--bg-hover);color:var(--color-danger)}.player-count-controls{gap:var(--space-sm);display:flex}.player-add-btn,.player-remove-btn{padding:var(--space-xs) var(--space-sm);font-size:.8rem;font-weight:500;font-family:var(--font-family);background:var(--bg-input);border:1px solid var(--border-default);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);flex:1}.player-add-btn:hover,.player-remove-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.observer-mode-section{gap:var(--space-sm);flex-direction:column;display:flex}.observer-mode-indicator{color:var(--text-tertiary);padding:var(--space-sm);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);text-align:center;font-size:.875rem;font-weight:600}.observer-count{color:var(--text-tertiary);padding:var(--space-xs);font-size:.8rem}.observer-back-btn{margin-top:var(--space-xs)}.start-game-button{width:100%;padding:var(--space-md) var(--space-lg);font-size:1rem;font-weight:600;font-family:var(--font-family);background:var(--accent-gradient);color:var(--text-on-accent);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);border:none}.start-game-button:hover:not(:disabled){background:var(--accent-gradient-hover);transform:translateY(-1px);box-shadow:0 4px 16px #6366f14d}.start-game-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.ai-status-bar{margin-top:var(--space-sm);padding:var(--space-sm);background:var(--bg-input);border-radius:var(--radius-sm);border:1px solid var(--border-default)}.ai-progress-bar{background:var(--bg-secondary);width:100%;height:6px;margin-bottom:var(--space-xs);border-radius:3px;overflow:hidden}.ai-progress-fill{background:var(--accent-gradient);border-radius:3px;height:100%;transition:width .3s}.ai-progress-text{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;display:block;overflow:hidden}.ai-progress-text.ai-error{color:var(--color-danger)}.ai-thinking-indicator{animation:1.5s ease-in-out infinite ai-pulse;display:inline-block}@keyframes ai-pulse{0%,to{opacity:1}50%{opacity:.5}}.player-sidebar-error{color:var(--color-danger);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);background:#f871711a;border:1px solid #f871714d;font-size:.875rem}.player-sidebar-join-tab .join-code-form{margin-bottom:var(--space-md)}.lobby-section-title{margin-bottom:var(--space-sm);font-size:.9rem;font-weight:600}@media (width<=1024px){.page-header-home{padding:var(--space-md) var(--space-md) var(--space-lg)}.page-header-home h1{font-size:2rem}.game-grid{gap:var(--space-md);grid-template-columns:1fr}.game-layout{gap:var(--space-md);flex-direction:column}.game-sidebar{width:100%;min-height:auto}.unified-game-layout{flex-direction:column}.unified-game-board-area{padding:var(--space-md);flex-direction:column}.player-sidebar{border-left:none;border-top:1px solid var(--border-subtle);width:100%;min-width:100%;max-width:100%}.player-sidebar.collapsed{width:100%;min-width:100%;max-width:100%}.player-sidebar.collapsed .player-sidebar-header{display:flex}.page-header{padding:var(--space-md) var(--space-md)}.page-header-actions{gap:var(--space-xs)}.join-code-form{flex-direction:column}.profile-page,.settings-page,.public-profile-page,.friends-page{padding:var(--space-md)}.player-sidebar.collapsed .player-sidebar-title,.player-sidebar.collapsed .sidebar-header-rules-btn,.player-sidebar.collapsed .player-sidebar-tabs,.player-sidebar.collapsed .player-sidebar-new-tab,.player-sidebar.collapsed .player-sidebar-join-tab,.player-sidebar.collapsed .player-sidebar-playing,.player-sidebar.collapsed .sidebar-actions{display:revert}.sidebar-toggle-btn{display:none}.unified-game-board-area{padding:var(--space-sm);min-width:0}.game-board-container{max-width:100%}}@media (width<=480px){.page-header-home{padding:var(--space-md) var(--space-sm) var(--space-md)}.page-header-home h1{font-size:1.75rem}.game-card{padding:var(--space-md)}.player-select-options{flex-direction:column}.game-grid,.my-games-grid{grid-template-columns:1fr}}.gw-card{width:var(--card-w,72px);height:var(--card-h,100px);border-radius:var(--card-radius,var(--radius-sm));justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.gw-card-face{outline-offset:-1px;background:#fff;outline:1px solid #d1d5db}.gw-card-back{outline-offset:-1px;background:linear-gradient(135deg,#4338ca,#6366f1);outline:1px solid #3730a3;position:relative}.gw-card-back .gw-card-img{position:absolute;inset:0}.gw-card-img{object-fit:contain;width:100%;height:100%}.gw-card-text{color:#333;text-align:center;word-break:break-all;padding:4px;font-size:clamp(1rem,3.5vw,1.5rem);font-weight:700}.gw-card-back .gw-card-text{color:#fffc}.gw-card-clickable{cursor:pointer}.gw-card-clickable:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0006}.gw-card-inert{cursor:default}.gw-card-selected{box-shadow:0 0 0 3px var(--accent-gold)}.gw-card.gw-card-templated{width:100%;height:100%;display:block}.game-list-page{max-width:960px;padding:0 var(--space-lg);margin:0 auto}.game-list-search-input{width:100%;margin-bottom:var(--space-lg);padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);font-size:1rem}.game-list-search-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow);outline:none}.game-list-search-input::placeholder{color:var(--text-tertiary,var(--text-secondary))}.page-header-nav{top:var(--space-md);right:var(--space-md);gap:var(--space-sm);display:flex;position:absolute}.header-nav-link{align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:all var(--transition-base);white-space:nowrap;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.header-nav-link-badge{color:#fff;background:var(--accent-primary);border-radius:999px;justify-content:center;align-items:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;font-size:.7rem;font-weight:700;animation:1.5s ease-in-out header-nav-badge-pulse;display:inline-flex}@keyframes header-nav-badge-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.header-nav-link:hover{color:var(--text-on-accent);background:var(--accent-gradient);border-color:#0000;transform:translateY(-1px);box-shadow:0 4px 16px #6366f14d}.user-menu-nav{align-items:center}.user-menu-sign-in-group{align-items:center;gap:var(--space-sm);display:flex}.user-menu-sign-in,.user-menu-dev-login{appearance:none;cursor:pointer;border:1px solid var(--accent-primary);color:var(--accent-primary);background:0 0;font-family:inherit}.user-menu-dev-login{border-color:var(--border-strong);color:var(--text-secondary)}.user-menu-dev-login:hover{color:var(--text-primary);border-color:var(--border-strong);background:var(--bg-hover)}.user-menu-sign-in:hover{color:var(--text-on-accent);background:var(--accent-gradient);border-color:#0000}.user-menu-dropdown{position:relative}.user-menu-trigger{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;background:0 0;font-family:inherit;font-size:.875rem;font-weight:600;display:inline-flex}.user-menu-trigger:hover{color:var(--text-primary);border-color:var(--border-strong)}.user-menu-trigger:focus-visible{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow);outline:none}.user-menu-avatar{width:1.75rem;height:1.75rem;color:var(--text-on-accent);background:var(--accent-gradient);border-radius:999px;justify-content:center;align-items:center;font-size:.85rem;font-weight:600;display:flex}.user-menu-dropdown-content{top:calc(100% + var(--space-xs));min-width:140px;padding:var(--space-xs);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;position:absolute;right:0}.user-menu-dropdown-item{width:100%;padding:var(--space-sm) var(--space-md);text-align:left;color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-base);background:0 0;border:none;font-family:inherit;font-size:.9rem;text-decoration:none;display:block}.user-menu-dropdown-item:hover{background:var(--bg-hover)}.user-menu-dropdown-item:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.user-menu-sign-out{color:var(--color-danger)}.new-game-nav-link{flex-shrink:0}.page-header-top-row{align-items:center;gap:var(--space-sm);flex-shrink:0;display:flex}.page-header-right{align-items:center;gap:var(--space-sm);flex:1;justify-content:flex-end;min-width:0;display:flex}.page-header-spacer{flex:1}.header-desktop-nav{gap:var(--space-sm);align-items:center;display:flex}.hamburger-btn{border:1px solid var(--border-default);border-radius:var(--radius-md);width:44px;height:44px;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0;display:none;position:relative;overflow:visible}.hamburger-btn:hover{background:var(--bg-hover)}.hamburger-btn:focus-visible{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow);outline:none}.hamburger-bar{background:currentColor;border-radius:1px;width:20px;height:2px;display:block}.mobile-menu-panel{background:var(--bg-elevated);border-bottom:1px solid var(--border-subtle);padding:var(--space-md);gap:var(--space-sm);z-index:100;box-shadow:var(--shadow-lg);flex-direction:column;display:none;position:absolute;top:100%;left:0;right:0}.mobile-menu-panel.open{display:flex}.mobile-menu-nav{gap:var(--space-sm);flex-direction:column;display:flex}.mobile-menu-nav .header-nav-link,.mobile-menu-nav .user-menu-trigger{justify-content:flex-start;width:100%}.mobile-menu-separator{border-top:1px solid var(--border-subtle);margin:var(--space-xs) 0}.mobile-menu-nav .user-menu-sign-out{color:var(--color-danger)}@media (width<=1024px){.hamburger-btn{display:flex}.header-desktop-nav{display:none}}.page-header-home{padding:var(--space-lg) var(--space-xl) var(--space-xl);text-align:center;justify-content:center;align-items:center;gap:var(--space-sm);flex-flow:column wrap;position:relative}.page-header-home .page-header-top-row{justify-content:flex-end;width:100%}.page-header-home h1{letter-spacing:-.03em;white-space:normal;text-overflow:clip;font-size:2.5rem;font-weight:800;overflow:visible}.page-header-home p{color:var(--text-secondary);font-size:1.05rem}.profile-page,.settings-page,.public-profile-page{max-width:600px;padding:var(--space-xl);margin:0 auto}.profile-page-message,.settings-page-message{color:var(--text-secondary);margin-top:var(--space-xl)}.profile-form,.settings-form{margin-top:var(--space-xl)}.profile-form label,.settings-form label{margin:var(--space-md) 0 var(--space-xs);font-size:.9rem;font-weight:500;display:block}.profile-form label:first-of-type,.settings-form label:first-of-type{margin-top:0}.profile-form input,.profile-form textarea,.settings-form input{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-md);margin-bottom:var(--space-sm);box-sizing:border-box;font-size:1rem}.profile-form textarea{resize:vertical;min-height:80px}.profile-form input:focus,.profile-form textarea:focus,.settings-form input:focus{border-color:var(--accent-primary);outline:none}.settings-form-readonly{background:var(--bg-card);cursor:not-allowed}.profile-form-hint{color:var(--text-secondary);margin:calc(-1 * var(--space-xs)) 0 var(--space-md);font-size:.85rem}.profile-form-error,.settings-form-error{color:var(--color-danger);padding:var(--space-sm);margin-bottom:var(--space-md);border-radius:var(--radius-md);background:#f871711a}.profile-form-success,.settings-form-success{color:var(--color-success);padding:var(--space-sm);margin-bottom:var(--space-md);border-radius:var(--radius-md);background:#22c55e1a}.profile-form button,.settings-form button{margin-top:var(--space-lg);padding:var(--space-sm) var(--space-xl);color:var(--text-on-accent);background:var(--accent-gradient);border-radius:var(--radius-md);cursor:pointer;border:none;font-family:inherit;font-size:1rem;font-weight:600}.profile-form button:hover:not(:disabled),.settings-form button:hover:not(:disabled){background:var(--accent-gradient-hover)}.profile-form button:disabled,.settings-form button:disabled{opacity:.6;cursor:not-allowed}.email-management-section{background:var(--bg-card);border:1px solid var(--border-default);margin:var(--space-xl) 0 var(--space-lg);border-radius:8px;flex-direction:column;gap:0;padding:0;display:flex;overflow:hidden}.email-management-heading{padding:var(--space-md) var(--space-lg);color:var(--text-primary);border-bottom:1px solid var(--border-default);background:var(--bg-elevated);margin:0;font-size:1rem;font-weight:600}.email-management-message{padding:var(--space-sm) var(--space-lg);margin:0}.email-management-loading{padding:var(--space-md) var(--space-lg);color:var(--text-secondary);margin:0;font-size:.875rem}.email-management-empty{padding:var(--space-md) var(--space-lg);color:var(--text-secondary);margin:0;font-size:.875rem;line-height:1.5}.email-list{margin:0;padding:0;list-style:none}.email-row{align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;display:flex}.email-row:last-child{border-bottom:none}.email-row-address{min-width:0;color:var(--text-primary);overflow-wrap:break-word;word-break:break-all;flex:1;font-size:.875rem}.email-row-badges{gap:var(--space-xs);flex-wrap:wrap;flex-shrink:0;display:flex}.email-badge{border-radius:var(--radius-sm);white-space:nowrap;padding:2px 8px;font-size:.75rem;font-weight:500}.email-badge-primary{background:var(--accent-primary);color:var(--text-on-accent)}.email-badge-verified{color:var(--color-success);background:#22c55e26}.email-badge-unverified{color:var(--color-warning,#eab308);background:#fbbf2426}.email-row-actions{gap:var(--space-sm);flex-wrap:wrap;flex-shrink:0;display:flex}.email-action-btn{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text-primary);cursor:pointer;white-space:nowrap;font-family:inherit;font-size:.8125rem;transition:border-color .15s,color .15s}.email-action-btn:hover:not(:disabled){border-color:var(--accent-primary);color:var(--accent-primary)}.email-action-btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.email-action-btn-remove:hover:not(:disabled){border-color:var(--color-danger);color:var(--color-danger)}.email-action-btn-remove:focus-visible{outline-color:var(--color-danger)}.email-action-btn:disabled{opacity:.6;cursor:not-allowed}.email-add-form{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border-default);margin-top:0}.email-add-row{gap:var(--space-sm);margin-top:var(--space-xs);display:flex}.email-add-row input{flex:1;margin-bottom:0}.email-add-row button{flex-shrink:0;margin-top:0}.magic-link-verify-page{min-height:calc(100dvh - 64px);padding:var(--space-xl);justify-content:center;align-items:center;display:flex}.magic-link-verify-card{background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);width:100%;max-width:420px;padding:var(--space-2xl);text-align:center}.magic-link-verify-brand{margin:0 0 var(--space-lg);color:var(--accent-primary);text-transform:uppercase;letter-spacing:1.5px;font-size:.875rem;font-weight:600}.magic-link-verify-card h1{margin:0 0 var(--space-md);color:var(--text-primary);font-size:1.5rem;font-weight:700}.magic-link-verify-subtitle{margin:0 0 var(--space-xl);color:var(--text-secondary);font-size:.95rem}.magic-link-verify-btn{padding:var(--space-md) var(--space-xl);color:var(--text-on-accent);background:var(--accent-gradient);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base);border:none;font-family:inherit;font-size:1rem;font-weight:600;display:inline-block}.magic-link-verify-btn:hover:not(:disabled){background:var(--accent-gradient-hover)}.magic-link-verify-btn:disabled{opacity:.6;cursor:not-allowed}.magic-link-verify-error{margin-top:var(--space-md)}.magic-link-verify-error p{margin:0 0 var(--space-md);color:var(--color-danger);font-size:.9rem}.magic-link-verify-error button{padding:var(--space-sm) var(--space-lg);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;background:0 0;font-family:inherit;font-size:.9rem;font-weight:500}.magic-link-verify-error button:hover{color:var(--text-primary);border-color:var(--border-strong)}.verify-email-page{padding:var(--space-xl);max-width:480px;margin:0 auto}.verify-email-content{background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-xl)}.verify-email-state{text-align:center;align-items:center;gap:var(--space-md);flex-direction:column;display:flex}.verify-email-icon{border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:24px;font-weight:700;display:flex}.verify-email-icon-success{color:var(--color-success);background:#22c55e26}.verify-email-icon-error{color:var(--color-danger);background:#f8717126;font-size:28px}.verify-email-heading{color:var(--text-primary);margin:0;font-size:1.25rem;font-weight:600}.verify-email-loading{color:var(--text-secondary);margin:0}.verify-email-success-message{color:var(--text-secondary);margin:0;line-height:1.5}.verify-email-error-message{color:var(--color-danger);margin:0;line-height:1.5}.verify-email-btn{padding:var(--space-sm) var(--space-xl);background:var(--accent-gradient);color:var(--text-on-accent);border-radius:var(--radius-md);margin-top:var(--space-sm);font-size:.9375rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-block}.verify-email-btn:hover{background:var(--accent-gradient-hover);text-decoration:none}.public-profile-content{margin-top:var(--space-xl)}.public-profile-header{text-align:center;padding:var(--space-xl) 0}.public-profile-avatar{width:4rem;height:4rem;color:var(--text-on-accent);background:var(--accent-gradient);margin-bottom:var(--space-md);border-radius:999px;justify-content:center;align-items:center;font-size:2rem;font-weight:600;display:inline-flex}.public-profile-username{color:var(--text-secondary);margin-top:var(--space-xs);font-size:1rem}.public-profile-bio{margin-top:var(--space-lg);padding:var(--space-lg);background:var(--bg-card);border-radius:var(--radius-md)}.public-profile-error{color:var(--color-danger);margin-top:var(--space-xl)}.profile-games-section{margin-top:var(--space-xl)}.profile-games-section-title{margin-bottom:var(--space-md);color:var(--text-primary);font-size:1.1rem;font-weight:600}.profile-games-list{gap:var(--space-sm);flex-direction:column;display:flex}.profile-game-card{padding:var(--space-md);background:var(--bg-card);border-radius:var(--radius-md);color:inherit;border:1px solid var(--border-color);text-decoration:none;transition:border-color .15s,box-shadow .15s;display:block}.profile-game-card:hover{border-color:var(--color-accent);box-shadow:0 2px 8px #00000014}.profile-game-card-header{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.profile-game-card-name{margin:0;font-size:.95rem;font-weight:600}.profile-game-card-status{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:500}.profile-game-card-status-active{background:var(--color-success-bg,#22c55e1f);color:var(--color-success,#22c55e)}.profile-game-card-status-waiting{background:var(--color-warning-bg,#eab3081f);color:var(--color-warning,#eab308)}.profile-game-card-meta{gap:var(--space-md);margin-top:var(--space-xs);color:var(--text-secondary);font-size:.8rem;display:flex}.profile-game-card-action{margin-top:var(--space-sm);color:var(--color-accent);font-size:.8rem;font-weight:600;display:inline-block}.profile-games-empty,.profile-games-loading{margin-top:var(--space-xl);color:var(--text-secondary);text-align:center}.profile-games-load-more{margin-top:var(--space-lg);text-align:center}.profile-games-load-more-btn{padding:var(--space-sm) var(--space-xl);color:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-md);cursor:pointer;background:0 0;font-size:.85rem;font-weight:500;transition:background .15s,color .15s}.profile-games-load-more-btn:hover:not(:disabled){background:var(--color-accent);color:var(--text-on-accent)}.profile-games-load-more-btn:disabled{opacity:.6;cursor:default}.friends-page{max-width:640px;padding:var(--space-xl);margin:0 auto}.friends-page-message{color:var(--text-secondary);margin-top:var(--space-xl)}.friends-tabs{gap:var(--space-xs);margin-bottom:var(--space-xl);border-bottom:1px solid var(--border-subtle);display:flex}.friends-tab{padding:var(--space-sm) var(--space-md);color:var(--text-secondary);cursor:pointer;align-items:center;gap:var(--space-xs);transition:all var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;font-family:inherit;font-size:.95rem;font-weight:500;display:flex}.friends-tab:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.friends-tab:active{transform:scale(.98)}.friends-tab:hover{color:var(--text-primary)}.friends-tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.friends-tab-badge{background:var(--accent-primary);color:var(--text-on-accent);border-radius:999px;padding:2px 6px;font-size:.75rem}.friends-content{min-height:200px}.friends-error{color:var(--color-danger);margin-bottom:var(--space-md)}.friends-empty{color:var(--text-secondary);padding:var(--space-xl);text-align:center}.friends-list{gap:var(--space-sm);flex-direction:column;display:flex}.friends-section{margin-bottom:var(--space-xl)}.friends-section h3{color:var(--text-secondary);margin-bottom:var(--space-md);font-size:.9rem;font-weight:600}.friend-card{padding:var(--space-md);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:var(--space-md);transition:all var(--transition-base);display:flex}.friend-card-link,.friend-card-link-plain{align-items:center;gap:var(--space-md);min-width:0;color:inherit;cursor:pointer;transition:color var(--transition-fast);flex:1;text-decoration:none;display:flex}.friend-card-link-plain{cursor:default}.friend-card-link:hover{color:var(--accent-primary)}.friend-card-link:focus-visible,.friend-card-link-plain:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.friend-card-avatar{background:var(--accent-gradient);width:2.5rem;height:2.5rem;color:var(--text-on-accent);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.friend-card-info{flex-direction:column;min-width:0;display:flex}.friend-card-name{font-weight:500}.friend-card-username{color:var(--text-secondary);font-size:.85rem}.friend-card-actions{flex-shrink:0}.friend-card-actions-row{gap:var(--space-xs);display:flex}.friend-card-btn{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--border-default);color:var(--text-secondary);transition:all var(--transition-base);background:0 0;font-family:inherit;font-size:.85rem;font-weight:500}.friend-card-btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.friend-card-btn:active:not(:disabled){transform:scale(.97)}.friend-card-btn:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary)}.friend-card-btn-add,.friend-card-btn-accept{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-on-accent)}.friend-card-btn-add:hover:not(:disabled),.friend-card-btn-accept:hover:not(:disabled){background:var(--accent-primary-hover);border-color:var(--accent-primary-hover)}.friend-card-btn-add:focus-visible,.friend-card-btn-accept:focus-visible{outline-color:var(--accent-primary)}.friend-card-btn-remove,.friend-card-btn-reject{color:var(--color-danger)}.friend-card-btn-remove:hover:not(:disabled),.friend-card-btn-reject:hover:not(:disabled){border-color:var(--color-danger);background:var(--color-danger-bg)}.friend-card-btn:disabled{opacity:.6;cursor:not-allowed}.friend-card-status{color:var(--text-tertiary);font-size:.85rem}.user-search-input{margin-bottom:var(--space-xl)}.user-search-field{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);font-size:1rem}.user-search-field:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow);outline:none}.user-search-loading,.user-search-error,.user-search-empty{margin-top:var(--space-sm);font-size:.9rem}.user-search-error{color:var(--color-danger)}.user-search-empty{color:var(--text-secondary)}.user-search-results{gap:var(--space-sm);margin-top:var(--space-md);flex-direction:column;display:flex}.friends-find-email{margin-bottom:var(--space-xl)}.friends-find-email h3,.friends-invite-section h3{color:var(--text-secondary);margin-bottom:var(--space-md);font-size:.9rem;font-weight:600}.email-search-row{gap:var(--space-sm);margin-bottom:var(--space-md);display:flex}.email-search-row input{padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);flex:1;font-size:1rem}.email-search-row input:focus{border-color:var(--accent-primary);outline:none}.email-search-row input:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.email-search-row button{padding:var(--space-sm) var(--space-lg);background:var(--accent-primary);color:var(--text-on-accent);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);border:none;font-family:inherit;font-weight:500}.email-search-row button:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.email-search-row button:active:not(:disabled){transform:scale(.97)}.email-search-row button:hover:not(:disabled){background:var(--accent-primary-hover)}.email-search-row button:disabled{opacity:.6;cursor:not-allowed}.friends-invite-section{margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:1px solid var(--border-subtle)}.friends-invite-hint{color:var(--text-secondary);margin-bottom:var(--space-md);font-size:.9rem}.email-invite-form{margin-top:var(--space-md)}.email-invite-form label{margin-bottom:var(--space-xs);font-size:.9rem;font-weight:500;display:block}.email-invite-row{gap:var(--space-sm);display:flex}.email-invite-row input:focus{border-color:var(--accent-primary);outline:none}.email-invite-row input:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.email-invite-row input{padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);flex:1;font-size:1rem}.email-invite-row button{padding:var(--space-sm) var(--space-lg);background:var(--accent-primary);color:var(--text-on-accent);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);border:none;font-family:inherit;font-weight:500}.email-invite-row button:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.email-invite-row button:active:not(:disabled){transform:scale(.97)}.email-invite-row button:hover:not(:disabled){background:var(--accent-primary-hover)}.email-invite-row button:disabled{opacity:.6;cursor:not-allowed}.email-invite-message{margin-top:var(--space-sm);font-size:.9rem}.email-invite-message-success{color:var(--color-success)}.email-invite-message-error{color:var(--color-danger)}.friends-invitations-list{gap:var(--space-sm);flex-direction:column;display:flex}.friend-invitation-item{padding:var(--space-md);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);justify-content:space-between;align-items:center;display:flex}.friend-invitation-email{font-weight:500}.friend-invitation-right{align-items:center;gap:var(--space-md);display:flex}.friend-invitation-status{font-size:.85rem}.friend-invitation-status-pending{color:var(--color-warning)}.friend-invitation-status-registered{color:var(--color-success)}.friend-invitation-actions{gap:var(--space-xs);display:flex}.friend-invitation-btn{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--border-default);color:var(--text-secondary);transition:all var(--transition-base);background:0 0;font-family:inherit;font-size:.85rem;font-weight:500}.friend-invitation-btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.friend-invitation-btn:active:not(:disabled){transform:scale(.97)}.friend-invitation-btn:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary)}.friend-invitation-btn:disabled{opacity:.6;cursor:not-allowed}.friend-invitation-btn-resend{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-on-accent)}.friend-invitation-btn-resend:hover:not(:disabled){background:var(--accent-primary-hover);border-color:var(--accent-primary-hover)}.friend-invitation-btn-delete{color:var(--color-danger)}.friend-invitation-btn-delete:hover:not(:disabled){border-color:var(--color-danger);background:var(--color-danger-bg)}.rematch-request-item{padding:var(--space-md);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.rematch-request-info{gap:var(--space-2xs);flex-direction:column;display:flex}.rematch-request-game{font-size:1rem;font-weight:600}.rematch-request-from{color:var(--text-secondary);font-size:.85rem}.game-invite-modal .modal-content{max-width:480px}.game-invite-modal-content{padding:var(--space-xl)}.game-invite-modal-title{margin-bottom:var(--space-xs);font-size:1.25rem;font-weight:700}.game-invite-modal-subtitle{color:var(--text-secondary);margin-bottom:var(--space-xl);font-size:.9rem}.game-invite-error{color:var(--color-danger);margin-bottom:var(--space-md);font-size:.9rem}.game-invite-slot{margin-bottom:var(--space-xl);padding:var(--space-md);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.game-invite-slot-label{margin-bottom:var(--space-md);font-size:.9rem;font-weight:600}.game-invite-slot-sent{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.game-invite-slot-status{color:var(--color-success);font-size:.85rem}.game-invite-friend-picker{gap:var(--space-sm);margin-bottom:var(--space-md);flex-direction:column;display:flex}.game-invite-friend-row{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.game-invite-friend-row .friend-card{flex:1}.game-invite-no-friends{color:var(--text-secondary);padding:var(--space-md);font-size:.9rem}.game-invite-email-section{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-subtle)}.game-invite-email-label{color:var(--text-secondary);margin:0 0 var(--space-xs);font-size:.85rem}.game-invite-email-row{gap:var(--space-sm);align-items:center;display:flex}.game-invite-email-input{padding:var(--space-sm) var(--space-md);background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);box-sizing:border-box;flex:1;font-family:inherit;font-size:.9rem}.game-invite-email-input::placeholder{color:var(--text-muted)}.game-invite-email-input:focus{border-color:var(--accent-primary);outline:none}.game-invite-email-input:disabled{opacity:.7;cursor:not-allowed}.game-invite-email-btn{padding:var(--space-sm) var(--space-md);background:var(--accent-primary);color:var(--text-on-accent);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);border:none;font-family:inherit;font-size:.9rem;font-weight:600}.game-invite-email-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.game-invite-email-btn:disabled{opacity:.6;cursor:not-allowed}.game-invite-email-sent{color:var(--text-primary);font-size:.95rem}.game-invite-slot-share{margin-top:var(--space-sm)}.game-invite-modal-actions{margin-top:var(--space-xl)}.game-invite-continue-btn{width:100%;padding:var(--space-md) var(--space-xl);background:var(--accent-gradient);color:var(--text-on-accent);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);border:none;font-family:inherit;font-size:1rem;font-weight:600}.game-invite-continue-btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.game-invite-continue-btn:active{transform:scale(.98)}.game-invite-continue-btn:hover{background:var(--accent-gradient-hover)}.invite-welcome-overlay.modal-content{max-width:400px}.invite-welcome-content{padding:var(--space-xl);text-align:center}.invite-welcome-title{margin:0 0 var(--space-md);color:var(--text-primary);font-size:1.35rem;font-weight:700}.invite-welcome-message{color:var(--text-secondary);margin:0 0 var(--space-sm);font-size:1rem}.invite-welcome-subtext{color:var(--text-tertiary);margin:0 0 var(--space-xl);font-size:.9rem}.invite-welcome-actions{gap:var(--space-sm);flex-direction:column;display:flex}.invite-welcome-btn{padding:var(--space-md) var(--space-xl);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);font-family:inherit;font-size:1rem;font-weight:600}.invite-welcome-btn-primary{background:var(--accent-gradient);color:var(--text-on-accent);border:none}.invite-welcome-btn-primary:hover{background:var(--accent-gradient-hover)}.invite-welcome-btn-primary:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.invite-welcome-btn-secondary{color:var(--text-secondary);border:1px solid var(--border-default);background:0 0}.invite-welcome-btn-secondary:hover{background:var(--bg-hover);color:var(--text-primary)}.invite-welcome-btn-secondary:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.player-profile-link{color:var(--accent-primary);text-decoration:none}.player-profile-link:hover{text-decoration:underline}.player-profile-link:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px;border-radius:var(--radius-sm)}.editor-link{margin-top:var(--space-md);padding:var(--space-sm) var(--space-lg);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:all var(--transition-base);align-items:center;gap:6px;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.editor-link:hover{color:var(--text-on-accent);background:var(--accent-gradient);border-color:#0000;transform:translateY(-1px);box-shadow:0 4px 16px #6366f14d}.game-grid{gap:var(--space-lg);padding:var(--space-md) 0 var(--space-3xl);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.no-results-prompt{text-align:center;padding:var(--space-3xl) var(--space-xl)}.no-results-message{color:var(--text-secondary);margin-bottom:var(--space-xl);font-size:1.125rem}.no-results-actions{gap:var(--space-md);flex-wrap:wrap;justify-content:center;display:flex}.no-results-actions .btn-primary,.no-results-actions .btn-secondary{text-decoration:none}.feature-requests-page{max-width:720px;padding:0 var(--space-lg) var(--space-3xl);margin:0 auto}.feature-requests-tabs{gap:var(--space-xs);margin-bottom:var(--space-xl);border-bottom:1px solid var(--border-subtle);display:flex}.feature-requests-tab{padding:var(--space-sm) var(--space-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;margin-bottom:-1px;font-family:inherit;font-size:.95rem;font-weight:500;display:flex}.feature-requests-tab:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.feature-requests-tab:active{transform:scale(.98)}.feature-requests-tab:hover{color:var(--text-primary)}.feature-requests-tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.feature-requests-actions{margin-bottom:var(--space-xl);justify-content:flex-end;display:flex}.feature-requests-loading,.feature-requests-empty{color:var(--text-secondary);text-align:center;padding:var(--space-3xl)}.feature-requests-list{gap:var(--space-md);flex-direction:column;display:flex}.feature-request-card{justify-content:space-between;align-items:flex-start;gap:var(--space-lg);padding:var(--space-lg);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);display:flex}.feature-request-main{flex:1;min-width:0}.feature-request-card h3{margin-bottom:var(--space-xs);font-size:1.1rem;font-weight:600}.feature-request-type-badge{text-transform:uppercase;border-radius:var(--radius-sm);margin-bottom:var(--space-sm);padding:2px 6px;font-size:.7rem;font-weight:600;display:inline-block}.feature-request-type-badge.game{color:var(--accent-primary);background:#6366f126}.feature-request-type-badge.feature{color:var(--accent-secondary,#a855f7);background:#a855f726}.feature-request-description{color:var(--text-secondary);margin-bottom:var(--space-sm);font-size:.9rem;line-height:1.5}.feature-request-meta{color:var(--text-tertiary,var(--text-secondary));font-size:.8rem}.feature-request-fulfilled-note{margin-top:var(--space-xs);color:var(--color-success,#22c55e);display:block}.feature-request-vote-section{flex-shrink:0}.feature-request-vote-btn{padding:var(--space-xs) var(--space-md);background:var(--surface-subtle);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-family:inherit;font-size:.9rem;font-weight:600}.feature-request-vote-btn:hover:not(:disabled){border-color:var(--accent-primary);color:var(--accent-primary)}.feature-request-vote-btn.voted{border-color:var(--accent-primary);color:var(--accent-primary);background:#6366f126}.feature-request-vote-count{color:var(--text-secondary);font-size:.9rem;font-weight:600}.feature-requests-load-more{margin-top:var(--space-xl);justify-content:center;display:flex}.game-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-xl);transition:all var(--transition-slow);flex-direction:column;display:flex;position:relative;overflow:hidden}.game-card:before{content:"";border-radius:var(--radius-lg);-webkit-mask-composite:xor;pointer-events:none;transition:background var(--transition-slow);background:linear-gradient(135deg,#6366f100,#6366f100);padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.game-card:hover{border-color:var(--border-accent);box-shadow:var(--shadow-lg), var(--shadow-glow);transform:translateY(-4px)}.game-card:hover:before{background:linear-gradient(135deg,#6366f14d,#a855f74d)}.game-card-link{color:inherit;flex-direction:column;flex:1;text-decoration:none;display:flex}.game-card h2{text-transform:capitalize;margin-bottom:var(--space-sm);letter-spacing:-.01em;font-size:1.25rem;font-weight:700}.game-card p{color:var(--text-secondary);margin-bottom:var(--space-md);flex:1;font-size:.875rem;line-height:1.5}.player-count{color:var(--accent-primary-hover);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);background:#6366f11f;align-items:center;gap:4px;width:fit-content;font-size:.75rem;font-weight:600;display:inline-flex}.player-count:before{content:"👥";font-size:.7rem}.play-count{color:var(--text-secondary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);width:fit-content;margin-top:var(--space-xs);background:#6366f114;align-items:center;gap:4px;font-size:.75rem;font-weight:600;display:inline-flex}.play-count:before{content:"🎮";font-size:.7rem}.multiplayer-button{margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);font-size:.8rem;font-weight:600;font-family:var(--font-family);color:var(--text-on-accent);background:var(--accent-gradient);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base);border:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.multiplayer-button:hover{background:var(--accent-gradient-hover);color:#fff;transform:translateY(-1px);box-shadow:0 4px 16px #6366f14d}.open-games-badge{margin-top:var(--space-sm);padding:var(--space-xs) var(--space-md);font-size:.8rem;font-weight:500;font-family:var(--font-family);color:var(--accent-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base);background:#22d3ee1a;border:1px solid #22d3ee4d;align-items:center;text-decoration:none;display:inline-flex}.open-games-badge:hover{border-color:var(--accent-secondary);background:#22d3ee33}.my-games-page{max-width:960px;padding:0 var(--space-lg);min-height:100dvh;margin:0 auto}.my-games-tabs{gap:var(--space-xs);margin-top:var(--space-md);border-bottom:1px solid var(--border-subtle);display:flex}.my-games-tab{padding:var(--space-sm) var(--space-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;font-family:inherit;font-size:.95rem;font-weight:500}.my-games-tab:hover{color:var(--text-primary)}.my-games-tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.my-games-tab:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.my-games-content{padding:var(--space-xl) 0 var(--space-3xl)}.my-games-section{margin-bottom:var(--space-2xl)}.my-games-section h2{margin-bottom:var(--space-md);color:var(--text-secondary);font-size:1.25rem;font-weight:700}.my-games-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.my-game-card{gap:var(--space-sm);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-lg);color:inherit;transition:all var(--transition-base);flex-direction:column;text-decoration:none;display:flex}.my-game-card:hover{border-color:var(--border-accent);box-shadow:var(--shadow-md), var(--shadow-glow);transform:translateY(-2px)}.my-game-header{justify-content:space-between;align-items:flex-start;gap:var(--space-sm);display:flex}.my-game-header h3{flex:1;font-size:1.1rem;font-weight:700}.my-game-status{text-transform:uppercase;letter-spacing:.05em;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);flex-shrink:0;font-size:.7rem;font-weight:600}.my-game-status-waiting{color:var(--accent-gold);background:#fbbf2426}.my-game-status-active{color:var(--color-success);background:#34d39926}.my-game-status-completed{color:var(--color-info);background:#60a5fa26}.my-game-status-abandoned{color:var(--color-danger);background:#f871711a}.my-game-your-turn{color:var(--accent-primary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);background:#7c6aef1f;font-size:.75rem;font-weight:600;display:inline-block}.my-game-card-your-turn{border-left:3px solid var(--accent-primary)}.my-game-meta{gap:var(--space-md);color:var(--text-tertiary);flex-wrap:wrap;font-size:.8rem;display:flex}.my-game-result{color:var(--text-secondary);margin-top:var(--space-xs);font-size:.875rem;font-style:italic}.my-games-search{margin-bottom:var(--space-xl)}.my-games-search-wrapper{align-items:center;display:flex;position:relative}.my-games-search-icon{left:var(--space-md);width:1rem;height:1rem;color:var(--text-tertiary);pointer-events:none;position:absolute}.my-games-search-input{width:100%;padding:var(--space-sm) var(--space-md) var(--space-sm) 2.5rem;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);box-sizing:border-box;font-family:inherit;font-size:.95rem}.my-games-search-input::placeholder{color:var(--text-muted)}.my-games-search-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow);outline:none}.my-games-search-clear{right:var(--space-sm);width:1.5rem;height:1.5rem;color:var(--text-tertiary);cursor:pointer;transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:1.1rem;line-height:1;display:flex;position:absolute}.my-games-search-clear:hover{color:var(--text-primary);background:var(--bg-hover)}.my-games-section-count{min-width:1.4rem;height:1.4rem;margin-left:var(--space-sm);color:var(--text-on-accent);background:var(--accent-primary);vertical-align:middle;border-radius:999px;justify-content:center;align-items:center;padding:0 .4rem;font-size:.75rem;font-weight:700;display:inline-flex}.my-games-section-recent{padding-bottom:var(--space-xl);border-bottom:1px solid var(--border-subtle)}.my-games-no-results{padding:var(--space-2xl);text-align:center;color:var(--text-tertiary)}.my-games-load-more{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-xl);color:var(--text-tertiary);font-size:.9rem;display:flex}.my-games-load-more-spinner{border:2px solid var(--border-default);border-top-color:var(--accent-primary);border-radius:50%;width:1rem;height:1rem;animation:.6s linear infinite my-games-spinner;display:inline-block}@keyframes my-games-spinner{to{transform:rotate(360deg)}}.my-games-loading,.my-games-empty{padding:var(--space-3xl);text-align:center;color:var(--text-tertiary)}.my-games-empty-link{margin-top:var(--space-md);color:var(--accent-primary);font-weight:600;text-decoration:none;display:inline-block}.my-games-empty-link:hover{color:var(--accent-primary-hover)}.my-games-error{padding:var(--space-xl);text-align:center;color:var(--color-danger)}.my-games-error a{margin-top:var(--space-md);color:var(--accent-primary);display:inline-block}.game-play-page{flex-direction:column;align-items:center;min-height:100dvh;display:flex}.game-layout{align-items:center;gap:var(--space-xl);padding:var(--space-lg);display:flex}.game-sidebar{width:130px;min-height:200px}.game-board-container{flex:1;justify-content:center;width:100%;min-width:0;display:flex;container-type:inline-size}.game-rules-page{max-width:680px;padding:var(--space-md);margin:0 auto}.game-rules-page .game-rules-content{padding:var(--space-md) 0}.game-rules-content h1{margin-bottom:var(--space-md);letter-spacing:-.01em;font-size:1.5rem;font-weight:800}.game-rules-content h2{margin-top:var(--space-xl);margin-bottom:var(--space-sm);color:var(--accent-primary-hover);font-size:1.2rem;font-weight:700}.game-rules-content h3{margin-top:var(--space-md);margin-bottom:var(--space-xs);color:var(--text-secondary);font-size:1rem;font-weight:600}.game-rules-content p{margin-bottom:var(--space-md);color:var(--text-secondary);line-height:1.7}.game-rules-content ul,.game-rules-content ol{margin-bottom:var(--space-md);padding-left:var(--space-xl)}.game-rules-content li{color:var(--text-secondary);margin-bottom:var(--space-xs);line-height:1.7}.game-rules-content strong{color:var(--text-primary);font-weight:600}.game-rules-content hr{border:none;border-top:1px solid var(--border-subtle);margin:var(--space-lg) 0}.game-rules-content table{border-collapse:collapse;width:100%;margin-bottom:var(--space-md);font-size:.95rem}.game-rules-content th,.game-rules-content td{padding:var(--space-sm) var(--space-md);border:1px solid var(--border-subtle);color:var(--text-secondary);line-height:1.5}.game-rules-content th{color:var(--text-primary);background:#ffffff0a;font-weight:600}.game-rules-content tbody tr:hover{background:#ffffff05}.legal-page{max-width:720px;padding:var(--space-xl);color:var(--text-primary);margin:0 auto;line-height:1.7}.legal-page h2{margin:var(--space-xl) 0 var(--space-sm);color:var(--text-primary);font-size:1.25rem;font-weight:700}.legal-page h3{margin:var(--space-md) 0 var(--space-xs);color:var(--text-primary);font-size:1.05rem;font-weight:600}.legal-page p{margin:var(--space-sm) 0;color:var(--text-secondary)}.legal-page ul{margin:var(--space-sm) 0;padding-left:var(--space-lg);color:var(--text-secondary)}.legal-page li{margin:var(--space-xs) 0}.legal-page a{color:var(--accent-primary);text-decoration:none}.legal-page a:hover{text-decoration:underline}.legal-effective-date{color:var(--text-muted);font-size:.875rem;font-style:italic}.site-footer{max-width:960px;margin:var(--space-xxl) auto 0;padding:var(--space-lg);border-top:1px solid var(--border-default);justify-content:center;gap:var(--space-lg);font-size:.8125rem;display:flex}.site-footer a{color:var(--text-muted);transition:color var(--transition-fast);text-decoration:none}.site-footer a:hover{color:var(--text-secondary)}.settings-tabs{gap:var(--space-xs);margin-bottom:var(--space-xl);border-bottom:1px solid var(--border-default);display:flex}.settings-tab{padding:var(--space-sm) var(--space-md);color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;font-size:.95rem;font-weight:500}.settings-tab:hover{color:var(--text-primary)}.settings-tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.security-settings-section{margin-top:0}.security-settings-heading{color:var(--text-primary);margin:0 0 var(--space-md);font-size:1.1rem;font-weight:600}.security-sessions-loading,.security-sessions-empty{color:var(--text-secondary);margin:0;font-size:.95rem}.security-sessions-error{color:var(--color-danger);margin:0;font-size:.95rem}.security-sessions-list{margin:0;padding:0;list-style:none}.security-sessions-item{padding:var(--space-md);margin-bottom:var(--space-sm);background:var(--surface-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.security-sessions-item-main{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs);display:flex}.security-sessions-location{color:var(--text-primary);font-weight:500}.security-sessions-current-badge{background:var(--accent-primary);color:var(--text-on-accent);border-radius:var(--radius-sm);padding:.15rem .5rem;font-size:.75rem;font-weight:600}.security-sessions-ip,.security-sessions-time{color:var(--text-secondary);margin:0 0 var(--space-xs);font-size:.85rem}.security-sessions-revoke-btn{margin-top:var(--space-sm);padding:var(--space-xs) var(--space-md);color:var(--color-danger);border:1px solid var(--color-danger);border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--transition-fast);background:0 0;font-size:.85rem;font-weight:500}.security-sessions-revoke-btn:hover:not(:disabled){opacity:.85}.security-sessions-revoke-btn:disabled{opacity:.5;cursor:not-allowed}.security-sessions-revoke-all-btn{margin-top:var(--space-lg);padding:var(--space-sm) var(--space-lg);color:var(--text-on-accent);background:var(--accent-gradient);border-radius:var(--radius-md);cursor:pointer;transition:opacity var(--transition-fast);border:none;font-size:.9rem;font-weight:600}.security-sessions-revoke-all-btn:hover:not(:disabled){opacity:.9}.security-sessions-revoke-all-btn:disabled{opacity:.5;cursor:not-allowed}.security-settings-description{color:var(--text-secondary);margin:0 0 var(--space-md);font-size:.9rem}.security-sessions-section{margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:1px solid var(--border-subtle)}.passkey-unsupported,.passkey-loading,.passkey-empty{color:var(--text-secondary);margin:0;font-size:.95rem}.passkey-error{color:var(--color-danger);margin:0 0 var(--space-md);font-size:.95rem}.passkey-list{margin:0;padding:0;list-style:none}.passkey-item{padding:var(--space-md);margin-bottom:var(--space-sm);background:var(--surface-subtle);border-radius:var(--radius-md)}.passkey-invalid-banner{padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-sm);background:var(--color-danger-bg);border:1px solid var(--color-danger);border-radius:var(--radius-sm);color:var(--color-danger);font-size:13px;line-height:1.4}.passkey-item-main{align-items:center;gap:var(--space-sm);display:flex}.passkey-name{color:var(--text-primary);font-weight:500}.passkey-name-invalid{opacity:.5;text-decoration:line-through}.passkey-rename-btn{border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:0 0;padding:.15rem .5rem;font-family:inherit;font-size:.8rem}.passkey-rename-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}.passkey-edit-row{align-items:center;gap:var(--space-xs);flex:1;display:flex}.passkey-edit-input{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-primary);flex:1;font-family:inherit;font-size:.9rem}.passkey-edit-input:focus{border-color:var(--accent-primary);outline:none}.passkey-save-btn{background:var(--accent-gradient);border-radius:var(--radius-sm);color:var(--text-on-accent);cursor:pointer;border:none;padding:.15rem .5rem;font-family:inherit;font-size:.8rem;font-weight:600}.passkey-cancel-btn{border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:0 0;padding:.15rem .5rem;font-family:inherit;font-size:.8rem}.passkey-cancel-btn:hover{border-color:var(--border-strong)}.passkey-item-meta{gap:var(--space-sm);margin-top:var(--space-xs);display:flex}.passkey-device-type{color:var(--text-secondary);font-size:.8rem}.passkey-backed-up{color:var(--color-success);border-radius:var(--radius-sm);background:#22c55e26;padding:.1rem .4rem;font-size:.75rem;font-weight:600}.passkey-created,.passkey-last-used{color:var(--text-secondary);margin:0 0 var(--space-xs);font-size:.85rem}.passkey-delete-btn{margin-top:var(--space-sm);padding:var(--space-xs) var(--space-md);color:var(--color-danger);border:1px solid var(--color-danger);border-radius:var(--radius-sm);cursor:pointer;background:0 0;font-family:inherit;font-size:.85rem;font-weight:500}.passkey-delete-btn:hover:not(:disabled){opacity:.85}.passkey-delete-btn:disabled{opacity:.5;cursor:not-allowed}.passkey-register-section{margin-top:var(--space-lg)}.passkey-add-btn{padding:var(--space-sm) var(--space-lg);color:var(--text-on-accent);background:var(--accent-gradient);border-radius:var(--radius-md);cursor:pointer;transition:opacity var(--transition-fast);border:none;font-family:inherit;font-size:.9rem;font-weight:600}.passkey-add-btn:hover:not(:disabled){opacity:.9}.passkey-add-btn:disabled{opacity:.5;cursor:not-allowed}.passkey-name-input-row{align-items:center;gap:var(--space-sm);display:flex}.passkey-name-input{padding:var(--space-sm) var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-primary);flex:1;font-family:inherit;font-size:.9rem}.passkey-name-input:focus{border-color:var(--accent-primary);outline:none}.passkey-register-btn{padding:var(--space-sm) var(--space-lg);color:var(--text-on-accent);background:var(--accent-gradient);border-radius:var(--radius-md);cursor:pointer;border:none;font-family:inherit;font-size:.9rem;font-weight:600}.passkey-register-btn:disabled{opacity:.5;cursor:not-allowed}.passkey-prompt-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.passkey-prompt-modal{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-xl);text-align:center;width:90%;max-width:420px}.passkey-prompt-title{color:var(--text-primary);margin:0 0 var(--space-sm);font-size:1.2rem;font-weight:600}.passkey-prompt-description{color:var(--text-secondary);margin:0 0 var(--space-lg);font-size:.9rem;line-height:1.5}.passkey-prompt-actions{gap:var(--space-sm);flex-direction:column;display:flex}.passkey-prompt-setup-btn{padding:var(--space-sm) var(--space-lg);color:var(--text-on-accent);background:var(--accent-gradient);border-radius:var(--radius-md);cursor:pointer;transition:opacity var(--transition-fast);border:none;font-family:inherit;font-size:.95rem;font-weight:600}.passkey-prompt-setup-btn:hover:not(:disabled){background:var(--accent-gradient-hover)}.passkey-prompt-setup-btn:disabled{opacity:.5;cursor:not-allowed}.passkey-prompt-skip-btn{padding:var(--space-sm) var(--space-lg);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:.9rem;font-weight:500}.passkey-prompt-skip-btn:hover{color:var(--text-primary)}.pat-loading,.pat-empty{color:var(--text-secondary);margin:0;font-size:.95rem}.pat-error{color:var(--color-danger);margin:0 0 var(--space-md);font-size:.95rem}.pat-management{margin-bottom:var(--space-lg)}.pat-new-token-banner{padding:var(--space-md);margin-bottom:var(--space-md);background:var(--surface-subtle);border:1px solid var(--border-default);border-radius:var(--radius-md)}.pat-new-token-warning{color:var(--color-warning,#b8860b);margin:0 0 var(--space-sm);font-size:.9rem;font-weight:600}.pat-new-token-row{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.pat-new-token-value{padding:var(--space-xs) var(--space-sm);background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:.8rem;font-family:var(--font-mono);flex:1;overflow-x:auto}.pat-copy-btn{padding:var(--space-xs) var(--space-md);color:var(--text-on-accent);background:var(--accent-gradient);border-radius:var(--radius-sm);cursor:pointer;border:none;flex-shrink:0;font-size:.85rem;font-weight:500}.pat-copy-btn:hover{opacity:.9}.pat-dismiss-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem}.pat-dismiss-btn:hover{color:var(--text-primary)}.pat-list{margin:0;padding:0;list-style:none}.pat-item{padding:var(--space-md);margin-bottom:var(--space-sm);background:var(--surface-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.pat-item-main{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs);display:flex}.pat-name{color:var(--text-primary);font-weight:500}.pat-scope-badge{border-radius:var(--radius-sm);padding:.1rem .4rem;font-size:.7rem;font-weight:600}.pat-scope-read{background:var(--surface-subtle);color:var(--text-secondary);border:1px solid var(--border-default)}.pat-scope-publish{color:var(--accent-primary,#3b82f6);background:#3b82f633}.pat-scope-full{color:var(--color-success,#22c55e);background:#22c55e33}.pat-prefix{color:var(--text-secondary);margin:0 0 var(--space-xs);font-size:.85rem;font-family:var(--font-mono)}.pat-meta{color:var(--text-secondary);margin:0 0 var(--space-sm);font-size:.85rem}.pat-expired{color:var(--color-danger)}.pat-revoke-btn{margin-top:var(--space-sm);padding:var(--space-xs) var(--space-md);color:var(--color-danger);border:1px solid var(--color-danger);border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--transition-fast);background:0 0;font-size:.85rem;font-weight:500}.pat-revoke-btn:hover:not(:disabled){opacity:.85}.pat-revoke-btn:disabled{opacity:.5;cursor:not-allowed}.pat-revoke-confirm{margin-top:var(--space-sm);color:var(--text-secondary);font-size:.9rem}.pat-revoke-actions{gap:var(--space-sm);margin-top:var(--space-xs);display:flex}.pat-revoke-confirm-btn{padding:var(--space-xs) var(--space-md);color:var(--text-on-accent);background:var(--color-danger);border-radius:var(--radius-sm);cursor:pointer;border:none;font-size:.85rem;font-weight:500}.pat-revoke-confirm-btn:hover:not(:disabled){opacity:.9}.pat-revoke-confirm-btn:disabled{opacity:.5;cursor:not-allowed}.pat-revoke-cancel-btn{padding:var(--space-xs) var(--space-md);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;background:0 0;font-size:.85rem;font-weight:500}.pat-revoke-cancel-btn:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary)}.pat-create-section{margin-top:var(--space-lg)}.pat-create-form{gap:var(--space-sm);flex-wrap:wrap;align-items:flex-end;display:flex}.pat-create-input{min-width:160px;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-primary);flex:1;font-size:.9rem}.pat-create-input:focus{border-color:var(--accent-primary);outline:none}.pat-create-select{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-primary);font-size:.9rem}.pat-create-actions{gap:var(--space-sm);display:flex}.pat-create-btn{padding:var(--space-xs) var(--space-md);color:var(--text-on-accent);background:var(--accent-gradient);border-radius:var(--radius-sm);cursor:pointer;border:none;font-size:.9rem;font-weight:600}.pat-create-btn:hover:not(:disabled){opacity:.9}.pat-create-btn:disabled{opacity:.5;cursor:not-allowed}.pat-cancel-btn{padding:var(--space-xs) var(--space-md);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;background:0 0;font-size:.9rem;font-weight:500}.pat-cancel-btn:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary)}.pat-add-btn{padding:var(--space-sm) var(--space-lg);color:var(--text-on-accent);background:var(--accent-gradient);border-radius:var(--radius-md);cursor:pointer;transition:opacity var(--transition-fast);border:none;font-size:.9rem;font-weight:600}.pat-add-btn:hover:not(:disabled){opacity:.9}.pat-add-btn:disabled{opacity:.5;cursor:not-allowed}.settings-data-section{margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:1px solid var(--border-subtle)}.settings-data-heading{color:var(--text-primary);margin:0 0 var(--space-sm);font-size:1.1rem;font-weight:600}.settings-data-description{color:var(--text-secondary);margin:0 0 var(--space-md);font-size:.9rem}.settings-data-export-btn{padding:var(--space-sm) var(--space-lg);color:var(--text-on-accent);background:var(--accent-gradient);border-radius:var(--radius-md);cursor:pointer;transition:opacity var(--transition-fast);border:none;font-size:.9rem;font-weight:600}.settings-data-export-btn:hover:not(:disabled){opacity:.9}.settings-data-export-btn:disabled{opacity:.5;cursor:not-allowed}.settings-danger-section{margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:1px solid #f8717133}.settings-danger-heading{color:var(--color-danger);margin:0 0 var(--space-sm);font-size:1.1rem;font-weight:600}.settings-danger-description{color:var(--text-secondary);margin:0 0 var(--space-md);font-size:.9rem}.settings-danger-btn{padding:var(--space-sm) var(--space-lg);color:#fff;background:var(--color-danger);border-radius:var(--radius-md);cursor:pointer;transition:opacity var(--transition-fast);border:none;font-size:.9rem;font-weight:600}.settings-danger-btn:hover:not(:disabled){opacity:.85}.settings-danger-btn:disabled{opacity:.5;cursor:not-allowed}.settings-danger-confirm{padding:var(--space-md);border-radius:var(--radius-md);background:#f8717114;border:1px solid #f8717133}.settings-danger-confirm-text{color:var(--text-primary);margin:0 0 var(--space-md);font-size:.9rem}.settings-danger-confirm-actions{gap:var(--space-sm);display:flex}.settings-danger-cancel-btn{padding:var(--space-sm) var(--space-lg);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast);background:0 0;font-size:.9rem;font-weight:500}.settings-danger-cancel-btn:hover:not(:disabled){border-color:var(--border-strong)}.not-found-page{min-height:calc(100dvh - 64px);padding:var(--space-2xl) var(--space-lg);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.not-found-code{letter-spacing:-.05em;background:var(--accent-gradient);-webkit-text-fill-color:transparent;margin-bottom:var(--space-md);animation:not-found-fade-in .5s var(--transition-base) ease-out;-webkit-background-clip:text;background-clip:text;font-size:clamp(6rem,18vw,12rem);font-weight:800;line-height:1}.not-found-headline{color:var(--text-primary);margin-bottom:var(--space-md);animation:not-found-fade-in .5s var(--transition-base) .1s ease-out both;font-size:clamp(1.25rem,3vw,1.5rem);font-weight:600}.not-found-message{color:var(--text-secondary);max-width:420px;margin-bottom:var(--space-xl);animation:not-found-fade-in .5s var(--transition-base) .2s ease-out both;font-size:1rem;line-height:1.6}.not-found-home-link{padding:var(--space-md) var(--space-xl);color:var(--text-on-accent);background:var(--accent-gradient);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);animation:not-found-fade-in .5s var(--transition-base) .3s ease-out both;border:none;justify-content:center;align-items:center;font-family:inherit;font-size:1rem;font-weight:600;text-decoration:none;display:inline-flex}.not-found-home-link:hover{color:var(--text-on-accent);background:var(--accent-gradient-hover);transform:translateY(-2px);box-shadow:0 4px 16px #6366f14d}@keyframes not-found-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.mobile-bottom-nav{display:none}@media (width<=1024px){:root{--mobile-nav-height:calc(56px + env(safe-area-inset-bottom,0px))}.mobile-bottom-nav{z-index:100;min-height:var(--mobile-nav-height);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border-subtle);padding:var(--space-xs) 0;padding-bottom:max(var(--space-xs), env(safe-area-inset-bottom));background:#0c0c18f2;justify-content:space-around;align-items:flex-end;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-bottom-nav-item{padding:var(--space-xs) 0;color:var(--text-tertiary);cursor:pointer;transition:color var(--transition-fast);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;min-width:0;font-family:inherit;text-decoration:none;display:flex}.mobile-bottom-nav-spacer{cursor:default;visibility:hidden}.mobile-bottom-nav-item.active{color:var(--accent-primary)}.mobile-bottom-nav-item:not(.mobile-bottom-nav-spacer):hover{color:var(--text-secondary)}.mobile-bottom-nav-icon-wrapper{justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:relative}.mobile-bottom-nav-icon{width:22px;height:22px}.mobile-bottom-nav-center-icon{background:var(--accent-gradient);border-radius:50%;width:40px;height:40px;margin-top:-10px;box-shadow:0 2px 12px #6366f166}.mobile-bottom-nav-center-icon .mobile-bottom-nav-icon{width:20px;height:20px;color:var(--text-on-accent)}.mobile-bottom-nav-center .mobile-bottom-nav-label{color:var(--text-secondary)}.mobile-bottom-nav-center.active .mobile-bottom-nav-label{color:var(--accent-primary)}.mobile-bottom-nav-badge{color:#fff;background:var(--accent-primary);border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.6rem;font-weight:700;line-height:1;display:flex;position:absolute;top:-4px;right:-8px}.mobile-bottom-nav-label{white-space:nowrap;font-size:.625rem;font-weight:500;line-height:1}.new-game-nav-link,.mobile-menu-nav .header-nav-link:is([href=\/my-games],[href=\/friends]){display:none}.game-list-page,.my-games-page,.friends-page,.profile-page,.settings-page,.public-profile-page,.legal-page,.game-rules-page,.game-play-page,.docs-page,.verify-email-page,.magic-link-verify-page,.not-found-page,.feature-requests-page{padding-bottom:calc(var(--mobile-nav-height) + var(--space-md))}.friends-tabs{gap:0}.friends-tab{min-width:0;padding:var(--space-sm) var(--space-xs);text-align:center;text-overflow:ellipsis;white-space:nowrap;flex:1;justify-content:center;font-size:.8rem;overflow:hidden}.feature-requests-tabs{gap:0}.feature-requests-tab{min-width:0;padding:var(--space-sm) var(--space-xs);text-align:center;text-overflow:ellipsis;white-space:nowrap;flex:1;justify-content:center;font-size:.8rem;overflow:hidden}.friend-invitation-item{align-items:flex-start;gap:var(--space-sm);flex-direction:column}.friend-invitation-email{overflow-wrap:break-word;word-break:break-all;min-width:0;max-width:100%}.friend-invitation-right{justify-content:space-between;width:100%}.player-sidebar .share-link-section,.player-sidebar .leave-button{display:none}}.mobile-share-overlay{width:calc(100% - 2rem);max-width:360px}.mobile-share-overlay-content{padding:var(--space-xl);gap:var(--space-lg);flex-direction:column;display:flex}.mobile-share-overlay-header{justify-content:space-between;align-items:center;display:flex}.mobile-share-overlay-content h3{font-size:1.1rem;font-weight:700}.native-share-btn{width:36px;height:36px;color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;padding:0;display:flex}.native-share-btn:hover{color:var(--text-primary);border-color:var(--border-strong)}.native-share-btn:active{background:var(--bg-hover)}.mobile-share-overlay-close{width:100%;padding:var(--space-sm) var(--space-lg);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:0 0;font-family:inherit;font-size:.9rem;font-weight:600}.mobile-share-overlay-close:hover{color:var(--text-primary);border-color:var(--border-strong)}
