@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_next/static/media/caveat-cyrillic-ext-wght-normal.b916f506.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_next/static/media/caveat-cyrillic-wght-normal.4267e6ee.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_next/static/media/caveat-latin-ext-wght-normal.07d5d42b.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_next/static/media/caveat-latin-wght-normal.ef8507f6.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:paperMono;src:url(/_next/static/media/6f57ae21bba4da34-s.p.woff2) format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:paperMono Fallback;src:local("Arial");ascent-override:71.91%;descent-override:18.45%;line-gap-override:0.00%;size-adjust:132.81%}.__className_372f86{font-family:paperMono,paperMono Fallback}.__variable_372f86{--font-paper-mono:"paperMono","paperMono Fallback"}@font-face{font-family:GeistSans;src:url(/_next/static/media/e91e1ff17da97c42-s.p.woff2) format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local("Arial");ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.00%;size-adjust:106.28%}.__className_b3532f{font-family:GeistSans,GeistSans Fallback}.__variable_b3532f{--font-geist-sans:"GeistSans","GeistSans Fallback"}

/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:host,:root{--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-medium:500;--font-weight-semibold:600;--tracking-widest:.1em;--radius-xs:.125rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-paper-mono)}}@layer base{*,::backdrop,:after,:before{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}:host,html{-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]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{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}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-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,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-4{top:calc(var(--spacing) * 4)}.top-\[50\%\]{top:50%}.right-0{right:0}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:0}.left-0{left:0}.left-\[50\%\]{left:50%}.z-50{z-index:50}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mt-auto{margin-top:auto}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-\[300px\]{max-height:300px}.w-3\/4{width:75%}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.min-w-5{min-width:calc(var(--spacing) * 5)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-\[-50\%\],.translate-y-0\.5{translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0\.5{--tw-translate-y:calc(var(--spacing) * .5)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-45{rotate:45deg}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.cursor-default{cursor:default}.scroll-py-1{scroll-padding-block:var(--spacing)}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.truncate{text-overflow:ellipsis;white-space:nowrap}.overflow-hidden,.truncate{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\[2px\]{border-radius:2px}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:8px}.rounded-md{border-radius:6px}.rounded-sm{border-radius:4px}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-border{border-color:var(--line)}.border-transparent{border-color:#0000}.bg-background{background-color:var(--background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-border{background-color:var(--line)}.bg-destructive{background-color:#b91c1c}.bg-foreground{background-color:var(--foreground)}.bg-muted{background-color:var(--muted)}.bg-popover{background-color:var(--background)}.bg-primary{background-color:var(--foreground)}.bg-secondary{background-color:var(--muted)}.bg-transparent{background-color:#0000}.fill-foreground{fill:var(--foreground)}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:var(--spacing)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.pt-0{padding-top:0}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.font-sans{font-family:var(--font-geist-sans)}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.text-background{color:var(--background)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground,.text-primary{color:var(--foreground)}.text-primary-foreground{color:var(--background)}.text-secondary-foreground{color:var(--foreground)}.text-white{color:var(--color-white)}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.shadow-lg,.shadow-xs{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.running{animation-play-state:running}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--muted)}.hover\:bg-destructive\/90:hover{background-color:oklab(50.542% .168942 .0880134/.9)}.hover\:bg-primary\/90:hover{background-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--foreground) 90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--muted) 80%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--muted-foreground)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--muted-foreground)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:oklab(50.542% .168942 .0880134/.2)}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--muted-foreground) 50%,transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:#b91c1c}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:oklab(50.542% .168942 .0880134/.2)}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:var(--muted)}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:var(--foreground)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}:is(.\*\*\:data-\[slot\=command-input-wrapper\]\:h-12 *)[data-slot=command-input-wrapper]{height:calc(var(--spacing) * 12)}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .22s ease-out}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .22s ease-out}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open],.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--muted)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}@media (min-width:40rem){.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:text-left{text-align:left}}.dark\:border-input:where(.dark,.dark *){border-color:var(--line)}.dark\:bg-destructive\/60:where(.dark,.dark *){background-color:oklab(50.542% .168942 .0880134/.6)}.dark\:bg-input\/30:where(.dark,.dark *){background-color:var(--line)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--line) 30%,transparent)}}@media (hover:hover){.dark\:hover\:bg-accent\/50:where(.dark,.dark *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.dark\:hover\:bg-input\/50:where(.dark,.dark *):hover{background-color:var(--line)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--line) 50%,transparent)}}}.dark\:aria-invalid\:ring-destructive\/40:where(.dark,.dark *)[aria-invalid=true],.dark\:focus-visible\:ring-destructive\/40:where(.dark,.dark *):focus-visible{--tw-ring-color:oklab(50.542% .168942 .0880134/.4)}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing) * 1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--muted-foreground)}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:calc(var(--spacing) * 12)}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-block:calc(var(--spacing) * 3)}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:calc(var(--spacing) * 5)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{rotate:180deg}[data-slot=tooltip-content] .\[\[data-slot\=tooltip-content\]_\&\]\:bg-background\/20{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){[data-slot=tooltip-content] .\[\[data-slot\=tooltip-content\]_\&\]\:bg-background\/20{background-color:color-mix(in oklab,var(--background) 20%,transparent)}}[data-slot=tooltip-content] .\[\[data-slot\=tooltip-content\]_\&\]\:text-background{color:var(--background)}[data-slot=tooltip-content] .dark\:\[\[data-slot\=tooltip-content\]_\&\]\:bg-background\/10:where(.dark,.dark *){background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){[data-slot=tooltip-content] .dark\:\[\[data-slot\=tooltip-content\]_\&\]\:bg-background\/10:where(.dark,.dark *){background-color:color-mix(in oklab,var(--background) 10%,transparent)}}@media (hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--muted)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:oklab(50.542% .168942 .0880134/.9)}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--foreground) 90%,transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--muted) 90%,transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--foreground)}a.\[a\&\]\:hover\:underline:hover{text-decoration-line:underline}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--background:#fff;--foreground:#09090b;--muted:#f4f4f5;--muted-foreground:#65656f;--line:#eaeaec;--graph-0:#ededf0;--graph-1:#d5d5da;--graph-2:#aaaab3;--graph-3:#777783;--graph-4:#484854;--pattern:#71717a1f;color-scheme:light}.dark{--background:#09090b;--foreground:#f4f4f5;--muted:#18181b;--muted-foreground:#a1a1aa;--line:#242427;--graph-0:#202025;--graph-1:#38383e;--graph-2:#53535d;--graph-3:#7a7a88;--graph-4:#b9b9c5;--pattern:#a1a1aa1f;color-scheme:dark}*{box-sizing:border-box;border-color:var(--line)}html{scroll-padding-top:80px}body{background:var(--background);color:var(--foreground);font-family:var(--font-geist-sans),Arial,sans-serif;-webkit-font-smoothing:antialiased;margin:0;overflow-x:clip}a,button{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}a,button,input{touch-action:manipulation}button{cursor:pointer}:focus-visible{outline:2px solid var(--foreground);outline-offset:4px}::selection{background:var(--foreground);color:var(--background)}h1,h2,h3,p{margin:0}svg{flex-shrink:0}.skip-link{z-index:100;background:var(--foreground);color:var(--background);padding:12px 16px;position:fixed;top:-100px;left:16px}.skip-link:focus{top:12px}.site-header{z-index:30;background:var(--background);border-bottom:1px solid var(--line);height:60px;padding:4px 8px 0;position:sticky;top:0}.header-inner{border:1px solid var(--line);border-bottom:0;align-items:center;gap:18px;max-width:768px;height:100%;margin:auto;padding:0 12px 0 16px;display:flex}.wordmark{letter-spacing:-2px;margin-right:auto;font-size:29px;font-weight:650;line-height:1}.wordmark span{color:var(--muted-foreground)}.desktop-nav{gap:20px}.desktop-nav,.desktop-nav a{align-items:center;height:100%;display:flex}.desktop-nav a{color:var(--muted-foreground);font-size:14px;position:relative}.desktop-nav a:hover,.desktop-nav a[aria-current]{color:var(--foreground)}.desktop-nav a[aria-current]:after{content:"";background:var(--foreground);height:2px;position:absolute;bottom:0;left:0;right:0}.header-actions{align-items:center;gap:6px;display:flex}.header-actions button{width:32px;height:32px}.desktop-search{border-left:1px solid var(--line);padding-left:6px}.github-link{border-right:1px solid var(--line);align-items:center;gap:2px;padding-right:10px;font-size:13px;display:flex}.github-link svg{width:13px;height:13px}.theme-sun{display:none}.dark .theme-sun{display:block}.dark .theme-moon{display:none}.site-column,.site-footer{border-left:1px solid var(--line);border-right:1px solid var(--line);max-width:768px;margin:0 auto}.site-column{min-height:calc(100vh - 265px)}.site-column:focus{outline:none}.viewport-frame{min-height:100dvh;overflow-x:clip}.site-column:focus-visible{outline:1px solid var(--muted-foreground);outline-offset:3px}[data-slot=dialog-content],[data-slot=sheet-content]{overscroll-behavior:contain}.profile-hero{height:460px;position:relative}.hero-art{width:calc(100% - 164px);height:408px;position:absolute;top:-10px;right:0;overflow:hidden}.monogram-image{object-fit:contain;mix-blend-mode:multiply}.dark .monogram-image{filter:invert();mix-blend-mode:screen;opacity:.65}.profile-identity{align-items:flex-end;display:flex;position:absolute;bottom:0;left:0;right:0}.avatar-cell{border-top:1px solid var(--line);border-right:1px solid var(--line);flex:0 0 164px;padding:3px}.profile-avatar{aspect-ratio:1;object-fit:cover;border:1px solid var(--line);border-radius:50%;width:100%;height:auto;display:block}.identity-copy{flex:1;min-width:0;padding-bottom:9px}.identity-copy h1{letter-spacing:-1.2px;border-bottom:1px solid var(--line);padding:0 16px 3px;font-size:32px;font-weight:550;line-height:1.2}.identity-copy p{font:13px/1.6 var(--font-paper-mono),monospace;color:var(--muted-foreground);text-wrap:pretty;padding:5px 16px 0}.stripe-divider{background:repeating-linear-gradient(135deg,transparent 0,transparent 5px,var(--pattern) 5px,var(--pattern) 6px);height:32px;position:relative}.stripe-divider,.stripe-divider:before{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stripe-divider:before{content:"";background:inherit;z-index:-1;position:absolute;inset:-1px calc(384px - 50vw)}.overview{grid-template-columns:1fr 1fr;display:grid}.overview-col{flex-direction:column;gap:10px;padding:16px;display:flex}.overview-col+.overview-col{border-left:1px dashed var(--line)}.intro-item{min-height:26px;font:13px/1.7 var(--font-paper-mono),monospace;align-items:center;gap:14px;display:flex}.intro-item a:hover{text-underline-offset:3px;text-decoration:underline}.profile-email{overflow-wrap:anywhere;min-width:0}.career-list,.career-roles{margin:0;padding:0;list-style:none}.career-company{gap:16px;padding:24px 16px;display:flex}.career-company+.career-company{border-top:1px dashed var(--line)}.career-company>.icon-tile{flex-basis:36px;width:36px;height:36px}.career-content{flex:1;min-width:0}.career-content h3{letter-spacing:-.3px;font-size:17px;font-weight:550;line-height:1.5}.career-content h3 a:hover{text-underline-offset:4px;text-decoration:underline}.career-roles{border-left:1px solid var(--line);margin-top:16px;padding-left:18px}.career-role{position:relative}.career-role:before{content:"";background:var(--muted-foreground);width:7px;height:7px;box-shadow:0 0 0 3px var(--background);border-radius:50%;position:absolute;top:7px;left:-22px}.career-role+.career-role{margin-top:24px}.career-role-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;display:flex}.career-role h4{margin:0;font-size:14px;font-weight:550;line-height:1.6}.career-period{font:11px/1.8 var(--font-paper-mono),monospace;color:var(--muted-foreground)}.career-location{margin-top:4px;font-size:12px}.career-description,.career-location{color:var(--muted-foreground);line-height:1.8}.career-description{margin-top:12px;font-size:14px}.career-content .tag-list{margin-top:12px}.education-qualification{margin-top:4px;font-size:14px;line-height:1.8}.icon-tile{border:1px solid var(--line);background:var(--muted);width:26px;height:26px;box-shadow:inset 0 0 0 2px var(--background);color:var(--muted-foreground);border-radius:7px;flex:0 0 26px;justify-content:center;align-items:center;display:inline-flex}.icon-tile svg{stroke-width:1.6px;width:16px;height:16px}.muted{color:var(--muted-foreground)}.social-links{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:8px;padding:16px;display:flex}.social-links a{border:1px solid var(--line);border-radius:6px;align-items:center;gap:8px;min-height:32px;padding:5px 9px;font-size:13px;display:flex}.social-links a:hover{background:var(--muted)}.social-links svg{color:var(--foreground)}.contributions{padding:14px 16px 16px}.calendar-scroll{scrollbar-width:thin;overflow:auto}.calendar-inner{min-width:680px}.calendar-months{color:var(--muted-foreground);justify-content:space-around;margin-bottom:8px;font-size:12px;display:flex}.contribution-grid{grid-template-rows:repeat(7,1fr);grid-auto-columns:1fr;grid-auto-flow:column;gap:3px;height:91px;display:grid}.contribution-grid span{border-radius:1px;min-width:9px}.contribution-grid span,[data-level="0"]{background:var(--graph-0)}[data-level="1"]{background:var(--graph-1)!important}[data-level="2"]{background:var(--graph-2)!important}[data-level="3"]{background:var(--graph-3)!important}[data-level="4"]{background:var(--graph-4)!important}.calendar-caption{color:var(--muted-foreground);justify-content:space-between;gap:12px;margin-top:12px;font-size:12px;display:flex}.calendar-caption a:hover{text-decoration:underline}.calendar-caption a span{color:var(--foreground)}.calendar-key{align-items:center;gap:3px;font-size:11px;display:flex}.calendar-key i{width:10px;height:10px}.panel,.panel-header{border-bottom:1px solid var(--line)}.panel-header{justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex;position:relative}.panel-header:after,.panel-header:before{content:"";background:var(--line);z-index:-1;width:300vw;height:1px;position:absolute;left:-100vw}.panel-header:before{top:-1px}.panel-header:after{bottom:-1px}.contact-strip h2,.panel h2{letter-spacing:-1px;font-size:28px;font-weight:500;line-height:1.3}sup{letter-spacing:0;margin-left:5px;font-weight:450;line-height:0;position:relative;top:-.6em}.section-link,sup{color:var(--muted-foreground);font-size:12px}.section-link{white-space:nowrap;align-items:center;gap:6px;display:flex}.contact-strip svg,.inline-link svg,.project-row-links svg,.section-link svg{width:14px;height:14px}.section-link:hover{color:var(--foreground)}.prose-copy{flex-direction:column;gap:14px;padding:20px 16px;display:flex}.prose-copy p{text-wrap:pretty;max-width:68ch;font-size:15px;line-height:1.8}.prose-copy a:not(.inline-link){text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:4px}.prose-copy a:hover{-webkit-text-decoration-color:var(--foreground);text-decoration-color:var(--foreground)}.inline-link{align-items:center;gap:5px;width:fit-content;font-size:13px;display:flex}.inline-link:hover{text-underline-offset:4px;text-decoration:underline}.resume-link{align-items:center;gap:4px;width:fit-content;display:inline-flex}.resume-link svg{width:14px;height:14px}.project-row{border-bottom:1px solid var(--line);padding:18px 16px}.project-row:last-child{border-bottom:0}.project-main{align-items:flex-start;gap:12px;display:flex}.project-main>div{flex:1;min-width:0}.project-icon{border:1px solid var(--line);width:42px;height:42px;box-shadow:inset 0 0 0 3px var(--background);background:var(--muted);border-radius:9px;flex:0 0 42px;justify-content:center;align-items:center;display:inline-flex}.project-icon svg{stroke-width:1.4px;width:22px;height:22px}.project-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.project-title h3{letter-spacing:-.4px;font-size:17px;font-weight:550}.project-title svg{width:15px;height:15px;color:var(--muted-foreground)}.project-main:hover h3{text-underline-offset:4px;text-decoration:underline}.project-main p{color:var(--muted-foreground);margin-top:3px;font-size:14px;line-height:1.6}.project-category{font:11px/1.6 var(--font-paper-mono),monospace;color:var(--muted-foreground);margin-top:6px}.project-overview{color:var(--muted-foreground);margin:16px 0;font-size:14px;line-height:1.8}.tag-list{flex-wrap:wrap;gap:6px;display:flex}.tag-list [data-slot=badge]{border-radius:4px;padding:3px 7px;font-size:11px;font-weight:450}.project-row-links{gap:20px;margin-top:16px;display:flex}.project-row-links a{align-items:center;gap:4px;font-size:12px;display:flex}.project-row-links a:hover{text-underline-offset:3px;text-decoration:underline}.writing-list{grid-template-columns:1fr 1fr;display:grid}.writing-row{border-bottom:1px solid var(--line);min-width:0}.writing-row:nth-child(odd){border-right:1px solid var(--line)}.writing-row a{flex-direction:column;height:100%;padding:18px 16px;display:flex}.writing-row a:hover{background:var(--muted)}@supports (color:color-mix(in lab,red,red)){.writing-row a:hover{background:color-mix(in srgb,var(--muted) 45%,transparent)}}.writing-meta{font:11px/1.5 var(--font-paper-mono),monospace;color:var(--muted-foreground);justify-content:space-between;gap:8px;margin-bottom:16px;display:flex}.writing-meta span:last-child{align-items:center;gap:3px;display:flex}.writing-meta svg{width:12px;height:12px}.writing-row h3{letter-spacing:-.5px;text-wrap:pretty;margin-bottom:12px;font-size:19px;font-weight:500;line-height:1.4}.writing-row p{margin-bottom:20px;font-size:13px;line-height:1.75}.writing-row p,.writing-tags{color:var(--muted-foreground)}.writing-tags{font:11px/1.6 var(--font-paper-mono),monospace;margin-top:auto}.stack-row{border-bottom:1px dashed var(--line);grid-template-columns:130px 1fr;align-items:start;gap:12px;padding:14px 16px;display:grid}.stack-row:last-child{border:0}.stack-row>span{color:var(--muted-foreground);font-size:13px;line-height:26px}.contact-strip{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:25px 16px;display:flex}.contact-strip h2{font-size:22px}.contact-strip a{align-items:center;gap:6px;font-size:13px;display:flex}.site-footer{flex-direction:column;gap:16px;padding:28px 16px 32px;font-size:12px;display:flex}.footer-top{color:var(--muted-foreground);justify-content:space-between;gap:12px;display:flex}.footer-name{color:var(--foreground);font-weight:550}.footer-links{align-items:center;gap:10px;display:flex}.footer-links a:last-child{align-items:center;gap:4px;margin-left:auto;display:flex}.footer-links a:last-child svg{width:13px;height:13px}.attribution a:hover,.footer-links a:hover{text-underline-offset:3px;text-decoration:underline}.attribution{color:var(--muted-foreground);font-size:11px;line-height:1.6}.attribution a{color:var(--foreground)}.page-heading{border-bottom:1px solid var(--line);padding:48px 16px 30px}.page-heading h1{letter-spacing:-1.8px;font-size:40px;font-weight:550;line-height:1.2}.page-heading p{color:var(--muted-foreground);margin-top:12px;font-size:15px;line-height:1.7}.page-heading sup{font-size:14px}.publication-note{font:12px/1.7 var(--font-paper-mono),monospace;color:var(--muted-foreground);padding:20px 16px}.back-row{border-bottom:1px solid var(--line);padding:18px 16px}.back-row a{width:fit-content;color:var(--muted-foreground);align-items:center;gap:6px;font-size:12px;display:flex}.back-row svg{width:14px;height:14px}.project-page-heading{padding:32px 16px 22px}.project-page-heading .project-category{margin-top:18px}.project-page-heading h1{letter-spacing:-1.8px;margin:6px 0 12px;font-size:44px;font-weight:550;line-height:1.2}.project-page-heading>p{color:var(--muted-foreground);font-size:18px;line-height:1.6}.project-page-meta{color:var(--muted-foreground);justify-content:space-between;align-items:center;gap:12px;margin-top:24px;font-size:12px;display:flex}.project-page-meta a{color:var(--foreground);align-items:center;gap:4px;display:flex}.project-page-meta svg{width:14px;height:14px}.capability-list{flex-direction:column;gap:14px;margin:0;padding:20px 16px;list-style:none;display:flex}.capability-list li{align-items:flex-start;gap:12px;font-size:15px;line-height:1.7;display:flex}.capability-list svg{width:16px;height:16px;color:var(--muted-foreground);margin-top:5px}.source-callout{justify-content:space-between;align-items:center;gap:20px;padding:24px 16px;display:flex}.source-callout h2{letter-spacing:-.5px;font-size:20px;font-weight:500}.source-callout p{color:var(--muted-foreground);margin-top:5px;font-size:13px}.source-callout a{white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:flex}.source-callout svg{width:14px;height:14px}.about-intro{align-items:center;gap:16px;padding:24px 16px 0;display:flex}.about-intro img{border:1px solid var(--line);border-radius:50%}.about-intro h2{letter-spacing:-.7px;font-size:23px;font-weight:550}.about-intro p{color:var(--muted-foreground);margin-top:4px;font-size:13px}.timeline-entry{gap:16px;padding:24px 16px;display:flex}.timeline-entry .icon-tile{flex-basis:36px;height:36px}.timeline-entry h3{letter-spacing:-.3px;font-size:17px;font-weight:550}.timeline-entry p{font-size:14px;line-height:1.8}.timeline-meta{font:11px/1.7 var(--font-paper-mono),monospace;color:var(--muted-foreground);margin-top:5px;display:block}.timeline-description{color:var(--muted-foreground);margin-top:16px}.timeline-entry .tag-list{margin-top:12px}.contact-links>a{border-bottom:1px solid var(--line);align-items:flex-start;gap:16px;padding:24px 16px;display:flex}.contact-links>a:hover{background:var(--muted)}.contact-links>a>svg{width:18px;height:18px;color:var(--muted-foreground);margin-left:auto}.contact-links .icon-tile{flex-basis:38px;height:38px}.contact-links h2{letter-spacing:-.4px;font-size:19px;font-weight:500}.contact-links p{color:var(--muted-foreground);margin:4px 0;font-size:14px;line-height:1.7}.contact-links span:not(.icon-tile){font:11px/1.6 var(--font-paper-mono),monospace;color:var(--muted-foreground)}.mobile-dock{display:none}.not-found{padding:100px 24px}.not-found h1{letter-spacing:-1px;margin:16px 0;font-size:36px}.not-found>p{font-size:15px;line-height:1.7}.not-found a{align-items:center;gap:6px;width:fit-content;margin-top:24px;font-size:14px;display:flex}.not-found svg{width:16px;height:16px}@media (max-width:799px){.site-column,.site-footer{margin-left:8px;margin-right:8px}.stripe-divider:before{inset:-1px -10px}}@media (max-width:639px){.desktop-nav,.desktop-search{display:none}.header-inner{gap:10px}.header-actions{gap:6px}.github-link{padding:0 10px;font-size:12px}.profile-hero{height:376px}.hero-art{width:100%;height:250px;top:0}.profile-identity{align-items:stretch;min-height:132px}.avatar-cell{flex-basis:128px;align-items:center;display:flex}.profile-avatar{width:120px;height:120px}.identity-copy{border-top:1px solid var(--line);flex-direction:column;justify-content:center;align-self:stretch;padding-bottom:0;display:flex}.identity-copy h1{letter-spacing:-1px;padding:7px 12px 8px;font-size:27px;line-height:1.12}.identity-copy p{padding:7px 12px;font-size:11px;line-height:1.6}.overview{grid-template-columns:1fr}.overview-col{gap:10px;padding:16px 16px 0}.overview-col+.overview-col{border:0;padding-top:10px;padding-bottom:16px}.social-links{gap:6px}.social-links a{gap:5px;padding:5px 7px;font-size:11px}.calendar-key{display:none}.calendar-caption{font-size:11px}.panel h2{font-size:25px}.section-link{gap:4px;font-size:11px}.project-title h3{font-size:16px}.project-main p{font-size:13px}.project-icon{border-radius:7px;flex-basis:36px;width:36px;height:36px}.project-icon svg{width:20px;height:20px}.writing-list{grid-template-columns:1fr}.writing-row:nth-child(odd){border-right:0}.writing-row h3{font-size:20px}.writing-row a{padding-top:20px;padding-bottom:20px}.writing-meta{margin-bottom:10px}.writing-row p{margin-bottom:12px;font-size:14px}.stack-row{grid-template-columns:96px 1fr;gap:8px}.stack-row>span{font-size:12px}.contact-strip{align-items:flex-start;gap:16px}.contact-strip h2{max-width:190px;font-size:22px}.contact-strip a{white-space:nowrap;padding-top:5px}.site-footer{padding-bottom:100px}.footer-top{flex-direction:column;gap:5px}.footer-links{gap:14px;font-size:11px}.page-heading{padding-top:40px}.page-heading h1{font-size:36px}.page-heading p{font-size:14px}.project-page-heading h1{font-size:38px}.project-page-heading>p{font-size:16px}.project-page-meta{font-size:11px}.source-callout{flex-direction:column;align-items:flex-start;gap:16px}.about-intro h2{font-size:21px}.about-intro img{width:64px;height:64px}.mobile-dock{z-index:40;left:50%;bottom:max(16px,env(safe-area-inset-bottom));background:var(--background);border:1px solid var(--line);border-radius:12px;align-items:center;padding:3px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 2px 8px #00000012}.dock-search{gap:8px;font-weight:400}.dock-divider{background:var(--line);width:1px;height:20px;margin-right:2px}.mobile-sheet{border-radius:14px 14px 0 0;max-width:768px;margin:0 auto}.mobile-sheet nav{flex-direction:column;padding:0 20px 12px;display:flex}.mobile-sheet nav a{border-bottom:1px solid var(--line);color:var(--muted-foreground);justify-content:space-between;align-items:center;padding:14px 0;font-size:18px;display:flex}.mobile-sheet nav a[aria-current]{color:var(--foreground);font-weight:550}.mobile-sheet nav svg{width:16px;height:16px}.sheet-source{justify-content:space-between;padding:0 20px 24px;font-size:12px;display:flex}.sheet-source svg{width:14px;height:14px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto)))))}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto)))))}to{height:0}}:root{--mark-pattern:var(--foreground)}@supports (color:color-mix(in lab,red,red)){:root{--mark-pattern:color-mix(in srgb,var(--foreground) 10%,var(--background))}}:root{--mark-stroke:var(--foreground)}@supports (color:color-mix(in lab,red,red)){:root{--mark-stroke:color-mix(in srgb,var(--foreground) 20%,var(--background))}}:root{--mark-highlight:#52525b}.dark{--mark-pattern:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.dark{--mark-pattern:color-mix(in srgb,var(--foreground) 8%,var(--background))}}.dark{--mark-stroke:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.dark{--mark-stroke:color-mix(in srgb,var(--foreground) 13%,var(--background))}}.dark{--mark-highlight:#fff}.wordmark{flex-shrink:0;align-items:center;display:flex}.profile-photo{border:1px solid var(--line);border-radius:50%;flex-shrink:0;display:block;position:relative;overflow:hidden}.profile-photo .portrait-image{object-fit:cover;object-position:50% 12%;border:0;border-radius:0;width:100%;height:100%;display:block}.avatar-cell .profile-photo{aspect-ratio:1;width:100%!important;height:auto!important}.wordmark svg{width:48px;height:24px}.hero-art{height:374px;top:0;overflow:visible}.isometric-mark{touch-action:manipulation;outline-offset:8px;background:0 0;border:0;width:100%;height:100%;padding:0;display:block;position:relative}.isometric-mark svg{width:100%;height:100%;overflow:visible}.isometric-mark:focus-visible{outline:1px dashed var(--muted-foreground);border-radius:6px}.handwritten-note{pointer-events:none;color:var(--muted-foreground);letter-spacing:0;-webkit-user-select:none;user-select:none;z-index:1;font-family:Caveat Variable,cursive;font-size:21px;line-height:1.05;display:flex;position:absolute}.handwritten-note svg{flex-shrink:0;width:34px;height:34px}.handwritten-note span{transform:rotate(-6deg)}.hero-note{flex-direction:column;align-items:flex-start;gap:3px;width:145px;top:238px;right:-158px}.hero-note svg{transform:scaleY(-1)rotate(-6deg)}.hero-note span{padding-left:8px}.social-links{position:relative}.social-note{flex-direction:column;align-items:flex-end;width:100px;top:-24px;left:-118px}.social-note svg{margin-right:-6px;transform:scaleX(-1)rotate(-6deg)}.noted-panel{position:relative}.projects-note{flex-direction:column;align-items:flex-end;gap:1px;width:108px;top:34px;left:-128px}.projects-note svg{transform:scaleX(-1)rotate(-6deg)}.writing-note{flex-direction:column;gap:2px;width:145px;top:28px;right:-158px}.writing-note svg{transform:scaleY(-1)rotate(-10deg)}.education-note,.stack-note{flex-direction:column;align-items:flex-end;gap:1px;width:108px;top:28px;left:-128px}.education-note svg,.stack-note svg{transform:scaleX(-1)rotate(-6deg)}.experience-note{flex-direction:column;gap:2px;width:145px;top:28px;right:-158px}.experience-note svg{transform:scaleY(-1)rotate(-10deg)}.rotating-intro{align-items:center;min-width:0;height:30px;display:flex;position:relative}.intro-flip-viewport{flex:1;min-width:0;position:relative;overflow:hidden}.identity-copy .rotating-intro p{min-height:24px;padding-top:2px;padding-bottom:2px}.intro-pause{width:28px;height:28px;color:var(--muted-foreground);opacity:0;border-radius:5px;flex:0 0 28px;justify-content:center;align-items:center;margin-right:8px;display:flex}.intro-pause svg{width:11px;height:11px}.rotating-intro:focus-within .intro-pause,.rotating-intro:hover .intro-pause{opacity:1}.intro-pause:hover{background:var(--muted)}.theme-disc path{transform-origin:50%;transition:transform .5s!important}.dark .theme-disc path{transform:rotate(180deg)}.theme-tooltip{align-items:center;gap:12px;display:flex}.header-actions button.search-trigger{width:auto;color:var(--muted-foreground);gap:5px;padding:0 4px}.nav-github{border-right:1px solid var(--line);align-items:center;padding-right:6px;display:flex}.social-links a[data-slot=button]{padding:0}.search-shortcut{gap:3px;display:flex}.search-shortcut [data-slot=kbd]{border-radius:3px;min-width:16px;height:19px;font-size:10px}.portfolio-command [data-slot=command-list]{max-height:min(65vh,480px)}.portfolio-command [data-slot=command-input]:focus-visible{outline:none}.portfolio-command [data-slot=command-input-wrapper]:focus-within{box-shadow:inset 0 -2px 0 var(--muted-foreground)}.command-shortcut{gap:3px;margin-left:auto}.command-shortcut [data-slot=kbd]{min-width:18px;height:18px;font-size:10px}.command-kind{color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;max-width:150px;margin-left:auto;font-size:10px;overflow:hidden}.command-footer{border-top:1px solid var(--line);align-items:center;gap:12px;min-height:42px;padding:10px 12px;display:flex}.command-footer>svg{width:26px;height:14px;color:var(--muted-foreground)}.command-footer p{color:var(--muted-foreground);font-size:11px;line-height:1.5}.command-keyboard-help{color:var(--muted-foreground);white-space:nowrap;align-items:center;gap:3px;margin-left:auto;font-size:10px;display:flex}.command-keyboard-help [data-slot=kbd]{width:17px;height:18px}.command-keyboard-help span{margin:0 5px 0 2px}.project-accordion>[data-slot=accordion-item]{border-color:var(--line)}.project-accordion-header{align-items:center;display:flex;position:relative}.project-accordion-header>h3{flex:1;min-width:0}.project-accordion-trigger{align-items:flex-start;gap:12px;min-width:0;padding:18px 16px;display:flex}.project-accordion-trigger:hover{background:var(--muted);text-decoration:none}@supports (color:color-mix(in lab,red,red)){.project-accordion-trigger:hover{background:color-mix(in srgb,var(--muted) 40%,transparent)}}.project-accordion-trigger>svg{margin-top:8px}.project-accordion-copy{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.project-accordion-title{letter-spacing:-.4px;font-size:17px;font-weight:550;line-height:1.4}.project-accordion-description{color:var(--muted-foreground);font-size:14px;font-weight:400;line-height:1.6}.project-accordion-copy .project-category{margin-top:2px;font-weight:400}.project-open-link{width:42px;height:42px;color:var(--muted-foreground);border-radius:6px;flex:0 0 42px;justify-content:center;align-items:center;margin-right:7px;display:flex}.project-open-link:hover{background:var(--muted);color:var(--foreground)}.project-open-link svg{width:16px;height:16px}.project-peek{flex-direction:column;gap:14px;padding:0 16px 8px 70px;display:flex}.project-peek>p{color:var(--muted-foreground);font-size:14px;line-height:1.8}.project-peek>a{align-items:center;gap:5px;width:fit-content;font-size:12px;display:flex}.project-peek>a:hover{text-underline-offset:3px;text-decoration:underline}.project-peek>a svg{width:13px;height:13px}.scroll-top{right:24px;bottom:max(24px,env(safe-area-inset-bottom));z-index:35;position:fixed}.scroll-top button{border:1px solid var(--line);background:var(--background)}.contribution-grid span:hover{outline:1px solid var(--foreground);outline-offset:1px}@media (max-width:1099px){.handwritten-note{display:none}}@media (max-width:767px){.search-shortcut{display:none}}@media (max-width:639px){.avatar-cell .profile-photo{width:120px!important;height:120px!important}.about-intro .profile-photo{width:64px!important;height:64px!important}.hero-art{height:236px;top:8px}.rotating-intro{height:51px}.identity-copy .rotating-intro p{padding:4px 12px;font-size:11px;line-height:1.6}.intro-pause{opacity:1;flex-basis:20px;width:20px;height:28px;margin-right:4px}.project-accordion-trigger{gap:10px;padding:18px 12px 18px 16px}.project-accordion-title{font-size:16px}.project-accordion-description{font-size:13px}.project-open-link{flex-basis:30px;width:30px;margin-right:8px}.project-peek{padding-left:16px;padding-right:16px}.command-keyboard-help{display:none}.scroll-top{right:16px;bottom:max(80px,env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.isometric-mark svg *,.theme-disc path{transition:none!important}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}