:root{--ink:#1B1B1B;--taupe:#969586;--olive:#78776C;--stone:#E4E3DA;--mist:#F6F6F6;--body:#5E5E5E}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Inter',system-ui,sans-serif;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased}
.font-display{font-family:'Fraunces',Georgia,serif;font-optical-sizing:auto}
/* Cap optical size on large headings: at opsz 144 the hairline 'e' crossbars vanish on 1x screens */
.font-display.t-hero,.font-display.t-1,.font-display.t-2{font-variation-settings:'opsz' 72}
.font-label{font-family:'Raleway',Arial,sans-serif}
.eyebrow{font-family:'Raleway',Arial,sans-serif;font-weight:600;font-size:.75rem;letter-spacing:.28em;text-transform:uppercase}
.t-hero{font-size:clamp(2.6rem,1.4rem + 5.2vw,5.6rem);line-height:1;letter-spacing:-.01em}
.t-1{font-size:clamp(2.2rem,1.4rem + 3.4vw,4.2rem);line-height:1.04;letter-spacing:-.01em}
.t-2{font-size:clamp(1.8rem,1.2rem + 2.2vw,3rem);line-height:1.1;letter-spacing:-.01em}
.t-3{font-size:clamp(1.3rem,1.1rem + .8vw,1.75rem);line-height:1.2;letter-spacing:-.01em}
.lead{font-size:clamp(1.05rem,1rem + .3vw,1.25rem);line-height:1.75}
.prose-body p{line-height:1.8;color:var(--body)}
.wordmark{font-family:'Raleway',Arial,sans-serif;font-weight:500;letter-spacing:.32em;text-transform:uppercase;white-space:nowrap}
.wordmark-sub{font-family:'Raleway',Arial,sans-serif;font-weight:600;letter-spacing:.5em;text-transform:uppercase;font-size:.58rem}
/* Blur lives on a pseudo-element: backdrop-filter on <header> itself would make it the containing block for the fixed mobile menu */
.header-blur{isolation:isolate}
.header-blur::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(255,255,255,.82);-webkit-backdrop-filter:saturate(160%) blur(14px);backdrop-filter:saturate(160%) blur(14px)}
.nav-link{position:relative}
.nav-link::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--taupe);transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.nav-link:hover::after,.nav-link[aria-current="page"]::after{transform:scaleX(1)}
.btn{display:inline-flex;white-space:nowrap;align-items:center;gap:.6rem;font-weight:600;font-size:.95rem;padding:1rem 1.6rem;border-radius:999px;transition:transform .25s ease,background-color .25s ease,color .25s ease,box-shadow .25s ease;min-height:48px}
.btn:hover{transform:translateY(-2px)}
.btn svg{transition:transform .25s ease}
.btn:hover svg{transform:translateX(3px)}
.btn-stone{background:var(--stone);color:var(--ink)}
.btn-stone:hover{background:#fff;box-shadow:0 10px 30px -12px rgba(0,0,0,.45)}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:#000;box-shadow:0 10px 30px -12px rgba(0,0,0,.5)}
.btn-line{border:1px solid currentColor}
.btn-line:hover{background:rgba(255,255,255,.08)}
.card-lift{transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.card-lift:hover{transform:translateY(-4px);box-shadow:0 24px 50px -28px rgba(27,27,27,.45)}
.img-zoom{overflow:hidden}
.img-zoom img{transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.img-zoom:hover img{transform:scale(1.05)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.is-in{opacity:1;transform:none}
.reveal-d1{transition-delay:.1s}.reveal-d2{transition-delay:.2s}.reveal-d3{transition-delay:.3s}
.grain{background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:4px 4px}
.amp-bg{font-family:'Fraunces',Georgia,serif;line-height:.8;user-select:none;pointer-events:none}
.service-row{border-top:1px solid rgba(27,27,27,.14)}
.service-row:last-child{border-bottom:1px solid rgba(27,27,27,.14)}
.service-row .arrow{transition:transform .35s ease,background-color .35s ease,color .35s ease}
.service-row:hover .arrow{transform:rotate(-45deg);background:var(--ink);color:#fff}
.service-row:hover .svc-title{color:var(--olive)}
.field{width:100%;background:#fff;border:1px solid rgba(27,27,27,.18);border-radius:.75rem;padding:.9rem 1rem;font-size:1rem;color:var(--ink);transition:border-color .2s,box-shadow .2s}
.field:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px rgba(150,149,134,.25)}
.hp-field{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.grecaptcha-badge{visibility:hidden}
:focus-visible{outline:2px solid var(--olive);outline-offset:3px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
select.field{-webkit-appearance:none;appearance:none;padding-right:3rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2378776C' stroke-width='1.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:20px;background-position:right 1rem center}
#menu-toggle .icon-close,#menu-toggle[aria-expanded="true"] .icon-open{display:none}
#menu-toggle[aria-expanded="true"] .icon-close{display:block}
