
:root{ --ink:#171810; --bone:#f5f0e4; --brass:#a98a52; --forest:#2f3d2f; }
html{ scroll-behavior:smooth; }
body{ background:var(--bone); color:#23241b; font-family:'Jost',sans-serif; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
::selection{ background:#a98a52; color:#fff; }
.font-display{ font-family:'Cinzel',serif; }
.font-serif{ font-family:'Cormorant Garamond',serif; }
.kicker{ font-family:'Jost',sans-serif; letter-spacing:.34em; text-transform:uppercase; font-size:.66rem; font-weight:400; }
.hairline{ height:1px; background:linear-gradient(90deg,transparent,var(--brass),transparent); }
.brass-rule{ width:54px; height:2px; background:var(--brass); }
.ph{ position:relative; overflow:hidden; }
.ph::after{ content:'PLACEHOLDER'; position:absolute; top:10px; right:10px; z-index:20; font-family:'Jost'; font-size:.5rem; letter-spacing:.18em; font-weight:500; padding:3px 7px; color:#f5f0e4; background:rgba(23,24,16,.62); border:1px solid rgba(196,167,116,.55); border-radius:1px; backdrop-filter:blur(2px); pointer-events:none; }
.ph-text{ position:relative; }
.ph-text::before{ content:'placeholder'; position:absolute; top:-15px; left:0; font-family:'Jost'; font-size:.5rem; letter-spacing:.2em; text-transform:uppercase; color:var(--brass); opacity:.8; }
.estate{ background:radial-gradient(120% 90% at 30% 18%, rgba(196,167,116,.20), transparent 60%), linear-gradient(155deg,#2f3d2f 0%,#222a1f 45%,#171810 100%); }
.estate-2{ background:radial-gradient(110% 80% at 75% 22%, rgba(196,167,116,.18), transparent 58%), linear-gradient(155deg,#3a4636 0%,#28301f 50%,#1a1c12 100%); }
.estate-3{ background:radial-gradient(120% 90% at 20% 80%, rgba(169,138,82,.22), transparent 62%), linear-gradient(200deg,#20271c 0%,#2c3726 55%,#171810 100%); }
.grain{ position:absolute; inset:0; opacity:.5; mix-blend-mode:overlay; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E"); }
.scene-icon{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; opacity:.16; }
.scene-icon svg{ width:46%; height:46%; stroke:#f5f0e4; fill:none; stroke-width:1.2; }
#nav{ transition:background .5s ease, border-color .5s ease; }
#nav.solid{ background:rgba(23,24,16,.94); backdrop-filter:blur(10px); border-color:rgba(196,167,116,.22)!important; }
.navlink{ position:relative; }
.navlink::after{ content:''; position:absolute; left:0; bottom:-5px; width:0; height:1px; background:var(--brass); transition:width .35s ease; }
.navlink:hover::after,.navlink.active::after{ width:100%; }
.navlink.active{ color:#c4a774; }
.btn-brass{ background:var(--brass); color:#171810; transition:background .3s, transform .3s; }
.btn-brass:hover{ background:#c4a774; transform:translateY(-2px); }
.btn-ghost{ border:1px solid rgba(245,240,228,.45); color:#f5f0e4; transition:border-color .3s, background .3s; }
.btn-ghost:hover{ border-color:var(--brass); background:rgba(169,138,82,.12); }
.btn-dark{ border:1px solid rgba(23,24,16,.3); color:#171810; transition:border-color .3s,background .3s,color .3s; }
.btn-dark:hover{ background:#171810; color:#f5f0e4; border-color:#171810; }
.card{ transition:transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s; }
.card:hover{ transform:translateY(-6px); box-shadow:0 30px 60px -30px rgba(23,24,16,.55); }
.card:hover .card-img > div{ transform:scale(1.06); }
.card-img > div{ transition:transform 1.1s cubic-bezier(.2,.7,.2,1); }
.reveal{ opacity:0; transform:translateY(26px); transition:opacity 1s ease, transform 1s cubic-bezier(.2,.7,.2,1); }
.reveal.in{ opacity:1; transform:none; }
@keyframes drift{ 0%{ transform:scale(1.06);} 100%{ transform:scale(1.14) translate3d(-1.5%,-2%,0);} }
.hero-bg{ animation:drift 26s ease-in-out infinite alternate; }
.subhero{ position:relative; min-height:48vh; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.subhero .wm{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; opacity:.06; }
.subhero .wm img{ width:60%; max-width:680px; }
#map{ height:560px; }
.leaflet-container{ background:#222a1f; font-family:'Jost',sans-serif; }
.leaflet-popup-content-wrapper{ background:#171810; color:#f5f0e4; border-radius:2px; border:1px solid rgba(196,167,116,.4); }
.leaflet-popup-tip{ background:#171810; }
.leaflet-popup-content{ margin:14px 16px; }
.pin{ width:30px; height:30px; display:flex; align-items:center; justify-content:center; background:#a98a52; color:#171810; border:2px solid #f5f0e4; border-radius:50% 50% 50% 0; transform:rotate(-45deg); box-shadow:0 6px 14px -4px rgba(0,0,0,.6); font-family:'Cinzel'; font-weight:600; font-size:.7rem; }
.pin span{ transform:rotate(45deg); }
.maplist-item{ cursor:pointer; transition:background .3s, border-color .3s; }
.maplist-item:hover,.maplist-item.active{ background:rgba(169,138,82,.12); border-color:var(--brass)!important; }
