/* ---------- Fonts ---------- */
@font-face{font-family:'Italiana';src:url('assets/fonts/Italiana.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('assets/fonts/CormorantGaramond.ttf') format('truetype');font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('assets/fonts/CormorantGaramond-Italic.ttf') format('truetype');font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:'Jost';src:url('assets/fonts/Jost.ttf') format('truetype');font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --cream:#efe9df;
  --cream-2:#e7dfd1;
  --ink:#1c231b;
  --pine:#18231a;
  --gold:#b08d57;
  --muted:#77736a;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:auto}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}

body{
  background:var(--cream);
  color:var(--ink);
  font-family:'Jost',sans-serif;
  font-weight:300;
  overflow-x:hidden;
}
img{display:block;width:100%;height:100%;object-fit:cover}
figure{overflow:hidden}

::selection{background:var(--gold);color:var(--cream)}

/* ---------- Preloader ---------- */
#preloader{
  position:fixed;inset:0;z-index:100;
  background:var(--pine);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
}
.loader-arch{width:84px;opacity:.9}
#archPath{stroke-dasharray:400;stroke-dashoffset:400}
.loader-word{
  font-family:'Italiana',serif;font-size:34px;letter-spacing:.42em;text-indent:.42em;
  color:#e9e2d4;opacity:0
}
.loader-sub{
  font-size:11px;letter-spacing:.5em;text-indent:.5em;color:#8d957f;opacity:0
}

/* ---------- Nav ---------- */
#nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:26px 4vw;
  mix-blend-mode:difference;color:#efe9df;
}
#nav .brand{font-family:'Italiana',serif;font-size:20px;letter-spacing:.34em}
#nav .links{display:flex;gap:34px}
#nav a{
  color:#efe9df;text-decoration:none;font-size:12px;letter-spacing:.22em;text-transform:uppercase
}
.pill-cta{
  border:1px solid currentColor;border-radius:999px;padding:10px 26px;
  transition:background .35s,color .35s;
}
.pill-cta:hover{background:#efe9df;color:#18231a!important}
.pill-cta.big{display:inline-block;font-size:14px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding:16px 44px}

/* ---------- Shared type ---------- */
.kicker{font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--muted);margin-bottom:26px}
.kicker.light{color:#9aa78f}
.section-title{
  font-family:'Cormorant Garamond',serif;font-weight:500;
  font-size:clamp(44px,6.4vw,96px);line-height:1.02;letter-spacing:-.01em;
}
.section-title em,.big-statement em,.hero-sub em,.h-word em,.pinned-title em,.contact-title em{font-style:italic;font-weight:400}
.section-title.light{color:var(--cream)}
.line{display:block;overflow:hidden}
.line>span{display:block;transform:translateY(115%)}
.fade-up{opacity:0;transform:translateY(36px)}

/* ---------- Hero ---------- */
#hero{position:relative;height:100vh;min-height:640px;overflow:hidden}
.hero-media{position:absolute;inset:-12% 0 0 0;height:124%}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,20,14,.38),rgba(15,20,14,.05) 45%,rgba(15,20,14,.45))}
.hero-copy{
  position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;
  padding:0 4vw 9vh;color:var(--cream);
}
.hero-eyebrow{font-size:12px;letter-spacing:.34em;text-transform:uppercase;margin-bottom:2.4vh}
.hero-title{
  font-family:'Italiana',serif;font-weight:400;
  font-size:clamp(58px,11.5vw,168px);line-height:.96;letter-spacing:.02em;
}
.hero-sub{
  font-family:'Cormorant Garamond',serif;font-size:clamp(20px,2.4vw,32px);
  margin-top:2.6vh;font-weight:400;
}
.reveal-line{overflow:hidden}
.reveal-line>span{display:block;transform:translateY(110%)}
.scroll-cue{
  position:absolute;right:4vw;bottom:9vh;color:var(--cream);
  font-size:10px;letter-spacing:.4em;text-transform:uppercase;
  display:flex;flex-direction:column;align-items:center;gap:10px;
}
.scroll-cue span{width:1px;height:52px;background:rgba(239,233,223,.6);display:block;overflow:hidden;position:relative}
.scroll-cue span::after{content:'';position:absolute;left:0;top:-100%;width:100%;height:100%;background:var(--gold);animation:drip 1.8s ease-in-out infinite}
@keyframes drip{0%{top:-100%}60%,100%{top:100%}}

/* ---------- Intro ---------- */
#intro{padding:20vh 4vw 16vh;text-align:center}
.big-statement{
  font-family:'Cormorant Garamond',serif;font-weight:500;
  font-size:clamp(46px,7.5vw,110px);line-height:1.04;
}
.intro-body{max-width:520px;margin:5vh auto 0;font-size:17px;line-height:1.7;color:#4d4a42}

/* ---------- Why ---------- */
#why{padding:12vh 4vw 16vh}
.why-grid{
  position:relative;display:grid;grid-template-columns:1.4fr 1fr;gap:5vw;margin-top:7vh;align-items:start;
}
.why-img.big{height:82vh}
.why-img.small{height:52vh;margin-top:18vh}
.why-text{grid-column:1/-1;max-width:560px;margin-top:6vh}
.why-text p{font-size:19px;line-height:1.7;color:#3f3c35}
.mini-stats{display:flex;gap:6vw;margin-top:5vh;list-style:none}
.mini-stats strong{font-family:'Cormorant Garamond',serif;font-size:52px;font-weight:500;display:block;line-height:1}
.mini-stats span{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}

/* ---------- Residences ---------- */
#residences{background:var(--pine);color:var(--cream);padding:16vh 4vw}
.explore-grid{display:grid;grid-template-columns:1fr 1fr;gap:5vw;margin-top:8vh;align-items:start}
.building-frame{height:74vh}
.level-pills{display:flex;gap:14px;margin-top:26px}
.level-pills button,.unit-tabs button{
  font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  background:none;border:1px solid rgba(233,226,212,.35);color:var(--cream);
  padding:11px 22px;border-radius:999px;cursor:pointer;transition:all .3s;
}
.level-pills button.active,.unit-tabs button.active{background:var(--cream);color:var(--pine);border-color:var(--cream)}
.unit-tabs{display:flex;gap:12px;margin-bottom:26px;flex-wrap:wrap}
.plan-card{
  background:#e9e2d4;border-radius:160px 160px 12px 12px;
  padding:34px;min-height:420px;display:flex;align-items:center;justify-content:center;
}
#planHolder{width:100%;max-width:520px}
#planHolder svg{width:100%;height:auto}
.unit-meta{margin-top:26px}
.unit-meta h3{font-family:'Cormorant Garamond',serif;font-size:30px;font-weight:500;margin-bottom:12px}
.unit-meta ul{list-style:none;display:flex;gap:34px;flex-wrap:wrap}
.unit-meta li{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#b8bfae}
.unit-meta li strong{display:block;font-family:'Cormorant Garamond',serif;font-size:26px;color:var(--cream);letter-spacing:0;text-transform:none;font-weight:500}

/* ---------- Inside: arch cards ---------- */
#inside{padding:18vh 4vw 14vh}
.arch-row{display:flex;gap:2.4vw;margin-top:8vh;justify-content:center}
.arch-card{width:22%}
.arch-mask{
  border-radius:999px 999px 0 0;overflow:hidden;height:56vh;
}
.arch-mask img{transition:transform .8s cubic-bezier(.22,1,.36,1)}
.arch-card:hover .arch-mask img{transform:scale(1.07)}
.arch-card figcaption{
  margin-top:18px;font-family:'Cormorant Garamond',serif;font-size:24px;text-align:center;font-weight:500;
}

/* ---------- Pinned ---------- */
#pinned{position:relative;height:100vh;overflow:hidden}
.pinned-media{position:absolute;inset:0}
.pinned-shade{position:absolute;inset:0;background:rgba(14,18,13,.34)}
.pinned-copy{position:absolute;left:6vw;bottom:10vh;color:var(--cream)}
.pinned-title{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(54px,8vw,120px);line-height:1}
.pinned-copy p{margin-top:2vh;font-size:15px;letter-spacing:.14em;text-transform:uppercase}

/* ---------- Amenities ---------- */
#amenities{padding:16vh 4vw}
.amen-grid{display:grid;grid-template-columns:1fr 1fr;gap:6vw;margin-top:6vh;align-items:start}
.amen-list{list-style:none}
.amen-list li{
  font-family:'Cormorant Garamond',serif;font-size:clamp(26px,3vw,42px);font-weight:500;
  padding:2.2vh 0;border-bottom:1px solid #d8d0c0;color:#b6b0a2;
  display:flex;align-items:baseline;gap:22px;transition:color .4s;cursor:pointer;
}
.amen-list li span{font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.24em}
.amen-list li.active{color:var(--ink)}
.amen-preview{
  position:sticky;top:12vh;height:72vh;border-radius:14px;overflow:hidden;
}
#amenImg{transition:opacity .45s ease}

/* ---------- Horizontal ---------- */
#horizontal{position:relative;background:var(--cream-2);overflow:hidden}
.h-track{display:flex;height:100vh;width:400vw}
.h-slide{
  width:100vw;height:100%;flex-shrink:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5vh;
  padding:0 8vw;
}
.h-slide figure{width:min(58vw,760px);height:52vh;border-radius:12px}
.h-word{
  font-family:'Cormorant Garamond',serif;font-weight:500;
  font-size:clamp(40px,5.6vw,84px);line-height:1.05;text-align:center;
}

/* ---------- Generation ---------- */
#generation{padding:18vh 4vw}
.gen-grid{display:grid;grid-template-columns:1.1fr .9fr 1fr;gap:3.4vw;margin-top:8vh;align-items:center}
.gen-img{height:64vh}
.reveal-img{clip-path:inset(12% 8% 12% 8%)}
.gen-text p{font-size:19px;line-height:1.75;color:#3f3c35}

/* ---------- Considered ---------- */
#considered{padding:6vh 4vw 18vh}
.cons-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:6vw;align-items:center}
.spec-list{list-style:none;margin-top:6vh}
.spec-list li{
  display:flex;align-items:baseline;gap:26px;padding:3vh 0;border-bottom:1px solid #d8d0c0;
}
.spec-list strong{font-family:'Cormorant Garamond',serif;font-size:40px;font-weight:500;min-width:180px}
.spec-list span{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.cons-img{height:70vh}

/* ---------- Stats ---------- */
#stats{background:var(--pine);color:var(--cream);padding:16vh 4vw;text-align:center}
.stats-title{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(40px,5.6vw,84px)}
.stat-row{list-style:none;display:flex;justify-content:center;gap:7vw;margin-top:9vh;flex-wrap:wrap}
.stat-row strong{
  font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(64px,8vw,120px);
  display:block;line-height:1;font-variant-numeric:tabular-nums;
}
.stat-row span{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:#9aa78f;display:block;margin-top:14px}

/* ---------- Location ---------- */
#location{position:relative;min-height:100vh;overflow:hidden;display:flex;align-items:center}
.loc-media{position:absolute;inset:-10% 0;height:120%}
.loc-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,17,12,.82),rgba(13,17,12,.35))}
.loc-copy{position:relative;padding:14vh 6vw;color:var(--cream);max-width:640px}
.loc-list{list-style:none;margin-top:6vh}
.loc-list li{
  font-family:'Cormorant Garamond',serif;font-size:clamp(22px,2.4vw,32px);font-weight:500;
  padding:2vh 0;border-bottom:1px solid rgba(233,226,212,.22);
}

/* ---------- Contact ---------- */
#contact{padding:22vh 4vw;text-align:center}
.contact-title{
  font-family:'Cormorant Garamond',serif;font-weight:500;
  font-size:clamp(48px,7vw,104px);line-height:1.04;margin-bottom:7vh;
}

/* ---------- Footer ---------- */
footer{background:var(--pine);padding:10vh 4vw 5vh;color:#8d957f}
.footer-word{
  font-family:'Italiana',serif;font-size:clamp(80px,17.5vw,300px);line-height:.9;
  text-align:center;letter-spacing:.04em;
  background:url('assets/img/footer-clip.jpg') center/cover;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  padding-bottom:2vh;
}
.footer-row{
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  border-top:1px solid rgba(233,226,212,.15);margin-top:6vh;padding-top:3vh;
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;
}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  #nav .links{display:none}
  .why-grid,.explore-grid,.amen-grid,.cons-grid{grid-template-columns:1fr}
  .gen-grid{grid-template-columns:1fr}
  .why-img.big,.why-img.small{height:48vh;margin-top:0}
  .building-frame{height:44vh}
  .amen-preview{position:relative;top:0;height:44vh;order:-1;margin-bottom:4vh}
  .arch-row{flex-wrap:wrap}
  .arch-card{width:46%}
  .arch-mask{height:34vh}
  .h-track{width:100%;flex-direction:column;height:auto}
  .h-slide{width:100%;height:auto;padding:10vh 6vw}
  .h-slide figure{width:100%;height:36vh}
  .spec-list strong{min-width:120px;font-size:30px}
  .stat-row{gap:10vw}
}
