*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Geist Sans,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.left-2{left:.5rem}.right-2{right:.5rem}.top-1\/2{top:50%}.my-4{margin-top:1rem;margin-bottom:1rem}.mr-2{margin-right:.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.contents{display:contents}.hidden{display:none}.size-4{width:1rem;height:1rem}.size-5{width:1.25rem;height:1.25rem}.h-4{height:1rem}.w-4{width:1rem}.w-fit{width:-moz-fit-content;width:fit-content}.flex-1{flex:1 1 0%}.grow{flex-grow:1}.-translate-x-1{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-2{--tw-translate-x: .5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-3{--tw-translate-x: .75rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-x-0{--tw-scale-x: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-help{cursor:help}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.flex-col{flex-direction:column}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.gap-2{gap:.5rem}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-black\/10{border-color:#0000001a}.border-black\/15{border-color:#00000026}.border-blue-800{--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity))}.border-orange-800{--tw-border-opacity: 1;border-color:rgb(154 52 18 / var(--tw-border-opacity))}.border-red-800{--tw-border-opacity: 1;border-color:rgb(153 27 27 / var(--tw-border-opacity))}.border-yellow-800{--tw-border-opacity: 1;border-color:rgb(133 77 14 / var(--tw-border-opacity))}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity))}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-400{--tw-gradient-from: #60a5fa var(--tw-gradient-from-position);--tw-gradient-to: rgb(96 165 250 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-400{--tw-gradient-from: #4ade80 var(--tw-gradient-from-position);--tw-gradient-to: rgb(74 222 128 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-400{--tw-gradient-from: #c084fc var(--tw-gradient-from-position);--tw-gradient-to: rgb(192 132 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-emerald-500{--tw-gradient-to: #10b981 var(--tw-gradient-to-position)}.to-indigo-500{--tw-gradient-to: #6366f1 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.fill-none{fill:none}.stroke-current{stroke:currentColor}.stroke-2{stroke-width:2}.p-2{padding:.5rem}.p-3{padding:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pl-7{padding-left:1.75rem}.pl-8{padding-left:2rem}.pr-10{padding-right:2.5rem}.pr-3{padding-right:.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-semibold{font-weight:600}.text-blue-950{--tw-text-opacity: 1;color:rgb(23 37 84 / var(--tw-text-opacity))}.text-current{color:currentColor}.text-orange-950{--tw-text-opacity: 1;color:rgb(67 20 7 / var(--tw-text-opacity))}.text-red-950{--tw-text-opacity: 1;color:rgb(69 10 10 / var(--tw-text-opacity))}.text-yellow-950{--tw-text-opacity: 1;color:rgb(66 32 6 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.decoration-black\/30{text-decoration-color:#0000004d}.underline-offset-\[3px\]{text-underline-offset:3px}.opacity-50{opacity:.5}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.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{-webkit-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);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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}article a{font-family:Geist Sans,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";color:currentColor;text-decoration-line:underline;text-underline-offset:3px;text-decoration-color:#0000004d}article a:is(.dark *){text-decoration-color:#ffffff4d}article a{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}article a:hover{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}article a:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}article a:hover{text-decoration-color:#00000080}article a:hover:is(.dark *){text-decoration-color:#ffffff80}html{overflow-y:auto;color-scheme:light;scroll-padding-top:100px}html.dark{color-scheme:dark}html,body{width:100%;height:100%}body{font-family:Geist Sans,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:flex;flex-direction:column;--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity))}body:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}body{color:#000000bf}body:is(.dark *){color:#ffffffbf}header{position:fixed;left:0;right:0;top:0;z-index:50;padding-top:1.5rem;padding-bottom:1.5rem;background-color:#f5f5f5bf}header:is(.dark *){background-color:#171717bf}header{--tw-saturate: saturate(2);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);--tw-backdrop-blur: blur(4px);-webkit-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);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)}main{flex:1 1 0%;padding-top:8rem;padding-bottom:8rem}footer{padding-top:1.5rem;padding-bottom:1.5rem;font-size:.875rem;line-height:1.25rem}article{color:var(--tw-prose-body);max-width:65ch}article :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}article :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}article :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}article :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}article :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}article :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}article :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}article :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}article :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}article :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}article :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}article :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}article :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}article :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}article :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}article :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}article :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}article :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}article :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}article :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}article :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}article :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}article :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}article :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}article :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}article :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}article :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}article :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}article :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}article :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}article :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}article :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}article :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}article :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}article :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}article :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}article :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}article :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}article :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}article :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}article :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}article :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}article :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}article :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;text-align:start;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}article :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}article :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}article :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}article :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}article :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}article :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}article :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}article :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}article :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}article{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}article :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}article :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}article :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}article :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}article :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}article :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}article :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}article :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}article :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}article :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}article :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}article :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}article :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}article :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}article :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}article :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}article :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}article :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}article :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}article :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}article :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}article :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}article :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}article :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}article{--tw-prose-body: #404040;--tw-prose-headings: #171717;--tw-prose-lead: #525252;--tw-prose-links: #171717;--tw-prose-bold: #171717;--tw-prose-counters: #737373;--tw-prose-bullets: #d4d4d4;--tw-prose-hr: #e5e5e5;--tw-prose-quotes: #171717;--tw-prose-quote-borders: #e5e5e5;--tw-prose-captions: #737373;--tw-prose-kbd: #171717;--tw-prose-kbd-shadows: 23 23 23;--tw-prose-code: #171717;--tw-prose-pre-code: #e5e5e5;--tw-prose-pre-bg: #262626;--tw-prose-th-borders: #d4d4d4;--tw-prose-td-borders: #e5e5e5;--tw-prose-invert-body: #d4d4d4;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #a3a3a3;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #a3a3a3;--tw-prose-invert-bullets: #525252;--tw-prose-invert-hr: #404040;--tw-prose-invert-quotes: #f5f5f5;--tw-prose-invert-quote-borders: #404040;--tw-prose-invert-captions: #a3a3a3;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d4d4d4;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #525252;--tw-prose-invert-td-borders: #404040;max-width:100%}article:is(.dark *){--tw-prose-body: var(--tw-prose-invert-body);--tw-prose-headings: var(--tw-prose-invert-headings);--tw-prose-lead: var(--tw-prose-invert-lead);--tw-prose-links: var(--tw-prose-invert-links);--tw-prose-bold: var(--tw-prose-invert-bold);--tw-prose-counters: var(--tw-prose-invert-counters);--tw-prose-bullets: var(--tw-prose-invert-bullets);--tw-prose-hr: var(--tw-prose-invert-hr);--tw-prose-quotes: var(--tw-prose-invert-quotes);--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);--tw-prose-captions: var(--tw-prose-invert-captions);--tw-prose-kbd: var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows);--tw-prose-code: var(--tw-prose-invert-code);--tw-prose-pre-code: var(--tw-prose-invert-pre-code);--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);--tw-prose-th-borders: var(--tw-prose-invert-th-borders);--tw-prose-td-borders: var(--tw-prose-invert-td-borders)}article :is(:where(img):not(:where([class~=not-prose],[class~=not-prose] *))){margin:auto}article :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:600;--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}article:is(.dark *) :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.animate{--tw-translate-y: -.75rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));opacity:0;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1)}.animate.show{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));opacity:1}html #back-to-top{pointer-events:none;opacity:0}html.scrolled #back-to-top{pointer-events:auto;opacity:1}pre{border-width:1px;border-color:#00000026;padding-top:1.25rem;padding-bottom:1.25rem}pre:is(.dark *){border-color:#fff3}:root{--astro-code-color-text: #09090b;--astro-code-color-background: #fafafa;--astro-code-token-comment: #a19595;--astro-code-token-keyword: #f47067;--astro-code-token-string: #00a99a;--astro-code-token-function: #429996;--astro-code-token-constant: #2b70c5;--astro-code-token-parameter: #4e8fdf;--astro-code-token-string-expression: #ae42a0;--astro-code-token-punctuation: #8996a3;--astro-code-token-link: #8d85ff}.dark{--astro-code-color-text: #fafafa;--astro-code-color-background: #09090b;--astro-code-token-comment: #a19595;--astro-code-token-keyword: #f47067;--astro-code-token-string: #00a99a;--astro-code-token-function: #6eafad;--astro-code-token-constant: #b3cceb;--astro-code-token-parameter: #4e8fdf;--astro-code-token-string-expression: #bf7db6;--astro-code-token-punctuation: #8996a3;--astro-code-token-link: #8d85ff}.copy-code{position:absolute;right:.75rem;top:.75rem;display:grid;width:2.25rem;height:2.25rem;place-content:center;border-radius:.25rem;border-width:1px;border-color:#00000026;--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity));text-align:center;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.copy-code:is(.dark *){border-color:#fff3;--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.copy-code:hover{--tw-bg-opacity: 1;background-color:rgb(233 233 233 / var(--tw-bg-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.copy-code:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 35 35 / var(--tw-bg-opacity))}.copy-code:active{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.hover\:bg-black\/5:hover{background-color:#0000000d}.hover\:text-black:hover{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.hover\:decoration-black\/50:hover{text-decoration-color:#00000080}.focus-visible\:bg-black\/5:focus-visible{background-color:#0000000d}.focus-visible\:text-black:focus-visible{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.focus-visible\:decoration-black\/50:focus-visible{text-decoration-color:#00000080}.group:hover .group-hover\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-x-100{--tw-scale-x: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:focus-visible .group-focus-visible\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:focus-visible .group-focus-visible\:scale-x-100{--tw-scale-x: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:border-blue-200\/20:is(.dark *){border-color:#bfdbfe33}.dark\:border-orange-200\/20:is(.dark *){border-color:#fed7aa33}.dark\:border-red-200\/20:is(.dark *){border-color:#fecaca33}.dark\:border-white\/10:is(.dark *){border-color:#ffffff1a}.dark\:border-white\/20:is(.dark *){border-color:#fff3}.dark\:border-yellow-200\/20:is(.dark *){border-color:#fef08a33}.dark\:bg-blue-950\/20:is(.dark *){background-color:#17255433}.dark\:bg-orange-950\/20:is(.dark *){background-color:#43140733}.dark\:bg-red-950\/20:is(.dark *){background-color:#450a0a33}.dark\:bg-yellow-950\/20:is(.dark *){background-color:#42200633}.dark\:decoration-white\/30:is(.dark *){text-decoration-color:#ffffff4d}.dark\:hover\:bg-white\/10:hover:is(.dark *){background-color:#ffffff1a}.dark\:hover\:bg-white\/5:hover:is(.dark *){background-color:#ffffff0d}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:hover\:decoration-white\/50:hover:is(.dark *){text-decoration-color:#ffffff80}.dark\:focus-visible\:bg-white\/5:focus-visible:is(.dark *){background-color:#ffffff0d}.dark\:focus-visible\:text-white:focus-visible:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:focus-visible\:decoration-white\/50:focus-visible:is(.dark *){text-decoration-color:#ffffff80}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/geist-sans-latin-400-normal.gapTbOY8.woff2) format("woff2"),url(/_astro/geist-sans-latin-400-normal.BOaIZNA2.woff) format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/geist-mono-latin-400-normal.ao2e9zgx.woff2) format("woff2"),url(/_astro/geist-mono-latin-400-normal.CQcZBlNU.woff) format("woff")}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.pagefind-ui__result.svelte-j9e30.svelte-j9e30{list-style-type:none;display:flex;align-items:flex-start;gap:min(calc(40px * var(--pagefind-ui-scale)),3%);padding:calc(30px * var(--pagefind-ui-scale)) 0 calc(40px * var(--pagefind-ui-scale));border-top:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result.svelte-j9e30.svelte-j9e30:last-of-type{border-bottom:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result-thumb.svelte-j9e30.svelte-j9e30{width:min(30%,calc((30% - (100px * var(--pagefind-ui-scale))) * 100000));max-width:calc(120px * var(--pagefind-ui-scale));margin-top:calc(10px * var(--pagefind-ui-scale));aspect-ratio:var(--pagefind-ui-image-box-ratio);position:relative}.pagefind-ui__result-image.svelte-j9e30.svelte-j9e30{display:block;position:absolute;left:50%;transform:translate(-50%);font-size:0;width:auto;height:auto;max-width:100%;max-height:100%;border-radius:var(--pagefind-ui-image-border-radius)}.pagefind-ui__result-inner.svelte-j9e30.svelte-j9e30{flex:1;display:flex;flex-direction:column;align-items:flex-start;margin-top:calc(10px * var(--pagefind-ui-scale))}.pagefind-ui__result-title.svelte-j9e30.svelte-j9e30{display:inline-block;font-weight:700;font-size:calc(21px * var(--pagefind-ui-scale));margin-top:0;margin-bottom:0}.pagefind-ui__result-title.svelte-j9e30 .pagefind-ui__result-link.svelte-j9e30{color:var(--pagefind-ui-text);text-decoration:none}.pagefind-ui__result-title.svelte-j9e30 .pagefind-ui__result-link.svelte-j9e30:hover{text-decoration:underline}.pagefind-ui__result-excerpt.svelte-j9e30.svelte-j9e30{display:inline-block;font-weight:400;font-size:calc(16px * var(--pagefind-ui-scale));margin-top:calc(4px * var(--pagefind-ui-scale));margin-bottom:0;min-width:calc(250px * var(--pagefind-ui-scale))}.pagefind-ui__loading.svelte-j9e30.svelte-j9e30{color:var(--pagefind-ui-text);background-color:var(--pagefind-ui-text);border-radius:var(--pagefind-ui-border-radius);opacity:.1;pointer-events:none}.pagefind-ui__result-tags.svelte-j9e30.svelte-j9e30{list-style-type:none;padding:0;display:flex;gap:calc(20px * var(--pagefind-ui-scale));flex-wrap:wrap;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__result-tag.svelte-j9e30.svelte-j9e30{padding:calc(4px * var(--pagefind-ui-scale)) calc(8px * var(--pagefind-ui-scale));font-size:calc(14px * var(--pagefind-ui-scale));border-radius:var(--pagefind-ui-border-radius);background-color:var(--pagefind-ui-tag)}.pagefind-ui__result.svelte-4xnkmf.svelte-4xnkmf{list-style-type:none;display:flex;align-items:flex-start;gap:min(calc(40px * var(--pagefind-ui-scale)),3%);padding:calc(30px * var(--pagefind-ui-scale)) 0 calc(40px * var(--pagefind-ui-scale));border-top:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result.svelte-4xnkmf.svelte-4xnkmf:last-of-type{border-bottom:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result-nested.svelte-4xnkmf.svelte-4xnkmf{display:flex;flex-direction:column;padding-left:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__result-nested.svelte-4xnkmf.svelte-4xnkmf:first-of-type{padding-top:calc(10px * var(--pagefind-ui-scale))}.pagefind-ui__result-nested.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf{font-size:.9em;position:relative}.pagefind-ui__result-nested.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf:before{content:"⤷ ";position:absolute;top:0;right:calc(100% + .1em)}.pagefind-ui__result-thumb.svelte-4xnkmf.svelte-4xnkmf{width:min(30%,calc((30% - (100px * var(--pagefind-ui-scale))) * 100000));max-width:calc(120px * var(--pagefind-ui-scale));margin-top:calc(10px * var(--pagefind-ui-scale));aspect-ratio:var(--pagefind-ui-image-box-ratio);position:relative}.pagefind-ui__result-image.svelte-4xnkmf.svelte-4xnkmf{display:block;position:absolute;left:50%;transform:translate(-50%);font-size:0;width:auto;height:auto;max-width:100%;max-height:100%;border-radius:var(--pagefind-ui-image-border-radius)}.pagefind-ui__result-inner.svelte-4xnkmf.svelte-4xnkmf{flex:1;display:flex;flex-direction:column;align-items:flex-start;margin-top:calc(10px * var(--pagefind-ui-scale))}.pagefind-ui__result-title.svelte-4xnkmf.svelte-4xnkmf{display:inline-block;font-weight:700;font-size:calc(21px * var(--pagefind-ui-scale));margin-top:0;margin-bottom:0}.pagefind-ui__result-title.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf{color:var(--pagefind-ui-text);text-decoration:none}.pagefind-ui__result-title.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf:hover{text-decoration:underline}.pagefind-ui__result-excerpt.svelte-4xnkmf.svelte-4xnkmf{display:inline-block;font-weight:400;font-size:calc(16px * var(--pagefind-ui-scale));margin-top:calc(4px * var(--pagefind-ui-scale));margin-bottom:0;min-width:calc(250px * var(--pagefind-ui-scale))}.pagefind-ui__loading.svelte-4xnkmf.svelte-4xnkmf{color:var(--pagefind-ui-text);background-color:var(--pagefind-ui-text);border-radius:var(--pagefind-ui-border-radius);opacity:.1;pointer-events:none}.pagefind-ui__result-tags.svelte-4xnkmf.svelte-4xnkmf{list-style-type:none;padding:0;display:flex;gap:calc(20px * var(--pagefind-ui-scale));flex-wrap:wrap;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__result-tag.svelte-4xnkmf.svelte-4xnkmf{padding:calc(4px * var(--pagefind-ui-scale)) calc(8px * var(--pagefind-ui-scale));font-size:calc(14px * var(--pagefind-ui-scale));border-radius:var(--pagefind-ui-border-radius);background-color:var(--pagefind-ui-tag)}legend.svelte-1v2r7ls.svelte-1v2r7ls{position:absolute;clip:rect(0 0 0 0)}.pagefind-ui__filter-panel.svelte-1v2r7ls.svelte-1v2r7ls{min-width:min(calc(260px * var(--pagefind-ui-scale)),100%);flex:1;display:flex;flex-direction:column;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__filter-group.svelte-1v2r7ls.svelte-1v2r7ls{border:0;padding:0}.pagefind-ui__filter-block.svelte-1v2r7ls.svelte-1v2r7ls{padding:0;display:block;border-bottom:solid calc(2px * var(--pagefind-ui-scale)) var(--pagefind-ui-border);padding:calc(20px * var(--pagefind-ui-scale)) 0}.pagefind-ui__filter-name.svelte-1v2r7ls.svelte-1v2r7ls{font-size:calc(16px * var(--pagefind-ui-scale));position:relative;display:flex;align-items:center;list-style:none;font-weight:700;cursor:pointer;height:calc(24px * var(--pagefind-ui-scale))}.pagefind-ui__filter-name.svelte-1v2r7ls.svelte-1v2r7ls::-webkit-details-marker{display:none}.pagefind-ui__filter-name.svelte-1v2r7ls.svelte-1v2r7ls:after{position:absolute;content:"";right:calc(6px * var(--pagefind-ui-scale));top:50%;width:calc(8px * var(--pagefind-ui-scale));height:calc(8px * var(--pagefind-ui-scale));border:solid calc(2px * var(--pagefind-ui-scale)) currentColor;border-right:0;border-top:0;transform:translateY(-70%) rotate(-45deg)}.pagefind-ui__filter-block[open].svelte-1v2r7ls .pagefind-ui__filter-name.svelte-1v2r7ls:after{transform:translateY(-70%) rotate(-225deg)}.pagefind-ui__filter-group.svelte-1v2r7ls.svelte-1v2r7ls{display:flex;flex-direction:column;gap:calc(20px * var(--pagefind-ui-scale));padding-top:calc(30px * var(--pagefind-ui-scale))}.pagefind-ui__filter-value.svelte-1v2r7ls.svelte-1v2r7ls{position:relative;display:flex;align-items:center;gap:calc(8px * var(--pagefind-ui-scale))}.pagefind-ui__filter-value.svelte-1v2r7ls.svelte-1v2r7ls:before{position:absolute;content:"";top:50%;left:calc(8px * var(--pagefind-ui-scale));width:0px;height:0px;border:solid 1px #fff;opacity:0;transform:translate(calc(4.5px * var(--pagefind-ui-scale) * -1),calc(.8px * var(--pagefind-ui-scale))) skew(-5deg) rotate(-45deg);transform-origin:top left;border-top:0;border-right:0;pointer-events:none}.pagefind-ui__filter-value.pagefind-ui__filter-value--checked.svelte-1v2r7ls.svelte-1v2r7ls:before{opacity:1;width:calc(9px * var(--pagefind-ui-scale));height:calc(4px * var(--pagefind-ui-scale));transition:width .1s ease-out .1s,height .1s ease-in}.pagefind-ui__filter-checkbox.svelte-1v2r7ls.svelte-1v2r7ls{margin:0;width:calc(16px * var(--pagefind-ui-scale));height:calc(16px * var(--pagefind-ui-scale));border:solid 1px var(--pagefind-ui-border);-moz-appearance:none;appearance:none;-webkit-appearance:none;border-radius:calc(var(--pagefind-ui-border-radius) / 2);background-color:var(--pagefind-ui-background);cursor:pointer}.pagefind-ui__filter-checkbox.svelte-1v2r7ls.svelte-1v2r7ls:checked{background-color:var(--pagefind-ui-primary);border:solid 1px var(--pagefind-ui-primary)}.pagefind-ui__filter-label.svelte-1v2r7ls.svelte-1v2r7ls{cursor:pointer;font-size:calc(16px * var(--pagefind-ui-scale));font-weight:400}.pagefind-ui--reset *:where(:not(html,iframe,canvas,img,svg,video):not(svg *,symbol *)){all:unset;display:revert;outline:revert}.pagefind-ui--reset *,.pagefind-ui--reset *:before,.pagefind-ui--reset *:after{box-sizing:border-box}.pagefind-ui--reset a,.pagefind-ui--reset button{cursor:revert}.pagefind-ui--reset ol,.pagefind-ui--reset ul,.pagefind-ui--reset menu{list-style:none}.pagefind-ui--reset img{max-width:100%}.pagefind-ui--reset table{border-collapse:collapse}.pagefind-ui--reset input,.pagefind-ui--reset textarea{-webkit-user-select:auto}.pagefind-ui--reset textarea{white-space:revert}.pagefind-ui--reset meter{-webkit-appearance:revert;-moz-appearance:revert;appearance:revert}.pagefind-ui--reset ::-moz-placeholder{color:unset}.pagefind-ui--reset ::placeholder{color:unset}.pagefind-ui--reset :where([hidden]){display:none}.pagefind-ui--reset :where([contenteditable]:not([contenteditable=false])){-moz-user-modify:read-write;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space;-webkit-user-select:auto}.pagefind-ui--reset :where([draggable=true]){-webkit-user-drag:element}.pagefind-ui--reset mark{all:revert}:root{--pagefind-ui-scale:.8;--pagefind-ui-primary:#393939;--pagefind-ui-text:#393939;--pagefind-ui-background:#ffffff;--pagefind-ui-border:#eeeeee;--pagefind-ui-tag:#eeeeee;--pagefind-ui-border-width:2px;--pagefind-ui-border-radius:8px;--pagefind-ui-image-border-radius:8px;--pagefind-ui-image-box-ratio:3 / 2;--pagefind-ui-font:system, -apple-system, "BlinkMacSystemFont", ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", "Ubuntu", "arial", sans-serif}.pagefind-ui.svelte-e9gkc3{width:100%;color:var(--pagefind-ui-text);font-family:var(--pagefind-ui-font)}.pagefind-ui__hidden.svelte-e9gkc3{display:none!important}.pagefind-ui__suppressed.svelte-e9gkc3{opacity:0;pointer-events:none}.pagefind-ui__form.svelte-e9gkc3{position:relative}.pagefind-ui__form.svelte-e9gkc3:before{background-color:var(--pagefind-ui-text);width:calc(18px * var(--pagefind-ui-scale));height:calc(18px * var(--pagefind-ui-scale));top:calc(23px * var(--pagefind-ui-scale));left:calc(20px * var(--pagefind-ui-scale));content:"";position:absolute;display:block;opacity:.7;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.7549 11.255H11.9649L11.6849 10.985C12.6649 9.845 13.2549 8.365 13.2549 6.755C13.2549 3.165 10.3449 0.255005 6.75488 0.255005C3.16488 0.255005 0.254883 3.165 0.254883 6.755C0.254883 10.345 3.16488 13.255 6.75488 13.255C8.36488 13.255 9.84488 12.665 10.9849 11.685L11.2549 11.965V12.755L16.2549 17.745L17.7449 16.255L12.7549 11.255ZM6.75488 11.255C4.26488 11.255 2.25488 9.245 2.25488 6.755C2.25488 4.26501 4.26488 2.255 6.75488 2.255C9.24488 2.255 11.2549 4.26501 11.2549 6.755C11.2549 9.245 9.24488 11.255 6.75488 11.255Z' fill='%23000000'/%3E%3C/svg%3E%0A");mask-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.7549 11.255H11.9649L11.6849 10.985C12.6649 9.845 13.2549 8.365 13.2549 6.755C13.2549 3.165 10.3449 0.255005 6.75488 0.255005C3.16488 0.255005 0.254883 3.165 0.254883 6.755C0.254883 10.345 3.16488 13.255 6.75488 13.255C8.36488 13.255 9.84488 12.665 10.9849 11.685L11.2549 11.965V12.755L16.2549 17.745L17.7449 16.255L12.7549 11.255ZM6.75488 11.255C4.26488 11.255 2.25488 9.245 2.25488 6.755C2.25488 4.26501 4.26488 2.255 6.75488 2.255C9.24488 2.255 11.2549 4.26501 11.2549 6.755C11.2549 9.245 9.24488 11.255 6.75488 11.255Z' fill='%23000000'/%3E%3C/svg%3E%0A");-webkit-mask-size:100%;mask-size:100%;z-index:9;pointer-events:none}.pagefind-ui__search-input.svelte-e9gkc3{height:calc(64px * var(--pagefind-ui-scale));padding:0 calc(70px * var(--pagefind-ui-scale)) 0 calc(54px * var(--pagefind-ui-scale));background-color:var(--pagefind-ui-background);border:var(--pagefind-ui-border-width) solid var(--pagefind-ui-border);border-radius:var(--pagefind-ui-border-radius);font-size:calc(21px * var(--pagefind-ui-scale));position:relative;-moz-appearance:none;appearance:none;-webkit-appearance:none;display:flex;width:100%;box-sizing:border-box;font-weight:700}.pagefind-ui__search-input.svelte-e9gkc3::-moz-placeholder{opacity:.2}.pagefind-ui__search-input.svelte-e9gkc3::placeholder{opacity:.2}.pagefind-ui__search-clear.svelte-e9gkc3{position:absolute;top:calc(3px * var(--pagefind-ui-scale));right:calc(3px * var(--pagefind-ui-scale));height:calc(58px * var(--pagefind-ui-scale));padding:0 calc(15px * var(--pagefind-ui-scale)) 0 calc(2px * var(--pagefind-ui-scale));color:var(--pagefind-ui-text);font-size:calc(14px * var(--pagefind-ui-scale));cursor:pointer;background-color:var(--pagefind-ui-background);border-radius:var(--pagefind-ui-border-radius)}.pagefind-ui__drawer.svelte-e9gkc3{gap:calc(60px * var(--pagefind-ui-scale));display:flex;flex-direction:row;flex-wrap:wrap}.pagefind-ui__results-area.svelte-e9gkc3{min-width:min(calc(400px * var(--pagefind-ui-scale)),100%);flex:1000;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__results.svelte-e9gkc3{padding:0}.pagefind-ui__message.svelte-e9gkc3{box-sizing:content-box;font-size:calc(16px * var(--pagefind-ui-scale));height:calc(24px * var(--pagefind-ui-scale));padding:calc(20px * var(--pagefind-ui-scale)) 0;display:flex;align-items:center;font-weight:700;margin-top:0}.pagefind-ui__button.svelte-e9gkc3{margin-top:calc(40px * var(--pagefind-ui-scale));border:var(--pagefind-ui-border-width) solid var(--pagefind-ui-border);border-radius:var(--pagefind-ui-border-radius);height:calc(48px * var(--pagefind-ui-scale));padding:0 calc(12px * var(--pagefind-ui-scale));font-size:calc(16px * var(--pagefind-ui-scale));color:var(--pagefind-ui-primary);background:var(--pagefind-ui-background);width:100%;text-align:center;font-weight:700;cursor:pointer}.pagefind-ui__button.svelte-e9gkc3:hover{border-color:var(--pagefind-ui-primary);color:var(--pagefind-ui-primary);background:var(--pagefind-ui-background)}.portfolio-site{--pagefind-ui-scale: .8;--pagefind-ui-border-width: 1px;--pagefind-ui-border-radius: 3px;--pagefind-ui-font: "Geist Sans", sans-serif;--pagefind-ui-primary: #292e28;--pagefind-ui-text: #292e28;--pagefind-ui-background: #f3f1e9;--pagefind-ui-border: #c6c9bb;--pagefind-ui-tag: #e7e9df}.search-backdrop{position:fixed;inset:0;z-index:100;background:#232d2280;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:10vh 20px;display:flex;justify-content:center;align-items:flex-start}.search-backdrop[hidden]{display:none}#pagefind-container{padding:25px;max-width:700px;width:100%;max-height:80vh;overflow:auto;border:1px solid var(--line);border-radius:4px;box-shadow:0 20px 90px #0002}.search-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:25px}.search-heading>button{font-size:11px}.search-hint{font-size:10px;color:var(--muted);margin-top:20px}.search-button{background:none;border:0;font-size:16px;line-height:1;cursor:pointer;padding:6px;color:var(--ink)}.search-button:hover{color:var(--accent)}#search input{font-weight:400}#search .pagefind-ui__result-title{font-weight:500}:root{--paper: #f3f1e9;--ink: #292e28;--muted: #656a60;--line: #292e2826;--accent: #c94c2b;--olive: #d6dacb;--mono: "Geist Mono", monospace}html{scroll-padding-top:105px;scroll-behavior:smooth;color-scheme:light}html.dark{color-scheme:light}html body.portfolio-site{height:auto;display:block;background:var(--paper);color:var(--ink);font-family:Geist Sans,sans-serif;-webkit-font-smoothing:antialiased}.portfolio-site *{box-sizing:border-box}.portfolio-site a{color:inherit;text-decoration:none}.portfolio-site a:hover{color:var(--accent)}.portfolio-site ::-moz-selection{background:var(--accent);color:#fff}.portfolio-site ::selection{background:var(--accent);color:#fff}.portfolio-site a:focus-visible,.portfolio-site button:focus-visible,.portfolio-site summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.portfolio-site main{padding:0}.portfolio-site .site-header{position:relative;top:0;display:flex;align-items:center;justify-content:space-between;padding:24px 4.5%;border-bottom:1px solid var(--line);background:var(--paper);-webkit-backdrop-filter:none;backdrop-filter:none;z-index:20;gap:25px}.identity{display:flex;align-items:center;gap:13px;font-size:13px;font-weight:550;line-height:1.3}.identity-symbol{font-size:43px;line-height:1;font-weight:650;letter-spacing:-5px;padding-right:3px}.identity-symbol>span{color:var(--accent)}.identity small{display:block;font-family:var(--mono);font-size:7px;font-weight:400;letter-spacing:.7px;margin-top:6px}.site-header nav{display:flex;gap:28px;font-size:12px}.site-header nav a{position:relative;padding:8px 0}.site-header nav a[aria-current=page]:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent)}.header-contact{font-size:12px;display:flex;gap:35px}.eyebrow,.mono{font-family:var(--mono);font-size:9px;letter-spacing:1px;line-height:1.7}.eyebrow{color:var(--muted)}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:8px}.portfolio-site h1,.portfolio-site h2,.portfolio-site h3{font-weight:450}.portfolio-site em{font-family:Georgia,Times New Roman,serif;font-weight:400;letter-spacing:-.05em}.text-link{font-size:12px;border-bottom:1px solid #292e2870;padding-bottom:7px;display:inline-block}.pill-list{display:flex;flex-wrap:wrap;gap:7px}.pill-list span{font-family:var(--mono);font-size:8px;padding:6px 10px;border:1px solid var(--line);border-radius:3px}.skip-link{position:fixed;top:-100px;left:15px;padding:12px;background:var(--paper);z-index:100}.skip-link:focus{top:10px}.portfolio-site .inner-main{min-height:65vh;padding:70px 4.5% 110px;max-width:1600px;margin:auto}.page-intro{display:grid;grid-template-columns:1.4fr 1fr;gap:25px 8%;align-items:end;padding-bottom:55px;border-bottom:1px solid var(--line);margin-bottom:45px}.page-intro .eyebrow{grid-column:1/-1}.page-intro h1{font-size:clamp(52px,7vw,100px);letter-spacing:-.065em;line-height:1;margin:0}.page-intro p{font-size:15px;line-height:1.8;max-width:400px;color:var(--muted);margin:0}.archive-label{display:flex;justify-content:space-between;margin:20px 0 35px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px 35px}.project-tile{display:block}.tile-info{display:flex;gap:20px;align-items:start;justify-content:space-between;padding-top:20px}.tile-info h2{font-size:26px;letter-spacing:-1px;margin:8px 0}.tile-info p{font-size:13px;line-height:1.7;color:var(--muted);max-width:450px}.tile-info>span{font-size:25px}.project-tile .project-visual{transition:transform .5s}.project-tile:hover .project-visual{transform:translateY(-5px)}.research-list{max-width:1100px;margin:auto}.research-entry{display:grid;grid-template-columns:110px 1fr;gap:35px;border-bottom:1px solid var(--line);padding:35px 0}.research-entry>span{font-family:var(--mono);font-size:10px;color:var(--muted)}.research-entry h2{font-size:27px;letter-spacing:-.7px;line-height:1.3;margin:0 0 16px}.research-entry p{color:var(--muted);font-size:13px;line-height:1.8}.research-entry .venue{font-family:var(--mono);font-size:10px;color:var(--accent)}.entry-links{display:flex;gap:22px;font-size:11px;margin-top:24px}.research-context{display:flex;justify-content:space-between;padding:25px 0;border-bottom:1px solid var(--line);gap:25px;font-size:12px;color:var(--muted);margin-bottom:20px}.experience-row{display:grid;grid-template-columns:24% 1fr;gap:6%;padding:42px 0;border-bottom:1px solid var(--line)}.experience-meta h2{font-size:31px;margin:8px 0;letter-spacing:-1px}.experience-content h3{font-size:23px;margin:0 0 20px;letter-spacing:-.5px}.experience-content>div{font-size:15px;line-height:1.9;max-width:680px;color:var(--muted);margin-bottom:25px}.writing-list{max-width:1100px;margin:auto}.article-link{display:grid;grid-template-columns:100px 1fr 35px;gap:30px;padding:35px 0;border-bottom:1px solid var(--line);align-items:start}.article-link h2{font-size:27px;letter-spacing:-.8px;line-height:1.3;margin:0 0 12px}.article-link p{font-size:13px;line-height:1.8;color:var(--muted);max-width:650px}.article-link>span:last-child{font-size:25px}.article-link .mono{color:var(--muted)}.article-link [dir=rtl]{text-align:start}.portfolio-site .reading-shell{width:100%;max-width:850px;margin:0 auto;padding:0;overflow:visible}.detail-header{padding:40px 0;border-bottom:1px solid var(--line);margin-bottom:35px}.detail-header h1{font-size:clamp(38px,5vw,66px);line-height:1.1;letter-spacing:-.05em;margin:22px 0}.detail-header p{font-size:17px;line-height:1.7;color:var(--muted)}.detail-header .entry-links{font-size:12px}.detail-visual{margin:35px 0}.detail-visual .project-visual{aspect-ratio:1.6}.portfolio-site article{color:var(--ink);font-size:16px;line-height:1.9;--tw-prose-body: var(--ink);--tw-prose-headings: var(--ink);--tw-prose-links: var(--ink);--tw-prose-bold: var(--ink);--tw-prose-quotes: var(--ink);--tw-prose-counters: var(--muted);--tw-prose-bullets: var(--muted)}.portfolio-site article :is(h1,h2,h3,h4,strong){color:var(--ink)}.portfolio-site article a{color:var(--accent);text-decoration:underline}.portfolio-site article p{color:var(--muted)}.portfolio-site article :is(h2,h3){letter-spacing:-.04em}.portfolio-site article pre{border-radius:5px;--astro-code-color-background: #eae8de}.portfolio-site details{border-color:var(--line);border-radius:0;font-size:13px;margin-bottom:35px}.portfolio-site .animate{opacity:1;transform:none}.next-project{margin-top:65px;border-top:1px solid var(--line);padding-top:30px}.next-project>a{display:flex;justify-content:space-between;align-items:center;font-size:32px;letter-spacing:-1px;margin-top:12px}.site-footer{padding:45px 4.5% 20px;border-top:1px solid var(--line);background:#e8e9df}.footer-top{display:flex;justify-content:space-between;gap:30px;padding-bottom:45px;align-items:start}.footer-name{font-size:24px;letter-spacing:-.8px}.footer-name span{display:block;font-size:11px;letter-spacing:0;color:var(--muted);margin-top:8px}.footer-top>div>a{font-size:19px;letter-spacing:-.5px}.footer-socials{display:flex;gap:24px;font-size:10px;margin-top:18px}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px;gap:20px;font-family:var(--mono);font-size:8px;letter-spacing:.4px}.portfolio-site #backdrop{z-index:100}.portfolio-site #pagefind-container{background:var(--paper);color:var(--ink)}.project-visual{position:relative;isolation:isolate;aspect-ratio:1.2;background:#e2e5da;overflow:hidden;color:#323b31}.visual-corner,.visual-caption{position:absolute;left:25px;right:25px;display:flex;justify-content:space-between;align-items:center;z-index:4;font-family:var(--mono);font-size:8px;letter-spacing:.7px}.visual-corner{top:20px;justify-content:start;gap:12px}.tiny-cross{font-size:19px;font-weight:300}.visual-caption{bottom:20px;font-size:7px}.search-study{position:absolute;inset:19% 10% 16%;display:flex;flex-direction:column;justify-content:center;transform:rotate(-4deg)}.search-input{background:#faf9f3;border:1px solid #fff8;box-shadow:0 8px 25px #39452c0c;padding:15px 16px;display:flex;justify-content:space-between;gap:9px;align-items:center;font-size:11px;border-radius:6px;z-index:2}.search-input>span{font-size:18px;color:#717b67}.search-input>span:last-child{background:#e6e9e0;font-size:12px;padding:3px 6px;border-radius:4px}.search-connections{display:flex;justify-content:space-around;height:25px}.search-connections span{height:100%;width:1px;background:#67745c50}.retrieval-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.result{background:#f4f1e6;border:1px solid #fff9;border-radius:5px;height:150px;padding:8px;display:flex;flex-direction:column;box-shadow:0 12px 20px #39452c08}.result-b{background:#e9dbc7}.result-c{background:#d5dace}.lamp{flex:1;position:relative}.lamp i{position:absolute;top:20%;left:22%;width:56%;height:34%;background:#bf5d33;border-radius:80% 80% 8% 8%;box-shadow:inset -10px -5px 15px #703a2b35}.lamp b{position:absolute;top:52%;bottom:15%;left:48%;width:4%;background:#5b5c46}.lamp>span{position:absolute;bottom:12%;left:29%;width:42%;height:5%;border-radius:50%;background:#5b5c46;box-shadow:0 7px 12px #5b5c4630}.result-b .lamp i{border-radius:50% 50% 10% 10%;background:#e8bb6d;left:24%;width:52%;height:36%}.result-c .lamp i{background:#616f51;height:24%;border-radius:6px 6px 40% 40%;top:28%}.result small{font-family:var(--mono);font-size:8px;display:flex;justify-content:space-between;color:#717766}.embedding-line{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:6px;letter-spacing:.3px;margin-top:20px;white-space:nowrap}.embedding-line i{height:1px;flex:1;background:#6b79524d}.visual-signal{background:#2b3730;color:#d9e4ca}.signal-study{position:absolute;inset:0}.signal-orbits{position:absolute;width:65%;aspect-ratio:1;left:17.5%;top:17%;border:1px solid #d0decf20;border-radius:50%;box-shadow:0 0 0 32px #d0decf06,0 0 0 64px #d0decf04}.phone{width:174px;height:325px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(10deg);border:5px solid #1c211e;border-radius:29px;background:#edf0e4;box-shadow:15px 20px 45px #0004,0 0 0 1px #687367}.phone-camera{width:49px;height:11px;background:#1c211e;border-radius:0 0 8px 8px;position:absolute;top:0;left:calc(50% - 24px)}.phone-content{padding:25px 12px;color:#364431}.phone-app{display:flex;justify-content:space-between;font-size:10px;font-weight:600;letter-spacing:1px}.phone-app>span{color:#c94c2b}.phone-label{display:block;font-family:var(--mono);font-size:5px;letter-spacing:.6px;margin-top:17px;text-align:center;color:#747e69}.fingerprint{height:95px;position:relative;margin:10px 0}.fingerprint i{position:absolute;border:1px solid #758862;border-bottom-color:transparent;border-radius:50% 50% 45% 45%;left:calc(50% - 35px + var(--i) * 4px);top:calc(6px + var(--i) * 6px);width:calc(70px - var(--i) * 8px);height:calc(80px - var(--i) * 10px);transform:rotate(-20deg)}.phone-wave svg{width:100%;height:48px;fill:none;stroke:#b24f2c;stroke-width:1.5}.phone-values{display:flex;justify-content:space-between;margin-top:7px}.phone-values>span{font-size:6px;display:block}.phone-values b{display:block;font-size:20px;font-weight:400;margin-top:6px}.phone-values small{font-family:var(--mono);font-size:6px}.phone-footnote{display:block;text-align:center;font-family:var(--mono);font-size:5px;margin-top:13px;letter-spacing:.4px;color:#77866c}.signal-badge{position:absolute;bottom:14%;left:9%;font-family:var(--mono);font-size:7px;padding:12px 16px;border:1px solid #c7d5b52b;background:#39463d;transform:rotate(-6deg);box-shadow:0 8px 20px #0001}.visual-music{background:#e3d1bc;color:#594838}.watch-study{position:absolute;inset:0;transform:rotate(-13deg)}.watch-strap{position:absolute;width:98px;height:115%;background:repeating-linear-gradient(0deg,#3a4438 0px 3px,#45513f 4px 6px);left:calc(50% - 49px);top:-8%;border-radius:28px;box-shadow:inset 8px 0 10px #0002,inset -8px 0 10px #0002}.watch{position:absolute;width:223px;height:223px;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);background:linear-gradient(135deg,#a8ac9e,#454c44 24%,#767b6d 50%,#282e29 75%,#9a9e8d);padding:9px;box-shadow:15px 23px 25px #382b382f,0 0 0 1px #606951}.watch-face{height:100%;background:#181e19;border:3px solid #111713;border-radius:50%;display:flex;align-items:center;flex-direction:column;color:#e7e9da;overflow:hidden}.watch-brand{font-size:9px;letter-spacing:1px;margin-top:15px}.watch-disc{height:63px;width:63px;margin:9px 0 7px;border-radius:50%;background:repeating-radial-gradient(circle,#5d694b 0px 2px,#4d5941 3px 4px);display:grid;place-items:center}.watch-disc div{width:25px;height:25px;border-radius:50%;background:#d2633d;border:8px solid #bf7b4c}.track-title{font-size:9px}.track-type{font-family:var(--mono);font-size:4px;letter-spacing:.5px;margin-top:4px;color:#91a27f}.watch-controls{display:flex;align-items:center;gap:24px;margin:7px 0;font-size:16px}.watch-controls .pause{border-radius:50%;background:#d4dfb9;color:#34442a;width:28px;height:28px;display:grid;place-items:center;font-size:13px}.watch-progress{width:50%;height:2px;background:linear-gradient(to right,#e1824b 45%,#57604b 45%)}.watch-crown{position:absolute;left:calc(50% + 108px);top:calc(50% - 12px);height:25px;width:12px;border-radius:4px;background:repeating-linear-gradient(0deg,#545e4b 0 2px,#77856a 3px)}.watch-annotation{position:absolute;right:9%;bottom:15%;font-family:var(--mono);font-size:8px;line-height:1.6;transform:rotate(13deg)}.code-study{position:absolute;inset:30%;display:flex;align-items:center;justify-content:center;gap:25px;font-family:var(--mono);font-size:75px;color:#777f67}.code-lines{display:flex;flex-direction:column;gap:13px;flex:1}.code-lines i{height:5px;width:90px;background:#8a977a}.code-lines i:nth-child(2){width:65%;background:#c78060}.code-lines i:nth-child(3){width:80%}.code-lines i:nth-child(4){width:45%}@media (min-width: 1700px){.site-header,.site-footer{padding-left:calc((100vw - 1545px)/2)!important;padding-right:calc((100vw - 1545px)/2)!important}}@media (max-width: 900px){.site-header nav{gap:19px}.header-contact{display:none}.page-intro{grid-template-columns:1.2fr 1fr}.project-grid{gap:35px 22px}.project-visual .phone{transform:translate(-50%,-50%) rotate(10deg) scale(.8)}.project-visual .watch{width:190px;height:190px}.project-visual .watch-crown{left:calc(50% + 94px)}.project-visual .watch-annotation{display:none}.project-visual .watch-brand{margin-top:9px}.watch-disc{height:52px;width:52px}.result{height:120px}.search-input{font-size:9px;padding:10px}.embedding-line{font-size:5px;gap:5px}.visual-corner,.visual-caption{left:18px;right:18px;font-size:6px}.research-entry{grid-template-columns:80px 1fr;gap:25px}.experience-row{grid-template-columns:26% 1fr;gap:7%}}@media (max-width: 600px){.portfolio-site .site-header{padding:18px 5%;flex-wrap:wrap;gap:18px}.identity{gap:10px;font-size:12px}.identity-symbol{font-size:38px}.identity small{font-size:6px}.site-header nav{gap:23px;width:100%;justify-content:space-between;font-size:11px}.portfolio-site .inner-main{padding:45px 5% 70px}.page-intro{display:block;padding-bottom:32px;margin-bottom:25px}.page-intro h1{font-size:59px;margin:22px 0}.page-intro p{font-size:13px;max-width:95%}.page-intro>.eyebrow{font-size:8px}.project-grid{grid-template-columns:1fr;gap:35px}.tile-info h2{font-size:25px}.project-visual{aspect-ratio:1.15}.project-visual .phone{transform:translate(-50%,-50%) rotate(10deg) scale(.9)}.search-study{inset:20% 9% 16%}.search-input{font-size:10px;padding:13px}.result{height:140px}.embedding-line{font-size:5px}.project-visual .watch{width:210px;height:210px}.project-visual .watch-crown{left:calc(50% + 103px)}.watch-disc{height:61px;width:61px}.project-visual .watch-brand{margin-top:15px}.visual-corner{font-size:7px}.research-entry{grid-template-columns:1fr;gap:14px;padding:28px 0}.research-entry h2{font-size:23px}.research-context{flex-direction:column;gap:10px;font-size:11px}.experience-row{grid-template-columns:1fr;gap:25px;padding:30px 0}.experience-meta h2{font-size:28px}.experience-content h3{font-size:21px}.experience-content>div{font-size:14px}.article-link{grid-template-columns:1fr 24px;gap:12px}.article-link>span:first-child{grid-column:1/-1}.article-link h2{font-size:23px}.article-link p{font-size:12px}.footer-top{flex-direction:column;gap:28px}.footer-name{font-size:25px}.footer-top>div>a{font-size:18px}.footer-bottom{font-size:7px}.footer-bottom>span:nth-child(2){display:none}.footer-socials{gap:22px}.detail-header{padding-top:28px}.detail-header h1{font-size:40px}.detail-header p{font-size:15px}.detail-visual .project-visual{aspect-ratio:1.1}.portfolio-site article{font-size:15px}.next-project>a{font-size:26px}.visual-caption{font-size:6px}.portfolio-site .rtl ul,.portfolio-site .rtl ol{padding-right:25px}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.portfolio-site *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.detail-contribution{padding:0 0 30px;margin-bottom:30px;border-bottom:1px solid var(--line)}.detail-contribution p{font-size:13px;line-height:1.8;color:var(--muted);margin:12px 0 17px}.portfolio-site .copy-code{font-family:var(--mono);font-size:9px;width:auto;padding:0 9px;background:var(--paper);color:var(--ink);border-color:var(--line)}.research-abstract:empty{display:none}.portfolio-site .site-header{filter:none}html{scrollbar-gutter:stable;scroll-padding-top:115px}html.search-open,html.search-open body{overflow:hidden}.portfolio-site main:focus{outline:none}.site-header nav{align-items:center}.site-header nav a{display:inline-flex;align-items:center;justify-content:center;min-height:44px}.site-header .search-button{display:grid;place-items:center;min-width:44px;min-height:44px;flex-shrink:0}.identity small{font-size:8px}.header-contact{min-height:44px;align-items:center}.page-intro>*,.project-grid>*,.article-link>*,.research-entry>*,.experience-row>*,.tile-info>*{min-width:0}.entry-links{flex-wrap:wrap;gap:4px 22px}.entry-links a{display:inline-flex;align-items:center;min-height:44px}.archive-label{gap:16px;align-items:center;flex-wrap:wrap}.archive-label .mono,.research-context .mono,.detail-header .eyebrow,.experience-meta .eyebrow,.article-link .mono{font-size:10px}.portfolio-site .detail-header h1{overflow-wrap:anywhere}.portfolio-site article img{height:auto;max-width:100%;border-radius:3px}.portfolio-site article pre{max-width:100%;overflow-x:auto;padding-top:48px;direction:ltr;text-align:left}.portfolio-site article :not(pre)>code{overflow-wrap:anywhere}.portfolio-site .copy-code{min-height:32px;min-width:52px;border-radius:3px;top:8px;right:8px}.portfolio-site :lang(fa){letter-spacing:normal}.portfolio-site :is(.detail-header[dir=rtl],article.rtl,[lang=fa] h2,[lang=fa] h3,h3[lang=fa]){font-family:Tahoma,Arial,sans-serif}.portfolio-site .detail-header[dir=rtl] h1{font-size:clamp(30px,4vw,52px);line-height:1.65;letter-spacing:0}.portfolio-site article.rtl{line-height:2.15}.portfolio-site article.rtl :is(h2,h3,h4){line-height:1.8;letter-spacing:0}.portfolio-site article.rtl :is(pre,code){font-family:var(--mono);line-height:1.8}.portfolio-site .article-toc{border:1px solid var(--line);padding:0;border-radius:3px}.article-toc summary{display:flex;justify-content:space-between;align-items:center;gap:20px;cursor:pointer;padding:17px 20px;font-size:13px;list-style:none}.article-toc summary::-webkit-details-marker{display:none}.article-toc summary:hover{background:#292e2805}.toc-count{font-family:var(--mono);font-size:9px;color:var(--muted);display:flex;align-items:center;gap:16px}.toc-count>span{font-size:20px;line-height:1;transition:transform .2s}.article-toc[open] .toc-count>span{transform:rotate(45deg)}.article-toc nav{padding:0 20px 15px}.article-toc ol{list-style:none;margin:0;padding:0}.article-toc ol ol{padding-inline-start:18px;border-inline-start:1px solid var(--line);margin-inline-start:3px}.article-toc a{display:block;font-size:12px;line-height:1.6;padding:9px 0;color:var(--muted)}.article-toc a:hover{color:var(--accent)}.post-navigation{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:20px;border-top:1px solid var(--line);padding-top:25px}.post-navigation a{padding:18px 20px;border:1px solid var(--line);border-radius:3px;display:flex;flex-direction:column;gap:16px;justify-content:flex-start}.post-navigation a:hover{border-color:var(--accent)}.post-navigation a>span:last-child{font-size:16px;line-height:1.6;overflow-wrap:anywhere}.footer-socials a,.footer-bottom a{display:inline-flex;align-items:center;min-height:44px}.footer-bottom{align-items:center;font-size:9px}.footer-top .footer-email{display:block;font-size:12px;letter-spacing:0;color:var(--muted);margin-top:12px;overflow-wrap:anywhere}.footer-socials{margin-top:5px}.primary-link{background:var(--ink);color:var(--paper)!important;display:inline-flex;align-items:center;gap:25px;padding:15px 20px;border-radius:2px;font-size:12px}.primary-link:hover{background:var(--accent)}.not-found{max-width:900px;margin:30px auto 70px}.not-found h1{font-size:clamp(45px,7vw,90px);line-height:1.06;letter-spacing:-.06em;margin:35px 0}.not-found>p{font-size:15px;line-height:1.8;color:var(--muted)}.not-found-links{display:flex;flex-wrap:wrap;gap:25px;align-items:center;margin-top:35px}.not-found-links button{font-size:12px;cursor:pointer}.search-heading .search-dismiss{min-height:44px;padding:0 8px;font-size:12px;cursor:pointer}.search-backdrop,#pagefind-container{overscroll-behavior:contain}@media (min-width: 701px){.portfolio-site .site-header{position:sticky;top:0}.project-grid .project-tile:first-child{grid-column:1/-1;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:7%}.project-grid .project-tile:first-child .project-visual{aspect-ratio:1.35}.project-grid .project-tile:first-child .tile-info{padding:0}.project-grid .project-tile:first-child h2{font-size:clamp(32px,3.7vw,58px);line-height:1.12;letter-spacing:-.05em;margin:17px 0 22px}.project-grid .project-tile:first-child p{font-size:15px;line-height:1.8;max-width:380px}}@media (max-width: 700px){html{scroll-padding-top:24px}.site-header nav{gap:8px}.page-intro h1{font-size:clamp(43px,12vw,59px)}.detail-header .eyebrow,.experience-meta .eyebrow{font-size:9px}.portfolio-site .detail-header[dir=rtl] h1{font-size:clamp(28px,7vw,38px)}.article-toc summary{padding:15px}.article-toc nav{padding:0 15px 15px}.post-navigation a>span:last-child{font-size:15px}.footer-bottom{font-size:8px}.not-found-links{gap:20px}.research-context{line-height:1.8}}.portfolio-site pre:focus-visible{outline:2px solid var(--accent);outline-offset:4px}:root{--accent: #b74426}.comments-section>h2{font-size:26px;letter-spacing:-.8px;margin:0 0 25px}
