.patience-page{background:radial-gradient(circle at 85% 18%,#e2a94635,transparent 22%),linear-gradient(#25170ecf,#120d09f2),repeating-linear-gradient(90deg,#5b3b21 0 70px,#3d2818 70px 75px)}
.patience-shell{width:min(1280px,calc(100% - 16px));margin:auto;display:grid;grid-template-columns:minmax(0,940px) minmax(260px,1fr);gap:1.2rem;align-items:start}
.patience-table{min-height:520px;padding:clamp(.5rem,2vw,1.2rem);border:10px solid #6c4223;border-radius:20px;background:radial-gradient(circle at 12% 8%,#486f59,#173e30 62%,#10291f);box-shadow:0 22px 60px #0009,inset 0 0 50px #0005;overflow:visible;touch-action:pan-y}
.patience-top{display:grid;grid-template-columns:repeat(2,minmax(0,96px)) 1fr repeat(4,minmax(0,96px));gap:clamp(4px,1vw,12px);margin-bottom:1.2rem}.foundations{display:contents}
.card-slot,.playing-card{position:relative;width:100%;aspect-ratio:5/7;border-radius:9px}.card-slot{border:2px dashed #e3d49b99;background:#0d2e2255}.stock{background:repeating-linear-gradient(45deg,#365c47 0 5px,#e1c16f 5px 7px);border:5px solid #f4e8c7;box-shadow:0 3px 5px #0006}
.foundation-suit{position:absolute;inset:0;display:grid;place-items:center;font:700 clamp(1.35rem,3vw,2.2rem) Georgia;color:#f2dfaa99}.foundation-slot--hearts .foundation-suit,.foundation-slot--diamonds .foundation-suit{color:#f2a2a2aa}
.tableau{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(3px,1vw,12px);align-items:start}.tableau-column{position:relative;min-height:126px;transition:min-height .15s ease}.tableau-column .playing-card{position:absolute;left:0}
.playing-card{display:block;padding:0;border:1px solid #75623e;background:linear-gradient(135deg,#fffaf0,#f4e7c7);color:#171712;text-align:left;font:800 clamp(.72rem,1.45vw,1.08rem) Georgia,"Times New Roman",serif;box-shadow:0 4px 7px #0007;touch-action:pan-y;overflow:hidden;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.playing-card.red{color:#a4242d}.playing-card.face-down{background:linear-gradient(45deg,transparent 42%,#d5b45c 43% 48%,transparent 49%),repeating-linear-gradient(135deg,#214936 0 7px,#183b2c 7px 13px);color:#f3d990;border:4px solid #efe1ba;box-shadow:inset 0 0 0 2px #b99543,0 4px 7px #0007}.card-back-mark{position:absolute;inset:18%;display:grid;place-items:center;border:1px solid #ddc16b;font-size:.65rem;letter-spacing:.08em}
.playing-card.selected{outline:4px solid #ffd968;outline-offset:1px;z-index:40;filter:brightness(1.08)}.card-index{position:absolute;z-index:2;display:block;line-height:1;letter-spacing:-.04em}.card-index--top{left:7px;top:6px}.card-index--bottom{right:7px;bottom:6px;transform:rotate(180deg)}.card-centre{position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(1.45rem,3vw,2.65rem);opacity:.92}.empty-mark{position:absolute;inset:0;display:grid;place-items:center;color:#eadbb299;font:700 .68rem system-ui;text-transform:uppercase}.patience-panel{position:sticky;top:1rem}.patience-gap{min-width:1px}
@media(max-width:900px){.patience-shell{grid-template-columns:1fr}.patience-panel{position:static}.patience-table{min-height:440px}}
@media(max-width:430px){.patience-shell{width:100%}.patience-table{border-width:5px;border-radius:10px;padding:4px;min-height:350px}.patience-top,.tableau{gap:3px}.patience-top{grid-template-columns:repeat(2,minmax(0,47px)) 1fr repeat(4,minmax(0,47px));margin-bottom:.7rem}.playing-card{border-radius:5px;font-size:.72rem}.playing-card.face-down{border-width:2px}.card-index--top{left:4px;top:4px}.card-index--bottom{right:4px;bottom:4px}.card-centre{font-size:1.15rem}.patience-panel{margin:0 6px}}
.tableau-column .playing-card:not(:last-child){clip-path:inset(0 0 calc(100% - var(--card-hit-height,30px)) 0)}.tableau-column .playing-card.face-down:not(:last-child){--card-hit-height:12px}.playing-card.drag-origin{opacity:.28}.tableau-column.is-valid,.foundation-slot.is-valid{outline:4px solid #ffd968;outline-offset:2px;box-shadow:0 0 18px #ffd968aa}.patience-drag-overlay{position:fixed;left:0;top:0;width:min(96px,calc((100vw - 32px)/7));aspect-ratio:5/7;z-index:9999;pointer-events:none;filter:drop-shadow(0 14px 12px #0009);will-change:transform}.patience-drag-overlay .playing-card{position:absolute;left:0;width:100%;height:auto;aspect-ratio:5/7;clip-path:none!important;touch-action:none}.is-card-dragging{cursor:grabbing}
@media(prefers-reduced-motion:reduce){.tableau-column{transition:none}}
