:root{--ivory:#FAF7F2;--beige:#EDE3D6;--nude:#D9C2B0;--taupe:#5A4A42;--esp:#2B211D;--gold:#B8975A}
html{scroll-behavior:smooth}
body{font-family:'Jost',sans-serif;background:var(--ivory);color:var(--taupe);font-weight:300;margin:0}
.serif{font-family:'Cormorant Garamond',serif}
.eyebrow{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-weight:500}
.hair{height:1px;background:linear-gradient(90deg,transparent,#C9A96E,transparent)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}
.zoom img{transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.zoom:hover img{transform:scale(1.07)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 28px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;transition:all .4s;cursor:pointer}
.btn-dark{background:var(--esp);color:var(--ivory)}
.btn-dark:hover{background:var(--gold)}
.btn-gold{border:1px solid var(--gold);color:var(--esp)}
.btn-gold:hover{background:var(--gold);color:#fff}
.ulink{border-bottom:1px solid var(--gold);padding-bottom:4px;letter-spacing:.2em;font-size:12px;text-transform:uppercase;color:var(--esp)}
*:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.input{width:100%;background:transparent;border:0;border-bottom:1px solid var(--nude);padding:12px 2px;outline:none;color:var(--esp)}
.input:focus{border-color:var(--gold)}
@keyframes pulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.8);opacity:0}}
.pulse::before{content:'';position:absolute;inset:0;border-radius:9999px;background:#7c9a7e;animation:pulse 2s infinite}
@keyframes stag{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.stag{animation:stag .6s both}
@keyframes draw{to{stroke-dashoffset:0}}
.check{stroke-dasharray:100;stroke-dashoffset:100;animation:draw 1.2s .3s ease forwards}
.grain{background-image:radial-gradient(circle at 20% 10%,#fff 0,transparent 40%),radial-gradient(circle at 90% 80%,#EDE3D6 0,transparent 50%)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}