*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;height:100vh;overflow:hidden;touch-action:none;-webkit-tap-highlight-color:transparent}#root{width:100%;height:100%}.app{width:100%;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;background:linear-gradient(to bottom,#87ceeb,#b0e0e6);cursor:crosshair;user-select:none;-webkit-user-select:none;touch-action:none}.header{position:absolute;top:15px;left:50%;transform:translate(-50%);text-align:center;z-index:15}h1{margin:0;font-size:3rem;color:#333}p{margin:.2rem 0 0;color:#666;font-size:1.1rem;font-weight:500}.app.dragging{cursor:grabbing}.slingshot-instructions{position:fixed;left:180px;bottom:285px;transform:translate(-50%);background:#fffffff2;padding:10px 14px;border-radius:8px;border:2px solid #ff6b35;box-shadow:0 3px 8px #00000040;z-index:20;text-align:center;animation:instructionsPulse 2s ease-in-out infinite;pointer-events:none}.slingshot-instructions p{margin:3px 0;font-size:.8rem;font-weight:600;color:#333;line-height:1.2}@keyframes instructionsPulse{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.05)}}.poof-animation{font-size:6rem;animation:poof .4s ease-out forwards;pointer-events:none}@keyframes poof{0%{transform:translate(-50%,-50%) scale(.5);opacity:1}50%{transform:translate(-50%,-50%) scale(1.5);opacity:.8}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}.score-panel{position:absolute;top:15px;right:15px;display:flex;flex-direction:column;gap:10px;z-index:20;background:linear-gradient(135deg,#8b6f47,#6b5635,#8b6f47);padding:15px 18px;border-radius:15px;box-shadow:0 4px 12px #0006,inset 0 1px #fff3,inset 0 -1px #0000004d;border:3px solid #5D4A2F}.score-panel:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px);border-radius:15px;pointer-events:none}.score-info{display:flex;flex-direction:column;gap:5px;padding-bottom:10px;border-bottom:2px solid #5D4A2F;position:relative;z-index:1}.current-score,.high-score{font-size:1.1rem;font-weight:700;color:#fff8dc;text-align:center;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.current-score{color:gold;font-size:1.3rem;text-shadow:1px 1px 2px rgba(0,0,0,.5),0 0 10px rgba(255,215,0,.3)}.score-panel .leaderboard-button{background:linear-gradient(135deg,#d4af37,#b8941f);color:#2c1810;border:2px solid #8B7355;padding:12px 20px;font-size:1rem;font-weight:700;border-radius:10px;cursor:pointer;transition:all .2s ease;box-shadow:0 3px 8px #0006,inset 0 1px #ffffff4d;font-family:inherit;text-shadow:0 1px 1px rgba(255,255,255,.3);position:relative;z-index:1}.score-panel .leaderboard-button:hover{transform:translateY(-2px);box-shadow:0 5px 12px #00000080,inset 0 1px #ffffff4d;background:linear-gradient(135deg,#e5c158,#c9a530)}.score-panel .leaderboard-button:active{transform:translateY(0);box-shadow:0 2px 4px #0006,inset 0 1px 2px #0003}.pause-button{position:absolute;top:15px;left:15px;padding:8px;background:linear-gradient(135deg,#8b6f47,#6b5635);border:3px solid #5D4A2F;border-radius:10px;cursor:pointer;z-index:20;box-shadow:0 4px 10px #0006,inset 0 1px #fff3;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.pause-button:hover{transform:translateY(-2px);box-shadow:0 6px 14px #00000080,inset 0 1px #fff3;background:linear-gradient(135deg,#9c7f51,#7c6545)}.pause-button:active{transform:translateY(0);box-shadow:0 2px 4px #0006,inset 0 1px 2px #0003}.pause-icon{width:32px;height:32px;display:block;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.ammo-display{pointer-events:none;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));font-size:1.8rem}.pause-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .3s ease-out}.pause-content{background:linear-gradient(135deg,#8b6f47,#6b5635,#8b6f47);padding:40px 60px;border-radius:20px;box-shadow:0 15px 50px #0009,inset 0 2px #fff3,inset 0 -2px #0000004d;border:4px solid #5D4A2F;text-align:center;animation:slideIn .4s ease-out;min-width:400px;position:relative}.pause-content:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent,transparent 3px,rgba(0,0,0,.05) 3px,rgba(0,0,0,.05) 6px);border-radius:20px;pointer-events:none}.pause-content h2{margin:0 0 30px;font-size:2.5rem;color:#fff8dc;text-shadow:2px 2px 4px rgba(0,0,0,.6),0 0 20px rgba(255,215,0,.2);position:relative;z-index:1}.pause-buttons{display:flex;flex-direction:column;gap:15px;position:relative;z-index:1}.pause-menu-button{background:linear-gradient(135deg,#d4af37,#b8941f);color:#2c1810;border:3px solid #8B7355;padding:16px 32px;font-size:1.3rem;font-weight:700;border-radius:12px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #0006,inset 0 2px #ffffff4d;font-family:inherit;text-shadow:0 1px 1px rgba(255,255,255,.3)}.pause-menu-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #00000080,inset 0 2px #ffffff4d;background:linear-gradient(135deg,#e5c158,#c9a530)}.pause-menu-button:active{transform:translateY(0);box-shadow:0 2px 6px #0006,inset 0 1px 2px #0003}.pause-menu-button.resume-button{background:linear-gradient(135deg,#5fad56,#4e8d47);color:#fff8dc;border:3px solid #3A6B32;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.pause-menu-button.resume-button:hover{background:linear-gradient(135deg,#6fbd66,#5e9d57)}.pause-menu-button.reset-button{background:linear-gradient(135deg,#b85c4e,#8b3a2f);color:#fff8dc;border:3px solid #6B2821;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.pause-menu-button.reset-button:hover{background:linear-gradient(135deg,#c86c5e,#9b4a3f)}.pause-menu-button.music-button{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff8dc;border:3px solid #6D28D9;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.pause-menu-button.music-button:hover{background:linear-gradient(135deg,#a78bfa,#8b5cf6)}.pause-menu-button.sfx-button{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff8dc;border:3px solid #B45309;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.pause-menu-button.sfx-button:hover{background:linear-gradient(135deg,#fbbf24,#f59e0b)}.game-over-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .3s ease-out}.game-over-content{background:linear-gradient(135deg,#8b6f47,#6b5635,#8b6f47);padding:40px 60px;border-radius:20px;box-shadow:0 10px 40px #0009,inset 0 2px #fff3,inset 0 -2px #0000004d;border:4px solid #5D4A2F;text-align:center;animation:slideIn .4s ease-out;position:relative}.game-over-content:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent,transparent 3px,rgba(0,0,0,.05) 3px,rgba(0,0,0,.05) 6px);border-radius:20px;pointer-events:none;z-index:0}@keyframes slideIn{0%{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}.game-over-content h2{margin:0 0 30px;font-size:3rem;color:gold;text-shadow:2px 2px 4px rgba(0,0,0,.6),0 0 20px rgba(255,215,0,.3);position:relative;z-index:1}.game-over-scores{margin-bottom:30px;position:relative;z-index:1}.final-score,.final-high-score{margin:15px 0;font-size:1.8rem;font-weight:700;color:#fff8dc;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.final-score{color:gold;text-shadow:1px 1px 2px rgba(0,0,0,.5),0 0 15px rgba(255,215,0,.3)}.try-again-button{background:linear-gradient(135deg,#d4af37,#b8941f);color:#2c1810;border:3px solid #8B7355;padding:16px 48px;font-size:1.5rem;font-weight:700;border-radius:12px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #0006,inset 0 2px #ffffff4d;text-shadow:0 1px 1px rgba(255,255,255,.3);position:relative;z-index:1}.try-again-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #00000080,inset 0 2px #ffffff4d;background:linear-gradient(135deg,#e5c158,#c9a530)}.try-again-button:active{transform:translateY(0);box-shadow:0 2px 6px #0006,inset 0 1px 2px #0003}.submit-score-section{margin-top:20px;position:relative;z-index:1}.submit-prompt{margin:0 0 20px;font-size:1.2rem;color:#fff8dc;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.name-input{width:100%;padding:15px 20px;font-size:1.2rem;border:3px solid #5D4A2F;border-radius:10px;margin-bottom:20px;font-family:inherit;transition:all .2s;box-sizing:border-box;background:#fff8dcf2;color:#2c1810;box-shadow:inset 0 2px 4px #0003;text-align:center}.name-input:focus{outline:none;border-color:#d4af37;box-shadow:0 0 0 3px #d4af374d,inset 0 2px 4px #0003;background:#fff8dc}.name-input.error{border-color:#e74c3c;background:#ffebebf2}.name-input.error:focus{border-color:#c0392b;box-shadow:0 0 0 3px #e74c3c4d,inset 0 2px 4px #0003}.name-error{color:#e74c3c;font-size:1rem;font-weight:600;margin:-15px 0 15px;text-align:center;animation:shake .3s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.game-over-buttons{display:flex;flex-direction:column;gap:12px}.submit-score-button,.view-leaderboard-button{background:linear-gradient(135deg,#d4af37,#b8941f);color:#2c1810;border:3px solid #8B7355;padding:16px 48px;font-size:1.3rem;font-weight:700;border-radius:12px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #0006,inset 0 1px #ffffff4d;text-shadow:0 1px 1px rgba(255,255,255,.3);position:relative;z-index:1}.submit-score-button:hover,.view-leaderboard-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #00000080,inset 0 1px #ffffff4d;background:linear-gradient(135deg,#e5c158,#c9a530)}.submit-score-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.skip-button{background:#0000004d;color:#fff8dc;border:2px solid #8B7355;padding:14px 48px;font-size:1.1rem;font-weight:600;border-radius:12px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0006,inset 0 1px #ffffff1a;text-shadow:1px 1px 2px rgba(0,0,0,.5);position:relative;z-index:1}.skip-button:hover{border-color:#8b7355;background:#00000080;transform:translateY(-2px);box-shadow:0 4px 8px #00000080,inset 0 1px #ffffff1a}.score-submitted-section{margin-top:20px;position:relative;z-index:1}.submit-success{margin:0 0 25px;font-size:1.3rem;font-weight:700;color:#90ee90;text-shadow:1px 1px 2px rgba(0,0,0,.5),0 0 15px rgba(144,238,144,.3)}.ground{position:fixed;bottom:0;left:0;width:100%;height:100px;background:linear-gradient(to bottom,#4caf50,#2e7d32);z-index:1;box-shadow:0 -4px 10px #0000001a}.grass-texture{font-size:1.5rem;line-height:1;overflow:hidden;opacity:.3;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;word-wrap:break-word;white-space:normal}.slingshot{position:fixed;bottom:100px;left:180px;transform:translate(-50%);width:120px;height:170px;z-index:5;pointer-events:none}.slingshot-image{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 12px rgba(0,0,0,.4))}.slingshot-anchor-left,.slingshot-anchor-right{position:absolute;width:0;height:0;pointer-events:none;visibility:hidden}.slingshot-bands{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:4;pointer-events:none}.llama{position:absolute;font-size:3rem;pointer-events:none;-webkit-user-select:none;user-select:none;transition:none}.llama-inner{filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));animation:llama-spawn .2s ease-out}@keyframes llama-spawn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.net{position:absolute;width:100px;height:100px;pointer-events:none;z-index:5;transform:translate(-50%,-50%);transition:all .3s ease-out}.net img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(2px 2px 4px rgba(0,0,0,.3))}.net-points{position:absolute;top:-40px;left:50%;transform:translate(-50%);font-size:2rem;font-weight:700;color:#ff6b35;text-shadow:2px 2px 4px rgba(0,0,0,.5),-1px -1px 2px rgba(255,255,255,.3);background:linear-gradient(135deg,#ff0,gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:pulse 2s ease-in-out infinite;pointer-events:none}.net.scoring{animation:score-flash .3s ease-out}@keyframes score-flash{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.2);filter:brightness(1.5)}}@keyframes pulse{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.1)}}.leaderboard-overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-out}.leaderboard-modal{background:linear-gradient(135deg,#8b6f47,#6b5635,#8b6f47);border-radius:20px;width:90%;max-width:500px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0009,inset 0 2px #fff3,inset 0 -2px #0000004d;border:4px solid #5D4A2F;animation:slideIn .4s ease-out;overflow:hidden;position:relative}.leaderboard-modal:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent,transparent 3px,rgba(0,0,0,.05) 3px,rgba(0,0,0,.05) 6px);border-radius:20px;pointer-events:none;z-index:0}.leaderboard-header{padding:25px 30px;background:linear-gradient(135deg,#6b5635,#5d4a2f);color:#fff8dc;display:flex;justify-content:space-between;align-items:center;position:relative;z-index:1;border-bottom:3px solid #5D4A2F;box-shadow:inset 0 -2px #0000004d}.leaderboard-header h2{margin:0;font-size:1.8rem;text-shadow:2px 2px 4px rgba(0,0,0,.6),0 0 15px rgba(255,215,0,.2)}.leaderboard-close{background:#0000004d;border:2px solid #8B7355;color:#fff8dc;font-size:1.5rem;width:35px;height:35px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;box-shadow:0 2px 4px #0006,inset 0 1px #fff3}.leaderboard-close:hover{background:#00000080;transform:scale(1.1);box-shadow:0 3px 6px #00000080,inset 0 1px #fff3}.leaderboard-content{flex:1;overflow-y:auto;padding:20px 30px;min-height:300px;position:relative;z-index:1}.leaderboard-loading,.leaderboard-error,.leaderboard-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;color:#fff8dc;font-size:1.1rem;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.leaderboard-error button{margin-top:15px;padding:10px 20px;background:linear-gradient(135deg,#d4af37,#b8941f);color:#2c1810;border:2px solid #8B7355;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;box-shadow:0 3px 6px #0006,inset 0 1px #ffffff4d;text-shadow:0 1px 1px rgba(255,255,255,.3)}.leaderboard-list{display:flex;flex-direction:column;gap:10px}.leaderboard-entry{display:flex;align-items:center;padding:15px 20px;background:#6b56354d;border-radius:12px;transition:all .2s;gap:15px;border:2px solid rgba(93,74,47,.5)}.leaderboard-entry:hover{background:#6b563580;transform:translate(5px);border-color:#5d4a2fcc}.leaderboard-entry.highlight{background:linear-gradient(135deg,#d4af37,#b8941f);border:3px solid #8B7355;font-weight:700;box-shadow:0 4px 8px #0000004d,inset 0 1px #ffffff4d}.leaderboard-rank{display:flex;align-items:center;gap:8px;min-width:70px}.rank-number{font-weight:700;color:#fff8dc;font-size:1.1rem;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.medal{font-size:1.3rem;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}.leaderboard-name{flex:1;font-size:1.1rem;font-weight:600;color:#fff8dc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.leaderboard-score{font-size:1.2rem;font-weight:700;color:gold;min-width:60px;text-align:right;text-shadow:1px 1px 2px rgba(0,0,0,.5),0 0 10px rgba(255,215,0,.3)}.leaderboard-footer{padding:20px 30px;background:linear-gradient(135deg,#6b5635,#5d4a2f);border-top:3px solid #5D4A2F;display:flex;flex-direction:column;gap:15px;align-items:center;position:relative;z-index:1;box-shadow:inset 0 2px #0000004d}.leaderboard-footer p{margin:0;color:#fff8dc;font-size:.95rem;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.play-again-button{background:linear-gradient(135deg,#d4af37,#b8941f);color:#2c1810;border:3px solid #8B7355;padding:12px 40px;font-size:1.2rem;font-weight:700;border-radius:10px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #0006,inset 0 1px #ffffff4d;text-shadow:0 1px 1px rgba(255,255,255,.3)}.play-again-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #00000080,inset 0 1px #ffffff4d;background:linear-gradient(135deg,#e5c158,#c9a530)}.play-again-button:active{transform:translateY(0);box-shadow:0 2px 6px #0006,inset 0 1px 2px #0003}.leaderboard-content::-webkit-scrollbar{width:8px}.leaderboard-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.leaderboard-content::-webkit-scrollbar-thumb{background:#ff6b35;border-radius:10px}.leaderboard-content::-webkit-scrollbar-thumb:hover{background:#e55a2b}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translateY(-30px);opacity:0}to{transform:translateY(0);opacity:1}}
