:root{
  --bg:#ffffff;--bg-secondary:#f5f5f5;--bg-grid:#c7c7c7;--border:#e3e3e3;
  --text:#0d0d0d;--text-secondary:#4d4d4d;--text-faint:#6b6b6b;--text-overline:#6b6b6b;
  --link:#581ccb;--link-hover:#2e1964;--accent:#6c35f5;--accent-text:#ffffff;--focus:#6c35f5;--btn-primary-hover:#6c35f5;
  --grid-ink:#581ccb;--grid-minor:color-mix(in srgb,var(--grid-ink) 2.5%,transparent);--grid-major:color-mix(in srgb,var(--grid-ink) 5.5%,transparent);
  --ok:#006d4c;--err:#e23642;--warn:#8f6d00;--code-bg:#141414;--code-text:#f0f0f0;
  --font:"PP Neue Montreal",Manrope,ui-sans-serif,system-ui,sans-serif;--mono:"PP Neue Montreal Mono","Roboto Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --radius-button:2px;--radius-control:4px;--radius-card:8px;
  --ease-settle:cubic-bezier(.16,1,.3,1);--ease-wipe:cubic-bezier(.9,.1,.1,.9);
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0d0d0d;--bg-secondary:#141414;--bg-grid:#272727;--border:#272727;
  --text:#ffffff;--text-secondary:#c7c7c7;--text-faint:#b3b3b3;--text-overline:#b3b3b3;
  --link:#b3b1fa;--link-hover:#e1e3fc;--accent:#968dfa;--accent-text:#0d0d0d;--focus:#b3b1fa;
  --grid-ink:#cdcefb;--grid-minor:color-mix(in srgb,var(--grid-ink) 3.5%,transparent);--grid-major:color-mix(in srgb,var(--grid-ink) 8%,transparent);
  --ok:#5cffb8;--err:#f0989e;--warn:#ecd60e;
}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:18px/26px var(--font);letter-spacing:.01em}
a{color:var(--link);text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:0 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size 200ms var(--ease-wipe)}
a:hover{color:var(--link-hover);background-size:100% 1px}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.container{max-width:1242px;margin:0 auto;padding:0 32px}
h1,h2,h3{font-weight:500;margin:0;text-wrap:balance}
h1{font-size:72px;line-height:1;letter-spacing:-.03em}
h2{font-size:40px;line-height:44px;letter-spacing:-.025em}
h3{font-size:20px;line-height:24px;letter-spacing:-.015em}
p{margin:0;text-wrap:pretty}
.eyebrow{font-weight:500;font-size:12px;line-height:16px;letter-spacing:.07em;text-transform:uppercase;color:var(--text-overline);margin:0 0 16px}
.eyebrow.iris{color:var(--accent)}
.lede{font-size:20px;line-height:28px;color:var(--text-secondary);max-width:58ch}
.muted{color:var(--text-faint)}
code,pre,.mono{font-family:var(--mono)}
code{font-size:.9em;background:var(--bg-secondary);padding:1px 5px;border-radius:var(--radius-button)}
.cmd{display:inline-flex;align-items:center;gap:16px;background:var(--code-bg);color:var(--code-text);border-radius:var(--radius-control);padding:14px 18px;font:16px/24px var(--mono)}
.cmd code{background:transparent;padding:0;color:inherit;font-size:16px}
.cmd button{font:inherit;font-weight:500;font-family:var(--font);font-size:14px;line-height:20px;color:#f0f0f0;background:transparent;border:1px solid #4d4d4d;border-radius:var(--radius-button);padding:4px 10px;cursor:pointer}
.cmd button:hover{background:#f0f0f0;color:#0d0d0d;border-color:#f0f0f0}
.btn{position:relative;display:inline-block;overflow:hidden;font-weight:500;font-size:16px;line-height:24px;padding:10px 18px;border-radius:var(--radius-button);border:1px solid var(--text);color:var(--text);background:transparent;isolation:isolate}
.btn span{position:relative;z-index:1}
.btn::before{content:"";position:absolute;inset:0;background:var(--text);transform:scaleX(0);transform-origin:right;transition:transform 300ms var(--ease-wipe);z-index:0}
.btn:hover::before{transform:scaleX(1);transform-origin:left}.btn:hover{color:var(--bg);background-size:0}
.btn.primary{background:var(--text);color:var(--bg)}.btn.primary::before{background:var(--btn-primary-hover)}.btn.primary:hover{color:#fff}
@media (prefers-reduced-motion:reduce){.btn::before{transition:none}a{transition:none}}
nav.top{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--border)}
nav.top .wordmark{font-weight:500;font-size:18px;color:var(--text);background:none}
nav.top ul{list-style:none;margin:0;padding:0;display:flex;gap:24px;font-weight:500;font-size:16px}
nav.top ul a{color:var(--text)}
@media (max-width:767px){nav.top ul{display:none}}
.hero{position:relative;padding:96px 0 80px;border-bottom:1px solid var(--border);overflow:hidden}
.hero .fine-grid{position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(to right,var(--grid-major) 1px,transparent 1px) 0 0/64px 64px,linear-gradient(var(--grid-major) 1px,transparent 1px) 0 0/64px 64px,linear-gradient(to right,var(--grid-minor) 1px,transparent 1px) 0 0/8px 8px,linear-gradient(var(--grid-minor) 1px,transparent 1px) 0 0/8px 8px;-webkit-mask-image:radial-gradient(55% 75% at 82% 28%,#000,rgb(0 0 0/.5) 45%,transparent);mask-image:radial-gradient(55% 75% at 82% 28%,#000,rgb(0 0 0/.5) 45%,transparent)}
.hero .container{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:start}
.hero h1{max-width:12ch}
.hero .actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:32px}
.hero .lede{margin-top:24px}
.rise{opacity:0;transform:translateY(16px);animation:rise 1000ms var(--ease-settle) forwards}
.rise.d1{animation-delay:260ms}.rise.d2{animation-delay:520ms}
@keyframes rise{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.rise{animation:none;opacity:1;transform:none}}
.terminal{background:var(--code-bg);color:var(--code-text);border-radius:var(--radius-card);border:1px solid #272727;font:13px/20px var(--mono);padding:40px 18px 16px;min-height:420px;max-height:560px;overflow:auto;white-space:pre-wrap;word-break:break-word;position:relative}
.terminal .line{display:block;min-height:20px}
.terminal .ts{color:#8f8f8f}.terminal .path{color:#f0f0f0}.terminal .dim{color:#8f8f8f}
.terminal .high{color:#f0989e}.terminal .med{color:#ecd60e}.terminal .ok{color:#5cffb8}.terminal .bold{font-weight:500;color:#fff}
.terminal .hint{position:absolute;right:14px;top:12px;font:12px/16px var(--font);font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:#8f8f8f}
section{padding:80px 0;border-bottom:1px solid var(--border)}
section .intro{max-width:62ch;margin-bottom:40px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden}
.grid4>div{padding:24px;border-right:1px solid var(--border)}.grid4>div:last-child{border-right:0}
.grid4 h3{margin-bottom:8px}.grid4 p{color:var(--text-secondary);font-size:16px;line-height:24px}
.frame{border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden;background:var(--bg)}
.frame iframe{display:block;width:100%;height:720px;border:0;background:var(--bg)}
.frame-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);font-size:14px;line-height:20px;color:var(--text-faint)}
table{width:100%;border-collapse:collapse;font-size:16px;line-height:24px}
th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--border);vertical-align:top}
th{font-weight:500;font-size:11px;line-height:14px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint)}
td.num{font-variant-numeric:tabular-nums}
.chip{display:inline-block;padding:1px 6px;border-radius:var(--radius-button);border:1px solid var(--border);font-size:11px;line-height:16px;letter-spacing:.04em;text-transform:uppercase;font-weight:500;color:var(--text-faint)}
.loops{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.loop{border:1px solid var(--border);border-radius:var(--radius-card);padding:24px;display:flex;flex-direction:column;gap:12px}
.loop:hover{border-color:var(--text-faint)}
.loop p{color:var(--text-secondary);font-size:16px;line-height:24px}
.loop pre{margin:auto 0 0;background:var(--code-bg);color:var(--code-text);padding:12px 14px;border-radius:var(--radius-control);font-size:13px;line-height:20px;white-space:pre-wrap;word-break:break-word}
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.twocol ul{margin:0;padding-left:20px;color:var(--text-secondary);font-size:16px;line-height:24px;display:flex;flex-direction:column;gap:8px}
.docs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 24px;font-weight:500;font-size:16px}
.closing{position:relative;padding:112px 0;text-align:left;overflow:hidden}
.closing .fine-grid{position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(to right,var(--grid-major) 1px,transparent 1px) 0 0/64px 64px,linear-gradient(var(--grid-major) 1px,transparent 1px) 0 0/64px 64px,linear-gradient(to right,var(--grid-minor) 1px,transparent 1px) 0 0/8px 8px,linear-gradient(var(--grid-minor) 1px,transparent 1px) 0 0/8px 8px;-webkit-mask-image:radial-gradient(50% 80% at 85% 50%,#000,rgb(0 0 0/.4) 50%,transparent);mask-image:radial-gradient(50% 80% at 85% 50%,#000,rgb(0 0 0/.4) 50%,transparent)}
.closing .container{position:relative;z-index:1}
footer{padding:32px 0 48px;color:var(--text-faint);font-size:14px;line-height:20px;display:flex;flex-wrap:wrap;gap:16px 32px;justify-content:space-between}
footer ul{list-style:none;margin:0;padding:0;display:flex;gap:24px;flex-wrap:wrap}
@media (max-width:1023px){h1{font-size:56px;line-height:1}.hero .container{grid-template-columns:1fr}.grid4{grid-template-columns:1fr 1fr}.grid4>div:nth-child(2){border-right:0}.grid4>div:nth-child(-n+2){border-bottom:1px solid var(--border)}.loops,.docs{grid-template-columns:1fr 1fr}.twocol{grid-template-columns:1fr}}
@media (max-width:767px){.container{padding:0 16px}h1{font-size:40px}h2{font-size:32px;line-height:36px}.hero{padding:56px 0 48px}section{padding:48px 0}.grid4,.loops,.docs{grid-template-columns:1fr}.grid4>div{border-right:0;border-bottom:1px solid var(--border)}.grid4>div:last-child{border-bottom:0}.hero .actions .btn{width:100%;text-align:center}.frame iframe{height:520px}.cmd{width:100%;justify-content:space-between}}
