*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0;padding:0}body{background:var(--felt);color:#f5f2ea;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.card.dragging{opacity:.5}.col.drop-ok,.freecells>.cell.drop-ok,.foundations>.cell.drop-ok,.cell.drop-ok{outline-offset:2px;border-radius:8px;outline:2px solid #7de67dd9}.col.drop-hover,.freecells>.cell.drop-hover,.foundations>.cell.drop-hover,.cell.drop-hover{outline-offset:1px;background-color:#7de67d1f;outline:3px solid #7de67d}.drag-ghost{-webkit-user-select:none;user-select:none}.drag-ghost .card.drag-ghost-face{box-shadow:0 4px 12px #0006,inset 0 0 0 1px #0f172a14}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/playfair-display-600.woff2)format("woff2")}:root{--font-display:"Playfair Display", Georgia, "Times New Roman", serif;--felt-green:#143d23;--felt-slate:#0f172a;--card-bone:#fdfbf7;--suit-black:#0f172a;--suit-red:#9f1239;--suit-blue:#075985;--suit-green:#14532d;--felt:var(--felt-green);--card-ar:1.4;--felt-spotlight:#245c38;--felt-deep:#0d2c19;--felt-bg:radial-gradient(130% 100% at 50% -10%, var(--felt-spotlight) 0%, var(--felt-green) 42%, var(--felt-deep) 100%);--card-bg:linear-gradient(168deg, #fffdf5 0%, var(--card-bone) 100%);--table-brass:#c9a227;--table-focus:#e6b93f;--glass-bg:#0a2014bf;--glass-border:#ffffff2e;--radius-s:4px;--radius-m:8px;--radius-l:12px;--radius-full:9999px;--btn-bg:#2c5b3a;--banner-win-bg:var(--btn-bg);--banner-hardcore-bg:#3a2c14;--banner-hardcore-text:#f5e6c8;--banner-hint-bg:#14304a;--banner-hint-text:#cfe3f5;--banner-verify-bg:#1e4a36;--banner-verify-text:#d9efe4;--banner-stuck-bg:#4a1919;--banner-stuck-text:#ffd5d5;--branch-menu-bg:#0f172af5}[data-theme=dark]{--felt:var(--felt-slate);--felt-spotlight:#1e293b;--felt-deep:#020617;--glass-bg:#0f172ad9;--glass-border:#ffffff1f;--banner-hardcore-bg:#291e13;--banner-hint-bg:#13253b;--banner-verify-bg:#112d22;--banner-stuck-bg:#381212;--banner-stuck-text:#ffc4c4}.screen{background:var(--felt-bg);flex-direction:column;min-height:100vh;display:flex}.topbar{background:linear-gradient(#05160deb,#05160dc7);border-bottom:1px solid #c9a22773;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;display:flex;box-shadow:0 6px 18px #0000004d}[data-theme=dark] .topbar{background:linear-gradient(#020617f0,#020617d1);border-bottom:1px solid #c9a2274d}.topbar-data{border-radius:var(--radius-m);letter-spacing:.02em;white-space:nowrap;background:#00000038;border:1px solid #ffffff14;align-items:center;gap:12px;padding:4px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;display:flex}[data-theme=dark] .topbar-data{background:#00000059;border-color:#ffffff0f}.deal-label{font-weight:600}.topbar-timer,.topbar-moves{font-variant-numeric:tabular-nums;opacity:.9}.topbar button{background:var(--glass-bg);color:#efeadb;border:1px solid var(--glass-border);border-radius:var(--radius-m);cursor:pointer;font:inherit;padding:6px 10px;box-shadow:inset 0 1px #ffffff0f}.topbar button:hover:not(:disabled){background:#143421e6;border-color:#ffffff4d}.topbar input{color:#111;background:#fff;border:1px solid #ffffff4d;border-radius:6px;padding:6px 8px}.banner{text-align:center;padding:12px 16px;font-weight:600}.banner.win{border-radius:var(--radius-m);background:linear-gradient(#226b41,#17452a);border-top:1px solid #e6b93f8c;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex;box-shadow:0 4px 12px #00000040}.win-message{display:inline-block}.win-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:inline-flex}.banner.win .win-btn{appearance:none;font:inherit;border-radius:var(--radius-s);cursor:pointer;color:#fff;background:#00000040;border:1px solid #ffffff40;padding:6px 14px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s}.banner.win .win-btn:hover{background:#0006;border-color:#ffffff73}.banner.win .win-btn-primary{background:var(--table-focus);color:#1a1a1a;border-color:var(--table-brass);font-weight:700}.banner.win .win-btn-primary:hover{filter:brightness(1.08)}.banner.hardcore{background:var(--banner-hardcore-bg);color:var(--banner-hardcore-text)}.banner.hint{background:var(--banner-hint-bg);color:var(--banner-hint-text)}.banner.verify{background:var(--banner-verify-bg);color:var(--banner-verify-text)}.banner.stuck{background:var(--banner-stuck-bg);color:var(--banner-stuck-text)}.hint-warning{color:#f0c987;margin-top:4px;font-weight:400;display:block}.card[data-hint=true]{outline:3px solid var(--table-focus);outline-offset:-2px}.topbar button:disabled{opacity:.45;cursor:not-allowed}.stats-panel{border-radius:var(--radius-m);color:#f5f2ea;background:#05160d99;border:1px solid #ffffff1a;margin:8px 16px;padding:12px 16px}[data-theme=dark] .stats-panel{background:#0f172abf;border:1px solid #ffffff1f}.stats-board h3,.stats-history h3{margin:8px 0 4px;font-size:14px}.stats-board ul,.stats-history ul{margin:0 0 12px;padding:0;list-style:none}.stats-board li,.stats-history li{padding:2px 0;font-size:13px}.stats-history{max-height:240px;overflow-y:auto}.history-replay-btn{color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:var(--radius-s);background:0 0;border:none;width:100%;padding:2px 4px;transition:background .15s;display:inline-block}.history-replay-btn:hover{background:#ffffff1f;text-decoration:underline}.history-replay-btn:focus-visible{outline-offset:1px;outline:2px solid #e0c870}.endgame-replay-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.endgame-replay-modal{color:#f5f2ea;border-radius:var(--radius-m);background:#143320;border:1px solid #fff3;flex-direction:column;gap:16px;width:100%;max-width:1040px;max-height:92vh;padding:20px;display:flex;overflow-y:auto;box-shadow:0 12px 36px #0009}[data-theme=dark] .endgame-replay-modal{background:#0f172a;border-color:#ffffff26}.endgame-replay-header{border-bottom:1px solid #ffffff26;justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.endgame-replay-header h2{margin:0;font-size:1.1rem;font-weight:600}.replay-close-btn{color:#f5f2ea;border-radius:var(--radius-s);cursor:pointer;background:#ffffff1f;border:1px solid #ffffff40;padding:6px 14px;font-size:13px;font-weight:600;transition:background .15s}.replay-close-btn:hover{background:#ffffff40}.replay-close-btn:focus-visible{outline-offset:1px;outline:2px solid #e0c870}.endgame-replay-board{pointer-events:none;max-width:100%;padding:4px 0}.error{color:#ffb3b3}.board{flex-direction:column;gap:16px;width:100%;max-width:1120px;margin-left:auto;margin-right:auto;padding:16px;display:flex}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:32px 16px;display:flex}.empty-state h1{font-size:32px;font-family:var(--font-display,Georgia, "Times New Roman", serif);letter-spacing:.02em;text-shadow:0 2px 12px #00000059;margin:0}.empty-state p{opacity:.85;max-width:480px;margin:0;line-height:1.5}.empty-state button:not(.empty-daily-cta){color:#143d23;cursor:pointer;font:inherit;background:linear-gradient(#e8c96a,#c9a227);border:1px solid #5a420880;border-radius:10px;padding:10px 18px;font-weight:700;transition:transform .12s,box-shadow .12s,background .12s;box-shadow:0 2px 6px #00000059,inset 0 1px #ffffff8c}.empty-state button:not(.empty-daily-cta):hover{background:linear-gradient(#f0d47e,#d4ad32);box-shadow:0 4px 12px #0006,inset 0 1px #ffffffa6}.empty-state button:not(.empty-daily-cta):active{transform:translateY(1px);box-shadow:0 1px 3px #0006,inset 0 1px #fff6}.empty-state .empty-daily-cta{background:var(--glass-bg);color:#efeadb;border:1px solid var(--glass-border);flex-direction:column;align-items:center;gap:4px;min-width:220px;display:flex;box-shadow:inset 0 1px #ffffff0f}.empty-state .empty-daily-cta:hover{background:#143421e6;border-color:#ffffff4d;box-shadow:inset 0 1px #ffffff1a}[data-theme=dark] .empty-state .empty-daily-cta:hover{background:#1e293be6}.empty-state .daily-cta-title{font-size:16px;font-weight:700}.empty-state .daily-cta-deal{opacity:.85;font-size:13px;font-weight:500}.empty-state .daily-cta-streak{opacity:.95;border-radius:var(--radius-full);background:#e6b93f2e;padding:2px 8px;font-size:12px;font-weight:600}.empty-state .daily-cta-play{opacity:.75;font-size:12px;font-weight:500}.top-row{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;width:100%;display:grid}.freecells,.foundations{grid-column:span 4;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.cell{width:100%;aspect-ratio:var(--card-ar);border-radius:var(--radius-m);background:#00000024;border:2px dashed #ffffff47;justify-content:center;align-items:center;display:flex;position:relative;box-shadow:inset 0 2px 8px #00000040}.cell.occupied{border-style:solid}.cell.foundation{cursor:pointer}.found-count{color:#ffffffb3;font-size:11px;position:absolute;bottom:2px;left:4px}.foundation-suit{opacity:.85;pointer-events:none;font-size:13px;line-height:1.1;position:absolute;top:3px;left:4px}.cols{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;display:grid}.col{flex-direction:column;min-height:68px;display:flex}.card{width:100%;aspect-ratio:var(--card-ar);border-radius:var(--radius-m);background:var(--card-bg);color:var(--suit-black);font-size:15px;font-weight:700;position:relative;box-shadow:0 1px 2px #00000073,0 5px 12px #0000002e,inset 0 0 0 1px #1c1c1e1f;container-type:inline-size}.col .card{margin-top:calc(24px - 100% / var(--card-ar))}.card-idx{pointer-events:none;font-size:clamp(11px,3.4vw,14px);font-weight:700;line-height:1.15;position:absolute;top:2px;left:3px}.card:after{content:attr(data-suit);opacity:.14;pointer-events:none;justify-content:center;align-items:center;font-size:55cqw;line-height:1;display:flex;position:absolute;inset:0}.card:before{content:attr(data-rank) attr(data-suit);pointer-events:none;font-size:clamp(11px,3.4vw,14px);font-weight:700;line-height:1.15;position:absolute;bottom:2px;right:3px;transform:rotate(180deg)}.col .card:first-child{margin-top:0}.card.red{color:var(--suit-red)}.suit-S{color:var(--suit-black)}.suit-H,.suit-D{color:var(--suit-red)}.suit-C{color:var(--suit-black)}[data-suitcolors="4"] .suit-D{color:var(--suit-blue)}[data-suitcolors="4"] .suit-C{color:var(--suit-green)}.card.selected{outline:3px solid var(--table-focus);box-shadow:0 0 0 5px #e6b93f38,0 5px 14px #0000004d}.card.hinted{outline:3px solid #4dd5ff}.card.clickable{cursor:pointer}.action-pill{align-items:center;gap:8px;margin-left:auto;display:flex}.action-pill button{box-sizing:border-box;justify-content:center;align-items:center;min-height:44px;display:inline-flex}.action-pill .pill-more{display:inline-flex}.action-pill .pill-secondary{display:none}.action-pill.expanded .pill-secondary{display:inline-flex}@media (width<=720px){body{padding-bottom:120px}body.more-open{padding-bottom:270px}body:has(.action-pill.expanded){padding-bottom:270px}.action-pill{border-radius:var(--radius-full);z-index:10;background:#05160de0;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;max-width:calc(100% - 32px);margin-left:0;padding:2px 8px;display:flex;position:fixed;bottom:16px;left:16px;right:16px;box-shadow:0 4px 16px #00000080,0 0 0 1px #ffffff14}.action-pill button{border-radius:var(--radius-full)}.board{padding-bottom:16px}}@media (width<=360px){body{padding-bottom:168px}body.more-open{padding-bottom:320px}body:has(.action-pill.expanded){padding-bottom:320px}}@media (width<=720px) and (orientation:landscape){body{padding-bottom:72px}body.more-open{padding-bottom:180px}body:has(.action-pill.expanded){padding-bottom:180px}.action-pill{gap:6px;padding:2px 8px;bottom:6px}}@media (width<=720px) and (orientation:landscape),(height<=500px) and (orientation:landscape){.topbar{gap:8px;padding:4px 12px}.topbar-data{padding:2px 8px;font-size:12px}.topbar input{padding:3px 6px}.topbar button[data-testid=deal-submit]{padding:3px 8px}.banner{padding:3px 8px;font-size:12px}.banner.win{gap:6px;padding:4px 8px}.banner.win .win-btn{padding:3px 8px;font-size:11px}.board{gap:6px;padding:4px 12px 0}.col .card{margin-top:calc(20px - 100% / var(--card-ar))}}.spider-cols{grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;display:grid}.spider-cols .col{min-height:60px}.spider-cols .card{width:100%;height:60px;margin-top:-48px;font-size:13px}.spider-cols .card:first-child{margin-top:0}.card.down{color:#0000;background:#1d3557;border:1px solid #ffffff40}.spider-foundations{font-weight:600}.forward-wrap{display:inline-flex;position:relative}.branch-menu{background:var(--branch-menu-bg);border-radius:var(--radius-m);z-index:10;color:#f5f2ea;border:1px solid #ffffff40;flex-direction:column;min-width:220px;max-width:min(320px,100vw - 32px);max-height:min(70vh,480px);padding:6px;font-size:13px;animation:.12s ease-out branch-menu-fade;display:flex;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto;box-shadow:0 4px 16px #00000080}.branch-menu-title{text-transform:uppercase;letter-spacing:.04em;opacity:.75;padding:6px 10px 4px;font-size:12px;font-weight:700}.branch-menu .branch-option{box-sizing:border-box;min-height:44px;color:inherit;text-align:left;cursor:pointer;font:inherit;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;padding:8px 10px;font-size:13px;display:flex}.branch-menu .branch-option:hover{background:#e6b93f2e;border-color:#e6b93f73}.branch-menu .branch-option:focus{outline:2px solid var(--table-focus);outline-offset:-2px}@media (prefers-reduced-motion:reduce){.branch-menu{animation:none}}@keyframes branch-menu-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (width<=720px){.forward-wrap{position:static}.branch-menu{box-sizing:border-box;width:max-content;min-width:0;max-width:100%;margin-left:auto;margin-right:auto;inset:auto 0 calc(100% + 8px)}.branch-menu .branch-option{white-space:normal;word-break:break-word}}.home-content{width:100%;max-width:1120px;color:var(--card-bone);flex-direction:column;gap:24px;margin-left:auto;margin-right:auto;padding:16px;display:flex}.home-content .home-section{border-radius:var(--radius-l);background:#05160d80;border:1px solid #ffffff14;flex-direction:column;gap:12px;padding:20px 24px;display:flex;box-shadow:0 4px 16px #0003}[data-theme=dark] .home-content .home-section{background:#0f172a8c;border:1px solid #ffffff0f}.home-content .home-section:first-child{background:linear-gradient(#082215a6,#05160d80);padding:28px 32px;box-shadow:0 6px 24px #00000047}.home-content .home-section:first-child .home-section-title{font-size:24px}[data-theme=dark] .home-content .home-section:first-child{background:linear-gradient(#16223aa6,#0f172a8c)}.home-content .home-section-title{font-size:20px;font-weight:700;font-family:var(--font-display,Georgia, "Times New Roman", serif);letter-spacing:.01em;margin:0}.home-content .home-section-title a{color:inherit;text-decoration:none}.home-content .home-section-title a:hover,.home-content .home-section-title a:focus{text-decoration:underline}.home-content .home-steps,.home-content .home-why{flex-direction:column;gap:8px;margin:0;padding-left:20px;display:flex}.home-content .home-steps li,.home-content .home-why li{line-height:1.55}.home-content .home-section p{color:#dfd8ca;margin:0;line-height:1.55}.home-content .home-terms{flex-direction:column;gap:8px;margin:0;display:flex}.home-content .home-terms dt{color:#f5f2ea;margin-top:4px;font-size:15px;font-weight:700}.home-content .home-terms dd{color:#d6cfbf;margin:0 0 6px;line-height:1.55}@media (width>=640px){.home-content .home-why{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;padding-left:0;list-style:none;display:grid}.home-content .home-why li{border-radius:var(--radius-m);background:#ffffff08;border:1px solid #ffffff0d;padding:12px 16px}}.home-content .home-faq{flex-direction:column;gap:10px;margin:0;display:flex}.home-content .home-faq-item{border-radius:var(--radius-m);background:#ffffff08;border:1px solid #ffffff0d;flex-direction:column;gap:4px;padding:12px 16px;display:flex}.home-content .home-faq-item dt{color:#f5f2ea;font-size:15px;font-weight:700}.home-content .home-faq-item dd{color:#d6cfbf;margin:0;line-height:1.55}.home-content code{border-radius:var(--radius-s);background:#ffffff14;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}@media (width<=720px){.home-content{gap:16px;padding:12px}.home-content .home-section{padding:16px}.home-content .home-section:first-child{padding:20px 16px}.home-content .home-section:first-child .home-section-title{font-size:20px}}@media (width<=480px){.empty-state h1{font-size:26px}.home-content .home-section-title{font-size:17px}}.card.flipping{z-index:50;transition:transform .2s cubic-bezier(.2,0,0,1)}.cell.foundation .card.win-bounce{animation:.6s cubic-bezier(.34,1.56,.64,1) infinite both win-bounce}@keyframes win-bounce{0%{transform:translateY(0)scale(1)}40%{transform:translateY(-14px)scale(1.06)}70%{transform:translateY(0)scale(.98)}to{transform:translateY(0)scale(1)}}.card[data-hint=true]{outline:3px solid var(--table-focus);outline-offset:-2px;animation:1.2s ease-in-out infinite hint-pulse}@keyframes hint-pulse{0%,to{outline-color:#e6b93f}50%{outline-color:#e6b93f66}}@media (prefers-reduced-motion:reduce){.card.flipping{transition:none}.cell.foundation .card.win-bounce,.card[data-hint=true]{animation:none}}
