@import"https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&display=swap";.drawing-bouquet-container{position:absolute;bottom:20px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;z-index:10;animation:containerFadeIn .5s ease-out}@keyframes containerFadeIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.drawing-canvas{background:transparent;border-radius:10px;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.drawing-status{margin-top:10px;padding:8px 20px;background:#fff3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:20px;color:#fff;font-size:14px;font-weight:600;animation:statusPulse 1.5s ease-in-out infinite}@keyframes statusPulse{0%,to{opacity:1}50%{opacity:.7}}.drawing-bouquet-container.completed .drawing-canvas{animation:gentleFloat 3s ease-in-out infinite}@keyframes gentleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@media (max-height: 700px){.drawing-bouquet-container{bottom:10px}.drawing-canvas{width:250px!important;height:350px!important}}@media (max-height: 600px){.drawing-bouquet-container{bottom:5px}.drawing-canvas{width:200px!important;height:280px!important}.drawing-status{font-size:12px;padding:6px 15px}}@supports (-webkit-touch-callout: none){.drawing-canvas{-webkit-transform:translateZ(0);transform:translateZ(0)}}.drawing-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:auto;padding:20px;padding-top:calc(20px + env(safe-area-inset-top,0px));padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));background:linear-gradient(135deg,#fff5f8,#ffe0ec)}.drawing-page-bouquet{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.drawing-page-bouquet .drawing-bouquet-container{position:relative;bottom:auto;left:auto;transform:none;background:#cba8a8e6;border-radius:20px;padding:20px;box-shadow:0 10px 40px #e91e6326}.drawing-page-bouquet .drawing-canvas{width:min(300px,85vw);height:min(420px,60vh)}.drawing-page-bouquet .drawing-status{color:#c41e3a;background:#fffffff2;margin-top:12px}.drawing-complete-message{position:fixed;bottom:40px;display:flex;flex-direction:column;align-items:center;gap:8px;animation:fadeInUp .6s ease-out;z-index:10;text-align:center;padding-bottom:env(safe-area-inset-bottom,0px)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.complete-heart{font-size:40px;animation:heartPulse 1.2s ease-in-out infinite}@keyframes heartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.drawing-complete-message p{font-size:22px;font-weight:700;color:#c41e3a;margin:0}.drawing-complete-message .signature{font-size:18px;font-style:italic;color:#e91e63}.restart-btn{margin-top:20px;padding:14px 32px;font-size:18px;display:flex;width:max-content;font-weight:700;color:#fff;background:linear-gradient(135deg,#ff6b9d,#e91e63);border:none;border-radius:50px;cursor:pointer;font-family:inherit;box-shadow:0 8px 30px #e91e6366;animation:fadeInUp .6s ease-out}.restart-btn:active{transform:scale(.98)}@media (max-height: 600px){.drawing-page-bouquet .drawing-canvas{width:min(260px,90vw);height:min(360px,55vh)}}:root{--primary: #ff6b9d;--primary-light: #ffa8c5;--primary-dark: #e91e63;--secondary: #9c27b0;--background: linear-gradient(135deg, #fff5f8 0%, #ffe0ec 100%);--card-bg: rgba(255, 255, 255, .95);--text: #424242;--text-light: #757575;--success: #4caf50;--cell-bg: #ffffff;--cell-selected: #e3f2fd;--cell-same-number: #e8eaf6;--cell-same-row-col: #f5f5f5;--cell-fixed: #f5f5f5;--border: #e0e0e0;--shadow: 0 10px 40px rgba(233, 30, 99, .15);--text-dark: #000000}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:Nunito,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--background);color:var(--text);min-height:100vh;min-height:-webkit-fill-available}.app{min-height:100vh;min-height:-webkit-fill-available;display:flex;flex-direction:column;align-items:center;padding:10px;padding-top:env(safe-area-inset-top,10px);padding-bottom:env(safe-area-inset-bottom,10px);overflow-y:auto;-webkit-overflow-scrolling:touch}.welcome-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;min-height:-webkit-fill-available;text-align:center;padding:20px;animation:fadeIn .8s ease-out}.welcome-heart{font-size:80px;animation:heartbeat 1.5s ease-in-out infinite;margin-bottom:20px}@keyframes heartbeat{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.welcome-title{font-size:32px;font-weight:800;color:var(--primary);margin-bottom:10px;text-shadow:2px 2px 4px rgba(233,30,99,.2)}.welcome-subtitle{font-size:18px;color:var(--text-light);margin-bottom:30px}.start-button{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;border:none;padding:18px 50px;font-size:20px;font-weight:700;border-radius:50px;cursor:pointer;box-shadow:0 8px 25px #e91e6366;transition:all .3s ease;font-family:inherit}.start-button:active{transform:scale(.95);box-shadow:0 4px 15px #e91e6366}.game-header{width:100%;max-width:400px;display:flex;justify-content:space-between;align-items:center;padding:10px 5px;margin-bottom:10px}.stage-info{display:flex;flex-direction:column;align-items:flex-start}.stage-label{font-size:12px;color:var(--text-light);text-transform:uppercase;letter-spacing:1px}.stage-number{font-size:24px;font-weight:800;color:var(--primary)}.player-name{font-size:16px;font-weight:600;color:var(--primary-dark);display:flex;align-items:center;gap:5px}.sudoku-container{background:var(--card-bg);border-radius:20px;padding:10px;box-shadow:var(--shadow);margin-bottom:15px}.sudoku-board{display:grid;grid-template-columns:repeat(9,1fr);gap:1px;background:var(--border);border:2px solid var(--primary);border-radius:12px;overflow:hidden;width:min(85vw,360px);height:min(85vw,360px)}.sudoku-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:clamp(16px,5vw,24px);font-weight:700;background:var(--cell-bg);cursor:pointer;transition:all .15s ease;user-select:none;-webkit-user-select:none;position:relative}.sudoku-cell.fixed{background:var(--cell-fixed);color:var(--text)}.sudoku-cell.selected:not(.error){background:var(--cell-selected);color:#ee71de}.sudoku-cell.selected.error{background:var(--cell-selected);color:var(--primary-dark)}.sudoku-cell.same-number{background:var(--cell-same-number)}.sudoku-cell.same-row-col{background:var(--cell-same-row-col)}.sudoku-cell.error{color:#e65100;background:#e651001f!important;animation:shake .3s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.sudoku-cell:nth-child(3n){border-right:2px solid var(--primary)}.sudoku-cell:nth-child(9n){border-right:none}.sudoku-cell:nth-child(n+19):nth-child(-n+27),.sudoku-cell:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid var(--primary)}.number-pad-wrapper{display:flex;flex-direction:column;align-items:center;gap:12px;width:min(85vw,360px)}.number-pad{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;width:100%}.number-btn{aspect-ratio:1.2;display:flex;align-items:center;justify-content:center;font-size:clamp(18px,5vw,24px);font-weight:700;background:#fff;border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:all .15s ease;font-family:inherit;color:var(--text)}.number-btn:active:not(:disabled){background:var(--primary-light);border-color:var(--primary);transform:scale(.95)}.number-btn:disabled,.number-btn.completed{background:#e8f5e9;border-color:#c8e6c9;color:#4caf50;cursor:default;opacity:.85}.number-btn.erase{background:#f5f5f5;border-color:#e0e0e0;color:#757575}.number-btn.erase:active{background:#ffcdd2}.action-buttons{display:flex;gap:10px;margin-top:10px}.action-btn{padding:12px 25px;font-size:14px;font-weight:600;border:none;border-radius:25px;cursor:pointer;transition:all .2s ease;font-family:inherit}.hint-btn{width:100%;max-width:280px;padding:14px 24px;font-size:16px;font-weight:600;border:none;border-radius:14px;cursor:pointer;font-family:inherit;background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff;transition:transform .15s ease,opacity .15s ease}.hint-btn:active:not(:disabled){transform:scale(.98)}.hint-btn:disabled,.hint-btn.disabled{background:#bdbdbd;cursor:not-allowed;opacity:.8}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:30px;padding:40px 30px;text-align:center;max-width:350px;width:100%;animation:slideUp .4s ease-out;box-shadow:0 20px 60px #0000004d}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.modal-emoji{font-size:80px;margin-bottom:20px;animation:bounce .6s ease-out}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.modal-title{font-size:28px;font-weight:800;color:var(--primary);margin-bottom:15px}.modal-message{font-size:18px;color:var(--text-dark);line-height:1.6;margin-bottom:25px}.modal-btn{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;border:none;padding:16px 40px;font-size:18px;font-weight:700;border-radius:50px;cursor:pointer;font-family:inherit;box-shadow:0 8px 25px #e91e6366;transition:all .2s ease}.modal-btn:active{transform:scale(.95)}.celebration-screen{position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#1a1a2e,#16213e);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2000;padding:20px;overflow:hidden}.celebration-content{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10;animation:fadeInUp 1s ease-out .5s both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.celebration-date{font-size:48px;font-weight:800;background:linear-gradient(135deg,#ff6b9d,#ff8a80,#ffab91);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:10px;animation:glow 2s ease-in-out infinite alternate}@keyframes glow{0%{filter:drop-shadow(0 0 20px rgba(255,107,157,.5))}to{filter:drop-shadow(0 0 30px rgba(255,107,157,.8))}}.celebration-title{font-size:32px;font-weight:700;color:#fff;margin-bottom:30px}.celebration-message{font-size:20px;color:#ffffffe6;line-height:1.8;max-width:320px;margin-bottom:40px}.celebration-names{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:40px}.celebration-name{font-size:28px;font-weight:800;color:#fff;text-shadow:0 0 20px rgba(255,107,157,.5)}.celebration-heart{font-size:40px;animation:heartPulse 1s ease-in-out infinite}@keyframes heartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.bouquet-container{position:absolute;bottom:-50px;left:50%;transform:translate(-50%);animation:bouquetRise 1.5s ease-out forwards}@keyframes bouquetRise{0%{transform:translate(-50%) translateY(200px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.bouquet{display:flex;flex-direction:column;align-items:center}.flowers{display:flex;gap:5px;margin-bottom:-20px}.flower{font-size:50px;animation:flowerSway 2s ease-in-out infinite}.flower:nth-child(1){animation-delay:0s}.flower:nth-child(2){animation-delay:.2s;transform:translateY(-10px)}.flower:nth-child(3){animation-delay:.4s}.flower:nth-child(4){animation-delay:.6s;transform:translateY(-10px)}.flower:nth-child(5){animation-delay:.8s}@keyframes flowerSway{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}.flower:nth-child(2),.flower:nth-child(4){animation-name:flowerSwayAlt}@keyframes flowerSwayAlt{0%,to{transform:translateY(-10px) rotate(5deg)}50%{transform:translateY(-10px) rotate(-5deg)}}.bouquet-wrap{font-size:80px}.floating-hearts{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden}.floating-heart{position:absolute;font-size:24px;animation:floatUp 4s ease-in infinite;opacity:0}@keyframes floatUp{0%{transform:translateY(100vh) rotate(0);opacity:0}10%{opacity:.8}90%{opacity:.8}to{transform:translateY(-100px) rotate(360deg);opacity:0}}.sparkles{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.sparkle{position:absolute;width:10px;height:10px;background:#fff;border-radius:50%;animation:sparkle 2s ease-in-out infinite}@keyframes sparkle{0%,to{transform:scale(0);opacity:0}50%{transform:scale(1);opacity:1}}.surprise-button{margin-top:30px;padding:18px 40px;font-size:18px;font-weight:700;color:#fff;background:linear-gradient(135deg,#ff6b9d,#e91e63);border:none;border-radius:50px;cursor:pointer;font-family:inherit;box-shadow:0 8px 30px #e91e6366;animation:surpriseButtonPulse 2s ease-in-out infinite,fadeInButton .5s ease-out;transition:transform .2s ease}.surprise-button:active{transform:scale(.95)}@keyframes surpriseButtonPulse{0%,to{box-shadow:0 8px 30px #e91e6366}50%{box-shadow:0 8px 40px #e91e6399,0 0 20px #ff6b9d66}}@keyframes fadeInButton{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.progress-container{width:min(85vw,360px);margin-bottom:15px}.progress-label{display:flex;justify-content:space-between;font-size:12px;color:var(--text-light);margin-bottom:5px}.progress-bar{height:8px;background:#e0e0e0;border-radius:10px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary) 0%,var(--primary-dark) 100%);border-radius:10px;transition:width .5s ease-out}@media (max-height: 700px){.sudoku-board{width:min(75vw,320px);height:min(75vw,320px)}.number-pad{width:min(75vw,320px)}.game-header{max-width:340px}}@media (max-height: 600px){.sudoku-container{padding:8px;margin-bottom:10px}.number-pad{gap:5px}}@media (prefers-color-scheme: dark){:root{--background: linear-gradient(135deg, #2d1f3d 0%, #1a1a2e 100%);--card-bg: rgba(45, 45, 60, .95);--cell-bg: #3d3d5c;--cell-fixed: #2d2d45;--cell-selected: #5c3d5c;--cell-same-number: #4d4d3d;--cell-same-row-col: #4d3d4d;--text: #ffffff;--text-light: #b0b0b0;--border: #4d4d6d}.number-btn{background:#3d3d5c;border-color:#4d4d6d;color:#fff}.number-btn.erase{background:#5c3d3d;border-color:#6d4d4d}}
