.pawe-game--solitaire{--sol-ink:#452d53;--sol-black:#242126;--sol-red:#b6293a;--card-w:84px;--card-h:116px;--up-step:27px;--down-step:12px;color:var(--sol-ink);background:#fff8ee;max-width:1120px;margin:auto}
.sol-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px}.sol-title{display:grid;gap:3px}.sol-title strong{font-size:19px}.sol-eyebrow{font-size:11px;color:#78634f}.sol-stats{display:flex;gap:24px;margin:0}.sol-stats div{text-align:center;min-width:44px}.sol-stats dt{font-size:10px;text-transform:uppercase;letter-spacing:1px}.sol-stats dd{font-size:21px;font-weight:900;margin:0;font-variant-numeric:tabular-nums}
.sol-actions{display:flex;flex-wrap:wrap;gap:7px}.pawe-game--solitaire button{font:800 13px Nunito,sans-serif;cursor:pointer}.sol-actions button,.sol-dialog-actions button,.sol-curtain button{border:1px solid #b99aa9;border-radius:10px;background:#fffdf7;color:#4b2e58;padding:9px 14px;min-height:40px;box-shadow:0 2px 0 #d2bdad}.sol-actions button:first-child,.sol-dialog-actions button:first-child,.sol-curtain button{background:#644075;color:#fff;border-color:#644075}.pawe-game--solitaire button:disabled{opacity:.45;cursor:default;box-shadow:none}.pawe-game--solitaire button:focus-visible{outline:3px solid #3a8272;outline-offset:3px}.sol-message{font-size:12px;min-height:18px;line-height:1.4;margin:0;color:#5e4c63}.sol-table{position:relative;border:5px solid #a87850;border-radius:19px;padding:18px;background:repeating-linear-gradient(1deg,#dcb99400 0 37px,#92613d15 39px 40px),linear-gradient(105deg,#e5c6a0,#eed7b9 48%,#dfbc93);box-shadow:inset 0 0 0 2px #f9e6c8,inset 0 2px 15px #6f412620;overflow:auto;flex:1;min-height:280px}.sol-board{display:grid;grid-template-columns:repeat(7,var(--card-w));column-gap:var(--sol-gap,12px);row-gap:22px;justify-content:center;min-width:max-content;position:relative;padding-bottom:8px}.sol-pile{height:var(--card-h);width:var(--card-w);position:relative;border-radius:10px}.sol-pile[data-type=tab]{height:var(--pile-height,var(--card-h))}.sol-slot{position:absolute;inset:0 auto auto 0;width:var(--card-w);height:var(--card-h);border:1.5px dashed #815e4680;border-radius:10px;background:#f9ebd533;color:#765b47;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px}.sol-slot svg{width:27px;height:27px;opacity:.6}.sol-slot span{font-size:10px}.sol-card{position:absolute;left:0;top:var(--card-top,0px);width:var(--card-w);height:var(--card-h);border:1px solid #b7a18d;border-radius:9px;padding:0;background:#fffdf5;color:var(--sol-black);box-shadow:0 2px 3px #553a3530;text-align:left;touch-action:pan-y;user-select:none;-webkit-user-select:none}.sol-card[data-colour="1"]{color:var(--sol-red)}.sol-card .sol-corner{position:absolute;top:5px;left:6px;display:flex;align-items:center;gap:3px;font:900 17px/1 Nunito,sans-serif}.sol-card .sol-corner svg{width:13px;height:13px}.sol-card .sol-centre{position:absolute;width:36%;height:36%;left:32%;top:33%}.sol-card .sol-bottom{transform:rotate(180deg);top:auto;left:auto;bottom:5px;right:6px}.sol-card.sol-back{background:repeating-linear-gradient(45deg,#ffffff09 0 3px,transparent 3px 10px),#705378;border:3px solid #fcf2de;box-shadow:0 0 0 1px #ad957e,0 2px 3px #553a3530;color:#f3dfbd;pointer-events:none}.sol-back .sol-centre{width:45%;height:45%;left:27.5%;top:27.5%}.sol-card.sol-selected{outline:3px solid #358473;outline-offset:1px;filter:brightness(1.04)}.sol-pile.sol-target>.sol-slot{outline:3px solid #358473;outline-offset:2px;background:#e8f2cd80}.sol-card.sol-hinted,.sol-pile.sol-hinted{outline:3px solid #8353ac;outline-offset:3px}.sol-card.sol-drag-origin{opacity:.35}.sol-drag-ghost{position:fixed;pointer-events:none;z-index:9999;opacity:.9;transform:rotate(-4deg);width:var(--card-w);height:var(--card-h)}.sol-drag-ghost .sol-card{position:absolute;touch-action:none}.sol-curtain{position:absolute;inset:0;background:#f6ebd9f5;z-index:100;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:20px;text-align:center;min-height:250px}.sol-curtain[hidden]{display:none}.sol-curtain strong{font-size:28px}.sol-curtain p{max-width:380px;line-height:1.5}.sol-footnote{font-size:11px;text-align:center;margin:0;color:#705c67}.sol-draw-choice{display:grid;gap:12px;border:1px solid #ccb8cc;border-radius:12px;padding:16px}.sol-draw-choice label{display:flex;gap:9px;align-items:center}.sol-dialog-actions{display:flex;gap:10px;flex-wrap:wrap}.pawe-game--solitaire .game-dialog{max-width:min(540px,calc(100vw - 28px));max-height:85dvh;overflow:auto}.pawe-game--solitaire .game-dialog li{margin-bottom:8px}
@media(max-width:600px){.game-page .pawe-game--solitaire{padding:8px;gap:7px}.sol-table{padding:10px 6px;border-width:3px;border-radius:13px}.sol-board{row-gap:17px}.sol-stats{gap:9px}.sol-stats dd{font-size:18px}.sol-title strong{font-size:16px}.sol-eyebrow{font-size:9px}.sol-actions{gap:5px}.sol-actions button{font-size:11px;padding:7px 9px;min-height:38px}.sol-message{font-size:11px}.sol-card{border-radius:6px}.sol-card .sol-corner{font-size:14px;left:3px;top:4px;gap:1px}.sol-card .sol-corner svg{width:10px;height:10px}.sol-card .sol-bottom{right:3px;bottom:4px;left:auto;top:auto}.sol-slot{border-radius:6px}.sol-slot svg{width:21px;height:21px}.sol-slot span{font-size:8px}.sol-footnote{font-size:10px}.sol-card .sol-bottom{display:none}.sol-curtain strong{font-size:23px}}
@media(prefers-reduced-motion:reduce){.sol-drag-ghost{transform:none}}

.sol-win{box-shadow:inset 0 0 0 2px #fff2c6,inset 0 0 28px #ffe398}
.sol-win-cascade{position:absolute;inset:0;overflow:clip;z-index:4;pointer-events:none}
.sol-flying-card{pointer-events:none;will-change:transform}
@media(prefers-reduced-motion:reduce){
 .sol-win .sol-pile[data-type=foundation] .sol-card{box-shadow:0 0 12px #fff0a0,0 0 0 2px #bc8a50}
}

/* Pawe's portrait sits inside a little gilt frame on every card back. */
.sol-card.sol-back{background:radial-gradient(ellipse at 50% 40%,#9670a2,#684575);overflow:hidden}
.sol-back::before{content:"";position:absolute;inset:3px;border:1px solid #e4c28c;border-radius:5px;pointer-events:none}
.sol-back-portrait{position:absolute;left:10%;top:12%;width:80%;height:70%;border:1px solid #f1d3a2;border-radius:48% 48% 43% 43%;background:#e8d4ec url('../../images/pawe-portrait-stripes-v2.webp') 50% 13%/155% auto no-repeat;box-shadow:0 0 0 2px #684575,0 2px 5px #35203955}
.sol-back-mark{position:absolute;left:44%;bottom:5%;width:12%;height:10%;color:#f4d5a1}.sol-back-mark svg{display:block;width:100%;height:100%}
.sol-pile[data-type="foundation"] .sol-slot{color:var(--sol-black)}
.sol-pile[data-type="foundation"][data-pile="1"] .sol-slot,.sol-pile[data-type="foundation"][data-pile="3"] .sol-slot{color:var(--sol-red)}
.sol-pile[data-type="foundation"] .sol-slot svg{opacity:.8}

/* A small woodland court, with ranks and suit pips kept unobstructed. */
.sol-court{position:absolute;left:12%;top:17%;width:76%;height:66%;background:center/contain no-repeat;pointer-events:none}
.sol-court--jack{background-image:url('court-jack-v1.svg')}
.sol-court--queen{background-image:url('court-queen-v1.svg')}
.sol-court--king{background-image:url('court-king-v1.svg')}
@media(max-width:600px){.sol-court{left:6%;top:24%;width:88%;height:72%}}
