/*! tailwindcss v4.1.11 | 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)))){:host,:root{--angle:0deg}*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@property --angle{syntax:"<angle>";inherits:true;initial-value:0deg}:root{--point:#f7856e;--spectrum:var(--point),var(--point);--blur:12;--brightness:1.25;--border:2;--speed:4;--line:#fafafa26;--transition:.25s;--project-substep:.5s;--tech-stack-substep:.25s;--project-card-substep:.3s;--stagger-step:.25s;--stagger-base-delay:0s}@keyframes hue-spin{to{--angle:360deg}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-gray-950:oklch(13% .028 261.692);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-5xl:64rem;--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);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in:cubic-bezier(.4,0,1,1);--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-sans);--default-mono-font-family:var(--font-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,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,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{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}:-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-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.top-0{top:calc(var(--spacing)*0)}.right-\[2\%\]{right:2%}.bottom-0{bottom:calc(var(--spacing)*0)}.left-\[2\%\]{left:2%}.z-50{z-index:50}.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}}.mx-auto{margin-inline:auto}.-mt-10{margin-top:calc(var(--spacing)*-10)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-16{margin-top:calc(var(--spacing)*16)}.mt-\[2\%\]{margin-top:2%}.mt-auto{margin-top:auto}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.mb-\[2\%\]{margin-bottom:2%}.ml-1{margin-left:calc(var(--spacing)*1)}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-48{height:calc(var(--spacing)*48)}.h-auto{height:auto}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-100{width:calc(var(--spacing)*100)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[7vw\]{max-width:7vw}.grow{flex-grow:1}.origin-left{transform-origin:0}.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}.columns-2{column-count:2}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.content-center{align-content:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-6>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*6)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-x-reverse)))}.self-end{align-self:flex-end}.overflow-hidden{overflow:hidden}.scroll-smooth{scroll-behavior:smooth}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-tl-full{border-top-left-radius:3.40282e+38px}.rounded-tr-full{border-top-right-radius:3.40282e+38px}.rounded-br-full{border-bottom-right-radius:3.40282e+38px}.rounded-bl-full{border-bottom-left-radius:3.40282e+38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-gray-500{border-color:var(--color-gray-500)}.border-gray-500\/40{border-color:#6a728266}@supports (color:color-mix(in lab,red,red)){.border-gray-500\/40{border-color:color-mix(in oklab,var(--color-gray-500)40%,transparent)}}.border-gray-800{border-color:var(--color-gray-800)}.bg-black{background-color:var(--color-black)}.bg-gray-900\/30{background-color:#1018284d}@supports (color:color-mix(in lab,red,red)){.bg-gray-900\/30{background-color:color-mix(in oklab,var(--color-gray-900)30%,transparent)}}.bg-gray-900\/50{background-color:#10182880}@supports (color:color-mix(in lab,red,red)){.bg-gray-900\/50{background-color:color-mix(in oklab,var(--color-gray-900)50%,transparent)}}.bg-gray-950\/50{background-color:#03071280}@supports (color:color-mix(in lab,red,red)){.bg-gray-950\/50{background-color:color-mix(in oklab,var(--color-gray-950)50%,transparent)}}.bg-transparent{background-color:#0000}.object-cover{object-fit:cover}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-\[3vw\]{padding-inline:3vw}.px-\[7px\]{padding-inline:7px}.py-1{padding-block:calc(var(--spacing)*1)}.py-\[5px\]{padding-block:5px}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-8{padding-top:calc(var(--spacing)*8)}.pt-12{padding-top:calc(var(--spacing)*12)}.pt-\[1\.5vw\]{padding-top:1.5vw}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-\[2vw\]{padding-bottom:2vw}.pb-\[3vw\]{padding-bottom:3vw}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-5{padding-left:calc(var(--spacing)*5)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.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-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[1\.75vw\]{font-size:1.75vw}.text-\[10vw\]{font-size:10vw}.text-\[max\(3vw\,10px\)\]{font-size:max(3vw,10px)}.text-\[max\(4\.5vw\,1vw\)\]{font-size:4.5vw}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-nowrap{text-wrap:nowrap}.whitespace-nowrap{white-space:nowrap}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-white{color:var(--color-white)}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.opacity-50{opacity:.5}.blur{--tw-blur:blur(8px)}.blur,.grayscale{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,)}.grayscale{--tw-grayscale:grayscale(100%)}.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,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,visibility,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-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-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))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media (hover:hover){.group-hover\:z-10:is(:where(.group):hover *){z-index:10}.group-hover\:text-white\/90:is(:where(.group):hover *){color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.group-hover\:text-white\/90:is(:where(.group):hover *){color:color-mix(in oklab,var(--color-white)90%,transparent)}}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\:drop-shadow-\[0_0_0\.3rem_\#ffffff70\]:is(:where(.group):hover *){--tw-drop-shadow-size:drop-shadow(0 0 .3rem var(--tw-drop-shadow-color,#ffffff70));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.group-hover\:backdrop-contrast-200:is(:where(.group):hover *){--tw-backdrop-contrast:contrast(200%);-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,)}.hover\:inline:hover{display:inline}.hover\:translate-y-5:hover{--tw-translate-y:calc(var(--spacing)*5);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:scale-\[3\]:hover{scale:3}.hover\:rounded-tl-full:hover{border-top-left-radius:3.40282e+38px}.hover\:text-gray-300:hover{color:var(--color-gray-300)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:drop-shadow-\[0_0_0\.3rem_\#ffffff70\]:hover{--tw-drop-shadow-size:drop-shadow(0 0 .3rem var(--tw-drop-shadow-color,#ffffff70));--tw-drop-shadow:var(--tw-drop-shadow-size)}.hover\:drop-shadow-\[0_0_0\.3rem_\#ffffff70\]:hover,.hover\:grayscale-0:hover{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,)}.hover\:grayscale-0:hover{--tw-grayscale:grayscale(0%)}.hover\:saturate-200:hover{--tw-saturate:saturate(200%);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,)}}@media (min-width:40rem){.sm\:mt-0{margin-top:calc(var(--spacing)*0)}}@media (min-width:48rem){.md\:columns-3{column-count:3}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:p-12{padding:calc(var(--spacing)*12)}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}}@media (min-width:64rem){.lg\:columns-4{column-count:4}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:p-24{padding:calc(var(--spacing)*24)}.lg\:px-\[2vw\]{padding-inline:2vw}.lg\:pt-\[1vw\]{padding-top:1vw}.lg\:pb-\[1\.5vw\]{padding-bottom:1.5vw}.lg\:pb-\[1vw\]{padding-bottom:1vw}.lg\:text-\[1vw\]{font-size:1vw}}@media (prefers-color-scheme:dark){.dark\:text-gray-400{color:var(--color-gray-400)}@media (hover:hover){.dark\:hover\:text-white:hover{color:var(--color-white)}}}}:root{--foreground-rgb:255,255,255;--background-start-rgb:0,0,0;--background-end-rgb:0,0,0;--base:#6b0e7c50;--shade:hsl(from #6b0e7c50 calc(h + 8)25 calc(l - 5));--perfect-shadow:0 0 0 1px var(--base),0 1px 1px -.5px var(--shade),0 3px 3px -1.5px var(--shade),0 6px 6px -3px var(--shade),0 12px 12px -6px var(--base),0 24px 24px -12px var(--base)}@media (prefers-color-scheme:dark){:root{--foreground-rgb:255,255,255;--background-start-rgb:0,0,0;--background-end-rgb:0,0,0}}body{color:rgb(var(--foreground-rgb));font-family:HelveticaNowLight,sans-serif}@font-face{font-family:HelveticaNowLight;src:url(/fonts/HelveticaNowText-Light.woff2)format("woff2")}@font-face{font-family:HelveticaNowRegular;src:url(/fonts/HelveticaNowText-Regular.woff2)format("woff2")}.bold{font-family:HelveticaNowRegular,sans-serif}.light{font-family:HelveticaNowLight,sans-serif}.heading{writing-mode:vertical-rl;transform:rotate(180deg)}.heading-small{writing-mode:vertical-lr;opacity:0;transform:rotate(0)}::-webkit-scrollbar{background:0 0;width:10px;height:10px}::-webkit-scrollbar-thumb{background:#948f8f4d padding-box content-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#948f8f80 padding-box content-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-button{display:none}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background:0 0}.waving-hand{text-align:center;transform-origin:50% 100%;margin-top:-3vw;margin-left:5vw;animation:waving .5s infinite alternate}@keyframes waving{0%{transform:rotate(40deg)}to{transform:rotate(-40deg)}}.home-grid{grid-template-columns:auto 1fr;grid-auto-rows:auto;grid-auto-columns:1fr;gap:7.5vw 5vw;display:grid}#item-0{grid-area:1/1/2/2}#item-1{grid-area:1/2/2/3}#item-2{grid-area:2/1/3/2}#item-3{grid-area:2/2/3/3}#item-4{grid-area:3/1/4/2}#item-5{grid-area:3/2/4/3;margin:-14px -14px auto}#item-6{grid-area:4/1/5/2}#item-7{grid-area:4/2/5/3}#item-8{grid-area:5/1/6/2}#item-9{grid-area:5/2/6/3}#item-10{grid-area:6/1/7/2}#item-11{grid-area:6/2/7/3}.dot-flashing{color:#54439e;background-color:#54439e;border-radius:5px;width:10px;height:10px;animation:dot-flashing 1s linear .5s infinite alternate;position:relative}.dot-flashing:after,.dot-flashing:before{content:"";display:inline-block;position:absolute;top:0}.dot-flashing:before{animation:dot-flashing 1s infinite alternate;left:-15px}.dot-flashing:after,.dot-flashing:before{color:#54439e;background-color:#54439e;border-radius:5px;width:10px;height:10px}.dot-flashing:after{animation:dot-flashing 1s 1s infinite alternate;left:15px}@keyframes dot-flashing{0%{background-color:#54439e}50%,to{background-color:#9880ff33}}@keyframes fadeInUp{0%{filter:blur(50px);opacity:0;pointer-events:none;transform:scale(.5)translateY(100%)}50%{filter:blur();pointer-events:none}to{opacity:1;pointer-events:all;transform:scale(1)translateY(0)}}@keyframes fadeInUpCard{0%{opacity:0;pointer-events:none;transform:translateY(100%)}to{opacity:1;pointer-events:all;transform:translateY(0)}}@keyframes fadeInUpMobile{0%{opacity:0;pointer-events:none;transform:translateY(20px)scale(.95)}to{opacity:1;pointer-events:all;transform:translateY(0)scale(1)}}.stagger,.stagger-img,.stagger-right,.stagger-stack,.stagger-up{opacity:0;pointer-events:none}.stagger-animate{animation:fadeInUp 3s forwards;animation-delay:calc(var(--stagger-base-delay) + var(--row-order,0)*var(--stagger-step) + var(--col-order,0)*var(--project-substep,0s));will-change:transform,opacity}.stagger-animate-right{animation:fadeInRight 3s forwards;animation-delay:calc(var(--stagger-base-delay) + var(--animation-order)*var(--stagger-step));will-change:transform,opacity}.stagger-animate-img{animation:fadeInUp 2s forwards;animation-delay:calc(var(--stagger-base-delay) + var(--animation-order)*var(--stagger-step));will-change:transform,opacity}.stagger-animate-stack{animation:fadeInUp 3s forwards;animation-delay:calc(var(--stagger-base-delay) + var(--row-order,0)*var(--stagger-step) + var(--col-order,0)*var(--tech-stack-substep,0s));will-change:transform,opacity}.stagger-animate-up{animation:fadeInUp 3s forwards;animation-delay:calc(var(--stagger-base-delay) + var(--row-order,0)*var(--stagger-step) + var(--col-order,0)*var(--project-card-substep,0s));will-change:transform,opacity}@keyframes fadeInRight{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}.fade-in-element{opacity:0;animation:fadeInRight 3s cubic-bezier(.23,1,.32,1) forwards}:root{--shadow-color:255deg 11% 3%}.stagger-text{border-radius:none;box-shadow:none;background:0 0;border:none}.stack-item-img{border-radius:.75em}.react-activity-calendar{max-width:none!important}.react-activity-calendar__calendar{width:100%!important}.flip-box-inner{text-align:center;width:100%;height:100%;transform-style:preserve-3d;transition:transform .5s;position:relative}.flip-box:hover .flip-box-inner{transform:rotateY(180deg)}.flip-box-back,.flip-box-front{backface-visibility:hidden;width:100%;height:100%}.flip-box-back{color:#fff;background-color:#000;position:absolute;transform:rotateY(180deg)translateY(-100%)}.photo-zoom{transition:transform 5s,filter .5s ease-in}.photo-zoom:hover{transform:scale(2)}.squared-paper-bg{background-image:linear-gradient(90deg,#ffffff1a 2px,#0000 0),linear-gradient(#ffffff1a 2px,#0000 0);background-size:50px 50px}.fancy-bg{--s:200px;--c1:#1d1d1d;--c2:#4e4f51;--c3:#3c3c3c;background:repeating-conic-gradient(from 30deg,#0000 0 120deg,var(--c3)0 180deg)calc(.5*var(--s))calc(.5*var(--s)*.577),repeating-conic-gradient(from 30deg,var(--c1)0 60deg,var(--c2)0 120deg,var(--c3)0 180deg);background-size:var(--s)calc(var(--s)*.577)}:root{--backdrop:#9999991f;--radius:14;--border:3;--backup-border:var(--backdrop);--size:200}transparent-card:first-of-type{--base:80;--spread:500;--outer:1}transparent-card:last-of-type{--outer:1;--base:220;--spread:200}.wrapper{position:relative}transparent-card{aspect-ratio:3/4;border-radius:calc(var(--radius)*1px);width:260px;-webkit-backdrop-filter:blur(calc(var(--cardblur,5)*1px));backdrop-filter:blur(calc(var(--cardblur,5)*1px));border:1px solid #ffffff26;grid-template-rows:1fr auto;padding:1rem;display:grid;box-shadow:0 1rem 2rem -1rem #000}[data-glow],transparent-card{touch-action:none;position:relative}[data-glow]{--border-size:calc(var(--border,2)*1px);--spotlight-size:calc(var(--size,150)*1px);--hue:calc(var(--base) + (var(--xp,0)*var(--spread,0)));background-image:radial-gradient(var(--spotlight-size)var(--spotlight-size)at calc(var(--x,0)*1px)calc(var(--y,0)*1px),hsl(var(--hue,210)calc(var(--saturation,100)*1%)calc(var(--lightness,70)*1%)/var(--bg-spot-opacity,.1)),transparent);background-color:var(--backdrop,transparent);border:var(--border-size)solid var(--backup-border)}[data-glow],[data-glow]:after,[data-glow]:before{background-size:calc(100% + (2*var(--border-size)))calc(100% + (2*var(--border-size)));background-position:50%;background-attachment:fixed}[data-glow]:after,[data-glow]:before{pointer-events:none;content:"";inset:calc(var(--border-size)*-1);border:var(--border-size)solid transparent;border-radius:calc(var(--radius)*1px);background-repeat:no-repeat;position:absolute;-webkit-mask-image:linear-gradient(#0000,#0000),linear-gradient(#fff,#fff);mask-image:linear-gradient(#0000,#0000),linear-gradient(#fff,#fff);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:padding-box,border-box;mask-clip:padding-box,border-box;-webkit-mask-origin:border-box,border-box;mask-origin:border-box,border-box;-webkit-mask-composite:source-in;mask-composite:intersect;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}[data-glow]:before{background-image:radial-gradient(calc(var(--spotlight-size)*.75)calc(var(--spotlight-size)*.75)at calc(var(--x,0)*1px)calc(var(--y,0)*1px),hsl(var(--hue,210)calc(var(--saturation,100)*1%)calc(var(--lightness,50)*1%)/var(--border-spot-opacity,1)),transparent 100%);filter:brightness(2)}[data-glow]:after{background-image:radial-gradient(calc(var(--spotlight-size)*.5)calc(var(--spotlight-size)*.5)at calc(var(--x,0)*1px)calc(var(--y,0)*1px),hsl(0 100% 100%/var(--border-light-opacity,1)),transparent 100%)}[data-glow]>[data-glow]:not(:is(a,button)){will-change:filter;opacity:var(--outer,1);border-radius:calc(var(--radius)*1px);border-width:calc(var(--border-size)*20);filter:blur(calc(var(--border-size)*10));pointer-events:none;background:0 0;position:absolute;inset:0}[data-glow]>[data-glow]:not(:is(a,button)):before{border-width:10px;inset:-10px}[data-glow]>[data-glow]{border:none}[data-glow] :is(a,button){border-radius:calc(var(--radius)*1px);border:var(--border-size)solid transparent}[data-glow] :is(a,button) [data-glow]{background:0 0}[data-glow] :is(a,button) [data-glow]:before{inset:calc(var(--border-size)*-1);border-width:calc(var(--border-size)*1)}transparent-card button{color:#ccc;align-self:end;padding:.75rem 2rem}button[data-glow] span{background-image:radial-gradient(var(--spotlight-size)var(--spotlight-size)at calc(var(--x,0)*1px)calc(var(--y,0)*1px),hsl(var(--hue,210)calc(var(--saturation,100)*1%)calc(var(--lightness,70)*1%)/var(--bg-spot-opacity,1)),transparent);background-color:var(--backdrop,transparent);filter:brightness(1.5);color:#0000;background-position:50%;background-attachment:fixed;-webkit-background-clip:text;background-clip:text;font-weight:700}.code-container::-webkit-scrollbar{display:none}.code-container{-ms-overflow-style:none;scrollbar-width:none}:root{--stagger-step:.1s;--stagger-base-delay:.1s}.project-card-shell{transition:transform .25s cubic-bezier(.4,0,.2,1)}.project-card-shell:hover{transform:scale(1.06)}.project-card{z-index:1;background:#000;position:relative;overflow:hidden;box-shadow:.3px .5px .7px #0707085c,.8px 1.6px 2px -.8px #0707085c,2.1px 4.1px 5.2px -1.7px #0707085c;border:1px solid #ffffff14!important;border-radius:.75em!important}.project-card:before{content:"";pointer-events:none;z-index:2;opacity:0;border-radius:.75em;transition:opacity .35s cubic-bezier(.4,0,.2,1);position:absolute;inset:0;box-shadow:0 0 0 1.2px #5a3bb3,0 0 12px 2px #5a3bb380,0 0 32px 8px #00d7ff40}.project-card-shell:hover .project-card:before{opacity:1}.project-card-shell:hover .project-card{border-color:#5a3bb3;box-shadow:0 0 0 1.2px #5a3bb3,0 0 12px 2px #5a3bb380,0 0 32px 8px #00d7ff40,0 4px 32px #00000047}html{scroll-behavior:smooth}@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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{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-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@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}