:root{--bg:#fff;--surface:#f5f6f7;--surface-2:#edeef1;--text:#0e1116;--text-hover:#2a2f38;--muted:#616874;--subtle:#6f757e;--soft:#8f959f;--line:#0e11161a;--tint:#0e11160b;--tint-strong:#0e111614;--underline:#0e111640;--header-bg:#ffffffe6;--selection:#0e11161f;--icon-edge:transparent;--warn:#8a5a00;--green:#34c759;--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-serif:"Instrument Serif", ui-serif, Georgia, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, monospace;color-scheme:light only}:root[data-theme=dark]{--bg:#0a0a0b;--surface:#141416;--surface-2:#1c1c1f;--text:#f4f4f5;--text-hover:#d8d9dc;--muted:#9a9da5;--subtle:#80848c;--soft:#5f636a;--line:#ffffff1a;--tint:#ffffff0f;--tint-strong:#ffffff1a;--underline:#ffffff40;--header-bg:#0a0a0bd9;--selection:#fff3;--icon-edge:#ffffff24;--warn:#f5c06b;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px;line-height:1.6;overflow-x:hidden}h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit}img{max-width:100%}::selection{background:var(--selection);color:var(--text)}:focus-visible{outline:2px solid var(--text);outline-offset:3px;border-radius:8px}.container{width:min(680px,100% - 32px);margin-inline:auto}.inner{background:var(--surface);border-radius:18px}.list{gap:2px;padding:8px;display:grid}.prose{color:var(--muted);line-height:1.75}.prose>*+*{margin-top:14px}.prose a,.link-btn{color:var(--text);text-decoration:underline;text-decoration-color:var(--underline);text-underline-offset:4px;text-decoration-thickness:1px;transition:text-decoration-color .2s}.prose a:hover,.link-btn:hover{text-decoration-color:currentColor}.link-btn{font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.article-card{padding-inline:2px}.longform{color:var(--muted);font-size:16.5px;line-height:1.75}.longform>*+*{margin-top:16px}.longform h2,.longform h3{letter-spacing:-.02em;color:var(--text);margin-top:32px;font-weight:500;line-height:1.3}.longform>:first-child{margin-top:0}.longform h2{letter-spacing:-.03em;font-size:clamp(22px,4vw,26px)}.longform h3{font-size:18px}.longform a{color:var(--text);text-decoration:underline;text-decoration-color:var(--underline);text-underline-offset:4px}.longform strong{color:var(--text);font-weight:500}.longform ul,.longform ol{padding-left:1.3em}.longform ul{list-style:outside}.longform ol{list-style:decimal}.longform li+li{margin-top:6px}.longform blockquote{border-left:2px solid var(--line);margin-inline:0;padding-left:16px}.longform code{background:var(--surface);font-family:var(--font-mono);border-radius:6px;padding:2px 6px;font-size:.88em}.longform pre{background:var(--surface);border-radius:14px;padding:16px;font-size:14px;overflow-x:auto}.longform pre code{background:0 0;padding:0}.longform img{border-radius:14px}.longform hr{border:0;border-top:1px solid var(--line)}mark.todo{color:var(--warn);font-family:var(--font-mono);background:#f5a5241f;border:1px dashed #f5a52499;border-radius:6px;padding:1px 6px;font-size:.85em}.app-icon{width:var(--size,64px);aspect-ratio:1;height:auto;filter:drop-shadow(0 0 .5px var(--icon-edge));-webkit-user-drag:none;user-select:none;flex:none;display:block}.btn{height:44px;font:500 15px/1 var(--font-sans);white-space:nowrap;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 20px;text-decoration:none;transition:background-color .15s;display:inline-flex}.btn svg{width:16px;height:16px}.btn-primary{background:var(--text);color:var(--bg)}.btn-primary:hover{background:var(--text-hover)}.btn-ghost{background:var(--tint);color:var(--text)}.btn-ghost:hover{background:var(--tint-strong)}.btn-sm{height:36px;padding:0 16px;font-size:14px}.soft{color:var(--soft)}.tags{flex-wrap:wrap;gap:8px;display:flex}.tags li{background:var(--tint);color:var(--muted);border-radius:999px;padding:6px 12px;font-size:13.5px}.kind{letter-spacing:.08em;text-transform:uppercase;color:var(--subtle);font-size:11.5px;font-weight:500}.status-dot{background:var(--green);border-radius:50%;flex:none;width:8px;height:8px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}:root{--ease-out:cubic-bezier(.2, .7, .2, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1)}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}@keyframes fade{0%{opacity:0}}@keyframes show{to{opacity:1}}@keyframes gone{to{opacity:0;visibility:hidden}}@keyframes shimmer{to{background-position:-200% 0}}.loader{display:none}.intro .loader{z-index:100;background:var(--bg);transition:opacity .5s var(--ease-in-out), visibility 0s .5s;place-content:center;justify-items:center;gap:14px;animation:.4s 3.2s forwards gone;display:grid;position:fixed;inset:0}.intro .loader img{object-fit:cover;width:56px;height:56px;animation:rise .6s var(--ease-out) both;border-radius:16px}.loader-name{letter-spacing:-.01em;animation:rise .6s 80ms var(--ease-out) both;font-size:15px;font-weight:500}.loader-line{background:var(--tint-strong);border-radius:2px;width:120px;height:2px;margin-top:6px;animation:.4s .16s both fade;overflow:hidden}.loader-line:before{content:"";background:var(--text);transform-origin:0;height:100%;animation:load-to .9s .2s var(--ease-out) forwards;display:block;transform:scaleX(0)}@keyframes load-to{to{transform:scaleX(.8)}}.intro-done .loader-line:before{transition:transform .3s var(--ease-out);animation:none;transform:scaleX(1)}.intro-done .loader{opacity:0;visibility:hidden;pointer-events:none;transition-delay:.25s,.75s}.nav-progress{z-index:90;background:var(--text);transform-origin:0;opacity:0;pointer-events:none;width:100%;height:2px;position:fixed;top:0;left:0;transform:scaleX(0)}.leaving .nav-progress{opacity:1;transition:transform 6s cubic-bezier(.1,.8,.2,1),opacity .2s;transform:scaleX(.85)}.arriving .nav-progress{animation:arrive .6s var(--ease-out) forwards}@keyframes arrive{0%{opacity:1;transform:scaleX(.85)}60%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}.has-longform .bar:after{content:"";background:var(--text);height:2px;transform:scaleX(var(--read,0));transform-origin:0;position:absolute;bottom:0;left:0;right:0}.js .header>*{opacity:0}.ready .header>*{opacity:1;animation:rise .7s var(--ease-out) backwards}.ready .header>:nth-child(2){animation-delay:60ms}.ready .header>:nth-child(3){animation-delay:.12s}.ready .header>:nth-child(4){animation-delay:.18s}.ready .header>:nth-child(n+5){animation-delay:.24s}.js:not(.ready) .header>*{animation:0s 2.6s forwards show}.reveal:not(.in){opacity:0}.reveal.in{animation:rise .7s var(--ease-out) backwards;animation-delay:calc(var(--i,0) * 55ms)}.img-wait{opacity:0}.img-in{animation:fade .5s var(--ease-out) both}.loading-surface{background-color:var(--surface);background-image:linear-gradient(100deg, transparent 30%, var(--tint) 50%, transparent 70%);background-position:100% 0;background-size:200% 100%;animation:1.4s linear infinite shimmer}.btn{transition:background-color .15s, transform .15s var(--ease-out)}.btn:active{transform:scale(.97)}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}.bar{view-transition-name:site-header}.header-icon{view-transition-name:app-icon}::view-transition-old(root){animation:.18s var(--ease-in-out) both vt-out}::view-transition-new(root){animation:.38s 60ms var(--ease-out) both vt-in}::view-transition-group(app-icon){animation-duration:.5s;animation-timing-function:var(--ease-out)}.theme-switch::view-transition-old(root),.theme-switch::view-transition-new(root){mix-blend-mode:normal;animation:none}.theme-switch .bar{view-transition-name:none}}@keyframes vt-out{to{opacity:0}}@keyframes vt-in{0%{opacity:0;transform:translateY(10px)}}@media (prefers-reduced-motion:reduce){.intro .loader,.nav-progress,.has-longform .bar:after{display:none}.js .header>*,.reveal:not(.in),.img-wait{opacity:1;animation:none}.ready .header>*,.reveal.in,.img-in,.loading-surface{animation:none}}.bar[data-astro-cid-wpvy4v7s]{z-index:50;background:var(--header-bg);-webkit-backdrop-filter:blur(12px);position:sticky;top:0}.nav[data-astro-cid-wpvy4v7s]{align-items:center;gap:8px;height:64px;display:flex}.brand[data-astro-cid-wpvy4v7s]{letter-spacing:-.01em;white-space:nowrap;flex:none;align-items:center;gap:10px;font-size:15px;font-weight:500;text-decoration:none;display:flex}.brand[data-astro-cid-wpvy4v7s] img[data-astro-cid-wpvy4v7s]{object-fit:cover;border-radius:8px;width:26px;height:26px}.tabs[data-astro-cid-wpvy4v7s]{scrollbar-width:none;gap:2px;min-width:0;margin-left:auto;display:flex;overflow-x:auto}.tabs[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]{color:var(--muted);white-space:nowrap;border-radius:999px;padding:8px 10px;font-size:14.5px;text-decoration:none;transition:color .15s,background-color .15s;display:block}.tabs[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]:hover,.tabs[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s][aria-current=page]{color:var(--text)}.tabs[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]:hover{background:var(--tint)}.theme[data-astro-cid-wpvy4v7s]{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;padding:0;transition:color .15s,background-color .15s,transform .15s;display:grid}.theme[data-astro-cid-wpvy4v7s]:active{transform:scale(.92)}.theme[data-astro-cid-wpvy4v7s]:hover{color:var(--text);background:var(--tint)}.theme[data-astro-cid-wpvy4v7s] svg[data-astro-cid-wpvy4v7s]{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.sun[data-astro-cid-wpvy4v7s],:root[data-theme=dark] .moon[data-astro-cid-wpvy4v7s]{display:none}:root[data-theme=dark] .sun[data-astro-cid-wpvy4v7s]{display:block}.spun[data-astro-cid-wpvy4v7s] svg[data-astro-cid-wpvy4v7s]{animation:.45s cubic-bezier(.2,.7,.2,1) turn-in}@keyframes turn-in{0%{opacity:0;transform:rotate(-60deg)scale(.6)}}@media (prefers-reduced-motion:reduce){.spun[data-astro-cid-wpvy4v7s] svg[data-astro-cid-wpvy4v7s]{animation:none}}@media (width<=520px){.brand-name[data-astro-cid-wpvy4v7s]{display:none}}@media (width<=380px){.tabs[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]{padding:8px 7px;font-size:13.5px}}.footer[data-astro-cid-jo6i4kqk]{color:var(--subtle);margin-top:clamp(64px,10vw,96px);padding:40px 2px 48px;font-size:14px}.top[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;justify-content:space-between;gap:32px;display:flex}.who[data-astro-cid-jo6i4kqk]{max-width:260px}.brand[data-astro-cid-jo6i4kqk]{color:var(--text);align-items:center;gap:10px;margin-bottom:10px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex}.brand[data-astro-cid-jo6i4kqk] img[data-astro-cid-jo6i4kqk]{object-fit:cover;border-radius:7px;width:24px;height:24px}.cols[data-astro-cid-jo6i4kqk]{gap:48px;display:flex}h2[data-astro-cid-jo6i4kqk]{letter-spacing:.08em;text-transform:uppercase;color:var(--subtle);margin-bottom:10px;font-size:11.5px;font-weight:500}ul[data-astro-cid-jo6i4kqk]{gap:6px;display:grid}a[data-astro-cid-jo6i4kqk],.copy[data-astro-cid-jo6i4kqk]{color:var(--muted);text-decoration:none;transition:color .15s}a[data-astro-cid-jo6i4kqk]:hover,.copy[data-astro-cid-jo6i4kqk]:hover{color:var(--text)}.copy[data-astro-cid-jo6i4kqk]{font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.bottom[data-astro-cid-jo6i4kqk]{margin-top:40px}.skip[data-astro-cid-hkbrpulz]{z-index:110;background:var(--text);color:var(--bg);border-radius:999px;padding:10px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:transform .2s;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip[data-astro-cid-hkbrpulz]:focus-visible{transform:none}main[data-astro-cid-hkbrpulz]:focus{outline:none}.page[data-astro-cid-hkbrpulz]{gap:clamp(56px,9vw,80px);padding-top:clamp(32px,6vw,56px);display:grid}
