@font-face { font-family:'Instrument Sans'; src:url('/assets/fonts/instrument-sans.woff2') format('woff2'); font-style:normal; font-weight:400 700; font-display:swap; }
:root { --ink:#172e28; --muted:#61716a; --accent:#355f47; --lime:#e3f2a4; --line:#dde3d9; --paper:#fbfcf8; font-family:'Instrument Sans',Arial,sans-serif; font-synthesis:none; color:var(--ink); background:var(--paper); scroll-behavior:smooth; scroll-padding-top:32px; }
* { box-sizing:border-box; }
body { margin:0; overflow-x:clip; overflow-wrap:anywhere; }
a { color:inherit; text-decoration:none; }
p,h1,h2 { margin:0; }
button { font:inherit; color:inherit; cursor:pointer; }
button,a { -webkit-tap-highlight-color:transparent; outline-offset:5px; }
:focus-visible { outline:2px solid var(--accent); }
::selection { background:#e3f2a4; color:#172e28; }
[hidden] { display:none!important; }
.wrap { width:min(100% - 112px,1248px); margin-inline:auto; }
.skip-link { position:fixed; z-index:20; left:16px; top:12px; background:var(--ink); color:#fff; padding:12px 20px; transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.opening { position:relative; z-index:1; }
.site-header { display:flex; align-items:center; justify-content:space-between; min-height:96px; gap:32px; border-bottom:1px solid var(--line); }
.brand { display:inline-flex; align-items:center; gap:9px; min-height:44px; }
.wordmark { font-size:35px; font-weight:650; letter-spacing:-.065em; line-height:1; }
.brand-mark { display:flex; gap:3px; width:25px; height:26px; transform:skewY(-20deg); }
.brand-mark i { display:block; width:10px; background:currentColor; border-radius:1px 4px 1px 1px; height:21px; }
.brand-mark i:last-child { height:15px; margin-top:6px; }
nav { display:flex; gap:36px; align-items:center; font-size:14px; font-weight:550; }
nav a { display:inline-flex; align-items:center; min-height:44px; }
nav a:hover { color:var(--accent); }
.nav-contact { border:1px solid #172e2833; border-radius:7px; padding:10px 17px; gap:24px; background:#fbfcf8cc; }
.nav-contact:hover { border-color:var(--accent); }
.arrow { display:block; width:16px; height:16px; flex:0 0 16px; }
.hero-art { position:absolute; z-index:-1; top:0; right:calc((100% - 100vw) / 2); width:100vw; height:100%; overflow:hidden; pointer-events:none; mask-image:linear-gradient(to right,transparent 36%,#000 64%); }
.hero-glow { position:absolute; width:680px; height:680px; right:-180px; top:-160px; border-radius:50%; background:radial-gradient(ellipse at center,#e2edc6 0%,#dfe9da66 40%,transparent 68%); }
.flow-art { position:absolute; width:1250px; height:960px; top:-130px; right:-215px; opacity:.95; }
.flow-band { transform-origin:center; }
.hero { position:relative; isolation:isolate; padding-top:92px; padding-bottom:82px; }
.hero::before { content:''; position:absolute; z-index:-1; inset:0; border-inline:1px solid #dde3d94d; pointer-events:none; }
.eyebrow { font-size:12px; font-weight:550; line-height:1.5; letter-spacing:.07em; text-transform:uppercase; }
.hero-eyebrow { display:flex; align-items:center; gap:10px; margin-bottom:30px; color:#46604f; }
.hero-eyebrow::before { content:''; width:6px; height:6px; background:#608541; border-radius:50%; }
h1 { font-weight:500; font-size:clamp(60px,6.5vw,90px); line-height:1.04; letter-spacing:-.055em; position:relative; max-width:1000px; }
h1>span { display:block; }
.hero-second { color:#6a7c6c; max-width:700px; }
.hero-bottom { margin-top:29px; max-width:420px; }
.hero-bottom>p { color:#4e6157; font-size:19px; line-height:1.55; letter-spacing:-.012em; }
.hero-actions { display:flex; align-items:center; margin-top:28px; }
.button { display:inline-flex; justify-content:space-between; gap:28px; align-items:center; min-height:48px; max-width:100%; padding:13px 19px; border:1px solid var(--ink); border-radius:7px; color:#fff; background:var(--ink); font-size:14px; font-weight:550; line-height:1.4; transition:background .18s,border-color .18s; }
.button:hover { background:#365944; border-color:#365944; }
.text-link { display:inline-flex; align-items:center; gap:11px; font-size:14px; line-height:1.5; font-weight:550; min-height:44px; }
.text-link:hover { color:var(--accent); }
.practice-strip { display:grid; grid-template-columns:repeat(3,1fr); position:relative; border-block:1px solid var(--line); }
.practice-strip p { display:flex; align-items:center; gap:16px; min-height:108px; padding:24px 28px; font-size:18px; font-weight:500; letter-spacing:-.015em; }
.practice-strip p:first-child { padding-left:0; }
.practice-strip p+p { border-left:1px solid var(--line); }
.practice-number { color:#69776d; font-size:11px; font-weight:400; letter-spacing:0; }
.practice-glyph { display:block; position:relative; flex-shrink:0; width:26px; height:26px; margin-left:auto; color:#52715a; }
.glyph-strategy { border:1px solid; border-radius:50%; }
.glyph-strategy::before { content:''; position:absolute; inset:5px; border:1px solid; border-radius:50%; }
.glyph-strategy::after { content:''; position:absolute; width:4px; height:4px; background:currentColor; border-radius:50%; left:10px; top:10px; }
.glyph-operations { background:repeating-linear-gradient(90deg,currentColor 0 1px,transparent 1px 8px),repeating-linear-gradient(0deg,currentColor 0 1px,transparent 1px 8px); width:25px; height:25px; }
.glyph-performance { background:linear-gradient(currentColor,currentColor) 0 100%/5px 35% no-repeat,linear-gradient(currentColor,currentColor) 10px 100%/5px 65% no-repeat,linear-gradient(currentColor,currentColor) 20px 100%/5px 100% no-repeat; }
.section { padding-block:110px; }
h2 { font-size:clamp(38px,3.8vw,54px); line-height:1.08; font-weight:500; letter-spacing:-.045em; text-wrap:balance; }
.muted { color:var(--muted); }
.approach { background:#f1f3ec; margin-top:0; border-bottom:1px solid var(--line); }
.approach-layout { display:grid; grid-template-columns:1.2fr 1fr; gap:100px; }
.approach-layout>*,.contact-layout>* { min-width:0; }
.approach-intro>.eyebrow { margin-bottom:30px; color:#546653; }
.approach-copy { padding-top:47px; }
.approach-copy p { font-size:18px; line-height:1.65; color:var(--muted); max-width:430px; }
.approach-copy p:first-child { color:var(--ink); }
.approach-copy p+p { margin-top:19px; }
.relationship { display:flex; align-items:center; gap:28px; padding-top:65px; font-size:12px; color:#5d705f; }
.relationship>span:not(.relationship-line) { display:flex; align-items:center; gap:10px; }
.relationship>span:not(.relationship-line)::before { content:''; width:6px; height:6px; border:1px solid #708269; border-radius:50%; }
.relationship-line { flex:1; height:1px; background:linear-gradient(to right,#c7d0bc,#829575); }
.contact { position:relative; overflow:hidden; background:#172e28; color:#f5f7ef; padding-bottom:0; }
.contact::before { content:''; position:absolute; inset:0; background:radial-gradient(circle at 90% 0%,#789a4b1c,transparent 45%); pointer-events:none; }
.contact-layout { position:relative; display:grid; grid-template-columns:1.2fr 1fr; align-items:end; gap:100px; padding-bottom:84px; }
.contact .eyebrow { color:#becbaa; margin-bottom:30px; }
.contact h2 { font-size:clamp(58px,6.3vw,88px); line-height:1.02; letter-spacing:-.05em; }
.contact-action { padding-bottom:4px; }
.contact-action>p:first-child { font-size:20px; line-height:1.5; letter-spacing:-.015em; max-width:330px; color:#c5d0c4; }
.contact-action .contact-email { margin-top:30px; }
.contact .button { background:var(--lime); border-color:var(--lime); color:var(--ink); padding-inline:20px; gap:38px; }
.contact .button:hover { background:#f0facd; border-color:#f0facd; }
.contact :focus-visible { outline-color:var(--lime); }
.contact-rule { height:1px; background:#9db39b4d; position:relative; }
.contact-rule span { display:block; width:72px; height:1px; background:var(--lime); }
.site-footer { padding-top:0; }
.footer-main { display:grid; grid-template-columns:1.2fr 1fr auto; gap:45px; align-items:start; padding-block:46px; }
.footer-main>p { font-size:13px; line-height:1.65; color:#61716a; }
.footer-bottom { border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:16px; font-size:11px; color:#61716a; }
.motion-toggle { background:none; border:0; padding:10px 0; min-height:44px; font-size:11px; text-decoration:underline; text-underline-offset:4px; }
.motion-toggle:disabled { text-decoration:none; cursor:default; }
.not-found { min-height:85vh; display:flex; flex-direction:column; justify-content:center; gap:25px; align-items:start; }
.not-found>p { color:var(--muted); line-height:1.6; }
@media(min-width:1600px) { .flow-art { right:calc((100vw - 1440px) / 2 - 215px); } .hero-glow { right:calc((100vw - 1440px) / 2 - 180px); } }
@media(max-width:1100px) {
 .wrap { width:calc(100% - 80px); }
 h1 { font-size:72px; }
 .hero-second { max-width:570px; }
 .hero { padding-top:80px; padding-bottom:70px; }
 .flow-art { right:-355px; }
 .hero-art { mask-image:linear-gradient(to right,transparent 36%,#000 80%); }
 .section { padding-block:84px; }
 .approach-layout,.contact-layout { gap:60px; }
 .contact { padding-bottom:0; }
 .practice-strip p { padding-inline:20px; font-size:16px; gap:12px; }
 .practice-glyph { width:25px; }
}
@media(max-width:780px) {
 .wrap { width:calc(100% - 48px); }
 .site-header { min-height:84px; }
 nav { gap:24px; font-size:13px; }
 .wordmark { font-size:32px; }
 .hero { padding-top:70px; padding-bottom:64px; }
 h1 { font-size:clamp(48px,8.5vw,66px); }
 .hero-second { max-width:520px; }
 .hero-art { mask-image:linear-gradient(to right,transparent 25%,#000 95%); }
 .flow-art { width:1100px; top:-105px; right:-510px; opacity:.7; }
 .hero-glow { width:450px; right:-230px; }
 .hero-bottom>p { font-size:18px; max-width:360px; }
 .approach-layout { grid-template-columns:1fr; gap:30px; }
 .approach h2 { font-size:44px; }
 .approach-copy { padding-top:0; }
 .approach-copy p { max-width:540px; }
 .contact-layout { grid-template-columns:1fr; gap:38px; padding-bottom:64px; }
 .contact h2 { font-size:68px; }
 .contact-action>p:first-child { max-width:390px; }
 .practice-strip p { flex-wrap:wrap; padding:20px 16px; gap:10px; font-size:15px; min-height:94px; }
 .practice-number { width:100%; }
 .practice-glyph { display:none; }
 .relationship { gap:18px; padding-top:44px; }
 .footer-main { grid-template-columns:1fr 1fr; gap:28px; }
 .footer-main>p { grid-row:2; }
 .footer-main .text-link { justify-self:end; }
}
@media(max-width:480px) {
 :root { scroll-padding-top:20px; }
 .wrap { width:calc(100% - 40px); }
 .site-header { min-height:82px; gap:15px; }
 nav { gap:0; }
 nav>a:first-child { display:none; }
 .nav-contact { padding:9px 13px; gap:13px; }
 .hero { padding-top:57px; padding-bottom:54px; }
 .hero-eyebrow { font-size:10px; margin-bottom:27px; }
 h1 { font-size:clamp(40px,10.6vw,51px); letter-spacing:-.05em; line-height:1.08; }
 .hero-second { max-width:340px; }
 .hero-bottom { margin-top:25px; }
 .hero-bottom>p { font-size:17px; max-width:295px; }
 .hero-art { opacity:.55; mask-image:linear-gradient(to right,transparent 15%,#000 95%); }
 .flow-art { width:930px; height:780px; top:-120px; right:-570px; }
 .hero-glow { right:-280px; }
 .hero-actions { margin-top:26px; }
 .practice-strip p { padding-inline:12px; min-height:86px; gap:10px; font-size:13px; letter-spacing:-.02em; }
 .practice-number { font-size:10px; }
 .section { padding-block:62px; }
 .approach-intro>.eyebrow { margin-bottom:24px; }
 .approach h2 { font-size:clamp(31px,8.5vw,40px); }
 .approach-copy p { font-size:16px; line-height:1.6; }
 .relationship { gap:12px; font-size:10px; padding-top:36px; }
 .relationship>span:not(.relationship-line) { gap:5px; }
 .contact { padding-bottom:0; }
 .contact h2 { font-size:clamp(42px,12vw,57px); }
 .contact-layout { gap:30px; padding-bottom:55px; }
 .contact .eyebrow { font-size:10px; margin-bottom:25px; }
 .contact-action>p:first-child { font-size:17px; max-width:300px; }
 .contact-action .contact-email { margin-top:24px; }
 .contact .button { gap:24px; }
 .footer-main { padding-block:34px; gap:23px; }
 .footer-main>p { font-size:12px; grid-column:1 / -1; }
 .footer-main .text-link { font-size:12px; }
 .footer-bottom { align-items:center; gap:12px; font-size:10px; }
 .motion-toggle { flex-shrink:0; font-size:10px; }
}
@media(max-width:360px) { .practice-strip p { padding-inline:8px; font-size:12px; } }
@media(prefers-reduced-motion:reduce) { :root { scroll-behavior:auto; } * { animation:none!important; transition:none!important; } }
:root[data-reduced-motion='true'] { scroll-behavior:auto; }
:root[data-reduced-motion='true'] * { animation:none!important; transition:none!important; }
@media(forced-colors:active) { .button { border:1px solid ButtonText; } .hero-art { display:none; } }
@media print {
 :root { color:#000; background:#fff; }
 body { overflow:visible; }
 .wrap { width:100%; }
 .hero-art,.skip-link,nav,.hero-actions,.text-link,button,.contact-rule,.relationship { display:none!important; }
 .site-header { min-height:0; padding-bottom:16px; }
 .hero,.section { padding-block:24px; }
 h1 { font-size:40px; }
 h2,.approach h2,.contact h2 { font-size:28px; }
 h1,h2 { break-after:avoid; }
 .hero-second { max-width:none; }
 .approach,.contact { background:#fff; color:#000; }
 .contact-action>p:first-child,.contact .eyebrow { color:#000; }
 .contact .button { color:#000; background:#fff; border:1px solid #000; }
 .contact-layout { padding-bottom:0; }
 .approach-layout,.contact-layout { display:block; }
 .approach-copy,.contact-action { padding-top:20px; }
 .practice-strip p { min-height:60px; }
 .footer-main { padding-block:24px; }
 .footer-bottom { display:block; }
}
