/* ==========================================================
   Passadiço 11 — static site
   ========================================================== */
@font-face{font-family:'Jost';font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/jost-latin-300-normal.woff2) format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/jost-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/jost-latin-500-normal.woff2) format('woff2')}
:root{
  --gold:#E7C582;
  --gold-d:#C9A55E;
  --cream:#FAF3E6;
  --sand:#F3E7CF;
  --ink:#1E1D1B;
  --ink-2:#55524C;
  --black:#0E0E0D;
  --white:#fff;
  --line:rgba(30,29,27,.14);
  --gap:6px;
  --pad:clamp(20px,5vw,72px);
  --hdr:88px;
  --ease:cubic-bezier(.7,0,.2,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --f:'Jost','Futura PT','Futura',system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--f);font-weight:400;font-size:17px;line-height:1.65;-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;padding:0;cursor:pointer}
figure{margin:0}
address{font-style:normal}
::selection{background:var(--gold);color:var(--ink)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:16px;top:-60px;z-index:1000;background:var(--ink);color:#fff;padding:10px 16px;transition:top .2s}
.skip:focus{top:16px}
:focus-visible{outline:2px solid var(--gold-d);outline-offset:3px}

html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}

.wrap{width:100%;max-width:1360px;margin:0 auto;padding:0 var(--pad)}
.narrow{max-width:860px}
.center{text-align:center}
.block{padding-top:clamp(90px,13vw,170px);padding-bottom:clamp(70px,9vw,120px)}


/* type */
.kicker{font-size:12px;letter-spacing:.32em;text-transform:uppercase;font-weight:500;color:var(--gold-d);margin:0 0 22px}
.title{font-weight:300;font-size:clamp(30px,4.2vw,56px);line-height:1.12;letter-spacing:.015em;margin:0 0 .75em}
.lead{font-size:clamp(17px,1.45vw,20px);line-height:1.7;color:var(--ink-2);margin:0 auto;max-width:40em}
.lead.left{margin:0}

/* split lines */
.split-line{padding-bottom:.06em}

/* ---------- Loader ---------- */
.loader{position:fixed;inset:0;z-index:300;background:var(--gold);display:grid;place-items:center;color:var(--ink)}
.loader__logo{width:min(380px,64vw);height:auto;clip-path:inset(0 100% 0 0)}
.loader__bar{position:absolute;left:50%;bottom:12vh;width:120px;height:1px;background:rgba(30,29,27,.18);transform:translateX(-50%);overflow:hidden}
.loader__bar span{display:block;height:100%;width:100%;background:var(--ink);transform:scaleX(0);transform-origin:left}
html:not(.js) .loader{display:none}

.curtain{position:fixed;inset:0;z-index:290;background:var(--gold);transform:translateY(100%);pointer-events:none}

/* ---------- Progress ---------- */
.progress{position:fixed;left:0;top:0;right:0;height:2px;z-index:120;pointer-events:none}
.progress span{display:block;height:100%;background:var(--gold-d);transform:scaleX(0);transform-origin:left}

/* ---------- Header ---------- */
.hdr{position:fixed;inset:0 0 auto 0;height:var(--hdr);z-index:100;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(24px,4vw,64px);
  padding:0 var(--pad);color:var(--ink);background:#fff;transition:transform .6s var(--ease),background-color .5s,color .5s,height .5s var(--ease),box-shadow .5s}
.hdr::after{display:none}
.hdr.is-solid{background:rgba(255,255,255,.96);color:var(--ink);box-shadow:0 1px 0 var(--line);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px)}
.hdr.is-solid::after{opacity:0}
.hdr.is-hidden{transform:translateY(-100%)}
.hdr__nav{display:flex;gap:clamp(20px,3vw,46px);font-size:14px;letter-spacing:.06em;align-items:center}
.hdr__nav--l{justify-content:flex-end}
.hdr__nav a{position:relative;padding:6px 0}
.hdr__nav a[data-nav]::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.hdr__nav a[data-nav]:hover::after,.hdr__nav a.is-active::after{transform:scaleX(1);transform-origin:left}
.hdr__logo{display:block;width:clamp(150px,15vw,200px)}
.hdr__logo img,.dev__logo img{display:block;width:100%;height:auto}
.hdr__lang{display:inline-flex;gap:6px;font-size:13px;letter-spacing:.1em}
.hdr__lang span{opacity:.5;transition:opacity .3s}
.hdr__lang .is-on{opacity:1}
.hdr__lang:hover span{opacity:1}
.hdr__lang .sep{opacity:.35!important}
.burger{display:none;width:44px;height:44px;position:relative;justify-self:end}
.burger i{position:absolute;left:10px;right:10px;height:1px;background:currentColor;transition:transform .5s var(--ease),top .5s var(--ease)}
.burger i:nth-of-type(1){top:18px}.burger i:nth-of-type(2){top:26px}
.menu-open .burger i:nth-of-type(1){top:22px;transform:rotate(45deg)}
.menu-open .burger i:nth-of-type(2){top:22px;transform:rotate(-45deg)}

/* mobile nav */
.mnav{position:fixed;inset:0;z-index:90;background:var(--gold);color:var(--ink);display:flex;flex-direction:column;justify-content:space-between;
  padding:calc(var(--hdr) + 6vh) var(--pad) 40px;clip-path:inset(0 0 100% 0);transition:clip-path .8s var(--ease);visibility:hidden}
.menu-open .mnav{clip-path:inset(0 0 0 0);visibility:visible}
.mnav nav{display:flex;flex-direction:column;gap:6px}
.mnav nav a{font-size:clamp(36px,10vw,64px);font-weight:300;line-height:1.15;display:flex;align-items:baseline;gap:16px;opacity:0;transform:translateY(30px);transition:opacity .6s,transform .8s var(--ease-out)}
.mnav nav a small{font-size:12px;letter-spacing:.2em;color:rgba(30,29,27,.55)}
.menu-open .mnav nav a{opacity:1;transform:none}
.menu-open .mnav nav a:nth-child(1){transition-delay:.25s}.menu-open .mnav nav a:nth-child(2){transition-delay:.31s}
.menu-open .mnav nav a:nth-child(3){transition-delay:.37s}.menu-open .mnav nav a:nth-child(4){transition-delay:.43s}
.mnav__foot{display:flex;justify-content:space-between;align-items:flex-end;font-size:13px;letter-spacing:.08em;gap:20px;flex-wrap:wrap}
.menu-open .hdr{color:var(--ink);background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.menu-open .hdr::after{opacity:0}

/* ---------- Hero ---------- */
.hero{position:relative;margin-top:var(--hdr);height:calc(100vh - var(--hdr));height:calc(100svh - var(--hdr));min-height:420px;overflow:hidden;color:#fff;background:var(--sand)}
.hero__media{position:absolute;inset:0}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:center 55%;transform-origin:50% 60%}
.hero__shade{position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(0,0,0,.28),rgba(0,0,0,.05) 60%),linear-gradient(to top,rgba(0,0,0,.4),rgba(0,0,0,0) 40%)}
.hero__scroll{position:absolute;left:50%;bottom:0;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:12px;font-size:11px;letter-spacing:.3em;text-transform:uppercase}
.hero__scroll i{display:block;width:1px;height:64px;background:rgba(255,255,255,.35);position:relative;overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;left:0;top:0;width:100%;height:40%;background:#fff;animation:drip 2.2s var(--ease) infinite}
@keyframes drip{0%{transform:translateY(-100%)}100%{transform:translateY(260%)}}

/* ---------- Intro ---------- */
.intro{background:var(--gold);padding:clamp(90px,12vw,170px) 0;margin-top:var(--gap)}
.intro .lead{color:#fff;font-size:clamp(18px,1.6vw,22px)}
.intro .title{color:var(--ink)}

/* ---------- Mosaic ---------- */
.mosaic{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,clamp(220px,34vw,520px));gap:var(--gap);margin-top:var(--gap)}
.t-arcade{grid-column:1;grid-row:1/3}
.t-boss{grid-column:2;grid-row:1}
.t-chef{grid-column:2;grid-row:2}
.t-arco{grid-column:1;grid-row:3}
.t-praca{grid-column:2;grid-row:3}
.tile{position:relative;overflow:hidden;background:var(--sand)}
.tile img{width:100%;height:118%;object-fit:cover;position:absolute;left:0;top:-9%;will-change:transform}
.tile:hover img{filter:saturate(1.08)}

/* ---------- Location ---------- */
.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}
.loc-map{grid-column:1;grid-row:1/3;position:relative;background:#EFE5D8}
.loc-map__inner{position:relative}
.loc-map__inner img{display:block;width:100%;height:auto}
.pulse{position:absolute;left:60.9%;top:30.5%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--ink)}
.pulse::before,.pulse::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid var(--ink);animation:ring 2.6s var(--ease-out) infinite}
.pulse::after{animation-delay:1.3s}
@keyframes ring{0%{transform:scale(.4);opacity:1}100%{transform:scale(4.2);opacity:0}}
.loc-statue{grid-column:2;grid-row:1}
.loc-avenida{grid-column:2;grid-row:2}


/* ---------- Banner ---------- */

/* ---------- Capital + marquee ---------- */

/* ---------- Facade (pinned) ---------- */
.facade{position:relative;height:260vh;background:var(--white)}
.facade__sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:grid;place-items:center}
.facade__frame{position:absolute;inset:0;overflow:hidden;clip-path:inset(14% 30% 14% 30%)}
.facade__frame img{width:100%;height:100%;object-fit:cover;object-position:60% 55%;transform:scale(1.35)}
html:not(.js) .facade{height:auto}
html:not(.js) .facade__sticky{position:relative}
html:not(.js) .facade__frame{clip-path:none}

/* ---------- Text blocks / wide ---------- */
.text-block{padding:clamp(90px,12vw,170px) 0}
.wide{margin:0;overflow:hidden}
.wide__frame{position:relative;height:clamp(360px,80vh,920px);overflow:hidden}
.wide__frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ---------- Apartments ---------- */




/* ---------- Developer ---------- */
.dev{background:var(--black);color:#fff;padding:clamp(100px,12vw,160px) 0 clamp(70px,8vw,110px)}
.dev__kicker{font-size:clamp(18px,1.6vw,22px);letter-spacing:.16em;text-transform:uppercase;font-weight:300;margin:0 0 22px}
.dev__line{display:block;height:1px;background:rgba(255,255,255,.55);width:min(420px,70%);margin:0 auto 46px;transform-origin:center}
.dev__logo{width:92px;margin:0 auto 40px;color:#fff}
.dev__text{color:rgba(255,255,255,.85);font-size:clamp(16px,1.3vw,19px);line-height:1.75;margin:0 0 40px}
.dev__contacts{display:flex;flex-direction:column;gap:4px;font-size:14px;color:rgba(255,255,255,.75)}
.dev__contacts a:hover{color:var(--gold)}

/* ---------- Footer ---------- */

/* ---------- JS initial states (avoid FOUC) ---------- */
.js [data-reveal]{clip-path:inset(100% 0 0 0)}
.js [data-fade]{opacity:0}
.js [data-split]{visibility:hidden}
.js [data-hero-fade]{opacity:0}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
}
@media (max-width:900px){
  :root{--hdr:68px}
  .hdr{grid-template-columns:1fr auto;height:var(--hdr)}
  .hdr__nav{display:none}
  .hdr__logo{width:140px}
  .burger{display:block}
  .loc-map{grid-column:1/3;grid-row:1}
  .loc-statue{grid-column:1;grid-row:2;height:clamp(160px,40vw,320px)}
  .loc-avenida{grid-column:2;grid-row:2;height:clamp(160px,40vw,320px)}
}
@media (max-width:640px){
  body{font-size:16px}
  .mosaic{grid-template-rows:repeat(3,clamp(160px,46vw,300px))}
  .facade{height:200vh}
}

@media (prefers-reduced-motion:reduce){
  .js [data-reveal]{clip-path:none}
  .js [data-fade],.js [data-hero-fade]{opacity:1}
  .js [data-split]{visibility:visible}
  .loader{display:none}
  .facade{height:auto}.facade__sticky{position:relative}.facade__frame{clip-path:none}
  .facade__frame img{transform:none}
  .hero__scroll i::after,.pulse::before,.pulse::after{animation:none}
  *{transition-duration:.01ms!important}
}
