@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace;--spacing:.25rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-display:"Geist Mono", ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\@container{container-type:inline-size}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.\!grid{display:grid!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.flex-shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.text-wrap{text-wrap:wrap}.uppercase{text-transform:uppercase}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}.callout{--c:var(--text-3);--c-bg:var(--c)}@supports (color:color-mix(in lab,red,red)){.callout{--c-bg:color-mix(in srgb, var(--c) 6%, var(--bg))}}.callout{border:3px double var(--c);margin:2.1rem 0 1.75rem;padding:0;position:relative}@supports (color:color-mix(in lab,red,red)){.callout{border:3px double color-mix(in srgb,var(--c) 62%,transparent)}}.callout{background:var(--c-bg);background-clip:padding-box;border-radius:0}.callout-indicator{z-index:1;background:linear-gradient(var(--bg) calc(50% + 1.5px),var(--c-bg) 0);max-width:calc(100% - 2rem);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;color:var(--c-text,var(--c));align-items:center;gap:.9ch;padding:0 1ch;font-size:.7rem;font-weight:700;line-height:1.3;display:flex;position:absolute;top:0;left:1rem;transform:translateY(calc(-50% - 1.5px))}.callout-indicator svg{display:none}.callout-indicator:before{content:var(--glyph,"!");letter-spacing:0}.callout-content{color:var(--text-2);padding:1.05rem 1.2rem .9rem;font-size:.92rem;line-height:1.65}.callout-content>:first-child{margin-top:0}.callout-content>:last-child{margin-bottom:0}.callout-content p{margin:0}.callout-content p+p,.callout-content p+ul,.callout-content p+ol,.callout-content ul+p,.callout-content ol+p{margin-top:.6rem}.callout-content ul,.callout-content ol{margin:.5rem 0 0}.callout-content strong{color:var(--text)}.callout-content code{font-size:.82rem}.callout-content a{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.callout-content a{-webkit-text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent)}}.callout-content a{text-underline-offset:3px}.callout-content a:hover{background:var(--accent);color:var(--on-red);text-decoration-color:#0000}.callout-note{--c:#4a9eff;--glyph:"i"}.callout-tip{--c:#3fb950;--glyph:"+"}.callout-important{--c:#a371f7;--glyph:"*"}.callout-warning{--c:#d29922;--glyph:"!"}.callout-caution{--c:var(--red);--c-text:var(--accent);--glyph:"×"}[data-theme=light] .callout-note{--c:#0969da}[data-theme=light] .callout-tip{--c:#1a7f37}[data-theme=light] .callout-important{--c:#8250df}[data-theme=light] .callout-warning{--c:#9a6700}[data-theme=light] .callout{--c-bg:var(--c)}@supports (color:color-mix(in lab,red,red)){[data-theme=light] .callout{--c-bg:color-mix(in srgb, var(--c) 5%, var(--bg-2))}}@font-face{font-family:Geist;src:url(/fonts/Geist-Variable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMono-Variable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--bg:#08080a;--bg-2:#0e0e11;--bg-3:#15151a;--bg-rgb:8, 8, 10;--surface-glass:var(--bg-2);--border:#ffffff12;--border-hi:#ffffff24;--text:#f5f5f7;--text-2:#a1a1aa;--text-3:#63636b;--red:#e8102a;--red-hi:#ff3b50;--red-lo:#8a0615;--accent:#ff4d61;--red-glow:#e8102a47;--red-glow2:#e8102a1a;--on-red:#000;--frame-line:var(--border-hi);--frame-corner:var(--text-3);--corner-len:10px;--r-sm:0px;--r-md:0px;--r-lg:0px;--r-xl:0px;--r-pill:0px;--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--shadow-window:none;--shadow-hard:6px 6px 0 0 var(--red-lo)}@supports (color:color-mix(in lab,red,red)){:root{--shadow-hard:6px 6px 0 0 color-mix(in srgb, var(--red-lo) 55%, transparent)}}:root{--ease:cubic-bezier(.2, .9, .1, 1);--ease-out:cubic-bezier(.2, .9, .1, 1);--ease-spring:cubic-bezier(.2, .9, .1, 1);--steps:steps(6, end);--steps-sm:steps(3, end);--dur-instant:80ms;--dur-fast:.14s;--dur-med:.22s;--dur-slow:.35s;--font-sans:"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace;--font-display:var(--font-mono);--font-prose:var(--font-sans);color-scheme:dark}[data-theme=light]{--bg:#fafafa;--bg-2:#fff;--bg-3:#f1f1f3;--bg-rgb:250, 250, 250;--surface-glass:var(--bg-2);--border:#00000014;--border-hi:#00000026;--text:#1d1d1f;--text-2:#57575e;--text-3:#98989f;--red:#c40a22;--red-hi:#e8102a;--red-lo:#8a0615;--accent:#c40a22;--red-glow:#c40a222e;--red-glow2:#c40a2212;--on-red:#fff;--frame-line:#0000002e;--frame-corner:#98989f;--shadow-hard:6px 6px 0 0 var(--red)}@supports (color:color-mix(in lab,red,red)){[data-theme=light]{--shadow-hard:6px 6px 0 0 color-mix(in srgb, var(--red) 22%, transparent)}}[data-theme=light]{color-scheme:light}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}body{background-color:var(--bg);color:var(--text);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-ligatures:none;min-height:100dvh;font-size:.94rem;line-height:1.6;overflow-x:hidden}img,svg,video{max-width:100%;display:block}a{color:inherit}button{cursor:pointer;font-family:inherit}::selection{background:var(--red);color:#fff}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-hi);border:3px solid var(--bg);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--red-lo)}*{scrollbar-width:thin;scrollbar-color:var(--border-hi) transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:0}.container{width:100%;max-width:1200px;padding:0 max(1.5rem,env(safe-area-inset-left));margin:0 auto}@media(max-width:480px){.container{padding:0 max(1rem,env(safe-area-inset-left))}}.sr-only{clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.mono{font-family:var(--font-mono)}.sans{font-family:var(--font-sans)}.dim{color:var(--text-3)}.muted{color:var(--text-2)}.red{color:var(--red)}.accent{color:var(--accent)}.upper{text-transform:uppercase;letter-spacing:.08em}.tabular{font-variant-numeric:tabular-nums}.inverse{background:var(--text);color:var(--bg)}.no-select{-webkit-user-select:none;user-select:none}.prompt:before{content:"$ ";content:"$ " / "";color:var(--accent)}.comment{color:var(--text-3)}.comment:before{content:"// ";content:"// " / ""}.term-ok{color:#3fb950}.term-warn{color:#d29922}.term-err{color:var(--accent)}.term-ok:before{content:"[ok] ";content:"[ok] " / ""}.term-warn:before{content:"[!!] ";content:"[!!] " / ""}.term-err:before{content:"[err] ";content:"[err] " / ""}kbd{font-family:var(--font-mono);border:1px solid var(--border-hi);color:var(--text);background:var(--bg-3);border-bottom-width:2px;padding:0 .4ch;font-size:.8em}.js [data-reveal]:not(.reveal-done),.js [data-reveal-stagger]:not(.reveal-done)>*{clip-path:inset(-1.5em -1.5em calc(100% - 1px));transition:clip-path var(--reveal-dur,.28s) steps(var(--reveal-steps,6),end) var(--reveal-delay,0s)}.js [data-reveal=left]:not(.reveal-done){clip-path:inset(-1.5em calc(100% - 1px) -1.5em -1.5em)}.js [data-reveal=right]:not(.reveal-done){clip-path:inset(-1.5em -1.5em -1.5em calc(100% - 1px))}.js [data-reveal=none]:not(.reveal-done),.js [data-reveal=scale]:not(.reveal-done){clip-path:none;opacity:0;transition:opacity .18s steps(3,end) var(--reveal-delay,0s)}.js [data-reveal].revealed:not(.reveal-done),.js [data-reveal-stagger].revealed:not(.reveal-done)>*{clip-path:inset(-1.5em);opacity:1}@keyframes printIn{0%{clip-path:inset(0 0 100%)}99%{clip-path:inset(-1em)}to{clip-path:none}}@keyframes typeIn{0%{clip-path:inset(0 100% 0 0)}99%{clip-path:inset(0)}to{clip-path:none}}@keyframes popIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{clip-path:inset(0 0 100%)}99%{clip-path:inset(-1em)}to{clip-path:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes riseIn{0%{clip-path:inset(0 100% 0 0)}99%{clip-path:inset(0)}to{clip-path:none}}.print-in{animation:.28s steps(6,end) both printIn;animation-delay:var(--d,0s)}.type-in{animation:.32s steps(12,end) both typeIn;animation-delay:var(--d,0s)}.pop-in{animation:.16s steps(3,end) both popIn;animation-delay:var(--d,0s)}.mask-line{margin-block:-.06em;padding-block:.06em;display:block;overflow:hidden}.mask-line>span{animation:.34s steps(14,end) both typeIn;animation-delay:var(--d,0s);display:block}.fade-up{animation:.28s steps(6,end) both printIn;animation-delay:var(--d,0s)}.section-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);align-items:center;gap:1ch;margin-bottom:1.25rem;font-size:.72rem;font-weight:500;line-height:1.4;display:inline-flex}.section-label:before{content:"//";content:"//" / "";color:var(--text-3);letter-spacing:0}.display{font-family:var(--font-display);letter-spacing:-.045em;color:var(--text);text-wrap:balance;font-weight:700;line-height:1.04}.display .dim{color:var(--text-3)}.display .accent{color:var(--red)}.scroll-progress{z-index:1000;pointer-events:none;view-transition-name:none;opacity:.7;background:repeating-linear-gradient(90deg,var(--red) 0 10px,transparent 10px 12px);width:100%;height:2px;clip-path:inset(0 calc(100% - var(--p,0) * 100%) 0 0);position:fixed;top:0;left:0}.cursor-trail{pointer-events:none;z-index:1001;contain:strict;position:fixed;inset:0;overflow:hidden}.cursor-trail span{font:500 12px/1 var(--font-mono);color:var(--red);opacity:0;will-change:transform,opacity;position:absolute;top:0;left:0}.cursor-glow:after{content:none}.crt-overlay{pointer-events:none;z-index:999;view-transition-name:none;opacity:.3;background:repeating-linear-gradient(#0000 0 2px,#00000029 2px 3px);position:fixed;inset:0}[data-theme=light] .crt-overlay,[data-motion=calm] .crt-overlay{display:none}@media print{.crt-overlay,.cursor-trail,.scroll-progress{display:none}}.scanlines{position:relative}.scanlines:after{content:"";pointer-events:none;background:repeating-linear-gradient(#0000 0 2px,#0000001f 2px 3px);position:absolute;inset:0}[data-theme=light] .scanlines:after{background:repeating-linear-gradient(#0000 0 2px,#00000008 2px 3px)}.crt{position:relative;overflow:hidden}.crt:after{content:"";pointer-events:none;background:linear-gradient(to bottom,transparent 0,var(--red) 50%,transparent 100%) 0 0 / 100% 64px no-repeat,repeating-linear-gradient(to bottom,transparent 0 2px,#0000001f 2px 3px);position:absolute;inset:0}@supports (color:color-mix(in lab,red,red)){.crt:after{background:linear-gradient(to bottom,transparent 0,color-mix(in srgb,var(--red) 10%,transparent) 50%,transparent 100%) 0 0 / 100% 64px no-repeat,repeating-linear-gradient(to bottom,transparent 0 2px,#0000001f 2px 3px)}}.crt:after{animation:1.8s steps(24,end) both crtSweep}.crt--loop:after{animation:6s steps(60,end) infinite crtSweep}[data-theme=light] .crt:after{background:0 0;animation:none}@keyframes crtSweep{0%{background-position:0 -64px,0 0}to{background-position:0 calc(100% + 64px),0 0}}@keyframes blink{50%{opacity:0}}.blink-cursor:after{content:"█";content:"█" / "";color:var(--red);animation:blink 1.06s steps(1,end) var(--blink-iter,3);margin-left:.15ch}.blink-cursor-glyph{color:var(--red);animation:blink 1.06s steps(1,end) var(--blink-iter,3);margin-left:.15ch}.blink-forever,.blink-forever .blink-cursor-glyph{--blink-iter:infinite}.tw-cursor{color:var(--red);margin-right:-1ch}.tw-rest{color:#0000}.js [data-typewriter]:not([data-typed]),.js [data-scramble]:not([data-scrambled]){visibility:hidden}@keyframes glitch{0%{text-shadow:2px 0 var(--red-hi),-2px 0 color-mix(in srgb,var(--text) 55%,transparent);transform:translate(0)}20%{text-shadow:-3px 0 var(--red-hi),2px 0 color-mix(in srgb,var(--text) 55%,transparent);clip-path:inset(10% 0 45%);transform:translate(-1px,1px)}40%{text-shadow:2px 0 var(--red-hi),-1px 0 color-mix(in srgb,var(--text) 55%,transparent);clip-path:inset(55% 0 5%);transform:translate(1px,-1px)}60%{text-shadow:-1px 0 var(--red-hi),1px 0 color-mix(in srgb,var(--text) 55%,transparent);clip-path:none;transform:translate(-1px)}to{text-shadow:none;clip-path:none;transform:none}}.glitch:hover,.glitch:focus-visible,.glitch.is-glitching{animation:.18s steps(2,end) glitch}.ascii-art,.prose .ascii-art{font-family:var(--font-mono);font-weight:400;font-size:var(--art-size,clamp(6px, 1.4vw, 14px));letter-spacing:0;font-kerning:none;font-variant-ligatures:none;font-feature-settings:normal;white-space:pre;tab-size:1;max-width:100%;color:var(--art-color,var(--red));-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:0;margin:0;padding:0;line-height:1.3;display:block;overflow:hidden}.ascii-fit{width:100%;min-width:0;container-type:inline-size}.ascii-fit>.ascii-art,.ascii-fit .ascii-art{font-size:var(--art-fallback,1.2vw);font-size:min(var(--art-max,48px),calc(100cqi / (var(--cols,40) * .612)))}.ascii-art .f{color:var(--art-face,var(--red))}.ascii-art .s{color:var(--art-shadow,var(--red))}@supports (color:color-mix(in lab,red,red)){.ascii-art .s{color:var(--art-shadow,color-mix(in srgb, var(--red) 45%, var(--bg)))}}[data-theme=light] .ascii-art .s{color:var(--art-shadow,var(--red))}@supports (color:color-mix(in lab,red,red)){[data-theme=light] .ascii-art .s{color:var(--art-shadow,color-mix(in srgb, var(--red) 40%, var(--bg)))}}.ascii-art--narrow{display:none}@container (max-width:520px){.ascii-art--wide:has(+.ascii-art--narrow){display:none}.ascii-art--narrow{display:block}}.ascii-field{pointer-events:none;contain:strict;position:absolute;inset:0;overflow:hidden}.on-field{z-index:1;background-color:var(--bg);position:relative}@supports (color:color-mix(in lab,red,red)){.on-field{background-color:color-mix(in srgb,var(--bg) 90%,transparent)}}.ascii-btn,.btn-primary,.btn-outline{--btn-fg:var(--text);--btn-bg:transparent;--btn-bd:var(--border-hi);--btn-fill:var(--red);--btn-fill-fg:var(--on-red);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--btn-bd);color:var(--btn-fg);background-color:var(--btn-bg);background-image:linear-gradient(var(--btn-fill),var(--btn-fill));white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-size var(--dur-fast) steps(6,end),color 70ms steps(1,end),border-color 70ms steps(1,end);background-position:0;background-repeat:no-repeat;background-size:0% 100%;border-radius:0;justify-content:center;align-items:center;gap:1ch;padding:.95em 1.15em;font-size:.8rem;font-weight:600;line-height:1;text-decoration:none;display:inline-flex;position:relative}.ascii-btn:before,.btn-primary:before,.btn-outline:before{content:"[";content:"[" / "";opacity:.6;margin-right:.1ch}.ascii-btn:after,.btn-primary:after,.btn-outline:after{content:"]";content:"]" / "";opacity:.6;margin-left:.1ch}.ascii-btn svg,.btn-primary svg,.btn-outline svg{flex-shrink:0;width:1.1em;height:1.1em}.ascii-btn:hover,.btn-primary:hover,.btn-outline:hover,.ascii-btn:focus-visible,.btn-primary:focus-visible,.btn-outline:focus-visible{color:var(--btn-fill-fg);border-color:var(--btn-fill);background-size:100% 100%}.ascii-btn:active,.btn-primary:active,.btn-outline:active{transform:translate(1px,1px)}.btn-primary,.ascii-btn--primary{--btn-bg:var(--red);--btn-fg:var(--on-red);--btn-bd:var(--red);--btn-fill:var(--text);--btn-fill-fg:var(--bg)}.btn-outline,.ascii-btn--ghost{--btn-fg:var(--text);--btn-bd:var(--border-hi)}.ascii-btn--sm{padding:.7em .9em;font-size:.72rem}.ascii-btn--lg{padding:1.1em 1.4em;font-size:.88rem}.ascii-btn .ascii-btn-icon{transition:transform var(--dur-instant) steps(2,end)}.ascii-btn:hover .ascii-btn-icon{transform:translate(.5ch)}.link-arrow{font-family:var(--font-mono);letter-spacing:.04em;color:var(--accent);align-items:center;gap:.6ch;margin:-.1em -.3ch;padding:.1em .3ch;font-size:.82rem;font-weight:500;text-decoration:none;display:inline-flex}.link-arrow:hover{background:var(--accent);color:var(--on-red)}.link-arrow svg{transition:transform var(--dur-instant) steps(2,end)}.link-arrow:hover svg{transform:translate(3px)}.ascii-frame,.card{--c:var(--frame-corner);border:1px solid var(--frame-line);background-color:var(--frame-bg,transparent);background-image:linear-gradient(var(--c),var(--c)),linear-gradient(var(--c),var(--c)),linear-gradient(var(--c),var(--c)),linear-gradient(var(--c),var(--c)),linear-gradient(var(--c),var(--c)),linear-gradient(var(--c),var(--c)),linear-gradient(var(--c),var(--c)),linear-gradient(var(--c),var(--c));background-size:var(--corner-len) 1px,1px var(--corner-len),var(--corner-len) 1px,1px var(--corner-len),var(--corner-len) 1px,1px var(--corner-len),var(--corner-len) 1px,1px var(--corner-len);transition:border-color var(--dur-instant) steps(1,end);background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;background-repeat:no-repeat;background-origin:border-box;border-radius:0;position:relative}.ascii-frame{padding:var(--frame-pad,1.25rem)}.card{--frame-bg:var(--bg-2)}.card:hover,.ascii-frame--hover:hover,a.ascii-frame:hover{--c:var(--red);border-color:var(--red)}@supports (color:color-mix(in lab,red,red)){.card:hover,.ascii-frame--hover:hover,a.ascii-frame:hover{border-color:color-mix(in srgb,var(--red) 45%,var(--frame-line))}}.ascii-frame--fill{--frame-bg:var(--bg-2)}.ascii-frame--accent{--c:var(--red);--frame-line:var(--red)}@supports (color:color-mix(in lab,red,red)){.ascii-frame--accent{--frame-line:color-mix(in srgb, var(--red) 45%, transparent)}}.ascii-frame--dashed{border-style:dashed}.ascii-frame--double{border:3px double var(--frame-line);background-image:none}.ascii-frame--shadow{box-shadow:var(--shadow-hard)}.ascii-frame--flush{--frame-pad:0}.ascii-frame-title,.ascii-frame-meta,.ascii-frame[data-title]:before{z-index:1;font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;background:linear-gradient(var(--frame-outer,var(--bg)) calc(50% + 1px),var(--frame-bg,var(--frame-outer,var(--bg))) 0);max-width:calc(100% - 2.5rem);padding:0 .75ch;font-size:.72rem;font-weight:500;line-height:1.3;position:absolute;top:0;overflow:hidden;transform:translateY(-50%)}.ascii-frame-title,.ascii-frame[data-title]:before{left:calc(var(--corner-len) + .25rem)}.ascii-frame-meta{right:calc(var(--corner-len) + .25rem);color:var(--accent);text-transform:uppercase;letter-spacing:.1em;font-size:.64rem}.ascii-frame[data-title]:before{content:"[ " attr(data-title) " ]"}.ascii-frame-title:before{content:"[ ";content:"[ " / "";color:var(--text-3)}.ascii-frame-title:after{content:" ]";content:" ]" / "";color:var(--text-3)}.ascii-frame-meta:before{content:"< ";content:"< " / "";color:var(--text-3)}.ascii-frame-meta:after{content:" >";content:" >" / "";color:var(--text-3)}.ascii-frame--double>.ascii-frame-title,.ascii-frame--double>.ascii-frame-meta{top:-1px}.tag{font-family:var(--font-mono);letter-spacing:.06em;text-transform:lowercase;border:1px solid var(--border-hi);color:var(--text-2);transition:color var(--dur-instant) steps(1,end),border-color var(--dur-instant) steps(1,end);background:0 0;border-radius:0;align-items:center;padding:2px 6px;font-size:.68rem;font-weight:500;display:inline-flex}.tag:before{content:"#";content:"#" / "";color:var(--accent);margin-right:.2ch}.tag:hover{border-color:var(--red);color:var(--text)}.code-window{background:var(--bg-2);border:1px solid var(--frame-line);box-shadow:none;border-radius:0;position:relative;overflow:hidden}.code-window-bar{background:var(--bg-3);border-bottom:1px solid var(--frame-line);font-family:var(--font-mono);align-items:center;gap:1.25ch;padding:8px 12px;display:flex}.window-dots{flex-shrink:0;align-items:center;gap:5px;display:flex}.window-dots span{background:var(--text-3);opacity:.6;border-radius:0;width:7px;height:7px;display:block}.window-dots span:first-child{background:var(--red);opacity:1}.code-window-title{font-family:var(--font-mono);color:var(--text-2);letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.74rem;overflow:hidden}.code-window-title:before{content:"─[ ";content:"─[ " / "";color:var(--text-3)}.code-window-title:after{content:" ]─";content:" ]─" / "";color:var(--text-3)}.code-window-badge{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border:1px solid var(--red);background:0 0;font-size:.62rem;font-weight:600}@supports (color:color-mix(in lab,red,red)){.code-window-badge{border:1px solid color-mix(in srgb,var(--red) 40%,transparent)}}.code-window-badge{border-radius:0;flex-shrink:0;padding:2px 6px}html:not([data-theme=light]) .astro-code{color:#e6edf3!important;background-color:#0000!important}html:not([data-theme=light]) .astro-code span{color:var(--shiki-dark,inherit)!important;font-style:var(--shiki-dark-font-style,inherit)!important;font-weight:var(--shiki-dark-font-weight,inherit)!important;-webkit-text-decoration:var(--shiki-dark-text-decoration,inherit)!important;text-decoration:var(--shiki-dark-text-decoration,inherit)!important;background-color:#0000!important}[data-theme=light] .astro-code{color:#24292e!important;background-color:#0000!important}[data-theme=light] .astro-code span{color:var(--shiki-light,inherit)!important;font-style:var(--shiki-light-font-style,inherit)!important;font-weight:var(--shiki-light-font-weight,inherit)!important;-webkit-text-decoration:var(--shiki-light-text-decoration,inherit)!important;text-decoration:var(--shiki-light-text-decoration,inherit)!important;background-color:#0000!important}pre{background:var(--bg-2);border:1px solid var(--frame-line);max-width:100%;font-family:var(--font-mono);tab-size:2;border-radius:0;padding:1.15rem 1.4rem;font-size:.85rem;line-height:1.7;overflow-x:auto}.code-block-wrap pre.astro-code,.hero-code-body pre.astro-code{background:0 0!important}code{font-family:var(--font-mono);font-feature-settings:normal;font-size:.875em}:not(pre)>code{background:var(--bg-3);border:1px solid var(--border);color:var(--text);border-radius:0;padding:1px 5px;font-size:.84em}.prose{font-family:var(--font-prose);font-feature-settings:"ss03" on,"cv11" on;color:var(--text);overflow-wrap:break-word;max-width:72ch;font-size:.975rem;line-height:1.75}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{font-family:var(--font-mono);color:var(--text);letter-spacing:-.03em;text-wrap:balance;scroll-margin-top:96px;font-weight:700;line-height:1.25}.prose h1{letter-spacing:-.045em;border-bottom:3px double var(--border-hi);margin:2rem 0 1rem;padding-bottom:.6rem;font-size:clamp(1.7rem,4.5vw,2.3rem)}.prose>h1:first-child{margin-top:0}.prose h2{border-bottom:1px dashed var(--border-hi);margin:2.75rem 0 .85rem;padding-bottom:.55rem;font-size:1.4rem}.prose h3{margin:2rem 0 .5rem;font-size:1.12rem}.prose h4{color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;margin:1.5rem 0 .5rem;font-size:.9rem}.prose h2:before{content:"## ";content:"## " / "";color:var(--red)}.prose h3:before{content:"### ";content:"### " / "";color:var(--text-3)}.prose h4:before{content:"» ";content:"» " / "";color:var(--text-3)}.prose p{color:var(--text-2);margin-bottom:1.25rem}.prose a{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.prose a{-webkit-text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent)}}.prose a{text-underline-offset:3px;-webkit-box-decoration-break:clone;box-decoration-break:clone;text-decoration-thickness:1px}.prose a:hover{background:var(--accent);color:var(--on-red);text-decoration-color:#0000}.prose a:hover code{color:inherit;background:0 0;border-color:#0000}.prose ul,.prose ol{color:var(--text-2);margin:1rem 0 1.5rem .25rem}.prose ol{padding-left:1.6rem}.prose ul{list-style:none}.prose ul>li{padding-left:1.6ch;position:relative}.prose ul>li:before{content:"›";content:"›" / "";font-family:var(--font-mono);color:var(--accent);position:absolute;left:0}.prose li{margin-bottom:.45rem}.prose ol>li::marker{font-family:var(--font-mono);color:var(--text-3);font-size:.85em}.prose li>ul,.prose li>ol{margin:.45rem 0 .25rem}.prose blockquote{border:1px dashed var(--border-hi);border-left:3px solid var(--text-3);background:var(--bg-2);color:var(--text-2);border-radius:0;margin:1.5rem 0;padding:.75rem 1.25rem}.prose blockquote p:last-child{margin-bottom:0}.prose strong{color:var(--text);font-weight:600}.prose pre{margin:1.5rem 0}.prose img{border:1px solid var(--border);border-radius:0}.prose table{border-collapse:collapse;border:1px solid var(--frame-line);width:100%;margin:1.5rem 0;font-size:.88rem}.prose th,.prose td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:9px 13px}.prose th+th,.prose td+td{border-left:1px solid var(--border)}.prose tr:last-child td{border-bottom:none}.prose th{background:var(--bg-3);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);border-bottom:3px double var(--frame-line);font-size:.72rem;font-weight:600}.prose td{color:var(--text-2)}@media(max-width:640px){.prose table{max-width:100%;display:block;overflow-x:auto}}.prose hr{background:repeating-linear-gradient(90deg,var(--border-hi) 0 6px,transparent 6px 10px);border:none;height:1px;margin:2.5rem 0}.nav-link{font-family:var(--font-mono);letter-spacing:.02em;text-transform:lowercase;color:var(--text-2);white-space:nowrap;border-radius:0;padding:5px 6px;font-size:.78rem;font-weight:500;text-decoration:none;position:relative}.nav-link:before{content:"[";content:"[" / "";color:var(--text-3)}.nav-link:after{content:"]";content:"]" / "";color:var(--text-3)}.nav-link:hover,.nav-link:hover:before,.nav-link:hover:after{color:var(--accent)}.nav-link.active,.nav-link[aria-current=page]{background:var(--text);color:var(--bg)}.nav-link.active:before,.nav-link.active:after,.nav-link[aria-current=page]:before,.nav-link[aria-current=page]:after{color:var(--bg)}.sidebar-tree{--tg-w:3ch;--tg-line:var(--text-3)}@supports (color:color-mix(in lab,red,red)){.sidebar-tree{--tg-line:color-mix(in srgb, var(--text-3) 75%, transparent)}}.sidebar-tree{--row-pt:3px;--row-pb:3px;font-family:var(--font-mono);font-size:.78rem;line-height:1.45}.tree-row{--tick-y:calc(var(--row-pt) + .725em);align-items:stretch;min-width:0;display:flex}.tree-guides{flex-shrink:0;display:flex}.tg{width:var(--tg-w);flex-shrink:0;font-style:normal;display:block;position:relative}.tg:before,.tg:after{content:"";background:var(--tg-line);position:absolute}.tg.p:before,.tg.t:before{width:1px;top:0;bottom:0;left:.5ch}.tg.e:before{height:calc(var(--tick-y) + 1px);width:1px;top:0;left:.5ch}.tg.t:after,.tg.e:after{left:.5ch;top:var(--tick-y);width:calc(var(--tg-w) - .85ch);height:1px}.tree-label{min-width:0;padding:var(--row-pt) .7ch var(--row-pb);color:var(--text-2);overflow-wrap:anywhere;flex:auto;text-decoration:none}.sidebar-link{font-family:var(--font-mono);letter-spacing:0;font-weight:450;text-decoration:none}.sidebar-link:hover .tree-label{color:var(--text);background:var(--text)}@supports (color:color-mix(in lab,red,red)){.sidebar-link:hover .tree-label{background:color-mix(in srgb,var(--text) 6%,transparent)}}.sidebar-link.active .tree-label{color:var(--on-red);background:var(--red)}.sidebar-link.active .tg.t:after,.sidebar-link.active .tg.e:after{background:var(--red)}.sidebar-link:focus-visible{outline:none}.sidebar-link:focus-visible .tree-label{outline:2px solid var(--accent);outline-offset:-2px}.sidebar-group-label{font-family:var(--font-mono);color:var(--text);letter-spacing:0;font-weight:600}.tree-slash{color:var(--text-3)}.sidebar-grouplabel-link{cursor:pointer}.sidebar-grouplabel-link:hover{color:var(--accent);background:var(--text)}@supports (color:color-mix(in lab,red,red)){.sidebar-grouplabel-link:hover{background:color-mix(in srgb,var(--text) 6%,transparent)}}.sidebar-grouplabel-link.active{color:var(--on-red);background:var(--red)}.sidebar-grouplabel-link.active .tree-slash{color:inherit}.tree-label-btn{font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;font-weight:600}.tree-label-btn:hover{color:var(--accent)}.sidebar-section-btn.tree-toggle{font:inherit;color:var(--text-3);padding:var(--row-pt) 0 var(--row-pb) .1ch;cursor:pointer;white-space:pre;background:0 0;border:0;flex-shrink:0}.tree-toggle-glyph:before{content:"[-]";content:"[-]" / ""}.sidebar-collapsible[data-collapsed=true]>.tree-dir .tree-toggle-glyph:before{content:"[+]";content:"[+]" / ""}.sidebar-section-btn.tree-toggle:hover,.tree-dir:hover .sidebar-section-btn.tree-toggle{color:var(--accent)}.sidebar-collapsible[data-collapsed=true]>.sidebar-collapsible-body{display:none}.sidebar-group>.tree-dir{--row-pt:.85rem}.sidebar-group>.tree-dir>.sidebar-section-btn.tree-toggle,.sidebar-group>.tree-dir>.tree-label{padding-top:var(--row-pt)}.sidebar-subgroup>.tree-dir{--row-pt:3px}.mobile-nav-link{font-family:var(--font-mono);text-transform:lowercase;color:var(--text-2);border-bottom:1px dashed var(--border);align-items:center;gap:1ch;padding:12px 4px;font-size:.95rem;font-weight:500;text-decoration:none;display:flex}.mobile-nav-link:before{content:">";content:">" / "";color:var(--text-3)}.mobile-nav-link:hover,.mobile-nav-link.active{color:var(--text)}.mobile-nav-link:hover:before,.mobile-nav-link.active:before{color:var(--accent)}.mobile-nav-link:last-child{border-bottom:none}.segmented{border:1px solid var(--frame-line);scrollbar-width:none;background:0 0;border-radius:0;gap:0;max-width:100%;padding:3px;display:inline-flex;position:relative;overflow-x:auto}.segmented::-webkit-scrollbar{display:none}.segmented-thumb{background:var(--red);height:calc(100% - 6px);box-shadow:none;transition:transform var(--dur-fast) steps(4,end),width var(--dur-fast) steps(4,end);pointer-events:none;z-index:0;border:0;border-radius:0;position:absolute;top:3px;left:0}[data-theme=light] .segmented-thumb{background:var(--red)}.segmented-btn{z-index:1;font-family:var(--font-mono);letter-spacing:.04em;text-transform:lowercase;color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:0;align-items:center;gap:6px;padding:6px 12px;font-size:.74rem;font-weight:500;transition:color 60ms step-end 60ms;display:inline-flex;position:relative}.segmented-btn:before{content:">";content:">" / "";opacity:0;margin-right:-2px}.segmented-btn:hover{color:var(--text)}.segmented-btn:hover:before{opacity:.5}.segmented-btn.active{color:var(--on-red)}.segmented-btn.active:before{opacity:1}.ambient{pointer-events:none;filter:none;opacity:1;border-radius:0;position:absolute;-webkit-mask-image:radial-gradient(circle,#000 .9px,#0000 1.4px);mask-image:radial-gradient(circle,#000 .9px,#0000 1.4px);-webkit-mask-size:4px 4px;mask-size:4px 4px}[data-theme=light] .ambient{opacity:.6}.grid-texture{background-image:radial-gradient(circle,var(--border-hi) 1px,transparent 1.5px);pointer-events:none;opacity:.8;background-position:12px 12px;background-size:24px 24px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60% at 50% 0,#000 30%,#0000 90%);mask-image:radial-gradient(70% 60% at 50% 0,#000 30%,#0000 90%)}.divider{background:repeating-linear-gradient(90deg,var(--border-hi) 0 6px,transparent 6px 10px);width:100%;height:1px}.ascii-rule{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);align-items:center;gap:1.5ch;font-size:.7rem;display:flex}.ascii-rule:before,.ascii-rule:after{content:"";background:var(--border-hi);flex:1;height:1px}.ascii-rule:empty{gap:0}.ascii-rule:empty:after{display:none}.ascii-tree{font-family:var(--font-mono);list-style:none}.ascii-tree>li{padding-left:4.2ch;position:relative}.ascii-tree>li:before{content:"├──";content:"├──" / "";color:var(--text-3);position:absolute;left:0}.ascii-tree>li:last-child:before{content:"└──";content:"└──" / ""}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@view-transition{navigation:auto}::view-transition-old(root){animation:.11s steps(3,end) both vtOut}::view-transition-new(root){animation:.18s steps(5,end) both vtIn}:root[data-motion=calm]::view-transition-old(root){animation:80ms linear both vtOut}:root[data-motion=calm]::view-transition-new(root){animation:.1s linear both fadeIn}::view-transition-group(site-header){animation:none}::view-transition-old(site-header){animation:none}::view-transition-new(site-header){animation:none}@keyframes vtOut{to{opacity:0}}@keyframes vtIn{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}[data-motion=calm] [data-reveal],[data-motion=calm] [data-reveal-stagger]>*{clip-path:none!important;opacity:1!important}[data-motion=calm] [data-typewriter],[data-motion=calm] [data-scramble]{visibility:visible!important}[data-motion=calm] .print-in,[data-motion=calm] .type-in,[data-motion=calm] .pop-in,[data-motion=calm] .fade-up,[data-motion=calm] .mask-line>span,[data-motion=calm] .crt:after,[data-motion=calm] .blink-cursor:after,[data-motion=calm] .blink-cursor-glyph,:root[data-motion=calm],:root[data-motion=calm] body{animation:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.js [data-reveal],.js [data-reveal-stagger]>*{clip-path:none!important;opacity:1!important;transform:none!important}.js [data-typewriter],.js [data-scramble]{visibility:visible!important}.crt:after{animation:none!important}::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}.rz-host{position:relative}.rz-handle{--rz-c:var(--text-2);z-index:4;color:inherit;font:inherit;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:0 0;border:0;margin:0;padding:0;position:absolute}.rz-corner{opacity:0;width:22px;height:22px;transition:opacity var(--dur-fast,.14s) var(--ease,ease);bottom:-11px}.rz-handle--se{cursor:nwse-resize;right:-11px}.rz-handle--sw{cursor:nesw-resize;left:-11px}.rz-corner:before{content:"";border-bottom:2px solid var(--rz-c);width:12px;height:12px;position:absolute;bottom:50%}.rz-handle--se:before{border-right:2px solid var(--rz-c);right:50%}.rz-handle--sw:before{border-left:2px solid var(--rz-c);left:50%}.rz-corner:after{content:"";background:var(--rz-c);opacity:.55;width:5px;height:5px;position:absolute;bottom:calc(50% + 4px)}.rz-handle--se:after{clip-path:polygon(100% 0,100% 100%,0 100%);right:calc(50% + 4px)}.rz-handle--sw:after{clip-path:polygon(0 0,100% 100%,0 100%);left:calc(50% + 4px)}.rz-edge{opacity:0}.rz-handle--e,.rz-handle--w{cursor:ew-resize;width:10px;top:16px;bottom:16px}.rz-handle--e{right:-5px}.rz-handle--w{left:-5px}.rz-handle--s{cursor:ns-resize;height:10px;bottom:-5px;left:16px;right:16px}.rz-edge:before{content:"";background:var(--red);position:absolute}.rz-handle--e:before,.rz-handle--w:before{width:1px;margin-left:-.5px;top:0;bottom:0;left:50%}.rz-handle--s:before{height:1px;margin-top:-.5px;top:50%;left:0;right:0}.rz-host:hover>.rz-corner,.rz-host:focus-within>.rz-corner,.rz-host.is-resizing>.rz-corner{opacity:1}.rz-corner:hover,.rz-corner:focus-visible,.rz-host[data-rz-handle=se]>.rz-handle--se,.rz-host[data-rz-handle=sw]>.rz-handle--sw{--rz-c:var(--red)}.rz-corner:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.rz-edge:hover,.rz-host[data-rz-handle=e]>.rz-handle--e,.rz-host[data-rz-handle=w]>.rz-handle--w,.rz-host[data-rz-handle=s]>.rz-handle--s{opacity:.6}.rz-auto:not([data-rz-anchor=center]):not([data-rz-anchor=end])>.rz-handle--sw,.rz-auto:not([data-rz-anchor=center]):not([data-rz-anchor=end])>.rz-handle--w{display:none}.rz-auto:has(.rz-auto:hover):not(.is-resizing)>.rz-corner{opacity:0}.rz-host--inset>.rz-corner{bottom:0}.rz-host--inset>.rz-handle--se{right:0}.rz-host--inset>.rz-handle--sw{left:0}.rz-host--inset>.rz-corner:before{bottom:3px}.rz-host--inset>.rz-handle--se:before{right:3px}.rz-host--inset>.rz-handle--sw:before{left:3px}.rz-host--inset>.rz-corner:after{bottom:9px}.rz-host--inset>.rz-handle--se:after{right:9px}.rz-host--inset>.rz-handle--sw:after{left:9px}.rz-host--inset>.rz-handle--e{width:6px;right:0}.rz-host--inset>.rz-handle--w{width:6px;left:0}.rz-host--inset>.rz-handle--s{height:6px;bottom:0}@media(hover:none),(pointer:coarse){.rz-corner{opacity:.5;width:30px;height:30px;bottom:-15px}.rz-handle--se{right:-15px}.rz-handle--sw{left:-15px}.rz-edge{display:none}.rz-auto:not(:hover):not(:focus-within):not(.is-resizing)>.rz-corner{opacity:.28}.rz-host--inset>.rz-corner{bottom:0}.rz-host--inset>.rz-handle--se{right:0}.rz-host--inset>.rz-handle--sw{left:0}}.rz-readout{z-index:5;font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-2);background-color:var(--bg);border:1px solid var(--frame-line);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--dur-slow,.35s) var(--ease,ease);font-variant-numeric:tabular-nums;padding:.2rem .7ch;font-size:.64rem;line-height:1.3;position:absolute;top:calc(100% + 10px);right:0}.rz-readout:before{content:"[ ";content:"[ " / "";color:var(--text-3)}.rz-readout:after{content:" ]";content:" ]" / "";color:var(--text-3)}.rz-host[data-rz-handle=sw]>.rz-readout,.rz-host[data-rz-handle=w]>.rz-readout{left:0;right:auto}.rz-host--inset>.rz-readout{top:auto;bottom:8px;right:30px}.rz-host--inset[data-rz-handle=sw]>.rz-readout,.rz-host--inset[data-rz-handle=w]>.rz-readout{left:30px;right:auto}.rz-readout.is-on{opacity:1;transition-duration:var(--dur-instant,80ms)}html.rz-dragging,html.rz-dragging *{cursor:var(--rz-cursor,nwse-resize)!important;-webkit-user-select:none!important;user-select:none!important}@media print{.rz-handle,.rz-readout{display:none!important}}:where([data-reflow=flex]){align-items:stretch;gap:var(--reflow-gap,1rem);flex-wrap:wrap;display:flex}:where([data-reflow=flex])>:where(*){flex:1 1 var(--reflow-basis,16rem);min-width:0}:where([data-reflow=grid],[data-reflow=grid-span]){grid-template-columns:repeat(auto-fill,minmax(min(var(--reflow-min,16rem),100%),1fr));gap:var(--reflow-gap,1rem);display:grid}:where([data-reflow=grid],[data-reflow=grid-span])>:where(*){min-width:0}html[data-scroll-snap]{scroll-padding-top:var(--snap-offset,53px)}@media(prefers-reduced-motion:no-preference){html[data-scroll-snap]{scroll-snap-type:y proximity}}html[data-scroll-snap].rz-dragging,html[data-scroll-snap].rz-snap-hold{scroll-snap-type:none}html[data-scroll-snap] body>section,html[data-scroll-snap] body>main>section,html[data-scroll-snap] [data-snap]:not([data-snap=off],[data-snap=end],[data-snap=center]){scroll-snap-align:start}html[data-scroll-snap] [data-snap=center]{scroll-snap-align:center}html[data-scroll-snap] body:has(>section,>main>section,[data-snap]:not([data-snap=off]))>footer,html[data-scroll-snap] [data-snap=end]{scroll-snap-align:end}html[data-scroll-snap] [data-snap=off]{scroll-snap-align:none}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}.theme-toggle[data-astro-cid-x3pjskd3]{display:inline-flex;align-items:center;gap:.6ch;font-family:var(--font-mono);font-size:.74rem;font-weight:500;line-height:1;color:var(--text-2);background:transparent;border:0;border-radius:0;padding:6px 2px;cursor:pointer;flex-shrink:0;white-space:nowrap}.theme-toggle[data-astro-cid-x3pjskd3]:before{content:"[";color:var(--text-3)}.theme-toggle[data-astro-cid-x3pjskd3]:after{content:"]";color:var(--text-3)}.tt-glyph[data-astro-cid-x3pjskd3]{color:var(--red);display:inline-block}.tt-label[data-astro-cid-x3pjskd3]{display:inline-block}.theme-toggle[data-astro-cid-x3pjskd3]:hover{color:var(--accent)}.theme-toggle[data-astro-cid-x3pjskd3]:hover:before,.theme-toggle[data-astro-cid-x3pjskd3]:hover:after{color:var(--accent)}.theme-toggle[data-astro-cid-x3pjskd3].flip .tt-glyph[data-astro-cid-x3pjskd3]{animation:ttFlip .16s steps(4,end)}@keyframes ttFlip{0%{transform:scaleX(1)}50%{transform:scaleX(0)}to{transform:scaleX(1)}}@media(max-width:1040px){.tt-label[data-astro-cid-x3pjskd3]{display:none}}.site-header[data-astro-cid-3ef6ksr2]{position:sticky;top:0;z-index:50;background:var(--bg);border-bottom:1px solid var(--border);view-transition-name:site-header;font-family:var(--font-mono)}.site-header[data-astro-cid-3ef6ksr2].scrolled{border-bottom-color:var(--border-hi)}.header-inner[data-astro-cid-3ef6ksr2]{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;height:52px;gap:1.25rem}.header-logo[data-astro-cid-3ef6ksr2]{grid-column:1}.header-nav[data-astro-cid-3ef6ksr2]{grid-column:2;justify-self:center}.header-actions[data-astro-cid-3ef6ksr2]{grid-column:3}.header-logo[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0;min-width:0}.header-logo[data-astro-cid-3ef6ksr2] img[data-astro-cid-3ef6ksr2]{flex-shrink:0}.header-prompt[data-astro-cid-3ef6ksr2]{font-size:.82rem;font-weight:500;letter-spacing:0;white-space:nowrap;color:var(--text);position:relative;display:inline-block}.hp-sizer[data-astro-cid-3ef6ksr2]{visibility:hidden;display:inline-block}.hp-cursor-s[data-astro-cid-3ef6ksr2]{display:inline-block}.hp-live[data-astro-cid-3ef6ksr2]{position:absolute;inset:0;display:flex;overflow:hidden}.hp-live[data-astro-cid-3ef6ksr2]>[data-astro-cid-3ef6ksr2]{flex-shrink:0}.hp-live[data-astro-cid-3ef6ksr2]>.hp-cwd[data-astro-cid-3ef6ksr2]{flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.hp-user[data-astro-cid-3ef6ksr2]{font-weight:700;color:var(--text)}.hp-at[data-astro-cid-3ef6ksr2],.hp-sep[data-astro-cid-3ef6ksr2]{color:var(--text-3)}.hp-cwd[data-astro-cid-3ef6ksr2]{color:var(--accent)}.hp-dollar[data-astro-cid-3ef6ksr2]{color:var(--text-3);margin-right:.5ch}.hp-cursor[data-astro-cid-3ef6ksr2]{color:var(--red);animation:blink 1.06s steps(1,end) 3}[data-motion=calm] .hp-cursor[data-astro-cid-3ef6ksr2]{animation:none}.header-logo[data-astro-cid-3ef6ksr2]:hover .hp-user[data-astro-cid-3ef6ksr2]{color:var(--accent)}.header-logo[data-astro-cid-3ef6ksr2]:hover .hp-cursor[data-astro-cid-3ef6ksr2],.header-logo[data-astro-cid-3ef6ksr2]:focus-visible .hp-cursor[data-astro-cid-3ef6ksr2]{animation:hpBlink 1.06s steps(1,end) infinite}@keyframes hpBlink{50%{opacity:0}}.header-nav[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:2px}.header-actions[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:.9rem;flex-shrink:0}.header-ruler[data-astro-cid-3ef6ksr2]{font-size:.68rem;color:var(--text-3);letter-spacing:.06em;min-width:3ch;text-align:right;padding-right:.9rem;border-right:1px solid var(--border)}.header-gh[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;gap:.6ch;font-size:.76rem;color:var(--text-2);text-decoration:none;padding:4px 2px}.header-gh[data-astro-cid-3ef6ksr2]:hover{color:var(--accent)}.header-gh-arrow[data-astro-cid-3ef6ksr2]{color:var(--text-3)}.header-gh[data-astro-cid-3ef6ksr2]:hover .header-gh-arrow[data-astro-cid-3ef6ksr2]{color:var(--accent)}.header-cta[data-astro-cid-3ef6ksr2]{font-size:.72rem;padding:.75em .9em}.header-menu-btn[data-astro-cid-3ef6ksr2]{display:none;align-items:center;font-family:var(--font-mono);font-size:.76rem;font-weight:500;color:var(--text);background:transparent;border:1px solid var(--border-hi);padding:6px 8px;border-radius:0;cursor:pointer;line-height:1}.header-menu-btn[data-astro-cid-3ef6ksr2]:before{content:"[";color:var(--text-3)}.header-menu-btn[data-astro-cid-3ef6ksr2]:after{content:"]";color:var(--text-3)}.header-menu-btn[data-astro-cid-3ef6ksr2]:hover{border-color:var(--red);color:var(--accent)}.hm-label[data-astro-cid-3ef6ksr2]{display:inline-block;min-width:4ch;text-align:center}.hm-close[data-astro-cid-3ef6ksr2]{display:none}.header-menu-btn[data-astro-cid-3ef6ksr2][aria-expanded=true]{background:var(--text);color:var(--bg);border-color:var(--text)}.header-menu-btn[data-astro-cid-3ef6ksr2][aria-expanded=true] .hm-open[data-astro-cid-3ef6ksr2]{display:none}.header-menu-btn[data-astro-cid-3ef6ksr2][aria-expanded=true] .hm-close[data-astro-cid-3ef6ksr2]{display:inline-block}.mobile-menu[data-astro-cid-3ef6ksr2]{display:none;position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:1px solid var(--border-hi);max-height:calc(100dvh - 52px);overflow-y:auto}.mobile-menu[data-astro-cid-3ef6ksr2].open{display:block;animation:printIn .22s steps(6,end) both}.mobile-menu-inner[data-astro-cid-3ef6ksr2]{padding-top:1rem;padding-bottom:1.25rem;border-left:1px dashed var(--border-hi);margin-top:0}.mm-head[data-astro-cid-3ef6ksr2],.mm-foot[data-astro-cid-3ef6ksr2]{font-size:.74rem;color:var(--text-2);letter-spacing:.02em}.mm-head[data-astro-cid-3ef6ksr2]{margin-bottom:.5rem}.mm-foot[data-astro-cid-3ef6ksr2]{margin-top:1rem}.mm-nav[data-astro-cid-3ef6ksr2]{display:flex;flex-direction:column}.mm-idx[data-astro-cid-3ef6ksr2]{color:var(--text-3);font-size:.7rem;min-width:2ch}.mm-cta[data-astro-cid-3ef6ksr2]{margin-top:1rem;width:100%}@media(max-width:1180px){.hp-at[data-astro-cid-3ef6ksr2],.header-ruler[data-astro-cid-3ef6ksr2]{display:none}}@media(max-width:1040px){.header-gh-label[data-astro-cid-3ef6ksr2],.header-gh-arrow[data-astro-cid-3ef6ksr2]{display:none}}@media(max-width:900px){.header-nav[data-astro-cid-3ef6ksr2],.header-gh[data-astro-cid-3ef6ksr2]{display:none}.header-menu-btn[data-astro-cid-3ef6ksr2]{display:inline-flex}.header-inner[data-astro-cid-3ef6ksr2]{display:flex}.header-actions[data-astro-cid-3ef6ksr2]{margin-left:auto}.hp-sizer[data-astro-cid-3ef6ksr2]{display:none}.hp-live[data-astro-cid-3ef6ksr2]{position:static;display:inline}}@media(max-width:520px){.header-cta[data-astro-cid-3ef6ksr2]{display:none}.header-inner[data-astro-cid-3ef6ksr2]{gap:.75rem}.header-actions[data-astro-cid-3ef6ksr2]{gap:.6rem}}@media(max-width:380px){.hp-sep[data-astro-cid-3ef6ksr2],.hp-cwd[data-astro-cid-3ef6ksr2]{display:none}}@media(min-width:901px){.mobile-menu[data-astro-cid-3ef6ksr2],.mobile-menu[data-astro-cid-3ef6ksr2].open{display:none}}html.js:not([data-motion=calm]) [data-lens]:not([data-lens=off]):not([data-lens=hover]):not([data-lens-ready]) .ascii-art{visibility:hidden;animation:lens-failsafe 0s linear 1.5s forwards}@keyframes lens-failsafe{to{visibility:visible}}@media(prefers-reduced-motion:reduce){html.js [data-lens]:not([data-lens-ready]) .ascii-art{visibility:visible;animation:none}}.site-footer[data-astro-cid-sz7xmlte]{position:relative;border-top:1px solid var(--border);padding:3.5rem 0 2rem;margin-top:auto;background:var(--bg);font-family:var(--font-mono)}.footer-wordmark-link[data-astro-cid-sz7xmlte]{display:block;text-decoration:none;margin-bottom:3rem}.footer-wordmark-link[data-astro-cid-sz7xmlte] .footer-wordmark{--art-shadow: color-mix(in srgb, var(--red) 30%, var(--bg))}.footer-wordmark-link[data-astro-cid-sz7xmlte]:hover .ascii-art,.footer-wordmark-link[data-astro-cid-sz7xmlte]:focus-visible .ascii-art{animation:glitch .18s steps(2,end) 1}.footer-grid[data-astro-cid-sz7xmlte]{display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem;padding-bottom:2.5rem;border-bottom:1px dashed var(--border-hi)}.footer-cmd[data-astro-cid-sz7xmlte],.footer-out[data-astro-cid-sz7xmlte]{font-size:.8rem;line-height:1.7}.footer-cmd[data-astro-cid-sz7xmlte]{color:var(--text)}.footer-out[data-astro-cid-sz7xmlte]{color:var(--text-2);margin-bottom:1rem}.footer-tagline[data-astro-cid-sz7xmlte]{font-size:.8rem;color:var(--text-2);line-height:1.7;max-width:340px}.footer-col-title[data-astro-cid-sz7xmlte]{font-size:.72rem;font-weight:600;letter-spacing:.04em;color:var(--accent);line-height:1.3;margin-bottom:0}.footer-links[data-astro-cid-sz7xmlte]{display:flex;flex-direction:column;gap:0;font-size:.82rem;line-height:1.3;line-height:round(down,1.3em,1px)}.footer-links[data-astro-cid-sz7xmlte]>li[data-astro-cid-sz7xmlte]:before{line-height:inherit;top:0}.footer-link[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;gap:.6ch;height:1.3em;height:1lh;vertical-align:top;color:var(--text-2);text-decoration:none;padding:0 .3ch;margin:0 -.3ch;width:fit-content}.footer-ext[data-astro-cid-sz7xmlte]{line-height:1}.footer-link[data-astro-cid-sz7xmlte]:hover{background:var(--text);color:var(--bg)}.footer-ext[data-astro-cid-sz7xmlte]{color:var(--text-3)}.footer-link[data-astro-cid-sz7xmlte]:hover .footer-ext[data-astro-cid-sz7xmlte]{color:inherit}.sr-only-link[data-astro-cid-sz7xmlte]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.footer-bottom[data-astro-cid-sz7xmlte]{display:flex;align-items:center;justify-content:space-between;padding-top:1.5rem;flex-wrap:wrap;gap:1rem}.footer-legal[data-astro-cid-sz7xmlte]{font-size:.72rem;color:var(--text-2);line-height:1.6}.footer-legal[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--text-2);text-decoration:underline;text-decoration-color:var(--border-hi);text-underline-offset:3px}.footer-legal[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--accent);text-decoration-color:var(--accent)}.footer-version[data-astro-cid-sz7xmlte]{display:flex;align-items:center;gap:1ch;font-size:.72rem;color:var(--text-2);letter-spacing:.04em}.footer-sep[data-astro-cid-sz7xmlte]{color:var(--text-3)}@media(max-width:768px){.footer-grid[data-astro-cid-sz7xmlte]{grid-template-columns:1fr 1fr;gap:2rem}.footer-brand[data-astro-cid-sz7xmlte]{grid-column:1 / -1}.footer-wordmark-link[data-astro-cid-sz7xmlte]{margin-bottom:2rem}}@media(max-width:420px){.footer-grid[data-astro-cid-sz7xmlte]{grid-template-columns:1fr}}
