:root{--felt:#136b4b;--felt-dark:#0b4938;--felt-line:#ffffff2e;--ink:#17211d;--muted:#5d6b64;--paper:#fffdf7;--paper-soft:#f3efe4;--gold:#d6ae57;--gold-dark:#936f2e;--red:#bd2e3a;--black:#19223a;--button:#f8f1dd;--button-border:#35270f38;--shadow:0 18px 45px #03150f47;--card-w:clamp(48px, 11.5vw, 92px);--card-h:calc(var(--card-w) * 1.4);--gap:clamp(6px, 1.8vw, 14px);--radius:8px;--font-body:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:Georgia, "Times New Roman", serif;font-family:var(--font-body);color:var(--ink);background:var(--felt-dark);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;font-weight:500;line-height:1.45}*{box-sizing:border-box}body{min-width:320px;min-height:100svh;margin:0}button{font:inherit}button:focus-visible{outline-offset:3px;outline:3px solid #ffffffe6}#root{min-height:100svh}.landing-shell,.game-shell{background:linear-gradient(90deg, transparent 0 23px, #ffffff09 23px 24px), linear-gradient(0deg, transparent 0 23px, #ffffff08 23px 24px), var(--felt);background-size:24px 24px,24px 24px,auto;min-height:100svh}.landing-shell{place-items:center;padding:24px;display:grid}.landing-panel{width:min(100%,560px);color:var(--paper);text-align:center;justify-items:center;gap:28px;display:grid}.landing-panel h1{max-width:9ch;font-family:var(--font-display);letter-spacing:0;text-wrap:balance;text-shadow:0 8px 24px #0000003d;margin:0;font-size:clamp(3rem,12vw,6.6rem);line-height:.9}.landing-cards{width:min(72vw,250px);height:170px;position:relative}.landing-card{aspect-ratio:5/7;border-radius:var(--radius);background:var(--paper);width:104px;box-shadow:var(--shadow);font-family:var(--font-display);letter-spacing:0;border:1px solid #2a1c0c33;place-items:center;font-size:2rem;display:grid;position:absolute;top:10px;left:50%}.landing-card:first-child{transform:translate(-92%)rotate(-12deg)}.landing-card:nth-child(2){z-index:2;transform:translate(-50%)translateY(-8px)}.landing-card:nth-child(3){transform:translate(-8%)rotate(12deg)}.primary-action,.secondary-action,.icon-button{border:1px solid var(--button-border);cursor:pointer;letter-spacing:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:44px;transition:transform .14s,box-shadow .14s,background .14s;display:inline-flex}.primary-action{color:#241a07;background:var(--gold);min-width:160px;padding:12px 18px;font-weight:800;box-shadow:0 12px 28px #0e18103d}.primary-action.compact{min-width:136px;padding:10px 14px}.secondary-action,.icon-button{color:var(--ink);background:var(--button);padding:10px 12px}.primary-action:hover,.secondary-action:hover,.icon-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 22px #04161038}.icon-button:disabled{cursor:not-allowed;opacity:.48}.game-shell{padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));flex-direction:column;gap:14px;display:flex;overflow:hidden}.game-header,.top-row{width:min(100%,1040px);margin:0 auto}.game-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.status-strip,.control-strip{align-items:center;gap:8px;min-width:0;display:flex}.status-strip{flex-wrap:wrap}.status-strip span{min-height:38px;color:var(--paper-soft);background:#082a20b8;border:1px solid #ffffff2e;border-radius:8px;align-items:baseline;gap:6px;padding:8px 10px;display:inline-flex}.status-strip strong{color:#fff6d8}.control-strip{flex-wrap:wrap;justify-content:flex-end}.top-row{grid-template-columns:var(--card-w) var(--card-w) minmax(max-content, 1fr);gap:var(--gap);align-items:start;padding-bottom:2px;display:grid;overflow-x:auto}.foundation-row{grid-template-columns:repeat(4, var(--card-w));gap:var(--gap);justify-content:end;min-width:max-content;display:grid}.pile,.pile-slot,.playing-card,.empty-tableau-slot{width:var(--card-w);aspect-ratio:5/7;border-radius:var(--radius)}.pile,.pile-slot,.empty-tableau-slot{color:#ffffffbd;background:#072d226b;border:1px dashed #ffffff57;place-items:center;display:grid}.pile{cursor:pointer;border-style:solid;padding:0}.pile:disabled{cursor:not-allowed;opacity:.42}.pile-slot{position:relative}.empty-label{text-transform:uppercase;font-size:.72rem;font-weight:800}.foundation-slot{font-family:var(--font-display);font-size:1.9rem}.red-suit,.card-red{color:var(--red)}.black-suit,.card-black{color:var(--black)}.tableau-scroll{flex:auto;width:min(100%,1040px);margin:0 auto;padding-bottom:8px;overflow:auto}.tableau{grid-template-columns:repeat(7, var(--card-w));gap:var(--gap);min-width:max-content;padding-bottom:18px;display:grid}.tableau-column{width:var(--card-w);position:relative}.tableau-card{position:absolute;left:0}.playing-card{-webkit-user-select:none;user-select:none;touch-action:none;border:1px solid #20140938;display:block;position:relative;overflow:hidden;box-shadow:0 8px 18px #0000002e}.playing-card.tableau-card{position:absolute}button.playing-card{cursor:grab;text-align:left;padding:0}button.playing-card:active{cursor:grabbing}.card-face{background:linear-gradient(145deg, #ffffffd1, transparent 42%), var(--paper)}.red-card{color:var(--red)}.black-card{color:var(--black)}.card-back{color:#f5dfa0;background:linear-gradient(135deg,#ffffff2e 0 12%,#0000 12% 38%,#ffffff24 38% 50%,#0000 50%) 0 0/18px 18px,#315c9d}.back-pattern{aspect-ratio:1;border:2px solid #fff6d8b3;border-radius:999px;place-items:center;width:68%;font-size:.95rem;font-weight:900;display:grid}.empty-stock{background:#072d226b}.card-corner{font-family:var(--font-display);letter-spacing:0;font-size:1rem;font-weight:800;line-height:1;position:absolute;top:7px;left:7px}.card-corner-bottom{inset:auto 7px 7px auto;transform:rotate(180deg)}.card-suit{font-family:var(--font-display);place-items:center;font-size:2.25rem;line-height:1;display:grid;position:absolute;inset:0}.drag-preview{z-index:40;background:var(--paper);min-width:74px;box-shadow:var(--shadow);pointer-events:none;border:1px solid #1f160738;border-radius:8px;align-items:center;gap:8px;padding:9px 12px;display:inline-flex;position:fixed}.drag-preview span{font-family:var(--font-display);font-size:1.35rem;font-weight:800}.drag-preview small{min-width:24px;height:24px;color:var(--paper);background:var(--felt);border-radius:999px;place-items:center;font-size:.8rem;display:grid}.modal-scrim{z-index:50;background:#051812b8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.win-dialog{width:min(100%,380px);color:var(--paper);box-shadow:var(--shadow);text-align:center;background:#173f38;border:1px solid #ffffff42;border-radius:8px;justify-items:center;gap:18px;padding:28px;display:grid}.win-dialog h2{font-family:var(--font-display);letter-spacing:0;margin:0;font-size:2.5rem;line-height:1}.win-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}@media (width<=720px){:root{--card-w:clamp(46px, 13vw, 64px);--gap:6px}.game-shell{gap:10px}.game-header{flex-direction:column;align-items:stretch}.status-strip,.control-strip{justify-content:space-between}.icon-button{flex:1 1 0;min-width:0;padding-inline:8px}.icon-button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.top-row{grid-template-columns:var(--card-w) var(--card-w) minmax(calc(var(--card-w) * 4 + var(--gap) * 3), 1fr)}.card-corner{font-size:.78rem;top:5px;left:5px}.card-corner-bottom{inset:auto 5px 5px auto}.card-suit{font-size:1.65rem}.empty-label{font-size:.58rem}.win-dialog{padding:24px 18px}}@media (prefers-reduced-motion:reduce){.primary-action,.secondary-action,.icon-button{transition:none}}
