:root{--ink:#2C2F26;--sage:#C7CAB9;--teal:#3D7F8A;--cream:#F4F3EC;--ink-2:#22251d}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Montserrat',system-ui,sans-serif;color:var(--ink);background:#fff;line-height:1.75;overflow-x:hidden}
.font-display{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500}
.t-hero{font-size:clamp(2.75rem,5.4vw + 1rem,6.75rem);line-height:.95;letter-spacing:-.02em}
.t-h1{font-size:clamp(2.5rem,4.2vw + 1rem,5.5rem);line-height:1;letter-spacing:-.02em}
.t-h2{font-size:clamp(2.1rem,3vw + 1rem,4.25rem);line-height:1.04;letter-spacing:-.015em}
.t-h3{font-size:clamp(1.5rem,1.2vw + 1rem,2.25rem);line-height:1.15;letter-spacing:-.01em}
.t-lead{font-size:clamp(1.05rem,.4vw + .95rem,1.25rem);line-height:1.8}
.eyebrow{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;font-weight:500}
.eyebrow-line{display:inline-flex;align-items:center;gap:.9rem}
.eyebrow-line:before{content:"";width:2.5rem;height:1px;background:var(--teal)}
/* header */
#site-header{transition:background-color .4s ease,box-shadow .4s ease,color .4s ease}
#site-header .logo-dark{display:none}
#site-header.scrolled{background:rgba(244,243,236,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(44,47,38,.08);color:var(--ink)}
#site-header.scrolled .logo-dark{display:block}
#site-header.scrolled .logo-light{display:none}
#site-header:not(.scrolled){color:#F4F3EC}
.nav-link{position:relative;padding:.35rem 0}
.nav-link:after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s ease}
.nav-link:hover:after,.nav-link[aria-current=page]:after{transform:scaleX(1);transform-origin:left}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:.75rem;padding:1rem 1.6rem;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;transition:all .3s ease;min-height:48px}
.btn svg{transition:transform .3s ease}
.btn:hover svg{transform:translateX(4px)}
.btn-teal{background:var(--teal);color:#fff}
.btn-teal:hover{background:#336c75;box-shadow:0 12px 30px -12px rgba(61,127,138,.7)}
.btn-ghost{border:1px solid rgba(244,243,236,.55);color:#F4F3EC}
.btn-ghost:hover{background:#F4F3EC;color:var(--ink)}
.btn-ink{border:1px solid var(--ink);color:var(--ink)}
.btn-ink:hover{background:var(--ink);color:#F4F3EC}
.link-arrow{display:inline-flex;align-items:center;gap:.6rem;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;border-bottom:1px solid currentColor;padding-bottom:.3rem}
.link-arrow svg{transition:transform .3s ease}.link-arrow:hover svg{transform:translateX(4px)}
/* images */
.zoom{overflow:hidden}.zoom img{transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.zoom:hover img,.group:hover .zoom img{transform:scale(1.05)}
.grain:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 20% 100%,rgba(44,47,38,.35),transparent 60%)}
/* reveal */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal.d1{transition-delay:.12s}.js .reveal.d2{transition-delay:.24s}.js .reveal.d3{transition-delay:.36s}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transform:none;transition:none}.zoom img,.btn,.btn svg{transition:none}.zoom:hover img{transform:none}}
/* lightbox */
#lightbox{position:fixed;inset:0;z-index:80;background:rgba(28,30,24,.96);display:none;align-items:center;justify-content:center}
#lightbox.open{display:flex}
#lightbox img{max-width:92vw;max-height:82vh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.5)}
#lightbox button{position:absolute;color:#F4F3EC;width:52px;height:52px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(244,243,236,.3);border-radius:999px;transition:background .3s}
#lightbox button:hover{background:rgba(244,243,236,.12)}
/* forms */
.field{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(44,47,38,.3);padding:.85rem 0;font-size:1rem;color:var(--ink);border-radius:0;transition:border-color .3s}
.field:focus{outline:none;border-color:var(--teal);box-shadow:0 1px 0 var(--teal)}
.field-label{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:#5b5f52}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.grecaptcha-badge{visibility:hidden}
.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{scrollbar-width:none}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
/* horizontal strip aligned to the page content gutter */
.gutter-scroll{--gut:1.25rem;padding-left:var(--gut);scroll-padding-left:var(--gut)}
.gutter-end{width:calc(var(--gut) - 1.25rem)}
@media (min-width:640px){.gutter-scroll{--gut:2rem}}
@media (min-width:1024px){.gutter-scroll{--gut:calc(max(0px,(100% - 1400px)/2) + 3rem)}}
