:root{--bg: #0b3d27;--bg2: #06241a;--panel: rgba(0, 0, 0, .28);--panel-line: rgba(255, 255, 255, .1);--text: #f4f7f5;--muted: rgba(244, 247, 245, .68);--card: #fdfdfb;--black: #1a1a1a;--red: #c8252c;--back: #274690;--accent: #f2c94c;--accent2: #e0a526;--slot: rgba(255, 255, 255, .09);--ease: cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;color:var(--text);font-family:system-ui,Segoe UI,Roboto,sans-serif;background:radial-gradient(1200px 800px at 50% 30%,#14704a 0%,var(--bg) 45%,var(--bg2) 100%) fixed}h1,h2,h3{margin:0}code{background:#0000004d;padding:1px 6px;border-radius:5px;font-size:.85em;word-break:break-all}.shell{display:grid;grid-template-columns:230px minmax(0,1fr) 300px;gap:20px;padding:18px;min-height:100vh;max-width:2200px;margin:0 auto}.rail,.side{display:flex;flex-direction:column;gap:14px}.rail{position:sticky;top:18px;align-self:start}.stage{min-width:0}.brand{display:flex;align-items:center;gap:10px;font-size:1.35rem;font-weight:800;letter-spacing:.3px}.brand img{border-radius:10px;box-shadow:0 4px 14px #0006}.games{display:flex;flex-direction:column;gap:10px}.gtile{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:12px;background:var(--panel);color:var(--text);border:1px solid var(--panel-line);border-radius:14px;transition:transform .2s var(--ease),background .2s,border-color .2s,box-shadow .2s}.gtile:hover{transform:translate(4px);background:#ffffff1a}.gtile.active{background:linear-gradient(135deg,#f2c94c47,#f2c94c14);border-color:var(--accent);box-shadow:0 6px 20px #0005}.gicon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;font-size:1.7rem;background:var(--card);color:var(--black);flex:none;box-shadow:0 3px 8px #0005}.gicon.freecell{color:var(--red)}.gname{display:flex;flex-direction:column;font-weight:700}.gname small{font-weight:400;color:var(--muted);font-size:.75rem}.account{font-size:.85rem;color:var(--muted);margin-top:auto}.stagebar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.stagebar h1{font-size:1.5rem}.viewtabs{display:inline-flex;padding:4px;background:var(--panel);border-radius:999px;border:1px solid var(--panel-line)}.vt{background:transparent;color:var(--text);border:0;border-radius:999px;padding:7px 18px;transition:background .2s,color .2s}.vt.active{background:linear-gradient(180deg,var(--accent),var(--accent2));color:#231a00}.controls{display:flex;gap:10px;flex-wrap:wrap;align-items:end;padding:10px 14px;background:var(--panel);border:1px solid var(--panel-line);border-radius:14px;margin-bottom:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.controls label{display:flex;flex-direction:column;font-size:.72rem;color:var(--muted);gap:3px;text-transform:uppercase;letter-spacing:.5px}select,button{font:inherit;padding:8px 14px;border-radius:10px;border:1px solid #0006}select{background:#ffffffeb;color:#222}button{background:linear-gradient(180deg,var(--accent),var(--accent2));color:#231a00;cursor:pointer;font-weight:700;transition:transform .15s var(--ease),box-shadow .15s,filter .15s;box-shadow:0 2px #7a5a0a88}button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.06)}button:active:not(:disabled){transform:translateY(1px);box-shadow:none}button:disabled{opacity:.45;cursor:default}button.ghost,.gtile,.vt{box-shadow:none}button.ghost{background:#ffffff1a;color:var(--text);border-color:var(--panel-line)}.link{background:none;border:none;color:var(--accent);text-decoration:underline;padding:0;cursor:pointer;font-weight:400;box-shadow:none}.notice{background:var(--panel);padding:8px 12px;border-radius:10px;font-size:.85rem;margin-bottom:10px;border-left:3px solid var(--accent)}.win{background:linear-gradient(90deg,var(--accent),#fff1b5,var(--accent));background-size:200%;color:#231a00;padding:12px 16px;border-radius:12px;font-weight:800;margin-bottom:10px;animation:pop .5s var(--ease),shine 2.5s linear infinite}@keyframes pop{0%{transform:scale(.8);opacity:0}}@keyframes shine{to{background-position:-200% 0}}.panel{background:var(--panel);border:1px solid var(--panel-line);border-radius:14px;padding:12px 14px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.panel h2{font-size:.95rem;margin-bottom:8px}.panel h3{font-size:.85rem;margin:10px 0 4px;color:var(--muted)}.panel .row{display:flex;justify-content:space-between;gap:8px;font-size:.88rem;padding:2px 0}.panel .row.me{color:var(--accent);font-weight:700}.panel dl,.panel dd{margin:0}.status{font-size:.9rem;line-height:1.6}.minis{display:grid;grid-template-columns:1fr 1fr;gap:8px}.minis div{background:#ffffff12;border-radius:10px;padding:8px;text-align:center}.minis b{display:block;font-size:1.3rem;color:var(--accent)}.minis span{font-size:.7rem;color:var(--muted);text-transform:uppercase}.table{padding:22px 22px 40px;border-radius:22px;border:1px solid var(--panel-line);background:radial-gradient(900px 500px at 50% 0%,rgba(255,255,255,.07),transparent 70%),#00000029;box-shadow:inset 0 0 60px #0006,0 20px 50px #0004}.board{--h: calc(var(--w) * 1.4);--sd: calc(var(--h) * .1);--su: calc(var(--h) * .24);width:100%;font-size:calc(var(--w) * .19)}.top,.tableau{display:grid;grid-template-columns:repeat(var(--cols),var(--w));gap:var(--gap);justify-content:space-between;align-items:start}.top{margin-bottom:calc(var(--w) * .35)}.pile{position:relative;width:var(--w);height:var(--h);border-radius:calc(var(--w) * .09);background:var(--slot);border:2px dashed rgba(255,255,255,.16);transition:background .15s,border-color .15s,box-shadow .15s}.pile.waste{grid-column:span 2;width:100%;background:none;border:none}.pile.foundation.empty{background:#ffffff0d}.pile .count{position:absolute;bottom:-1.6em;left:0;right:0;text-align:center;font-size:.8em;color:var(--muted)}.pile .recycle,.pile .placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:calc(var(--w) * .5);color:#ffffff47}.pile .placeholder.red{color:#ff787852}.pile .placeholder.small{font-size:.7em;text-transform:uppercase;letter-spacing:1px}.pile.stock{cursor:pointer}.pile.stock:hover{background:#ffffff29}.column{position:relative;width:var(--w);min-height:calc(var(--h) * 2.6);border-radius:calc(var(--w) * .09);background:var(--slot);transition:background .15s,box-shadow .15s}.board.fc .column,.board.spider .column{min-height:calc(var(--h) * 3.2)}.column.over,.pile.over{background:#f2c94c38;box-shadow:0 0 0 3px var(--accent),0 0 24px #f2c94c80;border-color:transparent}.card{position:absolute;left:0;width:var(--w);height:var(--h);border-radius:calc(var(--w) * .09);user-select:none;-webkit-user-select:none;cursor:grab;touch-action:none;box-shadow:0 1px 2px #0007,0 3px 8px #0004;transition:box-shadow .15s,filter .15s}.card.face{background:linear-gradient(160deg,#fff 0%,var(--card) 55%,#ecebe4 100%);border:1px solid rgba(0,0,0,.35);font-weight:700;overflow:hidden}.card.face.red{color:var(--red)}.card.face.black{color:var(--black)}.card:hover{filter:brightness(1.04)}.card .idx{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:1;font-size:1em}.card .idx.tl{top:.35em;left:.4em}.card .idx.br{bottom:.35em;right:.4em;transform:rotate(180deg)}.card .rank{font-size:1.05em;font-weight:800;letter-spacing:-.5px}.card .suit{font-size:.95em}.card .mid{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:3em;opacity:.9;pointer-events:none}.card.court .mid{flex-direction:column;font-size:2.4em;background:linear-gradient(180deg,rgba(242,201,76,.18),transparent);margin:22% 18%;border:1.5px solid currentColor;border-radius:8px;top:0;right:0;bottom:0;left:0}.card.court .mid i{font-style:normal;font-weight:800;font-family:Georgia,serif;line-height:.9}.card.court .mid b{font-size:.55em}.card.back{background:linear-gradient(135deg,#3555b8,var(--back) 60%,#1b3170);border:2px solid #fff;cursor:pointer}.card.back .back-art{position:absolute;top:7%;right:7%;bottom:7%;left:7%;border-radius:calc(var(--w) * .06);border:1.5px solid rgba(255,255,255,.55);background:repeating-linear-gradient(45deg,transparent 0 6px,rgba(255,255,255,.12) 6px 7px),repeating-linear-gradient(-45deg,transparent 0 6px,rgba(255,255,255,.12) 6px 7px)}.card.selected{outline:3px solid var(--accent);box-shadow:0 0 18px var(--accent),0 6px 14px #0006;transform:translateY(-4px)}.card.dragging{z-index:1000;transition:none;cursor:grabbing;box-shadow:0 18px 34px #000a;pointer-events:none}.top,.tableau{position:relative}.top:has(.card.dragging),.tableau:has(.card.dragging){z-index:1000}.pile:has(.card.dragging),.column:has(.card.dragging){z-index:1000}body:has(.card.dragging){cursor:grabbing}.completed{grid-column:3 / -1;align-self:center;font-size:.95rem;color:var(--muted)}.slots{display:flex;gap:var(--gap);margin-bottom:6px}.slot{flex:1;height:calc(var(--h) * .45);border-radius:8px;border:2px dashed rgba(255,255,255,.2);display:grid;place-items:center;font-size:1.6em;color:transparent;transition:all .4s var(--ease)}.slot.done{background:linear-gradient(160deg,#fff,#ecebe4);color:var(--accent2);border:2px solid var(--accent);transform:rotate(-3deg);box-shadow:0 4px 10px #0006}.rules{padding:22px;border-radius:22px;background:var(--panel);border:1px solid var(--panel-line);animation:pop .35s var(--ease)}.rules h2{font-size:1.5rem}.tagline{color:var(--muted);margin:4px 0 18px}.rules-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.rcard{background:#ffffff12;border:1px solid var(--panel-line);border-radius:14px;padding:14px 18px}.rcard.goal{background:linear-gradient(135deg,#f2c94c40,#f2c94c0f)}.rcard.wide{grid-column:1 / -1}.rcard h3{margin-bottom:8px;font-size:1.05rem}.rcard ul,.rcard ol{margin:0;padding-left:20px;line-height:1.55}.rcard li{margin-bottom:4px}.app.login{text-align:center;padding-top:12vh}.login img{border-radius:22px;box-shadow:0 10px 30px #0006}.login h1{margin:14px 0 6px;font-size:2.2rem}.button{display:inline-block;background:linear-gradient(180deg,var(--accent),var(--accent2));color:#231a00;padding:12px 22px;border-radius:12px;font-weight:800;text-decoration:none;margin-top:8px}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:900}.confetti i{position:absolute;top:-20px;border-radius:2px;opacity:.9;animation:fall linear 1 forwards}@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}@media (max-width: 1280px){.shell{grid-template-columns:200px minmax(0,1fr)}.side{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}@media (max-width: 860px){.shell{grid-template-columns:1fr;padding:10px;gap:12px}.rail{position:static}.games{flex-direction:row;overflow-x:auto}.gtile{min-width:150px}.gname small{display:none}.table{padding:10px 8px 24px}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.hint-src,.hint-dst{animation:hintpulse 1.1s ease-in-out infinite}.pile.hint-src,.column.hint-src,.card.hint-src{box-shadow:0 0 0 3px #4cc9f0,0 0 22px #4cc9f0b3}.pile.hint-dst,.column.hint-dst,.card.hint-dst{box-shadow:0 0 0 3px #7bd88f,0 0 22px #7bd88fb3}@keyframes hintpulse{50%{filter:brightness(1.25)}}.assist{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;margin-bottom:10px;border-radius:12px;background:#4cc9f024;border:1px solid rgba(76,201,240,.5);font-size:.9rem}.assist b{color:#8fdcf5}.assist .spacer{flex:1}button.toggle.on{background:linear-gradient(180deg,#8fdcf5,#4cc9f0);color:#04222b}.gtile .badge{margin-left:auto;font-size:.7rem;padding:2px 8px;border-radius:999px;background:var(--accent);color:#231a00;font-weight:700;white-space:nowrap}.saved-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;font-size:.88rem}.saved-row button{padding:4px 10px;font-size:.8rem}.board.golf .column{min-height:calc(var(--h) * 2.15)}.board.peaks{position:relative}.board.peaks .field{position:relative;width:100%}.board.peaks .card,.board.peaks .slotmark{position:absolute}.board.peaks .slotmark{width:var(--w);height:var(--h);border-radius:calc(var(--w) * .09);background:var(--slot);border:2px dashed rgba(255,255,255,.16)}.board.peaks .card.back{cursor:default}.board.peaks .card.face{cursor:pointer}.board.peaks .card.blocked{filter:brightness(.82);cursor:default}.board.peaks .count{position:absolute;font-size:.8em;color:var(--muted);width:var(--w);text-align:center}.muted-note{font-size:.75rem;color:var(--muted);margin:6px 0 0}button.toggle.on.save{background:linear-gradient(180deg,#b6ecc1,#7bd88f);color:#062b12}.pick-list{display:flex;flex-direction:column;gap:4px;max-height:220px;overflow:auto;margin:8px 0}.pick{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;background:#ffffff0f;cursor:pointer}.pick-actions,.ch-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.ch{padding:8px 0 10px;border-top:1px solid var(--panel-line)}.ch:first-of-type{border-top:0}.ch.active{box-shadow:-3px 0 0 var(--accent);padding-left:8px}.ch-head{display:flex;align-items:center;gap:6px;margin-bottom:4px}.ch-head small{color:var(--muted)}.tag{margin-left:auto;font-size:.7rem;padding:1px 8px;border-radius:999px;background:#7bd88f;color:#062b12;font-weight:700}.ch-row{display:grid;grid-template-columns:1fr auto;gap:2px 8px;font-size:.85rem;padding:3px 0}.ch-row.me .who{color:var(--accent);font-weight:700}.ch-row .st{color:var(--muted);font-size:.8rem}.bar{grid-column:1 / -1;height:7px;border-radius:999px;background:#ffffff1f;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,#4cc9f0,#8fdcf5);border-radius:999px;transition:width .6s var(--ease)}.bar i.won{background:linear-gradient(90deg,var(--accent2),var(--accent))}.compare-wrap{overflow-x:auto;margin-top:8px}.compare{width:100%;white-space:nowrap;border-collapse:collapse;font-size:.75rem}.compare th{text-align:left;color:var(--muted);font-weight:600;padding:2px 4px}.compare td{padding:3px 4px;border-top:1px solid var(--panel-line)}.compare tr.me td{color:var(--accent);font-weight:700}.toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:1200;max-width:min(420px,calc(100vw - 32px))}.toast{background:#06241a;border:1px solid var(--accent);border-radius:12px;padding:10px 14px;box-shadow:0 10px 30px #000a;animation:pop .3s var(--ease);cursor:pointer}
