:root{
  --paper:#ECEAE3; --paper-2:#E3E0D6; --ink:#1A1912; --ink-soft:#4A4839;
  --stone:#CFC9B8; --moss:#45543C; --brass:#A97B45; --charcoal:#16150F; --cream:#EDE7D8;
  --max:1280px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{animation-duration:.001ms !important; transition-duration:.001ms !important;} }
body{margin:0; background:var(--paper); color:var(--ink); font-family:'Archivo',sans-serif; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
h1,h2,h3,.serif{font-family:'Fraunces',serif; font-weight:500; letter-spacing:-0.01em; margin:0;}
a{color:inherit; text-decoration:none;} img{max-width:100%; display:block;}
.wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
@media (max-width:640px){ .wrap{padding:0 20px;} }

header{position:fixed; top:0; left:0; right:0; z-index:100; padding:14px 0; background:rgba(236,234,227,0.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--stone);}
.nav-row{display:flex; align-items:center; justify-content:space-between;}
.brand{display:flex; align-items:center; gap:10px;}
.brand img{height:28px; width:auto;}
.brand span{font-family:'Fraunces',serif; font-size:14px; letter-spacing:.04em;}
nav.links{display:flex; gap:32px; align-items:center;}
nav.links a{font-size:13.5px; opacity:.82; padding-bottom:3px; border-bottom:1px solid transparent; transition:border-color .25s ease, opacity .25s ease;}
nav.links a:hover{opacity:1; border-color:currentColor;}
.nav-toggle{display:none; background:none; border:0; cursor:pointer; padding:6px;}
.nav-toggle span{display:block; width:22px; height:1.5px; background:var(--ink); margin:5px 0;}
@media (max-width:860px){
  nav.links{position:fixed; inset:0 0 0 auto; width:min(78vw,320px); background:var(--charcoal); flex-direction:column; align-items:flex-start; padding:100px 32px 32px; gap:22px; transform:translateX(100%); transition:transform .5s cubic-bezier(.65,0,.35,1);}
  nav.links.open{transform:translateX(0);}
  nav.links a{color:var(--cream); font-size:16px;}
  .nav-toggle{display:block;}
}

.breadcrumb{padding:128px 0 0; font-size:12.5px; color:var(--ink-soft); letter-spacing:.02em;}
.breadcrumb a{border-bottom:1px solid var(--stone);}
.breadcrumb a:hover{border-color:var(--ink);}

.p-hero{position:relative; height:62vh; min-height:420px; margin-top:20px; overflow:hidden; border-radius:2px;}
.p-hero img{width:100%; height:100%; object-fit:cover; transform:scale(1.08); animation:heroZoom 1.6s cubic-bezier(.22,1,.36,1) forwards;}
@keyframes heroZoom{ to{transform:scale(1);} }
.p-hero::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,14,9,.05) 40%, rgba(15,14,9,.55) 100%);}
.p-hero-cap{position:absolute; left:0; right:0; bottom:0; padding:30px 40px; z-index:2; color:#fff;}
.p-hero-cap .kicker-line{font-size:12.5px; letter-spacing:.06em; opacity:.9;}
.p-hero-cap h1{font-size:clamp(30px,4.5vw,54px); margin-top:8px;}
@media (max-width:640px){ .p-hero-cap{padding:20px;} }

.reveal{opacity:0; transform:translateY(20px); transition:opacity .8s ease, transform .8s cubic-bezier(.22,1,.36,1);}
.reveal.in{opacity:1; transform:translateY(0);}

section{padding:88px 0;}
@media (max-width:860px){ section{padding:56px 0;} }
.kicker{font-size:13px; color:var(--brass); letter-spacing:.03em; display:flex; align-items:center; gap:12px; margin-bottom:18px;}
.kicker::before{content:''; width:26px; height:1px; background:var(--brass);}

.info-grid{display:grid; grid-template-columns:1.3fr 0.9fr; gap:70px;}
@media (max-width:920px){ .info-grid{grid-template-columns:1fr; gap:40px;} }
.info-lead{font-size:16px; line-height:1.8; color:var(--ink-soft); max-width:56ch;}
.fact-list{border-top:1px solid var(--stone);}
.fact{display:flex; justify-content:space-between; gap:20px; padding:16px 0; border-bottom:1px solid var(--stone); font-size:14px;}
.fact .k{color:var(--ink-soft);}
.fact .v{text-align:right; max-width:60%;}

.status-list{margin-top:26px; display:flex; flex-direction:column; gap:0;}
.status-row{display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--stone); font-size:14px;}
.status-row .tag{color:var(--moss); font-size:12.5px;}

.gallery{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:44px;}
.gallery a{display:block; aspect-ratio:1/1; overflow:hidden; background:var(--paper-2); border-radius:2px;}
.gallery img{width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.22,1,.36,1);}
.gallery a:hover img{transform:scale(1.08);}
@media (max-width:860px){ .gallery{grid-template-columns:repeat(2,1fr);} }

.amen-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:28px; margin-top:44px;}
.amen-card .frame{aspect-ratio:4/3; overflow:hidden; border-radius:2px;}
.amen-card img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease;}
.amen-card:hover img{transform:scale(1.06);}
.amen-card h3{margin-top:16px; font-size:17px; font-weight:500;}
.amen-card p{margin-top:6px; font-size:13.5px; color:var(--ink-soft); line-height:1.6;}

.collab-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:36px; margin-top:44px;}
.collab-card img{height:34px; width:auto; object-fit:contain; object-position:left;}
.collab-card p{margin-top:14px; font-size:13.5px; color:var(--ink-soft); line-height:1.65;}

.map-frame{margin-top:44px; aspect-ratio:16/7; border-radius:2px; overflow:hidden; border:1px solid var(--stone);}
.map-frame iframe{width:100%; height:100%; border:0;}

.contact-strip{margin-top:44px; display:flex; flex-wrap:wrap; gap:40px; border-top:1px solid var(--stone); padding-top:32px;}
.contact-strip a{font-size:15px; border-bottom:1px solid var(--stone); padding-bottom:2px;}
.contact-strip a:hover{border-color:var(--ink);}
.contact-strip .lbl{display:block; font-size:12px; color:var(--ink-soft); margin-bottom:6px;}

.back-cta{margin-top:60px; display:inline-flex; align-items:center; gap:9px; font-size:13px; border-bottom:1px solid var(--ink); padding-bottom:2px;}

footer{background:var(--paper-2); padding:44px 0 28px; border-top:1px solid var(--stone); margin-top:40px;}
.foot-row{display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap;}
.foot-row img{height:20px; opacity:.75;}
.foot-links{display:flex; gap:24px; font-size:12.5px; color:var(--ink-soft);}
.foot-links a:hover{color:var(--ink);}
.foot-legal{margin-top:22px; font-size:11.5px; color:var(--ink-soft);}

.lightbox{position:fixed; inset:0; background:rgba(15,14,9,.92); z-index:200; display:none; align-items:center; justify-content:center; padding:40px;}
.lightbox.open{display:flex;}
.lightbox img{max-width:100%; max-height:90vh; object-fit:contain;}
.lightbox-close{position:absolute; top:24px; right:32px; color:#fff; font-size:14px; cursor:pointer; letter-spacing:.05em;}