*{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}.home-screen{min-height:100svh;padding:max(28px, env(safe-area-inset-top)) 22px max(30px, env(safe-area-inset-bottom));text-align:center;isolation:isolate;flex-direction:column;align-items:center;display:flex;position:relative;overflow:hidden}.home-screen:before{content:"";z-index:-2;background:linear-gradient(#91df4f,#65b93b);border:4px solid #58952f;border-radius:50% 50% 0 0;height:42%;position:absolute;bottom:-16%;left:-28%;right:-28%;box-shadow:inset 0 13px #b7f578,0 -8px 24px #579e3770}.home-screen:after{content:"";z-index:-1;filter:blur(10px);background:#447c2d28;border-radius:50%;width:310px;height:90px;position:absolute;bottom:17%;left:50%;transform:translate(-50%)}.home-settings{left:16px;top:max(20px, env(safe-area-inset-top));z-index:5}.home-date{color:#426f2c;letter-spacing:1px;background:#efffd7e8;border:3px solid #355c23;border-radius:18px;min-height:31px;padding:6px 16px;font-size:13px;font-weight:900;box-shadow:0 4px #72ad48}.home-title{z-index:2;flex-direction:column;align-items:center;margin-top:clamp(22px,5svh,48px);display:flex;position:relative;transform:rotate(-2deg)}.home-title span{color:#fff8cf;letter-spacing:2px;-webkit-text-stroke:7px #314d1c;paint-order:stroke fill;text-shadow:0 7px #719f2d,0 11px 12px #395e2775;font-size:clamp(40px,12.5vw,58px);font-weight:1000;line-height:.98}.home-title strong{color:#ffd83d;letter-spacing:9px;text-indent:9px;background:#222c19;border:4px solid #273b18;border-radius:24px;margin-top:9px;padding:5px 27px 7px;font-size:clamp(20px,6vw,27px);box-shadow:0 5px #658d2e}.home-hero{place-items:center;width:min(76vw,340px);height:clamp(265px,43svh,405px);margin-top:-4px;animation:3.2s ease-in-out infinite heroFloat;display:grid;position:relative}.home-hero img{object-fit:contain;filter:drop-shadow(0 12px 4px #355b2760);width:100%;height:100%}.home-tip{color:#f5ffd9;letter-spacing:.4px;background:#366021b8;border-radius:17px;width:min(335px,88vw);margin:-11px 0 15px;padding:9px 14px;font-size:13px;font-weight:800}.start-button{color:#fff;letter-spacing:4px;cursor:pointer;background:linear-gradient(#48c6ff,#23a3ed);border:5px solid #294f6b;border-radius:16px;width:min(310px,82vw);min-height:68px;font-size:25px;font-weight:1000;transition:transform .12s,box-shadow .12s;position:relative;box-shadow:inset 0 -10px #1682c9,inset 0 3px #92e5ff,0 8px #37694e,0 13px 14px #31552655}.start-button span{text-shadow:-2px -2px #173548,2px -2px #173548,-2px 2px #173548,2px 2px #173548}.start-button i{color:#fff5a8;filter:drop-shadow(1px 2px #27536f);font:18px/1 Arial;position:absolute;top:50%;right:21px;transform:translateY(-50%)}.start-button:active{transform:translateY(6px)scale(.98);box-shadow:inset 0 -5px #1682c9,inset 0 3px #92e5ff,0 2px #37694e}.home-stars{z-index:-1;pointer-events:none;position:absolute;inset:0}.home-stars i{clip-path:polygon(50% 0,61% 36%,100% 50%,61% 64%,50% 100%,39% 64%,0 50%,39% 36%);filter:drop-shadow(0 2px #6d9e3a);background:#fffbd0;width:13px;height:13px;animation:1.8s ease-in-out infinite alternate starTwinkle;position:absolute}.home-stars i:first-child{top:20%;left:12%}.home-stars i:nth-child(2){animation-delay:-.7s;top:16%;right:10%}.home-stars i:nth-child(3){width:9px;height:9px;animation-delay:-.3s;top:46%;left:18%}.home-stars i:nth-child(4){width:10px;height:10px;animation-delay:-1.1s;top:43%;right:14%}.home-stars i:nth-child(5){width:7px;height:7px;animation-delay:-.5s;top:29%;right:23%}.topbar{height:80px;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}.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;letter-spacing:1px;text-shadow:0 2px #294a16;opacity:0;pointer-events:none;background:linear-gradient(#4f8529e8,#203b13e8);border:3px solid #fff6ac;border-radius:20px;padding:7px 18px;font-weight:1000;transition:all .18s;position:absolute;bottom:235px;left:50%;transform:translate(-50%,12px)scale(.72)rotate(-3deg);box-shadow:0 5px 12px #213b1970}.feedback.show{opacity:1;transform:translate(-50%)scale(1.08)rotate(0)}.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 .setting-row{justify-content:space-between;align-items:center;margin:13px 0;font-weight:800;display:flex}.settings-panel .setting-row button{background:#a9a284;border:3px solid #56350f;border-radius:20px;width:52px;height:29px;padding:2px}.settings-panel .setting-row button i{background:#fff;border-radius:50%;width:19px;height:19px;transition:transform .2s;display:block}.settings-panel .setting-row button.on{background:#7ec637}.settings-panel .setting-row 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)}}@keyframes heroFloat{0%,to{transform:translateY(0)rotate(-1deg)}50%{transform:translateY(-7px)rotate(1deg)}}@keyframes starTwinkle{0%{opacity:.45;transform:scale(.75)rotate(0)}to{opacity:1;transform:scale(1.12)rotate(28deg)}}@media (prefers-reduced-motion:reduce){.home-hero,.home-stars i{animation:none}}@media (height<=700px){.home-title{margin-top:10px}.home-hero{height:270px}.home-tip{margin-top:-18px}.start-button{min-height:60px}}@media (height<=760px){.topbar{height:68px;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}}
