:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}body{min-width:320px;min-height:100vh;margin:0}.card{width:var(--card-width,100px);height:var(--card-height,140px);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:calc(var(--card-width,100px) * .08);-webkit-tap-highlight-color:#4a90e24d;touch-action:manipulation;transition:box-shadow .15s ease-out,transform .15s ease-out;position:relative;box-shadow:0 2px 4px #0003}.card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000004d}.card:active{transform:translateY(0);box-shadow:0 1px 2px #0003}@media (width<=768px){.card:hover{transform:none;box-shadow:0 2px 4px #0003}.card:active{transform:scale(.98)}.card.selected{outline-offset:1px;outline-width:2px}}@media (width<=480px){.card.selected{outline-offset:1px;outline-width:2px;transform:translateY(-2px);box-shadow:0 4px 8px #4a90e266}}.card img{border-radius:calc(var(--card-width,100px) * .06);pointer-events:none;width:100%;height:100%;display:block}.card.dragging{opacity:0;cursor:grabbing}.card.selected{outline-offset:2px;outline:3px solid #4a90e2;transform:translateY(-4px);box-shadow:0 6px 12px #4a90e266}.card.moving{animation:.3s ease-out cardMove}@keyframes cardMove{0%{transform:scale(1.05);box-shadow:0 8px 16px #4a90e280}to{transform:scale(1);box-shadow:0 2px 4px #0003}}.card-placeholder{width:var(--card-width,100px);height:var(--card-height,140px);border-radius:calc(var(--card-width,100px) * .08);color:#888;font-size:calc(var(--card-width,100px) * .14);background-color:#ffffff1a;border:none;justify-content:center;align-items:center;display:flex}.card-placeholder.drop-target{background-color:#4a90e233;border-color:#4a90e2}.animated-card-container{will-change:transform;pointer-events:none;backface-visibility:hidden}.animated-card-container .card{transition:none;box-shadow:0 8px 16px #0006}.license-container{z-index:2000;box-sizing:border-box;background:linear-gradient(135deg,#1e5631 0%,#2d7a4a 100%);padding:2rem;position:fixed;inset:0;overflow-y:auto}.license-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.license-header h1{color:#fff;margin:0;font-size:2rem}.close-license-button{color:#fff;cursor:pointer;white-space:nowrap;background-color:#4a90e2;border:none;border-radius:4px;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;transition:all .2s}.close-license-button:hover{background-color:#357abd}.license-content{max-width:900px;margin:0 auto}.license-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.license-section h2{color:#fff;margin:0 0 1rem;font-size:1.5rem}.license-section p{color:#fff;margin:.5rem 0;line-height:1.6}.license-section a{color:#ffffffe6;text-decoration:underline;transition:color .2s}.license-section a:hover{color:#fff}.expand-license-button{color:#fff;cursor:pointer;background-color:#4a90e2;border:none;border-radius:4px;margin-top:1rem;padding:.5rem 1rem;font-size:.9rem;font-weight:500;transition:all .2s}.expand-license-button:hover{background-color:#357abd}.license-text-wrapper{word-wrap:break-word;overflow-wrap:break-word;color:#fff;box-sizing:border-box;background:linear-gradient(135deg,#1e5631 0%,#2d7a4a 100%);border:1px solid #fff3;border-radius:8px;max-width:100%;max-height:500px;margin-top:1rem;padding:1.5rem;line-height:1.6;overflow-y:auto}.license-text-wrapper p{color:#fff;margin:0 0 1rem}.license-text-wrapper p:last-child{margin-bottom:0}@media (width<=768px){.license-container{padding:1rem}.license-header h1{font-size:1.5rem}.license-section{padding:1rem}.license-section h2{font-size:1.2rem}.license-text-wrapper{max-height:300px;padding:1rem;line-height:1.5}.close-license-button{padding:.6rem 1.2rem;font-size:.9rem}.expand-license-button{padding:.4rem .8rem;font-size:.8rem}}@media (width<=480px){.license-container{padding:.5rem}.license-header h1{font-size:1.2rem}.license-section{padding:.75rem;font-size:.9rem}.license-section h2{font-size:1rem}.license-text-wrapper{max-height:250px;padding:.75rem}.close-license-button{padding:.5rem 1rem;font-size:.85rem}.expand-license-button{padding:.4rem .7rem;font-size:.75rem}}.victory-overlay{z-index:1000;cursor:pointer;background:#0000004d;justify-content:center;align-items:center;animation:.5s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.victory-content{text-align:center;pointer-events:none;position:relative}.victory-title{color:gold;text-shadow:0 0 20px #ffd700cc,0 0 40px #ffd70099,0 0 60px #ffd70066,2px 2px 4px #00000080;z-index:1;margin-bottom:20px;font-size:80px;font-weight:700;animation:1s ease-out titleAppear,6.25s step-end forwards bringToFront;position:relative}@keyframes bringToFront{0%,99.9%{z-index:1}to{z-index:10}}@keyframes titleAppear{0%{opacity:0;transform:scale(.5)translateY(-50px)}60%{transform:scale(1.1)translateY(0)}to{opacity:1;transform:scale(1)translateY(0)}}.victory-subtitle{color:#fff;margin-bottom:40px;font-size:32px;animation:1s ease-out .3s backwards subtitleAppear}@keyframes subtitleAppear{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.victory-hint{color:#ffffffb3;font-size:18px;animation:2s ease-in-out infinite hintPulse;position:absolute;top:200px;left:50%;transform:translate(-50%)}@keyframes hintPulse{0%,to{opacity:.5}50%{opacity:1}}.particles{pointer-events:none;width:0;height:0;position:fixed;top:50%;left:50%}.particle{opacity:0;filter:drop-shadow(0 0 8px);font-size:52px;font-weight:700;animation:2.5s ease-out 2.5 forwards fireworkBurst;position:absolute}.particle.suit-red{color:#ff1744}.particle.suit-black{color:#333}@keyframes fireworkBurst{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)rotate(0)}10%{opacity:1}20%{transform:translate(calc(var(--dx) * .5px), calc(var(--dy) * .5px)) scale(1) rotate(calc(var(--rotation) * .3));opacity:1}50%{transform:translate(calc(var(--dx) * 1px), calc(var(--dy) * 1px)) scale(1.2) rotate(calc(var(--rotation) * .7));opacity:1}to{transform:translate(calc(var(--dx) * 1.5px), calc(var(--dy) * 1.5px)) scale(.5) rotate(var(--rotation));opacity:0}}@media (width<=768px){.victory-title{font-size:48px}.victory-subtitle{margin-bottom:30px;font-size:20px}.victory-hint{font-size:14px;top:140px}.particle{font-size:36px}}@media (width<=480px){.victory-title{text-shadow:0 0 15px #ffd700cc,0 0 30px #ffd70099,0 0 45px #ffd70066,2px 2px 3px #00000080;font-size:36px}.victory-subtitle{margin-bottom:20px;font-size:16px}.victory-hint{font-size:12px;top:100px}.particle{font-size:28px}}.game-board{min-height:100vh;padding:var(--board-padding,20px);--card-width:100px;--card-height:140px;--card-gap:10px;--board-padding:20px;--max-game-width:90%;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#1e5631 0%,#2d7a4a 100%);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.game-header{max-width:var(--max-game-width,80%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:8px;justify-content:space-between;align-items:center;gap:20px;margin:0 auto 30px;padding:15px 25px;display:flex}.game-header h1{color:#fff;margin:0;font-size:32px;font-weight:600}.game-stats{color:#fff;font-size:16px;font-weight:500}.undo-controls{flex:none;align-items:center;display:flex}.undo-controls button{color:#fff;cursor:pointer;background:#4a90e2;border:none;border-radius:4px;padding:8px 16px;font-size:14px;font-weight:500;transition:background .2s}.undo-controls button:hover:not(:disabled){background:#357abd}.undo-controls button:disabled{cursor:not-allowed;opacity:.5;background:#6b6b6b}.game-controls{flex-wrap:wrap;align-items:center;gap:15px;display:flex}.game-controls label{color:#fff;align-items:center;gap:8px;font-weight:500;display:flex}.game-controls input[type=number]{color:#fff;background-color:#1a1a1a;border:none;border-radius:4px;width:100px;padding:6px 10px;font-size:14px;transition:background-color .3s,color .3s}.game-controls input[type=number].game-number-match{color:#fff;background-color:#2d7a4a;font-weight:500}.game-controls button{color:#fff;cursor:pointer;background:#4a90e2;border:none;border-radius:4px;padding:8px 16px;font-size:14px;font-weight:500;transition:background .2s}.game-controls button:hover:not(:disabled){background:#357abd}.game-controls button:disabled{cursor:not-allowed;opacity:.5;background:#6b6b6b}.game-area{width:100%;max-width:var(--max-game-width,80%);-webkit-user-select:none;user-select:none;margin:0 auto}.top-area{grid-template-columns:repeat(8, var(--card-width,100px));gap:var(--card-gap,10px);margin-bottom:calc(var(--card-gap,10px) * 4);-webkit-user-select:none;user-select:none;align-items:start;width:100%;display:grid}.free-cells{grid-column:1/5;display:contents}.foundations{grid-column:5/9;display:contents}.cell-row{display:contents}.cell{cursor:pointer;padding:calc(var(--card-height,140px) * .3);margin:calc(var(--card-height,140px) * -.3);-webkit-user-select:none;user-select:none;position:relative}.tableau{grid-template-columns:repeat(8, var(--card-width,100px));gap:var(--card-gap,10px);-webkit-user-select:none;user-select:none;width:100%;display:grid}.tableau-column{min-height:calc(var(--card-height,140px) * 2.75);-webkit-user-select:none;user-select:none}.column-drop-zone{min-height:calc(var(--card-height,140px) * 2.75);border-radius:calc(var(--card-width,100px) * .06);padding:calc(var(--card-height,140px) * .4) 0;margin:calc(var(--card-height,140px) * -.4) 0;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;transition:background-color .2s;display:flex}.foundation-hearts .card-placeholder:before,.foundation-diamonds .card-placeholder:before,.foundation-clubs .card-placeholder:before,.foundation-spades .card-placeholder:before{font-size:calc(var(--card-width,100px) * .5);opacity:.3;justify-content:center;align-items:center;height:100%;font-weight:400;display:flex}.foundation-hearts .card-placeholder:before{content:"♥";color:#d32f2f}.foundation-diamonds .card-placeholder:before{content:"♦";color:#d32f2f}.foundation-clubs .card-placeholder:before{content:"♣";color:#1a1a1a}.foundation-spades .card-placeholder:before{content:"♠";color:#1a1a1a}.game-footer{max-width:var(--max-game-width,80%);text-align:center;margin:25px auto 0;padding:10px}.footer-buttons{flex-wrap:wrap;justify-content:center;gap:15px;display:flex}.footer-button{color:#fff;cursor:pointer;background:#4a90e2;border:none;border-radius:4px;padding:8px 16px;font-family:inherit;font-size:14px;font-weight:500;text-decoration:none;transition:background .2s;display:inline-block}.footer-button:hover{background:#357abd;text-decoration:none}@media (width<=768px){.game-board{--board-padding:8px;--card-gap:5px;padding:var(--board-padding);--max-game-width:100%;overflow-x:hidden}.game-header{flex-direction:column;gap:10px;max-width:100%;margin-bottom:15px;padding:12px 15px}.game-area{max-width:100%;overflow-x:hidden}.game-header h1{font-size:24px}.game-stats{font-size:14px}.game-controls{flex-wrap:wrap;justify-content:center;gap:10px}.game-controls button{padding:6px 12px;font-size:13px}.game-controls input[type=number]{width:80px;padding:5px 8px;font-size:13px}.top-area{margin-bottom:calc(var(--card-gap) * 3);grid-template-columns:repeat(8, var(--card-width,100px))}.tableau-column,.column-drop-zone{min-height:calc(var(--card-height) * 2)}.game-footer{margin-top:var(--card-height);max-width:100%;padding:15px}.footer-buttons{gap:10px}.footer-button{padding:6px 12px;font-size:13px}}@media (width<=480px){.game-board{--board-padding:5px;--card-gap:3px}.game-header{gap:8px;margin-bottom:10px;padding:10px}.game-header h1{font-size:20px}.game-stats{font-size:12px}.game-controls button{padding:5px 10px;font-size:11px}.game-controls input[type=number]{width:70px;padding:4px 6px;font-size:11px}.game-controls label{font-size:11px}.top-area{margin-bottom:calc(var(--card-gap) * 2)}.tableau-column,.column-drop-zone{min-height:calc(var(--card-height) * 1.5)}.game-footer{margin-top:var(--card-height);padding:10px}.footer-button{padding:5px 10px;font-size:11px}}@media (width<=768px){.top-area,.tableau{--card-width:calc((100vw - 2 * var(--board-padding) - 7 * var(--card-gap)) / 8);--card-height:calc(var(--card-width) * 1.4)}}@media (width<=480px){.top-area,.tableau{--card-width:calc((100vw - 2 * var(--board-padding) - 7 * var(--card-gap)) / 8);--card-height:calc(var(--card-width) * 1.4)}}@media (width<=896px) and (orientation:landscape){.game-board{--board-padding:5px;--card-gap:4px}.game-header{flex-flow:wrap;max-width:100%;margin-bottom:10px;padding:8px 12px}.game-area{max-width:100%}.game-header h1{font-size:18px}.game-stats{font-size:12px}.tableau-column,.column-drop-zone{min-height:calc(var(--card-height) * 1.5)}.game-footer{max-width:100%;margin-top:var(--card-height)}.top-area,.tableau{--card-width:calc((100vw - 2 * var(--board-padding) - 7 * var(--card-gap)) / 8);--card-height:calc(var(--card-width) * 1.4)}}.help-overlay{z-index:2000;box-sizing:border-box;background:linear-gradient(135deg,#1e5631 0%,#2d7a4a 100%);padding:2rem;position:fixed;inset:0;overflow-y:auto}.help-modal{max-width:900px;margin:0 auto;position:relative}.help-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.help-modal h2{color:#fff;margin:0 0 2rem;font-size:2rem}.help-modal h3{color:#fff;margin:0 0 10px;font-size:1.5rem;font-weight:700}.help-content{color:#fff;line-height:1.6}.help-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.help-section:last-child{margin-bottom:0}.help-section p{margin:.5rem 0;font-size:16px;line-height:1.6}.help-section p:last-child{margin-bottom:0}.help-section ul{margin:10px 0 0;padding-left:25px}.help-section li{margin-bottom:8px;font-size:15px}.help-section li:last-child{margin-bottom:0}.help-close{color:#fff;cursor:pointer;white-space:nowrap;background-color:#4a90e2;border:none;border-radius:4px;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;transition:all .2s;position:absolute;top:0;right:0}.help-close:hover{background-color:#357abd}.btn-help-close{color:#fff;cursor:pointer;background:#4a90e2;border:none;border-radius:4px;margin-top:1.5rem;padding:.75rem 1.5rem;font-family:inherit;font-size:1rem;font-weight:500;transition:background .2s}.btn-help-close:hover{background:#357abd}.expand-help-button{color:#fff;cursor:pointer;background-color:#4a90e2;border:none;border-radius:4px;margin-top:1rem;padding:.5rem 1rem;font-family:inherit;font-size:.9rem;font-weight:500;transition:all .2s}.expand-help-button:hover{background-color:#357abd}.help-details{background:linear-gradient(135deg,#1e5631 0%,#2d7a4a 100%);border:1px solid #fff3;border-radius:8px;margin-top:1rem;padding:1.5rem;animation:.3s ease-out slideDown}.help-details h3{color:#fff;margin:1.5rem 0 .5rem;font-size:1.2rem;font-weight:700}.help-details h3:first-child{margin-top:0}.help-details p{margin:0 0 1rem;font-size:15px}.help-details ul{margin:10px 0 0;padding-left:25px}.help-details li{margin-bottom:8px;font-size:15px}.help-details li:last-child{margin-bottom:0}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.help-overlay{padding:1rem}.help-modal h2{font-size:1.5rem}.help-section{padding:1rem}.help-section h3{font-size:1.2rem}.help-section p,.help-section li{font-size:14px}.expand-help-button{padding:.4rem .8rem;font-size:.8rem}.help-details{padding:1rem}.help-details li{font-size:14px}.help-close,.btn-help-close{padding:.6rem 1.2rem;font-size:.9rem}}@media (width<=480px){.help-overlay{padding:.5rem}.help-modal h2{font-size:1.2rem}.help-section{padding:.75rem;font-size:.9rem}.help-section h3{font-size:1rem}.help-details{padding:.75rem}.help-close{padding:.5rem 1rem;font-size:.85rem}.expand-help-button{padding:.4rem .7rem;font-size:.75rem}}*{box-sizing:border-box;margin:0;padding:0}#root{width:100%;min-height:100vh}
