:root{--paper: #f1f4f7;--paper-2: #e6ebf1;--ink: #16233a;--ink-2: #4c5b70;--rule: #cfd7e1;--signal: var(--accent-l, #3550d8);--term: #16233a;--term-ink: #dfe7f1;--term-dim: #8394ad;--term-prompt: #9db8ff;--term-ok: #8fd6b0;--font: "Hanken Grotesk", system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, Menlo, monospace;--measure: 66ch;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #0e1626;--paper-2: #152036;--ink: #e4eaf3;--ink-2: #a3b1c5;--rule: #26344d;--signal: var(--accent-d, #9db8ff);--term: #081020;color-scheme:dark}:root:not([data-theme=light]) .term{border-color:var(--rule);box-shadow:none}}:root[data-theme=dark] .term{border-color:var(--rule);box-shadow:none}:root[data-theme=dark]{--paper: #0e1626;--paper-2: #152036;--ink: #e4eaf3;--ink-2: #a3b1c5;--rule: #26344d;--signal: var(--accent-d, #9db8ff);--term: #081020;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--font);font-feature-settings:"ss01","tnum" 0}a{color:var(--signal);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:3px}code,pre{font-family:var(--mono)}h1,h2{font-weight:800;letter-spacing:-.025em;line-height:1.05;margin:0}h2{font-size:1.6rem;letter-spacing:-.015em}.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:12px;background:var(--paper);padding:6px 10px;z-index:10}.wrap{width:min(1180px,100% - 32px);margin-inline:auto}.top{width:min(1180px,100% - 32px);margin:0 auto;padding:22px 0;display:flex;align-items:center;justify-content:space-between;gap:16px}.mark{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-weight:800;font-size:1.15rem;text-decoration:none;letter-spacing:-.02em}.mark-badge{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--accent-l, #3550d8);color:#fff}.mark-badge svg{width:19px;height:19px}.top nav{display:flex;gap:22px}.top nav a{color:var(--ink-2);text-decoration:none;font-weight:500}.top nav a:hover{color:var(--ink)}.hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:56px;align-items:center;padding:48px 0 88px}.hero h1{font-size:clamp(2.6rem,5.4vw,4.6rem);max-width:11ch}.lede{color:var(--ink-2);font-size:1.15rem;max-width:44ch;margin:24px 0 28px}.install{list-style:none;margin:0;padding:0;display:grid;gap:8px}.install li{display:grid;grid-template-columns:6.5rem minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid var(--rule);border-radius:8px;padding:8px 8px 8px 14px;background:var(--paper)}.install-label{color:var(--ink-2);font-size:.9rem}.install code{font-size:.88rem;overflow-x:auto;white-space:nowrap;scrollbar-width:none}.copy{font:600 .82rem var(--font);color:var(--ink);background:var(--paper-2);border:1px solid var(--rule);border-radius:6px;padding:5px 10px;cursor:pointer;min-width:4.5rem}.copy:hover{border-color:var(--ink-2)}.term{margin:0;border:1px solid transparent;background:var(--term);border-radius:12px;overflow:hidden;color:var(--term-ink);box-shadow:0 30px 60px -30px #0a14288c}.term-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid rgb(255 255 255 / .08)}.term-title{font:500 .8rem var(--mono);color:var(--term-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.term-replay{font:600 .78rem var(--font);background:none;color:var(--term-prompt);border:1px solid rgb(157 184 255 / .4);border-radius:6px;padding:3px 10px;cursor:pointer}.term-body{margin:0;padding:16px 18px;height:430px;overflow:auto;font-size:.8rem;line-height:1.55;white-space:pre-wrap;word-break:break-word;scrollbar-color:#33415c transparent}.term.compact .term-body{height:320px}.term-note{padding:9px 14px;font-size:.78rem;color:var(--term-dim);border-top:1px solid rgb(255 255 255 / .08)}.l{display:inline}.js .term:not(.static) .l:not(.on){display:none}.l-prompt:before{content:"$ ";color:var(--term-prompt)}.l-prompt{color:#fff;font-weight:600}.l-cmd{color:var(--term-prompt)}.l-dim,.l-out{color:var(--term-dim)}.l-out,.l-say{color:var(--term-ink)}.stack{padding:72px 0;border-top:1px solid var(--rule)}.section-lede{color:var(--ink-2);max-width:var(--measure);margin:12px 0 32px;font-size:1.1rem}.layers{list-style:none;margin:0;padding:0;display:grid;gap:0}.layer{display:grid;grid-template-columns:11rem 12rem minmax(0,1fr) auto;gap:20px;align-items:baseline;padding:22px 24px;background:var(--paper-2);border-left:4px solid var(--signal)}.layer+.layer{margin-top:2px}.layer.pending{border-left-color:var(--rule)}.layer-name{color:var(--ink-2);font-weight:500}.layer-project{font-weight:800;font-size:1.25rem;letter-spacing:-.015em;color:var(--ink)}a.layer-project{color:var(--signal)}.layer-line{color:var(--ink)}.layer-status{font-size:.85rem;color:var(--ink-2);border:1px solid var(--rule);border-radius:99px;padding:2px 10px;white-space:nowrap}.aside{color:var(--ink-2);margin-top:22px;max-width:var(--measure)}#projects{padding:72px 0 96px;border-top:1px solid var(--rule)}#projects h2{margin-bottom:24px}.plist{list-style:none;margin:0;padding:0}.prow{display:grid;grid-template-columns:11rem minmax(0,1fr) minmax(0,22rem) 4.5rem;gap:20px;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--rule)}.prow-name{font-weight:800;font-size:1.2rem;letter-spacing:-.015em;text-decoration:none}.prow-tag{margin:0;color:var(--ink)}.prow-cmd{font-size:.82rem;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prow-gh{color:var(--ink-2);font-size:.92rem;justify-self:end}.prow.minor .prow-name{font-weight:600;font-size:1.05rem}.project{padding:32px 0 96px}.project-head h1{font-size:clamp(2.8rem,6vw,5rem)}.project-tag{font-size:1.3rem;color:var(--ink-2);max-width:40ch;margin:14px 0 12px;line-height:1.4}.project-links{display:flex;gap:20px;margin:0 0 40px;font-weight:600}.project-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:56px;align-items:start}.project-demo{position:sticky;top:24px}.project-summary{font-size:1.12rem;margin:0 0 8px;max-width:var(--measure)}.project-main h2{font-size:1.2rem;margin:36px 0 14px}.facts{margin:0;padding-left:1.1em;display:grid;gap:10px;max-width:var(--measure)}.facts li::marker{color:var(--signal)}.more{margin-top:88px;padding-top:32px;border-top:1px solid var(--rule)}.more h2{font-size:1.2rem;margin-bottom:14px}.more ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}.more a{font-weight:700;margin-right:10px}.more span{color:var(--ink-2)}.foot{width:min(1180px,100% - 32px);margin:0 auto;padding:28px 0 48px;border-top:1px solid var(--rule);color:var(--ink-2);font-size:.92rem}@media(max-width:900px){.hero,.project-grid{grid-template-columns:1fr;gap:36px}.hero{padding:24px 0 56px}.project-demo{position:static}.layer{grid-template-columns:1fr;gap:4px;padding:18px}.layer-status{justify-self:start}.prow{grid-template-columns:1fr auto;gap:6px 16px}.prow-name{grid-column:1}.prow-gh{grid-column:2;grid-row:1}.prow-tag,.prow-cmd{grid-column:1 / -1}.term-body{height:360px}.top nav{gap:16px}}@media(max-width:520px){.install li{grid-template-columns:minmax(0,1fr) auto}.install-label{grid-column:1 / -1}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.intro{padding:56px 0 40px}.intro h1{font-size:clamp(2.6rem,5.4vw,4.6rem);max-width:14ch}.dir{list-style:none;margin:0 0 40px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dir-card{display:grid;gap:10px;height:100%;padding:28px;text-decoration:none;color:var(--ink);background:var(--paper-2);border-radius:12px;border:1px solid transparent}.dir-card:hover{border-color:var(--signal)}.dir-name{font-weight:800;font-size:1.7rem;letter-spacing:-.02em}.dir-tag{font-size:1.08rem;color:var(--ink-2);max-width:40ch}.dir-host{font:500 .85rem var(--mono);color:var(--signal);margin-top:6px}#projects{border-top:0;padding-top:8px}.project-tagline{font-size:clamp(2.2rem,4.6vw,3.8rem);max-width:20ch;margin-bottom:40px}@media(max-width:900px){.dir{grid-template-columns:1fr}}.project-grid.single{grid-template-columns:minmax(0,1fr)}.project-grid.single .project-demo{display:none}.project-grid.single .project-main{max-width:760px}.dir-card{--card-accent: var(--card-accent-l);border-top:3px solid var(--card-accent)}.dir-glyph{width:30px;height:30px;color:var(--card-accent)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .dir-card{--card-accent: var(--card-accent-d)}}:root[data-theme=dark] .dir-card{--card-accent: var(--card-accent-d)}
