/* The approved ivory cards and green felt are now a complete playing surface. */
.full-game{--card-width:100%;--card-height:160px;--overlap:31px;--board-gap:14px}
.game-app{max-width:1260px;padding:0 38px}.full-game .header{height:100px}.full-game h1{font-size:28px}.header-actions{display:flex;gap:8px;align-items:center}
.full-game button,.full-game select{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif}
.quiet-button{padding:11px 13px;background:transparent;border:1px solid transparent;color:#d6d8bd;font-size:14px;border-radius:6px;cursor:pointer}.quiet-button:hover{background:#e9c78912;border-color:#e9c78940}
.game-meta{display:flex;align-items:center;justify-content:space-between;padding:24px 0 20px;color:#b9c7b1}.deal-id{display:flex;gap:13px;align-items:center;font-size:12px;letter-spacing:2px}.deal-id b{font:15px Georgia,serif;letter-spacing:1px;color:#d4d3b7}.counters{display:flex;gap:38px;align-items:center}.counters>div{display:flex;align-items:baseline;gap:11px}.counters>div>span{font-size:12px;letter-spacing:1px}.counters strong{font:23px Georgia,serif;font-variant-numeric:tabular-nums;color:#eee0c2;min-width:31px}.counters small{font:13px Georgia,serif;color:#9bab92}
.game-board{position:relative;--row-step:31px;--card-ratio:1.39;--cw:calc((100% - 7 * var(--board-gap))/8);--ch:calc(var(--cw)*1.39)}
.pile-captions{display:flex;justify-content:space-between;gap:18px;color:#b9c3a6;font-size:12px;letter-spacing:2px;margin-bottom:12px}.pile-captions span{width:49%;text-align:center}
.game-top,.game-columns{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:var(--board-gap)}.game-top{margin-bottom:28px}.game-pile{position:relative;aspect-ratio:1/1.39;min-width:0}.game-column{position:relative;min-width:0;min-height:260px}
.pile-hit{position:absolute;inset:0;width:100%;height:100%;padding:0;border:1px solid #d4ba7c55;border-radius:7px;background:#001f1215;box-shadow:inset 0 2px 7px #00170d28;color:#cbb78155;cursor:pointer;display:grid;place-items:center}.pile-hit svg{width:36%;height:36%;fill:currentColor}.pile-hit .cell-plus{font:28px Georgia,serif;font-weight:400;opacity:.7}.game-column>.pile-hit{height:auto;aspect-ratio:1/1.39;max-height:180px;inset:0 0 auto;border-style:dashed;color:#d0bb7733;font:13px Georgia,serif}
.playing-card{position:absolute;left:0;top:calc(var(--row)*var(--row-step));width:100%;aspect-ratio:1/1.39;padding:0;text-align:left;border-radius:7px;border:1px solid #ddcfb6;background:linear-gradient(115deg,#fff9ed,#f8efde 65%,#f5e9d3);color:var(--ink);box-shadow:0 1px 1px #15221440,0 3px 5px #00150d30,inset 0 0 0 1px #ffffff55;cursor:pointer;user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent}
.playing-card.red{color:#ab332c}.playing-card .corner{font-family:Georgia,'Times New Roman',serif;font-size:clamp(17px,2.2vw,28px);left:7%;top:4%;gap:4px;letter-spacing:-.7px}.playing-card .corner svg{width:clamp(10px,1.3vw,17px);height:clamp(10px,1.3vw,17px)}.playing-card .center-suit{position:absolute;fill:currentColor;left:28.5%;top:31%;width:43%;height:43%}.playing-card .bottom-corner{left:auto;top:auto;right:7%;bottom:6%;transform:rotate(180deg);font-size:clamp(14px,1.7vw,22px)}.playing-card .bottom-corner svg{width:13px;height:13px}.game-column>.playing-card:not(:last-child) .center-suit,.game-column>.playing-card:not(:last-child) .bottom-corner{visibility:hidden}
.playing-card.chosen{outline:3px solid #f3cb71;outline-offset:0;box-shadow:0 0 18px #f4d58038,0 3px 6px #00150d30}.valid-target>.pile-hit{border:2px solid #e5c777;box-shadow:0 0 20px #e5c77730;background:#e5c77712}.valid-target>.playing-card:last-child{box-shadow:0 0 0 2px #debd73,0 0 20px #e5c77728}.hint-source>.corner{background:#f3dba5;border-radius:3px}.hint-target>.pile-hit{border:3px solid #f3dba5}.hint-target>.playing-card:last-child{outline:3px solid #f3dba5}.drag-over>.pile-hit{background:#e5c77722;box-shadow:0 0 25px #e5c77760}.playing-card.drag-hidden{visibility:hidden}.drag-proxy{position:fixed;z-index:5000;pointer-events:none;filter:drop-shadow(0 14px 10px #00150d60);will-change:transform}.drag-proxy .playing-card{pointer-events:none;visibility:visible!important;box-shadow:0 2px 4px #00150d44}
.game-controls{display:flex;justify-content:center;gap:14px;margin-top:29px}.game-controls button,.game-dialog button:not(.close-button),.win-summary button,.finished-banner button{min-height:46px;padding:12px 23px;border:1px solid #d6bf8a66;border-radius:7px;background:#e5cb9309;color:#e5d5b3;cursor:pointer;font-size:15px;letter-spacing:.5px}.game-controls button{display:flex;align-items:center;justify-content:center;gap:12px;min-width:114px}.game-controls button>span:first-child{font:22px Georgia,serif;line-height:18px}.full-game .gold-button{background:linear-gradient(125deg,#edcf92,#dcb36b);border-color:#edcd8c;color:#283624;font-weight:500;box-shadow:0 3px 12px #001b0b33}.game-controls button:hover,.game-dialog button:hover,.win-summary button:hover{filter:brightness(1.12);background-color:#e9c78919}.game-controls button:disabled{opacity:.35;cursor:default;filter:none}.game-message{text-align:center;color:#b7c3ac;font-size:14px;line-height:1.7;margin:17px 0 25px;min-height:24px}.game-message.error{color:#f0c8a4}.full-game .game-footer{font-size:12px;letter-spacing:.4px;padding:21px 0;color:#91a98f}.finished-banner{margin-top:20px;text-align:center;color:#e9c789;font-size:16px}.finished-banner button{margin-left:20px;font-size:14px;padding:8px 16px;min-height:40px}
.game-dialog{color:#f0e1c3;background:linear-gradient(145deg,#124431,#082d22);border:1px solid #d6bd8066;border-radius:14px;padding:28px 30px;width:min(480px,calc(100vw - 28px));max-height:90svh;box-shadow:0 30px 110px #00170bdd}.full-game dialog::backdrop{background:#00160ed4;backdrop-filter:blur(4px)}.game-dialog h2{font:500 25px var(--serif);letter-spacing:2px;margin:0 0 15px}.game-dialog p{font-size:15px;color:#bac7b0;line-height:1.8;margin:0 0 22px}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.close-button{height:42px;width:42px;border:0;background:transparent;color:#d9c99e;border-radius:50%;font-size:30px;line-height:1;cursor:pointer}.dialog-heading .close-button{margin:-8px -12px 0 0}.dialog-actions{display:flex;gap:10px;flex-wrap:wrap}.game-dialog .dialog-actions>button{flex:1;white-space:nowrap}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:64px;padding:13px 0;border-bottom:1px solid #d6bd8026;font-size:15px}.setting-row b{font-weight:400}.setting-row small{display:block;font-size:12px;line-height:1.6;margin-top:5px;color:#9eb499}.setting-row select{font-size:14px;padding:9px;border:1px solid #d6bd8044;border-radius:5px;color:#f0e1c3;background:#103c2c;max-width:160px}.setting-row input[type=range]{width:130px;accent-color:#e9c789}.setting-row input[type=checkbox]{width:21px;height:21px;accent-color:#e9c789;flex-shrink:0}.dialog-done{margin-top:24px;width:100%}.help-dialog{width:min(540px,calc(100vw - 28px))}.help-dialog ol{padding-left:22px;font-size:15px;color:#d0d6be;line-height:1.85}.help-dialog li{margin-bottom:12px}.help-dialog .help-note{font-size:13px;color:#a4b49b;margin-top:20px}.full-game button:focus-visible,.full-game select:focus-visible,.full-game input:focus-visible{outline:3px solid #ffe0a0;outline-offset:3px}
.win-dialog{padding:0;width:min(1100px,96vw);height:min(700px,92svh);max-width:none;max-height:none;border:1px solid #d6bd8066;border-radius:16px;color:#f0e1c3;background:#083323 url('./assets/felt-green.png') center/cover;overflow:hidden;box-shadow:0 30px 110px #00170ddd}.win-dialog>.close-button{position:absolute;z-index:500;right:12px;top:10px;background:#082d2266}.win-stage{position:relative;width:100%;height:100%;min-height:380px}.win-summary{position:absolute;z-index:250;bottom:24px;left:50%;transform:translateX(-50%);width:min(480px,90%);padding:20px 24px;text-align:center;border:1px solid #d6bd8044;border-radius:12px;background:#082e23;opacity:0;transition:opacity .5s;pointer-events:none}.win-summary.visible{opacity:1;pointer-events:auto}.win-eyebrow{font-size:12px;letter-spacing:3px;color:#b5c3a5}.win-summary h2{font:500 36px var(--serif);letter-spacing:3px;margin:12px 0}.win-summary p{font-size:15px;color:#b5c3a5;margin:0 0 20px}.win-summary .dialog-actions{justify-content:center}.win-summary button{min-height:44px;padding:10px 20px;font-size:14px}
@media(max-width:900px){.game-app{padding:0 24px}.full-game{--board-gap:9px}.game-board{--row-step:27px}.game-top{margin-bottom:24px}.counters{gap:24px}.counters strong{font-size:21px}.full-game .header{height:86px}.full-game h1{font-size:25px}.quiet-button{padding:10px;font-size:13px}.game-controls{margin-top:24px}}
@media(max-width:600px){.game-app{padding:0 10px}.full-game{--board-gap:4px}.full-game .header{height:78px;gap:4px}.full-game h1{font-size:22px}.full-game .brand{gap:8px}.full-game .brand span{font-size:10px}.full-game .brand>svg{width:23px;height:32px}.header-actions{gap:0}.quiet-button{padding:10px 8px;font-size:12px;min-height:42px}.game-meta{padding:17px 2px 18px;gap:12px}.deal-id{flex-direction:column;align-items:flex-start;gap:6px;font-size:11px;letter-spacing:1px}.deal-id b{font-size:13px}.counters{gap:18px}.counters>div{flex-direction:column;gap:5px;align-items:center}.counters>div>span{font-size:11px}.counters strong{font-size:20px}.counters small{font-size:11px}.game-board{--row-step:22px}.pile-captions{font-size:11px;letter-spacing:.4px;gap:8px;margin-bottom:10px}.game-top{margin-bottom:24px}.game-pile,.playing-card,.game-column>.pile-hit{aspect-ratio:1/1.62}.playing-card{border-radius:4px}.pile-hit{border-radius:4px}.pile-hit .cell-plus{font-size:20px}.playing-card .corner{font-size:clamp(14px,3.7vw,22px);gap:1px;left:5%;top:5%;letter-spacing:-.7px}.playing-card .corner svg{width:clamp(8px,2.1vw,12px);height:clamp(8px,2.1vw,12px)}.playing-card .bottom-corner{font-size:13px;right:5%;bottom:6%}.playing-card .bottom-corner svg{width:8px;height:8px}.playing-card .center-suit{width:50%;height:43%;left:25%;top:31%}.playing-card.chosen{outline-width:2px}.valid-target>.playing-card:last-child{box-shadow:0 0 0 2px #debd73}.game-controls{gap:8px;margin-top:24px}.game-controls button{min-width:0;flex:1;padding:12px 6px;font-size:14px;gap:7px;min-height:48px}.game-controls button>span:first-child{font-size:19px}.game-message{font-size:13px;margin:16px 4px 21px;min-height:44px;line-height:1.75}.full-game .game-footer{flex-direction:column;align-items:center;gap:6px;font-size:11px;padding:16px 0}.game-dialog{padding:24px 22px}.game-dialog h2{font-size:23px}.game-dialog .dialog-actions{flex-direction:column}.game-dialog .dialog-actions>button{width:100%}.win-dialog{width:96vw;height:min(640px,92svh)}.win-summary{bottom:20px;padding:18px 14px}.win-summary h2{font-size:29px}.win-summary p{font-size:14px}.win-summary button{padding:10px 16px;font-size:14px}.finished-banner{font-size:14px;line-height:2}.finished-banner button{margin-left:8px;padding:5px 10px;font-size:12px}}
@media(max-height:550px) and (min-width:600px){.full-game .header{height:65px}.game-meta{padding:12px 0}.game-app{max-width:950px}.game-top{margin-bottom:16px}.game-controls{margin-top:17px}.win-summary{padding:12px;bottom:10px}.win-summary h2{font-size:25px;margin:8px}.win-summary p{margin-bottom:10px}}
@media(prefers-reduced-motion:reduce){.win-summary{transition:none}}
