@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/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(/_astro/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(/_astro/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(/_astro/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(/_astro/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}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.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 Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.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 Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.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 Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.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{--bg:#151518;--surface:#1c1c21;--surface-2:#232329;--line:#ffffff1a;--line-strong:#ffffff38;--text:#ececee;--muted:#a3a3ab;--accent:#a51a10;--accent-hover:#bd2217;--accent-text:#f0675a;--radius:2px;--nav-h:72px;--wrap:1280px;--gutter:clamp(1.25rem, 4vw, 3rem);--edge:max(var(--gutter), calc((100vw - var(--wrap)) / 2 + var(--gutter)));--font:"Geist Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Geist Mono Variable", ui-monospace, monospace;--ease:cubic-bezier(.16, 1, .3, 1);--wipe:cubic-bezier(.77, 0, .18, 1);--tri-bleed:64px;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.6}img,video,iframe{max-width:100%;display:block}a{color:inherit}h1,h2,h3{letter-spacing:-.025em;text-wrap:balance;margin:0;font-weight:600;line-height:1.08}p{margin:0}:focus-visible{outline:2px solid var(--accent-text);outline-offset:3px}.wrap{width:100%;max-width:var(--wrap);padding-inline:var(--gutter);margin-inline:auto}.accent{color:var(--accent-text)}.muted{color:var(--muted);font-weight:400}h2{font-size:clamp(2rem,4.2vw,3.5rem)}.lead{max-width:55ch;color:var(--muted);margin-top:1.5rem;font-size:1.1875rem}.btn{border-radius:var(--radius);background:var(--accent);color:#fff;min-height:52px;font:inherit;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:background .25s var(--ease), transform .25s var(--ease);border:0;justify-content:center;align-items:center;gap:.5rem;padding:0 1.75rem;font-size:.9375rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--accent-hover)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:wait}.btn--sm{min-height:42px;padding:0 1.25rem;font-size:.8125rem}.btn:not(.btn--sm):after{content:"→";transition:transform .3s var(--ease);display:inline-block}.btn:not(.btn--sm):hover:after{transform:translate(5px)}.nav{z-index:40;transition:background .3s var(--ease), border-color .3s var(--ease);border-bottom:1px solid #0000;position:fixed;inset:0 0 auto}.nav.is-solid,.nav.is-open{backdrop-filter:blur(10px);border-bottom-color:var(--line);background:#151518f0}.nav__bar{height:var(--nav-h);max-width:var(--wrap);padding-inline:var(--gutter);align-items:center;gap:2rem;margin-inline:auto;display:flex}.nav__logo img{width:auto;height:38px}.nav__links{align-items:center;gap:2rem;margin-left:auto;display:flex}.nav__links>a{color:#d4d4d9;white-space:nowrap;font-size:.9375rem;text-decoration:none;transition:color .2s;position:relative}.nav__links>a:hover,.nav__links>a[aria-current=true]{color:var(--text)}.nav__langs{border-left:1px solid var(--line);font-family:var(--mono);gap:.25rem;padding-left:1.5rem;font-size:.8125rem;display:flex}.nav__langs a{color:var(--muted);padding:.25rem .4rem;text-decoration:none}.nav__langs a[aria-current=true],.nav__langs a:hover{color:var(--text)}.nav__toggle{cursor:pointer;background:0 0;border:0;width:44px;height:44px;margin-right:-10px;padding:0;display:none;position:relative}.nav__toggle span{background:var(--text);height:2px;transition:transform .3s var(--ease);position:absolute;left:11px;right:11px}.nav__toggle span:first-child{top:17px}.nav__toggle span:last-child{top:25px}.nav.is-open .nav__toggle span:first-child{transform:translateY(4px)rotate(45deg)}.nav.is-open .nav__toggle span:last-child{transform:translateY(-4px)rotate(-45deg)}@media (width>=961px){.nav__links>a:after{content:"";background:var(--accent-text);transform-origin:0;height:2px;transition:transform .4s var(--ease);position:absolute;bottom:-6px;left:0;right:0;transform:scaleX(0)}.nav__links>a:hover:after,.nav__links>a[aria-current=true]:after{transform:scaleX(1)}}@media (width<=960px){.nav__bar{gap:.75rem}.nav__cta{margin-left:auto}.nav__toggle{display:block}.nav__links{top:var(--nav-h);padding:.5rem var(--gutter) 1.5rem;background:var(--bg);border-bottom:1px solid var(--line);visibility:hidden;opacity:0;transition:opacity .25s var(--ease), transform .25s var(--ease), visibility .25s;flex-direction:column;align-items:stretch;gap:0;margin:0;position:absolute;left:0;right:0;transform:translateY(-8px)}.nav.is-open .nav__links{visibility:visible;opacity:1;transform:none}.nav__links>a{border-bottom:1px solid var(--line);color:var(--text);padding:1rem 0;font-size:1.125rem}.nav__langs{border:0;padding:1.25rem 0 0}}@media (width<=420px){.nav__logo img{height:30px}}.hero{min-height:100dvh;padding:calc(var(--nav-h) + 3rem) 0 clamp(3.5rem, 9vh, 6rem);isolation:isolate;align-items:flex-end;display:flex;position:relative;overflow:hidden}.hero__media,.hero__media>*{width:100%;height:100%;position:absolute;inset:0}.hero__media{z-index:-1}.hero__media img,.hero__media video{object-fit:cover}.hero__media:after{content:"";background:linear-gradient(#151518cc 0,#0000 200px),linear-gradient(#15151859 0%,#1515188c 55%,#151518eb 100%),linear-gradient(90deg,#151518b3,#0000 70%);position:absolute;inset:0}.hero__fallback{background:radial-gradient(ellipse 60% 70% at 85% 40%, #a51a102e, transparent 70%), radial-gradient(#ffffff12 1px, transparent 1px) 0 0 / 32px 32px, var(--bg)}.hero>.tri{top:var(--nav-h)}.hero__content{z-index:1;justify-items:start;gap:1.5rem;display:grid;position:relative}.hero__brand{font-family:var(--mono);letter-spacing:.32em;color:var(--accent-text);font-size:.875rem}.hero h1{max-width:27ch;font-size:clamp(2.25rem,4.6vw,4.25rem);font-weight:600}.hero__text{color:#cfcfd4;max-width:52ch;font-size:clamp(1.0625rem,1.5vw,1.25rem)}.hero .btn{margin-top:.75rem}.tri{z-index:0;width:calc(clamp(200px, 30vw, 540px) + var(--tri-bleed));aspect-ratio:1;pointer-events:none;background-repeat:no-repeat;background-size:contain;position:absolute}.tri--tr{top:0;right:calc(var(--tri-bleed) * -1);background-image:url(/media/brand/tri-tr.webp);background-position:100% 0}.tri--bl{bottom:calc(var(--tri-bleed) * -1);left:calc(var(--tri-bleed) * -1);aspect-ratio:671/720;background-image:url(/media/brand/tri-bl.webp);background-position:0 100%}@media (width<=720px){.tri{width:calc(52vw + var(--tri-bleed))}}.section{isolation:isolate;padding-block:clamp(5.5rem,12vw,10rem);position:relative;overflow:hidden}.section--alt{background:var(--surface);border-block:1px solid var(--line)}.section>.wrap{z-index:1;position:relative}.page-bg{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.page-bg:after{content:"";background:var(--shade,none);position:absolute;inset:0}.page-bg .tri{z-index:1}.page-bg__img{object-fit:cover;object-position:50% 30%;width:106%;max-width:none;height:106%;display:none;position:absolute;inset:-3%}.page-bg__img--static{display:block}.services{grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-top:clamp(2.5rem,6vw,4.5rem);display:grid}.service{border-radius:var(--radius);background:linear-gradient(to top, #151518f2 8%, #1515184d 80%), var(--photo,none) center / cover, var(--surface-2);flex-direction:column;justify-content:flex-end;min-height:clamp(230px,26vw,320px);padding:1.5rem;display:flex;position:relative;overflow:hidden}.service h3{font-size:clamp(1.4rem,2.2vw,1.9rem)}.service__body p{color:#cfcfd6;max-width:44ch;margin-top:.6rem}.service__bar{display:none}@media (width<=720px){.services{grid-template-columns:1fr}}.projects{grid-template-columns:repeat(12,1fr);gap:clamp(2.5rem,5vw,4.5rem) clamp(1rem,2.5vw,2rem);margin-top:clamp(3rem,7vw,5.5rem);display:grid}.p-wide{grid-column:span 8}.p-narrow{grid-column:span 4}.p-full{grid-column:span 12}.project{cursor:pointer}.project__open{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.project__media{border-radius:var(--radius);background:var(--surface-2);aspect-ratio:3/2;display:block;overflow:hidden}.p-narrow .project__media{aspect-ratio:4/5}.p-full .project__media{aspect-ratio:21/9}.project__media img,.project__media .ph{object-fit:cover;width:100%;height:100%;transition:transform .8s var(--ease)}.project:hover .project__media img,.project:hover .project__media .ph{transform:scale(1.03)}.project__info{margin-top:1.25rem}.project__name{transition:color .3s, transform .5s var(--ease);font-size:clamp(1.25rem,2vw,1.625rem)}.project:hover .project__name{color:var(--accent-text);transform:translate(6px)}.project__tech{color:var(--muted);margin-top:.5rem;font-size:.9375rem}.project__more,.showcase-nav,.projects__tri{display:none}@media (width<=820px){.p-wide,.p-narrow,.p-full{grid-column:1/-1}.p-narrow .project__media,.p-full .project__media{aspect-ratio:3/2}}.ph{background:radial-gradient(#ffffff0f 1px, transparent 1px) 0 0 / 24px 24px, linear-gradient(135deg, var(--surface-2), var(--surface));place-items:center;display:grid}.ph span{font-family:var(--mono);color:var(--muted);text-align:center;padding:.5rem 1rem;font-size:.8125rem}.ph--lg{aspect-ratio:16/9;width:100%}.about{grid-template-columns:1fr 1fr;align-items:start;gap:clamp(2rem,6vw,6rem);margin-top:clamp(2.5rem,6vw,4.5rem);display:grid}.about__text{max-width:52ch;color:var(--muted);gap:1.25rem;display:grid}.about__text p:first-child{color:var(--text);font-size:1.25rem}.about__media{aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden}.about__media img,.about__media .ph{object-fit:cover;object-position:55% 40%;width:100%;height:100%}.about-photo{display:none}.statement .sw{white-space:nowrap}.statement{border-top:1px solid var(--line-strong);letter-spacing:-.025em;text-wrap:balance;max-width:34ch;margin-top:clamp(4rem,9vw,7rem);padding-top:clamp(2rem,4vw,3rem);font-size:clamp(1.75rem,3.6vw,3rem);font-weight:600;line-height:1.12}@media (width<=820px){.about{grid-template-columns:1fr}}#contacto{--shade:linear-gradient(#151518e0, #151518e0)}.contact{grid-template-columns:5fr 7fr;align-items:start;gap:clamp(2.5rem,6vw,6rem);margin-top:clamp(3rem,7vw,5rem);display:grid}.contact__info h3{font-size:1.25rem}.contact address{color:#c4c4cb;margin-top:1.25rem;font-style:normal}.contact address strong{color:var(--text);letter-spacing:.08em}.contact dl{grid-template-columns:auto 1fr;gap:.5rem 1.5rem;margin:1.25rem 0 0;display:grid}.contact dt{color:#c4c4cb}.contact dd{margin:0}.contact dd a{text-decoration-color:var(--line-strong);text-underline-offset:4px}.contact dd a:hover{text-decoration-color:var(--accent-text)}.map{aspect-ratio:4/3;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface-2);margin-top:2rem;overflow:hidden}.map iframe{filter:grayscale()invert(.92)contrast(.9);border:0;width:100%;height:100%}@media (width<=900px){.contact{grid-template-columns:1fr}}.form{border:1px solid var(--line);border-radius:var(--radius);backdrop-filter:blur(10px);background:#151518d1;grid-template-columns:1fr 1fr;gap:1.5rem;padding:1.5rem;display:grid}.field{align-content:start;gap:.5rem;display:grid}.field--full{grid-column:1/-1}.field label{font-size:.9375rem;font-weight:500}.field input,.field textarea{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--bg);width:100%;color:var(--text);font:inherit;padding:.85rem 1rem;transition:border-color .2s}.field textarea{resize:vertical;min-height:9rem}.field input:hover,.field textarea:hover{border-color:#fff6}.field input:focus-visible,.field textarea:focus-visible{outline:2px solid var(--accent-text);outline-offset:0;border-color:var(--accent-text)}.field [aria-invalid=true]{border-color:#ff8a7d}.field__error{color:#ff9a8e;font-size:.875rem}.hp{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.form__actions{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.form__status{color:var(--muted);font-size:.9375rem}.form__status.is-ok{color:#8fd19e}.form__status.is-error{color:#ff9a8e}@media (width<=560px){.form{grid-template-columns:1fr;padding:1.25rem}.form .btn{width:100%}}.footer{border-top:1px solid var(--line);padding-block:2.5rem}.footer__row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.footer img{width:auto;height:32px}.footer p{color:var(--muted);font-size:.875rem}.viewer{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);width:min(1100px,100vw - 2rem);max-height:calc(100dvh - 2rem);color:var(--text);padding:0;overflow:auto}.viewer::backdrop{background:#08080ad9}.viewer__inner{position:relative}.viewer__close{z-index:2;border-radius:var(--radius);cursor:pointer;background:#151518d9;border:0;width:44px;height:44px;position:absolute;top:.75rem;right:.75rem}.viewer__close span{background:var(--text);height:2px;position:absolute;top:21px;left:12px;right:12px}.viewer__close span:first-child{transform:rotate(45deg)}.viewer__close span:last-child{transform:rotate(-45deg)}.viewer__stage{background:#0e0e10}.viewer__video,.viewer__main{object-fit:contain;width:100%;max-height:68dvh}.viewer__thumbs{gap:.5rem;padding:.75rem 1.5rem 0;display:flex;overflow-x:auto}.viewer__thumbs button{aspect-ratio:3/2;border-radius:var(--radius);cursor:pointer;opacity:.6;background:0 0;border:2px solid #0000;flex:none;width:96px;padding:0}.viewer__thumbs button[aria-current=true]{border-color:var(--accent-text);opacity:1}.viewer__thumbs img{object-fit:cover;width:100%;height:100%}.viewer__info{gap:.75rem;padding:1.5rem;display:grid}.viewer__info h3{font-size:1.5rem}.viewer__info p{max-width:62ch;color:var(--muted)}.viewer__tech strong{color:var(--text);font-weight:600}@media (prefers-reduced-motion:no-preference){.hero.is-play .hero__media img{animation:hero-settle 2.4s var(--ease) both}.hero.is-play .hero__brand,.hero.is-play .hero__text,.hero.is-play .btn{animation:rise .9s var(--ease) both}.hero__brand{animation-delay:.1s}.hero__text{animation-delay:.9s}.hero .btn{animation-delay:1.1s}.hero h1 .w{vertical-align:top;margin-bottom:-.12em;padding-bottom:.12em;display:inline-block;overflow:hidden}.hero h1 .w>span{display:inline-block}.hero.is-play h1 .w>span{animation:word-up 1s var(--ease) both;animation-delay:calc(.25s + var(--i) * 80ms)}.js-reveal .reveal{opacity:0;transition:opacity .8s var(--ease) var(--d,0s), transform .8s var(--ease) var(--d,0s);transform:translateY(24px)}.js-reveal .reveal.is-in{opacity:1;transform:none}.js-reveal .project.reveal{transform:none}.js-reveal .project.reveal .project__media{clip-path:inset(0 100% 0 0);transition:clip-path 1.2s var(--ease) var(--d,0s)}.js-reveal .project.reveal.is-in .project__media{clip-path:inset(0)}.js-reveal .project.reveal .project__media img{transition:transform 1.6s var(--ease) var(--d,0s);transform:scale(1.25)}.js-reveal .project.reveal.is-in .project__media img{transform:scale(1)}.js-reveal .project.reveal.is-in:hover .project__media img{transition-duration:.8s;transition-delay:0s;transform:scale(1.04)}.viewer[open]{animation:dialog-in .5s var(--ease) both}.viewer[open]::backdrop{animation:.4s both fade-in}.viewer__main{cursor:pointer}.viewer__main.is-swap{animation:photo-in .6s var(--ease) both}@supports (animation-timeline:scroll()){html:not(.fp) .nav:after{content:"";background:var(--accent);transform-origin:0;height:2px;animation:linear both progress scroll(root);position:absolute;inset:auto 0 -1px;transform:scaleX(0)}html:not(.fp) .hero__media{animation:linear both hero-drift scroll(root);animation-range:0 100vh}html:not(.fp) .hero__content{animation:linear both hero-fade scroll(root);animation-range:0 70vh}html:not(.fp) .statement .sw{color:#fff3;animation:linear both word-light view();animation-range:entry calc(8% + var(--i) * 3.5%) entry calc(38% + var(--i) * 3.5%)}}}@keyframes hero-settle{0%{transform:scale(1.14)}to{transform:scale(1)}}@keyframes hero-drift{to{transform:translateY(14%)scale(1.06)}}@keyframes hero-fade{to{opacity:0;transform:translateY(-40px)}}@keyframes rise{0%{opacity:0;transform:translateY(18px)}}@keyframes word-up{0%{transform:translateY(110%)}}@keyframes progress{to{transform:scaleX(1)}}@keyframes word-light{to{color:var(--text)}}@keyframes dialog-in{0%{opacity:0;transform:translateY(24px)scale(.98)}}@keyframes fade-in{0%{opacity:0}}@keyframes photo-in{0%{opacity:0;transform:scale(1.03)}}@keyframes fill{to{transform:scaleX(1)}}@keyframes tri-in-tr{0%{opacity:0;transform:translate(40px,-40px)}}@keyframes tri-in-bl{0%{opacity:0;transform:translate(-40px,40px)}}@keyframes fp-in-fwd{0%{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}@keyframes fp-in-back{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}@keyframes fp-out-fwd{to{opacity:.35;transform:translateY(-9%)scale(.97)}}@keyframes fp-out-back{to{opacity:.35;transform:translateY(9%)scale(.97)}}@keyframes edge-fwd{0%{opacity:1;transform:translateY(100dvh)}90%{opacity:1}to{opacity:0;transform:translateY(0)}}@keyframes edge-back{0%{opacity:1;transform:translateY(0)}90%{opacity:1}to{opacity:0;transform:translateY(calc(100dvh - 3px))}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition-duration:.01ms!important}}.fp-pager,.fp-edge{display:none}html.fp,html.fp body{height:100dvh;overflow:hidden}.fp .fp-section{z-index:1;overscroll-behavior:contain;visibility:hidden;background:var(--bg);scrollbar-width:none;height:100dvh;position:fixed;inset:0;overflow-y:auto}.fp .fp-section::-webkit-scrollbar{display:none}.fp .section--alt.fp-section{background:var(--surface)}.fp .hero.fp-section{overflow:hidden}.fp .fp-section.is-active{z-index:3;visibility:visible}.fp .fp-section.is-leaving{z-index:2;visibility:visible}.fp .section.fp-section{padding-block:calc(var(--nav-h) + 1.5rem) 2.5rem;flex-direction:column;display:flex}.fp .section.fp-section>.wrap{margin-block:auto}.fp .fp-section.is-active.dir-fwd{animation:fp-in-fwd 1s var(--wipe) both}.fp .fp-section.is-active.dir-back{animation:fp-in-back 1s var(--wipe) both}.fp .fp-section.out-fwd{animation:fp-out-fwd 1s var(--wipe) both}.fp .fp-section.out-back{animation:fp-out-back 1s var(--wipe) both}.fp .fp-edge{z-index:30;background:var(--accent-text);opacity:0;pointer-events:none;height:3px;display:block;position:fixed;top:0;left:0;right:0}.fp .fp-edge.go-fwd.run{animation:edge-fwd 1s var(--wipe) both}.fp .fp-edge.go-back.run{animation:edge-back 1s var(--wipe) both}.fp .nav:after{content:"";background:var(--accent);transform-origin:0;height:2px;transform:scaleX(var(--p,0));transition:transform 1s var(--wipe);position:absolute;inset:auto 0 -1px}.fp .fp-pager{z-index:35;flex-direction:column;gap:.2rem;display:flex;position:fixed;top:50%;right:.6rem;transform:translateY(-50%)}.fp-pager button{cursor:pointer;background:0 0;border:0;justify-content:flex-end;align-items:center;width:28px;height:28px;padding:0;display:flex;position:relative}.fp-pager button:after{content:"";filter:drop-shadow(0 0 2px #0009);width:14px;height:2px;transition:width .35s var(--ease), background .3s;background:#ffffff8c}.fp-pager button:hover:after{background:var(--text);width:26px}.fp-pager button[aria-current=true]:after{background:var(--accent-text);width:26px}.fp-pager button span{border-radius:var(--radius);background:var(--bg);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .25s, transform .35s var(--ease);padding:.25rem .6rem;font-size:.8125rem;position:absolute;right:calc(100% + 6px);transform:translate(8px)}.fp-pager button:hover span,.fp-pager button:focus-visible span{opacity:1;transform:none}.fp .footer{z-index:4;background:var(--bg);opacity:0;pointer-events:none;padding-block:.7rem;transition:opacity .4s .6s;position:fixed;inset:auto 0 0}.fp body[data-page=last] .footer{opacity:1;pointer-events:auto}.fp .footer img{height:22px}.fp .tri{translate:calc(var(--mx,0) * 20px) calc(var(--my,0) * 14px);transition:translate .6s cubic-bezier(.2,.7,.2,1)}.fp .page-bg .tri--tr,.fp .about-photo .tri--tr,.fp .projects>.tri--tr{top:var(--nav-h)}.fp .fp-section .tri{opacity:0}.fp .fp-section.is-active .tri,.fp .fp-section.is-leaving .tri{opacity:1}.fp .fp-section.is-active .tri--tr{animation:tri-in-tr 1.4s var(--ease) .35s both}.fp .fp-section.is-active .tri--bl{animation:tri-in-bl 1.4s var(--ease) .35s both}.fp .page-bg__img{opacity:0;scale:1.12;translate:calc(var(--mx,0) * -16px) calc(var(--my,0) * -10px);transition:opacity .9s,scale 0s linear .9s,translate .6s cubic-bezier(.2,.7,.2,1);display:block}.fp .page-bg__img.is-on{opacity:1;transition:opacity .9s,scale 9s ease-out,translate .6s cubic-bezier(.2,.7,.2,1);scale:1.02}.fp #servicos{--cycle:5s;--shade:linear-gradient(90deg, #151518f2 0%, #151518d1 34%, #1515184d 100%), linear-gradient(to top, #1515188c, transparent 38%)}.fp .services{border-bottom:1px solid var(--line-strong);max-width:min(560px,46vw);margin-top:1.75rem;display:block}.fp .service{border-top:1px solid var(--line-strong);cursor:pointer;background:0 0;border-radius:0;min-height:0;padding:1.1rem 0 1.15rem;display:block;overflow:visible}.fp .service h3{color:#ffffff73;font-size:clamp(1.5rem,2.6vw,2.4rem);transition:color .4s}.fp .service:hover h3{color:#fffc}.fp .service.is-on h3{color:var(--text)}.fp .service__body{opacity:0;transition:grid-template-rows .6s var(--ease), opacity .5s ease;grid-template-rows:0fr;display:grid}.fp .service__body>div{min-height:0;overflow:hidden}.fp .service__body p{color:#d9d9de;max-width:44ch;margin-top:0;padding-top:.75rem;font-size:1.0625rem}.fp .service.is-on .service__body{opacity:1;grid-template-rows:1fr}.fp .service__bar{background:var(--accent-text);transform-origin:0;width:100%;height:2px;display:block;position:absolute;top:-1px;left:0;transform:scaleX(0)}.fp .service.is-on .service__bar{animation:fill var(--cycle) linear forwards}.fp .services:hover .service__bar{animation-play-state:paused}.fp #projetos{--cycle:6.5s}.fp #projetos .page-bg .tri{display:none}.fp .projects>.projects__tri{z-index:2;display:block}.fp #projetos.fp-section{padding-bottom:0}.fp #projetos>.wrap{z-index:auto;margin-block:0;position:static}.fp #projetos .wrap>h2,.fp #projetos .wrap>.lead{z-index:3;text-shadow:0 1px 20px #0009;position:relative}.fp #projetos .lead{color:#d9d9de;max-width:34ch;margin-top:.6rem;font-size:1rem}.fp .projects{margin:0;display:block}.fp .project{z-index:1;opacity:0;visibility:hidden;grid-column:auto;transition:opacity .9s,visibility 0s linear .9s;position:absolute;inset:0}.fp .project.is-on{opacity:1;visibility:visible;transition:opacity .9s,visibility}.fp .project__open{height:100%;position:absolute;inset:0}.fp .project__open:focus-visible{outline-offset:-6px}.fp .project__media,.fp .p-narrow .project__media,.fp .p-full .project__media{aspect-ratio:auto;border-radius:0;position:absolute;inset:0}.fp .project__media img{scale:1.14;translate:calc(var(--mx,0) * -12px) calc(var(--my,0) * -8px);transition:scale 0s linear .9s,translate .6s cubic-bezier(.2,.7,.2,1);transform:none}.fp .project.is-on .project__media img{transition:scale 9s ease-out,translate .6s cubic-bezier(.2,.7,.2,1);scale:1.06}.fp .project:hover .project__media img{transform:none}.fp .project__media:after{content:"";background:linear-gradient(90deg,#151518e6 0%,#1515188c 40%,#15151814 75%),linear-gradient(#0000 55%,#151518d9 100%),linear-gradient(#151518b3 0%,#0000 25%);position:absolute;inset:0}.fp .project__info{left:var(--edge);z-index:2;justify-items:start;gap:.75rem;max-width:min(520px,44vw);margin:0;display:grid;position:absolute;bottom:clamp(2rem,6vh,3.25rem)}.fp .project__name{font-size:clamp(1.9rem,3.6vw,3.25rem);line-height:1.05}.fp .project:hover .project__name{color:inherit;transform:none}.fp .project__tech{color:#d0d0d6;margin:0;font-size:.9375rem}.fp .project__more{justify-items:start;gap:1.25rem;display:grid}.fp .project__text{color:#e1e1e6;max-width:46ch;font-size:1.0625rem}.fp .project.is-on .project__name,.fp .project.is-on .project__tech,.fp .project.is-on .project__text,.fp .project.is-on .project__more .btn{animation:rise .85s var(--ease) both}.fp .project.is-on .project__name{animation-delay:.25s}.fp .project.is-on .project__tech{animation-delay:.35s}.fp .project.is-on .project__text{animation-delay:.45s}.fp .project.is-on .project__more .btn{animation-delay:.55s}.fp .showcase-nav{right:var(--edge);z-index:3;align-items:center;gap:1rem;display:flex;position:absolute;bottom:clamp(2rem,6vh,3.25rem)}.showcase-arrows{gap:.5rem;display:flex}.showcase-arrows button{border:1px solid var(--line-strong);border-radius:var(--radius);width:44px;height:44px;color:var(--text);font:inherit;cursor:pointer;transition:background .25s, border-color .25s, transform .25s var(--ease);background:#15151880;font-size:1.25rem}.showcase-arrows button:hover{border-color:var(--accent-text);background:var(--accent)}.showcase-arrows button:active{transform:translateY(1px)}.showcase-thumbs{gap:.5rem;display:flex}.showcase-thumbs button{aspect-ratio:3/2;border:1px solid var(--line-strong);border-radius:var(--radius);opacity:.6;cursor:pointer;background:#000;width:clamp(72px,6.5vw,118px);padding:0;transition:opacity .3s,border-color .3s;position:relative;overflow:hidden}.showcase-thumbs button:hover{opacity:.9}.showcase-thumbs button[aria-current=true]{opacity:1;border-color:#ffffffb3}.showcase-thumbs img{object-fit:cover;width:100%;height:100%}.showcase-thumbs .bar{background:var(--accent-text);transform-origin:0;height:3px;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.showcase-thumbs [aria-current=true] .bar{animation:fill var(--cycle) linear forwards}.is-paused .bar,.dialog-open .bar,.dialog-open .service__bar{animation-play-state:paused}.fp .about-photo{z-index:0;width:min(46vw,680px);display:block;position:absolute;top:0;bottom:0;right:0;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 34%);mask-image:linear-gradient(90deg,#0000 0,#000 34%)}.fp .about-photo img{object-fit:cover;object-position:55% 40%;width:100%;height:100%}.fp .about-photo:before{content:"";z-index:1;background:linear-gradient(#0000 60%,#151518a6),linear-gradient(#1515188c,#0000 22%);position:absolute;inset:0}.fp .about-photo .tri{z-index:2}.fp .about{margin-top:1.75rem;display:block}.fp .about__text{max-width:50ch}.fp .about__media{display:none}.fp .statement{max-width:min(34ch,46vw);margin-top:2.25rem;padding-top:1.5rem;font-size:clamp(1.5rem,2.5vw,2.25rem)}.fp .statement .sw{color:#ffffff38;transition:color .5s ease calc(.9s + var(--i) * 60ms)}.fp .fp-section.is-active .statement .sw{color:var(--text)}.fp #contacto{--shade:linear-gradient(90deg, #151518f0, #151518bd), linear-gradient(to top, #15151880, transparent 50%)}.fp #contacto.fp-section{padding-top:calc(var(--nav-h) + 1rem);padding-bottom:4.25rem}.fp #contacto h2{font-size:clamp(1.75rem,3.2vw,2.75rem)}.fp #contacto h2 br{display:none}.fp #contacto h2 .accent{margin-left:.3em}.fp #contacto .lead{margin-top:.75rem;font-size:1.0625rem}.fp .contact{gap:3rem;margin-top:1.25rem}.fp .contact address,.fp .contact dl{margin-top:.75rem}.fp .map{aspect-ratio:16/6;margin-top:1.25rem}.fp .form{gap:.85rem;padding:1.1rem 1.25rem}.fp .field textarea{min-height:5rem}@media (height<=760px){.fp #contacto .lead{display:none}}
