# Changelog
- Settings: Added Fast Mode toggle to speed up all card animations
- Bug Fix: Auto-play now stops correctly when starting a new game
- Bug Fix: Moving a tableau card no longer blocks picking up other cards
- Bug Fix: Rapidly clicking the stock pile no longer locks the board
- Leaderboard: Players with multiple devices or browsers now appear only once on weekly and all-time leaderboards
- Game: Changing the difficulty now automatically starts a new game
- Visual: Cards now flash with a glow when moved to the foundation instead of confetti
- Bug Fix: Undos are now correctly counted and penalised in the score breakdown
- Bug Fix: Perfect game bonus now accurately reflects hints and undos used in the current game only
- Leaderboard: Click any entry in the full leaderboard to see a detailed score breakdown
- Leaderboard: Your score breakdown is now recorded with each game and submitted alongside your result
- Bug Fix: Auto-play no longer continues making moves after the game has already been won
- Social Media: Updated preview.png (1200x630) for Open Graph and Twitter Card sharing
- Game Variants: Improved switching between variants with automatic save validation
- Game Variants: Starting a new game when no valid save exists for the current variant
- Code Quality: Unified deck system supports all variants through simple configuration
- Code Quality: Streamlined game initialization reduces duplicate code by 90%
- UI: Left menu variant links now use consistent Arial font
- UI: Removed underlines from variant menu items for cleaner appearance
- **New Game Variant: Klondike 1-Suit** - All 52 cards are hearts (4 of each rank)
- Klondike 1-Suit: Simplified rules - build down by rank only (no color matching needed)
- Klondike 1-Suit: Separate statistics and leaderboard tracking
- Game Variants: Custom font styling for variant titles in top bar
- Game Variants: Each variant now shows its specific name (Klondike vs Klondike 1-Suit)
- Statistics: Separate statistics tracking for each game variant
- Statistics: Automatic migration of existing stats to new variant-specific system
- Leaderboard: Sidebar displays stats for the current variant being played
- Mobile UI: Redesigned top bar layout - controls move to second row on smaller screens
- Mobile UI: Reduced side menu font sizes for better mobile experience
- Mobile UI: Bottom navigation auto-hides on scroll for both variants
- Help: Added complete keyboard shortcuts reference to How to Play modal
- Geolocation: Implemented database caching to reduce API usage and improve response times
- Geolocation: Country detection results now stored for 30 days to minimize external API calls
- Performance: 95% reduction in geolocation API calls through intelligent caching
- Bug Fix: Duplicate "Win a game today to get ranked!" message no longer appears
- Maintenance: Added cache cleanup tools and statistics monitoring
- Leaderboard: Implemented server-side caching with 5-minute TTL for improved performance
- Leaderboard: Reduced client cache from 30 minutes to 1 minute for near real-time updates
- Leaderboard: Smart cache invalidation on score submission ensures fresh data propagation
- Leaderboard: Optimistic UI updates show your score immediately after winning
- Leaderboard: Auto-refresh interval reduced from 15 minutes to 1 minute
- Leaderboard: Auto-refresh now pauses when tab is inactive to save bandwidth and battery
- Leaderboard: Automatic refresh when returning to the game tab ensures fresh scores
- Bug Fix: Settings tabs no longer cut off on mobile screens with improved scrolling behavior
- Mobile: Optimized appearance tab layout with fixed 3-column grid and reduced image sizes
- Performance: Auto-complete now 3-4x faster (animation reduced from 300ms to 100ms per card)
- Visual Effects: Added motion graphics to fast-moving cards during auto-complete (motion blur and glow)
- Bug Fix: Background images no longer cut off at edges on ultra-wide or high-resolution displays
- Scoring: Perfect game bonus now excludes auto-solver usage (only awarded for manual play without undo/hints/auto-solver)
- Settings: Enhanced reset functionality to restore all settings including background and card back design
- Credits: Added attribution for background images from Pexels and Unsplash on About page
- UI: Fixed preview grid selection states in settings panel to prevent multiple selections
- UI: Improved card back selection to use config method for proper persistence
- API: Added setCardBack() method to CardRenderer for dynamic card back updates
- Bug Fix: Leaderboard sidebar now refreshes when viewing statistics
- **New Feature: Zen Mode** - Play solitaire in a calming, distraction-free environment
- Zen Mode: Hides competitive elements (timer, score, leaderboard) for stress-free gameplay
- Zen Mode: Slows down animations for a more deliberate, mindful experience
- Zen Mode: Optional breathing prompts appear periodically to encourage mindfulness
- Zen Mode: Toggle on/off anytime from the More menu
- Settings: Redesigned settings panel with organized tabs (Appearance, Effects, Game, Zen, Developer)
- Appearance: Added visual background selector with 15 beautiful options to choose from
- Appearance: Choose from 4 color gradients or 11 scenic background images (ocean, space, nature, and more)
- Appearance: Card back designs now shown with visual previews instead of text dropdown
- Analytics: Added tracking for zen mode usage to help improve the feature
- UX: Cleaner, more intuitive settings interface with tabs and image previews
- System: Removed old daily streak system and replaced with minimal LoginTracker
- Achievements: Daily login achievements now integrated with achievement system (no separate UI)
- Achievements: Login streak tracking simplified - automatic daily check without user interaction
- Code Quality: Consolidated login tracking from standalone feature to achievement data provider
- Blog: Added "How Solitaire Leaderboards Work" guide (/blog/how-solitaire-leaderboards-work)
- Blog: Comprehensive leaderboard strategy guide with ranking mechanics and anti-cheat explanations
- API: LoginTracker emits 'login:daily' events for achievement system integration
- Leaderboard: Implemented LEFT JOIN pattern to find best game per user based on score, moves, and time
- Leaderboard: Added 30-minute caching system with localStorage for improved performance
- Leaderboard: Cache automatically clears when user wins a game to ensure fresh data
- API: Fixed weekly and all-time leaderboard queries to properly deduplicate user entries
- Performance: Reduced unnecessary API calls by serving cached leaderboard data when still valid
- Leaderboard: Added personal rank indicator showing user's current position
- Leaderboard: Added weekly and all-time leaderboard tabs (Today/This Week/All Time)
- Leaderboard: Fixed pagination bug where page 3+ would show "no scores yet" instead of remaining entries
- Leaderboard: Reduced pagination from 25 to 10 entries per page for better mobile experience
- Victory Modal: Added detailed score breakdown side panel
- Victory Modal: Hidden score breakdown button on mobile screens for better mobile experience
- UX: Fixed card clipping during drag operations and victory animations near game area edges
- Scoring: Fixed difficulty multipliers to match frontend (easy: 1.0x, medium: 1.25x, hard: 1.5x)
- Scoring: Updated speed bonuses to 5 tiers (500/400/300/200/100 points for <2/3/5/8/12 min)
- Scoring: Updated efficiency bonuses to 5 tiers (300/200/150/100/50 points for ≤80/100/120/150/200 moves)
- Blog: Fixed scoring examples in "Scoring Explained" post with correct multipliers
- Blog: Changed text alignment from justified to left-aligned for better readability
- Blog: Fixed table centering on mobile devices (removed negative margins)
- Settings: Guaranteed winnable game preference now persists across page refreshes
- Difficulty: Improved easy mode with better card arrangements for faster wins
- Difficulty: Easy mode now provides more accessible foundation cards early in the game
- Difficulty: Enhanced hard mode with more challenging card arrangements
- Difficulty: Hard mode games now average 200+ moves for increased challenge
- Statistics: Added game notation feature to track and reproduce game states
- Statistics: Copy game notation from statistics modal to share or review games
- Performance: Improved game responsiveness and reduced background processing
- UI: Streamlined interface with cleaner visual presentation
- UI: Removed zone labels for a cleaner, more focused game board
- Bug Fix: Settings menu now opens correctly after toggling display options
- Layout: Fixed responsive design system for all screen sizes and orientations
- Layout: Improved consistency of spacing and padding across mobile, tablet, and desktop
- Layout: Fixed zone outline positioning - now correctly positioned when starting new game
- Layout: Optimized portrait mode (vertical orientation) with reduced padding for better card visibility
- Layout: Fixed right-side clipping issue on smaller mobile devices
- Layout: Enhanced card spacing in portrait mode for better visual balance
- Bug Fix: Fixed level increment bug when XP points are accumulated.
- Blog: Added preloading of images in blog listing and updated the glossary blog post.
- Blog: Redesigned blog listing page with responsive grid layout
- Blog: Blog post cards now display with optimized spacing (50px gaps on desktop, 30px mobile)
- Blog: Updated card structure to 3 rows: featured image, metadata, and title
- Blog: Added charcoal background to blog cards for better visual hierarchy
- Blog: Made entire blog card clickable - any click navigates to blog post
- Blog: Added featured image path to $blogPosts array for individual post displays
- Blog: Featured images now display above article content on individual blog post pages
- Blog: Implemented consistent aspect ratio (7:5) across all blog images
- Blog: Added responsive image heights: 350px desktop, 280px tablet, 225px mobile (≤600px)
- UI: Removed blog card borders and rounded corners for cleaner, modern look
- UI: Added hover effects to blog cards (lift animation and shadow on hover)
- Achievements: Added reward system - unlock coins, hints, and XP from achievements
- Achievements: All 25 achievements now display earned rewards in achievement cards
- Achievements: Added "Claim Reward" button for quick reward collection
- Achievements: Rewards automatically awarded to coins, hints, and XP balances
- Economy: Implemented free hints balance from achievement rewards (persistent across games)
- Economy: Free hints display added to top bar in orange with hint icon
- Economy: Updated hint priority system: bonus hints → 3 free per game → paid hints
- UI: Fixed hint panel animations - smooth slide-in/out transitions restored
- UI: Fixed reward notification display - now properly visible above modals
- UI: Improved achievement modal with better visual organization
- Bug Fix: Achievement data migration for backward compatibility with existing players
- Blog: Updated "Scoring Explained" post with complete economy details and examples
- XP & Progression: Complete XP and level system with exponential level progression
- XP & Progression: Added per-level XP reset - counter resets when you level up
- XP & Progression: Beautiful level-up celebration modal with reward display
- Economy: Complete rebalancing - hints cost 25 coins, auto-solver costs 100 coins
- Economy: Daily auto-solver cap increased to 6 total (3 free + 3 paid)
- UI: Changed player level indicator to green (#48BB78) and XP indicator to purple (#A78BFA)
- Blog: Added "Scoring Explained" guide (/blog/klondike-solitaire-scoring-explained)
- Blog: Added "Draw 1 vs Draw 3 Klondike Solitaire: Which Is Harder?" guide (/blog/klondike-draw-1-vs-draw-3)
- Blog: Comprehensive comparison of Draw 1 and Draw 3 game modes with win rate statistics
- Blog: Includes strategy tips, difficulty analysis, and mode selection recommendations
- Blog: Styled comparison table moved to blog.php for dynamic loading across all posts
- UI: Added Leaderboard menu item (🏆) to More button, positioned above Statistics
- UI: Leaderboard button opens full daily leaderboard modal for easy access
- UI: Full leaderboard modal now vertically centered on all screen sizes
- Mobile: Comprehensive mobile responsive styles for full leaderboard modal
- SEO: Optimized post with featured snippets for common search queries
- SEO: Added internal linking to existing blog posts (Rules, Strategy, Glossary)
- SEO: Updated sitemap.xml with new blog post URL and date
- Performance: Removed redundant inline styles from blog post HTML files
- Profile: Added Profile menu item to More button with colorful user icon
- Profile: Created simple profile modal for viewing and editing username
- Profile: Added username validation (2-50 characters)
- UI: Enhanced More button menu with emoji icons (Fullscreen ⛶, Settings ⚙️, Statistics 📊, Feedback 😊)
- UI: Increased icon sizes from 16x16 to 24x24 for better visibility
- Sidebar: Added User Stats section below leaderboard with horizontal table layout
- Sidebar: User Stats displays Win Rate, Best Moves, Best Time, and Best Score
- Sidebar: Added Show button in User Stats to open full statistics modal
- Stats: Connected sidebar stats to existing statistics tracking system
- Blog: Added Klondike Solitaire Strategy & Tips guide (/blog/klondike-solitaire-strategy)
- SEO: Updated sitemap.xml with new blog post URL and dates
- Blog: Improved page title structure for better SEO
- Blog: Added comprehensive Klondike Solitaire Rules guide (/blog/klondike-solitaire-rules)
- Blog: Added Klondike Solitaire Strategy & Tips guide (/blog/klondike-solitaire-strategy)
- Blog: Added complete Klondike Solitaire Glossary (/blog/solitaire-glossary)
- Blog: Implemented clean URL structure for blog posts (/blog/post-slug format)
- Blog: Added internal linking between related blog posts
- Blog: Implemented dynamic SEO metadata extraction in blog
- Blog: Added SEO preview section showing how posts appear in search results
- Configuration: Created environment configuration system with .env support
- Configuration: Implemented dynamic base URL configuration
- SEO: Updated sitemap.xml with new blog post URLs
- SEO: Added canonical URL support with environment-aware base URLs
- SEO: Implemented Schema.org Article structured data for blog posts
- SEO: Added Open Graph (OG) meta tags for social media sharing
- Leaderboard: Integrated IP-based automatic country detection via server-side geolocation
- Leaderboard: Changed auto-refresh polling from 60 seconds to 15 minutes for reduced server load
- Leaderboard: Added full leaderboard modal with pagination (25 entries per page)
- Leaderboard: Implemented game type dropdown selector in full leaderboard modal
- Leaderboard: Highlighted current user's row in full leaderboard with blue background
- API: Added user_fingerprint to full leaderboard response for identifying current user
- API: Added country_code field support in full leaderboard responses
- Styling: Added comprehensive CSS for full leaderboard modal with glassmorphic design
- Styling: Added difficulty badge styling with color-coded backgrounds
- Styling: Added pagination controls and page info styling
- Styling: Full leaderboard table styling with sticky headers and hover effects
- Victory Animation: Enhanced bounce animation with higher initial velocity for dramatic effect
- Victory Animation: Bounce animation now waits for all cards to reach ground, fades them together, then shows modal
- Victory Animation: Explosion animation now moves cards with random velocity and staggered start delays
- Victory Animation: Explosion animation waits for all cards to move completely off-screen before modal appears
- Victory Animation: Falling animation now waits until all cards completely fall off-screen before modal appears
- Victory Animation: Increased timing buffers for all animations to prevent premature modal display
- SEO: Added favicon links to all pages (about, privacy, terms, blog, changelog, klondike-solitaire)
- SEO: Ensures consistent favicon recognition across all pages in Google Search results
- UI: Significantly reduced daily streak modal size to use less screen real estate
- UI: Reduced flame emoji from 64px to 40px, streak number from 48px to 32px
- UI: Decreased padding and margins throughout streak modal for compact layout
- UI: Updated mobile breakpoints for consistent streak modal sizing across devices
- Fix: Achievement system now properly tracks First Victory achievement
- Fix: Corrected game:won event properties (gamesPlayed, gamesWon, currentStreak)
- Feat: New customizable card back designs
- Feat: Card back design selector in Settings panel (Appearance section)
- Feat: Card back preference persists to localStorage across sessions
- Feat: Double-tap to move cards (quick single-card auto-move to valid destinations)
- Feat: Shake animation with "wrong" sound when double-tapping card with no valid moves
- Feat: Top card validation for double-tap (only topmost cards can be moved via double-tap)
- Audio: Added redeem.mp3 for daily streak reward claiming
- Audio: Added place.mp3 for tableau card placements
- Audio: Randomly alternate between powerup.mp3 and powerup2.mp3 for foundation moves
- Audio: Debounced place sound for multi-card sequences (plays once per move, not once per card)
- Audio: Fixed playVictory() to play victory.mp3 on game win
- Fix: Double-tap card move now flips newly exposed cards in source tableau
- Fix: Double-tap move updates game state, move counter, and enables undo/redo
- Fix: Auto-complete card animations now visible (smooth slide to foundation)
- Fix: Prevent victory sound from playing multiple times
- Refactor: CardRenderer now accepts config parameter for dynamic card back path
- UI: Settings panel dropdown options updated with friendly names for card designs
- Pages: Created dedicated Klondike Solitaire landing page (klondike-solitaire.php) for SEO and discovery
- Pages: Klondike page includes game embed (iframe), rules, how-to-play, draw modes, strategy tips, and FAQ
- Pages: Added structured data (FAQ schema) to Klondike page for enhanced search engine indexing
- Navigation: Added "Klondike Solitaire" link to footer navigation under Product column
- Typography: Applied Varela font globally for all headings (h1-h6)
- Typography: Applied PT Sans font globally for all body text and paragraphs
- Typography: Google Fonts integrated via styles.css for site-wide consistency
- Security: Created CSP meta snippet (src/csp-meta.php) for font-face and Google Fonts support
- Security: Updated Content-Security-Policy headers in all PHP pages to allow Google Fonts
- Hero Section: Redesigned Klondike page hero with modern layered radial gradients and decorative orbs
- Hero Section: Changed hero background from green to grayscale for cleaner, modern aesthetic
- Hero Section: Added box-shadow and improved border styling to hero section
- Header: Fixed page header h1 centering using absolute positioning for back-link element
- Header: H1 headings in page headers now perfectly centered regardless of back-link width
- Iframe: Hidden about_component and site-footer when game is embedded in iframe
- Iframe: Disabled scrolling in embedded game iframe with scrolling="no" attribute
- Content: Aligned strategy tips between homepage and Klondike page for consistency
- SEO: Updated sitemap.xml with new Klondike Solitaire page (priority: 0.9)
- Content: Klondike page tips now match comprehensive homepage tips (9 detailed strategies)
- Footer: Redesigned footer with glassmorphism styling and improved layout
- Footer: Added version number display in footer (auto-updated via PHP)
- Pages: About page with comprehensive information about the game and company
- Pages: Privacy Policy page with data collection and usage details
- Pages: Terms of Service page with legal documentation
- Pages: Blog page (coming soon placeholder)
- Navigation: Created static page structure with back-to-game navigation
- Scrollbar: Fixed scrollbar appearance and behavior on static pages
- Scrollbar: Improved scrolling performance and visual consistency
- Vite Config: Updated configuration for improved build process
- Migration: Converted static HTML files to PHP for better template management
- Styling: Applied dark theme styling to all static pages for visual consistency
- Victory Animation: Fixed cleanup to preserve normal card positioning (top, left, transform)
- Victory Animation: Cleanup now only clears animation-specific properties and CSS variables
- Victory Animation: Modal now waits for all animations to complete and cards to disappear before showing
- Victory Animation: Bouncing animation now falls directly to game area bottom (fixed card height calculation)
- Victory Animation: Fixed bug where animated cards became dark and unusable screen after victory
- Victory Animation: Added automatic cleanup of animation classes and CSS variables after animation completes
- Victory Animation: Cleanup triggered on victory button clicks, new game start, and undo from won game
- Victory Animation: Hidden animated cards (display: none) after animation completes to prevent visual artifacts
- CSS Fix: Added pointer-events: none to falling, exploding, and bouncing card animations
- CSS Fix: Added overflow: hidden to #game-area to clip particles at boundaries
- Confetti Effect: Fixed browser window expansion caused by confetti particles extending beyond game area
- Confetti Effect: Changed particle container from document.body to game.gameArea for proper clipping
- Confetti Effect: Fixed coordinate system to use game-area-relative positioning instead of viewport-relative
- Mobile UI: Reduced streak button padding on mobile screens to match score and timer buttons
- Mobile UI: Reduced left menu width by 25% on small mobile screens (max-width: 480px)
- Footer: Added modern glassmorphism footer with three-column layout (Legal, Product, Resources)
- Footer: Implemented mobile accordion for footer columns on screens ≤768px with smooth animations
- Footer: Added analytics tracking for all footer link clicks (footer_link_clicked event)
- Pages: Created Terms of Service page with comprehensive legal documentation
- Pages: Created Privacy Policy page with data collection and usage information
- Pages: Created About page with company info, game features, technology stack, and architecture details
- Pages: Created Blog placeholder page (Coming Soon)
- Auto-Complete: Added automatic card movement to foundations when stock is empty and all cards face-up
- Auto-Complete: Smart detection system checks game state after each move
- Auto-Complete: Randomized delays (100-300ms) between moves for realistic visual effect
- Auto-Complete: Disabled undo/redo during auto-complete execution
- Difficulty: Completely removed "Winnable" difficulty mode and associated shuffle algorithm
- Difficulty: Enhanced Easy mode with complete algorithm rewrite
- Developer: Added utility functions to toggle developer options in settings panel
- UI: Removed "Winnable Deal" button from More menu and event listeners
- Achievement Notifications: Fixed overlapping by implementing vertical stacking system
- Achievement Notifications: Each notification positions below the previous one with 10px spacing
- Achievement Notifications: Smooth animation when repositioning after a notification is dismissed
- Victory Modal: Added "Give Feedback" button to collect user feedback after winning
- Victory Modal: Added "View Stats" button for quick access to statistics
- Victory Modal: Redesigned button layout with primary/secondary styling
- Victory Modal: Added 3 random victory animations (falling, exploding, bouncing)
- Feedback System: Added feedback modal with star rating (1-5 stars)
- Feedback System: Optional email field and game context (moves, time, score) automatically included
- Feedback System: Backend integration for dual support/feedback handling
- Social Media: Added preview.png (1200x630) for Open Graph and Twitter Card sharing
- UI: Added duplicate event listener prevention in UIController
- UI: Changed active button highlight color from red to blue (#4A9EFF)
- UI: Removed pulse animation from active buttons
- Difficulty: Fixed winnable deals to be truly random with triple shuffle
- Difficulty: Each winnable deal now generates unique card arrangements
- Menu: Removed "Winnable Deal", "Draw From Stock", and "Full autoplay" from More menu
- Mobile Portrait Optimization: Maximized card size with minimal spacing (3% gaps, 2px padding)
- Mobile Portrait Optimization: Hidden tableau zone outlines while keeping them interactive
- Mobile Portrait Optimization: Reduced horizontal padding from 10px to 2px
- Mobile Portrait Optimization: Cards scale proportionally based on height constraints
- Layout Centering: Vertically centered game content with equal top and bottom spacing
- Tableau Height: Optimized to 86% of available space to prevent card overflow
- Tableau Overlap: Increased by 2px for better card visibility in stacks
- Landscape Mode: Fixed 80vh height with automatic element scaling
- Bug Fix: Fixed mobile drag and drop by enabling pointer events on zone outlines
- Bug Fix: Fixed zone outline opacity toggle to maintain interactivity
- Dynamic Layout System: Complete refactoring of layout engine for true responsive design
- Dynamic Layout System: Replaced 200+ lines of breakpoint conditionals with container-based calculations
- Dynamic Layout System: All dimensions calculated dynamically from actual game container size
- Dynamic Layout System: Eliminated hardcoded breakpoints (380px, 480px, 768px, 1920px, 2560px)
- Dynamic Layout System: Works on any screen size from 320px phones to 5K monitors
- Dynamic Layout System: Card dimensions calculated using standard aspect ratio (1.4:1)
- Dynamic Layout System: Spacing, overlaps, and padding scale proportionally with card size
- Dynamic Layout System: CSS variables (--card-width, --card-height) for instant visual updates
- Dynamic Layout System: Window resize handler with debouncing for responsive recalculation
- Dynamic Layout System: Automatic layout recalculation after page load
- Dynamic Layout System: 90% reduction in layout code complexity
- Tableau Naming: Changed tableau columns from 0-indexed to 1-indexed (tableau-1 through tableau-7)
- SEO: Moved about_component before game-container in HTML for better SEO
- Bug Fix: Fixed game-area container height being 0 on initial load
- Accessibility: Removed viewport scaling restrictions and added main landmark
- SEO: Added comprehensive about section with 800+ words of keyword-rich content
- Scroll: Auto-hiding bottom navigation on scroll with smooth animations
- Scroll: Added floating scroll-to-top button with upward arrow
- Dark Mode: Styled about section with dark gradient background matching game theme
- Responsive: Optimized tableau zone heights for mobile vs desktop screens
- Keyboard Shortcuts: Added H (hints), S (settings), T (statistics), A (achievements), D (draw), Ctrl+Y (redo)
- Achievements: Added comprehensive achievement/badge system with 22 achievements
- Achievements: Categories include Wins, Speed, Efficiency, Win Streaks, Foundations, Skill, Daily Login, Volume
- Achievements: Display button in top bar (desktop only) with blue medal icon
- Achievements: Beautiful modal with progress tracking and locked/unlocked states
- Achievements: Slide-in notifications when achievements are unlocked
- Achievements: Progress bars and categorized display
- Achievements: LocalStorage persistence for achievement progress
- Achievements: Sound effects play when achievements unlock
- Removed first-time streak welcome popup
- Added sound effects for card flips and rewards
- Added confetti animation for foundation placements
- Created CHANGELOG.md file with version history
- Externalized changelog to separate markdown file
- Bug Fix: Streak reward balances update immediately
- Bug Fix: Card flip events properly emitted
- Bug Fix: Improved modal scrollability
- Added daily streak system with rewards
- Added coins and hints balance tracking
- Fixed modal balance updates
- Improved mobile touch controls
- Added changelog section
- Performance improvements for card dragging
- GPU-accelerated animations
- Fixed streak modal scrolling
- Added support contact form
- Enhanced modal backdrop styling
- Implemented hint system with priority-based suggestions
- Added undo/redo functionality with keyboard shortcuts
- Mobile responsive design with adaptive layouts
- Touch gesture support for all interactions
- Added scoring and XP system
- Added game timer with elapsed time display
- LocalStorage auto-save for game state
- Statistics tracking (games played, win rate)
- Victory celebration animation
- Multi-card sequence dragging
- Initial release of Klondike Solitaire
- Drag and drop card movement
- Auto-play solver with smart move detection
- Multiple color schemes (blue, green, purple)
- Winnable deal generator
- Foundation and tableau validation rules