@font-face{font-family:Recursive;src:url(/fonts/recursive-mono.woff2)format("woff2");font-weight:300 1000;font-display:swap}:root,:root[data-theme=dark]{--ground:#231c16;--panel:#2c241d;--panel-2:#382e25;--ink:#f1e9da;--ink-2:#c4b6a2;--rule:#4a3d32;--rule-strong:#8c7a66;--root:#e8dcc4;--tip:#7fd4c1;--on-tip:#10241f;--myco:#e9b949;--wilt:#8f806e;--danger:#ff8b7b;--good:#a6d98c;--shadow:0 8px 28px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--ground:#e4e5de;--panel:#f3f3ee;--panel-2:#d6d8ce;--ink:#221b15;--ink-2:#52473c;--rule:#c3c2b7;--rule-strong:#776d61;--root:#5b4632;--tip:#0b6556;--on-tip:#fff;--myco:#7e5500;--wilt:#7d7266;--danger:#a12e1c;--good:#2b6427;--shadow:0 8px 28px #221b1533;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root{--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--r-field:6px;--r-btn:8px;--r-panel:12px;--r-sheet:16px;--r-pill:999px;--t-xs:.75rem;--t-sm:.8125rem;--t-md:.875rem;--t-base:1rem;--t-lg:1.125rem;--t-xl:1.375rem;--t-2xl:1.75rem;--t-3xl:2.5rem;--t-hero:clamp(2.5rem, 1.3rem + 5vw, 5.25rem);--ease:cubic-bezier(.2, .8, .2, 1);--press:90ms;--hover:.14s;--panel-t:.22s;--sans:"Recursive", "Recursive Fallback", system-ui, sans-serif}@font-face{font-family:Recursive Fallback;src:local(Arial);size-adjust:104%;ascent-override:92%;descent-override:24%;line-gap-override:0%}*,:before,:after{box-sizing:border-box}html{background:var(--ground);color:var(--ink)}body{font-family:var(--sans);font-variation-settings:"MONO" 0;font-size:var(--t-base);min-height:100dvh;margin:0;line-height:1.55}.mono,code,textarea,.code{font-variation-settings:"MONO" 1}h1,h2,h3,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--tip);text-underline-offset:3px}:focus-visible{outline:2px solid var(--tip);outline-offset:2px;border-radius:3px}.skip{left:var(--s2);background:var(--tip);color:var(--on-tip);padding:var(--s2) var(--s3);border-radius:var(--r-btn);z-index:50;position:absolute;top:-100px}.skip:focus{top:var(--s2)}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}[hidden]{display:none!important}.btn{align-items:center;gap:var(--s2);min-height:36px;padding:0 var(--s3);border:1px solid var(--rule-strong);border-radius:var(--r-btn);cursor:pointer;font-size:var(--t-md);transition:transform var(--press) var(--ease), opacity var(--hover) var(--ease);background:0 0;flex:none;display:inline-flex}.btn:hover{background:var(--panel-2)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--tip);color:var(--on-tip);border-color:var(--tip);font-weight:600}.btn.primary:hover{opacity:.92;background:var(--tip)}.btn.ghost{border-color:#0000}.btn[aria-pressed=true]{background:var(--panel-2);border-color:var(--tip)}.btn svg{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.btn.icon{justify-content:center;width:36px;padding:0}@media (pointer:coarse){.btn{min-height:44px}.btn.icon{width:44px}}.top{align-items:center;gap:var(--s3);padding:var(--s2) var(--s4);border-bottom:1px solid var(--rule);background:var(--panel);min-height:52px;display:flex}.wordmark{font-variation-settings:"MONO" .5;letter-spacing:-.02em;font-weight:860;font-size:var(--t-lg);color:var(--ink);margin-right:auto;text-decoration:none}.top .btn{min-height:36px}@media (pointer:coarse){.top .btn{min-height:44px}}.landing{display:grid}.hero{min-height:min(86dvh,820px);padding:var(--s6) var(--s5) var(--s5);gap:var(--s4);grid-template-rows:auto 1fr auto;display:grid;position:relative}.hero h1{font-variation-settings:"MONO" .5;letter-spacing:-.02em;font-weight:860;font-size:var(--t-hero);max-width:14ch;line-height:.98}.hero .pitch{max-width:56ch;color:var(--ink-2);font-size:var(--t-lg);margin-top:var(--s3)}.hero-garden{border:1px solid var(--rule);border-radius:var(--r-panel);background:var(--ground);grid-template-columns:auto minmax(0,1fr);min-height:340px;display:grid;overflow:hidden}.hero-garden .cv{min-width:0;position:relative}.hero-garden canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.hero-row{gap:var(--s3);flex-wrap:wrap;align-items:end;display:flex}.hero-row label{gap:var(--s1);font-size:var(--t-sm);color:var(--ink-2);flex:280px;display:grid}.hero-row input{border-radius:var(--r-field);border:1px solid var(--rule-strong);background:var(--panel);height:44px;padding:0 var(--s3);font-variation-settings:"MONO" 1;font-size:var(--t-base)}.hero-grammar{font-variation-settings:"MONO" 1;font-size:var(--t-xs);color:var(--ink-2);background:color-mix(in srgb, var(--panel) 82%, transparent);border:1px solid var(--rule);padding:var(--s3);white-space:pre;background:var(--panel);border-width:0 1px 0 0;margin:0;overflow:auto}.how{padding:var(--s7) var(--s5);border-top:1px solid var(--rule);background:var(--panel)}.how h2{font-size:var(--t-2xl);letter-spacing:-.01em;margin-bottom:var(--s4);font-weight:760}.how ul{gap:var(--s4);max-width:70ch;margin:0;padding:0;list-style:none;display:grid}.how li strong{font-size:var(--t-lg);display:block}.how li span{color:var(--ink-2)}footer.foot{padding:var(--s5);border-top:1px solid var(--rule);color:var(--ink-2);font-size:var(--t-sm)}.bench{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(300px,34%) minmax(0,1fr);gap:0;height:calc(100dvh - 53px);min-height:520px;display:grid}.col-left{border-right:1px solid var(--rule);grid-template-rows:minmax(0,3fr) minmax(0,2fr);min-width:0;display:grid}.pane{background:var(--panel);flex-direction:column;min-width:0;min-height:0;display:flex}.pane+.pane{border-top:1px solid var(--rule)}.pane-head{align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);border-bottom:1px solid var(--rule);font-size:var(--t-md);flex:none;font-weight:600;display:flex}.pane-head .grow{flex:1}.pane-head .meta{color:var(--ink-2);font-weight:400;font-size:var(--t-sm);font-variation-settings:"MONO" 1}.editor{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:auto 1fr;min-height:0;display:grid;position:relative;overflow:hidden}.editor .gutter{padding:var(--s2) var(--s2) var(--s2) var(--s3);text-align:right;color:var(--ink-2);font:.9375rem/1.6 var(--sans);font-variation-settings:"MONO" 1;-webkit-user-select:none;user-select:none;border-right:1px solid var(--rule);background:var(--panel);margin:0;position:static;inset:auto;overflow:hidden}.editor .stack{min-width:0;position:relative;overflow:hidden}.editor pre,.editor textarea{padding:var(--s2) var(--s3);font:.9375rem/1.6 var(--sans);font-variation-settings:"MONO" 1;tab-size:2;white-space:pre;letter-spacing:0;word-spacing:0;border:0;margin:0;position:absolute;inset:0;overflow:auto}.editor pre{pointer-events:none;color:var(--ink);overflow:hidden}.editor textarea{color:#0000;caret-color:var(--tip);resize:none;-webkit-text-fill-color:transparent;background:0 0;outline:none}.editor.plain textarea{color:var(--ink);-webkit-text-fill-color:var(--ink);position:absolute}.editor:focus-within{box-shadow:inset 0 0 0 2px var(--tip)}.tk-rule{color:var(--tip);font-weight:700}.tk-lit{color:var(--myco)}.tk-class{color:var(--root)}.tk-op{color:var(--ink-2)}.tk-com{color:var(--wilt);font-style:italic}.tk-ref{color:var(--ink)}.lint-wave{-webkit-text-decoration:underline wavy var(--danger);text-decoration:underline wavy var(--danger);text-underline-offset:3px}.lint-wave.warn{-webkit-text-decoration-color:var(--myco);text-decoration-color:var(--myco);text-decoration-style:dotted}.hl-rule{background:color-mix(in srgb, var(--tip) 28%, transparent);border-radius:2px}.lints{border-top:1px solid var(--rule);max-height:96px;font-size:var(--t-sm);flex:none;margin:0;padding:0;list-style:none;overflow:auto}.lints li{padding:var(--s1) var(--s3);gap:var(--s2);display:flex}.lints li button{all:unset;cursor:pointer;gap:var(--s2);width:100%;display:flex}.lints li button:focus-visible{outline:2px solid var(--tip)}.lints .sev{font-weight:700}.lints .err .sev{color:var(--danger)}.lints .warn .sev{color:var(--myco)}.note{padding:var(--s1) var(--s3);font-size:var(--t-xs);color:var(--ink-2);flex:none}.linkinfo{padding:var(--s1) var(--s3);font-size:var(--t-sm);color:var(--ink-2);font-variation-settings:"MONO" 1;flex:none;min-height:1.6em}.col-right{grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0;display:grid;position:relative}.garden-wrap{background:var(--ground);grid-template-rows:auto minmax(0,1fr) auto;min-height:0;display:grid;position:relative}.garden-bar{gap:var(--s2);padding:var(--s2) var(--s3);border-bottom:1px solid var(--rule);background:var(--panel);flex-wrap:wrap;align-items:center;display:flex}.garden-bar .status{font-size:var(--t-sm);color:var(--ink-2);font-variation-settings:"MONO" 1;margin-left:auto}.status.ok{color:var(--good)}.status.bad{color:var(--danger)}.canvas-box{touch-action:none;min-height:160px;position:relative;overflow:hidden}.canvas-box canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block;position:absolute;inset:0}.soil{border-top:1px solid var(--rule);background:var(--panel);height:44px;position:relative}.soil canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.transport{gap:var(--s2);padding:var(--s2) var(--s3) calc(var(--s2) + env(safe-area-inset-bottom));border-top:1px solid var(--rule);background:var(--panel);display:grid}.transport .row{gap:var(--s1);flex-wrap:wrap;align-items:center;display:flex}.transport input[type=range]{accent-color:var(--tip);flex:140px;min-height:24px}.transport select{border-radius:var(--r-field);border:1px solid var(--rule-strong);background:var(--panel);height:36px;padding:0 var(--s2)}.transport .pos{font-size:var(--t-sm);color:var(--ink-2);font-variation-settings:"MONO" 1;text-align:right;min-width:9ch}.chart{width:100%;height:44px;display:block}.state{text-align:center;place-content:center;justify-items:center;gap:var(--s3);padding:var(--s5);background:color-mix(in srgb, var(--ground) 90%, transparent);display:grid;position:absolute;inset:0}.state h2{font-size:var(--t-xl);font-weight:760}.state p{color:var(--ink-2);max-width:52ch}.state .acts{gap:var(--s2);flex-wrap:wrap;justify-content:center;display:flex}.banner{padding:var(--s2) var(--s3);background:var(--panel-2);border-bottom:1px solid var(--rule);font-size:var(--t-sm);gap:var(--s3);align-items:center;display:flex}.banner.err{border-left:4px solid var(--danger)}.sheet{z-index:5;background:var(--panel);border:1px solid var(--rule);box-shadow:var(--shadow);transition:transform var(--panel-t) var(--ease), opacity var(--panel-t) var(--ease);flex-direction:column;display:flex;position:absolute}.sheet.outline{right:var(--s3);top:var(--s3);bottom:var(--s3);border-radius:var(--r-panel);width:min(340px,90%)}.sheet[data-open=false]{opacity:0;pointer-events:none;visibility:hidden;transform:translate(24px)}.sheet h2{font-size:var(--t-md);padding:var(--s3);border-bottom:1px solid var(--rule)}.tree{padding:var(--s2);font-size:var(--t-sm);flex:1;margin:0;list-style:none;overflow:auto}.tree [role=group]{padding-left:var(--s4);margin:0;list-style:none}.tree [role=treeitem]{outline:none}.tree .row{gap:var(--s2);padding:6px var(--s2);border-radius:var(--r-field);cursor:pointer;align-items:center;min-height:32px;display:flex}.tree [aria-selected=true]>.row{background:var(--panel-2);box-shadow:inset 2px 0 0 var(--tip)}.tree [role=treeitem]:focus-visible>.row{outline:2px solid var(--tip)}.tree .oc{font-variation-settings:"MONO" 1;color:var(--ink-2);white-space:nowrap;margin-left:auto}.tree .nm{font-weight:600}.tree .sp{font-variation-settings:"MONO" 1;color:var(--ink-2);text-overflow:ellipsis;white-space:pre;max-width:14ch;overflow:hidden}.menu{right:var(--s3);z-index:20;background:var(--panel);border:1px solid var(--rule);border-radius:var(--r-panel);box-shadow:var(--shadow);padding:var(--s2);width:min(420px,100vw - 24px);max-height:80dvh;position:absolute;top:52px;overflow:auto}.packets{gap:var(--s2);margin:0;padding:0;list-style:none;display:grid}.packet{gap:var(--s3);text-align:left;border:1px solid var(--rule);border-radius:var(--r-panel);width:100%;padding:var(--s3);cursor:pointer;min-height:64px;transition:transform var(--hover) var(--ease);background:0 0;grid-template-columns:44px 1fr;align-items:center;display:grid}.packet:hover{background:var(--panel-2);transform:translateY(-1px)}.packet svg{width:44px;height:44px}.packet b{display:block}.packet small{color:var(--ink-2)}.dialog-back{z-index:40;padding:var(--s4);background:#00000080;place-items:center;display:grid;position:fixed;inset:0}.dialog{background:var(--panel);border:1px solid var(--rule);border-radius:var(--r-sheet);box-shadow:var(--shadow);padding:var(--s5);gap:var(--s3);max-width:460px;display:grid}.dialog h2{font-size:var(--t-xl);font-weight:760}.dialog .acts{gap:var(--s2);flex-wrap:wrap;justify-content:flex-end;display:flex}.coach{z-index:45;right:var(--s4);bottom:var(--s4);background:var(--panel);border:1px solid var(--tip);border-radius:var(--r-panel);width:min(360px,100vw - 32px);box-shadow:var(--shadow);padding:var(--s4);gap:var(--s2);display:grid;position:fixed}.coach h2{font-size:var(--t-lg)}.coach p{color:var(--ink-2);font-size:var(--t-md)}.coach .acts{gap:var(--s2);margin-top:var(--s2);justify-content:space-between;align-items:center;display:flex}.coach .dots{font-variation-settings:"MONO" 1;color:var(--ink-2);font-size:var(--t-sm)}.tabs{display:none}@media (max-width:760px){.btn{min-height:44px}.btn.icon{width:44px}.top .btn,.transport select,.pane-head select,.transport input[type=range]{min-height:44px}.wordmark{align-items:center;min-height:44px;display:inline-flex}.hero-row input,.tree .row{min-height:44px}.lints li button{align-items:center;min-height:44px}.how a,.foot a{min-height:44px;line-height:44px;display:inline-block}.hero{padding:var(--s5) var(--s4);min-height:0}.hero-garden{grid-template-rows:auto 280px;grid-template-columns:1fr;min-height:300px}.hero-grammar{border-width:0 0 1px;font-size:.6875rem}.bench{height:auto;display:block}.tabs{border-bottom:1px solid var(--rule);background:var(--panel);z-index:8;display:flex;position:sticky;top:0}.tabs button{cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;flex:1;min-height:44px;font-weight:600}.tabs button[aria-selected=true]{border-bottom-color:var(--tip)}.col-left{border-right:0;display:block}.col-left .pane,.col-right{height:calc(100dvh - 98px)}.col-right{display:grid}.bench[data-tab=grammar] .pane-input,.bench[data-tab=grammar] .col-right,.bench[data-tab=input] .pane-grammar,.bench[data-tab=input] .col-right,.bench[data-tab=garden] .col-left{display:none}.wordmark{white-space:nowrap;font-size:var(--t-md)}.sheet.outline{border-radius:var(--r-sheet) var(--r-sheet) 0 0;width:auto;height:55%;inset:auto 0 0}.sheet[data-open=false]{transform:translateY(24px)}.transport{position:sticky;bottom:0}.garden-bar .btn .lbl{display:none}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:0s!important;animation:none!important}}
