.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.aurora[data-astro-cid-xjcb3ni3]{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;contain:strict;filter:blur(60px) saturate(118%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 46%,transparent 88%);mask-image:linear-gradient(to bottom,#000 0%,#000 46%,transparent 88%);mix-blend-mode:screen}.aurora__blob[data-astro-cid-xjcb3ni3]{position:absolute;border-radius:50%;will-change:transform,opacity;background:radial-gradient(closest-side,var(--blob-color) 0%,color-mix(in oklab,var(--blob-color),transparent 55%) 38%,transparent 72%);opacity:var(--blob-op, .5)}.aurora__blob--1[data-astro-cid-xjcb3ni3]{--blob-color: var(--signal, #5FA877);--blob-op: .5;width:78vmax;height:78vmax;top:-26vmax;left:-14vmax}.aurora__blob--2[data-astro-cid-xjcb3ni3]{--blob-color: var(--moss, #688E76);--blob-op: .42;width:66vmax;height:66vmax;top:-8vmax;right:-18vmax;left:auto}.aurora__blob--3[data-astro-cid-xjcb3ni3]{--blob-color: var(--signal-ink, #88CCA0);--blob-op: .34;width:56vmax;height:56vmax;top:18vmax;left:30vmax}html[data-theme=light] .aurora[data-astro-cid-xjcb3ni3]{filter:blur(70px) saturate(108%);mix-blend-mode:multiply}html[data-theme=light] .aurora__blob--1[data-astro-cid-xjcb3ni3]{--blob-color: var(--haze2, rgba(63,140,99,.18));--blob-op: .9}html[data-theme=light] .aurora__blob--2[data-astro-cid-xjcb3ni3]{--blob-color: var(--haze1, rgba(132,158,70,.18));--blob-op: .85}html[data-theme=light] .aurora__blob--3[data-astro-cid-xjcb3ni3]{--blob-color: var(--sun, rgba(47,125,79,.2));--blob-op: .8}@media(prefers-reduced-motion:no-preference){.aurora__blob--1[data-astro-cid-xjcb3ni3]{animation:aurora-drift-1 34s ease-in-out infinite alternate}.aurora__blob--2[data-astro-cid-xjcb3ni3]{animation:aurora-drift-2 42s ease-in-out infinite alternate}.aurora__blob--3[data-astro-cid-xjcb3ni3]{animation:aurora-drift-3 38s ease-in-out infinite alternate}}@keyframes aurora-drift-1{0%{transform:translateZ(0) scale(1);opacity:var(--blob-op)}50%{transform:translate3d(6vmax,4vmax,0) scale(1.08);opacity:calc(var(--blob-op) * 1.18)}to{transform:translate3d(-3vmax,7vmax,0) scale(1.03);opacity:calc(var(--blob-op) * .86)}}@keyframes aurora-drift-2{0%{transform:translateZ(0) scale(1);opacity:var(--blob-op)}50%{transform:translate3d(-7vmax,5vmax,0) scale(1.1);opacity:calc(var(--blob-op) * .82)}to{transform:translate3d(-2vmax,-4vmax,0) scale(.97);opacity:calc(var(--blob-op) * 1.14)}}@keyframes aurora-drift-3{0%{transform:translateZ(0) scale(1);opacity:var(--blob-op)}50%{transform:translate3d(5vmax,-6vmax,0) scale(1.06);opacity:calc(var(--blob-op) * 1.2)}to{transform:translate3d(8vmax,2vmax,0) scale(1.02);opacity:calc(var(--blob-op) * .9)}}@media(prefers-reduced-motion:reduce){.aurora__blob[data-astro-cid-xjcb3ni3]{animation:none!important;transform:none!important}}@media(prefers-reduced-transparency:reduce){.aurora[data-astro-cid-xjcb3ni3]{filter:blur(22px) saturate(108%)}.aurora__blob[data-astro-cid-xjcb3ni3]{opacity:calc(var(--blob-op) * .55)}}@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))){.aurora[data-astro-cid-xjcb3ni3]{filter:blur(20px)}.aurora__blob[data-astro-cid-xjcb3ni3]{opacity:calc(var(--blob-op) * .6)}}@media(max-width:760px){.aurora[data-astro-cid-xjcb3ni3]{filter:blur(36px) saturate(112%)}html[data-theme=light] .aurora[data-astro-cid-xjcb3ni3]{filter:blur(44px) saturate(106%)}.aurora__blob[data-astro-cid-xjcb3ni3]{opacity:calc(var(--blob-op) * .78)}.aurora__blob--1[data-astro-cid-xjcb3ni3]{width:64vmax;height:64vmax}.aurora__blob--2[data-astro-cid-xjcb3ni3]{width:56vmax;height:56vmax}.aurora__blob--3[data-astro-cid-xjcb3ni3]{width:50vmax;height:50vmax}}.grid-bg[data-astro-cid-torirgt3]{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 18%,#000 60%,transparent 96%);mask-image:linear-gradient(to bottom,transparent 0%,#000 18%,#000 60%,transparent 96%);perspective:60vh;opacity:.6}.grid-bg__plane[data-astro-cid-torirgt3]{position:absolute;left:-50%;right:-50%;top:-10%;height:150%;background-image:linear-gradient(to right,var(--grid-line, rgba(95,168,119,.16)) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-line, rgba(95,168,119,.16)) 1px,transparent 1px);background-size:46px 46px;transform:rotateX(58deg) translateY(0);transform-origin:50% 0;animation:grid-drift 12s linear infinite;will-change:transform}@keyframes grid-drift{0%{transform:rotateX(58deg) translateY(0)}to{transform:rotateX(58deg) translateY(46px)}}html[data-theme=light] .grid-bg[data-astro-cid-torirgt3]{--grid-line: rgba(31,90,57,.12);opacity:.55}@media(prefers-reduced-motion:reduce){.grid-bg__plane[data-astro-cid-torirgt3]{animation:none}}@media(prefers-reduced-transparency:reduce){.grid-bg[data-astro-cid-torirgt3]{opacity:.35}}@media(max-width:720px){.grid-bg[data-astro-cid-torirgt3]{perspective:40vh;opacity:.4}.grid-bg__plane[data-astro-cid-torirgt3]{background-size:38px 38px}@keyframes grid-drift{0%{transform:rotateX(58deg) translateY(0)}to{transform:rotateX(58deg) translateY(38px)}}}.post-body img:not([data-no-zoom]),.docs-article img:not([data-no-zoom]),.showcase img:not([data-no-zoom]),.post-body video:not([data-no-zoom]),.docs-article video:not([data-no-zoom]),.showcase video:not([data-no-zoom]){cursor:zoom-in}img,video{-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-webkit-touch-callout:none;pointer-events:auto}.imglb__img,.imglb__vid{-webkit-user-drag:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.post-body figure,.docs-article figure,.showcase figure{transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease;will-change:transform}.post-body figure:hover,.docs-article figure:hover,.showcase figure:hover{transform:translateY(-4px)}.post-body figure img,.docs-article figure img,.showcase figure img,.showcase .sc-media img,.showcase .sc-media video{box-shadow:0 1px 2px #00000029,0 10px 28px #00000038;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s ease,filter .3s ease;backface-visibility:hidden}.post-body figure:hover img,.docs-article figure:hover img,.showcase figure:hover img{transform:scale(1.02);box-shadow:0 6px 14px #0000003d,0 22px 60px #00000057;filter:saturate(1.04) contrast(1.02)}@media(prefers-reduced-motion:reduce){.post-body figure,.docs-article figure,.showcase figure,.post-body figure img,.docs-article figure img,.showcase figure img{transition:none;transform:none!important}}.imglb{position:fixed;inset:0;margin:auto;width:max-content;height:max-content;border:none;padding:0;max-width:96vw;max-height:96vh;background:transparent;color:var(--ink, #e7efe9);overflow:visible}.imglb::backdrop{background:#060a07e0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.imglb[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem}.imglb__img{max-width:92vw;max-height:84vh;width:auto;height:auto;display:block;border:1px solid var(--glass-edge, rgba(95,168,119,.25));border-radius:12px;box-shadow:0 40px 120px #0009;background:var(--paper-2, #0f1a13);animation:imglb-in .16s ease-out}@keyframes imglb-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.imglb__img,.imglb__vid{animation:none}}.imglb__vid{display:none;max-width:92vw;max-height:84vh;width:auto;height:auto;border:1px solid var(--glass-edge, rgba(95,168,119,.25));border-radius:12px;box-shadow:0 40px 120px #0009;background:#000;animation:imglb-in .16s ease-out}.imglb.is-video .imglb__img{display:none}.imglb.is-video .imglb__vid{display:block}.imglb__cap{margin:0;max-width:80ch;text-align:center;font-size:13px;color:var(--muted, #8c9c8c);font-family:IBM Plex Sans,system-ui,sans-serif}.imglb__cap:empty{display:none}.imglb__close{position:fixed;top:18px;right:22px;z-index:2;width:38px;height:38px;border-radius:50%;cursor:pointer;border:1px solid var(--glass-edge, rgba(95,168,119,.3));background:var(--glass-bg, rgba(12,20,15,.7));color:var(--ink, #e7efe9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:16px;line-height:1}.imglb__close:hover{border-color:var(--signal, #5fa877);color:var(--signal-ink, #88cca0)}.has-video-badge{position:relative}.video-watch-badge{position:absolute;bottom:12px;right:12px;z-index:3;pointer-events:none;display:inline-flex;align-items:center;gap:.4rem;padding:.34rem .7rem;border-radius:999px;background:#080c09c7;border:1px solid var(--signal, #5fa877);color:var(--signal-ink, #88cca0);font-family:IBM Plex Mono,monospace;font-size:11.5px;letter-spacing:.04em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 14px #0006;transition:transform .18s ease,background .18s ease,opacity .18s ease;animation:vwb-pulse 2.8s ease-in-out infinite}.video-watch-badge .vwb-play{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--signal, #5fa877);color:#08120b;font-size:8px}.has-video-badge:hover .video-watch-badge{transform:translateY(-2px) scale(1.04);background:#080c09eb;animation:none}@keyframes vwb-pulse{0%,to{box-shadow:0 4px 14px #0006,0 0 color-mix(in srgb,var(--signal,#5fa877) 40%,transparent)}50%{box-shadow:0 4px 14px #0006,0 0 0 5px color-mix(in srgb,var(--signal,#5fa877) 0%,transparent)}}@media(prefers-reduced-motion:reduce){.video-watch-badge{animation:none}}.fren{--bb-hi: #6FB3A8;--bb-lo: #3C7C72;--bb-tip: #9FD8C4;--bb-dark:#11201B;--bb-line:#26392F;--bb-led: #DB8240;--bb-ochre:#D9AE52;--bb-alert:#E0663A;position:absolute;left:0;bottom:-34px;width:84px;height:92px;z-index:2;pointer-events:auto;cursor:pointer;user-select:none;filter:drop-shadow(0 5px 8px rgba(15,7,2,.5)) drop-shadow(0 0 9px rgba(111,179,168,.2));transform:translate(16px);transition:transform 2.4s cubic-bezier(.37,0,.4,1);will-change:transform}.fren.fren-leaving{transition:transform .5s ease,opacity .5s ease;opacity:0;transform:translate(var(--fren-x, 0)) translateY(8px) scale(.7)!important}.fren-svg{display:block;overflow:visible;width:100%;height:100%;transform-origin:50% 92%;animation:bb-idle 3.6s ease-in-out infinite}.bb-vp{display:none}.bb-vp-eyes{display:block}.bb-screen-glow{animation:bb-screenpulse 3.6s ease-in-out infinite}.bb-eyes{animation:bb-eyeblink 5s steps(1,end) infinite;transform-origin:24px 23px}.fren-pupil{transform:translate(var(--px, 0px),var(--py, 0px));transition:transform .12s ease-out}.bb-scan{animation:bb-scanline 2.9s linear infinite;opacity:.45}.fren[data-activity=look] .bb-scan{animation-duration:1.3s;opacity:.8}.bb-tip{animation:bb-blink 1.7s steps(1,end) infinite;transform-origin:center}.bb-mouth{display:none}.bb-mouth-smile{display:block}.fren[data-pose=work] .bb-vp-eyes,.fren[data-activity=type] .bb-vp-eyes,.fren[data-mood=working] .bb-vp-eyes{display:none}.fren[data-pose=work] .bb-vp-code,.fren[data-activity=type] .bb-vp-code,.fren[data-mood=working] .bb-vp-code{display:block}.fren[data-pose=work] .bb-code-rows,.fren[data-activity=type] .bb-code-rows,.fren[data-mood=working] .bb-code-rows{animation:bb-code-scroll 2.2s steps(5,end) infinite}.bb-cursor{animation:bb-cursor .9s steps(1,end) infinite}.fren[data-activity=phone] .bb-vp-eyes{display:none}.fren[data-activity=phone] .bb-vp-feed{display:block}.fren[data-activity=phone] .bb-feed-rows{animation:bb-feed-scroll 2.6s linear infinite}.fren[data-activity=computer] .bb-vp-eyes,.fren[data-pose=computer] .bb-vp-eyes{display:none}.fren[data-activity=computer] .bb-vp-dash,.fren[data-pose=computer] .bb-vp-dash{display:block}.fren[data-activity=computer] .bb-bar,.fren[data-pose=computer] .bb-bar{animation:bb-bar 1.4s ease-in-out infinite}.bb-bar-2{animation-delay:.18s!important}.bb-bar-3{animation-delay:.36s!important}.bb-bar-4{animation-delay:.54s!important}.bb-trend{animation:bb-trend 2.8s ease-in-out infinite}.fren[data-pose=compute] .bb-vp-eyes,.fren[data-mood=thinking] .bb-vp-eyes{display:none}.fren[data-pose=compute] .bb-vp-wave,.fren[data-mood=thinking] .bb-vp-wave{display:block}.fren[data-pose=compute] .bb-prog-fill,.fren[data-mood=thinking] .bb-prog-fill{animation:bb-prog 1.8s ease-in-out infinite}.fren[data-pose=compute] .bb-spin,.fren[data-mood=thinking] .bb-spin{animation:bb-spin 1s linear infinite;transform-origin:24px 23px}.fren[data-pose=compute] .bb-tip,.fren[data-mood=thinking] .bb-tip{animation-duration:.5s}.fren[data-mood=concerned] .bb-vp-eyes{display:none}.fren[data-mood=concerned] .bb-vp-alert{display:block}.fren[data-mood=concerned] .bb-alert-g{animation:bb-alert .7s steps(2,end) infinite}.fren[data-mood=concerned] .fren-svg{animation:bb-fret .4s ease-in-out infinite}.fren[data-mood=concerned] .bb-screen-rect{fill:#2a100f}.fren[data-mood=sleeping] .bb-vp-eyes,.fren[data-pose=charge] .bb-vp-eyes{display:none}.fren[data-mood=sleeping] .bb-vp-sleep,.fren[data-pose=charge] .bb-vp-sleep{display:block}.fren[data-mood=sleeping] .bb-screen-rect,.fren[data-pose=charge] .bb-screen-rect{fill:#06201d}.fren[data-mood=sleeping] .bb-batt-fill,.fren[data-pose=charge] .bb-batt-fill{animation:bb-batt 3.2s ease-in-out infinite}.fren[data-mood=sleeping] .fren-zzz,.fren[data-pose=charge] .fren-zzz{display:flex}.fren[data-mood=sleeping] .bb-charger,.fren[data-pose=charge] .bb-charger{opacity:1}.fren[data-mood=sleeping] .fren-svg,.fren[data-pose=charge] .fren-svg{animation:bb-powerdown 4.6s ease-in-out infinite}.fren[data-mood=sleeping] .bb-scan,.fren[data-pose=charge] .bb-scan{opacity:0}.fren[data-mood=sleeping] .bb-tip,.fren[data-pose=charge] .bb-tip{animation-duration:3.2s}.fren[data-pose=broadcast] .bb-signal{opacity:1}.fren[data-pose=broadcast] .bb-ring-1{animation:bb-ring 1.6s ease-out 0s infinite}.fren[data-pose=broadcast] .bb-ring-2{animation:bb-ring 1.6s ease-out .53s infinite}.fren[data-pose=broadcast] .bb-ring-3{animation:bb-ring 1.6s ease-out 1.06s infinite}.fren[data-pose=broadcast] .bb-tip{animation-duration:.6s}.fren[data-mood=thinking] .bb-mouth-smile{display:none}.fren[data-mood=thinking] .bb-mouth-small{display:block}.fren[data-mood=working] .bb-mouth-smile{display:none}.fren[data-mood=working] .bb-mouth-small{display:block}.fren[data-mood=working] .fren-svg{animation:bb-idle 2.4s ease-in-out infinite}.fren[data-mood=working] .bb-head{transform:rotate(-2deg)}.fren[data-mood=happy] .bb-mouth-smile{display:none}.fren[data-mood=happy] .bb-mouth-grin{display:block}.fren[data-mood=happy] .fren-svg{animation:bb-snaphop .42s steps(2,end) 0s 3}.fren[data-mood=happy] .bb-screen-rect{animation:bb-flash .42s steps(2,end) 0s 3}.fren[data-mood=happy] .bb-tip{animation-duration:.28s}.fren[data-mood=concerned] .bb-mouth-smile{display:none}.fren[data-mood=concerned] .bb-mouth-frown{display:block}.fren[data-mood=sleeping] .bb-mouth-smile{display:none}.fren[data-mood=sleeping] .bb-mouth-small,.fren[data-mood=bashful] .bb-blush{display:block}.fren[data-mood=bashful] .bb-cheeks{opacity:0}.fren[data-mood=bashful] .fren-pupil{transform:translate(1.6px,1.2px)!important}.fren[data-mood=bashful] .fren-svg{animation:bb-shy 3.4s ease-in-out infinite}.fren[data-pose=sit] .fren-feet,.fren[data-pose=rest] .fren-feet,.fren[data-pose=sleep] .fren-feet,.fren[data-pose=charge] .fren-feet{opacity:0}.fren[data-pose=sit] .fren-svg,.fren[data-pose=rest] .fren-svg{animation:bb-idle 4s ease-in-out infinite}.fren[data-activity=look] .fren-feet,.fren[data-activity=type] .fren-feet,.fren[data-activity=type] .fren-legs,.fren[data-activity=phone] .fren-feet,.fren[data-activity=phone] .fren-legs,.fren[data-activity=computer] .fren-feet,.fren[data-activity=computer] .fren-legs,.fren[data-pose=work] .fren-feet,.fren[data-pose=work] .fren-legs,.fren[data-pose=compute] .fren-feet,.fren[data-pose=compute] .fren-legs,.fren[data-pose=chill] .fren-feet,.fren[data-pose=chill] .fren-legs,.fren[data-pose=sit] .fren-legs,.fren[data-pose=rest] .fren-legs{opacity:0;transition:opacity .2s ease}.fren[data-pose=dance] .fren-svg{animation:bb-robotdance .9s steps(3,end) infinite}.fren[data-pose=dance] .bb-mouth-smile{display:none}.fren[data-pose=dance] .bb-mouth-grin{display:block}.fren[data-pose=chill] .bb-shades{opacity:1;transform:none;transition-delay:.15s}.fren[data-pose=chill] .fren-svg{animation:bb-chill 3.6s ease-in-out infinite}.fren[data-pose=party] .fren-svg{animation:bb-robotdance .8s steps(3,end) infinite}.fren[data-pose=party] .bb-mouth-smile{display:none}.fren[data-pose=party] .bb-mouth-grin{display:block}.fren[data-pose=party] .bb-vp-eyes{display:none}.fren[data-pose=party] .bb-vp-party{display:block}.fren[data-pose=party] .bb-heart-1{animation:bb-heart 1.2s ease-out 0s infinite}.fren[data-pose=party] .bb-heart-2{animation:bb-heart 1.2s ease-out .4s infinite}.fren[data-pose=party] .bb-heart-3{animation:bb-heart 1.2s ease-out .8s infinite}.fren[data-pose=party] .fren-confetti{opacity:1}.fren[data-pose=party] .fren-cb-1{animation:bb-confetti 1.1s linear 0s infinite}.fren[data-pose=party] .fren-cb-2{animation:bb-confetti 1.1s linear .3s infinite}.fren[data-pose=party] .fren-cb-3{animation:bb-confetti 1.1s linear .6s infinite}.fren[data-pose=party] .fren-cb-4{animation:bb-confetti 1.1s linear .9s infinite}.fren[data-pose=point] .fren-arm{display:block;transform-box:fill-box;transform-origin:0% 50%;animation:bb-point .7s ease-in-out infinite}.fren[data-pose=point] .bb-mouth-smile{display:none}.fren[data-pose=point] .bb-mouth-grin{display:block}.fren[data-pose=point] .fren-svg{animation:bb-snaphop .5s steps(2,end) infinite}.fren[data-pose=bye] .bb-mouth-smile{display:none}.fren[data-pose=bye] .bb-mouth-grin{display:block}.fren[data-pose=bye] .fren-arm{display:block;transform-box:fill-box;transform-origin:0% 50%;animation:bb-wave .45s ease-in-out infinite}.fren[data-pose=bye] .fren-bubble,.fren.is-talking .fren-bubble{display:block}.fren-leg{transform-origin:50% 0}.fren[data-activity=walk] .fren-leg-l,.fren[data-pose=dance] .fren-leg-l,.fren[data-pose=party] .fren-leg-l{animation:bb-step-l .5s steps(2,end) infinite}.fren[data-activity=walk] .fren-leg-r,.fren[data-pose=dance] .fren-leg-r,.fren[data-pose=party] .fren-leg-r{animation:bb-step-r .5s steps(2,end) infinite}.fren[data-activity=walk] .fren-svg{animation:bb-stomp .5s steps(2,end) infinite}.bb-shades,.fren-confetti,.bb-charger,.bb-signal,.fren-arm{opacity:0}.fren-arm{display:none}.bb-shades{transform:translateY(-3px);transition:opacity .2s ease,transform .3s cubic-bezier(.34,1.56,.64,1)}.bb-signal{transition:opacity .2s ease}.bb-charger{transition:opacity .25s ease}.fren[data-activity=call] .bb-vp-eyes{display:none}.fren[data-activity=call] .bb-vp-call{display:block}.fren[data-activity=call] .bb-call-dots{animation:bb-call-signal 1.4s steps(2,end) infinite}.fren[data-activity=call] .fren-arm{display:block;transform-box:fill-box;transform-origin:0% 50%;animation:bb-hold-phone 2s ease-in-out infinite}.fren[data-activity=call] .fren-feet,.fren[data-activity=call] .fren-legs{opacity:0}@keyframes bb-call-signal{0%,to{opacity:1}50%{opacity:.3}}@keyframes bb-hold-phone{0%,to{transform:rotate(-40deg) translateY(-4px)}50%{transform:rotate(-46deg) translateY(-6px)}}.fren{cursor:pointer}.fren[data-activity=look] .fren-pupil{animation:bb-look 2.6s ease-in-out infinite}.bb-head{transform-box:fill-box;transform-origin:50% 60%;transition:transform .4s cubic-bezier(.34,1.56,.64,1);animation:bb-sway 7s ease-in-out infinite}.fren[data-pose=work] .bb-head,.fren[data-activity=type] .bb-head,.fren[data-activity=computer] .bb-head,.fren[data-pose=compute] .bb-head{animation:none;transform:rotate(-2deg)}.fren-zzz{display:none;position:absolute;top:-2px;right:-2px;flex-direction:row;gap:1px;align-items:flex-end;font-family:IBM Plex Mono,monospace;font-weight:700;color:var(--bb-tip)}.fren-zzz span{font-size:9px;opacity:0;animation:bb-zzz 2.6s ease-in-out infinite}.fren-zzz span:nth-child(1){font-size:8px;animation-delay:0s}.fren-zzz span:nth-child(2){font-size:10px;animation-delay:.5s}.fren-zzz span:nth-child(3){font-size:12px;animation-delay:1s}.fren-thinkdots,.fren-eyes-closed{display:none}.fren-bubble{position:absolute;top:-20px;right:-46px;font-family:IBM Plex Mono,Apple Symbols,monospace;font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--bb-lo);background:#eafdf9;border:2px solid var(--bb-lo);padding:3px 8px;border-radius:11px 11px 11px 3px;white-space:nowrap;animation:bb-pop .32s cubic-bezier(.34,1.56,.64,1) both;box-shadow:0 2px #0000000d;display:none}.fren-recall{position:absolute;right:16px;bottom:-16px;z-index:3;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.03em;color:var(--muted);background:var(--paper-2);border:1.5px solid var(--rule);border-radius:8px;padding:2px 9px;cursor:pointer;line-height:1.5;opacity:.72;transition:all .2s ease}.fren-recall:hover{opacity:1;color:var(--bb-tip);border-color:var(--bb-lo);transform:translateY(-1px)}.fren-recall[hidden]{display:none}@keyframes bb-idle{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}@keyframes bb-screenpulse{0%,to{opacity:.5}50%{opacity:.85}}@keyframes bb-eyeblink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.12)}}@keyframes bb-blink{0%,49%{opacity:1}50%,to{opacity:.28}}@keyframes bb-scanline{0%{transform:translate(-12px)}to{transform:translate(12px)}}@keyframes bb-look{0%,to{transform:translate(0)}25%{transform:translate(-1.4px)}75%{transform:translate(1.4px)}}@keyframes bb-sway{0%,to{transform:perspective(300px) rotateY(-6deg)}50%{transform:perspective(300px) rotateY(6deg)}}@keyframes bb-stomp{0%{transform:translateY(0)}50%{transform:translateY(-4px)}51%{transform:translateY(-4px)}to{transform:translateY(0)}}@keyframes bb-step-l{0%,to{transform:rotate(0)}50%{transform:rotate(-20deg)}}@keyframes bb-step-r{0%,to{transform:rotate(0)}50%{transform:rotate(20deg)}}@keyframes bb-snaphop{0%{transform:translateY(0)}50%{transform:translateY(-7px)}to{transform:translateY(0)}}@keyframes bb-robotdance{0%{transform:rotate(-7deg) translateY(0)}33%{transform:rotate(0) translateY(-3px)}66%{transform:rotate(7deg) translateY(0)}to{transform:rotate(-7deg) translateY(0)}}@keyframes bb-fret{0%,to{transform:translate(0)}25%{transform:translate(-1.6px)}75%{transform:translate(1.6px)}}@keyframes bb-shy{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg) translateY(-1px)}}@keyframes bb-chill{0%,to{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg)}}@keyframes bb-powerdown{0%{transform:translateY(0) scaleY(1)}12%{transform:translateY(2px) scaleY(.97)}to{transform:translateY(2px) scaleY(.97)}}@keyframes bb-flash{0%,to{fill:var(--bb-dark)}50%{fill:#1d6f66}}@keyframes bb-code-scroll{0%{transform:translateY(0)}to{transform:translateY(-6px)}}@keyframes bb-cursor{0%,50%{opacity:1}50.01%,to{opacity:0}}@keyframes bb-feed-scroll{0%{transform:translateY(0)}to{transform:translateY(-7px)}}@keyframes bb-bar{0%,to{transform:scaleY(.45)}50%{transform:scaleY(1)}}@keyframes bb-trend{0%,to{transform:translateY(1.5px)}50%{transform:translateY(-1.5px)}}@keyframes bb-prog{0%{transform:scaleX(.05)}70%{transform:scaleX(1)}to{transform:scaleX(.05)}}@keyframes bb-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bb-alert{0%,49%{opacity:1}50%,to{opacity:.25}}@keyframes bb-batt{0%{transform:scaleX(.08)}90%{transform:scaleX(1)}to{transform:scaleX(1)}}@keyframes bb-ring{0%{transform:scale(.3);opacity:.8}to{transform:scale(1.6);opacity:0}}@keyframes bb-heart{0%{transform:translateY(0) scale(.6);opacity:0}25%{opacity:1}to{transform:translateY(-7px) scale(1);opacity:0}}@keyframes bb-confetti{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(30px) rotate(220deg);opacity:0}}@keyframes bb-point{0%,to{transform:rotate(2deg)}50%{transform:rotate(-12deg)}}@keyframes bb-wave{0%,to{transform:rotate(8deg)}50%{transform:rotate(-34deg)}}@keyframes bb-zzz{0%{opacity:0;transform:translateY(2px)}30%{opacity:1}to{opacity:0;transform:translate(4px,-10px)}}@keyframes bb-pop{0%{opacity:0;transform:scale(.5) translate(-4px,6px)}to{opacity:1;transform:none}}@media(max-width:720px){.fren-recall{display:none}}@media(prefers-reduced-motion:reduce){.fren-svg,.bb-eyes,.bb-scan,.bb-tip,.bb-head,.bb-code-rows,.bb-feed-rows,.bb-bar,.bb-trend,.bb-prog-fill,.bb-spin,.bb-batt-fill,.bb-ring-1,.bb-ring-2,.bb-ring-3,.bb-heart-1,.bb-heart-2,.bb-heart-3,.fren-leg,.fren-cb-1,.fren-cb-2,.fren-cb-3,.fren-cb-4,.fren-zzz span,.fren-pupil,.bb-screen-glow,.bb-cursor,.fren-arm{animation:none!important}.fren{transition:none!important}}.fren[data-variant=installer]{position:relative;left:auto;bottom:auto;right:auto;width:88px;height:92px;transform:none!important;transition:none;filter:drop-shadow(0 6px 9px rgba(15,7,2,.4)) drop-shadow(0 0 8px rgba(111,179,168,.2))}.fren[data-variant=installer] .fren-svg{width:100%;height:100%}.fren[data-variant=installer] .fren-bubble{top:-16px;right:auto;left:78%;font-size:14px;padding:4px 10px;border-radius:12px 12px 3px}@media(max-width:720px){.fren[data-variant=patrol],.fren-recall{display:none}}.fren[data-variant=stage]{position:relative;left:auto;right:auto;bottom:auto;width:200px;height:220px;transform:none!important;transition:none;filter:drop-shadow(0 10px 16px rgba(15,7,2,.45)) drop-shadow(0 0 22px rgba(111,179,168,.28))}.fren[data-variant=stage] .fren-svg{width:100%;height:100%}.fren.is-stats .fren-svg{animation:none!important;transform:scale(2)!important;transform-origin:50% 92%}.fren .bb-vp-stats{display:none}.fren.is-stats .bb-vp-stats{display:block}.fren.is-stats .bb-vp-eyes{display:none}html[data-motion=off] .fren.is-stats .fren-svg{transition:none}.fren[data-variant=stage] .fren-bubble{top:-6px;right:auto;left:86%;font-size:15px;padding:5px 12px;border-radius:13px 13px 13px 3px;white-space:nowrap}.fren[data-variant=stage] .fren-zzz{font-size:16px;top:6px;right:6px}.awx[data-astro-cid-ko2qz3lb]{display:inline-flex;align-items:center;gap:1px;font-family:IBM Plex Mono,ui-monospace,monospace;font-weight:600;font-size:var(--awx-size, 13px);letter-spacing:.01em;line-height:1}.awx-b[data-astro-cid-ko2qz3lb]{color:currentColor;opacity:.45;font-weight:400}.awx-w[data-astro-cid-ko2qz3lb]{background:linear-gradient(90deg,#3d6b4f,#4d8563 18%,#a0724a 46%,#d9ae52,#c97b3e,#4d8563);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.awx-swath[data-astro-cid-ko2qz3lb]{display:inline-block;width:2.4em;height:.9em;margin:0 .18em;border-radius:2px;background:var(--swath-grad, linear-gradient(95deg, #3d6b4f, #a0724a 60%, #d9ae52));-webkit-mask:var(--brush) no-repeat center / 100% 100%;mask:var(--brush) no-repeat center / 100% 100%;--brush: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 40' preserveAspectRatio='none'%3E%3Cpath fill='%23000' d='M3 11 Q30 5 64 8 Q88 10 100 7 Q112 13 110 21 Q113 31 99 33 Q70 38 36 34 Q16 32 5 33 Q-1 22 3 11 Z'/%3E%3Crect fill='%23000' x='100' y='17' width='16' height='2.4' rx='1'/%3E%3Crect fill='%23000' x='102' y='23' width='12' height='1.8' rx='1'/%3E%3C/svg%3E")}.hdr-controls[data-astro-cid-hqkt6fd7]{display:inline-flex;align-items:center;gap:2px;flex:0 0 auto;padding:2px;border:1px solid var(--rule);border-radius:10px;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.hc-btn[data-astro-cid-hqkt6fd7]{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:28px;min-width:28px;padding:0 6px;border:0;border-radius:7px;background:transparent;color:var(--ink-2);cursor:pointer;transition:color .15s ease,background .15s ease}.hc-btn[data-astro-cid-hqkt6fd7]:hover{color:var(--signal-ink);background:var(--glass-bg-hi)}.hc-btn[data-astro-cid-hqkt6fd7]:focus-visible{outline:2px solid var(--signal);outline-offset:1px}.ti-moon[data-astro-cid-hqkt6fd7],html[data-theme=light] .ti-sun[data-astro-cid-hqkt6fd7]{display:none}html[data-theme=light] .ti-moon[data-astro-cid-hqkt6fd7]{display:inline}.hc-motion[data-astro-cid-hqkt6fd7] path[data-astro-cid-hqkt6fd7]{stroke-dasharray:30;animation:hc-wave 2.4s linear infinite}.hc-btn[data-astro-cid-hqkt6fd7][data-motion-toggle].is-off{color:var(--muted)}.hc-btn[data-astro-cid-hqkt6fd7][data-motion-toggle].is-off .hc-motion[data-astro-cid-hqkt6fd7] path[data-astro-cid-hqkt6fd7]{animation:none}@keyframes hc-wave{to{stroke-dashoffset:-30}}.hc-perf-tag[data-astro-cid-hqkt6fd7]{font-family:IBM Plex Mono,monospace;font-size:9.5px;letter-spacing:.04em;line-height:1;text-transform:uppercase;color:var(--muted)}.hc-btn[data-astro-cid-hqkt6fd7][data-perf-toggle].is-off{color:var(--signal-ink)}.hc-btn[data-astro-cid-hqkt6fd7][data-perf-toggle].is-off .hc-needle[data-astro-cid-hqkt6fd7]{transform:rotate(-32deg);transform-origin:12px 12px}html[data-motion=off] .hc-motion[data-astro-cid-hqkt6fd7] path[data-astro-cid-hqkt6fd7]{animation:none!important}@media(prefers-reduced-motion:reduce){.hc-motion[data-astro-cid-hqkt6fd7] path[data-astro-cid-hqkt6fd7]{animation:none}}@media(max-width:760px){.hdr-controls[data-astro-cid-hqkt6fd7]{align-self:flex-start;margin-top:.2rem;gap:4px}.hc-btn[data-astro-cid-hqkt6fd7]{height:44px;min-width:44px;padding:0 10px}}.masthead[data-astro-cid-dmqpwcec]{position:sticky;top:0;z-index:50;background:var(--masthead-bg, rgba(25, 19, 12, .7));-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);border-bottom:1px solid var(--rule)}.strip[data-astro-cid-dmqpwcec]{background:#00000052;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase}.strip-inner[data-astro-cid-dmqpwcec]{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.45rem 1.5rem}.strip-item[data-astro-cid-dmqpwcec]{white-space:nowrap;flex:0 0 auto}.strip-mid[data-astro-cid-dmqpwcec]{flex:1 1 auto;min-width:0;text-align:center;color:var(--signal);font-weight:600;overflow:hidden;text-overflow:ellipsis}@media(max-width:980px){.strip-mid[data-astro-cid-dmqpwcec]{display:none}}@media(max-width:520px){.strip-inner[data-astro-cid-dmqpwcec]{justify-content:flex-end;padding:.4rem 1.1rem}.strip-item[data-astro-cid-dmqpwcec]:not(.strip-mid):first-child{display:none}.strip[data-astro-cid-dmqpwcec]{font-size:9.5px;letter-spacing:.12em}}.brand-bar[data-astro-cid-dmqpwcec]{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.5rem;padding:1.35rem 2.25rem}.brand-block[data-astro-cid-dmqpwcec]{display:inline-flex;align-items:baseline;gap:.55rem;text-decoration:none}.nav-shell[data-astro-cid-dmqpwcec]{display:contents}.nav-primary[data-astro-cid-dmqpwcec]{display:flex;align-items:center;justify-content:center;gap:2.4rem;min-width:0}.nav-actions[data-astro-cid-dmqpwcec]{display:flex;align-items:center;justify-content:flex-end;gap:1.1rem}.brand-glyph[data-astro-cid-dmqpwcec]{position:relative;display:inline-block;line-height:1;isolation:isolate}.brand-die[data-astro-cid-dmqpwcec]{display:inline-block;font-family:IBM Plex Mono,monospace;font-size:28px;font-weight:800;background:var(--swath-grad, linear-gradient(120deg, #5FA877, #88CCA0 50%, #C7F0D4));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;filter:drop-shadow(0 1px 1px rgba(0,0,0,.45)) drop-shadow(0 0 .5px rgba(0,0,0,.4));transform-origin:50% 78%;animation:brand-stamp .5s cubic-bezier(.2,1.45,.32,1) .12s both}html[data-theme=light] .brand-die[data-astro-cid-dmqpwcec]{background:var(--swath-grad-light, linear-gradient(120deg, #1B5132, #2F7D4F 55%, #3D8A5A));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;filter:drop-shadow(0 1px 0 rgba(255,255,255,.7))}.brand-block[data-astro-cid-dmqpwcec]:hover .brand-die[data-astro-cid-dmqpwcec]{filter:drop-shadow(0 1px 1px rgba(0,0,0,.45)) drop-shadow(0 0 6px rgba(95,168,119,.45))}@keyframes brand-stamp{0%{transform:translateY(-4px) scale(1.6) rotate(-7deg);opacity:0}55%{transform:translateY(1px) scale(.9) rotate(1.5deg);opacity:1}to{transform:translateY(0) scale(1) rotate(0);opacity:1}}@media(prefers-reduced-motion:reduce){.brand-die[data-astro-cid-dmqpwcec]{animation:none}}.brand-text[data-astro-cid-dmqpwcec]{font-family:IBM Plex Mono,monospace;font-weight:700;font-size:22px;letter-spacing:-.02em;color:var(--ink)}.brand-block[data-astro-cid-dmqpwcec]:hover .brand-text[data-astro-cid-dmqpwcec]{color:var(--signal-ink)}.link[data-astro-cid-dmqpwcec]{font-family:IBM Plex Mono,monospace;font-size:12.5px;font-weight:500;color:var(--ink-2);letter-spacing:-.005em;position:relative}.link[data-astro-cid-dmqpwcec]:hover,.link[data-astro-cid-dmqpwcec].active{color:var(--ink)}.link[data-astro-cid-dmqpwcec].active:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--signal)}.link-aw[data-astro-cid-dmqpwcec]{display:inline-flex;align-items:center;opacity:.94;transition:opacity .15s ease,transform .15s ease}.link-aw[data-astro-cid-dmqpwcec]:hover{opacity:1;transform:translateY(-1px)}.link-aw[data-astro-cid-dmqpwcec].active:after{display:none}.link-gh[data-astro-cid-dmqpwcec]{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .72rem;border:1px solid var(--glass-edge);border-radius:13px;background:var(--glass-bg);color:var(--ink-2);transition:background .15s,color .15s,border-color .15s}.link-gh[data-astro-cid-dmqpwcec] svg[data-astro-cid-dmqpwcec]{flex:0 0 auto}.link-gh-label[data-astro-cid-dmqpwcec]{font-family:IBM Plex Mono,monospace;font-size:12.5px;font-weight:500}.link-gh[data-astro-cid-dmqpwcec]:hover{background:var(--glass-bg-hi);color:var(--ink);border-color:var(--signal)}.nav-toggle[data-astro-cid-dmqpwcec]{display:none;background:var(--glass-bg);border:1px solid var(--glass-edge);border-radius:13px;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);padding:11px 9px;cursor:pointer;flex-direction:column;gap:4px;width:42px;min-height:42px;align-items:stretch;justify-content:center}.nav-toggle[data-astro-cid-dmqpwcec] span[data-astro-cid-dmqpwcec]{display:block;height:2px;background:var(--ink);transition:transform .2s,opacity .2s}.nav-toggle[data-astro-cid-dmqpwcec][aria-expanded=true] span[data-astro-cid-dmqpwcec]:nth-child(1){transform:translateY(6px) rotate(45deg)}.nav-toggle[data-astro-cid-dmqpwcec][aria-expanded=true] span[data-astro-cid-dmqpwcec]:nth-child(2){opacity:0}.nav-toggle[data-astro-cid-dmqpwcec][aria-expanded=true] span[data-astro-cid-dmqpwcec]:nth-child(3){transform:translateY(-6px) rotate(-45deg)}@media(max-width:760px){.brand-bar[data-astro-cid-dmqpwcec]{grid-template-columns:1fr auto;gap:.75rem}.nav-toggle[data-astro-cid-dmqpwcec]{display:inline-flex}.nav-shell[data-astro-cid-dmqpwcec]{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;max-height:calc(100vh - 100%);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.4rem 1.5rem 1.2rem;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--rule)}.nav-shell[data-astro-cid-dmqpwcec].open{display:flex}.nav-primary[data-astro-cid-dmqpwcec]{flex-direction:column;align-items:stretch;gap:0}.nav-actions[data-astro-cid-dmqpwcec]{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;margin-top:.4rem;padding-top:.4rem;border-top:1px solid var(--rule-soft)}.link[data-astro-cid-dmqpwcec]{font-size:15px;padding:.9rem 0;min-height:44px;box-sizing:border-box;border-bottom:1px solid var(--rule-soft)}.nav-actions[data-astro-cid-dmqpwcec] .link[data-astro-cid-dmqpwcec]:last-of-type{border-bottom:none}.link-gh[data-astro-cid-dmqpwcec]{border:none;border-radius:0;padding:.9rem 0;min-height:44px;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--ink)}.link-gh[data-astro-cid-dmqpwcec]:hover{background:transparent;color:var(--ink);border-color:transparent}.link-gh-label[data-astro-cid-dmqpwcec]{font-size:15px}.link-aw[data-astro-cid-dmqpwcec]{padding:.9rem 0;min-height:44px}}@media(max-width:600px){.brand-bar[data-astro-cid-dmqpwcec]{padding:.95rem 1.1rem}.nav-shell[data-astro-cid-dmqpwcec]{padding:.4rem 1.1rem 1.2rem}}.fren-dock[data-astro-cid-dmqpwcec]{position:relative}@supports (animation-timeline: scroll()){.fren-dock[data-astro-cid-dmqpwcec]{animation:fren-dock-rise linear both;animation-timeline:scroll(root);animation-range:0 300px;will-change:transform}@keyframes fren-dock-rise{0%{transform:translateY(84px)}to{transform:translateY(0)}}}@media(prefers-reduced-motion:reduce){.fren-dock[data-astro-cid-dmqpwcec]{animation:none!important;transform:none!important}}.colophon[data-astro-cid-sz7xmlte]{margin-top:5rem;background:var(--paper)}.colophon-inner[data-astro-cid-sz7xmlte]{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:2.5rem;padding-top:3rem;padding-bottom:2.5rem}@media(max-width:760px){.colophon-inner[data-astro-cid-sz7xmlte]{grid-template-columns:1fr 1fr;gap:1.75rem}.col-brand[data-astro-cid-sz7xmlte]{grid-column:1 / -1}}.brand-block[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:baseline;gap:.5rem;margin-bottom:.8rem}.brand-glyph[data-astro-cid-sz7xmlte]{font-family:IBM Plex Mono,monospace;font-size:26px;font-weight:700;color:var(--signal);line-height:1}.brand-text[data-astro-cid-sz7xmlte]{font-family:IBM Plex Mono,monospace;font-weight:700;font-size:20px;color:var(--ink)}.brand-tag[data-astro-cid-sz7xmlte]{color:var(--ink-2);max-width:30ch;margin:0 0 .55rem;font-size:14px}.brand-meta[data-astro-cid-sz7xmlte]{color:var(--muted);font-size:12.5px;margin:0;font-family:var(--font-hack);font-style:normal;max-width:40ch}.brand-meta[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--signal);text-underline-offset:3px}.col[data-astro-cid-sz7xmlte] h4[data-astro-cid-sz7xmlte]{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin:0 0 1rem;font-weight:700}.col[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.55rem}.col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--ink-2);font-size:14px}.col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--signal-ink)}.col[data-astro-cid-sz7xmlte] li[data-astro-cid-sz7xmlte].muted{color:var(--muted);font-size:12.5px;font-family:IBM Plex Mono,monospace}.colophon-bar[data-astro-cid-sz7xmlte]{display:flex;justify-content:center;flex-wrap:wrap;gap:1rem;padding-top:1rem;padding-bottom:2rem;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--muted);letter-spacing:.04em}.colophon-bar[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--ink-2)}.colophon-bar[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--signal-ink)}.colophon-bar[data-astro-cid-sz7xmlte] .dot[data-astro-cid-sz7xmlte]{margin:0 .6rem;color:var(--rule-soft)}.colophon-bar[data-astro-cid-sz7xmlte] .ver[data-astro-cid-sz7xmlte]{color:var(--signal-ink)}.colophon-bar[data-astro-cid-sz7xmlte] .right[data-astro-cid-sz7xmlte]{font-family:var(--font-hack);font-style:normal;font-size:12px}.cc-banner[data-astro-cid-o5r437bz]{position:fixed;left:16px;right:16px;bottom:16px;z-index:200;background:var(--glass-bg-hi);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-edge);border-radius:var(--glass-radius, 12px);padding:14px 18px;box-shadow:var(--glass-shadow);animation:cc-in .42s cubic-bezier(.2,.8,.2,1) .6s both}@keyframes cc-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.cc-banner[data-astro-cid-o5r437bz][hidden]{display:none!important}.cc-inner[data-astro-cid-o5r437bz]{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center}.cc-copy[data-astro-cid-o5r437bz]{font-family:Switzer,system-ui,sans-serif;font-size:13.5px;line-height:1.55;color:var(--ink-2)}.cc-copy[data-astro-cid-o5r437bz] b[data-astro-cid-o5r437bz]{color:var(--ink);font-weight:600;margin-right:4px}.cc-more[data-astro-cid-o5r437bz]{margin-left:8px;color:var(--signal-ink);border-bottom:1px solid var(--signal-dim)}.cc-actions[data-astro-cid-o5r437bz]{display:flex;gap:8px}.cc-btn[data-astro-cid-o5r437bz]{padding:9px 18px;border-radius:3px;font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;border:1px solid transparent;transition:transform .14s,border-color .18s,background .18s,color .18s}.cc-accept[data-astro-cid-o5r437bz]{background:#5fa877;color:#06140d;border-color:#5fa877}.cc-accept[data-astro-cid-o5r437bz]:hover{transform:translateY(-1px)}.cc-reject[data-astro-cid-o5r437bz]{background:transparent;color:var(--ink-2);border-color:var(--rule)}.cc-reject[data-astro-cid-o5r437bz]:hover{color:var(--ink);border-color:var(--signal)}@media(max-width:720px){.cc-inner[data-astro-cid-o5r437bz]{grid-template-columns:1fr;gap:12px}.cc-actions[data-astro-cid-o5r437bz]{justify-content:flex-start}.cc-copy[data-astro-cid-o5r437bz]{font-size:12.5px}}:root{--paper: #0C140F;--paper-2: #121E17;--paper-3: #1A2A20;--ink: #E3EBE0;--ink-2: #A9BCA9;--muted: #7E927E;--muted-2: #56654F;--rule: rgba(227, 235, 224, .12);--rule-soft: rgba(227, 235, 224, .06);--signal: #5FA877;--signal-dim: rgba(95, 168, 119, .18);--signal-ink: #88CCA0;--sun: rgba(77, 133, 99, .28);--haze1: rgba(120, 150, 80, .12);--haze2: rgba(60, 120, 90, .12);--masthead-bg: rgba(10, 18, 13, .74);--vignette: rgba(0, 0, 0, .55);--grain-opacity: .09;--accent: #5FA877;--accent-ink: #88CCA0;--accent-dim: rgba(104, 142, 118, .16);--moss: #688E76;--moss-ink: #8AB397;--ochre: #BE9438;--ochre-ink: #D9AE52;--status: #6EBE89;--terminal-bg: #08110C;--terminal-fg: #E8DBC2;--terminal-accent: #88CCA0;--font-hack: "Hack Nerd Font Mono", "Hack", "IBM Plex Mono", ui-monospace, monospace;--glass-bg: rgba(18, 30, 23, .55);--glass-bg-hi: rgba(28, 46, 35, .7);--glass-edge: rgba(206, 255, 224, .18);--glass-blur: blur(10px);--glass-radius: 18px;--glass-shadow: 0 20px 48px rgba(0, 0, 0, .5), 0 4px 12px rgba(0, 0, 0, .38), inset 0 1px 0 rgba(214, 255, 230, .22), inset 0 -1px 0 rgba(0, 0, 0, .3);--glass-sheen: linear-gradient(135deg, rgba(200, 255, 218, .16), rgba(200, 255, 218, 0) 42%)}html[data-theme=light]{--paper: #F4F8F2;--paper-2: #EAF0E6;--paper-3: #D3E0CC;--ink: #0E1A12;--ink-2: #3C5446;--muted: #5E7464;--muted-2: #728C78;--rule: rgba(14, 26, 18, .14);--rule-soft: rgba(14, 26, 18, .07);--signal: #2E9E5B;--signal-dim: rgba(46, 158, 91, .22);--signal-ink: #1C6E40;--sun: rgba(46, 158, 91, .2);--haze1: rgba(132, 158, 70, .18);--haze2: rgba(63, 140, 99, .18);--masthead-bg: rgba(244, 248, 242, .82);--vignette: rgba(46, 64, 46, .16);--grain-opacity: .05;--accent: #34A368;--accent-ink: #237E4C;--accent-dim: rgba(52, 163, 104, .18);--moss: #5C8F6E;--moss-ink: #3A6B4D;--ochre: #9A6B1E;--ochre-ink: #7E5616;--status: #2E8B57;--status-ink: #247044;--teal-ink: #1E6B62;--signal-fill: #1C7E45;--terminal-bg: #0C140F;--terminal-fg: #E3EBE0;--terminal-accent: #88CCA0;--glass-bg: rgba(247, 251, 246, .66);--glass-bg-hi: rgba(250, 253, 249, .84);--glass-edge: rgba(31, 90, 57, .2);--glass-shadow: 0 18px 42px rgba(31, 58, 40, .16), 0 6px 16px rgba(31, 58, 40, .1), inset 0 1px 0 rgba(255, 255, 255, .85), inset 0 -1px 0 rgba(14, 26, 18, .06);--glass-sheen: linear-gradient(135deg, rgba(255, 255, 255, .5), rgba(255, 255, 255, 0) 46%);color-scheme:light}@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))){:root{--glass-blur: none;--glass-bg: rgba(14, 23, 17, .94);--glass-bg-hi: rgba(22, 36, 27, .96)}html[data-theme=light]{--glass-bg: rgba(247, 251, 246, .97);--glass-bg-hi: #fbfdfa}}@media(prefers-reduced-transparency:reduce){:root{--glass-blur: none;--glass-bg: rgba(14, 23, 17, .95);--glass-bg-hi: rgba(22, 36, 27, .97)}html[data-theme=light]{--glass-blur: none;--glass-bg: rgba(247, 251, 246, .98);--glass-bg-hi: #fbfdfa}}@media(max-width:760px){:root{--glass-blur: blur(8px)}}html[data-perf=lite]{--glass-blur: none;--glass-bg: rgba(16, 27, 21, .92);--glass-bg-hi: rgba(24, 40, 30, .95)}html[data-perf=lite][data-theme=light]{--glass-bg: rgba(247, 251, 246, .95);--glass-bg-hi: #fbfdfa}html[data-perf=lite] .field-card .tag{-webkit-backdrop-filter:none;backdrop-filter:none;background:#788c7d38}html[data-perf=lite][data-theme=light] .field-card .tag{background:#1f5a391a}html[data-perf=lite] body:after{display:none!important}html[data-perf=lite] *{mix-blend-mode:normal!important}html[data-perf=lite] .scroll-progress span,html[data-perf=lite] body:before{will-change:auto!important;animation:none!important}html[data-perf=lite] .reveal--depth{filter:none!important}html[data-perf=lite] .section--raised{box-shadow:inset 0 1px #d6ffe624,inset 0 -1px #0006!important}html[data-perf=lite][data-theme=light] .section--raised{box-shadow:inset 0 1px #ffffffe6,inset 0 -1px #1f3a2814!important}@font-face{font-family:Hack;src:url(/fonts/hack-regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Hack;src:url(/fonts/hack-bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:clip}.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--ink);color:var(--paper);padding:.6rem 1rem;border-radius:0 0 6px;font-family:var(--font-mono,monospace);font-size:13px}.skip-link:focus{left:0}.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:100;pointer-events:none}.scroll-progress span{display:block;height:100%;width:100%;transform-origin:0 50%;transform:scaleX(var(--sp, 0));background:linear-gradient(90deg,var(--signal),var(--signal-ink));box-shadow:0 0 8px #5fa87780;will-change:transform}@supports (animation-timeline: scroll()){.scroll-progress span{transform:scaleX(0);animation:sp-fill linear both;animation-timeline:scroll(root block);animation-range:0% 100%}}@keyframes sp-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}:focus-visible{outline:2px solid var(--signal-ink,#b83a0e);outline-offset:2px;border-radius:2px}body{background-image:radial-gradient(54rem 40rem at 50% -12%,rgba(95,168,119,.13),transparent 58%),radial-gradient(46rem 40rem at 85% 72%,rgba(60,120,90,.06),transparent 62%),radial-gradient(128% 108% at 50% 42%,transparent 52%,var(--vignette, rgba(0, 0, 0, .45)) 100%);background-attachment:fixed;background-repeat:no-repeat;--site-topo: url(/bg/oa-topo-dark.png)}body:after{content:"";position:fixed;inset:0;z-index:2;pointer-events:none;opacity:var(--grain-opacity, .05);mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px 160px}@media(prefers-reduced-transparency:reduce){body:after{display:none}}html,body{background-color:var(--paper);color:var(--ink);margin:0;font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,Helvetica Neue,system-ui,sans-serif;font-size:16px;line-height:1.6;overflow-x:clip;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(rgba(95,168,119,.05) 1px,transparent 1.6px);background-size:30px 30px;-webkit-mask-image:radial-gradient(125% 95% at 50% 0%,#000 28%,transparent 82%);mask-image:radial-gradient(125% 95% at 50% 0%,#000 28%,transparent 82%)}html[data-theme=light] body:before{background-image:radial-gradient(rgba(31,58,40,.07) 1px,transparent 1.6px)}html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}html[data-motion=off] .aurora,html[data-motion=off] .aurora__blob,html[data-motion=off] .grid-bg,html[data-motion=off] .grid-bg__plane{animation:none!important}html[data-theme=light] body{--site-topo: url(/bg/oa-topo-light.png);background-image:radial-gradient(56rem 42rem at 50% -12%,var(--haze2),transparent 58%),radial-gradient(48rem 40rem at 85% 70%,var(--haze1),transparent 62%),radial-gradient(40rem 34rem at 12% 30%,var(--sun),transparent 64%),radial-gradient(128% 108% at 50% 42%,transparent 52%,var(--vignette) 100%)}.site-topo{position:absolute;top:0;left:0;right:0;height:min(210vh,2100px);z-index:0;pointer-events:none;background-image:var(--site-topo, none);background-position:top center;background-size:cover;background-repeat:no-repeat;-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 56%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 56%,transparent 100%);opacity:.92}@media(prefers-reduced-transparency:reduce){.site-topo{opacity:.7}}body>*{position:relative;z-index:1}.drop-cap:first-letter{font-family:var(--font-hack);font-style:normal;font-size:5.5em;line-height:.85;float:left;padding-right:.12em;padding-top:.05em;color:var(--signal-ink);font-weight:400}.counter-num{display:inline-block;min-width:1ch;font-variant-numeric:tabular-nums}a{color:inherit;text-decoration:none}a:hover{color:var(--signal-ink)}::selection{background:var(--signal);color:#1f0d04}.container{max-width:1240px;margin:0 auto;padding:0 1.5rem}.container-wide{max-width:1360px;margin:0 auto;padding:0 1.5rem}.container-narrow{max-width:820px;margin:0 auto;padding:0 1.5rem}.container-prose{max-width:680px;margin:0 auto;padding:0 1.5rem}h1,h2,h3,h4{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,monospace;font-weight:700;letter-spacing:-.025em;line-height:1.04;margin:0 0 .5em;color:var(--ink)}h1{font-size:clamp(2.4rem,7vw,5rem);letter-spacing:-.04em}h2{font-size:clamp(1.5rem,3.2vw,2.3rem);letter-spacing:-.035em}h3{font-size:1.15rem;letter-spacing:-.02em}h4{font-size:.9rem;letter-spacing:-.005em;font-weight:600}p{margin:0 0 1em}strong{font-weight:600}.serif-italic{font-family:var(--font-hack);font-style:normal;font-weight:700;letter-spacing:-.03em;color:var(--signal-ink)}em.lede-em,.lede em{font-family:var(--font-hack);font-style:normal;font-weight:400;letter-spacing:-.005em}.marker{display:inline-flex;align-items:baseline;gap:.5rem;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}.marker .glyph{color:var(--signal);font-weight:700}.marker .num{color:var(--muted);margin-left:auto}.lede{color:var(--ink-2);font-size:1.05rem;max-width:56ch;line-height:1.55}.lede-big{color:var(--ink-2);font-size:clamp(.98rem,1.3vw,1.12rem);max-width:52ch;line-height:1.55;font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-weight:440;letter-spacing:-.011em}.lede-big strong,.lede-big b{color:var(--ink);font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1.4rem;font-family:IBM Plex Mono,monospace;font-size:12.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;border:1px solid var(--glass-edge);border-radius:13px;cursor:pointer;transition:transform .18s cubic-bezier(.22,1,.36,1),box-shadow .18s ease,background .18s ease,color .15s ease;position:relative}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--signal);color:var(--paper);border-color:#ffffff2e;box-shadow:0 8px 22px #00000059,inset 0 1px #ffffff38}.btn-primary:hover{box-shadow:0 12px 30px #0000006b,inset 0 1px #ffffff47}.btn-ghost{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);color:var(--ink);box-shadow:var(--glass-shadow)}.btn-ghost:hover{background:var(--glass-bg-hi);box-shadow:0 12px 28px #261e0c29,inset 0 1px #ffffffe6}.field-card{position:relative;padding:1.85rem 1.6rem 1.6rem;border:1px solid var(--glass-edge);border-radius:var(--glass-radius);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow);transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s ease,background .25s ease;isolation:isolate}.field-card:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:var(--glass-sheen);opacity:.7}.field-card:hover{transform:translateY(-4px);background:var(--glass-bg-hi);box-shadow:0 22px 48px #261e0c2e,0 4px 12px #261e0c14,inset 0 1px #fffffff2}html[data-theme=light] .field-card:hover{box-shadow:0 24px 50px -16px #1f3a2838,0 6px 16px #1f3a281a,inset 0 1px #fffffff2}.field-card .tag{position:absolute;top:.9rem;right:.9rem;padding:.22rem .55rem;border:1px solid var(--glass-edge);border-radius:999px;background:#fff6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.16em;font-weight:700;color:var(--ink-2);z-index:1}.field-card .tag.accent{background:var(--signal);border-color:#ffe6d266;color:#1f0d04}pre{font-family:IBM Plex Mono,monospace;font-size:13px;line-height:1.7;background:var(--terminal-bg);color:var(--terminal-fg);padding:1.25rem 1.4rem;overflow-x:auto;border:1px solid var(--glass-edge);border-radius:12px}code{font-family:IBM Plex Mono,monospace;font-size:.88em;background:var(--paper-2);padding:.1em .35em;border:1px solid var(--rule-soft);color:var(--ink)}pre code{background:transparent;padding:0;border:none;color:inherit}.section{padding:5rem 0}.section-tight{padding:3.5rem 0}.section-head{margin-bottom:2.5rem;max-width:74ch}.section-head .marker{margin-bottom:1.1rem}.section-head h2{margin-top:0;margin-bottom:.6rem}.section-head p{color:var(--ink-2);max-width:66ch}.hr-thick{height:0;border:none;border-top:1px solid var(--rule);margin:0}.hr-soft{height:0;border:none;border-top:1px solid var(--rule-soft);margin:0}.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}.reveal.in{opacity:1;transform:translateY(0)}.orch{opacity:0;transform:translateY(14px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i, 0) * 90ms + 80ms)}body.loaded .orch{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}.reveal--depth{opacity:1!important;transform:none!important;filter:none!important}}.section--raised{position:relative;isolation:isolate;background:radial-gradient(120% 70% at 50% 0%,rgba(95,168,119,.1),transparent 62%),linear-gradient(180deg,#17271d,#1d3026 55%,#16241b);box-shadow:inset 0 1px #d6ffe629,inset 0 -1px #00000073,0 -24px 50px -30px #000000d9,0 36px 70px -34px #000000e6}.section--raised:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(40rem 26rem at 78% 18%,rgba(95,168,119,.1),transparent 60%),radial-gradient(34rem 24rem at 12% 92%,rgba(60,120,90,.09),transparent 62%)}html[data-theme=light] .section--raised{background:radial-gradient(120% 70% at 50% 0%,rgba(47,125,79,.12),transparent 60%),linear-gradient(180deg,#e6f1e6,#dce9d9 55%,#e4efe4);box-shadow:inset 0 1px #ffffffeb,inset 0 -1px #1f3a281a,0 -16px 40px -26px #1f3a2833,0 26px 56px -30px #1f3a2842}.seam{height:1px;border:none;margin:0;background:radial-gradient(60% 100% at 50% 50%,var(--rule),transparent 80%)}.seam--glow{height:1px;border:none;margin:0;background:radial-gradient(50% 100% at 50% 50%,rgba(95,168,119,.35),transparent 78%)}html[data-theme=light] .seam{background:radial-gradient(62% 100% at 50% 50%,rgba(31,58,40,.22),transparent 78%)}html[data-theme=light] .seam--glow{background:radial-gradient(50% 100% at 50% 50%,rgba(47,125,79,.42),transparent 76%)}@keyframes dof-rise{0%{opacity:0;transform:translateY(28px) scale(.97);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){.reveal--depth{opacity:1;transform:none;animation:dof-rise linear both;animation-timeline:view();animation-range:entry 0% cover 30%}}}@keyframes atmo-drift{0%{transform:translateY(0)}to{transform:translateY(-40px)}}@supports (animation-timeline: scroll()){@media(prefers-reduced-motion:no-preference){body:before{will-change:transform;animation:atmo-drift linear both;animation-timeline:scroll(root block);animation-range:0% 100%}}}@media(max-width:760px){.section{padding:3.5rem 0}.section-tight{padding:2.5rem 0}.btn:after{display:none}.field-card{box-shadow:0 10px 26px #00000080,inset 0 1px #ffe4c629}.hero-cta .btn{flex:1 1 auto;min-height:48px}.btn{min-height:44px}}@media(max-width:600px){.container,.container-wide,.container-narrow,.container-prose{padding:0 1.1rem}.lede{font-size:1.08rem}pre{font-size:12px;padding:1rem 1.1rem}h1{font-size:clamp(2.5rem,11vw,3.2rem)}p a,dd a,li a,code{overflow-wrap:anywhere;word-break:break-word}}@media(max-width:380px){.container,.container-wide,.container-narrow,.container-prose{padding:0 .9rem}}
