*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}:root{--felt:#2d6a4f;--felt-dark:#1b4332;--gold:gold;--red-card:#c11;--radius:6px;-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{background:var(--felt);color:#fff;min-height:100dvh;overflow-x:hidden}#root{flex-direction:column;min-height:100dvh;display:flex}.card{width:var(--cw,46px);height:var(--ch,68px);border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:1.5px solid #ccc;flex-direction:column;flex-shrink:0;justify-content:space-between;padding:2px 3px;transition:box-shadow .12s,border-color .12s;display:flex;position:relative;box-shadow:0 1px 4px #00000059}.card.red{color:var(--red-card)}.card.black{color:#111}.card.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold), 0 3px 10px #ffd70066;border-width:2px}.card.face-down{cursor:default;background:repeating-linear-gradient(45deg,#1a3a8c,#1a3a8c 5px,#1f47a8 5px 10px);border-color:#3a5aaa}.cc{flex-direction:column;align-items:flex-start;line-height:1;display:flex}.cc.bot{transform:rotate(180deg)}.cr{font-size:.78rem;font-weight:700;line-height:1}.cs{font-size:.6rem;line-height:1}.cc-mid{text-align:center;align-self:center;font-size:1.1rem}.home-screen{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:28px;padding:32px 20px;display:flex}.home-title{align-items:center;gap:12px;font-size:1.8rem;display:flex}.home-title h1{letter-spacing:2px;font-size:2.4rem;font-weight:800}.home-title .red{color:#ff6b6b}.home-buttons{flex-direction:column;gap:14px;width:100%;max-width:360px;display:flex}.game-btn{text-align:center;cursor:pointer;color:#fff;background:#00000047;border:1px solid #ffffff26;border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:20px;transition:background .15s,transform .1s;display:flex}.game-btn:hover{background:#0006;transform:translateY(-1px)}.game-btn:active{transform:translateY(0)}.game-suits{gap:4px;font-size:1.5rem;display:flex}.game-suits .red{color:#f88}.game-name{font-size:1.15rem;font-weight:700}.game-desc{opacity:.6;font-size:.78rem}.rules-link{color:#ffffff80;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;align-self:center;padding:2px 0;font-size:.85rem;text-decoration:underline}.rules-link:hover{color:#ffffffd9}.rules-screen{flex-direction:column;flex:1;display:flex}.rules-body{flex-direction:column;flex:1;gap:28px;padding:16px 18px 40px;display:flex;overflow-y:auto}.rules-section{background:#00000038;border:1px solid #ffffff1a;border-radius:14px;flex-direction:column;gap:12px;padding:18px 16px;display:flex}.rules-section h2{align-items:center;gap:6px;font-size:1.15rem;font-weight:800;display:flex}.rules-section h2 .red{color:#f88}.rules-section h3{text-transform:uppercase;letter-spacing:.8px;opacity:.6;margin-top:4px;font-size:.8rem;font-weight:700}.rules-section p{opacity:.85;font-size:.9rem;line-height:1.55}.rules-section ul{flex-direction:column;gap:6px;padding-left:18px;display:flex}.rules-section li{opacity:.85;font-size:.88rem;line-height:1.5}.rules-section strong{color:#fff;opacity:1;font-weight:700}.tips-section{border-color:#ffd70040}.sol-header{background:#00000038;border-bottom:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.sol-btn{color:#fff;cursor:pointer;background:#ffffff1f;border:1px solid #fff3;border-radius:8px;padding:5px 10px;font-size:.82rem;font-weight:600;transition:background .12s}.sol-btn:hover{background:#ffffff38}.sol-moves{opacity:.7;font-size:.85rem}.sol-actions{gap:6px;display:flex}.col-empty-slot{height:var(--ch,68px);border-radius:var(--radius);pointer-events:none;border:2px dashed #ffffff2e;position:absolute;top:0;left:0;right:0}.tcw{z-index:1;position:relative}.tcw.sel .card{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold), 0 3px 10px #ffd70059;border-width:2px}.win-screen{flex:1;justify-content:center;align-items:center;padding:24px;display:flex}.win-card{text-align:center;background:#00000059;border:1px solid #ffffff1a;border-radius:20px;flex-direction:column;gap:14px;width:100%;max-width:320px;padding:36px 28px;display:flex}.win-card h1{font-size:2rem;font-weight:800}.win-moves{opacity:.6;font-size:.95rem}.btn-primary{height:48px;color:var(--felt-dark);cursor:pointer;background:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:700;transition:opacity .12s}.btn-primary:hover{opacity:.9}.btn-secondary{color:#fffc;cursor:pointer;background:0 0;border:2px solid #ffffff4d;border-radius:12px;height:44px;font-size:.9rem;font-weight:600;transition:background .12s}.btn-secondary:hover{background:#ffffff1a}.klondike-game{--cw:46px;--ch:68px;flex-direction:column;flex:1;display:flex}.k-top-row{flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:6px;padding:8px 8px 4px;display:flex}.k-foundations{gap:4px;display:flex}.found-slot{width:var(--cw);height:var(--ch);border-radius:var(--radius);cursor:pointer;border:2px dashed #fff3;justify-content:center;align-items:center;transition:border-color .12s;display:flex}.found-slot.sel{border-color:var(--gold)}.found-slot .card{border:none}.found-empty{opacity:.35;font-size:1.2rem}.k-stock-area{align-items:flex-end;gap:6px;display:flex}.k-waste{width:calc(var(--cw) + 18px);height:var(--ch);position:relative}.waste-peek{position:absolute;top:0}.waste-peek.p2{left:0}.waste-peek.p1{left:9px}.waste-top{position:absolute;top:0;left:18px}.waste-peek .card{opacity:.6;pointer-events:none}.empty-slot{width:var(--cw);height:var(--ch);border-radius:var(--radius);border:2px dashed #ffffff2e}.k-stock{cursor:pointer;flex-direction:column;align-items:center;gap:4px;display:flex}.stock-recycle{width:var(--cw);height:var(--ch);border-radius:var(--radius);opacity:.5;color:#fff;border:2px dashed #ffffff40;justify-content:center;align-items:center;font-size:1.4rem;display:flex}.pile-lbl{opacity:.55;font-size:.68rem}.k-tableau{flex:1;gap:4px;padding:8px 8px 20px;display:flex;overflow-y:auto}.k-col{cursor:pointer;flex-direction:column;flex:1;align-items:center;display:flex;position:relative}.spider-setup{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;padding:24px 20px;display:flex}.spider-setup h2{font-size:1.6rem;font-weight:800}.setup-sub{opacity:.6;font-size:.9rem}.spider-diff-btns{flex-direction:column;gap:12px;width:100%;max-width:320px;display:flex}.diff-btn{color:#fff;cursor:pointer;background:#00000040;border:2px solid #fff3;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:16px;transition:background .15s,transform .1s;display:flex}.diff-btn:hover{background:#0006;transform:translateY(-1px)}.diff-btn:active{transform:translateY(0)}.diff-btn.easy{border-color:#50fa7b66}.diff-btn.medium{border-color:#ffc83266}.diff-btn.hard{border-color:#ff646466}.diff-icon{font-size:1.2rem}.diff-icon .red{color:#f88}.diff-label{font-size:1.05rem;font-weight:700}.diff-desc{opacity:.6;font-size:.75rem}.spider-game{--cw:33px;--ch:50px;flex-direction:column;flex:1;display:flex}.sp-info-row{flex-shrink:0;align-items:center;gap:8px;padding:6px 10px 4px;display:flex}.sp-found-row{gap:3px;display:flex}.sp-found-slot{color:#ffffff4d;background:#ffffff1f;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:.55rem;transition:background .2s;display:flex}.sp-found-slot.done{color:#1a1400;border-color:var(--gold);background:#ffd700b3}.sp-suit-label{opacity:.5;text-align:center;flex:1;font-size:.7rem}.sp-stock-btn{color:#fff;cursor:pointer;background:#0000004d;border:1px solid #fff3;border-radius:8px;align-items:center;gap:4px;padding:4px 8px;transition:background .12s;display:flex}.sp-stock-btn:disabled{opacity:.35;cursor:not-allowed}.sp-stock-btn:not(:disabled):hover{background:#00000080}.sp-stock-btn.pulse{border-color:#ffd70080;box-shadow:0 0 8px #ffd7004d}.sp-stock-icon{font-size:1.1rem}.sp-stock-count{font-size:.72rem;font-weight:700}.sp-tableau{flex:1;gap:2px;padding:4px 4px 20px;display:flex;overflow-y:auto}.sp-col{cursor:pointer;flex-direction:column;flex:1;align-items:center;min-width:0;display:flex;position:relative}
