@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url("/assets/jetbrains-mono-latin-400-normal.3OOWLGQ2.woff2") format("woff2"),url("/assets/jetbrains-mono-latin-400-normal.WDD34GPP.woff") format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url("/assets/jetbrains-mono-latin-600-normal.5PVSJ4PH.woff2") format("woff2"),url("/assets/jetbrains-mono-latin-600-normal.DJM6S6N3.woff") format("woff")}.loft-yard{--paper: #ffffff;--mist: #e5f6ff;--ink: #0e141d;--body: #424b56;--muted: #5c646f;--rule: #e4e9ee;--action: #14488f;--code-bg: #f1f5f9;--tint-ok: #e3f3f1;--tint-wait: #fbefe6;--teal: #0a756c;--fix: #c8336f;--on-fix: #ffffff;--c-task: #468de5;--c-queued: #c9dcf5;--c-loft: #19a67a;--c-sub: #8b57be;--c-wait: #e8673a;--c-work: #aab2ba;--measure: 748px;--display: "Inter", "Inter Fallback", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){.loft-yard{--paper: #0c1117;--mist: #132233;--ink: #e8eef4;--body: #b8c2cc;--muted: #95a0ab;--rule: #222c37;--action: #8ec5f2;--code-bg: #131a22;--tint-ok: #0f2e2a;--tint-wait: #33210f;--teal: #5ed3c0;--fix: #f07aa6;--on-fix: #0c1117;--c-task: #6fa7eb;--c-queued: #23364d;--c-loft: #4fd1a5;--c-sub: #c3a2ec;--c-wait: #f2a36e;--c-work: #4a5561}}.loft-yard *{box-sizing:border-box}.loft-yard{background:var(--paper);color:var(--body);font-family:var(--display);font-size:17px;line-height:1.6;padding:40px 40px 80px;max-width:1280px;margin:0 auto;display:grid;gap:44px}@media(max-width:900px){.loft-yard{padding-inline:20px}}.loft-yard,.loft-yard :where(*){grid-template-columns:minmax(0,1fr)}.loft-yard>*{max-width:var(--measure);min-width:0}.loft-yard h1,.loft-yard h2{color:var(--ink);text-wrap:balance;margin:0;font-weight:700;letter-spacing:-.03em;word-spacing:.04em}.loft-yard h1{font-size:clamp(34px,3.75vw,52px);line-height:1.06;max-width:22ch;margin-top:10px}.loft-yard h2{font-size:30px;line-height:1.15}.loft-yard p{margin:0}.loft-yard section{display:grid;gap:18px}.loft-yard a{color:var(--action);text-decoration-thickness:1.5px;text-underline-offset:3px}.loft-yard a:focus-visible{outline:2px solid var(--action);outline-offset:2px}.loft-yard code{font-family:var(--mono);font-size:.86em;background:var(--mist);padding:1px 5px;overflow-wrap:anywhere}.loft-yard pre{margin:0;padding:14px 16px;background:var(--code-bg);border:1px solid var(--rule);border-left:3px solid var(--action);overflow-x:auto;font-size:.86rem;line-height:1.6}.loft-yard pre code{background:none;padding:0;font-size:inherit;overflow-wrap:normal;white-space:pre;color:var(--ink)}.loft-yard .eyebrow{font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.loft-yard .deck{max-width:36em;margin-top:20px;font-size:19px;line-height:1.55;text-wrap:pretty}.loft-yard [id]{scroll-margin-top:96px}.loft-yard .toc ul{margin:10px 0 0;padding-left:1.4em;display:grid;gap:6px}.loft-yard figure{margin:0;border:1px solid var(--rule);background:var(--paper);padding:20px;display:grid;gap:14px;min-width:0}.loft-yard figcaption{font-size:.9rem;color:var(--muted)}.loft-yard .fig-title{font-weight:600;color:var(--ink);font-size:1rem}.loft-yard .files,.loft-yard .files ul{list-style:none;margin:0;padding:0}.loft-yard .files ul{margin:10px 0 0 14px;padding-left:16px;border-left:2px solid var(--rule);display:grid;gap:10px}.loft-yard .files li li{display:grid;gap:2px;font-size:.92rem}.loft-yard .files li li code{justify-self:start;color:var(--ink);font-weight:600}.loft-yard .files .rec-yard code{background:var(--mist);color:var(--ink)}.loft-yard .files .other code{font-weight:400;background:none;color:var(--muted)}.loft-yard .kinds{margin:0;display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:10px 20px;border-top:1px solid var(--rule);padding-top:14px}.loft-yard .kinds dt{color:var(--ink)}.loft-yard .kinds dd{margin:0}@media(max-width:640px){.loft-yard .kinds{grid-template-columns:minmax(0,1fr);gap:2px 0}.loft-yard .kinds dd{margin-bottom:10px}}.loft-yard .lanes-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.loft-yard .lanes{counter-reset:step;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:32px;row-gap:10px;position:relative}.loft-yard .lanes:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--rule)}.loft-yard .lanes li{counter-increment:step;position:relative;display:grid;grid-template-columns:1.6rem minmax(0,1fr);gap:8px;align-items:start;border:1px solid var(--rule);background:var(--paper);padding:9px 12px;font-size:.9rem;line-height:1.4;color:var(--ink)}.loft-yard .lanes li:before{content:counter(step);font-family:var(--mono);font-weight:600;color:var(--action)}.loft-yard .lanes .person{grid-column:1;background:var(--mist)}.loft-yard .lanes .agent{grid-column:2}.loft-yard .lanes li:nth-child(1){grid-row:1}.loft-yard .lanes li:nth-child(2){grid-row:2}.loft-yard .lanes li:nth-child(3){grid-row:3}.loft-yard .lanes li:nth-child(4){grid-row:4}.loft-yard .lanes li:nth-child(5){grid-row:5}.loft-yard .lanes li:nth-child(6){grid-row:6}.loft-yard .lanes li:nth-child(7){grid-row:7}.loft-yard .lanes li:nth-child(8){grid-row:8}@media(max-width:600px){.loft-yard .lanes-head{display:none}.loft-yard .lanes{grid-template-columns:minmax(0,1fr)}.loft-yard .lanes:before{left:14px}.loft-yard .lanes .person,.loft-yard .lanes .agent{grid-column:1}.loft-yard .lanes .person{margin-right:24px}.loft-yard .lanes .agent{margin-left:24px}}.loft-yard .shot{padding:16px}.loft-yard .yl{display:grid;gap:12px;font-size:.88rem;line-height:1.45;min-width:0}.loft-yard .yl p{margin:0}.loft-yard .yl-where{display:flex;flex-wrap:wrap;gap:10px;font-family:var(--mono);font-size:.78rem;color:var(--muted)}.loft-yard .yl-branch{color:var(--action)}.loft-yard .yl-title{font-size:1.7rem;font-weight:700;letter-spacing:-.02em;line-height:1.1;color:var(--ink);overflow-wrap:anywhere}.loft-yard .yl-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}.loft-yard .yl-toggle{display:inline-flex;border:1px solid var(--rule)}.loft-yard .yl-toggle span{padding:3px 12px;color:var(--body)}.loft-yard .yl-toggle .is-on{background:var(--ink);color:var(--paper)}.loft-yard .yl-changed,.loft-yard .yl-new{color:var(--teal);font-weight:600;font-size:.82rem}.loft-yard .yl-rail{list-style:none;margin:0;padding:0 0 0 24px;display:grid;gap:10px;position:relative}.loft-yard .yl-rail:before{content:"";position:absolute;left:6px;top:8px;bottom:0;width:2px;background:var(--rule)}.loft-yard .yl-stage{position:relative;border:1px solid var(--rule);background:var(--paper);padding:12px 14px;display:grid;gap:8px;min-width:0}.loft-yard .yl-stage:before{content:"";position:absolute;left:-24px;top:14px;width:14px;height:14px;border-radius:50%;background:var(--teal)}.loft-yard .yl-stage:has(.st-active):before{background:var(--action)}.loft-yard .yl-stage.is-planned:before{background:var(--paper);border:2px solid var(--muted)}.loft-yard .yl-stage.is-closed{padding-block:9px}.loft-yard .yl-head,.loft-yard .yl-btitle{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;color:var(--ink)}.loft-yard .yl-head b{font-size:1rem;font-weight:600}.loft-yard .yl-btitle b{font-weight:600}.loft-yard .yl-stage.is-planned .yl-head b{color:var(--muted);font-weight:500}.loft-yard .yl-meta{margin-left:auto;display:inline-flex;gap:12px;font-size:.8rem;color:var(--muted)}.loft-yard .yl-pill,.loft-yard .yl-fix{font-size:.74rem;line-height:1.5;padding:0 7px;border:1px solid var(--muted);color:var(--muted)}.loft-yard .yl-pill.st-done{border-color:var(--teal);color:var(--teal)}.loft-yard .yl-pill.st-active{border-color:var(--action);background:var(--action);color:var(--paper)}.loft-yard .yl-fix{border-color:var(--fix);background:var(--fix);color:var(--on-fix);font-weight:600}.loft-yard .yl-goal{color:var(--body)}.loft-yard .yl-time,.loft-yard .yl-by,.loft-yard .yl-small{font-size:.8rem;color:var(--muted)}.loft-yard .yl-by b,.loft-yard .yl-ok{color:var(--teal);font-weight:600}.loft-yard .yl-ok{font-size:.8rem}.loft-yard .yl-block{border:1px solid var(--teal);padding:10px 12px;display:grid;gap:6px;min-width:0}.loft-yard .yl-kind{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.loft-yard .yl-sq:before{content:"";display:inline-block;width:9px;height:9px;margin-right:6px;background:var(--muted)}.loft-yard .yl-dec{border-left:3px solid var(--teal);background:var(--tint-ok);padding:6px 10px;color:var(--ink)}.loft-yard .yl-dec .yl-kind{display:block}.loft-yard .yl-opts{list-style:none;margin:0;padding:0;display:grid;gap:6px}.loft-yard .yl-opts li{border:1px solid var(--rule);padding:6px 10px;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}.loft-yard .yl-opts li span:last-child{flex-basis:100%;color:var(--muted);font-size:.82rem}.loft-yard .yl-opts .chosen{border-color:var(--ink)}.loft-yard .yl-opts b{color:var(--ink);font-weight:600}.loft-yard .yl-rec{font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--action)}.loft-yard .yl-ver{display:flex;flex-wrap:wrap;gap:2px 14px;font-size:.78rem;color:var(--muted)}.loft-yard .yl-ver span{display:inline}.loft-yard .yl-md{display:grid;gap:6px}.loft-yard .yl-md h3{margin:6px 0 0;font-size:.95rem;font-weight:600;color:var(--ink)}.loft-yard .yl-md ol{margin:0;padding-left:1.7em;display:grid;gap:6px}.loft-yard .yl-md li::marker{font-family:var(--mono);font-weight:600;color:var(--action)}.loft-yard .yl-md b{color:var(--ink)}.loft-yard .yl-tree{overflow-x:auto;border:1px solid var(--rule);padding:12px 8px}.loft-yard .t,.loft-yard .t ul{display:flex;justify-content:center;margin:0;padding:0;list-style:none}.loft-yard .t{width:max-content;min-width:100%}.loft-yard .t ul{padding-top:14px;position:relative}.loft-yard .t ul:before{content:"";position:absolute;top:0;left:50%;height:14px;border-left:1px solid var(--muted)}.loft-yard .t li{display:flex;flex-direction:column;align-items:center;position:relative;padding:14px 3px 0}.loft-yard .t>li{padding-top:0}.loft-yard .t li:before,.loft-yard .t li:after{content:"";position:absolute;top:0;right:50%;width:50%;height:14px;border-top:1px solid var(--muted)}.loft-yard .t li:after{right:auto;left:50%;border-left:1px solid var(--muted)}.loft-yard .t li:first-child:before,.loft-yard .t li:last-child:after{border:0}.loft-yard .t li:last-child:before{border-right:1px solid var(--muted)}.loft-yard .t li:only-child:before{display:none}.loft-yard .t li:only-child:after{border-top:0}.loft-yard .t>li:before,.loft-yard .t>li:after{display:none}.loft-yard .n{display:block;width:8.5rem;padding:4px 6px;border:1px solid var(--muted);background:var(--paper);color:var(--ink);font-size:.62rem;line-height:1.3;text-align:center}.loft-yard .n i{display:block;font-style:normal;color:var(--muted)}.loft-yard .n-ac{width:7.5rem;border-radius:14px}.loft-yard .n-add{background:var(--tint-ok);border-color:var(--teal)}.loft-yard .n-chg{background:var(--tint-wait);border-color:var(--c-wait)}.loft-yard .gs{display:flex;gap:3px;height:10px}.loft-yard .gs i{display:block}.loft-yard .f4{flex:4}.loft-yard .f8{flex:8}.loft-yard .f11{flex:11}.loft-yard .f23{flex:23}.loft-yard .gs-key{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:.8rem}.loft-yard .gs-key li{display:inline-flex;align-items:center;gap:6px}.loft-yard .gs-total{color:var(--muted)}.loft-yard .k{display:inline-block;width:10px;height:10px}.loft-yard :is(.gs-loft,.g-loft){background:var(--c-loft)}.loft-yard :is(.gs-sub,.g-sub){background:var(--c-sub)}.loft-yard :is(.gs-task,.g-task){background:var(--c-task)}.loft-yard :is(.gs-wait,.g-wait){background:var(--c-wait)}.loft-yard :is(.gs-work,.g-work){background:var(--c-work)}.loft-yard .gc-scroll{overflow-x:auto;border:1px solid var(--rule)}.loft-yard .gc{min-width:680px;display:grid}.loft-yard .gc-row{display:grid;grid-template-columns:15rem minmax(0,1fr);min-height:30px;border-bottom:1px solid var(--rule)}.loft-yard .gc-row:last-child,.loft-yard .gc-sub{border-bottom:0}.loft-yard .gc-sub{min-height:22px}.loft-yard .gc-lbl{display:flex;align-items:center;padding:3px 10px;border-right:1px solid var(--rule);font-size:.8rem;color:var(--body)}.loft-yard .gc-lbl b{color:var(--ink);font-weight:600}.loft-yard .gc-sub .gc-lbl{padding-left:24px;font-size:.76rem}.loft-yard .gc-sub .gc-fix{color:var(--fix)}.loft-yard .gc-track{padding-right:6px;display:grid;grid-template-columns:repeat(50,minmax(0,1fr));align-items:center;background:repeating-linear-gradient(to right,var(--rule) 0 1px,transparent 1px 20%)}.loft-yard .gc-track>*{grid-row:1;height:14px}.loft-yard .gc-tick,.loft-yard .gc-session{height:auto;padding-left:4px;font-size:.72rem;color:var(--muted);white-space:nowrap}.loft-yard .g-done,.loft-yard .g-queued{height:8px}.loft-yard .g-done{position:relative;background:var(--c-task)}.loft-yard .g-done:after{content:"";position:absolute;right:-4px;top:-1px;width:10px;height:10px;border-radius:50%;background:var(--action)}.loft-yard .g-queued{background:var(--c-queued)}.loft-yard .g-frame{height:20px;border:1px solid var(--rule);z-index:1}.loft-yard .g-dia{width:11px;height:11px;margin-left:-6px;justify-self:start;background:var(--ink);transform:rotate(45deg);z-index:2}.loft-yard .g-no{background:var(--paper);border:1px solid var(--rule)}.loft-yard .r0-10{grid-column:1 / 11}.loft-yard .r10-20{grid-column:11 / 21}.loft-yard .r20-30{grid-column:21 / 31}.loft-yard .r30-40{grid-column:31 / 41}.loft-yard .r40-50{grid-column:41 / 51}.loft-yard .r0-30{grid-column:1 / 31}.loft-yard .r0-3{grid-column:1 / 4}.loft-yard .r3-6{grid-column:4 / 7}.loft-yard .r6-12{grid-column:7 / 13}.loft-yard .r12-13{grid-column:13 / 14}.loft-yard .r13-17{grid-column:14 / 18}.loft-yard .r17-21{grid-column:18 / 22}.loft-yard .r21-22{grid-column:22 / 23}.loft-yard .r22-24{grid-column:23 / 25}.loft-yard .r24-27{grid-column:25 / 28}.loft-yard .r27-29{grid-column:28 / 30}.loft-yard .r29-31{grid-column:30 / 32}.loft-yard .r31-38{grid-column:32 / 39}.loft-yard .r38-39{grid-column:39 / 40}.loft-yard .r39-44{grid-column:40 / 45}.loft-yard .r44-45{grid-column:45 / 46}.loft-yard .r45-48{grid-column:46 / 49}.loft-yard .r48-50{grid-column:49 / 51}.loft-yard .r29-50{grid-column:30 / 51}.loft-yard .r31-44{grid-column:32 / 45}.loft-yard .r31-48{grid-column:32 / 49}.loft-yard .r38-44{grid-column:39 / 45}.loft-yard .r44-48{grid-column:45 / 49}.loft-yard .d17{grid-column:18 / 19}.loft-yard .d24{grid-column:25 / 26}.loft-yard .d29{grid-column:30 / 31}@media(max-width:640px){.loft-yard .yl-meta{margin-left:0}.loft-yard .yl-rail{padding-left:20px}.loft-yard .yl-stage:before{left:-20px}.loft-yard .gc{min-width:600px}.loft-yard .gc-row{grid-template-columns:10rem minmax(0,1fr)}}@media(max-width:520px){.loft-yard{font-size:16px}.loft-yard figure{padding:14px}.loft-yard .shot{padding:10px}.loft-yard .deck{font-size:17px}}@media(min-width:1180px){.loft-yard{grid-template-columns:minmax(0,var(--measure)) minmax(220px,300px);column-gap:56px}.loft-yard>*{grid-column:1}.loft-yard>.toc{grid-column:2;grid-row:1 / span 13;align-self:start;position:sticky;top:96px;max-height:calc(100vh - 120px);overflow-y:auto;border:1px solid var(--rule);background:var(--paper);padding:16px 18px;font-size:.86rem;line-height:1.4}}.loft-yard .toc a[aria-current]{color:var(--ink);font-weight:600;text-decoration-thickness:2px}
