@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-vietnamese-wdth-normal-rJmnGBSt.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-wdth-normal-7khWdh9v.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-wdth-normal-DY7AcnAa.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.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}:root{--paper:#f3f0e9;--paper-2:#e8e3d8;--ink:#15140f;--ink-2:#57534a;--line:#cdc6b6;--accent:#e8501a;--accent-dark:#c13f0f;--accent-text:#b53a0c;--font-display:"Archivo Variable", "Arial Narrow", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Courier New", monospace;--gutter:clamp(16px, 4vw, 48px);--max:1240px;--header-h:68px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header-h);-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-display);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;font-stretch:100%;line-height:1.55;overflow-x:hidden}h1,h2,h3,h4,p,ul,ol{margin:0}ul{padding:0;list-style:none}a{color:inherit}img{max-width:100%;display:block}button{font:inherit;color:inherit}::selection{background:var(--accent);color:var(--paper)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.container{width:100%;max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto}.mono{font-family:var(--font-mono);letter-spacing:.02em;font-size:.8rem}.section{padding-block:clamp(64px,8vw,112px)}.btn{border:1.5px solid var(--ink);font-family:var(--font-display);cursor:pointer;background:0 0;border-radius:0;align-items:center;gap:.6em;padding:.95em 1.4em;font-size:1rem;font-weight:650;font-stretch:110%;text-decoration:none;transition:background-color .2s,border-color .2s,color .2s;display:inline-flex}.btn:hover{background:var(--ink);color:var(--paper)}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--ink)}.btn--primary:hover{background:var(--accent-dark);border-color:var(--accent-dark);color:#fff}.btn--dark{background:var(--ink);color:var(--paper)}.btn--dark:hover{background:#2c2a22;border-color:#2c2a22}.btn svg{flex:none;width:1.15em;height:1.15em}.reveal{opacity:0;transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--delay,0s);transform:translateY(18px)}.reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transition:none;transform:none}}.header{z-index:50;background:var(--paper);border-bottom:1px solid #0000;transition:border-color .25s;position:sticky;top:0}.header.is-scrolled{border-bottom-color:var(--line)}.header__inner{height:var(--header-h);justify-content:space-between;align-items:center;display:flex}.header__logo{text-decoration:none}.logo{align-items:baseline;gap:8px;display:inline-flex}.logo__mark{letter-spacing:-.04em;padding-bottom:5px;font-size:1.45rem;font-weight:900;font-stretch:125%;line-height:1;position:relative}.logo__mark:after{content:"";background:var(--accent);height:3px;position:absolute;bottom:0;left:0;right:0}.logo__word{color:var(--ink-2);font-size:.78rem}.header__nav{align-items:center;gap:clamp(20px,3vw,40px);display:flex}.header__nav ul{gap:clamp(16px,2.4vw,32px);display:flex}.header__nav ul a{align-items:baseline;gap:6px;font-weight:550;text-decoration:none;display:inline-flex;position:relative}.header__nav ul a:after{content:"";transform-origin:0;background:currentColor;height:1.5px;transition:transform .25s;position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(0)}.header__nav ul a:hover:after{transform:scaleX(1)}.header__cta{padding:.6em 1.1em;font-size:.92rem}.header__toggle{display:none}@media (width<=960px){.header__toggle{cursor:pointer;text-transform:uppercase;background:0 0;border:0;align-items:center;gap:12px;padding:8px 0;display:inline-flex}.header__burger,.header__burger:before{background:var(--ink);width:22px;height:1.5px;transition:transform .25s;display:block}.header__burger{position:relative;transform:translateY(-3px)}.header__burger:before{content:"";position:absolute;top:6px}.is-open .header__burger{transform:translateY(0)rotate(45deg)}.is-open .header__burger:before{transform:translateY(-6px)rotate(-90deg)}.header__nav{inset:var(--header-h) 0 0 0;padding:24px var(--gutter) 40px;background:var(--paper);border-top:1px solid var(--line);visibility:hidden;opacity:0;flex-direction:column;justify-content:space-between;align-items:stretch;gap:32px;transition:opacity .2s,visibility .2s;position:fixed}.is-open .header__nav{visibility:visible;opacity:1}.header__nav ul{flex-direction:column;gap:0}.header__nav ul a{border-bottom:1px solid var(--line);letter-spacing:-.03em;gap:14px;padding:18px 0;font-size:2rem;font-weight:800;font-stretch:115%;display:flex}.header__nav ul a:after{display:none}.header__cta{justify-content:center;padding:1em;font-size:1.05rem}}.hero{padding-top:clamp(40px,7vw,96px)}.hero+.section{padding-top:clamp(48px,6vw,72px)}.hero__grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:clamp(40px,6vw,88px);display:grid}.hero__title{letter-spacing:-.045em;text-wrap:balance;font-size:clamp(3rem,7vw,6.2rem);font-weight:850;font-stretch:122%;line-height:.92}.hero__measure{color:var(--accent);padding-bottom:.14em;display:inline-block;position:relative}.hero__measure:after{content:"";height:.16em;color:var(--accent);border-bottom:2px solid var(--accent);background-color:#0000;background-image:repeating-linear-gradient(90deg,currentColor 0 1px,#0000 1px 40px),repeating-linear-gradient(90deg,currentColor 0 1px,#0000 1px 8px);background-position:0 100%;background-repeat:no-repeat;background-size:100% 100%,100% 50%;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;bottom:-.02em;left:0;right:0}.hero__lead{max-width:46ch;color:var(--ink-2);text-wrap:pretty;margin-top:32px;font-size:clamp(1.08rem,1.5vw,1.25rem)}.hero__actions{flex-wrap:wrap;gap:14px;margin-top:40px;display:flex}.showcase{flex-direction:column;margin:0;padding:0 0 48px 44px;display:flex;position:relative}.showcase a{display:block}.showcase__desktop{border:1.5px solid var(--ink);background:#fff;overflow:hidden}.showcase__desktop img{width:100%;height:auto;transition:transform .4s}.showcase__desktop:hover img{transform:scale(1.02)}.showcase__phone{background:var(--ink);border-radius:22px;width:30%;max-width:150px;padding:5px;position:absolute;bottom:0;left:0}.showcase__phone img{border-radius:17px;width:100%;height:auto}.showcase figcaption{color:var(--ink-2);order:-1;margin-bottom:10px}.hero__specs{border-top:1.5px solid var(--ink);grid-template-columns:repeat(3,1fr);margin:clamp(48px,7vw,88px) 0 0;display:grid}.hero__specs>div{padding:18px 20px 0 0}.hero__specs>div+div{border-left:1px solid var(--line);padding-left:20px}.hero__specs dt{color:var(--ink-2);text-transform:uppercase;margin-bottom:6px}.hero__specs dd{letter-spacing:-.02em;margin:0;font-size:clamp(1.1rem,1.8vw,1.45rem);font-weight:700;font-stretch:112%}.logos{margin-top:clamp(36px,5vw,56px)}.logos__label{color:var(--ink-2);text-transform:uppercase;margin-bottom:16px}.logos__list{flex-wrap:wrap;justify-content:space-between;gap:12px 24px;display:flex}.logos__list a{align-items:center;gap:12px;font-weight:700;line-height:1.2;text-decoration:none;display:flex}.logos__list img{border-radius:22%;width:48px;height:48px;transition:transform .2s;box-shadow:0 0 0 1px #15140f1f}.logos__list a:hover img{transform:translateY(-2px)}.logos__list span{display:grid}.logos__list small{color:var(--ink-2);font-size:.7rem;font-weight:400}@media (width<=960px){.hero__grid{grid-template-columns:1fr}.showcase{max-width:620px}}@media (width<=640px){.hero__specs{grid-template-columns:1fr 1fr}.hero__specs>div{padding:16px 12px 16px 0}.hero__specs>div+div{border-left:0;padding-left:0}.hero__specs>div:nth-child(2n){border-left:1px solid var(--line);padding-left:16px}.hero__specs>div:nth-child(n+3){border-top:1px solid var(--line)}.hero__specs>div:last-child:nth-child(odd){text-align:center;grid-column:1/-1;padding-right:0}.logos__list{grid-template-columns:1fr 1fr;gap:16px 12px;display:grid}.hero__actions .btn{flex:100%;justify-content:center}}@media (prefers-reduced-motion:reduce){.showcase__desktop img,.logos__list img{transition:none}}.section-head{grid-template-columns:minmax(0,1fr) minmax(0,.8fr);align-items:end;gap:28px clamp(24px,5vw,80px);margin-bottom:clamp(48px,7vw,88px);display:grid}.section-head__label{text-transform:uppercase;color:var(--accent-text);border-top:1.5px solid;grid-column:1/-1;padding-top:14px}.section-head__title{letter-spacing:-.035em;text-wrap:balance;font-size:clamp(2.2rem,5.4vw,4.4rem);font-weight:800;font-stretch:118%;line-height:.98}.section-head__intro{max-width:44ch;color:var(--ink-2);text-wrap:pretty;font-size:1.08rem}@media (width<=760px){.section-head{grid-template-columns:1fr}}.services__grid{border-top:1.5px solid var(--ink);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.service{border-bottom:1px solid var(--line);flex-direction:column;gap:14px;padding:clamp(28px,4vw,48px) clamp(20px,3.5vw,48px) clamp(28px,4vw,44px) 0;display:flex;position:relative}.service:nth-child(2n){border-left:1px solid var(--line);padding-left:clamp(20px,3.5vw,48px);padding-right:0}.service__title{letter-spacing:-.03em;font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:750;font-stretch:115%;line-height:1.05}.service__text{max-width:42ch;color:var(--ink-2)}.service__proof{flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-top:auto;padding-top:10px;font-size:.95rem;font-weight:600;display:flex}.service__proof .mono{color:var(--ink-2);text-transform:uppercase;font-size:.72rem}.service__proof a{border-bottom:1.5px solid var(--accent);text-decoration:none}.service__proof a:hover{color:var(--accent-dark)}.process{margin-top:clamp(56px,8vw,96px)}.process__title{letter-spacing:-.03em;margin-bottom:28px;font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:750;font-stretch:115%}.process__steps{grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.process__step{border-top:1.5px solid var(--ink);padding:20px 24px 0 0}.process__num{background:var(--accent);width:30px;height:30px;color:var(--ink);border-radius:50%;place-items:center;font-size:.9rem;font-weight:700;display:inline-grid}.process__step h4{letter-spacing:-.02em;margin-top:14px;font-size:1.3rem;font-weight:750;font-stretch:112%}.process__step p{color:var(--ink-2);margin-top:8px;font-size:.98rem}@media (width<=860px){.process__steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}}@media (width<=640px){.services__grid{grid-template-columns:1fr}.service,.service:nth-child(2n){border-left:0;padding-left:0;padding-right:0}.process__steps{grid-template-columns:1fr;row-gap:32px}}.gallery{flex-direction:column;gap:12px;min-width:0;display:flex}.gallery__main{border:1.5px solid var(--paper);text-align:left;cursor:zoom-in;background:#0d0c09;flex-direction:column;width:100%;padding:0;display:flex;position:relative}.gallery__bar{border-bottom:1px solid var(--line-dark);color:#a9a496;text-transform:uppercase;justify-content:space-between;gap:16px;padding:9px 14px;font-size:.72rem;display:flex}.gallery__bar span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gallery__frame{aspect-ratio:16/10;display:block;overflow:hidden}.gallery__frame img{object-fit:cover;object-position:top left;width:100%;height:100%;transition:transform .5s cubic-bezier(.2,.7,.2,1)}.gallery__main.is-portrait .gallery__frame{background:repeating-linear-gradient(-45deg,#0000 0 10px,#f3f0e90a 10px 11px);position:relative}.gallery__main.is-portrait .gallery__frame img{object-fit:contain;border:1px solid var(--line-dark);border-radius:14px;width:auto;height:calc(100% - 40px);margin-inline:auto;position:absolute;inset:20px 0}.gallery.is-phones .gallery__frame{aspect-ratio:1}.gallery__main:hover .gallery__frame img{transform:scale(1.015)}.gallery__zoom{background:var(--accent);color:#fff;text-transform:uppercase;opacity:0;padding:5px 10px;font-size:.7rem;transition:opacity .2s,transform .2s;position:absolute;bottom:12px;right:12px;transform:translateY(4px)}.gallery__main:hover .gallery__zoom,.gallery__main:focus-visible .gallery__zoom{opacity:1;transform:none}.gallery__thumbs{scroll-snap-type:x mandatory;scrollbar-width:thin;gap:8px;padding-bottom:6px;display:flex;overflow-x:auto}.gallery__thumbs li{scroll-snap-align:start;flex:none}.gallery__thumbs button{aspect-ratio:16/10;border:1px solid var(--line-dark);cursor:pointer;opacity:.55;background:#0d0c09;width:104px;padding:0;transition:opacity .2s,border-color .2s;display:block;overflow:hidden}.gallery__thumbs button.is-portrait{width:52px}.gallery__thumbs button:hover{opacity:.9}.gallery__thumbs button[aria-current=true]{opacity:1;border-color:var(--accent);outline:1px solid var(--accent)}.gallery__thumbs img{object-fit:cover;object-position:top left;width:100%;height:100%}.gallery__empty{aspect-ratio:16/10;border:1.5px dashed var(--line-dark);color:#8c8778;text-transform:uppercase;background:repeating-linear-gradient(-45deg,#0000 0 10px,#f3f0e90a 10px 11px);place-items:center;display:grid}.lightbox{width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--paper);background:#0d0c09f7;border:0;margin:0;padding:0}.lightbox[open]{flex-direction:column;display:flex}.lightbox::backdrop{background:#0d0c09cc}.lightbox__top{padding:14px var(--gutter);text-transform:uppercase;border-bottom:1px solid #3a3830;align-items:center;gap:16px;font-size:.78rem;display:flex}.lightbox__top>span:first-child{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.lightbox__count{color:#8c8778}.lightbox button{color:var(--paper);text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #3a3830;padding:8px 14px;font-size:.78rem;transition:border-color .2s,background-color .2s}.lightbox button:hover{border-color:var(--paper)}.lightbox__stage{touch-action:pan-y pinch-zoom;-webkit-user-select:none;user-select:none;flex:1;place-items:center;min-height:0;padding:clamp(12px,3vw,32px);display:grid}.lightbox__stage img{object-fit:contain;pointer-events:none;width:auto;max-width:100%;height:auto;max-height:100%;animation:.25s lightbox-in}@keyframes lightbox-in{0%{opacity:0}}.lightbox__nav{padding:0 var(--gutter) 18px;justify-content:space-between;display:flex}@media (width<=560px){.lightbox__count{display:none}}@media (prefers-reduced-motion:reduce){.gallery__frame img,.lightbox__stage img{transition:none;animation:none}}.projects{background:var(--ink);color:var(--paper);--line-dark:#3a3830}.projects .section-head__label{color:var(--accent)}.projects .section-head__intro{color:#a9a496}.projects__index{flex-wrap:wrap;gap:14px;margin-top:calc(clamp(48px,7vw,88px)/-2);margin-bottom:clamp(48px,7vw,80px);display:flex}.projects__index a{border-radius:24%;align-items:center;font-weight:650;text-decoration:none;transition:transform .2s;display:inline-flex}.projects__icon{border-radius:22%;width:52px;height:52px;transition:box-shadow .2s;box-shadow:0 0 0 1px #f3f0e933}.projects__index a:hover{transform:translateY(-2px)}.projects__index a:hover .projects__icon{box-shadow:0 0 0 1.5px var(--paper)}.project{border-top:1.5px solid var(--paper);scroll-margin-top:calc(var(--header-h) + 8px);padding-block:clamp(40px,6vw,72px)}.project__head{color:#8c8778;text-transform:uppercase;flex-wrap:wrap;gap:8px 28px;margin-bottom:clamp(28px,4vw,44px);display:flex}.project__body{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:clamp(32px,5vw,72px);display:grid}.project.is-flipped .project__info{order:2}.project__media{top:calc(var(--header-h) + 24px);position:sticky}.project__title{align-items:center;gap:clamp(14px,2vw,20px);display:flex}.project__logo{border-radius:22%;flex:none;width:clamp(48px,5vw,64px);height:auto}.project__name{letter-spacing:-.045em;font-size:clamp(2.4rem,5.4vw,4.4rem);font-weight:850;font-stretch:122%;line-height:.95}.project__sector{color:#a9a496;text-transform:uppercase;margin-top:10px}.project__summary{letter-spacing:-.01em;text-wrap:pretty;margin-top:24px;font-size:clamp(1.15rem,1.8vw,1.4rem);font-weight:600;line-height:1.3}.project__story{gap:18px;margin:28px 0 0;display:grid}.project__story dd{color:#c9c4b6;text-wrap:pretty;margin:0}.project h4,.project dt{color:var(--accent);text-transform:uppercase;margin-bottom:6px;font-weight:500}.project h4{margin-top:28px}.project__features li{border-bottom:1px dashed var(--line-dark);padding:7px 0}.project__features li:before{content:"→ ";color:#8c8778}.project__more{color:#a9a496;text-transform:uppercase;cursor:pointer;background:0 0;border:0;margin-top:10px;padding:0}.project__more:hover{color:var(--paper)}.project__stack{flex-wrap:wrap;gap:8px;margin-top:24px;display:flex}.project__stack li{border:1px solid var(--line-dark);padding:4px 10px;font-size:.72rem}.project__links{flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:28px;display:flex}.project__cta{padding:.8em 1.2em;font-size:.95rem}.project__status{border:1px solid var(--accent);color:var(--accent);padding:2px 8px}.project__solution{color:#c9c4b6;text-wrap:pretty;margin-top:18px}.project__link{border-bottom:1.5px solid var(--accent);align-items:center;gap:6px;font-weight:650;text-decoration:none;display:inline-flex}.project__link svg{width:16px;height:16px}@media (width<=960px){.project__body{grid-template-columns:minmax(0,1fr)}.project__media{order:-1;position:static}.project.is-flipped .project__info{order:0}}@media (width<=640px){.projects__index{gap:10px}.projects__icon{width:46px;height:46px}}.project.is-compact .gallery.is-phones .gallery__frame{aspect-ratio:16/10}.team__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,56px);display:grid}.person{border:1.5px solid var(--ink);background:#fbfaf6;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);display:grid}.person__photo{background:repeating-linear-gradient(-45deg, transparent 0 10px, #15140f0d 10px 11px), var(--paper-2);border-right:1.5px solid var(--ink);place-items:center;min-height:300px;display:grid;position:relative;overflow:hidden}.person__photo img{object-fit:cover;object-position:50% 25%;width:100%;height:100%;position:absolute;inset:0}.person__photo>span:first-child{letter-spacing:-.05em;color:var(--ink);opacity:.85;font-size:clamp(3.5rem,7vw,5.5rem);font-weight:900;font-stretch:125%}.person__tag{background:var(--ink);color:var(--paper);text-transform:uppercase;padding:6px 12px;font-size:.7rem;position:absolute;bottom:0;left:0}.person__body{flex-direction:column;padding:clamp(22px,3vw,32px);display:flex}.person__name{letter-spacing:-.03em;font-size:clamp(1.5rem,2.4vw,1.9rem);font-weight:800;font-stretch:115%;line-height:1.05}.person__initial{color:var(--accent)}.person__bio{color:var(--ink-2);margin-top:12px;font-size:.98rem}.person h4{color:var(--accent-text);text-transform:uppercase;margin-top:22px;margin-bottom:8px;font-weight:500}.person__focus li{border-bottom:1px dashed var(--line);padding:5px 0;font-size:.95rem;font-weight:550}.person__links{gap:18px;margin-top:auto;padding-top:20px;display:flex}.person__links a{border-bottom:1.5px solid var(--accent);align-items:center;gap:4px;font-size:.92rem;font-weight:650;text-decoration:none;display:inline-flex}.person__links svg{width:14px;height:14px}@media (width<=1080px){.person{grid-template-rows:auto 1fr;grid-template-columns:1fr}.person__photo{border-right:0;border-bottom:1.5px solid var(--ink);min-height:220px}}@media (width<=720px){.team__grid{grid-template-columns:1fr}}.faq{background:var(--paper-2)}.faq__list{border-top:1.5px solid var(--ink)}.faq__item{border-bottom:1px solid var(--line)}.faq__item summary{letter-spacing:-.015em;cursor:pointer;justify-content:space-between;align-items:center;gap:24px;padding:22px 0;font-size:clamp(1.1rem,1.8vw,1.3rem);font-weight:700;font-stretch:110%;list-style:none;display:flex}.faq__item summary::-webkit-details-marker{display:none}.faq__item summary:hover{color:var(--accent-dark)}.faq__sign{flex:none;width:16px;height:16px;position:relative}.faq__sign:before,.faq__sign:after{content:"";background:var(--accent);height:2px;transition:transform .2s;position:absolute;inset:7px 0 auto}.faq__sign:after{transform:rotate(90deg)}.faq__item[open] .faq__sign:after{transform:rotate(0)}.faq__answer{max-width:72ch;color:var(--ink-2);text-wrap:pretty;gap:12px;padding-bottom:24px;display:grid}.faq__answer ul{gap:8px;padding-left:1.2em;list-style:outside;display:grid}.faq__answer li::marker{color:var(--accent)}.faq__more{border-bottom:1.5px solid var(--accent);margin-top:32px;font-weight:650;text-decoration:none;display:inline-block}.faq__more:hover{color:var(--accent-dark)}@media (prefers-reduced-motion:reduce){.faq__sign:before,.faq__sign:after{transition:none}}.contact{background:var(--accent);color:var(--ink);padding-block:clamp(64px,8vw,112px);position:relative}.contact__inner{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:center;gap:clamp(40px,6vw,96px);display:grid}.contact__label{text-transform:uppercase;margin-bottom:24px}.contact__title{letter-spacing:-.04em;text-wrap:balance;font-size:clamp(2.4rem,5.6vw,4.8rem);font-weight:850;font-stretch:120%;line-height:.95}.contact__lead{max-width:44ch;margin-top:24px;font-size:1.12rem;font-weight:500}.contact__cta{margin-top:36px}.contact__channels{background:var(--paper);border:1.5px solid var(--ink)}.contact__channels li+li{border-top:1px solid var(--line)}.contact__channels a,.contact__channels div{align-items:center;gap:16px;padding:20px 22px;text-decoration:none;transition:background-color .2s;display:flex}.contact__channels a:hover{background:var(--paper-2)}.contact__icon{width:24px;height:24px;color:var(--accent);flex:none}.contact__text{flex-direction:column;min-width:0;display:flex}.contact__text .mono{color:var(--ink-2);text-transform:uppercase;font-size:.7rem}.contact__value{overflow-wrap:anywhere;font-size:1.08rem;font-weight:650}.contact__arrow{flex:none;width:18px;height:18px;margin-left:auto;transition:transform .2s}.contact__channels a:hover .contact__arrow{transform:translate(2px,-2px)}@media (width<=860px){.contact__inner{grid-template-columns:1fr}.contact__channels{margin-right:8px}}@media (width<=560px){.contact__cta{justify-content:center;width:100%}}.footer{background:var(--ink);color:var(--paper);padding-block:56px 32px}.footer__grid{grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr));gap:40px;display:grid}.footer__brand p{color:#a9a496;margin-top:12px}.footer .logo__word{color:#a9a496}.footer__title{color:#a9a496;text-transform:uppercase;margin-bottom:12px;font-weight:400}.footer ul li+li{margin-top:8px}.footer ul a{text-decoration:none}.footer a:hover{color:var(--accent)}.footer__bottom{color:#a9a496;border-top:1px solid #3a3830;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:48px;padding-top:20px;display:flex}.footer__bottom a{color:var(--paper);text-transform:uppercase;text-decoration:none}@media (width<=720px){.footer__grid{grid-template-columns:1fr;gap:32px}}.wa-float{right:max(16px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom));z-index:40;background:var(--accent);color:var(--ink);opacity:0;pointer-events:none;border-radius:999px;align-items:center;gap:8px;padding:12px 18px 12px 14px;font-weight:700;text-decoration:none;transition:opacity .25s,transform .25s,background-color .2s;display:inline-flex;position:fixed;transform:translateY(12px);box-shadow:0 6px 20px #15140f40}.wa-float.is-visible{opacity:1;pointer-events:auto;transform:none}.wa-float:hover{background:var(--accent-dark);color:#fff}.wa-float svg{width:22px;height:22px}@media (width>=961px){.wa-float{display:none}}@media (prefers-reduced-motion:reduce){.wa-float{transition:none}}@media (width<=640px){.wa-float{justify-content:center;width:56px;height:56px;padding:0}.wa-float span{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.wa-float svg{width:26px;height:26px}}
