:root { --ink:#0b0b0b; --green:#0f3d2e; --beige:#f3f1ea; --white:#fff; --line:rgba(11,11,11,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--beige); color:var(--ink); font-family:Inter,Arial,sans-serif; }
body:has(.brand-intro:not(.intro-finished)) { overflow:hidden; }
a { color:inherit; text-decoration:none; }
.brand-intro { position:fixed; z-index:100; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:26px; overflow:hidden; background:var(--beige); color:var(--ink); transition:transform .85s cubic-bezier(.76,0,.24,1),visibility .85s; }
.brand-intro.intro-finished { transform:translateY(-102%); visibility:hidden; }
.intro-monogram { width:clamp(92px,10vw,150px); opacity:0; transform:scale(.7) rotate(-8deg); animation:introMark .8s .12s forwards cubic-bezier(.2,.8,.2,1); }
.intro-wordmark { font-size:clamp(42px,6vw,82px); letter-spacing:.32em; margin-right:-.32em; opacity:0; transform:translateY(12px); animation:introType .7s .55s forwards; }
.intro-wordmark span { position:relative; }
.intro-wordmark span::after { content:''; position:absolute; width:.13em; height:.13em; border-radius:50%; background:#6d9a83; left:46%; bottom:.05em; }
.brand-intro p { margin:0; color:rgba(11,11,11,.52); font-size:11px; letter-spacing:.18em; text-transform:uppercase; opacity:0; transform:translateY(8px); animation:introType .6s .95s forwards; }
.intro-lines i { position:absolute; background:rgba(15,61,46,.15); }
.intro-lines i:first-child { width:1px; height:140%; left:50%; top:-20%; transform:rotate(32deg) scaleY(0); animation:lineDraw 1.1s .15s forwards; }
.intro-lines i:last-child { height:1px; width:140%; top:50%; left:-20%; transform:rotate(-12deg) scaleX(0); animation:lineDrawX 1.1s .3s forwards; }
.site-header { position:absolute; z-index:20; inset:0 0 auto; display:flex; align-items:center; justify-content:space-between; padding:26px clamp(24px,4vw,68px); border-bottom:1px solid var(--line); }
.brand { display:block; width:146px; height:24px; overflow:hidden; }
.brand img { width:146px; display:block; }
nav { display:flex; align-items:center; gap:32px; font-size:13px; }
.nav-cta { display:flex; align-items:center; gap:8px; border-bottom:1px solid var(--ink); padding-bottom:4px; }
.hero { min-height:94vh; position:relative; overflow:hidden; padding:158px clamp(24px,4vw,68px) 52px; display:flex; flex-direction:column; justify-content:space-between; }
.hero-grid { position:absolute; inset:0; opacity:.18; background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size:25vw 100%,100% 25vh; pointer-events:none; }
.eyebrow { position:relative; display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:.15em; text-transform:uppercase; }
.eyebrow span { width:7px; height:7px; border-radius:50%; background:var(--green); }
h1 { position:relative; max-width:1200px; margin:38px 0 60px; font-size:clamp(58px,9.5vw,156px); line-height:.88; letter-spacing:-.07em; font-weight:510; }
h1 em,.contact h2 em { color:var(--green); font-style:normal; }
.hero-bottom { position:relative; display:flex; justify-content:space-between; align-items:end; gap:40px; }
.hero-bottom p { max-width:540px; margin:0; font-size:clamp(18px,1.6vw,25px); line-height:1.35; letter-spacing:-.025em; }
.primary-cta { display:flex; align-items:center; justify-content:space-between; gap:28px; min-width:250px; background:var(--green); color:white; padding:18px 20px; font-size:14px; }
.hero-mark { position:absolute; width:min(340px,24vw); right:7vw; top:20%; opacity:.055; transform:rotate(-7deg); }
.proof { display:grid; grid-template-columns:repeat(3,1fr); background:var(--ink); color:white; padding:0 clamp(24px,4vw,68px); }
.proof article { display:flex; flex-direction:column; gap:10px; padding:54px 0; border-right:1px solid rgba(255,255,255,.2); }
.proof article+article { padding-left:clamp(24px,4vw,68px); }
.proof article:last-child { border:0; }
.proof strong { font-size:clamp(46px,6vw,88px); line-height:.9; letter-spacing:-.06em; font-weight:500; }
.proof span { color:rgba(255,255,255,.62); font-size:13px; text-transform:uppercase; letter-spacing:.1em; }
.intro,.services { padding:120px clamp(24px,4vw,68px); }
.intro { display:grid; grid-template-columns:1fr 3fr; gap:40px; background:white; }
.section-label { font-size:11px; letter-spacing:.14em; text-transform:uppercase; }
h2 { margin:0; font-size:clamp(46px,6.5vw,100px); line-height:.95; letter-spacing:-.055em; font-weight:500; }
.lead { max-width:720px; margin:54px 0 70px; font-size:clamp(20px,2vw,29px); line-height:1.4; letter-spacing:-.03em; }
.principles { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
.principles article { padding:26px 28px 0 0; }
.principles article+article { border-left:1px solid var(--line); padding-left:28px; }
.principles h3 { margin:0 0 34px; font-size:13px; text-transform:uppercase; letter-spacing:.1em; }
.principles p { margin:0; color:#5d5c57; line-height:1.55; }
.services-heading { display:grid; grid-template-columns:2fr 1fr; gap:50px; margin:54px 0 90px; align-items:end; }
.services-heading p { margin:0 0 8px; max-width:420px; font-size:18px; line-height:1.5; }
.service-list { border-top:1px solid var(--line); }
.service-list article { display:grid; grid-template-columns:70px 1fr 1.2fr 64px 28px; gap:22px; align-items:center; padding:30px 0; border-bottom:1px solid var(--line); transition:color .25s,padding .25s; }
.service-list article:hover { color:var(--green); padding-left:12px; }
.service-list span { font-size:11px; }
.service-list h3 { margin:0; font-size:clamp(24px,3vw,42px); letter-spacing:-.04em; font-weight:500; }
.service-list p { margin:0; max-width:520px; color:#5d5c57; line-height:1.5; }
.service-list img { width:52px; opacity:.24; transition:opacity .25s,transform .35s; }
.service-list article:hover img { opacity:1; transform:rotate(8deg) scale(1.08); }
.signal-strip { overflow:hidden; background:var(--green); color:white; padding:17px 0; font-size:11px; letter-spacing:.18em; white-space:nowrap; }
.signal-strip div { display:flex; width:max-content; gap:32px; align-items:center; animation:ticker 22s linear infinite; }
.signal-strip b { color:#98b3a4; }
.contact { position:relative; overflow:hidden; display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(50px,7vw,120px); min-height:760px; background:var(--ink); color:white; padding:100px clamp(24px,4vw,68px); }
.section-label.light { color:rgba(255,255,255,.55); margin-bottom:90px; }
.contact h2 { font-size:clamp(62px,8.5vw,136px); }
.contact h2 em { color:#aebdb5; }
.contact-action { align-self:center; width:100%; max-width:620px; z-index:2; }
.contact-action p { font-size:20px; line-height:1.5; color:rgba(255,255,255,.72); }
.contact-action small { color:rgba(255,255,255,.45); }
.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:20px 18px; margin-top:34px; }
.contact-form label { display:flex; flex-direction:column; gap:9px; color:rgba(255,255,255,.62); font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
.contact-form .full,.contact-form button,.contact-form small { grid-column:1/-1; }
.contact-form input,.contact-form textarea { width:100%; border:0; border-bottom:1px solid rgba(255,255,255,.28); border-radius:0; outline:0; background:transparent; color:white; padding:9px 0 13px; font:inherit; font-size:16px; text-transform:none; resize:vertical; }
.contact-form input:focus,.contact-form textarea:focus { border-color:#9eb5a9; }
.contact-form button { display:flex; align-items:center; justify-content:space-between; border:1px solid rgba(255,255,255,.2); background:var(--green); color:white; padding:19px 20px; font:inherit; cursor:pointer; }
.contact-form button:disabled { opacity:.6; cursor:wait; }
.contact-form .honey { position:absolute; left:-9999px; }
.form-notice { margin-top:28px; padding:18px; border:1px solid rgba(255,255,255,.22); color:white; line-height:1.5; }
.form-notice-error { border-color:rgba(231,163,149,.6); color:#f0b4a8; }
[hidden] { display:none!important; }
.contact>img { position:absolute; right:-90px; top:-40px; width:520px; opacity:.05; }
footer { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:30px clamp(24px,4vw,68px); background:white; font-size:11px; text-transform:uppercase; letter-spacing:.1em; }
.footer-logo { display:block; width:120px; height:20px; overflow:hidden; }
.footer-logo img { width:120px; display:block; }
footer p { margin:0; }
@media (max-width:800px) {
  nav>a:not(.nav-cta){display:none}.site-header{padding:22px 20px}.brand{width:118px;height:20px}.brand img{width:118px}.hero{min-height:820px;padding:132px 20px 30px}h1{margin-top:46px}.hero-bottom{align-items:stretch;flex-direction:column}.primary-cta{min-width:0}.proof{grid-template-columns:1fr;padding:0 20px}.proof article,.proof article+article{padding:32px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.18)}.intro,.services{padding:78px 20px}.intro{grid-template-columns:1fr}.principles{grid-template-columns:1fr}.principles article,.principles article+article{padding:24px 0;border-left:0;border-bottom:1px solid var(--line)}.principles h3{margin-bottom:14px}.services-heading{grid-template-columns:1fr;margin-bottom:50px}.service-list article{grid-template-columns:38px 1fr 40px 20px;gap:12px}.service-list article p{display:none}.service-list img{width:34px}.contact{grid-template-columns:1fr;min-height:850px;padding:70px 20px}.contact-form{grid-template-columns:1fr}.section-label.light{margin-bottom:56px}footer{align-items:flex-start;flex-direction:column;padding:30px 20px}
}
@media (prefers-reduced-motion:no-preference) {
  .hero h1,.hero .eyebrow,.hero-bottom{animation:rise .85s 2.05s both cubic-bezier(.2,.7,.2,1)}.hero h1{animation-delay:2.14s}.hero-bottom{animation-delay:2.24s}
  .reveal{opacity:0;transform:translateY(50px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}.reveal.is-visible{opacity:1;transform:translateY(0)}
  .services.reveal .service-list article{opacity:0;transform:translateX(-22px);transition:opacity .7s var(--delay),transform .7s var(--delay),color .25s,padding .25s}.services.reveal.is-visible .service-list article{opacity:1;transform:translateX(0)}
  @keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}
  @keyframes introMark{to{opacity:1;transform:scale(1) rotate(0)}}
  @keyframes introType{to{opacity:1;transform:translateY(0)}}
  @keyframes lineDraw{to{transform:rotate(32deg) scaleY(1)}}
  @keyframes lineDrawX{to{transform:rotate(-12deg) scaleX(1)}}
  @keyframes ticker{to{transform:translateX(-42%)}}
}
@media (prefers-reduced-motion:reduce){.brand-intro{display:none}}
