.library{border-top:1px dashed var(--hairline)}.library .group-h:first-child{border-top:none;margin-top:-1px}.lib-cell .ty{font-family:var(--font-body);font-size:16px;letter-spacing:normal;text-transform:none;color:var(--ink);line-height:1.5}div.banner,footer,header,main{position:relative;z-index:1}.page-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;min-height:480px;position:relative}.lib-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px dashed var(--hairline);border-top:none}.lib-cell .go:after{content:" →";color:var(--accent)}@media (max-width:1000px){.page-hero-grid{grid-template-columns:1fr;min-height:0}.lib-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.sec-intro{margin:-16px 0 36px}.trail{padding-left:36px}}.flow{width:100%;max-width:520px}.flow svg{display:block;width:100%;height:auto;overflow:visible}.flow .card-bg{fill:#fff}.flow .out-bg{fill:rgba(103,3,153,.05)}.flow .card-edge{fill:none;stroke:var(--hairline);stroke-width:1}.flow .wire{fill:none;stroke:rgba(10,10,10,.32);stroke-width:1}.flow .sq{fill:var(--ink)}.flow .bend{fill:var(--bg);stroke:var(--accent);stroke-width:1}.flow .hub-box{fill:var(--accent)}.flow .hub-ring{fill:none;stroke:var(--accent);stroke-width:1}.flow .arrive{fill:none;stroke:var(--accent);stroke-width:1.5}.flow .skel{fill:rgba(103,3,153,.14);opacity:0}.flow .pin{fill:var(--ink)}.flow .pout{fill:var(--accent)}.flow text{font-family:IBM Plex Mono,monospace}.flow .t-col{font-size:9px;letter-spacing:.14em;fill:var(--ink-3)}.flow .t-lab{font-size:8.5px;letter-spacing:.1em;fill:var(--ink-2)}.flow .t-val{font-size:10.5px;fill:var(--ink)}.flow .t-sub{font-size:8.5px;letter-spacing:.06em;fill:var(--ink-2)}.flow .t-chip{font-size:8.5px;letter-spacing:.1em;font-weight:500}.flow .ok{fill:var(--ok)}.flow .acc{fill:var(--accent)}.flow .t-hub{font-family:Inter Tight,sans-serif;font-weight:600;font-size:19px;letter-spacing:-.02em;fill:#fff}.flow .fx-d{stroke-dasharray:1;animation:fx-draw .8s cubic-bezier(.6,.1,.3,1) var(--d,0s) both}.flow .fx-in{animation:fx-in .45s ease-out var(--d,0s) both}.flow .fx-fill{animation:fx-fill .4s ease-out var(--d,0s) both}.flow .skel{animation:fx-skel .85s ease-in-out var(--d,0s) both}.flow .hub-box{transform-box:fill-box;transform-origin:center;animation:fx-grow .6s cubic-bezier(.3,.7,.3,1.2) .05s both}.flow.paused *{animation-play-state:paused!important}.flow-cap{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-top:22px;padding-left:0}@media (prefers-reduced-motion:reduce){.flow .fx-out{display:none}}.flow .back{stroke:var(--accent);stroke-dasharray:1}.flow .back-tip{fill:var(--accent)}.flow .fx-out{animation:fx-in .45s ease-out var(--d,0s) both,fx-hide .3s ease-in 3.75s forwards}@keyframes fx-hide{to{opacity:0}}@keyframes fx-draw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes fx-in{0%{opacity:0}to{opacity:1}}@keyframes fx-fill{0%{fill:#fff}}@keyframes fx-skel{0%{opacity:0}25%{opacity:1}75%{opacity:1}to{opacity:0}}@keyframes fx-grow{0%{transform:scale(.05)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.flow .arrive,.flow .hub-ring,.flow .pkt{display:none}}.flow-m{display:none;font-family:IBM Plex Mono,monospace}.flow-m .fm-col{font-size:10.5px;letter-spacing:.14em;color:var(--ink-3);margin:0 0 8px}.flow-m .fm-group{border:1px solid var(--hairline);background:#fff}.flow-m .fm-group.out{background:rgba(103,3,153,.05)}.flow-m .fm-row{padding:10px 12px;border-top:1px solid var(--hairline);animation:fx-in .45s ease-out var(--d,0s) both}.flow-m .fm-row:first-child{border-top:none}.flow-m .fm-lab{font-size:10.5px;letter-spacing:.1em;color:var(--ink-2)}.flow-m .fm-line{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:4px}.flow-m .fm-val{font-size:13.5px;color:var(--ink)}.flow-m .fm-sub{letter-spacing:.06em;color:var(--ink-2)}.flow-m .fm-chip,.flow-m .fm-sub{font-size:10.5px;text-align:right}.flow-m .fm-chip{letter-spacing:.1em;font-weight:500}.flow-m .ok{color:var(--ok)}.flow-m .acc{color:var(--accent)}.flow-m .fm-link{position:relative;height:28px;margin:0 0 10px 29px;border-left:1px solid rgba(10,10,10,.32);transform-origin:top;animation:fm-grow .4s ease-out var(--d,0s) both}.flow-m .fm-link:after{content:"";position:absolute;left:-3px;top:0;width:5px;height:5px;background:var(--accent);animation:fm-pkt 1.15s cubic-bezier(.4,0,.6,1) calc(var(--d,0s) + .4s) infinite}.flow-m .fm-hub+.fm-link:after{animation-duration:1.5s}.flow-m .fm-col+.fm-group+.fm-link+.fm-hub+.fm-link+.fm-col~.fm-link:after{animation-duration:1.3s}.flow-m .fm-hub{display:flex;align-items:center;gap:16px;padding:4px 0 4px 4px;animation:fx-in .45s ease-out var(--d,0s) both}.flow-m .fm-box{flex:none;width:50px;height:50px;background:var(--accent);outline:1px solid var(--accent);outline-offset:3px;display:grid;place-items:center;font-family:Inter Tight,sans-serif;font-weight:600;font-size:13px;letter-spacing:-.02em;color:#fff}.flow-m .fm-hub .fm-sub{text-align:left}.flow-m .fm-hub .fm-chip{text-align:left;margin-top:3px}.flow-m .fm-back{font-size:10.5px;letter-spacing:.06em;color:var(--accent);margin-top:3px}@keyframes fm-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes fm-pkt{0%{top:0;opacity:0}15%{opacity:1}85%{opacity:1}to{top:24px;opacity:0}}@media (max-width:640px){.flow svg{display:none}.flow-m{display:block}.flow{max-width:none}}