:root { --ink:#142623; --forest:#183934; --paper:#f4f1e9; --cream:#e7e0d1; --coral:#d17b5a; --line:rgba(20,38,35,.25); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"DM Sans",Arial,sans-serif; font-size:16px; line-height:1.5; }
a { color:inherit; text-decoration:none; }
.site-header { display:flex; align-items:center; justify-content:space-between; padding:27px clamp(24px,5vw,76px); border-bottom:1px solid var(--line); }
.wordmark { display:flex; align-items:center; }.wordmark img { display:block; width:250px; height:auto; }
.header-contact,.text-link { font:500 12px "DM Mono",monospace; text-transform:uppercase; letter-spacing:.08em; }.header-contact i { margin-left:6px; font-style:normal; color:var(--coral); }
.hero { padding:clamp(68px,11vw,170px) clamp(24px,8vw,130px) 36px; min-height:670px; display:flex; flex-direction:column; justify-content:space-between; }
.eyebrow { margin:0; color:#5c6a63; font:500 11px "DM Mono",monospace; letter-spacing:.1em; text-transform:uppercase; }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(230px,.55fr); gap:50px; align-items:end; margin:55px 0 auto; }
h1,h2,h3,blockquote { margin:0; font-weight:500; }.hero h1 { font:500 clamp(54px,8.4vw,126px)/.95 "Playfair Display",serif; max-width:960px; letter-spacing:-.055em; }.hero h1 em { color:var(--coral); font-weight:500; }.hero-side { padding-bottom:11px; max-width:300px; }.hero-side p { font-size:18px; line-height:1.55; margin:0 0 38px; }.text-link { display:inline-flex; gap:14px; border-bottom:1px solid currentColor; padding-bottom:7px; }.text-link span { color:var(--coral); font-size:17px; line-height:.7; }
.hero-rule { display:flex; justify-content:space-between; border-top:1px solid var(--ink); padding-top:12px; font:11px "DM Mono",monospace; letter-spacing:.05em; }
.section-grid { display:grid; grid-template-columns:.43fr 1fr; gap:40px; padding:clamp(80px,12vw,180px) clamp(24px,12vw,205px); border-top:1px solid var(--line); }.section-grid h2 { font:500 clamp(35px,4.7vw,72px)/1.05 "Playfair Display",serif; max-width:880px; letter-spacing:-.045em; }.body-copy { max-width:565px; margin:44px 0 0; font-size:19px; line-height:1.65; }
.portrait-break { display:grid; grid-template-columns:minmax(280px,.85fr) minmax(310px,1.15fr); min-height:650px; background:#d9ddd8; }.portrait-image-wrap { overflow:hidden; background:#ced4d0; }.portrait-image-wrap img { width:100%; height:100%; min-height:650px; display:block; object-fit:cover; object-position:50% 18%; filter:saturate(.87) contrast(.98); }.portrait-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(48px,9vw,150px); }.portrait-copy>p:not(.eyebrow) { max-width:490px; margin:32px 0 70px; font:500 clamp(32px,4vw,62px)/1.08 "Playfair Display",serif; letter-spacing:-.04em; }.portrait-copy span { color:#5c6a63; font:11px "DM Mono",monospace; letter-spacing:.09em; text-transform:uppercase; }
.areas { background:var(--forest); color:#eff1e9; padding:clamp(70px,9vw,130px) clamp(24px,8vw,130px); }.area-heading { display:flex; justify-content:space-between; padding-bottom:70px; }.area-heading .eyebrow { color:#c4d0c8; }.area-heading > p:last-child { max-width:260px; margin:0; color:#c4d0c8; font-size:15px; }.areas ol { list-style:none; padding:0; margin:0; border-top:1px solid rgba(255,255,255,.32); }.areas li { display:grid; grid-template-columns:12% 36% 1fr; gap:20px; padding:32px 0; border-bottom:1px solid rgba(255,255,255,.32); }.areas li>span { color:#c4d0c8; font:11px "DM Mono",monospace; }.areas h3 { font:500 clamp(30px,4vw,58px)/.95 "Playfair Display",serif; letter-spacing:-.04em; }.areas li p { margin:2px 0 0; max-width:400px; color:#c4d0c8; }
.quote-section { padding:clamp(100px,14vw,210px) clamp(24px,14vw,245px); }.quote-section blockquote { margin:42px 0 38px; font:500 clamp(37px,5.2vw,78px)/1.08 "Playfair Display",serif; letter-spacing:-.045em; }.quote-author { color:#5c6a63; font:11px "DM Mono",monospace; text-transform:uppercase; letter-spacing:.09em; }
.contact-card { margin:0 clamp(14px,3vw,48px) clamp(14px,3vw,48px); background:var(--cream); padding:clamp(42px,7vw,100px); display:grid; grid-template-columns:1fr .65fr; gap:60px; }.contact-card h2 { margin-top:44px; font:500 clamp(43px,5vw,76px)/.96 "Playfair Display",serif; letter-spacing:-.045em; }.contact-data { align-self:end; display:flex; flex-direction:column; align-items:flex-start; gap:11px; font-size:18px; }.contact-data a { border-bottom:1px solid var(--ink); }.contact-data p { margin:25px 0 0; font-size:15px; line-height:1.6; }
footer { padding:29px clamp(24px,5vw,76px); display:flex; justify-content:space-between; color:#5c6a63; font:11px "DM Mono",monospace; text-transform:uppercase; letter-spacing:.07em; } footer p { margin:0; } footer div { display:flex; gap:20px; } footer a:hover,.header-contact:hover,.wordmark:hover { color:var(--coral); }
.legal { max-width:900px; margin:0 auto; padding:100px 28px; }.legal h1 { font:500 58px/1 "Playfair Display",serif; letter-spacing:-.04em; margin-bottom:55px; }.legal h2 { font:500 27px "Playfair Display",serif; margin:42px 0 12px; }.legal p,.legal li { max-width:760px; }.legal ul { padding-left:20px; }
@media (max-width:720px) { .site-header { padding:18px 22px; }.wordmark img { width:200px; }.header-contact { font-size:10px; }.hero { min-height:580px; padding:70px 24px 25px; }.hero-grid { grid-template-columns:1fr; gap:38px; margin-top:40px; }.hero-side p { font-size:16px; }.hero-rule { font-size:9px; }.section-grid,.contact-card,.portrait-break { grid-template-columns:1fr; }.section-grid { gap:32px; padding:85px 24px; }.body-copy { font-size:17px; }.portrait-break { min-height:0; }.portrait-image-wrap img { min-height:0; height:auto; aspect-ratio:1/1.03; object-position:50% 16%; }.portrait-copy { padding:55px 25px 70px; }.portrait-copy>p:not(.eyebrow) { margin:27px 0 42px; }.area-heading { display:block; padding-bottom:45px; }.area-heading > p:last-child { margin-top:18px; }.areas { padding:70px 24px; }.areas li { grid-template-columns:34px 1fr; gap:16px; }.areas li p { grid-column:2; font-size:14px; }.quote-section { padding:110px 24px; }.contact-card { margin:0 14px 14px; gap:80px; padding:48px 30px; }.contact-data { font-size:16px; } footer { padding:27px 24px; font-size:9px; } }
