.site-header[data-astro-cid-nen7h5rs]{z-index:20;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;display:flex;position:relative}.logo[data-astro-cid-nen7h5rs]{min-height:44px;color:var(--ink);letter-spacing:-.01em;align-items:center;gap:12px;font-size:16px;font-weight:600;text-decoration:none;display:flex}.mark[data-astro-cid-nen7h5rs]{border-radius:var(--r-mark);background:var(--ink);width:40px;height:40px;color:var(--bg);font-family:var(--mono);justify-content:center;align-items:center;font-size:14px;font-weight:500;display:flex;position:relative}.mark-dot[data-astro-cid-nen7h5rs]{background:var(--green);border:2px solid var(--bg);border-radius:50%;width:11px;height:11px;position:absolute;top:-3px;right:-3px}.nav[data-astro-cid-nen7h5rs]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.links[data-astro-cid-nen7h5rs]{flex-wrap:wrap;align-items:center;gap:2px;margin-right:10px;display:flex}.nav-link[data-astro-cid-nen7h5rs]{min-height:44px;color:var(--muted);align-items:center;padding:0 12px;font-size:15px;text-decoration:none;display:flex}.nav-link[data-astro-cid-nen7h5rs].is-current{color:var(--ink);text-decoration:underline;text-decoration-color:var(--green);text-underline-offset:8px;text-decoration-thickness:2px}.icon-btn[data-astro-cid-nen7h5rs]{border:1px solid var(--line);width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}.theme-toggle[data-astro-cid-nen7h5rs] .icon-moon,:root[data-theme=light] .theme-toggle[data-astro-cid-nen7h5rs] .icon-sun{display:none}:root[data-theme=light] .theme-toggle[data-astro-cid-nen7h5rs] .icon-moon{display:block}@media (prefers-color-scheme:light){:root:not([data-theme]) .theme-toggle[data-astro-cid-nen7h5rs] .icon-sun{display:none}:root:not([data-theme]) .theme-toggle[data-astro-cid-nen7h5rs] .icon-moon{display:block}}html:not(.js) .theme-toggle[data-astro-cid-nen7h5rs],html[data-force-theme] .theme-toggle[data-astro-cid-nen7h5rs],.menu-btn[data-astro-cid-nen7h5rs]{display:none}@container (width<=760px){html.js .links[data-astro-cid-nen7h5rs]{display:none}html.js .menu-btn[data-astro-cid-nen7h5rs]{display:inline-flex}}@container (width>=761px){.menu-sheet[data-astro-cid-nen7h5rs]{display:none}}.menu-sheet[data-astro-cid-nen7h5rs]{border:1px solid var(--line);border-radius:var(--r-card);background:var(--surf);align-items:flex-start;gap:12px;padding:12px 12px 12px 22px;animation:.35s cubic-bezier(.2,.7,.2,1) both rise;display:flex;position:absolute;top:100%;left:0;right:0}.menu-sheet[data-astro-cid-nen7h5rs][hidden]{display:none}.menu-list[data-astro-cid-nen7h5rs]{flex:auto;min-width:0;margin:0;padding:0;list-style:none}.menu-list[data-astro-cid-nen7h5rs] li[data-astro-cid-nen7h5rs]+li[data-astro-cid-nen7h5rs]{border-top:1px solid var(--line)}.menu-link[data-astro-cid-nen7h5rs]{min-height:56px;color:var(--ink);font-family:var(--display);letter-spacing:-.015em;align-items:center;font-size:28px;line-height:1.1;text-decoration:none;display:flex}.menu-link[data-astro-cid-nen7h5rs]:hover,.menu-link[data-astro-cid-nen7h5rs].is-current{color:var(--green)}.menu-close[data-astro-cid-nen7h5rs]{flex:none}html.menu-open{overflow:hidden}.site-footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);font-family:var(--mono);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 32px;margin-top:clamp(56px,7cqi,96px);padding:28px 0 36px;font-size:12px;display:flex}.site-footer--home[data-astro-cid-jo6i4kqk]{margin-top:clamp(64px,8cqi,112px)}.site-footer[data-astro-cid-jo6i4kqk] p[data-astro-cid-jo6i4kqk]{margin:0}.status[data-astro-cid-jo6i4kqk]{align-items:center;gap:10px;display:flex}.dot[data-astro-cid-jo6i4kqk]{background:var(--green);border-radius:50%;width:8px;height:8px}.back[data-astro-cid-jo6i4kqk]{min-height:44px;color:var(--ink);align-items:center;gap:8px;text-decoration:none;display:inline-flex}.back[data-astro-cid-jo6i4kqk]:hover{color:var(--green)}@media (prefers-color-scheme:light){:root:not([data-theme]){--bg:#f7f5ee;--surf:#fff;--surf2:#eeece2;--line:#dedccf;--ink:#14261a;--muted:#55604f;--faint:#c9c7b8;--faint-strong:#a9a797;--green:#1f6b3a;--purple:#5b2c83;--grid:#14261a17;color-scheme:light}}:root{--term-bg:#0b140e;--term-line:#22352a;--term-ink:#eeede3;--term-muted:#9db09b;--term-green:#7cc47f;--term-purple:#b79ce8;--display:var(--font-display);--sans:var(--font-sans);--mono:var(--font-mono);--r-card:20px;--r-panel:22px;--r-pill:999px;--r-mark:12px;--maxw:1240px;--gutter:clamp(16px, 4.5cqi, 64px)}:root,:root[data-theme=dark]{--bg:#0f1a12;--surf:#16241a;--surf2:#1c2d21;--line:#26382b;--ink:#f3f1e7;--muted:#a7b3a4;--faint:#3b5242;--faint-strong:#5a6e5e;--green:#7cc47f;--purple:#b79ce8;--grid:#f3f1e714;color-scheme:dark}:root[data-theme=light]{--bg:#f7f5ee;--surf:#fff;--surf2:#eeece2;--line:#dedccf;--ink:#14261a;--muted:#55604f;--faint:#c9c7b8;--faint-strong:#a9a797;--green:#1f6b3a;--purple:#5b2c83;--grid:#14261a17;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme]){--bg:#f7f5ee;--surf:#fff;--surf2:#eeece2;--line:#dedccf;--ink:#14261a;--muted:#55604f;--faint:#c9c7b8;--faint-strong:#a9a797;--green:#1f6b3a;--purple:#5b2c83;--grid:#14261a17;color-scheme:light}}:root{--term-bg:#0b140e;--term-line:#22352a;--term-ink:#eeede3;--term-muted:#9db09b;--term-green:#7cc47f;--term-purple:#b79ce8;--display:var(--font-display);--sans:var(--font-sans);--mono:var(--font-mono);--r-card:20px;--r-panel:22px;--r-pill:999px;--r-mark:12px;--maxw:1240px;--gutter:clamp(16px, 4.5cqi, 64px)}*,:before,:after{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);color:var(--ink);font-family:var(--sans);margin:0}html.theme-ready body,html.theme-ready .page{transition:background-color .4s,color .4s}h1,h2,h3{font-family:var(--display);letter-spacing:-.015em;font-weight:400}a,button{transition:color .2s,background-color .2s,border-color .2s,transform .25s}.page{background:var(--bg);color:var(--ink);overflow:clip;container-type:inline-size}@keyframes rise{0%{opacity:0;translate:0 20px}to{opacity:1;translate:none}}@keyframes glow{0%,to{opacity:1}50%{opacity:.35}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes caret{50%{opacity:0}}@keyframes orbit{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}@keyframes fill{0%{transform:scaleX(0)}14%{transform:scaleX(1)}82%{opacity:1;transform:scaleX(1)}94%{opacity:0;transform:scaleX(1)}to{opacity:0;transform:scaleX(0)}}@keyframes trail{0%{stroke-dashoffset:108px}to{stroke-dashoffset:8px}}@keyframes flow{to{stroke-dashoffset:-2px}}@keyframes ping{0%{opacity:.8;transform:scale(1)}14%{opacity:0;transform:scale(3.4)}to{opacity:0;transform:scale(3.4)}}@keyframes ticker{to{transform:translate(-50%)}}@keyframes type{0%{width:0}55%{width:31ch}88%{width:31ch}to{width:0}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes ping-soft{0%{opacity:.8;transform:scale(1)}70%,to{opacity:0;transform:scale(3)}}@keyframes draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes pop{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:none}}@keyframes dash{to{stroke-dashoffset:-24px}}@keyframes prog{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes run{0%{left:0}to{left:calc(100% - 10px)}}@keyframes left{0%,10%{transform:translate(-46%)}45%,to{transform:translate(-14%)}}@keyframes right{0%,10%{transform:translate(46%)}45%,to{transform:translate(14%)}}@keyframes overlap{0%,40%{opacity:0;transform:scale(.6)}60%,to{opacity:1;transform:none}}@keyframes stack{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}@keyframes trace{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes scan{0%{transform:translateY(-100%)}to{transform:translateY(400%)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes x{0%{opacity:0;left:0}15%{opacity:1}85%{opacity:1}to{opacity:0;left:calc(100% - 8px)}}@keyframes y{0%{opacity:0;top:0}15%{opacity:1}85%{opacity:1}to{opacity:0;top:calc(100% - 8px)}}.rise{animation:.9s cubic-bezier(.2,.7,.2,1) both rise}.fade{animation:.5s both fade}.fade-up{animation:.5s cubic-bezier(.2,.7,.2,1) both fade-up}.glow{animation:2.4s ease-in-out infinite glow}.pulse{transform-box:fill-box;transform-origin:50%;animation:2.4s ease-out infinite ping}.caret{animation:1s step-end infinite caret}@supports (animation-timeline:view()){.reveal{animation:linear both rise;animation-range:entry entry 60%}html .reveal{animation-timeline:view()}}.link-hover:hover{color:var(--green)!important}.btn-hover:hover{transform:scale(1.03)}.mag{transition:translate .35s cubic-bezier(.2,.7,.2,1),color .2s,background-color .2s,border-color .2s,transform .25s!important}.tilt{will-change:transform;transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .2s,background-color .2s!important}.tilt:hover{background-image:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),color-mix(in oklab,var(--green) 12%,transparent),transparent 65%)!important}:focus-visible{outline:2px solid var(--green);outline-offset:3px}.skip{z-index:100;border-radius:var(--r-pill);background:var(--ink);color:var(--bg);padding:10px 16px;font-weight:600;text-decoration:none;position:absolute;top:12px;left:16px}.skip:not(:focus):not(:focus-visible){clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;overflow:hidden}@media print{.skip{display:none}}@media screen and (width>=2048px){html{zoom:1.1}}@media screen and (width>=2304px){html{zoom:1.2}}@media screen and (width>=2496px){html{zoom:1.3}}@media screen and (width>=2880px){html{zoom:1.5}}@media screen and (width>=3360px){html{zoom:1.75}}@media screen and (width>=3712px){html{zoom:2}}@media (prefers-reduced-motion:reduce){:root *,:root :before,:root :after{transition:none!important;animation:none!important}}.page{min-height:100dvh}.hero-wrap{position:relative}.wrap{max-width:var(--maxw);padding:0 var(--gutter);margin:0 auto;position:relative}
