@import"https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&display=swap";:root{--bg: #FFF8E7;--bg-dark: #F5E6C8;--text: #3D2B1F;--text-light: #6B5744;--gold: #FFD700;--gold-dark: #DAA520;--green: #4CAF50;--red: #FF6B6B;--white: #FFFFFF;--shadow: 0 4px 15px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .15);--radius: 16px;--radius-sm: 10px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh;font-family:Fredoka,sans-serif;background:var(--bg);color:var(--text)}.game-container{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#fff8e7,#ffecd2,#fff0d4)}.game-main{flex:1;padding:1.5rem;max-width:1000px;width:100%;margin:0 auto}.game-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:linear-gradient(135deg,#ff9a56,#ff6b6b);color:#fff;box-shadow:0 4px 20px #ff6b6b4d;position:sticky;top:0;z-index:100;flex-wrap:wrap;gap:.5rem}.header-left,.header-right{display:flex;align-items:center;gap:.5rem}.header-center{display:flex;flex-direction:column;align-items:center;gap:.25rem}.header-btn{background:#fff3;border:2px solid rgba(255,255,255,.3);color:#fff;padding:.4rem .9rem;border-radius:25px;font-family:Fredoka,sans-serif;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.header-btn:hover{background:#ffffff59;transform:translateY(-1px)}.header-btn.active{background:#fffffff2;color:#ff6b6b}.level-badge{font-weight:700;font-size:.95rem;text-shadow:0 1px 3px rgba(0,0,0,.2)}.xp-bar-container{width:140px;height:14px;background:#0003;border-radius:7px;position:relative;overflow:hidden}.xp-bar-fill{height:100%;background:linear-gradient(90deg,gold,orange);border-radius:7px;transition:width .5s ease}.xp-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.coins-display{background:#fff3;padding:.4rem .9rem;border-radius:25px;font-weight:700;font-size:1rem;border:2px solid rgba(255,255,255,.3)}.factory-floor{animation:slideUp .4s ease}.factory-title{text-align:center;font-size:2rem;font-weight:700;color:var(--text);margin-bottom:.25rem;text-shadow:0 2px 4px rgba(0,0,0,.1)}.factory-subtitle{text-align:center;color:var(--text-light);font-size:1.1rem;margin-bottom:1.5rem}.room-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}.room-card{background:var(--white);border-radius:var(--radius);padding:1.5rem;text-align:center;box-shadow:var(--shadow);border:3px solid transparent;transition:all .3s ease;position:relative;overflow:hidden}.room-card:before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:var(--room-color)}.room-card.unlocked:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--room-color)}.room-card.locked{opacity:.85}.room-emoji{font-size:3.5rem;margin-bottom:.5rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.room-name{font-size:1.2rem;font-weight:700;color:var(--room-color);margin-bottom:.5rem}.room-stats{display:flex;flex-direction:column;gap:.2rem;margin-bottom:.4rem}.room-stat{font-size:.8rem;color:var(--text-light)}.room-made{font-size:.85rem;color:var(--text-light);margin-bottom:.75rem}.room-enter-btn{background:linear-gradient(135deg,var(--room-color),color-mix(in srgb,var(--room-color) 80%,black));color:#fff;border:none;padding:.6rem 1.5rem;border-radius:25px;font-family:Fredoka,sans-serif;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 3px 10px #00000026}.room-enter-btn:hover{transform:translateY(-2px);box-shadow:0 5px 15px #0003}.room-lock-info{display:flex;flex-direction:column;align-items:center;gap:.3rem;margin-bottom:.75rem}.lock-icon{font-size:2rem}.lock-cost{font-size:1.1rem;font-weight:700;color:var(--gold-dark)}.room-unlock-btn{background:linear-gradient(135deg,var(--gold),var(--gold-dark));color:var(--text);border:none;padding:.6rem 1.5rem;border-radius:25px;font-family:Fredoka,sans-serif;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 3px 10px #00000026}.room-unlock-btn:hover:not(:disabled){transform:translateY(-2px)}.room-unlock-btn:disabled{opacity:.5;cursor:not-allowed}.production-room{animation:slideUp .4s ease}.room-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.back-btn{background:var(--white);border:2px solid #E0D5C0;padding:.5rem 1rem;border-radius:25px;font-family:Fredoka,sans-serif;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;color:var(--text)}.back-btn:hover{background:#f0e8d8;transform:translate(-2px)}.room-title{font-size:1.5rem;font-weight:700;color:var(--room-color);flex:1}.room-inventory{font-weight:600;color:var(--text-light);background:var(--white);padding:.4rem .9rem;border-radius:25px;font-size:.9rem}.room-body{display:flex;flex-direction:column;align-items:center}.machine-area{display:flex;flex-direction:column;align-items:center;gap:1.25rem;animation:slideUp .4s ease}.machine{background:linear-gradient(145deg,#e8e0d0,#d5ccbb);border-radius:var(--radius);padding:2rem 3rem;box-shadow:var(--shadow-lg);border:3px solid var(--room-color-mid);position:relative}.machine-body{display:flex;flex-direction:column;align-items:center;gap:.5rem}.machine-emoji{font-size:4rem;filter:drop-shadow(0 3px 6px rgba(0,0,0,.2))}.machine-gears{font-size:1.5rem;animation:spin 4s linear infinite}.machine-label{text-align:center;font-weight:700;color:var(--text-light);margin-top:.5rem;font-size:.9rem;text-transform:uppercase;letter-spacing:.1em}.machine-stats{display:flex;gap:1.5rem;font-size:.95rem;color:var(--text-light)}.produce-btn{background:linear-gradient(135deg,var(--room-color),color-mix(in srgb,var(--room-color) 75%,black));color:#fff;border:none;padding:.8rem 2.5rem;border-radius:30px;font-family:Fredoka,sans-serif;font-size:1.2rem;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 4px 15px #0003}.produce-btn:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 8px 25px #00000040}.produce-btn:active{transform:translateY(0) scale(.98)}.producing-animation{display:flex;flex-direction:column;align-items:center;gap:1.25rem;animation:slideUp .3s ease}.machine-working{position:relative;font-size:5rem;animation:vibrate .15s infinite}.sparkles{position:absolute;top:-20px;right:-20px;bottom:-20px;left:-20px}.sparkle{position:absolute;font-size:1.2rem;animation:sparkleFloat 1s ease-in-out infinite}.sparkle.s1{top:-10px;left:-10px;animation-delay:0s}.sparkle.s2{top:-10px;right:-10px;animation-delay:.25s}.sparkle.s3{bottom:-10px;left:-10px;animation-delay:.5s}.sparkle.s4{bottom:-10px;right:-10px;animation-delay:.75s}.producing-text{font-size:1.2rem;font-weight:600;color:var(--text-light)}.progress-bar-container{width:250px;height:20px;background:#e8e0d0;border-radius:10px;overflow:hidden;box-shadow:inset 0 2px 4px #0000001a}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--room-color),color-mix(in srgb,var(--room-color) 70%,#FFD700));border-radius:10px;animation:fillProgress 1.5s ease forwards}.puzzle-game{width:100%;animation:slideUp .4s ease}.puzzle-title{text-align:center;font-size:1.4rem;font-weight:700;color:var(--room-color);margin-bottom:.25rem}.puzzle-hint{text-align:center;color:var(--text-light);font-size:.9rem;margin-bottom:1.25rem}.puzzle-slots{display:flex;justify-content:center;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.puzzle-slot{width:120px;height:130px;background:var(--white);border:3px dashed #D5CCBB;border-radius:var(--radius-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;position:relative}.puzzle-slot:hover{border-color:var(--room-color);box-shadow:0 0 0 3px var(--room-color-light)}.puzzle-slot.filled{border-style:solid;border-color:var(--green);background:#f0fff0}.slot-label{position:absolute;top:6px;left:8px;font-size:.7rem;font-weight:700;color:var(--text-light);text-transform:uppercase;letter-spacing:.05em}.slot-piece{display:flex;flex-direction:column;align-items:center;gap:.25rem}.slot-piece-emoji{font-size:2.2rem}.slot-piece-name{font-size:.75rem;font-weight:600;color:var(--green)}.slot-empty-icon{font-size:2rem;color:#d5ccbb;font-weight:700}.puzzle-pool{display:flex;justify-content:center;gap:.75rem;flex-wrap:wrap;min-height:110px;padding:1rem;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);border:2px solid #E8E0D0}.pool-piece{width:110px;padding:.75rem;background:linear-gradient(145deg,#fff8e7,#ffecd2);border:3px solid #E8D5B8;border-radius:var(--radius-sm);display:flex;flex-direction:column;align-items:center;gap:.25rem;cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none}.pool-piece:hover{transform:translateY(-3px);box-shadow:0 4px 12px #0000001a;border-color:var(--room-color)}.pool-piece.selected{border-color:var(--gold);background:linear-gradient(145deg,#fffacd,#fff8e7);box-shadow:0 0 0 3px #ffd7004d,0 4px 12px #0000001a;transform:translateY(-3px) scale(1.05)}.pool-piece-emoji{font-size:1.8rem}.pool-piece-name{font-size:.7rem;font-weight:600;color:var(--text-light)}.pool-empty{color:var(--text-light);font-style:italic}.puzzle-mistakes{text-align:center;margin-top:.75rem;font-size:.85rem;color:var(--red);font-weight:600}.shop{animation:slideUp .4s ease}.shop-header{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}.shop-title{font-size:1.5rem;font-weight:700;color:var(--text);flex:1}.shop-coins{font-size:1.1rem;font-weight:700;color:var(--gold-dark);background:var(--white);padding:.4rem .9rem;border-radius:25px;box-shadow:var(--shadow)}.shop-subtitle{color:var(--text-light);font-size:1rem;margin-bottom:1.25rem}.shop-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}.shop-card{background:var(--white);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow);border-top:4px solid var(--room-color)}.shop-card-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.shop-card-emoji{font-size:1.8rem}.shop-card-name{font-weight:700;font-size:1.05rem;color:var(--room-color)}.upgrade-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.upgrade-row:last-child{margin-bottom:0}.upgrade-info{flex:1;display:flex;flex-direction:column;gap:.2rem}.upgrade-label{font-weight:600;font-size:.85rem}.upgrade-level{font-size:.75rem;color:var(--text-light)}.upgrade-bar{height:8px;background:#e8e0d0;border-radius:4px;overflow:hidden}.upgrade-bar-fill{height:100%;border-radius:4px;transition:width .4s ease}.upgrade-bar-fill.quality{background:linear-gradient(90deg,gold,orange)}.upgrade-bar-fill.speed{background:linear-gradient(90deg,#4ecdc4,#44b3a8)}.upgrade-btn{background:linear-gradient(135deg,var(--gold),var(--gold-dark));color:var(--text);border:none;padding:.4rem .8rem;border-radius:20px;font-family:Fredoka,sans-serif;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .2s;white-space:nowrap}.upgrade-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 3px 10px #ffd70066}.upgrade-btn:disabled{opacity:.4;cursor:not-allowed}.upgrade-max{font-weight:700;color:var(--green);font-size:.85rem;padding:.4rem .8rem}.celebration-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .3s ease}.celebration-content{background:var(--white);border-radius:24px;padding:2.5rem 3rem;text-align:center;box-shadow:var(--shadow-lg);position:relative;overflow:hidden;animation:popIn .4s cubic-bezier(.175,.885,.32,1.275);min-width:280px}.confetti{position:absolute;top:0;left:0;right:0;height:100%;pointer-events:none;overflow:hidden}.confetti-piece{position:absolute;top:-10px;width:10px;height:10px;border-radius:2px;animation:confettiFall 2s ease-out var(--delay) forwards}.celebration-toy{font-size:5rem;margin-bottom:.5rem;display:inline-block}.celebration-title{font-size:1.8rem;font-weight:700;color:var(--text);margin-bottom:1rem}.celebration-rewards{display:flex;justify-content:center;gap:1.5rem;margin-bottom:1.25rem}.reward-item{display:flex;align-items:center;gap:.4rem;font-size:1.3rem;font-weight:700;animation:slideUp .5s ease .3s both}.reward-emoji{font-size:1.5rem}.coin-reward{color:var(--gold-dark)}.xp-reward{color:#4ecdc4}.collect-btn{background:linear-gradient(135deg,#4caf50,#388e3c);color:#fff;border:none;padding:.7rem 2rem;border-radius:30px;font-family:Fredoka,sans-serif;font-size:1.15rem;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 4px 15px #4caf504d;animation:slideUp .5s ease .5s both}.collect-btn:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 6px 20px #4caf5066}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes bounceIn{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.bounce-in{animation:bounceIn .4s cubic-bezier(.175,.885,.32,1.275)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes vibrate{0%,to{transform:translate(0)}25%{transform:translate(-3px) rotate(-1deg)}75%{transform:translate(3px) rotate(1deg)}}@keyframes sparkleFloat{0%,to{opacity:0;transform:translateY(0) scale(.5)}50%{opacity:1;transform:translateY(-15px) scale(1)}}@keyframes fillProgress{0%{width:0%}to{width:100%}}@keyframes confettiFall{0%{top:-10px;opacity:1;transform:translate(0) rotate(0)}to{top:100%;opacity:0;transform:translate(var(--x)) rotate(var(--rot))}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.shake{animation:shake .4s ease}@media(max-width:700px){.room-grid,.shop-grid{grid-template-columns:1fr}.factory-title{font-size:1.5rem}.puzzle-slots{gap:.5rem}.puzzle-slot{width:75px;height:90px}.slot-piece-emoji{font-size:1.6rem}.pool-piece{width:75px;padding:.5rem}.pool-piece-emoji{font-size:1.4rem}.game-header{padding:.5rem 1rem;justify-content:center}.celebration-content{padding:1.5rem 2rem;margin:1rem}.celebration-toy{font-size:3.5rem}}@media(max-width:400px){.puzzle-slot{width:65px;height:80px}.pool-piece{width:65px}.slot-label{font-size:.6rem}}
