@charset "UTF-8";
@font-face{font-family:Manrope;font-style:normal;font-weight:400 600;font-display:swap;src:url("fonts/manrope-latin.woff2") format("woff2")}
[hidden]{display:none!important}
:root{--paper:#f9f8f6;--white:#ffffff;--ink:#2c2c2c;--muted:#686666;--accent:#686666;--line:#ddd6cd;--sand:#e8dfd1;--display:var(--sans);--sans:Manrope,"Segoe UI",Arial,Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.65}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}img{max-width:100%;display:block}figure,p,h1,h2,h3{margin:0}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #1e1306;outline-offset:6px}::selection{background:#ddd6cd}button{border:0;background:none}h1,h2{font-family:var(--display);font-weight:500;letter-spacing:-.045em;line-height:1.12}h1,h2{color:#1e1306}h1{font-size:clamp(42px,4.1vw,64px)}h1>span{display:block;color:var(--accent);font-weight:400}h2{font-size:clamp(34px,3.55vw,50px)}h1 em,h2 em{font-style:normal;font-weight:400;color:var(--accent)}h3{font-size:20px;font-weight:500;line-height:1.3;letter-spacing:-.02em}.eyebrow{font-size:10px;letter-spacing:.17em;text-transform:uppercase;font-weight:600;display:flex;align-items:center;gap:12px;margin-bottom:26px}.small-line{width:27px;height:1px;background:currentColor}.section{max-width:1440px;margin:auto;padding:104px 64px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:60px;margin-bottom:48px}.section-heading>p{max-width:330px;color:var(--muted);padding-bottom:5px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;min-height:52px;padding:15px 22px;font-size:12px;font-weight:600;letter-spacing:.015em;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button span{font-size:19px}.dark{background:var(--ink);color:var(--white)}.dark:hover{background:#1e1306}.light{background:var(--paper);color:var(--ink)}.text-link{display:inline-flex;align-items:center;gap:20px;font-size:12px;font-weight:600;padding:8px 0;border-bottom:1px solid currentColor;line-height:1.6}.text-link span{font-size:19px}.skip-link{position:fixed;top:12px;left:20px;z-index:100;background:var(--ink);color:white;padding:10px;transform:translateY(-180%)}.skip-link:focus{transform:none}
.header{height:96px;background:var(--paper);display:flex;align-items:center;justify-content:space-between;gap:30px;padding:0 64px;position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line)}.brand img{width:116px;height:58px;object-fit:contain;filter:brightness(0)}.header nav{display:flex;align-items:center;gap:34px;font-size:12px}.header nav a:not(.nav-contact):hover{color:var(--accent);text-decoration:underline;text-underline-offset:6px}.nav-contact{padding:11px 17px;border:1px solid var(--ink);background:var(--ink);color:var(--white);display:flex;align-items:center;gap:25px;transition:background .25s}.nav-contact:hover{background:#1e1306}.nav-contact span{font-size:20px}.menu-toggle{display:none}.hero{position:relative;display:grid;grid-template-columns:1.08fr 1fr;max-width:1600px;margin:auto;min-height:670px}.hero-copy{padding:88px 54px 70px 64px;display:flex;align-items:flex-start;flex-direction:column}.hero-description{max-width:400px;color:var(--muted);margin-top:29px;font-size:15px;line-height:1.8}.hero-actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-top:32px}.hero-actions .text-link{font-size:11px}.hero-bottom{display:flex;flex-direction:column;gap:1px;color:var(--muted);font-size:10px;letter-spacing:.05em;margin-top:49px}.hero-photo{position:relative;min-height:670px;overflow:hidden}.hero-photo>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 59%}.hero-photo:after{content:"";position:absolute;inset:65% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.4));pointer-events:none}.hero-photo figcaption{position:absolute;bottom:32px;left:32px;right:32px;z-index:1;display:flex;align-items:center;justify-content:space-between;color:white;font-size:12px;letter-spacing:.01em}.hero-photo figcaption a{display:grid;place-items:center;border:1px solid #ffffff80;border-radius:50%;width:45px;height:45px;font-size:26px}.scroll-note{position:absolute;bottom:25px;left:64px;font-size:10px;display:flex;gap:11px;align-items:center;letter-spacing:.04em}.scroll-note span{font-size:18px}
.projects{border-top:1px solid var(--line)}.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:30px}.filter{padding:9px 16px;font-size:11px;border:1px solid var(--line);min-height:41px}.filter:hover{border-color:var(--ink)}.filter.active{color:var(--white);background:var(--ink);border-color:var(--ink)}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 24px}.project-card{padding:0;text-align:left;min-width:0}.project-card[hidden]{display:none}.project-image{display:block;position:relative;overflow:hidden;background:var(--sand);aspect-ratio:4/5}.project-image>img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.project-card:hover .project-image>img{transform:scale(1.035)}.expand{position:absolute;right:15px;bottom:15px;width:37px;height:37px;display:grid;place-items:center;background:var(--white);border-radius:50%;font-size:23px}.project-caption{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:15px;font-family:var(--display);font-size:18px;line-height:1.45;letter-spacing:-.025em}.project-caption small{display:block;font-family:var(--sans);font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.project-caption>span:last-child{font-family:var(--sans);font-size:10px;color:var(--muted)}.gallery-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:32px;border-top:1px solid var(--line);padding-top:18px}.gallery-bottom p{font-size:11px;color:var(--muted)}
.about{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:90px;border-top:1px solid var(--line)}.about-image{position:relative;max-height:650px;overflow:hidden;aspect-ratio:4/5}.about-image img{height:100%;width:100%;object-fit:cover}.image-label{position:absolute;bottom:24px;left:24px;background:var(--paper);padding:10px 15px;font-size:11px}.about-copy h2{margin-bottom:28px}.about-copy .lead{font-size:19px;line-height:1.6;color:var(--ink);max-width:430px}.about-copy>p:not(.eyebrow):not(.lead){color:var(--muted);margin-top:18px;font-size:14px}.specialties{display:grid;grid-template-columns:1fr 1fr;gap:30px;border-top:1px solid var(--line);margin-top:30px;padding-top:22px;margin-bottom:25px}.specialties span{font-size:10px;color:var(--accent)}.specialties h3{margin:9px 0;font-size:18px}.specialties p{font-size:12px;color:var(--muted)}.process{background:#ddd6cd;color:var(--ink)}.process-inner{display:grid;grid-template-columns:1fr 1fr;gap:110px}.process h2 em{color:#686666}.process .eyebrow{color:#686666}.process-intro>p:not(.eyebrow){color:#4d4c4a;margin:26px 0 32px;max-width:340px;font-size:14px}.process-list{margin:0;padding:0;list-style:none}.process-list li{display:flex;gap:28px;border-top:1px solid #b8b5b1;padding:25px 0}.process-list li>span{font-family:var(--display);font-size:24px;color:#686666;line-height:1.2}.process-list h3{font-size:18px}.process-list p{font-size:13px;color:#4d4c4a;max-width:360px;margin-top:7px;line-height:1.7}.process-list li:last-child{padding-bottom:0}.faq{display:grid;grid-template-columns:1fr 1fr;gap:110px}.faq>div>p:not(.eyebrow){font-size:14px;color:var(--muted);margin-top:24px}.faq-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line);padding:22px 0}summary{cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center;list-style:none;font-size:14px;font-weight:500;min-height:28px}summary::-webkit-details-marker{display:none}summary span{font-size:23px;line-height:1;transition:transform .2s}details[open] summary span{transform:rotate(45deg)}details p{font-size:13px;color:var(--muted);margin:17px 30px 0 0;line-height:1.8}
.contact{background:var(--paper);border-top:1px solid var(--line)}.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:100px}.contact-copy>p:not(.eyebrow){max-width:390px;font-size:14px;color:var(--muted);margin:28px 0 34px}.contact-direct{display:flex;flex-direction:column;gap:22px}.contact-direct a{font-size:18px;line-height:1.5;overflow-wrap:anywhere;max-width:360px}.contact-direct small{display:block;text-transform:uppercase;font-size:9px;letter-spacing:.16em;color:var(--muted);margin-bottom:7px}.contact-direct span{margin-left:10px}.contact-form{background:var(--white);padding:34px}.contact-form h3{font-family:var(--display);font-size:25px;margin-bottom:26px;letter-spacing:-.025em}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:20px;min-width:0}.field label{font-size:11px;font-weight:600}.field input,.field textarea,.field select{width:100%;min-width:0;color:var(--ink);background:transparent;border:0;border-bottom:1px solid #b8b5b1;border-radius:0;padding:10px 0;font-size:13px;outline-offset:1px}.field input::placeholder,.field textarea::placeholder{color:#686666;opacity:1}.field textarea{resize:vertical;min-height:80px}.field select{height:43px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:22px}.contact-form>.button{width:100%;margin-top:3px}.form-note{font-size:10px;color:var(--muted);line-height:1.7;margin-top:12px}.message-review{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}.message-review h4{font-size:13px;margin:0 0 10px}.message-review>p:not(.form-note){white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;max-height:250px;overflow:auto;padding:12px;background:var(--paper);margin-bottom:16px}
.footer{background:#cecdca;color:var(--ink);padding:50px 64px 22px}.footer-top{max-width:1312px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:25px;border-bottom:1px solid #a8a6a3;padding-bottom:35px}.footer-brand img{width:116px;height:58px;object-fit:contain;filter:brightness(0)}.footer-top>p{font-family:var(--display);font-size:24px;letter-spacing:-.025em}.back-top{font-size:11px;display:flex;gap:20px}.back-top span{font-size:17px}.footer-grid{max-width:1312px;margin:40px auto 45px;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:50px}.footer-grid .eyebrow{font-size:9px;color:#4d4c4a;margin-bottom:14px}.footer-grid a:not(.text-link),.footer-grid address{display:block;font-style:normal;font-size:12px;color:#2c2c2c;line-height:2;overflow-wrap:anywhere}.footer-grid .text-link{font-size:11px;margin-top:8px}.footer-grid a:hover{text-decoration:underline;text-underline-offset:3px}.footer-bottom{max-width:1312px;margin:auto;border-top:1px solid #a8a6a3;padding-top:20px;display:flex;justify-content:space-between;font-size:9px;color:#4d4c4a;gap:20px}
.lightbox{background:var(--ink);color:var(--white);border:0;padding:55px 65px 20px;max-width:95vw;max-height:95dvh;width:1000px}.lightbox::backdrop{background:#111b;backdrop-filter:blur(6px)}.lightbox figure{margin:auto;max-width:100%;text-align:center}.lightbox figure img{max-height:75dvh;width:100%;object-fit:contain}.lightbox figcaption{font-size:12px;margin-top:14px}.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;color:white;min-width:44px;min-height:44px;font-size:27px;background:#2c2c2cb0}.lightbox-close{right:10px;top:4px;font-size:34px}.lightbox-prev{left:8px;top:48%}.lightbox-next{right:8px;top:48%}body.modal-open{overflow:hidden}
@media(min-width:1550px){.header{padding-left:max(64px,calc((100vw - 1312px)/2));padding-right:max(64px,calc((100vw - 1312px)/2))}.hero-copy{padding-left:96px}.scroll-note{left:96px}}
@media(max-width:1150px){.header{padding:0 36px}.section{padding:80px 36px}.header nav{gap:22px}.hero-copy{padding:65px 35px 70px 36px}.hero{min-height:620px}.hero-photo{min-height:620px}.hero-actions{flex-direction:column;align-items:flex-start;gap:12px}.hero-bottom{margin-top:30px}.scroll-note{left:36px}.about,.process-inner,.faq,.contact-inner{gap:50px}.footer{padding-left:36px;padding-right:36px}.about-copy h2{font-size:42px}.project-caption{font-size:19px}}
@media(max-width:760px){html{scroll-padding-top:80px}.header{height:80px;padding:0 24px}.brand img{width:100px;height:50px}.menu-toggle{display:flex;align-items:center;gap:13px;font-size:12px;min-height:44px}.menu-icon{position:relative;width:23px;height:12px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.header nav{position:absolute;display:none;left:0;right:0;top:80px;background:var(--paper);padding:24px;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;box-shadow:0 16px 15px #2c2c2c0a}.header nav.is-open{display:flex}.header nav>a{padding:14px 0;font-size:14px;min-height:48px}.header nav .nav-contact{padding:12px 16px;margin-top:12px;justify-content:space-between}.hero{grid-template-columns:1fr;min-height:0}.hero-copy{padding:50px 24px 38px}.hero h1{font-size:clamp(34px,9vw,48px);line-height:1.13}.hero .eyebrow{margin-bottom:24px}.hero-description{font-size:14px;max-width:390px;margin-top:23px}.hero-actions{margin-top:26px;flex-direction:row;flex-wrap:wrap;gap:14px 20px;align-items:center}.hero-bottom{flex-direction:row;flex-wrap:wrap;gap:5px 20px;margin-top:27px;font-size:9px}.hero-photo{min-height:0;height:560px;max-height:85vh}.hero-photo>img{object-position:center 56%}.hero-photo figcaption{bottom:23px;left:24px;right:24px}.scroll-note{display:none}.section{padding:68px 24px}.section-heading{display:block;margin-bottom:28px}.section-heading>p{margin-top:22px;max-width:400px;font-size:13px}.eyebrow{font-size:9px;margin-bottom:21px}h2{font-size:38px}.filter-row{gap:7px;margin-bottom:24px}.filter{padding:9px 11px;font-size:10px}.gallery{grid-template-columns:1fr 1fr;gap:27px 17px}.project-caption{font-size:18px}.project-caption>span:last-child{display:none}.project-caption small{font-size:8px;letter-spacing:.1em}.expand{width:32px;height:32px;font-size:20px;bottom:10px;right:10px}.gallery-bottom{gap:20px}.gallery-bottom p{font-size:10px}.gallery-bottom .text-link{font-size:10px;gap:9px}.about{grid-template-columns:1fr;gap:36px}.about-image{aspect-ratio:5/4;max-height:480px}.about-image img{object-position:center 51%}.about-copy h2{font-size:38px}.about-copy .lead{font-size:18px}.process-inner,.faq,.contact-inner{grid-template-columns:1fr;gap:40px}.process-intro>p:not(.eyebrow){max-width:400px}.process-list p{max-width:none}.process-list li{gap:24px}.faq{gap:30px}.faq>div>p:not(.eyebrow){margin-top:20px}.contact-copy>p:not(.eyebrow){margin:22px 0 30px}.contact-direct{gap:20px}.contact-form{padding:27px}.footer{padding:40px 24px 20px}.footer-top{flex-wrap:wrap;gap:22px}.footer-top>p{order:3;flex-basis:100%;font-size:23px}.footer-grid{grid-template-columns:1fr 1fr;gap:30px}.footer-grid>div:last-child{grid-column:1/-1}.footer-grid>div:last-child a{display:inline-block;margin-right:18px}.footer-grid a:not(.text-link),.footer-grid address{font-size:11px}.footer-bottom{flex-direction:column;gap:6px}.lightbox{padding:50px 40px 20px;width:96vw;max-width:96vw}.lightbox-prev{left:0}.lightbox-next{right:0}}
@media(max-width:390px){h2,.about-copy h2{font-size:34px}.hero h1{font-size:34px}.hero-actions{gap:12px}.hero-actions .button{font-size:11px;gap:16px}.gallery{gap:25px 12px}.project-caption{font-size:16px}.contact-form{padding:22px 19px}.form-row{grid-template-columns:1fr;gap:0}.contact-direct a{font-size:16px}.footer-grid{grid-template-columns:1fr}.footer-grid>div:last-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Motion is added progressively: content remains visible without JavaScript. */
.header{transition:box-shadow .35s ease,background-color .35s ease}
.header.is-scrolled{box-shadow:0 8px 30px #2c2c2c0b}
.floating-whatsapp{position:fixed;right:24px;bottom:max(24px,env(safe-area-inset-bottom));z-index:25;display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:12px 18px;background:var(--ink);color:var(--white);border:1px solid #ffffff30;border-radius:30px;box-shadow:0 5px 22px #2c2c2c22;font-size:12px;font-weight:500;transition:transform .25s,background .25s,box-shadow .25s}
.floating-whatsapp{line-height:1}
.floating-whatsapp img{display:block;width:24px;height:24px;flex:0 0 24px;object-fit:contain;filter:invert(1)}
.floating-whatsapp:hover{background:#1e1306;box-shadow:0 8px 25px #2c2c2c30;transform:translateY(-3px)}
.modal-open .floating-whatsapp{visibility:hidden;pointer-events:none}
@media(max-width:760px){.floating-whatsapp{right:16px;bottom:max(16px,env(safe-area-inset-bottom));width:52px;height:52px;padding:0}.floating-whatsapp span{display:none}}
@media(prefers-reduced-motion:reduce){.floating-whatsapp:hover{transform:none}}
.button span,.text-link span,.nav-contact span,.back-top span{display:inline-block;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.button:hover span,.text-link:hover span,.nav-contact:hover span{transform:translate(3px,-3px)}
.back-top:hover span{transform:translateY(-4px)}
.filter{transition:background-color .25s,color .25s,border-color .25s,transform .25s}
.filter:hover{transform:translateY(-2px)}
.project-image .expand{transition:transform .3s,background-color .3s}
.project-card:hover .expand{transform:rotate(45deg)}
.contact-direct a{transition:color .25s}
.contact-direct a:hover{color:#1e1306}
.process-list li{transition:border-color .5s}
.process-list li.is-visible{border-color:#8f8a83}
.lightbox[open]{animation:dialog-enter .28s cubic-bezier(.2,.7,.2,1) both}
.message-review:not([hidden]){animation:content-enter .45s cubic-bezier(.2,.7,.2,1) both}
.header nav.is-open{animation:menu-enter .25s ease-out both}
@media(prefers-reduced-motion:no-preference){
  .motion-enabled .hero-copy>.eyebrow{animation:content-enter .75s .05s both}
  .motion-enabled .hero h1{animation:content-enter .9s .15s both}
  .motion-enabled .hero-description{animation:content-enter .85s .29s both}
  .motion-enabled .hero-actions{animation:content-enter .85s .4s both}
  .motion-enabled .hero-bottom{animation:content-enter .85s .5s both}
  .motion-enabled .hero-photo>img{animation:hero-settle 9s cubic-bezier(.15,.5,.3,1) both}
  .motion-enabled .hero-photo figcaption{animation:content-enter .9s .6s both}
  .motion-enabled .scroll-note span{animation:scroll-hint 2.5s 1.5s 3}
  .motion-enabled .reveal{transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
  .motion-enabled .reveal:not(.is-visible){opacity:0;transform:translateY(24px)}
  .motion-enabled .reveal.is-visible{opacity:1;transform:none}
}
@keyframes content-enter{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes hero-settle{from{transform:scale(1.06)}to{transform:scale(1)}}
@keyframes scroll-hint{0%,65%,100%{transform:translateY(0)}35%{transform:translateY(6px)}}
@keyframes dialog-enter{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes menu-enter{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){
  .reveal,.reveal:not(.is-visible){opacity:1!important;transform:none!important}
  .button:hover span,.text-link:hover span,.nav-contact:hover span,.back-top:hover span,.project-card:hover .expand,.filter:hover{transform:none}
}
