.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}:root{--display:"Syne", "Segoe UI", sans-serif;--serif:"Instrument Serif", Georgia, serif;--sans:"Geist", "Segoe UI", sans-serif;--mono:"Geist Mono", ui-monospace, monospace;--wrap:64rem;--header:4.25rem;--ease:cubic-bezier(.2, .7, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--mx:50vw;--my:30vh}html[data-theme=light],html:not([data-theme]){color-scheme:light;--bg:#f2f3ee;--fg:#101209;--muted:#585c4d;--faint:#8c8f82;--accent:#4d6410;--accent-2:#1c6b5a;--accent-3:#7a3fc4;--accent-soft:#4d64101f;--line:#1012091a;--line-strong:#10120933;--card:#ffffff8c;--btn-bg:#101209;--btn-fg:#f2f3ee;--beta:#8a5a20;--aurora-alpha:.32;--spot-alpha:.045;--grid-alpha:.06}html[data-theme=dark]{color-scheme:dark;--bg:#070806;--fg:#eef0e6;--muted:#a2a794;--faint:#6b6f62;--accent:#d2f255;--accent-2:#4ef0c4;--accent-3:#b57bff;--accent-soft:#d2f2551a;--line:#eef0e61a;--line-strong:#eef0e638;--card:#ffffff09;--btn-bg:#d2f255;--btn-fg:#10140a;--beta:#e0b56a;--aurora-alpha:.42;--spot-alpha:.06;--grid-alpha:.07}@media (prefers-color-scheme:dark){html:not([data-theme]){color-scheme:dark;--bg:#070806;--fg:#eef0e6;--muted:#a2a794;--faint:#6b6f62;--accent:#d2f255;--accent-2:#4ef0c4;--accent-3:#b57bff;--accent-soft:#d2f2551a;--line:#eef0e61a;--line-strong:#eef0e638;--card:#ffffff09;--btn-bg:#d2f255;--btn-fg:#10140a;--beta:#e0b56a;--aurora-alpha:.42;--spot-alpha:.06;--grid-alpha:.07}}*,:before,:after{box-sizing:border-box}html{background:var(--bg);color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;scroll-behavior:smooth;font-size:16.5px;line-height:1.5}@media (prefers-reduced-motion:no-preference){html{transition:background-color .24s var(--ease), color .24s var(--ease)}}body{background:var(--bg);min-height:100vh;color:var(--fg);margin:0;overflow-x:hidden}::selection{background:var(--accent);color:var(--btn-fg)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.skip{z-index:100;background:var(--btn-bg);color:var(--btn-fg);font-family:var(--mono);padding:.45rem .7rem;font-size:.75rem;position:absolute;top:-4rem;left:1.25rem}.skip:focus{top:1rem}.backdrop{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.aurora{filter:blur(70px);width:46vmax;height:46vmax;opacity:var(--aurora-alpha);will-change:transform;mix-blend-mode:screen;border-radius:50%;position:absolute}html[data-theme=light] .aurora{mix-blend-mode:multiply}.aurora-a{background:radial-gradient(circle at 40% 40%, var(--accent), transparent 62%);animation:26s ease-in-out infinite alternate drift-a;top:-18vmax;left:-10vmax}.aurora-b{background:radial-gradient(circle at 50% 50%, var(--accent-2), transparent 62%);animation:31s ease-in-out infinite alternate drift-b;top:10vh;right:-16vmax}.aurora-c{background:radial-gradient(circle at 50% 50%, var(--accent-3), transparent 62%);animation:37s ease-in-out infinite alternate drift-c;bottom:-22vmax;left:24vw}@keyframes drift-a{to{transform:translate(18vw,14vh)scale(1.15)}}@keyframes drift-b{to{transform:translate(-16vw,22vh)scale(.9)}}@keyframes drift-c{to{transform:translate(-22vw,-12vh)scale(1.2)}}.spotlight{background:radial-gradient(28rem circle at var(--mx) var(--my), color-mix(in srgb, var(--accent) 100%, transparent) 0%, transparent 70%);opacity:var(--spot-alpha);transition:opacity .5s var(--ease);position:absolute;inset:0}.backdrop-grid{background-image:linear-gradient(to right, var(--fg) 1px, transparent 1px), linear-gradient(to bottom, var(--fg) 1px, transparent 1px);opacity:var(--grid-alpha);background-size:64px 64px;position:absolute;inset:0;mask-image:radial-gradient(80% 60% at 50% 0,#000 30%,#0000 80%)}.backdrop-grain{opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:absolute;inset:0}.progress{z-index:50;background:linear-gradient(90deg, var(--accent), var(--accent-2), var(--accent-3));transform-origin:0;pointer-events:none;width:100%;height:2px;position:fixed;top:0;left:0;transform:scaleX(0)}@supports (animation-timeline:scroll()){.progress{animation:linear both progress scroll(root)}}@keyframes progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.site{z-index:1;flex-direction:column;min-height:100vh;display:flex;position:relative}.wrap{width:min(100% - 3rem, var(--wrap));margin-inline:auto}.header{z-index:20;isolation:isolate;min-height:var(--header);background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0}.header-inner{min-height:var(--header);justify-content:space-between;align-items:center;gap:1.25rem;display:flex}.wordmark{font-family:var(--display);letter-spacing:-.04em;color:var(--fg);font-size:1.05rem;font-weight:700;line-height:1}.wordmark .tld,.hero-title .tld{background:linear-gradient(90deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text}.header-end,.header-actions{align-items:center;display:flex}.header-end{border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 70%, transparent);backdrop-filter:blur(18px);border-radius:999px;gap:.5rem;padding:.3rem .3rem .3rem .45rem;position:relative}.nav{align-items:center;display:flex}.nav a,.theme-toggle,.nav-toggle{font-family:var(--mono);letter-spacing:.04em;color:var(--muted);transition:color .16s var(--ease), background-color .16s var(--ease);border-radius:999px;padding:.45rem .7rem;font-size:.74rem}.nav a:hover,.theme-toggle:hover,.nav-toggle:hover,.nav-toggle[aria-expanded=true]{color:var(--fg);background:var(--accent-soft)}.nav a[aria-current=page]{color:var(--btn-fg);background:var(--btn-bg)}.theme-toggle{border:1px solid var(--line);justify-content:center;align-items:center;width:2.15rem;height:2.15rem;padding:0;display:inline-flex}.theme-toggle svg{width:1.05rem;height:1.05rem;display:block}.nav-toggle{align-items:center;display:none}.nav-toggle-close,body.nav-open .nav-toggle-open{display:none}body.nav-open .nav-toggle-close{display:inline}html[data-theme=dark] .theme-to-dark,html[data-theme=light] .theme-to-light{display:none}@media (prefers-color-scheme:dark){html:not([data-theme]) .theme-to-dark{display:none}}@media (prefers-color-scheme:light){html:not([data-theme]) .theme-to-light{display:none}}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.main{z-index:0;flex:1;padding:2.5rem 0 6rem;position:relative}.footer{font-family:var(--mono);color:var(--faint);letter-spacing:.04em;padding:0 0 2rem;font-size:.72rem;overflow:hidden}.footer-outline{font-family:var(--display);letter-spacing:-.05em;color:#0000;-webkit-text-stroke:1px var(--line-strong);user-select:none;white-space:nowrap;transition:-webkit-text-stroke-color .3s var(--ease);font-size:clamp(1.5rem,5vw,4.8rem);font-weight:800;line-height:.95}.footer-outline span{-webkit-text-stroke:1px var(--accent)}.footer:hover .footer-outline{-webkit-text-stroke-color:var(--fg)}.footer-inner{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:1.25rem;display:flex}.word-mask{display:block;overflow:hidden}.word{opacity:0;animation:rise .9s var(--ease-out) forwards;animation-delay:calc(.12s + var(--i,0) * .11s);display:inline-block;transform:translateY(110%)}@keyframes rise{to{opacity:1;transform:none}}.hero{padding:3rem 0 2.5rem}.hero-title{font-family:var(--display);letter-spacing:-.035em;white-space:nowrap;font-size:clamp(1.85rem,4.2vw,3rem);font-weight:700;line-height:1.15}.hero-title .word{white-space:nowrap}.hero-gloss{font-family:var(--serif);color:var(--fg);margin-top:1rem;font-size:clamp(1.4rem,2.6vw,2rem);font-style:italic;font-weight:400}.lede{max-width:34rem;color:var(--muted);margin-top:1.5rem;font-size:1.08rem;line-height:1.55}.hero-actions{margin-top:2rem}.hero-actions-inner{flex-wrap:wrap;align-items:center;gap:1.25rem;display:inline-flex}.section{margin-top:5rem}.section-head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.25rem;display:flex}.section-label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-size:.74rem;font-weight:400}.section-label a,.section-more{color:inherit;transition:color .16s var(--ease)}.section-more{font-family:var(--mono);letter-spacing:.04em;color:var(--muted);font-size:.74rem}.section-label a:hover,.section-more:hover{color:var(--accent)}html.js [data-reveal]{opacity:0;transition:opacity .7s var(--ease-out), transform .7s var(--ease-out);transition-delay:calc(var(--i,0) * 80ms);transform:translateY(22px)}html.js [data-reveal].is-visible{opacity:1;transform:none}.cards{perspective:1200px;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1rem;display:grid}.card{--x:50%;--y:50%;--rx:0deg;--ry:0deg;background:var(--line);transform:rotateX(var(--rx)) rotateY(var(--ry));transform-style:preserve-3d;transition:transform .26s var(--ease-out), opacity .7s var(--ease-out);color:inherit;isolation:isolate;border-radius:1.1rem;padding:1px;display:block;position:relative}html.js .card[data-reveal]{transform:translateY(22px) rotateX(var(--rx)) rotateY(var(--ry))}html.js .card[data-reveal].is-visible{transform:rotateX(var(--rx)) rotateY(var(--ry))}.card:before{content:"";border-radius:inherit;background:radial-gradient(22rem circle at var(--x) var(--y), var(--accent), var(--accent-2) 30%, transparent 60%);opacity:0;transition:opacity .3s var(--ease);position:absolute;inset:0}.card:hover:before{opacity:.35}.card-body{background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(20px);border-radius:calc(1.1rem - 1px);flex-direction:column;gap:.75rem;height:100%;padding:1.4rem 1.4rem 1.25rem;display:flex;position:relative;overflow:hidden}.card-glow{border-radius:inherit;background:radial-gradient(18rem circle at var(--x) var(--y), var(--accent-soft), transparent 60%);opacity:0;transition:opacity .3s var(--ease);pointer-events:none;z-index:1;position:absolute;inset:0}.card:hover .card-glow{opacity:.45}.card-top{font-family:var(--mono);letter-spacing:.06em;color:var(--faint);justify-content:space-between;align-items:center;font-size:.72rem;display:flex}.card-title{font-family:var(--display);letter-spacing:-.04em;color:var(--fg);font-size:1.5rem;font-weight:700;line-height:1.1}.card-summary{color:var(--muted);flex:1;font-size:.95rem}.card-foot{font-family:var(--mono);letter-spacing:.06em;color:var(--faint);justify-content:space-between;align-items:center;margin-top:.5rem;font-size:.72rem;display:flex}.card-arrow{color:var(--fg);transition:transform .24s var(--ease-out), color .24s var(--ease);font-size:1rem}.card:hover .card-arrow{color:var(--accent);transform:translate(.35rem)}.status{color:var(--accent)}.status.is-beta{color:var(--beta)}.index{border-top:1px solid var(--line)}.index-row{border-bottom:1px solid var(--line);color:inherit;transition:padding-left .22s var(--ease-out), background-color .22s var(--ease), opacity .7s var(--ease-out), transform .7s var(--ease-out);grid-template-columns:1fr auto;align-items:center;gap:1.5rem;padding:1.1rem .5rem 1.1rem 0;display:grid}.index-row:hover{background:linear-gradient(90deg, var(--accent-soft), transparent 70%);padding-left:.9rem}.index-title{font-family:var(--display);letter-spacing:-.04em;transition:color .2s var(--ease);font-size:1.25rem;font-weight:700}.index-row:hover .index-title{color:var(--accent)}.index-side{font-family:var(--mono);letter-spacing:.06em;color:var(--faint);white-space:nowrap;align-items:center;gap:.9rem;font-size:.72rem;display:inline-flex}.index-arrow{color:var(--fg);transition:transform .24s var(--ease-out), color .24s var(--ease);font-size:1rem}.index-row:hover .index-arrow{color:var(--accent);transform:translate(.35rem)}.crumb{font-family:var(--mono);letter-spacing:.06em;color:var(--muted);transition:color .16s var(--ease);margin-bottom:1.5rem;font-size:.74rem;display:inline-block}.crumb:hover{color:var(--accent)}.page-title{font-family:var(--display);letter-spacing:-.045em;font-size:clamp(2.2rem,5.5vw,4rem);font-weight:800;line-height:1.02}.page-lede{font-family:var(--serif);color:var(--fg);max-width:34rem;margin-top:.9rem;margin-bottom:2.25rem;font-size:1.35rem;font-style:italic}.page-meta{font-family:var(--mono);letter-spacing:.06em;color:var(--faint);margin-top:.8rem;margin-bottom:2.25rem;font-size:.75rem}.spec{flex-wrap:wrap;gap:.5rem;margin:0 0 1.75rem;display:flex}.spec-pill{font-family:var(--mono);letter-spacing:.06em;color:var(--muted);border:1px solid var(--line);background:var(--card);border-radius:999px;padding:.4rem .7rem;font-size:.72rem}.spec-pill.status{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.actions{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:3rem;display:flex}.btn{background:var(--btn-bg);color:var(--btn-fg);font-family:var(--mono);letter-spacing:.06em;transition:transform .22s var(--ease-out), box-shadow .22s var(--ease);border-radius:999px;align-items:center;gap:.6rem;padding:.8rem 1.2rem;font-size:.78rem;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";transition:transform .6s var(--ease-out);background:linear-gradient(120deg,#0000 30%,#ffffff59 50%,#0000 70%);position:absolute;inset:0;transform:translate(-120%)}.btn:hover{box-shadow:0 12px 30px -12px var(--accent);transform:translateY(-2px)}.btn:hover:after{transform:translate(120%)}.btn-arrow{transition:transform .24s var(--ease-out)}.btn:hover .btn-arrow{transform:translate(.25rem)}.btn-text{font-family:var(--mono);letter-spacing:.06em;color:var(--muted);background:linear-gradient(var(--accent), var(--accent)) no-repeat 0 100% / 0 1px;transition:color .2s var(--ease), background-size .3s var(--ease-out);font-size:.78rem}.btn-text:hover{color:var(--fg);background-size:100% 1px}.prose{max-width:38rem;color:var(--muted);font-size:1.05rem;line-height:1.7}.prose>*+*{margin-top:1rem}.prose h2,.prose h3{font-family:var(--display);letter-spacing:-.04em;color:var(--fg);margin-top:2.2rem;font-weight:700}.prose h2{font-size:1.5rem}.prose h3{font-size:1.15rem}.prose ul,.prose ol{padding-left:1.15rem}.prose strong{color:var(--fg);font-weight:500}code{font-family:var(--mono);color:var(--fg);background:var(--accent-soft);border-radius:.35em;padding:.1em .35em;font-size:.86em}.prose a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}.prose a:hover{color:var(--accent)}.about{max-width:36rem;color:var(--muted);margin-top:.5rem;font-size:1.1rem;line-height:1.7}.about p+p{margin-top:1.1rem}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.word,html.js [data-reveal]{opacity:1;transform:none}}@media (width<=640px){.nav-toggle{display:inline-flex}.header-end{padding-left:.3rem}.nav{z-index:2;border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 82%, transparent);backdrop-filter:blur(18px);min-width:11rem;box-shadow:0 18px 40px -24px color-mix(in srgb, var(--fg) 50%, transparent);border-radius:1.15rem;flex-direction:column;align-items:stretch;padding:.3rem;display:none;position:absolute;top:calc(100% + .45rem);right:0}body.nav-open .nav{display:flex}.nav a{width:100%;padding-block:.6rem}}@media (width<=720px){.wrap{width:min(100% - 1.75rem, var(--wrap))}.hero{padding-top:1.5rem}.hero-title{letter-spacing:-.03em;font-size:clamp(1.45rem,6.5vw,1.9rem)}.index-row{grid-template-columns:1fr;align-items:start;gap:.4rem}.aurora{filter:blur(50px)}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}
