@import"https://fonts.googleapis.com/css2?family=Montserrat:wght@700&family=Open+Sans&display=swap";.draggable-card,.drop-zone,.game-element{transform:translateZ(0);will-change:transform;backface-visibility:hidden;transform-style:preserve-3d;contain:layout style}:root{--card-width: 8vw;--card-height: 12vh;--card-border-radius: 1vh;--drag-x: 0px;--drag-y: 0px;--drag-scale: 1;--drag-rotation: 0deg;--drag-z-index: 10;--drag-transition-duration: .2s;--snap-back-duration: .4s;--drop-success-duration: .3s;--z-game-board: 1;--z-cards-base: 10;--z-cards-tableau: 20;--z-cards-dragging: 1000;--z-drop-zone-highlight: 500;--z-ui-overlay: 2000;--drop-zone-valid: rgba(34, 197, 94, .2);--drop-zone-invalid: rgba(239, 68, 68, .2);--drop-zone-neutral: rgba(156, 163, 175, .1);--card-shadow-rest: 0 2px 8px rgba(0, 0, 0, .15);--card-shadow-hover: 0 4px 12px rgba(0, 0, 0, .2);--card-shadow-drag: 0 8px 24px rgba(0, 0, 0, .3)}:root{--ease-snappy: cubic-bezier(.175, .885, .32, 1.275);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-quick-exit: cubic-bezier(.55, .055, .675, .19);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-power-in: cubic-bezier(.55, .085, .68, .53);--ease-power-out: cubic-bezier(.25, .46, .45, .94)}.draggable-card{position:absolute;width:var(--card-width);height:var(--card-height);border-radius:var(--card-border-radius);transform:translate3d(var(--card-x, 0),var(--card-y, 0),0) scale(var(--card-scale, 1)) rotate(var(--card-rotation, 0deg));transition:transform var(--drag-transition-duration) var(--ease-smooth),box-shadow var(--drag-transition-duration) var(--ease-smooth),filter var(--drag-transition-duration) var(--ease-smooth);box-shadow:var(--card-shadow-rest);cursor:grab;-webkit-user-select:none;user-select:none;z-index:var(--card-z-index, var(--z-cards-base))}.draggable-card:hover:not(.dragging){transform:translate3d(var(--card-x, 0),var(--card-y, 0),0) scale(1.02);box-shadow:var(--card-shadow-hover);transition-timing-function:var(--ease-snappy)}.draggable-card.dragging{transform:translate3d(var(--drag-x),var(--drag-y),0) scale(var(--drag-scale)) rotate(var(--drag-rotation));box-shadow:var(--card-shadow-drag);cursor:grabbing;z-index:var(--z-cards-dragging);transition:none;filter:brightness(1.05) saturate(1.1)}.draggable-card.animating{transition:transform var(--snap-back-duration) var(--ease-bounce),box-shadow var(--snap-back-duration) var(--ease-smooth),filter var(--snap-back-duration) var(--ease-smooth)}.draggable-card.snap-back{transform:translate3d(var(--card-x, 0),var(--card-y, 0),0) scale(1);box-shadow:var(--card-shadow-rest);filter:none;cursor:grab}.draggable-card.drop-success{transition:transform var(--drop-success-duration) var(--ease-power-out),box-shadow var(--drop-success-duration) var(--ease-smooth)}.drop-zone{position:absolute;border-radius:var(--card-border-radius);transform:translateZ(0);will-change:transform,background-color,border-color;transition:background-color .15s var(--ease-smooth),border-color .15s var(--ease-smooth),transform .15s var(--ease-smooth);background-color:transparent;border:2px solid transparent;pointer-events:none;z-index:var(--z-drop-zone-highlight)}.drop-zone.valid{background-color:var(--drop-zone-valid);border-color:#22c55e66}.drop-zone.invalid{background-color:var(--drop-zone-invalid);border-color:#ef444466}.drop-zone.hovered{transform:translateZ(0) scale(1.02);transition-timing-function:var(--ease-snappy)}.drag-sequence{position:absolute;transform:translate3d(var(--drag-x),var(--drag-y),0);z-index:var(--z-cards-dragging)}.drag-sequence .draggable-card{position:relative;margin-top:calc(-1 * var(--card-height) * .7)}.drag-sequence .draggable-card:first-child{margin-top:0}.draggable-card.near-drop-zone{filter:brightness(1.1) saturate(1.2) drop-shadow(0 0 8px rgba(34,197,94,.4));transition:filter .15s var(--ease-smooth)}.draggable-card.invalid-drag{filter:brightness(.8) saturate(.6) drop-shadow(0 0 8px rgba(239,68,68,.4));transition:filter .15s var(--ease-smooth)}.card-staggered-1{animation-delay:0ms}.card-staggered-2{animation-delay:80ms}.card-staggered-3{animation-delay:.16s}.card-staggered-4{animation-delay:.24s}.card-staggered-5{animation-delay:.32s}@media (max-width: 768px){:root{--card-width: 12vw;--card-height: 16vh;--drag-transition-duration: .15s}.draggable-card:hover:not(.dragging){transform:translate3d(var(--card-x, 0),var(--card-y, 0),0) scale(1.01)}}@media (min-width: 1920px){:root{--card-width: 6vw;--card-height: 10vh}}@media (prefers-reduced-motion: no-preference){.draggable-card,.drop-zone{transform-style:preserve-3d;perspective:1000px}}@media (prefers-reduced-motion: reduce){.draggable-card,.drop-zone{transition-duration:.01ms!important;animation-duration:.01ms!important}.draggable-card.dragging{filter:none}}.debug-drag-state{position:fixed;top:10px;right:10px;background:#000c;color:#fff;padding:10px;border-radius:4px;font-family:monospace;font-size:12px;z-index:var(--z-ui-overlay);pointer-events:none}.debug-drop-zones .drop-zone{border:2px dashed rgba(255,255,0,.5)!important;background-color:#ffff001a!important}.debug-card-bounds .draggable-card{outline:1px solid rgba(255,0,255,.5)}:root{--card-width: 8vw;--card-height: 11.2vh;--tableau-start-x: 2vw;--tableau-start-y: 25vh;--tableau-column-spacing: 1vw;--tableau-stack-spacing: 2.5vh;--foundation-start-x: 40vw;--foundation-start-y: 5vh;--foundation-spacing: 10vw;--stock-x: 2vw;--stock-y: 5vh;--waste-x: 14vw;--waste-y: 5vh;--waste-spread: 2vw;--compression-factor: 1}.card,.card-slot,.foundation-pile,.stock-pile,.waste-pile{width:var(--card-width);height:var(--card-height);position:absolute;border-radius:calc(var(--card-width) * .08);transition:transform .3s cubic-bezier(.4,0,.2,1);transform:translateZ(0);backface-visibility:hidden;will-change:transform}.tableau-column-0{left:calc(var(--tableau-start-x) + (var(--card-width) + var(--tableau-column-spacing)) * 0)}.tableau-column-1{left:calc(var(--tableau-start-x) + (var(--card-width) + var(--tableau-column-spacing)) * 1)}.tableau-column-2{left:calc(var(--tableau-start-x) + (var(--card-width) + var(--tableau-column-spacing)) * 2)}.tableau-column-3{left:calc(var(--tableau-start-x) + (var(--card-width) + var(--tableau-column-spacing)) * 3)}.tableau-column-4{left:calc(var(--tableau-start-x) + (var(--card-width) + var(--tableau-column-spacing)) * 4)}.tableau-column-5{left:calc(var(--tableau-start-x) + (var(--card-width) + var(--tableau-column-spacing)) * 5)}.tableau-column-6{left:calc(var(--tableau-start-x) + (var(--card-width) + var(--tableau-column-spacing)) * 6)}.tableau-position-0{top:var(--tableau-start-y)}.tableau-position-1{top:calc(var(--tableau-start-y) + var(--tableau-stack-spacing) * 1)}.tableau-position-2{top:calc(var(--tableau-start-y) + var(--tableau-stack-spacing) * 2)}.tableau-position-3{top:calc(var(--tableau-start-y) + var(--tableau-stack-spacing) * 3)}.tableau-position-4{top:calc(var(--tableau-start-y) + var(--tableau-stack-spacing) * 4)}.tableau-position-5{top:calc(var(--tableau-start-y) + var(--tableau-stack-spacing) * 5)}.tableau-position-6{top:calc(var(--tableau-start-y) + var(--tableau-stack-spacing) * 6)}.tableau-position-7{top:calc(var(--tableau-start-y) + var(--tableau-stack-spacing) * 7)}.tableau-position-8{top:calc(var(--tableau-start-y) + var(--tableau-stack-spacing) * 8)}.tableau-position-9{top:calc(var(--tableau-start-y) + var(--tableau-stack-spacing) * 9)}.tableau-position-10{top:calc(var(--tableau-start-y) + var(--tableau-stack-spacing) * 10)}.tableau-position-11{top:calc(var(--tableau-start-y) + var(--tableau-stack-spacing) * 11)}.tableau-position-12{top:calc(var(--tableau-start-y) + var(--tableau-stack-spacing) * 12)}.foundation-0{left:var(--foundation-start-x);top:var(--foundation-start-y)}.foundation-1{left:calc(var(--foundation-start-x) + (var(--card-width) + var(--foundation-spacing)) * 1);top:var(--foundation-start-y)}.foundation-2{left:calc(var(--foundation-start-x) + (var(--card-width) + var(--foundation-spacing)) * 2);top:var(--foundation-start-y)}.foundation-3{left:calc(var(--foundation-start-x) + (var(--card-width) + var(--foundation-spacing)) * 3);top:var(--foundation-start-y)}.stock-pile{left:var(--stock-x);top:var(--stock-y)}.waste-pile{left:var(--waste-x);top:var(--waste-y)}.waste-card-0{left:var(--waste-x)}.waste-card-1{left:calc(var(--waste-x) + var(--waste-spread) * 1)}.waste-card-2{left:calc(var(--waste-x) + var(--waste-spread) * 2)}.compression-heavy{--tableau-stack-spacing: calc(var(--tableau-stack-spacing) * .8)}.compression-heavy .card{border-radius:calc(var(--card-width) * .06);box-shadow:0 1px 3px #0003}.compression-medium{--tableau-stack-spacing: calc(var(--tableau-stack-spacing) * .9)}.compression-light{--tableau-stack-spacing: calc(var(--tableau-stack-spacing) * .95)}.compression-none{--tableau-stack-spacing: var(--tableau-stack-spacing)}.game-board{position:relative;width:100vw;height:100vh;overflow:hidden;touch-action:manipulation}.game-text{font-size:calc(1rem * var(--compression-factor));line-height:1.4}.game-title{font-size:calc(2rem * var(--compression-factor));line-height:1.2}.game-score{font-size:calc(1.2rem * var(--compression-factor));line-height:1.3}.game-button{padding:calc(.5rem * var(--compression-factor)) calc(1rem * var(--compression-factor));font-size:calc(1rem * var(--compression-factor));border-radius:calc(.5rem * var(--compression-factor));min-width:calc(4rem * var(--compression-factor));min-height:calc(2.5rem * var(--compression-factor))}.drag-preview{width:var(--card-width);height:var(--card-height);transform:scale(1.05);z-index:1000;pointer-events:none}@media (max-width: 480px) and (max-height: 640px){.card{transition-duration:.25s}}@media (max-width: 360px){.compression-heavy .card{box-shadow:none}}.compression-heavy .card:focus,.compression-heavy .card-slot:focus{outline:2px solid #FFD700;outline-offset:1px}.compression-debug{position:fixed;top:10px;right:10px;background:#000c;color:#fff;padding:8px;border-radius:4px;font-family:monospace;font-size:12px;z-index:9999;pointer-events:none}.positioned-element{position:absolute;transform:translateZ(0);backface-visibility:hidden}:root{--bp-xs: 20rem;--bp-sm: 30rem;--bp-md: 48rem;--bp-lg: 64rem;--bp-xl: 80rem;--bp-2xl: 96rem;--brand-primary: #228B22;--brand-primary-hover: #1e7e1e;--brand-primary-active: #1a701a;--brand-secondary: #D94A4A;--brand-secondary-hover: #c93e3e;--brand-secondary-active: #b93535;--brand-accent: #D4AF37;--brand-warning: #ff6600;--brand-text: #F5F5DC;--color-bg-primary: var(--brand-primary);--color-text-primary: var(--brand-text);--color-accent-primary: var(--brand-secondary);--color-accent-secondary: var(--brand-accent);--color-shadow: #3333334d;--color-success: var(--brand-primary);--color-warning: var(--brand-warning);--color-error: var(--brand-secondary);--color-info: var(--brand-primary);--surface-primary: #ffffff;--surface-secondary: #f8fafc;--surface-tertiary: #f1f5f9;--surface-elevated: #ffffff;--surface-primary-dark: #0f172a;--surface-secondary-dark: #1e293b;--surface-tertiary-dark: #334155;--surface-elevated-dark: #475569;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #64748b;--text-inverse: #ffffff;--text-primary-dark: #f8fafc;--text-secondary-dark: #cbd5e1;--text-tertiary-dark: #94a3b8;--card-red: #dc2626;--card-black: #1f2937;--card-background: #ffffff;--card-back: #1e40af;--card-border: #e5e7eb;--table-felt: #1a5f3a;--drop-zone: #059669;--drop-zone-invalid: #dc2626;--color-solitaire-bg: var(--table-felt);--color-solitaire-bg-gradient: radial-gradient(ellipse at center, #228B22 0%, #006400 45%, #004d00 100%);--texture-felt-pattern: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.015' fill-rule='evenodd'%3E%3Cpath d='m0 40l40-40h-40v40zm40 0v-40h-40l40 40z'/%3E%3C/svg%3E");--ambient-shadow: inset 0 0 120px rgba(0,0,0,.15);--color-foundation-empty: linear-gradient(0deg, var(--surface-secondary-dark) 50%, var(--surface-tertiary-dark) 50%);--color-foundation-occupied: linear-gradient(0deg, var(--surface-primary-dark) 50%, var(--surface-secondary-dark) 50%);--color-button-primary: var(--brand-warning);--color-button-primary-border: var(--brand-accent);--color-text-warning: var(--brand-accent);--color-text-muted: var(--text-tertiary);--color-hint-glow: var(--brand-accent);--color-suit-red: var(--card-red);--color-suit-black: var(--card-black);--color-ace-text: var(--text-inverse);--color-victory-1: linear-gradient(135deg, var(--brand-warning), var(--brand-accent));--color-victory-2: linear-gradient(135deg, var(--brand-accent), var(--brand-warning));--color-victory-3: linear-gradient(135deg, var(--surface-tertiary-dark), var(--surface-secondary-dark));--color-victory-4: linear-gradient(135deg, var(--brand-primary), var(--color-success));--color-victory-5: linear-gradient(135deg, var(--color-success), var(--color-info));--color-victory-6: linear-gradient(135deg, var(--brand-accent), var(--brand-warning));--color-victory-7: linear-gradient(135deg, var(--brand-warning), var(--brand-secondary));--color-ui-panel-bg: rgba(0, 0, 0, .85);--color-ui-panel-border: rgba(255, 255, 255, .1);--color-modal-bg: rgba(0, 0, 0, .9);--color-modal-content-bg: var(--surface-elevated);--color-empty-deck-bg: var(--surface-secondary);--color-empty-deck-border: rgba(255, 255, 255, .3);--color-empty-deck-hover-bg: var(--surface-tertiary);--color-empty-deck-hover-border: rgba(255, 255, 255, .5);--color-empty-deck-icon: var(--text-tertiary);--card-depth-offset: 1.5px;--card-depth-opacity: .8;--card-waste-depth-offset: 1px;--card-shadow-light: var(--card-shadow);--card-shadow-medium: 0 3px 6px rgba(0,0,0,.12);--card-shadow-heavy: 0 4px 8px rgba(0,0,0,.15);--card-shadow-hover: var(--card-shadow-hover);--card-shadow-active: var(--card-shadow-active);--color-foundation-placeholder-bg: rgba(255, 255, 255, .12);--color-foundation-placeholder-border: rgba(255, 255, 255, .1);--color-foundation-placeholder-inner-highlight: rgba(255, 255, 255, .2);--color-foundation-placeholder-text: var(--text-inverse);--foundation-backdrop-blur: blur(8px);--foundation-border-radius: var(--card-radius);--foundation-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), var(--card-shadow);--color-control-sound-bg: linear-gradient(135deg, var(--color-info), var(--brand-primary));--color-control-sound-border: rgba(14, 165, 233, .4);--color-control-sound-hover-bg: linear-gradient(135deg, var(--brand-primary), var(--brand-primary-active));--color-control-sound-hover-shadow: 0 6px 20px rgba(14, 165, 233, .4);--color-control-sound-active-bg: linear-gradient(135deg, var(--color-success), var(--brand-primary));--color-control-sound-active-border: var(--brand-accent);--color-control-sound-active-shadow: 0 0 15px rgba(34, 197, 94, .5);--color-control-sound-active-hover-bg: linear-gradient(135deg, var(--brand-primary), var(--brand-primary-active));--color-control-sound-active-hover-shadow: 0 0 20px rgba(34, 197, 94, .6);--color-control-inactive-bg: linear-gradient(135deg, var(--surface-tertiary-dark), var(--surface-secondary-dark));--color-control-inactive-text: var(--text-inverse);--color-control-inactive-border: rgba(100, 116, 139, .4);--color-control-inactive-hover-bg: linear-gradient(135deg, var(--surface-secondary-dark), var(--surface-primary-dark));--color-control-inactive-hover-shadow: 0 6px 20px rgba(100, 116, 139, .3);--shadow-text: 2px 2px 4px rgba(0, 0, 0, .5);--shadow-text-light: 1px 1px 2px rgba(0, 0, 0, .5);--shadow-button-light: 0 2px 4px rgba(0, 0, 0, .2);--shadow-button-medium: 0 4px 8px rgba(0, 0, 0, .3);--color-card-back-shade: rgba(0, 0, 0, .1);--font-family-base: "Inter", system-ui, sans-serif;--font-family-display: "Montserrat", var(--font-family-base);--font-family-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: clamp(.75rem, .7rem + .25vw, .875rem);--text-sm: clamp(.875rem, .8rem + .375vw, 1rem);--text-base: clamp(1rem, .9rem + .5vw, 1.125rem);--text-lg: clamp(1.125rem, 1rem + .625vw, 1.25rem);--text-xl: clamp(1.25rem, 1.1rem + .75vw, 1.5rem);--text-2xl: clamp(1.5rem, 1.3rem + 1vw, 1.875rem);--text-3xl: clamp(1.875rem, 1.6rem + 1.375vw, 2.25rem);--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--touch-target-min: 44px;--touch-target-ideal: 48px;--touch-target-large: 56px;--card-width: clamp(3.5rem, 8vw, 4.5rem);--card-height: clamp(4.875rem, 11.2vw, 6.3rem);--card-radius: .5rem;--card-shadow: 0 2px 4px rgba(0, 0, 0, .1);--card-shadow-hover: 0 4px 12px rgba(0, 0, 0, .15);--card-shadow-active: 0 1px 2px rgba(0, 0, 0, .1);--duration-instant: 0ms;--duration-fast: .15s;--duration-normal: .3s;--duration-slow: .5s;--duration-slower: .75s;--ease-linear: linear;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-premium: cubic-bezier(.175, .885, .32, 1.275);--ease-out-smooth: var(--ease-out);--ease-snap: cubic-bezier(.25, .46, .45, .94);--fast-transition: var(--duration-fast);--medium-transition: var(--duration-normal);--slow-transition: var(--duration-slow);--ease-premium-bounce: cubic-bezier(.175, .885, .32, 1.275);--ease-snappy-overshoot: cubic-bezier(.68, -.55, .265, 1.55);--ease-quick-exit: cubic-bezier(.55, .055, .675, .19);--ease-smooth-arc: cubic-bezier(.25, .46, .45, .94);--z-background: -1;--z-default: 0;--z-cards: 10;--z-dragging: 50;--z-tooltips: 100;--z-dropdowns: 200;--z-overlays: 300;--z-modals: 400;--z-notifications: 500;--button-height: var(--touch-target-ideal);--button-padding-x: var(--space-4);--button-radius: .375rem;--button-border-width: 1px;--input-height: 2.5rem;--input-padding-x: var(--space-3);--input-radius: .375rem;--input-border-width: 1px;--modal-max-width: 32rem;--modal-padding: var(--space-6);--modal-radius: .75rem;--border-radius-soft: var(--modal-radius);--border-radius-sharp: var(--button-radius);--card-width-base: clamp(60px, 12vw, 120px);--card-height-base: calc(var(--card-width-base) * 1.4);--compression-ratio: 1;--adaptive-spacing: calc(24px * var(--compression-ratio));--stack-spacing: calc(var(--adaptive-spacing) * var(--compression-intensity, 1));--card-visibility: 1;--stack-overflow: visible;--compression-indicator-color: var(--color-accent-secondary);--compression-warning-color: var(--color-accent-primary);--compression-active-bg: rgba(34, 139, 34, .1);--compression-transition: transform .3s cubic-bezier(.25, .46, .45, .94);--compression-scale-transition: transform .4s var(--ease-premium-bounce)}@media (max-width: 30rem){:root{--card-width: clamp(3rem, 10vw, 3.5rem);--card-height: clamp(4.2rem, 14vw, 4.9rem);--space-base-multiplier: .875;--duration-normal: .25s;--duration-fast: 125ms}}@media (min-width: 30rem) and (max-width: 48rem){:root{--card-width: clamp(3.5rem, 9vw, 4rem);--card-height: clamp(4.9rem, 12.6vw, 5.6rem)}}@media (min-width: 48rem) and (max-width: 64rem){:root{--card-width: clamp(4rem, 8vw, 5rem);--card-height: clamp(5.6rem, 11.2vw, 7rem)}}@media (min-width: 64rem) and (max-width: 80rem){:root{--card-width: clamp(4.5rem, 7vw, 5.5rem);--card-height: clamp(6.3rem, 9.8vw, 7.7rem)}}@media (min-width: 80rem){:root{--card-width: clamp(5rem, 6vw, 6rem);--card-height: clamp(7rem, 8.4vw, 8.4rem)}}@media (max-width: 48rem) and (max-height: 640px){:root{--card-shadow: 0 1px 3px rgba(0, 0, 0, .12);--card-shadow-hover: 0 2px 6px rgba(0, 0, 0, .16);--duration-normal: .2s;--duration-slow: .35s}}@media (min-width: 80rem) and (min-height: 800px){:root{--card-shadow: 0 4px 8px rgba(0, 0, 0, .12), 0 2px 4px rgba(0, 0, 0, .08);--card-shadow-hover: 0 8px 16px rgba(0, 0, 0, .16), 0 4px 8px rgba(0, 0, 0, .12);--duration-normal: .35s;--duration-slow: .6s}}@media (orientation: portrait){.game-board{--board-padding-y: var(--space-6);--board-padding-x: var(--space-4)}}@media (orientation: landscape) and (max-height: 500px){:root{--card-spacing-vertical: calc(var(--space-2) * .75);--board-padding-y: var(--space-2);--board-padding-x: var(--space-6)}.card-stack{--stack-spacing: calc(16px * var(--compression-ratio))}}@media (min-width: 768px){:root{--card-width: 15vw}}@media (min-width: 1024px){:root{--card-width: 12vw}}body{background-color:var(--color-bg-primary);color:var(--text-primary);font-family:var(--font-family-base);font-size:var(--text-base);line-height:1.6;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden;touch-action:manipulation;-webkit-tap-highlight-color:transparent;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}button,[role=button],.interactive,.card,.pile{min-height:var(--touch-target-min);min-width:var(--touch-target-min);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transform:translateZ(0);will-change:transform;backface-visibility:hidden;transition:transform var(--duration-fast) var(--ease-out)}button:active,[role=button]:active,.interactive:active,.card:active{transform:translateZ(0) scale(.98)}.btn-primary,.game-control-primary{min-height:var(--touch-target-large);min-width:var(--touch-target-large)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast: high){:root{--card-border: #000000;--text-primary: #000000;--surface-primary: #ffffff}}*:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px;border-radius:var(--button-radius)}.card,.pile,.game-board,.foundation-placeholder,.menu,.button,.modal{transform:translateZ(0);will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.animating,.dragging,.dealing,.victory-card{transform-style:preserve-3d;will-change:transform,opacity}.foundation-glass{background:var(--color-foundation-placeholder-bg);border:1px solid var(--color-foundation-placeholder-border);border-radius:var(--foundation-border-radius);-webkit-backdrop-filter:var(--foundation-backdrop-blur);backdrop-filter:var(--foundation-backdrop-blur);box-shadow:var(--foundation-shadow)}@keyframes dealCard{0%{transform:translate3d(45vw,5vh,0) rotate(-10deg) scale(.8);opacity:0}to{transform:translate3d(var(--final-x),var(--final-y),0) rotate(0) scale(1);opacity:1}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes cardFlip{0%{transform:rotateY(0)}to{transform:rotateY(180deg)}}.card-stack{position:relative;height:calc(var(--card-height-base) + (var(--stack-length, 1) - 1) * var(--stack-spacing));overflow:var(--stack-overflow);transform-origin:top center;transition:var(--compression-transition)}.card-stack--compressed{--compression-intensity: var(--compression-ratio);transform:scale(var(--compression-ratio));transform-origin:top center}.card-in-stack{position:absolute;top:calc(var(--card-index, 0) * var(--stack-spacing));left:0;width:var(--card-width-base);height:var(--card-height-base);opacity:calc(var(--card-visibility) * var(--card-opacity, 1));z-index:calc(100 + var(--card-index, 0));transform:translateZ(0);will-change:transform,opacity;backface-visibility:hidden}.card-in-stack[data-hidden=true]{--card-opacity: 0;transform:translate3d(0,calc(-1 * var(--stack-spacing)),0) scale(.95);transition:all .4s cubic-bezier(.165,.84,.44,1);pointer-events:none}.compression-active-indicator{position:fixed;top:10px;right:10px;background:var(--compression-active-bg);border:1px solid var(--compression-indicator-color);border-radius:var(--border-radius-soft);padding:8px 12px;color:var(--color-text-primary);font-size:.8rem;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@media (max-height: 600px){.solitaire-game{--compression-intensity: .8}}@media (max-height: 500px){.solitaire-game{--compression-intensity: .6}.card-stack{--stack-overflow: hidden}}@media (max-height: 400px){.solitaire-game{--compression-intensity: .4}}@media (orientation: landscape) and (max-height: 500px){.card-stack{--stack-spacing: calc(16px * var(--compression-ratio))}}.card-3d-depth{box-shadow:inset 0 1px #ffffff26,inset 0 -1px #0000001a,0 2px 4px #00000026,0 4px 8px #0000001a,0 8px 16px #0000000d;border:1px solid rgba(0,0,0,.1);transform:translateZ(0);backface-visibility:hidden}.dragging.card-3d-depth{box-shadow:inset 0 1px #fff3,inset 0 -1px #00000026,0 6px 12px #00000040,0 12px 24px #00000026,0 24px 48px #0000001a}.tableau-card-depth-1{box-shadow:0 1px 2px #0000001a}.tableau-card-depth-2{box-shadow:0 2px 4px #0000001f}.tableau-card-depth-3{box-shadow:0 3px 6px #00000024}.tableau-card-depth-4{box-shadow:0 4px 8px #00000029}.tableau-card-depth-5{box-shadow:0 5px 10px #0000002e}.tableau-card-depth-6{box-shadow:0 6px 12px #0003}.tableau-card-depth-7{box-shadow:0 7px 14px #00000038}.premium-felt-bg{background:var(--color-solitaire-bg-gradient);background-image:var(--texture-felt-pattern);box-shadow:var(--ambient-shadow)}.foundation-well{box-shadow:inset 0 2px 4px #0000004d,inset 0 0 8px #00000026,0 1px #ffffff0d;border:1px solid rgba(0,0,0,.2)}.rules-grid{display:grid;grid-template-columns:1fr;gap:2rem;margin:2rem 0}@media (min-width: 768px){.rules-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.rules-grid{grid-template-columns:repeat(3,1fr)}}.rule-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.rule-header h3{color:#1a1a1a!important;font-size:1.25rem!important;margin:0 0 1rem!important;font-weight:600!important;text-align:center!important}.rule-content{color:#333}.rule-list{list-style:none!important;padding:0!important;margin:0!important}.rule-list li{padding:.5rem 0!important;border-bottom:1px solid #f0f0f0!important;color:#333!important;margin:0!important}.rule-list li:last-child{border-bottom:none!important}.comparison-table{display:grid;grid-template-columns:1fr;gap:1.5rem;margin:2rem 0}@media (min-width: 768px){.comparison-table{grid-template-columns:1fr 1fr}}.comparison-item{background:#f8f9fa;padding:1.5rem;border-radius:8px;border:1px solid #e0e0e0}.comparison-item strong{display:block!important;color:#1a1a1a!important;font-size:1.1rem!important;font-weight:600!important;margin-bottom:1rem!important}.comparison-item ul{list-style:none!important;padding:0!important;margin:0!important}.comparison-item li{padding:.25rem 0!important;color:#333!important;margin:0!important}.difficulty-factors{list-style:none!important;padding:0!important;margin:1.5rem 0!important}.difficulty-factors li{padding:.5rem 0!important;border-bottom:1px solid #f0f0f0!important;color:#333!important;margin:0!important}.difficulty-factors li:last-child{border-bottom:none!important}.section-content h3{color:#1a1a1a!important;font-size:1.25rem!important;margin:1.5rem 0 1rem!important;font-weight:600!important}.section-content p{margin:1rem 0!important;color:#333!important;line-height:1.7!important}.section-content ul{margin:1rem 0!important;padding-left:2rem!important}.section-content li{margin:.5rem 0!important;color:#333!important}.section-content strong{color:#1a1a1a!important;font-weight:600!important}@media (max-width: 767px){.rule-card{padding:1rem}.rules-grid,.comparison-table{gap:1rem}.comparison-item{padding:1rem}}
