:root{--color-black:#0a0a0f;--color-white:#fff;--color-neutral-100:#f4f4f4;--color-cream:#f2efe7;--color-indigo-500:#5a5def;--color-teal-300:#6fe2b6;--color-periwinkle-300:#b4b7ff;--color-lime-300:#d4fc79;--color-background:#05060b;--color-decoration:#33375a;--color-text-light:var(--color-cream);--color-text-light-muted:#8b8896;--color-text-dark:#050505e6;--color-focus:var(--color-lime-300);--gradient-highlight:linear-gradient(120deg, var(--color-indigo-500) 0%, var(--color-teal-300) 50%, var(--color-cream) 100%);--gradient-label:linear-gradient(120deg, var(--color-cream) 0%, var(--color-periwinkle-300) 50%, var(--color-teal-300) 100%);--font-display:"Mona Sans", system-ui, sans-serif;--font-body:"Mona Sans", system-ui, -apple-system, sans-serif;--font-size-xs:clamp(.75rem, .7344rem + .0781vw, .8125rem);--font-size-sm:clamp(.875rem, .8594rem + .0781vw, .9375rem);--font-size-base:1.125rem;--font-size-h6:clamp(1rem, .85rem + .75vw, 1.6rem);--font-size-h5:clamp(1.125rem, .9063rem + 1.0938vw, 2rem);--font-size-h4:clamp(1.3rem, 1rem + 1.5vw, 2.5rem);--font-size-h3:clamp(1.6rem, 1.25rem + 1.75vw, 3rem);--font-size-h2:clamp(2rem, 1.5rem + 2.5vw, 4rem);--font-size-h1:clamp(3rem, 2.25rem + 3.75vw, 6rem);--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-display:95%;--line-height-body:1.5;--line-height-relaxed:1.7;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--container-max:100rem;--content-max:80ch;--content-width:92%;--section-padding-inline:clamp(var(--space-4), 4vw, var(--space-16));--section-padding-block:clamp(var(--space-8), 5vw, var(--space-16));--radius-sm:.5rem;--radius-pill:999rem;--duration-fast:.15s;--duration-normal:.3s;--duration-slow:.7s;--duration-reveal:.8s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-out-quint:cubic-bezier(.22, 1, .36, 1);--shadow-section:0 -2.5rem 5rem #0000001a;--shadow-button:0 1.25rem 1rem .0625rem var(--color-black);--z-content:10}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}@font-face{font-family:Brier;src:url(/_astro/Brier-Bold.6cLHDq8i.woff2)format("woff2");font-display:swap;font-style:normal;font-weight:700}@font-face{font-family:Mona Sans;src:url(/_astro/MonaSans-VariableFont.CO1W7ZqY.woff2)format("woff2");font-display:swap;font-style:normal;font-weight:200 900}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;text-size-adjust:100%;font-size:100%}body{background:var(--color-background);color:var(--color-text-light);font-family:var(--font-body);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;overflow-x:clip}body,h1,h2,h3,h4,h5,h6,p{margin-block-start:0}h1,h2,h3,h4,h5,h6,p{margin-block-end:var(--space-2)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--font-weight-bold);line-height:var(--line-height-display);text-transform:uppercase;text-wrap:balance}h1{font-size:var(--font-size-h1)}h2{font-size:var(--font-size-h2)}h3{font-size:var(--font-size-h3)}h4{font-size:var(--font-size-h4)}h5{font-size:var(--font-size-h5)}h6{font-size:var(--font-size-h6)}a{color:var(--color-text-light);font-weight:var(--font-weight-medium);text-underline-offset:.2em;text-decoration:underline .08em}a:hover{text-decoration-thickness:.12em}a:focus-visible{outline:.1875rem solid var(--color-focus);outline-offset:.25rem}img,picture,svg{max-width:100%;display:block}strong{font-weight:var(--font-weight-bold)}main:focus{outline:none}.site-container{width:100%;max-width:var(--container-max);padding:var(--section-padding-block) var(--section-padding-inline);margin-inline:auto}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:.0625rem;height:.0625rem;margin:-.0625rem;padding:0;position:absolute;overflow:hidden}.skip-link{inset:var(--space-2) auto auto var(--space-2);z-index:100;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-neutral-100);color:var(--color-black);transform:translateY(calc(-100% - var(--space-4)));transition:transform var(--duration-fast) var(--ease-standard);position:fixed}.skip-link:focus-visible{transform:translateY(0)}.heading-mask{display:block;overflow:hidden}.hero{min-height:100svh}.hero__container{align-items:center;min-height:100svh;display:flex;position:relative}.hero__content{z-index:var(--z-content);width:var(--content-width);position:relative}.hero__title{max-width:var(--content-max);margin:0;position:relative}.hero .heading-mask{margin-bottom:-.12em}.accent-text{font-family:"Brier", var(--font-display);font-weight:var(--font-weight-bold);background:var(--gradient-highlight);color:#0000;-webkit-text-fill-color:transparent;background-clip:text}.hero__line{width:fit-content;max-width:none;font-size:inherit;line-height:var(--line-height-display);margin:0;padding-bottom:.12em;display:block}.hero__nav{gap:var(--space-4);margin-top:var(--space-12);flex-wrap:wrap;display:flex}.btn-anim,.btn-ghost{min-width:8.5rem;padding-inline:var(--space-6);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium);justify-content:center;align-items:center;line-height:3rem;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn-anim:hover,.btn-ghost:hover{text-decoration:none}.btn-anim{justify-content:space-between;gap:var(--space-4);background:var(--color-white);color:var(--color-text-dark)}.btn-anim:before{content:"";z-index:1;border-radius:inherit;background:var(--color-indigo-500);transition:transform var(--duration-slow) var(--ease-out-quint);position:absolute;inset:-.0625rem;transform:translateY(101%)}.btn-anim:hover{color:var(--color-text-light)}.btn-anim:hover:before{transform:translateY(0)}.btn-anim__inner{z-index:2;align-items:center;gap:var(--space-4);display:inline-flex;position:relative}.btn-anim__text{line-height:inherit;vertical-align:bottom;display:inline-block;position:relative;overflow:hidden}.btn-anim__text>span{transition:transform var(--duration-slow) var(--ease-out-quint);display:block}.btn-anim__text>span:nth-child(2){position:absolute;inset:0 auto auto 0;transform:translateY(110%)}.btn-anim:hover .btn-anim__text>span:first-child{transform:translateY(-110%)}.btn-anim:hover .btn-anim__text>span:nth-child(2){transform:translateY(0)}.btn-anim__arrow{background:var(--color-black);width:1.75rem;height:1.75rem;color:var(--color-text-light);transition:background-color var(--duration-normal) var(--ease-out-quint), color var(--duration-normal) var(--ease-out-quint);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:hidden}.btn-anim:hover .btn-anim__arrow{background:var(--color-white);color:var(--color-indigo-500)}.btn-anim__arrow svg{width:.85rem;height:.85rem;transition:transform var(--duration-slow) var(--ease-out-quint);position:absolute}.btn-anim__arrow svg:first-child{transform:translate(0)}.btn-anim__arrow svg:nth-child(2){transform:translate(-180%)}.btn-anim:hover .btn-anim__arrow svg:first-child{transform:translate(180%)}.btn-anim:hover .btn-anim__arrow svg:nth-child(2){transform:translate(0)}.btn-ghost{color:var(--color-text-light);background:0 0}.btn-ghost:before{content:"";z-index:1;border-radius:inherit;background:var(--color-text-light);transition:transform var(--duration-slow) var(--ease-out-quint);position:absolute;inset:-.0625rem;transform:translateY(101%)}.btn-ghost:after{content:"";z-index:3;border:.0625rem solid var(--color-text-light-muted);border-radius:inherit;pointer-events:none;position:absolute;inset:0}.btn-ghost:hover{color:var(--color-text-dark)}.btn-ghost:hover:before{transform:translateY(0)}.btn-ghost .lbl{z-index:2;position:relative}.hero__animation{width:50%;height:100%;padding-block:var(--space-16);pointer-events:none;position:absolute;inset:0 0 0 auto}.project{background:var(--color-neutral-100);box-shadow:var(--shadow-section);color:var(--color-text-dark);position:relative;container:project/inline-size}.project__container{gap:var(--space-8);grid-template-columns:minmax(0,1fr);grid-template-areas:"content""graphics";align-items:center;display:grid}.project__content{flex-direction:column;grid-area:content;align-items:flex-start;width:100%;display:flex}.project__content p{color:var(--color-text-dark)}.project__label{padding:var(--space-3);border-radius:var(--radius-sm);margin-bottom:var(--space-1);background:var(--gradient-label);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;line-height:1}.project__title{margin-bottom:var(--space-3);color:var(--color-text-dark);font-size:var(--font-size-h2);line-height:var(--line-height-display);margin-top:var(--space-3)}.project__status{margin-bottom:0}.project a,.project__link{color:var(--color-text-dark)}.project__link:focus-visible{outline-color:var(--color-black)}.project__graphics{grid-area:graphics;width:100%}.project__graphics picture{width:100%;display:block}.project__image{object-fit:contain;width:100%;height:auto}.profile{position:relative;overflow:hidden}.profile__container{position:relative}.profile__content{align-items:center;display:flex}.profile__copy{z-index:var(--z-content);gap:var(--space-4);width:100%;max-width:var(--content-max);flex-direction:column;display:flex;position:relative}.profile__heading{margin:0}.profile .heading-mask{margin-bottom:-.12em}.profile__title-lines{width:fit-content;display:block}.profile__title{font-size:var(--font-size-h2);font-weight:var(--font-weight-bold);line-height:var(--line-height-display);margin:0;padding-bottom:.12em;display:block}.profile__lead{max-width:54ch;color:var(--color-text-light-muted);font-size:var(--font-size-base);line-height:var(--line-height-relaxed);margin:0}.profile__lead strong{color:var(--color-text-light);font-weight:var(--font-weight-semibold)}.profile__animation{pointer-events:none;width:85%;height:100%;position:absolute;inset:0 0 auto auto}.lottie-animation svg path{fill:var(--color-decoration)!important}@media (width<=47.99rem){.profile__animation{opacity:.4}}.footer{position:relative;overflow:hidden}.footer__inner{padding-block-start:0;container-type:inline-size}.footer__top{gap:var(--space-8);border-top:.0625rem solid #f2efe71f;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr);padding-block-start:var(--space-16);padding-block-end:var(--space-16);display:grid}.footer__brand{max-width:34ch}.footer__name{margin-bottom:var(--space-3);font-family:"Brier", var(--font-display);font-weight:var(--font-weight-bold);font-size:var(--font-size-h5);color:var(--color-text-light)}.footer__tagline{color:var(--color-text-light-muted);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);margin:0}.footer__col-title{margin:0 0 var(--space-6);color:var(--color-text-light-muted);font-size:var(--font-size-xs);letter-spacing:.15em;text-transform:uppercase}.footer__links{gap:var(--space-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.footer__meta{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.footer__meta p,.footer__meta a{color:var(--color-text-light-muted);font-size:var(--font-size-xs);letter-spacing:.1em;text-transform:uppercase;margin:0}.footer__wordmark{font-family:"Brier", var(--font-display);font-weight:var(--font-weight-bold);color:var(--color-text-light);text-align:center;white-space:nowrap;padding-top:var(--space-4);margin:0;font-size:24.5cqi;line-height:.82;text-decoration:none;display:block}@media (width<=47.99rem){.hero__content{width:100%}.hero__nav{flex-direction:column}.btn-anim,.btn-ghost{width:100%}.btn-anim{justify-content:center}.footer__top{grid-template-columns:1fr 1fr}.footer__brand{margin-bottom:var(--space-4);grid-column:1/-1}}.hero__line{animation:hero-line-reveal 1s var(--ease-out-quint) both;animation-delay:calc(.5s + var(--hero-line-index) * .1s)}.hero__nav,.hero__animation{animation:fade-in 1s var(--ease-standard) 1.5s both}.hero__nav{animation-name:nav-reveal}.js [data-reveal]{opacity:0;transition:opacity var(--duration-slow) var(--ease-standard), transform var(--duration-reveal) var(--ease-standard);transform:translateY(1.875rem)}.js [data-reveal].is-visible{opacity:1;transform:translateY(0)}@keyframes hero-line-reveal{0%{transform:translateY(9.375rem)}to{transform:translateY(0)}}@keyframes nav-reveal{0%{opacity:0;transform:translate(-2.5rem)}to{opacity:1;transform:translate(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (width>=48rem){.profile__animation{width:50%}}@media (width<=29.99rem){.profile__copy{padding-block:clamp(2rem,10vw,3rem)}}@container project (width>=62rem){.project__container{grid-template-columns:minmax(0,30%) minmax(0,57.5%);grid-template-areas:"content graphics";justify-content:space-between}}@supports not (container-type:inline-size){@media (width>=62rem){.project__container{grid-template-columns:minmax(0,30%) minmax(0,57.5%);grid-template-areas:"content graphics";justify-content:space-between}}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}.js [data-reveal]{opacity:1;transform:none}}@media (forced-colors:active){.accent-text{color:canvastext;-webkit-text-fill-color:currentColor;background:0 0}.btn-anim,.btn-ghost{border:.125rem solid buttontext}}
