@import"https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap";.launcher{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg-primary);position:relative;padding-bottom:var(--safe-bottom)}.header{backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);padding:calc(14px + var(--safe-top)) calc(16px + var(--safe-right)) 14px calc(16px + var(--safe-left));position:sticky;top:0;z-index:100;border-bottom:1px solid var(--card-border);background:color-mix(in srgb,var(--card-bg) 88%,transparent)}.launcher-hero{max-width:1200px;margin:16px auto 0;padding:18px 20px;border-radius:18px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.launcher-hero-copy h2{margin:0 0 4px;font-size:1.0625rem;font-weight:700;letter-spacing:-.02em}.launcher-hero-copy p{margin:0;font-size:.875rem;color:var(--text-muted)}.launcher-hero-actions{display:flex;gap:8px;flex-wrap:wrap}.hero-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;border:1px solid var(--card-border);background:var(--bg-secondary);color:var(--text-primary);font-size:.875rem;font-weight:500;cursor:pointer;transition:border-color var(--transition-speed),background var(--transition-speed),transform var(--transition-speed)}.hero-chip:hover{border-color:#0a84ff59;background:var(--accent-glow);transform:translateY(-1px)}.header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:12px}.header-left{text-align:left;min-width:0;flex:1}.header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.title{margin:0;font-size:inherit;color:var(--text-primary);display:flex;align-items:center;font-weight:600;letter-spacing:-.02em}.seo-intro{max-width:1200px;margin:0 auto 8px;padding:0 calc(16px + var(--safe-right)) 0 calc(16px + var(--safe-left))}.seo-intro-heading{margin:0 0 6px;font-size:1rem;font-weight:600;color:var(--text-secondary);letter-spacing:-.01em}.seo-intro p{margin:0;font-size:.875rem;line-height:1.55;color:var(--text-muted);max-width:72ch}.subtitle{margin:4px 0 0;font-size:.9375rem;color:var(--text-muted);font-weight:400}.welcome-message{font-size:.9375rem;color:var(--text-secondary);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.username-highlight{color:var(--text-primary);font-weight:600}.premium-badge-small{margin-left:6px;display:inline-flex;align-items:center;color:#bf8f2d}.friends-btn,.tournaments-btn{width:var(--touch-min);height:var(--touch-min);border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--card-border);cursor:pointer;transition:background var(--transition-speed),border-color var(--transition-speed);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);flex-shrink:0}.friends-btn:hover,.tournaments-btn:hover{background:var(--bg-tertiary);border-color:var(--text-muted);color:var(--text-primary)}.sign-in-btn{padding:10px 16px;min-height:var(--touch-min);background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);font-weight:500;font-size:.9375rem;cursor:pointer;transition:opacity var(--transition-speed);white-space:nowrap}.sign-in-btn:hover{opacity:.88}.auth-setup-banner{margin:0 auto 1rem;max-width:720px;padding:.75rem 1rem;border-radius:12px;background:#ff950026;border:1px solid rgba(255,149,0,.35);color:var(--text-primary);font-size:.9rem;line-height:1.4;text-align:center}.loading-screen{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:var(--bg-primary);color:var(--text-primary);padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left)}.loading-spinner{width:32px;height:32px;border:2px solid var(--card-border);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}.controls{max-width:1200px;margin:24px auto 12px;padding:0 calc(16px + var(--safe-right)) 0 calc(16px + var(--safe-left));display:flex;flex-direction:column;gap:12px;width:100%;position:relative}.search-bar{display:flex;align-items:center;border-radius:var(--radius-md);padding:10px 14px;gap:10px;transition:border-color var(--transition-speed),box-shadow var(--transition-speed)}.search-bar:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.search-icon{color:var(--text-muted);display:flex;align-items:center;flex-shrink:0}.search-input{flex:1;border:none;outline:none;font-size:16px;background:transparent;color:var(--text-primary);min-width:0}.search-input::placeholder{color:var(--text-muted)}.category-filters{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.category-filters::-webkit-scrollbar{display:none}.category-btn{padding:10px 14px;min-height:var(--touch-min);border:1px solid var(--card-border);border-radius:999px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background var(--transition-speed),border-color var(--transition-speed),color var(--transition-speed);color:var(--text-secondary);background:var(--bg-secondary);white-space:nowrap;flex-shrink:0}.category-btn:hover{border-color:var(--text-muted);color:var(--text-primary)}.category-btn.active{border-color:var(--accent-primary);background:var(--accent-primary);color:#fff}.games-grid{max-width:1200px;margin:0 auto 32px;padding:0 calc(16px + var(--safe-right)) 0 calc(16px + var(--safe-left));width:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:20px;position:relative;z-index:1}.games-grid>*{min-width:0}.no-games{grid-column:1 / -1;text-align:center;padding:48px 20px;border-radius:var(--radius-lg);color:var(--text-muted);font-size:1rem}@media (max-width: 768px){.subtitle{font-size:.8125rem}.controls{margin:16px auto}.games-grid{grid-template-columns:1fr;gap:14px}}@media (max-width: 480px){.header{padding-top:calc(12px + var(--safe-top));padding-bottom:12px}.subtitle:not(.welcome-message){display:none}.welcome-message{font-size:.75rem;margin-top:2px}.controls{margin:12px auto;gap:10px}}.retro-game-card{--retro-shadow: #0a0a0f;--retro-border: color-mix(in srgb, var(--game-color) 55%, #ffffff 15%);height:100%;font-family:inherit}.retro-card-shell{position:relative;display:flex;flex-direction:column;height:100%;border:3px solid var(--retro-border);border-radius:14px;background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);box-shadow:0 0 0 1px #ffffff14 inset,6px 6px 0 var(--retro-shadow);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.retro-game-card:hover .retro-card-shell{transform:translate(-2px,-3px);border-color:var(--game-color);box-shadow:0 0 0 1px #ffffff1f inset,0 0 24px color-mix(in srgb,var(--game-color) 35%,transparent),8px 8px 0 var(--retro-shadow)}.retro-card-label{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:linear-gradient(90deg,var(--game-color),color-mix(in srgb,var(--game-color) 70%,#000));border-bottom:2px solid rgba(0,0,0,.35)}.retro-publisher{font-family:"Press Start 2P",monospace;font-size:.4375rem;letter-spacing:.04em;color:#fffffff2;text-transform:uppercase;text-shadow:1px 1px 0 rgba(0,0,0,.45)}.retro-category{padding:3px 8px;border-radius:4px;background:#00000059;border:1px solid rgba(255,255,255,.25);font-size:.625rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff}.retro-card-art{position:relative;min-height:148px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-bottom:2px solid rgba(0,0,0,.25)}.retro-art-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 120%,color-mix(in srgb,var(--game-color) 65%,transparent),transparent 58%),linear-gradient(180deg,#12121a,#08080f)}.retro-art-bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:12px 12px;opacity:.8}.retro-scanlines{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.16) 0,rgba(0,0,0,.16) 1px,transparent 1px,transparent 3px);opacity:.35}.retro-art-icon{position:relative;z-index:1;width:88px;height:88px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#00000059;border:2px solid rgba(255,255,255,.18);box-shadow:0 0 0 2px #00000059 inset,0 8px 24px color-mix(in srgb,var(--game-color) 45%,transparent);color:#fff;transition:transform .18s ease}.retro-game-card:hover .retro-art-icon{transform:scale(1.05) translateY(-2px)}.retro-cartridge-tag{position:absolute;top:10px;right:10px;z-index:2;padding:4px 6px;border-radius:4px;background:var(--game-color);border:2px solid rgba(255,255,255,.35);font-family:"Press Start 2P",monospace;font-size:.4375rem;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.4)}.retro-card-body{display:flex;flex-direction:column;gap:10px;padding:16px 16px 12px;flex:1}.retro-game-title{margin:0;font-family:"Press Start 2P",monospace;font-size:clamp(.625rem,1.6vw,.75rem);line-height:1.55;letter-spacing:.02em;color:var(--text-primary);text-transform:uppercase;text-shadow:2px 2px 0 color-mix(in srgb,var(--game-color) 25%,transparent)}.retro-game-desc{margin:0;font-size:.8125rem;line-height:1.5;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.4em}.retro-stats-bar,.retro-meta-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.retro-plays-group{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.retro-stat-chip-you{border-color:color-mix(in srgb,var(--game-color) 45%,var(--card-border));background:color-mix(in srgb,var(--game-color) 14%,rgba(0,0,0,.2));color:var(--text-primary)}.retro-rating{display:inline-flex;align-items:center;gap:2px}.retro-star{color:var(--text-muted)}.retro-star.filled{color:gold;fill:gold;filter:drop-shadow(0 0 4px rgba(255,215,0,.45))}.retro-rating-count{margin-left:4px;font-size:.6875rem;font-weight:700;color:var(--text-muted)}.retro-stat-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:6px;background:#0003;border:1px solid var(--card-border);font-size:.6875rem;font-weight:600;color:var(--text-secondary);letter-spacing:.02em}[data-theme=light] .retro-stat-chip{background:#ffffffa6}.retro-features{display:flex;flex-wrap:wrap;gap:6px}.retro-feature-badge{padding:4px 8px;border-radius:4px;border:1px dashed color-mix(in srgb,var(--game-color) 50%,var(--card-border));background:color-mix(in srgb,var(--game-color) 12%,transparent);font-size:.625rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.retro-card-footer{padding:0 16px 16px}.retro-play-btn{width:100%;min-height:46px;padding:12px 16px;border:none;border-radius:8px;cursor:pointer;background:linear-gradient(180deg,var(--game-color) 0%,color-mix(in srgb,var(--game-color) 75%,#000) 100%);box-shadow:0 4px color-mix(in srgb,var(--game-color) 45%,#000),0 0 0 2px #ffffff26 inset;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.retro-play-btn-label{display:block;font-family:"Press Start 2P",monospace;font-size:.5625rem;line-height:1.4;letter-spacing:.06em;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.35)}.retro-play-btn:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 5px color-mix(in srgb,var(--game-color) 45%,#000),0 0 16px color-mix(in srgb,var(--game-color) 40%,transparent),0 0 0 2px #fff3 inset}.retro-play-btn:active{transform:translateY(3px);box-shadow:0 1px color-mix(in srgb,var(--game-color) 45%,#000),0 0 0 2px #ffffff1f inset}@media (max-width: 480px){.retro-card-art{min-height:132px}.retro-art-icon{width:76px;height:76px}.retro-game-title{font-size:.5625rem}.retro-play-btn-label{font-size:.5rem}}@media (prefers-reduced-motion: reduce){.retro-card-shell,.retro-art-icon,.retro-play-btn{transition:none}.retro-game-card:hover .retro-card-shell{transform:none}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}.auth-modal{max-width:400px;width:90%;max-height:90dvh;overflow-y:auto;padding:24px;border-radius:var(--radius-lg);position:relative;animation:slideUp .2s ease;-webkit-overflow-scrolling:touch}@keyframes slideUp{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-close{position:absolute;top:12px;right:12px;background:var(--bg-tertiary);border:1px solid var(--card-border);border-radius:var(--radius-md);width:var(--touch-min);height:var(--touch-min);display:flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer;transition:background var(--transition-speed)}.modal-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.auth-modal h2{margin:0 0 6px;font-size:1.25rem;font-weight:600;letter-spacing:-.02em;color:var(--text-primary)}.modal-subtitle{color:var(--text-muted);margin-bottom:20px;font-size:.875rem}.form-group{margin-bottom:14px}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:var(--text-secondary);font-size:.8125rem}.form-group input{width:100%;padding:12px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:16px;min-height:44px;font-family:inherit;transition:border-color var(--transition-speed),box-shadow var(--transition-speed)}.form-group input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.error-message{background:#ff3b301a;border:1px solid rgba(255,59,48,.25);color:#ff3b30;padding:10px 12px;border-radius:var(--radius-md);margin-bottom:14px;font-size:.875rem}.submit-btn{width:100%;padding:12px;min-height:44px;background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:500;font-family:inherit;cursor:pointer;transition:opacity var(--transition-speed)}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.auth-switch{text-align:center;margin-top:16px;color:var(--text-muted);font-size:.875rem}.auth-switch button{background:none;border:none;color:var(--accent-primary);font-weight:500;cursor:pointer;font-family:inherit;font-size:inherit}.auth-switch button:hover{text-decoration:underline}.google-signin-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:12px;min-height:44px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--card-border);border-radius:var(--radius-md);font-size:.9375rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background var(--transition-speed),border-color var(--transition-speed)}.google-signin-btn:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--accent-primary)}.google-signin-btn:disabled{opacity:.6;cursor:not-allowed}.google-icon{width:18px;height:18px;flex-shrink:0}.auth-divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--text-muted);font-size:.8125rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--card-border)}.field-hint{margin:6px 0 0;font-size:.75rem;color:var(--text-muted)}.dev-login-section{margin-top:8px}.dev-login-note{display:flex;align-items:center;justify-content:center;gap:6px;margin:0 0 10px;font-size:.75rem;color:var(--text-muted)}.dev-login-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dev-login-btn{padding:10px 8px;border-radius:var(--radius-md);border:1px dashed var(--card-border);background:var(--bg-secondary);color:var(--text-primary);font-size:.8125rem;font-weight:500;font-family:inherit;cursor:pointer}.dev-login-btn.admin{border-color:#a855f773;color:#c084fc}.dev-login-btn.user{border-color:#00e5ff59;color:var(--accent-primary, #00e5ff)}.dev-login-btn:hover:not(:disabled){opacity:.9}.dev-login-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 480px){.modal-overlay{align-items:flex-end;padding:0}.auth-modal{width:100%;max-width:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:92dvh;padding-bottom:calc(24px + var(--safe-bottom))}}.premium-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.premium-modal{background:linear-gradient(135deg,#ffd7001a,#ffa5000d);border:2px solid rgba(255,215,0,.3);border-radius:24px;padding:40px;max-width:500px;width:90%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px #ffd7004d;animation:slideUp .3s ease-out}[data-theme=dark] .premium-modal{background:linear-gradient(135deg,#ffd70026,#ffa50014)}.premium-close{position:absolute;top:20px;right:20px;background:#ffffff1a;border:none;width:40px;height:40px;border-radius:50%;font-size:24px;cursor:pointer;color:var(--text);transition:all .2s}.premium-close:hover{background:#fff3;transform:rotate(90deg)}.premium-header{text-align:center;margin-bottom:30px}.premium-crown{font-size:64px;margin-bottom:10px;animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.premium-header h2{font-size:32px;margin:10px 0;background:linear-gradient(135deg,gold,orange);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.premium-header p{color:var(--text-secondary);font-size:16px}.premium-features{display:grid;gap:15px;margin-bottom:30px}.feature{display:flex;align-items:center;gap:12px;padding:15px;background:#ffffff0d;border-radius:12px;border:1px solid rgba(255,215,0,.2);transition:all .3s}.feature:hover{background:#ffffff14;border-color:#ffd70066;transform:translate(5px)}.feature-icon{font-size:24px}.premium-plans{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:20px}.plan{position:relative;padding:20px;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:16px;cursor:pointer;transition:all .3s;text-align:center}.plan:hover{background:#ffffff14;transform:translateY(-5px)}.plan.selected{background:linear-gradient(135deg,#ffd70033,#ffa5001a);border-color:gold;box-shadow:0 8px 24px #ffd7004d}.plan-badge{position:absolute;top:-10px;right:10px;background:linear-gradient(135deg,gold,orange);color:#000;padding:4px 12px;border-radius:12px;font-size:11px;font-weight:700}.plan-name{font-size:16px;font-weight:600;margin-bottom:8px;color:var(--text)}.plan-price{font-size:28px;font-weight:700;color:gold}.plan-price span{font-size:14px;color:var(--text-secondary)}.premium-submit{width:100%;padding:16px;background:linear-gradient(135deg,gold,orange);color:#000;border:none;border-radius:12px;font-size:18px;font-weight:700;cursor:pointer;transition:all .3s;margin-bottom:15px}.premium-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #ffd70066}.premium-submit:disabled{opacity:.6;cursor:not-allowed}.premium-note{text-align:center;color:var(--text-secondary);font-size:14px;margin:10px 0 0}.premium-error{background:#ff00001a;border:1px solid rgba(255,0,0,.3);color:#ff6b6b;padding:12px;border-radius:8px;margin-bottom:15px;text-align:center}.premium-success{text-align:center;padding:40px 20px}.success-icon{width:80px;height:80px;margin:0 auto 20px;background:linear-gradient(135deg,#4ade80,#22c55e);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:48px;color:#fff;animation:scaleIn .5s ease-out}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.premium-success h3{font-size:24px;margin-bottom:10px;color:var(--text)}.premium-success p{color:var(--text-secondary)}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.premium-modal{padding:24px 20px;max-height:92dvh;width:94%}.premium-header h2{font-size:1.5rem}.premium-plans{grid-template-columns:1fr}.premium-close{width:var(--touch-min);height:var(--touch-min)}.premium-submit{min-height:var(--touch-min)}}@media (max-width: 480px){.premium-modal-overlay{align-items:flex-end;padding:0}.premium-modal{width:100%;max-width:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding-bottom:calc(24px + var(--safe-bottom))}}.notification-badge{position:absolute;top:-2px;right:-2px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:.6875rem;font-weight:700;line-height:18px;text-align:center;border:2px solid var(--card-bg, #111827);box-shadow:0 0 0 1px #ef444459;pointer-events:none;z-index:2}.notification-badge.dot-only{min-width:10px;width:10px;height:10px;padding:0;top:4px;right:4px;border-width:2px}.notification-badge.has-count{top:-4px;right:-4px}.badge-anchor{position:relative;display:inline-flex;align-items:center;justify-content:center}.user-menu{position:relative;z-index:1001}.user-trigger{display:flex;align-items:center;gap:10px;min-height:42px;padding:4px 10px 4px 4px;border-radius:999px;border:1px solid var(--card-border);background:var(--bg-secondary);cursor:pointer;color:inherit;transition:border-color var(--transition-speed),box-shadow var(--transition-speed),background var(--transition-speed)}.user-trigger:hover,.user-trigger.open{border-color:#0a84ff59;box-shadow:0 0 0 3px var(--accent-glow)}.user-trigger-chevron{color:var(--text-muted);transition:transform var(--transition-speed);flex-shrink:0}.user-trigger.open .user-trigger-chevron{transform:rotate(180deg)}.user-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:.875rem;position:relative;flex-shrink:0}.user-avatar.admin-avatar{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.premium-crown-badge{position:absolute;top:-3px;right:-3px;width:16px;height:16px;background:var(--bg-secondary);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#bf8f2d;border:1px solid var(--card-border)}.user-info{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.user-name{font-weight:600;color:var(--text-primary);font-size:.875rem;line-height:1.2;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-meta{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;color:var(--text-muted)}.user-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:999;animation:fadeIn .15s ease}.user-panel{position:absolute;top:calc(100% + 10px);right:0;width:min(320px,calc(100vw - 24px));border-radius:var(--radius-lg);padding:12px;z-index:1000;box-shadow:var(--shadow-md);animation:panelIn .18s ease}@keyframes panelIn{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.user-panel-header{display:flex;gap:12px;padding:8px 8px 12px;margin-bottom:4px;border-bottom:1px solid var(--card-border)}.user-avatar-large{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1.125rem;flex-shrink:0}.panel-username{font-weight:600;font-size:1rem;color:var(--text-primary)}.panel-email{font-size:.8125rem;color:var(--text-muted);margin-top:2px;word-break:break-word}.panel-premium-badge{display:inline-flex;align-items:center;gap:4px;margin-top:6px;padding:2px 8px;border-radius:999px;background:#bf8f2d26;color:#bf8f2d;font-size:.75rem;font-weight:600}.menu-section{padding:6px 0}.menu-section+.menu-section{border-top:1px solid var(--card-border)}.menu-section-title{margin:0 0 6px;padding:0 8px;font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.menu-section-items{display:flex;flex-direction:column;gap:2px}.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-primary);font-size:.9375rem;font-weight:500;text-decoration:none;cursor:pointer;transition:background var(--transition-speed),color var(--transition-speed);text-align:left}.menu-item:hover{background:var(--bg-tertiary)}.menu-item-danger{color:#ef4444}.menu-item-danger:hover{background:#ef44441a}@media (max-width: 768px){.user-panel{position:fixed;top:auto;bottom:0;left:0;right:0;width:auto;max-height:85dvh;overflow-y:auto;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:16px;padding-bottom:calc(16px + var(--safe-bottom));animation:sheetUp .22s ease}@keyframes sheetUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.menu-item{min-height:var(--touch-min)}}@media (max-width: 480px){.user-info,.user-trigger-chevron{display:none}.user-trigger{padding:4px;min-width:var(--touch-min);min-height:var(--touch-min);justify-content:center}}.theme-toggle{background:var(--bg-secondary);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:3px;cursor:pointer;transition:border-color var(--transition-speed);min-width:var(--touch-min);min-height:var(--touch-min);display:flex;align-items:center;justify-content:center}.theme-toggle:hover{border-color:var(--text-muted)}.toggle-track{width:52px;height:28px;border-radius:var(--radius-md);position:relative;transition:background var(--transition-speed)}.toggle-track.dark{background:var(--bg-tertiary)}.toggle-track.light{background:#e8e8ed}.toggle-thumb{position:absolute;top:2px;width:24px;height:24px;border-radius:var(--radius-sm);background:#fff;display:flex;align-items:center;justify-content:center;transition:left .2s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-sm)}.toggle-track.dark .toggle-thumb{left:2px}.toggle-track.light .toggle-thumb{left:calc(100% - 26px)}.launcher-nav{display:flex;align-items:center;gap:4px;padding:4px;border-radius:999px;background:var(--bg-secondary);border:1px solid var(--card-border)}.launcher-nav-item{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border:none;border-radius:999px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-speed),color var(--transition-speed),box-shadow var(--transition-speed)}.launcher-nav-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.launcher-nav-item:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.launcher-nav-label{font-size:.8125rem;font-weight:500;display:none}@media (min-width: 900px){.launcher-nav-label{display:inline}.launcher-nav-item{padding:0 14px}}@media (max-width: 480px){.launcher-nav-item{min-width:var(--touch-min);min-height:var(--touch-min);padding:0;justify-content:center}}.notification-stack{position:fixed;top:88px;left:20px;z-index:1190;display:flex;flex-direction:column;gap:12px;max-width:min(380px,calc(100vw - 32px));pointer-events:none}.notification-toast{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:14px;background:#111827f0;color:#f8fafc;border:1px solid rgba(255,255,255,.12);box-shadow:0 12px 32px #00000047;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;animation:notification-slide-in .28s ease}@keyframes notification-slide-in{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}.notification-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.notification-icon-success{background:linear-gradient(135deg,#10b981,#059669)}.notification-icon-error{background:linear-gradient(135deg,#ef4444,#dc2626)}.notification-icon-info{background:linear-gradient(135deg,#3b82f6,#2563eb)}.notification-icon-message{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.notification-body{flex:1;min-width:0}.notification-title{display:block;font-size:.92rem;font-weight:600;margin-bottom:2px}.notification-message{margin:0;font-size:.88rem;line-height:1.45;color:#cbd5e1}.notification-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.notification-action-primary,.notification-action-secondary{border:none;border-radius:8px;padding:6px 12px;font-size:.82rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.notification-action-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.notification-action-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #2563eb59}.notification-action-secondary{background:#ffffff1a;color:#e2e8f0}.notification-action-secondary:hover{background:#ffffff29}.notification-dismiss{width:28px;height:28px;border:none;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#ffffff14;color:#e2e8f0;cursor:pointer;flex-shrink:0}.notification-dismiss:hover{background:#ffffff24}[data-theme=light] .notification-toast{background:#fffffff5;color:#1d1d1f;border-color:#00000014;box-shadow:0 12px 32px #0000001f}[data-theme=light] .notification-message{color:#6e6e73}[data-theme=light] .notification-dismiss,[data-theme=light] .notification-action-secondary{background:#0000000f;color:#1d1d1f}@media (max-width: 768px){.notification-stack{top:auto;bottom:calc(96px + var(--safe-bottom));left:calc(16px + var(--safe-left));right:calc(16px + var(--safe-right));max-width:none}.notification-toast{animation-name:notification-slide-up}@keyframes notification-slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}}.game-invite-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2100;display:flex;align-items:center;justify-content:center;padding:16px;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.game-invite-picker{width:min(100%,420px);border-radius:var(--radius-lg);border:1px solid var(--card-border);box-shadow:0 20px 60px #00000059;overflow:hidden}.game-invite-picker-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 20px 12px}.game-invite-picker-header h3{margin:0 0 4px;font-size:1.05rem;color:var(--text-primary)}.game-invite-picker-header p{margin:0;font-size:.9rem;color:var(--text-secondary)}.game-invite-picker-close{width:32px;height:32px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer}.game-invite-picker-close:hover{background:var(--bg-secondary)}.game-invite-picker-list{display:flex;flex-direction:column;gap:10px;padding:8px 16px 16px}.game-invite-picker-option{display:flex;align-items:center;gap:14px;width:100%;padding:12px 14px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;text-align:left;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.game-invite-picker-option:hover{transform:translateY(-1px);border-color:var(--accent-primary);box-shadow:0 8px 20px var(--accent-glow)}.game-invite-picker-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.game-invite-picker-details{display:flex;flex-direction:column;gap:2px}.game-invite-picker-details strong{font-size:.95rem}.game-invite-picker-details span{font-size:.82rem;color:var(--text-secondary)}@media (max-width: 768px){.game-invite-picker-overlay{align-items:flex-end;padding:0}.game-invite-picker{width:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:var(--safe-bottom)}}.friends-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:16px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.social-hub{width:min(960px,100%);max-height:min(88vh,820px);display:flex;flex-direction:column;background:var(--card-bg);border:1px solid var(--card-border);border-radius:20px;box-shadow:var(--shadow-md);overflow:hidden;animation:slideUp .28s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.social-hub-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--card-border)}.social-hub-header h2{margin:0;font-size:1.25rem;font-weight:700;letter-spacing:-.02em}.social-hub-header p{margin:4px 0 0;font-size:.875rem;color:var(--text-muted)}.close-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--card-border);background:var(--bg-secondary);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.close-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.friends-notification{margin:0 24px;padding:10px 14px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;font-size:.875rem;font-weight:600}.social-hub-body{display:grid;grid-template-columns:220px 1fr;min-height:0;flex:1}.social-hub-sidebar{display:flex;flex-direction:column;gap:4px;padding:12px;border-right:1px solid var(--card-border);background:var(--bg-secondary)}.sidebar-tab{position:relative;display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;text-align:left;transition:background var(--transition-speed),color var(--transition-speed)}.sidebar-tab:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sidebar-tab.active{background:var(--accent-glow);color:var(--accent-primary);box-shadow:inset 0 0 0 1px #0a84ff40}.sidebar-count{margin-left:auto;font-size:.75rem;color:var(--text-muted)}.sidebar-tab .notification-badge{margin-left:auto}.social-hub-main{min-height:0;overflow:hidden;display:flex;flex-direction:column}.social-panel{display:flex;flex-direction:column;min-height:0;height:100%}.panel-heading{padding:20px 24px 12px}.panel-heading.compact{padding-bottom:8px}.panel-heading h3{margin:0;font-size:1.0625rem;font-weight:600}.panel-heading p{margin:4px 0 0;font-size:.8125rem;color:var(--text-muted)}.social-list,.search-results,.conversations-list{overflow-y:auto;padding:0 16px 16px;display:flex;flex-direction:column;gap:8px}.social-row,.conversation-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1px solid transparent;background:var(--bg-secondary);transition:border-color var(--transition-speed),background var(--transition-speed),transform var(--transition-speed)}.social-row:hover{background:var(--bg-tertiary);border-color:var(--card-border)}.conversation-card{width:100%;cursor:pointer;text-align:left;color:inherit}.conversation-card:hover,.conversation-card.active{background:var(--bg-tertiary);border-color:#0a84ff40}.conversation-card.has-unread{border-color:#ef444459}.conversation-card.has-unread .conversation-name{font-weight:700}.friend-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1rem;flex-shrink:0;position:relative}.friend-avatar.small{width:36px;height:36px;font-size:.875rem}.online-indicator{position:absolute;bottom:1px;right:1px;width:11px;height:11px;background:#10b981;border:2px solid var(--bg-secondary);border-radius:50%}.friend-info,.conversation-info{flex:1;min-width:0}.friend-name,.conversation-name{font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:6px}.friend-points,.last-message,.chat-subtitle{font-size:.8125rem;color:var(--text-muted);margin-top:2px}.last-message{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friend-actions,.request-actions{display:flex;gap:6px;flex-shrink:0}.action-btn{width:36px;height:36px;border:none;border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:transform var(--transition-speed),opacity var(--transition-speed)}.action-btn:hover{transform:translateY(-1px)}.message-btn{background:#3b82f6;position:relative}.invite-btn{background:#10b981}.remove-btn{background:#ef4444}.accept-btn,.decline-btn,.add-friend-btn,.empty-cta{border:none;border-radius:999px;padding:8px 14px;font-size:.8125rem;font-weight:600;cursor:pointer;white-space:nowrap}.accept-btn{display:inline-flex;align-items:center;gap:4px;background:#10b981;color:#fff}.decline-btn{background:var(--bg-tertiary);color:var(--text-secondary)}.add-friend-btn,.empty-cta{background:var(--accent-primary);color:#fff}.add-friend-btn:disabled{opacity:.5;cursor:not-allowed}.empty-state{text-align:center;padding:48px 24px;color:var(--text-muted);display:flex;flex-direction:column;align-items:center;gap:8px}.empty-state.compact{padding:24px 16px}.empty-state h3{margin:0;color:var(--text-primary);font-size:1rem}.empty-state p{margin:0;max-width:28ch;line-height:1.5}.search-container{display:flex;flex-direction:column;gap:12px;min-height:0;height:100%;padding:0 16px 16px}.search-input-wrap{display:flex;align-items:center;gap:10px;padding:0 14px;border-radius:14px;border:1px solid var(--card-border);background:var(--bg-secondary);color:var(--text-muted)}.search-input-wrap:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.search-input{flex:1;border:none;background:transparent;color:var(--text-primary);font-size:1rem;padding:12px 0;outline:none}.messages-split{display:grid;grid-template-columns:minmax(240px,34%) 1fr;min-height:0;height:100%}.conversations-panel{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--card-border)}.chat-panel{display:flex;flex-direction:column;min-height:0;background:var(--bg-primary)}.chat-window{display:flex;flex-direction:column;min-height:0;height:100%}.chat-header{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--card-border)}.chat-header-user{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.chat-title{font-size:1rem;font-weight:700;color:var(--text-primary)}.chat-back-btn{display:none;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--card-border);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer}.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px;text-align:center;color:var(--text-muted)}.chat-empty h3{margin:0;color:var(--text-primary)}.chat-empty p{margin:0;max-width:32ch;line-height:1.5}.messages-list{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:10px}.chat-thread-empty{margin:auto;color:var(--text-muted);font-size:.875rem}.message{display:flex;flex-direction:column;max-width:75%}.message.sent{align-self:flex-end;align-items:flex-end}.message.received{align-self:flex-start;align-items:flex-start}.message-bubble{padding:10px 14px;border-radius:18px;line-height:1.45;word-break:break-word}.message.sent .message-bubble{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;border-bottom-right-radius:6px}.message.received .message-bubble{background:var(--bg-secondary);color:var(--text-primary);border-bottom-left-radius:6px}.message-time{font-size:.6875rem;color:var(--text-muted);margin-top:4px;padding:0 4px}.message-input-container{display:flex;gap:8px;padding:14px 16px;border-top:1px solid var(--card-border);background:var(--card-bg)}.message-input{flex:1;border:1px solid var(--card-border);border-radius:999px;background:var(--bg-secondary);color:var(--text-primary);padding:12px 16px;font-size:.9375rem;outline:none}.message-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.send-btn{width:44px;height:44px;border:none;border-radius:50%;background:var(--accent-primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.send-btn:disabled{opacity:.45;cursor:not-allowed}.mobile-only{display:none}@media (max-width: 768px){.friends-overlay{padding:0;align-items:flex-end}.social-hub{width:100%;max-height:94dvh;border-radius:20px 20px 0 0}.social-hub-body{grid-template-columns:1fr;grid-template-rows:auto 1fr}.social-hub-sidebar{flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--card-border);scrollbar-width:none}.social-hub-sidebar::-webkit-scrollbar{display:none}.sidebar-tab{flex:0 0 auto;white-space:nowrap}.messages-split{grid-template-columns:1fr}.chat-open .social-hub-sidebar,.chat-open .conversations-panel.mobile-hidden{display:none}.chat-panel.mobile-visible,.mobile-only{display:flex}.conversations-panel.mobile-hidden,.chat-panel{display:none}.chat-panel.mobile-visible{display:flex}}.game-invite-stack{position:fixed;top:88px;right:20px;z-index:1200;display:flex;flex-direction:column;gap:12px;max-width:min(420px,calc(100vw - 32px))}.game-invite-banner{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;background:#111827f0;color:#f8fafc;border:1px solid rgba(255,255,255,.12);box-shadow:0 12px 32px #00000047;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.game-invite-icon{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#10b981,#059669);flex-shrink:0}.game-invite-content{flex:1;font-size:.95rem;line-height:1.4}.game-invite-actions{display:flex;align-items:center;gap:8px}.game-invite-accept,.game-invite-decline{border:none;border-radius:10px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.game-invite-accept{padding:8px 14px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;font-weight:600}.game-invite-accept:hover{transform:translateY(-1px);box-shadow:0 6px 16px #2563eb59}.game-invite-decline{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#ffffff14;color:#e2e8f0}.game-invite-decline:hover{background:#ef44442e;color:#fecaca}@media (max-width: 768px){.game-invite-stack{top:auto;bottom:calc(16px + var(--safe-bottom));left:calc(16px + var(--safe-left));right:calc(16px + var(--safe-right));max-width:none}}.game-invites-page{min-height:100vh;min-height:100dvh;padding:calc(16px + var(--safe-top)) calc(16px + var(--safe-right)) calc(24px + var(--safe-bottom)) calc(16px + var(--safe-left));background:var(--bg-primary)}.game-invites-header{max-width:900px;margin:0 auto 20px;display:flex;align-items:flex-start;gap:16px}.game-invites-back{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card-bg);color:var(--text-primary);cursor:pointer}.game-invites-header h1{margin:0;display:flex;align-items:center;gap:8px;font-size:1.5rem}.game-invites-header p{margin:6px 0 0;color:var(--text-secondary)}.game-invites-error{max-width:900px;margin:0 auto 16px;padding:12px 14px;border-radius:var(--radius-md);background:#ff3b301f;border:1px solid rgba(255,59,48,.25);color:var(--text-primary)}.game-invites-empty{max-width:520px;margin:48px auto;padding:32px 24px;text-align:center;color:var(--text-secondary)}.game-invites-empty h2{margin:12px 0 8px;color:var(--text-primary)}.game-invites-sections{max-width:900px;margin:0 auto;display:grid;gap:16px}.game-invites-section{padding:18px;border-radius:var(--radius-lg)}.game-invites-section h2{margin:0 0 14px;display:flex;align-items:center;gap:8px;font-size:1rem}.game-invites-muted{margin:0;color:var(--text-secondary)}.game-invites-list{display:grid;gap:12px}.game-invite-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border-radius:var(--radius-md);border:1px solid var(--card-border);background:var(--bg-secondary)}.game-invite-card-body{min-width:0;color:var(--text-primary);line-height:1.45}.game-invite-meta{margin-top:4px;font-size:.8rem;color:var(--text-secondary)}.game-invite-card-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.game-invite-primary{padding:10px 14px;border:none;border-radius:var(--radius-md);background:var(--accent-primary);color:#fff;font-weight:600;cursor:pointer;white-space:nowrap}.game-invite-primary:disabled{opacity:.6;cursor:not-allowed}.game-invite-icon-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card-bg);color:var(--text-secondary);cursor:pointer}.game-invites-footnote{max-width:900px;margin:20px auto 0;text-align:center;color:var(--text-secondary);font-size:.9rem}@media (max-width: 640px){.game-invite-card{flex-direction:column;align-items:stretch}.game-invite-card-actions{width:100%}.game-invite-primary{flex:1}}.daily-challenge-banner{max-width:1200px;margin:0 auto 20px;padding:16px calc(20px + var(--safe-right)) 16px calc(20px + var(--safe-left));border-radius:var(--radius-lg);border:1px solid var(--card-border)}.challenge-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.challenge-header h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0;display:flex;align-items:center;gap:8px;letter-spacing:-.01em}.streak-badge{background:var(--bg-tertiary);color:var(--text-secondary);padding:4px 10px;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500;display:flex;align-items:center;gap:5px;border:1px solid var(--card-border)}.challenge-content{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center}.challenge-game{display:flex;flex-direction:column;align-items:center;gap:4px}.game-icon{color:var(--accent-primary);display:flex;align-items:center}.game-name{font-size:.75rem;color:var(--text-muted);font-weight:500}.challenge-task p{font-size:.9375rem;color:var(--text-primary);margin:0 0 6px;font-weight:400}.challenge-reward{display:inline-block;background:var(--bg-tertiary);color:var(--text-secondary);padding:3px 10px;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500;border:1px solid var(--card-border)}.challenge-completed{background:#34c7591f;color:#34c759;padding:8px 14px;border-radius:var(--radius-md);font-weight:500;font-size:.875rem;display:flex;align-items:center;gap:6px}.challenge-pending{background:var(--bg-secondary);border:1px solid var(--accent-primary);color:var(--accent-primary);padding:8px 14px;border-radius:var(--radius-md);font-weight:500;font-size:.875rem}@media (max-width: 768px){.daily-challenge-banner{margin:0 calc(16px + var(--safe-right)) 16px calc(16px + var(--safe-left))}.challenge-content{grid-template-columns:1fr;text-align:center;gap:12px}.challenge-game{flex-direction:row;justify-content:center;gap:8px}}.brand-logo{display:inline-flex;align-items:center;gap:12px;flex-shrink:0}.brand-logo-icon{flex-shrink:0;filter:drop-shadow(0 0 8px rgba(0,229,255,.35))}.brand-wordmark{font-size:1.75rem;font-weight:700;letter-spacing:-.03em;line-height:1.1;white-space:nowrap}.brand-wordmark-elite{background:linear-gradient(135deg,#00e5ff,#a855f7);-webkit-background-clip:text;background-clip:text;color:transparent}.brand-wordmark-rest{color:var(--text-primary);font-weight:600}@media (max-width: 480px){.brand-logo{gap:8px}.brand-wordmark{font-size:1.05rem}}.site-footer{margin-top:auto;border-top:1px solid var(--card-border);background:var(--card-bg);padding:32px calc(16px + var(--safe-right)) calc(24px + var(--safe-bottom)) calc(16px + var(--safe-left))}.site-footer-inner{max-width:1200px;margin:0 auto;display:grid;gap:24px}@media (min-width: 768px){.site-footer-inner{grid-template-columns:1fr auto auto;align-items:start;gap:32px}}.site-footer-brand{display:flex;flex-direction:column;gap:10px}.site-footer-tagline{margin:0;font-size:.875rem;color:var(--text-muted);max-width:320px;line-height:1.5}.site-footer-nav{display:flex;flex-direction:column;gap:10px}.site-footer-nav a{color:var(--text-secondary);text-decoration:none;font-size:.9375rem;font-weight:500;transition:color .15s ease}.site-footer-nav a:hover{color:var(--accent-primary)}.site-footer-meta{font-size:.8125rem;color:var(--text-muted);line-height:1.6}.site-footer-meta p{margin:0}.site-footer-domain{margin-top:4px;opacity:.75}.adsense-container{margin:20px 0;min-height:90px;display:flex;flex-direction:column;gap:5px}.ad-label{font-size:10px;color:var(--text-muted);text-align:center;text-transform:uppercase;letter-spacing:1px}.adsense-banner{width:100%}.adsense-square{width:min(300px,100%);height:auto;min-height:200px;margin:0 auto}.adsense-placeholder{margin:20px 0;min-height:90px;background:#ffffff08;border:2px dashed rgba(255,255,255,.1);border-radius:12px;display:flex;align-items:center;justify-content:center;padding:20px}.placeholder-content{text-align:center;color:var(--text-muted)}.ad-icon{font-size:32px;display:block;margin-bottom:8px;opacity:.5}.placeholder-content p{margin:5px 0;font-size:14px;font-weight:600}.placeholder-content small{font-size:11px;opacity:.7}.adsense-placeholder.adsense-banner{width:100%;min-height:90px}.adsense-placeholder.adsense-square{width:min(300px,100%);min-height:200px;height:auto;margin:0 auto}@media (max-width: 768px){.adsense-container,.adsense-placeholder{margin-left:calc(16px + var(--safe-left));margin-right:calc(16px + var(--safe-right))}}[data-theme=dark] .adsense-placeholder{background:#ffffff0d;border-color:#ffffff26}.legal-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg-primary)}.legal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:calc(16px + var(--safe-top)) calc(16px + var(--safe-right)) 16px calc(16px + var(--safe-left));border-bottom:1px solid var(--card-border);background:var(--card-bg);position:sticky;top:0;z-index:10}.legal-back{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);text-decoration:none;font-size:.9375rem;font-weight:500;flex-shrink:0}.legal-back:hover{color:var(--accent-primary)}.legal-main{max-width:760px;width:100%;margin:24px auto;padding:28px 24px;line-height:1.65;color:var(--text-secondary)}.legal-main h1{margin:0 0 8px;font-size:1.75rem;color:var(--text-primary);letter-spacing:-.02em}.legal-updated{margin:0 0 24px;font-size:.875rem;color:var(--text-muted)}.legal-main h2{margin:28px 0 10px;font-size:1.125rem;color:var(--text-primary)}.legal-main p{margin:0 0 14px}.legal-main ul{margin:0 0 14px;padding-left:1.25rem}.legal-main li{margin-bottom:6px}.legal-main a{color:var(--accent-primary)}@media (max-width: 600px){.legal-main{margin:16px;padding:20px 16px}}.feedback-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg-primary)}.feedback-main{max-width:720px;width:100%;margin:24px auto;padding:28px 24px}.feedback-main h1{margin:0 0 8px;font-size:1.75rem;color:var(--text-primary)}.feedback-intro{margin:0 0 24px;color:var(--text-muted);line-height:1.55}.feedback-signin-notice{margin-bottom:20px;padding:14px 16px;border-radius:var(--radius-md);background:#ffc1071a;border:1px solid rgba(255,193,7,.25);color:var(--text-secondary)}.feedback-signin-notice a{color:var(--accent-primary);font-weight:600}.feedback-success{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;padding:16px;border-radius:var(--radius-md);background:#34c7591a;border:1px solid rgba(52,199,89,.25);color:var(--text-secondary)}.feedback-success strong{color:var(--text-primary);display:block}.feedback-success p{margin:4px 0 0}.feedback-send-another{margin-left:auto;padding:8px 14px;border-radius:var(--radius-sm);border:1px solid var(--card-border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font-size:.875rem}.feedback-form{display:flex;flex-direction:column;gap:20px}.feedback-fieldset{border:none;margin:0;padding:0}.feedback-fieldset legend{font-weight:600;color:var(--text-primary);margin-bottom:12px}.feedback-categories{display:grid;gap:10px}@media (min-width: 640px){.feedback-categories{grid-template-columns:repeat(3,1fr)}}.feedback-category-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px;border-radius:var(--radius-md);border:1px solid var(--card-border);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease}.feedback-category-card:hover{border-color:var(--accent-primary)}.feedback-category-card.active{border-color:var(--accent-primary);background:#00e5ff14;color:var(--text-primary)}.feedback-category-label{font-weight:600;font-size:.9375rem}.feedback-category-desc{font-size:.75rem;line-height:1.4;color:var(--text-muted)}.feedback-label{display:flex;flex-direction:column;gap:8px;font-weight:600;color:var(--text-primary);font-size:.9375rem}.feedback-select,.feedback-textarea{width:100%;padding:12px 14px;border-radius:var(--radius-md);border:1px solid var(--card-border);background:var(--bg-secondary);color:var(--text-primary);font:inherit;font-weight:400}.feedback-textarea{resize:vertical;min-height:140px;line-height:1.5}.feedback-char-count{align-self:flex-end;font-size:.75rem;font-weight:400;color:var(--text-muted)}.feedback-error{margin:0;color:#ff6b6b;font-size:.875rem}.feedback-submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:none;border-radius:var(--radius-md);background:var(--accent-primary);color:#fff;font-weight:600;font-size:.9375rem;cursor:pointer;align-self:flex-start}.feedback-submit:disabled{opacity:.55;cursor:not-allowed}@media (max-width: 600px){.feedback-main{margin:16px;padding:20px 16px}}.rating-modal{position:relative;max-width:480px;width:90%;padding:24px;border-radius:var(--radius-lg);animation:slideIn .2s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.rating-modal h2{margin:0 0 8px;color:var(--text-primary);font-size:1.25rem;font-weight:600;letter-spacing:-.02em}.rating-modal .modal-subtitle{margin:0 0 24px;color:var(--text-muted);font-size:.9375rem}.rating-stars-input{display:flex;justify-content:center;gap:8px;margin-bottom:12px}.star-btn{background:none;border:none;cursor:pointer;transition:transform .15s ease,color .15s ease;color:var(--text-muted);padding:8px;min-width:var(--touch-min);min-height:var(--touch-min);display:flex;align-items:center;justify-content:center}.star-btn:hover{transform:scale(1.08)}.star-btn.filled{color:#f5a623}.rating-text{text-align:center;font-size:.9375rem;font-weight:500;color:var(--text-secondary);margin-bottom:20px;min-height:24px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;color:var(--text-primary);font-weight:500;font-size:.875rem}.form-group textarea{width:100%;padding:10px 12px;background:var(--bg-secondary);border:1px solid var(--card-border);border-radius:var(--radius-md);color:var(--text-primary);font-family:inherit;font-size:.9375rem;resize:vertical;transition:border-color var(--transition-speed),box-shadow var(--transition-speed)}.form-group textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.char-count{text-align:right;font-size:.75rem;color:var(--text-muted);margin-top:4px}.modal-actions{display:flex;gap:8px;margin-top:20px}.cancel-btn,.submit-btn{flex:1;padding:12px;min-height:var(--touch-min);border:none;border-radius:var(--radius-md);font-weight:500;font-size:.9375rem;cursor:pointer;transition:opacity var(--transition-speed),background var(--transition-speed)}.cancel-btn{background:var(--bg-tertiary);color:var(--text-secondary)}.cancel-btn:hover:not(:disabled){background:var(--bg-secondary)}.submit-btn{background:var(--accent-primary);color:#fff}.submit-btn:hover:not(:disabled){opacity:.9}.submit-btn:disabled,.cancel-btn:disabled{opacity:.5;cursor:not-allowed}.error-message{padding:10px 12px;background:#ff3b301a;border:1px solid rgba(255,59,48,.3);border-radius:var(--radius-md);color:#ff3b30;margin-top:12px;font-size:.875rem}@media (max-width: 768px){.rating-modal{padding:20px;max-height:92dvh;overflow-y:auto}}@media (max-width: 480px){.rating-modal{width:100%;max-width:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding-bottom:calc(20px + var(--safe-bottom))}}.game-player{display:flex;flex-direction:column;height:100vh;height:100dvh;background:var(--bg-primary)}.player-header{background:var(--card-bg);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--card-border);padding:calc(10px + var(--safe-top)) calc(12px + var(--safe-right)) 10px calc(12px + var(--safe-left));display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0;z-index:10}.back-btn{padding:0 12px;min-width:var(--touch-min);min-height:var(--touch-min);background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;cursor:pointer;transition:opacity var(--transition-speed);display:flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0}.back-btn:hover{opacity:.9}.game-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0;justify-content:center}.game-icon-small{display:flex;align-items:center;flex-shrink:0}.game-title{margin:0;color:var(--text-primary);font-size:1rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions{display:flex;gap:8px;flex-shrink:0}.rate-btn{padding:0 12px;min-width:var(--touch-min);min-height:var(--touch-min);background:linear-gradient(135deg,gold,#ffed4e);color:#1a202c;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;cursor:pointer;transition:opacity var(--transition-speed);display:flex;align-items:center;justify-content:center;gap:6px}.rate-btn:hover{opacity:.92}.external-link-btn{width:var(--touch-min);height:var(--touch-min);background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--card-border);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-speed),border-color var(--transition-speed);text-decoration:none;display:flex;align-items:center;justify-content:center}.external-link-btn:hover{background:var(--bg-tertiary);border-color:var(--text-muted)}.player-container{flex:1;position:relative;overflow:hidden;min-height:0;padding-bottom:var(--safe-bottom)}.game-frame{width:100%;height:100%;border:none;display:block}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:5}.loading-spinner{width:40px;height:40px;border:3px solid var(--card-border);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay p{font-size:1rem;color:var(--text-secondary);font-weight:500}.error-container{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-primary);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;padding-bottom:calc(24px + var(--safe-bottom));text-align:center;overflow-y:auto}.error-icon{color:#e74c3c}.error-container h3{color:var(--text-primary);font-size:1.25rem;margin:0}.error-container p{color:var(--text-secondary);font-size:.9375rem;margin:0;max-width:36rem}.error-hint{background:var(--bg-secondary);padding:12px 16px;border-radius:var(--radius-md);font-size:.8125rem;border:1px solid var(--card-border)}.error-hint code{color:var(--accent-primary);font-weight:600;word-break:break-all}.retry-btn{padding:12px 24px;min-height:var(--touch-min);background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:opacity var(--transition-speed)}.retry-btn:hover{opacity:.9}@media (max-width: 480px){.back-btn-label,.rate-btn-label{display:none}.back-btn,.rate-btn{width:var(--touch-min);padding:0}.game-title{font-size:.9375rem}.player-header{gap:8px}}.subscription-success-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.subscription-success-card{max-width:480px;text-align:center;padding:2.5rem}.success-icon{color:#00e676;margin-bottom:1rem}.session-note{font-size:.85rem;color:var(--text-muted, #888);margin-top:.5rem}.success-home-btn{margin-top:1.5rem;display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--accent, #00e5ff);color:#0a0e1a;border:none;border-radius:8px;font-weight:600;cursor:pointer}.CookieConsent{z-index:9999;font-size:.9rem;padding:1rem 1.5rem}.CookieConsent a{text-decoration:underline}*{box-sizing:border-box;margin:0;padding:0}:root{--transition-speed: .2s;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 12px;--bp-sm: 480px;--bp-md: 768px;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--touch-min: 44px}[data-theme=dark]{--bg-primary: #000000;--bg-secondary: #1c1c1e;--bg-tertiary: #2c2c2e;--text-primary: #f5f5f7;--text-secondary: #a1a1a6;--text-muted: #6e6e73;--accent-primary: #0a84ff;--accent-secondary: #409cff;--accent-glow: rgba(10, 132, 255, .15);--card-bg: rgba(28, 28, 30, .72);--card-border: rgba(255, 255, 255, .08);--overlay-bg: rgba(0, 0, 0, .92);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .35)}[data-theme=light]{--bg-primary: #f5f5f7;--bg-secondary: #ffffff;--bg-tertiary: #e8e8ed;--text-primary: #1d1d1f;--text-secondary: #6e6e73;--text-muted: #86868b;--accent-primary: #0071e3;--accent-secondary: #0077ed;--accent-glow: rgba(0, 113, 227, .12);--card-bg: rgba(255, 255, 255, .82);--card-border: rgba(0, 0, 0, .08);--overlay-bg: rgba(255, 255, 255, .98);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Segoe UI,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;min-height:100dvh;transition:background var(--transition-speed),color var(--transition-speed);letter-spacing:-.01em;overflow-x:hidden;-webkit-tap-highlight-color:transparent}#root{min-height:100vh;min-height:100dvh}.glassmorphism{background:var(--card-bg);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border:1px solid var(--card-border);box-shadow:var(--shadow-sm)}.premium-badge{color:#bf8f2d;font-weight:600}.icon-inline{display:inline-flex;align-items:center;vertical-align:middle;flex-shrink:0}.icon-muted{color:var(--text-muted)}.icon-accent{color:var(--accent-primary)}
