@layer reset{*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}body,h1,h2,h3,p,figure,ol,ul{margin:0}ol,ul{padding:0;list-style:none}img{max-width:100%;height:auto;display:block}button,input,select,textarea{font:inherit}button,a{color:inherit}}@layer tokens{:root{--violet:#56315f;--whatsapp:#25d366;--whatsapp-hover:#1ebe5b;--violet-hover:#785780;--violet-deep:#332438;--lilac:#d8c9da;--powder:#bed0df;--ink:#181218;--paper:#fffaf5;--surface:#fcfafb;--mist:#f4f0f3;--line:#d8c9da;--muted:#655d65;--white:oklch(100% 0 0);--focus-ring:var(--violet);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-soft:cubic-bezier(.25, 1, .5, 1);--space-1:.5rem;--space-2:.75rem;--space-3:1rem;--space-4:1.5rem;--space-5:2rem;--space-6:3rem;--space-7:clamp(4.5rem, 8vw, 7rem);--space-8:clamp(6rem, 11vw, 9rem);--content-max:90rem;--page-pad:clamp(1.25rem, 4vw, 4.5rem);--shell-edge:max(var(--page-pad), calc((100vw - var(--content-max)) / 2 + var(--page-pad)));--header-height:5.5rem;--header-scrolled-height:4.5rem;--radius-soft:.625rem;--radius-pill:999px;--shadow-float:0 1.5rem 4rem #1812183d;--z-header:30;--z-float:35;--z-menu:40;--z-modal:70;--dot-size:clamp(.375rem, .58vw, .5625rem);--dot-pitch:clamp(1.25rem, 1.8vw, 1.75rem)}}@layer base{body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;line-height:1.65;overflow-x:clip}body.menu-open,html.modal-open,body.modal-open{overscroll-behavior:none;overflow:hidden}::selection{background:var(--violet);color:var(--white)}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}h2{letter-spacing:-.035em;max-width:14ch;font-size:clamp(2.4rem,min(6vw,8svh),5.15rem);line-height:.98}h2 em{font-family:var(--font-serif);font-weight:500}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.section-shell{width:min(100%, var(--content-max));padding-inline:var(--page-pad);margin-inline:auto}.section-label,.section-index{letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:700}.skip-link{top:var(--space-2);left:var(--space-2);z-index:100;border-radius:var(--radius-soft);background:var(--paper);padding:var(--space-2) var(--space-3);transition:transform .18s var(--ease-out);font-weight:700;text-decoration:none;position:fixed;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.page-progress{z-index:calc(var(--z-modal) + 1);pointer-events:none;height:3px;position:fixed;inset:0 0 auto}.page-progress span{transform-origin:0;background:var(--lilac);will-change:transform;height:100%;display:block;transform:scaleX(0)}}@layer components{.brand{z-index:calc(var(--z-menu) + 1);min-width:2.75rem;min-height:2.75rem;font-family:var(--font-serif);letter-spacing:-.025em;flex:none;align-items:center;font-size:clamp(1.3rem,2vw,1.7rem);font-weight:500;line-height:1;text-decoration:none;display:inline-flex;position:relative}.brand span{color:var(--violet);font-style:italic}.button{justify-content:center;align-items:center;gap:var(--space-1);border-radius:var(--radius-pill);cursor:pointer;min-height:2.9rem;transition:transform .18s var(--ease-out), background-color .18s ease, color .18s ease, border-color .18s ease;border:1px solid #0000;padding:.8rem 1.4rem;font-size:.875rem;font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(0)scale(.98)}.button--dark{background:var(--ink);color:var(--white)}.button--dark:hover{background:var(--violet)}.text-link{align-items:center;gap:var(--space-1);min-height:2.75rem;padding-block:var(--space-1);text-underline-offset:.35rem;font-size:.875rem;font-weight:700;text-decoration-thickness:1px;display:inline-flex}.text-link span{transition:transform .18s var(--ease-out)}.text-link:hover span{transform:translate(2px,-2px)}.circle-button{border-radius:var(--radius-pill);cursor:pointer;width:3rem;height:3rem;transition:transform .18s var(--ease-out), color .18s ease, background-color .18s ease;background:0 0;border:1px solid;flex:none;place-items:center;display:inline-grid}.circle-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:1.15rem}.circle-button:hover{background:var(--ink);color:var(--white);transform:translateY(-2px)}.circle-button:active{transform:scale(.96)}}@layer layout{.services,.site-footer,.case-visual,.menu-open .site-header{--focus-ring:var(--powder)}.contact-whatsapp:hover,.whatsapp-float:hover{background:var(--whatsapp-hover);transform:translateY(-2px)}}@layer modal;@layer motion{.js .section-scene .section-label,.js .section-scene .section-index,.js .section-scene h2,.js .section-scene .works-head,.js .section-scene .service-list,.js .section-scene .process-steps,.js .section-scene .contact-layout{transition-duration:.76s;transition-timing-function:var(--ease-out)}.js .settle{opacity:0;transition:opacity .62s ease, transform .72s var(--ease-out);transform:translateY(1.25rem)}.js .settle.in-view{opacity:1;transform:translateY(0)}.service-row:nth-child(2),.process-steps li:nth-child(2){transition-delay:80ms}.service-row:nth-child(3),.process-steps li:nth-child(3){transition-delay:.16s}}@layer responsive{@media (width<=64rem){:root{--header-height:4.5rem}.menu-open .brand span{color:var(--white)}}@media (width<=36rem){:root{--space-7:clamp(3.5rem, 14vw, 4.5rem);--space-8:clamp(4.5rem, 18vw, 5.5rem);--page-pad:clamp(1.25rem, 6vw, 1.5rem)}h2{font-size:min(clamp(2.55rem,12vw,3.6rem),15vw)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.js .settle,.js .section-scene *,.js .section-scene .carousel-track,.js .section-scene .contact-layout{opacity:1;filter:none;clip-path:none;transform:none}}}html{scroll-padding-top:0}.hero,.about,.services,.works,.process,.contact{scroll-snap-align:start}.contact-socials a,.footer-socials a,.footer-nav a{font-size:.75rem;font-weight:750;position:relative}.contact-socials a:after,.footer-socials a:after,.footer-nav a:after{content:"";transform-origin:100%;height:1px;transition:transform .24s var(--ease-out);background:currentColor;position:absolute;bottom:-.2rem;left:0;right:0;transform:scaleX(0)}.contact-socials a:hover:after,.footer-socials a:hover:after,.footer-nav a:hover:after{transform-origin:0;transform:scaleX(1)}@media (width>=64.01rem){.about,.services,.process,.contact{align-content:center;min-height:100svh}.services,.contact{flex-direction:column;justify-content:center;display:flex}}@media (width>=64.01rem) and (height>=48rem) and (prefers-reduced-motion:no-preference){html{scroll-snap-type:y mandatory}.hero,.about,.services,.works,.process,.contact,.site-footer{scroll-snap-stop:always}}.circle-button:disabled{opacity:.32;cursor:default;pointer-events:none;transform:none}
