:root{--green: #5cbf3a;--green-d: #2e7d1e;--wood: #8a5a2b;--wood-d: #5a3a1a;--cream: #fff5dc;--sun: #ffd23a;--ink: #2a1a0a;--red: #e0362b;--font: "Trebuchet MS", "Segoe UI", "Verdana", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#1a2a12;font-family:var(--font);color:var(--ink);user-select:none;-webkit-user-select:none}#app{position:fixed;top:0;right:0;bottom:0;left:0}#game-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}#game-canvas.c-plant{cursor:copy}#game-canvas.c-shovel{cursor:crosshair}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:10;padding:16px}#scr-loading{background:radial-gradient(circle at 50% 40%,#4fa83a,#173d10);flex-direction:column;gap:22px}.logo{display:flex;align-items:baseline;justify-content:center;gap:10px;filter:drop-shadow(0 6px 0 rgba(0,0,0,.35))}.logo-main{font-size:clamp(56px,9vw,104px);font-weight:900;color:#9cff5a;-webkit-text-stroke:4px #1f4d12;letter-spacing:4px;transform:rotate(-3deg);display:inline-block}.logo-sub{font-size:clamp(40px,6vw,70px);font-weight:900;color:var(--sun);-webkit-text-stroke:3px #7a4a00;transform:rotate(4deg);display:inline-block}.loadbar{width:min(420px,80vw);height:22px;border-radius:12px;background:#1d3a12;border:3px solid #0e2208;overflow:hidden}#load-fill{height:100%;width:0;background:linear-gradient(90deg,#ffd23a,#ffef9a);transition:width .15s}#load-text{color:#e8ffd8;font-weight:700}.menu-panel,.panel{background:linear-gradient(#fff8e3,#f2dfb2);border:5px solid var(--wood);box-shadow:0 0 0 4px var(--wood-d),0 18px 40px #00000073;border-radius:22px;padding:24px 30px;display:flex;flex-direction:column;align-items:center;gap:10px;max-height:calc(100vh - 32px);overflow:auto;max-width:100%}.menu-panel{min-width:min(360px,100%);background:linear-gradient(#fff8e3f0,#f2dfb2f0)}.tagline{font-weight:700;color:#6a4a1a;margin:-4px 0 8px;text-align:center}.menu-progress{font-size:13px;color:#6a4a1a;margin-top:4px}.panel.wide{width:min(980px,100%)}h2{margin:0 0 6px;font-size:30px;color:#3a6b1a;-webkit-text-stroke:1px #1f3d0a}.btn{font-family:var(--font);font-weight:900;font-size:20px;letter-spacing:.5px;min-width:260px;padding:10px 22px;border-radius:14px;cursor:pointer;color:#fff;background:linear-gradient(#7fd84e,#3e9a25);border:3px solid #23560f;box-shadow:0 5px #23560f;text-shadow:0 2px 0 rgba(0,0,0,.35);transition:transform .08s,filter .1s}.btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn:active{transform:translateY(3px);box-shadow:0 2px #23560f}.btn.big{font-size:26px;padding:12px 26px;background:linear-gradient(#ffd85a,#e79a10);border-color:#7a4a00;box-shadow:0 5px #7a4a00}.btn.small{min-width:160px;font-size:16px;padding:8px 16px}.btn.danger{background:linear-gradient(#ff7a6a,#c22a1e);border-color:#6a120a;box-shadow:0 5px #6a120a}.btn:disabled{filter:grayscale(1) opacity(.55);cursor:not-allowed;transform:none}.btn.back{margin-top:8px;background:linear-gradient(#c9a26a,#8a5a2b);border-color:#4a2a0a;box-shadow:0 5px #4a2a0a}.world-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;width:100%}.world-card{border-radius:16px;padding:16px;color:#fff;cursor:pointer;border:4px solid rgba(0,0,0,.3);min-height:170px;display:flex;flex-direction:column;gap:6px;text-shadow:0 2px 0 rgba(0,0,0,.4);transition:transform .1s;position:relative}.world-card:hover{transform:translateY(-3px) scale(1.02)}.world-card .wn{font-size:13px;font-weight:800;opacity:.9}.world-card .wt{font-size:21px;font-weight:900}.world-card .wd{font-size:13px;line-height:1.3;flex:1}.world-card .wp{font-weight:800;font-size:14px}.world-card.locked{filter:grayscale(.9) brightness(.6);cursor:not-allowed}.world-card.locked:after{content:"🔒";position:absolute;right:12px;top:10px;font-size:26px}.tabs{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-bottom:6px}.tab{font-family:var(--font);font-weight:800;font-size:15px;padding:7px 14px;border-radius:10px;border:3px solid var(--wood);background:#f7e7c0;cursor:pointer;color:var(--wood-d)}.tab.active{background:var(--wood);color:#fff}.tab:disabled{opacity:.45;cursor:not-allowed}.level-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;width:100%}.level-card{background:#fff;border:4px solid #5cbf3a;border-radius:14px;padding:12px;cursor:pointer;display:flex;flex-direction:column;gap:4px;align-items:center;text-align:center;transition:transform .1s;min-height:140px}.level-card:hover{transform:translateY(-3px)}.level-card .ln{font-size:34px;font-weight:900;color:#3a6b1a}.level-card .lt{font-weight:800;font-size:14px}.level-card .ls{font-size:12px;color:#6a4a1a}.level-card.boss{border-color:#c22a1e;background:#fff0ec}.level-card.boss .ln{color:#c22a1e}.level-card.done{background:#eaffdc}.level-card.locked{filter:grayscale(1);opacity:.55;cursor:not-allowed}.coll-body{display:flex;gap:16px;width:100%;align-items:flex-start;flex-wrap:wrap}.coll-grid{flex:1 1 360px;display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;max-height:60vh;overflow:auto;padding:4px}.coll-item{background:#fff;border:3px solid #c9a26a;border-radius:12px;padding:4px;cursor:pointer;text-align:center;font-size:12px;font-weight:800}.coll-item img{width:100%;aspect-ratio:1;display:block}.coll-item.sel{border-color:#3e9a25;box-shadow:0 0 0 3px #9cff5a}.coll-item.locked img{filter:brightness(0) opacity(.4)}.coll-detail{flex:0 1 340px;display:flex;flex-direction:column;gap:8px}#preview-canvas{width:100%;max-width:340px;aspect-ratio:32/30;background:radial-gradient(#d8f5c0,#8fcf6a);border-radius:14px;border:3px solid var(--wood)}#coll-info h3{margin:0;font-size:22px;color:#2e7d1e}#coll-info .role{font-weight:800;color:#8a5a2b}#coll-info p{margin:6px 0;font-size:14px;line-height:1.35}.stats{display:grid;grid-template-columns:1fr 1fr;gap:3px 12px;font-size:13px}.stats b{color:#3a2a0a}.gh-btn{background:linear-gradient(#ffe27a,#e0a020);border-color:#7a4a00;box-shadow:0 5px #7a4a00}.gh-coins{font-weight:800;font-size:17px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}.gh-hint{font-weight:600;font-size:13px;color:#8a6a3a}.coin-ico{display:inline-block;width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff3a0,#ffc21a 50%,#b07800);box-shadow:0 0 0 2px #7a4a00 inset;vertical-align:middle}.stars{color:#e0a020;font-size:14px;letter-spacing:1px;text-shadow:0 1px 0 #7a4a00}.stars .off{color:#d8c8a0;text-shadow:none}.gh-detail{flex:0 1 380px;display:flex;flex-direction:column;gap:8px}.gh-detail h3{margin:0;font-size:22px;color:#2e7d1e}.gh-evo{display:flex;align-items:center;gap:8px;justify-content:center}.gh-evo figure{margin:0;text-align:center;font-size:12px;font-weight:800;color:#6a4a1a}.gh-evo img{width:120px;height:120px;background:radial-gradient(#d8f5c0,#8fcf6a);border-radius:14px;border:3px solid #c9a26a;display:block}.gh-evo .next img{border-color:#e0a020;box-shadow:0 0 14px #ffbe28b3}.gh-evo .arrow{font-size:30px;font-weight:900;color:#e0a020}.gh-powers{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.gh-powers li{background:#fff;border:2px solid #e8d6a8;border-radius:10px;padding:6px 10px;font-size:13px}.gh-powers li.got{border-color:#5cbf3a;background:#effbe6}.gh-powers li.next{border-color:#e0a020;background:#fff7dc}.gh-powers li.locked{opacity:.55}.gh-powers b{display:block;font-size:14px}.gh-cmp{font-size:13px;display:grid;grid-template-columns:1fr auto auto;gap:2px 10px}.gh-cmp .up{color:#2e8a1e;font-weight:900}.coll-item .stars{display:block;font-size:12px}.seed .tier{position:absolute;top:1px;right:3px;font-size:10px;color:#e0a020;text-shadow:0 1px 0 #7a4a00;font-weight:900}.reward-coins{font-weight:900;font-size:18px;color:#7a4a00;display:flex;align-items:center;gap:6px;justify-content:center}.account-panel{width:min(420px,100%)}.account-panel form,#acc-out,#acc-in{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.field{display:flex;flex-direction:column;gap:4px;width:100%;font-weight:800;font-size:15px}.field input{font-family:var(--font);font-size:17px;padding:10px 12px;border-radius:10px;border:3px solid #c9a26a;background:#fff;color:var(--ink)}.field input:focus{outline:none;border-color:#3e9a25}.acc-note{margin:0;text-align:center;font-size:14px;color:#6a4a1a}.acc-error{min-height:20px;color:#c22a1e;font-weight:800;font-size:14px;text-align:center}.account-btn{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:linear-gradient(#8fc8ff,#3a7fc4);border-color:#173f66;box-shadow:0 5px #173f66}.opt{display:flex;justify-content:space-between;align-items:center;gap:30px;width:min(340px,100%);font-weight:800;font-size:18px}.opt input[type=checkbox]{width:24px;height:24px;accent-color:#3e9a25}#hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5}.hud-top{position:absolute;left:8px;right:8px;top:8px;display:flex;align-items:flex-start;gap:8px}.hud-top>*{pointer-events:auto}.sun-box{width:78px;height:96px;background:linear-gradient(#a8743a,#6b4420);border:3px solid #3e2410;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;box-shadow:0 4px #00000059;flex:none}.sun-icon{width:46px;height:46px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#fff7b0,#ffd23a 45%,#ff9a00);box-shadow:0 0 14px 4px #ffc828b3;animation:spin 8s linear infinite}#sun-count{background:#fff5dc;border-radius:8px;padding:1px 6px;font-weight:900;font-size:18px;min-width:56px;text-align:center}.sun-box.pulse{animation:pulse .35s}.sun-box.flash #sun-count{background:#ff6a5a;color:#fff}@keyframes pulse{50%{transform:scale(1.15)}}@keyframes spin{to{transform:rotate(360deg)}}.seed-bar{display:flex;gap:5px;background:linear-gradient(#a8743a,#6b4420);border:3px solid #3e2410;border-radius:12px;padding:5px;box-shadow:0 4px #00000059;overflow-x:auto;max-width:calc(100vw - 420px)}.seed{position:relative;width:66px;height:82px;flex:none;border-radius:9px;background:linear-gradient(#fffbe8,#e8d6a8);border:3px solid #5a3a1a;cursor:pointer;overflow:hidden;transition:transform .08s}.seed:hover{transform:translateY(-3px)}.seed img{width:100%;height:62px;object-fit:contain;display:block}.seed .cost{position:absolute;bottom:0;left:0;right:0;text-align:center;font-weight:900;font-size:15px;background:#ffffffbf}.seed .key{position:absolute;top:1px;left:3px;font-size:10px;font-weight:900;color:#6a4a1a}.seed .cd{position:absolute;left:0;right:0;top:0;background:#14141499;pointer-events:none}.seed.poor img{filter:grayscale(.85) brightness(.75)}.seed.poor .cost{color:#c22a1e}.seed.sel{border-color:#3eff2a;box-shadow:0 0 0 3px #3eff2a,0 0 18px #9cff5a;transform:translateY(-4px)}.seed.shake{animation:shake .3s}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.shovel{width:62px;height:62px;border-radius:12px;background:linear-gradient(#8fb5d6,#4a6f8f);border:3px solid #23384a;cursor:pointer;padding:6px;box-shadow:0 4px #00000059;flex:none}.shovel.sel{box-shadow:0 0 0 3px #ffb030,0 0 18px #ffb030}.shovel svg{width:100%;height:100%}.hud-right{margin-left:auto;display:flex;gap:8px;align-items:flex-start}.wave-box{background:#1e140abf;border:3px solid #3e2410;border-radius:12px;padding:6px 10px;color:#fff;min-width:210px}#wave-label{font-weight:900;font-size:14px;margin-bottom:4px}.progress{position:relative;height:16px;background:#3a2a1a;border-radius:8px;border:2px solid #1a0f05;overflow:visible}#progress-fill{position:absolute;right:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,#9cff5a,#3e9a25);border-radius:6px}#progress-flags{position:absolute;top:0;right:0;bottom:0;left:0}.pflag{position:absolute;top:-9px;width:14px;height:20px;transform:translate(-50%)}.pflag:before{content:"";position:absolute;left:2px;top:0;width:2px;height:20px;background:#ddd}.pflag:after{content:"";position:absolute;left:4px;top:1px;width:10px;height:8px;background:#e0362b}.pflag.final:after{background:#ffd23a}#progress-head{position:absolute;top:-5px;width:22px;height:22px;border-radius:50%;background:radial-gradient(#cfe0b8,#7a9a6a);border:2px solid #2a3a1a;transform:translate(50%);right:0}.hud-btn{width:52px;height:52px;border-radius:12px;background:linear-gradient(#ffd85a,#e79a10);border:3px solid #7a4a00;color:#4a2a00;font-weight:900;font-size:18px;cursor:pointer;font-family:var(--font);box-shadow:0 4px #00000059;display:flex;align-items:center;justify-content:center;padding:8px}.hud-btn svg{width:100%;height:100%}.boss-bar{position:absolute;left:50%;top:112px;transform:translate(-50%);width:min(560px,80vw);background:#140519cc;border:3px solid #6a1a3a;border-radius:12px;padding:6px 12px;color:#fff;text-align:center}.boss-name{font-weight:900;font-size:16px;color:#ff9ab0}.boss-track{height:16px;background:#2a0a1a;border-radius:8px;overflow:hidden;border:2px solid #000;margin:4px 0}#boss-fill{height:100%;width:100%;background:linear-gradient(90deg,#ff3a5a,#ff9a3a);transition:width .15s}.boss-phase{font-size:12px;font-weight:700;color:#ffd0a0}.level-label{position:absolute;left:12px;bottom:10px;color:#fff;font-weight:800;text-shadow:0 2px 3px #000;font-size:14px}.banner{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%) scale(.6);font-size:clamp(28px,4.5vw,58px);font-weight:900;color:#fff;-webkit-text-stroke:2px #4a0a0a;text-shadow:0 5px 0 rgba(0,0,0,.4);opacity:0;transition:opacity .25s,transform .25s;text-align:center;white-space:nowrap;pointer-events:none}.banner.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.banner.big,.banner.boss{color:#ff4a3a;-webkit-text-stroke:2px #fff}.banner.final{color:#ffd23a;-webkit-text-stroke:2px #6a0a0a}.banner.win{color:#9cff5a;-webkit-text-stroke:2px #1f4d12}.banner.info{top:84%;font-size:clamp(18px,2.2vw,28px);color:#fff5dc;-webkit-text-stroke:0;text-shadow:0 2px 0 #3e2410,0 0 10px rgba(0,0,0,.6);white-space:normal;width:min(820px,90vw);background:#1e140a8c;border-radius:14px;padding:8px 16px}.toast{position:absolute;left:50%;bottom:40px;transform:translate(-50%);background:#1e0f05e0;color:#fff;padding:9px 18px;border-radius:12px;font-weight:800;font-size:16px;opacity:0;transition:opacity .2s;border:2px solid #ffb030;pointer-events:none;text-align:center;max-width:90vw}.toast.show{opacity:1}.modal{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:20;padding:16px}.modal-card{background:linear-gradient(#fff8e3,#f2dfb2);border:5px solid var(--wood);box-shadow:0 0 0 4px var(--wood-d),0 18px 40px #00000080;border-radius:22px;padding:22px 30px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;max-width:min(520px,100%);max-height:calc(100vh - 32px);overflow:auto}.modal-card h2{font-size:34px}.modal-card.win h2{color:#3e9a25}.modal-card.lose h2{color:#c22a1e;-webkit-text-stroke:1px #4a0a0a}.modal-card.end{max-width:min(640px,100%)}.modal-card.end h2{font-size:40px;color:#d89a10;-webkit-text-stroke:1px #6a3a00}.reward{display:flex;align-items:center;gap:12px;background:#fff;border:3px dashed #e7a010;border-radius:14px;padding:8px 16px}.reward img{width:84px;height:84px}.reward .rt{font-weight:900;font-size:18px;text-align:left}.reward .rs{font-size:13px;color:#6a4a1a;text-align:left}.trophy{font-size:64px;line-height:1}.modal-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.modal-row .btn{min-width:170px}@media (max-width: 900px){.seed{width:54px;height:70px}.seed img{height:50px}.seed-bar{max-width:calc(100vw - 300px)}.wave-box{min-width:140px}.sun-box{width:64px;height:82px}}
