:root{
  --sage:#7d9383;--sage-dark:#526b5c;--sage-soft:#e5ebe2;
  --cream:#f5f1e9;--cream2:#f0eae1;--ink:#383e36;--ink-soft:#676a60;
  --line:#d8d3c9;--white:#fffdf9;--font:'DM Sans',Arial,sans-serif;--display:'Quicksand',Arial,sans-serif;
  --wide:1220px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:85px}
body{margin:0;color:var(--ink);background:var(--cream);font-family:var(--font);font-weight:400;line-height:1.6;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
button,input{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--sage-dark);outline-offset:5px}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.15;font-family:var(--display);font-weight:400}em{font-style:normal;font-weight:300}
.content-container{width:min(var(--wide),calc(100% - 112px));margin-inline:auto}.section-padding{padding-block:112px}.eyebrow{font-family:var(--display);font-size:.69rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--sage-dark);margin-bottom:23px}.skip-link{position:fixed;z-index:1000;top:-100px;left:20px;background:white;padding:12px 18px}.skip-link:focus{top:16px}
/* Navigation and hero */
.site-header{position:absolute;top:0;left:0;width:100%;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:32px clamp(25px,5.7vw,96px);color:white}.site-header::before{content:"";position:absolute;inset:0 0 -28px;background:linear-gradient(to bottom,rgba(31,34,27,.32),transparent);z-index:-1;pointer-events:none}.brand{display:inline-flex;flex-direction:column;text-align:left;line-height:1.2;flex-shrink:0}.brand-main{font-family:var(--display);font-size:1.3rem;font-weight:600;letter-spacing:.17em}.brand-dot{color:#c4d2bb}.brand-sub{font-family:var(--display);font-size:.55rem;font-weight:500;letter-spacing:.31em;margin-top:5px}.nav-links{display:flex;align-items:center;gap:clamp(17px,2.4vw,42px)}.nav-links a{font-size:.77rem;font-weight:500;letter-spacing:.075em;transition:opacity .2s}.nav-links a:hover{opacity:.68}.nav-links .nav-contact{border:1px solid rgba(255,255,255,.76);padding:10px 20px;border-radius:2px;white-space:nowrap}.nav-contact span{margin-left:7px}.menu-toggle{display:none}
.hero{height:min(850px,100svh);min-height:680px;position:relative;color:#fff;overflow:hidden;background:#ab9b89}.hero-image{position:absolute;inset:0;background-image:url('assets/hero-apartamento.webp');background-size:cover;background-position:center 54%;transform:scale(1.015)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(33,31,27,.31),rgba(33,31,27,.10) 67%,rgba(33,31,27,.1)),linear-gradient(0deg,rgba(32,29,26,.58),transparent 61%)}.hero-content{position:absolute;bottom:111px;left:max(56px,calc((100vw - var(--wide))/2));max-width:720px;z-index:2}.hero-caption{display:flex;gap:14px;align-items:center;font-size:.71rem;letter-spacing:.28em;text-transform:uppercase;font-weight:600;margin-bottom:27px}.tiny-line{width:35px;height:1px;background:currentColor}.hero h1{font-size:clamp(3.2rem,5.7vw,6.5rem);letter-spacing:-.055em;line-height:1.11;margin:0 0 22px;font-weight:500}.hero h1 em{font-weight:300;font-style:italic;font-family:Georgia,serif;letter-spacing:-.04em}.hero-content>p{max-width:580px;font-size:1rem;line-height:1.6;color:rgba(255,255,255,.92);margin-bottom:27px}.light-button{display:inline-flex;align-items:center;gap:22px;border-bottom:1px solid rgba(255,255,255,.9);padding-bottom:8px;font-size:.8rem;font-weight:600;letter-spacing:.09em}.light-button span{font-size:1.2rem;font-weight:400;transition:transform .2s}.light-button:hover span,.text-link:hover span{transform:translate(3px,-3px)}.hero-side-label{position:absolute;right:clamp(20px,4.5vw,80px);bottom:110px;writing-mode:vertical-rl;font-size:.6rem;letter-spacing:.23em}.scroll-cue{position:absolute;left:50%;transform:translateX(-50%);bottom:32px;display:flex;flex-direction:column;align-items:center;gap:3px;text-transform:uppercase;font-size:.55rem;letter-spacing:.18em}.scroll-cue span:last-child{font-size:1.4rem;line-height:1}
.phrase-strip{background:var(--sage);color:#fff;display:flex;align-items:center;justify-content:center;gap:20px;padding:23px 20px;font-family:var(--display);font-size:clamp(1rem,2vw,1.6rem);font-weight:600;letter-spacing:.09em}.phrase-strip svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* About */
.about{display:grid;grid-template-columns:.9fr 1fr;align-items:center;gap:clamp(65px,8vw,128px)}.about-photo-wrap{position:relative;max-width:520px}.about-photo{width:100%;aspect-ratio:4/4.45;object-fit:cover;object-position:50% 31%;filter:saturate(.88)}.photo-index{position:absolute;bottom:-27px;left:0;color:var(--ink-soft);font-size:.6rem;letter-spacing:.23em}.about-copy{padding-block:10px}.about h2,.section-heading h2,.process h2,.contact h2{font-size:clamp(2.4rem,3.55vw,4rem);letter-spacing:-.055em;margin-bottom:31px}.about h2 em,.section-heading h2 em,.process h2 em,.contact h2 em{font-family:Georgia,serif;font-style:italic;font-weight:400;letter-spacing:-.035em;color:var(--sage-dark)}.about-copy>p:not(.eyebrow){font-size:.91rem;line-height:1.92;color:#575b53;margin-bottom:18px}.text-link{display:inline-flex;gap:32px;align-items:center;border-bottom:1px solid currentColor;padding-bottom:7px;font-weight:600;font-size:.81rem;letter-spacing:.025em;margin-top:17px}.text-link span{font-size:1.2rem;font-weight:400;transition:transform .2s}
/* Statement */
.statement{background:var(--sage);color:#fff;text-align:center;padding:58px 24px 65px}.statement-tiny{display:block;text-transform:uppercase;font-size:.65rem;font-family:var(--display);letter-spacing:.27em;margin-bottom:17px;opacity:.85}.statement h2{font-size:clamp(2.1rem,4vw,4rem);font-weight:600;letter-spacing:.05em;margin:0 0 18px}.hand-heart{font-family:Georgia,serif;font-weight:400;margin-left:9px}.statement p{max-width:570px;margin:auto;font-size:.89rem;line-height:1.8;color:rgba(255,255,255,.89)}
/* Audiences */
.audience{background:var(--cream)}.section-heading,.portfolio-head,.process-head{display:flex;align-items:end;justify-content:space-between;gap:45px;margin-bottom:49px}.section-heading h2{margin-bottom:0}.section-heading>p,.portfolio-head>p,.process-head>p{max-width:330px;line-height:1.75;font-size:.91rem;color:var(--ink-soft);margin:0 0 7px}.audience-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:27px}.audience-card{display:grid;grid-template-columns:1fr 1fr;background:#ede8dd;min-height:358px;overflow:hidden}.audience-card-image{min-height:100%}.audience-card-image img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.9);transition:transform .5s}.audience-card:hover .audience-card-image img{transform:scale(1.045)}.audience-card-text{padding:32px 25px 33px;display:flex;flex-direction:column;align-items:flex-start}.audience-no{font-size:.57rem;letter-spacing:.16em;font-weight:600;color:var(--sage-dark)}.audience-card h3{font-size:clamp(1.4rem,2vw,2.1rem);letter-spacing:-.05em;margin:24px 0 15px}.audience-card p{font-size:.82rem;color:#64675e;line-height:1.74;flex:1;margin-bottom:10px}.audience-card .text-link{margin-top:20px;font-size:.7rem;gap:12px}
/* Portfolio */
.portfolio{background:#eae7df}.portfolio-head h2{font-size:clamp(2.8rem,4.5vw,5.25rem);letter-spacing:-.06em;margin:0;font-weight:500}.period{color:var(--sage)}.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.project-tile{position:relative;border:0;padding:0;text-align:left;aspect-ratio:1/1.16;overflow:hidden;background:#c9c5ba;display:block}.project-tile img{height:100%;width:100%;object-fit:cover;object-position:center;transition:transform .5s ease,filter .5s;filter:saturate(.86)}.project-tile:hover img,.project-tile:focus-visible img{transform:scale(1.065);filter:saturate(1)}.project-overlay{position:absolute;left:0;bottom:0;right:0;background:linear-gradient(0deg,rgba(23,29,23,.65),transparent);padding:52px 20px 20px;display:flex;align-items:end;justify-content:space-between;color:#fff;font-size:.76rem;gap:15px;letter-spacing:.015em}.project-overlay span:last-child{font-size:1.3rem;font-weight:300}
/* Process */
.process{background:var(--cream)}.process-head{margin-bottom:61px}.process h2{margin:0}.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #cdd1c7}.step{padding:24px 26px 16px 0;min-height:220px;position:relative}.step+.step{padding-left:25px;border-left:1px solid #cdd1c7}.step-num{font-size:.67rem;color:var(--sage-dark);letter-spacing:.19em;font-weight:700}.step-symbol{position:absolute;top:15px;right:24px;color:var(--sage);font-size:1.7rem}.step h3{font-size:1.45rem;font-weight:500;letter-spacing:-.04em;margin:28px 0 15px}.step p{color:var(--ink-soft);font-size:.85rem;line-height:1.75;max-width:235px}
/* Feature photo */
.feature-image{height:clamp(420px,57vw,720px);position:relative;display:grid;place-items:center;text-align:center;overflow:hidden}.feature-photo{position:absolute;inset:0;background-image:url('assets/banner-interior.webp');background-position:50% 63%;background-size:cover;filter:saturate(.84);transform:scale(1.01)}.feature-image:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(33,31,28,.44),rgba(33,31,28,.16))}.feature-content{z-index:1;position:relative;color:#fff;padding:28px}.feature-content .eyebrow{color:#fff;opacity:.85}.feature-content h2{font-size:clamp(2.1rem,4.3vw,4.8rem);line-height:1.28;letter-spacing:-.055em;font-weight:500;text-shadow:0 2px 15px rgba(0,0,0,.07)}.feature-content h2 em{font-family:Georgia,serif;font-style:italic;font-weight:400}
/* Contact */
.contact{background:var(--cream)}.contact-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(50px,10vw,170px);align-items:center}.contact h2{margin-bottom:25px}.contact-intro>p:not(.eyebrow){max-width:480px;font-size:.94rem;line-height:1.85;color:var(--ink-soft)}.primary-button{display:inline-flex;gap:35px;align-items:center;justify-content:space-between;background:var(--sage-dark);color:#fff;padding:17px 23px;margin-top:19px;font-size:.8rem;font-weight:600;letter-spacing:.025em;transition:background .2s}.primary-button:hover{background:#3e5548}.primary-button span{font-size:1.2rem}.contact-details{display:grid;gap:0}.contact-detail{display:grid;gap:10px;padding:25px 0;border-bottom:1px solid var(--line)}.contact-detail:first-child{border-top:1px solid var(--line)}.contact-detail>span{font-size:.65rem;letter-spacing:.24em;font-weight:600;color:var(--sage-dark)}.contact-detail a{font-size:clamp(.92rem,1.4vw,1.24rem);font-weight:500;overflow-wrap:anywhere;display:flex;gap:12px;justify-content:space-between;align-items:center}.contact-detail a span{font-size:1.15rem}
/* Footer */
.footer{background:var(--sage);color:#fff;padding:56px 0 25px}.footer-main{display:flex;align-items:center;justify-content:space-between;padding-bottom:63px}.footer-brand{font-family:var(--display);font-weight:600;letter-spacing:.12em;font-size:clamp(1.7rem,3vw,3rem);line-height:1}.footer-brand>span{color:#c9d7c6}.footer-brand small{display:block;font-size:.51rem;letter-spacing:.45em;margin-top:12px}.footer-nav{display:flex;gap:37px;font-size:.85rem}.footer-nav a:hover{text-decoration:underline}.footer-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(255,255,255,.38);padding-top:22px;font-size:.67rem;color:rgba(255,255,255,.82);letter-spacing:.045em}
/* Lightbox */
.lightbox{max-height:94vh;max-width:min(92vw,1000px);width:fit-content;background:#f6f2eb;border:0;padding:13px 13px 0;box-shadow:0 25px 80px rgba(0,0,0,.36)}.lightbox::backdrop{background:rgba(20,29,22,.85)}.lightbox-img{max-width:100%;max-height:78vh;object-fit:contain;margin:0 auto}.lightbox-caption{text-align:center;font-size:.75rem;margin:11px 0 12px;color:#596354}.lightbox-close{position:absolute;right:0;top:0;transform:translate(35%,-35%);height:40px;width:40px;border:0;border-radius:50%;background:var(--cream);color:var(--ink);font-size:1.7rem;line-height:1}
/* animation */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .65s,transform .65s}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:1180px){.content-container{width:calc(100% - 90px)}.site-header{padding-inline:44px}.nav-links{gap:22px}.hero-content{left:45px}.audience-card{grid-template-columns:48% 52%}.audience-card-text{padding:28px 23px}.audience-card h3{margin:20px 0 12px}.audience-card p{font-size:.77rem}}
@media(max-width:900px){.nav-links{gap:16px}.nav-links a{font-size:.68rem}.brand-main{font-size:1.1rem}.brand-sub{font-size:.47rem}.content-container{width:calc(100% - 62px)}.section-padding{padding-block:80px}.hero{min-height:610px;height:82svh}.hero-content{left:32px;bottom:104px}.hero h1{font-size:clamp(3rem,7vw,5rem)}.about{gap:34px}.about h2,.section-heading h2,.process h2,.contact h2{font-size:clamp(2.2rem,4vw,3.2rem)}.audience-grid{gap:15px}.audience-card{grid-template-columns:1fr}.audience-card-image{height:220px}.audience-card-text{min-height:265px}.audience-card h3 br{display:none}.audience-card h3{margin:13px 0}.portfolio-grid{gap:13px}.step{padding-right:15px}.step+.step{padding-left:15px}.contact-layout{gap:45px}}
@media(max-width:680px){html{scroll-padding-top:55px}.content-container{width:calc(100% - 42px)}.section-padding{padding-block:70px}.site-header{position:absolute;padding:25px 22px}.site-header::before{inset:0 0 -70px}.brand-main{font-size:1.02rem}.brand-sub{font-size:.46rem}.menu-toggle{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;border:1px solid rgba(255,255,255,.55);background:rgba(0,0,0,.12);height:44px;width:44px;position:relative;z-index:41}.menu-toggle span{width:20px;height:1.5px;background:white;transition:transform .2s}.menu-open .menu-toggle span:first-child{transform:translateY(4.25px) rotate(45deg)}.menu-open .menu-toggle span:last-child{transform:translateY(-4.25px) rotate(-45deg)}.nav-links{position:fixed;inset:0;display:flex;flex-direction:column;align-items:start;justify-content:center;gap:27px;background:#718979;padding:55px 13%;opacity:0;visibility:hidden;transform:translateY(-15px);transition:opacity .25s,transform .25s,visibility .25s;z-index:40}.menu-open .nav-links{opacity:1;visibility:visible;transform:none}.nav-links a{font-size:1.6rem;font-family:var(--display);font-weight:400}.nav-links .nav-contact{font-size:1.3rem}.hero{height:90svh;min-height:620px;max-height:920px}.hero-image{background-position:47% 50%}.hero-shade{background:linear-gradient(0deg,rgba(30,31,27,.72) 0%,rgba(30,31,27,.19) 62%,rgba(30,31,27,.26))}.hero-content{left:25px;right:25px;bottom:110px}.hero-caption{font-size:.59rem;letter-spacing:.16em;margin-bottom:19px}.hero h1{font-size:clamp(2.75rem,11vw,4.8rem);line-height:1.14;margin-bottom:18px}.hero-content>p{font-size:.85rem;line-height:1.7;max-width:345px}.hero-side-label{display:none}.scroll-cue{bottom:22px}.phrase-strip{padding:22px 12px;gap:12px;font-size:clamp(.94rem,4vw,1.3rem);letter-spacing:.04em}.phrase-strip svg{width:21px}.about{grid-template-columns:1fr;gap:42px}.about-photo-wrap{width:min(100%,510px)}.about-photo{aspect-ratio:1.16;object-position:50% 37%}.photo-index{bottom:-23px}.about-copy{padding:4px 0 0}.eyebrow{margin-bottom:19px}.about h2,.section-heading h2,.process h2,.contact h2{font-size:clamp(2.1rem,8.4vw,3.15rem)}.about-copy>p:not(.eyebrow){font-size:.88rem;line-height:1.84}.statement{padding:52px 22px}.statement h2{font-size:clamp(1.85rem,8vw,3rem)}.statement p{font-size:.81rem}.section-heading,.portfolio-head,.process-head{display:block;margin-bottom:31px}.section-heading>p,.portfolio-head>p,.process-head>p{max-width:410px;font-size:.87rem;margin-top:21px}.audience-grid{grid-template-columns:1fr;gap:23px}.audience-card{grid-template-columns:45% 55%;min-height:290px}.audience-card-image{height:auto}.audience-card-text{padding:23px 18px;min-height:unset}.audience-card h3{font-size:1.54rem}.audience-card h3 br{display:block}.audience-card p{font-size:.76rem}.audience-card .text-link{font-size:.65rem}.portfolio-head h2{font-size:3.4rem}.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.project-tile{aspect-ratio:3/4}.project-overlay{font-size:.66rem;padding:45px 11px 12px}.project-overlay span:last-child{font-size:.95rem}.steps{grid-template-columns:repeat(2,1fr)}.step{min-height:225px;padding-right:14px}.step:nth-child(3){border-left:0;padding-left:0;border-top:1px solid var(--line)}.step:nth-child(4){border-top:1px solid var(--line)}.step+.step{padding-left:15px}.step h3{font-size:1.35rem}.step p{font-size:.79rem}.feature-image{height:480px}.feature-photo{background-position:48% 55%}.feature-content h2{font-size:clamp(1.7rem,7vw,3rem)}.contact-layout{grid-template-columns:1fr;gap:37px}.contact-detail{padding:19px 0}.footer{padding:44px 0 24px}.footer-main{align-items:start;flex-direction:column;gap:35px;padding-bottom:40px}.footer-nav{gap:29px}.footer-bottom{align-items:flex-start;flex-direction:column;gap:10px;font-size:.6rem}.lightbox{max-width:94vw;padding:8px 8px 0}.lightbox-close{transform:translate(0,-50%)}}
@media(max-width:350px){.audience-card{grid-template-columns:1fr}.audience-card-image{height:230px}.audience-card h3 br{display:none}.audience-card p{max-width:320px}.portfolio-grid{grid-template-columns:1fr}.project-tile{aspect-ratio:1/1.1}.hero h1{font-size:2.85rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* ---- Visual motion & polish: version 2 ---- */
:root{--header-height:94px}
.site-header{position:fixed;top:0;left:0;right:0;width:100%;z-index:110;transition:background .42s ease,color .42s ease,padding .42s ease,box-shadow .42s ease;isolation:isolate}
.site-header.is-scrolled{color:var(--ink);background:rgba(248,245,239,.94);padding-top:16px;padding-bottom:16px;box-shadow:0 1px 0 rgba(55,72,55,.10);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.site-header.is-scrolled::before{opacity:0}
.site-header.is-scrolled .nav-links .nav-contact{border-color:var(--sage-dark)}
.site-header.is-scrolled .brand-dot{color:var(--sage-dark)}
.site-header.is-scrolled .menu-toggle{border-color:var(--sage-dark);background:transparent}
.site-header.is-scrolled .menu-toggle span{background:var(--sage-dark)}
.site-progress{position:absolute;bottom:0;left:0;width:var(--site-progress,0%);height:2px;background:var(--sage-dark);transition:width .09s linear;pointer-events:none}
.nav-links a:not(.nav-contact){position:relative}
.nav-links a:not(.nav-contact)::after{content:"";position:absolute;bottom:-6px;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .28s}
.nav-links a:not(.nav-contact):hover::after,.nav-links a.active::after{transform:scaleX(1)}
.hero-image{will-change:transform;transform:scale(1.065) translateY(var(--hero-motion,0px));transition:transform 1.8s cubic-bezier(.2,.7,.2,1)}
.is-loaded .hero-image{transform:scale(1.015) translateY(var(--hero-motion,0px))}
.hero-content{opacity:0;transform:translateY(24px) translate3d(0,var(--hero-text-shift,0px),0);transition:opacity .9s .12s ease,transform 1.1s .1s cubic-bezier(.2,.75,.2,1)}
.is-loaded .hero-content{opacity:1;transform:translateY(0) translate3d(0,var(--hero-text-shift,0px),0)}
.hero-caption{letter-spacing:.235em}
.scroll-cue{transition:opacity .25s}.scroll-cue:hover{opacity:.7}
/* On hover, images scale within masked windows; rest state always returns smoothly. */
.project-tile{isolation:isolate;transition:box-shadow .35s ease}
.project-tile img{transition:transform .65s cubic-bezier(.2,.72,.2,1),filter .6s ease}
.project-tile:hover img,.project-tile:focus-visible img{transform:scale(1.06)}
.project-overlay{transition:background .4s ease}
.project-tile:hover .project-overlay{background:linear-gradient(0deg,rgba(23,29,23,.79),transparent)}
.audience-card-image{overflow:hidden}
/* The penultimate visual band reveals itself as the visitor scrolls. */
.feature-image{height:157svh;min-height:880px;max-height:none;position:relative;display:block;overflow:visible;background:var(--cream)}
.feature-pin{position:sticky;top:23svh;height:54svh;min-height:350px;max-height:620px;width:var(--feature-width,76%);margin-inline:auto;overflow:hidden;isolation:isolate;box-shadow:0 18px 52px rgba(44,50,41,.08);transition:width .08s linear}
.feature-pin::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(0deg,rgba(32,34,30,.60),rgba(32,34,30,.06) 75%);pointer-events:none}
.feature-photo{position:absolute;inset:-15% 0;background-position:center 61%;background-size:cover;transform:scale(1.09) translate3d(0,var(--feature-shift,0px),0);filter:saturate(.9);will-change:transform}
.feature-content{position:absolute;z-index:2;bottom:clamp(20px,5vw,85px);left:clamp(24px,7.1vw,110px);right:26px;padding:0;text-align:left;max-width:1100px;opacity:var(--feature-copy-opacity,1);transform:translateY(var(--feature-copy-shift,0px))}
.feature-content h2{font-size:clamp(1.95rem,4vw,4.6rem);margin-bottom:0}
.feature-progress{position:absolute;bottom:0;left:0;right:0;height:3px;z-index:3;background:rgba(255,255,255,.3)}
.feature-progress span{display:block;height:100%;width:var(--feature-progress,0%);background:#dbe6d8}
/* Calm and editorial footer, with contact left, wordmark centered, links right. */
.footer{background:#f1ede5;color:var(--ink);border-top:1px solid #d5d8cf;padding:72px 0 23px}
.footer-main{display:grid;grid-template-columns:1fr 1.35fr .6fr;gap:28px;align-items:center;padding-bottom:75px}
.footer-contact{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.footer-heading{color:var(--sage-dark);font-size:.67rem;font-weight:700;letter-spacing:.22em;margin-bottom:12px}
.footer-contact a{font-size:.8rem;line-height:1.6;transition:color .2s;overflow-wrap:anywhere}
.footer-contact a:hover,.footer-nav a:hover,.back-to-top:hover{color:var(--sage-dark)}
.footer-brand{text-align:center;font-size:clamp(1.9rem,3.1vw,3.25rem);white-space:nowrap;transition:opacity .2s}
.footer-brand:hover{opacity:.65}
.footer-brand>span{color:var(--sage)}
.footer-brand small{font-size:.52rem;letter-spacing:.44em;color:var(--sage-dark)}
.footer-nav{display:flex;flex-direction:column;gap:7px;align-items:flex-start;justify-self:end;font-size:.83rem}
.footer-nav a{transition:color .2s}
.footer-bottom{border-top:1px solid #d6d9d0;color:#71776f;font-size:.7rem}
.back-to-top{transition:color .2s;display:flex;align-items:center;gap:8px}
.back-to-top span{font-size:1.1rem}
/* Full-screen modal gallery with previous/next controls. */
.lightbox{padding:22px;background:#faf7f1;max-width:min(96vw,1240px);width:min(96vw,1120px);max-height:94svh;overflow:visible;border-radius:2px}
.lightbox-view{display:flex;justify-content:space-between;align-items:center;gap:15px}
.lightbox-img{max-height:72svh;max-width:calc(100% - 104px);object-fit:contain;flex:1}
.lightbox-arrow{border:1px solid #c9d3c9;background:transparent;width:43px;height:43px;color:var(--sage-dark);font-size:1.5rem;display:grid;place-items:center;transition:background .25s,color .25s;flex-shrink:0}
.lightbox-arrow:hover{background:var(--sage-dark);color:white}
.lightbox-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px 4px 0}
.lightbox-bottom p{margin:0;font-size:.77rem;color:#596354}
.lightbox-count{font-variant-numeric:tabular-nums}
.lightbox-close{z-index:1;top:-14px;right:-14px;transform:none;box-shadow:0 3px 11px rgba(0,0,0,.1)}
/* Enhancement: without JS, content is still visible. */
.reveal{opacity:1;transform:none}
.js-enhanced .reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.8,.2,1)}
.js-enhanced .reveal.is-visible{opacity:1;transform:none}
@media(max-width:900px){
 .footer-main{grid-template-columns:1fr 1.2fr .5fr;gap:15px}.footer-brand{font-size:1.9rem}.footer-contact a{font-size:.7rem}
 .feature-image{height:145svh;min-height:780px}.feature-pin{top:25svh;height:50svh}
}
@media(max-width:680px){
 .site-header{padding:25px 22px}
 .site-header.is-scrolled{padding:13px 22px}
 .site-header.menu-open,.menu-open .site-header{color:white}
 .site-header.is-scrolled .menu-toggle span{background:var(--sage-dark)}
 .menu-open .site-header.is-scrolled .menu-toggle span{background:white}
 .menu-open .nav-links a{color:white}
 .nav-links a:not(.nav-contact)::after{display:none}
 .hero-image{background-position:48% 50%}
 .feature-image{min-height:680px;height:140svh}
 .feature-pin{top:28svh;height:48svh;min-height:320px;max-height:none;width:var(--feature-width,90%)}
 .feature-content{left:22px;bottom:24px;right:18px}.feature-content h2{font-size:clamp(1.6rem,5.5vw,2.6rem)}
 .feature-content .eyebrow{font-size:.53rem;letter-spacing:.13em;margin-bottom:10px}
 .footer{padding-top:50px}.footer-main{grid-template-columns:1fr 1fr;row-gap:40px;align-items:start;padding-bottom:45px}
 .footer-brand{grid-column:1/-1;grid-row:1;justify-self:start;text-align:left;font-size:2.3rem}
 .footer-contact{grid-column:1;grid-row:2}.footer-nav{grid-column:2;grid-row:2;justify-self:end}
 .footer-bottom{gap:13px}
 .lightbox{padding:10px;width:97vw;max-width:97vw}
 .lightbox-view{gap:5px}.lightbox-img{max-width:calc(100% - 64px);max-height:69svh}
 .lightbox-arrow{width:30px;height:36px;font-size:1rem}
 .lightbox-close{top:-15px;right:0}
 .lightbox-bottom p{font-size:.65rem}
}
@media(prefers-reduced-motion:reduce){
 .hero-content,.is-loaded .hero-content{opacity:1;transform:none}
 .hero-image,.is-loaded .hero-image{transform:none;transition:none}
 .js-enhanced .reveal{opacity:1;transform:none}
 .feature-pin{transition:none}
}
/* The scroll-reveal band's background stays cream outside the image window. */
.feature-image::after{content:none;display:none}

/* ===== Requested editorial refinements: 2026-10-31 ===== */
/* Custom white transparent logo shown on the hero, dark on the cream sticky header. */
.site-header .brand{display:flex;align-items:center;justify-content:center;min-width:0}
.site-header .brand-logo{display:block;width:clamp(145px,13vw,188px);height:auto;max-width:44vw;filter:none;transition:filter .35s ease}
.site-header.is-scrolled .brand-logo{filter:brightness(0) saturate(100%) invert(32%) sepia(15%) saturate(659%) hue-rotate(87deg)}
/* Main title with precise wording supplied by the client. */
.hero h1{display:flex;flex-direction:column;align-items:flex-start;gap:12px;line-height:1.08;margin-bottom:20px}
.hero-name{font-size:clamp(3.2rem,6.5vw,6.1rem);font-weight:500;letter-spacing:-.055em}
.hero-profession{font-size:clamp(.9rem,1.85vw,1.55rem);letter-spacing:.23em;font-weight:500;line-height:1.5}
/* Second band approximately twice the original height. */
.phrase-strip{padding-block:56px}
/* Gallery displays only photographs; modal remains navigable by button and keyboard. */
.project-tile{position:relative}
.project-tile:after{content:'';position:absolute;inset:0;border:1px solid rgba(255,255,255,.05);pointer-events:none}
/* Full-bleed cinematic panorama: scrolls with its own section, never sticky.
   The parallax photo shifts softly INSIDE the full-width clipping window only. */
.feature-image{position:relative;display:block;width:100%;height:100svh;min-height:540px;max-height:1050px;overflow:hidden;background:#b3a08d;isolation:isolate}
.feature-photo{position:absolute;inset:-9% 0;width:100%;height:118%;background-image:url('assets/banner-interior.webp');background-size:cover;background-position:center 54%;filter:saturate(.92);transform:translate3d(0,var(--feature-parallax,0px),0);will-change:transform}
.feature-image::after{content:'';display:block;position:absolute;inset:0;background:linear-gradient(0deg,rgba(21,28,23,.48),rgba(21,28,23,.02) 58%);z-index:1;pointer-events:none}
.feature-content{position:absolute;z-index:2;left:max(5.7vw,24px);bottom:clamp(35px,8vh,100px);right:5%;max-width:1120px;opacity:1;transform:none;padding:0;text-align:left;color:#fff}
.feature-content h2{font-size:clamp(2rem,4.4vw,4.5rem);margin-bottom:0}
.feature-progress,.feature-pin{display:none!important}
@media(max-width:900px){.feature-image{height:90svh;min-height:520px}.feature-photo{background-position:53% 55%}}
@media(max-width:680px){
 .site-header .brand-logo{width:138px;max-width:44vw}
 .hero h1{gap:9px}.hero-name{font-size:clamp(2.65rem,10.8vw,4.1rem)}.hero-profession{font-size:clamp(.74rem,3vw,.95rem);letter-spacing:.15em}
 .phrase-strip{padding:47px 12px}
 .feature-image{height:78svh;min-height:480px;max-height:780px}
 .feature-content{left:22px;right:20px;bottom:37px}
 .feature-content h2{font-size:clamp(1.75rem,6vw,2.7rem)}
}
@media(prefers-reduced-motion:reduce){.feature-photo{transform:none!important;will-change:auto}.site-header .brand-logo{transition:none}}

/* The final visual section is intentionally uninterrupted photography. */
.feature-image::after{display:none!important}


/* ===== Gabi Duarte: logotipo, tipografia e parallax fotográfico aprovados ===== */
:root { --font:'DM Sans',Arial,sans-serif; --display:'Quicksand',Arial,sans-serif; }
.hero h1, .audience h2, .about h2, .contact h2, .statement h2, .portfolio h2,
.audience h3 { font-family:var(--display); }
.about h2 em, .section-heading h2 em, .process h2 em, .contact h2 em,
.hero h1 em { font-family:var(--display); font-style:normal; font-weight:400; letter-spacing:-.035em; }
.hero-content > p { display:none; }
/* Main brand: supplied transparent white Duarte logo. */
.site-header .brand-logo { display:block; width:clamp(142px,13vw,196px); height:auto; max-width:42vw; }
.site-header.is-scrolled .brand-logo { filter:brightness(0) saturate(100%) invert(33%) sepia(12%) saturate(663%) hue-rotate(87deg); }
/* Footer has a genuine logo image, not typographic approximation. */
.footer-brand { display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; line-height:1; white-space:normal; }
.footer-logo { width:clamp(160px,17vw,235px); height:auto; filter:brightness(0) saturate(100%) invert(32%) sepia(11%) saturate(694%) hue-rotate(84deg); }
.footer-brand small { display:block; font-family:var(--font); font-size:.54rem; font-weight:600; letter-spacing:.13em; line-height:1.5; }
/* Half-screen photographic strip: no sticky positioning, borders or text. */
.feature-image { position:relative; display:block; width:100%; height:50svh; min-height:290px; max-height:none; overflow:hidden; isolation:isolate; background:#b7a793; }
.feature-photo { position:absolute; inset:0; width:100%; height:100%; background-image:url('assets/banner-interior.webp'); background-size:cover; background-repeat:no-repeat;
  background-position:center var(--feature-position,29%); transform:none; filter:none; will-change:background-position; }
.feature-image::after { content:none!important; display:none!important; }
.feature-content, .feature-pin, .feature-progress { display:none!important; }
@media(max-width:900px) {
  .feature-image { height:50svh; min-height:280px; max-height:none; }
  .feature-photo { background-position:center var(--feature-position,29%); }
}
@media(max-width:680px) {
  .site-header .brand-logo { width:145px; max-width:42vw; }
  .feature-image { height:50svh; min-height:260px; max-height:none; }
  .feature-photo { background-position:center var(--feature-position,29%); }
  .footer-brand { align-items:flex-start; text-align:left; }
  .footer-logo { width:205px; }
}
@media(prefers-reduced-motion:reduce) { .feature-photo { background-position:center 47%!important; will-change:auto; } }


/* ===== Correções finais: rolagem integral da fotografia, rodapé e portfólio brancos ===== */
.portfolio { background: #ffffff; }
.footer { background:#ffffff; color:var(--ink); border-top:1px solid #e9e9e4; }
.footer-main { display:grid; grid-template-columns:1fr 1.1fr 1fr; align-items:center; gap:28px; }
.footer-brand { grid-column:2; justify-self:center; align-items:center; text-align:center; }
.footer-logo { display:block; width:clamp(170px,17vw,240px); filter:brightness(0); }
.footer-brand small { color:#252525; }
.footer-nav { grid-column:3; justify-self:end; }
.footer-bottom { border-top-color:#e7e7e3; }
/* Window remains 50% viewport high; its tall original photo pans in full from top to bottom.
   A scroll track gives it enough travel instead of stopping mid-photo. */
.feature-image { position:relative; width:100%; height:50svh; min-height:0; max-height:none; overflow:visible; background:#fff; isolation:auto; }
.feature-window { position:sticky; top:0; display:block; height:50svh; min-height:0; width:100%; overflow:hidden; background:#a99584; isolation:isolate; }
.feature-photo { position:absolute; inset:auto; left:0; top:0; right:auto; bottom:auto;
  display:block; width:100%; height:auto; min-height:100%; max-width:none;
  object-fit:cover; object-position:center top; background:none;
  filter:none; transform:translate3d(0,var(--feature-offset,0px),0);
  will-change:transform; }
.feature-image::after, .feature-window::after { content:none!important; display:none!important; }
@media (max-width:900px) {
  .feature-image {height:50svh; min-height:0; max-height:none;}
  .feature-window {height:50svh; min-height:0;}
  .feature-photo {width:100%; height:auto; min-height:100%;}
}
@media(max-width:680px) {
  .footer-main { grid-template-columns:minmax(0,1fr) minmax(0,1fr); row-gap:34px; }
  .footer-brand { grid-column:1/-1; grid-row:1; justify-self:center; align-items:center; text-align:center; }
  .footer-logo { width:205px; }
  .footer-contact { grid-column:1; grid-row:2; }
  .footer-nav { grid-column:2; grid-row:2; justify-self:end; }
  .feature-image {height:50svh; min-height:0; max-height:none;}
  .feature-window {height:50svh; min-height:0;}
}
@media(prefers-reduced-motion:reduce) {
  .feature-photo { transform:none!important; object-fit:contain; width:100%; height:100%; min-height:0; will-change:auto; }
  .feature-image { height:50svh!important; }
}
/* Keep enough page after the final photo to expose its last pixels before page-end. */
.footer { min-height:50svh; }
/* Keep the entire photo visible below the condensed sticky navigation. */
.feature-window { top:88px; }
@media(max-width:680px) { .feature-window { top:70px; } }
