/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.grid{display:grid}.table{display:table}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--ink:#102016;--muted:#56705d;--moss:#1d3d24;--lime:#b8ee67;--lime-bright:#d6ff83;--paper:#eff4e9;--glass:#f2f7ebe0;--line:#19372126}*{box-sizing:border-box}html,body{width:100%;min-height:100%}body{color:var(--ink);font-family:var(--font-manrope), sans-serif;background:#8fc8db;margin:0;overflow:hidden}button,input{font:inherit}button:focus-visible,input:focus-visible{outline-offset:3px;outline:2px solid #436c2e}.grass-lab{isolation:isolate;background:radial-gradient(circle at 75% 15%,#dfffba7a,#0000 35%),#8fc8db;width:100vw;height:100dvh;min-height:0;position:relative;overflow:hidden}.grass-canvas{cursor:crosshair;touch-action:none;width:100%;height:100%;display:block}.grass-canvas.is-camera-active{cursor:none}.grass-lab.is-camera-active,.grass-lab.is-camera-active *{cursor:none!important}.lab-header{z-index:3;pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;inset:30px 32px auto 34px}.brand-lockup{align-items:center;gap:15px;display:flex}.brand-mark{width:38px;height:46px;position:relative;transform:rotate(-5deg)}.brand-mark span{background:var(--moss);transform-origin:bottom;border-radius:100% 0;width:7px;position:absolute;bottom:0}.brand-mark span:first-child{height:35px;left:4px;transform:rotate(-18deg)}.brand-mark span:nth-child(2){height:45px;left:16px;transform:rotate(2deg)}.brand-mark span:nth-child(3){height:31px;left:27px;transform:rotate(23deg)}.eyebrow{color:#486051;font-family:var(--font-geist-mono), monospace;letter-spacing:.16em;margin:0 0 5px;font-size:10px;font-weight:600}h1{color:#15301c;letter-spacing:-.045em;margin:0;font-size:clamp(22px,2vw,31px);font-weight:720}.runtime-pill{color:#2a4932;letter-spacing:.04em;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f5f9efb8;border:1px solid #19372126;border-radius:999px;align-items:center;gap:8px;padding:10px 13px;font-size:11px;font-weight:700;display:flex;box-shadow:0 10px 30px #203c2712}.runtime-dot{background:#d99b34;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #d99b3421}.runtime-pill--ready .runtime-dot{background:#4c9f48;box-shadow:0 0 0 4px #4c9f4824}.runtime-pill--error .runtime-dot{background:#bd4c37;box-shadow:0 0 0 4px #bd4c3724}.control-panel{z-index:4;contain:layout paint;background:#f2f7eb;border:1px solid #25422c26;border-radius:18px;width:min(332px,100vw - 40px);max-height:calc(100dvh - 130px);transition:width .18s;position:absolute;top:98px;right:32px;overflow:hidden auto;box-shadow:0 24px 60px #17311d26}.control-panel--closed{width:160px}.panel-handle{border:0;border-bottom:1px solid var(--line);color:#28432f;width:100%;font-family:var(--font-geist-mono), monospace;letter-spacing:.14em;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;padding:15px 17px;font-size:10px;font-weight:650;display:flex}.panel-handle span:last-child{color:#5a755f;font-family:var(--font-manrope), sans-serif;font-size:17px;font-weight:400}.control-panel--closed .panel-handle{border-bottom:0}.control-panel--closed .panel-content{display:none}.panel-content{padding:15px 17px 17px}.stats-grid{border:1px solid var(--line);background:#ffffff59;border-radius:12px;grid-template-columns:1fr 1fr;margin-bottom:16px;display:grid}.metric{min-width:0;padding:11px 12px}.metric:nth-child(odd){border-right:1px solid var(--line)}.metric:nth-child(-n+4){border-bottom:1px solid var(--line)}.metric>span{color:#66806c;font-family:var(--font-geist-mono), monospace;letter-spacing:.09em;font-size:8px;font-weight:650}.metric p{color:#18351f;font-family:var(--font-geist-mono), monospace;letter-spacing:-.04em;margin:4px 0 0;font-size:16px;font-weight:650}.metric small{color:#718277;letter-spacing:0;margin-left:3px;font-size:9px;font-weight:500}.control-section,.range-control,.color-control{margin-top:15px;display:block}.control-heading{color:#3e5946;justify-content:space-between;align-items:center;font-size:11px;font-weight:650;display:flex}.control-heading output{color:#587261;font-family:var(--font-geist-mono), monospace;font-size:10px;font-weight:500}.segmented-control{border:1px solid var(--line);background:#27482f0d;border-radius:9px;grid-template-columns:repeat(4,1fr);gap:3px;margin-top:8px;padding:3px;display:grid}.segmented-control button{color:#5d7363;font-family:var(--font-geist-mono), monospace;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:7px 0;font-size:10px}.segmented-control button.is-active{color:#e4f4d0;background:#274b2f;box-shadow:0 4px 10px #17361e2e}.range-control input[type=range]{--range-progress:50%;appearance:none;cursor:pointer;background:0 0;width:100%;height:18px;margin:5px 0 0}.range-control input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg, #365b3d var(--range-progress), #2e4c3529 var(--range-progress));border-radius:999px;height:3px}.range-control input[type=range]::-webkit-slider-thumb{appearance:none;border:2px solid var(--paper);background:#365b3d;border-radius:50%;width:13px;height:13px;margin-top:-5px;box-shadow:0 1px 5px #1b3a2359}.color-control input[type=color]{border:1px solid var(--line);cursor:pointer;background:#ffffff6b;border-radius:7px;width:100%;height:24px;margin-top:7px;padding:2px}.color-control input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-control input[type=color]::-webkit-color-swatch{border:0;border-radius:4px}.layer-control{margin-top:15px}.toggle-stack{border-top:1px solid var(--line);gap:9px;margin-top:14px;padding-top:13px;display:grid}.toggle-stack--layers{border:1px solid var(--line);background:#27482f0b;border-radius:9px;margin-top:8px;padding:10px 11px}.toggle{color:#3e5946;cursor:pointer;justify-content:space-between;align-items:center;font-size:11px;font-weight:650;display:flex;position:relative}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle i{background:#2e4c3533;border-radius:999px;width:30px;height:17px;transition:background .16s;position:relative}.toggle i:after{content:"";background:#fff;border-radius:50%;width:11px;height:11px;transition:transform .16s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #15311b33}.toggle input:checked+i{background:#3c693f}.toggle input:checked+i:after{transform:translate(13px)}.button-row{grid-template-columns:1fr 1fr;gap:7px;margin-top:15px;display:grid}.action-button{color:#35503c;cursor:pointer;background:#ffffff57;border:1px solid #24442b2e;border-radius:9px;min-height:34px;padding:8px 10px;font-size:10px;font-weight:700}.action-button:hover{background:#ffffffb3}.action-button--accent{color:#e9f7db;background:#315937;border-color:#315937}.action-button--accent:hover{background:#264b2c}.gpu-label{color:#6d7e71;font-family:var(--font-geist-mono), monospace;text-overflow:ellipsis;white-space:nowrap;margin:13px 0 0;font-size:8px;overflow:hidden}.gpu-label span{color:#405c47;margin-right:8px;font-weight:700}.pipeline-strip{z-index:3;color:#1936209e;font-family:var(--font-geist-mono), monospace;letter-spacing:.07em;pointer-events:none;align-items:center;font-size:8px;font-weight:650;display:flex;position:absolute;bottom:31px;right:33px}.pipeline-strip i{background:#19362040;width:18px;height:1px;margin:0 7px}.pipeline-strip i:after{content:"";border-top:1px solid #1936206b;border-right:1px solid #1936206b;width:4px;height:4px;margin-top:-1.5px;margin-left:14px;display:block;transform:rotate(45deg)}.loading-card,.error-card{z-index:6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#f2f7ebed;border:1px solid #1f3e2629;border-radius:16px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 25px 70px #17311d2e}.loading-card{color:#34533c;align-items:center;gap:12px;padding:17px 20px;font-size:12px;font-weight:650;display:flex}.loading-card p{margin:0}.loading-spinner{border:2px solid #34533c29;border-top-color:#4a7448;border-radius:50%;width:18px;height:18px;animation:.85s linear infinite spin}.error-card{width:min(390px,100vw - 36px);padding:25px}.error-card h2{color:#563027;letter-spacing:-.04em;margin:0 0 9px;font-size:22px}.error-card>p:not(.eyebrow){color:#785348;margin:0;font-size:12px;line-height:1.6}.error-card .error-hint{color:#7c7567!important;margin-top:11px!important;font-size:10px!important}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=760px){.lab-header{inset:18px 18px auto 20px}.brand-mark{display:none}.eyebrow{font-size:8px}h1{font-size:21px}.runtime-pill{padding:8px 10px;font-size:9px}.control-panel{width:min(326px,100vw - 28px);max-height:calc(100dvh - 128px);top:auto;bottom:56px;right:14px;overflow-y:auto}.control-panel--closed{width:150px}.pipeline-strip{display:none}}@media (prefers-reduced-motion:reduce){.loading-spinner{animation-duration:1.8s}}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
