.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-cyrillic-ext-wght-normal.DhYMMuQd.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-cyrillic-wght-normal.Y3u8pIsh.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-greek-ext-wght-normal.wWus70Ix.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-greek-wght-normal.B2SviObF.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-symbols2-wght-normal.CE6EOz_n.woff2) format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-latin-ext-wght-normal.Dvfvaomy.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-latin-wght-normal.CHoedHDv.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-cyrillic-ext-wght-normal.CO5hGrJv.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-cyrillic-wght-normal.EAA9jha_.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-vietnamese-wght-normal.k7S-YeeD.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-latin-ext-wght-normal.BsZE-iaG.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-latin-wght-normal.l_AIctKy.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #111110;--ink-soft: #55534d;--ink-mute: #9b9a95;--paper: #ffffff;--paper-2: #f2f1ee;--line: rgba(17, 17, 16, .14);--accent: #fbed21;--accent-ink: #111110;--scrim: #495157;--font-mono: "Fira Code Variable", "Fira Code", ui-monospace, monospace;--font-body: "Montserrat Variable", "Montserrat", system-ui, sans-serif;--pad: clamp(1.15rem, 2.6vw, 2.6rem);--circle: clamp(36px, 3.4vw, 46px);--ease: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{position:relative;margin:0;font-family:var(--font-body);font-size:clamp(.88rem,.84rem + .2vw,.97rem);line-height:1.65;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;overflow:hidden}body.has-viewer{overflow:hidden}img,svg,video{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}h1,h2,h3,h4{margin:0;font-weight:400}p{margin:0}ul{margin:0;padding:0;list-style:none}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.frame{position:absolute;inset:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.chrome-top{grid-row:1}.frame-main{grid-row:2}.chrome-bottom{grid-row:3}.frame-main{min-height:0;display:grid;place-items:center;padding:clamp(.75rem,2vw,1.75rem) var(--pad);overflow:hidden}.chrome-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;padding:var(--pad) var(--pad) 0}.chrome-brand{display:flex;align-items:center;gap:.85rem;flex-wrap:wrap}.chrome-top:not(.is-compact) .chrome-brand{display:block}.brand{display:inline-block;background:var(--ink);padding:.5rem .65rem;line-height:0}.brand img{width:auto;height:clamp(20px,2vw,26px)}.descriptor{font-family:var(--font-mono);font-weight:300;font-size:clamp(.66rem,.9vw,.8rem);text-transform:uppercase;letter-spacing:.22em;color:var(--ink-soft)}.chrome-top:not(.is-compact) .descriptor{margin-top:.5rem}.chrome-nav{display:grid;justify-items:end;gap:.1rem}.chrome-nav a{font-family:var(--font-mono);font-weight:300;font-size:clamp(.72rem,.95vw,.88rem);text-transform:uppercase;letter-spacing:.1em;color:var(--ink);transition:color .3s var(--ease)}.chrome-nav a[aria-current=page],.chrome-nav a:hover{color:var(--ink-mute)}.nav-toggle{display:none;padding:.4rem;margin:-.4rem}.nav-toggle span{display:block;width:20px;height:1px;background:var(--ink)}.nav-toggle span+span{margin-top:5px}@media(max-width:640px){.nav-toggle{display:block}.chrome-nav{display:none}.chrome-top.is-open .chrome-nav{display:grid;position:absolute;top:calc(var(--pad) + 2.2rem);right:var(--pad);gap:.35rem;background:var(--paper);padding:.75rem 0 0}}.chrome-bottom{padding:0 var(--pad) var(--pad)}.chrome-bottom:before{content:"";display:block;height:1px;background:var(--line);margin-bottom:clamp(.9rem,2vw,1.6rem)}.tagline{font-family:var(--font-mono);font-weight:300;font-size:clamp(.62rem,1.05vw,.92rem);text-transform:uppercase;letter-spacing:.12em;color:var(--ink)}.circle{display:grid;place-items:center;width:var(--circle);height:var(--circle);border-radius:50%;background:var(--accent);color:var(--accent-ink);font-family:var(--font-mono);font-size:clamp(.9rem,1.4vw,1.15rem);line-height:1;flex:none;transition:transform .4s var(--ease)}.circle:hover{transform:scale(1.12)}@media(prefers-reduced-motion:reduce){.circle:hover{transform:none}}.home{display:grid;place-items:center}.home-cue{display:grid;justify-items:center;gap:clamp(1rem,2.4vw,1.75rem)}.home-cue .vertical{font-family:var(--font-mono);font-weight:300;font-size:clamp(.66rem,.95vw,.82rem);text-transform:uppercase;letter-spacing:.3em;color:var(--ink-soft);writing-mode:vertical-rl;transform:rotate(180deg)}@media(prefers-reduced-motion:no-preference){.home-cue .circle{animation:nudge 2.6s var(--ease) infinite}}@keyframes nudge{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.screen{width:min(1180px,100%);aspect-ratio:16 / 9;max-height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);gap:clamp(.75rem,1.8vw,1.5rem);overflow:hidden;background:var(--paper)}@media(max-width:760px){.screen{aspect-ratio:auto;height:100%}}.screen-head{max-width:44ch}.screen-body{min-height:0;overflow-y:auto;padding-bottom:.25rem;-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 2rem),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 2rem),transparent)}.screen-body:has(.members),.screen-body:has(.services){overflow:hidden;-webkit-mask-image:none;mask-image:none}.view-label{font-family:var(--font-mono);font-weight:300;font-size:clamp(.62rem,.9vw,.76rem);text-transform:uppercase;letter-spacing:.2em;color:var(--ink-mute);margin-bottom:.35rem}.view-lead{font-weight:600;font-size:clamp(.92rem,1.5vw,1.25rem);line-height:1.32;letter-spacing:-.01em}.transit{position:fixed;inset:0;z-index:95;pointer-events:none}.transit-scrim{position:absolute;inset:0;background:var(--scrim);opacity:0}.transit.is-dim .transit-scrim{opacity:.92;transition:opacity .2s ease-out}.transit-cover{position:absolute;top:50%;left:50%;width:max(100vw,calc(100vh * 16 / 9));aspect-ratio:16 / 9;background:var(--paper);transform:translate(-50%,-50%) scale(0);visibility:hidden}.transit.is-growing .transit-cover{visibility:visible;animation:cover-grow .95s cubic-bezier(.7,0,.25,1) forwards}.transit.is-covered .transit-cover{visibility:visible;transform:translate(-50%,-50%) scale(1.02)}.transit.is-revealing .transit-cover{animation:cover-fade .4s ease-out forwards}@keyframes cover-grow{0%{transform:translate(-50%,-50%) scale(.005)}to{transform:translate(-50%,-50%) scale(1.02)}}@keyframes cover-fade{to{opacity:0}}.cols{display:grid;gap:clamp(1.5rem,3vw,2.5rem)}@media(min-width:760px){.cols-4{grid-template-columns:repeat(4,1fr)}}.col h3{font-family:var(--font-mono);font-weight:300;text-transform:uppercase;font-size:clamp(.95rem,1.4vw,1.2rem);letter-spacing:.04em;padding-bottom:.55rem;border-bottom:1px solid var(--ink);margin-bottom:.8rem}.col li{font-size:.78rem;color:var(--ink-soft);line-height:1.55}.members{height:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:clamp(.75rem,2vw,1.75rem)}@media(min-width:760px){.members{grid-template-columns:repeat(4,minmax(0,1fr))}}.member{min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto auto}.member img{width:100%;height:100%;min-height:0;object-fit:cover;object-position:50% 25%;filter:grayscale(1);transition:filter .5s var(--ease)}.member:hover img{filter:grayscale(0)}.member h3{font-family:var(--font-mono);font-weight:300;text-transform:uppercase;font-size:.82rem;letter-spacing:.06em;margin-top:.65rem}.member .role{font-size:.72rem;color:var(--ink-mute)}.member .bio{font-size:.74rem;color:var(--ink-soft);line-height:1.6;margin-top:.5rem}.contact-lines{display:grid;gap:.3rem}.contact-link{font-family:var(--font-mono);font-weight:300;text-transform:uppercase;font-size:clamp(1.1rem,3.4vw,2.4rem);line-height:1.22;width:fit-content;max-width:100%;overflow-wrap:anywhere;background-image:linear-gradient(var(--accent),var(--accent));background-repeat:no-repeat;background-size:0% .3em;background-position:0 88%;transition:background-size .45s var(--ease)}.contact-link:hover,.contact-link:focus-visible{background-size:100% .3em}.contact-meta{display:flex;flex-wrap:wrap;gap:.8rem 2rem;margin-top:clamp(1.25rem,3vw,2rem);font-family:var(--font-mono);font-weight:300;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-mute)}.contact-meta a:hover{color:var(--ink)}.viewer[hidden]{display:none}.viewer{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:clamp(.75rem,2vw,1.75rem) var(--pad)}.viewer-scrim{position:absolute;inset:0;background:var(--scrim);opacity:0;transition:opacity .32s var(--ease)}.viewer.is-open .viewer-scrim{opacity:.94}.viewer-panel{position:relative;width:min(1180px,100%);aspect-ratio:16 / 9;max-height:100%;background:var(--paper);opacity:0;transform:scale(.965);transition:opacity .32s var(--ease),transform .42s var(--ease)}.viewer.is-open .viewer-panel{opacity:1;transform:none}.viewer-stage{width:100%;height:100%;overflow:hidden}.viewer-stage img,.viewer-stage video{width:100%;height:100%;object-fit:contain;background:var(--paper-2)}.viewer-caption{position:absolute;left:0;right:0;bottom:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1.25rem;padding:clamp(.75rem,2vw,1.25rem);background:linear-gradient(transparent,#111110b8);color:var(--paper);font-family:var(--font-mono);font-weight:300;font-size:clamp(.68rem,1vw,.82rem);text-transform:uppercase;letter-spacing:.1em}.viewer-caption .scope{color:#ffffffa8}.viewer-caption a{margin-left:auto;border-bottom:1px solid var(--accent);padding-bottom:.1rem}.viewer-close{position:absolute;top:calc(var(--circle) * -.5);right:calc(var(--circle) * -.5);width:var(--circle);height:var(--circle);display:grid;place-items:center;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:1.15rem;line-height:1}@media(max-width:640px){.viewer-close{top:calc(var(--circle) * -1.2);right:0}}@media(prefers-reduced-motion:reduce){.viewer-scrim,.viewer-panel{transition:none}}.link-mono{font-family:var(--font-mono);font-weight:300;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid var(--line);padding-bottom:.12rem;transition:border-color .3s var(--ease)}.link-mono:hover{border-bottom-color:var(--accent);border-bottom-width:3px}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:var(--pad);top:.5rem;z-index:100;background:var(--ink);color:var(--paper);padding:.5rem .9rem;font-family:var(--font-mono);font-size:.75rem}.case-head{max-width:48ch}.case-title{font-family:var(--font-mono);font-weight:300;text-transform:uppercase;font-size:clamp(1.5rem,3.6vw,2.8rem);line-height:1.14;letter-spacing:-.01em;margin:.3rem 0 .35rem}.case-sub{font-size:.85rem;color:var(--ink-mute)}.case-body{display:grid;gap:1.25rem;max-width:72ch;color:var(--ink-soft);font-size:.86rem;line-height:1.75}.case-gallery{display:grid;gap:clamp(.75rem,2vw,1.5rem);margin-top:clamp(1.5rem,3vw,2.5rem);max-width:1100px}.case-gallery img{width:100%;height:auto;background:var(--paper-2)}.case-foot{display:flex;flex-wrap:wrap;gap:1rem 2rem;margin-top:clamp(1.75rem,4vw,3rem);padding-top:1.25rem;border-top:1px solid var(--line)}.projects{position:relative;width:100%;height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);align-self:stretch}.projects-head{padding-top:clamp(.5rem,2vw,1.5rem)}.projects-head .view-lead{max-width:22ch;font-size:clamp(1.1rem,2vw,1.75rem);line-height:1.18}.marquee{position:relative;margin-inline:calc(var(--pad) * -1);overflow:hidden;touch-action:pan-y;cursor:grab;user-select:none}.marquee.is-dragging{cursor:grabbing}.marquee-track{position:absolute;top:50%;left:0;display:flex;align-items:center;width:max-content;will-change:transform;transform:translate3d(0,-50%,0)}.marquee-set{--gap: clamp(14px, 2.1vw, 32px);display:flex;align-items:center;gap:var(--gap);padding-right:var(--gap)}.marquee-item{flex:none;width:max(220px,min(21vw,239.2px + 7.35vw));height:max(154px,min(14.9vw,167.7px + 5.215vw));opacity:.72;transition:opacity .26s}.marquee-item:nth-child(8n+2),.marquee-item:nth-child(8n+4),.marquee-item:nth-child(8n+6),.marquee-item:nth-child(8n+8){width:max(154px,min(13.8vw,158.6px + 4.83vw));height:max(196px,min(18.2vw,205.4px + 6.37vw))}.marquee-item:nth-child(8n+5){width:max(254px,min(24vw,271.7px + 8.4vw));height:max(150px,min(14vw,159.9px + 4.9vw))}@media(max-height:760px){.marquee-item{zoom:.82}}.marquee-item:hover,.marquee-item:focus-within{opacity:1}.marquee-item a{display:block;width:100%;height:100%;padding:0}.marquee-item figure{width:100%;height:100%;margin:0;overflow:hidden;background:#e9e6df}.marquee-item img{width:100%;height:100%;object-fit:cover;transform:scale(1.015);transition:transform .52s cubic-bezier(.2,.8,.2,1);pointer-events:none}.marquee-item:hover img{transform:scale(1.06)}@media(prefers-reduced-motion:no-preference){.marquee-item{animation:card-in .8s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--i) * 45ms + .12s)}}@keyframes card-in{0%{opacity:0;transform:translateY(84px) scale(.985)}}.services{height:100%;display:grid;align-content:start;grid-template-columns:minmax(11rem,16rem) minmax(0,1fr);gap:clamp(1.25rem,4vw,4rem);align-items:start}.services-tabs{display:grid;gap:.15rem}.services-tabs button{display:flex;align-items:center;gap:.7rem;text-align:left;font-family:var(--font-mono);font-weight:300;font-size:clamp(.95rem,.6rem + .9vw,1.45rem);text-transform:uppercase;letter-spacing:.04em;line-height:1.5;color:var(--ink-mute);transition:color .3s var(--ease)}.services-tabs button:before{content:"";flex:none;width:.9em;aspect-ratio:16 / 9;background:var(--accent);transform:scale(0);transition:transform .35s var(--ease)}.services-tabs button[aria-selected=true]{color:var(--ink)}.services-tabs button[aria-selected=true]:before{transform:scale(1)}.services-tabs button:hover{color:var(--ink)}.services-panel{columns:14.5rem auto;column-gap:clamp(1.25rem,2.5vw,2.5rem);padding-top:.45rem;border-top:1px solid var(--ink)}.services-panel li{break-inside:avoid;text-wrap:balance;font-size:clamp(.78rem,.62rem + .35vw,.92rem);line-height:1.9;color:var(--ink-soft)}@media(prefers-reduced-motion:no-preference){.services-panel:not([hidden]){animation:panel-in .4s var(--ease) both}}@keyframes panel-in{0%{opacity:0;transform:translateY(8px)}}@media(max-width:760px){.services{grid-template-columns:1fr;gap:1rem}.services-tabs{display:flex;flex-wrap:wrap;gap:.3rem 1rem}.services-tabs button{font-size:.85rem}.services-panel{columns:1}.services-panel li{font-size:.8rem;line-height:1.55}}@media(max-height:720px)and (min-width:761px){.services-panel li{line-height:1.65}.screen-head .view-lead{font-size:clamp(.9rem,1.3vw,1.05rem)}.screen{gap:.6rem}}@media(max-height:640px)and (min-width:761px){.services-panel li{line-height:1.5}.screen-head .view-lead{font-size:.85rem;line-height:1.25}}@media(max-width:760px)and (max-height:760px){.services-panel li{font-size:.76rem;line-height:1.4}.screen{gap:.5rem}.screen-head .view-lead{font-size:.82rem;line-height:1.3}.services{gap:.6rem}}@media(max-width:760px)and (max-height:700px){.screen-head:has(+.screen-body .services) .view-lead{display:none}.services-panel li{line-height:1.35}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
