:root{--ink:#0F0E13;--gold:#BD9414;--gold-lt:#E2B758;--cream:#F7F4EC}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Manrope',system-ui,sans-serif;color:#1d1c22;background:#fff;overflow-x:hidden}
.font-display{font-family:'Cormorant Garamond',Georgia,serif}
.t-hero{font-size:clamp(2.7rem,5.2vw + 1rem,6.2rem);line-height:.95;letter-spacing:-.02em}
.t-xl{font-size:clamp(2.2rem,3.4vw + 1rem,4.4rem);line-height:1;letter-spacing:-.015em}
.t-lg{font-size:clamp(1.8rem,2vw + 1rem,3rem);line-height:1.05;letter-spacing:-.01em}
.t-md{font-size:clamp(1.4rem,1vw + 1rem,1.9rem);line-height:1.15}
.eyebrow{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700}
.prose-cps p{line-height:1.8;margin-bottom:1.1rem}
.grecaptcha-badge{visibility:hidden}
/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.is-in{opacity:1;transform:none}
.reveal-d1{transition-delay:.08s}.reveal-d2{transition-delay:.16s}.reveal-d3{transition-delay:.24s}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:.6rem;min-height:3.1rem;padding:.8rem 1.5rem;border-radius:999px;font-weight:700;font-size:.95rem;transition:transform .25s ease,background-color .25s ease,color .25s ease,box-shadow .25s ease}
.btn:hover{transform:translateY(-2px)}
.btn svg{transition:transform .25s ease}.btn:hover svg{transform:translateX(3px)}
.btn-gold{background:var(--gold);color:#0F0E13;box-shadow:0 10px 30px -12px rgba(189,148,20,.7)}
.btn-gold:hover{background:var(--gold-lt)}
.btn-ghost{border:1.5px solid rgba(255,255,255,.45);color:#fff}
.btn-ghost:hover{background:#fff;color:#0F0E13}
.btn-ink{background:#0F0E13;color:#fff}.btn-ink:hover{background:#2a2830}
/* card zoom */
.zoom{overflow:hidden}.zoom img{transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.zoom:hover img,.zoom:focus-visible img{transform:scale(1.06)}
/* nav */
.nav-link{position:relative;padding:.5rem 0;font-weight:600;font-size:.92rem}
.nav-link::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.nav-link:hover::after,.nav-link[aria-current=page]::after{transform:scaleX(1)}
.dropdown{visibility:hidden;opacity:0;transform:translateY(8px);transition:all .2s ease}
.has-dd:hover .dropdown,.has-dd:focus-within .dropdown{visibility:visible;opacity:1;transform:none}
/* before / after */
.ba{position:relative;overflow:hidden;user-select:none;touch-action:pan-y}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba .ba-top{position:absolute;inset:0;clip-path:inset(0 50% 0 0)}
.ba .ba-line{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;transform:translateX(-1px);pointer-events:none}
.ba .ba-knob{position:absolute;top:50%;left:50%;width:46px;height:46px;border-radius:999px;background:var(--gold);transform:translate(-50%,-50%);display:grid;place-items:center;box-shadow:0 6px 20px rgba(0,0,0,.35);pointer-events:none}
.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
/* lightbox */
.lb{position:fixed;inset:0;z-index:80;background:rgba(10,9,13,.94);display:none;align-items:center;justify-content:center;padding:4rem 1rem}
.lb.open{display:flex}
.lb img{max-height:80vh;max-width:min(92vw,1200px);object-fit:contain;border-radius:.5rem}
.lb button{position:absolute;color:#fff;width:3rem;height:3rem;border-radius:999px;display:grid;place-items:center;background:rgba(255,255,255,.08)}
.lb button:hover{background:var(--gold);color:#0F0E13}
/* forms */
.field{width:100%;border:1.5px solid #dcd7ca;background:#fff;border-radius:.75rem;padding:.85rem 1rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}
.field:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(189,148,20,.18)}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.grain{background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:22px 22px}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .btn,.btn svg,.zoom img,.dropdown,.nav-link::after{transition:none}
  .btn:hover,.zoom:hover img{transform:none}
}
/* home hero scrim: ~58% at the text edge, clear by the middle of the photo */
.hero-scrim{background:linear-gradient(to top,rgba(15,14,19,.62) 0%,rgba(15,14,19,.45) 32%,rgba(15,14,19,0) 58%)}
@media (min-width:1024px){.hero-scrim{background:linear-gradient(to top,rgba(15,14,19,.35) 0%,rgba(15,14,19,0) 22%),linear-gradient(90deg,rgba(15,14,19,.58) 0%,rgba(15,14,19,.38) 26%,rgba(15,14,19,0) 50%)}}
.hero-text h1,.hero-text p{text-shadow:0 2px 18px rgba(10,9,13,.55),0 1px 3px rgba(10,9,13,.5)}
/* map pin */
.map-pulse{transform-box:fill-box;transform-origin:center;animation:pin 2.4s ease-out infinite}
@keyframes pin{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.2);opacity:0}}
@media (prefers-reduced-motion:reduce){.map-pulse{animation:none}}
