@font-face{font-family:Bricolage Grotesque;src:url(/fonts/bricolage-grotesque-latin-opsz-normal.woff2)format("woff2");font-weight:200 800;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin-wght-normal.woff2)format("woff2");font-weight:100 800;font-display:swap}@font-face{font-family:Bricolage Fallback;src:local(Arial);size-adjust:104%;ascent-override:92%;descent-override:24%;line-gap-override:0%}@font-face{font-family:Mono Fallback;src:local(Courier New);size-adjust:100%;ascent-override:102%;descent-override:30%;line-gap-override:0%}:root{--font-ui:"Bricolage Grotesque", "Bricolage Fallback", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Mono Fallback", ui-monospace, monospace;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-md:.875rem;--fs-base:1rem;--fs-lg:1.125rem;--fs-xl:1.375rem;--fs-2xl:1.75rem;--fs-3xl:2.5rem;--fs-hero:clamp(2.5rem, 1.4rem + 4.8vw, 5rem);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--r-field:6px;--r-btn:8px;--r-panel:12px;--r-sheet:16px;--r-pill:999px;--ease:cubic-bezier(.2, .8, .2, 1);--menu-shadow:0 8px 24px #0000002e;--ground:#e3e5e1;--sheet:#f4f5f2;--sheet-2:#d6dad5;--ink:#14191b;--ink-2:#4a5559;--rule:#c5cbc6;--rule-strong:#6c7779;--patina:#19625a;--on-patina:#fff;--pour:#8f4c00;--danger:#a3261d;--good:#1e6b3a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#15191c;--sheet:#1d2327;--sheet-2:#273034;--ink:#e9ece8;--ink-2:#a9b4b5;--rule:#344045;--rule-strong:#6f7e82;--patina:#5cc2ae;--on-patina:#08201c;--pour:#f2a54a;--danger:#ff8a7a;--good:#7bd29a;--menu-shadow:0 8px 24px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--ground:#15191c;--sheet:#1d2327;--sheet-2:#273034;--ink:#e9ece8;--ink-2:#a9b4b5;--rule:#344045;--rule-strong:#6f7e82;--patina:#5cc2ae;--on-patina:#08201c;--pour:#f2a54a;--danger:#ff8a7a;--good:#7bd29a;--menu-shadow:0 8px 24px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{background:var(--ground);height:100%;color:var(--ink);font:400 var(--fs-base)/1.5 var(--font-ui);font-optical-sizing:auto;margin:0}:focus-visible{outline:2px solid var(--patina);outline-offset:2px}button,input,select{font:inherit;color:inherit}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}body{overflow:hidden}body[data-view=landing]{overflow-y:auto}.skip{left:var(--sp-3);z-index:50;background:var(--sheet);color:var(--ink);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-btn);border:1px solid var(--rule-strong);position:fixed;top:-80px}.skip:focus{top:var(--sp-3)}.btn{justify-content:center;align-items:center;gap:var(--sp-2);min-width:44px;min-height:44px;padding:0 var(--sp-3);border-radius:var(--r-btn);border:1px solid var(--rule-strong);background:var(--sheet);color:var(--ink);cursor:pointer;text-decoration:none;transition:background-color .15s,transform .1s;display:inline-flex}.btn:hover{background:var(--sheet-2)}.btn:active{transform:scale(.97)}.btn.primary{background:var(--patina);color:var(--on-patina);border-color:var(--patina);font-weight:600}.btn[disabled],.btn[aria-disabled=true]{opacity:.5;cursor:default}.btn[aria-pressed=true],.btn[aria-selected=true]{background:var(--sheet-2);border-color:var(--patina)}.btn.icon{padding:0}.btn.small{min-width:32px;min-height:32px;padding:0 var(--sp-2)}.studio{background:var(--ground);grid-template:"bar bar bar""outliner viewport code"minmax(0,1fr)"outliner inspector code"/260px minmax(0,1fr) minmax(300px,30vw);display:grid;position:fixed;inset:0}.studio[hidden]{display:none}.bar{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--rule);background:var(--sheet);grid-area:bar;display:flex}.wordmark{font:700 var(--fs-lg)/1 var(--font-ui);font-variation-settings:"opsz" 14;color:var(--ink);padding:var(--sp-2);margin-right:auto;text-decoration:none}.panel{background:var(--sheet);border-right:1px solid var(--rule);min-height:0;overflow:auto}.outliner{flex-direction:column;grid-area:outliner;display:flex}.code{border-right:0;border-left:1px solid var(--rule);flex-direction:column;grid-area:code;display:flex}.viewport{grid-area:viewport;min-width:0;min-height:0;position:relative}.stage{background:var(--ground);position:absolute;inset:0}.stage canvas{touch-action:none;outline-offset:-3px;cursor:grab;width:100%;height:100%;display:block;position:absolute;inset:0}.stage canvas:active{cursor:grabbing}.inspector{background:var(--sheet);border-top:1px solid var(--rule);padding:var(--sp-3);grid-area:inspector;min-width:0;max-height:38vh;overflow:auto}.panel-head{align-items:center;gap:var(--sp-1);padding:var(--sp-2);border-bottom:1px solid var(--rule);flex-wrap:wrap;display:flex;position:relative}.panel-title{font:600 var(--fs-md)/1.2 var(--font-ui);padding:var(--sp-2);margin:0}.menu{z-index:20;top:100%;left:var(--sp-2);background:var(--sheet);border:1px solid var(--rule-strong);border-radius:var(--r-panel);box-shadow:var(--menu-shadow);padding:var(--sp-2);min-width:200px;display:grid;position:absolute}.menu[hidden]{display:none}.menu button{text-align:left;min-height:44px;padding:0 var(--sp-3);border-radius:var(--r-field);cursor:pointer;background:0 0;border:0}.menu button:hover{background:var(--sheet-2)}.menu hr{border:0;border-top:1px solid var(--rule);margin:var(--sp-1) 0;width:100%}.tree{padding:var(--sp-2);margin:0;list-style:none}.tree ul{margin:0;padding:0;list-style:none}.row{align-items:center;gap:var(--sp-1);min-height:44px;padding-right:var(--sp-1);border-radius:var(--r-field);cursor:pointer;border-left:3px solid #0000;display:flex}.row:hover{background:var(--sheet-2)}.row[aria-selected=true]{background:var(--sheet-2);border-left-color:var(--patina);font-weight:600}.row .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding-left:var(--sp-2);flex:1;overflow:hidden}.row .kind{color:var(--ink-2);font-size:var(--fs-sm)}.row.hidden-node .name{opacity:.55;text-decoration:line-through}.empty-hint{padding:var(--sp-4);color:var(--ink-2)}.fields{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));display:grid}.group h3{margin:0 0 var(--sp-1);font:600 var(--fs-sm)/1.3 var(--font-ui);color:var(--ink-2)}.group .trio{gap:var(--sp-1);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.field{gap:2px;display:grid}.field label{font-size:var(--fs-xs);color:var(--ink-2);cursor:ew-resize;-webkit-user-select:none;user-select:none;touch-action:none;padding:2px 0}.field input{border-radius:var(--r-field);border:1px solid var(--rule-strong);background:var(--ground);width:100%;min-height:44px;padding:0 var(--sp-2);font:500 var(--fs-md) var(--font-mono);font-variant-numeric:tabular-nums}.field.text input{font-family:var(--font-ui)}.seg{gap:var(--sp-1);display:flex}.code-head{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--rule);display:flex}.chip{font-size:var(--fs-sm);color:var(--ink-2);margin-right:auto}.chip[data-state=ok]{color:var(--good)}.chip[data-state=error]{color:var(--danger)}.codebar{flex:1;min-height:0;position:relative;overflow:auto}.codebar:before{content:"";z-index:2;background:0 0;height:3px;display:block;position:sticky;top:0}.codebar[data-pulse="1"]:before{animation:pulse .4s var(--ease)}@keyframes pulse{0%{background:var(--pour)}to{background:0 0}}pre.glsl{padding:var(--sp-3) 0;font:400 1rem/1.6 var(--font-mono);tab-size:2;margin:0}.cl{padding:0 var(--sp-3) 0 calc(var(--sp-3) - 3px);white-space:pre;cursor:pointer;border-left:3px solid #0000;display:block}.cl.sel{border-left-color:var(--pour);background:color-mix(in srgb, var(--pour) 10%, transparent)}.cl .k{color:var(--patina)}.cl .c{color:var(--ink-2)}.cl .f{font-weight:600}.cl.sel .n{color:var(--pour)}.code-error{margin:var(--sp-3);padding:var(--sp-3);border:1px solid var(--danger);border-radius:var(--r-field);color:var(--danger);font:400 var(--fs-sm)/1.4 var(--font-mono);white-space:pre-wrap}.overlay{text-align:center;padding:var(--sp-5);pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.overlay>div{pointer-events:auto;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r-panel);padding:var(--sp-5);gap:var(--sp-3);justify-items:center;max-width:28rem;display:grid}.overlay[hidden]{display:none}.overlay h2{font:700 var(--fs-xl)/1.2 var(--font-ui);margin:0}.overlay p{color:var(--ink-2);margin:0}.coach{z-index:15;left:var(--sp-4);bottom:var(--sp-4);background:var(--sheet);border:1px solid var(--patina);border-radius:var(--r-panel);max-width:22rem;padding:var(--sp-4);gap:var(--sp-2);box-shadow:var(--menu-shadow);display:grid;position:absolute}.coach[hidden]{display:none}.coach p{margin:0}.coach .row2{gap:var(--sp-2);justify-content:flex-end;display:flex}.tabs{display:none}@media (max-width:1023px){.studio{grid-template:"bar""viewport"55dvh"sheet"minmax(0,1fr)"tabs"/minmax(0,1fr)}.outliner,.code,.inspector{border:0;grid-area:sheet;max-height:none}.tabs{background:var(--sheet);border-top:1px solid var(--rule);border-radius:var(--r-sheet) var(--r-sheet) 0 0;box-shadow:var(--menu-shadow);grid-area:tabs;grid-template-columns:repeat(3,1fr);display:grid}.tabs button{cursor:pointer;background:0 0;border:0;border-top:3px solid #0000;min-height:48px}.tabs button[aria-selected=true]{border-top-color:var(--patina);font-weight:600}.studio[data-tab=shapes] .code,.studio[data-tab=shapes] .inspector,.studio[data-tab=edit] .outliner,.studio[data-tab=edit] .code,.studio[data-tab=code] .outliner,.studio[data-tab=code] .inspector{display:none}.coach{left:var(--sp-2);right:var(--sp-2);bottom:var(--sp-2)}}.notice{z-index:16;top:var(--sp-3);background:var(--sheet);border:1px solid var(--patina);border-radius:var(--r-panel);padding:var(--sp-2) var(--sp-4);max-width:90%;box-shadow:var(--menu-shadow);position:absolute;left:50%;transform:translate(-50%)}.notice[hidden]{display:none}.studio.no-code{grid-template-columns:260px minmax(0,1fr) 0}.studio.no-code .code{display:none}@media (max-width:1023px){.studio.no-code .tabs [data-tab=code]{display:none}.studio.no-code{grid-template-columns:minmax(0,1fr)}.studio.no-code .tabs{grid-template-columns:repeat(2,1fr)}}.sheetdlg{border:1px solid var(--rule-strong);border-radius:var(--r-sheet);background:var(--sheet);color:var(--ink);padding:var(--sp-5);width:min(480px,94vw);box-shadow:var(--menu-shadow)}.sheetdlg::backdrop{background:#00000080}.sheetdlg h2{margin:0 0 var(--sp-3);font:700 var(--fs-xl)/1.2 var(--font-ui)}.sheetdlg h3{margin:var(--sp-4) 0 var(--sp-2);font:600 var(--fs-md) var(--font-ui)}.setgrid{gap:var(--sp-2);display:grid}.setgrid select{border-radius:var(--r-field);border:1px solid var(--rule-strong);background:var(--ground);min-height:44px;padding:0 var(--sp-2)}.check{align-items:center;gap:var(--sp-3);min-height:44px;display:flex}.check input{width:22px;height:22px;accent-color:var(--patina)}.keys{gap:var(--sp-1) var(--sp-4);margin:0 0 var(--sp-4);grid-template-columns:auto 1fr;display:grid}.keys dt{font-family:var(--font-mono);font-size:var(--fs-sm)}.keys dd{color:var(--ink-2);margin:0}:root[data-motion=reduce] *,:root[data-motion=reduce] :before,:root[data-motion=reduce] :after{transition-duration:.001ms!important;animation-duration:.001ms!important}body[data-view=landing]{overflow:hidden auto}.landing{outline:none}.landing[hidden]{display:none}.hero{align-items:end;gap:var(--sp-5);min-height:100svh;padding:var(--sp-5);isolation:isolate;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);display:grid;position:relative}.hero-art{z-index:-1;position:absolute;inset:0;overflow:hidden}.poster,.hero-canvas{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.poster{transition:opacity .6s var(--ease)}.hero-copy{background:color-mix(in srgb, var(--sheet) 92%, transparent);border:1px solid var(--rule);border-radius:var(--r-panel);max-width:34rem;padding:var(--sp-6)}.wordmark-l{margin:0 0 var(--sp-2);font:700 var(--fs-lg)/1 var(--font-ui);color:var(--patina)}.hero h1{margin:0 0 var(--sp-3);font:700 var(--fs-hero)/1.02 var(--font-ui);font-variation-settings:"opsz" 96;letter-spacing:-.02em;text-wrap:balance}.pitch{margin:0 0 var(--sp-5);font-size:var(--fs-lg);color:var(--ink-2)}.hero-actions{gap:var(--sp-3);flex-wrap:wrap;display:flex}.cta{min-height:48px;padding:0 var(--sp-5);font-size:var(--fs-lg)}.hero-code{max-width:100%;max-height:60svh;padding:var(--sp-4);background:color-mix(in srgb, var(--sheet) 88%, transparent);border:1px solid var(--rule);border-radius:var(--r-panel);font:400 .9375rem/1.6 var(--font-mono);color:var(--ink);place-self:end;margin:0;overflow:hidden}.how{padding:var(--sp-8) var(--sp-5);background:var(--ground)}.how>*{max-width:64rem;margin-inline:auto}.how h2{font:700 var(--fs-2xl)/1.1 var(--font-ui);margin-bottom:var(--sp-5)}.how-list{gap:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));padding:0;list-style:none;display:grid}.how-list h3{margin:0 0 var(--sp-2);font:600 var(--fs-lg)/1.3 var(--font-ui)}.how-list p{color:var(--ink-2);margin:0}.foot{background:var(--ground);border-top:1px solid var(--rule);padding:var(--sp-5);color:var(--ink-2);font-size:var(--fs-md)}.foot p{max-width:64rem;margin:0 auto var(--sp-2)}.foot a{color:var(--ink)}@media (max-width:899px){.hero{padding:var(--sp-3);grid-template-columns:minmax(0,1fr)}.hero-copy{padding:var(--sp-5)}.hero-code{display:none}}.featured{padding-bottom:var(--sp-6)}.feat-list{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));margin:0;padding:0;list-style:none;display:grid}.feat-link{justify-content:flex-start;width:100%}
