.solitaire-game{width:100%;max-width:100%;overflow-x:auto;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.game-controls{display:flex;justify-content:space-between;align-items:center;padding:10px;background:var(--retro-gray);border-bottom:2px solid var(--retro-dark-gray);flex-wrap:wrap;gap:10px}.controls-left{display:flex;gap:8px}.controls-right{display:flex;gap:15px}.stat-box{display:flex;gap:5px;background:var(--retro-white);border:2px inset var(--retro-dark-gray);padding:4px 8px;font-family:VT323,monospace;font-size:1.1rem}.stat-label{color:var(--retro-dark-gray)}.stat-value{color:var(--retro-black);font-weight:700}.solitaire-board{background:var(--retro-teal);padding:15px;min-height:500px;display:flex;flex-direction:column;gap:20px;touch-action:pan-y}.top-row{display:flex;justify-content:space-between;gap:20px}.stock-waste-area{display:flex;gap:10px}.stock-pile,.waste-pile{position:relative;width:70px;height:100px}.stock-pile{cursor:pointer}.stock-count{position:absolute;bottom:-5px;right:-5px;background:var(--retro-navy);color:var(--retro-white);font-family:VT323,monospace;font-size:.9rem;padding:2px 5px;border:2px outset var(--retro-gray)}.stock-refresh{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2rem;color:var(--retro-cyan);pointer-events:none}.foundation-area{display:flex;gap:10px}.foundation-pile{width:70px;height:100px}.tableau-area{display:flex;gap:10px;justify-content:center}.tableau-column{min-width:70px;min-height:150px}.solitaire-card{width:70px;height:100px;border:3px outset var(--retro-white);border-radius:4px;font-family:VT323,monospace;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;box-sizing:border-box}.solitaire-card:active{border-style:inset}.solitaire-card.face-up{background:var(--retro-white)}.solitaire-card.face-down{background:var(--retro-gray);cursor:default}.card-back-pattern{position:absolute;inset:4px;background:repeating-linear-gradient(45deg,var(--retro-navy) 0px,var(--retro-navy) 2px,transparent 2px,transparent 6px),repeating-linear-gradient(-45deg,var(--retro-navy) 0px,var(--retro-navy) 2px,transparent 2px,transparent 6px);border:2px solid var(--retro-navy)}.solitaire-card.selected{box-shadow:0 0 0 3px var(--retro-yellow)}.solitaire-card.red{color:#c00000}.solitaire-card.black{color:var(--retro-black)}.card-corner{position:absolute;display:flex;flex-direction:column;align-items:center;font-size:1rem;line-height:1}.card-corner.top-left{top:3px;left:4px}.card-corner.bottom-right{bottom:3px;right:4px;transform:rotate(180deg)}.card-rank{font-weight:700;font-size:1.2rem}.card-suit{font-size:1rem}.card-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.card-suit-large{font-size:2rem}.card-placeholder{width:70px;height:100px;border:3px inset var(--retro-dark-gray);border-radius:4px;background:#0003;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.card-placeholder.highlight{border-color:var(--retro-cyan);box-shadow:0 0 5px var(--retro-cyan)}.placeholder-suit{font-size:2rem;color:#ffffff4d}.card-stack{position:relative}.card-stack.highlight>.card-placeholder{border-color:var(--retro-cyan);box-shadow:0 0 5px var(--retro-cyan)}.win-overlay{position:fixed;inset:0;background:transparent;display:flex;align-items:center;justify-content:center;z-index:1000}.win-dialog.window{width:300px;animation:bounceIn .5s ease-out}.win-content{padding:20px;text-align:center;background:var(--retro-gray)}.win-celebration{font-size:4rem;margin-bottom:15px}.win-stats{margin-bottom:20px;font-family:VT323,monospace;font-size:1.3rem}.win-stats p{margin:5px 0}.play-again-btn{font-size:1.2rem;padding:10px 20px}@keyframes bounceIn{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@media(max-width:580px){.solitaire-game{container-type:inline-size}.solitaire-board{--card-width: calc((100cqw - 8px) / 7.857);--card-height: calc(var(--card-width) * 100 / 70);--gap: calc(4px + (100cqw - 320px) * 6 / 260);--font-rank: calc(var(--card-width) * .274);--font-suit: calc(var(--card-width) * .229);--font-suit-large: calc(var(--card-width) * .457);--border-width: calc(var(--card-width) * 3 / 70);--border-radius: calc(var(--card-width) * 4 / 70)}.solitaire-card,.card-placeholder{width:var(--card-width);height:var(--card-height);border-width:var(--border-width);border-radius:var(--border-radius)}.solitaire-card.selected{box-shadow:0 0 0 var(--border-width) var(--retro-yellow)}.card-rank{font-size:var(--font-rank)}.card-suit{font-size:var(--font-suit)}.card-suit-large{font-size:var(--font-suit-large)}.card-corner.top-left{top:2px;left:3px}.card-corner.bottom-right{bottom:2px;right:3px}.stock-pile,.waste-pile,.foundation-pile,.tableau-column{min-width:var(--card-width)}.stock-pile,.waste-pile,.foundation-pile{width:var(--card-width);height:var(--card-height)}.placeholder-suit{font-size:var(--font-suit-large)}.solitaire-board{padding:6px 4px;gap:var(--gap);display:grid;grid-template-columns:repeat(7,var(--card-width));grid-template-rows:auto auto;align-items:start;justify-content:center;min-height:auto}.game-controls{grid-column:1 / -1}.top-row{grid-column:1 / -1;display:contents}.stock-waste-area{grid-column:1 / 3;grid-row:1;display:grid;grid-template-columns:repeat(2,var(--card-width));gap:var(--gap)}.foundation-area{grid-column:4 / 8;grid-row:1;display:grid;grid-template-columns:repeat(4,var(--card-width));gap:var(--gap);justify-self:end}.tableau-area{grid-column:1 / -1;grid-row:2;display:grid;grid-template-columns:repeat(7,var(--card-width));gap:var(--gap);justify-content:center}.tableau-column{min-width:0;min-height:400px}.game-controls{padding:6px}.controls-left .retro-btn{padding:4px 8px;font-size:.9rem}.stat-box{font-size:.9rem;padding:3px 6px}.card-back-pattern{inset:2px;border-width:calc(var(--card-width) * 2 / 70)}}.solitaire-card[draggable=true]{cursor:grab}.solitaire-card[draggable=true]:active{cursor:grabbing}.tableau-column.highlight,.foundation-pile.highlight{background:#00ffff1a;border-radius:var(--border-radius, 4px)}.win-animation-overlay{position:fixed;inset:0;z-index:999;overflow:hidden;pointer-events:none;background:transparent}.win-animation-canvas{position:absolute;top:0;left:0;pointer-events:none}.cascade-card{position:absolute;width:70px;height:100px;border:3px outset var(--retro-white);border-radius:4px;font-family:VT323,monospace;pointer-events:none;background:var(--retro-white);box-sizing:border-box}.cascade-card .card-corner{position:absolute;display:flex;flex-direction:column;align-items:center;font-size:1rem;line-height:1}.cascade-card .card-corner.top-left{top:3px;left:4px}.cascade-card .card-corner.bottom-right{bottom:3px;right:4px;transform:rotate(180deg)}.cascade-card .card-rank{font-weight:700;font-size:1.2rem}.cascade-card .card-suit{font-size:1rem}.cascade-card .card-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cascade-card .card-suit-large{font-size:2rem}.cascade-card.red{color:#c00000}.cascade-card.black{color:var(--retro-black)}@media(max-width:580px){.cascade-card{width:var(--card-width);height:var(--card-height);border-radius:var(--border-radius)}.cascade-card .card-rank{font-size:var(--font-rank)}.cascade-card .card-suit{font-size:var(--font-suit)}.cascade-card .card-suit-large{font-size:var(--font-suit-large)}.cascade-card .card-corner.top-left{top:2px;left:3px}.cascade-card .card-corner.bottom-right{bottom:2px;right:3px}}.flying-card{background:var(--retro-white)!important;width:70px!important;height:100px!important}@media(max-width:580px){.flying-card{width:calc((min(580px,100vw) - 8px) / 7.857)!important;height:calc(((min(580px,100vw) - 8px) / 7.857) * 100 / 70)!important}.flying-card .card-rank{font-size:calc((min(580px,100vw) - 8px) / 7.857 * .274)}.flying-card .card-suit{font-size:calc((min(580px,100vw) - 8px) / 7.857 * .229)}.flying-card .card-suit-large{font-size:calc((min(580px,100vw) - 8px) / 7.857 * .457)}.flying-card .card-corner.top-left{top:2px;left:3px}.flying-card .card-corner.bottom-right{bottom:2px;right:3px}}.solitaire-card.touch-dragging{opacity:.4}.drag-preview{position:fixed;pointer-events:none;z-index:9999;touch-action:none}.drag-preview .solitaire-card{box-shadow:4px 4px 8px #0000004d;background:var(--retro-white);width:70px;height:100px}@media(max-width:580px){.drag-preview .solitaire-card{width:calc((min(580px,100vw) - 8px) / 7.857);height:calc(((min(580px,100vw) - 8px) / 7.857) * 100 / 70)}.drag-preview .solitaire-card .card-rank{font-size:calc((min(580px,100vw) - 8px) / 7.857 * .274)}.drag-preview .solitaire-card .card-suit{font-size:calc((min(580px,100vw) - 8px) / 7.857 * .229)}.drag-preview .solitaire-card .card-suit-large{font-size:calc((min(580px,100vw) - 8px) / 7.857 * .457)}.drag-preview .solitaire-card .card-corner.top-left{top:2px;left:3px}.drag-preview .solitaire-card .card-corner.bottom-right{bottom:2px;right:3px}}.tableau-column.valid-drop-target,.foundation-pile.valid-drop-target{background:#00ffff26;box-shadow:inset 0 0 0 3px var(--retro-cyan);border-radius:var(--border-radius, 4px)}.card-stack.valid-drop-target>.card-placeholder{border-color:var(--retro-cyan);box-shadow:0 0 8px var(--retro-cyan)}.solvability-indicator{display:flex;align-items:center;gap:4px;font-family:VT323,monospace;font-size:1.1rem;min-width:80px;justify-content:center}.solvability-text{font-weight:700}.solvability-analyzing{background:var(--retro-white);color:var(--retro-dark-gray)}.solvability-analyzing .solvability-text{animation:blink 1s infinite}.solvability-winnable{background:#c8ffc8;color:#006400}.solvability-stuck{background:#ffc8c8;color:#8b0000}.solvability-unknown{background:#ffffc8;color:#8b8b00}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.confirm-message{font-family:VT323,monospace;font-size:1.2rem;text-align:center;margin:10px 0 20px;color:var(--retro-black)}.confirm-buttons{display:flex;gap:15px;justify-content:center}.confirm-buttons .retro-btn{min-width:80px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);padding:10px 20px;border-radius:4px;font-family:"Perfect DOS VGA 437",monospace;font-size:.9rem;z-index:1000;animation:toast-fade-in .2s ease-out;box-shadow:2px 2px 0 var(--retro-black)}.toast-success{background:var(--retro-white);color:var(--retro-black);border:2px solid var(--retro-black)}.toast-error{background:#c00;color:var(--retro-white);border:2px solid var(--retro-black)}@keyframes toast-fade-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes hint-pulse{0%,to{box-shadow:0 0 0 3px var(--hint-color)}50%{box-shadow:0 0 12px 5px var(--hint-color)}}.solitaire-card.hint-source{--hint-color: #ffd700;animation:hint-pulse .8s ease-in-out infinite;z-index:10}.solitaire-card.hint-target{--hint-color: #00ff00;animation:hint-pulse .8s ease-in-out infinite;z-index:10}.card-placeholder.hint-source{--hint-color: #ffd700;animation:hint-pulse .8s ease-in-out infinite}.card-placeholder.hint-target{--hint-color: #00ff00;animation:hint-pulse .8s ease-in-out infinite}.foundation-pile.hint-target{background:#00ff001a;border-radius:var(--border-radius, 4px)}.stock-pile.hint-source{--hint-color: #ffd700;animation:hint-pulse .8s ease-in-out infinite;border-radius:var(--border-radius, 4px)}
