:root{--game-accent:#4ade80;--game-accent-dark:#16a34a;--game-accent-soft:#14301f;--ink:#eef1f6;--ink-soft:#9aa4b5;--bg:#10131a;--panel:#1a1f2b;--panel-border:#2a3142;--good:#4ade80;--bad:#f87171;--radius:18px;--radius-small:12px;--shadow:0 4px 18px #00000059;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--tap-min:48px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit}.topbar{align-items:center;gap:.6rem;max-width:560px;margin:0 auto;padding:.7rem 1rem .3rem;display:flex}.topbar .back{color:var(--ink-soft);padding:.4rem .2rem;font-size:.95rem;text-decoration:none}.topbar .back:hover{color:var(--ink)}.topbar h1{text-align:center;flex:1;margin:0;font-size:1.25rem}.icon-btn{background:var(--panel);border:1px solid var(--panel-border);cursor:pointer;border-radius:12px;flex:none;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.icon-btn svg{width:22px;height:22px;stroke:var(--ink)}.settings-wrap{max-width:560px;margin:0 auto;padding:0 1rem}.settings-panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);margin-top:.4rem;padding:.9rem 1rem}.settings-panel[hidden]{display:none}.setting-row{justify-content:space-between;align-items:center;gap:1rem;padding:.45rem 0;display:flex}.setting-row .lbl{font-size:1rem}.switch{border:1px solid var(--panel-border);cursor:pointer;background:#262c3d;border-radius:999px;flex:none;width:52px;height:30px;padding:0;position:relative}.switch:after{content:"";background:#cbd5e1;border-radius:50%;width:22px;height:22px;transition:transform .15s,background .15s;position:absolute;top:3px;left:3px}.switch[aria-checked=true]{background:var(--game-accent-dark)}.switch[aria-checked=true]:after{background:#fff;transform:translate(22px)}.seg{border:1px solid var(--panel-border);background:#262c3d;border-radius:999px;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.32rem .7rem;font-size:.92rem}.seg button[aria-pressed=true]{background:var(--game-accent-dark);color:#fff}.footer{text-align:center;color:var(--ink-soft);padding:1.2rem 1rem 1.6rem;font-size:.85rem;line-height:1.5}.footer a{color:var(--ink-soft)}.btn{background:var(--game-accent-dark);color:#fff;cursor:pointer;min-height:var(--tap-min);border:0;border-radius:12px;padding:.7rem 1.3rem;font-size:1rem;font-weight:600}.btn.secondary{background:var(--panel);border:1px solid var(--panel-border);color:var(--ink);font-weight:500}html[data-theme=halloween]{--bg:#160f1e;--panel:#221631;--panel-border:#3b2354;--ink:#f6ecdd;--ink-soft:#b39ecb;--game-accent:#fb923c;--game-accent-dark:#ea580c;--game-accent-soft:#2f1a08}html[data-theme=christmas]{--bg:#0c1a12;--panel:#12291a;--panel-border:#1e4630;--ink:#f2efe3;--ink-soft:#a9bfa5;--game-accent:#ef4444;--game-accent-dark:#b91c1c;--game-accent-soft:#2f0f0f}.season-banner{max-width:560px;margin:.6rem auto 0;padding:0 1rem}.season-banner-inner{background:var(--panel);border:1px solid var(--game-accent-dark);border-radius:var(--radius-small);align-items:center;gap:.6rem;padding:.55rem .8rem;font-size:.95rem;display:flex}.season-banner-main{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;padding:.2rem 0}.season-banner-close{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;flex:none;padding:.3rem;font-size:1.05rem;line-height:1}:root{--game-accent:#22c55e;--game-accent-dark:#15803d;--game-accent-soft:#14301f;--felt:#0b5136;--felt-mid:#0e5f3f;--felt-edge:#083d28;--cw:64px;--gap:8px;--fanx:16px}.wrap{max-width:760px;margin:0 auto;padding:.4rem 1rem 0}.stats-row{flex-wrap:wrap;align-items:center;gap:.6rem;margin:.4rem 0 .7rem;display:flex}.stat-box{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius-small);color:var(--ink-soft);padding:.5rem .8rem;font-size:.95rem}.stat-box strong{color:var(--ink);margin-left:.25rem;font-size:1.1rem}.actions-row{flex-wrap:wrap;gap:.6rem;margin-top:.8rem;display:flex}.actions-row .btn{min-height:44px;padding:.55rem 1.1rem}.btn[disabled]{opacity:.45;cursor:default}.felt{background:radial-gradient(ellipse at 50% 38%, var(--felt-mid) 0%, var(--felt) 55%, var(--felt-edge) 100%);box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;border:1px solid #0a4230;border-radius:18px;padding:12px;position:relative}.top-row{gap:var(--gap);margin-bottom:var(--gap);grid-template-columns:repeat(7,1fr);display:grid}.tableau-row{gap:var(--gap);grid-template-columns:repeat(7,1fr);align-items:start;display:grid}.slot,.pile{min-height:calc(var(--cw) * 1.4);position:relative}.slot.spacer{box-shadow:none;background:0 0}.slot:empty:before,.pile:empty:before{content:"";height:calc(var(--cw) * 1.4);border-radius:calc(var(--cw) * .09);background:#00000024;border:1.5px solid #ffffff29;position:absolute;inset:0}.ghost{height:calc(var(--cw) * 1.4);font-size:calc(var(--cw) * .52);color:#ffffff26;border-radius:calc(var(--cw) * .09);background:#00000024;border:1.5px solid #ffffff29;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.recycle{height:calc(var(--cw) * 1.4);border-radius:calc(var(--cw) * .09);cursor:pointer;background:#00000024;border:1.5px dashed #ffffff59;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.recycle svg{width:calc(var(--cw) * .44);height:calc(var(--cw) * .44);stroke:#ffffff8c}.card{width:var(--cw);aspect-ratio:5/7;border-radius:calc(var(--cw) * .09);color:#1f2430;touch-action:none;background:#f8fafc;position:absolute;top:0;left:0;box-shadow:0 1px 3px #00000073}.card.red{color:#dc2626}.card .corner{flex-direction:column;align-items:center;font-weight:700;line-height:1.02;display:flex;position:absolute}.card .corner b{font-size:calc(var(--cw) * .21);font-weight:700}.card .corner i{font-style:normal;font-size:calc(var(--cw) * .19)}.card .corner.tl{top:4%;left:7%}.card .corner.br{bottom:4%;right:7%;transform:rotate(180deg)}.card .pip{font-size:calc(var(--cw) * .52);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.card.down{background:#1e40af;padding:3px}.card .back-pattern{border-radius:calc(var(--cw) * .06);background:repeating-linear-gradient(45deg,#f8fafc29 0 2px,#0000 2px 7px),repeating-linear-gradient(-45deg,#f8fafc29 0 2px,#0000 2px 7px),#1d4ed8;border:1.5px solid #f8fafcd9;width:100%;height:100%}.card.selected{outline:3px solid var(--game-accent);outline-offset:1px;box-shadow:0 4px 14px #0000008c}.card.drag-src{opacity:.35}.count-badge{background:var(--panel);border:1px solid var(--panel-border);color:var(--ink);z-index:5;border-radius:999px;padding:.08rem .42rem;font-size:.72rem;font-weight:700;position:absolute;bottom:-6px;right:-6px}.drag-layer{z-index:60;pointer-events:none;filter:drop-shadow(0 10px 16px #00000080);position:fixed;top:0;left:0}.drag-layer .card{position:absolute}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.shake{animation:.22s ease-in-out 2 shake}html[data-theme=halloween]{--felt:#2a1240;--felt-mid:#38195a;--felt-edge:#1a0a2a}html[data-theme=halloween] .felt{border-color:#140722}html[data-theme=halloween] .card.down{background:#4c1d95}html[data-theme=halloween] .card .back-pattern{background:repeating-linear-gradient(45deg,#f8fafc29 0 2px,#0000 2px 7px),repeating-linear-gradient(-45deg,#f8fafc29 0 2px,#0000 2px 7px),#6d28d9}html[data-theme=christmas]{--felt:#0d5c33;--felt-mid:#0f6b3b;--felt-edge:#06331d}html[data-theme=christmas] .felt{border-color:#052a17}html[data-theme=christmas] .card.down{background:#991b1b}html[data-theme=christmas] .card .back-pattern{background:repeating-linear-gradient(45deg,#f8fafc29 0 2px,#0000 2px 7px),repeating-linear-gradient(-45deg,#f8fafc29 0 2px,#0000 2px 7px),#b91c1c}.win-overlay{z-index:40;background:#061a11a8;border-radius:18px;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.win-card{text-align:center;background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);box-shadow:var(--shadow);margin:0 1rem;padding:1.2rem 1.6rem}.win-title{margin:0 0 .4rem;font-size:1.45rem;font-weight:700}.win-sub{color:var(--ink-soft);margin:0 0 .9rem}.how{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);margin-top:.9rem;padding:.8rem 1rem}.how h2{margin:0 0 .35rem;font-size:1.05rem}.how p{color:var(--ink-soft);margin:0 0 .5rem;line-height:1.5}.how p:last-child{margin-bottom:0}
