:root{--bg: #e7eeea;--bg-deep: #d7e2dc;--ink: #14201c;--ink-muted: rgba(20, 32, 28, .72);--accent: #0f5c4c;--accent-soft: #1a7a66;--surface: rgba(255, 255, 255, .55);--line: rgba(20, 32, 28, .12);--font-display: "Fraunces", Georgia, serif;--font-body: "Manrope", "Segoe UI", sans-serif;--max: 1120px}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--ink);font-family:var(--font-body);background:radial-gradient(900px 500px at 100% 0%,rgba(15,92,76,.12),transparent 55%),radial-gradient(700px 420px at 0% 30%,rgba(70,110,95,.16),transparent 50%),linear-gradient(180deg,#f2f6f4 0%,var(--bg) 42%,var(--bg-deep) 100%)}a{color:inherit;text-decoration:none}.page{min-height:100vh}.topbar{position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem clamp(1.2rem,4vw,3rem);background:linear-gradient(to bottom,#f2f6f4eb,#f2f6f400);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{font-family:var(--font-display);font-weight:700;letter-spacing:.12em;font-size:1.05rem}.nav{display:flex;gap:1.25rem;font-size:.92rem;color:var(--ink-muted)}.nav a:hover,.nav a:focus-visible{color:var(--ink)}.hero{position:relative;min-height:100svh;display:grid;align-items:end;overflow:hidden}.hero-media{position:absolute;inset:0;background:linear-gradient(180deg,#e7eeea26,#e7eeea73 48%,#e7eeeaf5),linear-gradient(115deg,rgba(15,92,76,.28),rgba(20,32,28,.08) 55%,transparent 75%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cpath fill='none' stroke='rgba(20,32,28,0.05)' stroke-width='1' d='M0 70h140M70 0v140'/%3E%3C/svg%3E"),radial-gradient(circle at 72% 32%,#8fb5a4,#4f7a6a 42%,#20372f);background-size:cover,cover,140px 140px,cover;transform:scale(1.04);animation:drift 18s ease-in-out infinite alternate}.hero-content{position:relative;z-index:1;width:min(100%,var(--max));margin:0 auto;padding:clamp(6.5rem,14vh,9rem) clamp(1.2rem,4vw,3rem) clamp(3.5rem,8vh,5.5rem);animation:rise 1.1s ease both}.brand-mark{margin:0 0 1rem;font-family:var(--font-display);font-size:clamp(2.8rem,9vw,5.8rem);font-weight:700;letter-spacing:.08em;line-height:.95}.hero h1{max-width:16ch;margin:0 0 1.1rem;font-family:var(--font-display);font-size:clamp(1.55rem,3.4vw,2.45rem);font-weight:500;line-height:1.2}.lede{max-width:42rem;margin:0 0 1.8rem;color:var(--ink-muted);font-size:clamp(1rem,1.6vw,1.15rem);line-height:1.65}.cta-row{display:flex;flex-wrap:wrap;gap:.8rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:2.9rem;padding:.7rem 1.25rem;border:1px solid transparent;font-size:.95rem;font-weight:600;transition:transform .18s ease,background .18s ease,border-color .18s ease}.btn:hover,.btn:focus-visible{transform:translateY(-1px)}.btn.primary{background:var(--accent);color:#f4faf7}.btn.primary:hover,.btn.primary:focus-visible{background:var(--accent-soft)}.btn.ghost{border-color:var(--line);color:var(--ink);background:var(--surface)}.section{width:min(100%,var(--max));margin:0 auto;padding:clamp(3.5rem,8vw,5.5rem) clamp(1.2rem,4vw,3rem);border-top:1px solid var(--line)}.eyebrow{margin:0 0 .7rem;color:var(--accent);font-size:.8rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.section h2{margin:0 0 1rem;max-width:18ch;font-family:var(--font-display);font-size:clamp(1.7rem,3vw,2.4rem);font-weight:500;line-height:1.15}.section p{max-width:42rem;margin:0;color:var(--ink-muted);line-height:1.7}.focus-list{list-style:none;margin:2rem 0 0;padding:0;display:grid;gap:1.25rem}.focus-list li{padding:1.35rem 0 0;border-top:1px solid var(--line)}.focus-list h3{margin:0 0 .45rem;font-size:1.1rem}.contact a{color:var(--accent);text-decoration:underline;text-underline-offset:.18em}.footer{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;width:min(100%,var(--max));margin:0 auto;padding:1.5rem clamp(1.2rem,4vw,3rem) 2.5rem;border-top:1px solid var(--line);color:var(--ink-muted);font-size:.9rem}.will-reveal{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}.will-reveal.is-visible{opacity:1;transform:translateY(0)}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes drift{0%{transform:scale(1.04) translateZ(0)}to{transform:scale(1.08) translate3d(-1.5%,1%,0)}}@media(max-width:720px){.nav{gap:.85rem;font-size:.85rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-media,.hero-content,.will-reveal{animation:none;opacity:1;transform:none;transition:none}}
