:root{color-scheme:light;--cream:#f8f5ed;--ink:#263d34;--table:#285446;--cardw:clamp(64px,9.8vw,120px);--cardh:calc(var(--cardw)*1.4);--step:clamp(29px,3.4vw,43px);--gap:clamp(10px,1.8vw,24px)}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:ui-rounded,"Avenir Next",Avenir,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible,[tabindex]:focus-visible{outline:4px solid #d4a544;outline-offset:4px}header{max-width:1300px;padding:28px 42px 25px;display:flex;align-items:center;justify-content:space-between;margin:auto;gap:15px}.brand{display:flex;align-items:center;gap:15px}.brand svg{width:44px;fill:none;stroke:#48624c;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}h1{font-family:Georgia,serif;font-weight:normal;font-size:29px;margin:0 0 6px;letter-spacing:-.7px}.brand p{margin:0;font-size:14px;color:#647369}nav{display:flex;gap:12px}.quiet{min-height:50px;border:1px solid #c7cec2;background:transparent;color:#304d3f;border-radius:10px;padding:8px 18px;font-size:17px;font-weight:550}.quiet span{font-size:25px;vertical-align:-1px;margin-right:6px}.quiet:disabled{opacity:.42;cursor:default}main{background:radial-gradient(ellipse at 50% 20%,#315e50 0%,#234c40 95%);border-block:1px solid #1a4034;min-height:calc(100svh - 190px);padding:30px 30px 40px;overflow-x:auto}.table{width:calc(var(--cardw)*7 + var(--gap)*6);margin:auto}.topline{display:flex;justify-content:space-between}.drawarea,.foundationarea{display:flex;gap:var(--gap)}.stackwrap{width:var(--cardw);text-align:center}.slot{position:relative;width:var(--cardw);height:var(--cardh);border:1.5px solid #79978680;border-radius:10px;background:#153f352c;padding:0}.pilelabel{margin-top:12px;font-size:14px;color:#e0e7dc;letter-spacing:.2px}.slot.back{background:#eae5d3;box-shadow:0 3px 6px #12352a33;border:5px solid #f8f3e3}.slot.back:before,.card.back:before{content:"";position:absolute;inset:4px;border:1px solid #c8d0bd;border-radius:4px;background:repeating-linear-gradient(45deg,#5f7864 0px,#5f7864 1px,#d4dcc9 1px,#d4dcc9 5px);opacity:.75}.backmark{position:relative;display:grid;place-items:center;margin:auto;width:55%;aspect-ratio:1;background:#dfe4d2;color:#3c5d48;border-radius:50%;font-size:40px;border:1px solid #a3b49d}.slot.recycle{background:transparent;color:#e4eadf;border:1.5px solid #79978680;font-size:40px}.recycle small{display:block;font-size:15px;margin-top:8px}.foundation:before{content:attr(data-symbol);display:grid;place-items:center;height:100%;font-size:47px;color:#c0d2bf59}.divider{height:1px;background:#b7cbb12b;margin:28px 0}.columns{display:grid;grid-template-columns:repeat(7,var(--cardw));gap:var(--gap);align-items:start}.column{position:relative;min-height:var(--cardh);border-radius:10px}.empty-column{border:1.5px dashed #79978665;height:var(--cardh);display:grid;place-items:center;color:#adc3ad66;font-family:Georgia,serif;font-size:32px}.card{position:absolute;top:0;left:0;width:var(--cardw);height:var(--cardh);border:1px solid #e4e1d5;border-radius:9px;background:#fffdf7;color:#222c2a;box-shadow:0 3px 6px #0a2a2536;padding:0;user-select:none;touch-action:pan-y;overflow:hidden}.card.red{color:#ad302e}.card.back{background:#dce2d1;border:4px solid #f7f2e2}.corner{position:absolute;left:8px;top:6px;line-height:.9;font-family:Georgia,"Times New Roman",serif;font-size:clamp(21px,2.7vw,32px);font-weight:bold;display:flex;flex-direction:column;align-items:center;gap:2px}.corner .suit{font-size:.88em}.corner.bottom{left:auto;top:auto;right:8px;bottom:6px;transform:rotate(180deg)}.pips{position:absolute;inset:28% 23%;display:grid;grid-template-columns:repeat(2,1fr);justify-items:center;align-content:space-around;font-family:Georgia,serif;font-size:clamp(21px,3.1vw,38px);line-height:.85}.pips.single{display:grid;place-items:center;font-size:clamp(42px,5.8vw,72px);inset:25% 18%}.pips.odd span:last-child{grid-column:1 / 3}.pips.face{font-size:clamp(30px,4.3vw,53px);border:1px solid currentColor;inset:25% 23%;border-radius:45%}.hint-frame{animation:breathe 2.8s ease-in-out infinite}@keyframes breathe{0%,100%{box-shadow:0 0 0 3px #f8db9544,0 3px 6px #0a2a2536}50%{box-shadow:0 0 0 6px #f8db95,0 0 25px #f8db9544}}footer{max-width:1300px;margin:auto;min-height:76px;padding:16px 42px;display:flex;align-items:center;gap:13px;color:#50654f;font-size:17px}footer p{margin:0}.helpicon{font-size:29px;color:#7d8e65}.footer-note{margin-left:auto;font-family:Georgia,serif;font-style:italic;font-size:16px;color:#7d8777}dialog{border:0;border-radius:20px;padding:35px 36px;text-align:center;background:var(--cream);color:var(--ink);max-width:min(92vw,490px);box-shadow:0 20px 80px #132e3d44}dialog::backdrop{background:#142f26a8}dialog h2{font-family:Georgia,serif;font-weight:normal;font-size:32px;margin:12px 0}dialog p{font-size:19px;line-height:1.6}.dialog-leaf{font-size:45px;color:#6e805f}.dialogactions{display:flex;justify-content:center;gap:12px;margin-top:25px}dialog button{min-height:54px;padding:12px 22px;border-radius:9px;border:1px solid #bdc5b5;background:transparent;color:var(--ink);font-size:18px}.primary{background:#2c5947;color:#fffdf3;border:1px solid #2c5947}@media(min-width:1350px){main{padding-top:38px}}@media(max-width:900px){header{padding:22px 24px}.brand p{font-size:13px}h1{font-size:26px}main{padding:24px 18px 35px}footer{padding:16px 24px}.quiet{padding:8px 13px}.corner{left:6px;top:5px}.corner.bottom{right:6px;bottom:5px}.divider{margin:25px 0}}@media(max-width:600px){header{padding:16px;flex-wrap:wrap}.brand svg{width:32px}.brand{gap:8px}h1{font-size:25px}.brand p{font-size:12px}nav{gap:8px}.quiet{min-height:46px;font-size:15px;padding:5px 11px}.quiet span{font-size:21px}.table{margin:0 auto}.footer-note{display:none}footer{font-size:16px;padding:14px 18px}main{min-height:calc(100svh - 203px)}.pilelabel{font-size:12px}.backmark{font-size:27px}}@media(prefers-reduced-motion:reduce){.hint-frame{animation:none;box-shadow:0 0 0 4px #f8db95}}

#battery-warning{background:#f1dfaf;color:#4b3b18;text-align:center;padding:17px 24px;font-size:22px;font-weight:600;border-top:1px solid #cbb87e}#battery-warning[hidden]{display:none}

/* Hint decoration never changes a playing card's stacking order. */
.hint-frame{position:fixed;z-index:40;border:2px solid #ffe4a4;border-radius:12px;pointer-events:none;background:transparent}.hint-frame[hidden]{display:none}
.hint-arrows{position:fixed;inset:0;z-index:100;pointer-events:none;filter:drop-shadow(0 2px 2px #163a2d99)}.hint-arrows[hidden]{display:none}.hint-arrows span{display:block;position:absolute}.hint-arrows svg{display:block;width:100%;height:100%;fill:currentColor}

.card[data-face="true"]{touch-action:none;-webkit-touch-callout:none;cursor:grab}.card.being-dragged{opacity:.2}.drag-ghost{position:fixed;z-index:1000;pointer-events:none;cursor:grabbing;user-select:none}.drag-ghost .card{pointer-events:none;box-shadow:0 8px 20px #0a2a2544}



.pile-count{margin-top:5px;color:#e0e7dc;font-size:13px;line-height:1.3;white-space:nowrap}.foundation .card,.pile-layer{pointer-events:none}.card.pile-layer{box-shadow:0 0 0 1px #aab2a1}.foundation .card{box-shadow:0 1px 1px #15392b22}.foundation .card.pile-layer{box-shadow:0 0 0 1px #aab2a1}.slot.back{isolation:isolate}@media(max-width:600px){.pile-count{font-size:11px}}

:root{--fan-step:clamp(28px,3.2vw,40px)}header{flex-wrap:wrap}nav{margin-left:auto}.settings-panel{width:min(94vw,620px);max-width:620px;text-align:left;padding:32px}.settings-heading{display:flex;gap:15px;align-items:center}.settings-heading>span{font-size:33px;color:#6e805f}.settings-heading h2{margin:0 0 5px;font-size:31px}.settings-heading p{margin:0;color:#647369;font-size:16px}.settings-field{border:0;padding:0;margin:28px 0 0;min-width:0}.settings-field legend,.settings-field>label{display:block;font-size:19px;font-weight:600;margin-bottom:13px}.draw-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.setting-option{position:relative;cursor:pointer}.setting-option input{position:absolute;left:14px;top:23px;width:19px;height:19px;margin:0;accent-color:#315e49}.setting-option span{display:block;padding:19px 12px 19px 43px;border:1px solid #bdc8b6;border-radius:10px;font-size:21px;line-height:1.3;white-space:nowrap}.setting-option input:checked+span{background:#e7eddf;border:2px solid #315e49;padding:18px 11px 18px 42px}.setting-option input:focus-visible+span{outline:4px solid #d4a544;outline-offset:3px}.settings-note{font-size:14px!important;line-height:1.5!important;color:#647369;margin:11px 0 0}.settings-field select{width:100%;min-height:58px;padding:12px 16px;border:1px solid #bdc8b6;border-radius:10px;background:#fffdf7;color:var(--ink);font:inherit;font-size:19px}.settings-field select:focus-visible{outline:4px solid #d4a544;outline-offset:3px}.settings-remember{font-size:14px!important;line-height:1.5!important;color:#647369;margin:24px 0 0}.settings-panel .dialogactions{justify-content:flex-end}.settings-panel .dialogactions button{font-size:17px;padding:12px 18px}@media(max-width:600px){nav{width:100%;justify-content:space-between}.quiet{padding:7px 10px;font-size:14px}.quiet span{margin-right:3px}.settings-panel{padding:24px 20px}.draw-options{gap:8px}.setting-option input{left:10px;top:21px;width:17px;height:17px}.setting-option span{padding:18px 7px 18px 33px;font-size:18px}.setting-option input:checked+span{padding:17px 6px 17px 32px}.settings-panel .dialogactions{flex-wrap:wrap}.settings-panel .dialogactions button{flex:1}}

.settings-panel{padding:28px;max-height:calc(100svh - 32px);overflow:hidden}.settings-panel form{display:flex;flex-direction:column;max-height:calc(100svh - 88px);margin:0}.settings-heading{flex-shrink:0}.settings-content{overflow-y:auto;min-height:0;padding:0 7px 3px 2px}.settings-field{margin-top:20px}.settings-panel .dialogactions{flex-shrink:0;margin-top:18px;padding-top:12px;border-top:1px solid #d8dece}.compact-options .setting-option span{font-size:17px;white-space:normal;padding-top:20px;padding-bottom:20px}.compact-options .setting-option input:checked+span{padding-top:19px;padding-bottom:19px}.hint-setting>label{margin-bottom:8px}.hint-setting output{display:block;font-size:20px;color:#315e49;font-weight:600;margin-bottom:8px}.hint-setting input[type=range]{display:block;width:100%;height:36px;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer;margin:0;accent-color:#315e49}.hint-setting input[type=range]::-webkit-slider-runnable-track{height:7px;background:#c9d2be;border-radius:5px}.hint-setting input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:30px;height:30px;border-radius:50%;background:#315e49;border:4px solid #f8f5ed;box-shadow:0 0 0 1px #72856b;margin-top:-12px}.hint-setting input[type=range]::-moz-range-track{height:7px;background:#c9d2be;border-radius:5px}.hint-setting input[type=range]::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#315e49;border:4px solid #f8f5ed;box-shadow:0 0 0 1px #72856b}.hint-setting input[type=range]:focus-visible{outline:3px solid #d4a544;outline-offset:4px;border-radius:8px}.slider-labels{display:flex;justify-content:space-between;font-size:12px;color:#647369;padding:0 1px;margin-top:4px}.rescue-option{display:flex!important;align-items:flex-start;gap:13px;font-weight:normal!important;margin-bottom:0!important;cursor:pointer}.rescue-option input{width:22px;height:22px;flex-shrink:0;accent-color:#315e49;margin:2px 0 0}.rescue-option strong{font-size:18px;display:block;margin-bottom:5px}.rescue-option small{display:block;font-size:14px;line-height:1.5;color:#647369}.settings-remember{margin-top:20px}@media(max-width:600px){.settings-panel{padding:22px 18px}.settings-panel form{max-height:calc(100svh - 76px)}.compact-options .setting-option span{font-size:15px}.slider-labels{font-size:11px}}body[data-move-mode="click"] .card[data-face="true"]{cursor:pointer;touch-action:pan-y}

#settings{position:relative}.settings-protected{touch-action:none;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}.settings-hold-progress{position:absolute;left:0;right:0;top:-10px;height:6px;border-radius:4px;background:#d3dccc;overflow:hidden;pointer-events:none}.settings-hold-progress[hidden]{display:none}.settings-hold-progress i{display:block;height:100%;width:0;background:#315e49;border-radius:4px}.unlock-panel{width:min(90vw,450px);padding:30px}.unlock-panel h2{margin-top:12px}.unlock-panel>p{font-size:17px;line-height:1.5}.unlock-slider{--unlock-progress:0;position:relative;height:64px;border:1px solid #b6c3ae;border-radius:36px;background:#e6eddf;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;margin:25px 0 15px;box-sizing:border-box}.unlock-slider:focus-visible{outline:3px solid #d4a544;outline-offset:5px}.unlock-slider-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding-left:38px;font-size:18px;font-weight:500;color:#42614b;pointer-events:none}.unlock-thumb{position:absolute;top:3px;left:calc(3px + (100% - 62px) * var(--unlock-progress));width:56px;height:56px;border-radius:50%;background:#315e49;color:#fffdf7;display:flex;align-items:center;justify-content:center;font-size:32px;box-shadow:0 2px 4px #244e4322;pointer-events:none}.unlock-panel #settings-unlock-cancel{margin-top:20px}.unlock-panel .settings-note{min-height:21px}

.language-options{grid-template-columns:repeat(2,1fr)}

.game-metrics{flex-basis:100%;display:flex;gap:12px 28px;flex-wrap:wrap;color:#50654f;font-size:16px;font-variant-numeric:tabular-nums}.game-metrics p{margin:0}.game-metrics[hidden],.game-metrics [hidden]{display:none}

.name-setting input{width:100%;min-height:54px;border:1px solid #bdc8b6;border-radius:10px;background:#fffdf7;color:var(--ink);font:inherit;font-size:20px;padding:12px 16px}.name-setting input:focus-visible{outline:3px solid #d4a544;outline-offset:3px}#win-title{overflow-wrap:anywhere}

header[hidden],.menu-toggle[hidden],.menu-dock[hidden]{display:none}.menu-dock{height:64px;background:var(--cream)}.menu-toggle{position:fixed;top:max(10px,env(safe-area-inset-top));right:max(18px,env(safe-area-inset-right));z-index:350;display:grid;place-items:center;min-width:44px;height:44px;padding:4px;border:1px solid #c7cec2;border-radius:10px;background:var(--cream);color:#304d3f;font-size:28px;line-height:1}.menu-toggle span{pointer-events:none}.game-in-progress #topbar{position:fixed;inset:64px 0 auto;z-index:300;width:100%;max-width:none;padding:22px 86px 22px 30px;background:var(--cream);box-shadow:0 8px 24px #12352a22;max-height:calc(100svh - 88px);overflow-y:auto}.game-in-progress main{min-height:calc(100svh - 140px)}@media(max-width:600px){.game-in-progress #topbar{padding:20px 74px 20px 18px}.game-in-progress #topbar nav{flex-wrap:wrap;justify-content:flex-start}.menu-toggle{right:14px}.game-in-progress #topbar .quiet{font-size:14px}}

.brand-logo{display:block;width:64px;height:48px;object-fit:contain;mix-blend-mode:multiply;flex-shrink:0}.card-back-emblem{position:absolute;left:10%;top:50%;transform:translateY(-50%);width:80%;aspect-ratio:4/3;background:#f8f5ed;border-radius:9px;padding:3px;pointer-events:none;display:grid;place-items:center;border:1px solid #a3b49d}.card-back-emblem img{display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;pointer-events:none}@media(max-width:600px){.brand-logo{width:48px;height:36px}}

.game-metrics{max-width:1300px;margin:0 auto;padding:0 42px 18px}.game-in-progress .game-metrics{position:fixed;top:0;left:0;right:76px;height:64px;z-index:340;max-width:none;margin:0;padding:8px 24px;background:var(--cream);align-items:center;align-content:center;gap:2px 24px}.game-metrics p{white-space:nowrap}#undo{position:fixed;left:max(18px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));z-index:200;background:var(--cream);box-shadow:0 2px 8px #12352a22}#undo:disabled{opacity:.65}footer{padding-left:182px}main{padding-bottom:100px}@media(max-width:600px){.game-metrics{padding:0 16px 14px;font-size:14px}.game-in-progress .game-metrics{padding:7px 16px;gap:2px 18px}.game-in-progress #topbar{max-height:calc(100svh - 88px)}#undo{left:12px;bottom:12px}footer{padding-left:138px}}

.hint-mode-options{grid-template-columns:repeat(2,1fr)}.hint-frames{position:fixed;inset:0;z-index:40;pointer-events:none}.hint-frames[hidden]{display:none}.hint-frames .hint-frame{position:fixed}

nav{align-items:flex-start}.settings-entry{display:flex;flex-direction:column;align-items:stretch;min-width:0}.settings-hold-help{width:0;min-width:100%;margin:9px 0 0;font-size:14px;line-height:1.45;color:#50654f;overflow-wrap:break-word}.settings-hold-help[hidden]{display:none}

.rotate-panel{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border-radius:0;padding:max(28px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));box-shadow:none;background:var(--cream);text-align:center;align-content:center}.rotate-panel::backdrop{background:var(--cream)}.rotate-panel h2{font-size:32px}.rotate-panel p{max-width:360px;margin:16px auto 0;font-size:21px;line-height:1.55}.rotate-phone{display:block;width:170px;height:140px;color:#315e49;margin:0 auto 20px}.rotate-panel:not([open]){display:none}body:has(#rotate-dialog[open]){overflow:hidden}
@media(orientation:landscape) and (max-height:600px){
:root{--gap:clamp(6px,1.4vw,12px);--cardw:min(90px,max(64px,calc((100dvh - 170px)/2.8)),calc((100vw - 32px - var(--gap)*6)/7));--step:22px;--hidden-step:10px;--fan-step:clamp(20px,3.2vw,28px)}
main{padding:10px 16px 90px;overflow-x:visible}.table{width:calc(var(--cardw)*7 + var(--gap)*6)}
header{padding:12px 18px;gap:10px}.brand-logo{width:48px;height:36px}h1{font-size:25px}.brand p{font-size:12px}.quiet{min-height:44px;padding:6px 12px;font-size:15px}.quiet span{font-size:21px}
.menu-dock{height:50px}.menu-toggle{top:3px;height:44px;min-width:44px}.game-in-progress .game-metrics{height:50px;font-size:14px}.game-in-progress #topbar{top:50px;max-height:calc(100dvh - 64px);padding:14px 78px 14px 18px}.game-in-progress main{min-height:calc(100svh - 126px)}
.pilelabel{margin-top:7px;font-size:12px}.pile-count{font-size:10px}.divider{margin:8px 0}.corner{left:5px;top:3px;font-size:clamp(18px,3vw,26px)}.corner.bottom{right:5px;bottom:5px}.pips{font-size:clamp(15px,3vw,27px)}.pips.single{font-size:clamp(32px,5vw,54px)}.pips.face{font-size:clamp(28px,4.3vw,43px)}footer{font-size:14px;min-height:64px;padding-top:12px;padding-bottom:12px}#undo{min-height:44px}
}
.rotate-panel:focus-visible{outline:none}
@media(orientation:landscape) and (max-height:600px){#undo{padding:6px 7px;font-size:14px}#undo span{font-size:14px;margin-right:3px;vertical-align:0}.game-in-progress .game-metrics{padding-left:max(24px,env(safe-area-inset-left))}}
