@font-face{font-family:Rubik;src:url(Fonts/Rubik-SemiBold.woff2) format("woff2");font-weight:600;font-display:swap}:root{--spring: cubic-bezier(.34, 1.56, .64, 1);--bg: #387145;--panel: #0f5132;--ui: #fbbf24;--ui-border: #d6a20b;--ui-shadow: #c99500;--ui-icon: #ffffff;--ui-label: #2c3e50;--title-text: #ffffff;--body-text: #ffffff;--hud-text: #ffffff;--card-black: #000000;--card-black-shade: #333333;--card-red: #dc2626;--card-red-shade: #b60000;--figure-accent: #e6a756;--toggle-inactive: #ffffff;--font: "Rubik", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;--ease-card: cubic-bezier(.25, .46, .45, .94)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--body-text);font-family:var(--font);font-weight:600;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}button{touch-action:manipulation;font:inherit;color:inherit;border:none;background:none;cursor:pointer}button:focus{outline:none}button:focus-visible{outline:3px solid #ffffff;outline-offset:3px}button:disabled{cursor:default}.sprite{display:none}.icon{width:1em;height:1em;fill:currentColor;flex:none}.app{position:fixed;inset:0;--btn: 56px;--m: 14px}.app:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 90% 70% at 50% 30%,rgba(255,255,255,.1),transparent 70%),radial-gradient(ellipse 120% 100% at 50% 45%,transparent 55%,rgba(0,0,0,.3))}.fx-layer{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:6000}.board{position:absolute;inset:0;touch-action:none;--cw: 100px;--ch: 140px;--radius: 6px}.slot,.card{position:absolute;left:0;top:0;width:var(--cw);height:var(--ch);border-radius:var(--radius)}.slot{background:#ffffff1f;box-shadow:inset 0 2px 6px #0000001f;z-index:0}.slot.glow{animation:slot-glow .5s ease-out}@keyframes slot-glow{0%{box-shadow:0 0 0 3px var(--ui),0 0 24px 6px var(--ui)}}.slot:before{content:"";position:absolute;inset:20%;background:var(--bg);mask:var(--icon) center / contain no-repeat;-webkit-mask:var(--icon) center / contain no-repeat}.slot-foundation:before{inset:26%}.slot-foundation.suit-hearts{--icon: url(Sprites/suit_hearts.svg)}.slot-foundation.suit-diamonds{--icon: url(Sprites/suit_diamonds.svg)}.slot-foundation.suit-clubs{--icon: url(Sprites/suit_clubs.svg)}.slot-foundation.suit-spades{--icon: url(Sprites/suit_spades.svg)}.slot-waste{--icon: url(Sprites/waste_icon.svg)}.slot-tableau:before,.slot-stock:before{display:none}.slot-stock{cursor:pointer}.slot-stock.recyclable:before{display:block;inset:25%;--icon: url(Sprites/new_game_icon.svg);background:#ffffff8c}.slot.hint-target,.card.hint-target .card-face{box-shadow:0 0 0 3px var(--ui),0 0 16px 2px var(--ui)}.card{z-index:10;cursor:pointer;transition-property:transform;transition-timing-function:var(--ease-card)}.card.face-down{cursor:default}.card-inner{position:relative;width:100%;height:100%}.card-face,.card-back{position:absolute;inset:0;border-radius:inherit;border:1px solid rgba(0,0,0,.14);box-shadow:0 1px 2px #0000001f;overflow:hidden;background:#fff;transition:visibility 0s linear calc(var(--delay, 0ms) + var(--flip, .24s) / 2)}.card.face-down .card-face,.card:not(.face-down) .card-back{visibility:hidden}.card-inner,.card-face{border-radius:var(--radius)}.card-back{background:#fff url(Sprites/color/back.png) center / 100% 100% no-repeat;border:max(2px,calc(var(--cw) * .035)) solid #ffffff;box-shadow:0 0 0 1px #00000024,0 1px 2px #0000001f}.card-fx{position:relative;width:100%;height:100%;border-radius:var(--radius);transition:transform .22s var(--spring),translate .15s ease-out}.card.dragging{cursor:grabbing}.card.dragging,.card.flying{will-change:transform}.card.dragging .card-face,.card.dragging .card-back,.card.flying .card-face,.card.flying .card-back{box-shadow:0 16px 30px -8px #0006,0 8px 14px -6px #00000040}@media(hover:hover){.card:not(.face-down):not(.dragging):hover .card-fx{translate:0 -3px}.card:not(.face-down):not(.dragging):hover .card-face{box-shadow:0 6px 12px #0003}}.ghost{pointer-events:none}.ghost .card-face{box-shadow:0 0 0 2px var(--ui),0 0 18px 2px var(--ui)}.rank,.suit{display:block;background:var(--ink);mask:var(--glyph) center / contain no-repeat;-webkit-mask:var(--glyph) center / contain no-repeat}.card.red{--ink: var(--card-red);--ink-shade: var(--card-red-shade)}.card.black{--ink: var(--card-black);--ink-shade: var(--card-black-shade)}.suit-hearts .suit{--glyph: url(Sprites/suit_hearts.svg)}.suit-diamonds .suit{--glyph: url(Sprites/suit_diamonds.svg)}.suit-clubs .suit{--glyph: url(Sprites/suit_clubs.svg)}.suit-spades .suit{--glyph: url(Sprites/suit_spades.svg)}.rank-A .rank{--glyph: url(Sprites/Rank_A.svg)}.rank-2 .rank{--glyph: url(Sprites/Rank_2.svg)}.rank-3 .rank{--glyph: url(Sprites/Rank_3.svg)}.rank-4 .rank{--glyph: url(Sprites/Rank_4.svg)}.rank-5 .rank{--glyph: url(Sprites/Rank_5.svg)}.rank-6 .rank{--glyph: url(Sprites/Rank_6.svg)}.rank-7 .rank{--glyph: url(Sprites/Rank_7.svg)}.rank-8 .rank{--glyph: url(Sprites/Rank_8.svg)}.rank-9 .rank{--glyph: url(Sprites/Rank_9.svg)}.rank-10 .rank{--glyph: url(Sprites/Rank_10.svg)}.rank-J .rank{--glyph: url(Sprites/Rank_J.svg)}.rank-Q .rank{--glyph: url(Sprites/Rank_Q.svg)}.rank-K .rank{--glyph: url(Sprites/Rank_K.svg)}.corner{position:absolute;top:3%;left:3%;display:flex;align-items:center;z-index:2}.corner .rank{width:calc(var(--cw) * .26);height:calc(var(--cw) * .26);margin-right:calc(var(--cw) * -.05)}.corner .suit{width:calc(var(--cw) * .19);height:calc(var(--cw) * .19)}.board:not(.show-pips) .corner .rank{width:calc(var(--cw) * .34);height:calc(var(--cw) * .34);margin-right:calc(var(--cw) * -.07)}.board:not(.show-pips) .corner .suit{width:calc(var(--cw) * .25);height:calc(var(--cw) * .25)}.pips{display:none}.center-pip{position:absolute;left:50%;top:60%;width:calc(var(--cw) * .5);height:calc(var(--cw) * .5);transform:translate(-50%,-50%)}.board.show-pips .pips{display:block;position:absolute;inset:14% 10% 6%}.board.show-pips .center-pip{display:none}.pip{position:absolute;width:calc(var(--cw) * .2);height:calc(var(--cw) * .2);transform:translate(-50%,-50%)}.pip.flip{transform:translate(-50%,-50%) rotate(180deg)}.pips.ace .pip{width:calc(var(--cw) * .5);height:calc(var(--cw) * .5)}.figure{position:absolute;left:50%;bottom:calc(var(--ch) * -.06);width:calc(var(--cw) * 1.2);height:calc(var(--ch) * .85);transform:translate(-50%);pointer-events:none}.figure-layer,.figure-layer svg{position:absolute;inset:0;width:100%;height:100%}.figure-layer.layer-1{color:var(--ink);z-index:3}.figure-layer.layer-2{color:var(--ink-shade);z-index:2}.figure-layer.layer-3{color:var(--figure-accent);z-index:1}.card.hinted .card-inner{animation:hint-wiggle .4s ease-in-out 2}.card.hinted .card-face,.card.hinted .card-back{box-shadow:0 0 0 3px var(--ui),0 0 16px 2px var(--ui)}.slot.hinted{box-shadow:0 0 0 3px var(--ui)}.card.shake .card-inner{animation:shake .3s ease-in-out}.card.shake .card-face{box-shadow:0 0 0 2px #ef4444e6,0 0 14px #ef444499}@keyframes hint-wiggle{50%{translate:calc(var(--cw) * -.06) 0}}@keyframes shake{25%{rotate:-4deg}75%{rotate:4deg}}.hud{position:absolute;inset:0;pointer-events:none;z-index:3000}.hud>*{position:absolute;pointer-events:auto}.round-btn{position:relative;width:var(--btn);height:var(--btn);border-radius:50%;display:grid;place-items:center;background:var(--ui);border:2px solid var(--ui-border);color:var(--ui-icon);font-size:calc(var(--btn) * .46);box-shadow:0 3px 0 var(--ui-shadow),0 6px 8px #0003;transition:transform .3s var(--spring),filter .15s ease,box-shadow .15s ease,opacity .2s}@media(hover:hover){.round-btn:not(:disabled):hover{filter:brightness(1.08);transform:translateY(-2px) scale(1.08)}}.round-btn:not(:disabled):active{transform:translateY(2px) scale(.9);box-shadow:0 1px 0 var(--ui-shadow),0 2px 4px #0003;transition-duration:.08s}.round-btn:disabled{filter:grayscale(.7) brightness(.85);opacity:.6}.btn-menu{top:var(--m);left:var(--m)}.burger{display:flex;flex-direction:column;justify-content:space-between;width:38%;height:30%}.burger i{display:block;height:max(2px,calc(var(--btn) * .045));border-radius:2px;background:var(--ui-icon)}.stats{top:var(--m);left:50%;height:var(--btn);transform:translate(-50%);display:flex;align-items:center;gap:calc(var(--btn) * .5);color:var(--hud-text);text-shadow:0 2px 4px rgba(0,0,0,.6);font-size:calc(var(--btn) * .31);white-space:nowrap}.stat{display:flex;align-items:center;gap:.4em}.stat-value.bump{animation:bump .25s var(--spring)}@keyframes bump{40%{scale:1.35}}.stat-value{display:inline-block;color:var(--ui);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-weight:700;font-size:1.15em;min-width:2ch}.mini-btn{display:grid;place-items:center;width:1.6em;height:1.35em;border-radius:5px;background:var(--ui);border:1px solid var(--ui-border);color:var(--ui-icon);box-shadow:0 2px 0 var(--ui-shadow);font-size:1em;text-shadow:none}.mini-btn:active{transform:translateY(1px);box-shadow:none}.actions{top:var(--m);right:var(--m);display:flex;gap:calc(var(--m) * .9)}.app[data-hud=side] .stats{top:calc(var(--btn) + var(--m) * 2.5);left:0;width:calc(var(--btn) + var(--m) * 2);height:auto;transform:none;flex-direction:column;gap:.9em;font-size:calc(var(--btn) * .24)}.app[data-hud=side] .stat{flex-direction:column;gap:.15em}.app[data-hud=side] .actions{flex-direction:column}.app[data-hud=portrait] .actions{top:auto;bottom:var(--m);right:auto;left:50%;transform:translate(-50%);gap:calc(var(--btn) * .5)}.app[data-hud=portrait] .stats{left:calc(50% + var(--btn) * .5)}.toast{position:fixed;left:50%;bottom:calc(var(--m) * 2 + var(--btn));transform:translate(-50%,12px);padding:.7em 1.2em;border-radius:999px;background:#000000bf;color:#fff;font-size:15px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:4000}.toast.show{opacity:1;transform:translate(-50%)}.overlay{position:fixed;inset:0;z-index:5000;display:flex;align-items:center;justify-content:center;padding:12px;background:#00000040;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility 0s linear .25s}.overlay:not(.open){pointer-events:none}.overlay.open{opacity:1;visibility:visible;transition:opacity .25s ease}.panel{position:relative;width:min(360px,100%);max-height:100%;overflow:auto;padding:24px;border-radius:20px;background:var(--panel);border:4px solid var(--ui);box-shadow:0 25px 50px -12px #000c;color:var(--body-text);text-align:center;transform:scale(.85) translateY(12px);transition:transform .38s var(--spring)}.overlay.open .panel{transform:none}.overlay.open .panel h2,.overlay.open .menu-item,.overlay.open .setting,.overlay.open .panel-btn,.overlay.open .win-panel p,.overlay.open .win-stats{animation:rise .35s var(--spring) backwards}.overlay.open .menu-item:nth-child(1),.overlay.open .setting:nth-child(1){animation-delay:.06s}.overlay.open .menu-item:nth-child(2),.overlay.open .setting:nth-child(2){animation-delay:.11s}.overlay.open .menu-item:nth-child(3){animation-delay:.16s}.overlay.open .panel-btn,.overlay.open .win-stats{animation-delay:.18s}.overlay.open .win-panel h2{animation:title-pop .6s var(--spring) backwards .05s}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}@keyframes title-pop{0%{opacity:0;transform:scale(.4) rotate(-6deg)}}.panel h2{color:var(--title-text);font-size:2rem;font-weight:600;letter-spacing:1px;text-shadow:0 2px 4px rgba(0,0,0,.5);margin-bottom:18px}.panel h3{font-size:1.1rem;font-weight:600;text-align:left;margin-bottom:8px;text-shadow:0 1px 2px rgba(0,0,0,.5)}.close-btn{position:absolute;top:10px;right:10px;width:40px;height:40px;border-radius:50%;color:var(--ui);font-size:2rem;line-height:1;transition:transform .2s,background .2s}.close-btn:hover{background:#ffffff1f;transform:rotate(90deg)}.menu-item,.panel-btn.primary,.toggle[aria-pressed=true]{background:var(--ui);color:var(--ui-label);border:2px solid var(--ui-border);box-shadow:0 3px 0 var(--ui-border),0 6px 8px #0003}.menu-list{display:flex;flex-direction:column;gap:12px}.menu-item{display:flex;align-items:center;gap:14px;padding:14px 20px;border-radius:12px;font-size:1.1rem;text-align:left;transition:transform .15s,filter .15s}.menu-item .icon{font-size:1.6rem}.menu-item:hover,.panel-btn.primary:hover{filter:brightness(1.08);transform:translateY(-2px)}.menu-item:active,.panel-btn:active{transform:translateY(2px)}.settings{display:flex;flex-direction:column;gap:18px;margin-bottom:22px}.toggle-group{display:flex;gap:12px}.toggle{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border-radius:12px;background:#ffffff1a;border:2px solid var(--ui);color:var(--toggle-inactive);font-size:.95rem;white-space:nowrap;transition:transform .15s,background .2s,filter .15s}.toggle .icon{font-size:2.6rem}.toggle:hover{transform:translateY(-1px)}.toggle[aria-pressed=false]:hover{background:#fff3}.panel-btn{width:100%;padding:14px 20px;border-radius:12px;font-size:1.2rem;font-weight:700;letter-spacing:.5px;transition:transform .15s,filter .15s,background .2s}.panel-btn.secondary{border:2px solid var(--ui);color:var(--ui)}.panel-btn.secondary:hover{background:#ffffff1a}.panel-row{display:flex;gap:12px}.start-screen{flex-direction:column;gap:8vh;background:var(--bg);backdrop-filter:none;-webkit-backdrop-filter:none}.start-screen .logo{width:min(70vw,420px);filter:drop-shadow(0 4px 6px rgba(0,0,0,.35))}.play-btn{display:flex;align-items:center;gap:.4em;padding:.45em 1.4em .45em 1em;border-radius:999px;background:var(--ui);border:3px solid var(--ui-border);color:var(--ui-icon);font-size:clamp(1.6rem,6vmin,2.6rem);text-transform:uppercase;letter-spacing:2px;text-shadow:0 2px 2px rgba(0,0,0,.25);box-shadow:0 5px 0 var(--ui-shadow),0 10px 18px #00000040;transition:transform .3s var(--spring),filter .15s,opacity .3s}.play-btn:not(:disabled){animation:breathe 2.2s ease-in-out infinite}@keyframes breathe{50%{scale:1.05}}.start-screen.open .logo{animation:rise .7s var(--spring) backwards}.start-screen.open .play-btn{animation:rise .7s var(--spring) backwards .15s,breathe 2.2s ease-in-out infinite .9s}.play-btn .icon{font-size:1.3em}.play-btn:not(:disabled):hover{filter:brightness(1.08);transform:scale(1.05)}.play-btn:not(:disabled):active{transform:translateY(3px);box-shadow:0 2px 0 var(--ui-shadow),0 4px 8px #00000040}.play-btn:disabled{opacity:.5}.boot-error{max-width:min(90vw,420px);margin-top:-4vh;text-align:center;color:#fff;font-size:15px;text-shadow:0 1px 2px rgba(0,0,0,.5)}.win-panel{width:min(460px,100%)}.win-panel p{font-size:1.15rem;margin:-8px 0 20px}.win-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px 10px;margin-bottom:22px;border-radius:12px;background:#0000004d;border:2px solid var(--ui)}.win-stats div{display:flex;flex-direction:column;gap:4px;font-size:.85rem}.win-stats b{color:var(--ui);font-size:1.6rem;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.win-stats b.record:after{content:"NEW!";display:block;margin-top:2px;font-family:var(--font);font-size:.7rem;letter-spacing:1px;color:var(--panel);background:var(--ui);border-radius:999px;padding:1px 6px;animation:title-pop .5s var(--spring) backwards 1s}@media(max-height:480px),(max-width:400px){.panel{padding:16px}.panel h2{font-size:1.5rem;margin-bottom:12px}.menu-item{padding:10px 16px;font-size:1rem}.toggle{flex-direction:row;justify-content:center;padding:8px}.toggle .icon{font-size:1.8rem}.settings{gap:10px;margin-bottom:14px}.win-stats b{font-size:1.2rem}}@media(max-height:480px)and (orientation:landscape){.settings{flex-direction:row}.panel{width:min(560px,100%)}}@media(prefers-reduced-motion:reduce){.card,.card-inner,.overlay,.panel{transition-duration:0s!important}.card.hinted .card-inner,.card.shake .card-inner,.overlay.open .panel *,.play-btn,.stat-value.bump{animation:none!important}}
