:root{--color-bg: #0a1120;--color-bg-warm: #0d1628;--color-surface-1: #141e35;--color-surface-2: #1a2845;--color-navy-mid: #152240;--color-navy-light: #1a2d4d;--color-primary: #0d9488;--color-primary-light: #14b8a6;--color-primary-bright:#2dd4bf;--color-primary-glow: rgba(45, 212, 191, .25);--color-accent: #E8634A;--color-accent-light: #f08c72;--color-cream: #FFF5E0;--color-cream-dark: #F5EBD5;--color-gold: #F5A623;--color-gold-light: #FFD060;--color-felt: #0a2e28;--color-felt-light: #0d3830;--color-felt-border: rgba(255, 255, 255, .15);--grad-table: linear-gradient(180deg, #0a2e28, #061e1a);--color-success: #22c55e;--color-warning: #f59e0b;--color-error: #ef4444;--color-red: #E83A30;--color-text: #e8ecf4;--color-text-sec: #8899b0;--color-text-muted: #5a6a80;--color-text-dim: #3d4e63;--color-text-inverse: #0a1120;--color-text-on-felt: #ffffff;--color-border: #1e2e48;--color-border-subtle: rgba(255, 255, 255, .06);--color-border-active: var(--color-primary-bright);--color-winner-bg: rgba(245, 166, 35, .12);--color-winner-accent: #F5A623;--color-you-border: var(--color-primary);--grad-teal: linear-gradient(135deg, #0d9488, #14b8a6);--grad-navy: linear-gradient(135deg, #1a2d4d, #253d66);--grad-coral: linear-gradient(135deg, #E8634A, #f08c72);--grad-warm: linear-gradient(135deg, #F5A623, #FFD060);--grad-hero: linear-gradient(135deg, #0d9488, #1a2d4d, #E8634A);--cat-trips-color: #af52de;--cat-trips-bg: rgba(175, 82, 222, .15);--cat-trips-border: rgba(175, 82, 222, .3);--cat-suited-seq-color: #5ac8fa;--cat-suited-seq-bg: rgba(90, 200, 250, .15);--cat-suited-seq-border:rgba(90, 200, 250, .3);--cat-seq-color: #22c55e;--cat-seq-bg: rgba(34, 197, 94, .15);--cat-seq-border: rgba(34, 197, 94, .3);--cat-flush-color: #2dd4bf;--cat-flush-bg: rgba(45, 212, 191, .15);--cat-flush-border: rgba(45, 212, 191, .3);--cat-pair-color: #F5A623;--cat-pair-bg: rgba(245, 166, 35, .15);--cat-pair-border: rgba(245, 166, 35, .3);--cat-high-color: #5a6a80;--cat-high-bg: rgba(90, 106, 128, .12);--cat-high-border: rgba(90, 106, 128, .25);--font-display: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: ui-monospace, "SF Mono", "Fira Code", monospace;--radius-sm: 6px;--radius-base: 12px;--radius-card: 10px;--radius-lg: 14px;--radius-pill: 100px;--radius-btn: 14px;--shadow-card: 0 1px 6px rgba(0,0,0,.2);--shadow-elevated: 0 4px 16px rgba(0,0,0,.25);--shadow-selected: 0 0 0 3px var(--color-primary-bright), 0 0 16px var(--color-primary-glow);--shadow-glow-teal:0 4px 16px rgba(13, 148, 136, .3);--shadow-glow-gold:0 4px 16px rgba(245, 166, 35, .35);--shadow-glow-coral:0 4px 16px rgba(232, 99, 74, .3);--shadow-inset: inset 0 1px 0 rgba(255,255,255,.04);--glass-bg: rgba(0, 0, 0, .35);--glass-blur: blur(12px);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-in-out: cubic-bezier(.45, 0, .55, 1);--transition: .15s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{display:flex;flex-direction:column;min-height:100vh}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:.02em}h1{font-size:clamp(2rem,5vw,3.5rem)}h2{font-size:clamp(1.4rem,3vw,2rem)}h3{font-size:1.2rem}.screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem 1rem;gap:2rem;position:relative;overflow:hidden}.screen-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.5rem);color:var(--color-primary);text-align:center;letter-spacing:.04em}.screen-subtitle{font-family:var(--font-body);color:var(--color-text-muted);font-size:1rem;text-align:center}.ambient-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.ambient-bg__glow{position:absolute;top:35%;left:50%;transform:translate(-50%,-50%);width:600px;height:600px;background:radial-gradient(ellipse,rgba(0,180,216,.06) 0%,transparent 70%);animation:breathe 6s ease-in-out infinite}.ambient-bg__suit{position:absolute;font-family:var(--font-display);font-size:9rem;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:.03;-webkit-user-select:none;user-select:none;animation:floatSuit 18s ease-in-out infinite;will-change:transform}.ambient-bg__suit:nth-child(2){top:8%;left:6%;animation-duration:20s;animation-delay:-4s;font-size:7rem}.ambient-bg__suit:nth-child(3){top:12%;right:8%;animation-duration:22s;animation-delay:-8s}.ambient-bg__suit:nth-child(4){bottom:15%;left:10%;animation-duration:19s;animation-delay:-2s;font-size:11rem}.ambient-bg__suit:nth-child(5){bottom:10%;right:6%;animation-duration:24s;animation-delay:-12s;font-size:8rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 2rem;border:1px solid transparent;border-radius:var(--radius-btn);font-family:var(--font-body);font-size:.9rem;font-weight:600;cursor:pointer;transition:background-color var(--transition),border-color var(--transition),color var(--transition),opacity var(--transition),transform var(--transition),box-shadow var(--transition);position:relative;overflow:hidden;-webkit-user-select:none;user-select:none}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.08) 50%,transparent 60%);transform:translate(-100%);transition:transform .4s ease}.btn:hover:after{transform:translate(100%)}.btn-primary{background:var(--grad-teal);color:#fff;border-color:transparent;box-shadow:var(--shadow-glow-teal)}.btn-primary:hover:not(:disabled){background:var(--color-primary-light);box-shadow:0 4px 20px var(--color-primary-glow);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px var(--color-primary-light)}.btn-secondary{background:transparent;border-color:var(--color-primary);color:var(--color-primary-bright)}.btn-secondary:hover:not(:disabled){background:var(--color-primary-light);border-color:var(--color-primary-hover);transform:translateY(-1px)}.btn-ghost{background:transparent;border-color:var(--color-border);color:var(--color-text-sec)}.btn-ghost:hover:not(:disabled){border-color:#0000002e;color:var(--color-text)}.btn-danger{background:transparent;border-color:#ff3b3066;color:var(--color-error)}.btn-danger:hover:not(:disabled){background:#ff3b301f;border-color:var(--color-error)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn:disabled:after{display:none}.form-input{width:100%;background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-btn);color:var(--color-text);font-family:var(--font-body);font-size:.95rem;padding:.75rem 1rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-input::placeholder{color:var(--color-text-dim)}.form-label{font-size:.8rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);display:block;margin-bottom:.35rem}.error-message{background:#ff3b3014;border:1px solid rgba(255,59,48,.25);border-radius:var(--radius-btn);padding:.75rem 1.25rem;color:var(--color-error);font-size:.875rem;text-align:center;max-width:400px;animation:slideDown .2s var(--ease-out)}.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:1000;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--color-border);border-radius:var(--radius-base);box-shadow:var(--shadow-elevated);font-size:.875rem;color:var(--color-text);min-width:280px;max-width:360px;animation:toastIn .3s var(--ease-out);pointer-events:auto;position:relative;overflow:hidden}.toast:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:4px 0 0 4px}.toast--error:before{background:var(--color-error)}.toast--success:before{background:var(--color-success)}.toast--info:before{background:var(--color-primary)}@keyframes spinnerPulse{0%,to{opacity:1}50%{opacity:.5}}.spinner{width:40px;height:40px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-right-color:var(--color-primary-light);border-radius:50%;animation:spin .75s linear infinite}.spinner-label{color:var(--color-text-muted);font-size:.875rem;margin-top:.75rem;letter-spacing:.04em;animation:spinnerPulse 2s ease-in-out infinite}.card{display:flex;flex-direction:column;align-items:center;justify-content:space-between;width:64px;height:90px;background:var(--color-surface-1);border:1.5px solid rgba(0,0,0,.1);border-radius:var(--radius-card);cursor:pointer;transition:border-color .12s ease,transform .12s var(--ease-out),box-shadow .12s ease,opacity .12s ease;position:relative;-webkit-user-select:none;user-select:none;flex-shrink:0;box-shadow:var(--shadow-card);overflow:hidden}.card:hover{transform:translateY(-5px) scale(1.03);box-shadow:0 8px 24px #00000024,0 2px 6px #00000014}.card.selected{border-color:var(--color-primary);box-shadow:var(--shadow-selected);transform:translateY(-8px) scale(1.05);animation:selectedPulse 2.5s ease-in-out infinite}.card__face{width:100%;height:100%;border-radius:inherit;object-fit:contain;pointer-events:none}.card-deal{animation:dealIn .35s var(--ease-out) both}.card-deal:nth-child(1){animation-delay:0ms}.card-deal:nth-child(2){animation-delay:80ms}.card-deal:nth-child(3){animation-delay:.16s}.card-deal:nth-child(4){animation-delay:.24s}.card-deal:nth-child(5){animation-delay:.32s}.card-deal:nth-child(6){animation-delay:.4s}.hand-cat{display:inline-flex;align-items:center;gap:.25rem;padding:.18rem .55rem;border-radius:var(--radius-pill);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;animation:fadeIn .2s var(--ease-out)}.cat-trips{background:var(--cat-trips-bg);color:var(--cat-trips-color);border:1px solid var(--cat-trips-border)}.cat-suited-seq{background:var(--cat-suited-seq-bg);color:var(--cat-suited-seq-color);border:1px solid var(--cat-suited-seq-border)}.cat-seq{background:var(--cat-seq-bg);color:var(--cat-seq-color);border:1px solid var(--cat-seq-border)}.cat-flush{background:var(--cat-flush-bg);color:var(--cat-flush-color);border:1px solid var(--cat-flush-border)}.cat-pair{background:var(--cat-pair-bg);color:var(--cat-pair-color);border:1px solid var(--cat-pair-border)}.cat-high{background:var(--cat-high-bg);color:var(--cat-high-color);border:1px solid var(--cat-high-border)}.auth-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem 1rem;gap:1.75rem;position:relative;overflow:hidden}.auth-logo-img{max-width:200px;width:100%;margin:0 auto;display:block;filter:drop-shadow(0 4px 16px var(--color-primary-glow))}.auth-logo-mark{font-family:var(--font-display);font-size:clamp(3.5rem,10vw,6rem);font-weight:700;letter-spacing:.08em;color:var(--color-primary);text-shadow:0 0 60px var(--color-primary-glow),0 2px 4px rgba(0,0,0,.1);line-height:1;text-align:center}.auth-tagline{color:var(--color-text-muted);font-family:var(--font-display);font-size:1.15rem;font-style:italic;text-align:center;letter-spacing:.04em}.auth-divider{display:flex;align-items:center;gap:1rem;width:100%;max-width:320px;color:var(--color-text-dim);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.auth-footnote{color:var(--color-text-dim);font-size:.8rem;text-align:center}.auth-footnote a,.auth-footnote button{color:var(--color-text-muted);background:none;border:none;cursor:pointer;text-decoration:underline;font-size:inherit;transition:color var(--transition)}.auth-footnote a:hover,.auth-footnote button:hover{color:var(--color-primary)}.game-bar{position:fixed;top:0;left:0;right:0;height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 1.25rem;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--color-border);z-index:100;gap:1rem}.game-bar__left{display:flex;align-items:center;gap:.75rem;min-width:80px}.game-bar__back{background:none;border:1px solid var(--color-border);border-radius:var(--radius-btn);color:var(--color-text-muted);font-size:.75rem;font-family:var(--font-body);font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:.35rem .75rem;cursor:pointer;transition:color var(--transition),border-color var(--transition)}.game-bar__back:hover{color:var(--color-text);border-color:#0000002e}.game-bar__logo{position:absolute;left:50%;transform:translate(-50%);font-family:var(--font-display);font-size:1.3rem;font-weight:600;color:var(--color-primary);letter-spacing:.08em;pointer-events:none}.game-bar__logo-img{height:2rem;width:auto;display:block}.game-bar__right{display:flex;align-items:center;gap:.75rem;min-width:80px;justify-content:flex-end}.game-bar__variant{font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-dim);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:.2rem .6rem}.game-timer{display:flex;align-items:center;justify-content:center;position:relative;width:36px;height:36px}.game-timer__svg{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotate(-90deg)}.game-timer__track{fill:none;stroke:var(--color-border);stroke-width:2.5}.game-timer__arc{fill:none;stroke:var(--color-primary);stroke-width:2.5;stroke-linecap:round;transition:stroke-dashoffset 1s linear,stroke .5s ease}.game-timer__arc--warning{stroke:var(--color-error);animation:timerPulse .8s ease-in-out infinite}.game-timer__label{font-family:var(--font-mono);font-size:.65rem;font-weight:700;color:var(--color-text-muted);position:relative;z-index:1;letter-spacing:-.02em}.game-timer__label--warning{color:var(--color-error)}.game-screen{display:flex;flex-direction:column;min-height:100vh;width:100%;padding-top:52px}.game-table{flex:1;display:flex;flex-direction:column;background:var(--grad-table);position:relative;overflow:hidden}.game-table:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.035'/%3E%3C/svg%3E");pointer-events:none;opacity:.4}.game-table:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 0%,rgba(13,148,136,.08) 0%,transparent 50%),radial-gradient(ellipse at 50% 100%,rgba(13,148,136,.05) 0%,transparent 40%);pointer-events:none}.opponent-zone{padding:1.25rem 1.25rem .75rem;position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.5rem}.opponent-panel{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;background:#fff3;border:1px solid var(--color-felt-border);border-radius:var(--radius-card);width:100%;max-width:480px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:border-color .3s ease,box-shadow .3s ease}.opponent-panel--acked{border-color:#0d948859;box-shadow:0 0 0 1px #0d948826,inset 0 0 20px #0d94880f;animation:goldFlash .5s var(--ease-out)}.opponent-panel__info{display:flex;align-items:center;gap:.6rem}.opponent-panel__avatar{width:28px;height:28px;border-radius:50%;background:#ffffff40;border:1px solid var(--color-felt-border);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.8rem;font-weight:600;color:var(--color-text-on-felt);flex-shrink:0}.opponent-panel__name{font-size:.875rem;font-weight:500;color:var(--color-text-on-felt);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opponent-panel__status{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#ffffffb3}.opponent-status-dot{width:6px;height:6px;border-radius:50%;background:var(--color-text-dim);animation:think 1.2s ease-in-out infinite}.opponent-status-dot--done{background:var(--color-success);animation:none}.opponent-ack{background:#0d948826;border:1px solid rgba(13,148,136,.35);border-radius:var(--radius-btn);padding:.4rem 1rem;color:var(--color-primary);font-size:.8rem;text-align:center;letter-spacing:.04em;animation:slideDown .25s var(--ease-out)}.table-divider{height:1px;background:linear-gradient(90deg,transparent,var(--color-felt-border),transparent);margin:.25rem 0;position:relative;z-index:1}.hand-setting-area{flex:1;display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:1.25rem;position:relative;z-index:1;width:100%;max-width:600px;margin:0 auto}.subhand-slots{display:flex;flex-direction:column;gap:.75rem;width:100%}.subhand-slot{display:flex;flex-direction:column;gap:.4rem}.subhand-slot-header{display:flex;align-items:center;justify-content:space-between;padding:0 .25rem}.subhand-slot-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);font-weight:600}.subhand-slot-cards{display:flex;gap:.625rem;padding:.875rem 1rem;background:#00000026;border:1.5px dashed rgba(255,255,255,.25);border-radius:var(--radius-card);min-height:106px;align-items:center;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);position:relative;overflow:hidden}.subhand-slot:nth-child(1) .subhand-slot-cards:after{content:"1"}.subhand-slot:nth-child(2) .subhand-slot-cards:after{content:"2"}.subhand-slot:nth-child(3) .subhand-slot-cards:after{content:"3"}.subhand-slot-cards:after{position:absolute;bottom:.4rem;right:.6rem;font-family:var(--font-display);font-size:2.5rem;font-weight:700;color:#ffffff0f;line-height:1;pointer-events:none}.subhand-slot-cards.drop-target{border-color:var(--color-primary);border-style:dashed;background:#0d94881a;box-shadow:inset 0 0 20px #0d948814}.subhand-slot-cards.full{border-style:solid;border-color:#fff3;cursor:default}.slot-placeholder{color:var(--color-text-dim);font-size:.8rem;font-style:italic;pointer-events:none}.player-zone{padding:1rem 1.25rem 1.5rem;position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.75rem;background:#0000002e;border-top:1px solid var(--color-felt-border)}.unassigned-pool{display:flex;flex-wrap:wrap;gap:.625rem;padding:1rem;background:#0000002e;border:1.5px dashed rgba(255,255,255,.22);border-radius:var(--radius-card);min-height:108px;align-items:center;justify-content:center;width:100%;max-width:480px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:border-color .2s ease}.unassigned-pool-label{width:100%;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-dim);font-weight:600}.game-footer{position:relative;z-index:1;display:flex;justify-content:center;padding:.75rem 1.25rem 1.5rem}.game-hint{color:var(--color-text-muted);font-size:.82rem;text-align:center;font-style:italic}.waiting-overlay{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2.5rem 2rem;background:#ffffff2e;border:1px solid var(--color-felt-border);border-radius:var(--radius-lg);text-align:center;width:100%;max-width:360px;margin:0 auto;animation:fadeIn .3s var(--ease-out);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.waiting-overlay p{color:#ffffffd9;font-size:.925rem;letter-spacing:.02em}.game-screen--waiting{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;position:relative;z-index:1;padding:2rem 1rem}.results-screen{display:flex;flex-direction:column;align-items:center;padding:3rem 1rem 2.5rem;gap:2rem;min-height:100vh;width:100%;position:relative;overflow:hidden}.results-screen__bg-glow{position:absolute;top:0;left:50%;transform:translate(-50%);width:500px;height:300px;background:radial-gradient(ellipse at center top,rgba(0,180,216,.08) 0%,transparent 70%);pointer-events:none}.results-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.5rem);color:var(--color-primary);text-align:center;letter-spacing:.04em;animation:fadeIn .5s var(--ease-out);position:relative}.results-cards{display:flex;flex-direction:column;gap:.875rem;width:100%;max-width:500px}.result-card{background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:1.25rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;transition:border-color var(--transition),box-shadow var(--transition);box-shadow:var(--shadow-inset);animation:resultSlideIn .4s var(--ease-out) both}.result-card:nth-child(1){animation-delay:.1s}.result-card:nth-child(2){animation-delay:.25s}.result-card:nth-child(3){animation-delay:.4s}.result-card:nth-child(4){animation-delay:.55s}.result-card.winner{background:var(--color-winner-bg);border-color:#ffd60a59;box-shadow:0 0 0 1px #ffd60a1f,var(--shadow-inset)}.result-card.you{border-color:#00b4d866}.result-player-info{display:flex;flex-direction:column;gap:.3rem}.result-player-name{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--color-text)}.result-badges{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.badge{display:inline-block;padding:.18rem .55rem;border-radius:var(--radius-pill);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;animation:badgePop .35s var(--ease-spring) both}.badge-winner{background:var(--color-winner-accent);color:#1a1400;box-shadow:0 2px 8px #ffd60a59}.badge-perfect{background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff;box-shadow:0 2px 8px #7c3aed4d}.badge-you{background:var(--color-primary-light);color:var(--color-primary);border:1px solid rgba(0,180,216,.3)}.result-score{font-family:var(--font-display);font-size:2.25rem;font-weight:700;color:var(--color-primary);line-height:1;text-shadow:0 0 20px var(--color-primary-glow)}.result-details{font-size:.72rem;color:var(--color-text-muted);text-align:right;letter-spacing:.04em;margin-top:.15rem}.results-actions{display:flex;gap:.875rem;flex-wrap:wrap;justify-content:center;animation:fadeIn .5s var(--ease-out) .6s both}.lobby-hub{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem 2rem 1.75rem;background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:300px;max-width:360px;width:100%;box-shadow:var(--shadow-elevated);animation:slideUp .3s var(--ease-out)}.lobby-hub__greeting{font-family:var(--font-display);font-size:1.1rem;color:var(--color-text-muted);text-align:center;letter-spacing:.03em}.lobby-hub__stat-row{display:flex;align-items:center;gap:.75rem;color:var(--color-text-dim);font-size:.8rem}.lobby-hub__stat-row strong{color:var(--color-primary);font-weight:600}.lobby-hub__actions{display:flex;flex-direction:column;gap:.75rem;width:100%}.lobby-hub__btn--primary{width:100%}.lobby-hub__btn--secondary{background:none;border:none;color:var(--color-text-muted);font-size:.875rem;font-family:var(--font-body);cursor:pointer;text-decoration:none;padding:.25rem 0;transition:color var(--transition);letter-spacing:.02em}.lobby-hub__btn--secondary:hover{color:var(--color-primary)}.lobby-hub__divider{width:100%;height:1px;background:var(--color-border)}.lobby-hub__online{font-size:.78rem;color:var(--color-text-dim);display:flex;align-items:center;gap:.4rem}.online-dot{width:5px;height:5px;border-radius:50%;background:var(--color-success);box-shadow:0 0 4px var(--color-success);flex-shrink:0}.lobby-status{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:2.5rem 2rem;background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:300px;box-shadow:var(--shadow-elevated),var(--shadow-inset);animation:slideUp .3s var(--ease-out);text-align:center}.lobby-status-text{color:var(--color-text-muted);font-size:.95rem;letter-spacing:.03em}.lobby-status-sub{color:var(--color-text-dim);font-size:.8rem}.lobby-join{display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:2rem;background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:300px;max-width:360px;width:100%;box-shadow:var(--shadow-elevated),var(--shadow-inset);animation:slideUp .3s var(--ease-out)}.lobby-join__title{font-family:var(--font-display);font-size:1.4rem;color:var(--color-text);letter-spacing:.03em}.lobby-join__code-row{display:flex;gap:.6rem}.lobby-join__char{width:52px;height:60px;text-align:center;font-family:var(--font-mono);font-size:1.75rem;font-weight:700;letter-spacing:0;background:var(--color-surface-1);border:1.5px solid var(--color-border);border-radius:var(--radius-base);color:var(--color-primary);outline:none;transition:border-color var(--transition),box-shadow var(--transition);caret-color:var(--color-primary)}.lobby-join__char:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.lobby-join__input{width:100%;max-width:200px;text-align:center;font-family:var(--font-mono);font-size:2rem;font-weight:700;letter-spacing:.3em;background:var(--color-surface-1);border:1.5px solid var(--color-border);border-radius:var(--radius-btn);color:var(--color-primary);padding:.6rem;text-transform:uppercase;outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.lobby-join__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.waiting-room{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:2rem;background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:300px;max-width:420px;width:100%;box-shadow:var(--shadow-elevated),var(--shadow-inset);animation:slideUp .3s var(--ease-out)}.waiting-room__code{display:flex;flex-direction:column;align-items:center;gap:.3rem;text-align:center}.waiting-room__code-value{font-family:var(--font-mono);font-size:2.5rem;font-weight:700;color:var(--color-primary);letter-spacing:.25em;cursor:pointer;transition:color var(--transition),text-shadow var(--transition);text-shadow:0 0 20px var(--color-primary-glow)}.waiting-room__code-value:hover{color:var(--color-primary-hover);text-shadow:0 0 30px var(--color-primary-glow)}.waiting-room__copy-hint{font-size:.72rem;color:var(--color-text-dim);letter-spacing:.06em;text-transform:uppercase}.waiting-room__players{list-style:none;width:100%;display:flex;flex-direction:column;gap:.5rem}.waiting-room__player{display:flex;align-items:center;gap:.6rem;padding:.65rem 1rem;background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-base);font-size:.9rem;color:var(--color-text);animation:slideDown .2s var(--ease-out)}.waiting-room__player.player--host{border-color:#00b4d859;color:var(--color-primary);background:var(--color-primary-light)}.waiting-room__player.player--empty{border-style:dashed;color:var(--color-text-dim);font-style:italic;font-size:.82rem;animation:emptySeatPulse 2s ease-in-out infinite}.waiting-room__player-avatar{width:24px;height:24px;border-radius:50%;background:var(--color-surface-3);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;font-size:.65rem;font-family:var(--font-display);font-weight:600;color:var(--color-text-muted);flex-shrink:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:500;animation:fadeIn .2s ease}.modal-panel{background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:2rem;width:100%;max-width:400px;position:relative;box-shadow:var(--shadow-elevated);animation:slideUp .25s var(--ease-out)}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:.8rem;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:color var(--transition),border-color var(--transition)}.modal-close:hover{color:var(--color-text);border-color:#0000002e}.modal-tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border);margin-bottom:1.5rem}.modal-tab{background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;padding:.6rem 1.25rem;font-family:var(--font-body);font-size:.875rem;font-weight:500;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition),border-color var(--transition);letter-spacing:.02em}.modal-tab:hover{color:var(--color-text)}.modal-tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.modal-form{display:flex;flex-direction:column;gap:.875rem}.modal-label{font-size:.78rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);display:block;margin-bottom:.35rem}.modal-input{width:100%;background:var(--color-surface-3);border:1px solid var(--color-border);border-radius:var(--radius-btn);color:var(--color-text);font-family:var(--font-body);font-size:.95rem;padding:.7rem .875rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.modal-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.modal-input:disabled{opacity:.5}.modal-hint{font-size:.85rem;color:var(--color-text-muted);line-height:1.6}.modal-hint strong{color:var(--color-text)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes breathe{0%,to{opacity:1;transform:translate(-50%,-50%) scale(1)}50%{opacity:.6;transform:translate(-50%,-50%) scale(1.15)}}@keyframes floatSuit{0%{transform:translateY(0) rotate(0)}33%{transform:translateY(-18px) rotate(3deg)}66%{transform:translateY(-8px) rotate(-2deg)}to{transform:translateY(0) rotate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes dealIn{0%{opacity:0;transform:translateY(40px) scale(.9) rotate(-2deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes badgePop{0%{opacity:0;transform:scale(.6)}60%{transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes resultSlideIn{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes selectedPulse{0%,to{box-shadow:var(--shadow-selected)}50%{box-shadow:0 0 0 3px var(--color-primary),0 6px 32px var(--color-primary-glow)}}@keyframes goldFlash{0%{box-shadow:0 0 0 0 var(--color-primary-glow)}to{box-shadow:0 0 0 8px transparent}}@keyframes timerPulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes think{0%,80%,to{opacity:.3}40%{opacity:1}}@keyframes emptySeatPulse{0%,to{opacity:.4}50%{opacity:.7}}@keyframes spinnerPulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes toastIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@media (max-width: 600px){.card{width:54px;height:76px}.result-card{padding:1rem 1.125rem}.result-score{font-size:1.75rem}.results-cards{max-width:100%}.subhand-slot-cards{flex-wrap:wrap}.unassigned-pool{justify-content:center}.hand-setting-area{padding:.875rem;gap:.875rem}.game-bar__logo{font-size:1.1rem}.lobby-hub,.lobby-status,.lobby-join,.waiting-room{min-width:0;width:100%}.results-actions{flex-direction:column;width:100%;max-width:320px}.results-actions .btn{width:100%}}@media (min-width: 640px){.hand-setting-area{max-width:560px}.unassigned-pool{max-width:540px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{--duration-fast: .1s;--duration-base: .2s;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-6xl: 3.75rem;--color-hand-trips: #af52de;--color-hand-suited-seq: #007aff;--color-hand-seq: #34c759;--color-hand-flush: #5ac8fa;--color-hand-pair: #ff9f0a;--color-hand-high: #8e8e93}@media (prefers-reduced-motion: no-preference){@keyframes card-flip{0%{transform:rotateY(0)}50%{transform:rotateY(90deg)}to{transform:rotateY(0)}}}.card--flipping{animation:card-flip .6s var(--ease-in-out)}.app-shell{display:flex;flex-direction:column;min-height:100vh}.nav-shell{position:sticky;top:0;z-index:100;background:var(--glass-bg);border-bottom:1px solid rgba(0,0,0,.06);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);height:48px}.nav-shell__inner{display:flex;align-items:center;max-width:1200px;margin:0 auto;padding:0 1rem;height:100%;gap:1.5rem}.nav-shell__logo{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-primary);text-decoration:none;font-weight:700}.nav-shell__logo-img{height:1.75rem;width:auto;display:block}.nav-shell__links{display:flex;gap:1rem;flex:1}.nav-shell__link{color:var(--color-text-muted);text-decoration:none;font-size:var(--text-sm);transition:color var(--duration-fast) var(--ease-out)}.nav-shell__link:hover{color:var(--color-text)}.nav-shell__right{display:flex;align-items:center;gap:.75rem;margin-left:auto}.nav-shell__avatar{width:32px;height:32px;border-radius:var(--radius-pill);background:var(--color-primary-light);border:1px solid rgba(0,180,216,.35);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);color:var(--color-primary);font-size:var(--text-sm);text-decoration:none}.nav-shell__settings{color:var(--color-text-muted);text-decoration:none;font-size:var(--text-base);transition:color var(--duration-fast) var(--ease-out)}.nav-shell__settings:hover{color:var(--color-primary)}.nav-shell__hamburger{display:none;background:none;border:none;color:var(--color-text-muted);font-size:var(--text-xl);cursor:pointer}.nav-shell__drawer{display:flex;flex-direction:column;background:var(--color-surface-1);padding:1rem;border-bottom:1px solid var(--color-border)}.nav-shell__drawer-link{color:var(--color-text);text-decoration:none;padding:.75rem 0;border-bottom:1px solid var(--color-border-subtle);font-size:var(--text-base)}@media (max-width: 639px){.nav-shell__links{display:none}.nav-shell__hamburger{display:block}.nav-shell__settings{display:none}}.landing-screen{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg)}.landing-hero{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem 1rem;gap:.75rem;position:relative;z-index:1}.landing-hero__rule{width:280px;height:1px;background:#00b4d859}.landing-hero__title{font-family:var(--font-display);font-size:var(--text-6xl);color:var(--color-primary);text-shadow:0 0 40px var(--color-primary-glow);margin:0;line-height:1}.landing-hero__subtitle{font-size:var(--text-sm);letter-spacing:.3em;color:var(--color-text-muted);margin:0;font-weight:500}.landing-hero__tagline{font-style:italic;color:var(--color-text-muted);font-size:var(--text-xl);margin:.5rem 0 1rem}.landing-hero__ctas{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.landing-hero__btn--primary{min-width:200px}.landing-hero__btn--secondary{min-width:140px}.landing-hero__signin{font-size:var(--text-sm);color:var(--color-text-muted)}.landing-hero__signin-link{color:var(--color-primary)}.landing-how{padding:3rem 1rem;text-align:center;background:var(--color-surface-1)}.landing-how__title{font-family:var(--font-display);font-size:var(--text-3xl);color:var(--color-primary);margin-bottom:2rem}.landing-how__cards{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}.landing-how__card{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;min-width:180px;max-width:240px;flex:1;transition:border-color var(--duration-base) var(--ease-out)}.landing-how__card:hover{border-color:#00b4d859}.landing-how__icon{font-size:var(--text-3xl);display:block;margin-bottom:.75rem}.landing-how__step-title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-text);margin:0 0 .5rem}.landing-how__step-desc{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.landing-footer{padding:1.5rem;text-align:center;color:var(--color-text-dim);font-size:var(--text-xs)}.landing-footer__link{color:var(--color-text-dim)}.profile-screen{max-width:640px;margin:0 auto;padding:2rem 1rem;display:flex;flex-direction:column;gap:2rem}.profile-card{background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:2rem;text-align:center}.profile-avatar{width:72px;height:72px;border-radius:var(--radius-pill);background:var(--color-primary-light);border:1px solid rgba(0,180,216,.35);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:var(--text-3xl);color:var(--color-primary);margin:0 auto 1rem}.profile-name{font-size:var(--text-xl);color:var(--color-text);margin:0 0 .25rem}.profile-rating{color:var(--color-primary);font-size:var(--text-sm);margin:0 0 1rem}.profile-edit-btn{margin-top:.5rem}.profile-section-title{font-size:var(--text-lg);color:var(--color-text-muted);margin-bottom:1rem;font-weight:500}.profile-stats__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.profile-stat-tile{background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-base);padding:1rem;text-align:center}.profile-stat-tile__value{display:block;font-family:var(--font-display);font-size:var(--text-3xl);color:var(--color-text);line-height:1}.profile-stat-tile__label{display:block;font-size:var(--text-xs);color:var(--color-text-muted);margin-top:.25rem}.profile-recent__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.profile-recent__see-all{color:var(--color-primary);font-size:var(--text-sm);text-decoration:none}.profile-recent__empty{color:var(--color-text-muted);font-size:var(--text-sm)}.leaderboard-screen{max-width:800px;margin:0 auto;padding:2rem 1rem}.leaderboard-title{font-family:var(--font-display);font-size:var(--text-3xl);color:var(--color-primary);margin-bottom:1.5rem}.leaderboard-tabs{display:flex;gap:.25rem;margin-bottom:1.5rem;border-bottom:1px solid var(--color-border);padding-bottom:0}.leaderboard-tab{background:none;border:none;color:var(--color-text-muted);padding:.5rem 1rem;cursor:pointer;font-size:var(--text-sm);border-bottom:2px solid transparent;transition:all var(--duration-fast) var(--ease-out);margin-bottom:-1px}.leaderboard-tab:hover{color:var(--color-text)}.leaderboard-tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.leaderboard-table{width:100%;border-collapse:collapse;background:var(--color-surface-1);border-radius:var(--radius-base);overflow:hidden}.leaderboard-th{padding:.75rem 1rem;text-align:left;font-size:var(--text-xs);color:var(--color-text-muted);border-bottom:1px solid var(--color-border);text-transform:uppercase;letter-spacing:.08em}.leaderboard-empty-row td{padding:2rem}.leaderboard-empty{color:var(--color-text-muted);font-size:var(--text-sm);text-align:center}.leaderboard-footer{color:var(--color-text-dim);font-size:var(--text-xs);margin-top:1rem}@media (max-width: 639px){.leaderboard-th--hide-sm{display:none}}.history-screen{max-width:720px;margin:0 auto;padding:2rem 1rem}.history-title{font-family:var(--font-display);font-size:var(--text-3xl);color:var(--color-primary);margin-bottom:1.5rem}.history-list{display:flex;flex-direction:column;gap:0;background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-base);overflow:hidden}.history-empty{color:var(--color-text-muted);font-size:var(--text-sm);padding:2rem;text-align:center}.how-to-play-screen{max-width:720px;margin:0 auto;padding:2rem 1rem;display:flex;flex-direction:column;gap:2rem}.htp-title{font-family:var(--font-display);font-size:var(--text-4xl);color:var(--color-primary);margin-bottom:0}.htp-section{display:flex;flex-direction:column;gap:1rem}.htp-section-title{font-size:var(--text-xl);color:var(--color-text);font-weight:600}.htp-text{color:var(--color-text-muted);line-height:1.6}.htp-table{width:100%;border-collapse:collapse;background:var(--color-surface-1);border-radius:var(--radius-base);overflow:hidden}.htp-th{padding:.75rem 1rem;text-align:left;font-size:var(--text-xs);color:var(--color-text-muted);border-bottom:1px solid var(--color-border);text-transform:uppercase}.htp-tr{border-bottom:1px solid var(--color-border-subtle)}.htp-td{padding:.75rem 1rem;font-size:var(--text-sm);color:var(--color-text)}.htp-td--mono{font-family:var(--font-mono)}.htp-list{color:var(--color-text-muted);padding-left:1.5rem;line-height:2}.htp-variants{display:flex;gap:1rem;flex-wrap:wrap}.htp-variant-card{flex:1;min-width:160px;background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-base);padding:1rem}.htp-variant-title{color:var(--color-text);margin:0 0 .5rem;font-size:var(--text-base)}.htp-variant-desc{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.htp-cta{text-align:center;padding:2rem 0}.htp-cta-text{color:var(--color-text-muted);margin-bottom:1rem}.settings-screen{max-width:480px;margin:0 auto;padding:2rem 1rem;display:flex;flex-direction:column;gap:2rem}.settings-title{font-family:var(--font-display);font-size:var(--text-3xl);color:var(--color-primary);margin-bottom:0}.settings-section{display:flex;flex-direction:column;background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-base);overflow:hidden}.settings-section-title{font-size:var(--text-xs);color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.1em;padding:.75rem 1rem;border-bottom:1px solid var(--color-border)}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;border-bottom:1px solid var(--color-border-subtle)}.settings-row--divider{padding:0;border-bottom:1px solid var(--color-border);height:0}.settings-row__label{font-size:var(--text-sm);color:var(--color-text)}.settings-row__label--danger{color:var(--color-error)}.settings-row__value{font-size:var(--text-sm);color:var(--color-text-muted)}.settings-row__action{padding:.25rem .75rem}.settings-row__select{background:var(--color-surface-3);border:1px solid var(--color-border);color:var(--color-text);border-radius:var(--radius-sm);padding:.25rem .5rem;font-size:var(--text-sm)}.settings-toggle{padding:.25rem .75rem;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-surface-3);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.settings-toggle--on{background:var(--color-primary-light);border-color:#00b4d859;color:var(--color-primary)}[data-reduce-motion=true] *{animation-duration:.001ms!important;transition-duration:.001ms!important}.avatar-wrapper{display:flex;flex-direction:column;align-items:center;gap:4px}.avatar{border-radius:50%;background:var(--grad-navy);display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--color-text);flex-shrink:0;position:relative;overflow:visible}.avatar--ring-thinking{box-shadow:0 0 0 3px var(--color-warning);animation:avatarPulse 1.4s ease-in-out infinite}.avatar--ring-ready{box-shadow:0 0 0 3px var(--color-primary-bright)}.avatar--ring-winner{box-shadow:0 0 0 3px var(--color-gold),var(--shadow-glow-gold)}.avatar__crown{position:absolute;top:-6px;right:-6px;font-size:11px;line-height:1}.avatar__label{font-size:10px;color:var(--color-text-muted);max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}@keyframes avatarPulse{0%,to{box-shadow:0 0 0 3px var(--color-warning)}50%{box-shadow:0 0 0 3px #f59e0b4d}}.score-badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 10px;border-radius:var(--radius-pill);font-size:14px;font-weight:800;line-height:1.2;white-space:nowrap}.score-badge--positive{background:#22c55e26;color:var(--color-success)}.score-badge--negative{background:#ef444426;color:var(--color-error)}.score-badge--zero{background:#f5a62326;color:var(--color-gold)}.result-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:var(--radius-pill);font-size:10px;font-weight:700;line-height:1.4;white-space:nowrap}.result-chip--win{background:#22c55e26;color:var(--color-success)}.result-chip--loss{background:#ef444426;color:var(--color-error)}.result-chip--tie{background:#f59e0b26;color:var(--color-warning)}.tab-bar{position:fixed;bottom:0;left:0;right:0;height:60px;display:flex;align-items:stretch;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-top:1px solid var(--color-border);padding-bottom:env(safe-area-inset-bottom,0px);z-index:200}.tab-bar__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;cursor:pointer;padding:6px 0 4px;transition:opacity var(--transition)}.tab-bar__item:hover{opacity:.85}.tab-bar__icon{font-size:20px;line-height:1;color:var(--color-text-muted);transition:color var(--transition)}.tab-bar__label{font-size:10px;font-weight:600;color:var(--color-text-muted);transition:color var(--transition)}.tab-bar__item--active .tab-bar__icon,.tab-bar__item--active .tab-bar__label{color:var(--color-primary-bright)}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:300;display:flex;align-items:flex-end}.sheet-content{width:100%;max-width:480px;margin:0 auto;background:var(--color-surface-1);border-radius:20px 20px 0 0;border:1px solid var(--color-border);border-bottom:none;padding:20px 20px calc(20px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:18px}.sheet-drag-indicator{width:36px;height:4px;background:var(--color-border);border-radius:2px;margin:0 auto -8px}.sheet-header{display:flex;align-items:center;justify-content:space-between}.sheet-title{font-size:18px;font-weight:800;color:var(--color-text)}.sheet-close-btn{background:var(--color-surface-2);border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-muted);font-size:14px;transition:background var(--transition)}.sheet-close-btn:hover{background:var(--color-border)}.sheet-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);margin-bottom:6px}.match-type-toggle{display:flex;background:var(--color-surface-2);border-radius:var(--radius-base);padding:3px;gap:3px}.match-type-btn{flex:1;padding:8px;border:none;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;transition:all var(--transition);background:transparent;color:var(--color-text-muted)}.match-type-btn--active{background:var(--color-surface-1);color:var(--color-text);box-shadow:var(--shadow-card)}.player-counter{display:flex;align-items:center;gap:16px;background:var(--color-surface-2);border-radius:var(--radius-base);padding:10px 16px}.player-counter__btn{width:32px;height:32px;border-radius:50%;border:none;background:var(--color-surface-1);color:var(--color-text);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition)}.player-counter__btn:disabled{opacity:.35;cursor:not-allowed}.player-counter__value{flex:1;text-align:center;font-size:18px;font-weight:700;color:var(--color-text)}.rule-toggle-row{display:flex;align-items:center;justify-content:space-between;background:var(--color-surface-2);border-radius:var(--radius-base);padding:12px 16px}.rule-toggle-label{font-size:14px;font-weight:600;color:var(--color-text)}.rule-toggle-switch{width:44px;height:26px;border-radius:13px;background:var(--color-border);border:none;cursor:pointer;position:relative;transition:background .2s ease}.rule-toggle-switch--on{background:var(--grad-teal)}.rule-toggle-switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s ease}.rule-toggle-switch--on:after{transform:translate(18px)}.sheet-action-btn{width:100%;padding:14px;border:none;border-radius:var(--radius-btn);font-size:15px;font-weight:700;cursor:pointer;transition:opacity var(--transition)}.sheet-action-btn:hover{opacity:.9}.sheet-action-btn--primary{background:var(--grad-teal);color:#fff;box-shadow:var(--shadow-glow-teal)}.sheet-action-btn--coral{background:var(--grad-coral);color:#fff;box-shadow:var(--shadow-glow-coral)}.sheet-action-btn--ghost{background:transparent;color:var(--color-accent);border:1.5px solid var(--color-border)}.matchmaking-view{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem 1.5rem;background:linear-gradient(170deg,var(--color-bg),var(--color-navy-mid),var(--color-bg));gap:1.5rem}.matchmaking-players{display:flex;align-items:center;gap:24px}.matchmaking-vs{font-size:20px;font-weight:700;color:var(--color-text-muted);transition:color .3s ease}.matchmaking-vs--found{color:var(--color-primary-bright)}.matchmaking-circles{display:flex;gap:8px}.matchmaking-circle{width:40px;height:40px;border-radius:50%;border:1.5px dashed var(--color-border);animation:spinCircle 2s linear infinite}.matchmaking-circle:nth-child(2){animation-delay:.4s}.matchmaking-circle:nth-child(3){animation-delay:.8s}.matchmaking-circle:nth-child(4){animation-delay:1.2s}.matchmaking-circle:nth-child(5){animation-delay:1.6s}@keyframes spinCircle{0%{border-color:var(--color-border)}50%{border-color:var(--color-primary)}to{border-color:var(--color-border)}}.matchmaking-config-pill{background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:6px 16px;font-size:13px;color:var(--color-text-sec)}.matchmaking-timer{font-family:var(--font-mono);font-size:16px;color:var(--color-text-muted)}.matchmaking-status{font-size:14px;color:var(--color-text-sec);animation:fadeIn .3s ease}.matchmaking-cancel-btn{background:none;border:none;color:var(--color-accent);font-size:14px;cursor:pointer;padding:8px 16px}.landing-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem 1rem;background:linear-gradient(170deg,var(--color-bg),var(--color-navy-mid),var(--color-bg));gap:1.5rem}.landing-logo-img{width:120px;height:auto;display:block}.landing-subtitle{font-size:13px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--color-cream)}.landing-tagline{font-size:14px;color:var(--color-text-sec);text-align:center}.landing-ctas{display:flex;flex-direction:column;gap:12px;width:100%;max-width:360px}.landing-btn-play{width:100%;padding:16px;background:var(--grad-teal);color:#fff;border:none;border-radius:var(--radius-btn);font-size:16px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-glow-teal);transition:opacity var(--transition);text-align:center;text-decoration:none;display:block}.landing-btn-play:hover{opacity:.9}.landing-btn-ghost{width:100%;padding:14px;background:transparent;color:var(--color-cream);border:1.5px solid var(--color-border);border-radius:var(--radius-btn);font-size:15px;font-weight:600;cursor:pointer;transition:border-color var(--transition),opacity var(--transition);text-align:center;text-decoration:none;display:block}.landing-btn-ghost:hover{border-color:var(--color-text-muted)}.landing-how{text-align:center;width:100%;max-width:360px}.landing-how__title{font-size:18px;font-weight:700;color:var(--color-text);margin-bottom:12px}.landing-how__cards{display:flex;gap:12px;justify-content:center}.landing-how__card{flex:1;background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-base);padding:14px 10px;display:flex;flex-direction:column;align-items:center;gap:6px}.landing-how__icon{font-size:22px}.landing-how__step-title{font-size:13px;font-weight:700;color:var(--color-text)}.landing-how__step-desc{font-size:11px;color:var(--color-text-muted)}.landing-footer{font-size:12px;color:var(--color-text-muted);text-align:center}.landing-footer__link{color:var(--color-primary);text-decoration:none}.auth-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem 1.5rem;background:linear-gradient(170deg,var(--color-bg),var(--color-navy-mid),var(--color-bg));gap:1.25rem;position:relative;overflow:hidden}.auth-logo-img{width:80px;height:auto;display:block;margin:0 auto}.auth-logo-mark{font-family:var(--font-display);font-size:clamp(3.5rem,10vw,6rem);font-weight:700;letter-spacing:.08em;color:var(--color-primary-bright);text-shadow:0 0 60px var(--color-primary-glow),0 2px 4px rgba(0,0,0,.3);line-height:1;text-align:center}.auth-tagline{color:var(--color-text-sec);font-size:1rem;text-align:center}.auth-divider{display:flex;align-items:center;gap:1rem;width:100%;max-width:320px;color:var(--color-text-muted);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.auth-buttons{display:flex;flex-direction:column;gap:.85rem;width:100%;max-width:320px}.auth-buttons .btn{width:100%;padding:.9rem 2rem}.auth-subtitle{font-family:var(--font-body);font-size:.85rem;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--color-text-muted);text-align:center}.auth-footnote{color:var(--color-text-muted);font-size:.8rem;text-align:center}.auth-footnote a,.auth-footnote button{color:var(--color-text-sec);background:none;border:none;cursor:pointer;text-decoration:underline;font-size:inherit;transition:color var(--transition)}.auth-footnote a:hover,.auth-footnote button:hover{color:var(--color-primary-bright)}.lobby-screen{min-height:100vh;background:var(--color-bg-warm);padding-bottom:76px}.lobby-hub{display:flex;flex-direction:column;gap:1.25rem;padding:1.5rem 1rem 1rem;max-width:480px;margin:0 auto;animation:slideUp .3s var(--ease-out)}.lobby-hub__greeting{font-size:13px;color:var(--color-text-sec)}.lobby-hub__greeting strong{color:var(--color-cream);font-weight:800}.hero-play-btn{width:100%;padding:18px;background:var(--grad-teal);color:#fff;border:none;border-radius:var(--radius-btn);font-size:18px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-glow-teal);transition:opacity var(--transition);display:flex;align-items:center;justify-content:center;gap:8px}.hero-play-btn:hover{opacity:.9}.lobby-section-title{font-size:15px;font-weight:700;color:var(--color-text);margin-bottom:8px}.your-games{display:flex;flex-direction:column;gap:8px}.game-row{display:flex;align-items:center;gap:12px;background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-base);padding:12px 14px;cursor:pointer;transition:border-color var(--transition)}.game-row:hover{border-color:var(--color-primary)}.game-row__info{flex:1;min-width:0}.game-row__opponent{font-size:14px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-row__meta{font-size:11px;color:var(--color-text-muted);margin-top:2px}.game-row__status{font-size:11px;font-weight:700;color:var(--color-text-muted);white-space:nowrap}.waiting-room{max-width:480px;margin:0 auto;padding:1.5rem 1rem;display:flex;flex-direction:column;gap:1.25rem}.waiting-room__back-btn{background:none;border:none;color:var(--color-cream);font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:4px;padding:0}.waiting-room__code-hero{text-align:center}.waiting-room__code{font-family:var(--font-mono);font-size:48px;font-weight:700;letter-spacing:12px;color:var(--color-primary-bright);text-shadow:0 0 30px rgba(45,212,191,.3);display:block;margin-bottom:10px}.waiting-room__copy-btn{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-sec);font-size:12px;font-weight:600;padding:6px 16px;cursor:pointer;transition:background var(--transition),color var(--transition)}.waiting-room__copy-btn--copied{background:#0d948826;color:var(--color-primary-bright);border-color:var(--color-primary)}.config-pills{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.config-pill{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-sec);font-size:12px;padding:4px 12px}.waiting-room__divider{height:1px;background:var(--color-border)}.waiting-room__players-header{font-size:13px;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}.player-list{display:flex;flex-direction:column;gap:8px}.player-list-item{display:flex;align-items:center;gap:12px;background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-base);padding:12px 14px}.player-list-item__info{flex:1}.player-list-item__handle{font-size:14px;font-weight:700;color:var(--color-text)}.player-list-item__badges{display:flex;gap:6px;align-items:center;margin-top:2px}.host-badge{background:#f5a62326;color:var(--color-gold);border:1px solid rgba(245,166,35,.3);border-radius:var(--radius-pill);font-size:10px;font-weight:700;padding:1px 7px;text-transform:uppercase;letter-spacing:.05em}.player-status-dot{width:8px;height:8px;border-radius:50%;background:var(--color-success);flex-shrink:0}.empty-slot{display:flex;align-items:center;justify-content:center;padding:14px;border:1.5px dashed var(--color-border);border-radius:var(--radius-base);color:var(--color-text-muted);font-size:13px;font-style:italic}.waiting-room__share-btn{width:100%;padding:12px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-btn);color:var(--color-text-sec);font-size:14px;font-weight:600;cursor:pointer;transition:border-color var(--transition)}.waiting-room__share-btn:hover{border-color:var(--color-text-muted)}.waiting-room__start-btn{width:100%;padding:16px;background:var(--grad-teal);border:none;border-radius:var(--radius-btn);color:#fff;font-size:16px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-glow-teal);transition:opacity var(--transition)}.waiting-room__start-btn:disabled{background:var(--color-surface-2);box-shadow:none;opacity:.5;cursor:not-allowed}.quick-match-view{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1.5rem;padding:2rem 1rem}.quick-match-view p{color:var(--color-text-sec);font-size:14px}.history-screen{min-height:100vh;background:var(--color-bg-warm);padding:1.5rem 1rem calc(76px + 1rem);max-width:480px;margin:0 auto}.history-title{font-size:26px;font-weight:800;color:var(--color-text);margin-bottom:1rem}.history-stats-row{display:flex;gap:10px;margin-bottom:1rem}.history-stat-card{flex:1;background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-base);padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:4px}.history-stat-icon{font-size:18px}.history-stat-value{font-size:18px;font-weight:800;color:var(--color-text)}.history-stat-label{font-size:10px;color:var(--color-text-muted);text-align:center}.history-filter-pills{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:1rem;scrollbar-width:none}.history-filter-pills::-webkit-scrollbar{display:none}.history-filter-pill{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-muted);font-size:12px;font-weight:500;padding:5px 14px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all var(--transition)}.history-filter-pill--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:700}.history-list{display:flex;flex-direction:column}.history-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:.5px solid var(--color-border)}.history-row__info{flex:1;min-width:0}.history-row__opponent{font-size:14px;font-weight:700;color:var(--color-text)}.history-row__meta{font-size:11px;color:var(--color-text-muted);margin-top:2px}.history-empty{color:var(--color-text-muted);font-size:14px;text-align:center;padding:2rem 0}.profile-screen{min-height:100vh;background:var(--color-bg-warm);padding:1.5rem 1rem calc(76px + 1rem);max-width:480px;margin:0 auto}.profile-hero{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:1.5rem;text-align:center}.profile-handle{font-size:24px;font-weight:800;color:var(--color-text)}.profile-since{font-size:12px;color:var(--color-text-muted)}.profile-stats{margin-bottom:1.5rem}.profile-stats__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.profile-stat-tile{background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:14px 8px;display:flex;flex-direction:column;align-items:center;gap:4px}.profile-stat-tile__icon{font-size:20px}.profile-stat-tile__value{font-size:22px;font-weight:700;color:var(--color-text)}.profile-stat-tile__label{font-size:11px;color:var(--color-text-muted);text-align:center}.profile-section-title{font-size:18px;font-weight:700;color:var(--color-text);margin-bottom:12px}.profile-card-backs{margin-bottom:1.5rem}.card-backs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.card-back-thumb{height:68px;border-radius:10px;background:var(--grad-navy);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;cursor:pointer}.card-back-thumb--active{border:2.5px solid var(--color-gold);box-shadow:var(--shadow-glow-gold)}.card-back-thumb--locked{opacity:.5;cursor:default}.card-back-thumb__check{position:absolute;top:4px;right:4px;font-size:12px}.card-back-thumb__lock{font-size:18px}.card-back-thumb__watermark{font-size:12px;font-weight:700;opacity:.2;color:#fff}.profile-signout-btn{width:100%;padding:14px;background:transparent;border:1.5px solid var(--color-border);border-radius:var(--radius-btn);color:var(--color-accent);font-size:15px;font-weight:600;cursor:pointer;transition:border-color var(--transition),opacity var(--transition)}.profile-signout-btn:hover{border-color:var(--color-accent);opacity:.85}.app-shell{min-height:100vh;background:var(--color-bg-warm)}
