html{min-height:100%;scroll-behavior:smooth}body{margin:0;font-family:Georgia,Times New Roman,Times,serif;background:linear-gradient(140deg,rgba(217,70,239,.1),transparent 28%),linear-gradient(320deg,rgba(148,163,184,.075),transparent 34%),linear-gradient(180deg,hsla(0,0%,100%,.035),transparent 18%),linear-gradient(90deg,hsla(0,0%,100%,.018),transparent 38%,rgba(217,70,239,.025)),#101010;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;position:relative}.site-shell,body{min-height:100vh}*{box-sizing:border-box}a{color:inherit;text-decoration:inherit}h1,h2,h3,h4,p{margin:0}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.top-0{top:0}.left-0{left:0}.right-6{right:1.5rem}.bottom-6{bottom:1.5rem}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[1\]{z-index:1}.z-\[2\]{z-index:2}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.mx-auto{margin-left:auto;margin-right:auto}.mx-4{margin-left:1rem;margin-right:1rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-14{margin-top:3.5rem}.mt-auto{margin-top:auto}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.block{display:block}.inline-flex{display:inline-flex}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-px{height:1px}.h-2{height:.5rem}.h-4{height:1rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-\[18px\]{height:18px}.h-full{height:100%}.min-h-screen{min-height:100vh}.min-h-\[60vh\]{min-height:60vh}.max-h-0{max-height:0}.max-h-64{max-height:16rem}.max-h-96{max-height:24rem}.max-h-\[38rem\]{max-height:38rem}.w-2{width:.5rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-20{width:5rem}.w-\[18px\]{width:18px}.w-full{width:100%}.max-w-sm{max-width:24rem}.max-w-\[16rem\]{max-width:16rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.flex-1{flex:1 1}.flex-grow{flex-grow:1}.origin-center{transform-origin:center}.rotate-45{transform:rotate(45deg)}.-rotate-45{transform:rotate(-45deg)}.translate-y-2{transform:translateY(.5rem)}.-translate-y-2{transform:translateY(-.5rem)}.scale-x-0{transform:scaleX(0)}.scale-110{transform:scale(1.1)}.transform{transform:translateZ(0)}.resize-none{resize: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-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.space-y-2>:not([hidden])~:not([hidden]){margin-top:.5rem}.space-y-4>:not([hidden])~:not([hidden]){margin-top:1rem}.space-y-6>:not([hidden])~:not([hidden]){margin-top:1.5rem}.space-y-24>:not([hidden])~:not([hidden]){margin-top:6rem}.overflow-hidden{overflow:hidden}.rounded-lg{border-radius:.5rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.border{border-width:1px;border-style:solid}.border-t{border-top-width:1px;border-top-style:solid}.border-b{border-bottom-width:1px;border-bottom-style:solid}.border-white\/5{border-color:hsla(0,0%,100%,.05)}.border-white\/10{border-color:hsla(0,0%,100%,.1)}.border-white\/12{border-color:hsla(0,0%,100%,.12)}.border-white\/40{border-color:hsla(0,0%,100%,.4)}.border-fuchsia-500\/20{border-color:rgba(217,70,239,.2)}.bg-black{background-color:#000}.bg-black\/70{background-color:rgba(0,0,0,.7)}.bg-\[\#171717\]\/90{background-color:hsla(0,0%,9%,.9)}.bg-fuchsia-400{background-color:#e879f9}.bg-fuchsia-600{background-color:#c026d3}.bg-fuchsia-700{background-color:#a21caf}.bg-red-400{background-color:#f87171}.bg-white{background-color:#fff}.bg-white\/5{background-color:hsla(0,0%,100%,.05)}.bg-white\/\[0\.02\]{background-color:hsla(0,0%,100%,.02)}.bg-white\/\[0\.03\]{background-color:hsla(0,0%,100%,.03)}.bg-white\/\[0\.04\]{background-color:hsla(0,0%,100%,.04)}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-white\/5,.from-white\/\[0\.05\]{--tw-gradient-from:hsla(0,0%,100%,.05);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,hsla(0,0%,100%,0))}.from-fuchsia-400\/60{--tw-gradient-from:rgba(232,121,249,.6);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(232,121,249,0))}.from-black\/10{--tw-gradient-from:rgba(0,0,0,.1);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,transparent)}.via-fuchsia-950\/20{--tw-gradient-stops:var(--tw-gradient-from),rgba(74,4,78,.2),var(--tw-gradient-to,rgba(74,4,78,0))}.via-transparent{--tw-gradient-stops:var(--tw-gradient-from),transparent,var(--tw-gradient-to,transparent)}.to-fuchsia-950\/10{--tw-gradient-to:rgba(74,4,78,.1)}.to-white\/\[0\.02\]{--tw-gradient-to:hsla(0,0%,100%,.02)}.to-transparent{--tw-gradient-to:transparent}.object-cover{object-fit:cover}.object-contain{object-fit:contain}.object-center{object-position:center}.p-2{padding:.5rem}.p-4{padding:1rem}.p-8{padding:2rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-1{padding-bottom:.25rem}.pt-1,.py-1{padding-top:.25rem}.pt-4{padding-top:1rem}.pt-32{padding-top:8rem}.pb-20{padding-bottom:5rem}.pb-32{padding-bottom:8rem}.text-left{text-align:left}.text-center{text-align:center}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-lg{font-size:1.125rem}.text-lg,.text-xl{line-height:1.75rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[3rem\]{font-size:3rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-none{line-height:1}.leading-tight{line-height:1.25}.leading-relaxed{line-height:1.625}.tracking-\[0\.22em\]{letter-spacing:.22em}.tracking-\[0\.3em\]{letter-spacing:.3em}.tracking-\[0\.35em\]{letter-spacing:.35em}.tracking-wide{letter-spacing:.025em}.tracking-widest{letter-spacing:.1em}.text-white{color:#fff}.text-fuchsia-300{color:#f0abfc}.text-fuchsia-400{color:#e879f9}.text-fuchsia-400\/80{color:rgba(232,121,249,.8)}.text-fuchsia-300\/80{color:rgba(240,171,252,.8)}.text-white\/40{color:hsla(0,0%,100%,.4)}.text-white\/50{color:hsla(0,0%,100%,.5)}.text-white\/60{color:hsla(0,0%,100%,.6)}.text-white\/65{color:hsla(0,0%,100%,.65)}.text-white\/68{color:hsla(0,0%,100%,.68)}.text-white\/72{color:hsla(0,0%,100%,.72)}.text-white\/80{color:hsla(0,0%,100%,.8)}.text-white\/90{color:hsla(0,0%,100%,.9)}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-35{opacity:.35}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-100{opacity:1}.blur-3xl{filter:blur(64px)}.saturate-125{filter:saturate(1.25)}.backdrop-blur{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.shadow-\[0_12px_28px_rgba\(0\,0\,0\,0\.1\)\]{box-shadow:0 12px 28px rgba(0,0,0,.1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.delay-100{transition-delay:.1s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.pointer-events-none{pointer-events:none}.aspect-\[16\/9\]{aspect-ratio:16/9}.aspect-\[2\/1\]{aspect-ratio:2/1}.animate-spin,.spinner{animation:spin 1s linear infinite}.spinner{border:2px solid;border-right:2px solid transparent;border-radius:9999px}.turnstile-widget{min-height:65px;overflow:hidden;width:100%}.hover\:opacity-100:hover{opacity:1}.hover\:bg-white\/10:hover{background-color:hsla(0,0%,100%,.1)}.hover\:bg-white\/\[0\.07\]:hover{background-color:hsla(0,0%,100%,.07)}.hover\:bg-fuchsia-700:hover{background-color:#a21caf}.hover\:bg-fuchsia-800:hover{background-color:#86198f}.hover\:border-fuchsia-500\/25:hover{border-color:rgba(217,70,239,.25)}.hover\:text-white:hover{color:#fff}.hover\:text-fuchsia-300:hover{color:#f0abfc}.hover\:text-fuchsia-400:hover{color:#e879f9}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:border-fuchsia-500\/50:focus{border-color:rgba(217,70,239,.5)}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-70:disabled{opacity:.7}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.group:hover .group-hover\:scale-\[1\.01\]{transform:scale(1.01)}#mobileLine1.rotate-45.translate-y-2{transform:translateY(.5rem) rotate(45deg)}#mobileLine3.-rotate-45.-translate-y-2{transform:translateY(-.5rem) rotate(-45deg)}.blur-3xl.saturate-125{filter:blur(64px) saturate(1.25)}.scale-110,.scale-110.transform{transform:scale(1.1)}@keyframes spin{to{transform:rotate(1turn)}}.font-libre,.font-nav{font-family:Georgia,Times New Roman,Times,serif}.site-nav{border-bottom:1px solid hsla(0,0%,100%,.08);background:linear-gradient(180deg,hsla(0,0%,100%,.035),transparent),hsla(0,0%,5%,.78);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.035);transform:translateY(0);transition:transform .26s ease,border-color .15s ease,background-color .15s ease}.nav-inner{max-width:78rem}.nav-brand{display:inline-flex;min-width:11rem;flex-direction:column;gap:.1rem}.nav-brand-name{font-size:.78rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase}.nav-brand-role{color:hsla(0,0%,100%,.48);font-size:.72rem;letter-spacing:.08em}.nav-link{position:relative;padding:.35rem 0;color:hsla(0,0%,100%,.58);font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;transition:color .15s ease}.nav-link:after{content:"";position:absolute;left:0;right:.22em;bottom:-.35rem;height:1px;background:rgba(232,121,249,.9);transform:scaleX(0);transform-origin:center;transition:transform .18s ease}.nav-link-active,.nav-link:hover{color:hsla(0,0%,100%,.96)}.nav-link-active:after{transform:scaleX(1)}.nav-resume{display:inline-flex;min-width:7.25rem;align-items:center;justify-content:center;gap:.45rem;border:1px solid hsla(0,0%,100%,.14);border-radius:9999px;background:hsla(0,0%,100%,.035);padding:.65rem 1rem;color:hsla(0,0%,100%,.9);font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;transition:border-color .15s ease,background-color .15s ease,color .15s ease}.nav-resume:hover{border-color:rgba(217,70,239,.35);background:rgba(217,70,239,.12);color:#fff}.nav-menu-button{border:1px solid hsla(0,0%,100%,.12);border-radius:9999px;background:hsla(0,0%,100%,.035);color:hsla(0,0%,100%,.88);opacity:.86;transition:border-color .15s ease,color .15s ease,background-color .15s ease,opacity .15s ease}.nav-menu-button:hover{border-color:rgba(217,70,239,.35);background:rgba(217,70,239,.08);color:#fff;opacity:1}.mobile-nav-panel{border:1px solid hsla(0,0%,100%,.1);border-radius:1.25rem;background:linear-gradient(180deg,hsla(0,0%,100%,.04),transparent 42%),hsla(0,0%,4%,.9);box-shadow:0 24px 60px rgba(0,0,0,.32),inset 0 1px 0 hsla(0,0%,100%,.04);padding:.9rem}.mobile-nav-kicker{margin:.15rem 0 .75rem;color:rgba(232,121,249,.78);font-size:.68rem;font-weight:700;letter-spacing:.28em;text-align:center;text-transform:uppercase}.mobile-nav-links{display:grid;grid-gap:.25rem;gap:.25rem}.mobile-nav-link{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:2.75rem;border:1px solid transparent;border-radius:.85rem;padding:0 .95rem;color:hsla(0,0%,100%,.62);font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;transition:border-color .15s ease,background-color .15s ease,color .15s ease}.mobile-nav-link:after,.mobile-nav-link:before{content:"";width:.35rem;height:.35rem;border-radius:9999px;background:rgba(232,121,249,0);box-shadow:0 0 0 rgba(232,121,249,0);transition:background-color .15s ease,box-shadow .15s ease}.mobile-nav-link:before{justify-self:start}.mobile-nav-link:after{justify-self:end}.mobile-nav-link span{grid-column:2;text-align:center}.mobile-nav-link-active,.mobile-nav-link:hover{border-color:hsla(0,0%,100%,.08);background:hsla(0,0%,100%,.04);color:hsla(0,0%,100%,.96)}.mobile-nav-link-active:after,.mobile-nav-link-active:before{background:rgba(232,121,249,.95);box-shadow:0 0 18px rgba(232,121,249,.45)}.mobile-nav-resume{width:100%;margin-top:.8rem;padding:.85rem 1rem;background:rgba(217,70,239,.12)}.site-footer{border-top:1px solid hsla(0,0%,100%,.08);background:linear-gradient(180deg,hsla(0,0%,100%,.025),transparent 55%),rgba(5,5,5,.64)}.footer-simple{display:flex;flex-direction:column;align-items:center;gap:1.1rem;text-align:center}.footer-tagline{max-width:42rem;color:hsla(0,0%,100%,.64);font-family:Georgia,Times New Roman,Times,serif;line-height:1.6}.footer-simple-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.85rem 1.35rem}.footer-link{color:hsla(0,0%,100%,.5);font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;transition:color .15s ease}.footer-link:hover{color:#e879f9}.footer-copy{color:hsla(0,0%,100%,.32);font-family:Georgia,Times New Roman,Times,serif;font-size:.9rem}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media (min-width:640px){.sm\:flex{display:flex}.sm\:w-auto{width:auto}.sm\:flex-row{flex-direction:row}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:justify-between{justify-content:space-between}.sm\:px-8{padding-left:2rem;padding-right:2rem}}@media (min-width:768px){.site-nav-mobile-hidden{transform:translateY(0)}.md\:hidden{display:none}.md\:flex{display:flex}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:p-10{padding:2.5rem}.md\:text-left{text-align:left}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}}@media (max-width:767px){.site-nav-mobile-hidden{transform:translateY(-105%)}}@media (min-width:768px) and (max-width:939px){.nav-inner{justify-content:center}.nav-inner .nav-brand{display:none}}@media (min-width:1024px){.project-grid{grid-template-columns:minmax(0,1.45fr) minmax(320px,.85fr)}.project-media-last{order:2}.project-copy-first{order:1}.lg\:grid-cols-\[minmax\(0\,1\.45fr\)_minmax\(320px\,0\.85fr\)\]{grid-template-columns:minmax(0,1.45fr) minmax(320px,.85fr)}.lg\:gap-10{gap:2.5rem}.lg\:order-1{order:1}.lg\:order-2{order:2}}@media (min-width:1280px){.xl\:gap-12{gap:3rem}.xl\:text-\[3rem\]{font-size:3rem}}section{scroll-margin-top:96px;position:relative}body:before{background-image:linear-gradient(hsla(0,0%,100%,.035) 1px,transparent 0),linear-gradient(90deg,hsla(0,0%,100%,.035) 1px,transparent 0),linear-gradient(rgba(217,70,239,.055) 1px,transparent 0),linear-gradient(90deg,rgba(217,70,239,.055) 1px,transparent 0);background-size:56px 56px,56px 56px,224px 224px,224px 224px;background-position:0 0,0 0,-1px -1px,-1px -1px;-webkit-mask-image:linear-gradient(180deg,#000,rgba(0,0,0,.7) 58%,transparent),radial-gradient(ellipse at 50% 20%,#000,transparent 78%);mask-image:linear-gradient(180deg,#000,rgba(0,0,0,.7) 58%,transparent),radial-gradient(ellipse at 50% 20%,#000,transparent 78%);opacity:.24}body:after,body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0}body:after{background:linear-gradient(115deg,transparent 0 16%,hsla(0,0%,100%,.045) 16.08%,transparent 16.25% 44%,rgba(217,70,239,.05) 44.08%,transparent 44.25%),linear-gradient(65deg,transparent 0 28%,hsla(0,0%,100%,.035) 28.08%,transparent 28.22% 66%,rgba(148,163,184,.045) 66.08%,transparent 66.2%),repeating-linear-gradient(0deg,hsla(0,0%,100%,.018) 0 1px,transparent 1px 5px),radial-gradient(ellipse at top,hsla(0,0%,100%,.045),transparent 42%),radial-gradient(ellipse at bottom right,rgba(217,70,239,.055),transparent 46%);background-size:980px 720px,860px 620px,100% 5px,100% 100%,100% 100%;background-position:top,right 8rem,0 0,0 0,0 0;opacity:.34}footer,main,nav{position:relative;z-index:1}footer{width:100%}:where(a,button,input,textarea,select,summary):focus-visible{outline:2px solid rgba(217,70,239,.85);outline-offset:3px}::selection{background:rgba(217,70,239,.35)}::placeholder{color:hsla(0,0%,100%,.35)}img{display:block}svg[data-lucide]{display:inline-block;flex-shrink:0;width:1em;height:1em}@supports (content-visibility:auto){section:not(#home){content-visibility:auto;contain-intrinsic-size:auto 760px}}@media (prefers-reduced-motion:no-preference){body:before{animation:drift-grid 90s linear infinite}.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}}@keyframes drift-grid{0%{background-position:0 0,0 0}to{background-position:72px 36px,72px 36px}}