:root {
  --paper:#f3f0e9; --white:#faf8f3; --ink:#302737; --muted:#736b75;
  --purple:#6f4c87; --dark:#33263e; --lilac:#d9c6eb; --line:#d8d1d5;
  --serif:'Instrument Serif',Georgia,serif; --sans:'Manrope',sans-serif;
  --gutter:clamp(24px,4.7vw,80px); --ease:cubic-bezier(.22,1,.36,1);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body { margin:0; color:var(--ink); background:var(--paper); font:14px/1.8 var(--sans); }
a { color:inherit; text-decoration:none; }
button,input { font:inherit; }
button { cursor:pointer; color:inherit; border:0; }
a,button,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:2px solid var(--purple); outline-offset:5px; }
::selection { background:var(--lilac); color:var(--dark); }
img { display:block; width:100%; height:auto; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; }
h1,h2 { line-height:.98; letter-spacing:-.035em; }
h2 { font-size:clamp(52px,5.6vw,84px); }
em { color:var(--purple); font-weight:400; }
.section-wrap { max-width:1520px; margin-inline:auto; padding-inline:var(--gutter); }
.section-space { padding-block:96px; }
.eyebrow,.section-index { font-size:10px; font-weight:500; line-height:1.7; letter-spacing:.12em; }
.section-index { display:flex; justify-content:space-between; gap:20px; padding-top:20px; border-top:1px solid var(--line); }
.section-index > :last-child { color:var(--muted); }
.button { display:inline-flex; min-height:54px; max-width:100%; width:fit-content; padding:15px 26px; align-items:center; justify-content:center; border:1px solid transparent; border-radius:999px; color:var(--white); background:var(--ink); font-size:13px; line-height:1.5; text-align:center; transition:background .2s,border-color .2s; }
.button-secondary { color:var(--paper); background:transparent; border-color:#d9c6eb70; }
.text-link,.story-read { display:inline-flex; align-items:center; min-height:44px; border-bottom:1px solid var(--line); font-size:13px; }
.direction-icon { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.reading-progress { position:fixed; z-index:50; inset:0 0 auto; height:2px; background:var(--purple); transform:scaleX(0); transform-origin:left; pointer-events:none; }
.header { position:sticky; top:0; z-index:20; height:90px; padding-inline:var(--gutter); display:flex; justify-content:space-between; align-items:center; gap:24px; background:rgb(243 240 233 / .97); border-bottom:1px solid var(--line); backdrop-filter:blur(14px); }
.wordmark { display:inline-block; white-space:nowrap; font-size:36px; font-weight:700; line-height:.9; letter-spacing:-2.9px; }
.wordmark > span { font-weight:400; }
.wordmark sup { font:500 18px/1 var(--sans); margin-left:4px; letter-spacing:0; vertical-align:top; }
.wordmark small { display:block; margin-top:13px; font:500 7px var(--sans); letter-spacing:2px; }
.header nav { display:flex; gap:34px; }
.header nav a { display:flex; align-items:center; min-height:44px; gap:9px; font-size:13px; border-bottom:1px solid transparent; }
.header nav a > span { font-size:9px; color:var(--muted); }
.header nav a[aria-current] { border-color:var(--ink); }
.header-cta { min-height:44px; display:flex; align-items:center; justify-content:center; padding:9px 21px; border:1px solid var(--line); border-radius:999px; font-size:12px; }
.menu-toggle { display:none; }
.hero { max-width:1520px; margin:auto; padding:20px var(--gutter) 0; }
.hero-overline { display:flex; justify-content:space-between; gap:20px; margin-bottom:28px; color:var(--muted); }
.hero-overline .eyebrow { font-size:9px; }
.hero-layout { display:grid; grid-template-columns:1.03fr 1fr; gap:28px; }
.hero-copy { padding:24px 0 30px; }
.hero-prelude { display:flex; align-items:center; gap:12px; font-size:10px; letter-spacing:.13em; }
.small-line { width:30px; height:1px; background:var(--purple); }
h1 { font-size:clamp(100px,10.5vw,160px); line-height:.9; margin:34px 0; letter-spacing:-.05em; }
h1 em { display:inline-block; padding-right:.08em; }
.hero-description { max-width:360px; font-size:15px; line-height:1.8; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 25px; margin-top:28px; }
.hero-note { margin-top:28px; font-size:12px; }
.hero-note span { color:var(--muted); font-size:11px; }
.hero-visual { position:relative; min-width:0; }
.hero-image { position:absolute; inset:0; overflow:hidden; background:#c8c5c0; }
.hero-image img { width:100%; height:100%; object-fit:cover; object-position:50% 42%; }
.hero-image::after { content:''; position:absolute; inset:75% 0 0; background:linear-gradient(transparent,#19102060); }
.hero-photo-bottom { position:absolute; bottom:24px; left:28px; right:24px; display:flex; justify-content:space-between; align-items:center; color:white; }
.hero-photo-bottom > span { font-size:10px; letter-spacing:.1em; line-height:1.6; }
.hero-photo-bottom a { display:grid; place-items:center; width:44px; height:44px; border:1px solid #ffffff85; border-radius:50%; }
.hero-footer { min-height:83px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.hero-footer > span { font-size:10px; letter-spacing:.12em; color:var(--muted); }
.hero-firm { width:245px; display:flex; align-items:center; min-height:44px; }
.official-logo { width:min(360px,100%); display:grid; grid-template-columns:188fr 34fr 142fr; align-items:center; gap:6px; }
.logo-part { display:block; position:relative; overflow:hidden; }
.logo-name { aspect-ratio:188/40; }
.logo-symbol { aspect-ratio:36/40; }
.logo-associates { aspect-ratio:160/40; }
.official-logo img { position:absolute; top:-45%; height:auto; max-width:none; mix-blend-mode:darken; }
.logo-name img { width:515.957%; left:-7.979%; }
.logo-symbol img { width:2694.444%; left:-605.556%; }
.logo-associates img { width:606.25%; left:-167.5%; }
.services { background:var(--dark); color:var(--paper); }
.services em { color:var(--lilac); }
.services :focus-visible { outline-color:var(--lilac); }
.section-top { display:flex; justify-content:space-between; align-items:end; gap:45px; margin-bottom:48px; }
.section-top .eyebrow { margin-bottom:26px; }
.section-top > p { max-width:300px; color:#d1c5d9; font-size:14px; }
.service-list { border-top:1px solid #ffffff30; }
.service { border-bottom:1px solid #ffffff30; }
.service summary { cursor:pointer; list-style:none; display:grid; grid-template-columns:42px minmax(0,1fr) 36px; align-items:center; gap:24px; padding:26px 0; }
summary::-webkit-details-marker { display:none; }
.service-index { font-size:11px; color:var(--lilac); }
.service h3 { font-size:clamp(33px,3.2vw,47px); line-height:1.15; letter-spacing:-.02em; }
.service-name p { margin-top:7px; color:#cdbfd5; font-size:13px; }
.expand { width:36px; height:36px; display:grid; place-items:center; border:1px solid #ffffff40; border-radius:50%; font-size:23px; transition:transform .2s; }
.expand { font-size:0; }
.expand::before { content:"+"; font-size:22px; }
.service[open] .expand { background:var(--lilac); color:var(--dark); }
.service[open] .expand::before { content:"−"; }
.service-detail { display:grid; grid-template-columns:1.1fr 1fr; gap:22px 10%; padding:0 55px 32px 66px; font-size:14px; color:#d1c5d9; }
.service-detail ul { margin:0; padding-left:18px; }
.service-detail li + li { margin-top:6px; }
.service-detail .button { grid-column:1/-1; }
.asset-brief { display:grid; grid-template-columns:1fr 1fr; gap:10%; padding-top:52px; margin-top:8px; }
.asset-brief h3 { font-size:clamp(35px,3.2vw,47px); line-height:1.12; margin-top:20px; }
.asset-brief > div > p:not(.eyebrow) { color:#d1c5d9; font-size:14px; }
.asset-brief p + p { margin-top:16px; }
.asset-brief .button { margin-top:24px; }
.intro-layout { display:grid; grid-template-columns:1fr 1.05fr; align-items:start; gap:10%; margin-top:60px; }
.intro-visual { padding:12px; }
.intro-photo { height:590px; overflow:hidden; transform:rotate(-2deg); }
.intro-photo img { height:100%; object-fit:cover; object-position:center 55%; }
.intro-photo-caption { display:block; margin-top:26px; font-size:10px; color:var(--muted); letter-spacing:.1em; }
.intro-content h2 { font-size:clamp(60px,5.8vw,84px); margin:25px 0; }
.intro-lead { font-size:16px; margin-bottom:17px; line-height:1.7; }
.intro-content > p:not(.eyebrow):not(.intro-lead) { font-size:14px; color:var(--muted); }
.profile-education { margin:26px 0; border-top:1px solid var(--line); }
.profile-education > div { display:grid; grid-template-columns:145px 1fr; gap:20px; border-bottom:1px solid var(--line); padding:14px 0; font-size:13px; line-height:1.6; }
.profile-education dt { font-weight:500; }
.profile-education dd { margin:0; color:var(--muted); }
.profile-content > p:not(.eyebrow) { margin-top:10px; font-size:14px; color:var(--muted); }
.profile-content .text-link { margin-top:10px; }
.bricca-section { padding-top:0; padding-bottom:10px; }
.bricca-panel { display:grid; grid-template-columns:1.2fr 1fr; gap:10%; align-items:center; padding:42px 0; border-block:1px solid var(--line); }
.bricca-copy h2 { font-size:43px; margin:20px 0; }
.bricca-copy > p:not(.eyebrow) { max-width:480px; color:var(--muted); font-size:14px; }
.bricca-copy .text-link { margin-top:15px; }
.bricca-identity { display:flex; flex-direction:column; align-items:center; padding:20px; }
.firm-location { font-size:10px; letter-spacing:.14em; margin-top:22px; color:var(--muted); }
.stories-heading { display:flex; justify-content:space-between; align-items:end; gap:40px; margin:42px 0; }
.stories-heading > p { max-width:290px; color:var(--muted); font-size:14px; }
.story-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.story { min-width:0; }
.story-photo { position:relative; aspect-ratio:4/5; overflow:hidden; background:#d7d0c8; }
.story-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 42%; transition:transform .6s var(--ease); }
.story-wide .story-photo img { object-position:50% 37%; }
.story-photo-number { position:absolute; left:18px; top:15px; color:white; text-shadow:0 1px 5px #0008; font-size:11px; }
.story-meta,.story-wide-copy > .eyebrow { display:block; color:var(--muted); font-size:10px; letter-spacing:.08em; margin:20px 0 10px; }
.story-title h3,.story-wide-copy h3 { font-size:clamp(32px,3vw,44px); letter-spacing:-.025em; line-height:1.1; }
.story-wide-copy h3 br { display:none; }
.story-wide-copy h3 em { color:inherit; }
.story > p,.story-wide-copy > p { font-size:13px; color:var(--muted); margin-top:14px; }
.story-read { margin-top:10px; }
.approach { display:grid; grid-template-columns:1fr 1.2fr; gap:10%; padding-block:15px 30px; }
.approach-heading h2 { margin-top:24px; font-size:60px; }
.approach-steps article { display:grid; grid-template-columns:25px 1fr; gap:20px; border-bottom:1px solid var(--line); padding:24px 0; }
.approach-steps article:first-child { padding-top:0; }
.approach-steps article > span { font-size:11px; color:var(--purple); padding-top:5px; }
.approach-steps h3 { font-size:32px; line-height:1.2; }
.approach-steps p { font-size:14px; color:var(--muted); margin-top:8px; }
.faq { display:grid; grid-template-columns:1fr 1.2fr; gap:10%; }
.faq h2 { margin-top:24px; font-size:60px; }
.faq-list { border-top:1px solid var(--line); }
.faq details { border-bottom:1px solid var(--line); }
.faq summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 0; font-size:14px; }
.faq summary > span { font-size:23px; flex-shrink:0; }
.faq details[open] summary > span { transform:rotate(45deg); }
.faq details p { color:var(--muted); padding:0 25px 24px 0; }
.contact-section { background:var(--lilac); padding:34px var(--gutter); }
.contact-top { display:flex; justify-content:space-between; gap:25px; border-bottom:1px solid #30273730; padding-bottom:22px; }
.contact-inner { display:flex; align-items:center; justify-content:space-between; gap:7%; padding:54px 0; }
.contact-inner h2 { font-size:clamp(80px,10.5vw,150px); }
.contact-inner em { color:var(--dark); }
.contact-action { display:flex; flex:0 0 310px; flex-direction:column; align-items:start; gap:23px; }
.contact-action > span { font-size:10px; letter-spacing:.07em; }
.contact-bottom { display:flex; justify-content:space-between; gap:25px; border-top:1px solid #30273730; padding-top:23px; }
.contact-bottom p { font-size:13px; }
.contact-bottom > span { font-size:10px; text-align:right; letter-spacing:.08em; }
.footer-main { display:flex; justify-content:space-between; align-items:center; gap:30px; padding:48px 0; }
.footer-main address { font-size:12px; font-style:normal; color:var(--muted); }
.footer-links { display:flex; flex-direction:column; font-size:12px; }
.footer-links a { display:flex; align-items:center; min-height:44px; }
.back-top { display:grid; place-items:center; min-width:44px; height:44px; border:1px solid var(--line); border-radius:50%; }
.footer-bottom { border-top:1px solid var(--line); padding:20px 0; display:flex; justify-content:space-between; gap:20px; font-size:10px; color:var(--muted); }
.footer-bottom > span:last-child { font-size:9px; letter-spacing:.05em; }
.skip-link { position:fixed; top:8px; left:8px; z-index:100; padding:12px; color:white; background:var(--dark); transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.reveal-ready { opacity:0; transform:translateY(18px); transition:opacity .65s var(--ease),transform .65s var(--ease); }
.reveal-ready.is-visible { opacity:1; transform:none; }
@media (hover:hover) {
  .button:hover { background:var(--purple); }
  .button-secondary:hover { background:#ffffff0d; border-color:var(--lilac); }
  .header-cta:hover { border-color:var(--ink); }
  .text-link:hover,.footer-links a:hover { color:var(--purple); }
  .service summary:hover h3 { color:var(--lilac); }
  .story:hover img { transform:scale(1.025); }
  .story:hover .story-read { border-color:var(--ink); }
}
@media (max-width:1050px) {
  .hero-layout { gap:22px; }
  h1 { font-size:11vw; }
  .hero-actions { gap:10px 20px; }
  .intro-layout { gap:7%; }
  .intro-photo { height:530px; }
  .profile-education > div { grid-template-columns:1fr; gap:4px; }
  .story-grid { gap:24px; }
  .contact-inner { align-items:start; flex-direction:column; gap:32px; }
  .contact-action { flex-basis:auto; }
  .footer-main { flex-wrap:wrap; }
}
@media (max-width:850px) {
  .header { height:80px; gap:12px; }
  .wordmark { font-size:31px; }
  .header-cta { margin-left:auto; }
  .menu-toggle { display:flex; width:44px; min-width:44px; height:44px; flex-direction:column; justify-content:center; align-items:center; gap:6px; border:1px solid var(--line); border-radius:50%; background:transparent; }
  .menu-toggle span { width:18px; height:1px; background:var(--ink); transition:transform .2s; }
  .menu-toggle[aria-expanded=true] span:first-child { transform:translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
  .header nav { display:none; position:absolute; top:79px; left:0; right:0; padding:15px var(--gutter) 22px; background:var(--paper); border-bottom:1px solid var(--line); box-shadow:0 15px 20px #0001; }
  .header nav.is-open { display:flex; flex-direction:column; gap:0; }
  .header nav a { min-height:58px; font-size:22px; border-bottom:1px solid var(--line); gap:14px; }
  .header nav a[aria-current] { color:var(--purple); }
  .hero-overline .eyebrow { font-size:8px; }
  .hero-copy { padding-top:10px; }
  .hero-prelude { font-size:9px; }
  .hero-description { font-size:14px; }
  .hero-actions { flex-direction:column; align-items:start; }
  .hero-note { font-size:11px; }
  .hero-note span { font-size:10px; }
  .section-space { padding-block:72px; }
  .section-top,.stories-heading { flex-direction:column; align-items:start; gap:22px; }
  .section-top > p,.stories-heading > p { max-width:460px; }
  .service-detail { padding-left:50px; padding-right:0; gap:20px 30px; }
  .asset-brief { gap:6%; }
  .asset-brief h3 { font-size:36px; }
  .intro-content h2 { font-size:59px; }
  .intro-photo { height:460px; }
  .intro-layout { align-items:center; }
  .intro-lead { font-size:15px; }
  .bricca-copy h2 { font-size:39px; }
  .story-title h3,.story-wide-copy h3 { font-size:33px; }
  .approach-heading h2,.faq h2 { font-size:51px; }
}
@media (max-width:600px) {
  :root { --gutter:24px; }
  html { scroll-padding-top:92px; }
  .header { height:76px; padding-inline:20px; display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:8px; }
  .header .wordmark { font-size:27px; letter-spacing:-2px; }
  .wordmark sup { font-size:14px; }
  .header .wordmark small { font-size:6px; letter-spacing:1.3px; margin-top:9px; }
  .header-cta { margin:0; padding-inline:14px; }
  .header nav { top:75px; }
  .hero { padding-top:22px; }
  .hero-overline { display:none; }
  .hero-layout { display:flex; flex-direction:column; gap:24px; }
  .hero-copy { padding:8px 0 0; }
  h1 { font-size:clamp(80px,23vw,126px); margin:24px 0; }
  .hero-prelude { font-size:10px; }
  .hero-description { max-width:370px; font-size:14px; }
  .hero-actions { align-items:stretch; gap:6px; margin-top:22px; }
  .hero-actions .button { width:100%; }
  .hero-actions .text-link { align-self:center; min-height:44px; font-size:12px; }
  .hero-note { display:none; }
  .hero-visual { height:310px; }
  .hero-image img { object-position:50% 42%; }
  .hero-photo-bottom { left:20px; right:18px; bottom:18px; }
  .hero-photo-bottom > span { font-size:10px; }
  .hero-footer { min-height:73px; gap:16px; }
  .hero-footer > span { max-width:130px; font-size:9px; line-height:1.6; letter-spacing:.05em; }
  .hero-firm { width:170px; flex-shrink:0; }
  .section-space { padding-block:56px; }
  h2 { font-size:clamp(44px,12.5vw,65px); }
  .eyebrow,.section-index { font-size:10px; letter-spacing:.09em; }
  .section-index { align-items:center; padding-top:16px; }
  .section-index > a { min-height:44px; display:flex; align-items:center; text-align:right; }
  .intro .section-index > span:last-child { display:none; }
  .section-top { margin-bottom:30px; gap:22px; }
  .section-top .eyebrow { margin-bottom:22px; }
  .section-top > p { font-size:14px; max-width:32ch; }
  .service summary { grid-template-columns:20px minmax(0,1fr) 30px; gap:12px; padding:23px 0; }
  .service h3 { font-size:clamp(28px,7.8vw,36px); }
  .service-name p { font-size:12px; line-height:1.65; margin-top:8px; }
  .service-index { font-size:10px; }
  .expand { width:30px; height:30px; font-size:21px; }
  .service-detail { grid-template-columns:1fr; padding:0 0 26px; font-size:14px; gap:20px; }
  .service-detail .button { width:100%; }
  .asset-brief { grid-template-columns:1fr; gap:24px; padding-top:34px; margin-top:10px; }
  .asset-brief h3 { font-size:36px; margin-top:16px; }
  .asset-brief .button { width:100%; margin-top:22px; }
  .intro-layout { display:flex; flex-direction:column-reverse; align-items:stretch; gap:30px; margin-top:35px; }
  .intro-content h2 { font-size:clamp(52px,14vw,70px); margin:22px 0; }
  .intro-lead { font-size:16px; }
  .profile-education > div { grid-template-columns:112px 1fr; gap:14px; font-size:12px; padding:14px 0; }
  .profile-education { margin-block:24px; }
  .profile-content .eyebrow { font-size:10px; }
  .intro-visual { padding:6px 10px; }
  .intro-photo { height:320px; transform:none; }
  .intro-photo img { object-position:center 57%; }
  .intro-photo-caption { margin-top:16px; font-size:10px; }
  .bricca-section { padding-top:0; padding-bottom:0; }
  .bricca-panel { grid-template-columns:1fr; gap:28px; padding-block:32px; }
  .bricca-copy h2 { font-size:38px; margin:18px 0; }
  .bricca-identity { align-items:start; padding:0; }
  .bricca-identity .official-logo { width:280px; max-width:100%; }
  .firm-location { font-size:9px; margin-top:15px; }
  .stories-heading { gap:22px; margin:30px 0; }
  .story-grid { grid-template-columns:1fr; gap:0; }
  .story { display:grid; grid-template-columns:112px minmax(0,1fr); column-gap:20px; padding:25px 0; border-top:1px solid var(--line); }
  .story-photo { grid-column:1; grid-row:1/5; height:152px; aspect-ratio:auto; }
  .story-photo-number { top:10px; left:11px; font-size:10px; }
  .story > :not(.story-photo) { grid-column:2; }
  .story-meta,.story-wide-copy > .eyebrow { font-size:9px; line-height:1.6; letter-spacing:.04em; margin:0 0 7px; }
  .story-title h3,.story-wide-copy h3 { font-size:29px; line-height:1.12; }
  .story > p,.story-wide-copy > p { font-size:12px; line-height:1.7; margin-top:10px; }
  .story-read { font-size:12px; margin-top:8px; min-height:44px; justify-self:start; }
  .story-wide-copy { grid-column:2; }
  .story-wide-copy h3 br { display:initial; }
  .approach { grid-template-columns:1fr; gap:28px; padding-top:0; padding-bottom:0; }
  .approach-heading h2,.faq h2 { font-size:49px; margin-top:20px; }
  .approach-steps article { padding:21px 0; gap:15px; }
  .approach-steps h3 { font-size:29px; }
  .approach-steps p { font-size:13px; }
  .faq { grid-template-columns:1fr; gap:30px; }
  .faq summary { font-size:14px; line-height:1.6; padding:20px 0; }
  .faq details p { padding-right:0; }
  .contact-section { padding:26px var(--gutter); }
  .contact-top .eyebrow { font-size:10px; max-width:280px; }
  .contact-top > :last-child { display:none; }
  .contact-inner { display:block; padding:32px 0; }
  .contact-inner h2 { font-size:clamp(66px,18vw,95px); }
  .contact-action { margin-top:26px; gap:20px; }
  .contact-action .button { width:100%; }
  .contact-action > span { font-size:9px; align-self:center; }
  .contact-bottom { padding-top:22px; gap:22px; }
  .contact-bottom p { font-size:12px; }
  .contact-bottom > span { font-size:9px; text-align:left; width:48%; }
  .footer-main { display:grid; grid-template-columns:minmax(0,1fr) 44px; gap:24px; padding:35px 0; }
  .footer-main > .wordmark { grid-column:1; grid-row:1; font-size:29px; justify-self:start; }
  .footer-main > .back-top { grid-column:2; grid-row:1; }
  .footer-main address,.footer-links { grid-column:1/-1; }
  .footer-links { flex-direction:row; flex-wrap:wrap; gap:8px 25px; }
  .footer-bottom { flex-direction:column; gap:8px; font-size:10px; }
  .footer-bottom > span:last-child { font-size:9px; }
  .reveal-ready { opacity:1; transform:none; transition:none; }
}
@media (max-width:360px) {
  :root { --gutter:20px; }
  .header { padding-inline:16px; gap:6px; }
  .header .wordmark { font-size:25px; }
  .header-cta { padding-inline:12px; }
  .hero-firm { width:150px; }
  .hero-visual { height:285px; }
  .service summary { grid-template-columns:17px minmax(0,1fr) 28px; gap:9px; }
  .service h3 { font-size:27px; }
  .expand { width:28px; height:28px; font-size:0; }
  .profile-education > div { grid-template-columns:1fr; gap:4px; }
  .story { grid-template-columns:94px minmax(0,1fr); gap:0 16px; }
  .story-title h3,.story-wide-copy h3 { font-size:27px; }
  .story-photo { height:140px; }
  .contact-bottom { flex-direction:column; }
  .contact-bottom > span { width:100%; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
  .reveal-ready { opacity:1; transform:none; }
}

.stories .section-index { border-top:0; padding-top:0; }
.expand { font-size:0; }

/* Integral advisory positioning: keep the two-line headline readable at every width. */
h1 { font-size:clamp(76px,6.7vw,104px); line-height:1; letter-spacing:-.04em; }
.hero-description { max-width:410px; }
@media (max-width:850px) and (min-width:601px) { h1 { font-size:6.8vw; } }
@media (max-width:600px) { h1 { font-size:clamp(45px,13.8vw,74px); line-height:1.02; } }
