.pill-button{border:1px solid var(--foreground);color:var(--foreground);font:inherit;cursor:pointer;isolation:isolate;text-transform:uppercase;border-radius:9999px;align-items:center;gap:1.25rem;padding:.625rem .625rem .625rem 1.5rem;line-height:1;text-decoration:none;transition:color .35s;display:inline-flex;position:relative;overflow:hidden}.pill-button:hover,.pill-button:focus-visible{color:#fff;outline:none}.pill-button__bg{z-index:0;background-color:var(--foreground);transform-origin:bottom;transition:transform .7s cubic-bezier(.22,1,.36,1);position:absolute;inset:0;transform:scaleY(0)}.pill-button:hover .pill-button__bg,.pill-button:focus-visible .pill-button__bg{transform-origin:bottom;transform:scaleY(1)}.pill-button:not(:hover):not(:focus-visible) .pill-button__bg{transform-origin:top}.pill-button__label{z-index:1;white-space:nowrap;font-size:12px;font-weight:500;position:relative}.pill-button__icon{z-index:1;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;display:flex;position:relative}.pill-button__dot{background-color:var(--foreground);border-radius:9999px;width:.5rem;height:.5rem;transition:width .7s cubic-bezier(.22,1,.36,1),height .7s cubic-bezier(.22,1,.36,1),background-color .7s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pill-button:hover .pill-button__dot,.pill-button:focus-visible .pill-button__dot{background-color:#fff;width:2.25rem;height:2.25rem}.pill-button__icon-reveal{z-index:1;opacity:0;width:1rem;height:1rem;transition:opacity 0s linear .35s;position:relative;overflow:hidden}.pill-button:hover .pill-button__icon-reveal,.pill-button:focus-visible .pill-button__icon-reveal{opacity:1;transition:opacity 0s linear .12s}.pill-button__icon-inner{width:1rem;height:1rem;color:var(--foreground);display:block;transform:translateY(-100%)}.pill-button:hover .pill-button__icon-inner,.pill-button:focus-visible .pill-button__icon-inner{animation:.4s cubic-bezier(.22,1,.36,1) .12s forwards pill-button-icon-in}.pill-button:not(:hover):not(:focus-visible) .pill-button__icon-inner{animation:.35s cubic-bezier(.22,1,.36,1) forwards pill-button-icon-out}@keyframes pill-button-icon-in{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes pill-button-icon-out{0%{transform:translateY(0)}to{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.pill-button,.pill-button__bg,.pill-button__dot,.pill-button__icon-inner{transition:none;animation:none!important}.pill-button:hover,.pill-button:focus-visible{background-color:var(--foreground);color:#fff}.pill-button:hover .pill-button__bg,.pill-button:focus-visible .pill-button__bg{transform:scaleY(1)}.pill-button:hover .pill-button__dot,.pill-button:focus-visible .pill-button__dot{background-color:#fff;width:2.25rem;height:2.25rem}.pill-button:hover .pill-button__icon-reveal,.pill-button:focus-visible .pill-button__icon-reveal{opacity:1}.pill-button:hover .pill-button__icon-inner,.pill-button:focus-visible .pill-button__icon-inner{transform:translateY(0)}}
@keyframes reveal-text-rise{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes reveal-text-descend{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@layer components{.reveal-text{overflow:hidden}.reveal-text--done{overflow:visible}.reveal-text--rise>*{padding-bottom:.22em;display:block;transform:translateY(100%)}.reveal-text--descend>*{padding-top:.12em;padding-bottom:.12em;display:block;transform:translateY(-100%)}.reveal-text--visible.reveal-text--rise>*{animation:reveal-text-rise var(--reveal-duration,1.3s) cubic-bezier(.22, 1, .36, 1) forwards;animation-delay:var(--reveal-delay,0s)}.reveal-text--visible.reveal-text--descend>*{animation:reveal-text-descend var(--reveal-duration,1.3s) cubic-bezier(.22, 1, .36, 1) forwards;animation-delay:var(--reveal-delay,0s)}.reveal-lines{flex-direction:column;display:flex}.reveal-lines--visible .reveal-text>.reveal-text__line{animation-duration:var(--reveal-duration,1.2s);animation-delay:calc(var(--reveal-delay,0s) + var(--line-index) * var(--reveal-stagger,.18s))}.reveal-lines--visible .reveal-text--rise>.reveal-text__line{animation-name:reveal-text-rise;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-fill-mode:forwards}.reveal-lines--visible .reveal-text--descend>.reveal-text__line{animation-name:reveal-text-descend;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-fill-mode:forwards}}@media (prefers-reduced-motion:reduce){.reveal-text--rise>*,.reveal-text--descend>*,.reveal-text__line{animation:none;transform:none}}
.hero{position:relative}.hero__main{isolation:isolate;position:relative}.hero-circles{z-index:0;pointer-events:none;position:absolute;inset:0}.hero__content{--hero-title-size:clamp(2.75rem, 9vw + .5rem, 7rem);--hero-title-mask-top:calc(var(--hero-title-size) * .12);--hero-title-mask-bottom:calc(var(--hero-title-size) * .35);--hero-aside-gap:10px;--hero-row-padding:.5rem;--hero-aside-baseline:.41rem;--hero-aside-cap-top:.35rem;z-index:10;position:relative}.hero__row{padding-block:var(--hero-row-padding)}.hero__title{font-size:var(--hero-title-size);line-height:1.25}.hero__title-reveal.reveal-text--rise>.hero__title{padding-bottom:var(--hero-title-mask-bottom)}.hero__title-reveal.reveal-text--descend>.hero__title{padding-top:var(--hero-title-mask-top);padding-bottom:var(--hero-title-mask-bottom)}@media (min-width:48rem){.hero__content{--hero-title-size:clamp(4rem, 7vw + 1rem, 7rem)}.hero__title{line-height:1.15}.hero__aside--above-line{margin-bottom:calc(var(--hero-aside-gap) - var(--hero-row-padding) - var(--hero-aside-baseline))}.hero__aside--below-line{margin-top:calc(var(--hero-aside-gap) - var(--hero-row-padding) - var(--hero-aside-cap-top))}}.hero-circle{width:auto;max-width:none;height:auto;position:absolute}.hero-circle--small{z-index:1}.hero-circle--big{z-index:2}.hero-circle__asset{width:100%;height:auto;display:block}.hero-circle__asset--big{animation:1.8s cubic-bezier(.22,1,.36,1) .15s forwards hero-circle-enter-big;transform:translate(90vw,85vh)scale(.7)}.hero-circle__asset--small{animation:2s cubic-bezier(.22,1,.36,1) .4s forwards hero-circle-enter-small;transform:translate(75vw,70vh)scale(.7)}@keyframes hero-circle-enter-big{0%{transform:translate(90vw,85vh)scale(.88)}to{transform:translate(0)scale(1)}}@keyframes hero-circle-enter-small{0%{transform:translate(75vw,70vh)scale(.88)}to{transform:translate(0)scale(1)}}.hero-circle--big{width:min(36rem,94vw);position:absolute;top:-85%;left:52%;transform:translate(-55%)}.hero-circle--small{width:min(24rem,62vw);position:absolute;top:8%;left:38%}@media (min-width:48rem){.hero-circle--big{width:min(48rem,84vw);top:-115%;left:54%;transform:translate(-56%)}.hero-circle--small{width:min(36rem,50vw);top:-2%;left:44%}}@media (min-width:64rem){.hero-circle--big{width:min(60rem,78vw);top:-140%;left:55%;transform:translate(-58%)}.hero-circle--small{width:min(60rem,40vw);top:-10%;left:48.5%}}@keyframes hero-line-expand{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@layer components{.hero-line{transform-origin:50%;background-color:#5e5e5e;height:1.5px;animation:1.4s cubic-bezier(.33,0,.2,1) 1.2s forwards hero-line-expand;transform:scaleX(0)}}@media (prefers-reduced-motion:reduce){.hero-line,.hero-circle__asset--big,.hero-circle__asset--small{animation:none;transform:none}}
.awards{--awards-ease:cubic-bezier(.22, 1, .36, 1);--awards-scroll-step:70vh;--awards-scroll-tail:75vh;--awards-content-duration:1.2s;--awards-content-stagger:.2s;isolation:isolate;position:relative}.awards--waiting{display:none}.awards--on-curtains{color:var(--background);background:0 0}.awards__scroll-zone--on-curtains{z-index:1;height:100%;min-height:100dvh;position:relative}.awards__scroll-zone--on-curtains .awards__sticky{background:0 0;min-height:100dvh}.awards__scroll-zone--on-curtains .awards__content-shade{background:#0000002e}.awards__content-shade--scroll-driven{opacity:0;transition:none}@media (prefers-reduced-motion:reduce){.awards--waiting .awards__scroll-zone{visibility:visible}.awards--ready .awards__scroll-zone{animation:none}}.awards__scroll-zone{--award-count:4;height:calc(100vh + var(--award-count) * var(--awards-scroll-step) + var(--awards-scroll-tail));position:relative;overflow:visible}.awards__sticky{isolation:isolate;align-items:center;min-height:100vh;padding-block:clamp(3rem,8vh,5rem);display:flex;position:sticky;top:0;overflow:visible}.awards__stage{z-index:2;isolation:isolate;width:100%;position:relative}.awards__trophy-bg{z-index:0;pointer-events:none;justify-content:center;align-items:center;padding-right:clamp(3rem,8vw,6.5rem);display:flex;position:absolute;inset:0;overflow:hidden}.awards__content-shade{z-index:1;pointer-events:none;transition:opacity .55s var(--awards-ease);background:#00000061;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.awards__content-shade{transition:none}}.awards__panel--intro,.awards__panel--list{position:relative}.awards__layout{flex-direction:column;gap:2.5rem;width:100%;display:flex;position:relative}.awards__panel{width:100%;min-width:0}.awards__panel--intro{flex-direction:column;gap:1.5rem;display:flex}.awards__intro{z-index:1;opacity:0;transition:opacity .5s var(--awards-ease);flex-direction:column;gap:.75rem;display:flex;position:relative}.awards__intro--visible{opacity:1}.awards__title{font-size:clamp(2.35rem,3.5vw + .5rem,3.5rem);font-weight:500;line-height:1.1}.awards__title--pending,.awards__description--pending{visibility:hidden}.awards__description{color:#ffffffb8;max-width:30rem;font-size:clamp(1.1875rem,.75vw + .9rem,1.5rem);line-height:1.5}.awards__panel--list{align-items:center;display:flex}@media (min-width:64rem){.awards__layout{grid-template-columns:minmax(0,.74fr) minmax(0,1.26fr);align-items:center;gap:clamp(2rem,4vw,3.5rem);display:grid}.awards__panel--list{justify-content:flex-end;align-items:center;width:100%;display:flex}}.awards__trophy{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;opacity:0;width:100%;height:100%;transition:opacity 1.4s var(--awards-ease), transform 1.4s var(--awards-ease);position:absolute;inset:0;transform:scale(.92)}.awards__trophy--decorative{--awards-trophy-shift-x:clamp(-2rem, -4vw, -5rem);cursor:default;touch-action:auto;opacity:0;width:min(92vw,52rem);height:min(88vh,52rem);transform:translateX(var(--awards-trophy-shift-x)) rotate(-14deg) scale(.88);transition:opacity 1.5s var(--awards-ease) .1s, transform 1.5s var(--awards-ease) .1s;position:relative;inset:auto;overflow:visible}.awards__trophy--decorative.awards__trophy--scroll-appear{opacity:var(--trophy-appear,0);transform:translateX(var(--awards-trophy-shift-x)) rotate(-14deg) scale(calc(.88 + .12 * var(--trophy-appear,0)));transition:none}.awards__trophy--decorative.awards__trophy--visible{opacity:1;transform:translateX(var(--awards-trophy-shift-x)) rotate(-14deg) scale(1)}.awards__trophy--visible{opacity:1;transform:scale(1)}.awards__trophy--dragging{cursor:grabbing}.awards__trophy canvas{display:block;width:100%!important;height:100%!important}.awards-list{width:min(100%,42rem);margin-inline-start:auto;overflow:visible}.awards-item{--awards-item-curtain-duration:.3s;color:inherit;text-decoration:none;display:block;position:relative;overflow:visible}.awards-item--interactive{cursor:pointer}.awards-item--inactive{pointer-events:none;cursor:default}.awards-item__clip{position:relative;overflow:hidden}.awards-item--hovered{z-index:2}.awards-item__curtain{z-index:0;background:var(--background);opacity:0;transition:transform var(--awards-item-curtain-duration) ease;pointer-events:none;position:absolute;inset:0;transform:translateY(-100%)}.awards-item__curtain--covering,.awards-item__curtain--below{opacity:1}.awards-item__curtain--covering{transform:translateY(0)}.awards-item__curtain--below{transform:translateY(100%)}.awards-item__curtain--snap{transition:none}.awards-item__reveal{z-index:1;position:relative;overflow:hidden}.awards-item__row{transition:transform var(--awards-content-duration) var(--awards-ease);transition-delay:calc((var(--award-count) - 1 - var(--content-order)) * var(--awards-content-stagger));display:grid;position:relative;transform:translateY(100%)}.awards-item__layer{box-sizing:border-box;transition:transform var(--awards-item-curtain-duration) ease;grid-area:1/1;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:1.25rem;padding:1rem .75rem;display:grid}.awards-item__layer--out{transform:translateY(0)}.awards-item__layer--in{color:var(--foreground);opacity:0;visibility:hidden;transform:translateY(-105%)}.awards-item--hovered .awards-item__layer--out{transform:translateY(105%)}.awards-item--hovered .awards-item__layer--in{opacity:1;visibility:visible;transform:translateY(0)}@media (min-width:48rem){.awards-item__layer{column-gap:2rem;padding:1rem 1.25rem}.awards-item__title{white-space:nowrap}}.awards-list--content-visible .awards-item__row{transition-delay:calc(var(--content-order) * var(--awards-content-stagger));transform:translateY(0)}.awards-item__title{font-size:clamp(1.0625rem,.5vw + .9rem,1.3125rem);font-weight:400;line-height:1.3}.awards-item__icon{justify-content:center;justify-self:end;align-items:center;width:2rem;height:2rem;display:flex}.awards-item__icon svg{width:1.5rem;height:1.5rem}.awards-item__line{z-index:1;transform-origin:100%;opacity:0;will-change:transform;height:1px;transition:transform .4s linear, background var(--awards-item-curtain-duration) ease, height var(--awards-item-curtain-duration) ease;background:#484444;position:relative;transform:scaleX(0)}.awards-item--hovered .awards-item__line{background:#120f0f38;height:1.5px}@media (prefers-reduced-motion:reduce){.awards__scroll-zone{height:auto}.awards__sticky{min-height:auto;position:relative}.awards-item__line{transform:scaleX(1)}.awards-item__row{transition:none;transform:translateY(0)}.awards-item__curtain{transition:none}.awards-item--hovered .awards-item__curtain,.awards-item:focus-within .awards-item__curtain--covering{transform:translateY(0)}.awards-item__layer{transition:none}.awards-item__layer--out,.awards-item--hovered .awards-item__layer--out{transform:translateY(0)}.awards-item__layer--in{opacity:0;visibility:hidden;transform:translateY(-105%)}.awards-item--hovered .awards-item__layer--in{opacity:1;visibility:visible;transform:translateY(0)}.awards__trophy{opacity:1;transition:none;transform:none}}
.transition-zone{--transition-overlap:100dvh;--projects-curtain-buffer:55dvh;--curtain-scroll:calc(380dvh + var(--projects-curtain-buffer));--transition-ease:cubic-bezier(.22, 1, .36, 1);--curtain-seam:2px;--awards-surface:#0a0909;--awards-runway:calc(var(--award-count,4) * 70dvh + 75dvh);--awards-enter-ratio:.5;--awards-start:calc(var(--projects-curtain-buffer) + (var(--curtain-scroll) - var(--projects-curtain-buffer)) * var(--awards-enter-ratio));--awards-exit-hold:100dvh;z-index:25;margin-top:calc(-1 * var(--transition-overlap));height:calc(var(--awards-start) + var(--awards-runway) + var(--awards-exit-hold));pointer-events:none;background:0 0;position:relative}.transition-sticky{isolation:isolate;pointer-events:none;opacity:0;height:100dvh;transition:opacity .55s var(--transition-ease);background:0 0;position:sticky;top:0;overflow:hidden}.transition-zone--active .transition-sticky{opacity:1}.transition-curtains{z-index:1;pointer-events:none;grid-template-rows:repeat(5,1fr);display:grid;position:absolute;inset:0}.transition-curtain-slot{contain:paint;position:relative;overflow:hidden}.transition-curtain{width:100%;left:0;top:calc(var(--curtain-seam) * -.5);height:calc(100% + var(--curtain-seam));background:var(--awards-surface);backface-visibility:hidden;will-change:transform;transition:transform 1s var(--transition-ease);position:absolute}.transition-curtain--light{background:var(--background);transition-duration:1.4s}.transition-awards-flow{z-index:2;padding-top:var(--awards-start);padding-bottom:var(--awards-exit-hold);pointer-events:none;height:calc(100% + 100dvh);margin-top:-100dvh;position:relative}.transition-awards-flow--active{pointer-events:auto}.transition-awards-panel{background:var(--awards-surface);min-height:100dvh;color:var(--background);align-items:stretch;display:flex;position:sticky;top:0}.transition-awards-panel .awards{background:0 0;width:100%;min-height:100dvh}.transition-awards-runway{width:100%;height:var(--awards-runway);pointer-events:none;background:var(--awards-surface)}@media (prefers-reduced-motion:reduce){.transition-zone{display:none}.transition-sticky{transition:none}}
.project-card{--project-card-padding:2.5rem;--project-card-footer-space:5rem;--project-card-media-width:80%;--project-card-media-height:24rem;--project-card-media-height-hover:28rem;--project-card-media-lift:-4rem;--project-card-zoom-scale:1.08;--project-card-zoom-duration:.8s;--project-card-resize-duration:1.2s;--project-card-curtain-duration:.4s;--project-card-curtain-color:#798e7b;--project-card-cursor-size:6rem;--project-card-ease:cubic-bezier(.22,.97,.1,.81);--cursor-x:0px;--cursor-y:0px;min-height:28rem;padding:var(--project-card-padding);padding-bottom:var(--project-card-footer-space);color:inherit;text-decoration:none;display:block;position:relative;overflow:hidden}.project-card__cursor{top:var(--cursor-y);left:var(--cursor-x);z-index:20;width:var(--project-card-cursor-size);height:var(--project-card-cursor-size);background:var(--foreground);color:var(--background);pointer-events:none;opacity:0;transition:transform .25s var(--project-card-ease), opacity .2s ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;transform:translate(-50%,-50%)scale(.5)}.project-card__cursor--visible{opacity:1;transform:translate(-50%,-50%)scale(1)}.project-card__cursor-icon{width:1.5rem;height:1.5rem}.project-card__curtain{z-index:0;background:var(--project-card-curtain-color);transition:transform var(--project-card-curtain-duration) ease;pointer-events:none;position:absolute;inset:0;transform:translateY(-100%)}.project-card__curtain--covering{transform:translateY(0)}.project-card__curtain--below{transform:translateY(100%)}.project-card__curtain--snap{transition:none}.project-card__header{z-index:1;text-align:center;flex-direction:column;gap:.5rem;margin-bottom:2rem;display:flex;position:relative}.project-card__media{z-index:1;width:var(--project-card-media-width);height:var(--project-card-media-height);margin-inline:auto;transition:width var(--project-card-resize-duration) var(--project-card-ease), height var(--project-card-resize-duration) var(--project-card-ease), margin-top var(--project-card-resize-duration) var(--project-card-ease);margin-top:0;position:relative;overflow:hidden}.project-card:hover .project-card__media,.project-card:focus-within .project-card__media{width:100%;height:var(--project-card-media-height-hover);margin-top:var(--project-card-media-lift)}.project-card__image{object-fit:cover;transition:transform var(--project-card-zoom-duration) var(--project-card-ease);transform:scale(1)}.project-card:hover .project-card__image,.project-card:focus-within .project-card__image{transform:scale(var(--project-card-zoom-scale))}.project-card__media-caption{z-index:2;color:#fff;text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1.5rem;display:flex;position:absolute;inset:0}.project-card__media-caption:before{content:"";z-index:-1;opacity:0;transition:opacity .35s var(--project-card-ease);background:#120f0f66;position:absolute;inset:0}.project-card:hover .project-card__media-caption:before,.project-card:focus-within .project-card__media-caption:before{opacity:1}.project-card__title{font-size:clamp(1.75rem,2vw + 1rem,2.25rem);line-height:1.2}.project-card__description{line-height:1.45}.project-card__text-reveal{margin-top:-8px;overflow:hidden}.project-card__text-reveal>*{transition:transform 1.4s var(--project-card-ease);display:block;transform:translateY(0)}.project-card__text-reveal--delay>*{transition-delay:80ms}.project-card:hover .project-card__header .project-card__text-reveal>*,.project-card:focus-within .project-card__header .project-card__text-reveal>*{transform:translateY(-140%)}.project-card:hover .project-card__header .project-card__text-reveal--delay>*,.project-card:focus-within .project-card__header .project-card__text-reveal--delay>*{transition-delay:80ms}.project-card__text-reveal--in>*{transform:translateY(100%)}.project-card:hover .project-card__text-reveal--in>*,.project-card:focus-within .project-card__text-reveal--in>*{transform:translateY(0)}.project-card:hover .project-card__text-reveal--in.project-card__text-reveal--delay>*,.project-card:focus-within .project-card__text-reveal--in.project-card__text-reveal--delay>*{transition-delay:80ms}.project-card__footer{right:var(--project-card-padding);bottom:1rem;left:var(--project-card-padding);z-index:3;transition:color var(--project-card-curtain-duration) var(--project-card-ease);justify-content:space-between;align-items:flex-end;gap:1rem;display:flex;position:absolute}.project-card:hover .project-card__footer,.project-card:focus-within .project-card__footer{color:var(--background)}.project-card__tags{flex-wrap:wrap;justify-content:flex-end;gap:.25rem;display:flex}.project-card__tag{border:1px solid var(--foreground);text-transform:uppercase;transition:color var(--project-card-curtain-duration) var(--project-card-ease), border-color var(--project-card-curtain-duration) var(--project-card-ease);border-radius:9999px;padding:.25rem .5rem;font-size:.625rem;font-weight:600;line-height:1}.project-card:hover .project-card__tag,.project-card:focus-within .project-card__tag{border-color:var(--background);color:var(--background)}@media not (min-width:48rem){.project-card{--project-card-padding:1.5rem 1.25rem;--project-card-footer-space:3.25rem;--project-card-media-width:70%;--project-card-media-height:13rem;--project-card-media-height-hover:15rem;--project-card-media-lift:-1.5rem;min-height:0}.project-card__header{gap:.5rem;margin-bottom:1.25rem;padding-top:.75rem}.project-card__header .project-card__text-reveal{margin-top:0;overflow:visible}.project-card__title{font-size:clamp(1rem,2vw + .5rem,1.25rem);line-height:1.45}.project-card__description{font-size:.75rem;line-height:1.55}}@media (prefers-reduced-motion:reduce){.project-card__cursor{display:none}.project-card__curtain,.project-card__media,.project-card__image,.project-card__media-caption:before,.project-card__text-reveal>*{transition:none}.project-card:hover .project-card__media,.project-card:focus-within .project-card__media{margin-top:0}.project-card:hover .project-card__image,.project-card:focus-within .project-card__image{transform:none}.project-card__curtain--covering{transform:translateY(0)}.project-card__text-reveal--in>*{transform:none}}
.projects-pin-target{background:var(--background)}.projects-pin-target--pinned{background:var(--background);will-change:opacity, transform}.projects-pin-spacer{pointer-events:none;width:100%}.projects-grid{--projects-reveal-duration:.8s;--projects-reveal-stagger:80ms;--projects-reveal-ease:cubic-bezier(.22, 1, .36, 1);--projects-line-duration:2.2s;--projects-line-ease:cubic-bezier(.22, 1, .36, 1);--projects-line-stagger:.12s;position:relative}@keyframes projects-line-expand-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes projects-line-expand-y{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes projects-card-reveal{0%{opacity:0;transform:translateY(2.75rem)}to{opacity:1;transform:translateY(0)}}.projects-grid__lines{z-index:4;pointer-events:none;position:absolute;inset:0}.projects-grid__line{background:var(--foreground);position:absolute}.projects-grid__line--edge{transform-origin:50%;width:100%;height:1px;left:0;transform:scaleX(0)}.projects-grid__line--top{top:0}.projects-grid__line--middle{top:50%}.projects-grid__line--bottom{bottom:0}.projects-grid__line--mobile:not(.projects-grid__line--top):not(.projects-grid__line--bottom){top:var(--line-position)}.projects-grid__line--vertical-top{transform-origin:bottom;width:1px;height:50%;top:0;left:50%;transform:scaleY(0)}.projects-grid__line--vertical-bottom{transform-origin:top;width:1px;height:50%;top:50%;left:50%;transform:scaleY(0)}.projects-grid__line--desktop{display:none}.projects-grid__line--mobile{display:block}@media (min-width:48rem){.projects-grid__line--desktop{display:block}.projects-grid__line--mobile{display:none}}.projects-grid--visible .projects-grid__line--top.projects-grid__line--desktop{animation:projects-line-expand-x var(--projects-line-duration) var(--projects-line-ease) forwards}.projects-grid--visible .projects-grid__line--middle.projects-grid__line--desktop{animation:projects-line-expand-x var(--projects-line-duration) var(--projects-line-ease) var(--projects-line-stagger) forwards}.projects-grid--visible .projects-grid__line--vertical-top.projects-grid__line--desktop,.projects-grid--visible .projects-grid__line--vertical-bottom.projects-grid__line--desktop{animation:projects-line-expand-y var(--projects-line-duration) var(--projects-line-ease) calc(var(--projects-line-stagger) * 1.5) forwards}.projects-grid--visible .projects-grid__line--bottom.projects-grid__line--desktop{animation:projects-line-expand-x var(--projects-line-duration) var(--projects-line-ease) calc(var(--projects-line-stagger) * 2) forwards}.projects-grid--visible .projects-grid__line--top.projects-grid__line--mobile{animation:projects-line-expand-x var(--projects-line-duration) var(--projects-line-ease) forwards}.projects-grid--visible .projects-grid__line--mobile:not(.projects-grid__line--top):not(.projects-grid__line--bottom){animation:projects-line-expand-x var(--projects-line-duration) var(--projects-line-ease) forwards;animation-delay:calc(var(--line-index) * var(--projects-line-stagger))}.projects-grid--visible .projects-grid__line--bottom.projects-grid__line--mobile{animation:projects-line-expand-x var(--projects-line-duration) var(--projects-line-ease) forwards;animation-delay:calc(var(--project-count) * var(--projects-line-stagger))}.projects-grid__item{z-index:1;opacity:0;pointer-events:none;will-change:opacity, transform;position:relative;transform:translateY(2.75rem)}.projects-grid__item:last-child{z-index:2}.projects-grid__transition-anchor,.projects__transition-anchor,.projects__soft-end-mark{pointer-events:none;width:100%;height:0;position:relative}.projects-grid--visible .projects-grid__item{animation:projects-card-reveal var(--projects-reveal-duration) var(--projects-reveal-ease) forwards;animation-delay:calc(var(--item-index) * var(--projects-reveal-stagger));pointer-events:auto}@media (prefers-reduced-motion:reduce){.projects-grid__line{animation:none;transform:none}.projects-grid--visible .projects-grid__line--edge{transform:scaleX(1)}.projects-grid--visible .projects-grid__line--vertical-top,.projects-grid--visible .projects-grid__line--vertical-bottom{transform:scaleY(1)}.projects-grid--visible .projects-grid__item{opacity:1;pointer-events:auto;animation:none;transform:none}}
.projects-list-alt{--projects-list-alt-line-duration:2.2s;--projects-list-alt-line-ease:cubic-bezier(.22, 1, .36, 1);--projects-list-alt-line-stagger:.12s;--project-card-alt-media:clamp(8.5rem, 30vw, 11.5rem);width:100%;max-width:none;padding-block:0;padding-inline:0}.projects-list-alt__grid{grid-template-columns:1fr;gap:0;width:100%;display:grid;position:relative}.projects-list-alt__lines{z-index:4;pointer-events:none;display:none;position:absolute;inset:0}.projects-list-alt__line{background:var(--foreground);position:absolute}.projects-list-alt__line--top,.projects-list-alt__line--middle,.projects-list-alt__line--bottom{transform-origin:50%;width:100%;height:1px;left:0;transform:scaleX(0)}.projects-list-alt__line--top{display:none}.projects-list-alt__line--middle{top:50%}.projects-list-alt__line--bottom{bottom:0}.projects-list-alt__line--vertical{width:1px;height:50%;left:50%;transform:scaleY(0)}.projects-list-alt__line--vertical-top{transform-origin:bottom;top:0}.projects-list-alt__line--vertical-bottom{transform-origin:top;top:50%}.projects-list-alt--visible .projects-list-alt__line--middle{animation:projects-line-expand-x var(--projects-list-alt-line-duration) var(--projects-list-alt-line-ease) forwards}.projects-list-alt--visible .projects-list-alt__line--vertical-top,.projects-list-alt--visible .projects-list-alt__line--vertical-bottom{animation:projects-line-expand-y var(--projects-list-alt-line-duration) var(--projects-list-alt-line-ease) calc(var(--projects-list-alt-line-stagger) * 1.5) forwards}.projects-list-alt--visible .projects-list-alt__line--bottom{animation:projects-line-expand-x var(--projects-list-alt-line-duration) var(--projects-list-alt-line-ease) calc(var(--projects-list-alt-line-stagger) * 2) forwards}.project-card-alt{--project-card-alt-ease:cubic-bezier(.22, .97, .1, .81);--project-card-curtain-duration:.4s;--project-card-cursor-size:6rem;--project-card-ease:cubic-bezier(.22, .97, .1, .81);--cursor-x:0px;--cursor-y:0px;z-index:1;width:100%;min-height:calc(var(--project-card-alt-media) + 3rem);box-sizing:border-box;height:100%;color:inherit;transition:color var(--project-card-curtain-duration) ease;background:0 0;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(.75rem,1.5vw,1.1rem);padding:1.35rem 1.25rem;text-decoration:none;display:grid;position:relative;overflow:hidden}.project-card-alt .project-card__curtain{z-index:0}.project-card-alt .project-card__cursor{z-index:20}.project-card-alt__media{z-index:1;width:var(--project-card-alt-media);aspect-ratio:1;background:#120f0f0f;border-radius:0;flex-shrink:0;position:relative;overflow:hidden}.project-card-alt__image{object-fit:cover;transition:transform .8s var(--project-card-alt-ease);transform:scale(1)}.project-card-alt--hovered .project-card-alt__image,.project-card-alt:focus-visible .project-card-alt__image{transform:scale(1.08)}.project-card-alt__body{z-index:1;min-width:0;height:var(--project-card-alt-media);transition:color var(--project-card-curtain-duration) ease;flex-direction:column;justify-content:space-between;gap:.85rem;padding-block:.15rem;padding-inline:.35rem .5rem;display:flex;position:relative}.project-card-alt--hovered .project-card-alt__body,.project-card-alt:focus-visible .project-card-alt__body{color:#fff}.project-card-alt--hovered .project-card__tag,.project-card-alt:focus-visible .project-card__tag{color:#fff;border-color:#fff}.project-card-alt__meta{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.project-card-alt__meta .project-card__tags{flex:1;justify-content:flex-start;min-width:0}.project-card-alt__category{flex-shrink:0;margin:0;line-height:1.2}.project-card-alt__copy{flex-direction:column;gap:.5rem;min-width:0;display:flex}.project-card-alt .project-card__title,.project-card-alt .project-card__description{text-align:left;margin:0}@media (min-width:48rem){.projects-list-alt{--project-card-alt-media:clamp(11rem, 18vw, 14.5rem)}.projects-list-alt__grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr}.projects-list-alt__lines{display:block}.project-card-alt{min-height:calc(var(--project-card-alt-media) + 3.5rem);gap:1.25rem;padding:1.75rem 1.5rem}}@media (prefers-reduced-motion:reduce){.projects-list-alt__line{animation:none;transform:none}.projects-list-alt--visible .projects-list-alt__line--middle,.projects-list-alt--visible .projects-list-alt__line--bottom{transform:scaleX(1)}.projects-list-alt--visible .projects-list-alt__line--vertical-top,.projects-list-alt--visible .projects-list-alt__line--vertical-bottom{transform:scaleY(1)}.project-card-alt,.project-card-alt__image,.project-card-alt__body,.project-card-alt .project-card__tag,.project-card-alt .project-card__curtain{transition:none}.project-card-alt--hovered .project-card-alt__image,.project-card-alt:focus-visible .project-card-alt__image{transform:none}.project-card-alt .project-card__cursor{display:none}}
.contact{--contact-muted:#120f0f8c;--contact-line:#120f0f38;--contact-ease:cubic-bezier(.22, 1, .36, 1);background:var(--background);height:100dvh;min-height:100dvh;color:var(--foreground);align-items:stretch;padding-block:0;display:flex;overflow:hidden}.contact__inner{flex-direction:column;width:100%;min-height:100dvh;display:flex}.contact__top{flex:auto;align-items:center;width:100%;padding-block:clamp(2rem,5vh,4rem) clamp(1.25rem,3vh,2rem);display:flex}.contact__grid{grid-template-columns:1fr;align-items:start;gap:clamp(2rem,5vh,3rem);width:100%;display:grid}.contact__intro{flex-direction:column;gap:0;display:flex}.contact__intro-main{flex-direction:column;gap:.85rem;max-width:100%;display:flex}.contact__copyright{color:var(--contact-muted);margin:.15rem 0 0;font-size:.75rem;line-height:1.2}.contact__eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--contact-muted);margin:0;font-size:clamp(.65rem,.15vw + .6rem,.75rem);font-weight:500;line-height:1.2}.contact__title{letter-spacing:-.02em;flex-direction:column;gap:.08em;font-size:clamp(2.25rem,5vw + .5rem,3rem);font-weight:600;line-height:1.08;display:flex}.contact__title-line{white-space:nowrap;width:max-content;max-width:100%;display:block}.contact__details{flex-direction:column;gap:.85rem;display:flex}.contact__detail{flex-direction:column;gap:.2rem;display:flex}.contact__detail-label{letter-spacing:.08em;text-transform:uppercase;color:var(--contact-muted);margin:0;font-size:.7rem;font-weight:500;line-height:1.1}.contact__detail-value{color:inherit;transition:opacity .3s var(--contact-ease);word-break:break-word;margin:0;font-size:clamp(.875rem,.2vw + .8rem,.95rem);line-height:1.3;text-decoration:none}.contact__detail-value:hover,.contact__detail-value:focus-visible{opacity:.65}.contact__socials{border-top:1px solid var(--contact-line);flex-direction:column;display:flex}.contact__social{--contact-social-curtain-duration:.3s;--contact-social-curtain-color:#7397b7;border-bottom:1px solid var(--contact-line);color:inherit;font-size:clamp(.875rem,.2vw + .8rem,.95rem);text-decoration:none;display:block}.contact__social-clip{display:block;position:relative;overflow:hidden}.contact__social-curtain{z-index:0;background:var(--contact-social-curtain-color);transition:transform var(--contact-social-curtain-duration) ease;pointer-events:none;position:absolute;inset:0;transform:translateY(-100%)}.contact__social--hovered .contact__social-curtain{transform:translateY(0)}.contact__social-content{z-index:1;color:inherit;display:block;position:relative;overflow:hidden}.contact__social-layer{box-sizing:border-box;width:100%;transition:transform var(--contact-social-curtain-duration) ease;justify-content:space-between;align-items:center;gap:1rem;padding-block:.95rem;padding-inline:.65rem;display:flex}.contact__social-layer--out{color:var(--foreground);position:relative;transform:translateY(0)}.contact__social-layer--in{color:#fff;position:absolute;inset:0;transform:translateY(-105%)}.contact__social--hovered .contact__social-layer--out{transform:translateY(105%)}.contact__social--hovered .contact__social-layer--in{transform:translateY(0)}.contact__social-label{min-width:0}.contact__social-icon{flex-shrink:0;width:1.375rem;height:1.375rem;display:block}.contact__bottom{box-sizing:border-box;width:100vw;max-width:100vw;margin-top:auto;margin-left:calc(50% - 50vw);padding-inline:clamp(.5rem,1.5vw,1rem);line-height:0}@keyframes contact-statement-line-expand{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.contact__statement-line{background:var(--foreground);transform-origin:50%;width:100%;height:1px;transform:scaleX(0)}.contact__bottom--visible .contact__statement-line{animation:2.6s cubic-bezier(.22,1,.36,1) forwards contact-statement-line-expand}.contact__statement{width:100%;color:var(--foreground);margin:0;padding:clamp(3.5rem,9vh,6.5rem) 0 0;font-size:0;line-height:0;display:block;overflow:hidden}.contact__statement-mark{vertical-align:top;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;max-width:100%;height:auto;margin:0;padding:0;display:block;transform:translateY(17%)}@media (min-width:48rem) and (not (min-width:64rem)){.contact__top{padding-block:clamp(1.75rem,4vh,3rem) clamp(1.5rem,3.5vh,2.5rem)}.contact__grid{grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr);grid-template-areas:"intro details""socials socials";align-items:start;gap:clamp(1.75rem,4vh,2.75rem) clamp(1.5rem,3vw,2.5rem)}.contact__intro{grid-area:intro}.contact__details{text-align:left;grid-area:details;place-self:start end;gap:1rem;padding-top:.15rem}.contact__socials{grid-area:socials}.contact__title{font-size:clamp(2.15rem,4vw + .5rem,2.75rem)}.contact__bottom{padding-top:clamp(1.25rem,3vh,2rem)}.contact__statement{padding-top:clamp(4.5rem,11vh,7.5rem)}}@media (min-width:64rem) and (not (min-width:90rem)){.contact__top{padding-block:clamp(1.75rem,4vh,3rem) clamp(1rem,2.5vh,1.75rem)}.contact__grid{grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr);grid-template-areas:"intro details""socials socials";align-items:start;gap:clamp(1.5rem,3vh,2.5rem) clamp(1.5rem,3vw,2.75rem)}.contact__intro{grid-area:intro;align-self:start;gap:0;min-height:auto}.contact__intro-main{max-width:100%}.contact__title{font-size:clamp(2.1rem,2.6vw + .65rem,2.75rem);line-height:1.1}.contact__details{grid-area:details;place-self:start end;gap:.85rem;padding-block:0}.contact__socials{grid-area:socials}.contact__social-layer{padding-block:.85rem}.contact__bottom{padding-top:clamp(1rem,2.5vh,1.75rem)}.contact__statement{padding-top:clamp(4.25rem,10vh,7rem)}}@media (min-width:90rem){.contact__grid{grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr) minmax(0,.85fr);align-items:start;gap:clamp(2rem,4vw,4.5rem)}.contact__intro{align-self:start;min-height:auto}.contact__intro-main{max-width:100%}.contact__title{font-size:clamp(2.75rem,3.2vw + .5rem,3.85rem)}.contact__details{gap:1rem}.contact__social-layer{padding-block:1.1rem}}@media (prefers-reduced-motion:reduce){.contact__detail-value,.contact__social-layer,.contact__social-curtain{transition:none}.contact__social--hovered .contact__social-curtain,.contact__social-layer--out,.contact__social--hovered .contact__social-layer--out{transform:translateY(0)}.contact__social-layer--in{transform:translateY(-105%)}.contact__social--hovered .contact__social-layer--in{transform:translateY(0)}.contact__statement-line,.contact__bottom--visible .contact__statement-line{animation:none;transform:scaleX(1)}}
.services-contact-transition-zone{--contact-buffer:275dvh;--services-curtain-scroll:660dvh;--contact-start:calc(var(--contact-buffer) + var(--services-curtain-scroll) * .28);--contact-end-hold:0;height:var(--contact-start)}.transition-contact-flow{z-index:2;padding-top:var(--contact-start);pointer-events:none;height:calc(100% + 100dvh);margin-top:-100dvh;position:relative}.transition-contact-flow--active{pointer-events:auto}.transition-contact-panel{align-items:stretch;min-height:100dvh;display:flex;position:sticky;top:0}.transition-contact-panel__reveal{background:var(--background);width:100%;min-height:100dvh;color:var(--foreground);opacity:var(--contact-reveal-opacity,0);transform:translate3d(0, calc((1 - var(--contact-reveal-y,0)) * 4rem), 0);will-change:opacity, transform;align-items:center;display:flex}.transition-contact-panel .contact{background:0 0;width:100%;min-height:100dvh;padding-block:0}.contact--on-curtains .contact__inner{width:100%}@media (prefers-reduced-motion:reduce){.services-contact-transition-zone{display:none}.transition-contact-panel__reveal{opacity:1;transform:none}}
.services{--services-line:#ffffff29;--services-muted:#ffffff8c;--services-ease:cubic-bezier(.22, 1, .36, 1);--services-reveal:0;--services-title-duration:1.2s;--services-title-stagger:.2s;--service-count:3;width:100%;padding-block:clamp(2.5rem,6vh,5rem);position:relative}.services-pin-target{min-height:100dvh;color:var(--background);background:#0a0909;align-items:center;display:flex}.services-pin-target--pinned{will-change:opacity, transform;background:#0a0909;min-height:100dvh;overflow:auto}.services-pin-spacer{pointer-events:none;width:100%}.services__transition-anchor{pointer-events:none;width:100%;height:0;position:absolute;bottom:0;left:0}.services__inner{flex-direction:column;align-items:flex-start;gap:3rem;display:flex}@media (min-width:64rem){.services__inner{flex-direction:row;gap:4rem}}.services__accordion{order:2;width:100%}.services__intro{width:100%;opacity:var(--services-reveal);transform:translateY(calc((1 - var(--services-reveal)) * 16px));order:1}@media (min-width:64rem){.services__accordion{flex:58%;order:1}.services__intro{flex:42%;order:2;position:relative;top:auto}}.services__title{margin-bottom:1.25rem;font-size:clamp(2.75rem,4vw + 1rem,4.5rem);line-height:1}.services__description{color:var(--services-muted);max-width:34ch;font-size:clamp(1rem,.5vw + .9rem,1.25rem);line-height:1.5}.services__item{position:relative}.services__line{background:var(--services-line);transform-origin:0;opacity:0;will-change:transform;width:100%;height:1px;transform:scaleX(0)}.services__header{width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;padding:0}.services__header-reveal{width:100%;display:block;overflow:hidden}.services__header-row{transition:transform var(--services-title-duration) var(--services-ease);transition-delay:calc((var(--service-count) - 1 - var(--content-order,0)) * .2s);will-change:transform;justify-content:space-between;align-items:center;gap:1rem;padding-block:1.5rem;display:flex;transform:translateY(100%)}.services--titles-visible .services__header-row{transition-delay:calc(var(--content-order,0) * .2s);transform:translateY(0%)}.services__label{text-transform:uppercase;letter-spacing:.02em;color:inherit;font-size:clamp(.95rem,.5vw + .75rem,1.25rem)}.services__icon{color:var(--services-muted);transition:transform .45s var(--services-ease), color .45s var(--services-ease);flex-shrink:0;display:inline-flex}.services__item--open .services__icon{color:inherit;transform:rotate(180deg)}.services__panel{transition:grid-template-rows .5s var(--services-ease);grid-template-rows:0fr;display:grid}.services__item--open .services__panel{grid-template-rows:1fr}.services__panel-inner{opacity:var(--services-reveal);overflow:hidden}.services__groups{grid-template-columns:1fr;gap:2rem;padding-bottom:2rem;display:grid}.services__group{opacity:0;transition:opacity .5s var(--services-ease)}.services__item--open .services__group{opacity:1}@media (min-width:40rem){.services__groups{grid-template-columns:repeat(3,1fr);gap:1.5rem}}.services__group-title{text-transform:uppercase;letter-spacing:.08em;color:var(--services-muted);margin-bottom:1rem;font-size:.75rem}.services__list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.services__list-item{color:#fffc;font-size:.9rem}@media (prefers-reduced-motion:reduce){.services{--services-reveal:1}.services__line{opacity:1;transform:scaleX(1)}.services__header-row{transition:none;transform:none}.services__icon,.services__panel,.services__group{transition:none}.services__group{opacity:1}.services__label,.services__icon,.services__panel-inner,.services__intro,.services__group{transform:none}}
