:root{--color-bg: #080808;--color-surface-1: #111111;--color-surface-2: #191919;--color-surface-3: #222222;--color-gold: #c5a028;--color-gold-hover: #d9b53a;--color-gold-bright: #e8c84a;--color-gold-dim: rgba(197, 160, 40, .15);--color-gold-border: rgba(197, 160, 40, .35);--color-gold-glow: rgba(197, 160, 40, .18);--color-felt: #0c1e14;--color-felt-mid: #112519;--color-felt-light: #162e1e;--color-felt-border: #1f3d2a;--color-success: #3a9e6a;--color-warning: #c5821a;--color-error: #cc3333;--color-error-dim: rgba(204, 51, 51, .15);--color-info: #4a7aba;--color-text: #e8e8e8;--color-text-muted: #888888;--color-text-dim: #555555;--color-text-inverse: #080808;--color-border: #2a2a2a;--color-border-subtle: #1e1e1e;--color-border-active: #c5a028;--color-winner-bg: rgba(197, 160, 40, .1);--color-you-border: #4a7aba;--color-red: #d63031;--color-black-card: #111111;--cat-trips-color: #a855f7;--cat-trips-bg: rgba(168, 85, 247, .15);--cat-trips-border: rgba(168, 85, 247, .3);--cat-suited-seq-color: #3b82f6;--cat-suited-seq-bg: rgba(59, 130, 246, .15);--cat-suited-seq-border:rgba(59, 130, 246, .3);--cat-seq-color: #10b981;--cat-seq-bg: rgba(16, 185, 129, .15);--cat-seq-border: rgba(16, 185, 129, .3);--cat-flush-color: #06b6d4;--cat-flush-bg: rgba(6, 182, 212, .15);--cat-flush-border: rgba(6, 182, 212, .3);--cat-pair-color: #f59e0b;--cat-pair-bg: rgba(245, 158, 11, .15);--cat-pair-border: rgba(245, 158, 11, .3);--cat-high-color: #9ca3af;--cat-high-bg: rgba(156, 163, 175, .1);--cat-high-border: rgba(156, 163, 175, .2);--font-display: "Cormorant Garamond", Georgia, serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Courier New", monospace;--radius-sm: 4px;--radius-base: 8px;--radius-card: 10px;--radius-lg: 16px;--radius-pill: 9999px;--radius-btn: 6px;--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;--shadow-card: 0 4px 16px rgba(0, 0, 0, .55);--shadow-elevated: 0 8px 40px rgba(0, 0, 0, .75);--shadow-gold: 0 0 0 2px var(--color-gold), 0 6px 24px rgba(197, 160, 40, .25);--shadow-inset: inset 0 1px 0 rgba(255,255,255,.04)}*,*: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-gold);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(197,160,40,.07) 0%,transparent 70%);animation:breathe 6s ease-in-out infinite}.ambient-bg__suit{position:absolute;font-family:var(--font-display);font-size:9rem;color:var(--color-gold);opacity:.04;-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);letter-spacing:.06em;text-transform:uppercase;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:linear-gradient(135deg,var(--color-gold) 0%,#a8851e 100%);color:#0a0900;border-color:transparent;box-shadow:0 2px 12px #c5a0284d,var(--shadow-inset)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--color-gold-hover) 0%,var(--color-gold) 100%);box-shadow:0 4px 20px #c5a02873;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #c5a02840}.btn-secondary{background:transparent;border-color:var(--color-gold-border);color:var(--color-gold)}.btn-secondary:hover:not(:disabled){background:var(--color-gold-dim);border-color:var(--color-gold);transform:translateY(-1px)}.btn-ghost{background:transparent;border-color:var(--color-border);color:var(--color-text-muted)}.btn-ghost:hover:not(:disabled){border-color:#444;color:var(--color-text)}.btn-danger{background:transparent;border-color:#c336;color:var(--color-error)}.btn-danger:hover:not(:disabled){background:var(--color-error-dim);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-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:.75rem 1rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.form-input:focus{border-color:var(--color-gold);box-shadow:0 0 0 2px #c5a02826}.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:var(--color-error-dim);border:1px solid rgba(204,51,51,.4);border-radius:var(--radius-btn);padding:.75rem 1.25rem;color:#ff7070;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(--color-surface-2);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-gold)}@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-gold);border-right-color:#c5a02866;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:#fafaf8;border:1.5px solid rgba(0,0,0,.12);border-radius:var(--radius-card);padding:5px 6px;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)}.card:hover{transform:translateY(-5px) scale(1.03);box-shadow:0 10px 28px #0000008c,0 2px 6px #0000004d}.card.selected{border-color:var(--color-gold);box-shadow:var(--shadow-gold);transform:translateY(-8px) scale(1.05);animation:selectedPulse 2.5s ease-in-out infinite}.card.red{color:var(--color-red)}.card.dark{color:#111}.card-rank{font-family:var(--font-body);font-size:13px;font-weight:700;line-height:1;align-self:flex-start}.card-suit{font-size:24px;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.card-rank-bottom{font-family:var(--font-body);font-size:13px;font-weight:700;line-height:1;align-self:flex-end;transform:rotate(180deg)}.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 rgba(197,160,40,.25))}.auth-logo-mark{font-family:var(--font-display);font-size:clamp(3.5rem,10vw,6rem);font-weight:700;letter-spacing:.08em;color:var(--color-gold);text-shadow:0 0 60px rgba(197,160,40,.3),0 2px 4px rgba(0,0,0,.5);line-height:1;text-align:center}.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-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-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-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-gold)}.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:#080808eb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);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:#444}.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-gold);letter-spacing:.08em;pointer-events:none}.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-gold);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:radial-gradient(ellipse at 50% 30%,var(--color-felt-mid) 0%,var(--color-felt) 65%,#080e0b 100%);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(197,160,40,.06) 0%,transparent 50%),radial-gradient(ellipse at 50% 100%,rgba(197,160,40,.04) 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:#0808088c;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-card);width:100%;max-width:480px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:border-color .3s ease,box-shadow .3s ease}.opponent-panel--acked{border-color:var(--color-gold-border);box-shadow:0 0 0 1px #c5a02826,inset 0 0 20px #c5a0280a;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:linear-gradient(135deg,#2a2a2a,#1a1a1a);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.8rem;font-weight:600;color:var(--color-text-muted);flex-shrink:0}.opponent-panel__name{font-size:.875rem;font-weight:500;color:var(--color-text);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:var(--color-text-muted)}.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:#c5a02814;border:1px solid var(--color-gold-border);border-radius:var(--radius-btn);padding:.4rem 1rem;color:var(--color-gold);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:#08080880;border:1.5px dashed rgba(255,255,255,.08);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:#ffffff08;line-height:1;pointer-events:none}.subhand-slot-cards.drop-target{border-color:var(--color-gold);border-style:dashed;background:#c5a0280f;box-shadow:inset 0 0 20px #c5a0280d}.subhand-slot-cards.full{border-style:solid;border-color:#ffffff1a;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:#00000040;border-top:1px solid rgba(255,255,255,.04)}.unassigned-pool{display:flex;flex-wrap:wrap;gap:.625rem;padding:1rem;background:#08080899;border:1.5px dashed rgba(255,255,255,.07);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:#0c1e14bf;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);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.waiting-overlay p{color:var(--color-text-muted);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(197,160,40,.08) 0%,transparent 70%);pointer-events:none}.results-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.5rem);color:var(--color-gold);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:var(--color-gold-border);box-shadow:0 0 0 1px #c5a0281f,var(--shadow-inset)}.result-card.you{border-color:#4a7aba80}.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-gold);color:#060400;box-shadow:0 2px 8px #c5a02859}.badge-perfect{background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff;box-shadow:0 2px 8px #7c3aed4d}.badge-you{background:#4a7aba33;color:#8aaed6;border:1px solid rgba(74,122,186,.3)}.result-score{font-family:var(--font-display);font-size:2.25rem;font-weight:700;color:var(--color-gold);line-height:1;text-shadow:0 0 20px rgba(197,160,40,.2)}.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),var(--shadow-inset);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-gold);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-gold)}.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-3);border:1.5px solid var(--color-border);border-radius:var(--radius-base);color:var(--color-gold);outline:none;transition:border-color var(--transition),box-shadow var(--transition);caret-color:var(--color-gold)}.lobby-join__char:focus{border-color:var(--color-gold);box-shadow:0 0 0 2px #c5a02826}.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-3);border:1.5px solid var(--color-border);border-radius:var(--radius-btn);color:var(--color-gold);padding:.6rem;text-transform:uppercase;outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.lobby-join__input:focus{border-color:var(--color-gold);box-shadow:0 0 0 2px #c5a02826}.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-gold);letter-spacing:.25em;cursor:pointer;transition:color var(--transition),text-shadow var(--transition);text-shadow:0 0 20px rgba(197,160,40,.2)}.waiting-room__code-value:hover{color:var(--color-gold-hover);text-shadow:0 0 30px rgba(197,160,40,.35)}.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:var(--color-gold-border);color:var(--color-gold);background:var(--color-gold-dim)}.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:#444}.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-gold);border-bottom-color:var(--color-gold)}.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-gold);box-shadow:0 0 0 2px #c5a02826}.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-gold)}50%{box-shadow:0 0 0 2px var(--color-gold),0 6px 32px #c5a02866}}@keyframes goldFlash{0%{box-shadow:0 0 #c5a02899}to{box-shadow:0 0 0 8px #c5a02800}}@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}.card-rank,.card-rank-bottom{font-size:12px}.card-suit{font-size:20px}.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: #a855f7;--color-hand-suited-seq: #3b82f6;--color-hand-seq: #10b981;--color-hand-flush: #06b6d4;--color-hand-pair: #f59e0b;--color-hand-high: #9ca3af}@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(--color-surface-1);border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);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-gold);text-decoration:none;font-weight:700}.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-gold-dim);border:1px solid var(--color-gold-border);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);color:var(--color-gold);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-gold)}.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:var(--color-gold-border)}.landing-hero__title{font-family:var(--font-display);font-size:var(--text-6xl);color:var(--color-gold);text-shadow:0 0 40px rgba(197,160,40,.3);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-gold)}.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-gold);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:var(--color-gold-border)}.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-gold-dim);border:1px solid var(--color-gold-border);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:var(--text-3xl);color:var(--color-gold);margin:0 auto 1rem}.profile-name{font-size:var(--text-xl);color:var(--color-text);margin:0 0 .25rem}.profile-rating{color:var(--color-gold);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-gold);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-gold);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-gold);border-bottom-color:var(--color-gold)}.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-gold);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-gold);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-gold);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-gold-dim);border-color:var(--color-gold-border);color:var(--color-gold)}[data-reduce-motion=true] *{animation-duration:.001ms!important;transition-duration:.001ms!important}
