
:root{
  --dark:#0b0e0c;
  --cream:#eee9df;
  --paper:#f7f5ef;
  --ink:#111111;
  --muted:#6e6a63;
  --gold:#9a856b;
  --green:#173e31;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:Arial,Helvetica,sans-serif;
  overflow-x:hidden;
}
img,video{display:block;max-width:100%}
button,input{font:inherit}

.header{
  position:fixed;
  z-index:1000;
  top:0;left:0;right:0;
  height:76px;
  padding:0 4vw;
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#fff;
  background:rgba(10,13,11,.78);
  transition:background .2s ease;
}
.header.scrolled{background:#0a0d0b}
.brand{display:flex;align-items:center;color:#fff;text-decoration:none}
.brand-mark{
  width:44px;height:44px;
  border:1px solid rgba(255,255,255,.65);
  display:flex;align-items:center;justify-content:center;
  font:700 23px/1 Georgia,"Times New Roman",serif;
}
.brand-name{margin-left:12px;font-size:14px;font-weight:700;letter-spacing:.22em}
.nav{display:flex;align-items:center;gap:26px}
.nav a{color:#fff;text-decoration:none;font-size:12px;font-weight:700}
.nav-cta{border-bottom:1px solid rgba(255,255,255,.65);padding-bottom:5px}
.hamburger{display:none;border:0;background:transparent;width:42px;padding:8px}
.hamburger span{display:block;height:1px;background:#fff;margin:7px 0}

.hero{
  position:relative;
  min-height:700px;
  height:calc(100vh - 0px);
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:#111;
}
.hero-video{
  position:absolute;
  top:0;left:0;
  width:100%;height:100%;
  object-fit:cover;
}
.hero-image-safe{object-position:center center}
.hero-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.64),rgba(0,0,0,.15) 66%),
    linear-gradient(0deg,rgba(0,0,0,.48),rgba(0,0,0,.04) 58%);
}
.hero-copy{
  position:relative;
  z-index:2;
  color:#fff;
  width:min(860px,86vw);
  padding:0 0 74px 6vw;
}
.kicker,.section-label{
  text-transform:uppercase;
  letter-spacing:.20em;
  font-size:10px;
  font-weight:700;
  color:#d1b281;
}
.hero h1{
  margin:17px 0 24px;
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  font-size:clamp(52px,6.5vw,96px);
  line-height:.98;
  letter-spacing:-.03em;
}
.hero h1 em{font-style:italic;color:#ddb96f}
.hero p{
  max-width:650px;
  font-size:17px;
  line-height:1.72;
  color:rgba(255,255,255,.9);
}
.hero-link{
  display:inline-block;
  margin-top:27px;
  color:#fff;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:10px;
  border-bottom:1px solid rgba(255,255,255,.65);
  padding-bottom:7px;
}

.project-facts{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  background:#f5f1e8;
  color:#14241d;
  padding:22px 4vw;
  border-bottom:1px solid #ddd4c4;
}
.project-facts div{
  text-align:center;
  padding:4px 12px;
  border-right:1px solid #cfc6b7;
}
.project-facts div:last-child{border-right:0}
.project-facts strong{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(20px,2vw,30px);
  white-space:nowrap;
}
.project-facts span{display:block;margin-top:5px;font-size:12px;opacity:.72}

.story{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  min-height:760px;
}
.story-copy{
  background:var(--cream);
  padding:90px 7vw;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.story-copy h2{
  font:400 clamp(40px,4.4vw,65px)/1.06 Georgia,"Times New Roman",serif;
  margin:18px 0 24px;
}
.story-copy .big{
  font:400 26px/1.36 Georgia,"Times New Roman",serif;
  color:var(--green);
}
.story-copy p:last-child{color:var(--muted);line-height:1.85;max-width:560px}
.story-media{min-width:0}
.story-media img{width:100%;height:100%;object-fit:cover}

.immersive{background:#0d100e}
.immersive-slide{
  min-height:660px;
  height:82vh;
  position:relative;
  overflow:hidden;
}
.immersive-slide img{width:100%;height:100%;object-fit:cover}
.immersive-slide:after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(0,0,0,.56),rgba(0,0,0,.02) 58%);
}
.immersive-copy{
  position:absolute;
  z-index:2;
  left:6vw;bottom:58px;
  color:#fff;
  max-width:650px;
}
.immersive-copy span{font-size:10px;letter-spacing:.18em;color:#d2bea2}
.immersive-copy h3{
  font:400 clamp(44px,5vw,72px)/1 Georgia,"Times New Roman",serif;
  margin:10px 0 16px;
}
.immersive-copy p{max-width:540px;font-size:15px;line-height:1.75;color:rgba(255,255,255,.86)}

.quote-section{background:#111411;color:#fff;padding:100px 7vw}
.quote-inner{max-width:1080px;margin:0 auto;text-align:center}
.quote-inner blockquote{
  font:400 clamp(38px,4.8vw,68px)/1.15 Georgia,"Times New Roman",serif;
  margin:22px 0 0;color:#f0eadf;
}

.video-section{background:#0b0e0c;color:#fff;padding:92px 7vw}
.section-label.light{color:#c8b79e}
.video-head{text-align:center;margin-bottom:38px}
.video-head h2{
  font:400 clamp(44px,5vw,70px)/1.03 Georgia,"Times New Roman",serif;
  margin:15px 0 0;
}
.video-player{max-width:1180px;margin:0 auto;background:#000}
.video-player video{width:100%;height:auto;max-height:76vh}

.gallery-section{padding:95px 7vw;background:#f7f5ef}
.gallery-intro{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7vw;
  align-items:end;
  margin-bottom:50px;
}
.gallery-intro h2{
  font:400 clamp(42px,4.7vw,68px)/1.06 Georgia,"Times New Roman",serif;
  margin:15px 0 0;
}
.gallery-intro p{color:var(--muted);line-height:1.8;max-width:560px}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-auto-rows:220px;
  gap:10px;
}
.g{border:0;padding:0;overflow:hidden;background:#ddd;cursor:pointer;min-width:0}
.g img{width:100%;height:100%;object-fit:cover}
.g1,.g8{grid-column:span 2;grid-row:span 2}
.g4,.g11{grid-row:span 2}
.g14{grid-column:span 2}

.cta-visual{
  min-height:600px;
  height:76vh;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#fff;
}
.cta-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cta-overlay{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.cta-copy{position:relative;z-index:2;max-width:900px;padding:0 6vw}
.cta-copy>span{text-transform:uppercase;letter-spacing:.22em;font-size:10px}
.cta-copy h2{
  font:400 clamp(42px,5vw,72px)/1.05 Georgia,"Times New Roman",serif;
  margin:18px 0 27px;
}
.cta-copy a{
  color:#fff;text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.68);
  padding-bottom:7px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.13em;
}

.contact-section{
  background:#ddd4c5;
  padding:95px 7vw;
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:7vw;
}
.contact-copy h2{
  font:400 clamp(42px,4.8vw,68px)/1.06 Georgia,"Times New Roman",serif;
  margin:15px 0;
}
.contact-copy p{color:#554e45;line-height:1.8}
.contact-form{background:#f6f2eb;padding:30px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.contact-form label span{
  display:block;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:#6b635a;
  margin-bottom:8px;
}
.contact-form input{
  width:100%;
  border:0;
  border-bottom:1px solid #bfb5a7;
  background:transparent;
  padding:12px 0;
  outline:none;
}
.contact-form button{
  margin-top:27px;
  border:0;
  background:#111;
  color:#fff;
  padding:15px 24px;
  font-size:12px;
  font-weight:700;
}

footer{
  background:#080a09;
  color:#aaa;
  padding:36px 7vw;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:20px;
  font-size:11px;
}
.footer-brand{color:#fff;font-weight:700;letter-spacing:.2em}
.footer-brand span{font:700 18px Georgia,"Times New Roman",serif;letter-spacing:0}

.lightbox{
  position:fixed;
  z-index:3000;
  inset:0;
  background:rgba(0,0,0,.95);
  display:none;
  align-items:center;
  justify-content:center;
  padding:4vw;
}
.lightbox.open{display:flex}
.lightbox img{max-width:94vw;max-height:88vh;object-fit:contain}
.lb-close{position:absolute;right:24px;top:15px;background:none;border:0;color:#fff;font-size:42px;cursor:pointer}

/* Do not hide content by default — important for Edge/restricted JS environments */
.reveal{opacity:1;transform:none}

@media(max-width:1000px){
  .nav{gap:18px}
  .project-facts{grid-template-columns:repeat(3,1fr)}
  .project-facts div{border-right:0;border-bottom:1px solid #d7cfc2;padding:13px}
  .project-facts div:nth-last-child(-n+2){border-bottom:0}
  .story{grid-template-columns:1fr}
  .story-media{height:560px}
  .gallery-grid{grid-template-columns:repeat(3,1fr)}
  .contact-section{grid-template-columns:1fr}
}

@media(max-width:820px){
  .header{height:68px;padding:0 5vw;background:rgba(10,13,11,.94)}
  .hamburger{display:block}
  .nav{
    display:none;
    position:absolute;
    top:68px;left:0;right:0;
    background:#0b0e0c;
    padding:24px 6vw;
    flex-direction:column;
    align-items:flex-start;
  }
  .nav.open{display:flex}
  .hero{min-height:640px;height:auto}
  .hero-copy{padding:150px 6vw 70px;width:100%}
  .hero h1{font-size:58px}
  .project-facts{grid-template-columns:repeat(2,1fr)}
  .project-facts div:last-child{grid-column:1/-1}
  .story-copy{padding:78px 6vw}
  .immersive-slide{height:70vh;min-height:540px}
  .gallery-intro{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:210px}
  .g1,.g8,.g14{grid-column:span 2}
  .fields{grid-template-columns:1fr}
  footer{grid-template-columns:1fr}
}

@media(max-width:560px){
  .brand-name{font-size:12px}
  .hero h1{font-size:47px}
  .hero p{font-size:15px}
  .project-facts{grid-template-columns:1fr 1fr;padding:16px 4vw}
  .project-facts strong{font-size:22px}
  .story-media{height:400px}
  .story-copy h2,.video-head h2,.gallery-intro h2,.contact-copy h2,.cta-copy h2{font-size:40px}
  .story-copy .big{font-size:22px}
  .immersive-copy{left:6vw;right:6vw;bottom:38px}
  .immersive-copy h3{font-size:45px}
  .gallery-section,.video-section,.contact-section{padding:72px 6vw}
  .gallery-grid{grid-template-columns:1fr;grid-auto-rows:260px}
  .g1,.g8,.g14,.g4,.g11{grid-column:auto;grid-row:auto}
  .cta-visual{min-height:520px}
}

.contact-email{margin-top:18px}
.contact-email a,.footer-email{color:inherit;text-decoration:none;border-bottom:1px solid currentColor}
.hp-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-status{grid-column:1/-1;margin-top:12px;font-size:13px}
