:root{--color-bg: #0d0d1a;--color-bg-light: #151528;--color-bg-card: #1a1a2e;--color-bg-elevated: #1f1f3a;--color-primary: #e94560;--color-primary-hover: #ff6b6b;--color-primary-glow: rgba(233, 69, 96, .4);--color-secondary: #00d9ff;--color-secondary-glow: rgba(0, 217, 255, .3);--color-text: #f0f0f5;--color-text-muted: #6b6b8a;--color-success: #4ade80;--color-warning: #fbbf24;--color-error: #ef4444;--color-card-red: #dc2626;--color-card-black: #1f2937;--color-card-back: #1e40af;--color-card-bg: #f8f8f8;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--radius-xl: 24px;--radius-card: 6px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .5);--shadow-glow-primary: 0 0 30px var(--color-primary-glow);--shadow-glow-secondary: 0 0 30px var(--color-secondary-glow);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--font-display: "Outfit", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", monospace}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100vh;font-family:var(--font-display);font-size:16px;line-height:1.5;background:var(--color-bg);color:var(--color-text)}.home-page{background:radial-gradient(ellipse at 20% 0%,rgba(233,69,96,.08) 0%,transparent 50%),radial-gradient(ellipse at 80% 100%,rgba(0,217,255,.06) 0%,transparent 50%),var(--color-bg);min-height:100vh;overflow-x:hidden}.bg-suits{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.bg-suit{position:absolute;font-size:8rem;opacity:.015;animation:float 20s ease-in-out infinite;color:var(--color-text)}.suit-1{top:10%;left:5%;animation-delay:0s}.suit-2{top:60%;left:15%;animation-delay:-4s;color:var(--color-primary);opacity:.025}.suit-3{top:30%;right:10%;animation-delay:-8s;color:var(--color-primary);opacity:.02}.suit-4{top:70%;right:20%;animation-delay:-12s}.suit-5{top:85%;left:40%;animation-delay:-16s;font-size:6rem}.suit-6{top:5%;right:35%;animation-delay:-2s;color:var(--color-primary);opacity:.02;font-size:5rem}@keyframes float{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-20px) rotate(5deg)}50%{transform:translateY(0) rotate(0)}75%{transform:translateY(20px) rotate(-5deg)}}a{color:var(--color-secondary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary)}button{cursor:pointer;font-family:inherit}input{font-family:inherit;font-size:inherit}.hidden{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:1rem;font-weight:600;border:none;border-radius:var(--radius-md);transition:all var(--transition-fast);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--color-primary) 0%,#d63050 100%);color:#fff;border:none;position:relative}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--color-primary-hover) 0%,var(--color-primary) 100%);transform:translateY(-2px);box-shadow:0 6px 20px #e9456059}.btn-primary.btn-glow{box-shadow:0 0 20px #e9456033}.btn-primary.btn-glow:hover:not(:disabled){box-shadow:0 6px 30px #e9456073}.btn-secondary{background:#ffffff0d;color:var(--color-text);border:1px solid rgba(255,255,255,.1)}.btn-secondary:hover:not(:disabled){background:#ffffff1a;border-color:#fff3;transform:translateY(-1px)}.home-container{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:var(--spacing-xl);max-width:1400px;margin:0 auto}.home-header{text-align:center;margin-bottom:var(--spacing-2xl);animation:fadeInDown .6s ease-out}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.logo-section{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.card-fan{position:relative;width:55px;height:60px;flex-shrink:0}.mini-card{position:absolute;width:36px;height:50px;background:linear-gradient(145deg,#fff,#f0f0f5);border-radius:4px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000004d,inset 0 1px #fffc;transition:transform .3s ease}.mini-card .card-suit{font-size:1.1rem;color:#1a1a2e;font-weight:700}.mini-card .card-suit.red{color:var(--color-primary)}.card-fan .card-1{transform:rotate(-20deg) translate(-6px);z-index:1}.card-fan .card-2{transform:rotate(-8deg) translate(0);z-index:2}.card-fan .card-3{transform:rotate(4deg) translate(6px);z-index:3}.logo-section:hover .card-fan .card-1{transform:rotate(-25deg) translate(-10px)}.logo-section:hover .card-fan .card-2{transform:rotate(-10deg) translate(-2px)}.logo-section:hover .card-fan .card-3{transform:rotate(6deg) translate(8px)}.home-header h1{font-size:2.5rem;font-weight:800;margin:0;color:#fff;letter-spacing:-.02em;text-shadow:0 0 10px rgba(0,212,255,.4),0 0 20px rgba(0,212,255,.2),0 0 40px rgba(0,212,255,.1);animation:titleGlow 3s ease-in-out infinite}@keyframes titleGlow{0%,to{text-shadow:0 0 10px rgba(0,212,255,.4),0 0 20px rgba(0,212,255,.2),0 0 40px rgba(0,212,255,.1)}50%{text-shadow:0 0 15px rgba(0,212,255,.6),0 0 30px rgba(0,212,255,.3),0 0 50px rgba(0,212,255,.15)}}.home-header .subtitle{font-size:1rem;color:var(--color-text-muted);margin:0;font-weight:400;letter-spacing:.05em;text-transform:uppercase}.header-nav{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);margin-top:var(--spacing-lg);flex-wrap:wrap}.header-nav-links{display:flex;align-items:center;gap:var(--spacing-md)}.header-link{display:flex;align-items:center;gap:var(--spacing-xs);color:var(--color-text-muted);font-size:.85rem;font-weight:500;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);background:#ffffff08;border:1px solid rgba(255,255,255,.06);transition:all var(--transition-fast)}.header-link:hover{color:var(--color-secondary);background:#00d9ff14;border-color:#00d9ff33}.header-link svg{opacity:.7}.header-link:hover svg{opacity:1}.header-nav .auth-container{margin-top:0}.home-main{display:flex;flex-direction:column;gap:var(--spacing-lg);width:100%;max-width:440px}@media (min-width: 900px){.home-main{flex-direction:row;max-width:1100px;gap:var(--spacing-2xl);align-items:flex-start}.actions-column{flex:0 0 380px;display:flex;flex-direction:column;gap:var(--spacing-lg)}.lobby-column{flex:1;min-width:0}}.action-card{position:relative;background:linear-gradient(145deg,#151528e6,#1a1a2ef2);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-xl);overflow:hidden;transition:transform var(--transition-normal),box-shadow var(--transition-normal);animation:fadeInUp .5s ease-out both}.action-card:nth-child(1){animation-delay:.1s}.action-card:nth-child(2){animation-delay:.2s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.action-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.card-accent{position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-hover))}.card-accent.accent-cyan{background:linear-gradient(90deg,var(--color-secondary),#00ffcc)}.card-content{padding:var(--spacing-xl)}.card-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs)}.card-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-size:1.25rem;font-weight:700;flex-shrink:0}.card-icon.icon-cyan{background:var(--color-secondary);color:var(--color-bg)}.action-card h2{margin:0;font-size:1.25rem;font-weight:700;color:var(--color-text)}.action-card p{margin:0 0 var(--spacing-lg);color:var(--color-text-muted);font-size:.9rem}.action-card form{display:flex;flex-direction:column;gap:var(--spacing-md)}.input-group{position:relative}.input-group input{width:100%;padding:var(--spacing-md) var(--spacing-lg);padding-right:3rem;border:2px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);background:var(--color-bg);color:var(--color-text);font-size:1rem;font-family:var(--font-display);transition:all var(--transition-fast)}.input-group input:focus{outline:none;border-color:var(--color-primary);background:#e945600d}.input-group input::placeholder{color:var(--color-text-muted)}.input-icon{position:absolute;right:var(--spacing-md);top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}.code-input-group input{font-family:var(--font-mono);font-size:1.5rem;text-align:center;letter-spacing:.2em;text-transform:uppercase;padding-right:var(--spacing-lg)}.code-input-group input:focus{border-color:var(--color-secondary);background:#00d9ff0d}#host-name-input{text-transform:none;letter-spacing:normal}.home-footer{margin-top:auto;padding-top:var(--spacing-2xl);animation:fadeInUp .5s ease-out .4s both}.footer-nav{display:flex;gap:var(--spacing-xl);justify-content:center}.footer-link{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-muted);font-size:.9rem;font-weight:500;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:all var(--transition-fast)}.footer-link:hover{color:var(--color-text);background:#ffffff0d}.footer-link svg{opacity:.7}.toggle-label{display:flex;align-items:center;gap:var(--spacing-md);cursor:pointer;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);background:#ffffff05;transition:background var(--transition-fast)}.toggle-label:hover{background:#ffffff0a}.toggle-label input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}.toggle-switch{position:relative;width:48px;height:26px;background:var(--color-bg);border:2px solid rgba(255,255,255,.1);border-radius:13px;flex-shrink:0;transition:all var(--transition-fast)}.toggle-switch:before{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;background:var(--color-text-muted);border-radius:50%;transition:all var(--transition-normal)}.toggle-label input[type=checkbox]:checked+.toggle-switch{background:var(--color-primary);border-color:var(--color-primary)}.toggle-label input[type=checkbox]:checked+.toggle-switch:before{left:25px;background:#fff}.toggle-text{font-size:.875rem;color:var(--color-text-muted);transition:color var(--transition-fast)}.toggle-label:hover .toggle-text{color:var(--color-text)}.lobby-card{text-align:left}.lobby-card .card-content{display:flex;flex-direction:column;height:100%}.lobby-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-xs)}.lobby-header .card-header{margin-bottom:0}.btn-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.btn-icon:hover{background:#00d9ff1a;border-color:var(--color-secondary);color:var(--color-secondary)}.btn-icon:active{transform:scale(.95)}.public-rooms{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);min-height:200px;max-height:500px;overflow-y:auto;padding-right:var(--spacing-xs)}.public-rooms::-webkit-scrollbar{width:6px}.public-rooms::-webkit-scrollbar-track{background:#ffffff05;border-radius:3px}.public-rooms::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.public-rooms::-webkit-scrollbar-thumb:hover{background:#ffffff26}.room-card{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:linear-gradient(135deg,#0d0d1acc,#1a1a2e99);border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.06);transition:all var(--transition-normal);cursor:pointer}.room-card:hover{border-color:#00d9ff4d;background:linear-gradient(135deg,#00d9ff0d,#1a1a2ecc);transform:translate(4px)}.room-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.room-host{font-weight:600;color:var(--color-text);font-size:.95rem}.room-players{font-size:.8rem;color:var(--color-text-muted);font-family:var(--font-mono)}.room-status{font-size:.65rem;font-weight:600;padding:4px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.status-waiting{background:#4ade8026;color:var(--color-success);box-shadow:0 0 10px #4ade801a}.status-playing{background:#fbbf2426;color:var(--color-warning)}.room-card .btn-join{width:100%;margin-top:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-weight:600;font-size:.875rem}.btn-small{padding:var(--spacing-xs) var(--spacing-sm);font-size:.85rem}.btn-join{background:linear-gradient(135deg,var(--color-secondary) 0%,#00b8d9 100%);color:var(--color-bg);font-weight:600;border:none;transition:all var(--transition-fast)}.btn-join:hover:not(:disabled){background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:#fff;transform:translateY(-2px);box-shadow:0 4px 15px #e945604d}.lobby-card>.btn-small{width:100%}.loading-rooms,.no-rooms,.error-rooms{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-2xl);color:var(--color-text-muted);font-size:.9rem;min-height:200px}.loading-spinner{width:32px;height:32px;border:3px solid rgba(0,217,255,.1);border-top-color:var(--color-secondary);border-radius:50%;animation:spin 1s linear infinite}.error-rooms{color:var(--color-error)}.lobby-filters{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);background:#0003;padding:var(--spacing-xs);border-radius:var(--radius-lg)}.lobby-filter{flex:1;padding:var(--spacing-sm) var(--spacing-md);font-size:.8rem;font-weight:600;background:transparent;color:var(--color-text-muted);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-transform:uppercase;letter-spacing:.05em}.lobby-filter:hover{background:#ffffff0d;color:var(--color-text)}.lobby-filter.active{background:var(--color-secondary);color:var(--color-bg);box-shadow:0 2px 10px #00d9ff4d}.room-card-info{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.room-ranked-badge,.room-casual-badge{font-size:.65rem;font-weight:700;padding:3px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px}.room-ranked-badge{background:linear-gradient(135deg,#e9456033,#ff6b6b33);color:var(--color-primary);border:1px solid rgba(233,69,96,.3)}.room-casual-badge{background:#00d9ff1a;color:var(--color-secondary);border:1px solid rgba(0,217,255,.2)}.room-card.is-ranked{border-color:#e9456066;background:linear-gradient(135deg,#e945600d,#1a1a2ecc)}.room-card.is-ranked:hover{border-color:var(--color-primary);transform:translate(4px)}.rules-container{max-width:700px;margin:0 auto;padding:var(--spacing-xl)}.rules-header{margin-bottom:var(--spacing-xl)}.rules-header .back-link{display:inline-block;margin-bottom:var(--spacing-md);font-size:.9rem}.rules-header h1{margin:0;font-size:2rem;color:var(--color-primary)}.rules-content section{margin-bottom:var(--spacing-xl)}.rules-content h2{font-size:1.25rem;margin:0 0 var(--spacing-sm);color:var(--color-secondary)}.rules-content p,.rules-content ul,.rules-content ol{margin:0 0 var(--spacing-sm);color:var(--color-text-muted)}.rules-content li{margin-bottom:var(--spacing-xs)}.rules-content strong{color:var(--color-text)}.rules-footer{text-align:center;padding-top:var(--spacing-xl);border-top:1px solid var(--color-bg-light)}.spinner{width:40px;height:40px;border:3px solid var(--color-bg-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (min-width: 1200px){.home-header h1{font-size:3rem}.home-header .subtitle{font-size:1.1rem}.actions-column{flex:0 0 420px}.card-content{padding:var(--spacing-2xl)}.public-rooms{max-height:600px}}@media (max-width: 899px){.home-main{max-width:500px}.lobby-column{width:100%}}@media (max-width: 600px){.home-header h1{font-size:1.75rem}.home-header .subtitle{font-size:.85rem}.home-container{padding:var(--spacing-md)}.card-fan{display:none}.card-content{padding:var(--spacing-lg)}.action-card h2{font-size:1.1rem}.card-icon{width:32px;height:32px;font-size:1rem}.lobby-filters{flex-wrap:wrap}.lobby-filter{font-size:.75rem;padding:var(--spacing-xs) var(--spacing-sm)}.footer-nav{gap:var(--spacing-md)}.footer-link{font-size:.8rem;padding:var(--spacing-xs) var(--spacing-sm)}.bg-suit{font-size:5rem}.header-nav{flex-direction:column;gap:var(--spacing-sm)}.header-nav-links{display:flex;gap:var(--spacing-sm);justify-content:center}.header-link{font-size:.75rem;padding:var(--spacing-xs) var(--spacing-sm)}}@media (max-width: 400px){.home-header h1{font-size:1.5rem}.code-input-group input{font-size:1.25rem}}.auth-container{margin-top:var(--spacing-lg)}.auth-state{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md)}.user-info{display:flex;align-items:center;gap:var(--spacing-sm);background:#ffffff0d;border:1px solid rgba(255,255,255,.08);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg)}.tier-icon{font-size:1.2rem}.rating-value{font-weight:600;color:var(--color-secondary);font-family:var(--font-mono)}.user-name{color:var(--color-text);font-weight:500}.btn-auth{display:inline-flex;align-items:center;gap:var(--spacing-sm);background:#ffffff0d;color:var(--color-text);border:1px solid rgba(255,255,255,.1);padding:var(--spacing-sm) var(--spacing-lg);font-size:.875rem;font-weight:500;border-radius:var(--radius-lg);transition:all var(--transition-fast)}.btn-auth:hover{background:#00d9ff1a;border-color:var(--color-secondary);color:var(--color-secondary)}.btn-auth svg{opacity:.7}.auth-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center}.auth-modal.hidden{display:none}.auth-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000b3}.auth-modal-content{position:relative;background:var(--color-bg-light);padding:var(--spacing-xl);border-radius:var(--radius-lg);width:100%;max-width:400px;margin:var(--spacing-md)}.auth-modal-close{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);background:none;border:none;color:var(--color-text-muted);font-size:1.5rem;line-height:1;padding:var(--spacing-xs);cursor:pointer}.auth-modal-close:hover{color:var(--color-text)}.auth-modal-content h2{margin:0 0 var(--spacing-lg);text-align:center;color:var(--color-primary)}.auth-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-group label{font-size:.9rem;color:var(--color-text-muted)}.form-group input{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg);border:1px solid var(--color-text-muted);border-radius:var(--radius-md);color:var(--color-text);font-size:1rem}.form-group input:focus{outline:none;border-color:var(--color-secondary)}.btn-full{width:100%}.btn-google{background:#fff;color:#333;border:1px solid #ddd;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.btn-google:hover{background:#f5f5f5}.btn-google svg{flex-shrink:0}.auth-divider{display:flex;align-items:center;gap:var(--spacing-md);color:var(--color-text-muted);font-size:.9rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--color-text-muted);opacity:.3}.auth-switch{text-align:center;font-size:.9rem;color:var(--color-text-muted);margin:0}.auth-switch a{color:var(--color-secondary)}.auth-error{background:#ef44441a;border:1px solid var(--color-error);color:var(--color-error);padding:var(--spacing-sm);border-radius:var(--radius-md);font-size:.9rem;text-align:center}.auth-success{background:#4ade801a;border:1px solid var(--color-success);color:var(--color-success);padding:var(--spacing-sm);border-radius:var(--radius-md);font-size:.9rem;text-align:center}.auth-info-message{background:#e9456026;border:1px solid var(--color-primary);color:var(--color-text);padding:var(--spacing-md);border-radius:var(--radius-md);font-size:.9rem;text-align:center;margin-bottom:var(--spacing-md)}.tier-bronze{color:#cd7f32}.tier-silver{color:silver}.tier-gold{color:gold}.tier-platinum{color:#e5e4e2}.tier-diamond{color:#b9f2ff}.tier-master{color:#9932cc}.tier-grandmaster{color:#ff4500}.rating-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:2px 6px;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;background:var(--color-bg)}.guest-badge{padding:2px 6px;border-radius:var(--radius-sm);font-size:.75rem;background:var(--color-bg);color:var(--color-text-muted)}
