.freecell-page{max-width:1160px;margin:0 auto}.freecell-table{--card-w:102px;--card-h:138px;--card-step:31px;--table:#173e55;--table-top:#21546b;color:#f3f3e8;background:radial-gradient(ellipse at 50% 0,var(--table-top),transparent 75%),var(--table);border:1px solid #73969e;border-radius:12px;box-shadow:inset 0 0 0 5px #10324666,0 14px 35px #0002;overflow:hidden}.freecell-controls{display:flex;align-items:center;gap:10px;padding:19px 27px 16px;border-bottom:1px solid #d0e6e326}.freecell-wordmark{display:flex;flex-direction:column;margin-right:auto}.freecell-wordmark>span{font-size:9px;letter-spacing:2.8px;color:#c4d8b0}.freecell-wordmark strong{font:normal 32px/1.25 Georgia,'Times New Roman',serif;letter-spacing:-1px}.freecell-wordmark strong>span{color:#bed7b5;font-size:29px;padding-left:8px}.freecell-counters{display:flex;gap:22px;margin-right:15px;font-size:11px;color:#c9dddd;white-space:nowrap}.freecell-counters b{display:block;font:normal 24px/1.15 Georgia,serif;color:#fff7df;text-align:center}.freecell-controls button,.freecell-win button{color:#fff9e8;background:#ffffff08;border:1px solid #b3d0d080;border-radius:5px;padding:10px 13px;font:inherit;font-size:12px;cursor:pointer}.freecell-controls button:hover,.freecell-win button:hover{background:#ffffff1c}.freecell-controls button:disabled{opacity:.45;cursor:default}.freecell-table button:focus-visible{outline:3px solid #ffe48e;outline-offset:3px;z-index:70}.freecell-notice{display:flex;justify-content:space-between;gap:18px;min-height:54px;padding:12px 27px;font-size:12px;line-height:1.5;color:#e2ebdf}.freecell-notice>span:last-child{color:#c4d5d1;font-variant-numeric:tabular-nums;white-space:nowrap}.freecell-board{max-width:1014px;margin:auto;padding:0 28px 24px}.freecell-board-headings{display:grid;grid-template-columns:1fr 1fr;gap:26px;padding-bottom:10px;color:#bbd0cb;font-size:9px;font-weight:600;letter-spacing:2px}.freecell-board-headings>span:last-child{padding-left:13px}.freecell-top,.freecell-columns{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));column-gap:18px}.freecell-top{min-height:var(--card-h);margin-bottom:36px}.freecell-top>:nth-child(5){box-shadow:-13px 0 0 -12px #d0e2dc66}.freecell-slot,.freecell-card{box-sizing:border-box;width:var(--card-w);height:var(--card-h);border-radius:6px;flex:none}.freecell-slot{display:grid;place-content:center;align-content:center;text-align:center;padding:10px;color:#c3d9d8;background:#0c2c4026;border:1px dashed #aacbc76b;font:13px/1.6 Georgia,serif;cursor:pointer}.freecell-slot.freecell-foundation{font-size:21px;border-style:solid;color:#c3d8b8}.freecell-card{position:relative;display:block;padding:0;border:1px solid #c5d0ca;color:#142d3f;background:#fffcf3;box-shadow:0 2px 4px #0004;font-family:Georgia,'Times New Roman',serif;cursor:pointer;user-select:none;touch-action:none}.freecell-card[draggable=true]{cursor:grab}.freecell-card.is-red{color:#b32946}.freecell-card.is-selected{outline:3px solid #ffe48e;outline-offset:1px}.freecell-card.is-available,.freecell-slot.is-available{box-shadow:0 0 0 3px #94d8be;outline:none}.freecell-card.is-hint,.freecell-slot.is-hint{outline:3px dashed #ffe48e;outline-offset:4px}.freecell-corner{position:absolute;top:6px;left:8px;font-size:20px;line-height:1;letter-spacing:-.5px;pointer-events:none}.freecell-corner.is-lower{top:auto;left:auto;bottom:6px;right:8px;transform:rotate(180deg)}.freecell-suit{position:absolute;inset:0;display:grid;place-items:center;font-size:49px;pointer-events:none}.freecell-columns{align-items:start}.freecell-column{position:relative;min-width:0}.freecell-column>.freecell-card{position:absolute;left:0}.freecell-column-base{position:absolute;inset:0 auto auto 0}.freecell-column-number{position:absolute;left:0;top:-23px;width:var(--card-w);text-align:center;font:11px Georgia,serif;color:#bad1d0}.freecell-table-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 27px;border-top:1px solid #d0e6e326;color:#ccded9;font-size:11px}.freecell-table-foot label{display:flex;gap:7px;align-items:center;cursor:pointer}.freecell-table-foot input{accent-color:#bad7b4;width:15px;height:15px;margin:0}.freecell-storage{font-size:12px;color:var(--muted);margin:13px 0 25px}.freecell-win{display:flex;align-items:center;gap:20px;margin:0 28px 22px;padding:18px 22px;border:1px solid #c5d8ad;background:#123c4f;border-radius:6px}.freecell-win[hidden]{display:none}.freecell-win>div{flex:1;display:flex;flex-direction:column;gap:6px}.freecell-win strong{font:26px Georgia,serif;color:#efe6bf}.freecell-win span{font-size:13px}.freecell-new-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}#freecell-number{display:block;width:100%;margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;font-variant-numeric:tabular-nums}#freecell-number-help{font-size:13px;line-height:1.65}#freecell-new-error{color:var(--danger,#b32946)}#freecell-help li{margin:12px 0;line-height:1.6}[data-theme=light] .freecell-table{--table:#245169;--table-top:#316a7d}
@media(max-width:1200px){.freecell-table{--card-w:94px;--card-h:128px}.freecell-board{max-width:950px;padding-left:24px;padding-right:24px}.freecell-top,.freecell-columns{column-gap:16px}.freecell-controls{padding-left:24px;padding-right:24px}}
@media(max-height:800px){.freecell-table{--card-w:88px;--card-h:112px;--card-step:27px}.freecell-controls{padding-top:10px;padding-bottom:10px}.freecell-wordmark strong{font-size:27px}.freecell-wordmark>span{font-size:8px}.freecell-counters b{font-size:23px}.freecell-notice{min-height:46px;padding-top:10px;padding-bottom:10px}.freecell-board{max-width:940px;padding-bottom:18px}.freecell-top{margin-bottom:31px}.freecell-board-headings{padding-bottom:8px}.freecell-suit{font-size:40px}.freecell-corner{font-size:18px;top:5px}.freecell-table-foot{padding-top:10px;padding-bottom:10px}.freecell-storage{margin-top:10px}}
@media(prefers-reduced-motion:no-preference){.freecell-controls button{transition:background .15s}.freecell-win{animation:freecell-arrive .3s ease-out}@keyframes freecell-arrive{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}}

/* Shared artwork fills the module-owned hit target; its geometry and input stay unchanged. */
.freecell-card,.freecell-slot.has-stock{padding:0;border:0;background:transparent;box-shadow:none}
.freecell-card>.playing-card,.freecell-slot.has-stock>.playing-card{--card-width:var(--card-w);width:100%;height:100%;aspect-ratio:auto;pointer-events:none;display:block;box-sizing:border-box}
.freecell-controls{flex-wrap:wrap}

/* Covered faces must expose rank AND suit within the existing 27–30px fan step. */
.freecell-card .playing-card .card-index{flex-direction:row;align-items:center;font-size:calc(var(--card-width)*.21);gap:.08em}
.freecell-card .playing-card .card-index .card-suit{width:.85em;height:.952em}

/* Seven starting cards plus room for three more overlapping cards. */
.freecell-columns{min-height:calc(var(--card-h) + 9 * var(--card-step))}
