:root{--ivory:#f4ecd8;--muted:#b9c1b3;--gold:#e6c590;--brass:#c9a26a;--line:rgba(201,162,106,.26);--felt:#0e3a2e}
*{box-sizing:border-box}html{background:#0a100d}body{margin:0;color:var(--ivory);font:14px/1.5 'Inter','Segoe UI',sans-serif;background:radial-gradient(ellipse at 50% 0,#20362b 0,transparent 65%),#0a100d;min-height:100vh}button,a{-webkit-tap-highlight-color:transparent}button{font:600 12px/1.3 'Inter','Segoe UI',sans-serif;color:var(--ivory);background:rgba(0,0,0,.15);border:1px solid var(--line);border-radius:7px;min-height:42px;padding:10px 15px;cursor:pointer;transition:background .16s,border-color .16s,transform .16s}button:hover:not(:disabled){background:rgba(201,162,106,.15);border-color:var(--gold)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.35;cursor:default}button.primary{background:linear-gradient(135deg,#e6c590,#bb935c);color:#201e14;border-color:#e6c590;font-weight:700}a{color:var(--gold)}button:focus,a:focus,summary:focus{outline:2px solid var(--gold);outline-offset:4px}button:focus:not(:focus-visible),a:focus:not(:focus-visible),summary:focus:not(:focus-visible){outline:none}[hidden]{display:none!important}.game-shell{width:calc(100% - 48px);max-width:1152px;margin:auto}.top-bar{display:flex;justify-content:space-between;align-items:center;padding:26px 4px 24px;gap:20px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.2em;color:var(--brass)}h1,h2,.thirteen{font-family:Georgia,'Times New Roman',serif;font-weight:400}h1{font-size:42px;line-height:1.15;margin:7px 0 5px;letter-spacing:-1.3px}h1 em{font-weight:400;color:var(--gold)}.tb-title p{font-size:12px;color:var(--muted);margin:0}.stats{display:flex;gap:30px;text-align:right}.stats>div{min-width:62px}.label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted)}.stats strong{font-size:24px;font-weight:500;font-variant-numeric:tabular-nums}.stats small{font-size:14px;color:var(--muted)}.gold{color:var(--gold)}.table{position:relative;background:radial-gradient(ellipse at 40% 30%,#19503e,transparent 75%),repeating-linear-gradient(100deg,rgba(255,255,255,.009) 0 1px,transparent 1px 4px),#0a2b22;border:1px solid #8f744c;border-radius:19px;box-shadow:0 0 0 5px #18251c,0 0 0 6px #4d4935,0 22px 50px #0007,inset 0 0 70px #00170e88;padding:20px 24px 0;overflow:hidden}.table-heading{display:flex;justify-content:space-between;color:#afbdab;font-size:9px;letter-spacing:.18em;padding-bottom:18px}.table-heading i{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--brass);margin-right:8px}.play-area{display:flex;align-items:center;gap:30px}.board-fit{position:relative;flex:1;min-width:0;display:flex;justify-content:center;overflow:hidden}.board{position:relative;flex:none;width:660px;height:450px;transform-origin:top center;touch-action:pan-y;user-select:none;-webkit-user-select:none}.card{position:absolute;width:78px;height:110px;border:0;border-radius:6px;padding:0;background-color:#fffdf6;background-size:100% 100%;box-shadow:0 3px 6px #0006;transition:box-shadow .16s,filter .16s,opacity .16s;touch-action:none}.card.covered{filter:brightness(.77);cursor:default}.card.covered:disabled{opacity:1}.card.playable:hover{box-shadow:0 5px 13px #0008,0 0 0 2px #e6c59088;transform:translateY(-3px)}.card.selected{box-shadow:0 0 0 3px #e6c590,0 0 24px #e6c59066;transform:translateY(-5px)}.card.partner{box-shadow:0 0 0 2px #a3ddb4,0 0 18px #a3ddb444}.card.hint,.stock.hint{outline:3px solid #e6c590;outline-offset:3px;animation:hint-pulse 1s ease-in-out infinite alternate}.card:focus{outline:3px solid #e6c590;outline-offset:3px}.card.entering{animation:deal-in .3s ease both}.card.departing{pointer-events:none;animation:clear-card .3s ease forwards;z-index:40}.card.dragging{opacity:.35}.drag-ghost{position:fixed;pointer-events:none;z-index:5000;transform:rotate(5deg);opacity:.95}.stock{position:absolute;width:78px;height:110px;padding:5px;border:1px solid #dbc49b;background:repeating-linear-gradient(45deg,#c9a26a12 0 1px,transparent 1px 7px),#17382e;box-shadow:3px 3px 0 #d8ccb1,5px 5px 0 #17382e,0 7px 12px #0005;font-family:Georgia,serif;font-size:42px;color:#c9a26a;touch-action:manipulation}.stock::before{content:'';position:absolute;inset:6px;border:1px solid #c9a26a66;border-radius:3px}.stock.empty{border:1px dashed #c9a26a66;box-shadow:none;background:#0001;font-size:32px}.stock:disabled{opacity:.45}.pile-label{position:absolute;width:90px;text-align:center;font-size:10px;letter-spacing:.09em;color:#c3cbbd}.waste-slot{position:absolute;width:78px;height:110px;border:1px dashed #c9a26a55;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#c9a26a66;font-family:Georgia,serif;font-size:25px}.stock-note{position:absolute;left:478px;top:38px;width:155px;color:#a8beab;font-size:12px;line-height:1.8}.stock-note strong{color:var(--gold);font-weight:500}.table-guide{width:204px;flex:none;text-align:center;border-left:1px solid var(--line);padding:12px 0 12px 27px;color:var(--muted)}.table-guide .eyebrow{font-size:8px;letter-spacing:.17em}.thirteen{font-size:94px;line-height:1.1;color:var(--gold);font-style:italic;text-shadow:0 3px 18px #0003}.table-guide p{font-size:12px;line-height:1.7;margin:10px 0 22px}.pair-guide{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pair-guide>span{border:1px solid var(--line);border-radius:4px;padding:6px 2px;font-family:Georgia,serif;font-size:16px;color:var(--ivory)}.pair-guide b{font:10px sans-serif;color:var(--brass);padding:0 4px}.table-guide .king-rule{font:22px Georgia,serif;color:var(--gold);margin:20px 0}.king-rule span{font:10px sans-serif;margin-left:7px;color:var(--muted)}.progress-track{height:3px;border-radius:3px;background:#ffffff12;margin:28px 0 8px;overflow:hidden}.progress-track>div{height:100%;background:var(--brass);width:0;transition:width .3s}#remaining{font-size:10px}.status{min-height:43px;text-align:center;color:#e2d4b6;font-size:12px;padding:10px 4px}.controls{border-top:1px solid var(--line);margin:0 -24px;padding:16px 24px;display:flex;align-items:center;gap:8px;background:#061d1777}.controls .primary{min-width:126px;display:flex;justify-content:space-between;gap:16px}.control-spacer{flex:1}#rulesBtn{width:40px;padding:8px;font-family:Georgia,serif;font-size:18px}.table-footer{display:flex;justify-content:space-between;gap:10px;font-size:9px;letter-spacing:.09em;color:#8f9d8d;margin:20px 0}.table-footer b{color:var(--gold);font-weight:500}.footer-dot{margin:0 9px}.quick-rules{color:var(--muted);font-size:12px;border-bottom:1px solid var(--line);padding:0 0 20px}.quick-rules summary{cursor:pointer;color:var(--gold)}.quick-rules p{max-width:780px;line-height:1.8}.game-overview{max-width:800px;margin:54px auto 90px;color:var(--muted);line-height:1.8;font-size:14px;user-select:text}.game-overview h2{font-size:30px;color:var(--gold)}.game-overview h3{font-family:Georgia,serif;font-size:21px;font-weight:400;color:var(--gold);margin-top:32px}.game-overview b{color:var(--ivory)}.game-overview li{margin-bottom:8px}.related-games-list{display:flex;flex-wrap:wrap;gap:8px 24px;list-style:none;padding:0}.related-games-list a{text-decoration:none}.modal{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;background:#030b09cc;backdrop-filter:blur(7px);padding:20px}.win-card,.confirm-card{background:radial-gradient(ellipse at top,#254b37,#101f18);border:1px solid var(--brass);box-shadow:0 25px 100px #0009;border-radius:18px;width:520px;max-width:100%;max-height:calc(100vh - 40px);overflow:auto;padding:32px;text-align:center}.result-mark{font:64px Georgia,serif;color:var(--gold);line-height:1.1;margin-bottom:10px}.modal h2{font-size:36px;line-height:1.2;color:var(--gold);margin:10px 0}.modal p{color:var(--muted);font-size:13px}.result-stats{font-size:22px;font-variant-numeric:tabular-nums;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:24px 0 12px;color:var(--ivory)}.result-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:24px}#winRecord{font-size:11px}.confirm-card{width:420px}.confirm-card h2{font-size:30px}
@keyframes deal-in{from{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:translateY(0)}}@keyframes clear-card{to{opacity:0;transform:translateY(-26px) scale(.87)}}@keyframes hint-pulse{to{box-shadow:0 0 24px #e6c59088}}
@media(min-width:900px) and (max-height:850px){.top-bar{padding:10px 4px 8px}h1{font-size:32px;margin:4px 0 2px}.tb-title p{display:none}.status{min-height:30px;padding:5px 4px}.controls{padding:8px 24px}.play-area{min-height:0}.table-heading{padding-bottom:8px}.table-guide{padding-top:0;padding-bottom:0}.thirteen{font-size:62px}.table-guide p{margin:6px 0 12px}.table-guide .king-rule{margin:12px 0}.progress-track{margin-top:16px}.pair-guide{gap:5px}.pair-guide>span{padding:4px 2px}}
@media(max-width:800px){.game-shell{width:calc(100% - 28px)}.table{padding:16px 12px 0}.play-area{gap:0}.table-guide{display:none}.controls{margin:0 -12px;padding:13px 12px;gap:7px}.controls button{padding:9px 11px}.control-spacer{display:none}.controls .primary{min-width:100px}.controls{flex-wrap:wrap;justify-content:center}.stats{gap:16px}.top-bar{padding:22px 0}.table-footer{font-size:8px}.table-heading{padding:0 4px 12px}}
@media(max-width:500px){h1{font-size:29px}.top-bar{align-items:flex-end;gap:8px;padding:18px 0}.tb-title .eyebrow{font-size:8px;letter-spacing:.13em}.tb-title p{display:none}.stats{gap:12px}.stats>div{min-width:0}.stats strong{font-size:17px}.stats small{font-size:11px}.stats .label{font-size:8px;letter-spacing:.06em}.controls button{font-size:11px;min-height:40px;padding:9px 10px}.controls .primary{min-width:100px}.controls{gap:6px}.status{font-size:11px;min-height:47px}.table-footer{flex-direction:column;gap:4px;margin:16px 2px}.table-heading{font-size:8px;letter-spacing:.12em}.game-overview{margin-top:36px}.win-card{padding:24px 18px}.modal h2{font-size:30px}.result-stats{font-size:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
