@import"https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&display=swap";:root{--bg-sky: #87CEEB;--bg-sky-light: #B0E0E6;--bg-grass: #7CB342;--bg-grass-light: #9CCC65;--bg-field: #8BC34A;--accent-orange: #FF6B35;--accent-orange-light: #FF8C5A;--accent-orange-dark: #E55A2B;--accent-yellow: #FFD23F;--accent-yellow-light: #FFE066;--accent-blue: #4A90D9;--accent-blue-light: #6BA3E0;--accent-red: #E53935;--accent-green: #43A047;--white: #FFFFFF;--off-white: #FFF8F0;--cream: #FFF5E6;--brown-light: #8D6E63;--brown-dark: #5D4037;--text-primary: #2D3436;--text-secondary: #636E72;--text-light: #FFFFFF;--text-on-orange: #FFFFFF;--correct-color: #43A047;--correct-glow: rgba(67, 160, 71, .4);--incorrect-color: #FF6B35;--incorrect-glow: rgba(255, 107, 53, .3);--try-again-color: #FFB300;--shadow-soft: 0 2px 8px rgba(0, 0, 0, .1);--shadow-medium: 0 4px 12px rgba(0, 0, 0, .15);--shadow-strong: 0 6px 20px rgba(0, 0, 0, .2);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-round: 50%;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--font-family: "Fredoka", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--font-size-3xl: 2.5rem}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;width:100%}body{font-family:var(--font-family);font-weight:500;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(180deg,var(--bg-sky) 0%,var(--bg-sky-light) 40%,var(--bg-grass-light) 60%,var(--bg-grass) 100%);color:var(--text-primary);min-height:100vh;min-height:100dvh}#root{height:100%;width:100%}.no-select{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}button,a,[role=button]{-webkit-tap-highlight-color:transparent}html{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}body{overscroll-behavior-y:contain}.drag-active{touch-action:none}button{font-family:var(--font-family);font-weight:600;cursor:pointer;border:none;outline:none;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease}button:active{transform:scale(.96)}button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:3px solid var(--accent-orange);outline-offset:2px}.mode-selector{display:flex;gap:12px;justify-content:center;padding:12px;background:#ffffffe6;border-radius:16px;box-shadow:0 4px 12px #0000001a}.mode-tab{display:flex;align-items:center;gap:10px;padding:14px 24px;font-size:1.1rem;font-weight:700;color:#4a5568;background:#f7fafc;border:3px solid #e2e8f0;border-radius:12px;cursor:pointer;transition:all .2s ease;touch-action:manipulation;min-height:56px}.mode-tab:hover{background:#edf2f7;border-color:#cbd5e0;transform:translateY(-2px)}.mode-tab:active{transform:translateY(0)}.mode-tab.active{background:linear-gradient(135deg,#f6ad55,#ed8936);border-color:#dd6b20;color:#fff;box-shadow:0 4px 12px #ed893666}.mode-tab.active:hover{background:linear-gradient(135deg,#ed8936,#dd6b20)}.mode-tab-emoji{font-size:1.4rem;flex-shrink:0}.mode-tab-label{white-space:nowrap}@media(max-width:480px){.mode-selector{flex-direction:column;gap:8px;padding:10px}.mode-tab{justify-content:center;padding:10px 16px;font-size:.95rem;min-height:46px}.mode-tab-emoji{font-size:1.1rem}}@media(min-width:700px){.mode-selector{gap:10px;padding:12px}.mode-tab{padding:10px 16px;font-size:.95rem;min-height:48px;border-radius:10px;gap:6px}.mode-tab-emoji{font-size:1.2rem}}@media(min-width:1000px){.mode-tab{padding:20px 40px;font-size:1.3rem;min-height:72px}.mode-tab-emoji{font-size:1.8rem}}@media(orientation:landscape)and (max-height:500px){.mode-selector{gap:10px;padding:8px}.mode-tab{padding:10px 18px;font-size:.95rem;min-height:44px}.mode-tab-emoji{font-size:1.1rem}}.target-panel{display:flex;flex-direction:column;gap:12px;padding:16px;max-width:500px;margin:0 auto}.target-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.target-level{flex-shrink:0}.level-badge{display:inline-block;padding:8px 16px;font-size:1rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#48bb78,#38a169);border-radius:20px;box-shadow:0 2px 8px #48bb7866;text-transform:uppercase;letter-spacing:.5px}.target-progress{display:flex;flex-direction:column;gap:4px;flex:1;max-width:200px}.progress-text{font-size:.9rem;font-weight:600;color:#4a5568;text-align:right}.progress-bar{height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#48bb78,#38a169);border-radius:4px;transition:width .3s ease}.target-content{position:relative;background:#fffef7;border-radius:8px;box-shadow:0 4px 12px #00000026,inset 0 0 0 2px #d69e2e;overflow:visible}.clipboard-top{position:relative;height:20px;background:linear-gradient(180deg,#8b6914,#a57d1a);border-radius:8px 8px 0 0;display:flex;justify-content:center}.clipboard-clip{position:absolute;top:-8px;width:60px;height:24px;background:linear-gradient(180deg,#718096,#4a5568);border-radius:4px;box-shadow:0 2px 4px #0000004d}.clipboard-clip:after{content:"";position:absolute;top:6px;left:50%;transform:translate(-50%);width:30px;height:12px;background:#2d3748;border-radius:2px}.prompt-area{padding:20px 24px;text-align:center}.prompt-text{font-size:1.4rem;font-weight:700;color:#2d3748;line-height:1.4;margin:0 0 8px}.constraints-text{font-size:1rem;font-weight:500;color:#718096;font-style:italic;margin:0}.skip-button{display:inline-block;margin-top:12px;padding:4px 12px;font-size:.85rem;font-weight:500;color:#a0aec0;background:transparent;border:1px solid #cbd5e0;border-radius:12px;cursor:pointer;transition:color .2s ease,border-color .2s ease}.skip-button:hover{color:#718096;border-color:#a0aec0}.skip-button:active{color:#4a5568}@media(max-width:480px){.target-panel{padding:12px;gap:10px}.target-header{flex-direction:column;gap:10px;align-items:stretch}.target-progress{max-width:none}.progress-text{text-align:center}.level-badge{display:block;text-align:center;padding:6px 12px;font-size:.9rem}.prompt-area{padding:16px 18px}.prompt-text{font-size:1.2rem}.constraints-text{font-size:.9rem}}@media(min-width:700px)and (max-height:1100px){.target-panel{padding:8px 12px;gap:8px;max-width:500px}.level-badge{padding:6px 14px;font-size:.9rem}.prompt-area{padding:12px 16px}.prompt-text{font-size:1.2rem;margin-bottom:4px}.constraints-text{font-size:.9rem}.clipboard-clip{width:50px;height:20px;top:-6px}.clipboard-clip:after{top:4px;width:24px;height:10px}.clipboard-top{height:16px}.target-header{gap:10px}.progress-bar{height:6px}.progress-text{font-size:.8rem}}@media(min-width:1000px)and (min-height:1100px){.target-panel{max-width:700px;padding:20px;gap:16px}.level-badge{padding:10px 20px;font-size:1.1rem}.prompt-area{padding:28px 32px}.prompt-text{font-size:1.8rem}.constraints-text{font-size:1.2rem}.clipboard-clip{width:80px;height:28px;top:-8px}.clipboard-top{height:24px}}@media(orientation:landscape)and (max-height:500px){.target-panel{padding:8px 12px;gap:8px;max-width:400px}.target-header{gap:12px}.level-badge{padding:6px 12px;font-size:.85rem}.prompt-area{padding:12px 16px}.prompt-text{font-size:1.1rem;margin-bottom:4px}.constraints-text{font-size:.85rem}.clipboard-top{height:16px}.clipboard-clip{width:50px;height:20px;top:-6px}.clipboard-clip:after{top:4px;width:24px;height:10px}}.play-area{flex:1;display:flex;position:relative;border-radius:16px;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;background:repeating-linear-gradient(90deg,transparent,transparent 48px,rgba(139,90,43,.1) 48px,rgba(139,90,43,.1) 50px),linear-gradient(180deg,#c9a66b,#b8956a,#c9a66b,#b08a5b,#c9a66b,#b8956a);box-shadow:inset 0 0 40px #00000026,0 4px 12px #0003}.balls-zone{flex:1;position:relative;min-height:200px;padding:20px}.containers-zone{display:flex;flex-direction:column;justify-content:center;gap:20px;padding:20px;background:#00000014;border-left:3px dashed rgba(139,69,19,.3);min-width:140px}.ball{position:absolute;width:40px;height:40px;border-radius:50%;cursor:grab;box-shadow:0 3px 8px #0000004d,inset 0 -4px 8px #0003,inset 0 4px 8px #ffffff4d;transform:translate(-50%,-50%);transition:box-shadow .15s ease,transform .1s ease;z-index:10;touch-action:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.ball:active{cursor:grabbing}.ball:hover{box-shadow:0 5px 12px #0006,inset 0 -4px 8px #0003,inset 0 4px 8px #ffffff4d}.ball.dragging{position:fixed;cursor:grabbing;transform:translate(-50%,-50%) scale(1.15);box-shadow:0 12px 28px #00000073,inset 0 -4px 8px #0003,inset 0 4px 8px #ffffff4d;pointer-events:none;transition:none;will-change:left,top}.ball-pattern{width:100%;height:100%;pointer-events:none}.container{display:flex;flex-direction:column;align-items:center;padding:10px;border-radius:12px;background:#fff3;transition:all .2s ease;min-height:120px}.container.highlighted{background:#4caf5040;box-shadow:0 0 15px #4caf5066;transform:scale(1.03)}.container.full{opacity:.7}.container-label{font-size:.75rem;font-weight:700;color:#4a3520;text-align:center;margin-bottom:6px;text-shadow:0 1px 2px rgba(255,255,255,.5)}.bag-svg{width:80px;height:100px}.cart-svg{width:100px;height:70px}.container-balls{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin-top:6px;max-width:80px}.cart-balls{max-width:100px}.mini-ball{width:14px;height:14px;border-radius:50%;box-shadow:0 1px 3px #0000004d,inset 0 -1px 2px #0003}@media(max-width:480px){.play-area{flex-direction:column;border-radius:12px}.balls-zone{min-height:150px;padding:15px}.containers-zone{flex-direction:row;justify-content:center;gap:15px;padding:15px;border-left:none;border-top:3px dashed rgba(139,69,19,.3);min-width:auto}.container{min-height:100px;padding:8px}.bag-svg{width:60px;height:75px}.cart-svg{width:80px;height:55px}.ball{width:36px;height:36px}.container-label{font-size:.65rem}}@media(orientation:landscape)and (max-height:500px){.containers-zone{flex-direction:column;gap:10px;padding:10px;min-width:110px}.container{min-height:90px;padding:6px}.bag-svg{width:55px;height:70px}.cart-svg{width:75px;height:50px}.ball{width:32px;height:32px}}@media(min-width:700px)and (min-height:550px)and (max-height:1100px){.containers-zone{gap:12px;padding:12px;min-width:120px}.container{min-height:90px;padding:8px}.bag-svg{width:65px;height:80px}.cart-svg{width:85px;height:60px}.ball{width:42px;height:42px}.mini-ball{width:12px;height:12px}.container-label{font-size:.7rem}.balls-zone{padding:12px}}@media(min-width:1000px)and (min-height:1100px){.containers-zone{gap:30px;padding:30px;min-width:180px}.container{min-height:160px}.bag-svg{width:100px;height:125px}.cart-svg{width:130px;height:90px}.ball{width:52px;height:52px}}.build-play-area{flex:1;display:flex;position:relative;border-radius:16px;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;background:repeating-linear-gradient(90deg,transparent,transparent 48px,rgba(139,90,43,.1) 48px,rgba(139,90,43,.1) 50px),linear-gradient(180deg,#c9a66b,#b8956a,#c9a66b,#b08a5b,#c9a66b,#b8956a);box-shadow:inset 0 0 40px #00000026,0 4px 12px #0003}.resources-zone{flex:1;display:flex;flex-direction:column;padding:15px;min-width:0}.zone-label{font-size:.9rem;font-weight:700;color:#4a3520;text-align:center;margin-bottom:10px;text-shadow:0 1px 2px rgba(255,255,255,.5)}.resources-items{flex:1;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.resource-group{display:flex;flex-direction:column;gap:4px}.resource-items-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}.balls-row{gap:6px}.answer-zone{display:flex;flex-direction:column;min-width:160px;max-width:200px;padding:15px;background:#00000014;border-left:3px dashed rgba(139,69,19,.4);transition:all .2s ease}.answer-zone.highlighted{background:#4caf5033;box-shadow:inset 0 0 20px #4caf504d;border-color:#4caf5099}.target-display{font-size:1rem;font-weight:700;color:#4a3520;text-align:center;padding:8px;background:#fff6;border-radius:8px;margin-bottom:12px}.target-number{font-size:1.4rem;color:#2196f3}.answer-items{flex:1;display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start;justify-content:center;padding:10px;background:#ffffff26;border-radius:8px;border:2px dashed rgba(139,69,19,.2);min-height:100px}.answer-placeholder{color:#8b7355;font-size:.85rem;font-style:italic;text-align:center;width:100%;padding:20px 10px}.running-total{font-size:1rem;font-weight:700;color:#4a3520;text-align:center;padding:8px;background:#fff6;border-radius:8px;margin-top:12px}.running-total span{font-size:1.2rem}.running-total span.correct{color:#4caf50}.build-item{display:flex;flex-direction:column;align-items:center;cursor:grab;transition:transform .1s ease,box-shadow .15s ease;touch-action:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.build-item:hover{transform:scale(1.05)}.build-item:active{cursor:grabbing}.build-item.dragging{position:fixed;cursor:grabbing;transform:translate(-50%,-50%) scale(1.1);pointer-events:none;transition:none;will-change:left,top}.build-cart{width:50px}.mini-cart-svg{width:50px;height:35px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.build-bag{width:40px}.mini-bag-svg{width:40px;height:50px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.build-ball{width:28px}.ball-circle{width:24px;height:24px;border-radius:50%;box-shadow:0 2px 5px #0000004d,inset 0 -2px 4px #0003,inset 0 2px 4px #ffffff4d}.item-value{font-size:.65rem;font-weight:700;color:#4a3520;margin-top:2px;text-shadow:0 1px 1px rgba(255,255,255,.5)}.ball-value{font-size:.55rem}@media(max-width:480px){.build-play-area{flex-direction:column;border-radius:12px}.resources-zone{padding:12px;min-height:120px}.answer-zone{min-width:auto;max-width:none;border-left:none;border-top:3px dashed rgba(139,69,19,.4);padding:12px}.answer-items{min-height:80px}.zone-label{font-size:.8rem;margin-bottom:8px}.target-display{font-size:.9rem;padding:6px}.target-number{font-size:1.2rem}.mini-cart-svg{width:40px;height:28px}.mini-bag-svg{width:32px;height:40px}.ball-circle{width:20px;height:20px}.build-cart{width:40px}.build-bag{width:32px}.build-ball{width:24px}}@media(orientation:landscape)and (max-height:500px){.resources-zone{padding:10px}.answer-zone{min-width:130px;max-width:160px;padding:10px}.zone-label{font-size:.75rem;margin-bottom:6px}.target-display{font-size:.85rem;padding:5px;margin-bottom:8px}.target-number{font-size:1.1rem}.running-total{font-size:.85rem;padding:5px;margin-top:8px}.answer-items{min-height:70px;padding:8px}.mini-cart-svg{width:40px;height:28px}.mini-bag-svg{width:32px;height:40px}.ball-circle{width:18px;height:18px}.build-cart{width:40px}.build-bag{width:32px}.build-ball{width:22px}}@media(min-width:700px)and (min-height:550px)and (max-height:1100px){.resources-zone{padding:12px}.answer-zone{min-width:150px;max-width:180px;padding:12px}.zone-label{font-size:.85rem}.resource-items-row,.answer-items{gap:10px}.mini-cart-svg{width:45px;height:32px}.mini-bag-svg{width:36px;height:45px}.ball-circle{width:22px;height:22px}}@media(min-width:1000px)and (min-height:1100px){.resources-zone{padding:20px}.answer-zone{min-width:200px;max-width:260px;padding:20px}.zone-label{font-size:1rem;margin-bottom:15px}.target-display{font-size:1.2rem;padding:12px;margin-bottom:15px}.target-number{font-size:1.6rem}.running-total{font-size:1.1rem;padding:10px;margin-top:15px}.running-total span{font-size:1.4rem}.resource-items-row{gap:12px}.answer-items{gap:12px;padding:15px;min-height:150px}.mini-cart-svg{width:60px;height:42px}.mini-bag-svg{width:48px;height:60px}.ball-circle{width:30px;height:30px}.build-cart{width:60px}.build-bag{width:48px}.build-ball{width:34px}.item-value{font-size:.75rem}.ball-value{font-size:.65rem}}.shelf{display:flex;align-items:center;gap:16px;padding:12px 16px;background:linear-gradient(180deg,#d4a574,#c9976a,#d4a574);border-radius:12px;box-shadow:0 4px 8px #00000026,inset 0 2px 4px #ffffff4d,inset 0 -2px 4px #0000001a;min-height:70px}.bundles-section{display:flex;align-items:center;gap:12px;flex-wrap:wrap;flex:1}.bundle-group{position:relative;display:flex;align-items:center}.bundle-item{display:flex;align-items:center;gap:4px;padding:8px 12px;background:#fff6;border-radius:10px;cursor:pointer;transition:all .15s ease;min-width:60px;min-height:48px;justify-content:center;touch-action:manipulation}.bundle-item:hover{background:#fff9;transform:translateY(-2px)}.bundle-item:active{transform:scale(.95)}.bundle-icon{width:40px;height:50px;flex-shrink:0}.bundle-icon.bag-icon{width:36px;height:45px}.bundle-icon.cart-icon{width:50px;height:40px}.bundle-icon.pulsing{animation:bundlePulse .6s ease-out}@keyframes bundlePulse{0%{transform:scale(1)}25%{transform:scale(1.2)}50%{transform:scale(1.1)}to{transform:scale(1)}}.bundle-count{font-size:1.1rem;font-weight:700;color:#4a3520;text-shadow:0 1px 2px rgba(255,255,255,.5)}.skip-count-popup{position:absolute;top:-30px;left:50%;transform:translate(-50%);background:#2196f3;color:#fff;font-size:1.2rem;font-weight:700;padding:6px 14px;border-radius:20px;box-shadow:0 4px 12px #2196f366;animation:popupShow .6s ease-out forwards;pointer-events:none;z-index:100}@keyframes popupShow{0%{opacity:0;transform:translate(-50%) translateY(10px) scale(.8)}30%{opacity:1;transform:translate(-50%) translateY(0) scale(1.1)}60%{transform:translate(-50%) translateY(-5px) scale(1)}to{opacity:0;transform:translate(-50%) translateY(-20px) scale(.9)}}.combine-button{padding:12px 20px;font-size:.95rem;font-weight:700;color:#fff;background:#9e9e9e;border:none;border-radius:10px;cursor:not-allowed;transition:all .2s ease;touch-action:manipulation;white-space:nowrap}.combine-button.available{background:linear-gradient(135deg,#4caf50,#43a047);cursor:pointer;box-shadow:0 4px 12px #4caf5066;animation:pulseGlow 2s ease-in-out infinite}.combine-button.available:hover{background:linear-gradient(135deg,#66bb6a,#4caf50);transform:translateY(-2px);box-shadow:0 6px 16px #4caf5080}.combine-button.available:active{transform:translateY(0)}.combine-button.disabled{opacity:.6}@keyframes pulseGlow{0%,to{box-shadow:0 4px 12px #4caf5066}50%{box-shadow:0 4px 20px #4caf50b3,0 0 10px #4caf504d}}.bundles-section:empty:before{content:"No bundles yet";color:#4a352080;font-style:italic;font-size:.85rem}@media(max-width:480px){.shelf{flex-direction:column;gap:10px;padding:10px 12px;min-height:auto}.bundles-section{justify-content:center;gap:8px}.bundle-item{padding:6px 10px;min-width:50px;min-height:44px}.bundle-icon.bag-icon{width:30px;height:38px}.bundle-icon.cart-icon{width:42px;height:34px}.bundle-count{font-size:.95rem}.combine-button{padding:10px 16px;font-size:.85rem;width:100%}.skip-count-popup{font-size:1rem;padding:5px 12px;top:-25px}}@media(orientation:landscape)and (max-height:500px){.shelf{flex-direction:row;gap:12px;padding:8px 12px;min-height:60px}.bundle-item{padding:5px 8px;min-width:45px;min-height:40px}.bundle-icon.bag-icon{width:28px;height:35px}.bundle-icon.cart-icon{width:38px;height:30px}.bundle-count{font-size:.85rem}.combine-button{padding:8px 14px;font-size:.8rem}}@media(min-width:700px)and (min-height:550px){.shelf{gap:20px;padding:14px 20px;min-height:80px}.bundles-section{gap:16px}.bundle-item{padding:10px 14px;min-width:70px;min-height:56px}.bundle-icon.bag-icon{width:42px;height:52px}.bundle-icon.cart-icon{width:56px;height:45px}.bundle-count{font-size:1.2rem}.combine-button{padding:14px 24px;font-size:1.05rem}.skip-count-popup{font-size:1.4rem;padding:8px 18px}}@media(min-width:1000px){.shelf{gap:24px;padding:16px 24px}.bundles-section{gap:20px}.bundle-item{padding:12px 16px;min-width:80px;min-height:64px}.bundle-icon.bag-icon{width:48px;height:60px}.bundle-icon.cart-icon{width:64px;height:50px}.bundle-count{font-size:1.3rem}.combine-button{padding:16px 28px;font-size:1.1rem}}.control-bar{display:flex;gap:12px;justify-content:center;align-items:center;padding:12px 16px;background:#fffffff2;border-radius:16px;box-shadow:0 -2px 12px #0000001a}.control-button{display:flex;align-items:center;justify-content:center;gap:8px;min-width:100px;min-height:52px;padding:12px 20px;font-size:1.1rem;font-weight:700;border:none;border-radius:12px;cursor:pointer;transition:all .2s ease;touch-action:manipulation}.control-button:active:not(.disabled){transform:scale(.96)}.control-icon{font-size:1.3rem;flex-shrink:0}.control-label{white-space:nowrap}.hint-button{background:linear-gradient(135deg,#faf089,#ecc94b);color:#744210;box-shadow:0 4px 8px #ecc94b66}.hint-button:hover:not(.disabled){background:linear-gradient(135deg,#ecc94b,#d69e2e);transform:translateY(-2px);box-shadow:0 6px 12px #ecc94b80}.undo-button{background:linear-gradient(135deg,#90cdf4,#4299e1);color:#fff;box-shadow:0 4px 8px #4299e166}.undo-button:hover:not(.disabled){background:linear-gradient(135deg,#4299e1,#3182ce);transform:translateY(-2px);box-shadow:0 6px 12px #4299e180}.check-button{background:linear-gradient(135deg,#68d391,#48bb78);color:#fff;box-shadow:0 4px 8px #48bb7866}.check-button:hover:not(.disabled){background:linear-gradient(135deg,#48bb78,#38a169);transform:translateY(-2px);box-shadow:0 6px 12px #48bb7880}.check-button .control-icon{font-size:1.5rem;font-weight:900}.control-button.disabled{background:#e2e8f0;color:#a0aec0;box-shadow:none;cursor:not-allowed;opacity:.7}.control-button.disabled:hover{transform:none}@media(max-width:480px){.control-bar{gap:8px;padding:10px 12px}.control-button{min-width:80px;min-height:48px;padding:10px 14px;font-size:.95rem;gap:6px;border-radius:10px}.control-icon{font-size:1.1rem}.check-button .control-icon{font-size:1.3rem}}@media(min-width:700px){.control-bar{gap:16px;padding:16px 24px}.control-button{min-width:130px;min-height:60px;padding:16px 28px;font-size:1.2rem;gap:10px;border-radius:14px}.control-icon{font-size:1.5rem}.check-button .control-icon{font-size:1.7rem}}@media(min-width:1000px){.control-button{min-width:150px;min-height:64px;padding:18px 32px;font-size:1.3rem}.control-icon{font-size:1.6rem}.check-button .control-icon{font-size:1.8rem}}@media(orientation:landscape)and (max-height:500px){.control-bar{gap:10px;padding:8px 12px;border-radius:12px}.control-button{min-width:90px;min-height:44px;padding:8px 16px;font-size:.9rem;gap:6px;border-radius:10px}.control-icon{font-size:1rem}.check-button .control-icon{font-size:1.2rem}}.counting-display{display:flex;align-items:center;justify-content:center;gap:16px;padding:14px 20px;background:linear-gradient(135deg,#fff,#f7fafc);border-radius:14px;box-shadow:0 4px 12px #0000001a;border:2px solid #e2e8f0;flex-wrap:wrap}.counting-display-hidden{background:linear-gradient(135deg,#edf2f7,#e2e8f0);min-height:60px}.placeholder-text{font-size:1.1rem;font-weight:600;color:#718096;font-style:italic}.count-breakdown{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}.count-part{display:flex;align-items:center;gap:4px}.count-operator{font-size:1.4rem;font-weight:700;color:#718096;margin:0 4px}.count-item{display:flex;align-items:center;gap:4px;background:#edf2f7;padding:6px 10px;border-radius:10px}.count-icon{font-size:1.5rem}.count-multiplier{display:flex;align-items:baseline;gap:2px}.count-times{font-size:.9rem;font-weight:600;color:#718096}.count-number{font-size:1.3rem;font-weight:800;color:#2d3748}.count-value{font-size:1rem;font-weight:600;color:#4a5568;margin-left:2px}.count-total{display:flex;align-items:baseline;gap:6px;padding:8px 16px;background:linear-gradient(135deg,#68d391,#48bb78);border-radius:12px;box-shadow:0 2px 8px #48bb784d}.total-equals{font-size:1.4rem;font-weight:700;color:#fff;opacity:.9}.total-number{font-size:1.8rem;font-weight:900;color:#fff}.total-label{font-size:1rem;font-weight:600;color:#fff;opacity:.9;text-transform:lowercase}@media(max-width:480px){.counting-display{gap:10px;padding:10px 14px;flex-direction:column}.counting-display-hidden{flex-direction:row;min-height:50px}.placeholder-text{font-size:.95rem}.count-breakdown{gap:6px}.count-operator{font-size:1.2rem;margin:0 2px}.count-item{padding:4px 8px}.count-icon{font-size:1.2rem}.count-number{font-size:1.1rem}.count-value{font-size:.85rem}.count-times{font-size:.8rem}.count-total{padding:6px 12px;gap:4px}.total-equals{font-size:1.2rem}.total-number{font-size:1.5rem}.total-label{font-size:.85rem}}@media(min-width:700px){.counting-display{gap:20px;padding:18px 28px;border-radius:16px}.counting-display-hidden{min-height:70px}.placeholder-text{font-size:1.2rem}.count-operator{font-size:1.6rem;margin:0 6px}.count-item{padding:8px 14px;border-radius:12px}.count-icon{font-size:1.8rem}.count-number{font-size:1.5rem}.count-value{font-size:1.1rem}.count-total{padding:10px 20px;gap:8px;border-radius:14px}.total-equals{font-size:1.6rem}.total-number{font-size:2.2rem}.total-label{font-size:1.1rem}}@media(min-width:1000px){.counting-display{gap:24px;padding:20px 36px}.count-icon{font-size:2rem}.count-number{font-size:1.7rem}.count-value{font-size:1.2rem}.total-number{font-size:2.5rem}.total-label{font-size:1.2rem}}@media(orientation:landscape)and (max-height:500px){.counting-display{gap:12px;padding:8px 14px;border-radius:10px}.counting-display-hidden{min-height:40px}.placeholder-text{font-size:.9rem}.count-operator{font-size:1.1rem;margin:0 3px}.count-item{padding:4px 8px;border-radius:8px}.count-icon{font-size:1.1rem}.count-number{font-size:1rem}.count-value{font-size:.8rem}.count-times{font-size:.75rem}.count-total{padding:5px 10px;gap:4px;border-radius:8px}.total-equals{font-size:1.1rem}.total-number{font-size:1.3rem}.total-label{font-size:.8rem}}.hint-overlay{position:fixed;inset:0;z-index:50;pointer-events:none;display:flex;align-items:flex-start;justify-content:center;padding-top:20px;animation:hintFadeIn .3s ease}.hint-bubble{pointer-events:auto;background:linear-gradient(135deg,#fef3c7,#fde68a);border:3px solid #f59e0b;border-radius:20px;padding:16px 20px;max-width:320px;box-shadow:0 4px 20px #f59e0b4d,0 2px 8px #0000001a;display:flex;flex-direction:column;align-items:center;gap:12px;animation:hintBounceIn .4s ease}.hint-bubble:after{content:"";position:absolute;bottom:-12px;left:50%;transform:translate(-50%);border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid #f59e0b}.hint-icon{width:32px;height:32px;color:#d97706;flex-shrink:0}.hint-icon svg{width:100%;height:100%}.hint-message{margin:0;font-size:1rem;font-weight:600;color:#92400e;text-align:center;line-height:1.4}.hint-dismiss-button{background:#f59e0b;color:#fff;border:none;border-radius:12px;padding:8px 20px;font-size:.9rem;font-weight:700;cursor:pointer;transition:all .2s ease;touch-action:manipulation}.hint-dismiss-button:hover{background:#d97706;transform:scale(1.05)}.hint-dismiss-button:active{transform:scale(.95)}@keyframes hintFadeIn{0%{opacity:0}to{opacity:1}}@keyframes hintBounceIn{0%{opacity:0;transform:scale(.8) translateY(-20px)}50%{transform:scale(1.05) translateY(0)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes hintPulse{0%,to{box-shadow:0 0 #f59e0b66}50%{box-shadow:0 0 0 10px #f59e0b00}}.hint-highlight{animation:hintPulse 1.5s ease-in-out infinite}@media(max-width:480px){.hint-overlay{padding-top:10px}.hint-bubble{max-width:280px;padding:12px 16px;border-radius:16px}.hint-icon{width:28px;height:28px}.hint-message{font-size:.9rem}.hint-dismiss-button{padding:6px 16px;font-size:.85rem}}@media(min-width:700px){.hint-overlay{padding-top:40px}.hint-bubble{max-width:400px;padding:20px 24px}.hint-icon{width:36px;height:36px}.hint-message{font-size:1.1rem}.hint-dismiss-button{padding:10px 24px;font-size:1rem}}.success-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:100;animation:overlayFadeIn .3s ease}.success-overlay.success{background:#22c55ef2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.success-overlay.incorrect{background:#f97316f2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.success-content{position:relative;text-align:center;color:#fff;padding:40px;max-width:400px}.confetti-container{position:absolute;top:-50px;left:50%;transform:translate(-50%);width:300px;height:200px;overflow:visible;pointer-events:none}.confetti{position:absolute;width:12px;height:12px;border-radius:2px;animation:confettiFall 2s ease-out forwards}.confetti-1{left:10%;background:#fbbf24;animation-delay:0s}.confetti-2{left:20%;background:#f472b6;animation-delay:.1s}.confetti-3{left:30%;background:#60a5fa;animation-delay:.05s}.confetti-4{left:40%;background:#34d399;animation-delay:.15s}.confetti-5{left:50%;background:#a78bfa;animation-delay:.08s}.confetti-6{left:60%;background:#fb7185;animation-delay:.12s}.confetti-7{left:70%;background:#fbbf24;animation-delay:.03s}.confetti-8{left:80%;background:#60a5fa;animation-delay:.18s}.confetti-9{left:90%;background:#34d399;animation-delay:.07s}.confetti-10{left:15%;background:#f472b6;animation-delay:.2s}.confetti-11{left:45%;background:#a78bfa;animation-delay:.13s}.confetti-12{left:75%;background:#fb7185;animation-delay:.16s}@keyframes confettiFall{0%{transform:translateY(0) rotate(0) scale(0);opacity:1}10%{transform:translateY(20px) rotate(45deg) scale(1);opacity:1}to{transform:translateY(350px) rotate(720deg) scale(.5);opacity:0}}.success-icon{width:100px;height:100px;margin:0 auto 20px;animation:iconPopIn .4s ease}.success-icon svg{width:100%;height:100%}.success-title{font-size:2.5rem;font-weight:800;margin:0 0 12px;animation:titleSlideUp .4s ease .1s both;text-shadow:0 2px 4px rgba(0,0,0,.1)}.success-message{font-size:1.2rem;margin:0 0 24px;opacity:.95;animation:titleSlideUp .4s ease .2s both;line-height:1.4}.success-buttons{display:flex;justify-content:center;gap:16px;animation:titleSlideUp .4s ease .3s both}.success-button{display:flex;align-items:center;gap:10px;padding:16px 32px;font-size:1.2rem;font-weight:700;color:#fff;border:none;border-radius:16px;cursor:pointer;transition:all .2s ease;touch-action:manipulation}.success-button svg{width:24px;height:24px}.next-button{background:#ffffff40;border:3px solid white}.next-button:hover{background:#ffffff59;transform:scale(1.05);box-shadow:0 4px 20px #0003}.next-button:active{transform:scale(.98)}.retry-button{background:#ffffff40;border:3px solid white}.retry-button:hover{background:#ffffff59;transform:scale(1.05);box-shadow:0 4px 20px #0003}.retry-button:active{transform:scale(.98)}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes iconPopIn{0%{transform:scale(0) rotate(-180deg);opacity:0}60%{transform:scale(1.2) rotate(10deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes titleSlideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.success-overlay.success .success-icon{animation:iconPopIn .4s ease,successPulse 1.5s ease-in-out .5s infinite}@keyframes successPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@media(max-width:480px){.success-content{padding:30px 20px}.success-icon{width:80px;height:80px}.success-title{font-size:2rem}.success-message{font-size:1rem}.success-button{padding:14px 24px;font-size:1rem;border-radius:12px}.success-button svg{width:20px;height:20px}.confetti{width:10px;height:10px}}@media(min-width:700px){.success-content{padding:50px;max-width:500px}.success-icon{width:120px;height:120px}.success-title{font-size:3rem}.success-message{font-size:1.4rem}.success-button{padding:18px 40px;font-size:1.3rem}.success-button svg{width:28px;height:28px}}.parent-gate-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.parent-gate-modal{background:#fff;border-radius:16px;padding:32px;max-width:360px;width:90%;box-shadow:0 8px 32px #0003;text-align:center;animation:slideUp .3s ease}.parent-gate-title{font-size:1.2rem;font-weight:600;color:#4a5568;margin:0 0 16px}.parent-gate-question{font-size:1.6rem;font-weight:700;color:#2d3748;margin:0 0 20px}.parent-gate-input{width:100%;padding:14px 16px;font-size:1.4rem;font-weight:600;text-align:center;border:2px solid #e2e8f0;border-radius:12px;outline:none;transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box}.parent-gate-input:focus{border-color:#4299e1;box-shadow:0 0 0 3px #4299e133}.parent-gate-input.error{border-color:#e53e3e;animation:shake .3s ease}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.parent-gate-error{color:#e53e3e;font-size:.95rem;font-weight:500;margin:12px 0 0}.parent-gate-buttons{display:flex;gap:12px;margin-top:24px}.parent-gate-btn{flex:1;padding:12px 20px;font-size:1rem;font-weight:600;border:none;border-radius:10px;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease}.parent-gate-btn:active{transform:scale(.98)}.parent-gate-btn.cancel{background:#e2e8f0;color:#4a5568}.parent-gate-btn.cancel:hover{background:#cbd5e0}.parent-gate-btn.confirm{background:linear-gradient(135deg,#4299e1,#3182ce);color:#fff;box-shadow:0 2px 8px #4299e166}.parent-gate-btn.confirm:hover{box-shadow:0 4px 12px #4299e180}@media(max-width:480px){.parent-gate-modal{padding:24px}.parent-gate-question{font-size:1.4rem}.parent-gate-input{font-size:1.2rem;padding:12px 14px}}.app{display:grid;grid-template-rows:auto 1fr auto;height:100vh;height:100dvh;padding:var(--space-md);box-sizing:border-box;overflow:hidden;background:radial-gradient(circle at 20% 80%,rgba(255,255,255,.1) 1px,transparent 1px),radial-gradient(circle at 80% 20%,rgba(255,255,255,.1) 1px,transparent 1px),radial-gradient(circle at 50% 50%,rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(180deg,var(--bg-sky) 0%,var(--bg-sky-light) 35%,var(--bg-grass-light) 65%,var(--bg-grass) 100%);background-size:100px 100px,80px 80px,60px 60px,100% 100%}.app-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-sm)}.header-left{display:flex;flex-direction:column;gap:var(--space-sm);flex:1;min-width:200px}.header-right{flex-shrink:0}.free-play-prompt{background:var(--white);padding:var(--space-md);border-radius:var(--radius-lg);box-shadow:var(--shadow-medium)}.free-play-text{margin:0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.build-mode-prompt{background:var(--white);padding:var(--space-md);border-radius:var(--radius-lg);box-shadow:var(--shadow-medium);display:flex;align-items:center;gap:var(--space-md)}.build-mode-text{margin:0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.build-progress{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap}.build-skip-button{display:inline-block;padding:4px 12px;font-size:.85rem;font-weight:500;color:#a0aec0;background:transparent;border:1px solid #cbd5e0;border-radius:12px;cursor:pointer;transition:color .2s ease,border-color .2s ease;margin-left:auto}.build-skip-button:hover{color:#718096;border-color:#a0aec0}.build-skip-button:active{color:#4a5568}.settings-toggle{background:#ffffff80;border:none;border-radius:var(--radius-md);padding:var(--space-xs);cursor:pointer;color:var(--text-secondary);opacity:.6;transition:opacity .2s,background-color .2s;display:flex;align-items:center;justify-content:center;margin-right:var(--space-sm)}.settings-toggle:hover{opacity:1;background:#fffc}.settings-toggle:focus{outline:2px solid var(--primary);outline-offset:2px}.app-main{display:flex;justify-content:center;align-items:center;flex:1;min-height:0;padding:var(--space-sm) 0}.app-footer{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}@media(max-width:480px){.app{padding:var(--space-sm)}.app-header{flex-direction:column;gap:var(--space-xs)}.header-left{width:100%;gap:var(--space-xs)}.header-right{width:100%}.free-play-prompt{padding:var(--space-sm)}.free-play-text{font-size:var(--font-size-md)}.build-mode-prompt{padding:var(--space-sm);gap:var(--space-sm)}.build-mode-text{font-size:var(--font-size-md)}.app-footer{gap:var(--space-xs)}}@media(orientation:landscape)and (max-height:500px){.app{padding:var(--space-xs) var(--space-sm);grid-template-rows:auto 1fr auto}.app-header{flex-direction:row;flex-wrap:nowrap;gap:var(--space-sm);margin-bottom:var(--space-xs)}.header-left{flex-direction:row;align-items:center;gap:var(--space-sm);flex:1}.header-right{flex-shrink:0}.app-main{padding:var(--space-xs) 0}.app-footer{flex-direction:row;justify-content:center;gap:var(--space-md)}.free-play-prompt{padding:var(--space-xs) var(--space-sm)}.free-play-text{font-size:var(--font-size-sm)}.build-mode-prompt{padding:var(--space-xs) var(--space-sm)}.build-mode-text{font-size:var(--font-size-sm)}}@media(min-width:700px)and (min-height:550px)and (max-height:1100px){.app{padding:var(--space-sm)}.app-header{gap:var(--space-sm);margin-bottom:var(--space-xs)}.header-left{gap:var(--space-xs)}.free-play-prompt{padding:var(--space-sm)}.free-play-text{font-size:var(--font-size-lg)}.app-footer{gap:var(--space-xs)}.app-main{padding:var(--space-xs) 0}}@media(min-width:1000px)and (min-height:1100px){.app{padding:var(--space-xl)}.app-header{gap:var(--space-xl)}.free-play-text{font-size:var(--font-size-2xl)}}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.shake{animation:shake .4s ease-out}@keyframes bounce{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.bounce{animation:bounce .3s ease-out}@keyframes flyToShelf{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--fly-x, 100px),var(--fly-y, -100px)) scale(.5);opacity:0}}.fly-to-shelf{animation:flyToShelf .4s ease-in forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:fadeIn .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.slide-up{animation:slideUp .3s ease-out}@keyframes pop{0%{transform:scale(0);opacity:0}70%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.pop{animation:pop .3s ease-out}
