@font-face{font-family:Guton;src:url("assets/Guton-Regular.otf") format("opentype");font-display:swap}
@font-face{font-family:Guton;src:url("assets/Guton-Bold.otf") format("opentype");font-weight:700;font-display:swap}
@font-face{font-family:Poppins;src:url("assets/Poppins-Regular.ttf") format("truetype");font-display:swap}
@font-face{font-family:Poppins;src:url("assets/Poppins-Medium.ttf") format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:Poppins;src:url("assets/Poppins-Bold.ttf") format("truetype");font-weight:700;font-display:swap}

:root {
  --navy:#122431;
  --olive:#777655;
  --cream:#d8d6c1;
  --white:#fff;
  --texture-art:url("assets/textura-duas-dobras.webp");
  --gutter:clamp(24px, 11.8vw, 226px);
  --content:1450px;
  color:var(--navy);
  background:var(--navy);
  font-family:Poppins,sans-serif;
}
*,*::before,*::after { box-sizing:border-box }
html { scroll-behavior:smooth }
body,h1,h2,h3,p,figure { margin:0 }
ul { list-style:none; margin:0; padding:0 }
img { display:block; max-width:100% }
a { color:inherit }
button,input,textarea { font:inherit }
button { cursor:pointer }
:focus-visible { outline:3px solid #d8ad64; outline-offset:4px }
h1,h2 { font-family:Guton,Poppins,sans-serif; font-weight:400; line-height:1.08 }
h2 { font-size:clamp(29px,3.7vw,70px) }
.mobile-only,[hidden] { display:none !important }
.sr-only,.skip-link:not(:focus) {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0
}
.skip-link { position:absolute; z-index:5; top:10px; left:10px; background:white; padding:12px }
.cta {
  display:inline-flex; align-items:center; justify-content:center; gap:.6em; align-self:start;
  padding:.55em .85em; min-height:38px; max-width:100%;
  background:var(--olive); color:var(--white); text-decoration:none;
  font-size:clamp(11px,1.15vw,20px); font-weight:500; line-height:1.2; text-transform:uppercase
}
.cta::after { content:"⟶"; font-size:1.35em; line-height:1 }
.cta-dark { background:var(--navy) }
.cta:hover,.contact button:hover { filter:brightness(.87) }

.header { position:absolute; z-index:2; inset:0 0 auto; color:white }
.header nav {
  display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center;
  width:min(70%, 1350px); margin:auto; padding:clamp(18px,3.7vw,68px) 0
}
.header a { text-decoration:none; text-transform:uppercase; font-size:clamp(10px,.92vw,17px); padding:9px 0 }
.header a:hover { text-decoration:underline; text-underline-offset:.32em }
.menu-toggle { display:none }

main { --hero-height:max(480px,56.25vw) }
.hero { --hero-stage-height:min(var(--hero-height),100svh); --hero-scroll-pace:2.2; --hero-journey:clamp(960px,145svh,1380px) }
.hero-stage {
  --photo-width:calc(var(--hero-stage-height) * 1.5);
  position:relative; isolation:isolate; display:grid; align-items:center;
  min-height:var(--hero-stage-height); color:white; background:#101c29; overflow:hidden
}
.hero-image {
  position:absolute; top:0; left:-3vw; width:var(--photo-width); max-width:none; height:var(--hero-stage-height);
  object-fit:cover; z-index:-2
}
.hero-stage::before {
  content:""; position:absolute; inset:0 0 0 calc(var(--photo-width) - 3vw); z-index:-2;
  height:var(--hero-stage-height);
  background:url("assets/van-gogh-fachada-noturna.webp") right center / max(var(--photo-width),215%) 100% no-repeat;
  transform:scaleX(-1)
}
.hero-stage::after {
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(90deg,transparent 35%,#060b1266 60%,#040a1240)
}
.hero-intro {
  display:none; position:absolute; z-index:3; inset:0; pointer-events:none
}
.hero-pending .hero { --hero-stage-height:100svh }
.hero-pending .hero,.hero--scroll:not([data-sky-ready]) { position:relative; z-index:2 }
.hero-pending .hero-intro,.hero--scroll:not([data-sky-ready]) .hero-intro { display:block }
.hero--scroll:has(.header a:focus-visible,.hero-cta:focus-visible,.menu-toggle:focus-visible) .hero-intro { display:none }
.hero-intro::before {
  content:""; position:absolute; top:50%; left:50%; width:220vmax; aspect-ratio:1;
  background:radial-gradient(circle closest-side,#fff 0 65%,#ffffffe6 72%,#ffffff99 82%,#ffffff33 93%,#fff0);
  transform:translate(-50%,-50%) scale(var(--hero-glow-scale,1));
  opacity:var(--hero-glow-opacity,1)
}
.hero-intro :is(.hero-intro-star,.hero-intro-brand) {
  position:absolute; top:50%; left:50%; height:auto; max-width:none;
  transform:translate(-50%,-50%) scale(var(--intro-scale,1));
  opacity:var(--hero-glow-opacity,1)
}
.hero-intro-star { --intro-scale:var(--hero-star-scale,1); width:220vmax }
.hero-intro-brand { --intro-scale:var(--hero-logo-scale,1); width:min(68vw,440px) }
.hero-inner { width:min(77%,var(--content)); margin-inline:auto; display:grid; grid-template-columns:43% 57%; align-items:end; padding-top:5% }
.hero-address,.location-address { font:500 clamp(12px,1.48vw,25px)/1.15 Poppins,sans-serif; text-align:center }
.hero-address { justify-self:start; padding-bottom:5%; display:grid; justify-items:center }
.hero-address img,.location-address img { width:clamp(30px,6.7vw,130px); margin:0 auto 3px }
.hero-address img { height:auto }
.hero-address strong,.location-address strong { background:var(--olive); padding:0 .25em }
.hero-address strong { background:#828162 }
.hero h1 { max-width:11em; font-size:clamp(39px,4.2vw,81px); line-height:1.02 }
.hero h1 strong,.gallery h2 strong,.contact h2 strong,.apartment-title strong { color:#898665 }
.hero-badge { display:table; background:var(--olive); padding:0 .5em; margin:.8em 0 1.65em; font-size:clamp(14px,1.65vw,32px); text-transform:uppercase }
.hero-details { display:flex; flex-wrap:wrap; gap:.65em 1.25em; margin-bottom:1.8em; font:clamp(13px,1.8vw,34px)/1.05 Guton,Poppins,sans-serif }
.hero-details li { display:flex; align-items:center; gap:.35em }
.hero-details img { width:1.8em }
.hero-symbol { color:#b4ab76; font-size:2em; line-height:1 }
.hero--scroll {
  --hero-stage-height:100svh;
  min-height:calc(var(--hero-stage-height) + var(--hero-journey) * var(--hero-scroll-pace));
  background:#101c29
}
.hero--scroll .hero-stage { position:sticky; top:0 }
.hero--scroll .header { pointer-events:none }
.hero--scroll .header a {
  opacity:var(--hero-nav,0); transform:translateY(calc((1 - var(--hero-nav,0)) * 8px));
  pointer-events:none; transition:opacity 180ms ease-out,transform 220ms ease-out
}
.hero--scroll .header a[data-nav-ready] { pointer-events:auto }
.hero--scroll .header:has(a:focus-visible) a { opacity:1; transform:none; pointer-events:auto; transition:none }
:is(.hero--scroll,.details--motion) .type-letter { position:relative; opacity:0; transition:opacity 100ms ease-out }
:is(.hero--scroll,.details--motion) .type-letter--typed { opacity:1 }
:is(.hero--scroll,.details--motion) .type-letter--cursor::after {
  content:""; position:absolute; left:100%; top:.15em; bottom:.12em; width:2px; background:currentColor
}
.hero--scroll :is(.hero-address,.hero-logo) { opacity:var(--hero-brand,0); transition:opacity 180ms ease-out }
.hero--scroll .hero-badge { --reveal:var(--hero-badge,0) }
.hero--scroll .hero-cta { --reveal:var(--hero-action,0) }
.hero--scroll :is(.hero-badge,.hero-details li,.hero-cta) {
  opacity:var(--reveal,0); transform:translateY(calc((1 - var(--reveal,0)) * 14px));
  transition:opacity 180ms ease-out,transform 220ms ease-out
}
.hero--scroll:not([data-cta-ready]) .hero-cta { pointer-events:none }
.hero--scroll:has(.hero-cta:focus-visible) :is(.type-letter,.hero-address,.hero-logo,.hero-badge,.hero-details li,.hero-cta) {
  opacity:1; transform:none; pointer-events:auto; transition:none
}
.hero--scroll:has(.hero-cta:focus-visible) .type-letter--cursor::after { display:none }

.panel { padding:clamp(46px,6.5vw,125px) var(--gutter) }
.split,.content { width:min(100%,var(--content)); margin-inline:auto }
.split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,6vw,115px); align-items:center }
.render-stage { position:relative; isolation:isolate }
.render-scene--scroll::after { content:""; display:block; height:clamp(500px,88svh,850px) }
.render-scene--scroll .render-stage {
  position:sticky; top:0; min-height:100svh; display:grid; align-content:center
}
.render-cover {
  display:none; position:absolute; inset:0; z-index:1; overflow:hidden; pointer-events:none;
  opacity:var(--render-cover-opacity,1)
}
.render-cover img { position:absolute; top:0; left:0; max-width:none; transform-origin:0 0 }
.render-scene--scroll[data-render-ready]:not([data-render-done]) .render-cover { display:block }
.render-scene--scroll[data-render-ready]:not([data-render-photo-visible]) [data-render-photo] { opacity:0 }
.render-scene--scroll[data-render-ready] [data-render-reveal] {
  opacity:var(--render-reveal,0); translate:0 calc((1 - var(--render-reveal,0)) * 14px)
}
.render-scene--scroll[data-render-ready]:not([data-render-done]) a[data-render-reveal] { pointer-events:none }
.render-scene--scroll[data-render-ready]:has(a:focus-visible) :is([data-render-reveal],[data-render-photo]) {
  opacity:1; translate:none; pointer-events:auto
}
.render-scene--scroll[data-render-ready]:has(a:focus-visible) .render-cover { display:none }
.apartment { position:relative; z-index:1; background:var(--navy); color:white }
.apartment .render-stage::before {
  content:""; position:absolute; z-index:-1; pointer-events:none;
  inset:calc(-1 * var(--hero-height)) 0 0;
  background:var(--texture-art) right bottom / auto 100% no-repeat
}
.amenities { position:relative; isolation:isolate; overflow:hidden }
.amenities::before {
  content:""; position:absolute; z-index:-1; pointer-events:none; inset:5% -12% -21% 36%;
  background:url("assets/onda.webp") center/contain no-repeat; opacity:.1; transform:rotate(-22deg)
}
.amenities::before { inset:0 -24% -28% -12%; transform:rotate(16deg); opacity:.17 }
.apartment-photo { position:relative }
.balcony-photo,.intro-photo { width:100%; aspect-ratio: .83; object-fit:cover; border-radius:28% 28% 25% 25% }
.balcony-photo { object-position:center 60% }
.apartment-delivery {
  position:absolute; top:calc(100% + 6px); left:50%; transform:translateX(-50%);
  width:min(76%,400px); height:auto
}
.apartment-info { display:grid; justify-items:start; gap:clamp(22px,3.7vw,65px) }
.brand { width:100%; max-width:640px }
.features {
  width:100%; display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(12px,1.8vw,38px); text-align:center
}
.features li { display:grid; justify-items:center; align-content:start; gap:.35em; font:clamp(12px,1.45vw,27px)/1.02 Guton,Poppins,sans-serif }
.features img { width:clamp(42px,6.2vw,118px); aspect-ratio:1; object-fit:contain }
.intro { position:relative; z-index:2; background:var(--olive); color:white }
.intro-texture {
  position:absolute; z-index:-1; pointer-events:none; overflow:hidden;
  inset:clamp(-42px,-2.8vw,-16px) 0 clamp(-68px,-4.3vw,-22px)
}
.intro-texture::before {
  content:""; position:absolute; top:-49.5vw; left:62.5%; width:82vw; aspect-ratio:1400 / 2954;
  background-image:var(--texture-art),var(--texture-art);
  background-size:100% 100%; background-repeat:no-repeat;
  transform:rotate(55deg); transform-origin:top left
}
.intro-photo { object-fit:contain; border-radius:0; aspect-ratio:1020 / 1293 }
.intro-copy p { max-width:37ch; font-size:clamp(14px,1.65vw,31px); line-height:1.52; margin:1.5em 0 }
.intro-copy p + p { margin-top:0 }
.intro-lettering { display:none }

@media (min-width:1050px) {
  .intro-text {
    position:absolute; width:1px; height:1px; overflow:hidden;
    clip-path:inset(50%); white-space:nowrap
  }
  .intro-lettering { display:block; width:100%; height:auto; margin-bottom:clamp(20px,3.2vw,62px) }
}

.penthouse {
  display:grid; align-items:center; min-height:clamp(500px,56.25vw,1080px);
  color:white; background:#0d1a23 url("assets/cobertura.webp") center / cover no-repeat
}
.with-mark { display:flex; align-items:center; justify-content:center; gap:.35em; font-size:clamp(27px,3.35vw,63px) }
.with-mark > img { flex:none; width:2.65em }
.penthouse .content { display:grid; gap:clamp(36px,5.5vw,105px) }
.penthouse-info { display:grid; grid-template-columns:1.2fr .8fr; align-items:center; gap:clamp(24px,5vw,100px) }
.penthouse-size { justify-self:center; font:clamp(18px,2vw,38px)/1.05 Guton,Poppins,sans-serif }
.penthouse-size > strong { display:block; font-weight:400; white-space:nowrap; font-size:clamp(54px,8vw,153px); line-height:.95 }
.penthouse-number { display:inline-grid; vertical-align:baseline; font-variant-numeric:tabular-nums }
.penthouse-number::before { content:attr(data-count-to); visibility:hidden }
.penthouse-number > span,.penthouse-number::before { grid-area:1 / 1; justify-self:end }
.penthouse.details--motion .penthouse-features li {
  opacity:var(--icon-reveal,0); translate:0 calc((1 - var(--icon-reveal,0)) * 16px);
  transition:opacity 180ms ease-out,translate 220ms ease-out
}
.penthouse-size > span { display:inline-block; margin-top:.3em; border:1px solid #a8a479; padding:.25em .35em }
.amenities { background:var(--cream); text-align:center }
.amenities .features { grid-template-columns:repeat(4,minmax(0,1fr)); margin:24px auto; max-width:520px }

.gallery { background:white; text-align:center; padding:clamp(36px,6vw,112px) 0 clamp(33px,5vw,95px); overflow:hidden }
.gallery h2 { padding-inline:var(--gutter); font-size:clamp(22px,2.85vw,55px); margin:0 auto 1.2em }
.carousel-surface { position:relative; touch-action:pan-y pinch-zoom; cursor:grab; user-select:none }
.carousel-surface:active { cursor:grabbing }
.carousel-toggle {
  position:absolute; z-index:1; top:8px; right:8px; min-height:34px; padding:5px 10px;
  border:1px solid #fff6; border-radius:4px; background:var(--navy); color:white;
  font-size:12px; font-weight:500; line-height:1.2
}
.gallery-track { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,70%) minmax(0,1fr); gap:clamp(8px,2.4vw,47px); align-items:stretch }
.gallery-current,.gallery-side { width:100%; height:100%; border-radius:clamp(9px,1.8vw,33px) }
.gallery-current { aspect-ratio:2.1; object-fit:cover; object-position:center 55% }
.gallery-side { position:relative; padding:0; border:0; overflow:hidden; background:var(--navy); color:white }
.gallery-side:first-child { border-radius:0 16px 16px 0 }
.gallery-side:last-child { border-radius:16px 0 0 16px }
.gallery-side img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.63; transition:opacity .2s }
.gallery-side:hover img,.gallery-side:focus-visible img { opacity:.9 }
.gallery-side span { position:absolute; z-index:1; inset:50% auto auto 50%; transform:translate(-50%,-50%); font-size:clamp(25px,4vw,65px); text-shadow:0 1px 10px black }
.gallery-side:focus-visible { outline-offset:-5px }
.gallery figcaption { display:flex; justify-content:center; align-items:center; gap:.7em; margin-top:1em; font-size:clamp(13px,1.9vw,36px); font-weight:500 }
.gallery figcaption::before,.gallery figcaption::after { content:""; width:clamp(24px,12vw,230px); height:1px; background:currentColor }
.interiors figcaption { text-transform:uppercase }

.plans { background:var(--cream) }
.plans .split { grid-template-columns:1.13fr .87fr }
.plan-view { position:relative }
.plan-image a { display:grid; place-items:center; margin-left:12%; height:clamp(270px,43vw,800px); cursor:inherit }
.plan-image img { width:100%; height:100%; max-height:100%; object-fit:contain; min-height:0 }
.plan-view figcaption { position:absolute; z-index:1; left:0; top:44%; max-width:36%; font:500 clamp(11px,1.45vw,27px)/1.12 Poppins,sans-serif; pointer-events:none }
.plan-view figcaption::after { content:""; display:block; width:3.5em; height:1px; background:currentColor; margin:.35em 0 0 auto }
.plan-view--caption-below figcaption {
  top:calc(100% + 4px); left:12%; right:0; max-width:none; text-align:center;
  font-size:clamp(12px,1.18vw,22px)
}
.plan-view--caption-below figcaption::after { display:none }
.plan-controls { display:flex; justify-content:center; padding-left:12%; gap:0 }
.plan-controls button { display:grid; place-items:center; width:38px; height:40px; border:0; background:transparent }
.plan-controls button::before { content:""; width:11px; height:11px; border-radius:50%; border:1px solid var(--olive); background:#aaa88e }
.plan-controls button[aria-pressed="true"]::before { background:var(--olive) }
.plan-copy > img { width:clamp(66px,11.5vw,225px); margin-bottom:1.4em }
.motion-definitions { position:absolute; pointer-events:none }
.plans.details--motion[data-wave-active] .plan-wave {
  filter:url(#plan-wave-flow); animation:plan-wave-sway 4.8s ease-in-out infinite
}
@keyframes plan-wave-sway {
  0%,100% { transform:translateY(0) skewX(0) }
  25% { transform:translateY(-2px) skewX(-4deg) }
  75% { transform:translateY(2px) skewX(4deg) }
}
.plan-copy h2 { font-size:clamp(29px,3vw,58px); max-width:12em; font-weight:700 }
.leisure-badge { display:table; background:var(--olive); color:white; border-radius:.9em .9em .2em 0; font:clamp(20px,2.65vw,50px)/1.02 Guton,sans-serif; padding:.65em .95em; margin:.8em 0 1.05em }
.plan-hint { width:min(100%,26rem); margin-top:1em }
.plan-hint img { width:100%; height:auto }

.location { color:white; background:var(--navy) }
.location-scene { position:relative; isolation:isolate; width:100%; min-height:clamp(430px,56.25vw,1080px) }
.location-map { position:absolute; inset:0 }
.location-photo { position:absolute; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:center }
.location-map::after { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(0deg,#080c12a0,transparent 57%),linear-gradient(180deg,#15100847,transparent 45%) }
.landmarks li {
  position:absolute; left:var(--x); top:var(--y); height:var(--line); transform:translateX(-50%);
  text-align:center; font:500 clamp(10px,1.46vw,28px)/1.08 Poppins,sans-serif; text-shadow:0 1px 6px #423120
}
.landmarks li::after { content:""; position:absolute; inset:2.5em auto 0 50%; border-left:1px solid white }
.landmarks li::before { content:""; position:absolute; z-index:1; width:6px; height:6px; left:50%; bottom:0; border-radius:50%; background:white; transform:translateX(-50%) }
.location-address { position:absolute; bottom:19%; left:30%; transform:translateX(-10%) }
.location-copy { position:absolute; bottom:14%; left:64%; right:8%; font-size:clamp(13px,1.68vw,32px); line-height:1.35 }
.location.details--motion .landmarks li::before {
  opacity:var(--point-reveal,0); transform:translateX(-50%) scale(var(--point-reveal,0))
}
.location.details--motion .landmarks li::after {
  transform:scaleY(var(--line-reveal,0)); transform-origin:bottom
}
.location.details--motion .landmark-label {
  display:block; opacity:var(--label-reveal,0); translate:0 calc((1 - var(--label-reveal,0)) * 18px)
}
.location.details--motion .location-address {
  opacity:var(--address-reveal,0); translate:0 calc((1 - var(--address-reveal,0)) * 18px)
}
@media (min-width:821px) {
  .location.details--motion::after { content:""; display:block; height:clamp(460px,76svh,760px) }
  .location.details--motion .location-scene { position:sticky; top:0; min-height:max(100svh,56.25vw) }
}
.contact { color:white; background:var(--navy) url("assets/contato.webp") center/cover no-repeat }
.contact .split { grid-template-columns:1fr 1fr }
.contact-copy { display:grid; justify-items:start; gap:clamp(22px,5vw,96px) }
.contact-copy h2 { max-width:11em; font-size:clamp(30px,3.5vw,66px) }
.contact-copy img { width:clamp(116px,18vw,330px) }
.contact form { display:grid; gap:clamp(8px,1.15vw,21px); background:#727657; padding:clamp(18px,2vw,39px); border-radius:clamp(24px,4.5vw,87px) }
.contact h3 { text-align:center; font-size:clamp(15px,1.84vw,35px); line-height:1.15; margin:.4em 0 }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:8px }
.contact input,.contact textarea { width:100%; padding:.55em .85em; min-height:43px; border:0; border-radius:0; background:white; color:var(--navy); font-size:clamp(16px,1.5vw,28px) }
.contact textarea { resize:vertical }
.contact button { justify-self:center; border:0; background:var(--navy); color:white; padding:.65em 1.25em; min-height:44px; font-size:clamp(12px,1.53vw,28px); font-weight:700 }
.contact button:disabled { cursor:not-allowed; opacity:.7 }
.form-note,.form-status,.contact noscript { font-size:clamp(11px,1.1vw,19px); text-align:center; line-height:1.35 }
.form-status a { text-decoration:underline; font-weight:700 }

@media (max-width:820px), (max-width:960px) and (max-height:500px) {
  .desktop-only { display:none !important }
  .mobile-only { display:revert !important }
  .cta.mobile-only { display:inline-flex !important }
  .header { padding:12px max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left)) }
  .header nav { width:100%; justify-content:center; gap:4px 16px; padding:0 }
  .header a { font-size:12px; padding:12px 0 }
  .header--menu { display:grid; justify-items:end; gap:8px }
  .menu-toggle {
    display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 13px;
    border:1px solid #ffffff60; border-radius:7px; background:#122431ed; color:white;
    font-size:14px; font-weight:500
  }
  .menu-glyph,.menu-glyph::before,.menu-glyph::after { width:16px; height:2px; background:currentColor }
  .menu-glyph { position:relative }
  .menu-glyph::before,.menu-glyph::after { content:""; position:absolute; left:0 }
  .menu-glyph::before { top:-5px }
  .menu-glyph::after { top:5px }
  .header--menu nav {
    display:none; width:min(100%,280px); max-height:calc(100svh - 76px); overflow:auto;
    margin:0; padding:8px; overscroll-behavior:contain; background:var(--navy); border:1px solid #ffffff40; border-radius:10px;
    box-shadow:0 10px 32px #0006; pointer-events:auto
  }
  .header--menu[data-menu-open] nav { display:grid; gap:0; justify-content:stretch }
  .header--menu nav a { padding:11px 12px; min-height:44px; display:flex; align-items:center }
  .header--menu nav a + a { border-top:1px solid #ffffff24 }
  .hero--scroll .menu-toggle { opacity:var(--hero-menu,0); pointer-events:none }
  .hero--scroll[data-menu-ready] .menu-toggle,.hero--scroll .menu-toggle:focus-visible,
  .hero--scroll .header[data-menu-open] .menu-toggle { opacity:1; pointer-events:auto }
  .hero--scroll .header[data-menu-open] a { opacity:1; transform:none; pointer-events:auto; transition:none }
  main { --hero-height:clamp(365px,75vw,555px) }
  .hero { --hero-scroll-pace:1.55; --hero-journey:clamp(610px,100svh,840px) }
  .hero-image { left:0; width:100%; object-position:50% center }
  .hero-stage::before { display:none }
  .hero-stage::after { background:linear-gradient(90deg,transparent 28%,#050c175c 50%,#050c1766) }
  .hero-inner { grid-template-columns:42% 58%; width:calc(100% - 26px); align-items:center; padding-top:38px }
  .hero-address { visibility:hidden }
  .hero-logo { width:min(84%,300px); margin-bottom:12px }
  .hero h1 { font-size:clamp(24px,5.5vw,42px) }
  .hero-badge { font-size:clamp(11px,2.5vw,20px); margin:.7em 0 1em }
  .hero-details { gap:8px 10px; font-size:clamp(11px,2.55vw,20px); margin-bottom:1em }
  .hero-details li.mobile-only { display:flex !important }
  .hero .cta { font-size:clamp(12px,2.3vw,15px) }
  .cta { min-height:44px; font-size:clamp(12px,2.2vw,15px) }
  .panel { padding:clamp(36px,8.7vw,70px) clamp(18px,8vw,56px) }
  .split { gap:clamp(14px,4vw,35px) }
  .sections { display:flex; flex-direction:column }
  .apartment { order:1 }
  .penthouse { order:2 }
  .intro { order:3 }
  .amenities { order:4 }
  .leisure-gallery { order:5 }
  .plans { order:6 }
  .interiors { order:7 }
  .apartment-title { grid-column:1/-1; text-align:center; font-size:clamp(23px,4.8vw,40px); margin-bottom:.3em }
  .apartment-delivery { width:min(100%,265px) }
  .apartment-features { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .features { gap:12px 6px }
  .features li { font-size:clamp(13px,2.25vw,17px); line-height:1.15 }
  .features img { width:clamp(36px,8vw,63px) }
  .intro .split { grid-template-columns:1.05fr 1fr }
  .intro-texture { bottom:0 }
  .intro-texture::before { top:-32vw; left:95%; width:94vw; transform:rotate(52deg) }
  .intro-copy h2 { font-size:clamp(22px,4.5vw,40px) }
  .intro-copy p { font-size:clamp(14px,2.4vw,18px); margin:1em 0 }
  .with-mark { font-size:clamp(23px,4.55vw,39px) }
  .with-mark > img { width:2.25em }
  .penthouse .content { justify-items:center; gap:clamp(22px,6vw,50px) }
  .penthouse { min-height:0 }
  .penthouse-info { width:100%; grid-template-columns:.85fr 1.15fr; gap:clamp(8px,3vw,25px) }
  .penthouse-features.mobile-only { display:grid !important }
  .penthouse-size { font-size:clamp(12px,2.8vw,22px) }
  .penthouse-size > strong { font-size:clamp(37px,8.25vw,67px) }
  .penthouse-features img { width:clamp(30px,6vw,52px) }
  .penthouse-features li { font-size:clamp(12px,2vw,16px) }
  .gallery h2 { max-width:24em; text-align:left; font-size:clamp(20px,4.4vw,38px) }
  .gallery-track { grid-template-columns:44px minmax(0,1fr) 44px; gap:8px }
  .gallery-current { aspect-ratio:4 / 3 }
  .gallery-side:nth-child(3) { border-radius:12px 0 0 12px }
  .carousel-toggle { min-height:44px }
  .gallery .carousel-toggle { right:60px }
  .gallery figcaption { font-size:15px }
  .plans .split { grid-template-columns:1fr }
  .plan-copy { grid-row:1; justify-self:center }
  .plan-copy h2 { font-size:clamp(26px,4.8vw,42px) }
  .plan-copy > img { margin-bottom:.75em }
  .plan-view { display:flex; flex-direction:column }
  .plan-image { order:1 }
  .plan-image a { margin:0; height:clamp(250px,78vw,440px) }
  .plan-image .carousel-toggle { top:0; right:0 }
  .plan-view figcaption { position:static; order:2; margin-top:8px; max-width:none; text-align:center; font-size:14px }
  .plan-view figcaption::after { display:none }
  .plan-controls { order:3; padding-left:0 }
  .plan-controls button { width:44px; height:44px }
  .location.details--motion::after { display:none }
  .location-scene,.location.details--motion .location-scene { position:relative; min-height:0 }
  .location-map { position:relative; isolation:isolate; min-height:clamp(310px,80vw,520px) }
  .location-copy { position:static; max-width:42rem; margin:auto; padding:20px max(20px,8vw) 4px; font-size:15px; line-height:1.6 }
  .location-address { left:6%; bottom:8%; transform:none; font-size:14px }
  .location-address img { width:46px }
  .landmarks li { font-size:clamp(9px,1.7vw,14px) }
  .location-scene--key .landmarks { counter-reset:landmark }
  .location-scene--key .landmarks li { counter-increment:landmark }
  .location-scene--key .landmarks li::after { top:26px }
  .location-scene--key .landmark-label { display:block; font-size:0 }
  .location-scene--key .landmark-label::before {
    content:counter(landmark); display:grid; place-items:center; width:24px; height:24px;
    border:1px solid #ffffffb0; border-radius:50%; color:white; background:var(--navy);
    font:600 12px/1 Poppins,sans-serif; text-shadow:none
  }
  .landmark-key.mobile-only {
    display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 12px;
    max-width:42rem; margin:0 auto; padding:12px max(20px,8vw) 24px; list-style:none; counter-reset:landmark-key
  }
  .landmark-key li { display:flex; align-items:baseline; gap:7px; counter-increment:landmark-key; font-size:13px; line-height:1.35 }
  .landmark-key li::before { content:counter(landmark-key); color:#d9d5ac; font-weight:700 }
  .contact .split { grid-template-columns:1fr; max-width:520px }
  .contact-copy { grid-template-columns:.66fr 1.34fr; align-items:center; gap:14px; margin-bottom:12px }
  .contact-copy img { grid-column:1; grid-row:1; width:100% }
  .contact-copy h2 { grid-column:2; grid-row:1; max-width:none; font-size:clamp(22px,4.55vw,39px) }
  .contact form { width:min(100%,410px); justify-self:center }
  .contact form label { display:grid; gap:4px; min-width:0; font-size:13px; font-weight:500 }
  .contact form label .sr-only { position:static; width:auto; height:auto; margin:0; clip-path:none; overflow:visible }
  .contact input::placeholder,.contact textarea::placeholder { color:transparent }
  .contact input,.contact textarea { min-height:48px }
  .contact textarea { min-height:88px }
  .contact button { width:100%; min-height:48px; font-size:14px }
  .form-note,.form-status { font-size:13px }
}
@media (max-width:600px) {
  :root { --gutter:clamp(18px,5.5vw,32px) }
  .panel { padding:40px var(--gutter) }
  .render-stage.panel { padding:clamp(24px,5svh,42px) var(--gutter) }
  .render-scene--scroll::after { height:clamp(370px,64svh,530px) }
  .apartment .split,.intro .split { grid-template-columns:minmax(0,1fr); gap:18px }
  .apartment-title { margin:0; font-size:clamp(25px,6.6vw,35px) }
  .balcony-photo { aspect-ratio:1.48; border-radius:30px 30px 22px 22px }
  .apartment-delivery {
    position:static; transform:none; width:min(80%,265px); margin:8px auto 0
  }
  .apartment-info { gap:16px; justify-items:stretch }
  .apartment-features { gap:13px 9px }
  .apartment-features img,.amenities .features img { width:46px }
  .apartment-info .cta,.intro-copy .cta { width:100% }
  .intro-photo { grid-row:1; width:min(100%,315px,35svh); justify-self:center }
  .intro-copy h2 { font-size:clamp(30px,8vw,43px) }
  .intro-copy p { max-width:none; line-height:1.55 }
  .with-mark > img { width:1.8em }
  .penthouse-info { grid-template-columns:minmax(0,1fr); gap:20px }
  .penthouse-size { text-align:center }
  .penthouse-size > strong { font-size:clamp(46px,13.5vw,72px) }
  .penthouse-features img { width:42px }
  .amenities .features { grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px 12px }
  .plan-copy { width:100% }
  .plan-copy h2 { max-width:15em; font-size:clamp(28px,7vw,42px) }
  .contact-copy { grid-template-columns:minmax(0,1fr); gap:16px; margin-bottom:6px }
  .contact-copy img { grid-column:1; grid-row:1; width:126px }
  .contact-copy h2 { grid-column:1; grid-row:2; font-size:clamp(27px,7vw,39px) }
  .contact form { width:100%; padding:19px }
  .contact h3 { font-size:19px }
}
@media (max-width:359px) {
  .penthouse-features { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .landmark-key.mobile-only { grid-template-columns:1fr }
}
@media (max-width:820px) and (orientation:portrait) {
  .hero--scroll .hero-image {
    height:clamp(365px,76svh,650px); object-position:41% center;
    mask-image:linear-gradient(#000 84%,transparent)
  }
  .hero--scroll .hero-stage::after {
    background:linear-gradient(0deg,#101c29 22%,transparent 40%),
      linear-gradient(90deg,transparent 32%,#050c1770 58%,#050c1770)
  }
  .hero--scroll .hero-inner { align-self:end; padding-bottom:clamp(32px,11svh,110px) }
}
@media (max-width:600px) and (orientation:portrait) {
  .hero-stage { align-items:end }
  .hero-inner { display:block; width:calc(100% - 2 * var(--gutter)); padding:clamp(160px,38svh,330px) 0 28px }
  .hero-address { display:none }
  .hero-logo { width:min(63%,235px); margin-bottom:11px }
  .hero h1 { max-width:11em; font-size:clamp(32px,8.2vw,49px) }
  .hero-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); font-size:clamp(13px,3.3vw,17px) }
  .hero-badge { font-size:13px }
  .hero .cta { width:100% }
  .hero-stage::after,.hero--scroll .hero-stage::after {
    background:linear-gradient(0deg,#101c29 1%,#101c29f2 24%,#101c29a6 46%,transparent 71%)
  }
  .hero--scroll .hero-image { height:clamp(365px,77svh,670px); object-position:30% center }
  .hero--scroll .hero-inner { padding-bottom:max(28px,env(safe-area-inset-bottom)) }
}
@media (max-width:960px) and (max-height:500px) and (orientation:landscape) {
  .hero--scroll { --hero-stage-height:100svh; --hero-journey:610px }
  .hero-inner { padding-top:16px }
  .hero-image { width:var(--photo-width); object-position:center }
  .hero-stage::before { display:block; inset:0 0 0 var(--photo-width) }
  .hero-logo { width:min(52%,200px); margin-bottom:9px }
  .hero h1 { font-size:clamp(25px,4.3vw,36px) }
  .hero-badge { font-size:14px; margin:.55em 0 .8em }
  .hero-details { font-size:14px; margin-bottom:.85em }
  .render-scene--scroll::after { height:0 }
  .render-scene--scroll .render-stage { position:relative; min-height:0 }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto }
  .hero-pending .hero-intro,.hero--scroll:not([data-sky-ready]) .hero-intro { display:none }
  *,*::before,*::after { transition:none !important }
}

