.farm{width:100%;max-width:var(--field-w)}.farm-panel .farm{max-width:calc(var(--field-w) * var(--aspect,1))}.farm:focus-visible{outline-offset:6px}.farm svg{cursor:crosshair;width:100%;height:auto;display:block;overflow:visible}.farm .field-frame{filter:drop-shadow(0 9px 10px #19232840);stroke:#cc9c60;stroke-width:1.5px}.farm .field-bg{fill:#637b4c}.farm .axis text{fill:#eaf0da;font:600 12px ui-monospace,monospace}.farm .axis .axis-name{fill:#c7dab4;font-style:italic}.farm .wet{transition:opacity .7s}.farm .target{fill:none;stroke:#ffd977;stroke-width:3px;opacity:.85;animation:2.4s ease-in-out infinite field-target}@keyframes field-target{50%{opacity:.35}}.farm .fertilized circle{fill:#8a6fc4;stroke:#e9e0ff;stroke-width:.8px}.farm .size-badge{fill:#fffbe8;stroke:#3d3210;stroke-width:3px;paint-order:stroke;font:800 13px ui-monospace,monospace}.farm .wish-xy{fill:#29323a;font:700 9px ui-monospace,monospace}.farm .wish-ok .wish-xy{fill:#3e7033;font-size:12px}.farm .protected-border{fill:none;stroke:#ffe2a0;stroke-width:2px;stroke-opacity:.75}.farm .selected-under{fill:none;stroke:#25524a;stroke-width:5px}.farm .selected{fill:none;stroke:#fff8d9;stroke-width:3px;stroke-dasharray:8 4}.farm .drone-id text{fill:#fff8e6;font:700 10px ui-monospace,monospace}.farm .sway,.farm .blade,.farm .leaf-flutter,.farm .canopy,.farm .rustle,.farm .head,.farm .life,.farm .life-old,.farm .swell,.farm .fx-pull{transform-box:fill-box;transform-origin:50% 100%}.farm .sway-grass,.farm .sway-carrot,.farm .sway-flower,.farm .sway-sunflower,.farm .sway-bush,.farm .sway-tree{animation:7s ease-in-out infinite field-wind;animation-delay:var(--wind,0s)}.farm .sway-tree,.farm .sway-bush{animation-name:field-wind-stiff}.farm.farm-large .blade,.farm.farm-large .leaf-flutter,.farm.farm-large .berry,.farm.farm-large .head,.farm .sway-grass{animation:none}.farm.farm-large .sway-grass{animation:7s ease-in-out infinite field-wind-blade;animation-delay:var(--wind,0s)}.farm .blade{animation:7s ease-in-out infinite field-wind-blade;animation-delay:calc(var(--wind,0s) + var(--i,0) * .11s)}.farm .leaf-flutter{animation:7s ease-in-out infinite field-wind-leaf;animation-delay:calc(var(--wind,0s) + var(--i,0) * .17s)}.farm .head{transform-origin:50%;animation:7s ease-in-out infinite field-nod;animation-delay:calc(var(--wind,0s) + .2s)}.farm .canopy,.farm .rustle{transform-origin:50% 80%;animation:7s ease-in-out infinite field-rustle;animation-delay:calc(var(--wind,0s) + .1s)}.farm .berry{animation:7s ease-in-out infinite field-berry;animation-delay:calc(var(--wind,0s) + var(--i,0) * .2s)}.farm .leaf-wiggle{transform-box:fill-box;transform-origin:0 100%;animation:7s ease-in-out infinite field-wind-leaf;animation-delay:var(--wind,0s)}@keyframes field-wind{0%,to{transform:rotate(-1.4deg)}17%{transform:rotate(1.4deg)}34%{transform:rotate(-1deg)}50%{transform:rotate(1.2deg)}64%{transform:rotate(-1deg)}77%{transform:rotate(5deg)skew(-3deg)}84%{transform:rotate(2.5deg)}91%{transform:rotate(-1.5deg)}}@keyframes field-wind-stiff{0%,to{transform:rotate(-.6deg)}25%{transform:rotate(.6deg)}50%{transform:rotate(-.5deg)}77%{transform:rotate(2deg)}86%{transform:rotate(.8deg)}}@keyframes field-wind-blade{0%,to{transform:rotate(-4deg)}17%{transform:rotate(4deg)}34%{transform:rotate(-3deg)}50%{transform:rotate(4deg)}64%{transform:rotate(-3deg)}77%{transform:rotate(15deg)}84%{transform:rotate(8deg)}91%{transform:rotate(-4deg)}}@keyframes field-wind-leaf{0%,to{transform:rotate(-5deg)}20%{transform:rotate(5deg)}40%{transform:rotate(-4deg)}58%{transform:rotate(5deg)}77%{transform:rotate(14deg)}86%{transform:rotate(4deg)}}@keyframes field-nod{0%,to{transform:translate(-.6px)}25%{transform:translate(.8px,-.4px)}50%{transform:translate(-.5px)}77%{transform:translate(3px,-1px)rotate(3deg)}86%{transform:translate(1px)}}@keyframes field-rustle{0%,to{transform:none}25%{transform:translate(.6px)scale(1.01,.99)}50%{transform:translate(-.6px)}77%{transform:translate(2.5px)scale(1.03,.97)}84%{transform:translate(-1px)scale(.99,1.01)}}@keyframes field-berry{0%,to{transform:none}77%{transform:translate(1.5px,-.6px)}84%{transform:translate(-.8px,.4px)}}.farm .glint{fill:#fffbe0;opacity:0;transform-box:fill-box;transform-origin:50%;animation:4.6s ease-in-out infinite field-glint}@keyframes field-glint{0%,78%,to{opacity:0;transform:scale(.3)rotate(0)}88%{opacity:1;transform:scale(1.15)rotate(45deg)}}.farm .life-grow{animation:.9s cubic-bezier(.25,1.45,.5,1) both field-grow}@keyframes field-grow{0%{transform:scale(var(--from,1))}}.farm .life-old{opacity:0;animation:.6s ease-out field-grow-old}@keyframes field-grow-old{0%{opacity:1;transform:none}to{opacity:0;transform:scale(var(--to,1))}}.farm .life-sprout{animation:.8s cubic-bezier(.3,1.5,.5,1) .17s both field-sprout}@keyframes field-sprout{0%{opacity:0;transform:scale(.2,0)}25%{opacity:1}}.farm .life-wilt{animation:1.1s ease-in both field-wilt}@keyframes field-wilt{0%{filter:saturate(1.6);transform:scaleY(1.2)}55%{transform:scaleY(.88)rotate(-5deg)}}.farm .life-slide{animation:field-slide var(--step,.38s) cubic-bezier(.45, 0, .3, 1) both}@keyframes field-slide{0%{transform:translate(var(--sx), var(--sy))}}.farm .swell{transform-origin:50% 60%;animation:1s cubic-bezier(.3,1.5,.5,1) both field-grow}.farm .plow-wipe{transform-box:fill-box;transform-origin:0%;animation:field-wipe var(--step,.38s) ease-out both}@keyframes field-wipe{0%{transform:scaleX(.05)}}.farm .plow-wipe .furrow path{stroke-dasharray:1;animation:.55s ease-out both field-furrow;animation-delay:calc(var(--i,0) * 90ms + 90ms)}@keyframes field-furrow{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.farm .drone{transition-property:transform;transition-timing-function:cubic-bezier(.45,0,.3,1)}.farm .drone-shadow-pos{transition-property:transform;transition-timing-function:cubic-bezier(.5,0,.25,1)}.farm .drone-hover{animation:2.2s ease-in-out infinite field-hover}@keyframes field-hover{50%{transform:translateY(-3.5px)}}.farm .drone-shadow{transform-box:fill-box;transform-origin:50%;animation:2.2s ease-in-out infinite field-shadow}@keyframes field-shadow{50%{opacity:.17;transform:scale(.88)}}.farm .drone-act{transform-box:fill-box;transform-origin:50%}.farm .act-dip{animation:field-dip var(--step,.38s) ease-in-out}@keyframes field-dip{35%,60%{transform:translateY(10px)scale(.9)}}.farm .act-fly{animation:field-fly var(--step,.38s) ease-in-out}@keyframes field-fly{40%{transform:rotate(var(--roll,0deg)) scale(1, var(--pitch,1))}}.farm .act-shake{animation:.45s ease-in-out field-shake}@keyframes field-shake{20%{transform:translate(-4px)rotate(-7deg)}40%{transform:translate(4px)rotate(7deg)}60%{transform:translate(-3px)rotate(-4deg)}80%{transform:translate(2px)}}.farm .drone-failed .drone-body{stroke:#d0402c;stroke-width:3px}.farm .rotor-blades{transform-box:fill-box;transform-origin:50%;animation:.5s linear infinite field-rotor}@keyframes field-rotor{to{transform:rotate(360deg)}}.farm .rotor-blur{opacity:0}.farm .act-fly .rotor-blur,.farm .act-dip .rotor-blur{animation:field-blur var(--step,.38s) ease-in-out}@keyframes field-blur{30%,70%{opacity:.45}}.farm .drone-eyes{transform-box:fill-box;transform-origin:50%;animation:4.3s ease-in-out infinite field-blink}@keyframes field-blink{0%,91%,97%,to{transform:none}94%{transform:scaleY(.1)}}.farm .antenna{transform-box:fill-box;transform-origin:50% 100%;animation:1.7s ease-in-out infinite field-antenna}@keyframes field-antenna{0%,to{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}.farm .drone-land{animation:.8s cubic-bezier(.3,1.3,.5,1) both field-land}@keyframes field-land{0%{opacity:0;transform:translateY(-46px)scale(1.25)}40%{opacity:1}}.farm .fx{pointer-events:none}.farm .fx-pull{animation:.75s ease-in forwards field-pull}@keyframes field-pull{0%{opacity:1;transform:none}20%{opacity:1;transform:scale(.9,1.22)}36%{opacity:1;transform:translateY(-6px)scale(1.05,1.08)}to{transform:translate(var(--tx), var(--ty)) scale(.12);opacity:0}}.farm .fx-bit,.farm .fx-crumb{opacity:0;transform-box:fill-box;transform-origin:50%;animation:.8s forwards field-bit}@keyframes field-bit{0%{opacity:1;animation-timing-function:cubic-bezier(.2,.7,.4,1);transform:none}40%{transform:translate(calc(var(--bx) * .6), var(--up)) rotate(calc(var(--rot) * .5));opacity:1;animation-timing-function:cubic-bezier(.5,0,.9,.6)}to{transform:translate(var(--bx), 14px) rotate(var(--rot));opacity:0}}.farm .fx-ring{fill:none;stroke:#fff6cf;stroke-width:1.6px;opacity:0;transform-box:fill-box;transform-origin:50%;animation:.5s ease-out forwards field-ring}@keyframes field-ring{0%{opacity:.9;transform:scale(.3)}to{opacity:0;transform:scale(1.15)}}.farm .fx-chest{transform-box:fill-box;transform-origin:50% 100%;animation:1.1s ease-in forwards field-chest}@keyframes field-chest{0%,55%{opacity:1;transform:none}to{opacity:0;transform:translateY(6px)scale(.6)}}.farm .fx-lid{transform-box:fill-box;transform-origin:0 100%;animation:.35s ease-out forwards field-lid}@keyframes field-lid{to{transform:rotate(-65deg)}}.farm .fx-coin{opacity:0;animation:.8s ease-out forwards field-coin}@keyframes field-coin{15%{opacity:1}to{opacity:0;transform:translateY(-36px)}}.farm .fx-seed{opacity:0;animation:.32s ease-in forwards field-seed}@keyframes field-seed{15%{opacity:1}85%{opacity:1;transform:translateY(24px)scale(.85)}to{opacity:0;transform:translateY(26px)scale(.6)}}.farm .fx-drop{fill:#5fb0ff;stroke:#1a5fa8;stroke-width:.8px;opacity:0;animation:.42s ease-in forwards field-drop}@keyframes field-drop{0%{opacity:0;transform:translateY(-12px)}25%{opacity:1}to{opacity:0;transform:translateY(18px)}}.farm .fx-splash{fill:none;stroke:#8cc8ff;stroke-width:1.8px;opacity:0;transform-box:fill-box;transform-origin:50%;animation:.5s ease-out forwards field-ring}.farm .fx-dust{fill:#d9b48a;opacity:0;transform-box:fill-box;transform-origin:50%;animation:.65s ease-out forwards field-dust}@keyframes field-dust{0%{opacity:.85;transform:scale(.3)}to{opacity:0;transform:translateY(-9px)scale(1.5)}}.farm .fx-twinkle{fill:#c9b2ff;stroke:#6a52b0;stroke-width:.6px;opacity:0;transform-box:fill-box;transform-origin:50%;animation:.6s ease-out forwards field-twinkle}@keyframes field-twinkle{30%{opacity:1;transform:scale(1.3)rotate(45deg)}to{opacity:0;transform:translateY(-10px)scale(.4)rotate(90deg)}}.farm .fx-smoke{fill:#8d969b;opacity:0;transform-box:fill-box;transform-origin:50%;animation:.8s ease-out forwards field-smoke}@keyframes field-smoke{0%{opacity:.75;transform:scale(.4)}to{opacity:0;transform:translateY(-20px)scale(1.7)}}.farm .fx-gain{opacity:0;animation:1.1s ease-out forwards field-gain}.farm .fx-gain text{fill:#fff8dc;font:800 11px ui-monospace,monospace}@keyframes field-gain{0%{opacity:0;transform:translateY(-22px)}20%{opacity:1;transform:translateY(-32px)}75%{opacity:1}to{opacity:0;transform:translateY(-46px)}}.farm .cloud{animation:46s linear infinite field-cloud}.farm .cloud-2{animation-duration:63s;animation-delay:-31s}@keyframes field-cloud{0%{transform:translate(-130px)}to{transform:translateX(calc(var(--w) + 130px))}}.farm.farm-thumb *{transition:none!important;animation:none!important}.farm.farm-thumb .glint{display:none}.farm.farm-calm :is(.sway,.blade,.leaf-flutter,.canopy,.rustle,.head,.berry,.target,.drone-hover,.drone-eyes,.antenna,.drone-land,.act-fly){animation:none!important}.farm.farm-calm :is(.clouds,.fx-bit,.fx-ring,.fx-gain,.glint){display:none}.farm.farm-thumb .field-frame{filter:none}.farm.farm-thumb svg{cursor:default}.field-preview .farm{max-width:none}.field-preview svg{cursor:default}@media (max-width:1000px){.farm{max-width:100%}}.farm.farm-blueprint{position:relative}.farm.farm-blueprint>svg:first-of-type{filter:grayscale()contrast(1.25)brightness(1.05)sepia()hue-rotate(172deg)saturate(3.2)brightness(.8);transition:filter .6s}.farm-overlay{pointer-events:none;width:100%;height:auto;position:absolute;top:0;left:0;overflow:visible}.farm-overlay .bp-grid-line{fill:none;stroke:#e1f0ff29;stroke-width:.7px}.farm-overlay .bp-tile{fill:none;stroke:#ebf5ff73;stroke-width:1.2px}.farm-overlay .bp-mark-tile{fill:#ffffff24;stroke:#fff;stroke-width:2.5px;stroke-dasharray:7 5;transform-box:fill-box;transform-origin:50%;animation:.45s cubic-bezier(.2,1.5,.4,1) both bp-tile-in,1.6s linear infinite bp-dash}.farm-overlay .bp-path{fill:none;stroke:#fff;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;filter:drop-shadow(0 0 3px #001e5099);animation:1.4s ease-in-out .2s forwards bp-draw}.farm-overlay .bp-arrow-head{fill:#fff}.farm-overlay .bp-label{opacity:0;animation:.4s ease-out forwards bp-label-in}.farm-overlay .bp-label rect{fill:#fff;stroke:#0c3566;stroke-width:1.5px}.farm-overlay .bp-label text{fill:#0c3566;font:800 13px ui-monospace,Cascadia Mono,monospace}@keyframes bp-tile-in{0%{opacity:0;transform:scale(.4)}}@keyframes bp-dash{to{stroke-dashoffset:-24px}}@keyframes bp-draw{to{stroke-dashoffset:0}}@keyframes bp-label-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1}}.farm.farm-calm .farm-overlay *{opacity:1;stroke-dashoffset:0;animation:none!important}:root{--backdrop:#8b9eb0;--backdrop-2:#8295a8;--win-bar:#c5c9cd;--win-bar-ink:#24272b;--win-body:#26282b;--win-line:#4a4e55;--ink:#e3e7ea;--muted:#9aa3ab;--hud-ink:#fff;--accent:#6ea83c;--accent-2:#4f8a2a;--accent-ink:#0f1a08;--focus:#ffd866;--good:#7fd17f;--bad:#ff8a80;--warn:#fc6;--grass:#8fb84f;--grass-dark:#6f9a38;--soil:#b8743a;--soil-line:#8a5124;--rock:#8d9196;--seam:#3a3424;--mono:"JetBrains Mono", "Cascadia Mono", ui-monospace, Consolas, monospace;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font-family:var(--sans);color:var(--ink);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;line-height:1.45}#root{font-family:var(--sans);color:var(--ink);font-size:16px;line-height:1.45}*{box-sizing:border-box}html,body{min-height:100%}html{background:var(--backdrop-2)}body{background:radial-gradient(ellipse 80% 70% at 50% 45%, #9aadbf, transparent), linear-gradient(var(--backdrop), var(--backdrop-2));background-attachment:fixed;min-height:100vh;margin:0}h1{margin:0;font-size:1.1rem}h2{margin:1rem 0 .35rem;font-size:1rem}h3{margin:.75rem 0 .25rem;font-size:.95rem}button,select,input,textarea{font:inherit;color:inherit}button,select{border:1px solid var(--win-line);color:var(--ink);cursor:pointer;background:#2f3236;border-radius:6px;padding:.25rem .65rem}button:hover:not(:disabled),select:hover{background:#33373d;border-color:#7d858e}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-2);font-weight:600}button.primary:hover:not(:disabled){background:#7cbb46}button.big{padding:.7rem 1.2rem;font-size:1.1rem}button.link{color:var(--hud-ink);background:0 0;border:none;text-decoration:underline}button[aria-pressed=true],button[aria-selected=true]{background:#3d4f66;border-color:#6d8bb0}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}code,pre{font-family:var(--mono)}pre{white-space:pre-wrap;margin:.25rem 0}input[type=text],input:not([type]),textarea{border:1px solid var(--win-line);color:var(--ink);background:#15171a;border-radius:4px;padding:.4rem}.muted{color:var(--muted)}.small{font-size:.85rem}.warn{color:var(--warn)}.ok{color:var(--good)}.bad{color:var(--bad)}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.wrap{flex-wrap:wrap;padding:0;list-style:none}.spacer{flex:1}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.note{color:#f1f4f6;opacity:.9;max-width:60rem;font-size:.85rem}.banner{background:var(--win-body);border:1px solid var(--win-line);border-left:4px solid var(--focus);border-radius:4px;margin:.5rem 0;padding:.5rem .8rem}.banner-warn{border-radius:0;margin:0}.runner-holder{width:0;height:0;position:absolute;overflow:hidden}.icon{vertical-align:-.3em;flex:none;width:1.35em;height:1.35em}.win{background:var(--win-body);border:1px solid #16181b;border-radius:8px;flex-direction:column;min-height:0;display:flex;overflow:hidden;box-shadow:0 10px 24px #19233259,0 2px 4px #19233240}.win-bar{min-height:1.75rem;color:var(--win-bar-ink);background:linear-gradient(#d3d6d9,#b9bdc1);border-bottom:1px solid #111316;align-items:center;gap:.45rem;padding:.1rem .3rem .1rem .4rem;display:flex}.win-movable>.win-bar{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.win-movable>.win-bar:active{cursor:grabbing}.win-movable{z-index:2;position:relative}.win-moved{box-shadow:0 12px 28px #141e2873}.win-grip{width:.8rem;height:1.1rem;cursor:inherit;background:radial-gradient(circle,#5d636a 1.2px,#0000 1.4px) 0 0/4px 4px;border:0;border-radius:2px;flex:none;padding:0}.win-grip:hover:not(:disabled){background-color:#b0b5ba}.win-dot{background:var(--accent);border-radius:2px;flex:none;width:.55rem;height:.55rem}.win-title{font-family:var(--mono);color:var(--win-bar-ink);white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-size:.78rem;font-weight:600;overflow:hidden}.win-actions{align-items:center;gap:.25rem;display:flex}.win-btn{color:var(--win-bar-ink);background:0 0;border-color:#0000;padding:0 .45rem;font-size:.85rem;font-weight:700;line-height:1.4}.win-btn:hover:not(:disabled){background:#aeb3b8;border-color:#0000}.win-run{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-2);padding:.05rem .6rem;font-size:.82rem;font-weight:600}.win-run:hover:not(:disabled){background:#7cbb46}.win-body{flex:1;min-height:0;padding:.55rem .7rem;font-size:.9rem;overflow:auto}.win-min .win-bar{border-bottom:0}.win-min{flex:none}.hud,.topbar{color:var(--hud-ink);text-shadow:0 1px 2px #00000059;flex-wrap:wrap;align-items:center;gap:1rem;padding:.55rem 1rem;display:flex}.hud-left,.hud-right{align-items:center;gap:.6rem;display:flex}.hud-right{margin-left:auto}.hud h1 small{opacity:.85;font-weight:400}.hud-goals{flex-wrap:wrap;gap:.35rem 1.4rem;margin:0;padding:0;list-style:none;display:flex}.chip{text-shadow:0 1px 2px #0000008c,0 0 6px #00000040;align-items:center;gap:.3rem;font-size:1.2rem;font-weight:800;display:inline-flex}.chip .icon{filter:drop-shadow(0 1px 1px #00000073);width:1.6em;height:1.6em}.chip b{font-weight:700}.chip-ok b{color:#e4ffd0}.chip-over b{color:#ffe1dd}.chip-optional{opacity:.85}.chip-fn{font-family:var(--mono);color:#e8975a;text-shadow:none;background:#26282b;border-radius:4px;padding:0 .35rem;font-size:.85rem}.chip-optional b{font-weight:500}.sq{color:#fff;min-width:2.1rem;height:2.1rem;text-shadow:none;background:#2b2e33;border:1px solid #15171a;border-radius:3px;place-items:center;padding:0 .4rem;font-size:1.05rem;list-style:none;display:inline-grid}.hud .sq{color:#fff;cursor:pointer;background:linear-gradient(#78b443,#578f2c);border:2px solid #8cc85a;border-radius:6px;min-width:2.6rem;height:2.6rem;font-size:1.25rem;box-shadow:0 3px #3f6b1f,0 6px 10px #00000040}.hud .sq:active{transform:translateY(2px);box-shadow:0 1px #3f6b1f}.hud .sq:hover:not(:disabled){background:#6aa83a;border-color:#94cc62}select.lang{height:2.1rem}.start-lang{justify-content:flex-end;display:flex}.sq-green{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-2);font-weight:700}.sq-green:hover:not(:disabled){background:#7cbb46}.mission-id{font-family:var(--mono);opacity:.75;font-size:.85em}.save-status{opacity:.9;font-size:.8rem}.save-error{color:#fff;background:#a3261e;border-radius:3px;padding:.1rem .4rem}.settings{position:relative}.settings summary::-webkit-details-marker{display:none}.settings[open] .settings-menu{display:grid}.settings-menu{z-index:5;background:var(--win-body);min-width:14rem;text-shadow:none;border:1px solid #111316;border-radius:3px;gap:.45rem;padding:.7rem;position:absolute;top:2.5rem;right:0;box-shadow:0 8px 20px #0006}.start{grid-template-columns:1fr minmax(18rem,26rem);grid-template-areas:"lang lang""hero hero""farm side""farm note";gap:1.5rem 3rem;max-width:62rem;margin:2rem auto;padding:0 1rem;display:grid}.start-lang{grid-area:lang}.start-hero{grid-area:hero}.start-farm{grid-area:farm;align-self:start}.start-side{grid-area:side;align-content:start;gap:1rem;display:grid}.start>.note{grid-area:note;margin:0}@media (max-width:800px){.start{grid-template-columns:1fr;grid-template-areas:"lang""hero""side""farm""note"}}.start-hero{text-align:center;color:var(--hud-ink);text-shadow:0 1px 3px #00000059}.start-hero h1{margin-top:.4rem;font-size:2rem}.start-hero p{margin:.2rem 0 0}.start-logo{filter:drop-shadow(0 4px 8px #0000004d);width:72px;height:72px}.logo-bg{fill:#1f2125}.logo-leaf{fill:#8fd14f}.logo-stem{stroke:#1f2125;stroke-width:3px;fill:none}.start-actions{gap:1rem;display:grid}.new-farm .win-body{gap:.6rem;display:grid}.new-farm label{color:var(--muted);gap:.3rem;font-size:.9rem;display:grid}.start-actions>.row button:not(.link){background:#2b2e33}.profiles ul{margin:0;list-style:none}.profiles li{border-bottom:1px solid #2c2f34;align-items:center;gap:.75rem;padding:.35rem 0;display:flex}.profiles li:last-child{border-bottom:0}.profiles li span{font-family:var(--mono);flex:1}.profiles small{color:var(--muted)}.map .chapters{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));align-items:stretch;gap:1rem;max-width:90rem;margin:0 auto;padding:.5rem 1rem 2rem;list-style:none;display:grid}.chapter .focus{color:#8a9199;font-family:var(--mono);margin:0 0 .5rem;font-size:.8rem}.chapter-future{opacity:.55}.missions{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.chapter-open{grid-column:1/-1}.chapter-open .missions{grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.8rem}.chapter-future .win-body{justify-items:start;display:grid}.mission-card{text-align:left;background:#2f3236;border:1px solid #3c4045;border-radius:10px;grid-template-columns:auto 1fr;align-content:start;gap:.15rem .5rem;width:100%;height:100%;padding:.6rem;display:grid}.mission-card:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 16px #0000004d}.card-icon{background:radial-gradient(circle at 50% 45%,#3a4a3a,#232528 70%);border-radius:8px;grid-column:1/-1;place-items:center;height:4.8rem;margin-bottom:.35rem;display:grid;position:relative}.mission-icon{filter:drop-shadow(0 3px 3px #00000059);width:3.1rem;height:3.1rem;transition:transform .2s}.mission-card:hover:not(:disabled) .mission-icon{transform:translateY(-2px)scale(1.06)}.card-glyph{font:700 .72rem var(--mono);color:#a9e08a;background:#15171a;border:1px solid #3c4045;border-radius:4px;padding:.05rem .35rem;position:absolute;bottom:.35rem;right:.4rem}.mission-card:disabled{opacity:1}.mission-card:disabled .card-icon{background:#232528}.mission-card:disabled .mission-icon{filter:grayscale()brightness(.6);opacity:.55}.mission-card:disabled .card-glyph,.mission-card:disabled .mission-title{color:var(--muted)}.mission-card .mission-state{grid-column:1/-1}.mission-card.done{border-color:#5d9632;box-shadow:inset 0 -3px #6ea83c}.mission-title{font-weight:600}.mission-state{color:var(--muted);font-size:.8rem}.medals{flex-wrap:wrap;gap:.45rem;display:inline-flex}.medal{color:var(--ink);text-shadow:none;font-size:.9rem}.medal-done{color:#c9f5a8}.medal-opt{color:#ffe08a}.medal-robust{color:#cfc9ff}.mission{grid-template:"top top top""code farm brief"minmax(0,1fr)/minmax(20rem,.95fr) minmax(22rem,1.25fr) minmax(15rem,19rem);gap:.8rem;height:100vh;padding:0 .8rem .8rem;display:grid}.mission>.hud{grid-area:top;margin:0 -.8rem}.mission .pane-switch{display:none}.panel{flex-direction:column;gap:.8rem;min-height:0;display:flex}.code{grid-area:code}.farm-panel{--field-w:min(52rem, calc(100vh - 13.5rem));grid-area:farm;align-items:center;gap:.6rem}.brief{grid-area:brief;padding-bottom:.2rem;overflow-y:auto}.brief>.win{flex:none}.win-code{flex:1.6}.win-code .win-body{flex-direction:column;padding:0;display:flex}.win-console{flex:1;min-height:9rem}.code-editor{flex:1;min-height:12rem;overflow:auto}.code-editor .cm-editor{height:100%}.code-editor .cm-editor.cm-focused{outline:none}.statusbar{font-size:.75rem;font-family:var(--mono);color:var(--muted);background:#1a1c1f;border-top:1px solid #2c2f34;align-items:center;gap:.6rem;padding:.15rem .6rem;display:flex}.cm-trace-line{box-shadow:inset 3px 0 #ffd866;background:#4a4220!important}.cm-error-line{box-shadow:inset 3px 0 0 var(--bad);background:#4d2422!important}.runtime-ready{color:var(--good)}.runtime-error{color:var(--bad)}.goal{margin:0 0 .4rem;font-weight:600}.more summary{cursor:pointer;color:var(--muted);font-size:.85rem}.story{color:#b9c0c7;font-style:italic}.rules{margin:.3rem 0;padding-left:1.1rem}.optional{align-items:start;gap:.4rem;display:flex}.fn-chips{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.fn-chips button{padding:.1rem .45rem}.fn-chips code{color:#ffd27a;font-size:.85rem}.fn-doc{border-left:2px solid #ffd27a;margin-top:.5rem;padding-left:.6rem}.fn-doc .sig{color:#ffd27a;font-size:.82rem}.fn-doc p{color:#c6ccd2;margin:.25rem 0}.fn-doc pre,.hints pre{color:#d6dbe0;background:#15171a;border-radius:3px;padding:.35rem .5rem}.hints{margin:0 0 .5rem;padding-left:1.2rem}.hints li{margin-bottom:.35rem}.block{gap:.3rem;display:grid}textarea{width:100%}.field-tabs{flex-wrap:wrap;justify-content:center;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.field-tabs button{font-family:var(--mono);font-size:.8rem}.field-wrap{justify-content:center;width:100%;display:flex}.replay{width:100%;max-width:var(--field-w);background:#262729d9;border-radius:10px;flex-wrap:wrap;align-items:center;gap:.35rem;padding:.35rem;display:flex;box-shadow:0 6px 14px #1923324d}.replay .scrubber{min-width:6rem;accent-color:var(--accent);flex:1}.replay select{height:2.1rem}.action-line{font-family:var(--mono);color:var(--hud-ink);text-shadow:0 1px 2px #0006;align-items:center;gap:1rem;min-height:1.6rem;margin:0;font-size:.9rem;display:flex}.action-line code{text-shadow:none;background:#141619bf;border-radius:3px;padding:.1rem .5rem}.result{width:100%;max-width:var(--field-w);background:var(--win-body);border:1px solid #111316;border-left:5px solid var(--muted);border-radius:10px;padding:.55rem .8rem;box-shadow:0 6px 18px #141e2859}.result p{margin:.25rem 0 0}.result-success{border-left-color:var(--accent)}.result-success strong{color:#c9f5a8;font-size:1.1rem}.result-failed{border-left-color:var(--warn)}.result-error,.result-limit{border-left-color:var(--bad)}.tabs{background:#1a1c1f;border-bottom:1px solid #2c2f34;flex-wrap:wrap;gap:.2rem;margin:-.55rem -.7rem .5rem;padding:.25rem .4rem;display:flex}.tabs button{font-family:var(--mono);color:var(--muted);background:0 0;border:none;border-radius:0;padding:.15rem .5rem;font-size:.78rem}.tabs button[aria-selected=true]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent);background:0 0}.tab-body{font-size:.88rem}.output{color:#e9f0e6;background:#15171a;border-radius:3px;max-height:16rem;margin:0;padding:.5rem;font-size:.85rem;overflow:auto}.checks{margin:.3rem 0 0;padding:0;list-style:none}.problem h3{color:var(--bad);font-family:var(--mono);margin-top:0;font-size:.88rem}.vars{border-collapse:collapse;font-family:var(--mono);font-size:.85rem}.vars th,.vars td{text-align:left;border-bottom:1px solid #2c2f34;padding:.1rem .8rem .1rem 0}.vars th code{color:#c9a2f0}.text-view{padding-left:1rem}.dialog-backdrop{z-index:10;background:#0a0e128c;place-items:center;display:grid;position:fixed;inset:0}.dialog{background:var(--win-body);border:1px solid #111316;border-radius:3px;width:calc(100% - 2rem);max-width:32rem;padding:1rem 1.2rem;box-shadow:0 10px 30px #00000080}.dialog fieldset{border:none;gap:.4rem;margin:.5rem 0 1rem;padding:0;display:grid}.teacher{background:var(--win-body);max-width:60rem;min-height:100vh;margin:0 auto 3rem;padding:0 1rem 1rem}.teacher .topbar{background:var(--win-bar);text-shadow:none;margin:0 -1rem 1rem}.teacher .note{color:var(--warn)}.teacher-level{border-top:1px solid var(--win-line);margin-top:1.5rem}.inline-pre{white-space:pre-wrap;display:inline}@media (max-width:1000px){.mission{grid-template:"top""switch""main"1fr/1fr;height:auto;min-height:100vh}.mission .pane-switch{grid-area:switch;gap:.3rem;display:flex}.mission .panel{grid-area:main;display:none}.mission .win{transform:none!important}.win-movable>.win-bar{cursor:default}.mission.pane-mission .brief,.mission.pane-code .code,.mission.pane-farm .farm-panel{display:flex}.win-code{min-height:60vh}.replay,.result{max-width:100%}}@media print{.hud button,.topbar button{display:none}}.gate{place-items:center;min-height:100vh;padding:1rem;display:grid}.gate-box{width:min(22rem,100%)}.gate-box .win-body{gap:.5rem;padding:.9rem;display:grid}.gate-box label{font-family:var(--mono);color:var(--muted);font-size:.85rem}.gate-row{gap:.5rem;display:flex}.gate-row input{border:1px solid var(--win-line);min-width:0;color:var(--ink);font-family:var(--mono);background:#15171a;border-radius:6px;flex:1;padding:.4rem .6rem}.gate-row input:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.gate-row input[aria-invalid=true]{border-color:var(--bad)}.gate-wrong{color:var(--bad);margin:0;font-size:.85rem}.teacher-mode{border-top:1px solid #2c2f34;gap:.35rem;padding-top:.5rem;font-size:.85rem;display:grid}.teacher-mode p{color:var(--muted);margin:0}.teacher-mode input{width:8rem}.settings-menu>.teacher-mode:only-child{border-top:0;padding-top:0}.teacher-badge{color:#1f2125;text-shadow:none;vertical-align:middle;background:#d9a420;border-radius:3px;margin-left:.6rem;padding:.1rem .5rem;font-size:.75rem;font-weight:700}.celebrate{z-index:40;background:#1016128c;place-items:center;padding:1rem;animation:.3s both celebrate-fade;display:grid;position:fixed;inset:0}.celebrate-card{text-align:center;background:var(--win-body);border:2px solid var(--accent);border-radius:14px;width:min(30rem,100%);padding:1.4rem 1.6rem 1.3rem;animation:.55s cubic-bezier(.2,1.6,.4,1) both celebrate-pop;position:relative;box-shadow:0 0 0 6px #6ea83c40,0 24px 60px #00000080}.celebrate-card h2{color:#c9f5a8;letter-spacing:.01em;margin:.2rem 0 .6rem;font-size:2rem;animation:.6s cubic-bezier(.2,1.5,.4,1) .15s both celebrate-title}.celebrate-drone{filter:drop-shadow(0 8px 10px #00000059);width:7.5rem;height:6.5rem;margin:-4.2rem auto 0;display:block;overflow:visible}.celebrate-loop{transform-box:fill-box;transform-origin:50%;animation:1.4s ease-in-out .25s 2 both celebrate-loop}.celebrate-burst{pointer-events:none;width:0;height:0;position:absolute;top:2.2rem;left:50%}.celebrate-burst i{opacity:0;border-radius:3px;width:9px;height:14px;animation:1.5s cubic-bezier(.15,.7,.4,1) both celebrate-confetti;position:absolute;top:-7px;left:-4px}.celebrate-medals{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:0 0 .7rem;padding:0;list-style:none;display:flex}.celebrate-medals li{background:#33402a;border-radius:99px;padding:.25rem .7rem;font-weight:700;animation:.45s cubic-bezier(.2,1.8,.4,1) both celebrate-medal}.celebrate-bonus{color:var(--warn);margin:0 0 .8rem;font-weight:600}.celebrate-actions{gap:.5rem;display:grid}.celebrate-backup{color:var(--muted);margin:.8rem 0 0}.celebrate.still,.celebrate.still *{animation:none!important}.celebrate.still .celebrate-burst{display:none}@keyframes celebrate-fade{0%{opacity:0}}@keyframes celebrate-pop{0%{opacity:0;transform:scale(.4)translateY(30px)}}@keyframes celebrate-title{0%{opacity:0;transform:scale(.6)}}@keyframes celebrate-medal{0%{opacity:0;transform:scale(0)}}@keyframes celebrate-loop{0%{transform:translateY(0)rotate(0)}30%{transform:translateY(-26px)rotate(0)}65%{transform:translateY(-26px)rotate(360deg)}to{transform:translateY(0)rotate(360deg)}}@keyframes celebrate-confetti{0%{opacity:1;transform:rotate(var(--a)) translateY(0) rotate(0)}70%{opacity:1}to{opacity:0;transform:rotate(var(--a)) translateY(calc(-1 * var(--d))) rotate(var(--r)) translateY(40px)}}.intro{z-index:35;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1e2c38b8;place-items:center;padding:1rem;animation:.25s both celebrate-fade;display:grid;position:fixed;inset:0;overflow:auto}.intro-card{text-align:center;background:var(--win-body);border:1px solid #111316;border-radius:14px;justify-items:center;gap:.6rem;width:min(44rem,100%);padding:1.3rem 1.5rem 1.4rem;animation:.4s cubic-bezier(.2,1.2,.4,1) both intro-in;display:grid;box-shadow:0 24px 60px #00000080}.intro-id{font-family:var(--mono);color:var(--muted);margin:0}.intro-card h2{margin:0;font-size:1.7rem}.intro-goal{color:#fff;max-width:36rem;margin:0;font-size:1.35rem;font-weight:600;line-height:1.35}.intro-field{width:min(30rem,100%);position:relative}.intro-field .farm svg{max-height:46vh}.intro-wait{margin:0;position:absolute;bottom:.2rem;left:0;right:0}.show-intro{justify-self:start;margin-top:.4rem;font-size:.85rem}@keyframes intro-in{0%{opacity:0;transform:translateY(24px)scale(.96)}}.concepts{gap:.35rem;margin-top:.6rem;display:grid}.concepts-head{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:.8rem}.concept{border:1px solid var(--win-line);background:#1f2124;border-radius:6px;padding:.3rem .55rem}.concept summary{cursor:pointer;font-weight:600}.concept-tag{font:700 .68rem var(--mono);color:#cfe3ff;background:#345;border-radius:3px;padding:.05rem .3rem}.concept p{margin:.35rem 0;font-size:.88rem}.concept pre{font:.82rem/1.4 var(--mono);white-space:pre;border-radius:4px;margin:0;padding:.4rem .55rem;overflow-x:auto}.concept-code{color:#e6e1cf;background:#15171a}.concept-out-label{color:var(--muted);margin-bottom:.1rem!important;font-size:.75rem!important}.concept-out{color:#a9e08a;background:#101a10}body:has(.mission.blueprint){background-color:#0000;background-image:linear-gradient(#ffffff12 1px,#0000 1px),linear-gradient(90deg,#ffffff12 1px,#0000 1px),linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px),radial-gradient(90% 80% at 50% 40%,#2563a6,#123d6e);background-position:0 0,0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat,repeat;background-size:24px 24px,24px 24px,6px 6px,6px 6px,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box}.mission.blueprint{--win-body:#0e3462eb;--win-line:#dceeff59;--ink:#eef6ff;--muted:#a9c6e6;--accent:#8fd3ff;--accent-2:#5fb6ef;--accent-ink:#062544;--warn:#ffe08a}.mission.blueprint .win{border:1.5px dashed #e6f3ffbf;box-shadow:0 10px 26px #04163073}.mission.blueprint .win-bar{background:#e6f3fff2}.mission.blueprint .win-title{color:#0c3566}.mission.blueprint .win-dot{background:#1d5aa0}.mission.blueprint .concept{background:#06224699}.mission.blueprint .concept-code{color:#eaf4ff;background:#082b55}.mission.blueprint .concept-out{background:#0a3a33}.mission.blueprint .result,.mission.blueprint .replay{background:var(--win-body)}.mission.blueprint .hud h1,.mission.blueprint .hud{color:#fff}.mission.blueprint .farm-panel .field-tabs button{background:#0e3462d9}.bp-toggle{color:#fff;background:#26282b;border:1.5px solid #16181b;border-radius:99px;align-items:center;gap:.5rem;height:2.1rem;padding:0 .75rem 0 .4rem;font-weight:700;display:inline-flex}.bp-toggle .bp-switch{background:#555b62;border-radius:99px;width:2.1rem;height:1.2rem;transition:background .25s;position:relative}.bp-toggle .bp-switch:after{content:"";background:#fff;border-radius:50%;width:.9rem;height:.9rem;transition:transform .25s cubic-bezier(.3,1.4,.5,1);position:absolute;top:.15rem;left:.15rem}.bp-toggle[aria-pressed=true]{color:#0c3566;background:#e6f3ff;border:1.5px dashed #0c3566}.bp-toggle[aria-pressed=true] .bp-switch{background:#1d5aa0}.bp-toggle[aria-pressed=true] .bp-switch:after{transform:translate(.9rem)}.bp-unroll{z-index:30;pointer-events:none;background-color:#1d5aa0;background-image:linear-gradient(#ffffff40 1px,#0000 1px),linear-gradient(90deg,#ffffff40 1px,#0000 1px);background-position:0 0;background-repeat:repeat;background-size:24px 24px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;animation:.9s cubic-bezier(.6,0,.3,1) forwards bp-unroll;position:fixed;inset:0}@keyframes bp-unroll{0%{clip-path:inset(0 100% 0 0);opacity:.95}45%{clip-path:inset(0);opacity:.95}to{clip-path:inset(0);opacity:0}}.win-blueprint .win-body{display:grid}.bp-steps{gap:.6rem;display:grid}.bp-dots{flex-wrap:wrap;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.bp-dots button{width:1.9rem;height:1.9rem;color:inherit;background:0 0;border:1.5px dashed #e6f3ff8c;border-radius:50%;padding:0;font-size:.85rem}.bp-dots button.done{background:#8fd3ff2e;border-style:solid}.bp-dots button.on{color:#0c3566;background:#fff;border:2px solid #fff;transform:scale(1.1)}.bp-step{gap:.45rem;animation:.35s ease-out both bp-step-in;display:grid}.bp-kind{font:700 .8rem var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin:0}.bp-ask{margin:0;font-size:1.15rem;font-weight:600;line-height:1.35}.bp-reveal{background:0 0;border-style:dashed;justify-self:start}.bp-answer{border-left:3px solid var(--accent);background:#8fd3ff1f;border-radius:6px;margin:0;padding:.45rem .6rem;animation:.3s ease-out both bp-step-in}.bp-nav{justify-content:space-between;align-items:center;gap:.5rem;display:flex}@keyframes bp-step-in{0%{opacity:0;transform:translateY(6px)}}.intro-field .farm{transition:opacity .3s}.intro-field.fading .farm{opacity:0}.intro-field.waiting .farm{animation:1.6s ease-in-out infinite intro-wait}@keyframes intro-wait{50%{opacity:.6}}.intro-progress{background:#ffffff1f;border-radius:2px;width:min(30rem,100%);height:4px;overflow:hidden}.intro-progress i{background:var(--accent);transform-origin:0;height:100%;transition:transform .2s linear;display:block}
