:root{
  --ink:#2b2722;
  --soft:#6b6258;
  --line:#ddd5c8;
  --paper:#f6f1e9;
  --cream:#efe7da;
  --olive:#7c7a52;
  --terra:#a9683f;
  --shadow:0 18px 50px -22px rgba(43,39,34,.45);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Jost',sans-serif;color:var(--ink);background:var(--paper);font-weight:300;line-height:1.7;-webkit-font-smoothing:antialiased}
h1,h2,h3,.serif{font-family:'Cormorant Garamond',serif;font-weight:500;letter-spacing:.01em}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
.eyebrow{font-size:12px;letter-spacing:.42em;text-transform:uppercase;color:var(--terra);font-weight:400}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding:20px 32px;transition:.4s;color:#fff;text-shadow:0 1px 14px rgba(0,0,0,.35)}
.nav.solid{background:rgba(246,241,233,.92);backdrop-filter:blur(10px);
  color:var(--ink);text-shadow:none;border-bottom:1px solid var(--line);padding:14px 32px}
.brand{font-family:'Cormorant Garamond',serif;font-size:22px;letter-spacing:.18em;text-transform:uppercase}
.nav-links{display:flex;gap:30px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;align-items:center}
.nav-links a{opacity:.85;transition:.2s}.nav-links a:hover,.nav-links a.active{opacity:1}
.nav-links a.active{border-bottom:1px solid currentColor;padding-bottom:2px}
@media(max-width:820px){.nav-links{gap:18px;font-size:11px}}
@media(max-width:600px){.nav-links a:not(.cta-link){display:none}}

/* HERO (home) */
.hero{position:relative;height:100vh;min-height:620px;display:flex;align-items:flex-end;
  background:url('assets/hero-aerial.jpg') center/cover no-repeat;color:#fff;overflow:hidden}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(20,17,13,.32) 0%,rgba(20,17,13,0) 32%,rgba(20,17,13,.62) 100%)}
.hero-inner{position:relative;z-index:2;padding-bottom:9vh;width:100%}
.hero h1{font-size:clamp(44px,8vw,104px);line-height:.98;font-weight:500;text-shadow:0 2px 30px rgba(0,0,0,.3)}
.hero .loc{display:flex;align-items:center;gap:14px;margin-top:22px;font-size:13px;letter-spacing:.28em;text-transform:uppercase}
.hero .loc span{height:1px;width:46px;background:rgba(255,255,255,.7)}
.scroll{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:2;font-size:10px;
  letter-spacing:.3em;text-transform:uppercase;color:#fff;opacity:.8;writing-mode:vertical-rl}

/* PAGE HERO (inner pages) */
.page-hero{position:relative;height:54vh;min-height:400px;display:flex;align-items:flex-end;color:#fff;overflow:hidden;
  background-size:cover;background-position:center}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,17,13,.34),rgba(20,17,13,0) 45%,rgba(20,17,13,.6))}
.page-hero-inner{position:relative;z-index:2;padding-bottom:7vh;width:100%}
.page-hero h1{font-size:clamp(40px,6.5vw,80px);line-height:1;text-shadow:0 2px 30px rgba(0,0,0,.3)}
.page-hero .loc{margin-top:16px;font-size:12px;letter-spacing:.28em;text-transform:uppercase;opacity:.92}

/* INTRO */
.intro{padding:120px 0 90px;text-align:center}
.intro .lead{font-family:'Cormorant Garamond',serif;font-size:clamp(26px,3.4vw,40px);line-height:1.34;color:var(--ink);max-width:880px;margin:26px auto 0;font-weight:400}
.intro .lead em{font-style:italic;color:var(--terra)}

/* FACTS */
.facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts .grid{display:grid;grid-template-columns:repeat(4,1fr)}
.facts .cell{padding:40px 26px;text-align:center;border-right:1px solid var(--line)}
.facts .cell:last-child{border-right:none}
.facts .k{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--soft)}
.facts .v{font-family:'Cormorant Garamond',serif;font-size:30px;margin-top:8px}
@media(max-width:760px){.facts .grid{grid-template-columns:repeat(2,1fr)}
  .facts .cell:nth-child(2){border-right:none}.facts .cell:nth-child(1),.facts .cell:nth-child(2){border-bottom:1px solid var(--line)}}

/* SECTION */
.sec{padding:104px 0}
.sec.tight{padding:80px 0}
.sec-head{max-width:720px}
.sec-head.center{margin:0 auto;text-align:center}
.sec-head h2{font-size:clamp(34px,5vw,58px);line-height:1.05;margin-top:14px}
.sec-head p{margin-top:20px;color:var(--soft);font-size:17px}

/* GALLERY GRID */
.gal{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:240px;gap:16px;margin-top:54px}
.gal figure{position:relative;overflow:hidden;border-radius:2px;background:var(--cream)}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.gal figure:hover img{transform:scale(1.06)}
.gcap{position:absolute;top:0;left:0;z-index:2;color:#fff;padding:18px 22px 26px;
  background:linear-gradient(135deg,rgba(18,15,11,.52) 0%,rgba(18,15,11,.18) 55%,rgba(18,15,11,0) 100%);
  text-shadow:0 1px 10px rgba(0,0,0,.4);max-width:78%}
.gcap .l{font-size:10px;letter-spacing:.26em;text-transform:uppercase;opacity:.9}
.gcap .v{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:21px;line-height:1.12;margin-top:4px}
.gcap .sub{font-size:12.5px;letter-spacing:.03em;margin-top:5px;opacity:.95}
.gcap-lg{padding:24px 28px 34px}.gcap-lg .v{font-size:32px}.gcap-lg .sub{font-size:14px}
@media(max-width:760px){.gcap .v{font-size:17px}.gcap-lg .v{font-size:20px}.gcap{max-width:90%}}
.g-a{grid-column:span 4;grid-row:span 2}
.g-b{grid-column:span 2}.g-c{grid-column:span 2}
.g-d{grid-column:span 3}.g-e{grid-column:span 3}
@media(max-width:760px){.gal{grid-template-columns:1fr 1fr;grid-auto-rows:180px}
  .g-a{grid-column:span 2;grid-row:span 2}.g-b,.g-c,.g-d,.g-e{grid-column:span 1}}

/* ALTERNATING FEATURE BARS (home) */
.bar{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;min-height:540px}
.bar .media{position:relative;overflow:hidden;background:var(--cream)}
.bar .media img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);
  animation:kenburns 20s ease-in-out infinite alternate}
.bar .media .tag{position:absolute;left:0;bottom:0;z-index:2;background:rgba(20,17,13,.6);color:#f0e8da;
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;padding:11px 18px}
.bar .text{display:flex;flex-direction:column;justify-content:center;padding:72px clamp(28px,6vw,92px)}
.bar .text h2{font-size:clamp(30px,4.2vw,50px);line-height:1.06;margin:14px 0 12px}
.bar .text p{color:var(--soft);font-size:16.5px}
.bar .text p em{font-style:italic;color:var(--terra)}
.bar .mini{margin-top:24px;display:flex;flex-wrap:wrap;gap:10px}
.bar .mini span{font-size:12px;letter-spacing:.04em;color:var(--ink);border:1px solid var(--line);padding:7px 14px;border-radius:40px}
.bar.alt{background:var(--cream)}
.bar.rev .media{order:2}
@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.13)}}
@media(prefers-reduced-motion:reduce){.bar .media img{animation:none}}
@media(max-width:860px){.bar{grid-template-columns:1fr}.bar .media{min-height:300px;order:-1!important}
  .bar .text{padding:48px 28px}}

/* DISCOVER CARDS (home) */
.disc{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:56px}
.disc a{position:relative;display:block;aspect-ratio:3/4;overflow:hidden;border-radius:2px;color:#fff}
.disc img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.disc a:hover img{transform:scale(1.07)}
.disc .ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.04) 30%,rgba(18,15,11,.72));
  display:flex;flex-direction:column;justify-content:flex-end;padding:30px}
.disc .ov .l{font-size:11px;letter-spacing:.26em;text-transform:uppercase;opacity:.85}
.disc .ov h3{font-size:28px;margin-top:6px;line-height:1.05}
.disc .ov .go{margin-top:14px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.6);display:inline-block;padding-bottom:3px}
@media(max-width:760px){.disc{grid-template-columns:1fr}.disc a{aspect-ratio:16/10}}

/* FILM */
.film{position:relative;height:90vh;min-height:560px;overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff}
.film-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.film::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(20,17,13,.45),rgba(20,17,13,.25) 40%,rgba(20,17,13,.55))}
.film-overlay{position:relative;z-index:2;padding:0 24px}
.film-overlay h2{font-size:clamp(38px,6vw,76px);line-height:1.02;margin:14px 0 12px;text-shadow:0 2px 30px rgba(0,0,0,.35)}
.film-overlay p{color:rgba(255,255,255,.88);font-size:17px;max-width:520px;margin:0 auto}
.sound-btn{margin-top:30px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.6);color:#fff;
  padding:13px 30px;font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.24em;text-transform:uppercase;cursor:pointer;transition:.3s;backdrop-filter:blur(4px)}
.sound-btn:hover{background:#fff;color:var(--ink)}

/* SPLAT / 3D */
.splat{background:var(--ink);color:var(--paper)}
.splat .eyebrow{color:#d8b48f}.splat h2{color:var(--paper)}.splat p{color:#c6bbab}
.viewer-frame{position:relative;margin-top:48px;border-radius:4px;overflow:hidden;box-shadow:var(--shadow);
  aspect-ratio:16/9;background:#000;border:1px solid rgba(255,255,255,.08)}
.viewer-frame iframe{width:100%;height:100%;border:0;display:block}
.viewer-badge{position:absolute;top:0;left:0;z-index:5;pointer-events:none;display:flex;align-items:center;gap:11px;
  padding:15px 84px 19px 22px;background:linear-gradient(100deg,#0c0a08 0%,#0c0a08 60%,rgba(12,10,8,.85) 80%,rgba(12,10,8,0) 100%)}
.viewer-badge i{width:17px;height:17px;border:1.6px solid #fff;transform:rotate(45deg);display:block;opacity:.92}
.viewer-badge b{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:19px;letter-spacing:.17em;text-transform:uppercase;color:#fff;line-height:1}
.splat .hint{margin-top:18px;font-size:13px;letter-spacing:.04em;color:#9a8f80;text-align:center}
/* click-to-load cover */
.viewer-cover{position:absolute;inset:0;z-index:6;background-size:cover;background-position:center;
  display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;text-align:center}
.viewer-cover::after{content:"";position:absolute;inset:0;background:rgba(16,13,9,.5);transition:.3s}
.viewer-cover:hover::after{background:rgba(16,13,9,.4)}
.play3d{position:relative;z-index:2;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.85);color:#fff;
  padding:18px 46px;font-family:'Jost',sans-serif;font-size:12px;letter-spacing:.24em;text-transform:uppercase;cursor:pointer;
  backdrop-filter:blur(4px);transition:.3s;display:inline-flex;align-items:center;gap:12px}
.play3d:hover{background:#fff;color:var(--ink)}
.play3d .tri{font-size:13px}
.cover-note{position:relative;z-index:2;color:rgba(255,255,255,.8);font-size:12px;letter-spacing:.06em;margin-top:18px}
.viewer-loading{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;color:#cbb89f;
  font-size:12px;letter-spacing:.24em;text-transform:uppercase}

/* VISION */
.vision{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch}
.vision .pic{position:relative;background:url('assets/casale-02.jpg') center/cover;min-height:560px}
.vision .pic .cap{position:absolute;left:0;bottom:0;background:rgba(20,17,13,.62);color:#f0e8da;font-size:11px;letter-spacing:.22em;text-transform:uppercase;padding:11px 18px}
.vision .body{padding:90px clamp(28px,6vw,90px);display:flex;flex-direction:column;justify-content:center}
.vision h2{font-size:clamp(32px,4.4vw,52px);line-height:1.06;margin:14px 0 10px}
.vision .desc{color:var(--soft);font-size:16px}
.vision .desc em{font-style:italic;color:var(--terra)}
.spec{margin-top:34px;border-top:1px solid var(--line)}
.spec div{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--line);font-size:15px}
.spec .label{color:var(--soft);letter-spacing:.04em}
.spec .val{font-family:'Cormorant Garamond',serif;font-size:20px;text-align:right}
@media(max-width:860px){.vision{grid-template-columns:1fr}.vision .pic{min-height:340px;order:-1}}

/* LOCATION */
.loc-sec{background:var(--cream)}
.loc-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:54px;align-items:center;margin-top:50px}
.loc-grid ul{list-style:none;margin-top:24px}
.loc-grid li{padding:13px 0;border-bottom:1px solid var(--line);display:flex;gap:14px;align-items:baseline;font-size:15px;color:var(--soft)}
.loc-grid li b{font-family:'Cormorant Garamond',serif;font-weight:600;color:var(--ink);font-size:18px;min-width:96px}
.map{border-radius:4px;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/3}
.map.tall{aspect-ratio:16/10}
.map iframe{width:100%;height:100%;border:0;filter:grayscale(.25) sepia(.08)}
.pin{display:inline-flex;margin-top:26px;align-items:center;gap:10px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--terra);border-bottom:1px solid var(--terra);padding-bottom:3px}
@media(max-width:860px){.loc-grid{grid-template-columns:1fr;gap:34px}}

/* CTA */
.cta{position:relative;background:url('assets/r-poolannex.jpg') center/cover fixed;color:#fff;text-align:center;padding:150px 0}
.cta::after{content:"";position:absolute;inset:0;background:rgba(24,20,15,.58)}
.cta-inner{position:relative;z-index:2}
.cta h2{font-size:clamp(36px,6vw,72px);line-height:1.02;margin:18px 0 14px}
.cta p{max-width:560px;margin:0 auto;color:rgba(255,255,255,.85);font-size:17px}
.btn{display:inline-block;margin-top:38px;padding:17px 46px;border:1px solid rgba(255,255,255,.75);font-size:12px;letter-spacing:.28em;text-transform:uppercase;transition:.3s;color:#fff;cursor:pointer}
.btn:hover{background:#fff;color:var(--ink)}
.btn.dark{border-color:var(--ink);color:var(--ink)}.btn.dark:hover{background:var(--ink);color:#fff}

/* FOOTER */
footer{background:var(--ink);color:#bcae9c;padding:70px 0 36px}
.foot-top{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:30px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.1)}
.foot-brand{font-family:'Cormorant Garamond',serif;font-size:30px;letter-spacing:.16em;text-transform:uppercase;color:#f6f1e9}
.foot-brand small{display:block;font-size:11px;letter-spacing:.4em;color:#8d8170;margin-top:4px}
.foot-col h4{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#8d8170;margin-bottom:12px;font-weight:400}
.foot-col a,.foot-col p{display:block;color:#d8cdbc;font-size:15px;margin:4px 0}
.foot-cols{display:flex;gap:70px;flex-wrap:wrap}
.foot-nav a{display:inline-block;margin-right:0}
.copy{margin-top:30px;font-size:12px;letter-spacing:.08em;color:#6f6555;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

.reveal{opacity:0;transform:translateY(26px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* LIGHTBOX */
.gal figure img{cursor:zoom-in}
.lb{position:fixed;inset:0;z-index:200;background:rgba(12,10,8,.95);display:none;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}
.lb.open{display:flex;opacity:1}
.lb img{max-width:92vw;max-height:88vh;object-fit:contain;cursor:zoom-in;transition:transform .25s ease;user-select:none;-webkit-user-drag:none;box-shadow:0 24px 70px rgba(0,0,0,.55)}
.lb.zoom img{cursor:zoom-out;transition:transform-origin 0s}
.lb-close,.lb-nav{position:absolute;z-index:2;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.55);color:#fff;cursor:pointer;transition:background .25s,color .25s;backdrop-filter:blur(4px);font-family:'Jost',sans-serif}
.lb-close{top:22px;right:24px;width:46px;height:46px;font-size:18px;border-radius:50%}
.lb-nav{top:50%;transform:translateY(-50%);width:54px;height:54px;font-size:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;line-height:1}
.lb-prev{left:24px}.lb-next{right:24px}
.lb-close:hover,.lb-nav:hover{background:#fff;color:var(--ink)}
.lb-count{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.82);font-size:12px;letter-spacing:.22em}
.lb-hint{position:absolute;bottom:24px;right:26px;color:rgba(255,255,255,.55);font-size:11px;letter-spacing:.12em}
@media(max-width:600px){.lb-nav{width:42px;height:42px;font-size:22px}.lb-hint{display:none}}
