@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./newsreader-vietnamese-opsz-normal-BjhtXyW2.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./newsreader-latin-ext-opsz-normal-BQn1nviT.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./newsreader-latin-opsz-normal-s-izfB6B.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(./newsreader-vietnamese-opsz-italic-DTr-ymY4.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(./newsreader-latin-ext-opsz-italic-CSPGnFdO.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(./newsreader-latin-opsz-italic-kJKFiXvB.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}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}:root{--font-serif:"Newsreader Variable", "Iowan Old Style", Georgia, serif;--font-sans:"Geist Variable", ui-sans-serif, system-ui, sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1.0625rem;--text-lg:clamp(1.125rem, 1.05rem + .35vw, 1.3125rem);--display-xs:clamp(1.5rem, 1.25rem + 1vw, 2.125rem);--display-s:clamp(1.875rem, 1.4rem + 2vw, 3rem);--display-l:clamp(2.75rem, 1.5rem + 5.4vw, 6.5rem);--display-xl:clamp(3rem, 1.2rem + 7.6vw, 9.5rem);--tracking-label:.14em;--ease-out:cubic-bezier(.16, 1, .3, 1);--gutter:clamp(16px, 3.2vw, 48px);--nav-h:72px;--bg:#f7f7f6;--bg-elev:#e9e9e7;--ink:#111112;--ink-2:#55555a;--ink-3:#87878c;--line:#1111121f;--line-strong:#11111247;--glass:#f7f7f6c7;--accent:#8e1c42;--on-accent:#f7f7f6;--spark:#b3264f;--particle:#111112;--particle-alpha:.8;--photo-gamma:1;--grain:.045;--ambient:.22;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0c0c0d;--bg-elev:#18181a;--ink:#ecebe8;--ink-2:#a3a19d;--ink-3:#6e6c69;--line:#ecebe81f;--line-strong:#ecebe847;--glass:#0c0c0db8;--spark:#d4466f;--particle:#e6e4e0;--particle-alpha:.86;--photo-gamma:.75;--grain:.07;--ambient:.32;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0c0c0d;--bg-elev:#18181a;--ink:#ecebe8;--ink-2:#a3a19d;--ink-3:#6e6c69;--line:#ecebe81f;--line-strong:#ecebe847;--glass:#0c0c0db8;--spark:#d4466f;--particle:#e6e4e0;--particle-alpha:.86;--photo-gamma:.75;--grain:.07;--ambient:.32;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@view-transition{navigation:auto}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--bg)}body{isolation:isolate;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-base);font-kerning:normal;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;margin:0;line-height:1.6;overflow-x:clip}body:before{content:"";z-index:-1;pointer-events:none;opacity:var(--grain);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:0;padding:0}h1,h2,h3,p,ul,ol,figure{margin:0}ul,ol{padding:0;list-style:none}em{font-style:italic}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:1px solid var(--ink);outline-offset:4px}main:focus{outline:none}.container{width:100%;max-width:1600px;padding-inline:var(--gutter);margin-inline:auto}.skip{z-index:40;background:var(--ink);color:var(--bg);transition:transform .3s var(--ease-out);padding:10px 18px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip:focus{transform:none}.webgl{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}main,.footer{z-index:1;position:relative}.icon{width:1.1em;height:1.1em;transition:transform .4s var(--ease-out);flex:none}.label{font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-2);font-weight:500;line-height:1.4}.num{font-variant-numeric:tabular-nums}.display{font-family:var(--font-serif);font-size:var(--display-l);letter-spacing:-.025em;text-wrap:balance;font-weight:300;line-height:1.04}.w{margin-bottom:-.08em;padding-bottom:.08em;display:inline-block}.btn{height:48px;font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;white-space:nowrap;transition:transform .25s var(--ease-out), background-color .3s, color .3s, border-color .3s;justify-content:center;align-items:center;gap:.8em;padding:0 24px;font-weight:500;display:inline-flex}.btn:active{transform:scale(.98)}.btn .icon{font-size:1.35em}.btn--ghost{border:1px solid var(--line-strong);background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.icon-btn{border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:40px;height:40px;transition:transform .25s var(--ease-out), border-color .3s;place-items:center;font-size:1.05rem;display:inline-grid}.icon-btn:active{transform:scale(.95)}@media (hover:hover){.btn--ghost:hover,.icon-btn:hover{border-color:var(--ink)}.btn:hover .icon{transform:translate(2px,-2px)}}.nav{z-index:30;height:var(--nav-h);padding-inline:var(--gutter);border-bottom:1px solid #0000;grid-template-columns:1fr auto 1fr;align-items:center;transition:background-color .4s,border-color .4s;display:grid;position:fixed;inset:0 0 auto}.nav.is-scrolled:not(.is-menu){border-bottom-color:var(--line);background:var(--glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.nav__menu{justify-self:start;align-items:center;gap:12px;padding-block:8px;display:inline-flex}.nav__menu .label{color:var(--ink)}.nav__menu-icon{font-size:1.15rem;display:inline-grid}.nav__brand{color:var(--ink);display:block}.nav__brand svg{stroke-width:2.6px;width:auto;height:42px;display:block}.js .nav__brand path{stroke-dasharray:1;stroke-dashoffset:1px}.is-ready .nav__brand path{animation:.55s cubic-bezier(.55,0,.35,1) forwards sign}.is-ready .nav__brand path:first-child{animation-delay:.35s}.is-ready .nav__brand path:nth-child(2){animation-delay:.49s}.is-ready .nav__brand path:nth-child(3){animation-delay:.63s}.is-ready .nav__brand path:nth-child(4){animation-delay:.77s}.is-ready .nav__brand path:nth-child(5){animation-delay:.91s}.is-ready .nav__brand path:nth-child(6){animation-delay:1.05s}.is-ready .nav__brand path:nth-child(7){animation-delay:1.19s}.is-ready .nav__brand path:nth-child(8){animation-delay:1.33s}.is-ready .nav__brand path:nth-child(9){animation-delay:1.47s}@keyframes sign{to{stroke-dashoffset:0}}.nav__actions{justify-self:end;align-items:center;gap:24px;display:flex}.nav__cta{color:var(--ink);padding-block:6px;position:relative}.nav__cta:after{content:"";transform-origin:0;height:1px;transition:transform .6s var(--ease-out);background:currentColor;position:absolute;bottom:0;left:0;right:0;transform:scaleX(.35)}@media (hover:hover){.nav__cta:hover:after{transform:scaleX(1)}}@media (width<=767px){.nav__cta{display:none}}@media (width<=559px){.nav__menu .label{display:none}}.menu{z-index:29;align-items:end;column-gap:var(--gutter);padding:calc(var(--nav-h) + 40px) var(--gutter) max(48px, env(safe-area-inset-bottom));background:var(--bg);opacity:0;visibility:hidden;transition:opacity .5s var(--ease-out), visibility 0s linear .5s;grid-template-columns:repeat(12,minmax(0,1fr));row-gap:48px;display:grid;position:fixed;inset:0;overflow-y:auto}.menu.is-open{opacity:1;visibility:visible;transition:opacity .5s var(--ease-out)}.menu__links{grid-column:1/span 7;justify-items:start;display:grid}.menu__links a{font-family:var(--font-serif);font-size:var(--display-l);letter-spacing:-.025em;color:var(--ink-3);opacity:0;transition:color .3s, transform .8s var(--ease-out), opacity .8s var(--ease-out);font-weight:300;line-height:1.06;transform:translateY(24px)}.menu.is-open .menu__links a{opacity:1;transition-delay:0s, calc(var(--i) * 60ms + .1s), calc(var(--i) * 60ms + .1s);transform:none}@media (hover:hover){.menu__links a:hover{color:var(--ink);font-style:italic}}.menu__aside{grid-column:9/span 4;justify-items:start;gap:14px;display:grid}.menu__more{gap:4px;margin-bottom:24px;display:grid}.menu__more a,.menu__email{font-family:var(--font-serif);font-size:var(--display-xs);color:var(--ink-2);font-weight:300;line-height:1.25;transition:color .3s}@media (hover:hover){.menu__more a:hover,.menu__email:hover{color:var(--ink)}}.menu__socials,.footer__links{flex-wrap:wrap;gap:8px 24px;display:flex}.footer__login{color:var(--ink-3);transition:color .3s}@media (hover:hover){.footer__login:hover{color:var(--ink)}}.menu__socials a,.footer__links a{font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-2);font-weight:500;transition:color .3s}@media (hover:hover){.menu__socials a:hover,.footer__links a:hover{color:var(--ink)}}@media (width<=767px){.menu__links,.menu__aside{grid-column:1/-1}}body.menu-open{overflow:hidden}.frame{aspect-ratio:4/5;position:relative;overflow:hidden}.frame:after{content:"";border:1px solid var(--line);pointer-events:none;position:absolute;inset:0}.frame img{object-fit:cover;opacity:0;filter:blur(14px);width:100%;height:100%;transition:opacity 1s var(--ease-out), filter 1.3s var(--ease-out), transform 1.6s var(--ease-out);position:absolute;inset:0;transform:scale(1.03)}.frame img.is-on,.no-webgl .frame img.is-current{opacity:1;filter:none;transform:none}.ambient{z-index:-2;opacity:0;pointer-events:none;transition:opacity 1.4s var(--ease-out);position:fixed;inset:-12%}.ambient.is-on{opacity:var(--ambient)}.ambient img{object-fit:cover;filter:blur(70px)saturate(1.15);opacity:0;width:100%;height:100%;transition:opacity 1.4s var(--ease-out);position:absolute;inset:0}.ambient img.is-on{opacity:1}.hero{min-height:100svh;padding-top:calc(var(--nav-h) + clamp(12px, 3vh, 36px));grid-template-rows:auto minmax(0,1fr) auto;row-gap:clamp(18px,3.2vh,40px);padding-bottom:clamp(18px,3vh,32px);display:grid}.hero__head{text-align:center;justify-items:center;gap:16px;display:grid}.hero__title{max-width:20ch;font-family:var(--font-serif);font-size:var(--display-l);letter-spacing:-.03em;text-wrap:balance;font-weight:300;line-height:1.02}.hero__stage{place-items:center;min-height:0;display:grid}.hero__photos{--photos-gap:clamp(10px, 1.4vw, 24px);gap:var(--photos-gap);height:min(100%, 62svh, (min(100vw, 1600px) - 2 * var(--gutter) - 2 * var(--photos-gap)) / 2.4);min-height:200px;display:flex}.hero__photos .frame{flex:none;height:100%}.hero__photos{position:relative}.hero__dots{display:none}@keyframes hero-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.hero__foot{justify-content:space-between;align-items:center;gap:20px;display:flex}.hero__lead{max-width:38ch;color:var(--ink-2)}.js:not(.is-ready) .nav,.js:not(.is-ready) .hero__head,.js:not(.is-ready) .hero__foot,.js:not(.is-ready) .page-hero{opacity:0}@media (width<=767px){.hero__photos{height:min(100%, 62svh, (100vw - 2 * var(--gutter)) / .8);min-height:240px}.hero__photos .frame:not(.is-shown){display:none}.hero__photos .frame:after{border-bottom:0}.hero__dots{z-index:1;gap:4px;display:flex;position:absolute;top:calc(100% - 11px);left:0;right:0}.hero__dots button{cursor:pointer;background:0 0;border:0;flex:1;height:24px;padding:11px 0}.hero__dots span{background:var(--line-strong);height:2px;display:block;position:relative;overflow:hidden}.hero__dots span:after{content:"";background:var(--ink);transform-origin:0;position:absolute;inset:0;transform:scaleX(0)}.hero__dots .is-current span:after{transform:scaleX(1)}.hero__dots .is-running span:after{animation:hero-fill var(--slide,6s) linear forwards}.hero__foot{text-align:center;flex-direction:column;gap:14px}}.story{height:calc(100svh + var(--steps,3) * 90svh);position:relative}.story__sticky{height:100svh;padding-top:var(--nav-h);align-items:center;display:grid;position:sticky;top:0;overflow:hidden}.story__inner{align-items:center;column-gap:var(--gutter);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.story__frame{grid-column:1/span 6;justify-self:center;height:min(68svh,52vw)}.story__text{grid-column:8/span 5;gap:28px;display:grid}.chapters{display:grid}.chapter{opacity:0;visibility:hidden;filter:blur(8px);transition:opacity .6s var(--ease-out), filter .8s var(--ease-out), transform .8s var(--ease-out), visibility 0s linear .6s;grid-area:1/1;align-content:start;gap:18px;display:grid;transform:translateY(12px)}.chapter.is-active{opacity:1;visibility:visible;filter:none;transition-delay:.1s,.1s,.1s,0s;transform:none}.chapter__title{font-family:var(--font-serif);font-size:var(--display-l);letter-spacing:-.03em;font-weight:300;line-height:1}.chapter__text{max-width:34ch;font-size:var(--text-lg);color:var(--ink-2);text-wrap:pretty}.chapter-index{flex-wrap:wrap;gap:8px 22px;display:flex}.chapter-index button{font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid #0000;padding-block:6px;font-weight:500;transition:color .3s,border-color .3s}.chapter-index button[aria-current=step]{color:var(--ink);border-color:var(--ink)}.story__progress{right:var(--gutter);bottom:24px;left:var(--gutter);background:var(--line);height:1px;position:absolute}.story__progress span{background:var(--ink);transform-origin:0;height:100%;display:block;transform:scaleX(0)}@media (width<=767px){.story__sticky{padding-top:calc(var(--nav-h) + 8px);align-items:start}.story__inner{row-gap:24px}.story__frame,.story__text{grid-column:1/-1}.story__frame{height:46svh}.story__text{gap:18px}.chapter{gap:10px}}.section{padding-block:clamp(104px,13vw,200px);position:relative}.media{background:var(--bg-elev);display:block;position:relative;overflow:hidden}.media img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity 1s var(--ease-out), transform 1.4s var(--ease-out);position:absolute;inset:0}.media--parallax img{height:120%;top:-10%}.media img.is-loaded{opacity:1}.media:before{content:"";background:linear-gradient(100deg, transparent 30%, var(--line) 50%, transparent 70%);background-size:220% 100%;animation:1.6s linear infinite sheen;position:absolute;inset:0}.media.is-loaded:before{display:none}@keyframes sheen{0%{background-position:120% 0}to{background-position:-120% 0}}.portfolio__head{text-align:center;justify-items:center;gap:32px;margin-bottom:clamp(48px,6vw,88px);display:grid}.tabs{flex-wrap:wrap;justify-content:center;gap:8px 28px;display:flex}.tab{font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid #0000;padding-block:6px;font-weight:500;transition:color .3s,border-color .3s}.tab[aria-pressed=true]{color:var(--ink);border-color:var(--ink)}@media (hover:hover){.tab:hover{color:var(--ink)}}.masonry{align-items:flex-start;gap:clamp(12px,1.4vw,24px);display:flex}.masonry__col{flex:1;gap:clamp(12px,1.4vw,24px);min-width:0;display:grid}.shot{min-width:0}.shot__btn{cursor:zoom-in;width:100%;display:block}.shot .media{aspect-ratio:var(--ratio)}@media (hover:hover){.shot__btn:hover img{transform:scale(1.03)}}.portfolio__empty{text-align:center;color:var(--ink-2);padding-block:40px}.portfolio__more{border-top:1px solid var(--line);color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-top:clamp(40px,5vw,72px);padding-top:28px;display:flex}.services__grid{align-items:start;column-gap:var(--gutter);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.services__list{grid-column:1/span 6;gap:clamp(40px,5vw,72px);display:grid}.service-list{border-bottom:1px solid var(--line)}.service{border-top:1px solid var(--line)}.service__btn{text-align:left;grid-template-columns:3.5rem minmax(0,1fr) auto;align-items:center;width:100%;padding-block:clamp(18px,2vw,26px);display:grid}.service__num{font-size:var(--text-xs);letter-spacing:var(--tracking-label);color:var(--ink-3);font-weight:500}.service__title{font-family:var(--font-serif);font-size:var(--display-s);letter-spacing:-.02em;color:var(--ink-3);transition:color .4s var(--ease-out), transform .7s var(--ease-out);font-weight:300;line-height:1.1}.service.is-active .service__title{color:var(--ink);font-style:italic;transform:translate(.15em)}.service__icon{transition:transform .5s var(--ease-out);font-size:1.1rem}.service.is-active .service__icon{transform:rotate(45deg)}.service__panel{transition:grid-template-rows .6s var(--ease-out);grid-template-rows:0fr;display:grid}.service.is-active .service__panel{grid-template-rows:1fr}.service__panel>div{overflow:hidden}.service__panel p{max-width:42ch;color:var(--ink-2);padding:0 0 26px 3.5rem}.service__panel .media{display:none}.services__visual{top:calc(var(--nav-h) + 24px);width:min(100%, calc((100svh - var(--nav-h) - 48px) * .8));aspect-ratio:4/5;grid-column:8/span 5;justify-self:end;display:grid;position:sticky}.services__visual .media{opacity:0;transition:opacity .8s var(--ease-out);grid-area:1/1}.services__visual .media img{transform:scale(1.06)}.services__visual .media.is-active{opacity:1}.services__visual .media.is-active img{transform:none}@media (hover:hover){.service:not(.is-active) .service__btn:hover .service__title{color:var(--ink-2)}}@media (width<=767px){.services__list{grid-column:1/-1}.services__visual{display:none}.service__btn{grid-template-columns:2.5rem minmax(0,1fr) auto}.service__panel p{padding-left:0}.service__panel .media{aspect-ratio:4/3;margin-bottom:16px;display:block}}.extras__head{justify-items:start;gap:20px;margin-bottom:clamp(40px,5vw,72px);display:grid}.extras__head p{max-width:44ch;font-size:var(--text-lg);color:var(--ink-2)}.modules{border-bottom:1px solid var(--line)}.module{align-items:start;column-gap:var(--gutter);border-top:1px solid var(--line);grid-template-columns:repeat(12,minmax(0,1fr));row-gap:28px;padding-block:clamp(32px,4vw,56px);display:grid}.module__text{grid-column:1/span 4;justify-items:start;gap:18px;display:grid}.module__title{font-family:var(--font-serif);font-size:var(--display-s);letter-spacing:-.02em;font-weight:300;line-height:1.1}.module__text p{max-width:36ch;color:var(--ink-2)}.module__images{grid-column:6/span 7;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,1vw,16px);display:grid}.module__images .media{aspect-ratio:4/5}.module__list{grid-column:6/span 7;display:grid}.module__list li{gap:var(--gutter);border-top:1px solid var(--line);color:var(--ink-2);grid-template-columns:minmax(0,15rem) minmax(0,1fr);padding-block:16px;display:grid}.module__list li:first-child{border-top:0;padding-top:0}.module__item{font-family:var(--font-serif);font-size:var(--text-lg);color:var(--ink)}@media (width<=767px){.module__text,.module__images,.module__list{grid-column:1/-1}.module__list li{grid-template-columns:minmax(0,1fr);gap:4px}}.about__grid{align-items:center;column-gap:var(--gutter);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.about__photo{grid-column:1/span 5}.about__frame{aspect-ratio:4/5}.about__text{grid-column:7/span 6;gap:24px;display:grid}.about__text h2{margin-bottom:8px}.about__lead{max-width:24ch;font-family:var(--font-serif);font-size:var(--display-xs);letter-spacing:-.015em;text-wrap:balance;font-weight:300;line-height:1.25}.about__text p:not(.about__lead){max-width:46ch;color:var(--ink-2);text-wrap:pretty}@media (width<=767px){.about__grid{grid-template-columns:minmax(0,1fr);row-gap:40px}.about__photo,.about__text{grid-column:1}.about__photo{width:82%}}.page-hero{min-height:72svh;padding-top:calc(var(--nav-h) + 48px);align-content:end;justify-items:start;gap:22px;padding-bottom:clamp(32px,5vw,64px);display:grid}.back{color:var(--ink);align-items:center;gap:10px;margin-bottom:auto;padding-block:6px;display:inline-flex}.back .icon{font-size:1.25em}@media (hover:hover){.back:hover .icon{transform:translate(-3px)}}.page-title{font-family:var(--font-serif);font-size:var(--display-xl);letter-spacing:-.035em;text-wrap:balance;font-weight:300;line-height:.98}.page-lead{max-width:40ch;font-size:var(--text-lg);color:var(--ink-2);text-wrap:pretty}.section.page-items{padding-top:clamp(40px,5vw,72px)}.cases{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(56px,8vw,128px) clamp(24px,6vw,120px);display:grid}.case:nth-child(2n):has(.case__open){margin-top:clamp(0px,12vw,200px)}.case{align-content:start;gap:14px;display:grid}.case__media{aspect-ratio:4/5;margin-bottom:8px}.case__meta{gap:20px;display:flex}.case__title{font-family:var(--font-serif);font-size:var(--display-xs);letter-spacing:-.015em;font-weight:300;line-height:1.2}.case__text{max-width:44ch;color:var(--ink-2)}.case__open,.item-shots__btn{cursor:zoom-in;width:100%;display:block}.item-links{flex-wrap:wrap;gap:10px 24px;display:flex}.item-links a{border-bottom:1px solid var(--line-strong);color:var(--ink);align-items:center;gap:6px;padding-bottom:3px;transition:border-color .3s;display:inline-flex}.item-shots{grid-template-columns:repeat(auto-fill,minmax(min(140px,28%),1fr));gap:8px;margin-top:6px;display:grid}.item-shots .media{aspect-ratio:4/3}@media (hover:hover){.item-links a:hover{border-color:var(--ink)}.item-shots__btn:hover img,.case__open:hover img{transform:scale(1.03)}}@media (width<=767px){.cases{grid-template-columns:minmax(0,1fr)}.case:nth-child(2n){margin-top:0}}.flows{border-bottom:1px solid var(--line)}.flow{column-gap:var(--gutter);border-top:1px solid var(--line);grid-template-columns:repeat(12,minmax(0,1fr));row-gap:28px;padding-block:clamp(32px,4vw,56px);display:grid}.flow__head{grid-column:1/span 4;align-content:start;gap:14px;display:grid}.flow__title{font-family:var(--font-serif);font-size:var(--display-xs);letter-spacing:-.015em;font-weight:300;line-height:1.2}.flow__head p:not(.label){color:var(--ink-2)}.flow__steps{gap:var(--gutter);grid-column:6/span 7;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.flow .item-shots{grid-column:1/-1;grid-template-columns:repeat(auto-fill,minmax(min(220px,45%),1fr))}.flow__steps li{border-top:1px solid var(--line-strong);align-content:start;gap:10px;padding-top:16px;display:grid}@media (width<=767px){.flow__head,.flow__steps{grid-column:1/-1}.flow__steps{grid-template-columns:minmax(0,1fr)}}.others .container{gap:24px;display:grid}.others__list{border-bottom:1px solid var(--line);display:grid}.others__list a{border-top:1px solid var(--line);font-family:var(--font-serif);font-size:var(--display-s);letter-spacing:-.02em;color:var(--ink-2);justify-content:space-between;align-items:center;gap:16px;padding-block:18px;font-weight:300;line-height:1.15;transition:color .3s;display:flex}.others__list .icon{font-size:.6em}@media (hover:hover){.others__list a:hover{color:var(--ink);font-style:italic}.others__list a:hover .icon{transform:translate(3px,-3px)}}.contact{text-align:center;align-items:center;min-height:100svh;display:grid}.contact__inner{justify-items:center;gap:28px;display:grid}.contact__title{font-family:var(--font-serif);font-size:var(--display-xl);letter-spacing:-.035em;text-wrap:balance;font-weight:300;line-height:1}.contact__email{max-width:100%;font-family:var(--font-serif);font-size:var(--display-s);overflow-wrap:anywhere;padding-bottom:.12em;font-weight:300;position:relative}.contact__email:before,.contact__email:after{content:"";background:var(--line-strong);height:1px;position:absolute;bottom:0;left:0;right:0}.contact__email:after{background:var(--accent);transform-origin:100%;transition:transform .8s var(--ease-out);transform:scaleX(0)}@media (hover:hover){.contact__email:hover:after{transform-origin:0;transform:scaleX(1)}}.contact__actions,.contact__socials{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.footer{padding-block:28px max(28px, env(safe-area-inset-bottom));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;display:flex}.footer:before{content:"";top:0;right:var(--gutter);left:var(--gutter);border-top:1px solid var(--line);position:absolute}.footer__top{align-items:center;gap:8px;padding-block:8px;display:inline-flex}@media (hover:hover){.footer__top:hover{color:var(--ink)}.footer__top:hover .icon{transform:translateY(-3px)}}.lightbox{width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--ink);background:0 0;border:0;padding:0}.lightbox[open]{place-items:center;display:grid}.lightbox::backdrop{background:color-mix(in srgb, var(--bg) 95%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.lightbox [hidden]{display:none}.lightbox__img{object-fit:contain;opacity:0;max-width:min(92vw,1600px);max-height:84dvh;transition:opacity .6s var(--ease-out), transform .8s var(--ease-out);transform:scale(.98)}.lightbox__img.is-loaded{opacity:1;transform:none}.lightbox__close{position:fixed;top:16px;right:16px}.lightbox__prev,.lightbox__next{position:fixed;top:50%;translate:0 -50%}.lightbox__prev{left:16px}.lightbox__next{right:16px}@media (width<=767px){.lightbox__prev,.lightbox__next{top:auto;bottom:max(20px, env(safe-area-inset-bottom));translate:none}}.is-theme-switch::view-transition-old(root){mix-blend-mode:normal;animation:none}.is-theme-switch::view-transition-new(root){mix-blend-mode:normal;animation:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}
