*{margin:0;padding:0;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none}body,html{width:100%;height:100%;overflow:hidden;font-family:Segoe UI,Malgun Gothic,sans-serif}.board{position:relative;width:100vw;height:100vh;height:100dvh;background:#14522e url(/games/solitaire/images/table-bg.jpg) 50%/cover no-repeat;touch-action:none}.board:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 45%,rgba(0,0,0,.45) 100%);pointer-events:none}.hud{position:absolute;top:0;left:0;right:0;height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:rgba(0,0,0,.35);color:#f5efdc;z-index:50}.hud .stats{display:flex;gap:18px;font-size:14px}.hud .stats b{color:#ffd76a}.hud .buttons{display:flex;gap:8px}.hud button{border:1px solid hsla(0,0%,100%,.35);background:hsla(0,0%,100%,.12);color:#f5efdc;padding:6px 14px;border-radius:6px;font-size:13px;cursor:pointer}.hud button:hover{background:hsla(0,0%,100%,.25)}.hud button:disabled{opacity:.4;cursor:default}.pile,.pile-slot{position:absolute;border-radius:8px}.pile-slot{width:100%;border:2px dashed hsla(0,0%,100%,.35);background:rgba(0,0,0,.15);display:flex;align-items:center;justify-content:center}.pile-slot .slot-suit{width:40%;opacity:.35}.pile-slot .slot-label{color:hsla(0,0%,100%,.5);font-size:26px;font-weight:700}.card{position:absolute;border-radius:8px;background:#fdfbf4;box-shadow:0 2px 5px rgba(0,0,0,.45);overflow:hidden;cursor:pointer;transition:top .14s ease,left .14s ease}.card.dragging,.card.no-anim{transition:none}.card.dragging{z-index:1000!important;box-shadow:0 10px 24px rgba(0,0,0,.6);cursor:-webkit-grabbing;cursor:grabbing}.card.face-down{background:#fdfbf4;padding:3px}.card.face-down .back-img{width:100%;height:100%;aspect-ratio:512/683;border-radius:5px;background:url(/games/solitaire/images/card-back.jpg) 50%/100% 100% no-repeat}.card .inner{position:absolute;inset:0;border:1px solid #c9c2ab;border-radius:8px}.card .corner{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:1;font-weight:700}.card .corner.tl{top:4px;left:5px}.card .corner.br{bottom:4px;right:5px;transform:rotate(180deg)}.card .corner .rank{font-size:clamp(24px,2.15vw,34px);font-weight:800;letter-spacing:-1px}.card .corner img{width:clamp(20px,1.7vw,28px);height:clamp(20px,1.7vw,28px);margin-top:2px;object-fit:contain}.card .red{color:#c22a2a}.card .black{color:#1c1c24}.card .pip{position:absolute;transform:translate(-50%,-50%)}.card .pip.flip{transform:translate(-50%,-50%) rotate(180deg)}.card .face-art{position:absolute;left:18%;top:14%;width:64%;height:72%;border:1.5px solid #b39b55;border-radius:4px;background:#f6f1e2 50%/cover no-repeat}.card .ace-pip{left:50%;top:50%}.card .ace-pip,.card .char-pip{position:absolute;transform:translate(-50%,-50%)}.card .char-pip{width:auto;pointer-events:none}.card .face-art.char-face{background-size:cover;background-position:top;background-color:#f6f1e2}.win-overlay{position:absolute;top:48px;left:0;right:0;bottom:0;background:rgba(0,0,0,.55);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;z-index:2000;color:#ffd76a;animation:fadein .6s ease}.win-overlay h1{font-size:56px;text-shadow:0 4px 12px rgba(0,0,0,.8)}.win-overlay p{color:#f5efdc;font-size:18px}.win-overlay button{border:none;background:#ffd76a;color:#4a3400;font-size:18px;font-weight:700;padding:12px 34px;border-radius:10px;cursor:pointer}@keyframes fadein{0%{opacity:0}to{opacity:1}}.how-to-play{border-color:rgba(255,215,106,.62)!important;color:#ffe29a!important}.tutorial-overlay{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(5,17,12,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fadein .2s ease}.tutorial-dialog{width:min(560px,100%);color:#17251d;background:#f8f5eb;border:1px solid hsla(0,0%,100%,.5);border-radius:18px;box-shadow:0 24px 80px rgba(0,0,0,.42);overflow:hidden}.tutorial-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:28px 30px 18px}.eyebrow{display:block;margin-bottom:8px;color:#8b6c25;font-size:11px;font-weight:800;letter-spacing:.16em}.tutorial-head h2{margin:0;color:#173f28;font-size:clamp(22px,3vw,30px);letter-spacing:-.03em}.tutorial-close{width:32px;height:32px;border:0;border-radius:50%;background:#e8e4d8;color:#526057;font-size:24px;line-height:1;cursor:pointer}.tutorial-close:hover{background:#dcd7c8}.tutorial-board{margin:4px 30px 22px;padding:22px;border-radius:12px;background:#12512f;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.1);transition:box-shadow .2s ease}.mini-card,.mini-column{position:relative;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.tutorial-board[class*=tutorial-focus-] .mini-card,.tutorial-board[class*=tutorial-focus-] .mini-column{opacity:.48}.tutorial-board.tutorial-focus-foundation .mini-foundation,.tutorial-board.tutorial-focus-stock .mini-stock,.tutorial-board.tutorial-focus-stock .mini-waste,.tutorial-board.tutorial-focus-tableau .mini-column{opacity:1;transform:translateY(-3px);box-shadow:0 0 0 3px #e7bd58,0 6px 14px rgba(0,0,0,.26)}.tutorial-board.tutorial-focus-foundation .mini-foundation,.tutorial-board.tutorial-focus-stock .mini-stock,.tutorial-board.tutorial-focus-stock .mini-waste,.tutorial-board.tutorial-focus-tableau .mini-column{animation:tutorial-pulse 1.4s ease-in-out infinite}@keyframes tutorial-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.14)}}.mini-row,.mini-tableau{display:flex;gap:8px}.mini-row{align-items:center}.mini-spacer{flex:1 1}.mini-card{display:flex;align-items:center;justify-content:center;width:48px;height:65px;border-radius:6px;background:#fdfbf4;color:#26342b;font:700 13px Georgia,serif;box-shadow:0 2px 4px rgba(0,0,0,.22)}.mini-stock,.mini-waste{background:#194b32;border:1px dashed hsla(0,0%,100%,.6);color:#d9c77e;font-size:22px}.mini-tableau{margin-top:26px;justify-content:space-between}.mini-column{position:relative;display:flex;flex-direction:column;width:48px;height:72px}.mini-column b,.mini-column i{display:block;height:18px;border-radius:5px;background:#226344;border:1px solid hsla(0,0%,100%,.2)}.mini-column b{height:38px;padding:8px;background:#fdfbf4;color:#9f2525;font:700 15px Georgia,serif;box-shadow:0 2px 4px rgba(0,0,0,.22)}.tutorial-text{min-height:54px;margin:0;padding:0 30px;color:#536058;font-size:15px;line-height:1.65}.tutorial-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 30px 28px}.tutorial-dots{display:flex;gap:6px}.tutorial-dots button{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:#c5c8bd;cursor:pointer}.tutorial-dots button.active{width:22px;border-radius:8px;background:#b58a2d}.tutorial-actions{display:flex;gap:8px}.tutorial-actions button{padding:9px 15px;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer}.tutorial-secondary{border:1px solid #d2cec2;background:transparent;color:#637067}.tutorial-primary{border:1px solid #b58a2d;background:#b58a2d;color:#fffdf4}.tutorial-actions button:hover{filter:brightness(.96)}@media (max-width:600px){.hud{height:auto;min-height:54px;padding:8px 10px;gap:8px}.hud .stats{gap:10px;font-size:12px}.hud .buttons{gap:4px}.hud button{padding:6px 8px;font-size:11px}.tutorial-overlay{padding:12px}.tutorial-footer,.tutorial-head{padding-left:20px;padding-right:20px}.tutorial-board{margin-left:20px;margin-right:20px;padding:14px 10px}.tutorial-text{padding:0 20px;font-size:14px}.mini-card,.mini-column{width:35px}.mini-card{height:50px;font-size:10px}.mini-column{height:58px}.tutorial-footer{align-items:flex-end;flex-direction:column}.tutorial-dots{align-self:center}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}