/* ROBLUN · site v2 · Azul Brasão #18215F · Marfim #F7F5F0 · Linho #E8E3D8 · Tinta #16181F */
@font-face{font-family:"Cormorant Garamond";src:url("../assets/CormorantGaramond.woff2") format("woff2"),url("../assets/CormorantGaramond.ttf") format("truetype");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("../assets/CormorantGaramond-Italic.woff2") format("woff2"),url("../assets/CormorantGaramond-Italic.ttf") format("truetype");font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:"Jost";src:url("../assets/Jost.woff2") format("woff2"),url("../assets/Jost.ttf") format("truetype");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --blue:#18215F;--blue-deep:#0f1745;--blue-soft:#2a3690;--paper:#F7F5F0;--linen:#E8E3D8;--ink:#16181F;
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;--sans:"Jost",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ease:cubic-bezier(.2,.7,.1,1);--ease-io:cubic-bezier(.65,0,.2,1);
  --pad:clamp(22px,5.2vw,96px);--sec:clamp(96px,13vw,200px);
  --body:17px;--head:84px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--blue);font:400 var(--body)/1.65 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.015em;line-height:1.02;text-wrap:balance}
em{font-style:italic}
:focus-visible{outline:2px solid var(--blue-soft);outline-offset:4px}
.skip{position:absolute;left:12px;top:-60px;background:var(--blue);color:#fff;padding:12px 18px;z-index:200;transition:top .2s}
.skip:focus{top:12px}
.scroll-line{position:fixed;left:0;top:0;height:2px;width:0;background:var(--blue);z-index:120}
.grain{position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}
.eyebrow{font:400 12px/1.4 var(--sans);letter-spacing:.3em;text-transform:uppercase}
.section{padding:var(--sec) var(--pad)}

/* ---------- links & botões ---------- */
.text-link{display:inline-flex;align-items:center;gap:18px;font:400 16px/1 var(--sans);letter-spacing:.04em;padding:0 0 12px;position:relative}
.text-link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform-origin:left;transition:transform .7s var(--ease)}
.text-link:hover::after{transform:scaleX(.35)}
.text-link span:last-child{transition:transform .5s var(--ease)}
.text-link:hover span:last-child{transform:translate(5px,-5px)}
.text-link.light{color:#fff}

/* ---------- revelações ---------- */
.reveal{opacity:0;transform:translateY(38px);transition:opacity 1.2s var(--ease),transform 1.3s var(--ease);transition-delay:var(--d,0s)}
.reveal.visible{opacity:1;transform:none}
.split .ln{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em}
.split .ln>span{display:block;transform:translateY(112%) rotate(1.5deg);transition:transform 1.4s var(--ease);transition-delay:calc(var(--i,0)*.13s + var(--d,0s))}
.split.visible .ln>span{transform:none}
.no-js .reveal,.no-js .split .ln>span{opacity:1;transform:none}

/* ---------- cursor ---------- */
.cursor{position:fixed;left:0;top:0;z-index:300;pointer-events:none;display:none;opacity:0;transition:opacity .4s}
.cursor.shown{opacity:1}
.has-cursor .cursor{display:block}
.cursor-dot{position:absolute;left:-3px;top:-3px;width:6px;height:6px;border-radius:50%;background:var(--blue);mix-blend-mode:normal}
.cursor-ring{position:absolute;left:-22px;top:-22px;width:44px;height:44px;border-radius:50%;border:1px solid var(--blue);display:grid;place-items:center;transition:width .5s var(--ease),height .5s var(--ease),left .5s var(--ease),top .5s var(--ease),background .4s,border-color .4s;background:rgba(247,245,240,0)}
.cursor-ring b{font:400 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;opacity:0;color:var(--paper);transition:opacity .3s}
.cursor.hover .cursor-ring{left:-34px;top:-34px;width:68px;height:68px;background:rgba(24,33,95,.08)}
.cursor.view .cursor-ring{left:-48px;top:-48px;width:96px;height:96px;background:var(--blue);border-color:var(--blue)}
.cursor.view .cursor-ring b{opacity:1}
.cursor.view .cursor-dot{opacity:0}
.cursor.on-dark .cursor-dot{background:#fff}.cursor.on-dark .cursor-ring{border-color:#fff}
.cursor.on-dark.view .cursor-ring{background:#fff}.cursor.on-dark.view .cursor-ring b{color:var(--blue)}
.has-cursor,.has-cursor a,.has-cursor button,.has-cursor summary{cursor:none}

/* ---------- idiomas: menu que abre ao clicar ---------- */
.lang-menu{position:relative}
.lang-current{display:flex;align-items:center;gap:8px;height:38px;padding:0 13px 0 11px;border:1px solid rgba(24,33,95,.2);border-radius:19px;font:400 12px/1 var(--sans);letter-spacing:.14em;color:inherit;transition:border-color .3s,background .3s}
.lang-current:hover,.lang-menu.open .lang-current{border-color:currentColor}
.lang-current img{width:18px;height:12px;object-fit:cover;border-radius:1px;box-shadow:0 0 0 .5px rgba(0,0,0,.15)}
.lang-current i{width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .45s var(--ease);margin-left:3px}
.lang-menu.open .lang-current i{transform:translateY(1px) rotate(225deg)}
.lang-list{position:absolute;right:0;top:calc(100% + 10px);min-width:244px;background:var(--paper);color:var(--ink);border:1px solid rgba(24,33,95,.12);box-shadow:0 26px 60px -22px rgba(22,24,31,.38);padding:8px;display:flex;flex-direction:column;gap:2px;opacity:0;visibility:hidden;transform:translateY(-8px);transform-origin:top right;transition:opacity .3s,transform .45s var(--ease),visibility 0s .45s;z-index:130;text-shadow:none}
.lang-menu.open .lang-list{opacity:1;visibility:visible;transform:none;transition:opacity .3s,transform .45s var(--ease),visibility 0s}
.lang-list button{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:12px;padding:13px 12px;font:400 14px/1 var(--sans);letter-spacing:.02em;text-align:left;color:inherit;opacity:.72;transition:background .25s,opacity .25s,box-shadow .25s}
.lang-list button img{width:20px;height:14px;object-fit:cover;box-shadow:0 0 0 .5px rgba(0,0,0,.15)}
.lang-list button b{font:400 10px/1 var(--sans);letter-spacing:.2em;opacity:.5}
.lang-list button:hover,.lang-list button:focus-visible{background:var(--linen);opacity:1;outline:none}
.lang-list button[aria-pressed=true]{opacity:1;box-shadow:inset 2px 0 0 var(--ink)}
.lang-menu.on-photo .lang-current{color:#fff;border-color:rgba(255,255,255,.55);background:rgba(20,20,24,.14);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

/* ---------- abertura: três imagens em preto e branco ---------- */
.intro{position:fixed;inset:0;z-index:150;overflow:hidden;color:var(--paper);background:#121214;display:grid;place-items:center;isolation:isolate}
.intro[hidden]{display:none!important}
.intro-cols{position:absolute;inset:0;z-index:-3;display:grid;grid-template-columns:repeat(3,1fr)}
.ic{margin:0;position:relative;overflow:hidden}
.ic img{position:absolute;left:0;top:-7%;width:100%;height:114%;object-fit:cover;filter:grayscale(1) contrast(1.04) brightness(.9);transition:transform 1.7s cubic-bezier(.22,1,.36,1),filter 1.4s}
.ic1{animation:icUp 1.9s cubic-bezier(.65,0,.2,1) .05s backwards}
.ic2{animation:icDown 1.9s cubic-bezier(.65,0,.2,1) .22s backwards}
.ic3{animation:icUp 1.9s cubic-bezier(.65,0,.2,1) .39s backwards}
.ic1 img,.ic3 img{animation:icDriftA 20s ease-in-out infinite alternate}
.ic2 img{animation:icDriftB 20s ease-in-out infinite alternate}
@keyframes icUp{from{clip-path:inset(100% 0 0 0)}}
@keyframes icDown{from{clip-path:inset(0 0 100% 0)}}
@keyframes icDriftA{from{transform:translateY(-3.5%) scale(1.1)}to{transform:translateY(3.5%) scale(1.03)}}
@keyframes icDriftB{from{transform:translateY(3.5%) scale(1.03)}to{transform:translateY(-3.5%) scale(1.1)}}
.intro-shade{position:absolute;inset:0;z-index:-2;background:radial-gradient(58% 62% at 50% 50%,rgba(16,15,14,.8),rgba(16,15,14,.42) 72%,rgba(16,15,14,.3)),linear-gradient(180deg,rgba(16,15,14,.35),rgba(16,15,14,0) 30%,rgba(16,15,14,0) 70%,rgba(16,15,14,.5));opacity:0;animation:introFade 1.6s ease .9s forwards}
@keyframes introFade{to{opacity:1}}
.intro-top{position:absolute;top:25px;left:4.5%;right:4.5%;display:flex;justify-content:space-between;align-items:center;font:400 11px/1 var(--sans);letter-spacing:.16em;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.intro-content{text-align:center;display:flex;flex-direction:column;align-items:center;padding:65px 25px 75px;transition:opacity .65s,transform .95s cubic-bezier(.22,1,.36,1);text-shadow:0 2px 40px rgba(0,0,0,.35)}
.intro-mark{width:58px;height:58px;opacity:0;transform:translateY(14px) scale(.9);animation:introUp 1.4s var(--ease) 1.1s forwards}
.intro-kicker{margin:26px 0 30px;font:400 12px/1 var(--sans);letter-spacing:.42em;margin-right:-.42em;opacity:0;transform:translateY(14px);animation:introUp 1.2s var(--ease) 1.35s forwards}
.intro h2{font-size:clamp(54px,7.2vw,128px);font-weight:300;line-height:1.02;margin:0 0 46px;opacity:0;transform:translateY(22px);animation:introUp 1.5s var(--ease) 1.55s forwards}
.intro h2 em{font-style:italic}
.intro-enter{border:1px solid rgba(247,245,240,.7);color:var(--paper);min-width:230px;min-height:58px;display:flex;justify-content:space-between;align-items:center;padding:14px 24px;gap:50px;font:400 15px/1 var(--sans);letter-spacing:.04em;background:rgba(247,245,240,.06);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:color .35s,background .35s;opacity:0;animation:introUp 1.2s var(--ease) 2s forwards;text-shadow:none}
.intro-enter:hover{background:var(--paper);color:var(--ink)}
.intro-enter:focus-visible{outline:1px solid rgba(247,245,240,.55);outline-offset:6px}
.intro-enter>span:last-child{font-size:24px}
.intro-place{position:absolute;bottom:30px;left:0;right:0;text-align:center;font:400 11px/1 var(--sans);letter-spacing:.2em;opacity:.7}
.intro-seam{position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(247,245,240,.3);transform:scaleY(0);transform-origin:bottom;transition:transform .7s var(--ease)}
@keyframes introUp{to{opacity:1;transform:none}}
.intro-pending #site-shell{visibility:hidden}
.intro-pending .skip{display:none}
.intro-open{overflow:hidden}
.intro.exiting{animation:intro-reveal 1.45s cubic-bezier(.76,0,.24,1) forwards}
.intro.exiting .intro-content{opacity:0;transform:translateY(-30px)}
.intro.exiting .intro-place,.intro.exiting .intro-top{opacity:0;transition:opacity .45s}
.intro.exiting .ic img{filter:grayscale(1) brightness(.7)}
.intro.exiting .intro-seam{transform:scaleY(1)}
@keyframes intro-reveal{0%,25%{clip-path:inset(0 0 0 0)}100%{clip-path:inset(0 0 100% 0)}}

/* ---------- cabeçalho ---------- */
.header{position:fixed;left:0;right:0;top:0;height:var(--head);padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;z-index:100;transition:transform .7s var(--ease),background .5s,box-shadow .5s,color .5s}
.header.scrolled{background:rgba(247,245,240,.86);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);box-shadow:0 1px 0 rgba(24,33,95,.1)}
.header.hide{transform:translateY(-101%)}
.brand{display:flex;align-items:center;gap:14px;font:400 26px/1 var(--serif);letter-spacing:.24em}
.brand img{width:38px;height:38px;transition:transform 1.2s var(--ease)}
.brand:hover img{transform:rotate(90deg)}
.desktop-nav{display:flex;gap:38px;font:400 14px/1 var(--sans);letter-spacing:.06em}
.desktop-nav a{position:relative;padding:8px 0}
.desktop-nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .6s var(--ease)}
.desktop-nav a:hover::after{transform:scaleX(1);transform-origin:left}
.header-right{display:flex;align-items:center;gap:28px}
.header-contact{font:400 14px/1 var(--sans);letter-spacing:.04em;padding:10px 0;border-bottom:1px solid currentColor}
.menu-toggle{display:none;width:44px;height:44px;position:relative}
.menu-toggle span{position:absolute;left:10px;right:10px;height:1px;background:currentColor;transition:transform .4s var(--ease),top .4s}
.menu-toggle span:nth-child(1){top:18px}.menu-toggle span:nth-child(2){top:26px}
.menu-toggle[aria-expanded=true] span:nth-child(1){top:22px;transform:rotate(45deg)}
.menu-toggle[aria-expanded=true] span:nth-child(2){top:22px;transform:rotate(-45deg)}
.mobile-nav{position:fixed;inset:0;background:var(--paper);z-index:95;display:flex;flex-direction:column;justify-content:center;padding:0 var(--pad);gap:6px}
.mobile-nav[hidden]{display:none}
.mobile-nav a{font:400 clamp(44px,12vw,72px)/1.15 var(--serif);border-bottom:1px solid rgba(24,33,95,.15);padding:10px 0}

/* ---------- hero ---------- */
.hero{min-height:100svh;display:grid;grid-template-columns:1.05fr .95fr;position:relative}
.hero-copy{padding:calc(var(--head) + 6vh) 3vw 6vh var(--pad);display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2}
.hero h1{font-size:clamp(54px,7.2vw,142px);line-height:.98;margin:3vh 0 4vh}
.hero h1 em{color:var(--blue-soft)}
.hero-description{max-width:470px;font:300 19px/1.6 var(--sans);margin-bottom:4vh}
.hero-foot{position:absolute;left:var(--pad);bottom:34px;display:flex;gap:28px;font:400 11px/1 var(--sans);letter-spacing:.24em;opacity:.7}
.hero-photo{position:relative;overflow:hidden;min-height:100svh}
.hero-img{position:absolute;inset:-6% 0;will-change:transform}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.hero-photo figcaption{position:absolute;left:28px;bottom:24px;right:28px;display:flex;justify-content:space-between;color:#fff;font:400 11px/1 var(--sans);letter-spacing:.24em;text-shadow:0 1px 12px rgba(0,0,0,.4);z-index:3}
.badge{position:absolute;left:-74px;bottom:15vh;width:150px;height:150px;z-index:4;display:grid;place-items:center;background:var(--paper);border-radius:50%;box-shadow:0 12px 40px rgba(24,33,95,.18)}
.badge svg{position:absolute;inset:0;width:100%;height:100%;animation:spin 26s linear infinite}
.badge text{font:400 10.5px var(--sans);letter-spacing:.28em;fill:var(--blue)}
.badge img{width:46px;height:46px}
@keyframes spin{to{transform:rotate(360deg)}}
.scroll-down{position:absolute;right:28px;top:50%;display:none}
/* entrada do hero (só depois da abertura) */
html:not(.intro-pending) .hero .hero-in{animation:heroIn 1.5s var(--ease) calc(var(--h,0)*.15s + .1s) backwards}
html:not(.intro-pending) .hero .split .ln>span{animation:lineUp 1.5s var(--ease) calc(var(--i)*.14s + .25s) backwards}
html:not(.intro-pending) .hero-photo{animation:photoReveal 1.9s var(--ease-io) .15s backwards}
html:not(.intro-pending) .hero-img img{animation:imgSettle 2.6s var(--ease) .15s backwards}
html:not(.intro-pending) .badge{animation:badgeIn 1.4s var(--ease) 1.2s backwards}
.hero .split .ln>span{transform:none;transition:none}
@keyframes heroIn{from{opacity:0;transform:translateY(30px)}}
@keyframes lineUp{from{transform:translateY(112%) rotate(1.5deg)}}
@keyframes photoReveal{from{clip-path:inset(100% 0 0 0)}}
@keyframes imgSettle{from{transform:scale(1.25)}}
@keyframes badgeIn{from{opacity:0;transform:scale(.4) rotate(-90deg)}}

/* ---------- faixa ---------- */
.marquee{background:var(--blue);color:var(--paper);overflow:hidden;padding:30px 0;white-space:nowrap}
.marquee .track{display:inline-flex;align-items:center;gap:3.2vw;animation:marq 260s linear infinite;padding-left:3.2vw}
.marquee:hover .track{animation-play-state:paused}
.marquee span{font:300 clamp(40px,5.4vw,92px)/1 var(--serif)}
.marquee i{width:clamp(34px,3.4vw,58px);height:clamp(34px,3.4vw,58px);background:url("../assets/emblem-light.svg") center/contain no-repeat;display:inline-block;flex:none;opacity:.9}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- scrub ---------- */
.scrub{height:230vh;position:relative}
.scrub-pin{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 var(--pad)}
.scrub-pin .eyebrow{margin-bottom:5vh;opacity:.7}
.scrub-text{font:300 clamp(36px,5.6vw,98px)/1.1 var(--serif);max-width:15.5em;letter-spacing:-.02em;text-wrap:balance}
.scrub-text .w{opacity:.14;transition:opacity .25s linear;display:inline-block}
.scrub-text .w.em{font-style:italic;color:var(--blue-soft)}
.scrub-mark{width:64px;height:64px;margin-top:6vh;opacity:.8;animation:spin 40s linear infinite}

/* ---------- manifesto ---------- */
.manifesto{background:var(--linen);text-align:center;padding-top:calc(var(--sec)*.8)}
.manifesto-mark{width:72px;height:72px;margin:0 auto 34px}
.manifesto .eyebrow{margin-bottom:34px}
.manifesto h2{font-size:clamp(48px,6.4vw,112px);margin-bottom:44px}
.manifesto h2 em{color:var(--blue-soft)}
.manifesto-copy{max-width:660px;margin:0 auto 44px;font:300 20px/1.7 var(--sans)}
.signature{font:italic 400 42px/1 var(--serif)}

/* ---------- experiência ---------- */
.experience{display:grid;grid-template-columns:1fr 1fr;gap:6vw;padding-top:var(--sec);padding-bottom:var(--sec)}
.exp-sticky{position:sticky;top:0;height:100svh;display:flex;align-items:center;margin-top:calc(var(--sec)*-.5)}
.exp-photos{position:relative;width:100%;height:min(82svh,880px);overflow:hidden}
.exp-photos figure{position:absolute;inset:0;opacity:0;transition:opacity 1.1s ease}
.exp-photos figure img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);transition:transform 2.2s var(--ease)}
.exp-photos figure.on{opacity:1}
.exp-photos figure.on img{transform:scale(1)}
.vertical-caption{position:absolute;right:20px;bottom:24px;writing-mode:vertical-rl;transform:rotate(180deg);font:400 11px/1 var(--sans);letter-spacing:.3em;color:#fff;z-index:2;text-shadow:0 1px 10px rgba(0,0,0,.4)}
.exp-copy h2{font-size:clamp(48px,5.6vw,100px);margin:26px 0 8vh}
.exp-copy h2 em{color:var(--blue-soft)}
.svc{min-height:56svh;display:flex;flex-direction:column;justify-content:center;border-top:1px solid rgba(24,33,95,.2);padding:40px 0;opacity:.4;transition:opacity .8s}
.svc.active{opacity:1}
.svc>span{font:400 12px/1 var(--sans);letter-spacing:.3em;margin-bottom:22px}
.svc h3{font-size:clamp(40px,4vw,72px);margin-bottom:22px;transition:transform .8s var(--ease)}
.svc.active h3{transform:translateX(14px)}
.svc p{max-width:520px;font:300 19px/1.7 var(--sans)}
.exp-copy .text-link{margin-top:6vh}

/* ---------- portfólio horizontal ---------- */
.portfolio{position:relative;background:var(--paper)}
.pf-pin{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center}
.pf-head{position:absolute;left:var(--pad);top:calc(var(--head) + 2.5vh);z-index:3;mix-blend-mode:normal}
.pf-head h2{font-size:clamp(44px,5vw,88px);margin-top:14px}
.pf-head h2 em{color:var(--blue-soft)}
.pf-track{display:flex;align-items:flex-end;gap:3.6vw;padding:0 22vw 11svh var(--pad);will-change:transform;height:100%}
.gallery-card{flex:none;display:block;text-align:left;position:relative}
.gallery-card .image-wrap{position:relative;overflow:hidden;height:clamp(320px,54svh,680px);aspect-ratio:2/3;background:var(--linen)}
.gallery-card .px{position:absolute;top:0;bottom:0;left:-10%;width:120%;will-change:transform}
.gallery-card img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.gallery-card:hover img{transform:scale(1.06)}
.gallery-card:nth-child(even){margin-bottom:6svh}
.gallery-card:nth-child(3n){margin-bottom:3svh}
.gallery-card-caption{display:flex;justify-content:space-between;gap:20px;margin-top:14px;font:400 11px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;opacity:.8}
.pf-foot{position:absolute;left:var(--pad);right:var(--pad);bottom:34px;display:flex;align-items:center;gap:26px;font:400 11px/1 var(--sans);letter-spacing:.24em;z-index:3}
.pf-bar{flex:1;height:1px;background:rgba(24,33,95,.2);position:relative}
.pf-bar i{position:absolute;left:0;top:-.5px;height:2px;width:100%;background:var(--blue);transform-origin:left;transform:scaleX(0)}
.gallery-note{text-align:center;font:italic 300 clamp(26px,2.4vw,40px)/1.3 var(--serif);padding:8vh var(--pad) 2vh}

/* ---------- presença ---------- */
.presence{display:grid;grid-template-columns:1fr 1fr;min-height:100svh;background:var(--blue);color:#fff}
.presence-photo{position:relative;overflow:hidden}
.presence-photo .pimg{position:absolute;inset:-8% 0;will-change:transform}
.presence-photo img{width:100%;height:100%;object-fit:cover}
.presence-copy{padding:10vh 8%;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.presence-copy .emb{width:74px;height:74px;margin-bottom:34px}
.presence-copy h2{font-size:clamp(60px,7.4vw,136px);margin:28px 0 40px;line-height:.96}
.presence-copy h2 em{color:#c9cffb}
.presence-copy p:last-child{max-width:440px;font:300 19px/1.7 var(--sans);opacity:.9}
.presence-wm{position:absolute;right:-12%;bottom:-18%;width:70%;opacity:.07;animation:spin 140s linear infinite}

/* ---------- fundadores ---------- */
.founders{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center}
.founders h2{font-size:clamp(62px,9vw,170px);line-height:.92;margin:28px 0 36px}
.founders h2 em{color:var(--blue-soft)}
.roles{display:flex;gap:40px;margin-bottom:36px;flex-wrap:wrap}
.roles div{border-top:1px solid var(--blue);padding-top:14px;min-width:210px}
.roles b{display:block;font:400 30px/1.1 var(--serif)}
.roles span{display:block;margin-top:8px;font:400 11px/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;opacity:.7}
.founders-copy p{max-width:500px;margin-bottom:20px;font:300 19px/1.7 var(--sans)}
.founders-copy .text-link{margin-top:14px}
.arches{position:relative;height:min(82svh,820px);display:flex;gap:18px;justify-content:center;align-items:flex-end}
.arch{position:relative;overflow:hidden;border-radius:999px 999px 0 0;background:var(--linen)}
.arch img{width:100%;height:100%;object-fit:cover}
.arch.a1{width:58%;height:100%}
.arch.a2{width:38%;height:72%}
.arch .pimg{position:absolute;inset:-6% 0}
.founders-caption{position:absolute;left:0;right:0;bottom:-34px;text-align:center;font:400 11px/1 var(--sans);letter-spacing:.28em}

/* ---------- jornada ---------- */
.journey{background:var(--linen);text-align:left}
.journey h2{font-size:clamp(46px,6vw,108px);margin:24px 0 9vh}
.journey h2 em{color:var(--blue-soft)}
.journey-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:3vw;position:relative;padding-top:60px}
.journey-steps::before{content:"";position:absolute;left:0;right:0;top:22px;height:1px;background:rgba(24,33,95,.25)}
.journey-steps::after{content:"";position:absolute;left:0;right:0;top:21px;height:2px;background:var(--blue);transform-origin:left;transform:scaleX(var(--p,0))}
.journey-steps article{position:relative}
.journey-steps article::before{content:"";position:absolute;left:0;top:-48px;width:15px;height:15px;border-radius:50%;background:var(--linen);border:1px solid var(--blue);transition:background .6s,transform .6s var(--ease)}
.journey-steps article.lit::before{background:var(--blue);transform:scale(1.35)}
.journey-steps span{font:300 76px/1 var(--serif);opacity:.18;display:block;margin-bottom:6px}
.journey-steps h3{font:italic 400 clamp(40px,3.8vw,64px)/1.05 var(--serif);margin-bottom:16px}
.journey-steps p{font:300 18px/1.65 var(--sans);max-width:300px}

/* ---------- herança ---------- */
.heritage{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center}
.heritage h2{font-size:clamp(50px,6.4vw,116px);margin:26px 0 34px}
.heritage h2 em{color:var(--blue-soft)}
.heritage p.copy{max-width:520px;font:300 20px/1.7 var(--sans)}

/* azulejo 4×4: as peças giram e assentam com a rolagem (JS) */
.azulejo{justify-self:end;width:100%;max-width:600px;margin:0}
.azulejo-panel{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;padding:3px;background:#ded7c8;box-shadow:0 46px 90px -46px rgba(22,24,31,.4)}
.azulejo .tile{aspect-ratio:1;background:#fbfaf6;display:grid;place-items:center;will-change:transform,opacity;transition:background .5s}
.azulejo .tile img{width:84%;height:84%;object-fit:contain;transition:transform 1.2s var(--ease),filter .5s}
.azulejo .tile:hover{background:var(--blue)}
.azulejo .tile:hover img{transform:rotate(90deg);filter:brightness(0) invert(1)}
.azulejo figcaption{display:flex;justify-content:space-between;margin-top:18px;font:400 10px/1 var(--sans);letter-spacing:.3em;opacity:.55}

/* ---------- depoimentos ---------- */
.voices{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;align-items:center;background:var(--paper)}
.voices h2{font-size:clamp(46px,5.4vw,96px);margin-top:22px}
.voices h2 em{color:var(--blue-soft)}
.voices-note{margin-top:28px;font:300 15px/1.6 var(--sans);opacity:.6}
.voices-stage{position:relative;padding-top:40px}
.voices-quote-mark{position:absolute;left:-.06em;top:-.36em;font:italic 300 clamp(170px,17vw,280px)/1 var(--serif);color:var(--blue);opacity:.1;pointer-events:none;user-select:none}
.voices-track{display:grid;position:relative}
.voice{grid-area:1/1;margin:0;opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform 1.1s var(--ease);pointer-events:none}
.voice.on{opacity:1;transform:none;pointer-events:auto;transition-delay:.18s}
.voice blockquote{font:italic 300 clamp(28px,2.7vw,46px)/1.32 var(--serif);color:var(--ink);text-wrap:pretty;margin:0}
.voice figcaption{margin-top:40px;display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 18px}
.voice figcaption b{font:400 24px/1 var(--serif);color:var(--blue)}
.voice figcaption span{font:400 11px/1.4 var(--sans);letter-spacing:.24em;text-transform:uppercase;opacity:.6}
.voice .draft{flex-basis:100%;max-width:max-content;font:400 10px/1 var(--sans);font-style:normal;letter-spacing:.2em;color:#8a6420;border:1px dashed rgba(138,100,32,.55);padding:8px 10px;margin-top:8px}
.voice.is-draft blockquote{opacity:.6}
.voices-nav{display:flex;align-items:center;gap:22px;margin-top:56px}
.round-btn{width:52px;height:52px;flex:none;border-radius:50%;border:1px solid rgba(24,33,95,.25);display:grid;place-items:center;font:300 18px/1 var(--sans);color:var(--ink);transition:background .3s,color .3s,border-color .3s}
.round-btn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.voices-dots{display:flex;gap:10px}
.voices-dots button{width:48px;height:24px;display:flex;align-items:center}
.voices-dots i{display:block;width:100%;height:1px;background:rgba(24,33,95,.2);position:relative;overflow:hidden}
.voices-dots i::after{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left}
.voices-dots button.on i::after{transform:scaleX(1)}
.voices-stage.playing:not(.paused) .voices-dots button.on i::after{animation:vprog 8s linear both}
@keyframes vprog{from{transform:scaleX(0)}}

/* ---------- WhatsApp flutuante ---------- */
.wa-float{position:fixed;right:clamp(16px,2.2vw,34px);bottom:clamp(16px,2.2vw,34px);z-index:90;display:flex;align-items:center;gap:12px;height:56px;padding:0 24px 0 18px;border-radius:28px;background:var(--ink);color:var(--paper);font:400 14px/1 var(--sans);letter-spacing:.04em;box-shadow:0 20px 44px -16px rgba(22,24,31,.55),0 0 0 1px rgba(247,245,240,.08);opacity:0;visibility:hidden;transform:translateY(18px) scale(.96);transition:opacity .5s,transform .7s var(--ease),visibility 0s .7s,background .35s}
.wa-float.show{opacity:1;visibility:visible;transform:none;transition:opacity .5s,transform .7s var(--ease),visibility 0s,background .35s}
.wa-float:hover{background:var(--blue)}
.wa-float svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;flex:none}
.dialog-open .wa-float{opacity:0;visibility:hidden}

/* ---------- destino ---------- */
.destination{position:relative;min-height:100svh;display:flex;align-items:center;color:#fff;overflow:hidden;padding:var(--sec) var(--pad)}
.destination .bg{position:absolute;inset:-10% 0;z-index:-2;will-change:transform}
.destination .bg img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.destination-overlay{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,14,40,.82),rgba(10,14,40,.45) 55%,rgba(10,14,40,.2))}
.destination-copy{max-width:760px}
.destination h2{font-size:clamp(56px,7.4vw,136px);margin:26px 0 30px}
.destination h2 em{color:#c9cffb}
.places{display:flex;flex-wrap:wrap;gap:8px 26px;margin:0 0 34px;font:300 clamp(28px,2.8vw,46px)/1.2 var(--serif)}
.places span{position:relative;padding-right:26px}
.places span:not(:last-child)::after{content:"✦";position:absolute;right:0;top:50%;transform:translateY(-52%);font-size:.45em;opacity:.7}
.destination p.copy{max-width:520px;font:300 19px/1.7 var(--sans);margin-bottom:34px;opacity:.92}

/* ---------- contato ---------- */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:start}
.contact-heading h2{font-size:clamp(46px,5.2vw,96px);margin:24px 0 28px}
.contact-heading h2 em{color:var(--blue-soft)}
.contact-heading>p{max-width:420px;font:300 19px/1.7 var(--sans);margin-bottom:34px}
.phone{display:block;font:300 clamp(34px,3.6vw,60px)/1.1 var(--serif);margin-bottom:12px}
.small-link{font:400 15px/1 var(--sans);border-bottom:1px solid currentColor;padding-bottom:6px;display:inline-block}
.contact-mark{margin-top:7vh;width:150px;opacity:.14;animation:spin 90s linear infinite}
.inquiry{display:flex;flex-direction:column;gap:28px}
.field{display:flex;flex-direction:column;gap:8px}
.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.field label{font:400 12px/1.4 var(--sans);letter-spacing:.08em}
.field label span{opacity:.6}
.field input,.field select,.field textarea{background:none;border:0;border-bottom:1px solid rgba(24,33,95,.35);padding:10px 0;font:300 21px/1.3 var(--sans);color:var(--blue);border-radius:0;outline:0;transition:border-color .4s;width:100%}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue)}
.field textarea{resize:vertical;min-height:70px}
.form-note{font:300 14px/1.6 var(--sans);opacity:.75;max-width:480px}
.submit{display:flex;justify-content:space-between;align-items:center;background:var(--blue);color:#fff;padding:22px 28px;font:400 16px/1 var(--sans);letter-spacing:.04em;transition:background .4s,transform .3s}
.submit:hover{background:var(--blue-soft)}
.submit span:last-child{font-size:22px;transition:transform .5s var(--ease)}
.submit:hover span:last-child{transform:translate(5px,-5px)}
#form-status{font:400 15px/1.5 var(--sans)}
#form-status[hidden],#continue-whatsapp[hidden]{display:none}

/* ---------- FAQ ---------- */
.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;background:var(--linen)}
.faq h2{font-size:clamp(46px,5.4vw,96px);margin-top:22px}
.faq h2 em{color:var(--blue-soft)}
.faq-list details,.faq-list{border-color:rgba(24,33,95,.25)}
.faq-list details{border-top:1px solid rgba(24,33,95,.25)}
.faq-list details:last-child{border-bottom:1px solid rgba(24,33,95,.25)}
.faq-list summary{list-style:none;display:flex;justify-content:space-between;gap:30px;padding:28px 0;font:400 clamp(22px,2vw,32px)/1.25 var(--serif);cursor:pointer}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary b{font:300 28px/1 var(--sans);transition:transform .5s var(--ease)}
.faq-list details[open] summary b{transform:rotate(45deg)}
.faq-list details p{padding:0 60px 30px 0;max-width:640px;font:300 18px/1.7 var(--sans)}

/* ---------- rodapé ---------- */
.footer{background:var(--blue);color:var(--paper);padding:9vh var(--pad) 34px}
.footer-top{display:flex;flex-wrap:wrap;gap:12px 40px;font:400 12px/1 var(--sans);letter-spacing:.22em;align-items:center}
.footer-top a,.footer-top button{padding:8px 0;border-bottom:1px solid transparent;transition:border-color .4s}
.footer-top a:hover,.footer-top button:hover{border-color:currentColor}
.footer-top>span{margin-right:auto}
.footer-wordmark{width:100%;margin:9vh 0 5vh;filter:brightness(0) invert(1);opacity:.95}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font:400 11px/1 var(--sans);letter-spacing:.22em;opacity:.7}

/* ---------- diálogos ---------- */
dialog{border:0;padding:0;color:var(--blue)}
dialog::backdrop{background:rgba(10,14,40,.82);backdrop-filter:blur(8px)}
.lightbox{background:transparent;max-width:none;max-height:none;width:100vw;height:100vh;margin:0;overflow:hidden}
.lightbox[open]{display:grid;place-items:center}
.lightbox figure{max-width:min(90vw,1000px);text-align:center}
.lightbox img{max-height:84vh;max-width:90vw;width:auto;margin:0 auto;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.lightbox figcaption{color:#fff;font:400 11px/1 var(--sans);letter-spacing:.26em;margin-top:18px;text-transform:uppercase}
.lightbox-arrow{position:absolute;top:50%;width:56px;height:56px;border:1px solid rgba(255,255,255,.5);color:#fff;border-radius:50%;font-size:22px;transform:translateY(-50%);transition:background .3s,color .3s}
.lightbox-arrow:hover{background:#fff;color:var(--blue)}
.lightbox-arrow.prev{left:3vw}.lightbox-arrow.next{right:3vw}
.dialog-close{position:absolute;right:24px;top:20px;font-size:40px;line-height:1;color:#fff;width:48px;height:48px;z-index:3}
.privacy-dialog{background:var(--paper);width:min(620px,92vw);padding:48px 40px;margin:auto}
.privacy-dialog h2{font-size:44px;margin-bottom:20px}
.privacy-dialog p{font:300 17px/1.7 var(--sans)}
.privacy-dialog .dialog-close{color:var(--blue);right:14px;top:10px}

/* ---------- responsivo ---------- */
@media(max-width:1100px){
  .desktop-nav{display:none}.menu-toggle{display:block}
  .hero{grid-template-columns:1fr 1fr}
  .experience{grid-template-columns:1fr;gap:0}
  .exp-sticky{position:relative;height:auto;margin:0 0 6vh}.exp-photos{height:70svh}
  .svc{min-height:0;opacity:1}.svc.active h3{transform:none}
  .journey-steps{grid-template-columns:1fr 1fr;row-gap:8vh}
  .journey-steps::before,.journey-steps::after{display:none}.journey-steps article::before{display:none}
  .journey-steps{padding-top:0}
}
@media(max-width:820px){
  :root{--head:72px;--body:16px}
  .header-contact{display:none}
  .brand{font-size:22px;gap:10px}.brand img{width:30px;height:30px}
  .header-right{gap:10px}
  .lang-current{height:36px;padding:0 10px}
  .arches{margin-bottom:70px}
  .hero{grid-template-columns:1fr;min-height:0}
  .hero-copy{padding:calc(var(--head) + 28px) var(--pad) 40px;order:1}
  .hero h1{font-size:clamp(50px,13.5vw,84px);margin:22px 0 26px}
  .hero-photo{order:2;min-height:0;height:78svh}
  .hero-foot{position:static;margin-top:30px}
  .badge{left:auto;right:18px;bottom:auto;top:-52px;width:104px;height:104px}.badge img{width:34px;height:34px}.badge text{font-size:11px}
  .scrub{height:200vh}
  .presence{grid-template-columns:1fr}.presence-photo{height:80svh}.presence-copy{padding:80px var(--pad)}
  .founders{grid-template-columns:1fr}.arches{height:70svh;order:-1}
  .heritage{grid-template-columns:1fr;gap:56px}.azulejo{justify-self:stretch;max-width:none}
  .contact{grid-template-columns:1fr;gap:60px}
  .field-pair{grid-template-columns:1fr}
  .faq{grid-template-columns:1fr;gap:40px}
  .footer-top>span{width:100%}
  .destination-overlay{background:linear-gradient(180deg,rgba(10,14,40,.55),rgba(10,14,40,.8))}
  /* portfólio: rolagem horizontal nativa */
  .pf-pin{position:relative;height:auto;overflow:visible;padding:calc(var(--head) + 30px) 0 70px}
  .pf-head{position:static;padding:0 var(--pad);margin-bottom:34px}
  .pf-track{overflow-x:auto;scroll-snap-type:x mandatory;transform:none!important;padding:0 var(--pad);height:auto;gap:18px;align-items:flex-start;scrollbar-width:none}
  .pf-track::-webkit-scrollbar{display:none}
  .gallery-card{scroll-snap-align:center;margin:0!important}
  .gallery-card .image-wrap{height:62svh}
  .pf-foot{position:static;padding:30px var(--pad) 0}.pf-bar{display:none}
  .portfolio{height:auto!important}
  .journey-steps{grid-template-columns:1fr}
}
@media(max-width:820px){
  .voices{grid-template-columns:1fr;gap:34px}
  .voices-stage{padding-top:64px}
  .voices-quote-mark{top:-.12em;font-size:150px}
  .voices-nav{margin-top:40px}
  .wa-float{width:56px;padding:0;justify-content:center}
  .wa-float span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
@media(max-width:380px){.brand span{font-size:19px;letter-spacing:.14em}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .grain,.badge svg,.contact-mark,.presence-wm,.scrub-mark,.marquee .track,.ic,.ic img,.intro-shade{animation:none!important}
  .intro-shade{opacity:1}
  .reveal,.split .ln>span{opacity:1!important;transform:none!important;transition:none!important}
  .azulejo .tile{opacity:1!important;transform:none!important}
  .wa-float{transition:none}
  .voice{transition:none}
  .intro.exiting{animation:none}
  html:not(.intro-pending) .hero *{animation:none!important}
  .scrub-text .w{opacity:1!important}
  .portfolio{height:auto!important}.pf-pin{position:relative;height:auto;overflow:visible;padding:calc(var(--head) + 30px) 0 70px}
  .pf-head{position:static;padding:0 var(--pad);margin-bottom:34px}
  .pf-track{overflow-x:auto;transform:none!important;height:auto;align-items:flex-start;padding:0 var(--pad)}
  .pf-foot{position:static;padding:30px var(--pad) 0}.pf-bar{display:none}
}
@media print{.grain,.cursor,.intro,.header,.wa-float{display:none!important}}

.dialog-open .cursor{display:none!important}
.has-cursor.dialog-open,.has-cursor.dialog-open *{cursor:auto!important}
.has-cursor.dialog-open button,.has-cursor.dialog-open a{cursor:pointer!important}
