.brayd{--attn:var(--amber);--fail:#ec8b72;--ok:var(--green);--ok-soft:var(--green-soft);--wire:#777781;--canvas:var(--panel);--gap:24px;color:var(--text);font-size:16px;line-height:1.55}.brayd .visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.b-top{align-items:center;gap:32px;padding-block:26px 0;display:flex}.wordmark{align-items:baseline;gap:8px;margin-right:auto;padding-block:6px;text-decoration:none;display:inline-flex}.wordmark .y{vertical-align:-.143em;width:.562em;height:.633em;margin-inline:.01em .03em;display:inline-block}.wordmark .y-under{fill:var(--ok)}.wordmark .y-over{fill:var(--walls)}.wordmark .word{color:var(--walls);letter-spacing:-.03em;font-size:2.125rem;font-weight:600;line-height:1}.wordmark .by{color:var(--muted);font-size:.875rem;line-height:1}.b-top nav{gap:30px;display:flex}.b-top nav a{color:var(--muted);padding:10px 0;font-size:.875rem;text-decoration:none}.b-top nav a:hover,.b-top nav a[aria-current=page]{color:var(--walls)}.brayd .b-title{max-width:22ch;color:var(--walls);letter-spacing:-.035em;text-wrap:balance;font-size:52px;font-weight:600;line-height:1.05}.brayd .b-intro{max-width:40rem;color:var(--text);text-wrap:pretty;margin-top:16px;font-size:16px}.brayd .b-more{color:var(--walls);align-items:center;gap:8px;margin-top:20px;padding-block:12px;font-size:16px;font-weight:600;text-decoration:none;display:inline-flex}.brayd .b-more:hover{text-underline-offset:4px;text-decoration:underline}.brayd code{font-family:var(--mono);overflow-wrap:anywhere;font-size:14px;font-weight:400}.brayd .code{font-family:var(--mono);overflow-wrap:anywhere;gap:4px;font-size:16px;font-weight:400;line-height:1.5;display:grid}.brayd .l{color:var(--text-strong);white-space:pre-wrap;overflow-wrap:anywhere}.brayd .i1{padding-left:2ch}.brayd .l.add{color:var(--ok-soft)}.brayd .brand{color:var(--walls);align-items:center;gap:8px;display:flex}.brayd .b-mark{flex:none;width:20px;height:20px}.brayd .button-large{font-size:16px}.weave{z-index:-1;pointer-events:none;width:2400px;height:1000px;position:absolute;top:46%;left:50%;translate:-50% -50%;mask-image:linear-gradient(90deg,#0000 6%,#000 30% 70%,#0000 94%),linear-gradient(#0000,#000 22% 78%,#0000);mask-composite:intersect}.weave svg{fill:none;width:100%;height:100%;display:block;overflow:visible}.weave .depth{stop-color:#ece6da2b}.weave .depth.main{stop-color:#3bc48d6b}.weave .strand path{stroke-width:1.2px}.weave .strand .casing{stroke:var(--bg);stroke-width:46px}.weave-light{fill:none;stroke:#6ee7b7f2;stroke-width:3px;stroke-linecap:round;stroke-dasharray:.05 1;stroke-dashoffset:.05px;opacity:0;filter:drop-shadow(0 0 8px #3bc48de6)}.sym{flex:none;width:16px;height:16px;display:inline-block;position:relative}.sym-warn{border:2px solid var(--attn);border-radius:50%}.sym-knot{background:var(--attn);width:12px;height:12px;margin:2px;transform:rotate(45deg)}.loom-map{min-width:0;height:288px;position:relative}.loom-map>svg{fill:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.loom-map .ln-main{stroke:var(--ok);stroke-width:2px}.loom-map .ln-strand{stroke:var(--text);stroke-width:2px}.loom-map .ln-quiet{stroke:var(--wire);stroke-width:1.5px}.loom-map .ln-clash{stroke:var(--attn);stroke-width:2px;stroke-dasharray:4 4}.loom-map .ln-pull{stroke:var(--ok);stroke-width:1.5px;stroke-dasharray:3 5}.loom-map .context path{stroke:var(--wire);stroke-width:1px}.map-label{background:var(--bg);color:var(--text);white-space:nowrap;padding-right:8px;font-size:14px;line-height:20px;position:absolute}.map-label b{color:var(--text-strong);font-family:var(--mono);margin-right:6px;font-weight:400}.main-label{color:var(--ok-soft);font-family:var(--mono);font-weight:400}.r1{top:14px;left:0}.r2{top:86px;left:5%}.r3{top:158px;left:5%}.r4{color:var(--muted);top:230px;left:17.5%}.start{border:2px solid var(--wire);background:var(--bg);border-radius:50%;width:12px;height:12px;position:absolute;transform:translate(-50%,-50%)}.s2{top:122px;left:5%}.s3{top:194px;left:11.25%}.s4{top:266px;left:17.5%}.pin{border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:14px;font-weight:600;line-height:1;display:inline-grid}.pin.ok{background:var(--ok);color:var(--bg)}.pin.attn{border:2px solid var(--attn);background:var(--bg);color:var(--attn)}.pin.knot{background:var(--attn);width:24px;height:24px;color:var(--bg);border-radius:0;margin:3px;transform:rotate(45deg)}.pin-n{font-style:normal}.pin.knot .pin-n{transform:rotate(-45deg)}.loom-map .pin{box-shadow:0 0 0 5px var(--bg);margin:0;position:absolute;transform:translate(-50%,-50%)}.loom-map .pin.knot{transform:translate(-50%,-50%)rotate(45deg)}.p1{top:158px;left:31.25%}.p2{top:50px;left:60%}.p3{top:194px;left:70%}.p4{top:50px;left:90%}.loom .loom-map{margin:24px 32px 8px}.loom .map-label,.loom .start,.loom .pin.attn{background:var(--canvas)}.loom .loom-map .pin{box-shadow:0 0 0 5px var(--canvas)}.pin-label{color:var(--text);white-space:nowrap;font-size:14px;line-height:20px;position:absolute}.pl1{color:var(--attn);top:148px;left:calc(31.25% + 24px)}.pl2{top:6px;left:60%;transform:translate(-50%)}.pl3{color:var(--attn);top:212px;left:70%;transform:translate(-50%)}.pl4{top:6px;left:90%;transform:translate(-50%)}.more{border-bottom:1px solid var(--line-strong)}.more>summary{color:var(--text-strong);cursor:pointer;padding-block:16px;font-size:16px;font-weight:600}.more>summary:hover{color:var(--walls)}.more-body{max-width:46rem;color:var(--text);gap:12px;padding-bottom:20px;font-size:16px;display:grid}@media (width>=900px) and (prefers-reduced-motion:no-preference){.loom.armed:not(.playing) .draw-clip{width:0}.loom.armed:not(.playing) .loom-map .pin{scale:0}.loom.armed:not(.playing) .signal,.loom.armed:not(.playing) .pin-label{opacity:0}.loom.playing .clip-main{animation:1.1s cubic-bezier(.22,1,.36,1) both loom-main}.loom.playing .clip-ana{animation:1.58s cubic-bezier(.22,1,.36,1) .12s both loom-ana}.loom.playing .clip-ben{animation:2.58s cubic-bezier(.22,1,.36,1) .32s both loom-ben}.loom.playing .clip-cleo{animation:1.1s cubic-bezier(.22,1,.36,1) .48s both loom-cleo}.loom.playing .signal{animation:.25s ease-out both loom-signal}.loom.playing .signal-clash{animation-delay:.65s}.loom.playing .signal-pull{animation-delay:2.05s}.loom.playing .loom-map .pin{animation:.55s cubic-bezier(.16,1,.3,1) both loom-pin}.loom.playing .loom-map .p1{animation-delay:.75s}.loom.playing .loom-map .p2{animation-delay:1.7s}.loom.playing .loom-map .p3{animation-delay:2.3s}.loom.playing .loom-map .p4{animation-delay:2.9s}.loom.playing .pin-label{animation:.3s ease-out both loom-signal}.loom.playing .pl1{animation-delay:.85s}.loom.playing .pl2{animation-delay:1.8s}.loom.playing .pl3{animation-delay:2.4s}.loom.playing .pl4{animation-delay:3s}.loom.playing .events>li{animation:.55s ease-out both loom-event}.loom.playing .events>.e1{animation-delay:.75s}.loom.playing .events>.e2{animation-delay:1.7s}.loom.playing .events>.e3{animation-delay:2.3s}.loom.playing .events>.e4{animation-delay:2.9s}.loom-stage:has(.loom.playing) .weave-light{animation:3.4s cubic-bezier(.45,0,.25,1) both weave-run}@keyframes weave-run{0%{opacity:0;stroke-dashoffset:.3px}8%{opacity:1}88%{opacity:1}to{opacity:0;stroke-dashoffset:-.75px}}@keyframes loom-main{0%{width:0}to{width:800px}}@keyframes loom-ana{0%{width:0}to{width:442px}}@keyframes loom-ben{0%{width:0}to{width:632px}}@keyframes loom-cleo{0%{width:0}to{width:660px}}@keyframes loom-pin{0%{scale:0}to{scale:1}}@keyframes loom-signal{0%{opacity:0}to{opacity:1}}@keyframes loom-event{0%{background:0 0;border-left-color:#0000}to{background:var(--panel-raised);border-left-color:currentColor}}}@media (width<=899px){.brayd .b-title{font-size:44px}.loom .loom-map{margin-inline:20px}.pin-label{display:none}}@media (width<=640px){.weave{width:1600px;height:667px}.brayd .b-title{font-size:36px}.brayd .b-intro{margin-top:12px}.loom .loom-map{margin-inline:16px}.map-label b{margin-right:4px}.r2,.r3,.r4{left:0}.wide-only{display:none}.loom-map:not(.cropped) .p1{top:194px}.b-foot{margin-top:56px}}.b-foot{border-top:1px solid var(--line);align-items:start;gap:18px;margin-top:80px;padding-block:30px 40px;font-size:.875rem;display:flex}.b-foot-mark{flex:none;width:28px}.b-foot-text{gap:6px;display:grid}.b-foot .muted{color:var(--muted)}@media (width<=640px){.brayd{--gap:16px}.b-top{gap:16px;padding-top:18px}.b-top nav{display:none}.wordmark .word{font-size:1.625rem}.b-top .button{min-height:40px;padding:0 14px;font-size:.875rem}}
