.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}/*! tailwindcss v4.1.18 | 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)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:"Suisse Intl",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--font-weight-medium:500;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-background:#fff;--color-foreground:#000;--color-muted:#777;--color-divider:#e0e0e0;--spacing-button-gap:8px;--radius-card:8px;--radius-pill:9999px}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.relative{position:relative}.static{position:static}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.-mx-\[8px\]{margin-inline:-8px}.mx-auto{margin-inline:auto}.mt-\[1em\]{margin-top:1em}.mt-\[6px\]{margin-top:6px}.mt-\[24px\]{margin-top:24px}.mt-\[32px\]{margin-top:32px}.mt-\[40px\]{margin-top:40px}.mb-\[16px\]{margin-bottom:16px}.mb-\[24px\]{margin-bottom:24px}.mb-\[32px\]{margin-bottom:32px}.mb-\[40px\]{margin-bottom:40px}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.aspect-\[16\/9\]{aspect-ratio:16/9}.aspect-\[2000\/1125\]{aspect-ratio:2000/1125}.aspect-square{aspect-ratio:1}.size-\[42px\]{width:42px;height:42px}.size-\[200px\]{width:200px;height:200px}.size-full{width:100%;height:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-\[304px\]{max-width:304px}.max-w-\[480px\]{max-width:480px}.max-w-\[1530px\]{max-width:1530px}.max-w-\[calc\(50\%-6px\)\]{max-width:calc(50% - 6px)}.min-w-0{min-width:calc(var(--spacing)*0)}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-8{gap:calc(var(--spacing)*8)}.gap-\[1em\]{gap:1em}.gap-\[4px\]{gap:4px}.gap-\[6px\]{gap:6px}.gap-\[8px\]{gap:8px}.gap-\[16px\]{gap:16px}.gap-\[24px\]{gap:24px}.gap-\[32px\]{gap:32px}.gap-\[40px\]{gap:40px}.gap-\[48px\]{gap:48px}.gap-button-gap{gap:var(--spacing-button-gap)}.gap-x-\[16px\]{column-gap:16px}.gap-y-\[24px\]{row-gap:24px}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.rounded-card{border-radius:var(--radius-card)}.rounded-full{border-radius:3.40282e38px}.rounded-pill{border-radius:var(--radius-pill)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-divider{border-color:var(--color-divider)}.border-foreground{border-color:var(--color-foreground)}.bg-foreground{background-color:var(--color-foreground)}.bg-transparent{background-color:#0000}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-\[8px\]{padding:8px}.px-4{padding-inline:calc(var(--spacing)*4)}.px-\[8px\]{padding-inline:8px}.px-\[16px\]{padding-inline:16px}.py-3{padding-block:calc(var(--spacing)*3)}.py-\[8px\]{padding-block:8px}.ps-1{padding-inline-start:calc(var(--spacing)*1)}.ps-2{padding-inline-start:calc(var(--spacing)*2)}.ps-3{padding-inline-start:calc(var(--spacing)*3)}.ps-8{padding-inline-start:calc(var(--spacing)*8)}.ps-9{padding-inline-start:calc(var(--spacing)*9)}.text-center{text-align:center}.text-\[14px\]{font-size:14px}.text-\[18px\]{font-size:18px}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-\[1\.45\]{--tw-leading:1.45;line-height:1.45}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-background{color:var(--color-background)}.text-foreground{color:var(--color-foreground)}.text-inherit{color:inherit}.text-muted{color:var(--color-muted)}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;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))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.hover\:text-foreground:hover{color:var(--color-foreground)}.hover\:opacity-80:hover{opacity:.8}}@media(min-width:48rem){.md\:sticky{position:sticky}.md\:top-\[8px\]{top:8px}.md\:col-span-2{grid-column:span 2/span 2}.md\:mx-0{margin-inline:calc(var(--spacing)*0)}.md\:mt-0{margin-top:calc(var(--spacing)*0)}.md\:mt-\[8px\]{margin-top:8px}.md\:mt-\[40px\]{margin-top:40px}.md\:mt-\[64px\]{margin-top:64px}.md\:mt-auto{margin-top:auto}.md\:mb-\[64px\]{margin-bottom:64px}.md\:mb-\[69px\]{margin-bottom:69px}.md\:block{display:block}.md\:flex{display:flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:size-\[280px\]{width:280px;height:280px}.md\:h-\[calc\(100vh-16px\)\]{height:calc(100vh - 16px)}.md\:w-\[280px\]{width:280px}.md\:max-w-\[304px\]{max-width:304px}.md\:shrink-0{flex-shrink:0}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[320px_1fr\]{grid-template-columns:320px 1fr}.md\:grid-cols-\[320px_1fr_140px\]{grid-template-columns:320px 1fr 140px}.md\:items-start{align-items:flex-start}.md\:gap-10{gap:calc(var(--spacing)*10)}.md\:gap-\[8px\]{gap:8px}.md\:gap-\[48px\]{gap:48px}.md\:gap-\[60px\]{gap:60px}.md\:gap-\[80px\]{gap:80px}.md\:self-start{align-self:flex-start}.md\:px-0{padding-inline:calc(var(--spacing)*0)}.md\:px-\[8px\]{padding-inline:8px}.md\:py-\[8px\]{padding-block:8px}.md\:text-\[24px\]{font-size:24px}}}@font-face{font-family:Suisse Intl;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/SuisseIntl-Regular-WebXL.woff2)format("woff2")}@font-face{font-family:Suisse Intl;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/SuisseIntl-Medium-WebXL.woff2)format("woff2")}@font-face{font-family:Suisse Intl;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/SuisseIntl-Bold-WebXL.woff2)format("woff2")}@media(hover:hover)and (pointer:fine){html,body,a,button,input,textarea,select,label,[role=button],.cursor-pointer{cursor:none}#custom-cursor{pointer-events:none;z-index:9999;mix-blend-mode:difference;opacity:0;view-transition-name:custom-cursor;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;color:#0000;will-change:transform;background:#fff;border:1px solid #fff;border-radius:9999px;justify-content:center;align-items:center;width:14px;height:14px;padding:0;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;font-weight:500;transition:width .24s cubic-bezier(.22,1,.36,1),height .24s cubic-bezier(.22,1,.36,1),padding .24s cubic-bezier(.22,1,.36,1),background-color .24s ease-out,border-color .24s ease-out,color .2s ease-out 80ms,opacity .18s ease-out;display:flex;position:fixed;top:0;left:0;overflow:hidden}#custom-cursor.is-hover{width:24px;height:24px}#custom-cursor.is-pill{width:var(--pill-w,auto);height:var(--pill-h,auto);color:#fff;mix-blend-mode:normal;background:#000;border-color:#000;padding:12px 16px}}@media not all and (hover:hover){#custom-cursor{display:none}}::view-transition-group(custom-cursor){animation-duration:1ms}::view-transition-old(custom-cursor){opacity:0;animation:none}::view-transition-new(custom-cursor){opacity:1;animation:none}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/GeistMono-Medium.woff2)format("woff2")}.floating-nav-item{opacity:0;transform:translateY(-12px)}html{font-family:var(--font-sans);background-color:var(--color-background);color:var(--color-foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.6;overflow-x:clip}body{margin:0;overflow-x:clip}.fade-in{opacity:0;animation:.35s forwards fade-in;animation-delay:var(--delay,0s);transform:translateY(10px)}@keyframes fade-in{to{opacity:1;transform:translateY(0)}}.btn{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;font-weight:500;transition:border-color .6s,width .24s cubic-bezier(.22,1,.36,1)}@media(hover:hover){.btn:hover{border-color:var(--color-foreground)}}.btn:active{border-color:var(--color-foreground)}.btn.bg-foreground{transition:opacity .2s,border-color .6s,width .24s cubic-bezier(.22,1,.36,1)}@media(hover:hover){.btn.bg-foreground:hover{opacity:.85}}.btn.bg-foreground:active{opacity:.8}.link-underline{background-image:linear-gradient(currentColor,currentColor);background-position:100% 100%;background-repeat:no-repeat;background-size:100% 1px;text-decoration:none;transition:background-size .3s}.link-underline:hover{background-size:0% 1px}footer{text-transform:uppercase;letter-spacing:.04em;font-family:Geist Mono,ui-monospace,monospace;font-size:11px}.link-footer{background-image:linear-gradient(var(--color-foreground),var(--color-foreground));background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;text-decoration:none;transition:color .25s,background-size .3s}.link-footer:hover{color:var(--color-foreground);background-size:100% 1px}body:has(.about-page) .floating-nav-item{border-color:#0000;transition:background-color .6s,border-color .6s}@media(hover:hover){body:has(.about-page) .floating-nav-item:hover{background-color:#e0e0e0;border-color:#0000}}body:has(.about-page) .floating-nav-item:active{background-color:#e0e0e0;border-color:#0000}.about-page{color:#fff;background-color:#000;min-height:100dvh}.about-page .logo-link{color:#fff}.about-page hr{border-color:#333}.about-page .btn{color:#fff;background-color:#000;border-color:#333}@media(hover:hover){.about-page .btn:hover{border-color:#fff}}.about-page .btn:active{border-color:#fff}.about-page .link-footer{background-image:linear-gradient(#fff,#fff)}.about-page .link-footer:hover{color:#fff}.lang-switcher{text-transform:uppercase;letter-spacing:.04em;color:#fff;border:1px solid #ffffff4d;border-radius:9999px;align-items:center;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;display:flex;position:relative;overflow:hidden}.lang-option{z-index:1;color:inherit;cursor:pointer;padding:6px 12px;text-decoration:none;transition:color .3s;position:relative}.lang-indicator{pointer-events:none;background-color:#f5f5f5;border-radius:9999px;width:50%;transition:transform .3s;position:absolute;top:0;bottom:0;left:0}.lang-indicator[data-right]{transform:translate(100%)}.lang-switcher-light{color:var(--color-foreground);border-color:var(--color-divider)}.about-page .lang-switcher{border-color:#333}.about-page .lang-indicator{background-color:#222}::view-transition-old(root){animation-duration:0s}::view-transition-new(root){animation-duration:0s}@keyframes out-left{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-16px)}}@keyframes in-right{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes content-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes projects-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}@keyframes projects-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}::view-transition-group(sb-1){animation-duration:1.1s}::view-transition-group(sb-2){animation-duration:1.1s}::view-transition-group(sb-3){animation-duration:1.1s}::view-transition-group(sb-4){animation-duration:1.1s}::view-transition-group(sb-5){animation-duration:1.1s}::view-transition-group(is-1){animation-duration:1.1s}::view-transition-group(is-2){animation-duration:1.1s}::view-transition-group(is-3){animation-duration:1.1s}::view-transition-group(is-4){animation-duration:1.1s}::view-transition-group(is-5){animation-duration:1.1s}::view-transition-group(ps-1){animation-duration:1.1s}::view-transition-group(ps-1b){animation-duration:1.1s}::view-transition-group(ps-2){animation-duration:1.1s}::view-transition-group(ps-3){animation-duration:1.1s}::view-transition-group(ps-4){animation-duration:1.1s}::view-transition-group(ps-5){animation-duration:1.1s}::view-transition-group(ps-6){animation-duration:1.1s}::view-transition-group(ps-7){animation-duration:1.1s}::view-transition-group(ps-8){animation-duration:1.1s}::view-transition-group(ps-9){animation-duration:1.1s}::view-transition-group(ic-1){animation-duration:1.1s}::view-transition-group(ic-2){animation-duration:1.1s}::view-transition-group(ic-3){animation-duration:1.1s}::view-transition-group(ic-4){animation-duration:1.1s}::view-transition-group(ic-5){animation-duration:1.1s}::view-transition-group(ic-6){animation-duration:1.1s}::view-transition-group(ic-7){animation-duration:1.1s}::view-transition-group(projects){animation-duration:.52s}::view-transition-old(sb-1){animation:.18s cubic-bezier(.4,0,1,1) both out-left}::view-transition-old(is-1){animation:.18s cubic-bezier(.4,0,1,1) both out-left}::view-transition-old(sb-2){animation:.18s cubic-bezier(.4,0,1,1) 60ms both out-left}::view-transition-old(is-2){animation:.18s cubic-bezier(.4,0,1,1) 60ms both out-left}::view-transition-old(sb-3){animation:.18s cubic-bezier(.4,0,1,1) .12s both out-left}::view-transition-old(is-3){animation:.18s cubic-bezier(.4,0,1,1) .12s both out-left}::view-transition-old(sb-4){animation:.18s cubic-bezier(.4,0,1,1) .18s both out-left}::view-transition-old(is-4){animation:.18s cubic-bezier(.4,0,1,1) .18s both out-left}::view-transition-old(sb-5){animation:.18s cubic-bezier(.4,0,1,1) .24s both out-left}::view-transition-old(is-5){animation:.18s cubic-bezier(.4,0,1,1) .24s both out-left}::view-transition-new(sb-1){animation:.22s cubic-bezier(.22,1,.36,1) .46s both in-right}::view-transition-new(is-1){animation:.22s cubic-bezier(.22,1,.36,1) .46s both in-right}::view-transition-new(sb-2){animation:.22s cubic-bezier(.22,1,.36,1) .52s both in-right}::view-transition-new(is-2){animation:.22s cubic-bezier(.22,1,.36,1) .52s both in-right}::view-transition-new(sb-3){animation:.22s cubic-bezier(.22,1,.36,1) .58s both in-right}::view-transition-new(is-3){animation:.22s cubic-bezier(.22,1,.36,1) .58s both in-right}::view-transition-new(sb-4){animation:.22s cubic-bezier(.22,1,.36,1) .64s both in-right}::view-transition-new(is-4){animation:.22s cubic-bezier(.22,1,.36,1) .64s both in-right}::view-transition-new(sb-5){animation:.22s cubic-bezier(.22,1,.36,1) .7s both in-right}::view-transition-new(is-5){animation:.22s cubic-bezier(.22,1,.36,1) .7s both in-right}::view-transition-old(ps-1){animation:.18s cubic-bezier(.4,0,1,1) both out-left}::view-transition-old(ps-1b){animation:.18s cubic-bezier(.4,0,1,1) 60ms both out-left}::view-transition-old(ps-1c){animation:.18s cubic-bezier(.4,0,1,1) .12s both out-left}::view-transition-old(ps-2){animation:.18s cubic-bezier(.4,0,1,1) .18s both out-left}::view-transition-old(ps-3){animation:.18s cubic-bezier(.4,0,1,1) .24s both out-left}::view-transition-old(ps-4){animation:.18s cubic-bezier(.4,0,1,1) .3s both out-left}::view-transition-old(ps-5){animation:.18s cubic-bezier(.4,0,1,1) .36s both out-left}::view-transition-old(ps-6){animation:.18s cubic-bezier(.4,0,1,1) .42s both out-left}::view-transition-old(ps-7){animation:.18s cubic-bezier(.4,0,1,1) .48s both out-left}::view-transition-old(ps-8){animation:.18s cubic-bezier(.4,0,1,1) .54s both out-left}::view-transition-old(ps-9){animation:.18s cubic-bezier(.4,0,1,1) .6s both out-left}::view-transition-new(ps-1){animation:.22s cubic-bezier(.22,1,.36,1) .34s both in-right}::view-transition-new(ps-1b){animation:.22s cubic-bezier(.22,1,.36,1) .4s both in-right}::view-transition-new(ps-1c){animation:.22s cubic-bezier(.22,1,.36,1) .46s both in-right}::view-transition-new(ps-2){animation:.22s cubic-bezier(.22,1,.36,1) .52s both in-right}::view-transition-new(ps-3){animation:.22s cubic-bezier(.22,1,.36,1) .58s both in-right}::view-transition-new(ps-4){animation:.22s cubic-bezier(.22,1,.36,1) .64s both in-right}::view-transition-new(ps-5){animation:.22s cubic-bezier(.22,1,.36,1) .7s both in-right}::view-transition-new(ps-6){animation:.22s cubic-bezier(.22,1,.36,1) .76s both in-right}::view-transition-new(ps-7){animation:.22s cubic-bezier(.22,1,.36,1) .82s both in-right}::view-transition-new(ps-8){animation:.22s cubic-bezier(.22,1,.36,1) .88s both in-right}::view-transition-new(ps-9){animation:.22s cubic-bezier(.22,1,.36,1) .94s both in-right}::view-transition-old(ic-1){opacity:0;animation:none}::view-transition-old(ic-2){opacity:0;animation:none}::view-transition-old(ic-3){opacity:0;animation:none}::view-transition-old(ic-4){opacity:0;animation:none}::view-transition-old(ic-5){opacity:0;animation:none}::view-transition-old(ic-6){opacity:0;animation:none}::view-transition-old(ic-7){opacity:0;animation:none}::view-transition-new(ic-1){animation:.26s cubic-bezier(.22,1,.36,1) .34s both content-in}::view-transition-new(ic-2){animation:.26s cubic-bezier(.22,1,.36,1) .4s both content-in}::view-transition-new(ic-3){animation:.26s cubic-bezier(.22,1,.36,1) .46s both content-in}::view-transition-new(ic-4){animation:.26s cubic-bezier(.22,1,.36,1) .52s both content-in}::view-transition-new(ic-5){animation:.26s cubic-bezier(.22,1,.36,1) .58s both content-in}::view-transition-new(ic-6){animation:.26s cubic-bezier(.22,1,.36,1) .64s both content-in}::view-transition-new(ic-7){animation:.26s cubic-bezier(.22,1,.36,1) .7s both content-in}::view-transition-old(projects){animation:.22s cubic-bezier(.4,0,1,1) forwards projects-out}::view-transition-new(projects){animation:.3s cubic-bezier(.22,1,.36,1) .18s both projects-in}.feed .project-link:not(.loaded),.stack-item:not(.loaded),.gallery img:not(.loaded){background-color:#f5f5f5;animation:1.4s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{0%,to{background-color:#f5f5f5}50%{background-color:#eaeaea}}.logo-link{text-transform:uppercase;color:var(--color-foreground);font-weight:800;text-decoration:none}.bubble-greeting{pointer-events:none;font-family:var(--font-sans);letter-spacing:0;color:#000;white-space:nowrap;z-index:10;will-change:transform,opacity;border-radius:9999px;padding:12px 16px;font-size:14px;font-weight:500;position:absolute}.bubble-greeting.entering{transition:transform .45s cubic-bezier(.34,1.56,.64,1),opacity .3s ease-out}.bubble-greeting.drifting{transition:transform 1.8s,opacity .6s cubic-bezier(.4,0,.2,1)}.bubble-greeting.leaving{transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s cubic-bezier(.4,0,.2,1)}a:focus-visible,.btn:focus-visible,[role=button]:focus-visible{outline-offset:2px;outline:2px solid}.skip-link{z-index:100;background:var(--color-foreground);color:var(--color-background);border-radius:9999px;padding:12px 20px;font-weight:500;text-decoration:none;position:absolute;top:-100%;left:16px}.skip-link:focus{top:16px}@media(prefers-reduced-motion:reduce){.fade-in{animation-duration:.01ms;animation-delay:0s}.bubble-greeting,.bubble-greeting.entering,.bubble-greeting.drifting,.bubble-greeting.leaving{transition-duration:.15s}.feed .project-link:not(.loaded),.stack-item:not(.loaded),.gallery img:not(.loaded){animation:none}::view-transition-old(sb-1){animation-duration:.01ms;animation-delay:0s}::view-transition-new(sb-1){animation-duration:.01ms;animation-delay:0s}::view-transition-old(sb-2){animation-duration:.01ms;animation-delay:0s}::view-transition-new(sb-2){animation-duration:.01ms;animation-delay:0s}::view-transition-old(sb-3){animation-duration:.01ms;animation-delay:0s}::view-transition-new(sb-3){animation-duration:.01ms;animation-delay:0s}::view-transition-old(sb-4){animation-duration:.01ms;animation-delay:0s}::view-transition-new(sb-4){animation-duration:.01ms;animation-delay:0s}::view-transition-old(sb-5){animation-duration:.01ms;animation-delay:0s}::view-transition-new(sb-5){animation-duration:.01ms;animation-delay:0s}::view-transition-old(is-1){animation-duration:.01ms;animation-delay:0s}::view-transition-new(is-1){animation-duration:.01ms;animation-delay:0s}::view-transition-old(is-2){animation-duration:.01ms;animation-delay:0s}::view-transition-new(is-2){animation-duration:.01ms;animation-delay:0s}::view-transition-old(is-3){animation-duration:.01ms;animation-delay:0s}::view-transition-new(is-3){animation-duration:.01ms;animation-delay:0s}::view-transition-old(is-4){animation-duration:.01ms;animation-delay:0s}::view-transition-new(is-4){animation-duration:.01ms;animation-delay:0s}::view-transition-old(is-5){animation-duration:.01ms;animation-delay:0s}::view-transition-new(is-5){animation-duration:.01ms;animation-delay:0s}::view-transition-old(ps-1){animation-duration:.01ms;animation-delay:0s}::view-transition-new(ps-1){animation-duration:.01ms;animation-delay:0s}::view-transition-old(ps-1b){animation-duration:.01ms;animation-delay:0s}::view-transition-new(ps-1b){animation-duration:.01ms;animation-delay:0s}::view-transition-old(ps-2){animation-duration:.01ms;animation-delay:0s}::view-transition-new(ps-2){animation-duration:.01ms;animation-delay:0s}::view-transition-old(ps-3){animation-duration:.01ms;animation-delay:0s}::view-transition-new(ps-3){animation-duration:.01ms;animation-delay:0s}::view-transition-old(ps-4){animation-duration:.01ms;animation-delay:0s}::view-transition-new(ps-4){animation-duration:.01ms;animation-delay:0s}::view-transition-old(ps-5){animation-duration:.01ms;animation-delay:0s}::view-transition-new(ps-5){animation-duration:.01ms;animation-delay:0s}::view-transition-old(ps-6){animation-duration:.01ms;animation-delay:0s}::view-transition-new(ps-6){animation-duration:.01ms;animation-delay:0s}::view-transition-old(ps-7){animation-duration:.01ms;animation-delay:0s}::view-transition-new(ps-7){animation-duration:.01ms;animation-delay:0s}::view-transition-old(ps-8){animation-duration:.01ms;animation-delay:0s}::view-transition-new(ps-8){animation-duration:.01ms;animation-delay:0s}::view-transition-old(ps-9){animation-duration:.01ms;animation-delay:0s}::view-transition-new(ps-9){animation-duration:.01ms;animation-delay:0s}::view-transition-new(ic-1){animation-duration:.01ms;animation-delay:0s}::view-transition-new(ic-2){animation-duration:.01ms;animation-delay:0s}::view-transition-new(ic-3){animation-duration:.01ms;animation-delay:0s}::view-transition-new(ic-4){animation-duration:.01ms;animation-delay:0s}::view-transition-new(ic-5){animation-duration:.01ms;animation-delay:0s}::view-transition-new(ic-6){animation-duration:.01ms;animation-delay:0s}::view-transition-new(ic-7){animation-duration:.01ms;animation-delay:0s}::view-transition-old(projects){animation-duration:.01ms;animation-delay:0s}::view-transition-new(projects){animation-duration:.01ms;animation-delay:0s}}@keyframes mobile-fl-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translate(0)}}@media(max-width:767px){body{transition:opacity .26s cubic-bezier(.4,0,1,1),transform .26s cubic-bezier(.4,0,1,1)}body.is-leaving{opacity:0;transform:translateY(-10px)}.fl-1,.fl-2,.fl-3,.fl-4,.fl-5,.fl-6{animation:.56s cubic-bezier(.22,1,.36,1) backwards mobile-fl-rise}.fl-1{animation-delay:60ms}.fl-2{animation-delay:.15s}.fl-3{animation-delay:.24s}.fl-4{animation-delay:.33s}.fl-5{animation-delay:.42s}.fl-6{animation-delay:.51s}[data-astro-transition-scope]{view-transition-name:none!important}}@media(prefers-reduced-motion:reduce)and (max-width:767px){.fl-1,.fl-2,.fl-3,.fl-4,.fl-5,.fl-6{animation-duration:.01ms;animation-delay:0s}body{transition-duration:.01ms}}.powerglitch-wrapper,[class*=powerglitch]{width:100%!important;height:100%!important;display:block!important}.not-found-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);margin:0;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;font-weight:500}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}
