@font-face{font-family:Barlow;font-style:normal;font-weight:300;font-display:swap;src:url(/static/font/barlow-latin-300-normal.a9f2b90422.woff2)format("woff2")}@font-face{font-family:Barlow;font-style:normal;font-weight:400;font-display:swap;src:url(/static/font/barlow-latin-400-normal.691b6fb31d.woff2)format("woff2")}@font-face{font-family:Barlow;font-style:normal;font-weight:500;font-display:swap;src:url(/static/font/barlow-latin-500-normal.b9baa9745a.woff2)format("woff2")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:300;font-display:swap;src:url(/static/font/barlow-condensed-latin-300-normal.bd6942464f.woff2)format("woff2")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:400;font-display:swap;src:url(/static/font/barlow-condensed-latin-400-normal.a9143135e4.woff2)format("woff2")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(/static/font/barlow-condensed-latin-500-normal.6440fe7387.woff2)format("woff2")}:root{--bg-rgb:31 31 31;--bg-deep-rgb:24 24 24;--bg:rgb(var(--bg-rgb));--bg-deep:rgb(var(--bg-deep-rgb));--bg-raised:#262626;--bg-viewer:#121212;--bg-black:#000;--fg:#fff;--fg-muted:#ffffffb8;--fg-faint:#ffffff80;--line:#ffffff29;--wash:#ffffff14;--wash-hover:#ffffff2e;--accent:#d8404b;--accent-text:#e45a63;--accent-fill:#c4343f;--label-size:.72rem;--label-track:.16em;--label-track-wide:.22em;--ease:cubic-bezier(.2, .6, .2, 1);--move:.2s;--font-body:"Barlow", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:"Barlow Condensed", "Barlow", system-ui, sans-serif;--gutter:clamp(16px, 3.4vw, 50px);--max-width:1920px;--gap:clamp(12px, 1.6vw, 24px);--header-height:96px;--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{background:var(--bg);color:var(--fg);-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:112.5%}body{font-family:var(--font-body);letter-spacing:.01em;-webkit-font-smoothing:antialiased;margin:0;font-weight:300;line-height:1.55}body:has(.menu.is-open){overflow:hidden}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}h1,h2,h3,p,ul,ol,figure{margin:0}ul,ol{padding:0;list-style:none}h1,h2,h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.03em;font-weight:300;line-height:1.2}h1{font-size:clamp(2.2rem,6.4vw,5.6rem)}p{color:var(--fg-muted)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:var(--accent-fill);color:var(--fg)}.container{width:100%;max-width:var(--max-width);padding-inline:var(--gutter);margin-inline:auto}.skip-link{z-index:100;background:var(--fg);color:var(--bg);padding:10px 16px;position:fixed;top:8px;left:8px;transform:translateY(-200%)}.skip-link:focus{transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.site-header{z-index:30;min-height:var(--header-height);background:linear-gradient(180deg, rgb(var(--bg-rgb) / .72), rgb(var(--bg-rgb) / 0));transition:transform .45s var(--ease), min-height .3s ease, background-color .3s ease;align-items:center;display:flex;position:fixed;inset:0 0 auto}.site-header.is-scrolled{background:rgb(var(--bg-deep-rgb) / .9);-webkit-backdrop-filter:blur(12px);min-height:68px}.site-header.is-scrolled:before{display:none}.site-header.is-hidden{transform:translateY(-100%)}.site-header__logo img{transition:width .3s}.site-header.is-scrolled .site-header__logo img{width:92px}.site-header:before{content:"";-webkit-backdrop-filter:blur(6px);pointer-events:none;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 30%,#0000);mask-image:linear-gradient(#000 30%,#0000)}.site-header__inner{align-items:center;gap:24px;display:flex}.site-header__logo img{width:116px;height:auto;filter:drop-shadow(0 0 1px rgb(var(--bg-deep-rgb) / .9)) drop-shadow(0 0 4px rgb(var(--bg-deep-rgb) / .75)) drop-shadow(0 0 12px rgb(var(--bg-deep-rgb) / .45))}.site-nav{margin-left:auto}.site-nav ul{gap:8px;display:flex}.site-nav a,.menu a{font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;white-space:nowrap;padding:12px 16px;font-weight:400;display:block;position:relative}.site-nav a:after{content:"";background:var(--fg);transform-origin:100%;height:1px;transition:transform .4s;position:absolute;bottom:6px;left:16px;right:16px;transform:scaleX(0)}.site-nav a:hover:after,.site-nav a[aria-current=page]:after{transform-origin:0;transform:scaleX(1)}.menu-button{width:28px;height:28px;color:inherit;cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0;display:none;position:relative}.menu-button span{background:var(--fg);height:2px;transition:transform .25s,top .25s;position:absolute;left:4px;right:4px}.menu-button span:first-child{top:9px}.menu-button span:last-child{top:17px}.menu-button[aria-expanded=true] span:first-child{top:13px;transform:rotate(45deg)}.menu-button[aria-expanded=true] span:last-child{top:13px;transform:rotate(-45deg)}.menu{z-index:20;padding:var(--header-height) var(--gutter) 40px;background:rgb(var(--bg-deep-rgb) / .96);-webkit-backdrop-filter:blur(12px);opacity:0;align-items:center;transition:opacity .25s;display:flex;position:fixed;inset:0}.menu[hidden]{display:none}.menu.is-open{opacity:1}.menu ul{gap:8px;display:grid}.menu a{font-family:var(--font-display);letter-spacing:.04em;padding:10px 0;font-size:clamp(1.8rem,8vw,2.6rem);font-weight:300}@media (max-width:980px){:root{--header-height:72px}.site-nav{display:none}.menu-button{display:block}.site-header__logo img{width:92px}}@media (min-width:981px){.menu{display:none}}.site-footer{background:var(--bg-deep);margin-top:clamp(40px,8vw,120px);padding-block:clamp(56px,8vw,120px);font-size:.78rem}.site-footer__grid{gap:40px var(--gap);grid-template-columns:repeat(4,1fr);display:grid}.site-footer__brand img{width:56px;height:auto;margin-bottom:28px}.site-footer__brand p{line-height:1.7}.site-footer__title{font-family:var(--font-body);font-size:var(--label-size);letter-spacing:var(--label-track);color:var(--fg-faint);margin-bottom:20px;font-weight:400}.site-footer li+li{margin-top:12px}.site-footer a{letter-spacing:.08em;text-transform:uppercase;transition:color var(--move) ease;font-weight:400}.site-footer a:hover{color:var(--accent-text)}.site-footer__social{gap:18px;display:flex}@media (max-width:1024px){.site-footer__grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.site-footer__grid{grid-template-columns:1fr}}.section{padding-block:clamp(56px,9vw,140px)}.section--flush{padding-top:0}.section-title{border-bottom:1px solid var(--line);font-family:var(--font-body);font-size:var(--label-size);letter-spacing:var(--label-track);color:var(--fg-faint);margin-bottom:clamp(20px,3vw,36px);padding-bottom:18px;font-weight:400}.display{letter-spacing:.02em;font-size:clamp(1.75rem,3.4vw,3.1rem);line-height:1.22}.lead{color:var(--fg);font-size:clamp(1.1rem,1.6vw,1.4rem);line-height:1.5}.eyebrow{font-size:var(--label-size);letter-spacing:var(--label-track-wide);text-transform:uppercase;color:var(--fg);margin-bottom:14px;font-weight:400}.two-col{grid-template-columns:repeat(2,1fr);align-items:end;gap:32px clamp(24px,6vw,120px);display:grid}.two-col--top{align-items:start}@media (max-width:900px){.two-col{grid-template-columns:1fr}}.grid{gap:var(--gap);display:grid}.grid--2{grid-template-columns:repeat(2,1fr)}.grid--3{grid-template-columns:repeat(3,1fr)}@media (max-width:1024px){.grid--3{grid-template-columns:repeat(2,1fr)}}@media (max-width:680px){.grid--2,.grid--3{grid-template-columns:1fr}}.text-link,.big-link{transition:color var(--move) ease}.text-link{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;text-underline-offset:.3em;color:var(--fg);font-size:1rem;text-decoration:underline;text-decoration-thickness:1px}.text-link:hover,.big-link:hover{color:var(--accent-text)}.big-link{font-family:var(--font-display);letter-spacing:.03em;color:var(--fg);font-size:clamp(1.5rem,2.6vw,2.4rem)}.more{text-align:center;margin-top:clamp(32px,4vw,60px)}.more--left{text-align:left}.icon{flex:none}.cta__messengers{flex-wrap:wrap;gap:12px 28px;margin-top:8px;display:flex}.cta__messengers a{font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;color:var(--fg);transition:color var(--move) ease;align-items:center;gap:10px;font-weight:400;display:inline-flex}.cta__messengers a:hover{color:var(--accent-text)}.card{background:var(--bg-raised);position:relative;overflow:hidden}.card--s{aspect-ratio:593/475}.card--m{aspect-ratio:900/721}.card__link{display:block;position:absolute;inset:0}.card__link:after{content:"";background:linear-gradient(180deg, transparent 45%, rgb(var(--bg-rgb) / .92));pointer-events:none;position:absolute;inset:0}.card__media{transition:transform .9s var(--ease);display:block;position:absolute;inset:0;overflow:hidden}.card:hover .card__media,.card__link:focus-visible .card__media{transform:scale(1.035)}.card__image{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}[data-parallax]>.card__image{will-change:transform;height:130%;top:-15%}.tag{font-family:var(--font-display);letter-spacing:var(--label-track);text-transform:uppercase;background:var(--accent-fill);padding:5px 9px 4px;font-size:.78rem}.card__tags{z-index:1;gap:6px;display:flex;position:absolute;top:clamp(12px,1.6vw,20px);right:clamp(12px,1.6vw,20px)}.card__caption{z-index:1;gap:4px;padding:clamp(16px,2vw,28px);display:grid;position:absolute;inset:auto 0 0}.card__title{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;font-size:clamp(1.05rem,1.5vw,1.4rem);font-weight:400;line-height:1.2}.card__meta{font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;color:var(--fg-muted);font-weight:400}.page-heading{padding-top:calc(var(--header-height) + clamp(32px, 7vw, 110px));padding-bottom:clamp(28px,4vw,56px)}.page-heading h1{max-width:22ch}.page-heading__intro{max-width:60ch;margin-top:18px;font-size:1.05rem}.breadcrumb{font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;color:var(--fg-faint);margin-bottom:20px;font-weight:400}.breadcrumb a:hover{color:var(--fg)}.project-heading h1{max-width:28ch;font-size:clamp(1.9rem,4.6vw,4rem)}[data-reveal]{opacity:0;transition:opacity .9s var(--ease) var(--reveal-delay,0s), transform .9s var(--ease) var(--reveal-delay,0s);transform:translateY(32px)}[data-reveal].is-visible{opacity:1;transform:none}.hero{align-items:flex-end;height:clamp(440px,78svh,860px);display:flex;position:relative;overflow:hidden}.hero:after{content:"";background:linear-gradient(180deg, rgb(var(--bg-rgb) / .25) 0%, transparent 30%, rgb(var(--bg-rgb) / .88) 100%);position:absolute;inset:0}.hero__media{animation:hero-settle 2.2s var(--ease) backwards;position:absolute;inset:0}.hero__image{object-fit:cover;will-change:transform;width:100%;height:100%}.hero__text{z-index:1;will-change:transform, opacity;padding-bottom:clamp(28px,5vw,72px);position:relative}.hero__text>*{animation:rise 1.1s var(--ease) backwards}.hero__text>.eyebrow{animation-delay:.35s}.hero__text>h1{max-width:14ch;animation-delay:.5s}.hero__scroll{z-index:1;right:var(--gutter);font-size:var(--label-size);letter-spacing:var(--label-track-wide);text-transform:uppercase;animation:rise 1.1s 1s var(--ease) backwards;justify-items:center;gap:12px;font-weight:400;display:grid;position:absolute;bottom:clamp(28px,5vw,72px)}.hero__scroll:after{content:"";background:linear-gradient(var(--fg), transparent);transform-origin:top;width:1px;height:56px;animation:2.4s ease-in-out 1.6s infinite scroll-line}@media (max-width:680px){.hero__scroll{display:none}}@keyframes hero-settle{0%{transform:scale(1.12)}}@keyframes rise{0%{opacity:0;transform:translateY(28px)}}@keyframes scroll-line{0%{transform:scaleY(0)}50%{transform:scaleY(1)}to{opacity:0;transform:scaleY(1)}}.intro__text{gap:24px;display:grid}.feature{margin-top:clamp(32px,4vw,56px);display:block}.feature__media{aspect-ratio:1820/1066;background:var(--bg-raised);display:block;position:relative;overflow:hidden}.feature__media .card__image{transition:opacity .3s}.feature:hover .card__image{opacity:.92}.strip{margin-top:var(--gap)}.strip__item{aspect-ratio:593/475;background:var(--bg-raised);display:block;overflow:hidden}.strip__item img{object-fit:cover;width:100%;height:100%;transition:transform .9s var(--ease)}.strip__item:hover img{transform:scale(1.035)}.service-list{gap:var(--gap);grid-template-columns:repeat(3,1fr);display:grid}.service-list a{background:var(--bg-deep);gap:14px;height:100%;padding:clamp(20px,2.4vw,36px);transition:background .3s;display:grid}.service-list a:hover{background:var(--bg-raised)}.service-list__num{font-family:var(--font-display);letter-spacing:.1em;color:var(--accent-text);font-size:1rem}.service-list__title{font-family:var(--font-display);letter-spacing:.03em;text-transform:uppercase;font-size:clamp(1.4rem,2vw,2rem);line-height:1.15}.service-list__text{color:var(--fg-muted)}@media (max-width:900px){.service-list{grid-template-columns:1fr}}.cta{background:var(--bg-deep)}.cta__contacts{gap:14px;display:grid}.cta__contacts p{color:var(--fg)}.tabs{border-bottom:1px solid var(--line);margin-bottom:clamp(24px,3vw,40px)}.tabs ul{flex-wrap:wrap;gap:4px 28px;display:flex}.tabs a{font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;color:var(--fg-faint);transition:color var(--move) ease;padding:0 0 16px;font-weight:400;display:block;position:relative}.tabs a:after{content:"";background:var(--fg);height:1px;transition:transform .3s;position:absolute;inset:auto 0 -1px;transform:scaleX(0)}.tabs a:hover,.tabs a[aria-current=page]{color:var(--fg)}.tabs a[aria-current=page]:after{transform:scaleX(1)}.gallery{flex-wrap:wrap;gap:10px;display:flex}.gallery:after{content:"";flex-grow:1000000}.gallery__item{background:var(--bg-raised);min-width:0}.gallery__item a{cursor:zoom-in;display:block}.gallery__item img{width:100%;height:auto;transition:opacity .3s}.gallery__item a:hover img{opacity:.9}.gallery__item--3d a{cursor:pointer;position:relative;overflow:hidden}.gallery__item--3d img{transform:scale(var(--zoom,1)) translate3d(calc(var(--mx,0) * -2.5%), calc(var(--my,0) * -2.5%), 0);transition:transform .9s var(--ease);will-change:transform}.gallery__item--3d a:hover img{--zoom:1.08;opacity:1}.walkthrough{background:linear-gradient(180deg, transparent 45%, rgb(var(--bg-deep-rgb) / .85));align-content:end;justify-items:start;gap:8px;padding:clamp(16px,2.4vw,32px);display:grid;position:absolute;inset:0}.walkthrough__title{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;font-size:clamp(1.4rem,2.6vw,2.2rem);line-height:1.1}.walkthrough__title:after{content:"→";margin-left:.35em;transition:transform .3s;display:inline-block}.gallery__item--3d a:hover .walkthrough__title:after{transform:translate(6px)}.walkthrough__note{font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;color:var(--fg-muted)}@media (hover:hover) and (pointer:fine){.walkthrough__note{display:none}}@media (max-width:680px){.gallery{gap:8px}.gallery__item{flex:100%!important}}.project-nav{border-top:1px solid var(--line);margin-top:clamp(48px,7vw,110px)}.project-nav__inner{gap:var(--gap);grid-template-columns:repeat(2,1fr);display:grid}.project-nav__link{transition:color var(--move) ease;gap:6px;padding-block:clamp(24px,3.4vw,48px);display:grid}.project-nav__link--next{text-align:right}.project-nav__link:hover .project-nav__title{color:var(--accent-text)}.project-nav__label{font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;color:var(--fg-faint);font-weight:400}.project-nav__title{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;transition:color var(--move) ease;font-size:clamp(1.1rem,1.8vw,1.6rem)}@media (max-width:680px){.project-nav__inner{grid-template-columns:1fr;gap:0}.project-nav__link--next{text-align:left;border-top:1px solid var(--line)}}.prose p{max-width:62ch;margin-bottom:1.3em}.prose .lead{margin-bottom:1.4em}.figure img{width:100%;height:auto}@media (min-width:901px){.figure{top:calc(var(--header-height) + 24px);position:sticky}}.services__item{border-top:1px solid var(--line);grid-template-columns:1fr 1.6fr;gap:24px clamp(24px,6vw,120px);padding-block:clamp(28px,4vw,56px);display:grid}.services__item:last-child{border-bottom:1px solid var(--line)}.services__head{align-items:baseline;gap:20px;display:flex}.services__head h2{font-size:clamp(1.6rem,2.6vw,2.4rem)}.services__body>p{max-width:54ch}.accordion details{border-bottom:1px solid var(--line)}.accordion details:first-child{border-top:1px solid var(--line)}.accordion summary{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;justify-content:space-between;gap:24px;padding-block:18px;font-size:1.25rem;list-style:none;display:flex}.accordion summary::-webkit-details-marker{display:none}.accordion summary:after{content:"+";color:var(--accent-text);transition:transform .25s}.accordion details[open] summary:after{transform:rotate(45deg)}.accordion details p{max-width:58ch;padding-bottom:22px}@media (max-width:900px){.services__item{grid-template-columns:1fr}}.contact-block{gap:14px;display:grid}.contact-block p{color:var(--fg)}.contact-block__title{font-family:var(--font-body);font-size:var(--label-size);letter-spacing:var(--label-track);color:var(--fg-faint);margin-top:12px;font-weight:400}.contact-block__title:first-child{margin-top:0}.lightbox{background:var(--bg-viewer);width:100%;max-width:none;height:100%;max-height:none;color:var(--fg);border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.lightbox:focus{outline:none}.lightbox::backdrop{background:0 0}.lightbox__stage{place-items:center;display:grid;position:absolute;inset:56px 72px 116px}.lightbox__image{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%;transition:opacity var(--move) ease}.lightbox__image.is-loading{opacity:.25}.lightbox__button{width:48px;height:48px;color:var(--fg);cursor:pointer;transition:color var(--move) ease;background:0 0;border:0;place-items:center;padding:0;font-size:1.6rem;line-height:1;display:grid;position:absolute}.lightbox__button:hover{color:var(--accent-text)}.lightbox__close{top:6px;right:10px}.lightbox__prev,.lightbox__next{top:50%;transform:translateY(-50%)}.lightbox__prev{left:10px}.lightbox__next{right:10px}.lightbox__bar{background:var(--bg-black);padding:14px 5%;position:absolute;inset:auto 0 0}.lightbox__carousel{align-items:center;gap:10px;display:flex}.lightbox__thumbs{scrollbar-width:none;flex:1;gap:8px;min-width:0;display:flex;overflow-x:auto}.lightbox__thumbs::-webkit-scrollbar{display:none}.lightbox__thumbs:before,.lightbox__thumbs:after{content:"";margin-inline:auto}.lightbox__scroll{background:var(--wash);width:40px;height:78px;color:var(--fg);cursor:pointer;transition:background var(--move) ease, opacity var(--move) ease;border:0;flex:none;place-items:center;padding:0;font-size:1.8rem;line-height:1;display:grid}.lightbox__scroll[hidden]{display:none}.lightbox__scroll:hover:not(:disabled){background:var(--wash-hover)}.lightbox__scroll:disabled{opacity:.25;cursor:default}.lightbox__counter{top:18px;left:var(--gutter);font-size:var(--label-size);letter-spacing:var(--label-track);color:var(--fg-muted);font-weight:400;position:absolute}.lightbox__thumb{background:var(--bg-raised);cursor:pointer;opacity:.55;width:104px;height:78px;transition:opacity var(--move) ease, border-color var(--move) ease;border:3px solid #0000;flex:none;padding:0}.lightbox__thumb:hover,.lightbox__thumb[aria-current=true]{opacity:1}.lightbox__thumb[aria-current=true]{border-color:var(--fg)}.lightbox__thumb img{object-fit:cover;width:100%;height:100%}@media (max-width:680px){.lightbox__stage{inset:56px 0 92px}.lightbox__bar{padding-block:10px}.lightbox__scroll{width:28px;height:54px}.lightbox__thumb{border-width:2px;width:72px;height:54px}.lightbox__prev,.lightbox__next{background:#00000059;top:calc(50% - 18px)}}.tour__stage{inset:60px var(--gutter) var(--gutter);background:var(--bg-black);position:absolute}.tour__stage iframe{border:0;width:100%;height:100%;display:block}@media (max-width:680px){.tour__stage{inset:56px 0 0}}html:has(.lightbox[open]){overflow:hidden}