@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--glow-fade-top:88}*,: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-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-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:var(--font-sans);--font-mono:var(--font-mono);--spacing:.25rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--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)}}@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,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration: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:where(:not(iframe)){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}html{background:var(--bg);color:var(--text);color-scheme:dark;scroll-padding-top:calc(var(--header-h-small) + 16px);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scrollbar-width:thin;scrollbar-color:var(--border) var(--bg)}[data-theme=light]{color-scheme:light}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);min-height:100dvh;color:var(--muted);font-family:var(--font-sans);font-synthesis-weight:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:17px;line-height:1.6;overflow-x:clip}@media (width>=768px){body{font-size:18px}}::selection{background:var(--accent-tint);color:var(--text)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border:3px solid var(--bg);border-radius:10px}h1,h2,h3,h4{color:var(--text);letter-spacing:-.02em;text-wrap:balance;font-weight:560;line-height:1.15}p{text-wrap:pretty}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--text);outline-offset:4px;border-radius:2px}[tabindex="-1"]:focus{outline:none}img,svg,video{max-width:100%;height:auto}button{cursor:pointer}kbd{font-family:var(--font-mono);border:1px solid var(--border);color:var(--text);border-bottom-width:2px;border-radius:4px;padding:1px 6px;font-size:.8em}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.fixed{position:fixed}.relative{position:relative}.static{position:static}.m-1{margin:var(--spacing)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.list-item{display:list-item}.table{display:table}.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}.border{border-style:var(--tw-border-style);border-width:1px}.text-wrap{text-wrap:wrap}.underline{text-decoration-line:underline}.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,)}.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,)}.backdrop-filter{backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.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-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}@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}@font-face{font-family:Glyph Kannada;src:url(/fonts/glyph-kannada.woff2)format("woff2");font-weight:400 700;unicode-range:U+C80-CFF;font-display:swap}@font-face{font-family:Glyph Telugu;src:url(/fonts/glyph-telugu.woff2)format("woff2");font-weight:400 700;unicode-range:U+C00-C7F;font-display:swap}@font-face{font-family:Glyph Devanagari;src:url(/fonts/glyph-devanagari.woff2)format("woff2");font-weight:400 700;unicode-range:U+900-97F;font-display:swap}@property --glow-fade-top{syntax:"<number>";inherits:true;initial-value:88}:root{--font-sans:"Geist", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-glyph:"Geist", "Glyph Kannada", "Glyph Telugu", "Glyph Devanagari", system-ui, sans-serif;--content:1000px;--reading:680px;--pad-x:clamp(20px, 6vw, 100px);--section-gap:72px;--header-h:88px;--header-h-small:64px;--radius:6px;--radius-card:10px;--ease-ui:cubic-bezier(.645, .045, .355, 1);--ease-shutter:cubic-bezier(.76, 0, .24, 1);--ease-out:cubic-bezier(.2, .7, .2, 1);--slow:1;--dur-ui:calc(.25s * var(--slow));--dur-enter:calc(.6s * var(--slow));--z-glow:0;--z-content:1;--z-rails:10;--z-header:20;--z-drawer:30;--z-ask:40;--z-toast:50;--z-curtain:90;--z-shutter:95;--z-intro:100}:root,[data-theme=dark]{--bg:#1c1c1b;--surface:#242423;--border:#343331;--text:#ebe9e4;--muted:#aeaca6;--faint:#938f89;--accent:#c6a15e;--accent-tint:#c6a15e1f;--shutter:#0f0f0e;--shutter-text:#938f89;--glow:#ffffff0d;--shadow:0 20px 30px -15px #0000008c;--img-tint:#c6a15e47;--img-filter:grayscale(1) contrast(1.05) brightness(.82)}[data-theme=light]{--bg:#f5f4f0;--surface:#fff;--border:#dedcd5;--text:#1c1c1b;--muted:#5c5a55;--faint:#6e6c66;--accent:#8a6528;--accent-tint:#8a65281a;--shutter:#1c1c1b;--shutter-text:#aeaca6;--glow:#8a652821;--shadow:0 20px 30px -15px #1c1c1b2e;--img-tint:#8a652838;--img-filter:grayscale(1) contrast(1.02) brightness(1.02)}@media (prefers-color-scheme:light){:root:not([data-theme]){--bg:#f5f4f0;--surface:#fff;--border:#dedcd5;--text:#1c1c1b;--muted:#5c5a55;--faint:#6e6c66;--accent:#8a6528;--accent-tint:#8a65281a;--shutter:#1c1c1b;--shutter-text:#aeaca6;--glow:#8a652821;--shadow:0 20px 30px -15px #1c1c1b2e;--img-tint:#8a652838;--img-filter:grayscale(1) contrast(1.02) brightness(1.02)}}@media (width>=768px){:root{--section-gap:100px}}@media (width>=1024px){:root{--pad-x:clamp(100px, 8vw, 150px)}}.wrap{width:100%;max-width:calc(var(--content) + var(--pad-x) * 2);padding-inline:var(--pad-x);margin-inline:auto}.wrap--reading{max-width:calc(var(--reading) + var(--pad-x) * 2)}.page{z-index:var(--z-content);padding-top:calc(var(--header-h) + 48px);padding-bottom:var(--section-gap);position:relative}.section{padding-block:calc(var(--section-gap) / 2)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.mono{font-family:var(--font-mono)}.label{font-family:var(--font-mono);letter-spacing:.04em;color:var(--faint);font-size:13px}.eyebrow{font-family:var(--font-mono);letter-spacing:.06em;color:var(--faint);font-size:13px}.lede{color:var(--muted);max-width:60ch;font-size:1.1em}.page-title{letter-spacing:-.035em;font-size:clamp(34px,5.5vw,52px);font-weight:580}.section-heading{white-space:nowrap;align-items:center;gap:20px;margin-bottom:40px;font-size:clamp(26px,3vw,32px);display:flex}.section-heading--rule:after{content:"";background:var(--border);flex:auto;height:1px;display:block}@media (width>=768px){.section-heading--rule:after{max-width:300px}}.link{color:var(--text);transition:background-size var(--dur-ui) var(--ease-ui), color var(--dur-ui) var(--ease-ui);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;display:inline;position:relative}.link--quiet{color:var(--muted)}@media (hover:hover) and (pointer:fine){.link:hover{color:var(--text);background-size:100% 1px}}.link:focus-visible{background-size:100% 1px}.prose a:not(.heading-anchor):not([data-footnote-ref]):not([data-footnote-backref]),.link--underlined{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--border);-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:3px;transition:text-decoration-color var(--dur-ui) var(--ease-ui);text-decoration-thickness:1px}@media (hover:hover) and (pointer:fine){.prose a:not(.heading-anchor):hover,.link--underlined:hover{-webkit-text-decoration-color:var(--text);-webkit-text-decoration-color:var(--text);text-decoration-color:var(--text)}@supports (color:color-mix(in lab, red, red)){.prose a:not(.heading-anchor):hover,.link--underlined:hover{-webkit-text-decoration-color:color-mix(in srgb, var(--text) 50%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--text) 50%, transparent);text-decoration-color:color-mix(in srgb, var(--text) 50%, transparent)}}}.ext{font-family:var(--font-mono);transition:transform var(--dur-ui) var(--ease-ui);margin-left:.15em;font-size:.85em;display:inline-block}@media (hover:hover) and (pointer:fine){a:hover>.ext,a:focus-visible>.ext{transform:translate(2px,-2px)}}.btn{border:1px solid var(--faint);border-radius:var(--radius);min-height:44px;color:var(--text);font-family:var(--font-mono);letter-spacing:.02em;white-space:nowrap;transition:background-color var(--dur-ui) var(--ease-ui), border-color var(--dur-ui) var(--ease-ui), transform var(--dur-ui) var(--ease-ui);background:0 0;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:13px;line-height:1;display:inline-flex}.btn--primary{border-color:var(--muted)}.btn--small{min-height:36px;padding:0 14px}.btn svg{width:16px;height:16px}@media (hover:hover) and (pointer:fine){.btn:hover{background:var(--accent-tint);border-color:var(--accent)}}.btn:active{background:var(--accent-tint);transform:scale(.98)}.btn:focus-visible{outline-offset:4px}.tag{font-family:var(--font-mono);letter-spacing:.02em;color:var(--faint);align-items:center;font-size:12px;display:inline-flex}.tag-list{flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;list-style:none;display:flex}.placeholder-tag{border:1px dashed var(--faint);height:20px;color:var(--faint);font-family:var(--font-mono);letter-spacing:.04em;vertical-align:middle;white-space:nowrap;border-radius:999px;align-items:center;padding:0 7px;font-size:11px;font-weight:400;line-height:1;display:inline-flex}.status-chip{border:1px solid var(--border);height:22px;font-family:var(--font-mono);letter-spacing:.04em;color:var(--faint);white-space:nowrap;border-radius:999px;align-items:center;padding:0 8px;font-size:11px;display:inline-flex}.status-chip[data-status=in\ progress],.status-chip[data-status=in-progress]{color:var(--text);border-color:var(--faint)}.status-chip[data-status=intended]{border-style:dashed}.icon{flex:none;width:20px;height:20px}.card{border-radius:var(--radius-card);background:var(--surface);transition:transform var(--dur-ui) var(--ease-ui), box-shadow var(--dur-ui) var(--ease-ui);position:relative}@media (hover:hover) and (pointer:fine){.card--lift:hover,.card--lift:focus-within{box-shadow:var(--shadow);transform:translateY(-5px)}}.card--lift:active{transform:scale(.99)}.stretched-link:after{content:"";z-index:1;border-radius:inherit;position:absolute;inset:0}.card .above-stretch{z-index:2;position:relative}.duotone{border-radius:var(--radius);background:var(--surface);isolation:isolate;display:block;position:relative;overflow:hidden}.duotone img{width:100%;height:auto;filter:var(--img-filter);transition:filter var(--dur-ui) var(--ease-ui);display:block}.duotone:after{content:"";background:var(--img-tint);mix-blend-mode:color;pointer-events:none;transition:opacity var(--dur-ui) var(--ease-ui);position:absolute;inset:0}@media (hover:hover) and (pointer:fine){.duotone:hover img,a:hover .duotone img,a:focus-visible .duotone img{filter:none}.duotone:hover:after,a:hover .duotone:after,a:focus-visible .duotone:after{opacity:0}}.framed{width:100%;display:block;position:relative}.framed:before{content:"";border:2px solid var(--accent);border-radius:var(--radius);transition:transform var(--dur-ui) var(--ease-ui);z-index:-1;position:absolute;inset:0;transform:translate(16px,16px)}.framed-wrap{z-index:0;isolation:isolate;position:relative}@media (hover:hover) and (pointer:fine){.framed:hover:before,a:hover .framed:before{transform:translate(10px,10px)}}@keyframes enter-down{0%{opacity:0;transform:translateY(-20px)}}@keyframes enter-up{0%{opacity:0;transform:translateY(20px)}}@keyframes enter-fade{0%{opacity:0}}@keyframes failsafe-show{to{opacity:1;visibility:visible;transform:none}}html.chrome-wait .enter-chrome{opacity:0;animation:failsafe-show .3s calc(7s * var(--slow)) forwards}html.chrome-in .enter-chrome{animation:var(--enter-anim,enter-down) calc(.5s * var(--slow)) var(--ease-out) both;animation-delay:calc((var(--i,0) * .1s + var(--enter-delay,0s)) * var(--slow))}html.content-wait [data-enter]{opacity:0;animation:failsafe-show .3s calc(5s * var(--slow)) forwards}html.content-in [data-enter]{animation:enter-up var(--dur-enter) var(--ease-out) both;animation-delay:calc((.1s + var(--i,0) * .1s) * var(--slow))}html.reveal-ready [data-reveal]:not(.is-revealed){opacity:0;transform:translateY(20px)}html.reveal-ready [data-reveal]{transition:opacity var(--dur-enter) var(--ease-out), transform var(--dur-enter) var(--ease-out);transition-delay:calc(var(--reveal-i,0) * 90ms * var(--slow))}@media (prefers-reduced-motion:reduce){html.chrome-wait .enter-chrome,html.content-wait [data-enter],html.reveal-ready [data-reveal]:not(.is-revealed){opacity:1;animation:none;transform:none}html.chrome-in .enter-chrome,html.content-in [data-enter]{animation:none}html.reveal-ready [data-reveal]{transition:none}*,:before,:after{scroll-behavior:auto!important}}html.theme-switching *,html.theme-switching :before,html.theme-switching :after{transition:none!important}.prose{color:var(--muted);font-size:17px;line-height:1.7}@media (width>=768px){.prose{font-size:18px}}.prose>*+*{margin-top:1.1em}.prose h2{scroll-margin-top:calc(var(--header-h-small) + 24px);margin-top:2.2em;font-size:26px}.prose h3{scroll-margin-top:calc(var(--header-h-small) + 24px);margin-top:1.8em;font-size:20px}.prose h2+*,.prose h3+*{margin-top:.7em}.prose strong{color:var(--text);font-weight:600}.prose ul,.prose ol{padding-left:1.3em}.prose ul{padding-left:1.3em;list-style:none}.prose ul>li{position:relative}.prose ul>li:before{content:"";background:var(--faint);width:6px;height:1px;position:absolute;top:.78em;left:-1.05em}.prose ol{list-style:decimal}.prose ol>li::marker{font-family:var(--font-mono);color:var(--faint);font-size:.85em}.prose li+li{margin-top:.4em}.prose blockquote{border-left:2px solid var(--border);color:var(--muted);padding-left:1.2em;font-style:italic}.prose hr{background:var(--border);border:0;height:1px;margin-block:2.5em}.prose :not(pre)>code{border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:var(--font-mono);border-radius:4px;padding:.12em .36em;font-size:.84em}.prose table{border-collapse:collapse;width:100%;font-size:.92em}.prose th,.prose td{border-bottom:1px solid var(--border);text-align:left;padding:8px 10px}.prose th{color:var(--text);font-weight:560}.prose img{border-radius:var(--radius)}.heading-anchor{color:var(--faint);font-family:var(--font-mono);opacity:0;transition:opacity var(--dur-ui) var(--ease-ui);margin-left:.35em;font-weight:400}.prose h2:hover .heading-anchor,.prose h3:hover .heading-anchor{opacity:1}@media (hover:none){.heading-anchor{display:none}}.prose [data-footnote-ref]{font-family:var(--font-mono);color:var(--accent);padding-inline:1px;font-size:.75em}.prose .footnotes{border-top:1px solid var(--border);margin-top:3em;padding-top:1.5em;font-size:.88em}.prose .footnotes h2{font-family:var(--font-mono);letter-spacing:.04em;color:var(--faint);margin-top:0;font-size:13px;font-weight:400}.prose .footnotes ol{padding-left:1.3em}.prose [data-footnote-backref]{font-family:var(--font-mono);color:var(--faint);margin-left:4px}.prose .katex{color:var(--text);font-size:1.05em}.prose .katex-display{padding-block:.4em;overflow:auto hidden}.code-block{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);margin-block:1.6em;position:relative;overflow:hidden}.code-block__bar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:36px;padding:0 6px 0 14px;display:flex}.code-block__lang{font-family:var(--font-mono);letter-spacing:.04em;color:var(--faint);font-size:12px}.code-block__copy{min-width:56px;height:28px;color:var(--faint);font-family:var(--font-mono);transition:color var(--dur-ui) var(--ease-ui), background-color var(--dur-ui) var(--ease-ui);background:0 0;border:0;border-radius:4px;padding:0 10px;font-size:12px}@media (hover:hover) and (pointer:fine){.code-block__copy:hover{color:var(--text);background:var(--accent-tint)}}.code-block__copy[data-copied]{color:var(--text)}.astro-code{font-family:var(--font-mono);tab-size:2;margin:0;padding:16px 0;font-size:14px;line-height:1.65;overflow-x:auto;background:var(--surface)!important}.astro-code code{min-width:max-content;display:block}.astro-code .line{width:100%;padding-inline:16px;display:inline-block}.astro-code .line.highlighted{background:var(--accent-tint);box-shadow:inset 2px 0 0 var(--accent)}.astro-code,.astro-code span{color:var(--shiki-dark)}[data-theme=light] .astro-code,[data-theme=light] .astro-code span{color:var(--shiki-light)}@media print{*,:before,:after{transition:none!important;animation:none!important}[data-reveal],[data-enter],.enter-chrome{opacity:1!important;transform:none!important}}@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-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-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}html:not(.js) .theme-toggle[data-astro-cid-l6lhmie6]{display:none}.theme-toggle[data-astro-cid-l6lhmie6]{border-radius:var(--radius);width:44px;height:44px;color:var(--muted);transition:color var(--dur-ui) var(--ease-ui), background-color var(--dur-ui) var(--ease-ui), transform var(--dur-ui) var(--ease-ui);background:0 0;border:0;place-items:center;display:inline-grid}@media (hover:hover) and (pointer:fine){.theme-toggle[data-astro-cid-l6lhmie6]:hover{color:var(--text);background:var(--accent-tint)}}.theme-toggle[data-astro-cid-l6lhmie6]:active{transform:scale(.94)}.theme-toggle__sun[data-astro-cid-l6lhmie6],.theme-toggle__moon[data-astro-cid-l6lhmie6]{transform-box:fill-box;transform-origin:50%;transition:transform var(--dur-ui) var(--ease-ui), opacity var(--dur-ui) var(--ease-ui)}[data-theme=dark] .theme-toggle__moon[data-astro-cid-l6lhmie6],[data-theme=light] .theme-toggle__sun[data-astro-cid-l6lhmie6],[data-theme=dark] .theme-toggle[data-astro-cid-l6lhmie6].is-flipping .theme-toggle__sun[data-astro-cid-l6lhmie6],[data-theme=light] .theme-toggle[data-astro-cid-l6lhmie6].is-flipping .theme-toggle__moon[data-astro-cid-l6lhmie6]{opacity:0;transform:rotate(-90deg)scale(.4)}[data-theme=dark] .theme-toggle[data-astro-cid-l6lhmie6].is-flipping .theme-toggle__moon[data-astro-cid-l6lhmie6],[data-theme=light] .theme-toggle[data-astro-cid-l6lhmie6].is-flipping .theme-toggle__sun[data-astro-cid-l6lhmie6]{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.theme-toggle__sun[data-astro-cid-l6lhmie6],.theme-toggle__moon[data-astro-cid-l6lhmie6]{transition:none}}.site-header[data-astro-cid-nen7h5rs]{z-index:var(--z-header);height:var(--header-h);pointer-events:none;position:fixed;inset:0 0 auto}.site-header__bg[data-astro-cid-nen7h5rs],.site-header__inner[data-astro-cid-nen7h5rs]{transition:transform calc(.25s * var(--slow)) var(--ease-ui)}.site-header__bg[data-astro-cid-nen7h5rs]{background:color-mix(in srgb, var(--bg) 85%, transparent);backdrop-filter:blur(10px);transition:transform calc(.25s * var(--slow)) var(--ease-ui), border-color calc(.25s * var(--slow)) var(--ease-ui), box-shadow calc(.25s * var(--slow)) var(--ease-ui), opacity calc(.25s * var(--slow)) var(--ease-ui);border-bottom:1px solid #0000;position:absolute;inset:0}.site-header__inner[data-astro-cid-nen7h5rs]{height:var(--header-h);pointer-events:auto;justify-content:space-between;align-items:center;gap:16px;padding-inline:clamp(20px,4vw,50px);display:flex;position:relative}.site-header[data-astro-cid-nen7h5rs].is-scrolled .site-header__bg[data-astro-cid-nen7h5rs]{transform:translateY(calc(var(--header-h-small) - var(--header-h)));border-bottom-color:var(--border);box-shadow:0 10px 30px -10px #00000040}.site-header[data-astro-cid-nen7h5rs].is-scrolled .site-header__inner[data-astro-cid-nen7h5rs]{transform:translateY(calc((var(--header-h-small) - var(--header-h)) / 2))}.site-header[data-astro-cid-nen7h5rs].is-hidden .site-header__bg[data-astro-cid-nen7h5rs],.site-header[data-astro-cid-nen7h5rs].is-hidden .site-header__inner[data-astro-cid-nen7h5rs]{transform:translateY(calc(-1 * var(--header-h) - 2px))}html.menu-open .site-header__bg[data-astro-cid-nen7h5rs]{opacity:0}.wordmark[data-astro-cid-nen7h5rs]{min-height:44px;color:var(--text);font-family:var(--font-sans);letter-spacing:-.03em;align-items:center;font-size:21px;font-weight:560;display:inline-flex}.wordmark__name[data-astro-cid-nen7h5rs]{font-family:var(--font-glyph);white-space:nowrap;display:inline-block}.wordmark__dot[data-astro-cid-nen7h5rs]{color:var(--accent)}.wordmark[data-astro-cid-nen7h5rs].is-cycling .wordmark__dot[data-astro-cid-nen7h5rs]{animation:wordmark-blink calc(1s * var(--slow)) steps(1) infinite}@keyframes wordmark-blink{50%{opacity:0}}.site-nav[data-astro-cid-nen7h5rs]{margin-left:auto;display:none;position:relative}.site-nav__list[data-astro-cid-nen7h5rs]{gap:4px;margin:0;padding:0;list-style:none;display:flex}.site-nav__link[data-astro-cid-nen7h5rs]{min-height:44px;color:var(--muted);font-family:var(--font-mono);letter-spacing:.02em;transition:color var(--dur-ui) var(--ease-ui);align-items:center;padding:0 12px;font-size:13px;display:inline-flex}.site-nav__link[data-astro-cid-nen7h5rs].is-active,.site-nav__link[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--text)}@media (hover:hover) and (pointer:fine){.site-nav__link[data-astro-cid-nen7h5rs]:hover{color:var(--text)}}.site-nav__label[data-astro-cid-nen7h5rs]{display:inline-block;position:relative}.site-nav__line[data-astro-cid-nen7h5rs]{background:var(--accent);transform-origin:0;opacity:0;pointer-events:none;height:1px;position:absolute;bottom:-3px;left:0;right:0}.site-nav__link[data-astro-cid-nen7h5rs].is-active .site-nav__line[data-astro-cid-nen7h5rs],html:not(.js) .site-nav__link[data-astro-cid-nen7h5rs][aria-current=page] .site-nav__line[data-astro-cid-nen7h5rs]{opacity:1}.site-header__actions[data-astro-cid-nen7h5rs]{align-items:center;gap:6px;display:flex}.site-header__resume[data-astro-cid-nen7h5rs]{margin-left:10px;display:none}.hamburger[data-astro-cid-nen7h5rs]{width:44px;height:44px;color:var(--text);background:0 0;border:0;place-items:center;margin-right:-10px;display:inline-grid}.hamburger__box[data-astro-cid-nen7h5rs]{width:22px;height:14px;display:block;position:relative}.hamburger__line[data-astro-cid-nen7h5rs]{width:100%;height:1.5px;transition:transform calc(.22s * var(--slow)) var(--ease-ui), opacity calc(.22s * var(--slow)) var(--ease-ui);background:currentColor;border-radius:1px;position:absolute;left:0}.hamburger__line[data-astro-cid-nen7h5rs]:first-child{top:0}.hamburger__line[data-astro-cid-nen7h5rs]:nth-child(2){top:6.25px}.hamburger__line[data-astro-cid-nen7h5rs]:nth-child(3){top:12.5px}.hamburger[data-astro-cid-nen7h5rs][aria-expanded=true] .hamburger__line[data-astro-cid-nen7h5rs]:first-child{transform:translateY(6.25px)rotate(45deg)}.hamburger[data-astro-cid-nen7h5rs][aria-expanded=true] .hamburger__line[data-astro-cid-nen7h5rs]:nth-child(2){opacity:0;transform:scaleX(.3)}.hamburger[data-astro-cid-nen7h5rs][aria-expanded=true] .hamburger__line[data-astro-cid-nen7h5rs]:nth-child(3){transform:translateY(-6.25px)rotate(-45deg)}@media (width>=768px){.site-nav[data-astro-cid-nen7h5rs],.site-header__resume[data-astro-cid-nen7h5rs]{display:flex}.hamburger[data-astro-cid-nen7h5rs]{display:none}}html.menu-open .site-header[data-astro-cid-nen7h5rs]{z-index:calc(var(--z-drawer) + 1)}@media (prefers-reduced-motion:reduce){.site-header__bg[data-astro-cid-nen7h5rs],.site-header__inner[data-astro-cid-nen7h5rs],.hamburger__line[data-astro-cid-nen7h5rs]{transition:none}}.drawer-backdrop[data-astro-cid-xlat7obg]{z-index:var(--z-drawer);-webkit-tap-highlight-color:transparent;position:fixed;inset:0}.drawer[data-astro-cid-xlat7obg]{z-index:var(--z-drawer);background:var(--surface);visibility:hidden;width:min(75vw,400px);transition:transform calc(.3s * var(--slow)) var(--ease-ui), visibility 0s linear calc(.3s * var(--slow));flex-direction:column;justify-content:center;align-items:center;gap:36px;padding:88px 24px 40px;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-10px 0 30px -15px #00000080}.drawer[data-astro-cid-xlat7obg].is-open{visibility:visible;transition:transform calc(.3s * var(--slow)) var(--ease-ui), visibility 0s;transform:none}.drawer__links[data-astro-cid-xlat7obg]{flex-direction:column;align-items:center;gap:6px;margin:0;padding:0;list-style:none;display:flex}.drawer__link[data-astro-cid-xlat7obg]{min-height:48px;color:var(--text);font-family:var(--font-mono);letter-spacing:.02em;align-items:center;padding:0 16px;font-size:16px;display:inline-flex}.drawer__link[data-astro-cid-xlat7obg]:active{color:var(--accent)}.drawer__resume[data-astro-cid-xlat7obg]{min-width:160px}.drawer__socials[data-astro-cid-xlat7obg]{gap:12px;margin:0;padding:0;list-style:none;display:flex}.drawer__social[data-astro-cid-xlat7obg]{width:44px;height:44px;color:var(--faint);place-items:center;display:inline-grid}.drawer__social[data-astro-cid-xlat7obg]:active{color:var(--text)}.drawer__email[data-astro-cid-xlat7obg]{color:var(--faint);font-family:var(--font-mono);letter-spacing:.06em;font-size:13px}html.menu-open{overflow:hidden}main,.site-footer{transition:filter calc(.3s * var(--slow)) var(--ease-ui)}html.menu-open main,html.menu-open .site-footer{filter:blur(5px)brightness(.7)}@media (width>=768px){.drawer[data-astro-cid-xlat7obg],.drawer-backdrop[data-astro-cid-xlat7obg]{display:none}}@media (prefers-reduced-motion:reduce){.drawer[data-astro-cid-xlat7obg],.drawer[data-astro-cid-xlat7obg].is-open{transition:none}}.ruler[data-astro-cid-35yhhxpn]{top:calc(var(--header-h-small) + 20px);z-index:var(--z-rails);cursor:pointer;touch-action:none;user-select:none;width:40px;position:fixed;bottom:28px;right:40px}.ruler[data-astro-cid-35yhhxpn].is-dragging{cursor:grabbing}@media (width>=1024px){html.js:has([data-scroll-rail]){scrollbar-width:none}html.js:has([data-scroll-rail])::-webkit-scrollbar{display:none}}html:not(.js) .scroll-rail[data-astro-cid-35yhhxpn]{display:none}.tick[data-astro-cid-35yhhxpn]{right:0;top:calc(var(--at) * 1%);background:var(--faint);opacity:.45;width:6px;height:1px;position:absolute}.tick--long[data-astro-cid-35yhhxpn]{opacity:.9;width:12px}.needle[data-astro-cid-35yhhxpn]{background:var(--accent);width:18px;height:1px;transition:opacity var(--dur-ui) var(--ease-ui), width var(--dur-ui) var(--ease-ui), height var(--dur-ui) var(--ease-ui);position:absolute;top:0;right:0}.needle[data-astro-cid-35yhhxpn].is-quiet{opacity:0}.ruler[data-astro-cid-35yhhxpn]:hover .needle[data-astro-cid-35yhhxpn],.ruler[data-astro-cid-35yhhxpn].is-dragging .needle[data-astro-cid-35yhhxpn]{opacity:1;width:26px;height:2px}.readout[data-astro-cid-35yhhxpn]{color:var(--accent);font-family:var(--font-mono);font-size:10px;line-height:1;display:flex;position:absolute;top:50%;left:calc(100% + 6px);transform:translateY(-50%)}.digit[data-astro-cid-35yhhxpn]{height:1em;transition:opacity var(--dur-ui) var(--ease-ui);overflow:hidden}.digit__strip[data-astro-cid-35yhhxpn]{transform:translateY(calc(var(--digit,0) * -1em));transition:transform calc(.4s * var(--slow)) var(--ease-out);flex-direction:column;display:flex}.digit[data-astro-cid-35yhhxpn].is-blank{opacity:0}.words[data-astro-cid-35yhhxpn]{z-index:var(--z-rails);pointer-events:none;position:fixed;inset:0}.scroll-rail[data-astro-cid-35yhhxpn]:not([data-words=on]) .words[data-astro-cid-35yhhxpn]{visibility:hidden}.words[data-astro-cid-35yhhxpn] .rail-word{color:var(--faint);transition:color var(--dur-ui) var(--ease-ui)}.words[data-astro-cid-35yhhxpn] .rail-word[data-state=riding]{color:var(--muted)}.words[data-astro-cid-35yhhxpn] .rail-word[data-state=current]{color:var(--text)}.words[data-astro-cid-35yhhxpn] .rail-letter{font-family:var(--font-mono);white-space:pre;pointer-events:auto;will-change:transform;font-size:12px;line-height:1;position:absolute;top:0;left:0}@media (hover:hover) and (pointer:fine){.words[data-astro-cid-35yhhxpn] .rail-word:hover{color:var(--text)}}.words[data-astro-cid-35yhhxpn] .rail-word:focus-visible{color:var(--text);outline:none}.words[data-astro-cid-35yhhxpn] .rail-word:focus-visible .rail-letter{text-underline-offset:3px;text-decoration:underline}@media (prefers-reduced-motion:reduce){.digit__strip[data-astro-cid-35yhhxpn]{transition:none}}.rails[data-astro-cid-vkqwt7hs]{display:none}@media (width>=1024px){.rails[data-astro-cid-vkqwt7hs]{display:block}}.rail[data-astro-cid-vkqwt7hs]{z-index:var(--z-rails);flex-direction:column;align-items:center;width:40px;display:flex;position:fixed;bottom:0}.rail--left[data-astro-cid-vkqwt7hs]{left:40px}.rail--right[data-astro-cid-vkqwt7hs]{right:40px}.rail[data-astro-cid-vkqwt7hs]:after{content:"";background:var(--faint);opacity:.6;width:1px;height:90px;margin-top:20px;display:block}.rail__list[data-astro-cid-vkqwt7hs]{flex-direction:column;align-items:center;gap:20px;margin:0;padding:0;list-style:none;display:flex}.rail__icon[data-astro-cid-vkqwt7hs],.rail__email[data-astro-cid-vkqwt7hs]{color:var(--faint);transition:transform var(--dur-ui) var(--ease-ui), color var(--dur-ui) var(--ease-ui);place-items:center;display:inline-grid}.rail__icon[data-astro-cid-vkqwt7hs]{width:44px;height:44px}.rail__email[data-astro-cid-vkqwt7hs]{font-family:var(--font-mono);letter-spacing:.1em;writing-mode:vertical-rl;padding:10px;font-size:12px;line-height:1.2}@media (hover:hover) and (pointer:fine){.rail__icon[data-astro-cid-vkqwt7hs]:hover,.rail__email[data-astro-cid-vkqwt7hs]:hover{color:var(--text);transform:translateY(-3px)}}.rail__icon[data-astro-cid-vkqwt7hs]:focus-visible,.rail__email[data-astro-cid-vkqwt7hs]:focus-visible{color:var(--text);transform:translateY(-3px)}.site-footer[data-astro-cid-jo6i4kqk]{z-index:var(--z-content);padding-block:48px 36px;position:relative}.site-footer__inner[data-astro-cid-jo6i4kqk]{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.site-footer__contact[data-astro-cid-jo6i4kqk]{flex-direction:column;align-items:center;gap:4px;margin-bottom:14px;display:flex}.site-footer__socials[data-astro-cid-jo6i4kqk]{gap:8px;margin:0;padding:0;list-style:none;display:flex}.site-footer__icon[data-astro-cid-jo6i4kqk]{width:44px;height:44px;color:var(--faint);transition:color var(--dur-ui) var(--ease-ui), transform var(--dur-ui) var(--ease-ui);place-items:center;display:inline-grid}@media (hover:hover) and (pointer:fine){.site-footer__icon[data-astro-cid-jo6i4kqk]:hover{color:var(--text);transform:translateY(-3px)}}.site-footer__icon[data-astro-cid-jo6i4kqk]:active{color:var(--text)}.site-footer__email[data-astro-cid-jo6i4kqk]{font-family:var(--font-mono);letter-spacing:.04em;font-size:13px}.site-footer__nav[data-astro-cid-jo6i4kqk]{font-family:var(--font-mono);flex-wrap:wrap;justify-content:center;gap:4px 18px;margin-bottom:10px;font-size:13px;display:flex}.site-footer__nav[data-astro-cid-jo6i4kqk] .link[data-astro-cid-jo6i4kqk]{align-items:center;min-height:32px;display:inline-flex}.site-footer__line[data-astro-cid-jo6i4kqk]{color:var(--faint);font-family:var(--font-mono);letter-spacing:.02em;font-size:12px;line-height:2}.site-footer__line[data-astro-cid-jo6i4kqk] .link[data-astro-cid-jo6i4kqk]{color:var(--faint)}.site-footer__line[data-astro-cid-jo6i4kqk] span[data-astro-cid-jo6i4kqk][aria-hidden]{margin-inline:6px}@media (width>=1024px){.site-footer__contact[data-astro-cid-jo6i4kqk]{display:none}}.glow-layer[data-astro-cid-dzuhxanj]{--glow-fade-top:88;z-index:var(--z-glow);pointer-events:none;-webkit-mask-image:linear-gradient(to bottom, transparent calc((var(--glow-fade-top) - 8) * 1px), #000 calc((var(--glow-fade-top) + 40) * 1px));mask-image:linear-gradient(to bottom, transparent calc((var(--glow-fade-top) - 8) * 1px), #000 calc((var(--glow-fade-top) + 40) * 1px));transition:--glow-fade-top calc(.25s * var(--slow)) var(--ease-ui);position:fixed;inset:0;overflow:hidden}html:has(.site-header.is-scrolled) .glow-layer[data-astro-cid-dzuhxanj]{--glow-fade-top:64}html:has(.site-header.is-hidden) .glow-layer[data-astro-cid-dzuhxanj]{--glow-fade-top:-1000}.glow[data-astro-cid-dzuhxanj]{background:radial-gradient(circle, var(--glow) 0%, transparent 60%);pointer-events:none;opacity:0;width:450px;height:450px;transition:opacity .3s var(--ease-out);border-radius:50%;position:absolute;top:0;left:0;transform:translate(-9999px,-9999px)}.glow[data-astro-cid-dzuhxanj].is-visible{opacity:1}.glow[data-astro-cid-dzuhxanj].is-painted{background:0 0}.glow[data-astro-cid-dzuhxanj] canvas{width:100%;height:100%;opacity:clamp(0, (var(--glow-y,9999) - var(--glow-fade-top) - 60) / 160, 1);display:block}.theme-curtain[data-astro-cid-dzuhxanj]{z-index:var(--z-curtain);background:var(--bg);visibility:hidden;pointer-events:none;position:fixed;inset:0;transform:translate(-100%)}.theme-curtain[data-astro-cid-dzuhxanj].is-active{visibility:visible;pointer-events:auto}.shutter[data-astro-cid-dzuhxanj]{z-index:var(--z-shutter);pointer-events:none;visibility:hidden;position:fixed;inset:0}.shutter[data-astro-cid-dzuhxanj].is-active,html.page-entering .shutter[data-astro-cid-dzuhxanj]{visibility:visible;pointer-events:auto}.shutter__panel[data-astro-cid-dzuhxanj]{background:var(--shutter);height:calc(50% + 1px);position:absolute;left:0;right:0}.shutter__panel--top[data-astro-cid-dzuhxanj]{top:0;transform:translateY(-100%)}.shutter__panel--bottom[data-astro-cid-dzuhxanj]{bottom:0;transform:translateY(100%)}html.page-entering .shutter__panel[data-astro-cid-dzuhxanj]{animation:shutter-failsafe .5s calc(3s * var(--slow)) var(--ease-shutter) forwards;transform:none}html.page-entering .shutter__panel--bottom[data-astro-cid-dzuhxanj]{animation-name:shutter-failsafe-bottom}@keyframes shutter-failsafe{to{transform:translateY(-100%)}}@keyframes shutter-failsafe-bottom{to{transform:translateY(100%)}}.shutter__fade[data-astro-cid-dzuhxanj]{background:var(--bg);opacity:0;position:absolute;inset:0}.shutter__label[data-astro-cid-dzuhxanj]{color:var(--shutter-text);font-family:var(--font-mono);letter-spacing:.1em;white-space:nowrap;opacity:0;font-size:12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.toast[data-astro-cid-dzuhxanj]{z-index:var(--z-toast);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);color:var(--text);font-family:var(--font-mono);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--dur-ui) var(--ease-ui), transform var(--dur-ui) var(--ease-ui);padding:10px 16px;font-size:13px;position:fixed;bottom:76px;left:50%;transform:translate(-50%,12px)}.toast[data-astro-cid-dzuhxanj]:empty{border:0;padding:0}.toast[data-astro-cid-dzuhxanj].is-visible{opacity:1;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.toast[data-astro-cid-dzuhxanj]{transition:opacity .15s linear;transform:translate(-50%)}}.intro[data-astro-cid-fmp4ekgg]{display:none}html.intro-active{overflow:hidden}html.intro-active .intro[data-astro-cid-fmp4ekgg]{z-index:var(--z-intro);background:var(--bg);cursor:default;user-select:none;-webkit-tap-highlight-color:transparent;animation:intro-failsafe .3s calc(6s * var(--slow)) forwards;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}html.intro-active .intro[data-astro-cid-fmp4ekgg].has-hole{background:0 0}.intro__svg[data-astro-cid-fmp4ekgg]{width:calc(var(--word-w) * clamp(44px, 12vw, 128px));max-width:none;height:auto;overflow:visible}.intro__bg[data-astro-cid-fmp4ekgg],.intro__cover[data-astro-cid-fmp4ekgg]{fill:var(--bg)}.intro__letter[data-astro-cid-fmp4ekgg]{fill:var(--text);opacity:0}.intro__letter[data-astro-cid-fmp4ekgg].is-on{opacity:1}.intro__period[data-astro-cid-fmp4ekgg]{fill:var(--accent);animation:caret-blink calc(1s * var(--slow)) steps(1) infinite}.intro__period[data-astro-cid-fmp4ekgg].is-typing,.intro__period[data-astro-cid-fmp4ekgg].is-solid{animation:none}.intro__counter[data-astro-cid-fmp4ekgg]{fill:none;stroke:none}@keyframes caret-blink{50%{opacity:0}}@keyframes intro-failsafe{to{opacity:0;visibility:hidden}}html:not(.js) .ask[data-astro-cid-l2gncxap]{display:none}.ask__open[data-astro-cid-l2gncxap]{z-index:var(--z-ask);border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 92%, transparent);backdrop-filter:blur(8px);height:44px;box-shadow:var(--shadow);color:var(--muted);font-family:var(--font-mono);letter-spacing:.04em;transition:color var(--dur-ui) var(--ease-ui), border-color var(--dur-ui) var(--ease-ui), transform var(--dur-ui) var(--ease-ui);border-radius:999px;align-items:center;gap:8px;padding:0 16px;font-size:13px;display:inline-flex;position:fixed;bottom:16px;right:16px}@media (width<=599px){.ask__open[data-astro-cid-l2gncxap]{justify-content:center;width:44px;padding:0}.ask__label[data-astro-cid-l2gncxap]{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (width>=1024px){.ask__open[data-astro-cid-l2gncxap]{bottom:24px;right:100px}}@media (hover:hover) and (pointer:fine){.ask__open[data-astro-cid-l2gncxap]:hover{color:var(--text);border-color:var(--faint);transform:translateY(-2px)}}.ask__open[data-astro-cid-l2gncxap]:active{transform:scale(.97)}html.intro-active .ask__open[data-astro-cid-l2gncxap],html.menu-open .ask__open[data-astro-cid-l2gncxap]{opacity:0;pointer-events:none}.ask__backdrop[data-astro-cid-l2gncxap]{z-index:var(--z-ask);background:#00000040;position:fixed;inset:0}.ask__panel[data-astro-cid-l2gncxap]{z-index:calc(var(--z-ask) + 1);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);width:min(420px,100vw - 32px);max-height:min(560px,100dvh - 120px);box-shadow:var(--shadow);color:var(--muted);font-family:var(--font-mono);flex-direction:column;font-size:13px;display:flex;position:fixed;bottom:72px;right:16px;overflow:hidden}.ask__panel[data-astro-cid-l2gncxap][hidden]{display:none}@media (width>=1024px){.ask__panel[data-astro-cid-l2gncxap]{bottom:80px;right:100px}}@media (width<=599px){.ask__panel[data-astro-cid-l2gncxap]{width:100%;max-height:85dvh;padding-bottom:env(safe-area-inset-bottom);border-bottom:0;border-radius:14px 14px 0 0;bottom:0;left:0;right:0}}.ask__head[data-astro-cid-l2gncxap]{border-bottom:1px solid var(--border);grid-template-columns:1fr auto;align-items:center;padding:12px 8px 12px 16px;display:grid}.ask__title[data-astro-cid-l2gncxap]{color:var(--text);font-family:var(--font-mono);letter-spacing:.02em;font-size:14px;font-weight:500}.ask__prompt[data-astro-cid-l2gncxap]{color:var(--accent)}.ask__note[data-astro-cid-l2gncxap]{color:var(--faint);letter-spacing:.04em;grid-column:1;font-size:11px}.ask__close[data-astro-cid-l2gncxap]{width:44px;height:44px;color:var(--faint);background:0 0;border:0;grid-area:1/2/span 2;place-items:center;display:inline-grid}.ask__close[data-astro-cid-l2gncxap]:hover{color:var(--text)}.ask__body[data-astro-cid-l2gncxap]{overscroll-behavior:contain;flex:auto;padding:14px 16px;overflow-y:auto}.ask__suggest[data-astro-cid-l2gncxap]{flex-wrap:wrap;gap:8px;margin:0 0 14px;padding:0;list-style:none;display:flex}.ask__chip[data-astro-cid-l2gncxap]{border:1px solid var(--border);min-height:36px;color:var(--muted);font-family:var(--font-mono);transition:background-color var(--dur-ui) var(--ease-ui), color var(--dur-ui) var(--ease-ui);background:0 0;border-radius:999px;padding:0 12px;font-size:12px}@media (hover:hover) and (pointer:fine){.ask__chip[data-astro-cid-l2gncxap]:hover{background:var(--accent-tint);color:var(--text)}}.ask__log[data-astro-cid-l2gncxap]{flex-direction:column;gap:10px;margin:0;padding:0;line-height:1.6;list-style:none;display:flex}.ask__log[data-astro-cid-l2gncxap] .ask__q{color:var(--text)}.ask__log[data-astro-cid-l2gncxap] .ask__a{border-left:1px solid var(--border);padding-left:14px}.ask__log[data-astro-cid-l2gncxap] .ask__a p+a,.ask__log[data-astro-cid-l2gncxap] .ask__see{margin-top:4px;display:inline-block}.ask__log[data-astro-cid-l2gncxap] .ask__a p+p{margin-top:6px}.ask__log[data-astro-cid-l2gncxap] .ask__see{color:var(--faint);display:block}.ask__form[data-astro-cid-l2gncxap]{border-top:1px solid var(--border);align-items:center;gap:8px;padding:8px 8px 8px 16px;display:flex}.ask__input[data-astro-cid-l2gncxap]{min-width:0;height:40px;color:var(--text);font-family:var(--font-mono);background:0 0;border:0;flex:auto;font-size:16px}@media (width>=600px){.ask__input[data-astro-cid-l2gncxap]{font-size:13px}}.ask__input[data-astro-cid-l2gncxap]::placeholder{color:var(--faint)}.ask__input[data-astro-cid-l2gncxap]:focus-visible{outline:none}.ask__form[data-astro-cid-l2gncxap]:focus-within{box-shadow:inset 0 0 0 1px var(--faint)}.ask__send[data-astro-cid-l2gncxap]{border-radius:var(--radius);width:44px;height:44px;color:var(--faint);background:0 0;border:0;place-items:center;display:inline-grid}.ask__send[data-astro-cid-l2gncxap]:hover{color:var(--text);background:var(--accent-tint)}@media (prefers-reduced-motion:reduce){.ask__open[data-astro-cid-l2gncxap]{transition:none}}.skip-link[data-astro-cid-z4jru4n3]{z-index:calc(var(--z-intro) + 1);border:1px solid var(--accent);border-radius:var(--radius);background:var(--surface);color:var(--text);font-family:var(--font-mono);transition:transform var(--dur-ui) var(--ease-ui);padding:12px 16px;font-size:13px;position:fixed;top:12px;left:12px;transform:translateY(-200%)}.skip-link[data-astro-cid-z4jru4n3]:focus-visible,.skip-link[data-astro-cid-z4jru4n3]:focus{transform:none}main[data-astro-cid-z4jru4n3]{z-index:var(--z-content);outline:none;display:block;position:relative}
