*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:#000;color:#fff;font-family:"Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;font-weight:300;line-height:1.6;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid #fff;outline-offset:3px}
.wrap{width:min(1200px,100% - 48px);margin-inline:auto}
.eyebrow{font-size:.75rem;letter-spacing:.3em;text-transform:uppercase;color:#9a9a9a;margin:0 0 1.25rem}
h1,h2,h3{font-weight:500;letter-spacing:.04em;text-transform:uppercase;line-height:1.05;margin:0}
h1{font-size:clamp(2.6rem,9vw,7.5rem)}
h2{font-size:clamp(2rem,5.5vw,4.25rem)}
h3{font-size:clamp(1.25rem,2.4vw,1.75rem);letter-spacing:.08em}
p{margin:0 0 1rem;color:#cfcfcf;max-width:62ch}
.lead{font-size:clamp(1.05rem,1.6vw,1.3rem);color:#e6e6e6}
.btn{display:inline-block;padding:.95rem 1.8rem;border:1px solid #fff;text-decoration:none;font-size:.78rem;letter-spacing:.25em;text-transform:uppercase;background:transparent;color:#fff;cursor:pointer;font-family:inherit;transition:background .3s,color .3s}
.btn:hover,.btn:focus-visible{background:#fff;color:#000}
.btn.solid{background:#fff;color:#000}.btn.solid:hover{background:transparent;color:#fff}
/* header */
.hdr{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:14px clamp(16px,4vw,48px);background:linear-gradient(#000c,#0000)}
.hdr .logo img{height:34px;width:auto}
.nav{display:flex;gap:clamp(14px,2.2vw,32px);align-items:center}
.nav a{text-decoration:none;font-size:.72rem;letter-spacing:.25em;text-transform:uppercase;color:#d8d8d8}
.nav a:hover{color:#fff}
.lang{display:flex;gap:2px;font-size:.7rem;letter-spacing:.15em}
.lang a{text-decoration:none;padding:4px 6px;color:#8a8a8a}
.lang a[aria-current]{color:#fff;border-bottom:1px solid #fff}
@media (max-width:900px){.nav .nl{display:none}}
/* status strip */
.status{position:fixed;bottom:0;left:0;right:0;z-index:40;text-align:center;font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;padding:9px 12px;background:#000d;border-top:1px solid #222;color:#bdbdbd}
/* hero */
.hero{min-height:100svh;display:grid;place-items:center;text-align:center;position:relative;padding:120px 24px 90px;background:#000 center/cover no-repeat}
.hero-bg{position:absolute;inset:0;background:center/cover no-repeat;opacity:.55;animation:drift 30s ease-in-out infinite alternate}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,#0000 0,#000a 60%,#000 100%);z-index:1}
.hero>div:not(.hero-bg){position:relative;z-index:2}
@keyframes drift{from{transform:scale(1)}to{transform:scale(1.06)}}

.hero p{margin-inline:auto}
.hero .cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:2rem}
.scroll{position:absolute;z-index:2;bottom:56px;left:50%;width:1px;height:48px;background:linear-gradient(#fff,#0000);animation:sc 2.4s infinite}
@keyframes sc{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
section{padding:clamp(80px,12vw,160px) 0;border-top:1px solid #151515}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:start}
@media (max-width:820px){.split{grid-template-columns:1fr}}
.quote{font-size:clamp(1.3rem,2.6vw,2rem);font-weight:300;line-height:1.35;color:#fff;border-left:1px solid #fff;padding-left:1.25rem;margin:2rem 0 0}
.band{min-height:60vh;background:#0a0a0a center/cover no-repeat;display:grid;place-items:end start;padding:32px}
.band small,.cap{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:#8f8f8f}
/* residences */
.res{padding-top:clamp(56px,8vw,96px)}
.res+.res{border-top:1px solid #151515;margin-top:clamp(56px,8vw,96px)}
.res-head{display:grid;grid-template-columns:auto 1fr;gap:1rem 3rem;align-items:end;margin-bottom:2rem}
.res-head .num{font-size:.75rem;letter-spacing:.3em;color:#777}
@media (max-width:820px){.res-head{grid-template-columns:1fr}}
.gal{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(220px,28vw,360px);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;scrollbar-color:#444 #000}
.gal figure{margin:0;scroll-snap-align:start}
.gal img{width:100%;height:auto;aspect-ratio:2/3;object-fit:cover;filter:grayscale(.15);transition:filter .4s}
.gal img:hover{filter:none}
.gal figcaption{margin-top:6px}
.tech{margin-top:1.5rem;font-size:.9rem;color:#bdbdbd}
.tech strong{display:block;font-weight:500;letter-spacing:.2em;text-transform:uppercase;font-size:.7rem;color:#fff;margin-bottom:.4rem}
/* principles */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#1d1d1d;border:1px solid #1d1d1d;margin-top:3rem}
.grid3>div{background:#000;padding:clamp(24px,3vw,40px)}
.grid3 h3{font-size:1rem;margin-bottom:1rem}
@media (max-width:900px){.grid3{grid-template-columns:1fr}}
.log{border:1px dashed #333;padding:clamp(24px,4vw,48px);margin-top:2.5rem}
/* form */
form{display:grid;gap:18px;max-width:640px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:600px){.row2{grid-template-columns:1fr}}
label{display:grid;gap:6px;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#aaa}
input,select{font:inherit;font-size:1rem;color:#fff;background:#000;border:0;border-bottom:1px solid #444;padding:10px 0;border-radius:0;width:100%;letter-spacing:normal;text-transform:none}
input:focus,select:focus{outline:none;border-color:#fff}
select option{background:#000}
.check{display:flex;gap:10px;align-items:flex-start;text-transform:none;letter-spacing:normal;font-size:.88rem;color:#cfcfcf}
.check input{width:auto;margin-top:5px}
.fine{font-size:.8rem;color:#8a8a8a}
/* footer */
footer{border-top:1px solid #1a1a1a;padding:56px 0 88px;font-size:.82rem;color:#8a8a8a}
footer .wrap{display:grid;gap:18px}
footer a{color:#fff}
/* reveal */
.rv{opacity:0;transform:translateY(24px);transition:opacity 1s,transform 1s}
.rv.in,.no-js .rv{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.scroll,.hero-bg{animation:none}html{scroll-behavior:auto}}
/* language skin */
.skin{position:fixed;inset:0;z-index:100;display:none;place-items:center;padding:24px;background:rgba(0,0,0,.62);-webkit-backdrop-filter:blur(18px) saturate(.6);backdrop-filter:blur(18px) saturate(.6);animation:fade .8s ease}
.skin.on{display:grid}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.skin{background:rgba(0,0,0,.9)}}
.skin-box{text-align:center;display:grid;gap:28px;justify-items:center}
.skin-box img{width:120px;height:auto}
.skin-box .langs{display:grid;gap:12px;width:min(280px,80vw)}
.skin-box .btn{width:100%;border-radius:12px}
@keyframes fade{from{opacity:0}to{opacity:1}}
body.locked{overflow:hidden}
