@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-cyrillic-ext-wght-normal.okcGN4Nq.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:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-cyrillic-wght-normal.BS41q_Tv.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-greek-ext-wght-normal.DQgQPNk4.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-greek-wght-normal.sS1B39LI.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-vietnamese-wght-normal.TKKdAiBA.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:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-latin-ext-wght-normal.B4u9PlvR.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:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-latin-wght-normal.DX-nOvPD.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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/cormorant-garamond-cyrillic-ext-400-normal.W3Dto7M0.woff2)format("woff2"),url(/_astro/cormorant-garamond-cyrillic-ext-400-normal.DLdKLAvx.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/cormorant-garamond-cyrillic-400-normal.DD2KOZkl.woff2)format("woff2"),url(/_astro/cormorant-garamond-cyrillic-400-normal.CVFrM67f.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/cormorant-garamond-vietnamese-400-normal.6K-YXo6g.woff2)format("woff2"),url(/_astro/cormorant-garamond-vietnamese-400-normal.4uxlocMh.woff)format("woff");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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/cormorant-garamond-latin-ext-400-normal.Drx2k2n9.woff2)format("woff2"),url(/_astro/cormorant-garamond-latin-ext-400-normal.uvC0WHQr.woff)format("woff");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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/cormorant-garamond-latin-400-normal.B-1hWBU7.woff2)format("woff2"),url(/_astro/cormorant-garamond-latin-400-normal.B7YtguxJ.woff)format("woff");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:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/cormorant-garamond-cyrillic-ext-400-italic.BEGvmv_3.woff2)format("woff2"),url(/_astro/cormorant-garamond-cyrillic-ext-400-italic.C_Uk1MUY.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/cormorant-garamond-cyrillic-400-italic.D3GtrbRZ.woff2)format("woff2"),url(/_astro/cormorant-garamond-cyrillic-400-italic.AH1vqu4S.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/cormorant-garamond-vietnamese-400-italic.BoXDRTEW.woff2)format("woff2"),url(/_astro/cormorant-garamond-vietnamese-400-italic.CJpMwFnN.woff)format("woff");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:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/cormorant-garamond-latin-ext-400-italic.BdEzgT7i.woff2)format("woff2"),url(/_astro/cormorant-garamond-latin-ext-400-italic.CQvLaSWn.woff)format("woff");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:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/cormorant-garamond-latin-400-italic.Dc_OZ8oc.woff2)format("woff2"),url(/_astro/cormorant-garamond-latin-400-italic.BLh7T8o8.woff)format("woff");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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/cormorant-garamond-cyrillic-ext-500-normal.Yta7XZ9C.woff2)format("woff2"),url(/_astro/cormorant-garamond-cyrillic-ext-500-normal.lsPpqi9g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/cormorant-garamond-cyrillic-500-normal.CyAY5ZLS.woff2)format("woff2"),url(/_astro/cormorant-garamond-cyrillic-500-normal.DkJXBcIH.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/cormorant-garamond-vietnamese-500-normal.BZGLGj12.woff2)format("woff2"),url(/_astro/cormorant-garamond-vietnamese-500-normal.DqXqCC0q.woff)format("woff");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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/cormorant-garamond-latin-ext-500-normal.CH1kM7og.woff2)format("woff2"),url(/_astro/cormorant-garamond-latin-ext-500-normal.DYeaGGzO.woff)format("woff");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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/cormorant-garamond-latin-500-normal.BsRWmXhO.woff2)format("woff2"),url(/_astro/cormorant-garamond-latin-500-normal.zIXX3Q-H.woff)format("woff");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:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/_astro/cormorant-garamond-cyrillic-ext-500-italic.ClXnudBg.woff2)format("woff2"),url(/_astro/cormorant-garamond-cyrillic-ext-500-italic.DakTmaFY.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/_astro/cormorant-garamond-cyrillic-500-italic.DVnfXoMy.woff2)format("woff2"),url(/_astro/cormorant-garamond-cyrillic-500-italic.C9gO-8KC.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/_astro/cormorant-garamond-vietnamese-500-italic.D3igDnAQ.woff2)format("woff2"),url(/_astro/cormorant-garamond-vietnamese-500-italic.C-296ow0.woff)format("woff");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:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/_astro/cormorant-garamond-latin-ext-500-italic.CE7zdTnu.woff2)format("woff2"),url(/_astro/cormorant-garamond-latin-ext-500-italic.CalKM9tT.woff)format("woff");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:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/_astro/cormorant-garamond-latin-500-italic.Y14P-dkT.woff2)format("woff2"),url(/_astro/cormorant-garamond-latin-500-italic.DhNIfkTX.woff)format("woff");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:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/caveat-cyrillic-ext-wght-normal.DiMfzA-V.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:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/caveat-cyrillic-wght-normal.D5lnP6kL.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/caveat-latin-ext-wght-normal.Byk3UhVp.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:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/caveat-latin-wght-normal.C1hSzPvX.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:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/outfit-latin-ext-wght-normal.DdQaqQDo.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:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/outfit-latin-wght-normal.Bc-8i84L.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}:root{--c-ink:#212121;--c-ink-2:#424242;--c-ink-3:#6b6b6b;--c-white:#fff;--c-cream:#faf6f4;--c-pink:#efded9;--c-pink-deep:#e7cfc9;--c-muted:#d6d6d6;--c-projects:#e9e8e7;--f-sans:"Inter Tight Variable", "Inter Tight", "Helvetica Neue", Arial, system-ui, sans-serif;--f-serif:"Cormorant Garamond", "Times New Roman", Georgia, serif;--f-hand:"Caveat Variable", "Caveat", "Segoe Print", cursive;--fs-body:max(13px, 1vw);--fs-nav:max(14px, 1.2vw);--fs-nav-hover:max(15px, 1.3vw);--fs-btn:max(13px, 1.05vw);--fs-tiny:max(9px, .7vw);--fs-small:max(10px, .8vw);--fs-label:max(13px, 1.125vw);--fs-caption:max(14px, 1.4vw);--fs-h2:max(34px, 4vw);--fs-menu:max(44px, 6.25vw);--fs-display:max(46px, 7.9vw);--gutter:max(16px, 2vw);--edge:max(14px, 1.53vw);--circle:max(44px, 3.68vw);--btn-py:max(8px, .66vw);--btn-px:max(16px, 1.5vw);--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.76, 0, .24, 1);--ease-expo:cubic-bezier(.16, 1, .3, 1);--z-gl:1;--z-main:10;--z-chrome:50;--z-header:80;--z-grain:90;--z-intro:300;--z-cursor:400}@media (width<=767px){:root{--fs-body:14px;--fs-nav:15px;--fs-btn:14px;--fs-tiny:10px;--fs-small:11px;--fs-label:14px;--fs-caption:16px;--fs-h2:38px;--fs-menu:15vw;--fs-display:13vw;--gutter:18px;--edge:16px;--circle:46px;--btn-py:10px;--btn-px:18px}}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--c-pink);scrollbar-width:none}html::-webkit-scrollbar{display:none}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}body{font-family:var(--f-sans);font-size:var(--fs-body);color:var(--c-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:0 0;min-height:100vh;line-height:1.5;overflow-x:hidden}body.is-locked{height:100vh;overflow:hidden}img,svg,video,canvas{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}h1,h2,h3,h4,p,ul,ol,figure{font-weight:inherit;font-size:inherit;margin:0;padding:0}ul,ol{list-style:none}::selection{background:var(--c-ink);color:var(--c-cream)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip{z-index:1000;background:var(--c-ink);color:var(--c-cream);border-radius:99px;padding:8px 14px;position:fixed;top:8px;left:8px;transform:translateY(-200%)}.skip:focus-visible{transform:none}:focus-visible{outline-offset:3px;outline:1.5px solid}.serif{font-family:var(--f-serif)}.italic{font-style:italic}.split-line-inner-mask{margin:0 -.08em -.18em;padding:0 .08em .18em}.split-line{margin-bottom:-.08em;padding-bottom:.08em;display:block;overflow:hidden}.split-line>span{will-change:transform;display:inline-block}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.gl{z-index:var(--z-gl);pointer-events:none;user-select:none;will-change:transform;position:fixed;inset:0}.gl canvas{width:100%;height:100%}.grain{z-index:var(--z-grain);pointer-events:none;opacity:.07;mix-blend-mode:multiply;background-size:180px 180px;animation:.6s steps(3,end) infinite grain;position:fixed;inset:-50%}html.no-gl .grain{opacity:.1}@keyframes grain{0%{transform:translate(0)}33%{transform:translate(-7%,4%)}66%{transform:translate(5%,-6%)}to{transform:translate(-3%,8%)}}.fallback-bg{z-index:0;pointer-events:none;display:none;position:fixed;inset:0}html.no-gl .fallback-bg{background:radial-gradient(120% 95% at 50% 22%,#fbeadf 0%,#f2d3ce 45%,#cfc0e8 100%);transition:background .6s;display:block}html.no-gl body[data-page=projects] .fallback-bg,html.no-gl body[data-page=case] .fallback-bg{background:radial-gradient(120% 95% at 50% 10%,#f9e6e2 0%,#f1dbe0 45%,#d5c8ec 100%)}.app{z-index:var(--z-main);position:relative}.page{min-height:100vh;position:relative}.header{z-index:var(--z-header);padding:max(10px, .97vw) var(--gutter) 0;height:calc(var(--circle) + max(10px, .97vw));pointer-events:none;color:var(--c-ink);transition:color .6s var(--ease-out);justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.header>*{pointer-events:auto}[data-theme=dark] .header,[data-theme=dark] .bottom{color:var(--c-white)}.logo{align-items:center;font-size:max(26px,2.3vw);display:inline-flex}.logo__mark{font-family:"Outfit Variable", var(--f-sans);letter-spacing:-.012em;white-space:nowrap;font-weight:360;line-height:1.05;display:block}.logo__mark svg{transform:translateY(.1em)}.header__left{align-items:center;gap:max(14px,1.25vw);display:flex}.nav{font-size:var(--fs-nav);gap:max(16px,2.08vw);line-height:1.1;display:flex}.lang{font-size:var(--fs-nav);line-height:1.1;position:relative}.lang__current{color:inherit;letter-spacing:.03em;transition:background-color .3s var(--ease-out);border-radius:999px;align-items:center;padding:.32em .72em .36em;font-size:.86em;line-height:1.1;display:inline-flex;box-shadow:inset 0 0 0 1px}.lang__current:hover,.lang.is-open .lang__current{background:color-mix(in srgb, currentColor 12%, transparent)}.lang__list{background:var(--c-white);min-width:max(150px,11vw);color:var(--c-ink);opacity:0;visibility:hidden;transform-origin:0 0;transition:opacity .3s var(--ease-out), transform .45s var(--ease-out), visibility 0s linear .3s;border-radius:14px;padding:6px;position:absolute;top:calc(100% + 8px);left:0;transform:translateY(-6px);box-shadow:0 10px 30px #2121211f}.lang.is-open .lang__list{opacity:1;visibility:visible;transition:opacity .3s var(--ease-out), transform .45s var(--ease-out), visibility 0s;transform:none}.lang__option{border-radius:9px;align-items:baseline;gap:.7em;padding:.6em .75em;transition:background-color .25s;display:flex}.lang__option:hover,.lang__option:focus-visible{background:var(--c-pink);outline:none}.lang__code{letter-spacing:.04em;min-width:1.6em;font-size:.8em;font-weight:500}.lang__option.is-current{color:var(--c-ink-3)}.lang__option.is-current .lang__name:after{content:"";vertical-align:.15em;background:currentColor;border-radius:50%;width:.34em;height:.34em;margin-left:.5em;display:inline-block}.roll{white-space:nowrap;margin-bottom:-.12em;padding-bottom:.12em;display:inline-flex;position:relative;overflow:hidden}.roll__base,.roll__hover{display:inline-flex}.roll__hover{font-family:var(--f-serif);font-size:1.1em;font-style:italic;line-height:.95;position:absolute;top:0;left:0}.roll__char{white-space:pre;transition:transform .55s var(--ease-out);transition-delay:calc(var(--i,0) * 18ms);display:inline-block}.roll__hover .roll__char{transform:translateY(115%)}.roll:hover .roll__base .roll__char,.roll:focus-visible .roll__base .roll__char,a:hover>.roll .roll__base .roll__char{transform:translateY(-115%)}.roll:hover .roll__hover .roll__char,.roll:focus-visible .roll__hover .roll__char,a:hover>.roll .roll__hover .roll__char{transform:translateY(0)}.nav__item.is-current .roll__base{opacity:.5}.btn{--btn-bg:var(--c-white);--btn-fg:var(--c-ink);--btn-fill:var(--c-ink);--btn-fill-fg:var(--c-white);--btn-border:transparent;padding:var(--btn-py) var(--btn-px);font-size:var(--fs-btn);white-space:nowrap;color:var(--btn-fg);background:var(--btn-bg);box-shadow:inset 0 0 0 1px var(--btn-border);isolation:isolate;transition:color .45s var(--ease-out), box-shadow .45s var(--ease-out);border-radius:999px;justify-content:center;align-items:center;line-height:1.1;display:inline-flex;position:relative;overflow:hidden}.btn--border-light{--btn-bg:transparent;--btn-fg:var(--c-white);--btn-border:#fffffff2;--btn-fill:var(--c-white);--btn-fill-fg:var(--c-ink)}.btn--border-dark{--btn-bg:transparent;--btn-fg:var(--c-ink);--btn-border:var(--c-ink);--btn-fill:var(--c-ink);--btn-fill-fg:var(--c-white)}.btn--dark{--btn-bg:var(--c-ink);--btn-fg:var(--c-white);--btn-fill:var(--c-white);--btn-fill-fg:var(--c-ink)}.btn.is-selected{--btn-bg:var(--c-white);--btn-fg:var(--c-ink);--btn-border:transparent}.btn__fill{left:var(--x,50%);top:var(--y,50%);aspect-ratio:1;background:var(--btn-fill);width:250%;transition:transform .6s var(--ease-out);z-index:-1;pointer-events:none;border-radius:50%;position:absolute;transform:translate(-50%,-50%)scale(0)}.btn__label{align-items:center;gap:max(8px,.62vw);display:inline-flex;position:relative;overflow:hidden}.btn__text{transition:transform .55s var(--ease-out);display:inline-block;position:relative}.btn__text:after{content:attr(data-text);position:absolute;top:115%;left:0}.btn__icon{width:max(8px,.56vw);height:max(8px,.56vw);transition:transform .55s var(--ease-out)}@media (hover:hover){.btn:hover{color:var(--btn-fill-fg)}.btn:hover .btn__fill{transform:translate(-50%,-50%)scale(1)}.btn:hover .btn__text{transform:translateY(-115%)}.btn:hover .btn__icon{transform:rotate(-45deg)}}.bottom{--social:max(34px, 2.5vw);--sound-glyph:calc(var(--social) * .78);z-index:var(--z-chrome);height:0;color:var(--c-ink);position:fixed;bottom:0;left:0;right:0}.bottom__left{left:calc(var(--gutter) - (var(--social) - var(--sound-glyph)) / 2);bottom:calc(var(--edge) + (var(--circle) - var(--social)) / 2);align-items:center;gap:max(8px,.76vw);display:flex;position:absolute}.sound-btn{--line:calc(var(--sound-glyph) * .072);height:var(--social);padding:0 calc((var(--social) - var(--sound-glyph)) / 2);transform-origin:calc(var(--social) / 2) 50%;transition:transform .45s var(--ease-out);border-radius:999px;place-items:center;display:grid}.sound-btn:hover{transform:scale(1.06)}.sound-btn__frame{width:var(--sound-glyph);height:var(--sound-glyph);box-shadow:inset 0 0 0 var(--line) currentColor;transition:width .7s var(--ease-expo);border-radius:999px;display:block;position:relative;overflow:hidden}.is-sound-on .sound-btn__frame{width:calc(var(--sound-glyph) * 3)}.sound-btn__note{left:calc(var(--sound-glyph) / 2);width:calc(var(--sound-glyph) * .64);height:calc(var(--sound-glyph) * .64);transition:opacity .3s var(--ease-out) .25s, transform .5s var(--ease-expo) .25s;position:absolute;top:50%;transform:translate(-50%,-50%)}.is-sound-on .sound-btn__note{opacity:0;transition:opacity .15s var(--ease-out), transform .25s var(--ease-out);transform:translate(-50%,-50%)scale(.5)}.sound-btn__bars{top:0;bottom:0;left:calc(var(--sound-glyph) * .3);width:calc(var(--sound-glyph) * 2.4);opacity:0;transition:opacity .2s var(--ease-out);justify-content:space-between;align-items:center;display:flex;position:absolute}.is-sound-on .sound-btn__bars{opacity:1;transition-delay:.1s}.sound-btn__bars i{width:var(--line);height:calc(var(--sound-glyph) * .56);background:currentColor;border-radius:999px;transform:scaleY(.15)}.socials{right:calc(var(--gutter) - .22 * var(--social));bottom:calc(var(--edge) + (var(--circle) - var(--social)) / 2);align-items:center;gap:max(2px,.2vw);display:flex;position:absolute}.socials__link{width:var(--social);height:var(--social);color:inherit;transition:background-color .35s var(--ease-out), color .35s var(--ease-out), transform .45s var(--ease-out);border-radius:50%;place-items:center;display:grid}.socials__link svg{width:56%;height:56%}.socials__link:hover,.socials__link:focus-visible{background:var(--c-white);color:var(--c-ink);outline:none;transform:scale(1.06)}[data-page=home] :is(.socials,.bottom__left),[data-page=projects] :is(.socials,.bottom__left),[data-page=contact] :is(.socials,.bottom__left){color:var(--c-white)}.cursor{z-index:var(--z-cursor);pointer-events:none;opacity:0;width:0;height:0;transition:opacity .4s;position:fixed;top:0;left:0}.has-cursor .cursor{opacity:1}.cursor__ring{border:1px solid var(--c-ink);width:max(34px,3vw);height:max(34px,3vw);transition:transform .45s var(--ease-out), border-color .4s, opacity .3s, background-color .3s;border-radius:50%;margin:calc(max(34px,3vw)/-2) 0 0 calc(max(34px,3vw)/-2);position:absolute;top:0;left:0}[data-theme=dark] .cursor__ring,.cursor.is-light .cursor__ring{border-color:var(--c-white)}.cursor.is-hover .cursor__ring{background:var(--c-ink);transform:scale(.35)}[data-theme=dark] .cursor.is-hover .cursor__ring{background:var(--c-white)}.cursor.is-down .cursor__ring{transform:scale(.8)}.cursor__hand{opacity:0;width:max(34px,2.6vw);height:max(34px,2.6vw);color:var(--c-white);transition:opacity .3s, transform .4s var(--ease-out);margin:-50% 0 0 -50%;position:absolute;top:0;left:0;transform:translate(-50%,-50%)scale(.6)}.cursor__hand svg{width:100%;height:100%}.cursor__hand .hand-closed{display:none}.cursor.is-drag .cursor__ring{opacity:0}.cursor.is-drag .cursor__hand{opacity:1;transform:translate(-50%,-50%)scale(1)}.cursor.is-drag.is-down .hand-open{display:none}.cursor.is-drag.is-down .hand-closed{display:block}.has-cursor,.has-cursor *{cursor:none!important}.intro{z-index:var(--z-intro);background:var(--c-ink);color:var(--c-ink-2);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.intro.is-done{display:none}.intro__progress{background:var(--c-pink);transform-origin:50% 100%;position:absolute;inset:0;transform:scaleY(0)}.intro__center{text-align:center;flex-direction:column;align-items:center;margin-top:-3vh;display:flex;position:relative}.intro__logo{color:var(--c-ink);font-size:max(40px,4.2vw);line-height:0}.intro__tagline{letter-spacing:-.01em;max-width:max(250px,20vw);margin-top:max(4px,.25vw);font-size:max(12px,.96vw);line-height:1.3}.intro__enter{opacity:0;visibility:hidden;margin-top:max(18px,1.8vw)}.intro__noaudio{font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:.02em;color:var(--c-ink);opacity:0;visibility:hidden;border-bottom:1px solid;padding-bottom:1px;font-weight:500;line-height:1.5;position:absolute;bottom:max(36px,3.95vw);left:50%;transform:translate(-50%)}.intro.is-ready .intro__enter,.intro.is-ready .intro__noaudio{visibility:visible}@media (width<=767px){.logo{font-size:24px}.header__left{gap:10px}.nav{gap:12px;font-size:14px}.lang{font-size:14px}.bottom{--social:32px}}@media (width<=389px){.logo{font-size:22px}.header__left{gap:8px}.nav{gap:10px;font-size:13px}.lang{font-size:13px}}@media (width<=339px){.logo{font-size:20px}.nav{gap:8px;font-size:12px}.lang{font-size:12px}}.page--home,.page--contact,.page--404{height:100vh;min-height:100vh;overflow:hidden}.hero{text-align:center;padding:0 var(--gutter);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;padding-bottom:6vh;display:flex;position:absolute;inset:0}.hero>*{pointer-events:auto}.hero__kicker{letter-spacing:-.03em;text-transform:uppercase;margin-bottom:max(8px,1.1vw);font-size:max(12px,1.1vw);line-height:1.2}.hero__title{flex-direction:column;align-items:center;font-weight:400;line-height:.88;display:flex}.hero__line{font-size:min(var(--fs-display), calc(160vw / var(--len,10)));white-space:nowrap;display:block}.hero__line--serif{font-family:var(--f-serif);letter-spacing:-.035em;font-style:italic;font-size:min(var(--fs-display), calc(150vw / var(--len,10)));line-height:1.02}.hero__line--sans{font-family:var(--f-sans);letter-spacing:-.055em;font-weight:450;font-size:min(8.5vw, calc(150vw / var(--len,10)));line-height:.95}.hero__cta{margin-top:max(16px,2.6vw)}html.gl-home .hero__kicker,html.gl-home .hero__title{visibility:hidden;opacity:0!important}.page--projects{min-height:120vh;padding-bottom:20vh}.projects-head{z-index:5;pointer-events:none;flex-direction:column;align-items:center;padding-top:max(70px,4.9vw);display:flex;position:fixed;top:0;left:0;right:0}.projects-head>*{pointer-events:auto}.projects-head__title{font-size:var(--fs-h2);letter-spacing:-.02em;color:var(--c-ink);text-align:center;line-height:1.2}.filters{background:var(--c-white);border-radius:999px;gap:max(3px,.2vw);margin-top:max(10px,1vw);padding:max(4px,.4vw);display:flex;position:relative}.filters__btn{font-size:var(--fs-small);letter-spacing:-.028em;color:var(--c-ink);transition:color .4s var(--ease-out);z-index:1;border-radius:999px;align-items:flex-start;gap:.15em;padding:max(4px,.33vw) max(9px,.88vw);line-height:1;display:inline-flex;position:relative}.filters__btn sup{font-size:max(7.5px,.625vw);line-height:1;transform:translateY(-.1em)}.filters__btn.is-active{color:var(--c-cream)}.filters__pill{background:var(--c-ink);width:0;transition:transform .55s var(--ease-out), width .55s var(--ease-out);border-radius:999px;position:absolute;top:max(4px,.4vw);bottom:max(4px,.4vw);left:0}.grid{grid-template-columns:1fr 1fr;gap:2.2vw 2.6vw;width:68vw;margin:0 auto;padding-top:max(230px,17vw);display:grid;position:relative}.card{transition:opacity .5s var(--ease-out);display:block;position:relative}.card.is-hidden{display:none}.card__visual{position:relative}.card__media{aspect-ratio:1.915;background:#d9d7d5;width:100%;position:relative;overflow:hidden}.card__media img,.card__media video,.card__media canvas{object-fit:cover;width:100%;height:100%}.card__caption{font-size:var(--fs-caption);letter-spacing:-.02em;border-bottom:1px solid;grid-template-columns:1fr auto;align-items:end;padding:max(8px,.9vw) 0 max(8px,.75vw);line-height:1.2;display:grid;position:relative}.card__title{font-weight:560}.card__sub{color:#2f2f2f}.card__arrow{width:max(10px,.8vw);height:max(10px,.8vw);margin-bottom:.35em}html.gl-cards .card__visual{opacity:0}.page--case{padding-bottom:12vh}.case-hero{height:100vh;padding:0 var(--gutter) max(80px, 7vw);color:var(--c-white);flex-direction:column;justify-content:flex-end;display:flex;position:relative}.case-hero__media{position:absolute;inset:0}.case-hero__title{letter-spacing:-.055em;font-size:max(52px,10vw);font-weight:450;line-height:.9;position:relative}.case-hero__sub{font-family:var(--f-serif);letter-spacing:-.02em;margin-top:max(8px,.8vw);font-size:max(24px,2.9vw);font-style:italic;line-height:1.1;position:relative}.case-meta{gap:var(--gutter);padding:max(40px, 4vw) var(--gutter);font-size:var(--fs-body);border-bottom:1px solid #2121212e;grid-template-columns:repeat(4,1fr);display:grid}.case-meta dt{font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:.02em;opacity:.55;margin-bottom:.6em;font-weight:500}.case-meta dd{margin:0}.case-intro{gap:var(--gutter);padding:max(56px, 7vw) var(--gutter);grid-template-columns:1fr 2fr;display:grid}.case-intro__label{font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:.02em;padding-top:.8em;font-weight:500}.case-intro__text{letter-spacing:-.03em;max-width:52vw;font-size:max(22px,2.5vw);line-height:1.15}.case-blocks{gap:var(--gutter);padding:0 var(--gutter);flex-direction:column;display:flex}.case-block--full .case-media{aspect-ratio:1.85}.case-block--duo{gap:var(--gutter);grid-template-columns:1fr 1fr;display:grid}.case-block--duo .case-media{aspect-ratio:.9}.case-block--text{gap:var(--gutter);grid-template-columns:1fr 2fr;padding:max(48px,6vw) 0;display:grid}.case-block--text p{font-family:var(--f-serif);letter-spacing:-.02em;grid-column:2;max-width:50vw;font-size:max(26px,3.4vw);line-height:1.05}.case-block--bleed{margin:0 calc(-1 * var(--gutter))}.case-block--bleed .case-media,.case-block--step .case-media{aspect-ratio:1600/865}.case-block--bleed .live{--live-radius:0px}.case-block--step{column-gap:var(--gutter);border-top:1px solid #2121212e;grid-template-columns:1fr 2fr;row-gap:max(22px,2.2vw);margin-top:max(28px,3.4vw);padding-top:max(16px,1.4vw);display:grid}.case-step{grid-column:1/-1;grid-template-columns:subgrid;align-items:start;display:grid}.case-step__n{font-size:var(--fs-h2);letter-spacing:-.045em;grid-row:1/span 2;font-weight:450;line-height:.9}.case-step__title{font-family:var(--f-serif);letter-spacing:-.02em;grid-column:2;font-size:max(28px,3vw);line-height:1}.case-step__text{max-width:34em;font-size:var(--fs-label);opacity:.8;grid-column:2;margin-top:.9em;line-height:1.45}.case-block--step .case-media{grid-column:1/-1}.case-block--phones{margin-top:var(--gutter);padding:max(40px, 5vw) var(--gutter) max(56px, 7vw);background:#13283b;border-radius:max(14px,1.1vw);justify-content:center;align-items:flex-start;gap:max(18px,3vw);display:flex}.case-phone{background:#0a1520;border-radius:max(38px,3.3vw);flex:none;width:min(21vw,360px);padding:max(7px,.6vw);box-shadow:inset 0 0 0 1px #ffffff17,0 40px 80px -30px #0000008c}.case-phone:nth-child(odd){margin-top:max(28px,4vw)}.case-phone__screen{aspect-ratio:390/844}.case-phone .live{--live-radius:max(31px, 2.7vw)}.case-block--note{gap:var(--gutter);grid-template-columns:1fr 2fr;padding-top:max(18px,1.8vw);display:grid}.case-block--note p{max-width:46em;font-size:var(--fs-small);opacity:.6;grid-column:2;line-height:1.5}.case-media{background:#dcdad8;position:relative;overflow:hidden}.case-media>img,.case-media>video,.case-media>canvas{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.case-media--live{background:0 0;overflow:visible}.live{--live-radius:max(14px, 1.1vw);border-radius:var(--live-radius);background:0 0;position:absolute;inset:0;overflow:hidden}.live__poster{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.live__frame{transform-origin:0 0;transform:scale(var(--live-scale,1));opacity:0;border:0;transition:opacity .5s;position:absolute;top:0;left:0}.live.is-ready .live__frame{opacity:1}.live.is-armed{clip-path:inset(100% 0 0 0 round var(--live-radius));transition:clip-path 1.3s var(--ease-expo)}.live.is-armed.is-revealed{clip-path:inset(0 0 0 0 round var(--live-radius))}@media (hover:none){.live__frame{pointer-events:none}}@media (prefers-reduced-motion:reduce){.live.is-armed{transition:none}}html.gl-cards [data-gl-media]>*{opacity:0}html.gl-cards .case-media,html.gl-cards .card__media{background:0 0}body[data-theme=dark] .case-back{color:var(--c-white)}.case-next{margin:max(80px, 10vw) var(--gutter) 0;border-top:1px solid #2121212e;padding-top:max(20px,2vw);display:block;position:relative}.case-next__label{font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:.02em;font-weight:500}.case-next__title{letter-spacing:-.055em;align-items:baseline;gap:.25em;margin-top:.1em;font-size:max(52px,9vw);line-height:1;display:flex}.case-next__title .serif{letter-spacing:-.03em;font-style:italic}.case-next__arrow{width:.35em;height:.35em;transition:transform .6s var(--ease-out)}.case-next:hover .case-next__arrow{transform:rotate(-45deg)}.case-back{left:var(--gutter);top:calc(var(--circle) + max(26px, 2.3vw));z-index:var(--z-chrome);font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:.02em;align-items:center;gap:.6em;font-weight:500;display:inline-flex;position:fixed}.case-back svg{width:.9em;height:.9em;transform:rotate(135deg)}.contact{grid-template-columns:1fr 1fr;align-content:center;column-gap:max(18px,2.6vw);padding-bottom:12vh;display:grid;position:absolute;inset:0}.contact__title{font-family:var(--f-serif);font-style:italic;font-size:var(--fs-menu);letter-spacing:-.03em;white-space:nowrap;grid-column:1;justify-self:end;line-height:1.05}.contact__switch{grid-column:2;align-self:center;gap:max(10px,1.4vw);display:flex}.contact__note{text-align:right;text-transform:uppercase;letter-spacing:-.02em;white-space:pre-line;grid-column:1;place-self:start end;margin-top:max(12px,1.9vw);font-size:max(11px,.95vw);line-height:1.25}.contact__mail{letter-spacing:-.03em;grid-column:2;align-self:start;height:1.25em;margin-top:max(8px,1.3vw);font-size:max(24px,2.6vw);line-height:1.2;position:relative;overflow:hidden}.contact__mail a{transition:transform .7s var(--ease-out), opacity .5s;display:block}.contact__mail a+a{position:absolute;top:0;left:0}.contact__mail a:not(.is-active){opacity:0;pointer-events:none;transform:translateY(110%)}.contact__mail a.is-active:hover{text-underline-offset:.12em;text-decoration:underline 1px}.nf{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:max(14px,1.4vw);display:flex;position:absolute;inset:0}.nf__title{font-family:var(--f-serif);font-style:italic;font-size:var(--fs-menu);letter-spacing:-.03em;line-height:1}.nf__text{max-width:30ch}@media (width<=767px){.hero__line--sans{font-size:min(15vw, calc(150vw / var(--len,10)))}.projects-head{padding-top:84px}.filters{scrollbar-width:none;max-width:calc(100vw - 32px);overflow-x:auto}.grid{grid-template-columns:1fr;row-gap:28px;width:calc(100vw - 36px);padding-top:190px}.case-meta{grid-template-columns:1fr 1fr}.case-intro,.case-block--text{grid-template-columns:1fr}.case-intro__text,.case-block--text p{grid-column:1;max-width:none}.case-block--duo,.case-block--step,.case-block--note{grid-template-columns:1fr}.case-step__n{grid-row:auto;margin-bottom:.35em}.case-step__title,.case-step__text,.case-block--note p{grid-column:1}.case-block--phones{margin:var(--gutter) calc(-1 * var(--gutter)) 0;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:0;justify-content:flex-start;gap:14px;padding:28px 0 32px;overflow-x:auto}.case-block--phones::-webkit-scrollbar{display:none}.case-phone{scroll-snap-align:center;width:64vw}.case-phone:first-child{margin-left:18vw}.case-phone:last-child{margin-right:18vw}.case-phone:nth-child(odd){margin-top:0}.contact{text-align:center;grid-template-columns:1fr;justify-items:center;row-gap:18px}.contact__title,.contact__note,.contact__switch,.contact__mail{text-align:center;grid-column:1;justify-self:center}.contact__note{order:3}}
