:root{--ink:#18231f;--muted:#68746e;--paper:#f2f0e8;--line:#d4d8ce;--green:#234d3d;--coral:#d86f57}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:Manrope,sans-serif}a{color:inherit;text-decoration:none}.club-shell{background:radial-gradient(circle at 88% 12%, #e2e8d8 0, transparent 25%), linear-gradient(135deg, var(--paper), #ebece2);min-height:100vh;padding:0 6vw}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:28px 0;font-size:13px;display:flex}.brand{letter-spacing:.02em;align-items:center;gap:10px;font-weight:700;display:flex}.brand-mark{background:var(--green);width:28px;height:28px;color:var(--paper);border-radius:50%;place-items:center;font-family:Playfair Display,serif;font-size:18px;display:grid}nav{color:var(--muted);align-items:center;gap:28px;display:flex}nav button,.quiet-action{border:1px solid var(--ink);font:inherit;color:inherit;cursor:pointer;background:0 0;padding:9px 16px}.language-picker select{color:var(--muted);cursor:pointer;background:0 0;border:0;font:500 11px DM Mono,monospace}.intro{max-width:750px;padding:14vh 0 16vh}.eyebrow{color:var(--coral);letter-spacing:.1em;text-transform:uppercase;font:500 11px DM Mono,monospace}h1{letter-spacing:0;margin:22px 0;font:500 clamp(58px,9vw,125px)/.92 Playfair Display,serif}h1 em{color:var(--green)}.lede{max-width:430px;color:var(--muted);font-size:17px;line-height:1.7}.primary-action{background:var(--green);color:var(--paper);align-items:center;gap:28px;margin-top:28px;padding:15px 18px;font-size:13px;display:inline-flex}.primary-action span{font-size:20px}.hall{max-width:900px;padding-bottom:13vh}.section-heading{justify-content:space-between;align-items:flex-end;margin-bottom:20px;display:flex}h2{margin:8px 0 0;font-size:30px;font-weight:500}.table-list{border-top:1px solid var(--line)}.table-row{border-bottom:1px solid var(--line);grid-template-columns:44px 1fr 90px 110px;align-items:center;gap:14px;min-height:92px;display:grid}.table-icon{color:var(--coral);font-size:25px}h3{margin:0 0 5px;font-size:15px;font-weight:700}.table-name p{color:var(--muted);margin:0;font:11px DM Mono,monospace}.table-players{color:var(--muted);font:12px DM Mono,monospace}.join-action{color:var(--green);text-align:left;cursor:pointer;background:0 0;border:0;font:500 12px DM Mono,monospace}.join-action span{margin-left:7px;font-size:18px}footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;padding:22px 0;font:10px DM Mono,monospace;display:flex}.live-room{border-top:1px solid var(--line);gap:18px;margin-top:72px;padding:28px 0;display:grid}.room-heading{align-items:baseline;gap:18px;display:flex}.room-heading h2{margin-right:auto}.live-status{color:var(--muted);align-items:center;gap:8px;font:11px DM Mono,monospace;display:flex}.room-contract,.current-bid{color:var(--green);margin:0;font:11px DM Mono,monospace}.status-dot{background:var(--coral);border-radius:50%;width:7px;height:7px}.status-dot.connected{background:#4d8a62}.table-scene{background:#1e493a;border:10px solid #1a3028;place-items:center;min-height:230px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #8ea68c,0 18px 40px #1a302822}.table-scene:before{content:"";border:1px solid #a1bea466;border-radius:50%;position:absolute;inset:18px}.scene-seats{color:#dbe7d6;justify-content:space-between;align-items:flex-start;font-size:12px;display:flex;position:absolute;inset:26px}.live-seat{align-items:center;gap:9px;display:flex}.active-seat{color:#f4c46d}.seat-token{color:#dbe7d6;border:1px solid #a1bea4;border-radius:50%;place-items:center;width:24px;height:24px;font:11px DM Mono,monospace;display:grid}.live-room-body{justify-content:space-between;gap:24px;display:flex}.live-seats{color:var(--muted);align-content:start;gap:12px;font-size:13px;display:grid}.live-actions{align-content:start;justify-items:end;gap:10px;display:grid}.live-error{max-width:190px;color:var(--coral);text-align:right;font:11px DM Mono,monospace}.hand,.trick-center{flex-wrap:wrap;gap:8px;max-width:520px;margin-top:12px;display:flex}.hand .eyebrow,.trick-center .eyebrow{width:100%;margin:0}.playing-card{width:52px;height:72px;color:var(--ink);cursor:pointer;background:#f7f4ea;border:1px solid #c8d0c5;border-radius:4px;place-items:center;padding:7px 5px;font-family:Playfair Display,serif;display:grid;box-shadow:0 3px #d1d0c5}.playing-card strong{font-size:19px;font-weight:500;line-height:1}.playing-card span{font-size:20px;line-height:1}.playing-card small{opacity:.6;font:8px DM Mono,monospace}.playing-card.red-suit{color:#b94e48}.playing-card.selected{background:#f4c46d;border-color:#f4c46d;transform:translateY(-8px)}.playing-card:disabled{cursor:not-allowed;opacity:.45}.bid-grid{grid-template-columns:repeat(5,minmax(36px,1fr));gap:4px;max-width:260px;display:grid}.bid-action{border:1px solid var(--line);background:var(--paper);min-width:36px;color:var(--ink);cursor:pointer;padding:7px 3px;font:11px DM Mono,monospace}.bid-action:disabled{cursor:not-allowed;opacity:.3}.trick-center{z-index:1;justify-content:center;max-width:240px;position:relative}.trick-center .eyebrow{color:#c3d7c1;text-align:center}.scoreboard{width:180px;margin-top:18px}.scoreboard .eyebrow{margin:0 0 8px}.score-row{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;padding:6px 0;font:11px DM Mono,monospace;display:flex}.score-row strong{color:var(--green);font-weight:500}@media (max-width:650px){.club-shell{padding:0 7vw}nav a{display:none}.intro{padding:12vh 0 15vh}.table-row{grid-template-columns:28px 1fr 55px}.join-action{grid-column:2/-1;margin-top:-22px;padding-bottom:14px}.section-heading{flex-direction:column;align-items:start;gap:20px}.live-room{grid-template-columns:1fr;gap:20px}.live-room-body{align-items:start}footer{flex-direction:column;gap:18px}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.user-menu{position:relative}.user-menu-trigger{color:var(--ink);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:5px 0 5px 5px;font:12px Manrope,sans-serif;display:flex}.user-avatar{background:var(--green);width:28px;height:28px;color:var(--paper);border-radius:50%;place-items:center;font:11px DM Mono,monospace;display:grid}.user-menu-chevron{color:var(--muted);font-size:16px}.user-menu-panel{z-index:8;border:1px solid var(--line);background:var(--paper);width:210px;padding:8px 0;display:grid;position:absolute;top:calc(100% + 12px);right:0;box-shadow:0 15px 35px #18231f22}.user-menu-panel a,.user-menu-panel button{color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;padding:10px 15px;font:11px DM Mono,monospace}.user-menu-panel a:hover,.user-menu-panel button:hover{background:#e2e8d8}.user-menu-heading{border-bottom:1px solid var(--line);gap:4px;padding:10px 15px 12px;display:grid}.user-menu-heading strong{font-size:13px}.user-menu-heading small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font:10px DM Mono,monospace;overflow:hidden}.sign-in-placeholder{width:82px;height:34px}.chess-square{font-size:52px}.chess-square .white-piece,.chess-square .black-piece{text-shadow:none;font-size:64px;line-height:.9;display:block}.chess-square .white-piece{color:#fff}.chess-square .black-piece{color:#18231f}.chess-square.moving-square{animation:none}@media (max-width:760px){.chess-square .white-piece,.chess-square .black-piece{font-size:38px}}.board-theme-walnut .light-square{background:#f0d9b5}.board-theme-walnut .dark-square{background:#b58863}.board-theme-forest .light-square{background:#e5e8d8}.board-theme-forest .dark-square{background:#769656}.board-theme-ocean .light-square{background:#dce8e8}.board-theme-ocean .dark-square{background:#5d8791}.board-theme-rose .light-square{background:#f2dfdc}.board-theme-rose .dark-square{background:#b87872}.board-theme-slate .light-square{background:#dfe4e5}.board-theme-slate .dark-square{background:#71808a}.board-picker{margin-top:8px}.board-picker .eyebrow{margin:0 0 10px}.theme-swatches{gap:8px;display:flex}.theme-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:25px;height:25px;padding:0}.theme-swatch.active-theme{border-color:var(--ink);box-shadow:0 0 0 2px var(--paper)}.swatch-walnut{background:linear-gradient(135deg,#f0d9b5 50%,#b58863 50%)}.swatch-forest{background:linear-gradient(135deg,#e5e8d8 50%,#769656 50%)}.swatch-ocean{background:linear-gradient(135deg,#dce8e8 50%,#5d8791 50%)}.swatch-rose{background:linear-gradient(135deg,#f2dfdc 50%,#b87872 50%)}.swatch-slate{background:linear-gradient(135deg,#dfe4e5 50%,#71808a 50%)}.chess-square.moving-square>span{place-items:center;width:100%;height:100%;animation:.7s cubic-bezier(.2,.75,.3,1) both piece-travel;display:grid}@keyframes piece-travel{0%{transform:translate(var(--move-x), var(--move-y))}to{transform:translate(0)}}.chess-board{position:relative;overflow:hidden}.moving-piece{z-index:3;pointer-events:none;place-items:center;width:12.5%;height:12.5%;font-size:64px;line-height:.9;animation:.7s cubic-bezier(.2,.75,.3,1) both piece-walk;display:grid;position:absolute}.moving-piece.white-piece{color:#fff;text-shadow:none}.moving-piece.black-piece{color:#18231f;text-shadow:none}.figure-size-small .moving-piece{font-size:44px}.figure-size-medium .moving-piece{font-size:54px}.figure-size-default .moving-piece{font-size:64px}.figure-size-large .moving-piece{font-size:78px}.figure-look-outline .moving-piece.white-piece{color:#0000;-webkit-text-stroke:1.5px #fff}.figure-look-outline .moving-piece.black-piece{color:#0000;-webkit-text-stroke:1.5px #18231f}@keyframes piece-walk{0%{left:var(--from-x);top:var(--from-y);transform:translate(-50%,-50%)}to{left:var(--to-x);top:var(--to-y);transform:translate(-50%,-50%)}}@media (max-width:760px){.figure-size-small .moving-piece{font-size:30px}.figure-size-medium .moving-piece{font-size:34px}.figure-size-default .moving-piece{font-size:38px}.figure-size-large .moving-piece{font-size:46px}}.chess-square.last-move-square{box-shadow:inset 0 0 0 4px #d86f57}.chess-square.legal-target:after{content:"";background:#234d3d99;border-radius:50%;width:18%;height:18%}.chess-square.legal-target:has(.black-piece):after{background:0 0;border:4px solid #234d3d99;width:78%;height:78%}.chess-square{position:relative;overflow:hidden}.chess-square.legal-target:after{z-index:2;pointer-events:none;width:18%;height:18%;margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.chess-square.legal-target:has(.black-piece):after{width:78%;height:78%}.figure-size-small .chess-square .white-piece,.figure-size-small .chess-square .black-piece{font-size:44px}.figure-size-medium .chess-square .white-piece,.figure-size-medium .chess-square .black-piece{font-size:54px}.figure-size-default .chess-square .white-piece,.figure-size-default .chess-square .black-piece{font-size:64px}.figure-size-large .chess-square .white-piece,.figure-size-large .chess-square .black-piece{font-size:78px}.figure-look-outline .chess-square .white-piece,.figure-look-outline .chess-square .black-piece{color:#0000;-webkit-text-stroke:1.5px currentColor}.figure-look-outline .chess-square .white-piece{-webkit-text-stroke-color:#fff}.figure-look-outline .chess-square .black-piece{-webkit-text-stroke-color:#18231f}.settings-panel{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:16px;margin:8px 0 4px;padding:16px 0;display:grid}.settings-heading{justify-content:space-between;align-items:baseline;display:flex}.settings-heading .eyebrow,.settings-heading span,.setting-label{margin:0}.settings-heading span{color:var(--muted);font:10px DM Mono,monospace}.setting-label{color:var(--muted);text-transform:uppercase;margin-bottom:9px;font:10px DM Mono,monospace}.setting-options{flex-wrap:wrap;gap:5px;display:flex}.setting-options button{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;padding:6px 8px;font:10px DM Mono,monospace}.setting-options button.active-setting{border-color:var(--ink);background:var(--ink);color:var(--paper)}.captured-panel{gap:8px;padding-top:4px;display:grid}.captured-panel>.setting-label{margin-bottom:0}.captured-row{min-height:25px;color:var(--muted);grid-template-columns:58px 1fr;align-items:center;gap:8px;font:10px DM Mono,monospace;display:grid}.captured-row>div{flex-wrap:wrap;align-items:center;gap:2px;min-height:24px;display:flex}.captured-row small{color:var(--muted);font-size:10px}.captured-piece{font-family:Playfair Display,serif;font-size:23px;line-height:.8}.white-captured,.black-captured{color:#18231f}.board-column{gap:10px;min-width:0;display:grid}.captured-strip{min-height:30px;color:var(--muted);align-items:center;gap:14px;font:10px DM Mono,monospace;display:flex}.captured-strip>span{width:112px}.captured-strip>div{flex-wrap:wrap;align-items:center;gap:3px;min-height:25px;display:flex}.captured-strip small{color:var(--muted)}.captured-strip .captured-piece{font-size:25px;line-height:.8}.captured-strip .white-captured{color:#fff;-webkit-text-stroke:.7px #8c9289}.captured-strip .black-captured{color:#18231f}@media (max-width:760px){.figure-size-small .chess-square .white-piece,.figure-size-small .chess-square .black-piece{font-size:30px}.figure-size-medium .chess-square .white-piece,.figure-size-medium .chess-square .black-piece{font-size:34px}.figure-size-large .chess-square .white-piece,.figure-size-large .chess-square .black-piece,.figure-size-default .chess-square .white-piece,.figure-size-default .chess-square .black-piece{font-size:38px}.figure-size-large .chess-square .white-piece,.figure-size-large .chess-square .black-piece{font-size:46px}}.auth-shell{background:radial-gradient(circle at 70% 20%, #e2e8d8 0, transparent 30%), var(--paper);place-items:center;min-height:100vh;padding:7vw;display:grid}.auth-panel{width:min(100%,430px)}.auth-back{color:var(--muted);margin-bottom:18vh;font:11px DM Mono,monospace;display:inline-block}.auth-panel h1{margin:20px 0 12px;font-size:clamp(52px,8vw,88px)}.auth-copy{max-width:330px;color:var(--muted);line-height:1.6}.auth-actions{gap:10px;margin-top:34px;display:grid}.auth-provider{border:1px solid var(--ink);color:var(--ink);cursor:pointer;background:0 0;justify-content:space-between;padding:15px 16px;font:12px DM Mono,monospace;display:flex}.auth-provider:hover{background:var(--green);color:var(--paper)}.sign-in-link{border:1px solid var(--ink);color:var(--ink);padding:9px 16px}.hub-intro{isolation:isolate;max-width:none;margin:0 -6vw;padding:14vh 6vw 16vh;position:relative;overflow:hidden}.hero-waves{z-index:0;width:100%;height:100%;position:absolute;inset:0}.hero-content{z-index:1;max-width:750px;position:relative}.hub-intro{color:#e9efe7;background:#071012;min-height:610px}.hub-intro:after{z-index:0;pointer-events:none;content:"";background:radial-gradient(at 50% 90%,#14675640,#0000 58%);position:absolute;inset:0}.hub-intro .eyebrow{color:#f08b68}.hub-intro h1 em{color:#f5bd65}.hub-intro .lede{color:#a7b9b1}.hub-intro .hero-content{max-width:720px}.hero-kicker{color:#dbe7d6;letter-spacing:.05em;text-transform:uppercase;align-items:center;gap:10px;font:500 12px DM Mono,monospace;display:flex}.hero-kicker-mark{color:#f5bd65;border:1px solid #8ea99e;border-radius:50%;place-items:center;width:24px;height:24px;font-family:Playfair Display,serif;font-size:15px;display:grid}.hero-actions{align-items:center;gap:22px;margin-top:30px;display:flex}.hero-button{color:#0b271f;background:#d9f0d5;align-items:center;gap:22px;padding:14px 17px;font-size:12px;font-weight:700;display:inline-flex}.hero-button span{font-size:18px}.hero-text-link{color:#dbe7d6;border-bottom:1px solid #8ea99e;padding-bottom:4px;font:11px DM Mono,monospace}.hero-card{z-index:1;color:#133d30;background:#eef1e7;border:1px solid #e8eee2cc;border-radius:5px;align-content:space-between;width:110px;height:154px;padding:13px;font-family:Playfair Display,serif;display:grid;position:absolute;transform:rotate(17deg);box-shadow:0 20px 35px #0004}.hero-card span{place-self:center;font-size:62px}.hero-card small{font:10px DM Mono,monospace}.hero-card-one{top:19%;right:22%;transform:rotate(17deg)}.hero-card-two{color:#bd5b4e;top:38%;right:13%;transform:rotate(31deg)}.hero-card-three{color:#133d30;top:48%;right:27%;transform:rotate(-9deg)}.hero-spark{z-index:1;color:#f5bd65;font-size:34px;position:absolute;bottom:23%;right:9%}.hero-visual{z-index:0;position:absolute;inset:0}.hero-visual .hero-waves{position:absolute}.hero-variant-picker{gap:6px;display:flex;position:absolute;bottom:28px;right:6vw}.hero-variant-picker button{color:#8ea99e;cursor:pointer;background:#07101299;border:1px solid #78988b66;width:32px;height:28px;font:10px DM Mono,monospace}.hero-variant-picker button:hover,.hero-variant-picker button.active-variant{color:#f5bd65;border-color:#f5bd65}.game-sections{border-top:1px solid var(--line)}.game-section{border-bottom:1px solid var(--line);grid-template-columns:50px 60px 1fr auto;align-items:center;gap:18px;min-height:132px;padding:18px 20px;transition:background .25s,padding .25s;display:grid}.game-section:hover{background:#e5e9de;padding-left:28px}.game-section .game-index{color:var(--muted);position:static}.game-section .game-glyph{color:var(--coral);font:40px Playfair Display,serif}.game-section h3{margin:0 0 6px;font:500 30px Playfair Display,serif}.game-section p{color:var(--muted);margin:0;font-size:13px}.game-section .card-link{color:var(--green);white-space:nowrap}.history-panel{width:min(100%,620px)}.history-panel h1{margin:20px 0 42px;font-size:clamp(52px,8vw,88px)}.history-panel .auth-back{margin-bottom:14vh}.history-list{border-top:1px solid var(--line)}.history-message{color:var(--muted);font:12px DM Mono,monospace}.history-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:17px 0;display:flex}.history-row div{gap:5px;display:grid}.history-row strong{text-transform:capitalize;font-size:14px;font-weight:700}.history-row span{color:var(--muted);font:10px DM Mono,monospace}.history-row b{color:var(--green);font:500 16px DM Mono,monospace}.history-row b.negative-score{color:var(--coral)}.result-backdrop{z-index:10;background:#18231f66;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.result-modal{background:var(--paper);border:1px solid var(--line);width:min(100%,390px);padding:34px;box-shadow:0 24px 70px #18231f44}.result-modal h2{margin:12px 0 4px;font:500 54px/.95 Playfair Display,serif}.result-detail{color:var(--muted);text-transform:uppercase;margin:0 0 28px;font:12px DM Mono,monospace}.result-time{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:baseline;padding:14px 0;font:11px DM Mono,monospace;display:flex}.result-time strong{color:var(--ink);font-size:20px;font-weight:500}.result-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:24px;display:flex}.result-actions .primary-action{cursor:pointer;border:0;margin-top:0}.result-actions .quiet-action{border:0;padding:14px 0}.hub-intro{padding-bottom:10vh}.game-shelf{max-width:900px;padding-bottom:13vh}.room-count{color:var(--muted);font:11px DM Mono,monospace}.game-grid{grid-template-columns:1.3fr 1fr 1fr;gap:12px;display:grid}.game-card{border:1px solid var(--line);background:#e8eadf;flex-direction:column;min-height:250px;padding:24px;transition:transform .2s,background .2s;display:flex;position:relative}.game-card:hover{background:#e1e6d7;transform:translateY(-5px)}.game-card-wide{background:var(--green);min-height:512px;color:var(--paper);grid-row:span 2}.game-card-muted{background:0 0;grid-column:2/-1;min-height:150px}.game-glyph{color:var(--coral);font:44px Playfair Display,serif}.game-card-wide .game-glyph{color:#f4c46d}.game-index{color:var(--muted);font:10px DM Mono,monospace;position:absolute;top:25px;right:25px}.game-card-wide .game-index{color:#a9c2ac}.game-card h3{margin-top:auto;font:500 30px Playfair Display,serif}.game-card p{max-width:230px;color:var(--muted);margin:7px 0 22px;font-size:13px;line-height:1.5}.game-card-wide p{color:#c9d8c6}.card-link{color:var(--green);font:11px DM Mono,monospace}.game-card-wide .card-link{color:#f4c46d}.active-nav{color:var(--ink)}.page-heading{max-width:700px;padding:7vh 0 8vh}.page-heading h1{margin:18px 0;font-size:clamp(58px,8vw,100px)}.back-link{color:var(--muted);margin-bottom:10vh;font:11px DM Mono,monospace;display:inline-block}.lobby-layout{grid-template-columns:minmax(0,1fr) 270px;gap:70px;max-width:1000px;padding-bottom:4vh;display:grid}.table-row-button{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;padding:0}.table-row-button>span{display:block}.table-row-button .table-name{display:grid}.table-row-button .table-name strong{font-size:15px}.table-row-button .table-name small{color:var(--muted);font:11px DM Mono,monospace}.selected-row{background:#e7eadd}.conventions{border-left:1px solid var(--line);align-self:start;padding-left:25px}.conventions h2{margin:10px 0 26px;font:500 28px Playfair Display,serif}.conventions label{color:var(--muted);text-transform:uppercase;gap:7px;margin:18px 0;font:10px DM Mono,monospace;display:grid}.conventions select{border:0;border-bottom:1px solid var(--line);color:var(--ink);background:0 0;padding:10px 0;font:13px Manrope,sans-serif}.conventions .primary-action{cursor:pointer;border:0}.board-page .compact-heading{padding-bottom:5vh}.board-layout{grid-template-columns:minmax(400px,640px) 230px;align-items:start;gap:55px;max-width:930px;padding-bottom:13vh;display:grid}.chess-board{aspect-ratio:1;border:9px solid var(--green);grid-template-columns:repeat(8,1fr);display:grid;box-shadow:0 16px 30px #1a30281c}.chess-square{aspect-ratio:1;color:var(--ink);cursor:pointer;background:#e8d9b5;border:0;place-items:center;padding:0;font:40px Playfair Display,serif;display:grid}.chess-square.dark-square{background:#879c7e}.chess-square.selected-square{box-shadow:inset 0 0 0 4px var(--coral);background:#f4c46d}.game-panel{gap:13px;display:grid}.player-strip{border-bottom:1px solid var(--line);grid-template-columns:28px 1fr auto;align-items:center;gap:9px;padding:10px 0;font:11px DM Mono,monospace;display:grid}.player-strip strong{color:var(--muted);font-weight:400}.bot-token{background:var(--ink);color:var(--paper)}.turn-status{color:var(--green);align-items:center;gap:8px;margin:15px 0;font:11px DM Mono,monospace;display:flex}.game-panel .quiet-action{justify-self:start}.game-note{color:var(--muted);font-size:12px;line-height:1.6}.go-board{aspect-ratio:1;background:#d5a65c;border:10px solid #8d5d35;grid-template-columns:repeat(9,1fr);padding:5%;display:grid;box-shadow:0 16px 30px #1a30281c}.go-point{aspect-ratio:1;cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:relative}.go-point:before{content:"";background:#79512f;width:100%;height:1px;position:absolute}.go-point:after{content:"";background:#79512f;width:1px;height:100%;position:absolute}.stone{z-index:1;border-radius:50%;width:76%;height:76%;position:relative;box-shadow:2px 3px 3px #4c301f66}.stone.black{background:#18231f}.stone.white{background:#f7f4ea;border:1px solid #b4a88f}@media (max-width:760px){.game-grid{grid-template-columns:1fr 1fr}.game-card-wide{grid-area:auto/1/auto/-1;min-height:300px}.game-card-muted{grid-column:1/-1}.lobby-layout,.board-layout{grid-template-columns:1fr;gap:35px}.conventions{border-top:1px solid var(--line);border-left:0;padding:25px 0 0}.board-layout{grid-template-columns:minmax(0,1fr)}.chess-square{font-size:clamp(22px,8vw,40px)}.game-panel{max-width:420px}}.game-section{grid-template-columns:34px 44px 1fr auto;gap:12px}@media (max-width:560px){.game-section{grid-template-columns:28px 42px 1fr;gap:10px;min-height:112px;padding:16px 0}.game-section .card-link{grid-column:3}.game-section h3{font-size:25px}.game-section p{font-size:12px}}@media (max-width:760px){.hub-intro{min-height:660px;padding-top:9vh}.hero-card{width:76px;height:108px;padding:9px}.hero-card span{font-size:43px}.hero-card-one{top:57%;right:16%}.hero-card-two{top:64%;right:5%}.hero-card-three{top:67%;right:30%}.hero-spark{bottom:11%;right:5%}}.hand{flex-wrap:nowrap;gap:8px;max-width:none;padding-bottom:8px;overflow-x:auto}.live-status:after{content:var(--auction-time,"");color:var(--green);margin-left:8px}.room-statistics{color:var(--muted);text-transform:uppercase;margin:4px 0 0;font:10px DM Mono,monospace}.club-shell>.lobby-layout+.live-room{display:none}.board-page .page-heading{padding-top:3vh;padding-bottom:2vh}.board-page .page-heading .back-link{margin-bottom:4vh}.heading-row{justify-content:space-between;align-items:flex-end;gap:30px;display:flex}.new-game-top{flex:none;margin-bottom:5px}.game-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.game-actions button:disabled{opacity:.45;cursor:not-allowed}@media (max-width:760px){.heading-row{flex-direction:column;align-items:start;gap:18px}.new-game-top{margin-bottom:0}}.settings-top{max-width:930px;margin-bottom:20px}.settings-top .settings-panel{flex-wrap:wrap;align-items:center;gap:22px;margin:0;padding:14px 0;display:flex}.settings-top .settings-heading{min-width:105px}.settings-top .board-picker,.settings-top .setting-group{align-items:center;gap:10px;display:flex}.settings-top .setting-label{margin:0}.game-panel .history-panel{width:auto;margin-top:8px}.history-live{color:var(--green);cursor:pointer;background:0 0;border:0;font:10px DM Mono,monospace}.game-panel .history-list{border-top:1px solid var(--line);max-height:430px;display:grid;overflow-y:auto}.history-item{border:0;border-bottom:1px solid var(--line);color:var(--muted);text-align:left;cursor:pointer;background:0 0;grid-template-columns:24px 1fr;align-items:center;gap:8px;padding:10px 0;font:11px DM Mono,monospace;display:grid}.history-item strong{color:var(--ink);font-weight:500}.history-item.active-history{color:var(--green);background:#e7eadd}.history-item.active-history strong{color:var(--green)}.room-back{max-width:1000px;margin:34px auto 0}.room-page .back-link{margin-bottom:0}.room-page .live-room{max-width:1000px;margin-top:28px}.room-page .table-scene{min-height:470px}.room-page .live-seat:after{color:#dbe7d6;content:"▱ ▱ ▱";letter-spacing:3px;margin-top:8px;font-size:28px;display:block}.room-page .live-room{gap:22px;max-width:1320px;margin-top:24px}.room-page .room-heading{grid-template-columns:auto 1fr auto;align-items:baseline;gap:14px;padding:0 6px;display:grid}.room-page .room-heading h2{font-size:34px}.room-page .room-columns{grid-template-columns:minmax(0,1fr) 320px;align-items:stretch;gap:24px;display:grid}.room-page .room-main{flex-direction:column;min-width:0;display:flex}.room-page .table-scene{background:radial-gradient(circle,#236048 0,#174936 52%,#10372b 100%);border:14px solid #142a22;border-radius:28px;flex:1;min-height:0;box-shadow:inset 0 0 0 2px #95b79a55,inset 0 0 45px #071b1266,0 22px 44px #142a2233}.room-page .table-scene:before{content:none}.room-page .scene-seats{display:block;inset:0}.room-page .live-seat{z-index:2;color:#eef5e9;justify-items:center;gap:6px;min-width:126px;font-size:12px;display:grid;position:absolute}.room-page .live-seat:first-child{top:3%;left:50%;transform:translate(-50%)}.room-page .live-seat:nth-child(2){top:50%;right:2%;transform:translateY(-50%)}.room-page .live-seat:nth-child(3){bottom:3%;left:50%;transform:translate(-50%)}.room-page .live-seat:nth-child(4){top:50%;left:2%;transform:translateY(-50%)}.room-page .live-seat:nth-child(3) .closed-hand{order:2}.room-page .live-seat:nth-child(3)>span:not(.seat-token):not(.closed-hand){order:3}.room-page .live-seat .seat-token{background:#183f31;border-color:#b9d3b5;width:34px;height:34px}.room-page .live-seat:before{content:"";background:repeating-linear-gradient(135deg,#d8e9d2 0 3px,#2a6b50 3px 6px);border:1px solid #d5e3cb88;border-radius:5px;width:70px;height:42px;display:block;box-shadow:4px 4px #0c3024aa,8px 7px #0c302477}.room-page .live-seat:after{color:#d9e8d2;letter-spacing:.08em;content:none;margin:0;font:10px DM Mono,monospace;display:none}.room-page .active-seat:before{outline-offset:4px;outline:2px solid #e4c675}.room-page .live-seat:before{display:none}.room-page .closed-hand{width:74px;height:46px;display:block;position:relative}.room-page .closed-hand-card{top:0;left:calc(var(--card-index) * 2px);transform-origin:50%;background:repeating-linear-gradient(135deg,#d8e9d2 0 3px,#2a6b50 3px 6px);border:1px solid #d5e3cb88;border-radius:5px;width:58px;height:40px;display:block;position:absolute;box-shadow:3px 3px #0c3024aa}.room-page .trick-center .playing-card,.room-page .flying-card{transform-origin:50%;width:52px;height:72px}.room-page .flying-card{z-index:4;pointer-events:none;animation:.5s cubic-bezier(.22,.8,.3,1) forwards single-card-to-table;position:absolute;top:50%;left:50%}.room-page .card-in-flight{visibility:hidden}@keyframes single-card-to-table{0%{transform:translate(-50%, -50%) translate(var(--flight-x,0px), var(--flight-y,0px)) rotate(8deg) scale(.86);opacity:.65}to{transform:translate(calc(-50% + var(--land-x,0px)), calc(-50% + var(--land-y,0px))) rotate(0) scale(1);opacity:1}}@keyframes cards-to-table{0%{opacity:1;transform:translate(0)rotate(0)}55%{transform:translate(var(--card-flight-x,0), var(--card-flight-y,0)) rotate(8deg) scale(.86);opacity:.72}to{opacity:1;transform:translate(0)rotate(0)scale(1)}}.room-page .live-seat:first-child{--card-flight-x:0;--card-flight-y:62px}.room-page .live-seat:nth-child(2){--card-flight-x:-62px;--card-flight-y:0}.room-page .live-seat:nth-child(3){--card-flight-x:0;--card-flight-y:-62px}.room-page .trick-center{gap:10px;width:300px;max-width:300px;height:220px;margin-top:0;position:relative}.room-page .trick-center .playing-card{transform:translate(-50%, -50%) translate(var(--trick-x,0px), var(--trick-y,0px));will-change:transform, opacity;transition:transform .35s ease-in,opacity .35s ease-in;position:absolute;top:50%;left:50%}.room-page .trick-center.collecting .playing-card{transform:translate(-50%, -50%) translate(var(--collect-x,0px), var(--collect-y,0px)) scale(.4);opacity:0}.room-page .live-room-body{flex-direction:column;gap:16px;margin-top:16px;display:flex}.room-page .live-actions{border:1px solid var(--line);background:#e9ede5;border-radius:10px;padding:18px}.room-page .live-actions:empty{display:none}.room-page .hand{min-height:90px}.room-page .room-rail{flex-direction:column;gap:16px;display:flex}.room-page .combined-feed{border:1px solid var(--line);background:#e9ede5;border-radius:10px;grid-template-rows:auto 1fr auto;gap:8px;height:420px;padding:14px 16px;display:grid}.room-page .feed-log{align-content:start;gap:4px;min-height:0;display:grid;overflow-y:auto}.room-page .scoreboard{width:auto;margin-top:0}.room-page .history-entry,.room-page .chat-entry,.room-page .history-empty{color:var(--muted);margin:0;font:11px DM Mono,monospace}.room-page .chat-entry strong{color:var(--ink)}.room-page .chat-form{gap:8px;display:flex}.room-page .chat-input{border:1px solid var(--line);border-radius:6px;flex:1;padding:8px 10px;font:12px DM Mono,monospace}.room-page .bid-grid{max-width:310px}.room-page .live-actions .quiet-action{margin-top:2px}.player-link{color:inherit;text-decoration:none}.player-link:hover{text-underline-offset:3px;text-decoration:underline}.live-seat .player-link small{color:#f4c46d;font:10px DM Mono,monospace}.player-page-inner{max-width:1000px;margin:34px auto 0}.player-page-inner>.back-link{margin-bottom:42px;display:inline-block}.player-profile{padding-bottom:8vh}.player-hero{border-bottom:1px solid var(--line);align-items:center;gap:24px;padding:28px 0 42px;display:flex}.profile-avatar{object-fit:cover;background:var(--green);width:112px;height:112px;color:var(--paper);border-radius:50%;flex:none;place-items:center;font:42px Playfair Display,serif;display:grid}.player-hero h1{margin:8px 0 10px;font-size:clamp(42px,7vw,80px)}.profile-meta{color:var(--muted);margin:0;font:11px DM Mono,monospace}.player-stats{grid-template-columns:repeat(3,1fr);gap:14px;padding:28px 0 46px;display:grid}.player-stat{border:1px solid var(--line);background:#e9ede5;align-items:center;gap:14px;padding:18px;display:flex}.player-stat-symbol{color:var(--coral);font-size:28px}.player-stat p,.player-stat strong,.player-stat small{margin:0;display:block}.player-stat p{color:var(--muted);text-transform:uppercase;font:10px DM Mono,monospace}.player-stat strong{color:var(--green);margin-top:6px;font-size:25px;font-weight:500}.player-stat small{color:var(--muted);font:10px DM Mono,monospace}.player-history .section-heading{margin-bottom:12px}.player-game-group{border-top:1px solid var(--line);margin-top:18px}.player-game-group h3{align-items:center;gap:8px;margin:0;padding:16px 0 8px;font-size:15px;display:flex}.player-game-group h3 span{color:var(--coral);font-size:20px}.profile-game-row{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;font:11px DM Mono,monospace;text-decoration:none;transition:background .15s;display:flex}.profile-game-row:hover{background:#e2e8d8}.profile-game-row div{gap:4px;display:grid}.profile-game-row strong{color:var(--ink);font-weight:500}.profile-game-row b{color:var(--green);font-weight:500}.profile-empty,.profile-message{color:var(--muted);margin:0;padding:16px 0;font:11px DM Mono,monospace}.game-details-inner{max-width:860px;margin:34px auto 8vh}.game-details-inner>.back-link{margin-bottom:42px;display:inline-block}.game-details-heading{border-bottom:1px solid var(--line);padding-bottom:30px}.game-details-heading h1{margin:8px 0 10px;font-size:clamp(42px,7vw,80px)}.game-players-panel,.moves-panel{border:1px solid var(--line);background:#e9ede5;margin-top:28px;padding:20px}.game-players-panel>.eyebrow{margin:0 0 10px}.game-players-list{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.game-player-row{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:12px;padding:9px 0;font:11px DM Mono,monospace;display:flex}.game-player-row strong{color:var(--green);font-weight:500}.moves-panel .section-heading{margin-bottom:12px}.moves-count{color:var(--muted);font:10px DM Mono,monospace}.moves-list{border-top:1px solid var(--line)}.move-row{border-bottom:1px solid var(--line);grid-template-columns:28px 1fr auto;align-items:center;gap:14px;padding:11px 0;font:11px DM Mono,monospace;display:grid}.move-sequence{color:var(--coral);text-align:center}.move-row div{gap:4px;display:grid}.move-row strong{color:var(--ink);font-weight:500}.move-row span,.move-row time{color:var(--muted)}@media (max-width:650px){.room-page .room-columns{grid-template-columns:1fr}.room-page .combined-feed{height:280px}.room-page .room-heading{grid-template-columns:1fr;gap:5px}.room-page .table-scene{aspect-ratio:1/.9;flex:none;min-height:330px}.room-page .live-seat{min-width:90px}.room-page .live-seat:nth-child(2){right:0}.room-page .live-room-body{grid-template-columns:1fr}.player-hero{flex-direction:column;align-items:flex-start}.player-stats,.game-players-list{grid-template-columns:1fr}.move-row{grid-template-columns:24px 1fr}.move-row time{grid-column:2}}
