*{box-sizing:border-box}html,body{background:#86b963;min-height:100%;margin:0}button{font:inherit;-webkit-tap-highlight-color:transparent}.game-shell{--tile:clamp(49px, 13.4vw, 64px);color:#fff;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#c4ff8a url(/assets/grass-field.png) 50%/cover;width:min(100vw,480px);min-height:100svh;margin:auto;position:relative;overflow:hidden;box-shadow:0 0 40px #527b3c}.topbar{height:92px;padding:max(20px, env(safe-area-inset-top)) 14px 0;justify-content:center;align-items:flex-start;display:flex;position:relative}.settings{width:45px;height:45px;left:14px;top:max(20px, env(safe-area-inset-top));background:linear-gradient(#31baf7,#1595e4);border:4px solid #101010;border-radius:9px;position:absolute;box-shadow:0 5px #527843,inset 0 -4px #0879c8}.gear{border:5px dotted #fff;border-radius:50%;position:absolute;inset:9px;transform:rotate(22deg)}.gear:after{content:"";border:3px solid #fff;border-radius:50%;position:absolute;inset:4px}.date{letter-spacing:2px;background:#050505;border-radius:8px;margin-top:8px;padding:5px 15px;font:24px/1.2 Arial,sans-serif;position:relative;box-shadow:0 2px #fff2}.planet-mark{border:6px solid #050505;border-radius:18px;width:58px;height:25px;position:absolute;top:41px;left:38%}.planet-mark:after{content:"";background:#c4f98b;border:5px solid #050505;border-radius:50%;width:15px;height:15px;position:absolute;top:-6px;right:8px}.level-line{color:#3d6728;justify-content:center;align-items:center;gap:7px;height:25px;font-size:12px;font-weight:800;display:flex}.level-line>div{background:#eaffcf;border:2px solid #3d6728;border-radius:8px;width:92px;height:8px;overflow:hidden}.level-line>div i{background:#ffcb24;height:100%;transition:width .25s;display:block}.difficulty{text-align:center;color:#527638;letter-spacing:.5px;height:20px;font-size:11px;font-weight:800}.board{height:calc(100svh - 355px);min-height:330px;margin:0 7%;position:relative}.tile{width:var(--tile);height:var(--tile);background:#f8f2cf;border:3px solid #3d461e;border-radius:8px;padding:4px;transition:transform .14s,filter .16s,opacity .16s,box-shadow .14s;position:absolute;overflow:hidden;box-shadow:inset 0 0 0 2px #fffde9,inset 0 -5px #dfd29b,0 5px #778c35,0 9px 7px #30471d70}.tile:after,.mini-tile:after,.tray-tile:after{content:"";pointer-events:none;background:#ffffffb8;border-radius:2px;height:2px;position:absolute;top:4px;left:7px;right:7px}.tile.available{cursor:pointer;animation:.25s both settle}.tile.available:active{transform:translateY(5px)scale(.94);box-shadow:inset 0 0 0 2px #fffde9,inset 0 -2px #dfd29b,0 1px #778c35}.tile.covered{filter:brightness(.69)saturate(.58);background:#a4a88c;box-shadow:inset 0 0 0 2px #c8cbb4,inset 0 -4px #777a62,0 4px #4f5d2b,0 7px 5px #30471d58}.sprite{background:#f8f2cf url(/assets/farm-sprites-clean.png) 0 0/400% 300% no-repeat;width:100%;height:100%;display:block}.carrot .sprite{background-position:33.333% 0}.corn .sprite{background-position:66.666% 0}.popsicle .sprite{background-position:100% 0}.shovel .sprite{background-position:0}.lemon .sprite{background-position:33.333%}.milk .sprite{background-position:66.666%}.bucket .sprite{background-position:100%}.onion .sprite{background-position:0 100%}.fire .sprite{background-position:33.333% 100%}.stump .sprite{background-position:66.666% 100%}.watermelon .sprite{background-position:100% 100%}.reserve{z-index:20;flex-direction:column;gap:4px;display:flex;position:absolute;top:57%;left:-7%}.mini-tile,.tray-tile{width:var(--tile);height:var(--tile);background:#f8f2cf;border:2px solid #3e4c22;border-radius:7px;padding:3px;position:relative;overflow:hidden;box-shadow:inset 0 -3px #dfd29b}.mini-tile{box-shadow:inset 0 -3px #dfd29b,0 4px #608f27,0 6px 5px #30471d55}.feedback{z-index:30;color:#fffbd0;opacity:0;pointer-events:none;background:#182b0dcc;border-radius:20px;padding:7px 18px;font-weight:900;transition:all .18s;position:absolute;bottom:235px;left:50%;transform:translate(-50%,12px)scale(.8)}.feedback.show{opacity:1;transform:translate(-50%)scale(1)}.tray{background:#a45d18;border:5px solid #6f3b0c;border-radius:10px;height:104px;padding:17px 10px 12px;position:absolute;bottom:109px;left:2.5%;right:2.5%;box-shadow:inset 0 14px #7b410f,inset 0 -7px #ba7925,0 6px #5f3b14}.tray:before,.tray:after{content:"";background:#c4842b;border:2px solid #66340c;height:6px;position:absolute;left:-7px;right:-7px}.tray:before{top:-10px}.tray:after{bottom:-10px}.tray-inner{align-items:center;gap:2px;height:100%;display:flex}.tray-tile{aspect-ratio:1;flex:0 0 calc(14.2857% - 1.71429px);width:calc(14.2857% - 1.71429px);height:auto;animation:.2s both trayIn;position:relative}.tray-tile.clearing{z-index:3;animation:.16s both trayIn,.34s ease-in-out 80ms both matchPulse}.tray-slot{border:1px dashed #d2933c33;border-radius:5px;flex:0 0 calc(14.2857% - 1.71429px);width:calc(14.2857% - 1.71429px);height:62%}.tools{left:7.5%;right:7.5%;bottom:max(13px, env(safe-area-inset-bottom));justify-content:space-between;gap:13%;height:80px;display:flex;position:absolute}.tools button{color:#fff;background:linear-gradient(#33b8ff,#259de7);border:4px solid #315675;border-radius:10px;flex:1;min-width:0;font-weight:900;position:relative;box-shadow:inset 0 -7px #1b7fc4,0 6px #376a64}.tools button.locked{filter:grayscale(.78)brightness(.72);opacity:.68}.tools button.granted{animation:1.8s ease-in-out infinite toolGlow}.tools button:active{transform:translateY(4px);box-shadow:inset 0 -4px #1b7fc4,0 2px #376a64}.tools span{text-shadow:-2px -2px #152331,2px -2px #152331,-2px 2px #152331,2px 2px #152331;font-size:20px;line-height:23px;position:absolute;bottom:5px;left:0;right:0}.tools em{color:#fff;background:#000;border:3px solid #fff;border-radius:50%;width:30px;height:30px;font:900 17px/24px Arial;position:absolute;top:-12px;right:-12px}.tool-icon{width:34px;height:30px;position:absolute;top:7px;left:50%;transform:translate(-50%)}.move-icon i{background:#ffd326;border:3px solid #634b06;border-radius:3px;width:17px;height:22px;position:absolute;transform:rotate(18deg)}.move-icon i:nth-child(2){top:-3px;left:9px}.move-icon i:nth-child(3){top:2px;left:18px}.undo-icon{border:7px solid #ffd326;border-right-color:#0000;border-radius:50%;width:29px;height:27px}.undo-icon:after{content:"";border:8px solid #0000;border-right-color:#ffd326;position:absolute;top:-5px;left:-11px;transform:rotate(30deg)}.shuffle-icon i{border:6px solid #ffd326;border-left-color:#0000;border-radius:50%;width:30px;height:14px;position:absolute;left:3px}.shuffle-icon i:last-child{top:11px;transform:rotate(180deg)}.shade{z-index:90;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#14240cbb;place-items:center;padding:28px;animation:.2s fade;display:grid;position:absolute;inset:0}.panel{color:#41280e;text-align:center;background:#fff8cf;border:5px solid #522e0c;border-radius:18px;width:min(330px,92vw);padding:24px;box-shadow:0 9px #8b4e15,0 16px 25px #0007}.panel h2{margin:3px 0 18px;font-size:23px}.settings-panel label{justify-content:space-between;align-items:center;margin:13px 0;font-weight:800;display:flex}.settings-panel label button{background:#a9a284;border:3px solid #56350f;border-radius:20px;width:52px;height:29px;padding:2px}.settings-panel label button i{background:#fff;border-radius:50%;width:19px;height:19px;transition:transform .2s;display:block}.settings-panel label button.on{background:#7ec637}.settings-panel label button.on i{transform:translate(23px)}.panel-action{color:#fff;background:#2aa9f1;border:3px solid #1d6394;border-radius:9px;width:100%;min-height:47px;margin-top:12px;font-size:17px;font-weight:900;box-shadow:0 4px #315e6a}.result-panel p{color:#ff3b2f;letter-spacing:2px;background:#0b0d08;border-radius:9px;margin:-5px -5px 10px;padding:11px;font-size:28px;font-weight:900}.result-panel h2{font-size:16px}.result-score{color:#5d6c35;padding:10px}.result-score b{color:#e79212;font-size:23px}@keyframes trayIn{0%{opacity:.3;transform:translateY(-45px)scale(.8)}}@keyframes matchPulse{45%{filter:brightness(1.3);transform:translateY(-4px)scale(1.14)}to{opacity:.15;transform:scale(.72)}}@keyframes settle{0%{transform:translateY(-5px)}}@keyframes fade{0%{opacity:0}}@keyframes toolGlow{0%,to{filter:brightness()}50%{filter:brightness(1.13)}}@media (height<=760px){.topbar{height:76px;padding-top:12px}.settings{top:12px}.level-line{height:18px}.difficulty{height:16px}.board{height:calc(100svh - 300px);min-height:275px}.tray{height:86px;bottom:96px}.tools{height:66px}.tools span{font-size:17px}.feedback{bottom:195px}}
