:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--felt: #176b52;--felt-dark: #0b4b3c;--felt-line: rgba(255, 255, 255, .2);--card-w: clamp(54px, 11vw, 96px);--card-h: calc(var(--card-w) * 1.42);--gap: clamp(7px, 1.4vw, 16px)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow:hidden;background:radial-gradient(circle at 20% 10%,rgba(249,246,222,.16),transparent 28rem),linear-gradient(135deg,var(--felt),var(--felt-dark))}button{font:inherit;-webkit-tap-highlight-color:transparent}.game{position:relative;display:grid;grid-template-rows:auto 1fr;gap:clamp(18px,3vh,34px);width:100vw;min-height:100vh;padding:max(12px,env(safe-area-inset-top)) clamp(10px,2.4vw,28px) max(18px,env(safe-area-inset-bottom));color:#fff8df;-webkit-user-select:none;user-select:none;touch-action:none}.game.redealing .top-row,.game.redealing .tableau{opacity:0;filter:blur(2px);transform:translateY(10px) scale(.985)}.top-row,.tableau{transition:opacity .26s ease,filter .26s ease,transform .26s ease}.top-row{display:flex;align-items:start;justify-content:space-between;gap:var(--gap)}.foundation-row,.draw-row{display:flex;align-items:start;gap:var(--gap)}.draw-row{margin-left:auto}.slot,.card{width:var(--card-w);height:var(--card-h);border-radius:8px}.slot{position:relative;display:grid;place-items:center;flex:0 0 auto;border:2px dashed rgba(255,255,255,.28);background:#052a2233;box-shadow:inset 0 0 0 1px #0000001a;transition:border-color .16s ease,background .16s ease,transform .16s ease}.slot.highlight,.tableau-pile.highlight{border-color:#ffe08a;background:#ffe08a24;transform:translateY(-2px)}.slot-mark{font-size:clamp(1.7rem,5vw,3rem);opacity:.48}.stock-slot{cursor:pointer;color:#fff7dc}.stock-slot.stock-hidden .card-back,.stock-slot.stock-hidden strong{visibility:hidden}.stock-slot strong{position:absolute;right:7px;bottom:5px;font-size:.74rem;line-height:1;text-shadow:0 1px 2px #063d31}.recycle{font-size:clamp(1.8rem,5vw,3.1rem)}.tableau{display:grid;grid-template-columns:repeat(7,minmax(0,var(--card-w)));justify-content:space-between;gap:var(--gap);min-height:calc(var(--card-h) + 48vh)}.tableau-pile{position:relative;min-height:calc(var(--card-h) + 46vh);border:2px solid transparent;border-radius:10px;transition:border-color .16s ease,background .16s ease,transform .16s ease}.pile-stack{position:relative;height:100%}.card{position:absolute;inset:0 auto auto 0;display:block;border:0;padding:0;overflow:hidden;cursor:pointer;background:#fffaf0;color:#111827;box-shadow:0 8px 18px #0000003d,inset 0 0 0 1px #1118271f;transition:transform .42s cubic-bezier(.18,.89,.32,1.12),box-shadow .22s ease,filter .22s ease}.card.faceup{background:linear-gradient(180deg,#fffdf8,#fff3df)}.card-face{position:absolute;top:0;right:0;bottom:0;left:0;display:block;border-radius:8px;box-shadow:inset 0 0 0 3px #ffffffb3}.card:hover{box-shadow:0 11px 24px #00000047,inset 0 0 0 1px #11182729}.card.dragging{opacity:.18;filter:saturate(.6)}.card.animating-hidden{visibility:hidden;transition:none}.corner{position:absolute;display:grid;justify-items:center;min-width:1.1rem;font-weight:800;font-size:clamp(1.3rem,4vw,1.8rem);line-height:.95}.corner small{font-size:.9em}.corner.top{top:7px;left:7px}.corner.bottom{right:7px;bottom:7px}.center-suit{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:clamp(2.3rem,7vw,4rem);font-weight:900}.red{color:#c52233}.black{color:#111827}.facedown{background:linear-gradient(135deg,#2858a8,#1d7a8f)}.card-back,.small-back{position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:6px;background:linear-gradient(45deg,rgba(255,255,255,.2) 25%,transparent 25% 50%,rgba(255,255,255,.2) 50% 75%,transparent 75%),#214c93;background-size:14px 14px;box-shadow:inset 0 0 0 2px #ffffff94}.drag-ghost{position:fixed;top:0;left:0;width:var(--card-w);height:var(--card-h);pointer-events:none;z-index:100;filter:drop-shadow(0 18px 22px rgba(0,0,0,.34));transition:none}.drag-ghost .card{box-shadow:0 14px 28px #00000052,inset 0 0 0 1px #11182724}.flying-card{position:fixed;top:0;left:0;width:var(--card-w);height:var(--card-h);pointer-events:none;transition:transform .32s cubic-bezier(.18,.88,.22,1);will-change:transform}.flying-card.dealing{transition-timing-function:cubic-bezier(.12,.88,.22,1)}.flying-card.clearing{transition-timing-function:cubic-bezier(.56,-.1,.72,.42)}.flying-card .card{box-shadow:0 18px 34px #0000005c,inset 0 0 0 1px #11182724}.ghost-hidden{display:none}.undo-button,.new-game,.auto-complete,.test-button,.wake-button{position:fixed;border:0;color:#11241f;background:#ffe08a;box-shadow:0 10px 26px #00000047;cursor:pointer;transition:transform .22s cubic-bezier(.18,.89,.32,1.25),opacity .22s ease,background .22s ease;z-index:80}.test-controls{position:fixed;left:max(94px,calc(env(safe-area-inset-left) + 94px));bottom:max(18px,env(safe-area-inset-bottom));display:flex;gap:8px;z-index:80}.test-controls .test-button{position:static;min-width:64px;min-height:42px;border-radius:8px;padding:0 14px;font-weight:800}.undo-button{right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));display:grid;place-items:center;width:58px;height:58px;border-radius:50%;padding:0;font-size:2rem;line-height:1}.undo-button span{display:block;transform:translateY(-1px)}.new-game{left:max(16px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom));min-width:70px;min-height:42px;border-radius:8px;padding:0 16px;font-weight:800}.wake-button{right:max(16px,env(safe-area-inset-right));bottom:max(84px,calc(env(safe-area-inset-bottom) + 84px));min-width:74px;min-height:38px;border-radius:8px;padding:0 12px;font-size:.82rem;font-weight:900}.wake-button.active{color:#fff8df;background:#176b52}.auto-complete{left:50%;bottom:max(18px,env(safe-area-inset-bottom));min-width:88px;min-height:42px;border-radius:8px;padding:0 18px;font-weight:900;transform:translate(-50%)}.undo-button:hover,.new-game:hover,.auto-complete:hover,.test-button:hover,.wake-button:hover{transform:translateY(-2px);background:#fff0ad}.wake-button.active:hover{background:#238365}.auto-complete:hover{transform:translate(-50%,-2px)}.undo-button:disabled{cursor:default;opacity:.45;transform:none}.new-game:disabled,.auto-complete:disabled,.test-button:disabled,.wake-button:disabled{cursor:default;opacity:.55;transform:none}.auto-complete:disabled{transform:translate(-50%)}.win-banner{position:fixed;left:50%;top:50%;z-index:100;display:grid;justify-items:center;gap:8px;margin:0;padding:24px 32px;border-radius:12px;color:#0c342b;background:#fff7dc;box-shadow:0 22px 50px #0006;text-align:center;transform:translate(-50%,-50%);animation:win-pop .5s cubic-bezier(.17,.89,.32,1.25)}.win-message{margin:0;font-size:clamp(1.8rem,7vw,4rem);font-weight:900;line-height:1}.win-stats{display:flex;gap:32px;margin-top:12px;font-size:1.5rem;font-weight:700;opacity:.9}.win-stats p{margin:0}@keyframes win-pop{0%{opacity:0;transform:translate(-50%,-40%) scale(.9)}}.loading-overlay{position:fixed;left:50%;top:50%;z-index:120;display:grid;justify-items:center;width:min(340px,calc(100vw - 32px));padding:18px 18px 16px;border-radius:8px;color:#12332b;background:#fff8dff5;box-shadow:0 18px 42px #00000057;text-align:center;transform:translate(-50%,-50%)}.loading-emblem{position:relative;width:66px;height:66px;margin-bottom:10px}.loading-emblem span{position:absolute;top:7px;right:7px;bottom:7px;left:7px;border:4px solid transparent;border-top-color:#176b52;border-right-color:#c52233;border-radius:50%;animation:loading-spin 1.15s linear infinite}.loading-emblem span:nth-child(2){top:17px;right:17px;bottom:17px;left:17px;border-top-color:#ffe08a;border-right-color:#176b52;animation-duration:.9s;animation-direction:reverse}.loading-emblem span:nth-child(3){top:27px;right:27px;bottom:27px;left:27px;border-width:5px;border-color:#c52233;animation:loading-pulse 1.15s ease-in-out infinite}.loading-title,.loading-detail,.loading-fact{margin:0}.loading-title{font-size:1rem;font-weight:900}.loading-detail{margin-top:4px;font-size:.78rem;font-weight:800;opacity:.72}.loading-fact{margin-top:12px;font-size:.9rem;line-height:1.32}@keyframes loading-spin{to{transform:rotate(360deg)}}@keyframes loading-pulse{0%,to{opacity:.45;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}.win-burst{position:fixed;top:0;right:0;bottom:0;left:0;z-index:89;pointer-events:none;overflow:hidden}.win-burst span{position:absolute;left:50%;top:50%;width:10px;height:18px;border-radius:2px;background:hsl(calc(var(--i) * 47deg),88%,62%);animation:win-spark 1.5s cubic-bezier(.16,.8,.24,1) forwards;transform:rotate(calc(var(--i) * 31deg))}@keyframes win-spark{0%{opacity:0;transform:translate(-50%,-50%) rotate(calc(var(--i) * 31deg)) scale(.6)}15%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) rotate(calc(var(--i) * 91deg)) scale(1.15)}}.card-move-enter-active,.card-move-leave-active{transition:transform .42s cubic-bezier(.18,.89,.32,1.12)}.card-move-enter-from,.card-move-leave-to{visibility:hidden}.card-move-move{transition:transform .42s cubic-bezier(.18,.89,.32,1.12)}@media (max-width: 620px){:root{--card-w: clamp(42px, 12.4vw, 58px);--gap: 5px}.game{gap:14px;padding-left:7px;padding-right:7px}.top-row{gap:7px}.foundation-row,.draw-row{gap:5px}.card{border-radius:7px}.corner.top{top:5px;left:5px}.corner.bottom{right:5px;bottom:5px}.corner{font-size:clamp(.95rem,3.8vw,1.2rem)}.center-suit{font-size:clamp(2rem,6.5vw,2.8rem)}.card-back,.small-back{top:4px;right:4px;bottom:4px;left:4px}.tableau-pile{min-height:calc(var(--card-h) + 58vh)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
