/* Rue's coffee table: the cards sit in the room; the controls sit quietly below. */
#gridlock-story-ui[data-story-screen="solitaire"] .story-main{position:relative;padding:0;overflow:hidden;min-height:0}
#gridlock-story-ui .story-solitaire{position:relative;width:100%;height:100%;min-height:0;overflow:hidden;isolation:isolate;background:#151612;color:#f3ecda;font-family:"Avenir Next",Avenir,sans-serif}
#gridlock-story-ui .story-solitaire::before{position:absolute;content:"";inset:-25px;z-index:-1;background:linear-gradient(#131710a3,#11160fec),url('/story/solitaire-table.webp') center/cover;filter:blur(20px)}
#gridlock-story-ui .story-solitaire-scene{position:absolute;left:50%;transform:translateX(-50%);container-type:inline-size;isolation:isolate}
#gridlock-story-ui .story-solitaire-room{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
#gridlock-story-ui .story-solitaire-heading{position:absolute;top:3.4%;left:4%;right:4%;display:flex;justify-content:space-between;align-items:start;color:#fbefd4;text-shadow:0 2px 10px #000,0 1px 2px #000}
#gridlock-story-ui .story-solitaire-heading>div>span{font-size:clamp(7px,.62cqw,10px);letter-spacing:.21em;font-weight:650;color:#dfd1b7}
#gridlock-story-ui .story-solitaire-heading h2{font:italic 400 clamp(21px,2.65cqw,41px)/1.1 Georgia,serif;letter-spacing:-.04em;margin:5px 0 0;color:inherit}
#gridlock-story-ui .story-solitaire-stats{display:flex;align-items:center;gap:23px;font-size:clamp(8px,.72cqw,12px);padding-top:5px;color:#dacbb2}
#gridlock-story-ui .story-solitaire-stats span{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
#gridlock-story-ui .story-solitaire-stats b{font:400 clamp(16px,1.8cqw,28px)/1.1 Georgia,serif;color:#fff4d9}
#gridlock-story-ui .story-solitaire-board{position:absolute;left:0;top:0;overflow:visible;touch-action:none;user-select:none;-webkit-user-select:none;transform-origin:0 0}
#gridlock-story-ui .story-solitaire .sol-card{position:absolute;display:block;box-sizing:border-box;width:var(--sol-card-w);height:var(--sol-card-h);border-radius:calc(var(--sol-card-w)*.055);padding:0;margin:0;min-height:0;min-width:0;border:0;outline:0;text-align:left;line-height:1;font-weight:400;letter-spacing:0;text-transform:none;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;transform-origin:center;transition:filter .13s,box-shadow .13s,translate .13s;background:none;color:#24372d;overflow:hidden}
#gridlock-story-ui .story-solitaire button.sol-card{cursor:pointer}
#gridlock-story-ui .story-solitaire .sol-card--face{background:#f5edd8;border:1px solid #53442e8c;box-shadow:0 1px 0 #ece2c0,0 3px 5px #160e0b78,0 9px 13px #160e0b24}
#gridlock-story-ui .story-solitaire .sol-card--back{background:#183330;border:calc(var(--sol-card-w)*.033) solid #eadfc2;box-shadow:0 1px 0 #8d8162,0 3px 6px #100d0a70,0 7px 12px #160e0b2b}
#gridlock-story-ui .story-solitaire .sol-card--face::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 1px #fffa,inset 0 -2px 3px #4e301612;background:linear-gradient(125deg,#fff6 0%,transparent 38%,#71390008)}
#gridlock-story-ui .story-solitaire .sol-card-art{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none;-webkit-user-drag:none}
#gridlock-story-ui .story-solitaire .sol-card-fallback{position:absolute;display:none;inset:0;padding:7%;font:bold calc(var(--sol-card-w)*.19)/1 Georgia,serif;background:#f6eedb;color:#202925}
#gridlock-story-ui .story-solitaire .sol-card-fallback[data-color="red"]{color:#9f342e}
#gridlock-story-ui .story-solitaire .sol-card-fallback>strong{position:absolute;inset:30% 0 0;text-align:center;font-size:calc(var(--sol-card-w)*.57);font-weight:400}
#gridlock-story-ui .story-solitaire .sol-card-fallback>i{position:absolute;right:7%;bottom:5%;font-style:normal;transform:rotate(180deg)}
#gridlock-story-ui .story-solitaire .is-image-failed>.sol-card-art{visibility:hidden}
#gridlock-story-ui .story-solitaire .is-image-failed>.sol-card-fallback{display:block}
#gridlock-story-ui .story-solitaire .sol-back-inner{position:absolute;inset:4%;display:none;flex-direction:column;justify-content:space-evenly;align-items:center;border:1px solid #c8b987b5;background:repeating-linear-gradient(45deg,#ded2ac1c 0 1px,transparent 1px 5px),repeating-linear-gradient(-45deg,#ded2ac1c 0 1px,transparent 1px 5px),#173c37;border-radius:2%;color:#e8d8a2}
#gridlock-story-ui .story-solitaire .is-image-failed>.sol-back-inner{display:flex}
#gridlock-story-ui .story-solitaire .sol-back-inner::before{content:"";position:absolute;inset:7%;border:1px solid #d0c38d95;border-radius:40%}
#gridlock-story-ui .story-solitaire .sol-back-inner b{font:400 calc(var(--sol-card-w)*.4)/1 Georgia,serif;text-shadow:0 2px #162720}
#gridlock-story-ui .story-solitaire .sol-back-inner i{display:block;width:23%;aspect-ratio:1;transform:rotate(45deg);border:1px solid #d0c38d}
#gridlock-story-ui .story-solitaire .sol-slot{border:1px solid #ecdda037;background:#180e0612;box-shadow:inset 0 1px 3px #190e0826;color:#ffedba61;display:flex;align-items:center;justify-content:center;flex-direction:column;text-shadow:0 1px 1px #25150e91}
#gridlock-story-ui .story-solitaire .sol-slot::before{content:"";position:absolute;inset:5%;border:1px solid #eddea215;border-radius:inherit;pointer-events:none}
#gridlock-story-ui .story-solitaire .sol-foundation-ace{font:italic 400 calc(var(--sol-card-w)*.43)/1 Georgia,serif}
#gridlock-story-ui .story-solitaire .sol-recycle{font:400 calc(var(--sol-card-w)*.45)/1 Georgia,serif;color:#f3ddb78c}
#gridlock-story-ui .story-solitaire .sol-slot small{font:500 calc(var(--sol-card-w)*.10)/1.2 "Avenir Next",sans-serif;padding-top:6%;color:#ead5af8a}
#gridlock-story-ui .story-solitaire .sol-empty-mark{font:400 calc(var(--sol-card-w)*.3)/1 Georgia,serif;opacity:.5}
#gridlock-story-ui .story-solitaire .sol-stock-count{position:absolute;right:6%;bottom:5%;display:grid;place-items:center;min-width:1.7em;padding:.2em;background:#0e252bd9;border:1px solid #ead49e55;border-radius:3px;font:600 calc(var(--sol-card-w)*.12)/1 "Avenir Next",sans-serif;color:#fff0c8}
#gridlock-story-ui .story-solitaire .sol-pile-label{position:absolute;white-space:nowrap;color:#e7d0a2b0;font:600 calc(var(--sol-card-w)*.095)/1 "Avenir Next",sans-serif;letter-spacing:.16em;text-shadow:0 1px 2px #2a160a}
#gridlock-story-ui .story-solitaire .sol-pile-label i{font-style:normal;font-weight:400;font-size:.85em;letter-spacing:.07em;margin-left:1.3em;opacity:.8}
#gridlock-story-ui .story-solitaire button.sol-card:hover{filter:brightness(1.045);box-shadow:0 2px 0 #e4d9b5,0 5px 9px #160e0b87}
#gridlock-story-ui .story-solitaire .sol-card.is-selected{box-shadow:0 0 0 2px #f0d791,0 0 0 4px #2a362494,0 6px 9px #110d0877;translate:0 -2px}
#gridlock-story-ui .story-solitaire .sol-card.is-hint{outline:2px solid #f6d685;outline-offset:2px}
#gridlock-story-ui .story-solitaire button.sol-card:focus-visible{outline:2px solid #fff2ad;outline-offset:3px}
#gridlock-story-ui .story-solitaire[data-dragging="true"] .sol-card.is-selected{filter:brightness(.75);translate:0 0}
#gridlock-story-ui .story-solitaire .sol-drag-ghost{position:absolute;left:0;top:0;z-index:20;pointer-events:none;will-change:transform;transform-origin:0 0;filter:drop-shadow(3px 12px 8px #090b0850)}
#gridlock-story-ui .story-solitaire .sol-drag-ghost .sol-card{left:0;transition:none}
#gridlock-story-ui .story-solitaire-footer{position:absolute;bottom:0;left:0;right:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 22px 15px;background:linear-gradient(0deg,#111a16fa 60%,#111a16e6);border-top:1px solid #ddca9521;min-height:50px;box-sizing:content-box}
#gridlock-story-ui .story-solitaire-copy{flex:1;min-width:160px;max-width:650px}
#gridlock-story-ui .story-solitaire-status{margin:0 0 6px;color:#f2e7cc;font:400 13px/1.35 Georgia,serif;min-height:1.35em}
#gridlock-story-ui .story-solitaire-copy>span{display:block;color:#a9b4a2;font-size:9px;line-height:1.35}
#gridlock-story-ui .story-solitaire-actions{display:flex;align-items:center;justify-content:end;flex-wrap:wrap;gap:5px;max-width:630px}
#gridlock-story-ui .story-solitaire-actions button,#gridlock-story-ui .sol-modal-actions button,#gridlock-story-ui .sol-draw-options button{font:600 11px/1.2 "Avenir Next",Avenir,sans-serif;min-height:35px;border:1px solid #c3b4823d;border-radius:4px;padding:8px 10px;margin:0;color:#e7e5d2;background:#263c30bf;box-shadow:0 1px 3px #0002;text-transform:none;letter-spacing:0;cursor:pointer;transition:background .15s,border-color .15s}
#gridlock-story-ui .story-solitaire-actions button:hover,#gridlock-story-ui .sol-modal-actions button:hover,#gridlock-story-ui .sol-draw-options button:hover{background:#3a4d36;border-color:#c3b4828c}
#gridlock-story-ui .story-solitaire-actions button:disabled{opacity:.35;cursor:default}
#gridlock-story-ui .story-solitaire-actions button[data-sol-action="leave"]{color:#eddbb0;border-color:#c6a46b66;background:#463d2987}
#gridlock-story-ui .story-solitaire-actions button:focus-visible,#gridlock-story-ui .story-solitaire-modal button:focus-visible,#gridlock-story-ui .story-solitaire-modal video:focus-visible{outline:2px solid #f4d58b;outline-offset:3px}
#gridlock-story-ui .story-solitaire-modal{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:25px;box-sizing:border-box;background:#08100cdf;backdrop-filter:blur(7px)}
#gridlock-story-ui .story-solitaire-modal[hidden]{display:none}
#gridlock-story-ui .story-solitaire-modal>section{width:min(580px,100%);max-height:100%;overflow:auto;box-sizing:border-box;padding:32px 35px;border:1px solid #b8a8786b;border-radius:5px;background:radial-gradient(ellipse at 0 0,#9b925821,transparent 70%),#182b21;box-shadow:0 20px 70px #0006;color:#e9e5d3;text-align:center}
#gridlock-story-ui .story-solitaire-modal[data-kind="tutorial"]>section{width:min(850px,100%);padding:22px 27px}
#gridlock-story-ui .sol-modal-eyebrow{color:#bfb488;font:600 9px/1.3 "Avenir Next",sans-serif;letter-spacing:.2em}
#gridlock-story-ui .story-solitaire-modal h2{font:italic 400 32px/1.15 Georgia,serif;letter-spacing:-.025em;color:#f3e8cb;margin:12px 0 20px}
#gridlock-story-ui .story-solitaire-modal p{font:400 13px/1.65 "Avenir Next",Avenir,sans-serif;color:#ccd4c1;margin:12px 0}
#gridlock-story-ui .story-solitaire-modal .sol-modal-note{color:#aebba8;font-size:11px}
#gridlock-story-ui .sol-rules{text-align:left}
#gridlock-story-ui .sol-rules p{padding-left:13px;border-left:1px solid #c5b47d40}
#gridlock-story-ui .sol-rules b{display:block;color:#edd9a3;font-weight:650;margin-bottom:3px}
#gridlock-story-ui .sol-modal-actions{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;margin-top:22px}
#gridlock-story-ui .sol-modal-actions button{padding:11px 16px;min-height:40px}
#gridlock-story-ui .sol-modal-actions button[data-sol-action="confirm"],#gridlock-story-ui .sol-modal-actions button[data-sol-action="close"]{background:#ded0a6;color:#263c2b;border-color:#f0dfb0}
#gridlock-story-ui .sol-modal-actions button[data-sol-action="confirm"]:hover,#gridlock-story-ui .sol-modal-actions button[data-sol-action="close"]:hover{background:#f2e2b7}
#gridlock-story-ui .sol-draw-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:24px 0}
#gridlock-story-ui .sol-draw-options button{padding:18px 12px;font-size:14px}
#gridlock-story-ui .sol-draw-options button small{display:block;margin-top:7px;font-size:10px;font-weight:400;color:#b1bda5}
#gridlock-story-ui .sol-draw-options button[aria-pressed="true"]{background:#555b37;border-color:#d8bc77;color:#ffe6ac}
#gridlock-story-ui .sol-win-suits{font:400 39px/1 Georgia,serif;letter-spacing:.05em;color:#d9c28a;margin:30px 0 17px}
#gridlock-story-ui .sol-win-suits i{font-style:normal;color:#bd765a}
#gridlock-story-ui .sol-tutorial-video{display:block;width:100%;max-height:calc(100dvh - 330px);aspect-ratio:16/9;background:#090e0a;border:1px solid #bda26c50;border-radius:3px}
@media(max-width:1100px){#gridlock-story-ui .story-solitaire-footer{padding-inline:14px;gap:12px}#gridlock-story-ui .story-solitaire-actions{max-width:485px;gap:4px}#gridlock-story-ui .story-solitaire-actions button{font-size:10px;padding:7px 8px;min-height:32px}#gridlock-story-ui .story-solitaire-status{font-size:12px}#gridlock-story-ui .story-solitaire-copy>span{font-size:8px}}
@media(max-width:750px){#gridlock-story-ui .story-solitaire-footer{padding:10px 12px;display:block;min-height:84px;box-sizing:border-box}#gridlock-story-ui .story-solitaire-copy{max-width:none}#gridlock-story-ui .story-solitaire-copy>span{display:none}#gridlock-story-ui .story-solitaire-status{min-height:2.6em;margin-bottom:6px;font-size:11px;line-height:1.3}#gridlock-story-ui .story-solitaire-actions{max-width:none;justify-content:center;gap:4px}#gridlock-story-ui .story-solitaire-actions button{font-size:9px;padding:6px 7px;min-height:30px}#gridlock-story-ui .story-solitaire-heading{left:3%;right:3%;top:2%}#gridlock-story-ui .story-solitaire-heading h2{font-size:19px}#gridlock-story-ui .story-solitaire-heading>div>span{font-size:6px}#gridlock-story-ui .story-solitaire-stats{gap:12px;font-size:7px}#gridlock-story-ui .story-solitaire-stats b{font-size:16px}#gridlock-story-ui .story-solitaire-modal{padding:14px}#gridlock-story-ui .story-solitaire-modal>section{padding:24px 22px}#gridlock-story-ui .story-solitaire-modal h2{font-size:27px}#gridlock-story-ui .story-solitaire-modal p{font-size:12px}#gridlock-story-ui .story-solitaire-modal[data-kind="tutorial"]>section{padding:16px}#gridlock-story-ui .sol-tutorial-video{max-height:calc(100dvh - 300px)}}
@media(max-height:570px){#gridlock-story-ui .story-solitaire-footer{padding-block:8px;min-height:40px}#gridlock-story-ui .story-solitaire-copy>span{display:none}#gridlock-story-ui .story-solitaire-status{margin:0;min-height:0}#gridlock-story-ui .story-solitaire-modal>section{padding:20px}#gridlock-story-ui .story-solitaire-modal h2{font-size:25px;margin-block:8px 15px}#gridlock-story-ui .story-solitaire-modal p{font-size:11px}#gridlock-story-ui .sol-tutorial-video{max-height:calc(100dvh - 230px)}}
@media(prefers-reduced-motion:reduce){#gridlock-story-ui .story-solitaire .sol-card,#gridlock-story-ui .story-solitaire-actions button,#gridlock-story-ui .sol-modal-actions button,#gridlock-story-ui .sol-draw-options button{transition:none}#gridlock-story-ui .story-solitaire .sol-card.is-selected{translate:0 0}}
#gridlock-story-ui .story-solitaire[data-reduced-motion="true"] .sol-card,#gridlock-story-ui .story-solitaire[data-reduced-motion="true"] button{transition:none}
#gridlock-story-ui .story-solitaire[data-reduced-motion="true"] .sol-card.is-selected{translate:0 0}
