@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap";@font-face{font-family:Departure Mono;src:url(/fonts/DepartureMono.woff2) format("woff2");font-display:swap}:root{--cream: #f8f3ef;--cream-2: #efe8e1;--ink: #171412;--ink-600: #5c554f;--ink-400: #9a918a;--line: #d9d0c7;--green: #3ecf8e;--green-ink: #0f6b47;--green-soft: #e1fcd7;--fin: #f4c95d;--fin-ink: #3b2c00;--ds: #7ec8e3;--ds-ink: #06303d;--ai: #d7b4f3;--ai-ink: #2d0f4a;--swe: #ffb4a2;--swe-ink: #4a1407;--down: #c4553a;--pixel: "Departure Mono", ui-monospace, monospace;--sans: "Inter", system-ui, sans-serif;--ease-out: cubic-bezier(.16, 1, .3, 1);color-scheme:light}[data-theme=dark]{--cream: #121110;--cream-2: #1a1816;--ink: #f3ede7;--ink-600: #b8afa6;--ink-400: #7a726b;--line: #2c2825;--green-ink: #3ecf8e;--green-soft: #15291f;--down: #e07a62;color-scheme:dark}*{box-sizing:border-box}html{background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;letter-spacing:-.02em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{margin:0;min-height:100dvh;background-image:radial-gradient(var(--line) 1px,transparent 1px);background-size:18px 18px}a{color:inherit;text-decoration:none}a:hover{color:var(--green-ink)}:focus-visible{outline:2px solid var(--green);outline-offset:3px}::selection{background:var(--green);color:#0b1d14}button{font:inherit;color:inherit}.px{font-family:var(--pixel);letter-spacing:0;text-transform:uppercase}.wrap{max-width:1100px;margin:0 auto;padding:0 2rem}.paper{background:var(--cream)}.eyebrow{font-family:var(--pixel);font-size:.75rem;color:var(--ink-400);text-transform:uppercase}.up{color:var(--green-ink)}.dn{color:var(--down)}.skip-link{position:absolute;left:1rem;top:-100%;z-index:100;padding:.5rem .9rem;background:var(--ink);color:var(--cream);font-family:var(--pixel);font-size:.75rem;text-transform:uppercase}.skip-link:focus{top:1rem}.top{position:sticky;top:0;z-index:10;background:var(--cream);border-bottom:1px solid var(--line);font-size:.9rem;color:var(--ink-600)}.top-bar{display:flex;justify-content:space-between;align-items:center;padding-top:1.1rem;padding-bottom:1.1rem}.top .brand{color:var(--ink)}.top nav{display:flex;gap:1.5rem;align-items:center}.top nav a:hover,.top nav a[aria-current=page]{color:var(--ink)}.toggle{font-family:var(--pixel);font-size:.75rem;text-transform:uppercase;border:1px solid var(--line);padding:.35rem .6rem;background:none;cursor:pointer}.toggle:hover{border-color:var(--ink)}.toggle .when-dark{display:none}[data-theme=dark] .toggle .when-dark{display:inline}[data-theme=dark] .toggle .when-light{display:none}.hero{padding:6rem 0 4.5rem;max-width:52rem}.hero .kicker{display:block;font-family:var(--pixel);font-size:.7rem;text-transform:uppercase;color:var(--ink-400);margin-bottom:1.75rem}.hero h1{font-weight:500;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.3;letter-spacing:-.035em;margin:0;text-wrap:pretty}.hero h1 em{font-style:normal;color:var(--green-ink)}.more{display:inline-block;font-family:var(--pixel);font-size:.72rem;text-transform:uppercase;color:var(--ink);background:none;border:0;border-bottom:1px solid var(--ink);padding:0 0 .15rem;cursor:pointer}.hero .more{margin-top:2.25rem}.more:hover{color:var(--green-ink);border-color:var(--green)}.ticker{display:flex;gap:2.5rem;padding:.75rem 1rem;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);font-family:var(--pixel);font-size:.72rem;color:var(--ink-600);text-transform:uppercase;overflow:hidden;white-space:nowrap;background:var(--cream)}.ticker b{color:var(--ink);font-weight:400}.sec{display:grid;grid-template-columns:150px 1fr;gap:2rem;padding:3rem 0}.sec+.sec{border-top:1px solid var(--line)}.sec>.eyebrow{padding-top:.2rem}.focus{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.focus a{background:var(--cream);padding:1.5rem 1.15rem;min-height:170px;display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem;color:inherit}.focus a:hover{background:var(--cream-2);color:inherit}.focus h3{margin:0;font-size:.95rem;font-weight:500;letter-spacing:-.03em;line-height:1.3}.focus small{display:block;color:var(--ink-600);font-size:.85rem;line-height:1.5;margin-top:.5rem}.focus .tag{align-self:flex-start}.tag{font-family:var(--pixel);font-size:.7rem;padding:.2rem .45rem;text-transform:uppercase;background:var(--cream-2);color:var(--ink-600);white-space:nowrap}.tag.fin{background:var(--fin);color:var(--fin-ink)}.tag.ds{background:var(--ds);color:var(--ds-ink)}.tag.ai{background:var(--ai);color:var(--ai-ink)}.tag.swe{background:var(--swe);color:var(--swe-ink)}.rows{list-style:none;margin:0;padding:0}.row{display:grid;grid-template-columns:110px 1fr auto;gap:1.5rem;padding:1.25rem 0;border-top:1px solid var(--line);align-items:baseline;color:inherit}.rows>li:last-child .row,.row:last-child{border-bottom:1px solid var(--line)}.row .d{font-family:var(--pixel);font-size:.75rem;color:var(--ink-400)}.row .t{font-weight:500;font-size:1.05rem;line-height:1.35}.row .s{color:var(--ink-600);font-size:.92rem;line-height:1.55;margin-top:.35rem;max-width:44rem}.row:hover{color:inherit}.row:hover .t{color:var(--green-ink)}.row.skeleton-row .t,.row.skeleton-row .s,.row.skeleton-row .d{color:transparent;background:var(--cream-2)}.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.filters button{font-family:var(--pixel);font-size:.7rem;text-transform:uppercase;padding:.35rem .6rem;border:1px solid var(--line);background:var(--cream);cursor:pointer}.filters button:hover{border-color:var(--ink)}.filters button[aria-pressed=true]{background:var(--ink);color:var(--cream);border-color:var(--ink)}.page-head{padding:4rem 0 2.5rem;max-width:44rem}.page-head h1{font-weight:500;font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.035em;margin:0 0 .75rem}.page-head p{color:var(--ink-600);font-size:1.05rem;margin:0}.state{padding:3rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink-600)}.state p{margin:0 0 .5rem}.state code{font-family:var(--pixel);font-size:.8rem;background:var(--cream-2);padding:.1rem .35rem}.state .more{margin-top:1rem}.article{max-width:46rem;margin:0 auto;padding:3rem 0 4.5rem}.article-head .back{font-family:var(--pixel);font-size:.72rem;text-transform:uppercase;color:var(--ink-400);display:inline-block;margin-bottom:1.25rem}.article-head .back:hover{color:var(--green-ink)}.article-head{margin:1rem 0 2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--ink)}.article-head h1{font-weight:500;font-size:clamp(1.7rem,3.4vw,2.5rem);letter-spacing:-.035em;line-height:1.2;margin:0 0 1rem;text-wrap:balance}.article-head .lede{font-size:1.15rem;color:var(--ink-600);line-height:1.55;margin:0 0 1.25rem;max-width:40rem}.draft{font-family:var(--pixel);font-size:.6em;font-weight:400;letter-spacing:0;text-transform:uppercase;vertical-align:middle;margin-left:.6em;padding:.15em .4em;border:1px dashed var(--ink-400);color:var(--ink-400)}.meta{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;font-family:var(--pixel);font-size:.72rem;color:var(--ink-400);text-transform:uppercase}.meta ul{display:contents;list-style:none;margin:0;padding:0}.prose{font-size:1.05rem;line-height:1.75;letter-spacing:-.01em}.prose>*+*{margin-top:1.25em}.prose h1,.prose h2,.prose h3{font-weight:500;letter-spacing:-.03em;line-height:1.25;margin-top:2.25em;margin-bottom:.6em}.prose h2{font-size:1.5rem}.prose h3{font-size:1.2rem}.prose ul,.prose ol{padding-left:1.25rem}.prose li+li{margin-top:.45em}.prose a{color:var(--green-ink);border-bottom:1px solid var(--green)}.prose a:hover{background:var(--green-soft)}.prose code{font-family:var(--pixel);font-size:.85em;background:var(--cream-2);padding:.1em .35em}.prose pre{background:var(--ink);color:var(--cream);padding:1.25rem;overflow-x:auto;font-size:.85rem;line-height:1.6}[data-theme=dark] .prose pre{background:var(--cream-2);color:var(--ink);border:1px solid var(--line)}.prose pre code{background:none;padding:0;font-size:inherit}.mermaid-host{margin:1.5rem 0;padding:1.5rem 1.25rem;border:1px solid var(--line);background-color:var(--cream);background-image:radial-gradient(var(--line) 1px,transparent 1px);background-size:14px 14px;overflow-x:auto}.mermaid-host svg{display:block;margin:0 auto;max-width:100%;height:auto}.mermaid-host .node rect,.mermaid-host .node polygon{rx:0;ry:0}.mermaid-host .edgeLabel{font-family:var(--pixel);text-transform:uppercase}.prose blockquote{margin:0;padding-left:1.25rem;border-left:1px solid var(--ink);color:var(--ink-600)}.prose img{max-width:100%;height:auto;display:block}.prose hr{border:0;border-top:1px solid var(--line)}.prose table{width:100%;border-collapse:collapse;font-size:.95rem;border-top:1px solid var(--line)}.prose thead:has(th:empty){display:none}.prose th,.prose td{text-align:left;padding:.65rem 1rem .65rem 0;border-bottom:1px solid var(--line);vertical-align:top}.prose th:last-child,.prose td:last-child{padding-right:0}.prose td:first-child{white-space:nowrap;padding-right:1.5rem}.prose th{font-family:var(--pixel);font-size:.72rem;text-transform:uppercase;color:var(--ink-400);font-weight:400}.skeleton{background:var(--cream-2);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.5}}.bio{max-width:44rem;font-size:1.1rem;line-height:1.65;margin-bottom:1rem}.bio p{margin:0 0 1.25rem;color:var(--ink-600)}.bio p:first-child{color:var(--ink);font-size:1.25rem;font-weight:500;letter-spacing:-.03em}.bio strong{color:var(--ink);font-weight:500}.bio a{color:var(--green-ink);border-bottom:1px solid var(--green)}.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;max-width:44rem;margin:1.75rem 0 2.5rem}.contact-card{display:flex;flex-direction:column;justify-content:space-between;gap:.6rem;padding:1rem 1.15rem;background:var(--cream);border:1px solid var(--line);transition:border-color .15s,transform .15s}.contact-card:hover{border-color:var(--ink);transform:translateY(-2px)}.contact-label{display:flex;justify-content:space-between;align-items:center;font-family:var(--pixel);font-size:.72rem;text-transform:uppercase;color:var(--ink-400)}.contact-arrow{color:var(--ink-400);transition:color .15s,transform .15s}.contact-card:hover .contact-arrow{color:var(--green-ink);transform:translate(2px,-2px)}.contact-handle{font-size:.95rem;font-weight:500;color:var(--ink);letter-spacing:-.02em;overflow-wrap:anywhere}.deflist{display:grid;grid-template-columns:max-content 1fr;gap:0 2rem;margin:0}.deflist dt,.deflist dd{margin:0;padding:.75rem 0;border-top:1px solid var(--line)}.deflist dt{font-family:var(--pixel);font-size:.72rem;text-transform:uppercase;color:var(--ink-400);padding-top:.9rem}.deflist dd{color:var(--ink)}.deflist dt:last-of-type,.deflist dd:last-of-type{border-bottom:1px solid var(--line)}.aside{color:var(--ink-400);font-size:.9rem}footer.site{margin-top:4rem;border-top:1px solid var(--line);color:var(--ink-400);font-size:.85rem;background:var(--cream)}main:has(.swarm)+footer.site{margin-top:0}.site-bar{padding-top:2rem;padding-bottom:2.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}footer.site nav{display:flex;gap:1.25rem}footer.site a:hover{color:var(--ink)}.swarm{margin-top:3rem;padding:2.5rem 0 2.25rem;border-top:1px solid var(--ink);background:var(--cream);position:relative;overflow:hidden}.swarm:before,.swarm:after{content:"";position:absolute;top:0;bottom:0;width:8rem;z-index:2;pointer-events:none}.swarm:before{left:0;background:linear-gradient(to right,var(--cream),transparent)}.swarm:after{right:0;background:linear-gradient(to left,var(--cream),transparent)}.swarm-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.swarm-head small{font-family:var(--pixel);font-size:.65rem;color:var(--ink-400);text-transform:uppercase}.swarm-head small.live:before{content:"";display:inline-block;width:6px;height:6px;margin-right:.5rem;background:var(--green);vertical-align:.1em;animation:blink 2s steps(2,end) infinite}@keyframes blink{50%{opacity:.25}}@media(prefers-reduced-motion:reduce){.swarm-head small.live:before{animation:none}}.swarm-head .legend{display:inline-flex;gap:1rem;margin-left:1.25rem}.swarm-head .legend i{display:inline-block;width:7px;height:7px;margin-right:.35rem;vertical-align:.05em}.lane{display:flex;gap:.75rem;width:max-content;margin-bottom:.75rem;animation:lane var(--dur, 60s) linear infinite}.lane.rev{animation-direction:reverse}.swarm:hover .lane,.swarm:focus-within .lane{animation-play-state:paused}@keyframes lane{to{transform:translate(-50%)}}.tile{width:200px;padding:.8rem .9rem;border:1px solid var(--line);background:var(--cream);display:grid;gap:.5rem;font-family:var(--pixel);font-size:.72rem;text-transform:uppercase;animation:bob var(--bob, 5s) ease-in-out infinite alternate;transition:border-color .2s,transform .2s}.tile:hover{border-color:var(--ink);transform:translateY(-3px)}.tile.wide{width:280px}.tile header{display:flex;justify-content:space-between;color:var(--ink);gap:.5rem;white-space:nowrap}.tile.model{width:240px}.tile header span:last-child{color:var(--ink-400);text-align:right}.tile .val{font-size:1.15rem;color:var(--ink);display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.tile .chg{font-size:.72rem;padding:.1rem .35rem}.tile .chg.up{background:var(--green);color:#0b1d14}.tile .chg.dn{background:var(--swe);color:var(--swe-ink)}.tile svg{width:100%;height:34px;display:block;overflow:visible}.tile svg polyline{fill:none;stroke-width:1.5;stroke:var(--ink-400);shape-rendering:crispEdges}.tile.up svg polyline{stroke:var(--green-ink)}.tile.dn svg polyline{stroke:var(--down)}.tile .foot{display:flex;justify-content:space-between;color:var(--ink-400);font-size:.62rem}.tile.inv{background:var(--ink);color:var(--cream);border-color:var(--ink)}.tile.inv header,.tile.inv .val{color:var(--cream)}.tile.inv svg polyline{stroke:var(--green)}.tile.model{border-color:color-mix(in srgb,var(--ai) 70%,var(--line));background:color-mix(in srgb,var(--ai) 18%,var(--cream))}.tile.model.wide{width:300px}.tile.model .dot{display:inline-block;width:6px;height:6px;background:var(--ai);margin-right:.4rem;vertical-align:.1em;outline:1px solid var(--ai-ink)}.tile.model svg polyline{stroke:#6b3fa0}[data-theme=dark] .tile.model svg polyline{stroke:var(--ai)}.tile.model .chg.up{background:var(--ai);color:var(--ai-ink)}.tile.model:hover{border-color:#6b3fa0}.tile.model.inv{background:var(--ai-ink);border-color:var(--ai-ink)}.tile.model.inv svg polyline{stroke:var(--ai)}@keyframes bob{0%{translate:0 0}to{translate:0 -6px}}@media(prefers-reduced-motion:reduce){.lane,.tile,.skeleton{animation:none}html{scroll-behavior:auto}}@media(max-width:760px){.wrap{padding:0 1.25rem}.hero{padding:4.5rem 0 3.5rem}.sec{grid-template-columns:1fr;gap:1rem}.focus{grid-template-columns:1fr 1fr}.contact-grid{grid-template-columns:1fr}.row{grid-template-columns:1fr;gap:.35rem}.row .tag{justify-self:start}.deflist{grid-template-columns:1fr}.deflist dt{border-bottom:0;padding-bottom:0}.deflist dd{border-top:0;padding-top:.25rem}.deflist dt:last-of-type{border-bottom:0}.ticker{gap:1.5rem}}
