.game-page.solitaire-pro{max-width:1300px}.game-page.solitaire-pro #game-content{max-width:1150px;width:100%;margin:auto}.solitaire-pro .game-help{line-height:1.7;color:var(--muted)}.solitaire-pro .game-toolbar{display:flex;gap:14px;flex-wrap:wrap;margin:20px 0}.solitaire-pro .puzzle-actions{display:flex;gap:8px;flex-wrap:wrap}.solitaire-pro select{font:inherit;padding:10px;border-radius:8px;background:#283128;color:#eee;border:1px solid #62705b}.solitaire-pro .solitaire-table{background:radial-gradient(ellipse at top,#344d39,#203526);padding:22px;border:1px solid #4e6951;border-radius:20px;min-height:440px}.solitaire-pro .solitaire-top,.solitaire-pro .solitaire-columns{gap:12px}.solitaire-pro .playing-card,.solitaire-pro .card-space{height:auto;aspect-ratio:0.7;position:relative;border-radius:9px;min-width:0}.solitaire-pro .playing-card{padding:8px;background:#f7f1e0;color:#25322b;box-shadow:0 3px 6px #0003;font-size:clamp(14px,2vw,24px);letter-spacing:0}.solitaire-pro .playing-card.red{color:#b43d39}.sp-corner{font-weight:800;position:relative;z-index:1}.sp-suit{position:absolute;inset:25% 0 0;display:grid;place-items:center;font-size:clamp(28px,4vw,56px)}.solitaire-pro .playing-card.facedown{background:repeating-linear-gradient(45deg,#53617d,#53617d 5px,#45536f 5px,#45536f 10px);color:#e5e9f3;border:2px solid #b7c1d1;justify-content:center;align-items:center}.solitaire-pro .card-column .playing-card{margin-top:calc(-1 * clamp(40px,6.5vw,105px))}.solitaire-pro .card-column .playing-card:nth-child(2){margin-top:0}.solitaire-pro .card-column .column-target{height:26px;aspect-ratio:auto;margin-bottom:10px;padding:0;line-height:24px}.solitaire-pro .card-space{background:#ffffff08;border:1px dashed #839a79;color:#a9bd9b;align-items:center;font-size:24px}.solitaire-pro .sp-target{outline:3px solid #d9e9a0;outline-offset:2px;background:#5c7346}.solitaire-pro .playing-card.selected{outline:3px solid #f4bd76;outline-offset:-3px}.solitaire-pro .game-message{font-size:16px;min-height:50px}.solitaire-pro .solitaire-top{margin-bottom:24px}@media(max-width:600px){.solitaire-pro .solitaire-table{padding:8px;min-height:380px}.solitaire-pro .solitaire-top,.solitaire-pro .solitaire-columns{gap:4px}.solitaire-pro .playing-card{padding:4px 2px;font-size:12px;border-radius:5px}.solitaire-pro .sp-suit{font-size:24px}.solitaire-pro .card-column .playing-card{margin-top:-36px}.solitaire-pro .card-column .playing-card:nth-child(2){margin-top:0}.solitaire-pro .puzzle-actions{gap:6px}.solitaire-pro .card-space{font-size:18px}}
/* Closed cards expose half the usual step; open sequences stay readable. */
.solitaire-pro .card-column{container-type:inline-size}
.solitaire-pro .card-column .playing-card.facedown + .playing-card{margin-top:calc(-1 * (100cqw / .7 + clamp(40px,6.5vw,105px)) / 2)}
@media(max-width:600px){.solitaire-pro .card-column .playing-card.facedown + .playing-card{margin-top:calc(-1 * (100cqw / .7 + 36px) / 2)}}

.solitaire-pro .sp-corner{position:absolute;top:5px;left:5px;font-size:clamp(11px,1.5vw,18px);line-height:1}.solitaire-pro .sp-bottom{position:absolute;bottom:5px;right:5px;transform:rotate(180deg);font-size:clamp(11px,1.5vw,18px);font-weight:800;line-height:1}.sp-pips{position:absolute;inset:26% 27%;pointer-events:none}.sp-pip{position:absolute;line-height:1;font-size:clamp(12px,1.8vw,24px);transform:translate(-50%,-50%)}.sp-pip.inverted{transform:translate(-50%,-50%) rotate(180deg)}.sp-pips[data-rank="1"] .sp-pip{font-size:clamp(25px,3vw,44px)}.sp-court{inset:24% 22%;border:1px solid currentColor;display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:4px}.sp-court-rank{font-size:clamp(16px,2.3vw,32px);font-weight:800;line-height:1}.sp-court-suit{font-size:clamp(14px,2vw,25px);line-height:1}@media(max-width:600px){.solitaire-pro .sp-corner{top:3px;left:2px;font-size:10px}.solitaire-pro .sp-bottom{bottom:3px;right:2px;font-size:10px}.sp-pip{font-size:10px}.sp-pips{inset:27% 29%}.sp-court-rank{font-size:15px}.sp-court-suit{font-size:12px}}

.solitaire-pro .card-column .playing-card + .playing-card{margin-top:calc(-1 * (100cqw / .7 + clamp(40px,6.5vw,105px)) / 2)}
@media(max-width:600px){.solitaire-pro .card-column .playing-card + .playing-card{margin-top:calc(-1 * (100cqw / .7 + 36px) / 2)}}

/* Shared inset frame for every face-up card. */
.solitaire-pro .playing-card:not(.facedown)::after{content:'';position:absolute;inset:4px;border:1px solid currentColor;border-radius:5px;opacity:.55;pointer-events:none}
.solitaire-pro .sp-court{border:0}
.solitaire-pro .sp-corner{top:7px;left:7px;background:#f7f1e0;padding:0 1px}
.solitaire-pro .sp-bottom{bottom:7px;right:7px;background:#f7f1e0;padding:0 1px;z-index:1}
@media(max-width:600px){.solitaire-pro .playing-card:not(.facedown)::after{inset:2px;border-radius:3px}.solitaire-pro .sp-corner{top:4px;left:3px}.solitaire-pro .sp-bottom{bottom:4px;right:3px}}

/* Corner indices sit outside the central illustration frame. */
.solitaire-pro .playing-card:not(.facedown)::after{inset:21% 14%;border-radius:3px;opacity:.65}
.solitaire-pro .sp-court{inset:22% 15%;border:0;display:block}
.sp-portrait{display:block;width:100%;height:100%}.sp-portrait svg{display:block;width:100%;height:100%;max-width:none}
.solitaire-pro .sp-corner,.solitaire-pro .sp-bottom{background:none}
@media(max-width:600px){.solitaire-pro .playing-card:not(.facedown)::after{inset:21% 14%}}

/* Keep each card's corner labels inside its own stacking context. */
.solitaire-pro .card-column .playing-card{isolation:isolate}
