.terrain-lab{grid-template-columns:320px minmax(0,1fr);align-items:start;gap:16px;display:grid}.terrain-panel{gap:20px;max-height:calc(100vh - 32px);display:grid;position:sticky;top:16px;overflow-y:auto}.terrain-head h1{font:700 22px/1.2 var(--font-display);margin:0 0 6px}.terrain-head p,.terrain-note{color:var(--muted);margin:0;font-size:13px;line-height:1.45}.terrain-group{gap:14px;display:grid}.terrain-group h2{font:600 12px/1 var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0}.terrain-seed{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.terrain-field{gap:8px;display:grid}.terrain-label{color:var(--ink-2);justify-content:space-between;font-size:13px;font-weight:500;display:flex}.terrain-label output{font-variant-numeric:tabular-nums;color:var(--muted)}.terrain-seed{align-items:center;gap:2px;margin-block:-6px;display:inline-flex}.terrain-switches{gap:10px;display:grid}.terrain-presets{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.terrain-preset{border:1px solid var(--line);background:var(--surface);width:100%;font:500 12px/1.2 var(--font-ui);color:var(--ink-2);text-align:left;cursor:pointer;border-radius:10px;gap:4px;padding:4px 4px 6px;display:grid}.terrain-preset:hover{border-color:var(--line-strong)}.terrain-preset[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);color:var(--ink)}.terrain-preset img,.terrain-preset-wait{aspect-ratio:8/5;background:linear-gradient(#cfe2f3,#eef4fa);border-radius:6px;width:100%;height:auto;display:block}.terrain-preset span:last-child{padding:0 2px}.terrain-actions{gap:10px;display:grid}.terrain-stage{background:linear-gradient(#9cc4ea 0%,#cfe3f4 55%,#eef3f6 100%);height:calc(100vh - 32px);min-height:480px;padding:0;position:relative;overflow:hidden}.terrain-canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.terrain-canvas:active{cursor:grabbing}.terrain-bar{pointer-events:none;flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex;position:absolute;top:12px;left:12px;right:12px}.terrain-bar>*{pointer-events:auto}.terrain-shots{flex-wrap:wrap;gap:6px;display:flex}.button.terrain-shot{height:28px;padding:0 10px;font-size:12px}.terrain-status{border-radius:var(--r-sm);font-variant-numeric:tabular-nums;color:var(--ink-2);background:#fffc;margin:0;padding:4px 8px;font-size:12px;position:absolute;top:52px;left:12px}.terrain-stats{border-radius:var(--r-md);font-variant-numeric:tabular-nums;background:#ffffffc7;gap:2px;max-width:min(560px,100% - 24px);margin:0;padding:8px 10px;font-size:11px;display:grid;position:absolute;bottom:12px;left:12px}.terrain-stats div{gap:6px;display:flex}.terrain-stats dt{color:var(--muted)}.terrain-stats dd{color:var(--ink);margin:0}@media (width<=900px){.terrain-lab{grid-template-columns:minmax(0,1fr)}.terrain-panel{max-height:none;position:static}.terrain-stage{order:-1;height:70vh}}.terrain-term{-webkit-text-decoration:underline dotted color-mix(in srgb, currentColor 45%, transparent);text-decoration:underline dotted color-mix(in srgb, currentColor 45%, transparent);text-underline-offset:3px;cursor:help}.terrain-value{align-items:center;gap:2px;margin-block:-6px;display:inline-flex}.terrain-reset{color:var(--muted)}.studio{--sky-top:#9cc3ec;--sky-bottom:#e9f1f9;--studio-gap:14px;background:var(--surface);grid-template:"bar bar bar"52px"layers view inspector"minmax(0,1fr)/280px minmax(0,1fr) 340px;height:100dvh;min-height:560px;display:grid;overflow:hidden}.studio .button.sm{gap:6px;height:32px;padding:0 10px;font-size:13px}.studio .button.ghost{box-shadow:none;color:var(--ink-2);background:0 0}.studio .button.ghost:hover:not(:disabled){color:var(--ink);background:#17181b0f}.studio .button.ghost:disabled{color:var(--line-strong);background:0 0}.studio .button.icon{width:32px;padding:0}.studio-bar{border-bottom:1px solid var(--line);background:var(--surface);grid-area:bar;align-items:center;gap:4px;min-width:0;padding:0 10px 0 12px;display:flex}.studio-title{border-right:1px solid var(--line);color:var(--muted);font:600 13px/1 var(--font-ui);white-space:nowrap;flex:none;margin:0 6px 0 0;padding-right:12px}.studio-project{height:36px;color:var(--ink);font:600 14px/1 var(--font-ui);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:0 10px 0 6px;display:flex}.studio-project:hover{background:#17181b0d}.studio-project>svg:last-child{color:var(--faint)}.studio-glyph{background:var(--primary);width:26px;height:26px;color:var(--on-primary);border-radius:8px;place-items:center;display:grid}.studio-dims{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;padding:0 8px;font-size:12.5px}.studio-vsep{background:var(--line);flex:none;width:1px;height:22px;margin:0 6px}.studio-bar-fill{flex:1}.studio-bar .segmented{margin-right:6px}.studio-panel{background:var(--surface);flex-direction:column;min-height:0;display:flex;overflow:hidden}.studio-layers{border-right:1px solid var(--line);grid-area:layers}.studio-inspector{border-left:1px solid var(--line);grid-area:inspector}.studio-panel-head{align-items:center;gap:8px;padding:12px 10px 8px 18px;display:flex}.studio-panel-head h2{font:600 15px/1.2 var(--font-display);flex:1;margin:0}.studio-panel-body{flex:1;min-height:0;padding:0 10px 12px;overflow:auto}.studio-panel-foot{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;padding:10px 18px 12px;font-size:12.5px;display:flex}.studio-stack-head{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:center;margin:10px 8px 4px;font-size:11.5px;font-weight:600;display:flex}.studio-stack-head span:last-child{letter-spacing:0;text-transform:none;font-weight:500}.studio-rows{gap:2px;margin:0;padding:0;list-style:none;display:grid}.studio-row{border-radius:11px;align-items:center;gap:4px;height:44px;padding:0 4px 0 2px;display:flex}.studio-row:hover{background:#17181b0a}.studio-row.on{background:var(--surface);box-shadow:0 0 0 1.5px var(--ink)}.studio-row.drop{box-shadow:inset 0 2px 0 var(--accent)}.studio-row.off .studio-row-text,.studio-row.off .studio-row-icon,.studio-row.off .studio-sws{opacity:.4}.studio-grip{color:var(--line-strong);cursor:grab;flex:none}.studio-grip-space{flex:none;width:16px}.studio-row-main{min-width:0;height:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;align-items:center;gap:10px;padding:0 4px;display:flex}.studio-row-icon{background:var(--sunken);width:28px;height:28px;color:var(--ink-2);border-radius:8px;flex:none;place-items:center;display:grid}.studio-row-text{flex:1;min-width:0;line-height:1.25;display:grid}.studio-row-text strong,.studio-row-text small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.studio-row-text strong{font-size:13.5px;font-weight:600}.studio-row-text small{color:var(--muted);font-size:12px}.studio-eye{width:28px;height:28px;color:var(--faint);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;display:grid}.studio-eye:hover{background:var(--sunken);color:var(--ink)}.studio-add-row{border:1.5px dashed var(--line-strong);width:100%;height:36px;color:var(--muted);font:500 13px/1 var(--font-ui);cursor:pointer;background:0 0;border-radius:11px;align-items:center;gap:8px;margin:6px 0;padding:0 10px;display:flex}.studio-add-row:hover{border-color:var(--faint);color:var(--ink)}.studio-sws{flex:none;display:flex}.studio-sw{background-color:var(--sunken);image-rendering:pixelated;border-radius:5px;flex:none;display:block;box-shadow:0 0 0 1px #0000001a}.studio-sws .studio-sw+.studio-sw{box-shadow:0 0 0 2px var(--surface);margin-left:-6px}.studio-insp-tabs{padding:12px 16px 0;display:flex}.studio-history{gap:1px;margin:0;padding:10px 8px 16px;list-style:none;display:grid}.studio-step-row{width:100%;min-height:32px;color:var(--ink-2);font:500 13px/1.3 var(--font-ui);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:0 8px;display:flex}.studio-step-row:hover{color:var(--ink);background:#17181b0d}.studio-step-row.on{color:var(--ink);background:#17181b14;font-weight:600}.studio-step-row.undone{color:var(--muted)}.studio-step-n{min-width:22px;color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:11.5px}.studio-insp-title{align-items:center;gap:10px;padding:16px 16px 12px;display:flex}.studio-insp-title+.studio-panel-body{border-top:1px solid var(--line)}.studio-insp-title .studio-row-icon{border-radius:10px;width:34px;height:34px}.studio-insp-title>div{flex:1;min-width:0;display:grid}.studio-insp-title strong{font:600 16px/1.2 var(--font-display)}.studio-insp-title small{color:var(--muted);font-size:12.5px;line-height:1.35}.studio-tag{border-radius:var(--r-pill);background:var(--sunken);color:var(--ink-2);font:500 11.5px/1.2 var(--font-ui);text-transform:capitalize;flex:none;padding:3px 8px}.studio-sec{border-top:1px solid var(--line);gap:14px;padding:6px 8px 14px;display:grid}.studio-sec:first-child{border-top:0}.studio-sec-h{color:var(--muted);font:600 11.5px/1.2 var(--font-ui);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:baseline;margin:10px 0 -4px;display:flex}.studio-sec-h small{letter-spacing:0;text-transform:none;font-size:12px;font-weight:500}.studio-hint{color:var(--muted);margin:0;font-size:12.5px;line-height:1.4}.studio-chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.studio-chip{background:var(--surface);height:28px;box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--ink);font:500 12.5px/1 var(--font-ui);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:6px;padding:0 10px 0 6px;display:inline-flex}.studio-chip:hover{box-shadow:inset 0 0 0 1px var(--accent)}.studio-borrow{border-radius:var(--r-md);box-shadow:inset 0 0 0 1px var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 8px 8px 10px;display:grid}.studio-borrow>.studio-block{grid-column:1/-1}.studio-borrow-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.studio-warn{color:var(--danger);grid-column:1/-1;font-size:12px}.studio-empty{padding:24px 20px}.studio-lead{margin:0;padding:2px 8px 12px}.studio-under{margin:-8px 0 0}.studio-keymap{gap:8px;margin:0;display:grid}.studio-keymap>div{grid-template-columns:76px minmax(0,1fr);align-items:center;gap:10px;display:grid}.studio-keymap dt{gap:4px;display:flex}.studio-keymap dd{color:var(--ink-2);margin:0;font-size:12.5px}.studio-fill{width:100%}.studio-fill button{flex:1;justify-content:center;padding:0 6px}.studio-delete{color:var(--danger);justify-self:start}.studio-strata{align-items:center;gap:6px;display:flex}.studio-strata>:first-child{flex:1;min-width:0}.studio-plant{border-radius:var(--r-md);box-shadow:inset 0 0 0 1px var(--line);gap:8px;padding:8px 8px 10px 10px;display:grid}.studio-plant-head{align-items:center;gap:6px;display:flex}.studio-plant-head>:first-child{flex:1;min-width:0}.studio-block{border-radius:var(--r-md);background:var(--surface);width:100%;height:40px;box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--ink);font:500 13.5px/1 var(--font-ui);text-align:left;cursor:pointer;border:0;align-items:center;gap:10px;padding:0 12px;display:flex}.studio-block:hover{box-shadow:inset 0 0 0 1px var(--faint)}.studio-block-label{width:52px;color:var(--muted);font-size:12.5px}.studio-block-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.studio-block>svg{color:var(--faint)}.ui-dialog.studio-dialog .ui-modal-panel{width:min(920px,100vw - 32px)}.studio-types{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.studio-type{border-radius:var(--r-lg);background:var(--surface);width:100%;height:100%;box-shadow:var(--e1);color:var(--ink);text-align:left;cursor:pointer;border:0;grid-template-rows:auto 1fr;align-content:start;padding:0;text-decoration:none;display:grid;overflow:hidden}.studio-type:hover{box-shadow:0 0 0 1px var(--faint), var(--e1)}.studio-type[aria-pressed=true]{box-shadow:0 0 0 2px var(--ink), var(--e2)}.studio-type img,.studio-type-wait{aspect-ratio:8/5;object-fit:cover;background:linear-gradient(180deg, var(--sky-top,#9cc3ec), var(--sky-bottom,#e9f1f9));width:100%;height:auto;display:block}.studio-type-body{align-content:start;gap:4px;padding:12px 14px 14px;display:grid}.studio-type-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.studio-type-head strong{font:600 14.5px/1.2 var(--font-display)}.studio-type-body small{color:var(--muted);font-size:12.5px;line-height:1.4}.studio-form{bottom:calc(-1 * var(--s-4));z-index:1;margin:20px calc(-1 * var(--s-6)) calc(-1 * var(--s-4));padding:14px var(--s-6) var(--s-4);border-top:1px solid var(--line);background:var(--surface);grid-template-columns:1.6fr 1fr 1fr;align-items:start;gap:18px;display:grid;position:sticky}.studio-seed{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.studio-ex-grid{grid-template-columns:minmax(0,1fr) 320px;gap:24px;margin-top:16px;display:grid}.studio-map{aspect-ratio:1;border-radius:var(--r-lg);background:var(--sunken);-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.studio-map.drawing{cursor:crosshair;touch-action:none}.studio-map img{width:100%;height:100%;image-rendering:pixelated;display:block}.studio-sel{pointer-events:none;border:2px dashed #fff;border-radius:3px;position:absolute;box-shadow:0 0 0 9999px #17181b59}.studio-ex-opts{align-content:start;gap:18px;display:grid}.studio-facts{border-radius:var(--r-md);background:var(--sunken);gap:6px;margin:0;padding:12px 14px;font-size:13px;display:grid}.studio-facts div{justify-content:space-between;gap:12px;display:flex}.studio-facts dt{color:var(--muted)}.studio-facts dd{font-variant-numeric:tabular-nums;margin:0}.studio-paste{gap:6px;display:grid}.studio-command{border-radius:var(--r-sm,8px);background:var(--sunken);align-items:center;gap:4px;padding:2px 2px 2px 10px;display:flex}.studio-command code{overflow-wrap:anywhere;min-width:0;font:500 12.5px/1.4 var(--font-code);flex:1}.studio-region{pointer-events:none;border:1px solid #ffffffb3;position:absolute}.studio-region>span{color:#fff;font:500 11px/1.4 var(--font-code);background:#17181ba6;border-radius:4px;padding:2px 6px;position:absolute;top:6px;left:6px}.studio-into{color:var(--muted);gap:8px;margin:0;padding-left:20px;font-size:13px;line-height:1.45;display:grid}.studio-into code{background:var(--sunken);color:var(--text);font:500 12px/1.4 var(--font-code);border-radius:4px;padding:1px 5px}.studio-export .ui-modal-foot{align-items:center}.studio-export .ui-modal-foot .studio-hint{flex:1}.studio-dialog .ui-modal-foot{align-items:center}.studio-replace{flex:1;min-width:220px;margin:0}.studio-link{color:var(--ink);font:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:500}.studio-link:hover{text-decoration-color:currentColor}.studio-view{background:var(--app);grid-template:"dock head"56px"dock stage"minmax(0,1fr)"dock status"36px/64px minmax(0,1fr);grid-area:view;min-width:0;min-height:0;display:grid;container:studio-view/inline-size}.studio-stage{background:linear-gradient(180deg, var(--sky-top), var(--sky-bottom));grid-area:stage;position:relative;overflow:hidden}.studio-stage .terrain-canvas{position:absolute;inset:0}.studio-stage .view-missing{cursor:auto;display:grid}.studio-dock{border-right:1px solid var(--line);background:var(--surface);flex-direction:column;grid-area:dock;gap:2px;padding:8px 4px;display:flex;overflow-y:auto}.studio-tool{width:100%;height:50px;color:var(--ink-2);font:500 11px/1 var(--font-ui);cursor:pointer;background:0 0;border:0;border-radius:10px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:4px;display:flex;position:relative}.studio-tool:hover{color:var(--ink);background:#17181b0f}.studio-tool.on{background:var(--primary);color:var(--on-primary)}.studio-tool:first-child{margin-bottom:6px}.studio-tool:first-child:after{background:var(--line);content:"";height:1px;position:absolute;bottom:-5px;left:10px;right:10px}.studio-tool-k{color:var(--faint);font:500 10px/1 var(--font-code);position:absolute;top:4px;right:6px}.studio-tool.on .studio-tool-k{color:inherit;opacity:.7}.studio-toolbar{border-bottom:1px solid var(--line);background:var(--surface);grid-area:head;align-items:center;gap:18px;min-width:0;padding:0 16px;display:flex}.studio-toolbar-name{color:var(--ink);font:600 14px/1 var(--font-ui);flex:none;align-items:center;gap:8px;display:flex}.studio-brush-ctl{flex:none;width:140px}.studio-brush-ctl .terrain-field{gap:2px}.studio-brush-ctl .terrain-label{font-size:12px}.studio-mats{flex:none;gap:2px;display:flex}.studio-mat{cursor:pointer;background:0 0;border:0;border-radius:7px;place-items:center;width:28px;height:28px;padding:0;display:grid}.studio-mat .texture,.studio-mat .studio-sw{border-radius:4px;width:22px;height:22px;box-shadow:0 0 0 1px #0000001a}.studio-mat:hover{background:#17181b0f}.studio-mat[aria-checked=true]{box-shadow:0 0 0 2px var(--primary)}.studio-toolbar .segmented{flex:none}.studio-tool-hint{z-index:2;max-width:min(420px,100% - 24px);color:var(--ink-2);font:400 12.5px/1.4 var(--font-ui);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;background:#ffffffdb;border-radius:8px;margin:0;padding:6px 10px;position:absolute;bottom:12px;left:12px;box-shadow:0 1px 2px #00000014,0 0 0 1px #0000000d}.studio-stage:has(.studio-float) .studio-tool-hint{max-width:min(420px,100% - 336px)}@container studio-view (width<=640px){.studio-stage:has(.studio-float) .studio-tool-hint{display:none}}@container studio-view (width<=760px){.studio-toolbar{gap:12px}.studio-toolbar-label{display:none}.studio-brush-ctl{width:112px}}.studio-notice{z-index:3;border-radius:var(--r-pill);background:var(--warning-soft);width:max-content;max-width:calc(100% - 32px);color:var(--warning);font:500 13px/1.3 var(--font-ui);pointer-events:none;align-items:center;gap:8px;margin:0;padding:8px 14px;display:flex;position:absolute;top:12px;left:50%;translate:-50%;box-shadow:0 0 0 1px #9a5b0038,0 6px 18px #17181b1a}.studio-notice svg{flex:none}.terrain-canvas.brushing,.terrain-canvas.brushing:active{cursor:crosshair}.terrain-pins{z-index:2;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.terrain-pin-line{fill:none;stroke:#fff;stroke-width:1.5px;stroke-dasharray:5 4;stroke-linecap:round;opacity:.85;filter:drop-shadow(0 1px 1px #00000073)}.terrain-pin{cursor:grab;pointer-events:all;touch-action:none}.terrain-pin:active{cursor:grabbing}.terrain-pin circle{fill:#fff;stroke:#2b6cb0;stroke-width:2px;filter:drop-shadow(0 1px 2px #00000080);transition:r .12s ease-out,stroke-width .12s ease-out}.terrain-pin:hover circle{stroke-width:3px}.terrain-pin.spring circle{fill:#4aa3ff;stroke:#fff}.terrain-pin.mouth circle{fill:#1c4f8a;stroke:#fff}.terrain-pin.tree circle{fill:#fff;stroke:#2f7d4f}.terrain-pin.tree.on circle{fill:#5bc283;stroke:#fff}.studio-statusbar{border-top:1px solid var(--line);background:var(--surface);grid-area:status;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:0 8px 0 14px;display:flex}.studio-status{min-width:0;color:var(--ink-2);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;font-size:12.5px;display:flex;overflow:hidden}.studio-dot{background:#3f9b57;border-radius:50%;flex:none;width:7px;height:7px}.studio-dot.busy{background:#d6a237;animation:1s ease-in-out infinite alternate studio-pulse}@keyframes studio-pulse{0%{opacity:.3}to{opacity:1}}.studio-readout{min-width:0;height:18px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;flex-wrap:wrap;flex:1;place-content:flex-start flex-end;gap:0 14px;font-size:12.5px;line-height:18px;display:flex;overflow:hidden}.studio-cams{flex:none;gap:2px;display:flex}.studio-cams button{height:26px;color:var(--ink-2);font:500 12.5px/1 var(--font-ui);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:0 10px}.studio-cams button:hover{color:var(--ink);background:#17181b0f}.studio-loading{z-index:2;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.studio-loading-card{border-radius:var(--r-xl);background:var(--surface);width:min(340px,100%);box-shadow:var(--e2);justify-items:start;gap:4px;padding:22px 24px 24px;animation:.3s ease-out .12s both studio-rise;display:grid}@keyframes studio-rise{0%{opacity:0;transform:translateY(6px)}}.studio-loading-card>svg{margin-bottom:10px}.studio-loading-card strong{font:600 16px/1.25 var(--font-display)}.studio-loading-card>small{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12.5px}.studio-steps{gap:10px;width:100%;margin:16px 0 18px;padding:0;list-style:none;display:grid}.studio-step{color:var(--faint);align-items:flex-start;gap:10px;font-size:13.5px;line-height:18px;display:flex}.studio-step>span:last-child{display:grid}.studio-step small{color:var(--muted);font-size:12px}.studio-step.now,.studio-step.done{color:var(--ink)}.studio-step-mark{width:18px;height:18px;box-shadow:inset 0 0 0 1.5px var(--line-strong);border-radius:50%;flex:none;place-items:center;display:grid}.studio-step.done .studio-step-mark{background:var(--primary);box-shadow:none;color:var(--on-primary)}.studio-step.now .studio-step-mark{border:2px solid var(--line);border-top-color:var(--primary);box-shadow:none;animation:.8s linear infinite studio-spin}@keyframes studio-spin{to{transform:rotate(1turn)}}.studio-meter{background:var(--sunken);border-radius:2px;width:100%;height:4px;overflow:hidden}.studio-meter>span,.studio-rebuild>span{background:var(--primary);transform-origin:0;height:100%;transition:transform .25s ease-out;display:block}.studio-rebuild{z-index:2;background:#ffffff73;height:3px;animation:.2s .25s both studio-appear;position:absolute;top:0;left:0;right:0}@keyframes studio-appear{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.studio-step.now .studio-step-mark,.studio-dot.busy{animation:none}}@media (width<=1280px){.studio{grid-template:"bar bar"52px"layers view"minmax(0,1fr)"inspector view"minmax(0,1fr)/340px minmax(0,1fr)}.studio-inspector{border-top:1px solid var(--line);border-left:0;border-right:1px solid var(--line)}.studio-dims{display:none}.studio-toolbar{gap:12px}.studio-brush-ctl{width:112px}}@media (width<=860px){.studio{grid-template:"bar""view"70vh"layers""inspector"/minmax(0,1fr);height:auto;overflow:visible}.studio-bar{flex-wrap:wrap;row-gap:6px;padding:8px 10px}.studio-view{grid-template:"head""dock""stage"minmax(0,1fr)"status"36px/minmax(0,1fr)}.studio-dock{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;padding:4px;overflow-x:auto}.studio-tool{width:56px;height:46px}.studio-tool:first-child{margin:0 6px 0 0}.studio-tool:first-child:after{display:none}.studio-toolbar{flex-wrap:wrap;gap:8px 16px;padding:8px 12px}.studio-layers,.studio-inspector{border:0;border-top:1px solid var(--line)}.studio-panel{max-height:70vh}.studio-types{grid-template-columns:repeat(2,minmax(0,1fr))}.studio-form,.studio-ex-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=560px){.studio-types{grid-template-columns:minmax(0,1fr)}}.studio-float{z-index:3;border-radius:var(--r-md);background:color-mix(in srgb, var(--surface) 94%, transparent);width:288px;max-height:calc(100% - 24px);box-shadow:var(--e3), inset 0 0 0 1px var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-direction:column;animation:.16s ease-out both studio-appear;display:flex;position:absolute;top:12px;right:12px}.studio-float-head{border-bottom:1px solid var(--line);flex-direction:column;gap:4px;padding:12px 14px 10px;display:flex}.studio-float-title{color:var(--ink);font:600 14px/1 var(--font-ui);align-items:center;gap:8px;display:flex}.studio-float-status{min-height:16px;color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:12px;display:flex}.studio-float-status.busy:before{content:"";background:var(--primary);border-radius:50%;flex:none;width:7px;height:7px;animation:.9s ease-in-out infinite alternate studio-pulse}.studio-float-body{overscroll-behavior:contain;flex-direction:column;gap:12px;min-height:0;padding:12px 14px;display:flex;overflow-y:auto}.studio-float-group{border:0;flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;display:flex}.studio-float-group>legend{color:var(--muted);font:600 11px/1 var(--font-ui);letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px;padding:0}.studio-float-fold>summary{color:var(--muted);font:600 11px/1 var(--font-ui);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;margin-bottom:2px;list-style:none;display:flex}.studio-float-fold>summary::-webkit-details-marker{display:none}.studio-float-fold>summary:hover{color:var(--ink)}.studio-float-fold>summary svg{transition:transform .12s ease-out;transform:rotate(-90deg)}.studio-float-fold[open]>summary svg{transform:none}.studio-float-fold>summary:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:3px}.studio-tree-last{align-items:center;gap:4px;display:flex}.studio-tree-last .terrain-label{flex:1;font-size:12.5px}.studio-tree-last kbd{background:0 0;height:16px;padding:0 4px;font-size:10px}.studio-float-group .terrain-field{gap:2px}.studio-float-group .terrain-label{font-size:12.5px}.studio-float-seed{justify-content:space-between;align-items:center;gap:8px;display:flex}.studio-float-seed .terrain-label{gap:8px}.studio-float-foot{border-top:1px solid var(--line);align-items:center;gap:6px;padding:10px 12px 10px 14px;display:flex}.studio-float-fill{flex:1}.studio-float-target{min-width:0;color:var(--muted);font:400 12px/1.2 var(--font-ui);text-align:right;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.studio-float-target b{color:var(--ink);font-weight:550}.studio-float-foot kbd{background:0 0;height:17px;padding:0 4px;font-size:10px}.studio-float-foot .button.primary kbd{color:inherit;box-shadow:inset 0 0 0 1px color-mix(in srgb, currentColor 35%, transparent)}.studio-presets{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.studio-preset{display:flex;position:relative}.studio-preset-pick{background:var(--surface);height:26px;box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--ink);font:500 12px/1 var(--font-ui);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:4px;padding:0 10px;display:inline-flex}.studio-preset-pick:hover{box-shadow:inset 0 0 0 1px var(--accent)}.studio-preset-pick[aria-pressed=true]{background:color-mix(in srgb, var(--primary) 14%, var(--surface));box-shadow:inset 0 0 0 1px var(--primary)}.studio-preset-pick.add{color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}.studio-preset-pick:disabled{opacity:.5;cursor:default}.studio-preset.own .studio-preset-pick{padding-right:24px}.studio-preset-drop{width:18px;height:18px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.studio-preset-drop:hover{background:var(--sunken);color:var(--ink)}.studio-preset-name{background:var(--surface);width:132px;height:26px;box-shadow:inset 0 0 0 1px var(--primary);color:var(--ink);font:500 12px/1 var(--font-ui);border:0;border-radius:999px;outline:none;padding:0 10px}.studio-graph{z-index:4;border-top:1px solid var(--line);background:var(--surface);flex-direction:column;height:min(46%,420px);min-height:240px;animation:.18s ease-out backwards studio-graph-in;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -12px 32px -18px #17181b4d}@keyframes studio-graph-in{0%{opacity:0;transform:translateY(16px)}}.studio-graph-head{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:10px;height:44px;padding:0 8px 0 14px;display:flex}.studio-graph-head .studio-hint{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.studio-zoom{flex:none;align-items:center;gap:2px;display:flex}.studio-zoom-n{font-variant-numeric:tabular-nums;justify-content:center;min-width:52px}.studio-graph-title{font:600 13.5px/1 var(--font-ui);flex:none;align-items:center;gap:8px;display:flex}.studio-graph-canvas{background-color:var(--sunken);touch-action:none;cursor:grab;background-image:radial-gradient(circle,#17181b1f 1px,#0000 1.2px);background-size:16px 16px;flex:1;display:flex;position:relative;overflow:auto}.studio-graph-canvas:active{cursor:grabbing}.studio-graph-canvas.wiring{cursor:crosshair}.studio-graph-canvas .studio-node{cursor:default}.studio-graph-space{flex:none;margin:auto}.studio-graph-scaled{transform-origin:0 0;position:relative}.studio-graph-wires{position:absolute;inset:0;overflow:visible}.studio-wire-line,.studio-wire-draft{fill:none;stroke-width:2px;stroke-linecap:round}.studio-wire.height .studio-wire-line,.studio-wire-draft.height{stroke:var(--ink-2)}.studio-wire.mask .studio-wire-line,.studio-wire-draft.mask{stroke:var(--accent)}.studio-wire.water .studio-wire-line,.studio-wire-draft.water{stroke:#3f76e4}.studio-wire.locked .studio-wire-line{stroke-width:2.5px;opacity:.35}.studio-wire-draft{stroke-dasharray:6 5}.studio-wire-hit{fill:none;stroke:#0000;stroke-width:14px;cursor:pointer;pointer-events:stroke}.studio-wire.lit .studio-wire-line{stroke:var(--danger);stroke-dasharray:5 4}.studio-node{border-radius:var(--r-md);background:var(--surface);box-shadow:var(--e2);transition:box-shadow .12s,opacity .12s;position:absolute}.studio-node.side{background:color-mix(in srgb, var(--surface) 88%, var(--sunken))}.studio-node.on{box-shadow:var(--e2), 0 0 0 1.5px var(--ink)}.studio-node.off .studio-node-head{opacity:.45}.studio-node-head{border:0;border-bottom:1px solid var(--line);border-radius:var(--r-md) var(--r-md) 0 0;width:100%;height:34px;color:var(--ink);font:600 12.5px/1 var(--font-ui);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:8px;padding:0 30px 0 10px;display:flex}.studio-node-head:disabled{cursor:default}.studio-node-head strong{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.studio-node-icon{background:var(--sunken);width:22px;height:22px;color:var(--ink-2);border-radius:6px;flex:none;place-items:center;display:grid}.studio-node-remove{width:22px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:grid;position:absolute;top:6px;right:6px}.studio-node-remove:hover{background:var(--sunken);color:var(--danger)}.studio-port{height:22px;color:var(--muted);font:500 11.5px/1 var(--font-ui);white-space:nowrap;align-items:center;gap:7px;margin-top:-11px;display:flex;position:absolute}.studio-port.in{left:-5px}.studio-port.out{cursor:grab;right:-5px}.studio-port i{border:2px solid var(--surface);background:var(--ink-2);width:10px;height:10px;box-shadow:0 0 0 1px var(--line);border-radius:50%;flex:none;transition:transform .1s}.studio-port.mask i{background:var(--accent)}.studio-port.water i{background:#3f76e4}.studio-port.out:hover i{transform:scale(1.35)}.studio-port.out:hover{color:var(--ink)}.studio-port.in.ok i{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 30%, transparent);transform:scale(1.5)}.studio-port.in.ok{color:var(--ink)}.studio-port.in.no{opacity:.35}.studio-graph-scaled.far .studio-node-head{border-radius:var(--r-md);height:100%;min-height:34px;font-size:calc(12.5px * min(var(--unzoom), 2.4));border-bottom:0;align-items:flex-start;padding:8px 10px}.studio-graph-scaled.far .studio-node-head strong{white-space:normal;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.1;display:-webkit-box}.studio-graph-scaled.far .studio-node-icon,.studio-graph-scaled.far .studio-node-remove{display:none}.studio-graph-scaled.far .studio-port{font-size:0}.studio-graph-scaled.far .studio-port i{transform:scale(min(var(--unzoom), 2))}.studio-graph-toggle[aria-pressed=true]{background:var(--ink);color:var(--surface)}.studio-wired{color:var(--muted);gap:6px;margin:0;padding:0;font-size:12.5px;list-style:none;display:grid}.studio-wired strong{color:var(--ink);font-weight:600}.studio-command .icon-button{width:30px;height:30px}.studio-command .icon-button:hover{background:var(--surface)}.studio-idle{color:var(--warning);font-weight:500}.studio-drop{z-index:6;border:2px dashed var(--primary);border-radius:var(--r-lg);background:color-mix(in srgb, var(--surface) 82%, transparent);color:var(--ink);font:500 13px/1.4 var(--font-ui);text-align:center;pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:24px;display:flex;position:absolute;inset:12px}.studio-drop svg{color:var(--primary)}.studio-drop strong{font:600 16px/1.3 var(--font-ui)}.studio-drop span{max-width:34ch;color:var(--muted)}.studio-image-name{color:var(--ink-2);font:500 12px/1.4 var(--font-code);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.studio-caution{color:var(--warning);margin:0;font-size:12px}
