@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400;1,500&display=swap');
:root { --paper:#f7f6f2; --surface:#f5efe9; --ink:#090a09; --sage:#778477; --forest:#26302a; --slate:#545b69; --sage-dark:#26302a; --portrait:#ddd8ce; --terracotta:#b5845c; --line:rgba(9,10,9,.14); --radius:25px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { min-width:320px; margin:0; background:var(--paper); color:var(--ink); font-family:Montserrat,Arial,sans-serif; }
a { color:inherit; }
.page { width:min(1540px,calc(100% - 24px)); margin:18px auto; }
.reveal { opacity:0; transform:translateY(32px); transition:opacity .9s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0s),transform .9s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0s); }
.reveal.is-visible { opacity:1; transform:translateY(0); }
.site-header { position:relative; display:flex; align-items:center; justify-content:space-between; min-height:112px; padding:16px 42px; border-radius:31px; background:transparent; }
.brand { display:inline-flex; align-items:center; text-decoration:none; }
.brand img { display:block; width:clamp(180px,14vw,286px); height:64px; object-fit:contain; object-position:left center; }
.header-mark { position:absolute; top:50%; left:50%; display:grid; width:58px; height:58px; place-items:center; text-decoration:none; transform:translate(-50%,-50%); }
.header-mark img { width:52px; height:52px; object-fit:contain; }
.site-nav { display:flex; align-items:center; gap:clamp(24px,3.8vw,64px); }
.site-nav a { font-size:.86rem; font-weight:600; letter-spacing:-.01em; text-decoration:none; transition:color .25s ease,font-weight .25s ease; }
.site-nav a:hover,.site-nav a[aria-current='page'] { color:var(--terracotta); font-weight:700; }
.site-nav a[aria-current='page'] { text-decoration:none; }
.site-nav a[aria-current='page'] { text-decoration:none; }
.menu-button { display:none; width:45px; height:45px; border:1px solid var(--line); border-radius:50%; background:transparent; color:var(--ink); }
.menu-button span,.menu-button::before,.menu-button::after { display:block; width:19px; height:2px; margin:4px auto; border-radius:2px; background:currentColor; content:''; }
main { padding-top:20px; }
.eyebrow { margin:0 0 17px; color:var(--sage-dark); font-size:.74rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(310px,.82fr); min-height:470px; overflow:hidden; border-radius:var(--radius); background:var(--surface); }
.hero__copy { display:flex; padding:clamp(32px,4.2vw,62px); flex-direction:column; justify-content:space-between; }
.hero h1 { max-width:640px; margin:0; font-size:clamp(2.7rem,4.5vw,4.9rem); font-weight:500; letter-spacing:-.085em; line-height:.89; }
.hero h1 strong { color:var(--terracotta); font-weight:800; }
.hero p:not(.eyebrow) { max-width:490px; margin:32px 0 0; color:rgba(11,11,12,.66); font-size:clamp(1rem,1.25vw,1.2rem); line-height:1.52; }
.hero__image { min-height:470px; margin:0; }
.hero__image img { display:block; width:100%; height:100%; object-fit:cover; }
.hero__image--about img { filter:grayscale(1) contrast(.95); object-position:50% 28%; }
.hero__meta { display:flex; align-items:center; gap:14px; margin-top:52px; color:var(--sage-dark); font-size:.76rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.hero__meta::before { width:42px; height:2px; background:var(--terracotta); content:''; }
.section { margin-top:clamp(52px,6vw,92px); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:32px; margin-bottom:30px; }
.section-heading h2 { max-width:720px; margin:0; font-size:clamp(2.25rem,3.9vw,4.15rem); font-weight:500; letter-spacing:-.08em; line-height:.92; }
.section-heading p { max-width:330px; margin:0; color:rgba(11,11,12,.65); font-size:1rem; line-height:1.5; }
.project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.project-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(155px,.48fr); min-height:274px; overflow:hidden; border-radius:var(--radius); background:var(--surface); transition:transform .35s cubic-bezier(.16,1,.3,1),background .35s ease; }
.project-card:hover { background:#eee8de; transform:translateY(-6px); }
.project-card:nth-child(even) { grid-template-columns:minmax(155px,.48fr) minmax(0,1fr); }
.project-card__content { display:flex; padding:26px; flex-direction:column; justify-content:space-between; }
.project-card__number { color:var(--terracotta); font-size:.76rem; font-weight:700; letter-spacing:.13em; }
.project-card h3 { max-width:250px; margin:16px 0 0; font-size:clamp(1.55rem,2.15vw,2.25rem); font-weight:500; letter-spacing:-.06em; line-height:.98; }
.project-card p { margin:15px 0 0; color:rgba(11,11,12,.65); font-size:.94rem; line-height:1.5; }
.project-card__image { min-height:100%; overflow:hidden; }
.project-card__image img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.16,1,.3,1); }
.project-card:hover img { transform:scale(1.035); }
.statement { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr); gap:20px; padding:clamp(32px,5vw,68px); border-radius:var(--radius); background:var(--sage); color:var(--paper); }
.statement h2 { max-width:650px; margin:0; font-size:clamp(2.2rem,3.7vw,3.95rem); font-weight:500; letter-spacing:-.08em; line-height:.91; }
.statement p { max-width:330px; margin:auto 0 0; color:#e9ece5; font-size:1.04rem; line-height:1.55; }
.bio { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:14px; }
.bio__copy,.bio__detail { min-height:320px; padding:clamp(28px,3.6vw,48px); border-radius:var(--radius); background:var(--surface); }
.bio__copy h2 { max-width:540px; margin:0; font-size:clamp(2rem,3.25vw,3.65rem); font-weight:500; letter-spacing:-.075em; line-height:.94; }
.bio__copy p,.bio__detail p { max-width:530px; margin:28px 0 0; color:rgba(11,11,12,.68); font-size:1.05rem; line-height:1.58; }
.bio__detail { display:flex; flex-direction:column; justify-content:space-between; background:var(--terracotta); }
.bio__detail p { color:var(--ink); }
.bio__detail strong { display:block; max-width:460px; font-size:clamp(1.65rem,2.7vw,3rem); letter-spacing:-.06em; line-height:1; }
.contact-panel { display:grid; grid-template-columns:minmax(0,1fr) minmax(270px,.7fr); min-height:480px; overflow:hidden; border-radius:var(--radius); background:var(--sage-dark); color:var(--paper); }
.contact-panel__copy { display:flex; padding:clamp(34px,4.8vw,68px); flex-direction:column; justify-content:space-between; }
.contact-panel__copy .eyebrow { color:#e7e9e3; }
.contact-panel h1 { max-width:660px; margin:0; font-size:clamp(2.7rem,4.5vw,4.9rem); font-weight:500; letter-spacing:-.085em; line-height:.89; }
.contact-panel h1 strong { color:var(--paper); font-weight:800; }
.contact-panel p:not(.eyebrow) { max-width:470px; margin:30px 0 0; color:#e4e7e0; font-size:1.1rem; line-height:1.56; }
.contact-panel__image { min-height:100%; margin:0; }
.contact-panel__image img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 35%; opacity:.72; }
.cta { display:inline-flex; align-items:center; gap:14px; width:max-content; margin-top:42px; padding:17px 23px; border-radius:999px; background:var(--terracotta); color:var(--ink); font-size:.77rem; font-weight:700; letter-spacing:.09em; text-decoration:none; text-transform:uppercase; transition:background .25s ease,transform .35s cubic-bezier(.16,1,.3,1); }
.cta span { font-size:1.2rem; font-weight:400; line-height:.8; }
.cta:hover { background:var(--paper); transform:translateY(-3px); }
.contact-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.contact-details a,.contact-details div { display:block; min-height:145px; padding:27px; border-radius:var(--radius); background:var(--surface); color:inherit; text-decoration:none; transition:background .25s ease,transform .3s cubic-bezier(.16,1,.3,1); }
.contact-details a:hover { background:#eee8de; transform:translateY(-4px); }
.contact-details .contact-detail__label { display:block; margin-bottom:32px; color:var(--sage-dark); font-size:.72rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.contact-details a,.contact-details div { position:relative; }
.contact-detail__icon { position:absolute; top:25px; right:25px; display:grid; width:23px; height:23px; place-items:center; color:var(--terracotta); transition:color .25s ease,transform .35s cubic-bezier(.16,1,.3,1); }
.contact-detail__icon svg { display:block; width:100%; height:100%; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.55; }
.contact-details a:hover .contact-detail__icon { color:var(--forest); transform:translate(2px,-2px); }
.contact-details strong { display:block; font-size:1.15rem; font-weight:600; letter-spacing:-.04em; }
.project-index { padding:clamp(22px,3vw,42px) clamp(20px,3.2vw,42px) 28px; }
.project-index__intro { max-width:880px; margin:0 auto; text-align:center; }
.project-index__intro h1,.project-case__heading h1 { max-width:860px; margin:0; font-size:clamp(3rem,5.2vw,5.7rem); font-weight:500; letter-spacing:-.09em; line-height:.88; }
.project-index__intro h1 { margin:0 auto; }
.project-index__intro h1 strong,.project-case__heading h1 strong { color:var(--terracotta); font-weight:700; }
.project-index__intro > p { max-width:510px; margin:26px auto 0; color:rgba(11,11,12,.65); font-size:1rem; line-height:1.52; }
.blog-page,.contact-page { padding:clamp(46px,6vw,88px) clamp(20px,3.2vw,42px) 28px; }
.page-intro { max-width:880px; margin:0 auto; text-align:center; }
.page-intro h1 { max-width:860px; margin:0 auto; font-size:clamp(3rem,5.2vw,5.7rem); font-weight:500; letter-spacing:-.09em; line-height:.88; }
.page-intro h1 strong { color:var(--terracotta); font-weight:700; }
.page-intro > p { max-width:510px; margin:26px auto 0; color:rgba(11,11,12,.65); font-size:1rem; line-height:1.52; }
.blog-overview { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:24px; align-items:end; margin-top:clamp(42px,6vw,80px); padding:clamp(18px,2vw,28px); border-radius:var(--radius); background:var(--surface); }
.blog-overview figure { height:clamp(250px,34vw,460px); margin:0; overflow:hidden; border-radius:calc(var(--radius) - 8px); }
.blog-overview img { display:block; width:100%; height:100%; object-fit:cover; }
.blog-overview .eyebrow { margin:0 8px 8px 0; white-space:nowrap; }
.contact-panel--overview { min-height:360px; margin-top:clamp(42px,6vw,80px); }
.contact-panel--overview .contact-panel__copy { min-height:360px; }
.contact-panel--overview .cta { margin-top:20px; }
.contact-page { padding-top:clamp(38px,5.2vw,74px); }
.contact-hero { position:relative; }
.contact-hero h1 { position:relative; z-index:4; max-width:1180px; margin:0 auto clamp(20px,2.9vw,40px); padding:0 clamp(4px,5.8vw,84px); font-size:clamp(3rem,5.2vw,5.7rem); font-weight:500; letter-spacing:-.09em; line-height:.88; }
.contact-hero h1 strong { color:var(--terracotta); font-weight:700; }
.contact-hero__stage { position:relative; min-height:clamp(430px,43vw,515px); max-width:1225px; margin:0 auto; border-radius:clamp(31px,4.1vw,53px); background:var(--forest); }
.contact-hero__copy { position:relative; z-index:2; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; width:min(40%,440px); min-height:clamp(430px,43vw,515px); padding:clamp(34px,4.7vw,66px) clamp(30px,5.7vw,80px); }
.contact-hero__cta { display:inline-flex; align-items:center; gap:20px; padding:18px 31px; border-radius:999px; background:var(--paper); color:var(--ink); font-size:.75rem; font-weight:700; letter-spacing:.12em; line-height:1; text-decoration:none; text-transform:uppercase; transition:background .25s ease,transform .4s cubic-bezier(.16,1,.3,1); }
.contact-hero__cta span { font-size:1.2rem; font-weight:400; line-height:.75; }
.contact-hero__cta:hover { background:var(--paper); transform:translateY(-3px); }
.contact-hero__copy p { max-width:315px; margin:32px 0 0; color:var(--paper); font-size:clamp(1rem,1.32vw,1.22rem); line-height:1.28; }
.contact-hero__mark { width:112px; height:112px; margin-top:auto; object-fit:contain; object-position:left bottom; opacity:.68; filter:invert(79%) sepia(8%) saturate(640%) hue-rotate(48deg) brightness(82%) contrast(84%); }
.contact-hero__portrait { position:absolute; z-index:1; top:clamp(-260px,-18vw,-130px); right:clamp(6%,10vw,145px); bottom:0; width:clamp(310px,34vw,455px); height:auto; margin:0; pointer-events:none; }
.contact-hero__portrait img { display:block; width:100%; height:100%; object-fit:contain; object-position:center bottom; }
.project-overview { margin-top:clamp(42px,6vw,80px); }
.project-overview__track { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.project-overview__card { display:grid; min-height:420px; overflow:hidden; border-radius:var(--radius); background:var(--surface); color:var(--ink); text-decoration:none; transition:transform .55s cubic-bezier(.16,1,.3,1),background .35s ease; }
.project-overview__card:hover { background:#eee8de; transform:translateY(-6px); }
.project-overview__card figure { height:clamp(185px,19vw,280px); margin:0; overflow:hidden; background:#e8e8e6; }
.project-overview__card img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .9s cubic-bezier(.16,1,.3,1); }
.project-overview__card:hover img { transform:scale(1.045); }
.project-overview__card > div { display:flex; min-height:210px; padding:25px 26px 27px; flex-direction:column; align-items:flex-start; }
.project-overview__card p { margin:0; color:var(--sage-dark); font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.project-overview__card h2 { margin:22px 0 0; font-size:clamp(1.9rem,3vw,3.4rem); font-weight:500; letter-spacing:-.09em; line-height:.87; }
.project-overview__card span { display:inline-flex; align-items:center; gap:8px; margin-top:auto; color:var(--ink); font-size:.73rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.project-overview__card span b { color:var(--terracotta); font-size:1.05rem; font-weight:400; }
.project-overview__card--soon { opacity:.78; }
.project-overview__card--soon:hover { background:var(--surface); transform:none; }
.project-overview__card--soon:hover img { transform:none; }
.project-case { width:min(100%,1280px); margin:0 auto; padding:clamp(44px,6vw,84px) 0 42px; }
.project-back-link { display:inline-flex; align-items:center; gap:10px; min-height:44px; margin:0 0 24px; padding:8px 0; color:var(--ink); font-size:.88rem; font-weight:700; text-decoration:none; }
.project-back-link::before { content:'←'; font-size:1.2rem; font-weight:500; }
.project-back-link:hover { color:var(--terracotta); }
.project-back-link:focus-visible { outline:2px solid var(--terracotta); outline-offset:4px; }
.project-case__back { display:inline-flex; align-items:center; gap:9px; margin-bottom:clamp(40px,5vw,72px); color:var(--sage-dark); font-size:.78rem; font-weight:700; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; transition:color .25s ease; }
.project-case__back:hover { color:var(--terracotta); }
.project-case__heading { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(260px,.55fr); gap:40px; align-items:end; margin-bottom:clamp(36px,5vw,70px); }
.project-case__heading p { max-width:340px; margin:0 0 4px; color:rgba(11,11,12,.67); font-size:1.04rem; line-height:1.55; }
.project-case__hero { height:clamp(360px,54vw,700px); margin:0; overflow:hidden; border-radius:var(--radius); }
.project-case__hero img { display:block; width:100%; height:100%; object-fit:cover; }
.project-case__caption { display:flex; justify-content:space-between; gap:20px; margin-top:13px; color:var(--sage-dark); font-size:.76rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase; }
.project-case__story { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(260px,.62fr); gap:clamp(38px,8vw,130px); margin-top:clamp(72px,10vw,150px); }
.project-case__story h2 { margin:0; font-size:clamp(2.25rem,3.7vw,4.1rem); font-weight:500; letter-spacing:-.085em; line-height:.92; }
.project-case__story p { margin:0; color:rgba(11,11,12,.68); font-size:1.07rem; line-height:1.62; }
.project-case__images { display:grid; grid-template-columns:1.18fr .82fr; gap:18px; margin-top:clamp(52px,7vw,100px); }
.project-case__images figure { height:clamp(280px,38vw,530px); margin:0; overflow:hidden; border-radius:var(--radius); }
.project-case__images img { display:block; width:100%; height:100%; object-fit:cover; }
.project-case__facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:18px; }
.project-case__facts div { min-height:145px; padding:26px; border-radius:var(--radius); background:var(--surface); }
.project-case__facts span { display:block; margin-bottom:22px; color:var(--sage-dark); font-size:.72rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.project-case__facts strong { font-size:1.05rem; font-weight:600; letter-spacing:-.035em; }
.project-case__opening { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(270px,.55fr); gap:42px; align-items:end; margin-bottom:clamp(36px,5vw,70px); }
.project-case__opening p:not(.eyebrow) { max-width:355px; margin:0 0 6px; color:rgba(11,11,12,.67); font-size:1.05rem; line-height:1.56; }
.home-office-case .project-case__opening { align-items:center; }
.home-office-case .project-case__opening h1 { max-width:650px; margin:14px 0 26px; font-size:clamp(3rem,4.5vw,5rem); font-weight:500; letter-spacing:-.09em; line-height:.88; }
.home-office-case .project-case__opening h1 strong { color:var(--terracotta); font-weight:700; }
.home-office-case .project-case__figure { height:clamp(430px,47vw,640px); }
.home-office-case .project-viewer__controls { display:flex; align-items:center; gap:10px; }
.home-office-case .project-viewer__nav { position:static; display:grid; width:30px; height:30px; place-items:center; padding:0; border:1px solid rgba(11,11,12,.16); border-radius:50%; background:transparent; color:var(--ink); box-shadow:none; font-size:1.05rem; line-height:1; transform:none; }
.home-office-case .project-viewer__nav:hover { color:var(--terracotta); border-color:var(--terracotta); transform:none; }
.home-office-case .project-viewer__count { color:rgba(11,11,12,.5); font-size:.65rem; }
.project-case__figure { height:clamp(360px,54vw,700px); margin:0; overflow:hidden; border-radius:var(--radius); }
.project-case__figure img { display:block; width:100%; height:100%; object-fit:cover; }
.project-case__chapter { display:grid; grid-template-columns:minmax(110px,.26fr) minmax(0,1fr); gap:clamp(34px,6vw,96px); margin-top:clamp(78px,10vw,150px); }
.project-case__chapter-index { color:var(--sage-dark); font-size:.76rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.project-case__chapter h2 { max-width:790px; margin:0; font-size:clamp(2.3rem,4vw,4.45rem); font-weight:500; letter-spacing:-.085em; line-height:.9; }
.project-case__chapter h2 .project-case__accent { color:var(--terracotta); font-weight:700; }
.project-case__chapter-copy { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(240px,.62fr); gap:clamp(28px,6vw,90px); }
.project-case__chapter-copy p { margin:0; color:rgba(11,11,12,.68); font-size:1.04rem; line-height:1.62; }
.project-case__chapter--body { grid-template-columns:minmax(110px,.26fr) minmax(0,.78fr) minmax(240px,.54fr); }
.project-case__chapter--body p { margin:0; color:rgba(11,11,12,.68); font-size:1.04rem; line-height:1.62; }
.project-case__gallery { display:grid; grid-template-columns:1.08fr .92fr; gap:18px; margin-top:clamp(52px,7vw,100px); }
.project-case__gallery figure { height:clamp(310px,42vw,600px); margin:0; overflow:hidden; border-radius:var(--radius); }
.project-case__gallery figure:last-child { margin-top:clamp(58px,9vw,150px); }
.project-case__gallery img { display:block; width:100%; height:100%; object-fit:cover; }
.project-case__wide { height:clamp(340px,48vw,670px); margin:clamp(60px,9vw,140px) 0 0; overflow:hidden; border-radius:var(--radius); }
.project-case__wide img { display:block; width:100%; height:100%; object-fit:cover; }
.project-viewer { margin:0; }
.project-viewer__stage { position:relative; padding:0 clamp(46px,7vw,112px); }
.project-viewer__main { height:clamp(390px,54vw,700px); margin:0; overflow:hidden; border-radius:var(--radius); background:#e8e8e6; }
.project-viewer__open { position:relative; display:block; width:100%; height:100%; padding:0; border:0; background:none; cursor:zoom-in; }
.project-viewer__open img { display:block; width:100%; height:100%; object-fit:contain; transition:transform 1.1s cubic-bezier(.16,1,.3,1); }
.project-viewer__open:hover img { transform:scale(1.018); }
.project-viewer__open span { position:absolute; right:18px; bottom:18px; padding:10px 13px; border-radius:999px; background:rgba(247,246,242,.9); color:var(--ink); font-size:.7rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; opacity:0; transform:translateY(5px); transition:opacity .25s ease,transform .25s ease; }
.project-viewer__open:hover span,.project-viewer__open:focus-visible span { opacity:1; transform:translateY(0); }
.project-viewer__nav { position:absolute; top:50%; z-index:2; display:grid; width:32px; height:32px; place-items:center; padding:0; border:0; background:transparent; color:var(--terracotta); cursor:pointer; font-size:1.75rem; font-weight:400; line-height:1; transform:translateY(-50%); transition:color .25s ease,transform .3s cubic-bezier(.16,1,.3,1); }
.project-viewer__nav:hover { color:var(--ink); transform:translateY(-50%) scale(1.12); }
.project-viewer__nav--prev { left:4px; }
.project-viewer__nav--next { right:4px; }
.project-viewer__bar { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:16px; margin-top:13px; }
.project-viewer__caption { margin:0; color:var(--terracotta); font-size:.76rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.project-viewer__line { height:1px; background:repeating-linear-gradient(90deg,rgba(181,132,92,.64) 0 5px,transparent 5px 11px); }
.project-viewer__count { color:rgba(11,11,12,.38); font-size:.76rem; font-weight:700; letter-spacing:.12em; }
.project-viewer__thumbs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:22px; }
.project-viewer__thumb { aspect-ratio:1.38; padding:0; overflow:hidden; border:2px solid transparent; border-radius:17px; background:var(--portrait); cursor:pointer; opacity:.5; transition:border-color .3s ease,opacity .3s ease,transform .35s cubic-bezier(.16,1,.3,1); }
.project-viewer__thumb:hover,.project-viewer__thumb.is-active { border-color:var(--terracotta); opacity:1; transform:translateY(-3px); }
.project-viewer__thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.project-lightbox { width:min(94vw,1180px); max-height:92dvh; padding:0; overflow:hidden; border:0; border-radius:var(--radius); background:var(--ink); }
.project-lightbox::backdrop { background:rgba(9,10,9,.72); backdrop-filter:blur(5px); }
.project-lightbox figure { height:min(82dvh,760px); margin:0; }
.project-lightbox img { display:block; width:100%; height:100%; object-fit:contain; }
.project-lightbox button { position:absolute; top:18px; right:18px; display:grid; width:42px; height:42px; place-items:center; border:1px solid rgba(247,246,242,.5); border-radius:50%; background:rgba(9,10,9,.55); color:var(--paper); cursor:pointer; font-size:1.25rem; }
.project-case-intro { position:relative; min-height:590px; }
.project-case-intro__image { position:absolute; z-index:1; top:24px; left:50%; width:clamp(280px,25vw,350px); height:490px; margin:0; overflow:hidden; border-radius:27px; transform:translateX(-50%); }
.project-case-intro__image img { display:block; width:100%; height:100%; object-fit:cover; transition:opacity .36s cubic-bezier(.16,1,.3,1),transform .52s cubic-bezier(.16,1,.3,1); }
.project-case-intro__image img.is-changing { opacity:0; transform:scale(1.035); }
.project-case-intro h1 { position:relative; z-index:2; max-width:1050px; margin:0 auto; padding-top:50px; font-size:clamp(3.35rem,5.25vw,5.7rem); font-weight:500; letter-spacing:-.09em; line-height:.88; text-align:center; }
.project-case-intro h1 strong { color:var(--terracotta); font-weight:700; }
.project-case-intro__copy { position:absolute; z-index:2; top:202px; left:calc(50% + clamp(205px,15vw,250px)); width:min(29%,340px); margin:0; color:rgba(11,11,12,.68); font-size:1.04rem; line-height:1.55; }
.project-case-intro__overview { position:absolute; z-index:3; bottom:0; left:50%; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:min(92%,900px); padding:7px; border:1px solid rgba(9,10,9,.08); border-radius:18px; background:rgba(245,239,233,.9); box-shadow:0 16px 34px rgba(9,10,9,.08); backdrop-filter:blur(12px); transform:translateX(-50%); }
.project-case-intro__overview button { display:grid; min-height:92px; padding:15px 17px; border:0; border-radius:12px; background:transparent; color:var(--ink); cursor:pointer; font-family:inherit; text-align:left; transition:background .3s ease,color .3s ease,transform .35s cubic-bezier(.16,1,.3,1); }
.project-case-intro__overview button:hover,.project-case-intro__overview button:focus-visible,.project-case-intro__overview button.is-active { background:var(--forest); color:var(--paper); outline:0; }
.project-case-intro__overview button:hover { transform:translateY(-2px); }
.project-case-intro__overview span { color:var(--terracotta); font-size:.68rem; font-weight:700; letter-spacing:.12em; }
.project-case-intro__overview strong { margin-top:4px; font-size:1.05rem; font-weight:600; letter-spacing:-.04em; }
.project-case-intro__overview small { margin-top:4px; color:rgba(9,10,9,.58); font-size:.77rem; line-height:1.35; }
.project-case-intro__overview button.is-active small,.project-case-intro__overview button:hover small,.project-case-intro__overview button:focus-visible small { color:rgba(247,246,242,.72); }
footer { display:flex; align-items:center; justify-content:space-between; gap:30px; min-height:190px; margin-top:20px; padding:38px 36px; border-radius:var(--radius); background:var(--slate); color:var(--paper); }
.footer-note { margin:0; font-size:.9rem; line-height:1.5; }
.social { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:clamp(20px,4vw,62px); }
.social a { color:inherit; font-size:.88rem; font-weight:800; text-decoration:none; text-transform:uppercase; transition:color .25s ease; }
.social a:hover { color:var(--terracotta); }
.about-page { overflow:hidden; padding:8px clamp(20px,3.2vw,42px) 24px; }
.about-hero { position:relative; min-height:555px; }
.about-hero__portrait { position:absolute; z-index:1; top:26px; left:50%; width:clamp(260px,23vw,316px); height:470px; margin:0; overflow:hidden; border-radius:27px; transform:translateX(-50%); }
.about-hero__portrait img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 28%; filter:grayscale(1) contrast(.95); }
.about-hero h1 { position:relative; z-index:2; max-width:950px; margin:0 auto; padding-top:48px; font-size:clamp(3.4rem,5.1vw,5.45rem); font-weight:700; letter-spacing:-.08em; line-height:.92; text-align:center; }
.about-hero__title-fixed { display:inline-block; }
.about-hero__rotating-word { display:inline-block; color:var(--terracotta); font-weight:700; white-space:nowrap; }
@media (min-width:901px) { .about-hero h1 { display:flex; align-items:baseline; justify-content:center; gap:.17em; white-space:nowrap; }.about-hero__title-fixed { flex:0 0 auto; }.about-hero__rotating-word { flex:0 0 7.8em; text-align:left; } }
.about-hero .about-hero__rotating-word.is-entering { animation:about-title-possible .42s cubic-bezier(.16,1,.3,1) both; }
.about-hero.is-title-ready .about-hero__rotating-word.is-changing { animation:about-title-leave .18s cubic-bezier(.7,0,.84,0) both; }
.about-hero__copy { position:absolute; z-index:2; top:190px; left:calc(50% + clamp(185px,14vw,225px)); width:min(29%,340px); margin:0; font-size:clamp(.98rem,1.25vw,1.2rem); line-height:1.38; }
.about-hero__meta { position:absolute; bottom:14px; left:50%; margin:0; font-size:.8rem; font-weight:700; letter-spacing:-.02em; transform:translateX(-50%); }
.about-composition { position:relative; min-height:930px; margin-top:76px; padding-top:18px; }
.about-composition__copy { width:58%; min-height:364px; margin-left:0; padding:clamp(36px,4vw,66px); border-radius:29px; background:var(--surface); }
.about-composition__copy h2 { max-width:620px; margin:0; font-size:clamp(2.45rem,4.1vw,4.6rem); font-weight:500; letter-spacing:-.085em; line-height:.91; }
.about-composition__copy p:not(.eyebrow) { max-width:560px; margin:28px 0 0; color:rgba(11,11,12,.68); font-size:1.04rem; line-height:1.55; }
.about-composition__detail { position:absolute; z-index:1; top:482px; right:0; width:47%; min-height:248px; padding:clamp(34px,3.5vw,52px); border-radius:27px; background:var(--terracotta); }
.about-composition__detail strong { display:block; max-width:430px; font-size:clamp(1.85rem,3vw,3.3rem); font-weight:700; letter-spacing:-.07em; line-height:.94; }
.about-composition__detail p { max-width:435px; margin:26px 0 0; font-size:1rem; line-height:1.5; opacity:0; transform:translateY(10px); transition:opacity .45s cubic-bezier(.16,1,.3,1),transform .45s cubic-bezier(.16,1,.3,1); }
.about-composition__statement { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(240px,.75fr); gap:30px; min-height:253px; margin:448px 0 0; padding:clamp(34px,4.2vw,60px); border-radius:29px; background:var(--sage); color:var(--paper); }
.about-composition__statement h2 { max-width:690px; margin:0; font-size:clamp(2.4rem,4vw,4.55rem); font-weight:500; letter-spacing:-.085em; line-height:.9; }
.about-composition__statement p { max-width:330px; margin:auto 0 0; color:#e9ece5; font-size:1.02rem; line-height:1.52; }
.about-focus { transform:translateY(0) scale(1); transform-origin:center; transition:filter .8s cubic-bezier(.16,1,.3,1),opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1); }
.about-composition.is-sequenced .about-focus { filter:blur(2.4px); opacity:.42; transform:translateY(14px) scale(.982); }
.about-composition.is-sequenced .about-focus > * { opacity:0; transform:translateY(16px); transition:opacity .52s cubic-bezier(.16,1,.3,1),transform .52s cubic-bezier(.16,1,.3,1); }
.about-composition.is-sequenced .about-focus.is-active { filter:blur(0); opacity:1; outline:0; transform:translateY(0) scale(1); }
.about-composition.is-sequenced .about-focus.is-active > * { opacity:1; transform:translateY(0); }
.about-composition.is-sequenced .about-focus.is-active > :nth-child(1) { transition-delay:.06s; }
.about-composition.is-sequenced .about-focus.is-active > :nth-child(2) { transition-delay:.16s; }
.about-composition.is-sequenced .about-focus.is-active > :nth-child(3) { transition-delay:.26s; }
@keyframes about-title-possible { 0% { opacity:0; transform:translateY(15px); } 62% { opacity:1; transform:translateY(-1px); } 100% { opacity:1; transform:translateY(0); } }
@keyframes about-title-leave { 0% { opacity:1; transform:translateY(0); } 100% { opacity:0; transform:translateY(-10px); } }
@media (max-width:900px) { .page{width:min(100% - 32px,720px);margin-top:16px}.site-header{min-height:82px;padding:10px 17px}.brand img{width:146px;height:52px}.header-mark{width:44px;height:44px}.header-mark img{width:39px;height:39px}.site-nav{position:absolute;z-index:5;top:calc(100% + 10px);right:0;display:none;width:min(310px,100%);padding:22px;border-radius:22px;background:var(--surface);box-shadow:0 18px 40px rgba(0,0,0,.12)}.site-nav.is-open{display:grid;gap:19px}.menu-button{display:block;margin-left:auto}.hero,.contact-panel{grid-template-columns:1fr}.hero__copy,.contact-panel__copy{min-height:390px}.hero__image{min-height:min(92vw,470px)}.hero__image img{object-position:50% 32%}.section-heading{display:grid;gap:22px}.project-grid,.bio,.statement{grid-template-columns:1fr}.project-card,.project-card:nth-child(even){grid-template-columns:minmax(0,1fr) minmax(150px,.55fr)}.contact-panel__image{height:min(78vw,490px)}.contact-details{grid-template-columns:1fr}.contact-details a,.contact-details div{min-height:125px}footer{align-items:flex-start;min-height:auto;padding:35px 24px;flex-direction:column}.social{justify-content:flex-start;gap:22px} }
@media (max-width:520px) { .page{width:calc(100% - 24px)}.site-header{border-radius:21px}.hero,.contact-panel,.statement,.bio__copy,.bio__detail,.project-card,.contact-details a,.contact-details div,footer{border-radius:21px}.hero h1,.contact-panel h1{font-size:clamp(2.6rem,12vw,3.55rem)}.section-heading h2{font-size:clamp(2.1rem,10vw,3.05rem)}.statement h2{font-size:clamp(2.05rem,9.8vw,2.95rem)}.project-card,.project-card:nth-child(even){grid-template-columns:1fr}.project-card__image{min-height:195px;grid-row:1}.project-card:nth-child(even) .project-card__image{grid-column:1}.project-card__content{min-height:235px}.hero__copy,.contact-panel__copy{padding:29px 25px}.statement,.bio__copy,.bio__detail{padding:29px 25px}.hero__image{min-height:390px} }
@media (max-width:900px) { .about-page{padding-top:0}.about-hero{min-height:710px}.about-hero__portrait{top:130px;width:min(54vw,316px);height:min(80vw,470px)}.about-hero h1{max-width:620px;padding-top:42px;font-size:clamp(2.65rem,8vw,4.3rem)}.about-hero__copy{top:calc(min(80vw,470px) + 154px);right:8%;left:8%;width:auto;max-width:420px;margin:0 auto;text-align:center}.about-hero__meta{bottom:8px;left:50%}.about-composition{min-height:auto;margin-top:54px;padding-top:8px}.about-composition__copy{width:88%;min-height:auto;margin-left:0;padding:34px 28px}.about-composition__detail{position:relative;top:auto;right:auto;width:76%;min-height:190px;margin:100px 0 0 auto;padding:32px 28px}.about-composition__detail p{margin-top:22px;opacity:1;transform:none}.about-composition__statement{grid-template-columns:1fr;min-height:auto;margin-top:100px;padding:35px 28px;gap:34px} }
@media (max-width:900px) { .project-index{padding-top:22px}.project-index__intro,.project-case__heading,.project-case__story,.project-case__opening,.project-case__chapter,.project-case__chapter-copy,.project-case__chapter--body{display:grid;grid-template-columns:1fr;gap:26px}.blog-page,.contact-page{padding-top:42px}.page-intro h1{font-size:clamp(2.65rem,8vw,4.3rem)}.blog-overview{grid-template-columns:1fr;gap:18px}.blog-overview .eyebrow{margin:0 8px 4px}.project-overview__track{grid-template-columns:repeat(3,minmax(230px,1fr));gap:14px;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory}.project-overview__card{min-height:385px;scroll-snap-align:start}.project-overview__card figure{height:190px}.project-overview__card>div{min-height:195px;padding:22px}.project-case{padding-top:42px}.project-case__hero,.project-case__figure,.project-viewer__main{height:min(76vw,540px)}.project-case__images,.project-case__gallery{grid-template-columns:1fr;gap:16px}.project-case__images figure,.project-case__gallery figure{height:min(72vw,470px);margin-top:0}.project-case__facts{grid-template-columns:1fr;gap:12px}.project-case__facts div{min-height:120px}.project-case__wide{height:min(76vw,520px)}.project-viewer__stage{padding:0 38px}.project-viewer__thumbs{gap:8px}.project-viewer__thumb{border-radius:12px}.project-viewer__open span{display:none}.project-case-intro{min-height:890px}.project-case-intro__image{top:126px;width:min(58vw,350px);height:min(82vw,490px)}.project-case-intro h1{max-width:620px;padding-top:35px;font-size:clamp(2.6rem,8vw,4.25rem)}.project-case-intro__copy{top:calc(min(82vw,490px) + 154px);right:8%;left:8%;width:auto;max-width:420px;margin:0 auto;text-align:center}.project-case-intro__overview{grid-template-columns:1fr;width:min(84%,430px);padding:6px}.project-case-intro__overview button{min-height:auto;padding:11px 13px;grid-template-columns:32px 1fr;column-gap:9px}.project-case-intro__overview span{grid-row:1 / span 2}.project-case-intro__overview strong{margin:0}.project-case-intro__overview small{margin:2px 0 0} }
@media (max-width:900px) { .home-office-case .project-case__opening h1 { font-size:clamp(2.7rem,11vw,3.6rem); } .home-office-case .project-case__figure { height:min(88vw,500px); } }
@media (max-width:900px) { .project-overview__track{grid-template-columns:1fr;gap:16px;overflow:visible;padding:0;scroll-snap-type:none}.project-overview__card{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);min-height:220px;scroll-snap-align:none}.project-overview__card figure{height:auto;min-height:220px}.project-overview__card>div{min-height:220px;padding:22px}.project-overview__card h2{margin-top:15px;font-size:clamp(2rem,8vw,2.7rem)} }
@media (max-width:460px) { .project-overview__card{grid-template-columns:1fr}.project-overview__card figure{height:205px;min-height:0}.project-overview__card>div{min-height:185px} }
@media (prefers-reduced-motion:reduce) { .reveal,.reveal.is-visible { opacity:1; transform:none; transition-duration:.01ms; } }

.instagram-feed { margin-top:clamp(46px,6vw,82px); padding:clamp(25px,3.1vw,44px); border-radius:var(--radius); background:var(--surface); }
.instagram-feed__heading { display:flex; align-items:end; justify-content:space-between; gap:28px; margin-bottom:clamp(24px,3.2vw,42px); }
.instagram-feed__heading .eyebrow { margin-bottom:12px; color:var(--terracotta); }
.instagram-feed__heading h2 { margin:0; font-size:clamp(2rem,3.25vw,3.8rem); font-weight:500; letter-spacing:-.085em; line-height:.9; }
.instagram-feed__link { display:inline-flex; align-items:center; gap:10px; padding:12px 0; color:var(--ink); font-size:.76rem; font-weight:700; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; transition:color .25s ease; }
.instagram-feed__link span { color:var(--terracotta); font-size:1.25rem; font-weight:400; line-height:.7; transition:transform .3s cubic-bezier(.16,1,.3,1); }
.instagram-feed__link:hover { color:var(--terracotta); }
.instagram-feed__link:hover span { transform:translate(3px,-3px); }
.instagram-feed__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.instagram-feed__grid a { display:block; aspect-ratio:1; overflow:hidden; border-radius:18px; background:var(--portrait); }
.instagram-feed__grid img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.16,1,.3,1),filter .4s ease; }
.instagram-feed__grid a:hover img { filter:saturate(1.08); transform:scale(1.055); }
.instagram-feed__embed { display:block; aspect-ratio:1; overflow:hidden; border-radius:18px; background:var(--portrait); }
.instagram-feed__embed iframe { display:block; width:100%; height:calc(100% + 2px); border:0; background:var(--portrait); pointer-events:none; }
.instagram-feed__note { margin:22px 0 0; color:rgba(11,11,12,.54); font-size:.78rem; line-height:1.45; }

@media (max-width:620px) { .instagram-feed{padding:24px 18px}.instagram-feed__heading{display:grid;align-items:start;gap:18px}.instagram-feed__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.instagram-feed__grid a{border-radius:14px} }

@media (max-width:900px) { .contact-hero h1{max-width:720px;padding:0}.contact-hero__stage{min-height:590px}.contact-hero__copy{width:49%;min-height:590px;padding:45px 42px}.contact-hero__portrait{top:-148px;right:1%;width:min(54vw,440px);height:auto}.contact-hero__copy p{max-width:270px;font-size:1rem}.contact-hero__mark{width:92px;height:92px} }
@media (max-width:620px) { .contact-page{padding-top:27px}.contact-hero h1{margin-bottom:22px;font-size:clamp(2.7rem,12vw,4rem)}.contact-hero__stage{min-height:670px;border-radius:28px}.contact-hero__copy{width:61%;min-height:670px;padding:31px 25px}.contact-hero__cta{gap:12px;padding:15px 18px;font-size:.62rem;letter-spacing:.09em}.contact-hero__copy p{max-width:225px;margin-bottom:26px;font-size:.93rem;line-height:1.32}.contact-hero__mark{width:79px;height:79px}.contact-hero__portrait{top:24px;right:-18%;width:100%;height:auto}.contact-details{margin-top:44px} }

/* Composição fornecida para o contato: preserva a relação aprovada entre retrato e painel. */
.contact-hero__stage { min-height:0; aspect-ratio:2446 / 1493; overflow:visible; border-radius:0; background:transparent; }
.contact-hero__composition { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; pointer-events:none; }
.contact-hero h1 { position:absolute; z-index:2; top:20.5%; left:6.8%; max-width:none; margin:0; padding:0; font-size:clamp(2.7rem,4.1vw,3.55rem); }
.contact-hero h1 strong { color:var(--ink); }
.contact-hero__copy { position:absolute; z-index:2; top:25.85%; left:6.8%; display:flex; width:34%; height:74.15%; min-height:0; padding:0; align-items:flex-start; justify-content:center; }
.contact-hero__cta { gap:clamp(10px,1.3vw,18px); padding:clamp(14px,1.45vw,18px) clamp(20px,2.25vw,30px); font-size:clamp(.61rem,.76vw,.75rem); letter-spacing:.1em; white-space:nowrap; }
.contact-hero__copy .contact-hero__cta { align-self:flex-start; }
.contact-hero__cta:focus { outline:none; }
.contact-hero__cta:focus-visible { outline:2px solid rgba(247,246,242,.78); outline-offset:4px; }
.contact-hero__copy p { max-width:310px; margin:29px 0 0; font-size:clamp(.95rem,1.35vw,1.2rem); line-height:1.32; }
.contact-hero__mark { width:clamp(84px,8.7vw,120px); height:clamp(84px,8.7vw,120px); margin-top:auto; }
.contact-hero__portrait { display:none; }

@media (max-width:620px) { .contact-page{padding-top:22px}.contact-hero__stage { min-height:680px; margin-top:138px; aspect-ratio:auto; overflow:visible; border-radius:28px; background:var(--forest); }.contact-hero__composition { display:none; }.contact-hero h1 { top:-131px; left:0; font-size:clamp(2.7rem,12vw,4rem); color:var(--ink); }.contact-hero__copy { top:0; left:0; display:flex; width:100%; height:100%; min-height:0; padding:30px 24px; align-items:center; justify-content:center; }.contact-hero__copy .contact-hero__cta { align-self:center; }.contact-hero__mark { position:absolute; z-index:3; bottom:30px; left:25px; width:79px; height:79px; margin:0; }.contact-hero__portrait { position:absolute; z-index:1; top:112px; right:auto; bottom:0; left:50%; display:block; width:min(108%,500px); height:auto; margin:0; transform:translateX(-50%); pointer-events:none; }.contact-hero__portrait img { display:block; width:100%; height:100%; object-fit:contain; object-position:center bottom; } }

/* Painel de contato com as cores da marca. */
.contact-hero__stage { background:transparent; }
.contact-hero__stage::before { position:absolute; z-index:0; top:25.85%; right:0; bottom:0; left:0; border-radius:clamp(31px,4.1vw,53px); background:#778477; content:''; }
.contact-hero__composition { display:none; }
.contact-hero h1 { top:15%; }
.contact-hero__portrait { position:absolute; z-index:1; top:0; right:8.3%; bottom:0; left:auto; display:block; width:43%; height:auto; margin:0; pointer-events:none; transform:none; }
.contact-hero__portrait img { display:block; width:100%; height:100%; object-fit:contain; object-position:center bottom; }
.contact-hero__mark { display:none; }
.contact-hero__pattern { position:absolute; z-index:0; top:calc(25.85% + 26px); right:28px; bottom:26px; left:28px; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); grid-template-rows:repeat(4,minmax(0,1fr)); gap:14px; pointer-events:none; }
.contact-hero__pattern span { display:block; background:var(--paper); -webkit-mask:url('assets/DONATO ANDRADE  (PNG)-36.png') center / contain no-repeat; mask:url('assets/DONATO ANDRADE  (PNG)-36.png') center / contain no-repeat; opacity:.045; }
@media (max-width:620px) { .contact-hero__stage { background:#778477; }.contact-hero__stage::before { display:none; }.contact-hero h1 { top:-131px; }.contact-hero__portrait { top:112px; right:auto; bottom:0; left:50%; width:min(108%,500px); transform:translateX(-50%); }.contact-hero__mark { bottom:30px; left:25px; width:79px; height:79px; background:#B5845C; filter:none; } }
@media (max-width:620px) { .contact-hero__pattern { top:24px; right:20px; bottom:24px; left:20px; grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-rows:repeat(5,minmax(0,1fr)); gap:10px; } }

.contact-hero__copy { top:25.85%; height:74.15%; justify-content:center; }
.contact-hero__form { display:grid; width:100%; gap:10px; }
.contact-hero__form label { display:grid; gap:5px; color:rgba(247,246,242,.86); font-size:.61rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.contact-hero__form input,.contact-hero__form textarea { width:100%; padding:10px 12px; border:1px solid transparent; border-radius:7px; outline:0; background:rgba(247,246,242,.95); color:var(--ink); font:inherit; font-size:.82rem; letter-spacing:0; text-transform:none; }
.contact-hero__form textarea { min-height:66px; resize:vertical; }
.contact-hero__form input::placeholder,.contact-hero__form textarea::placeholder { color:rgba(11,11,12,.48); }
.contact-hero__form input:focus,.contact-hero__form textarea:focus { border-color:var(--ink); }
.contact-hero__form p { max-width:none; margin:1px 0 0; color:rgba(247,246,242,.75); font-size:.66rem; line-height:1.3; }
.contact-hero__form button { justify-self:start; display:inline-flex; align-items:center; gap:10px; margin-top:2px; padding:12px 16px 12px 18px; border:0; border-radius:999px; background:var(--ink); color:var(--paper); cursor:pointer; font:inherit; font-size:.65rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; transition:transform .12s ease; }
.contact-hero__form button::before { width:15px; height:15px; background:currentColor; content:''; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a10 10 0 0 0-8.57 15.15L2 22l4.98-1.31A10 10 0 1 0 12 2Zm0 2a8 8 0 0 1 6.86 12.12l-.27.44.7 2.04-2.1-.67-.42.25A8 8 0 1 1 12 4Zm-3.3 3.5c-.23 0-.48.05-.68.27-.2.22-.77.75-.77 1.83s.79 2.12.9 2.27c.12.14 1.55 2.36 3.76 3.31.53.23.94.37 1.26.47.53.17 1.02.15 1.4.09.43-.06 1.32-.54 1.5-1.06.19-.52.19-.97.13-1.06-.05-.1-.2-.15-.43-.26-.23-.12-1.32-.65-1.52-.72-.2-.08-.36-.12-.5.12-.15.23-.58.72-.72.86-.13.15-.27.17-.5.06-.23-.12-.97-.36-1.85-1.16-.68-.61-1.14-1.37-1.27-1.6-.13-.23-.02-.35.1-.46.1-.1.23-.27.35-.4.11-.14.15-.23.23-.38.07-.14.03-.28-.02-.4-.06-.12-.5-1.2-.68-1.65-.18-.43-.36-.37-.5-.38Z'/%3E%3C/svg%3E") center / contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a10 10 0 0 0-8.57 15.15L2 22l4.98-1.31A10 10 0 1 0 12 2Zm0 2a8 8 0 0 1 6.86 12.12l-.27.44.7 2.04-2.1-.67-.42.25A8 8 0 1 1 12 4Zm-3.3 3.5c-.23 0-.48.05-.68.27-.2.22-.77.75-.77 1.83s.79 2.12.9 2.27c.12.14 1.55 2.36 3.76 3.31.53.23.94.37 1.26.47.53.17 1.02.15 1.4.09.43-.06 1.32-.54 1.5-1.06.19-.52.19-.97.13-1.06-.05-.1-.2-.15-.43-.26-.23-.12-1.32-.65-1.52-.72-.2-.08-.36-.12-.5.12-.15.23-.58.72-.72.86-.13.15-.27.17-.5.06-.23-.12-.97-.36-1.85-1.16-.68-.61-1.14-1.37-1.27-1.6-.13-.23-.02-.35.1-.46.1-.1.23-.27.35-.4.11-.14.15-.23.23-.38.07-.14.03-.28-.02-.4-.06-.12-.5-1.2-.68-1.65-.18-.43-.36-.37-.5-.38Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.contact-hero__form button:active { transform:scale(.975); }
.contact-hero__form button span { font-size:1rem; font-weight:400; line-height:.8; }
@media (max-width:620px) { .contact-hero__stage { min-height:800px; }.contact-hero__copy { top:0; height:100%; align-items:flex-start; justify-content:center; padding:30px 24px; }.contact-hero__form { max-width:340px; }.contact-hero__portrait { opacity:.22; } }
@media (min-width:621px) and (max-width:900px) { .contact-page{padding-top:30px}.contact-hero h1{position:relative;top:auto;left:auto;max-width:none;margin:0 0 26px;padding:0 34px;font-size:clamp(3rem,6vw,4.15rem);line-height:.9}.contact-hero__stage{min-height:540px;aspect-ratio:auto;overflow:hidden;border-radius:36px;background:#778477}.contact-hero__stage::before{display:none}.contact-hero__copy{top:0;left:0;width:48%;height:100%;min-height:0;padding:36px 34px;align-items:flex-start;justify-content:center}.contact-hero__form{max-width:330px}.contact-hero__portrait{top:18px;right:2%;bottom:0;left:auto;width:46%;height:auto;opacity:1;transform:none}.contact-hero__pattern{top:24px;right:24px;bottom:24px;left:24px;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:12px} }

/* Abertura editorial do estudo de caso. */
.project-case-intro { display:grid; grid-template-columns:minmax(0,.82fr) minmax(360px,1.18fr); grid-template-rows:auto 1fr auto; min-height:680px; margin-top:clamp(24px,4vw,58px); column-gap:clamp(36px,7vw,112px); row-gap:clamp(24px,3vw,42px); }
.project-case-intro__image { position:relative; z-index:auto; grid-column:2; grid-row:2; top:auto; left:auto; width:100%; height:clamp(430px,43vw,630px); margin:0; border-radius:27px; transform:none; }
.project-case-intro__image::after { content:none; }
.project-case-intro h1 { position:relative; z-index:auto; grid-column:1 / -1; grid-row:1; align-self:end; max-width:1050px; margin:0 auto; padding:0; font-size:clamp(3.45rem,5.55vw,6.35rem); line-height:.84; text-align:center; }
.project-case-intro__copy { position:relative; z-index:auto; grid-column:1; grid-row:2; align-self:start; top:auto; left:auto; width:auto; max-width:370px; margin:0; padding-top:10px; font-size:clamp(1.05rem,1.32vw,1.25rem); line-height:1.48; }
.project-case-intro__overview { position:relative; z-index:auto; bottom:auto; left:auto; display:grid; grid-column:1 / -1; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; padding:0; border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; box-shadow:none; backdrop-filter:none; transform:none; }
.project-case-intro__overview article { display:grid; min-height:128px; padding:18px 20px 14px 0; border-right:1px solid var(--line); color:var(--ink); }
.project-case-intro__overview article+article { padding-left:20px; }
.project-case-intro__overview article:last-child { border-right:0; }
.project-case-intro__overview span { color:var(--terracotta); font-size:.68rem; font-weight:800; letter-spacing:.12em; }
.project-case-intro__overview strong { align-self:end; margin-top:12px; font-size:1.15rem; font-weight:600; letter-spacing:-.04em; }
.project-case-intro__overview small { margin-top:4px; color:rgba(9,10,9,.58); font-size:.82rem; line-height:1.38; }
@media (max-width:900px) { .project-case-intro { grid-template-columns:1fr; grid-template-rows:auto auto auto; min-height:auto; margin-top:28px; row-gap:26px; }.project-case-intro__image { grid-column:1; grid-row:2; width:min(100%,560px); height:min(94vw,580px); margin:0 auto; }.project-case-intro h1 { grid-column:1; grid-row:1; max-width:720px; padding:0; font-size:clamp(3rem,10vw,5.4rem); text-align:center; }.project-case-intro__copy { grid-column:1; grid-row:3; max-width:550px; padding:0; text-align:left; }.project-case-intro__overview { grid-column:1; grid-row:4; }.project-case-intro__overview article { min-height:112px; } }
@media (max-width:620px) { .project-case-intro { row-gap:20px; }.project-case-intro__image { height:min(112vw,490px); }.project-case-intro__overview { grid-template-columns:1fr; }.project-case-intro__overview article,.project-case-intro__overview article+article { min-height:0; padding:15px 0; border-right:0; border-bottom:1px solid var(--line); grid-template-columns:44px 1fr; column-gap:10px; }.project-case-intro__overview article:last-child { border-bottom:0; }.project-case-intro__overview span { grid-row:1 / span 2; }.project-case-intro__overview strong { align-self:auto; margin:0; }.project-case-intro__overview small { grid-column:2; margin:2px 0 0; } }

/* Abertura inspirada na composição editorial aprovada. */
@media (min-width:901px) { .project-case-intro { display:block; min-height:640px; margin-top:clamp(24px,4vw,58px); }.project-case-intro__image { position:absolute; top:42px; left:50%; width:clamp(280px,25vw,350px); height:490px; margin:0; transform:translateX(-50%); }.project-case-intro h1 { position:relative; z-index:2; width:100%; max-width:1050px; margin:0 auto; padding-top:50px; font-size:clamp(3.35rem,5.25vw,5.7rem); text-align:center; }.project-case-intro__copy { position:absolute; top:202px; left:calc(50% + clamp(205px,15vw,250px)); width:min(29%,340px); margin:0; padding:0; font-size:1.04rem; line-height:1.55; text-align:left; }.project-case-intro__overview { position:absolute; right:4%; bottom:0; left:4%; width:auto; }.project-case-intro + .project-case__chapter { margin-top:72px; } }
@media (min-width:901px) { .project-case { width:min(calc(100% - 112px),1120px); } }
@media (min-width:901px) { .project-case__chapter:not(.project-case__chapter--body) { display:block; }.project-case__chapter:not(.project-case__chapter--body)>div { max-width:820px; margin:0 auto; }.project-case__chapter:not(.project-case__chapter--body) h2 { max-width:820px; font-size:clamp(2.5rem,3.75vw,4.2rem); line-height:.94; }.project-case__chapter:not(.project-case__chapter--body) .project-case__chapter-copy { grid-template-columns:1fr; max-width:680px; gap:18px; margin:30px 0 0; }.project-case__chapter:not(.project-case__chapter--body) .project-case__chapter-copy p { font-size:1rem; line-height:1.7; }.project-case__chapter--body { grid-template-columns:1fr; max-width:680px; margin-right:auto; margin-left:auto; gap:18px; } }

/* Galeria: os controles e a identificação pertencem à própria imagem. */
.project-viewer__open .project-viewer__image-caption { position:absolute; right:auto; bottom:18px; left:18px; display:block; padding:9px 12px; border:1px solid rgba(247,246,242,.72); border-radius:999px; background:rgba(11,11,12,.62); color:var(--paper); font-size:.68rem; font-weight:800; letter-spacing:.1em; line-height:1; text-transform:uppercase; opacity:1; transform:none; }
.project-viewer__bar { grid-template-columns:1fr auto; margin-top:13px; }
.project-viewer__bar .project-viewer__caption { display:none; }
.project-viewer__nav { width:44px; height:44px; border:1px solid rgba(247,246,242,.82); border-radius:50%; background:rgba(247,246,242,.92); color:var(--ink); box-shadow:0 5px 16px rgba(11,11,12,.13); font-size:1.45rem; }
.project-viewer__nav:hover { color:var(--terracotta); transform:translateY(-50%) scale(1.07); }
.project-viewer__nav--prev { left:calc(clamp(46px,7vw,112px) + 16px); }
.project-viewer__nav--next { right:calc(clamp(46px,7vw,112px) + 16px); }
@media (max-width:900px) { .project-viewer__stage { padding:0; }.project-viewer__nav { display:none; }.project-viewer__thumbs { display:flex; gap:12px; overflow-x:auto; padding:2px 2px 10px; scroll-snap-type:x mandatory; }.project-viewer__thumb { flex:0 0 min(42vw,180px); scroll-snap-align:start; }.project-viewer__open .project-viewer__image-caption { right:14px; bottom:14px; left:auto; font-size:.62rem; } }

@media (min-width:901px) { .about-composition__copy,.about-composition__detail,.about-composition__statement { width:72%; min-height:364px; }.about-composition__detail { right:0; }.about-composition__statement { grid-template-columns:1fr; margin-top:564px; }.about-composition__statement p { max-width:540px; margin:22px 0 0; } }

/* Os três cards seguem a mesma ordem: etapa, ideia principal e explicação. */
.about-composition__copy h2,.about-composition__detail h2,.about-composition__statement h2 { max-width:580px; margin:0; font-size:clamp(2.2rem,3.25vw,3.7rem); font-weight:500; letter-spacing:-.08em; line-height:.93; }
.about-composition__detail .eyebrow { color:rgba(9,10,9,.68); }
.about-composition__statement .eyebrow { color:rgba(247,246,242,.74); }
.about-composition__detail p,.about-composition__statement p { max-width:470px; margin:24px 0 0; color:rgba(9,10,9,.72); font-size:1.04rem; line-height:1.55; opacity:1; transform:none; }
.about-composition__statement p { color:#e9ece5; }

@media (min-width:901px) {
  .about-composition { display:grid; min-height:0; margin-top:76px; padding:0; gap:32px; }
  .about-composition__copy,.about-composition__detail,.about-composition__statement { position:relative; top:auto; right:auto; width:100%; min-height:0; margin:0; padding:clamp(30px,3.5vw,46px); }
  .about-composition__detail { background:var(--sage); }
  .about-composition__statement { background:var(--terracotta); }
}

.about-composition__copy h2,.about-composition__detail h2,.about-composition__statement h2 { max-width:min(100%,720px); }
.about-composition__copy p:not(.eyebrow),.about-composition__detail p,.about-composition__statement p { max-width:min(100%,680px); margin-top:24px; }
.about-composition__copy,.about-composition__detail,.about-composition__statement { display:flex; flex-direction:column; gap:0; }
.about-composition__copy .eyebrow,.about-composition__detail .eyebrow,.about-composition__statement .eyebrow { margin:0 0 16px; }
.about-composition__copy h2,.about-composition__detail h2,.about-composition__statement h2 { margin:0; }
.about-composition__copy p:not(.eyebrow),.about-composition__detail p,.about-composition__statement p { margin:24px 0 0; }

/* Dormitório Vitória */
.vitoria-case { --vitoria-copy-width:390px; padding-top:clamp(30px,5vw,72px); }
.vitoria-hero { display:grid; grid-template-columns:minmax(260px,.76fr) minmax(0,1.24fr); align-items:center; gap:clamp(32px,7vw,110px); min-height:670px; }
.vitoria-hero>div { min-width:0; }
.vitoria-hero h1 { max-width:100%; margin:14px 0 26px; font-size:clamp(3rem,4.2vw,4.8rem); font-weight:500; letter-spacing:-.085em; line-height:.88; }
.vitoria-hero h1 strong { color:var(--terracotta); font-weight:700; }
.vitoria-hero p:not(.eyebrow) { max-width:var(--vitoria-copy-width); margin:0; color:rgba(11,11,12,.68); font-size:1.08rem; line-height:1.58; }
.vitoria-hero figure { height:clamp(470px,53vw,760px); margin:0; overflow:hidden; border-radius:var(--radius); background:var(--surface); }
.vitoria-hero img,.vitoria-process img,.vitoria-materials img,.vitoria-image-note img,.vitoria-two-up img { display:block; width:100%; height:100%; object-fit:cover; }
.vitoria-intro { display:grid; grid-template-columns:minmax(120px,.27fr) minmax(0,1fr); gap:clamp(36px,7vw,110px); margin:clamp(92px,14vw,190px) 0 clamp(42px,6vw,86px); }
.vitoria-intro>span { color:var(--sage-dark); font-size:.73rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.vitoria-intro h2 { max-width:800px; margin:0 0 28px; font-size:clamp(2.65rem,4.8vw,5.4rem); font-weight:500; letter-spacing:-.09em; line-height:.86; }
.vitoria-intro em { color:var(--terracotta); font-style:normal; font-weight:700; }
.vitoria-intro p { max-width:var(--vitoria-copy-width); margin:0; color:rgba(11,11,12,.68); font-size:1.07rem; line-height:1.62; }
.vitoria-process { display:grid; grid-template-columns:1.05fr .95fr; gap:18px; }
.vitoria-process figure { height:clamp(250px,29vw,410px); margin:0; overflow:hidden; border-radius:var(--radius); background:var(--surface); }
.vitoria-process figure:first-child img { object-position:center; }
.vitoria-process figure:last-child { display:grid; place-items:center; padding:clamp(18px,3vw,38px); }
.vitoria-process figure:last-child img { object-fit:contain; }
.vitoria-intro:first-of-type { margin-top:clamp(72px,10vw,130px); margin-bottom:clamp(30px,4vw,52px); }
.vitoria-intro:first-of-type h2 { max-width:670px; font-size:clamp(2.25rem,3.7vw,4rem); }
.vitoria-plan { position:relative; display:grid; height:clamp(330px,42vw,600px); margin:0; padding:clamp(22px,4vw,58px); overflow:hidden; place-items:center; border-radius:var(--radius); background:var(--surface); }
.vitoria-plan img { display:block; width:100%; height:100%; object-fit:contain; transition:transform 1.2s cubic-bezier(.16,1,.3,1); }
.vitoria-plan:hover img { transform:scale(1.035); }
.vitoria-plan figcaption { position:absolute; right:20px; bottom:18px; padding:8px 12px; border-radius:999px; background:rgba(247,246,242,.88); color:var(--sage-dark); font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.space-reading { --interpretation:0; margin:clamp(72px,10vw,140px) 0 0; }
.space-reading.is-proposal { --interpretation:1; }
.space-reading__heading { display:grid; grid-template-columns:minmax(120px,.26fr) minmax(0,1fr); gap:clamp(34px,6vw,100px); width:min(100%,900px); margin:0 auto clamp(12px,1.8vw,24px); }
.space-reading__heading .eyebrow { margin:7px 0 0; }
.space-reading__heading h2 { max-width:650px; margin:0; font-size:clamp(2.4rem,4vw,4.55rem); font-weight:500; letter-spacing:-.09em; line-height:.86; }
.space-reading__heading h2 em { color:var(--terracotta); font-style:normal; font-weight:700; }
.space-reading__heading div>p { max-width:var(--vitoria-copy-width); margin:25px 0 0; color:rgba(11,11,12,.62); font-size:1rem; line-height:1.56; }
.space-reading__stage { position:relative; display:grid; width:min(100%,970px); height:clamp(315px,35vw,500px); margin:0 auto; place-items:center; overflow:hidden; background:transparent; }
.space-reading__plan { position:absolute; inset:0; display:grid; margin:0; place-items:center; padding:clamp(6px,1vw,14px); }
.space-reading__plan img { display:block; width:100%; height:100%; object-fit:contain; }
.space-reading__stage--lens { --lens-x:50%; --lens-y:50%; cursor:crosshair; }
.space-reading__stage--lens .space-reading__plan img { width:92%; height:clamp(285px,33vw,465px); }
.space-reading__stage--lens .space-reading__plan--proposal { clip-path:circle(0 at var(--lens-x) var(--lens-y)); transition:clip-path .22s cubic-bezier(.16,1,.3,1); }
.space-reading__lens { display:none; }
.space-reading__stage--lens.is-lens-active .space-reading__plan--proposal { clip-path:circle(12% at var(--lens-x) var(--lens-y)); }
.space-reading__copy h3 { margin:13px 0 23px; font-size:clamp(2rem,3.3vw,3.65rem); font-weight:500; letter-spacing:-.08em; line-height:.91; }
.space-reading__copy h3 em { color:var(--terracotta); font-style:normal; font-weight:700; }
.space-reading__copy>p:not(.eyebrow) { max-width:340px; margin:0; color:rgba(11,11,12,.68); line-height:1.6; }
.space-reading__labels { display:flex; justify-content:center; gap:18px; margin:22px auto 0; }
.space-reading__labels button { padding:4px 0; border:0; border-bottom:1px solid transparent; background:transparent; color:rgba(11,11,12,.4); cursor:pointer; font-family:inherit; font-size:.65rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; transition:color .25s ease,border-color .25s ease; }
.space-reading__labels button.is-active { border-color:var(--terracotta); color:var(--terracotta); }
.space-reading__labels button:hover:not(.is-active),.space-reading__labels button:focus-visible:not(.is-active) { color:var(--ink); outline:0; }
.vitoria-statement { display:grid; grid-template-columns:1fr minmax(260px,.65fr); gap:40px; align-items:end; margin:clamp(90px,13vw,180px) 0; padding:clamp(35px,5vw,70px); border-radius:var(--radius); background:var(--sage); color:var(--paper); }
.vitoria-statement p { max-width:620px; margin:0; font-size:clamp(2.4rem,4.5vw,5rem); font-weight:500; letter-spacing:-.085em; line-height:.88; }
.vitoria-statement span { max-width:300px; color:rgba(255,255,255,.78); font-size:1rem; line-height:1.55; }
.vitoria-materials { display:grid; grid-template-columns:minmax(0,.87fr) minmax(250px,.65fr); gap:clamp(36px,8vw,130px); align-items:center; }
.vitoria-materials figure { height:clamp(440px,58vw,780px); margin:0; overflow:hidden; border-radius:var(--radius); background:var(--surface); }
.vitoria-materials figure img { object-fit:cover; object-position:center; }
.vitoria-materials h2 { margin:14px 0 24px; font-size:clamp(2.3rem,3.75vw,4.2rem); font-weight:500; letter-spacing:-.08em; line-height:.92; }
.vitoria-materials p:not(.eyebrow) { max-width:var(--vitoria-copy-width); margin:0; color:rgba(11,11,12,.68); font-size:1.05rem; line-height:1.6; }
.vitoria-materials--editorial { position:relative; grid-template-columns:minmax(300px,.68fr) minmax(0,1fr); gap:clamp(42px,6vw,90px); align-items:start; }
.vitoria-materials--editorial h2 { font-size:clamp(2.45rem,3.1vw,3.55rem); line-height:.94; }
.vitoria-materials--editorial>div { align-self:start; padding-top:clamp(62px,8vw,122px); }
.vitoria-materials .vitoria-materials__moodboard { position:relative; width:min(100%,500px); height:auto; aspect-ratio:1194 / 982; justify-self:start; overflow:visible; background:transparent; isolation:isolate; }
.vitoria-materials__moodboard .vitoria-materials__board { width:100%; height:100%; border-radius:var(--radius); object-fit:contain; }
.vitoria-materials__moodboard .vitoria-materials__lamp { position:absolute; z-index:1; top:-72%; left:-64%; width:96%; height:auto; pointer-events:none; }
.vitoria-image-note { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(230px,.5fr); gap:clamp(28px,6vw,95px); align-items:end; margin-top:clamp(90px,13vw,180px); }
.vitoria-image-note figure { height:clamp(440px,58vw,760px); margin:0; overflow:hidden; border-radius:var(--radius); background:var(--surface); }
.vitoria-image-note figure img { object-position:center; }
.vitoria-image-note div { padding-bottom:clamp(8px,3vw,44px); }
.vitoria-image-note span { display:block; max-width:280px; color:var(--terracotta); font-size:clamp(2rem,3.5vw,3.6rem); font-weight:500; letter-spacing:-.07em; line-height:.92; }
.vitoria-image-note p { max-width:var(--vitoria-copy-width); margin:24px 0 0; color:rgba(11,11,12,.68); line-height:1.6; }
.vitoria-two-up { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:clamp(90px,13vw,180px); }
.vitoria-two-up figure { height:clamp(300px,39vw,560px); margin:0; overflow:hidden; border-radius:var(--radius); background:var(--surface); }
.vitoria-two-up figure:first-child img { object-position:center; }
.vitoria-intro--right { margin-top:clamp(65px,9vw,130px); }
.vitoria-image-note--reverse { grid-template-columns:minmax(230px,.5fr) minmax(0,1.12fr); }
.vitoria-image-note--reverse figure { grid-column:2; }
.vitoria-image-note--reverse div { grid-column:1; grid-row:1; }
.vitoria-wardrobe { align-items:start; }
.vitoria-wardrobe .vitoria-wardrobe__note { align-self:start; display:flex; align-items:flex-start; flex-direction:column; padding-bottom:0; }
.vitoria-wardrobe__note>img { display:block; width:clamp(145px,16vw,245px); height:auto; margin:0 0 clamp(18px,2.2vw,34px); object-fit:contain; }
.vitoria-wardrobe .vitoria-wardrobe__note span { color:var(--terracotta); }
.vitoria-final-gallery { margin-top:clamp(82px,12vw,158px); }
.vitoria-final-gallery .project-viewer__stage { padding:0; }
.vitoria-final-gallery .project-viewer__main { height:auto; aspect-ratio:16 / 9; }
.vitoria-final-gallery .project-viewer__open img { object-fit:cover; }
.vitoria-final-gallery .project-viewer__bar { grid-template-columns:auto 1fr auto; gap:18px; margin-top:16px; }
.vitoria-final-gallery .project-viewer__bar .project-viewer__caption { display:block; color:var(--ink); font-size:.68rem; }
.vitoria-final-gallery .project-viewer__controls { display:flex; align-items:center; gap:10px; }
.vitoria-final-gallery .project-viewer__nav { position:static; display:grid; width:30px; height:30px; place-items:center; padding:0; border:1px solid rgba(11,11,12,.16); border-radius:50%; background:transparent; color:var(--ink); box-shadow:none; font-size:1.05rem; line-height:1; transform:none; }
.vitoria-final-gallery .project-viewer__nav:hover { color:var(--terracotta); border-color:var(--terracotta); transform:none; }
.vitoria-final-gallery .project-viewer__count { color:rgba(11,11,12,.5); font-size:.65rem; }
.vitoria-final-gallery .project-viewer__thumbs { grid-template-columns:repeat(5,minmax(0,1fr)); }
.vitoria-final-gallery .project-viewer__thumb { border:0; border-radius:10px; opacity:.46; transform:none; }
.vitoria-final-gallery .project-viewer__thumb:hover,.vitoria-final-gallery .project-viewer__thumb.is-active { border:0; opacity:1; transform:none; }
.vitoria-case .project-case__facts { margin-top:clamp(88px,13vw,180px); }
@media (max-width:900px) {
  .vitoria-case { --vitoria-copy-width:100%; padding-top:18px; }
  .vitoria-hero,.vitoria-materials,.vitoria-image-note,.vitoria-image-note--reverse,.vitoria-intro { grid-template-columns:1fr; gap:24px; min-height:0; }
  .vitoria-hero { align-items:start; min-height:0; }
  .vitoria-hero h1 { margin:12px 0 18px; font-size:clamp(2.85rem,12.5vw,3.45rem); line-height:.9; }
  .vitoria-hero p:not(.eyebrow),.vitoria-intro p,.vitoria-materials p:not(.eyebrow),.vitoria-image-note p { font-size:1rem; }
  .vitoria-hero figure { height:min(112vw,520px); }
  .vitoria-intro { margin:76px 0 34px; }
  .vitoria-intro h2 { margin-bottom:20px; font-size:clamp(2.5rem,11vw,3.35rem); }
  .vitoria-process,.vitoria-two-up { grid-template-columns:1fr; }
  .vitoria-process figure,.vitoria-two-up figure { height:min(90vw,560px); }
  .vitoria-plan { height:min(75vw,440px); padding:18px; }
  .vitoria-plan figcaption { right:12px; bottom:12px; max-width:calc(100% - 24px); font-size:.6rem; text-align:right; }
  .space-reading { margin-top:76px; }
  .space-reading__heading { grid-template-columns:1fr; gap:16px; margin-bottom:14px; }
  .space-reading__heading .eyebrow { margin:0; }
  .space-reading__heading h2 { font-size:clamp(2.35rem,10.5vw,3.05rem); }
  .space-reading__heading div>p { margin-top:18px; }
  .space-reading__stage { height:min(68vw,410px); }
  .space-reading__stage--lens .space-reading__plan img { height:min(60vw,380px); }
  .space-reading__plan { padding:4px; }
  .space-reading__labels { margin-top:18px; }
  .vitoria-statement { grid-template-columns:1fr; gap:22px; margin:76px 0; padding:30px 24px; }
  .vitoria-statement p { font-size:clamp(2.25rem,10vw,3.1rem); }
  .vitoria-materials { gap:20px; }
  .vitoria-materials figure { height:min(112vw,520px); }
  .vitoria-materials--editorial { margin-top:72px; }
  .vitoria-materials--editorial>div { padding-top:0; }
  .vitoria-materials--editorial .vitoria-materials__moodboard { height:auto; }
  .vitoria-materials__moodboard .vitoria-materials__lamp { top:-27%; left:-4%; width:68%; }
  .vitoria-image-note { gap:20px; margin-top:76px; }
  .vitoria-image-note figure { height:min(108vw,480px); }
  .vitoria-image-note span { max-width:340px; font-size:clamp(2rem,9.5vw,2.65rem); }
  .vitoria-image-note p { margin-top:16px; }
  .vitoria-image-note--reverse figure,.vitoria-image-note--reverse div { grid-column:auto; grid-row:auto; }
  .vitoria-image-note--reverse div { order:2; }
  .vitoria-image-note div { padding-bottom:0; }
}
@media (hover:none) { .space-reading__stage--lens { cursor:default; touch-action:none; }.space-reading__stage--lens .space-reading__plan--proposal { clip-path:circle(20% at 50% 50%); }.space-reading__stage--lens.is-lens-active .space-reading__plan--proposal { clip-path:circle(30% at var(--lens-x) var(--lens-y)); } }
@media (max-width:900px) {
  /* Área ampliada para explorar o antes e depois com o dedo. */
  .space-reading__stage--lens { min-height:270px; height:min(88vw,380px); }
  .space-reading__stage--lens .space-reading__plan img { width:100%; height:min(78vw,380px); transform:scale(1.42); transform-origin:center; }
  .space-reading__stage--lens::after { position:absolute; z-index:2; right:10px; bottom:8px; padding:7px 10px; border-radius:999px; background:rgba(247,246,242,.9); color:var(--sage-dark); content:'Toque e arraste'; font-size:.62rem; font-weight:700; letter-spacing:.06em; opacity:1; pointer-events:none; text-transform:uppercase; transition:opacity .2s ease; }
  .space-reading__stage--lens.is-lens-active::after { opacity:0; }
}
@media (max-width:900px) { .vitoria-final-gallery .project-viewer__thumbs { display:flex; grid-template-columns:none; }.vitoria-final-gallery .project-viewer__thumb { flex:0 0 min(42vw,180px); }.vitoria-final-gallery .project-viewer__nav { display:grid; }.vitoria-final-gallery .project-viewer__bar { gap:10px; }.vitoria-final-gallery .project-viewer__line { min-width:0; }.vitoria-final-gallery .project-viewer__caption { white-space:nowrap; } }
@media (max-width:900px) { .vitoria-materials--editorial h2 { font-size:clamp(2.35rem,10vw,3.05rem); } }

.project-viewer__main { background:transparent; }
.project-viewer__open .project-viewer__image-caption { border-color:rgba(11,11,12,.14); background:rgba(247,246,242,.78); color:var(--ink); box-shadow:0 3px 12px rgba(11,11,12,.08); backdrop-filter:blur(5px); }

.project-viewer__main { border-radius:var(--radius); isolation:isolate; }
.project-viewer__open img { border-radius:var(--radius); }
.project-viewer__open .project-viewer__image-caption { right:auto; bottom:20px; left:50%; transform:translateX(-50%); white-space:nowrap; }
.project-viewer__open:hover .project-viewer__image-caption,.project-viewer__open:focus-visible .project-viewer__image-caption { transform:translateX(-50%); }
@media (min-width:901px) { .space-reading--editorial .space-reading__stage{height:clamp(375px,41vw,560px)}.space-reading--editorial .space-reading__plan{place-items:start center}.space-reading--editorial .space-reading__stage--lens .space-reading__plan img{height:clamp(350px,39vw,535px)}.space-reading--editorial + .vitoria-statement{margin-top:clamp(48px,7vw,92px)} }
@media (max-width:900px) { .project-viewer__open .project-viewer__image-caption { right:auto; bottom:16px; left:50%; transform:translateX(-50%); } }

/* Storytelling do Home Office a partir das artes originais do carrossel. */
.home-office-case .home-office-case__opening { display:block; }
.home-office-case .home-office-case__heading { max-width:650px; margin:0 auto clamp(34px,5vw,68px); }
.home-office-case .home-office-case__cover { width:100%; height:auto; aspect-ratio:2560 / 1662; }
.home-office-case .home-office-case__cover img { object-position:center; }
.project-case__figure--story img { object-position:center; }
.home-office-story { margin-top:clamp(90px,13vw,176px); }
.home-office-story__intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,.55fr); gap:22px clamp(28px,7vw,104px); align-items:end; max-width:940px; margin:0 auto clamp(58px,9vw,126px); }
.home-office-story__intro .eyebrow { grid-column:1 / -1; margin:0; }
.home-office-story__intro h2 { max-width:610px; margin:0; font-size:clamp(2.2rem,4vw,4.15rem); font-weight:500; letter-spacing:-.085em; line-height:.9; }
.home-office-story__intro h2 span { color:var(--terracotta); }
.home-office-story__item { display:grid; grid-template-columns:minmax(0,1fr) minmax(210px,.5fr); gap:clamp(30px,7vw,112px); align-items:center; max-width:1120px; margin:0 auto clamp(78px,13vw,178px); }
.home-office-story__item--reverse { grid-template-columns:minmax(210px,.5fr) minmax(0,1fr); }
.home-office-story__item--reverse figure { order:2; }
.home-office-story__item figure { aspect-ratio:1890 / 2363; max-height:760px; margin:0; overflow:hidden; border-radius:var(--radius); background:var(--surface); }
.home-office-story__item img { display:block; width:100%; height:100%; object-fit:cover; }
@media (max-width:900px) { .home-office-story { margin-top:88px; }.home-office-story__intro { grid-template-columns:1fr; gap:18px; margin-bottom:54px; }.home-office-story__intro .eyebrow { grid-column:auto; }.home-office-story__intro h2 { font-size:clamp(2.2rem,10vw,3.25rem); }.home-office-story__item,.home-office-story__item--reverse { grid-template-columns:1fr; gap:16px; width:min(100%,420px); margin-right:auto; margin-bottom:82px; margin-left:auto; }.home-office-story__item--reverse figure { order:0; }.home-office-story__item figure { width:100%; max-height:none; }.home-office-story__item>div,.home-office-story__item--reverse>div { justify-self:start; }.home-office-story__item h3 { font-size:clamp(1.45rem,7vw,2.1rem); } }

/* Sistema tipográfico compartilhado: rótulos, cards, textos de apoio e CTAs. */
:root { --type-label:.72rem; --type-label-track:.12em; --type-card-title:clamp(2.2rem,3.25vw,3.7rem); --type-body:1rem; --type-body-leading:1.55; --type-cta:.72rem; }
.eyebrow,.project-card__number,.project-overview__card p,.contact-details .contact-detail__label,.project-case-intro__overview span { font-size:var(--type-label); font-weight:700; letter-spacing:var(--type-label-track); line-height:1.2; }
.about-composition__copy h2,.about-composition__detail h2,.about-composition__statement h2 { font-size:var(--type-card-title); font-weight:500; letter-spacing:-.08em; line-height:.93; }
.about-composition__copy p:not(.eyebrow),.about-composition__detail p,.about-composition__statement p { font-size:var(--type-body); line-height:var(--type-body-leading); }
.about-composition__copy .eyebrow,.about-composition__detail .eyebrow,.about-composition__statement .eyebrow { font-size:var(--type-label); font-weight:700; letter-spacing:var(--type-label-track); line-height:1.2; }
.about-composition__copy .eyebrow,.about-composition__detail .eyebrow { color:rgba(9,10,9,.68); }
.about-composition__statement .eyebrow { color:rgba(247,246,242,.74); }
.cta,.project-overview__card span,.contact-hero__form button { font-size:var(--type-cta); font-weight:700; letter-spacing:.09em; line-height:1.15; }
.home-office-story__intro p { max-width:330px; margin:0 0 4px; color:rgba(11,11,12,.66); font-size:.98rem; line-height:1.58; }
.home-office-story__item>div { max-width:235px; }
.home-office-story__item--reverse>div { justify-self:end; }
.home-office-story__item span { display:block; margin-bottom:15px; color:var(--terracotta); font-size:.72rem; font-weight:800; letter-spacing:.14em; }
.home-office-story__item h3 { margin:0; font-size:clamp(1.55rem,2.45vw,2.55rem); font-weight:500; letter-spacing:-.07em; line-height:.96; }
.home-office-story__item p { margin:16px 0 0; color:rgba(11,11,12,.66); font-size:.9rem; line-height:1.55; }

.home-office-infrastructure { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr); gap:clamp(32px,7vw,112px); align-items:center; margin:clamp(70px,11vw,150px) 0; }
.home-office-infrastructure figure { margin:0; overflow:hidden; border-radius:var(--radius); }
.home-office-infrastructure img { display:block; width:100%; height:auto; }
.home-office-infrastructure .infrastructure-map { position:relative; overflow:visible; }
.infrastructure-point { position:absolute; z-index:2; left:var(--x); top:var(--y); display:grid; width:clamp(44px,6.6vw,66px); height:clamp(44px,6.6vw,66px); place-items:center; padding:0; border:0; border-radius:50%; background:transparent; cursor:pointer; transform:translate(-50%,-50%); color:var(--terracotta); font:inherit; }
.infrastructure-point__number { display:grid; width:76%; height:76%; place-items:center; border:0; background:transparent; font-size:clamp(.72rem,1.1vw,1rem); font-weight:700; }
.infrastructure-point:focus-visible { outline:2px solid var(--terracotta); outline-offset:3px; }
.infrastructure-point__tip { position:absolute; right:0; bottom:calc(100% + 6px); width:max-content; max-width:220px; padding:12px 15px; border:1px solid var(--line); border-radius:14px; background:var(--surface); color:var(--ink); box-shadow:0 8px 24px rgba(9,10,9,.1); font-size:.8rem; font-weight:500; line-height:1.35; text-align:left; opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .18s ease,transform .18s ease,visibility .18s; pointer-events:none; }
.infrastructure-point--left .infrastructure-point__tip { right:auto; left:0; }
.infrastructure-point.is-open .infrastructure-point__tip,.infrastructure-point:focus-visible .infrastructure-point__tip { opacity:1; visibility:visible; transform:translateY(0); }
.infrastructure-point.is-open,.infrastructure-point:focus-within { z-index:10; }
.infrastructure-hint__desktop { display:none; }
@media (hover:hover) { .infrastructure-point:hover { z-index:10; }.infrastructure-hint__desktop { display:inline; }.infrastructure-hint__touch { display:none; } }
@media (hover:hover) { .infrastructure-point:hover .infrastructure-point__tip { opacity:1; visibility:visible; transform:translateY(0); } }
.office-final-gallery .project-viewer__main { aspect-ratio:2560 / 1662; }
.office-final-gallery .project-viewer__open img { object-fit:contain; }
.office-final-gallery .project-viewer__thumbs { grid-template-columns:repeat(3,minmax(0,1fr)); }
.project-photo-strip__heading { margin:0 0 24px; font-size:clamp(1.7rem,3vw,2.6rem); font-weight:500; letter-spacing:-.06em; }
.project-photo-strip__track { display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding:0; }
.project-photo-strip__track::-webkit-scrollbar { display:none; }
@media(min-width:901px) {
  .project-photo-strip__track { width:var(--gallery-edge-width,calc(50% + 50vw)); }
  .project-photo-strip .project-photo-strip__photo { flex-basis:clamp(320px,32vw,486px); }
}
.project-photo-strip__photo { flex:0 0 38%; aspect-ratio:4 / 5; padding:0; overflow:hidden; border:0; border-radius:var(--radius); background:var(--surface); scroll-snap-align:start; cursor:zoom-in; }
.project-photo-strip__photo img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.project-photo-strip__photo:hover img { transform:scale(1.025); }
@media(max-width:900px) {
  .project-photo-strip .project-photo-strip__track { display:grid; grid-template-columns:1fr; gap:32px; overflow:visible; padding-bottom:12px; scroll-snap-type:none; }
  .project-photo-strip .project-photo-strip__photo { position:sticky; top:88px; display:block; width:100%; height:min(100vw,520px); aspect-ratio:auto; flex-basis:auto; box-shadow:0 12px 30px rgba(9,10,9,.12); }
  .project-photo-strip .project-photo-strip__photo:nth-child(1) { z-index:1; }
  .project-photo-strip .project-photo-strip__photo:nth-child(2) { z-index:2; }
  .project-photo-strip .project-photo-strip__photo:nth-child(3) { z-index:3; }
  .project-photo-strip .project-photo-strip__photo:nth-child(4) { z-index:4; }
  .project-photo-strip .project-photo-strip__photo:nth-child(5) { z-index:5; }
}
.project-photo-open { display:block; width:100%; height:100%; padding:0; border:0; background:transparent; cursor:zoom-in; }
.project-photo-open:focus-visible,.project-photo-strip__photo:focus-visible { outline:2px solid var(--terracotta); outline-offset:-4px; }
.project-lightbox:has(.project-lightbox__nav) { width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; border-radius:0; background:rgba(9,10,9,.92); }
.project-lightbox:has(.project-lightbox__nav) figure { height:100%; padding:54px 70px; }
.project-lightbox button.project-lightbox__nav { top:50%; right:20px; transform:translateY(-50%); width:44px; height:60px; border:0; border-radius:0; background:transparent; font-size:2.8rem; }
.project-lightbox button.project-lightbox__nav--prev { right:auto; left:20px; }
@media(max-width:900px) { .project-photo-strip__photo { flex-basis:78%; }.project-photo-strip__track { gap:12px; }.project-lightbox:has(.project-lightbox__nav) figure { padding:60px 14px; }.project-lightbox button.project-lightbox__nav { right:4px; background:rgba(9,10,9,.3); }.project-lightbox button.project-lightbox__nav--prev { left:4px; } }
.home-office-infrastructure__copy { max-width:330px; }
.home-office-infrastructure__copy h2 { margin:14px 0 18px; font-size:clamp(2.2rem,3.6vw,4rem); font-weight:500; letter-spacing:-.085em; line-height:.9; }
.home-office-infrastructure__copy h2 span { color:var(--terracotta); }
.home-office-infrastructure__copy>p:not(.eyebrow) { margin:0; color:rgba(11,11,12,.66); font-size:.98rem; line-height:1.58; }
.home-office-infrastructure__copy>p.infrastructure-hint { margin-top:24px; color:var(--sage-dark); font-size:.75rem; line-height:1.45; }
.home-office-infrastructure ol { display:grid; gap:13px; margin:28px 0 0; padding:0; list-style:none; }
.home-office-infrastructure li { display:flex; gap:12px; align-items:baseline; color:rgba(11,11,12,.72); font-size:.86rem; line-height:1.35; }
.home-office-infrastructure li strong { color:var(--terracotta); font-size:.72rem; letter-spacing:.1em; }

/* Capa panorâmica: a composição completa do escritório aparece antes da narrativa. */
@media (max-width:900px) {
  .home-office-case .home-office-case__cover { height:auto; aspect-ratio:2560 / 1662; }
  .home-office-infrastructure { grid-template-columns:1fr; gap:28px; margin:86px 0; }
  .home-office-infrastructure__copy { max-width:420px; }
}

/* Header compartilhado com a home. */
.site-header { min-height:112px; padding:16px 42px; }
.site-nav { gap:clamp(20px,2.4vw,40px); }
.site-nav a.site-nav__cta,.header-mobile-cta { align-items:center; justify-content:center; min-height:44px; padding:12px 20px; border-radius:999px; background:var(--ink); color:var(--paper); font-weight:600; text-decoration:none; white-space:nowrap; }
.site-nav a.site-nav__cta { display:inline-flex; }
.site-nav a.site-nav__cta:hover,.header-mobile-cta:hover { background:var(--terracotta); color:var(--paper); }
.site-nav a.site-nav__cta:focus-visible,.header-mobile-cta:focus-visible { outline:2px solid var(--terracotta); outline-offset:4px; }
.header-mobile-cta { display:none; }
@media(max-width:1150px) {
  .site-header { min-height:96px; padding:12px 24px; }
  .site-nav { position:absolute; z-index:5; top:calc(100% + 10px); right:0; display:none; width:min(300px,100%); padding:22px; border-radius:22px; background:var(--surface); box-shadow:0 18px 40px rgba(0,0,0,.12); }
  .site-nav.is-open { display:grid; gap:19px; }
  .site-nav a.site-nav__cta { display:none; }
  .header-mobile-cta { display:inline-flex; margin-left:auto; padding:12px 16px; font-size:.76rem; }
  .menu-button { display:block; flex:0 0 45px; margin-left:10px; }
  .brand { min-width:0; }
  .brand img { width:clamp(86px,22vw,146px); }
}
@media(max-width:900px) { .site-header { min-height:82px; padding:10px 17px; } }
@media(max-width:700px) { .header-mark { display:none; } }
@media(max-width:380px) { .site-header { padding-right:8px; padding-left:8px; }.header-mobile-cta { padding:11px 12px; font-size:.7rem; }.menu-button { margin-left:7px; } }
@media (pointer:fine) { .project-photo-strip__track { cursor:grab; scroll-snap-type:none; scroll-behavior:auto; }.project-photo-strip__track.is-dragging,.project-photo-strip__track.is-dragging button { cursor:grabbing; user-select:none; } }
.project-overview__card figure{position:relative;min-width:0}.project-overview__card figure>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.project-overview__card .project-overview__badge{position:absolute;top:16px;right:16px;background:#fff;color:#343831;border-radius:4px;padding:6px 9px;font-size:10px;font-weight:700;line-height:1.2;letter-spacing:.025em;pointer-events:none}
@media(max-width:900px),(hover:none),(pointer:coarse){.infrastructure-hint__desktop{display:none}.infrastructure-hint__touch{display:inline}}
