@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:wght@400;500&display=swap');

:root{
  --ink:#151312;
  --deep:#1b1917;
  --ivory:#f6f3ee;
  --paper:#fbfaf7;
  --stone:#716b64;
  --copper:#b46a35;
  --line:rgba(21,19,18,.14);
  --max:1280px;
}

*{
  box-sizing:border-box;
  margin:0;
  padding:0;
}

html{
  scroll-behavior:smooth;
}

body{
  font-family:'DM Sans',sans-serif;
  background:var(--ivory);
  color:var(--ink);
  line-height:1.65;
  overflow-x:hidden;
}

img{
  display:block;
  max-width:100%;
}

a{
  color:inherit;
  text-decoration:none;
}

.container{
  width:min(var(--max),calc(100% - 48px));
  margin:auto;
}

h1,
h2,
h3,
.serif{
  font-family:'Playfair Display',serif;
  font-weight:400;
  letter-spacing:-.035em;
}

.site-header{
  position:absolute;
  z-index:30;
  top:0;
  left:0;
  width:100%;
  padding:28px 0 110px;
  color:#fff;
  background:linear-gradient(
    180deg,
    rgba(8,7,6,.86) 0%,
    rgba(8,7,6,.6) 42%,
    rgba(8,7,6,.28) 72%,
    rgba(8,7,6,0) 100%
  );
}

.header-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
}

.brand{
  font-size:.76rem;
  font-weight:600;
  letter-spacing:.15em;
  text-transform:uppercase;
}

.nav{
  display:flex;
  gap:26px;
}

.nav a{
  font-size:.63rem;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(255,255,255,.72);
}

.nav a:hover{
  color:#fff;
}

.hero,
.visual-section,
.project-hero{
  position:relative;
  z-index:0;
  color:#fff;
  overflow:hidden;
}

/* Parallax photo + static gradient kept as two separate layers, so
   the overlay never drifts out of registration with the photo (and
   never exposes a bare edge) as the photo pans on scroll. */
.hero::before,
.visual-section::before,
.project-hero::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-18%;
  bottom:-18%;
  z-index:0;
  background-repeat:no-repeat;
  background-position:center;
  background-size:cover;
  transform:translateY(var(--px,0px));
  will-change:transform;
}

.hero::after,
.visual-section::after,
.project-hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
}

.hero{
  min-height:100vh;
  min-height:100svh;
  display:flex;
  align-items:center;
}

.hero::before{
  background-image:url('../images/2.jpg');
}

.hero::after{
  background:linear-gradient(
    110deg,
    rgba(10,10,10,.82),
    rgba(10,10,10,.62) 56%,
    rgba(10,10,10,.42)
  );
}

.hero-inner{
  position:relative;
  z-index:2;
  max-width:930px;
  text-align:center;
  margin:auto;
  padding-top:80px;
}

.eyebrow{
  font-size:.66rem;
  font-weight:600;
  letter-spacing:.19em;
  text-transform:uppercase;
  color:#d58c58;
  margin-bottom:22px;
}

.hero h1{
  font-size:clamp(4.2rem,8vw,8.4rem);
  line-height:.93;
}
.hero p{
  max-width:660px;
  margin:30px auto 0;
  color:rgba(255,255,255,.72);
}

.actions{
  display:flex;
  justify-content:center;
  gap:30px;
  flex-wrap:wrap;
  margin-top:36px;
}

.text-link{
  font-size:.66rem;
  font-weight:600;
  letter-spacing:.13em;
  text-transform:uppercase;
  padding-bottom:5px;
  border-bottom:1px solid currentColor;
}

.section{
  padding:150px 0;
  position:relative;
  background:var(--ivory);
}

.section-cover{
  border-radius:28px 28px 0 0;
  margin-top:-32px;
  box-shadow:0 -20px 50px rgba(21,19,18,.1);
  position:relative;
}

.two-col{
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:92px;
}

.section-label{
  font-size:.65rem;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--copper);
}

.section-title{
  font-size:clamp(3rem,5.7vw,6rem);
  line-height:1.02;
}

.lead{
  color:#625d57;
  font-size:1.05rem;
  margin-top:28px;
  max-width:760px;
}

/* About CLM */

#about{
  background:var(--ivory);
}

.about-editorial{
  display:grid;
  grid-template-columns:1.04fr .96fr;
  min-height:680px;
  border-radius:26px;
  overflow:hidden;
  background:var(--paper);
  box-shadow:0 24px 70px rgba(21,19,18,.08);
}

.about-editorial .photo{
  min-height:680px;
  background:
    linear-gradient(
      180deg,
      rgba(21,19,18,.02),
      rgba(21,19,18,.15)
    ),
    url('../images/1.jpg') center top / cover no-repeat;
}

.about-editorial .content{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:78px;
}

.about-editorial .content .section-title{
  font-size:clamp(3rem,5vw,5.4rem);
}

.about-editorial .content p{
  color:#625d57;
  font-size:1.02rem;
  margin-top:24px;
}

/* Main visual sections */

.visual-section{
  min-height:760px;
  display:flex;
  align-items:center;
}

.visual-section::before{
  background-image:url('../images/3.jpg');
}

.visual-section::after{
  background:linear-gradient(
    180deg,
    rgba(10,10,10,.42),
    rgba(10,10,10,.76)
  );
}

.visual-content{
  position:relative;
  z-index:2;
  text-align:center;
  max-width:800px;
  margin:auto;
}

.visual-content h2{
  font-size:clamp(4rem,7vw,7rem);
  line-height:.95;
}

.visual-content p{
  max-width:620px;
  margin:24px auto;
  color:rgba(255,255,255,.74);
}

.real-estate-preview::before{
  background-image:url('../images/halley-duplex.jpg');
}

.real-estate-preview::after{
  background:
    radial-gradient(
      ellipse at 50% 46%,
      rgba(9,8,7,.5),
      rgba(9,8,7,0) 60%
    ),
    linear-gradient(
      180deg,
      rgba(9,8,7,.62) 0%,
      rgba(9,8,7,.4) 38%,
      rgba(9,8,7,.62) 65%,
      rgba(9,8,7,.9) 100%
    );
}

/* Project page */

.project-hero{
  min-height:100vh;
  min-height:100svh;
  display:flex;
  align-items:flex-end;
}

.project-hero::before{
  background-image:url('../images/halley-duplex.jpg');
}

.project-hero::after{
  background:
    radial-gradient(
      ellipse at 50% 40%,
      rgba(9,8,7,.35),
      rgba(9,8,7,0) 62%
    ),
    linear-gradient(
      180deg,
      rgba(9,8,7,.55) 0%,
      rgba(9,8,7,.32) 32%,
      rgba(9,8,7,.5) 58%,
      rgba(9,8,7,.92) 100%
    );
}

.project-copy{
  position:relative;
  z-index:2;
  padding-bottom:78px;
  text-align:center;
  max-width:960px;
  margin:auto;
}

.project-copy h1{
  font-size:clamp(4rem,8vw,8rem);
  line-height:.95;
}
.project-copy p{
  max-width:700px;
  margin:24px auto;
  color:rgba(255,255,255,.75);
}

.stats{
  background:var(--deep);
  color:#fff;
  padding:34px 0 42px;
  position:relative;
  z-index:4;
}

.stats-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
}

.stat{
  text-align:center;
  padding:18px 20px;
  border-right:1px solid rgba(255,255,255,.12);
}

.stat:last-child{
  border-right:0;
}

.stat strong{
  font-family:'Playfair Display',serif;
  font-size:1.65rem;
  font-weight:400;
}

.stat span{
  display:block;
  color:rgba(255,255,255,.45);
  font-size:.58rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-top:8px;
}

/* Homes */

.homes-editorial{
  display:grid;
  grid-template-columns:1.04fr .96fr;
  min-height:680px;
  margin-top:70px;
  border-radius:26px;
  overflow:hidden;
  background:var(--paper);
  box-shadow:0 24px 70px rgba(21,19,18,.08);
}

.homes-editorial .photo{
  min-height:680px;
  background:
    linear-gradient(
      180deg,
      rgba(21,19,18,.02),
      rgba(21,19,18,.15)
    ),
    url('https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=2200&q=88')
    center/cover no-repeat;
}

.homes-editorial .content{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:78px;
}

.homes-editorial .content .section-title{
  font-size:clamp(3rem,5vw,5.4rem);
}

.homes-editorial .content p{
  color:#625d57;
  font-size:1.02rem;
  margin-top:24px;
}

/* Feature points */

.points{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  margin-top:60px;
}

.point{
  background:var(--ivory);
  padding:32px;
}

.point b{
  color:var(--copper);
  font-size:.68rem;
  letter-spacing:.1em;
}

.point h3{
  font-family:'DM Sans',sans-serif;
  font-size:1rem;
  font-weight:600;
  margin-top:18px;
}

.point p{
  color:var(--stone);
  font-size:.9rem;
  margin-top:10px;
}

/* Gallery */

.gallery{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:20px;
  margin-top:64px;
}

.gallery-main{
  min-height:660px;
  background:url('../images/halley-duplex.jpg') center/cover no-repeat;
  border-radius:22px;
}

.gallery-stack{
  display:grid;
  gap:20px;
}

.plan{
  min-height:320px;
  background:#fff center/contain no-repeat;
  border-radius:22px;
}

.plan.main{
  background-image:url('../images/halley-main-level.png');
}

.plan.second{
  background-image:url('../images/halley-second-floor.png');
}

/* Image / Copy */

.image-copy{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  min-height:720px;
  background:var(--deep);
}

.image-copy .photo{
  position:relative;
  z-index:0;
  overflow:hidden;
}

.image-copy .photo::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-18%;
  bottom:-18%;
  z-index:0;
  background:
    url('https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?auto=format&fit=crop&w=2400&q=88')
    center/cover no-repeat;
  transform:translateY(var(--px,0px));
  will-change:transform;
}

.image-copy .photo::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(
    180deg,
    rgba(21,19,18,.02),
    rgba(21,19,18,.18)
  );
}

.image-copy .copy{
  background:var(--deep);
  color:#fff;
  padding:84px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.image-copy .copy p{
  color:rgba(255,255,255,.65);
  margin-top:22px;
}

/* Lifestyle */

.life-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:30px;
  margin-top:54px;
}

.life-item{
  padding-top:22px;
  border-top:1px solid var(--line);
}

.life-item h3{
  font-family:'DM Sans',sans-serif;
  font-size:1rem;
  font-weight:600;
}

.life-item p{
  color:var(--stone);
  font-size:.9rem;
  margin-top:9px;
}

/* Contact */

.map-grid{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:64px;
  align-items:stretch;
}

.map-grid img{
  border-radius:24px;
  background:#eee;
}

/* Getting Around — location slideshow */
.location-slides{
  position:relative;
  height:100%;
  min-height:420px;
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 24px 60px rgba(21,19,18,.16);
}

.lslide{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity 1.3s cubic-bezier(.4,0,.2,1);
  background-size:cover;
  background-position:center;
  background-color:#20242a;
}

.lslide.active{
  opacity:1;
}

.lslide::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(9,8,7,0) 45%,rgba(9,8,7,.75) 100%);
}

/* Salida, Colorado — mountain valley */
.lslide[data-tone="0"]{background-image:url('https://images.unsplash.com/photo-1606878675837-25aaab8b4ebd?auto=format&fit=crop&w=1600&q=80');}
/* Monarch Mountain Ski Area */
.lslide[data-tone="1"]{background-image:url('https://images.unsplash.com/photo-1709578681572-b7682400a5da?auto=format&fit=crop&w=1600&q=80');}
/* Colorado Springs — Garden of the Gods */
.lslide[data-tone="2"]{background-image:url('https://images.unsplash.com/photo-1597413134301-80646fc15e9d?auto=format&fit=crop&w=1600&q=80');}
/* Denver skyline */
.lslide[data-tone="3"]{background-image:url('https://images.unsplash.com/photo-1677051949386-d999c9076424?auto=format&fit=crop&w=1600&q=80');}
/* Breckenridge and Summit County */
.lslide[data-tone="4"]{background-image:url('https://images.unsplash.com/photo-1506232919027-aff0e61e2f68?auto=format&fit=crop&w=1600&q=80');}
/* Crested Butte */
.lslide[data-tone="5"]{background-image:url('https://images.unsplash.com/photo-1602557090893-75f76bb2b613?auto=format&fit=crop&w=1600&q=80');}
/* Browns Canyon National Monument — Arkansas River */
.lslide[data-tone="6"]{background-image:url('https://images.unsplash.com/photo-1694108496296-9aec14f35306?auto=format&fit=crop&w=1600&q=80');}

.lslide-caption{
  position:absolute;
  left:26px;
  right:26px;
  bottom:24px;
  z-index:1;
  color:#fff;
}

.lslide-caption strong{
  display:block;
  font-family:'Playfair Display',serif;
  font-weight:500;
  font-size:1.4rem;
  letter-spacing:-.01em;
}

.lslide-caption span{
  display:block;
  margin-top:5px;
  font-size:.68rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(255,255,255,.68);
}

.lslide-dots{
  position:absolute;
  top:22px;
  right:22px;
  z-index:2;
  display:flex;
  gap:8px;
}

.ldot{
  width:7px;
  height:7px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.6);
  background:rgba(255,255,255,.15);
  padding:0;
  cursor:pointer;
  transition:background .3s ease,transform .3s ease;
}

.ldot.active{
  background:#fff;
  transform:scale(1.15);
}

.distance-list{
  border-top:1px solid var(--line);
  margin-top:34px;
}

.distance{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:20px;
  padding:13px 0;
  line-height:1.2;
  border-bottom:1px solid var(--line);
  cursor:default;
  transition:padding-left .3s ease;
}

.distance:hover{
  padding-left:6px;
}

.distance:hover span:first-child{
  color:var(--copper);
}

.distance span:last-child{
  color:var(--copper);
  font-weight:600;
}

.inquiry{
  background:var(--deep);
  color:#fff;
}

.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.field{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.field.full{
  grid-column:1/-1;
}

.field label{
  font-size:.6rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,.5);
}

.field input,
.field textarea{
  background:transparent;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.3);
  padding:12px 0;
  color:#fff;
  font:inherit;
}

.field textarea{
  min-height:110px;
}

.button{
  background:var(--copper);
  color:#fff;
  border:0;
  padding:15px 22px;
  font-size:.65rem;
  font-weight:600;
  letter-spacing:.13em;
  text-transform:uppercase;
  cursor:pointer;
  transition:opacity .25s ease;
}

.button:disabled{
  opacity:.6;
  cursor:default;
}

.hp-field{
  position:absolute;
  left:-9999px;
  top:-9999px;
  opacity:0;
  pointer-events:none;
}

.form-status{
  margin-top:16px;
  font-size:.85rem;
  line-height:1.5;
  min-height:1.3em;
}

.form-status.success{
  color:#e0af82;
}

.form-status.error{
  color:#e2766a;
}

/* Animations */

.reveal{
  opacity:0;
  transform:translateY(26px) scale(.985);
  transition:
    opacity 1.1s cubic-bezier(.16,.7,.3,1),
    transform 1.1s cubic-bezier(.16,.7,.3,1);
}

.reveal.visible{
  opacity:1;
  transform:none;
}

.cover-up{
  transform:translateY(50px) scale(.99);
  opacity:0;
  transition:
    transform 1.15s cubic-bezier(.16,.7,.3,1),
    opacity 1s cubic-bezier(.16,.7,.3,1);
}

.cover-up.visible{
  transform:none;
  opacity:1;
}

@media(prefers-reduced-motion:reduce){
  .reveal,.cover-up{ transition:opacity .4s ease; transform:none !important; }
}

/* Responsive */

@media(max-width:950px){

.two-col,
.image-copy,
.map-grid{
  grid-template-columns:1fr;
}

.stats-grid{
  grid-template-columns:repeat(2,1fr);
}

.points{
  grid-template-columns:repeat(2,1fr);
}

.life-grid{
  grid-template-columns:repeat(2,1fr);
}

.gallery{
  grid-template-columns:1fr;
}

.image-copy .copy{
  padding:58px 30px;
}

.location-slides{
  height:auto;
  aspect-ratio:4/3.1;
  min-height:0;
}

}

@media(max-width:680px){

.container{
  width:calc(100% - 30px);
}

.nav a:not(:last-child){
  display:none;
}

.section{
  padding:96px 0;
}

.stats-grid,
.points,
.life-grid,
.form-grid{
  grid-template-columns:1fr;
}

.field.full{
  grid-column:auto;
}

.hero h1,
.project-copy h1{
  font-size:3.7rem;
}

}
/* Additional sections */

.life-section{
  background:var(--paper);
}

.getting-section{
  background:
    radial-gradient(
      circle at 12% 10%,
      rgba(180,106,53,.16),
      transparent 28%
    ),
    linear-gradient(145deg,#211e1b,#121110);
  color:#fff;
}

.getting-section .section-label{
  color:#d58c58;
}

.getting-section .section-title{
  max-width:820px;
}

.getting-section .lead{
  color:rgba(255,255,255,.66);
}

.site-footer{
  background:#11100f;
  color:#fff;
  padding:100px 0 34px;
  text-align:center;
}

.footer-top{
  display:flex;
  flex-direction:column;
  align-items:center;
}

/* brand — pure typography, no mark */
.footer-brand{
  max-width:520px;
}

.footer-logo{
  font-family:'DM Sans',sans-serif;
  font-size:.82rem;
  font-weight:600;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:#fff;
}

.footer-tagline{
  margin-top:18px;
  font-family:'Playfair Display',serif;
  font-weight:400;
  font-size:1.7rem;
  letter-spacing:-.02em;
  color:rgba(255,255,255,.88);
}

.footer-desc{
  margin:18px auto 0;
  color:rgba(255,255,255,.48);
  font-size:.92rem;
  line-height:1.75;
  max-width:380px;
}

.footer-nav-row{
  display:flex;
  justify-content:center;
  gap:36px;
  margin-top:46px;
}

.footer-nav-row a{
  color:rgba(255,255,255,.65);
  font-size:.88rem;
  transition:color .25s ease;
}

.footer-nav-row a:hover{
  color:#fff;
}

.footer-connect-row{
  display:flex;
  justify-content:center;
  gap:34px;
  margin-top:24px;
}

.footer-connect-row a{
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:rgba(255,255,255,.62);
  font-size:.88rem;
  transition:color .25s ease;
}

.footer-connect-row a:hover{
  color:#fff;
}

.footer-connect-row a i,
.footer-connect-row a svg{
  width:15px;
  height:15px;
  color:#d58c58;
  stroke-width:1.6;
}

.footer-bottom{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  margin-top:64px;
  padding-top:26px;
  border-top:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.4);
  font-size:.72rem;
  letter-spacing:.03em;
}

.footer-credit{
  display:flex;
  justify-content:center;
  gap:22px;
  color:rgba(255,255,255,.4);
}

.footer-credit span{
  position:relative;
}

.footer-credit span+span::before{
  content:"";
  position:absolute;
  left:-12px;
  top:50%;
  width:3px;
  height:3px;
  border-radius:50%;
  background:rgba(255,255,255,.3);
  transform:translateY(-50%);
}

@media(max-width:950px){

  .homes-editorial,
  .about-editorial{
    grid-template-columns:1fr;
  }

  .homes-editorial .photo,
  .about-editorial .photo{
    min-height:480px;
  }

  .homes-editorial .content,
  .about-editorial .content{
    padding:58px 34px;
  }

  .footer-nav-row,
  .footer-connect-row{
    flex-wrap:wrap;
    gap:16px 28px;
  }

}

@media(max-width:680px){

  .about-editorial,
  .homes-editorial{
    border-radius:18px;
  }

  .about-editorial .photo,
  .homes-editorial .photo{
    min-height:390px;
  }

  .about-editorial .content,
  .homes-editorial .content{
    padding:44px 24px;
  }

  .about-editorial .content .section-title,
  .homes-editorial .content .section-title{
    font-size:3rem;
  }

  .footer-nav-row,
  .footer-connect-row{
    flex-direction:column;
    align-items:center;
    gap:16px;
  }

  .footer-credit{
    flex-direction:column;
    gap:6px;
  }

  .footer-credit span+span::before{
    display:none;
  }

  .distance{
    flex-direction:column;
    align-items:flex-start;
    gap:5px;
  }

  .distance span:last-child{
    font-size:.85rem;
  }

}