:root{color-scheme:light;--bg:oklch(100% 0 0);--bg-2:oklch(97.5% .006 262);--ink:oklch(19% .02 262);--ink-2:oklch(42% .02 262);--ink-3:oklch(50% .02 262);--rule:oklch(87% .012 262);--rule-2:oklch(93.5% .008 262);--rule-strong:oklch(30% .02 262);--accent:oklch(49% .22 264);--accent-ink:oklch(100% 0 0);--accent-soft:oklch(95% .035 264);--accent-line:oklch(60% .19 263);--ok:oklch(50% .13 155);--stop:oklch(52% .19 27);--warn:oklch(62% .15 75);--grid:transparent;--code-bg:oklch(97.5% .006 262);--f-sans:"Hanken Grotesk", ui-sans-serif, system-ui, sans-serif;--f-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--frame:1280px;--pad:clamp(20px, 4.2vw, 64px);--ease:cubic-bezier(.22, 1, .36, 1);--header-h:64px;--sticky-top:calc(var(--header-h) + 24px);--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;--z-base:1;--z-sticky:20;--z-menu:30;--z-modal-backdrop:40;--z-modal:50;--z-toast:60;--z-tooltip:70}[data-theme=dark]{color-scheme:dark;--bg:oklch(20% .04 262);--bg-2:oklch(23.2% .046 262);--ink:oklch(95.5% .012 262);--ink-2:oklch(82% .03 262);--ink-3:oklch(74% .035 262);--rule:oklch(38% .075 262);--rule-2:oklch(29% .06 262);--rule-strong:oklch(66% .13 260);--accent:oklch(74% .15 258);--accent-ink:oklch(18% .04 262);--accent-soft:oklch(30% .08 262);--accent-line:oklch(72% .16 258);--ok:oklch(80% .15 155);--stop:oklch(76% .14 27);--warn:oklch(82% .14 85);--grid:oklch(24.5% .05 262);--code-bg:oklch(17% .035 262)}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/hanken-grotesk-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/hanken-grotesk-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/jetbrains-mono-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/jetbrains-mono-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px);overflow-x:clip}@media (prefers-reduced-motion:no-preference){html:not([data-motion=reduced]){scroll-behavior:smooth}}body{background-color:var(--bg);min-height:100dvh;color:var(--ink);font:400 1.0625rem/1.55 var(--f-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:24px 24px;flex-direction:column;margin:0;display:flex;overflow-x:clip}[data-theme=dark] body{line-height:1.62}main{flex:1 0 auto;display:block}img,svg,video,canvas{max-width:100%;display:block}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}main:focus{outline:none}::selection{background:var(--accent-soft);color:var(--ink)}h1,h2,h3{letter-spacing:-.032em;text-wrap:balance;margin:0;font-weight:500;line-height:1.04}h1{letter-spacing:-.038em;font-size:clamp(2.45rem,4.6vw + .9rem,5.4rem)}h2{font-size:clamp(1.95rem,2.6vw + 1rem,3.35rem)}h3{letter-spacing:-.015em;font-size:1.2rem;font-weight:600;line-height:1.25}p{text-wrap:pretty;margin:0}.lede{color:var(--ink-2);max-width:56ch;font-size:clamp(1.08rem,.4vw + 1rem,1.25rem)}.mono{font-family:var(--f-mono);letter-spacing:.01em;font-size:.78rem}.muted{color:var(--ink-2)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.frame{max-width:var(--frame);margin-inline:auto;position:relative}.plate{z-index:var(--z-base);padding:clamp(56px, 8vw, 120px) var(--pad);border-top:1px solid var(--rule);position:relative}.plate.tight{padding-block:clamp(36px,5vw,64px)}.xh{pointer-events:none;z-index:2;width:17px;height:17px;position:absolute}.xh:before,.xh:after{content:"";background:var(--rule-strong);position:absolute}.xh:before{height:1px;top:8px;left:0;right:0}.xh:after{width:1px;top:0;bottom:0;left:8px}.xh.tl{top:-9px;left:-9px}.xh.tr{top:-9px;right:-9px}@media (width<=1339px){.xh{display:none}}.hatch{z-index:var(--z-base);border-top:1px solid var(--rule);background:repeating-linear-gradient(-45deg, var(--rule) 0 1px, transparent 1px 8px);height:28px;position:relative}.tag{font-family:var(--f-mono);color:var(--ink-3);letter-spacing:.04em;align-items:center;gap:14px;font-size:.72rem;display:flex}.tag b{color:var(--ink);font-weight:500}.btn{border:1px solid var(--ink);min-height:46px;color:var(--ink);white-space:nowrap;cursor:pointer;transition:background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);background:0 0;border-radius:2px;justify-content:center;align-items:center;gap:10px;padding:0 20px;font-size:.98rem;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.btn:hover{background:var(--ink);color:var(--bg)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}.btn .note{font-family:var(--f-mono);opacity:.9;font-size:.72rem;font-weight:400}.btn:active{transform:translateY(1px)}.btn.sm{min-height:38px;padding:0 14px;font-size:.9rem}.link-arrow{border-bottom:1px solid;padding-bottom:2px;font-weight:600;text-decoration:none}.link-arrow:hover{color:var(--accent)}[data-motion=reduced] *,[data-motion=reduced] :before,[data-motion=reduced] :after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.skip[data-astro-cid-ycx7casv]{z-index:var(--z-tooltip);background:var(--ink);color:var(--bg);font:500 .8rem/1 var(--f-mono);padding:10px 14px;text-decoration:none;position:fixed;top:12px;left:12px;transform:translateY(calc(-100% - 24px))}.skip[data-astro-cid-ycx7casv]:focus{transform:none}.site-head{z-index:var(--z-sticky);height:var(--header-h);background:var(--bg);border-bottom:1px solid var(--rule);position:sticky;top:0}.head-in{max-width:var(--frame);height:100%;padding-inline:var(--pad);border-inline:1px solid var(--rule);align-items:center;gap:28px;margin-inline:auto;display:flex}.head-logo{flex:none;padding:8px 0}.head-nav{gap:26px;margin-right:auto;display:flex}.head-nav a{color:var(--ink-2);white-space:nowrap;transition:color .2s var(--ease), border-color .2s var(--ease);border-bottom:1px solid #0000;padding:6px 0;font-size:.95rem;text-decoration:none}.head-nav a:hover{color:var(--ink);border-bottom-color:var(--ink)}.head-nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent)}.head-actions{flex:none;align-items:center;gap:14px;display:flex}.head-signin{white-space:nowrap;font-size:.95rem;font-weight:500;text-decoration:none}.head-signin:hover{color:var(--accent)}.menu-btn{border:1px solid var(--rule);width:64px;height:38px;font:500 .75rem/1 var(--f-mono);cursor:pointer;background:0 0;border-radius:2px;place-items:center;padding:0;display:none}.menu-btn:hover{border-color:var(--ink)}.menu-btn>span{grid-area:1/1}.menu-btn .m-close{visibility:hidden}.site-head:has(.menu:popover-open) .menu-btn .m-open{visibility:hidden}.site-head:has(.menu:popover-open) .menu-btn .m-close{visibility:visible}.site-head:has(.menu:popover-open) .menu-btn{border-color:var(--ink)}.menu{inset:var(--header-h) 0 auto 0;width:100%;max-width:none;max-height:calc(100dvh - var(--header-h));padding:8px var(--pad) 24px;border:0;border-bottom:1px solid var(--rule);background:var(--bg);color:var(--ink);opacity:0;transition:opacity .22s var(--ease), transform .22s var(--ease), overlay .22s allow-discrete, display .22s allow-discrete;margin:0;position:fixed;overflow:auto;transform:translateY(-8px)}.menu:popover-open{opacity:1;transform:none}@starting-style{.menu:popover-open{opacity:0;transform:translateY(-8px)}}.menu::backdrop{background:0 0}.menu ul{margin:0;padding:0;list-style:none}.menu li a{border-bottom:1px solid var(--rule-2);align-items:center;min-height:48px;font-size:1.05rem;text-decoration:none;display:flex}.menu li a[aria-current=page]{color:var(--accent)}.menu-cta{width:100%;min-height:50px;margin-top:20px}@media (width<=1000px){.head-nav{display:none}.menu-btn{display:grid}.head-in{gap:12px}.head-logo{margin-right:auto}}@media (width>=1001px){.menu{display:none}}@media (width<=560px){.head-signin,.head-cta .note{display:none}}@media (width<=359px){.head-cta{display:none}}.lg{flex:none;display:block;overflow:visible}.lg-ink-s{stroke:var(--logo-ink,var(--ink))}.lg-ink-f{fill:var(--logo-word,var(--logo-ink,var(--ink)))}.lg-acc-s{stroke:var(--logo-acc,var(--accent))}.lg-acc-f{fill:var(--logo-acc,var(--accent))}.lg [data-kind=node],.lg .lg-ping{transform-box:fill-box;transform-origin:50%}.lg .lg-ping{stroke:var(--logo-acc,var(--accent));opacity:0}.lg .lg-pulse{opacity:0;stroke:var(--logo-pulse,var(--accent-line));stroke-dasharray:.16 3;stroke-dashoffset:.16px}.lg .lg-pulse.on-acc{stroke:var(--logo-pulse-acc,oklch(94% .04 264))}.lg-mono{--logo-ink:currentColor;--logo-acc:currentColor;--logo-word:currentColor}html[data-logo-reveal] .lg[data-reveal]>g{opacity:0;animation:.26s linear 1.6s forwards lg-failsafe}@keyframes lg-failsafe{to{opacity:1}}a.lg-link{color:inherit;border-radius:2px;text-decoration:none;display:inline-flex}a.lg-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.theme-btn[data-astro-cid-xcti7gnb]{border:1px solid var(--rule);width:38px;height:38px;color:var(--ink);cursor:pointer;transition:border-color .2s var(--ease);background:0 0;border-radius:2px;flex:none;place-items:center;padding:0;display:grid}.theme-btn[data-astro-cid-xcti7gnb]:hover{border-color:var(--ink)}.theme-half[data-astro-cid-xcti7gnb]{transform-origin:9px 9px;transition:transform .45s var(--ease)}[data-theme=dark] .theme-half[data-astro-cid-xcti7gnb]{transform:rotate(180deg)}.site-foot{border-top:1px solid var(--rule);margin-top:auto}.ft-frame{max-width:var(--frame);border-inline:1px solid var(--rule);margin-inline:auto}.ft{z-index:var(--z-base);background:var(--bg);color:var(--ink);position:relative;overflow:hidden;container:ft/inline-size}.ft a{color:inherit;text-decoration:none}.ft a:hover{color:var(--accent)}.ft a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.ft-top{gap:var(--s-7);padding:var(--s-8) var(--pad) var(--s-7);grid-template-columns:minmax(0,1.25fr) minmax(0,3fr);display:grid}.ft-lead{align-content:start;gap:var(--s-4);max-width:34ch;display:grid}.ft-pitch{font:500 clamp(1.4rem, 1vw + 1rem, 1.75rem)/1.15 var(--f-sans);letter-spacing:-.02em;text-wrap:balance;margin:0}.ft-about{color:var(--ink-2);text-wrap:pretty;margin:0;font-size:15px;line-height:1.55}.ft-contact{color:var(--ink-3);flex-wrap:wrap;gap:6px 10px;margin:0;font-size:15px;font-weight:600;display:flex}.ft-contact a{color:var(--ink);border-bottom:1px solid;padding-bottom:1px}.ft-cols{gap:var(--s-5);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.ft-col h2{margin:0 0 var(--s-3);font:600 14px/20px var(--f-sans);color:var(--ink);letter-spacing:0}.ft-col ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.ft-col a{color:var(--ink-2);padding:5px 0;font-size:15px;line-height:20px;display:inline-block}.ft-strip{border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule);grid-template-columns:repeat(5,minmax(0,1fr));margin:0;display:grid}.ft-cell{height:76px;padding:14px var(--s-5) 0 var(--pad);border-right:1px solid var(--rule);min-width:0;container:ftc/inline-size}.ft-cell+.ft-cell{padding-left:var(--s-5)}.ft-cell:last-child{border-right:0}.ft-cell dt{font:400 12px/18px var(--f-mono);color:var(--ink-2);white-space:nowrap;overflow:hidden}.ft-cell dd{white-space:nowrap;align-items:center;gap:10px;height:24px;margin:6px 0 0;font-size:15px;font-weight:500;line-height:24px;display:flex}.ft-num{font:500 17px/24px var(--f-mono);letter-spacing:-.01em;font-variant-numeric:tabular-nums}.ft-note{color:var(--ink-2);text-overflow:clip;font-size:14px;font-weight:400;overflow:hidden}.ft-status{min-width:0;color:var(--ink);align-items:center;gap:10px;display:inline-flex}.ft-dot{background:var(--ink-3);border-radius:50%;flex:none;width:8px;height:8px}.ft-state{text-overflow:ellipsis;overflow:hidden}.ft-status[data-state=ok] .ft-dot{background:var(--ok)}.ft-status[data-state=warn] .ft-dot{background:var(--warn)}.ft-status[data-state=stop] .ft-dot{background:var(--stop)}.ft-sign{padding:var(--s-6) var(--pad) clamp(16px, 2.5cqi, 40px)}.ft-meta{justify-content:space-between;gap:var(--s-4);font:400 12px/18px var(--f-mono);color:var(--ink-2);margin-bottom:clamp(12px,2cqi,28px);display:flex}.ft-mark{color:var(--ink);display:block}.ft a.ft-mark:hover{color:var(--ink)}.ft-wordmark{width:100%;height:auto;display:block;overflow:visible}.ft-word path{fill:currentColor}.ft-signal,.ft-pulse{fill:none;stroke-linecap:round;stroke-linejoin:round}.ft-signal{stroke:var(--accent);stroke-width:3px;stroke-dasharray:1;stroke-dashoffset:0}.ft-pulse{stroke:var(--accent-line);stroke-width:5px;stroke-dasharray:.06 1.2;stroke-dashoffset:.06px;opacity:0}.ft-tip{fill:var(--accent);transform-box:fill-box;transform-origin:50%}.ft.is-armed .ft-signal{stroke-dashoffset:1px}.ft.is-armed .ft-tip{transform:scale(0)}.ft.is-drawn .ft-signal{stroke-dashoffset:0;transition:stroke-dashoffset 1.6s var(--ease)}.ft.is-drawn .ft-tip{transition:transform .5s var(--ease) 1.25s;transform:scale(1)}.ft.is-pulsing .ft-pulse{animation:2.2s cubic-bezier(.45,0,.25,1) ft-pulse}@keyframes ft-pulse{0%{stroke-dashoffset:.06px;opacity:0}10%{opacity:.9}85%{opacity:.9}to{stroke-dashoffset:-1px;opacity:0}}@container ft (width<=1000px){.ft-top{gap:var(--s-6);grid-template-columns:minmax(0,1fr)}.ft-lead{max-width:52ch}}@container ft (width<=860px){.ft-top{padding-top:var(--s-7)}.ft-cols{row-gap:var(--s-6);grid-template-columns:repeat(3,minmax(0,1fr))}.ft-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.ft-cell,.ft-cell+.ft-cell{height:92px;padding:14px var(--s-3) 0 var(--s-4)}.ft-cell dd{white-space:normal;text-wrap:balance;align-items:flex-start;height:44px;font-size:14px;line-height:20px}.ft-cell dd .ft-num{line-height:20px}.ft-cell:nth-child(2n){border-right:0}.ft-cell:nth-child(-n+4){border-bottom:1px solid var(--rule)}.ft-cell:nth-child(5){grid-column:1/-1}.ft-note{display:none}}@container ft (width<=560px){.ft-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}@container ftc (width<=199px){.ft-note{display:none}}
