.loading-screen{position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;z-index:9999}.loading-content{text-align:center;padding:40px;background:#fffffff2;border-radius:20px;box-shadow:0 20px 40px #0000001a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);min-width:280px;max-width:400px}.loading-icon{margin-bottom:20px}.loading-message{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin-bottom:10px}.loading-submessage{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;opacity:.8}.progress-container{margin:20px auto}.loading-dots{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:20px}.loading-dots span{width:8px;height:8px;border-radius:50%;background:#2196f3;animation:loading-bounce 1.4s ease-in-out infinite both}.loading-dots span:nth-child(1){animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}@keyframes loading-bounce{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}@media (prefers-color-scheme: dark){.loading-screen{background:linear-gradient(135deg,#1a1a2e,#16213e)}.loading-content{background:#1e1e1ef2;border:1px solid rgba(255,255,255,.1)}}@media (max-width: 768px){.loading-content{margin:20px;padding:30px 20px;min-width:auto}}.player-progress-container{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;padding:12px;background:#ffffffe6;border-radius:8px;box-shadow:0 2px 8px #0000001a}.player-progress-item{display:flex;align-items:center;gap:12px;position:relative}.player-info{display:flex;flex-direction:column;gap:4px;min-width:120px}.player-name{font-weight:600;color:#2d3748}.player-stats{display:flex;justify-content:space-between;align-items:center;gap:8px}.progress-percentage{font-weight:500;color:#718096}.player-hearts{font-weight:500;color:#e53e3e}.progress-bar{flex:1;height:8px;border-radius:4px}.progress-bar.completed{background:linear-gradient(90deg,#4caf50,#66bb6a)}.completion-icon{color:#4caf50;font-size:20px;margin-left:8px}.player-progress-container-header{display:flex;align-items:center;padding:0;background:transparent;min-width:120px;width:100%}.player-progress-bars-container{display:flex;flex-direction:column;gap:6px;width:100%;padding:0 4px}.player-progress-compact{width:100%;height:4px}.progress-count{font-size:.7rem;font-weight:500;color:#4a5568;min-width:20px;text-align:right}.progress-bar-header{flex:1;transition:all .3s ease}.progress-bar-header.completed{background:linear-gradient(90deg,#4caf50,#66bb6a)}.progress-bar-header.your-progress{box-shadow:0 1px 3px #0000001a}.opponent-progress.heart-lost-flash{animation:heartLostFlash .6s ease-in-out}@keyframes heartLostFlash{0%,to{transform:scale(1);box-shadow:none}25%{transform:scale(1.02);box-shadow:0 0 8px #ef444499}50%{transform:scale(1.04);box-shadow:0 0 12px #ef4444cc;filter:brightness(1.2)}75%{transform:scale(1.02);box-shadow:0 0 8px #ef444499}}@keyframes countdownOverlayIn{0%{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}to{opacity:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}.countdown-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999;animation:countdownOverlayIn .3s ease-out}.countdown-content{text-align:center;color:#fff}.countdown-number{font-size:4rem;font-weight:700;margin-bottom:16px;animation:pulse 1s ease-in-out infinite}.countdown-text{font-size:1.5rem;opacity:.9}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.game-state-indicator{display:flex;align-items:center;gap:8px;margin-bottom:16px}.state-chip{font-weight:500}.connecting-spinner{margin-left:8px}.waiting-room{max-width:400px;margin:0 auto;padding:24px;background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a}.waiting-title{text-align:center;margin-bottom:24px;color:#2d3748;font-weight:600}.room-info{text-align:center;margin-bottom:24px;padding:16px;background:#f7fafc;border-radius:8px}.room-id{font-family:Courier New,monospace;font-size:1.1rem}.players-list{margin-bottom:24px}.players-title{margin-bottom:12px;color:#4a5568;font-weight:600}.player-item{padding:8px 12px;background:#f7fafc;border-radius:6px;margin-bottom:8px;border-left:3px solid #4299e1}.invite-section{margin-bottom:24px}.invite-label{margin-bottom:8px;color:#4a5568;font-weight:500}.invite-link-container{display:flex;gap:8px;align-items:center;padding:12px;background:#f7fafc;border-radius:6px;border:1px solid #e2e8f0}.invite-link{flex:1;font-family:Courier New,monospace;font-size:.9rem;color:#2d3748;word-break:break-all}.copy-button{flex-shrink:0;min-width:60px}.start-game-button{background:linear-gradient(135deg,#4299e1,#3182ce);color:#fff;font-weight:600;padding:12px 24px;border-radius:8px;text-transform:none;font-size:1rem}.start-game-button:hover{background:linear-gradient(135deg,#3182ce,#2c5aa0)}.waiting-alert{margin-top:16px}.multiplayer-result-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:10000}.multiplayer-result-content{max-width:500px;margin:0 auto;padding:32px;background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;text-align:center}.result-title{font-weight:700;text-align:center;margin-bottom:16px}.result-message{color:#4a5568;line-height:1.6}.final-scores{background:#f7fafc;border-radius:12px;padding:16px}.player-final-score{border-radius:8px;transition:background-color .2s ease}.result-buttons{margin-top:24px}@media (max-width: 768px){.player-progress-container{padding:8px}.player-info{min-width:100px}.player-progress-container-header{min-width:120px}.player-name-header{font-size:.7rem}.countdown-number{font-size:3rem}.countdown-text{font-size:1.2rem}.waiting-room{margin:16px;padding:16px}.invite-link-container{flex-direction:column;align-items:stretch}.copy-button{margin-top:8px}}.app{height:100vh;height:100dvh;width:100%;max-width:100%;padding:0;margin:0;display:flex;flex-direction:column;overflow-x:hidden;background:#fff;box-sizing:border-box;position:relative;transition:filter .5s ease-out;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)}.app.app-game-over-blurred{filter:blur(5px) grayscale(50%) brightness(.7)}.loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:1.5rem;color:#fff}.app-header{display:flex;justify-content:space-between;align-items:center;color:#2d3748;padding:.625rem .5rem;width:100%;max-width:100%;box-sizing:border-box;padding-top:max(.625rem,env(safe-area-inset-top,.625rem));padding-left:max(.5rem,env(safe-area-inset-left,.5rem));padding-right:max(.5rem,env(safe-area-inset-right,.5rem))}.header-left{display:flex;align-items:center;flex:1}.app-header.multiplayer .header-left{flex:0 0 auto;margin-right:8px;min-width:40px}.header-multiplayer-section{display:flex;align-items:center;justify-content:center;flex:1;width:100%;margin:0 8px}.difficulty-display{display:flex;align-items:center;font-size:.9rem;font-weight:500}.difficulty-value{padding:4px 12px;border-radius:12px;font-weight:500;font-size:.6rem;text-transform:uppercase;letter-spacing:.5px;background:#f0f0f0;color:#666}.continue-game-overlay{background:#000c}.continue-game-popup{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;max-width:400px;width:90%;max-height:90vh;overflow-y:auto}.continue-game-content{padding:0 24px 24px}.game-info{background:#f8f9fa;border-radius:8px;padding:16px;margin-bottom:20px}.game-info-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.game-info-item:last-child{margin-bottom:0}.info-label{font-weight:500;color:#666;font-size:.9rem}.time-value{font-family:Courier New,monospace;font-weight:700;color:#333;font-size:1rem}.continue-description{text-align:center;color:#666;line-height:1.5;margin:0}.continue-game-buttons{display:flex;gap:12px;justify-content:center}.continue-game-buttons .btn{flex:1;max-width:150px;display:flex;align-items:center;justify-content:center;gap:8px}.continue-game-buttons .btn svg{font-size:1.1rem}.app-blurred{filter:blur(3px);pointer-events:none}.hearts-container{flex:0 0 auto;display:flex;justify-content:flex-end;gap:.25rem;margin-left:8px}.hearts-container.shake{animation:shake .6s ease-in-out}.heart{display:inline-flex;align-items:center}.heart-filled{color:#dc2626;font-size:1.5rem}.heart-empty{color:#e5e7eb;font-size:1.5rem}.timer-progress-section{display:flex;flex-direction:column;align-items:center;gap:4px;flex:2;margin:0 8px;min-width:200px}.timer-container{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-bottom:2px}.timer{font-size:.9rem;font-weight:600;color:#a9a9a9;min-width:50px;text-align:center}.pause-button{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;color:#a9a9a9;font-size:1rem;transition:all .2s;border-radius:.25rem;width:1.5rem;height:1.5rem}.pause-button:hover:not(:disabled){color:#667eea;background:#667eea1a}.pause-button:disabled{opacity:.5;cursor:not-allowed}.pause-button svg{font-size:1rem}.pause-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;justify-content:center;align-items:center;z-index:100;border-radius:inherit;animation:pauseBlurIn .3s ease-out}.pause-content{text-align:center;padding:2rem;background:#fffffff2;border-radius:1rem;box-shadow:0 1rem 2rem #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);max-width:20rem;width:90%;animation:pauseContentIn .3s ease-out .1s both}.pause-content h2{margin:0 0 1rem;font-size:1.5rem;font-weight:600;color:#2d3748}.pause-content p{margin:0 0 2rem;color:#718096;font-size:1rem;line-height:1.5}.resume-button{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;font-size:1.1rem;padding:.75rem 1.5rem}.resume-button svg{font-size:1.2rem}.game-over-overlay-fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000001a;display:flex;justify-content:center;align-items:center;z-index:1000;animation:gameOverIn .5s ease-out}.game-over-content{text-align:center;padding:2.5rem;background:#fffffff2;border-radius:1rem;box-shadow:0 1.25rem 2.5rem #0003;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);max-width:22rem;width:90%;animation:gameOverContentIn .5s ease-out .2s both}.game-over-content h2{margin:0 0 1rem;font-size:1.75rem;font-weight:700;color:#dc2626}.game-over-content p{margin:0 0 2rem;color:#4a5568;font-size:1rem;line-height:1.6}.game-over-buttons{display:flex;gap:.75rem;width:100%}.game-over-content .btn{display:flex;align-items:center;justify-content:center;gap:.5rem;flex:1;font-size:1rem;padding:.75rem 1rem;white-space:nowrap}.game-over-content .btn svg{font-size:1.1rem}.game-over-screen{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;text-align:center;padding:2rem}.game-over-screen h1{color:#dc2626;font-size:3rem;margin-bottom:1rem;font-weight:700}.game-over-screen p{color:#4a5568;font-size:1.25rem;margin-bottom:2rem;max-width:400px}.game-container{flex:1;width:100%;max-width:100%;min-width:0;display:flex;flex-direction:column;overflow:hidden;padding:.25rem;box-sizing:border-box;min-height:0;position:relative;padding-left:max(.25rem,env(safe-area-inset-left,.25rem));padding-right:max(.25rem,env(safe-area-inset-right,.25rem))}.game-content{display:flex;flex-direction:column;flex:1;min-height:0;transition:filter .3s ease-out}.game-content.game-blurred{filter:blur(8px);opacity:.7;pointer-events:none;-webkit-user-select:none;user-select:none}.countdown-active .game-content.game-blurred,.waiting-active .game-content.game-blurred{filter:blur(12px);opacity:.5}.waiting-active .game-content.game-blurred{transition:all .5s ease-out}.btn{padding:.625rem 1.25rem;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary{background:#667eea;color:#fff}.btn-primary:hover{background:#5a67d8;transform:translateY(-.125rem)}.btn-secondary{background:#e2e8f0;color:#4a5568}.btn-secondary:hover{background:#cbd5e0;transform:translateY(-.125rem)}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover{background:#b91c1c;transform:translateY(-.125rem)}.sudoku-grid{display:grid;grid-template-rows:repeat(9,1fr);gap:0;background:#fff;border-radius:.75rem;overflow:hidden;width:100%;max-width:100%;height:auto;aspect-ratio:1;align-self:center;margin:0;box-sizing:border-box}.control-button.hint-arcade{background:linear-gradient(135deg,#fff,#f8fafc);color:#374151;border:1px solid #d1d5db}.control-button.hint-arcade:focus,.control-button.hint-arcade:active{background:linear-gradient(135deg,#fff,#f8fafc)!important;color:#374151!important;border:1px solid #d1d5db!important;outline:none!important;box-shadow:none!important}.control-button.hint-hard{background:linear-gradient(135deg,#ecfff3,#f4f9f5);color:#374151;border:1px solid #d1d5db}.control-button.hint-hard:focus,.control-button.hint-hard:active{background:linear-gradient(135deg,#ecfff3,#f4f9f5)!important;color:#374151!important;border:1px solid #d1d5db!important;outline:none!important;box-shadow:none!important}.control-button.hint-medium{background:linear-gradient(135deg,#d5ffe2,#ecfdf5);color:#166534;border:1px solid #bbf7d0}.control-button.hint-medium:focus,.control-button.hint-medium:active{background:linear-gradient(135deg,#d5ffe2,#ecfdf5)!important;color:#166534!important;border:1px solid #bbf7d0!important;outline:none!important;box-shadow:none!important}.control-button.hint-novice{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:1px solid #047857}.control-button.hint-novice:focus,.control-button.hint-novice:active{background:linear-gradient(135deg,#10b981,#059669)!important;color:#fff!important;border:1px solid #047857!important;outline:none!important;box-shadow:none!important}.digit-button.valid-hint{background:linear-gradient(135deg,#f0fdf4,#ecfdf5)!important;border:1px solid #bbf7d0!important;box-shadow:0 0 0 1px #22c55e1a!important}.digit-button.valid-hint:hover{background:linear-gradient(135deg,#ecfdf5,#dcfce7)!important;transform:translateY(-1px)}.digit-button.valid-hint .digit-number{color:#15803d;font-weight:500}.sudoku-row{display:grid;grid-template-columns:repeat(9,1fr);gap:0}.cell-container{background:#fff;width:100%;height:100%;display:flex;align-items:center;justify-content:center;box-sizing:border-box;border-right:.0625rem solid #e2e8f0;border-bottom:.0625rem solid #e2e8f0;padding:.0625rem}.sudoku-row:nth-child(3n) .cell-container{border-bottom:.125rem solid #a0aec0}.sudoku-row .cell-container:nth-child(3n){border-right:.125rem solid #a0aec0}.sudoku-row:last-child .cell-container{border-bottom:none}.sudoku-row .cell-container:last-child{border-right:none}.sudoku-cell{width:80%;height:80%;border:none;text-align:center;font-size:1.5rem;font-weight:600;background:#f7fafc;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border-radius:50%;box-shadow:0 .0625rem .1875rem #0000001a;aspect-ratio:1;position:relative}.sudoku-cell:focus{outline:none;background:#e3f2fd}.sudoku-cell.original{background:#edf2f7;color:#2d3748;cursor:pointer;font-weight:700;box-shadow:0 .0625rem .1875rem #0000001f}.sudoku-cell.user{background:#f7fafc;color:#667eea;box-shadow:0 .0625rem .1875rem #0000001a}.sudoku-cell.selected{background:#667eea!important;color:#fff;box-shadow:0 .1875rem .375rem #667eea66;transform:scale(1.1)}.sudoku-cell.selected.empty-cell{background:linear-gradient(135deg,#8b5cf6,#a855f7)!important;color:#fff;box-shadow:0 .25rem .5rem #8b5cf699,0 0 0 .125rem #a855f74d,inset 0 .0625rem .125rem #fff3;transform:scale(1.15);border:.125rem solid rgba(168,85,247,.4);animation:purplePulse 1.5s ease-in-out infinite}@keyframes purplePulse{0%,to{box-shadow:0 .25rem .5rem #8b5cf699,0 0 0 .125rem #a855f74d,inset 0 .0625rem .125rem #fff3}50%{box-shadow:0 .375rem .75rem #8b5cf6cc,0 0 0 .1875rem #a855f780,inset 0 .0625rem .125rem #ffffff4d}}.sudoku-cell.highlighted{background:#f3e5f5!important;box-shadow:0 .125rem .25rem #9c27b04d;border:.0625rem solid rgba(156,39,176,.2)}.sudoku-cell.same-number{background:#8e24aa!important;color:#fff!important;box-shadow:0 .25rem .5rem #8e24aa80;transform:scale(1.08);font-weight:700;border:.125rem solid rgba(142,36,170,.8)}.sudoku-cell.related-to-same-number{background:#faf5ff!important;box-shadow:0 .0625rem .1875rem #9c27b033}.sudoku-cell.green-highlighted{background:#c6f6d5!important;color:#22543d!important;box-shadow:0 .125rem .25rem #48bb7866;animation:greenHighlight 2s ease-in-out}.sudoku-cell.error{background:#fed7d7!important;color:#e53e3e!important;box-shadow:0 .125rem .25rem #e53e3e66}.sudoku-cell:disabled{cursor:default}.notes-container{position:absolute;top:-.35rem;left:-.35rem;right:-.35rem;bottom:-.35rem;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;pointer-events:none}.note{display:flex;align-items:center;justify-content:center;font-size:.5rem;font-weight:500;color:#667eea}.note.top-left{align-items:flex-start;justify-content:flex-start;padding:.15rem 0 0 .15rem}.note.top-right{align-items:flex-start;justify-content:flex-end;padding:.15rem .15rem 0 0}.note.bottom-left{align-items:flex-end;justify-content:flex-start;padding:0 0 .15rem .15rem}.note.bottom-right{align-items:flex-end;justify-content:flex-end;padding:0 .15rem .15rem 0}.control-button.notes-active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:1px solid #5a67d8}.control-button.notes-active:hover:not(:disabled){background:linear-gradient(135deg,#5a67d8,#6b46c1);border-color:#4c51bf;transform:scale(1.02);box-shadow:0 .25rem .375rem #667eea4d}.control-button.notes-active:active:not(:disabled){transform:scale(.98);background:linear-gradient(135deg,#4c51bf,#553c9a)}.sudoku-cell.animating{animation:cellAnimation .1s ease-out;background:#e8f4fd!important;color:#1976d2!important;font-weight:700;box-shadow:0 .125rem .25rem #1976d24d;border:.0625rem solid rgba(25,118,210,.2);transform:scale(1.02);cursor:not-allowed}@keyframes cellAnimation{0%{transform:scale(1);opacity:.8}50%{transform:scale(1.05);opacity:1}to{transform:scale(1.02);opacity:1}}.digit-buttons-container{width:100%;margin:.75rem 0 .5rem}.digit-buttons{display:grid;grid-template-columns:repeat(5,1fr);gap:.375rem;margin-bottom:.375rem;width:100%}.digit-button{background:#fff;color:#2d3748;border:.0625rem solid #e2e8f0;border-radius:50%;font-size:1.1rem;font-weight:700;width:100%;min-height:2.8125rem;cursor:pointer;transition:all .15s;touch-action:manipulation;-webkit-tap-highlight-color:transparent;box-shadow:0 .125rem .25rem #0000000d;aspect-ratio:1;display:flex;align-items:center;justify-content:center;max-width:3.75rem;justify-self:center;position:relative}.digit-content{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;width:100%}.digit-number{font-size:1.5rem;font-weight:700;line-height:1}.digit-button:not(.clear-button-style) .digit-number{padding-top:.75rem}.digit-button.no-count .digit-number{padding-top:0}.digit-button:hover:not(:disabled){background:#f7fafc;border-color:#cbd5e0;transform:scale(1.02);box-shadow:0 .25rem .375rem #0000001a}.digit-button:active:not(:disabled){transform:scale(.98);background:#edf2f7}.digit-button:disabled{background:#e2e8f0;color:#a0aec0;cursor:not-allowed;box-shadow:none}.clear-button-style{background:#fef5e7!important;color:#d69e2e!important;border-color:#f6e05e!important;font-weight:700;font-size:1.2rem}.clear-button-style:hover:not(:disabled){background:#faf089!important;border-color:#ecc94b!important;color:#b7791f!important;transform:scale(1.02)}.clear-button-style:active:not(:disabled){transform:scale(.98);background:#ecc94b!important}.remaining-count{font-size:.6rem;font-weight:600;color:#a0aec0;padding:.0625rem .25rem;min-width:.75rem;text-align:center;transition:all .2s;line-height:1;margin-top:.125rem}.remaining-count:empty{display:none}.remaining-count.completed{color:#fff}.control-buttons{display:flex;justify-content:center;align-items:flex-start;gap:1rem;padding:0 .3125rem;margin-top:.25rem;padding-bottom:max(.5rem,env(safe-area-inset-bottom,.5rem));padding-left:max(.3125rem,env(safe-area-inset-left,.3125rem));padding-right:max(.3125rem,env(safe-area-inset-right,.3125rem))}.control-button-group{display:flex;flex-direction:column;align-items:center;gap:.15rem}.control-label{font-size:.65rem;font-weight:500;color:#718096;text-align:center;line-height:1;min-height:.8rem;text-transform:capitalize;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.control-button{background:#fff;border:.0625rem solid #e2e8f0;border-radius:50%;width:2.8125rem;height:2.8125rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;touch-action:manipulation;-webkit-tap-highlight-color:transparent;box-shadow:0 .125rem .25rem #0000000d;aspect-ratio:1;color:#4a5568}.control-button:hover:not(:disabled){background:#f7fafc;border-color:#cbd5e0;transform:scale(1.02);box-shadow:0 .25rem .375rem #0000001a}.control-button:active:not(:disabled){transform:scale(.98);background:#edf2f7}.control-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.control-button svg{font-size:1rem}.control-button.buymeacoffee-button{background:linear-gradient(135deg,#ff813f,#ff6b35);color:#fff;border:1px solid #e53e3e;text-decoration:none;display:flex;align-items:center;justify-content:center}.control-button.buymeacoffee-button:hover{background:linear-gradient(135deg,#e53e3e,#c53030);border-color:#c53030;transform:scale(1.05);box-shadow:0 .25rem .375rem #e53e3e4d}.control-button.buymeacoffee-button:active{transform:scale(.98);background:linear-gradient(135deg,#c53030,#9c2a2a)}.control-button.buymeacoffee-button #logo{display:flex;align-items:center;justify-content:center}.control-button.buymeacoffee-button #logo svg{width:1.5rem;height:2.2rem}.control-button.buymeacoffee-button #logo svg path[fill="#FFDD00"]{fill:#fd0}.control-button.buymeacoffee-button #logo svg path[fill="#0D0C22"]{fill:#fff}@media (max-width: 22.5rem){.game-container{padding:.0625rem;padding-left:max(.0625rem,env(safe-area-inset-left,.0625rem));padding-right:max(.0625rem,env(safe-area-inset-right,.0625rem))}.digit-buttons-container{margin:.25rem 0 .0625rem}.digit-buttons{gap:.1875rem;margin-bottom:.1875rem}.digit-button{min-height:2rem;max-width:2.5rem}.digit-number{font-size:1rem}.remaining-count{font-size:.5rem;margin-top:.03125rem}.control-buttons{gap:.375rem;margin-top:0;padding-bottom:max(.1875rem,env(safe-area-inset-bottom,.1875rem))}.control-button{width:2rem;height:2rem}.control-button svg{font-size:.75rem}.control-label{font-size:.5rem}.control-button-group{gap:.03125rem}.control-button.buymeacoffee-button #logo svg{width:.875rem;height:1.3rem}}@media (min-width: 22.5rem) and (max-width: 23.4375rem){.game-container{padding:.125rem;padding-left:max(.125rem,env(safe-area-inset-left,.125rem));padding-right:max(.125rem,env(safe-area-inset-right,.125rem))}.digit-buttons-container{margin:.375rem 0 .125rem}.digit-buttons{gap:.25rem;margin-bottom:.25rem}.digit-button{min-height:2.25rem;max-width:2.8125rem}.digit-number{font-size:1.1rem}.remaining-count{font-size:.55rem;margin-top:.0625rem}.control-buttons{gap:.5rem;margin-top:0;padding-bottom:max(.25rem,env(safe-area-inset-bottom,.25rem))}.control-button{width:2.25rem;height:2.25rem}.control-button svg{font-size:.85rem}.control-label{font-size:.55rem}.control-button-group{gap:.0625rem}.control-button.buymeacoffee-button #logo svg{width:1rem;height:1.5rem}}@media (max-width: 20rem){.app{padding:0}.game-container{padding:.25rem}.sudoku-cell{font-size:1rem}.digit-button{min-height:2.1875rem;max-width:2.8125rem}.digit-number{font-size:.9rem}.remaining-count{font-size:.5rem}.note{font-size:.4rem}.control-label{font-size:.55rem}.control-button{width:2.25rem;height:2.25rem}.control-button svg{font-size:.8rem}}@media (min-width: 30rem){.game-container{padding:1rem}.sudoku-cell{font-size:1.2rem}.digit-button{min-height:3.125rem;max-width:4.0625rem;font-size:1.2rem}.note{font-size:.55rem}.control-label{font-size:.7rem}}@supports (padding: max(0px)){.app{padding:0}}@media screen and (max-height: 430px) and (orientation: landscape){.app-header{padding-top:max(.375rem,env(safe-area-inset-top,.375rem));padding-bottom:.125rem}.digit-buttons-container{margin:.25rem 0 .125rem}.digit-buttons{gap:.25rem;margin-bottom:.125rem}.control-buttons{margin-top:0;gap:.5rem;padding-bottom:max(.25rem,env(safe-area-inset-bottom,.25rem))}.control-button{width:2.25rem;height:2.25rem}.control-button svg{font-size:.8rem}.control-button-group{gap:.0625rem}.control-label{font-size:.5rem}.game-container{padding:.125rem;padding-left:max(.125rem,env(safe-area-inset-left,.125rem));padding-right:max(.125rem,env(safe-area-inset-right,.125rem))}}@media (min-width: 48rem){.app{max-width:28rem;max-height:90vh;margin:5vh auto;box-shadow:0 0 2rem #0000001a;border-radius:1rem;overflow:hidden;padding:0}.app-header{padding:.625rem .5rem}.game-container{padding:1.5rem;max-width:100%;max-height:calc(90vh - 4rem);overflow-y:auto}.control-buttons{padding:0 .3125rem .625rem}.sudoku-grid{max-width:24rem;max-height:24rem;margin:0 auto}.sudoku-cell{font-size:1.3rem}.digit-buttons-container{max-width:24rem;margin:1.25rem auto}.control-buttons{max-width:24rem;margin:0 auto;padding:0}.note{font-size:.6rem}.control-label{font-size:.75rem}}.popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1.25rem}.difficulty-popup,.reset-popup{background:#fff;border-radius:.75rem;box-shadow:0 1.25rem 2.5rem #0000004d;max-width:25rem;width:100%;max-height:90vh;overflow-y:auto}.popup-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 1.5rem 1rem;border-bottom:.0625rem solid #e2e8f0}.popup-header h2{margin:0;font-size:1.5rem;font-weight:600;color:#2d3748}.popup-close{background:none;border:none;font-size:2rem;color:#a0aec0;cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.popup-close:hover{background:#f7fafc;color:#4a5568}.challenge-friend-section{padding:1.5rem 1.5rem 0}.challenge-friend-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:.75rem;padding:1.25rem 1.5rem;cursor:pointer;transition:all .3s ease;text-align:left;width:100%;display:flex;flex-direction:column;gap:.375rem;box-shadow:0 .25rem .75rem #667eea4d;margin-bottom:1rem}.challenge-friend-button:hover{transform:translateY(-.125rem);box-shadow:0 .5rem 1.25rem #667eea66;background:linear-gradient(135deg,#5a67d8,#6b46c1)}.challenge-friend-button:active{transform:translateY(0);box-shadow:0 .125rem .5rem #667eea4d}.challenge-friend-label{font-size:1.25rem;font-weight:700;color:#fff;display:flex;align-items:center;gap:.5rem}.challenge-friend-description{font-size:.875rem;color:#ffffffe6;font-weight:500}.difficulty-options{padding:1.5rem;display:flex;flex-direction:column;gap:.75rem}.difficulty-option{background:#fff;border:.125rem solid #e2e8f0;border-radius:.5rem;padding:1rem 1.25rem;cursor:pointer;transition:all .2s;text-align:left;width:100%;display:flex;flex-direction:column;gap:.25rem}.difficulty-option:hover{border-color:#667eea;background:#f7fafc;transform:translateY(-.0625rem)}.difficulty-option.selected{border-color:#667eea;background:#e3f2fd;box-shadow:0 .25rem .5rem #667eea33}.difficulty-label{font-size:1.125rem;font-weight:600;color:#2d3748}.difficulty-description{font-size:.875rem;color:#718096}.popup-content{padding:1.5rem}.popup-content p{margin:0 0 1rem;color:#475569;line-height:1.5}.popup-content .warning-text{color:#dc2626;font-weight:500;margin-bottom:0}.popup-footer{padding:1rem 1.5rem 1.5rem;border-top:.0625rem solid #e2e8f0;display:flex;justify-content:flex-end;gap:.75rem}@media (max-width: 30rem){.popup-overlay{padding:1rem}.difficulty-popup{max-width:100%}.popup-header{padding:1.25rem 1.25rem .75rem}.popup-header h2{font-size:1.25rem}.difficulty-options{padding:1.25rem}.popup-footer{padding:.75rem 1.25rem 1.25rem}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-8px)}20%,40%,60%,80%{transform:translate(8px)}}@keyframes completionGlow{0%{box-shadow:inset 0 0 #ffd70000;background-color:inherit}50%{box-shadow:inset 0 0 20px 4px #ffd7004d;background-color:#ffd7001a}to{box-shadow:inset 0 0 #ffd70000;background-color:inherit}}@keyframes greenHighlight{0%{background:#c6f6d5!important;box-shadow:0 .125rem .25rem #48bb7866;transform:scale(1)}50%{background:#9ae6b4!important;box-shadow:0 .25rem .5rem #48bb7899,0 0 .75rem .125rem #48bb7866;transform:scale(1.05)}to{background:#c6f6d5!important;box-shadow:0 .125rem .25rem #48bb7866;transform:scale(1)}}@keyframes completionPulse{0%,to{transform:scale(1);background-color:inherit}50%{transform:scale(1.02);background-color:#22c55e26}}@keyframes completionHighlight{0%{background:linear-gradient(90deg,transparent 0%,transparent 100%)}50%{background:linear-gradient(90deg,transparent 0%,rgba(34,197,94,.2) 50%,transparent 100%)}to{background:linear-gradient(90deg,transparent 0%,transparent 100%)}}.sudoku-cell.glow-completed{animation:completionGlow 1.2s ease-in-out;position:relative;z-index:1}@keyframes pauseBlurIn{0%{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}to{opacity:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}}@keyframes pauseContentIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes gameOverIn{0%{opacity:0}to{opacity:1}}@keyframes gameOverContentIn{0%{opacity:0;transform:scale(.8) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}.share-message{margin-top:1rem;padding:.75rem 1rem;background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:.9rem;text-align:center;font-weight:500;color:#2d3748;animation:shareMessageFadeIn .3s ease-in-out;max-width:100%;word-break:break-word}@keyframes shareMessageFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.completion-popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;justify-content:center;align-items:center;z-index:1000;animation:completionOverlayIn .5s ease-out}.completion-popup{background:#fff;border-radius:20px;padding:2rem;max-width:500px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:completionPopupIn .6s ease-out}.completion-header{text-align:center;margin-bottom:2rem}.completion-trophy{margin-bottom:1rem}.trophy-icon{font-size:4rem!important;color:gold;animation:trophyBounce 1s ease-in-out}.completion-title{font-size:2rem;font-weight:700;color:#2d3748;margin:.5rem 0}.completion-message{font-size:1.2rem;color:#4a5568;font-weight:500;margin:0}.completion-stats{margin-bottom:2rem}.stat-row{display:flex;justify-content:space-around;margin-bottom:1.5rem}.main-stats{padding:1.5rem;background:#f7fafc;border-radius:12px;border:2px solid #e2e8f0}.stat-item{display:flex;flex-direction:column;align-items:center;text-align:center}.stat-label{font-size:.9rem;color:#718096;font-weight:500;margin-bottom:.25rem}.stat-value{font-size:1.1rem;font-weight:700;color:#2d3748}.difficulty-value{color:#805ad5;text-transform:capitalize}.new-record{color:#d69e2e!important;position:relative}.record-badge{display:block;font-size:.7rem;color:#d69e2e;font-weight:700;margin-top:.25rem;animation:recordPulse 2s infinite}.lives-value{font-size:1.3rem}.performance-message{text-align:center;font-size:1rem;color:#4a5568;font-weight:500;padding:1rem;background:#edf2f7;border-radius:8px;margin-bottom:1rem}.records{flex-direction:column;background:#f0fff4;border:2px solid #c6f6d5;padding:1rem;border-radius:12px}.records-title{font-size:1.1rem;font-weight:700;color:#2d3748;text-align:center;margin-bottom:1rem}.record-stats{display:flex;justify-content:space-around}.record-item{display:flex;flex-direction:column;align-items:center;text-align:center}.record-label{font-size:.8rem;color:#4a5568;font-weight:500;margin-bottom:.25rem}.record-value{font-size:1rem;font-weight:700;color:#38a169}.completion-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.completion-actions .btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;border-radius:10px;transition:all .2s ease;min-width:120px;justify-content:center}.completion-actions .btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}@keyframes completionOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes completionPopupIn{0%{opacity:0;transform:scale(.8) translateY(50px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes trophyBounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}@keyframes recordPulse{0%,to{opacity:1}50%{opacity:.6}}@media (max-width: 768px){.completion-popup{padding:1.5rem;margin:1rem}.completion-title{font-size:1.6rem}.completion-message{font-size:1rem}.trophy-icon{font-size:3rem!important}.main-stats{padding:1rem}.stat-row{flex-direction:column;gap:1rem}.record-stats{flex-direction:column;gap:.5rem}.completion-actions{flex-direction:column}.completion-actions .btn{width:100%}}.multiplayer-ui{position:fixed;top:0;left:0;right:0;z-index:1000;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #e2e8f0;padding:12px 16px}.multiplayer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;padding:20px}.exit-multiplayer-button{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.3)}.exit-multiplayer-button:hover{background:#fff3;border-color:#ffffff80}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);height:100vh;height:100dvh;color:#333;overflow:hidden}#root{width:100%;height:100vh;height:100dvh;overflow:hidden}
