.g-freecell{--cw:34px;--ch:48px;--fs:11px;--gap:3px;--card-face:#fbfaf6;--card-ink:#1d2320;--card-red:#c0392b;padding:4px;border-radius:8px;background:var(--accent-soft);outline-offset:2px;touch-action:manipulation}.g-freecell .fc-top,.g-freecell .fc-cols{display:grid;grid-template-columns:repeat(8,var(--cw));gap:var(--gap);justify-content:center}.g-freecell .fc-top{margin-bottom:calc(var(--gap) * 3 + 4px)}.g-freecell .fc-col{position:relative;min-height:var(--ch)}.g-freecell .fc-col::before{content:"";position:absolute;left:0;top:0;width:100%;height:var(--ch);border:1px dashed var(--line);border-radius:calc(var(--cw) * .1);pointer-events:none}.g-freecell .fc-col.is-drop-ok::before{border:2px solid var(--accent);background:rgba(255,255,255,.18)}.g-freecell .fc-col.is-hint-to::before{border:3px solid var(--gold)}.g-freecell .fc-col.is-cursor-slot::before{border:3px solid var(--focus)}.g-freecell .fc-card,.g-freecell .fc-found,.g-freecell .fc-cell{width:var(--cw);height:var(--ch);border-radius:calc(var(--cw) * .1);font-size:var(--fs);font-weight:700;line-height:1;box-sizing:border-box}.g-freecell .fc-card{border:1px solid #8e9791;color:var(--card-ink);background:var(--card-face);box-shadow:0 1px 1px rgba(0,0,0,.25);position:absolute;left:0;overflow:hidden;touch-action:none;cursor:grab}.g-freecell .fc-cell .fc-card{top:-1px;left:-1px}.g-freecell .fc-card.red,.g-freecell .fc-found.red{color:var(--card-red)}.g-freecell .fc-ix{position:absolute;left:.18em;top:.16em;white-space:nowrap;letter-spacing:-.04em}.g-freecell .fc-ix i{font-style:normal;margin-left:.04em}.g-freecell .fc-mid{position:absolute;left:0;right:0;bottom:6%;text-align:center;font-size:calc(var(--cw) * .62);line-height:1}.g-freecell .fc-cell,.g-freecell .fc-found{position:relative;border:1px dashed var(--line);background:0 0}.g-freecell .fc-cell.is-empty{background:rgba(255,255,255,.12)}.g-freecell .fc-found.is-full{background:var(--card-face);border:1px solid #8e9791;box-shadow:0 1px 1px rgba(0,0,0,.25)}.g-freecell .fc-ghost{position:absolute;inset:0;display:grid;place-items:center;font-size:calc(var(--cw) * .6);opacity:.28;color:var(--ink)}.g-freecell .fc-found.red .fc-ghost{color:var(--card-red);opacity:.4}.g-freecell .fc-cell.is-drop-ok,.g-freecell .fc-found.is-drop-ok{border:2px solid var(--accent);background:rgba(255,255,255,.22)}.g-freecell .fc-cell.is-hint-to,.g-freecell .fc-found.is-hint-to{border:3px solid var(--gold)}.g-freecell .fc-cell.is-cursor-slot,.g-freecell .fc-found.is-cursor-slot{border:3px solid var(--focus)}.g-freecell .fc-card.is-lifted{visibility:hidden}.g-freecell .fc-drag{position:absolute;left:0;top:0;width:0;height:0;z-index:30;pointer-events:none;will-change:transform}.g-freecell .fc-drag .fc-card{box-shadow:0 4px 10px rgba(0,0,0,.4);cursor:grabbing}.g-freecell .fc-card.is-sel{box-shadow:0 0 0 3px var(--accent),0 1px 1px rgba(0,0,0,.25);z-index:2}.g-freecell .fc-card.is-hint{box-shadow:0 0 0 3px var(--gold),0 1px 1px rgba(0,0,0,.25);z-index:2}.g-freecell .fc-card.is-hint-to{box-shadow:0 0 0 3px var(--gold);z-index:2}.g-freecell .fc-card.is-cursor{outline:3px solid var(--focus);outline-offset:-1px;z-index:3}.g-freecell .fc-card.is-cursor-run{box-shadow:0 0 0 2px var(--focus)}.g-freecell .is-shake{animation:fc-shake .35s}@keyframes fc-shake{20%{transform:translateX(-4px)}40%{transform:translateX(4px)}60%{transform:translateX(-3px)}80%{transform:translateX(3px)}}.fc-dealbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.4rem 0}.fc-dealbar[hidden]{display:none}.fc-dealbar .fc-dealinput{width:7em;padding:.35rem .5rem;font:inherit;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink)}