
:root { --paper:#f2f0ea; --paper-bright:#f8f7f3; --ink:#17201f; --muted:#59615f; --line:#cbc9c1; --accent:#a9472c; --dark:#182322; --dark-muted:#aeb8b4; --max:1360px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:96px; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
p { margin:0; }
.site-header { height:84px; max-width:var(--max); margin:0 auto; padding:0 48px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }
.wordmark { display:flex; align-items:center; gap:16px; }
.wordmark span { width:34px; height:34px; border:1px solid var(--ink); display:grid; place-items:center; font-size:11px; letter-spacing:.08em; }
.wordmark strong { font-size:14px; letter-spacing:.02em; }
nav { display:flex; align-items:center; gap:clamp(22px,2.7vw,42px); font-size:12px; }
nav a { padding:10px 0; border-bottom:1px solid transparent; transition:border-color .2s ease,color .2s ease; }
nav a:hover, nav a:focus-visible { border-color:var(--accent); color:var(--accent); }
.nav-contact { color:var(--accent); }
.section-shell { max-width:var(--max); margin:0 auto; padding-left:48px; padding-right:48px; display:grid; grid-template-columns:17% 1fr; gap:5%; }
.section-label { padding-top:8px; display:flex; gap:20px; font-size:11px; text-transform:uppercase; letter-spacing:.16em; color:var(--muted); }
.section-label span { color:var(--accent); }
.section-content { min-width:0; }
.eyebrow { color:var(--accent); text-transform:uppercase; letter-spacing:.18em; font-size:11px; font-weight:700; }
.eyebrow-light { color:#d77a5f; }
.hero { position:relative; min-height:calc(100vh - 84px); max-height:920px; padding-top:9vh; padding-bottom:62px; display:block; }
.hero-kicker { color:var(--accent); text-transform:uppercase; letter-spacing:.19em; font-size:11px; font-weight:700; }
.hero h1 { margin:8vh 0 0; max-width:1080px; font-family:Georgia,'Times New Roman',serif; font-weight:400; font-size:clamp(60px,8.2vw,126px); line-height:.91; letter-spacing:-.055em; }
.hero-lower { margin-top:8vh; margin-left:45%; display:grid; grid-template-columns:minmax(280px,480px) auto; gap:60px; align-items:end; }
.hero-intro { font-family:Georgia,'Times New Roman',serif; font-size:clamp(19px,1.7vw,26px); line-height:1.45; color:#33403e; }
.text-link { color:var(--accent); font-size:12px; white-space:nowrap; padding-bottom:7px; border-bottom:1px solid var(--accent); }
.text-link span { margin-left:22px; }
.hero-index { position:absolute; left:48px; bottom:68px; font-size:10px; letter-spacing:.14em; color:var(--muted); }
.hero-index span { margin:0 6px; color:var(--line); }
.what-section { padding-top:130px; padding-bottom:150px; background:var(--paper-bright); max-width:none; grid-template-columns:minmax(140px,calc((100vw - var(--max))/2 + 17%)) minmax(0,1fr); padding-left:max(48px,calc((100vw - var(--max))/2 + 48px)); padding-right:max(48px,calc((100vw - var(--max))/2 + 48px)); }
.what-section .section-content { max-width:1030px; }
.section-content>h2 { margin:0 0 75px; max-width:900px; font-family:Georgia,'Times New Roman',serif; font-size:clamp(43px,5vw,72px); line-height:1.03; letter-spacing:-.035em; font-weight:400; }
.services { border-top:1px solid var(--line); }
.service { display:grid; grid-template-columns:90px 1fr; padding:48px 0 54px; border-bottom:1px solid var(--line); }
.service-number { color:var(--accent); font-size:11px; padding-top:3px; }
.service h3 { max-width:760px; margin:20px 0 26px; font-family:Georgia,'Times New Roman',serif; font-weight:400; font-size:clamp(26px,2.6vw,38px); line-height:1.2; letter-spacing:-.02em; }
.service p:not(.eyebrow) { max-width:710px; margin:12px 0; color:var(--muted); font-size:15px; line-height:1.75; }
.approach-section { background:var(--dark); color:#f2f1eb; }
.dark-shell { padding-top:140px; padding-bottom:140px; }
.section-label-light { color:var(--dark-muted); }
.approach-section h2 { margin-top:20px; margin-bottom:70px; font-size:clamp(52px,6.6vw,96px); }
.approach-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:10%; padding-top:38px; border-top:1px solid #40504d; }
.approach-lead { font-family:Georgia,'Times New Roman',serif; font-size:clamp(24px,2.3vw,34px); line-height:1.35; }
.approach-copy { color:var(--dark-muted); font-size:15px; line-height:1.8; max-width:580px; }
.approach-copy p+p { margin-top:18px; }
blockquote { margin:100px 0 38px; padding:52px 0 0 10%; border-top:1px solid #40504d; color:#f3e9e2; font-family:Georgia,'Times New Roman',serif; font-size:clamp(33px,4.6vw,66px); line-height:1.12; letter-spacing:-.025em; }
.approach-final { max-width:620px; margin-left:10%; color:var(--dark-muted); line-height:1.75; }
.research-section { padding-top:145px; padding-bottom:150px; }
.research-content { display:grid; grid-template-columns:1fr 1fr; column-gap:8%; }
.research-content .eyebrow { grid-column:1/-1; margin-bottom:28px; }
.research-content h2 { margin-bottom:0; font-size:clamp(42px,4.3vw,66px); }
.large-copy { align-self:end; padding-bottom:7px; color:var(--muted); font-family:Georgia,'Times New Roman',serif; font-size:clamp(20px,2vw,27px); line-height:1.55; }
.about-section { padding-top:135px; padding-bottom:145px; border-top:1px solid var(--line); }
.about-content { display:grid; grid-template-columns:1fr .78fr; gap:9%; }
.about-heading-wrap h2 { margin-top:24px; font-size:clamp(40px,4.5vw,67px); }
.about-copy { padding-top:34px; color:var(--muted); font-size:15px; line-height:1.78; }
.about-copy p+p { margin-top:22px; }
.about-copy strong { color:var(--ink); font-weight:700; }
.closing-principle { border-left:2px solid var(--accent); padding-left:24px; color:var(--ink); font-family:Georgia,'Times New Roman',serif; font-size:20px; line-height:1.5; }
.contact-section { background:var(--accent); color:#fff8f3; }
.contact-shell { padding-top:120px; padding-bottom:130px; }
.contact-section .section-label-light,.contact-section .eyebrow-light { color:#f3c5b8; }
.contact-section .section-label span { color:#fff8f3; }
.contact-section h2 { margin:18px 0 42px; font-size:clamp(50px,6.3vw,88px); }
.contact-section .section-content>p:not(.eyebrow) { max-width:680px; color:#f6ded7; font-size:16px; line-height:1.75; }
.email-link { display:inline-flex; align-items:center; gap:60px; margin-top:55px; padding:18px 0; border-bottom:1px solid #fff8f3; font-family:Georgia,'Times New Roman',serif; font-size:27px; }
.email-link span { transition:transform .2s ease; }
.email-link:hover span { transform:translate(3px,-3px); }
footer { max-width:var(--max); margin:0 auto; min-height:110px; padding:36px 48px; display:grid; grid-template-columns:1fr 1fr auto; align-items:center; gap:30px; color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.13em; }
footer a { color:var(--ink); }
@keyframes rise { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
.reveal { animation:rise .65s ease both; }
.reveal-delay-1 { animation-delay:.08s; }
.reveal-delay-2 { animation-delay:.16s; }
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto} *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important} }
@media (max-width:900px) {
  .site-header{padding:0 24px;height:72px} nav a:not(.nav-contact){display:none}
  .section-shell{padding-left:24px;padding-right:24px;grid-template-columns:1fr;gap:44px}.section-label{padding-top:0}
  .hero{min-height:calc(100svh - 72px);padding-top:65px;padding-bottom:50px;display:flex;flex-direction:column}.hero h1{margin-top:50px;font-size:clamp(52px,13vw,90px)}
  .hero-lower{margin:auto 0 0;grid-template-columns:1fr;gap:34px}.hero-intro{max-width:620px}.text-link{width:fit-content}.hero-index{display:none}
  .what-section{padding:95px 24px 105px;grid-template-columns:1fr}.what-section .section-content{max-width:none}.section-content>h2{margin-bottom:55px}
  .dark-shell,.research-section,.about-section{padding-top:95px;padding-bottom:105px}.approach-grid{grid-template-columns:1fr;gap:32px}blockquote{margin-top:70px;padding-left:0}.approach-final{margin-left:0}
  .research-content,.about-content{grid-template-columns:1fr;gap:42px}.large-copy{padding:0}.contact-shell{padding-top:90px;padding-bottom:100px}
}
@media (max-width:560px) {
  .wordmark strong{font-size:13px}.nav-contact{font-size:0}.nav-contact::after{content:'Contact';font-size:11px}.hero{padding-top:44px}.hero-kicker{max-width:300px;line-height:1.6}
  .hero h1{margin-top:40px;font-size:clamp(48px,15.3vw,70px);line-height:.95}.hero-lower{padding-top:60px}.hero-intro{font-size:19px}
  .what-section,.dark-shell,.research-section,.about-section,.contact-shell{padding-top:74px;padding-bottom:82px}.section-content>h2{font-size:40px}
  .service{grid-template-columns:38px 1fr;padding:38px 0 42px}.service h3{font-size:27px}.service p:not(.eyebrow),.approach-copy,.about-copy{font-size:14px}
  .approach-section h2,.contact-section h2{font-size:47px}blockquote{font-size:34px}.about-heading-wrap h2{font-size:38px}.email-link{gap:40px;font-size:24px}
  footer{padding:34px 24px;grid-template-columns:1fr auto}footer p:nth-child(2){display:none}
}
