*{box-sizing:border-box}:root{--felt: #1c4532;--felt-dark: #143425;--panel: #10231a;--ink: #e9f2ec;--ink-dim: #9db8aa;--gold: #e3b341;--danger: #e06c5c;--win: #7fd6a2}html,body{margin:0;min-height:100%}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:radial-gradient(ellipse at 50% 30%,var(--felt) 0%,var(--felt-dark) 80%);background-attachment:fixed}button{font:inherit;color:var(--ink);background:#2a5741;border:1px solid #3d7257;border-radius:8px;padding:8px 18px;cursor:pointer}button:hover:not(:disabled){background:#336a4f}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--gold);border-color:var(--gold);color:#2a2008;font-weight:600}button.primary:hover:not(:disabled){background:#efc45c}.link-button{background:none;border:none;color:var(--ink-dim);text-decoration:underline;padding:6px}input,select{font:inherit;color:var(--ink);background:#0f2017;border:1px solid #3d7257;border-radius:8px;padding:8px 12px}input{text-transform:uppercase;letter-spacing:.15em}.screen{max-width:1000px;margin:0 auto;padding:24px 16px 48px}.home-screen,.lobby-screen{display:flex;flex-direction:column;align-items:center;gap:18px;padding-top:9vh;text-align:center}.title{font-size:3rem;margin:0;color:var(--gold);letter-spacing:.04em}.tagline{margin:0 0 12px;color:var(--ink-dim)}.home-card{background:#00000040;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:18px 26px;width:min(440px,100%)}.home-card h2{margin:0 0 12px;font-size:1.1rem}.row{display:flex;gap:10px;align-items:center;justify-content:center;margin:8px 0;flex-wrap:wrap}.row-center{justify-content:center}.room-code-big{font-size:3.4rem;font-weight:700;letter-spacing:.35em;padding:18px 32px 18px calc(32px + .35em);background:#00000059;border:2px dashed var(--gold);border-radius:14px;color:var(--gold)}.waiting{color:var(--ink-dim)}.pulse-dot{display:inline-block;width:10px;height:10px;margin-right:8px;border-radius:50%;background:var(--gold);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}.game-screen-3d{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.tabletop-container{position:absolute;top:0;right:0;bottom:0;left:0}.tabletop-container canvas{display:block;width:100%;height:100%}.hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;display:flex;flex-direction:column;align-items:center}.hud button,.hud input{pointer-events:auto}.celebration-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:40}.celebration-preview-button{position:fixed;left:10px;bottom:10px;z-index:41;font-size:.72rem;padding:4px 10px;opacity:.55;background:#10231ad9;border:1px dashed #3d7257}.celebration-preview-button:hover{opacity:1}.hud-header{width:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:12px;padding:10px 18px;background:linear-gradient(#00000080,#0000)}.hud-header-mid{justify-self:center}.room-info{justify-self:end;color:var(--ink-dim);font-size:.85rem;padding-top:4px}.hud-banner{pointer-events:auto;margin:6px auto;max-width:480px}.hud-turn{margin:2px 0;text-shadow:0 1px 4px rgba(0,0,0,.8)}.hud-bottom{position:absolute;left:0;right:0;bottom:14px;display:flex;flex-direction:column;align-items:center;gap:10px}.reveal-strip{pointer-events:auto;position:fixed;right:16px;top:96px;background:#0000009e;border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:10px 18px 12px;display:flex;flex-direction:column;gap:6px;min-width:360px;max-width:92vw;z-index:7}.breakdown-actions{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:8px}.breakdown-actions .primary{min-width:150px;box-shadow:0 4px 18px #00000073}.reveal-line{display:grid;grid-template-columns:58px minmax(0,1fr) auto minmax(0,1fr) 48px;gap:10px;align-items:center;font-size:.95rem}.reveal-line .outcome{text-align:right}.reveal-vs{color:var(--ink-dim);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.reveal-side{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.reveal-side-you{justify-content:flex-end}.side-badge{display:inline-block;border-radius:6px;padding:1px 6px 2px;font-size:.62rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.badge-you{color:var(--gold);background:#e3b34124;border:1px solid rgba(227,179,65,.5)}.badge-opp{color:#a9c4da;background:#8caac81f;border:1px solid rgba(140,170,200,.42)}.reveal-line-label{font-weight:700;color:var(--gold);text-transform:uppercase;font-size:.75rem;letter-spacing:.08em;min-width:56px;text-align:left}.brand{color:var(--gold);font-weight:700;font-size:1.2rem}.room-code-small{letter-spacing:.08em}.match-indicator{display:flex;flex-direction:column;align-items:center;gap:1px;text-shadow:0 1px 4px rgba(0,0,0,.7)}.match-score{display:inline-flex;align-items:center;gap:6px;font-size:1.12rem;font-weight:700}.match-vs{color:var(--ink-dim);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin:0 2px}.match-game{font-size:.8rem;font-weight:700;letter-spacing:.14em;color:var(--gold)}.match-bestof{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim)}.pips{display:inline-flex;gap:4px;margin:0 4px;vertical-align:middle}.pip{width:11px;height:11px;border-radius:50%;border:1px solid var(--ink-dim);display:inline-block}.match-indicator .pip{width:14px;height:14px}.pip-won{background:var(--win);border-color:var(--win)}.banner{margin:10px 0;padding:8px 14px;border-radius:8px;text-align:center}.banner-warning{background:#e06c5c2e;border:1px solid var(--danger);color:#f3c0b8}.turn-banner{text-align:center;margin:12px 0;padding:6px;font-size:1.05rem;color:var(--ink-dim)}.card-row{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start;min-height:98px}.card{width:68px;height:auto;border-radius:6px;box-shadow:0 2px 5px #00000073;background:#fff;display:block}.card-small{width:46px;min-height:0}.action-bar{display:flex;gap:14px;justify-content:center;align-items:center;margin-top:18px;min-height:44px}.action-bar .primary{min-width:110px}.action-bar button.stay{background:#6ea8d8;border-color:#6ea8d8;color:#0c1c2a;font-weight:600;min-width:110px}.action-bar button.stay:hover:not(:disabled){background:#86b9e2}.stay-soft{font-size:.78em;margin-left:.4em;opacity:.85}.action-bar-anchored{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:420px;z-index:5;perspective:600px}.action-bar-anchored .action-bar{margin-top:0;flex-wrap:wrap}.action-bar-anchored .action-bar{transform:rotateX(31deg)}.action-bar-anchored .action-bar button{font-size:1.3rem;font-weight:700;padding:12px 28px;border-radius:14px;border:2px solid #121a15;color:#121a15;box-shadow:none;text-transform:uppercase;transition:background-color 333ms ease,color 333ms ease,border-color 333ms ease}.action-bar-anchored .action-bar .primary{background:#e3b341eb;border-color:#121a15}.action-bar-anchored .action-bar .primary:hover:not(:disabled){background:#efc45cf2}.action-bar-anchored .action-bar button.stay{background:#6ea8d8eb}.action-bar-anchored .action-bar button.stay:hover:not(:disabled){background:#86b9e2f2}.action-bar-anchored .action-bar .primary,.action-bar-anchored .action-bar button.stay{min-width:148px}.action-bar-anchored .hint{text-shadow:0 1px 4px rgba(0,0,0,.9);text-align:center}.hint{color:var(--ink-dim)}.center-headline{margin:0;font-size:1.5rem;text-align:center;text-shadow:0 1px 6px rgba(0,0,0,.85)}.headline-win{color:var(--win)}.headline-lose{color:var(--ink-dim)}.breakdown-actions .points-line{margin:2px 0 8px;text-align:center;text-shadow:0 1px 4px rgba(0,0,0,.85)}.outcome-you{color:var(--win);font-weight:700}.outcome-opponent{color:var(--danger);font-weight:700}.outcome-tie,.points-line{color:var(--ink-dim)}.guide-topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:14px;padding:10px 16px;background:#0d1c14e0;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-bottom:1px solid rgba(255,255,255,.1)}.guide-topbar-title{color:var(--gold);font-weight:700;letter-spacing:.04em}.guide-back{background:none;border:1px solid rgba(255,255,255,.2);padding:6px 14px}.guide-body{max-width:760px;line-height:1.6}.guide-title{margin:10px 0 4px;font-size:2.2rem;color:var(--gold);letter-spacing:.02em}.guide-byline{margin:0 0 22px;color:var(--ink-dim);font-style:italic}.guide-lede{margin:0 0 6px;font-size:1.05rem}.guide-section{margin-top:8px;padding-top:18px;scroll-margin-top:62px}.guide-section+.guide-section{border-top:1px solid rgba(255,255,255,.08)}.guide-section h2{color:var(--gold);font-size:1.45rem;margin:0 0 10px}.guide-section h3{font-size:1.05rem;margin:18px 0 6px;color:var(--ink)}.guide-section ul,.guide-section ol{padding-left:1.4em}.guide-section li{margin:6px 0}.guide-card{width:58px;height:auto;border-radius:5px;box-shadow:0 2px 5px #00000073;background:#fff;display:block}.guide-card-sm{width:40px;border-radius:4px}.guide-slot-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim)}.guide-stack{display:inline-flex}.guide-stack>.guide-card+.guide-card{margin-left:-35px}.guide-stack>.guide-card-sm+.guide-card-sm{margin-left:-24px}.guide-stack-top{position:relative;z-index:2}.guide-table{margin:20px 0;padding:18px 14px;background:radial-gradient(ellipse at 50% 50%,#205239 0%,var(--felt-dark) 95%);border:1px solid rgba(255,255,255,.12);border-radius:16px;box-shadow:inset 0 0 40px #00000059}.guide-table-grid{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;justify-items:center;row-gap:14px;column-gap:12px}.guide-span-row{grid-column:1 / -1}.guide-side-label{font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.14em;font-size:.8rem}.guide-hand-cell{display:flex;flex-direction:column;align-items:center;gap:6px}.guide-middles-row{display:flex;gap:6px}.guide-flip .guide-card{transform:rotate(180deg)}.guide-match-arrow{width:18px;height:58px}.guide-match-arrow line{stroke:var(--gold);stroke-width:2.5}.guide-match-arrow polygon{fill:var(--gold)}.guide-vs-note{max-width:34ch;text-align:center;font-size:.88rem;color:var(--ink)}.guide-table .guide-diagram-note{margin:16px auto 0;max-width:48ch;padding:8px 14px;text-align:center;font-size:.92rem;color:var(--ink);background:#e3b3411a;border:1px solid rgba(227,179,65,.35);border-radius:10px}.guide-catch{display:flex;align-items:stretch;justify-content:center;gap:14px;margin:16px 0;padding:16px 14px;background:#00000040;border:1px solid rgba(255,255,255,.08);border-radius:12px;flex-wrap:wrap}.guide-catch-step{flex:1 1 200px;max-width:280px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:10px}.guide-catch-cards{display:flex;align-items:center;gap:8px;min-height:62px}.guide-catch-label{font-size:.85rem;color:var(--ink-dim);text-align:center;max-width:28ch}.guide-catch-arrow{align-self:center;font-size:1.7rem;color:var(--gold)}.guide-discard{position:relative;display:inline-block}.guide-discard .guide-card{opacity:.45;transform:rotate(-6deg)}.guide-discard-x{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--danger);font-size:1.5rem;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.7)}.guide-new-card{box-shadow:0 0 0 2px var(--gold),0 2px 6px #00000080}.guide-steps{list-style:none;padding-left:0!important;margin:12px 0;display:flex;flex-direction:column;gap:8px}.guide-steps li{display:flex;align-items:center;gap:12px;margin:0;padding:8px 12px;background:#00000038;border:1px solid rgba(255,255,255,.08);border-radius:10px}.guide-step-num{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--gold);color:var(--felt-dark);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem}.guide-step-glyph{flex-shrink:0;width:26px;height:36px;border-radius:4px;background:#fff;color:#222;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.95rem;box-shadow:0 1px 3px #00000073}.guide-step-glyph-red{color:#c0392b}.guide-step-text{font-size:.95rem}.guide-signoff{margin-top:20px;font-style:italic;color:var(--ink-dim);text-align:center}.guide-footer{display:flex;justify-content:center;margin-top:30px}@media (max-width: 560px){.guide-card{width:46px}.guide-card-sm{width:32px}.guide-stack>.guide-card+.guide-card{margin-left:-28px}.guide-stack>.guide-card-sm+.guide-card-sm{margin-left:-19px}.guide-table-grid{column-gap:8px}.guide-middles-row{gap:4px}.guide-vs-note{font-size:.78rem}}.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%);background:#3a1f1a;border:1px solid var(--danger);color:#f3c0b8;padding:10px 14px;border-radius:10px;display:flex;gap:12px;align-items:center;z-index:30;max-width:90vw}.toast-dismiss{background:none;border:none;color:inherit;font-size:1.1rem;padding:0 4px}.name-row label{color:var(--ink-dim)}.name-input{text-transform:none;letter-spacing:normal;width:min(240px,60vw)}.name-hint{margin:-8px 0 0;color:var(--danger);font-size:.9rem}.home-links{display:flex;gap:18px}.standings-body{max-width:760px}.standings-tabs{display:flex;gap:8px;margin:14px 0 18px}.standings-tab{background:none;border:1px solid rgba(255,255,255,.2);color:var(--ink-dim);padding:6px 16px}.standings-tab-active{background:#2a5741;border-color:#3d7257;color:var(--ink);font-weight:600}.standings-empty{color:var(--ink-dim);padding:18px 0}.standings-table-wrap{overflow-x:auto;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#00000040}.standings-table{width:100%;border-collapse:collapse;text-align:center;min-width:420px}.standings-table th,.standings-table td{padding:10px 12px;white-space:nowrap}.standings-table thead th{color:var(--gold);font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.12)}.standings-sub{display:block;color:var(--ink-dim);font-size:.72rem;font-weight:400;letter-spacing:.04em}.standings-table tbody tr+tr td{border-top:1px solid rgba(255,255,255,.06)}.standings-player{text-align:left;font-weight:600}.standings-games{font-weight:700;color:var(--win)}.standings-sweeps{color:var(--gold);font-weight:600}@media (max-width: 480px){.standings-table th,.standings-table td{padding:8px 4px;font-size:.85rem}.standings-table .standings-player{padding-left:8px}.standings-table{min-width:330px}.standings-sub{font-size:.65rem}.name-input{width:min(200px,56vw)}}
