/* Shared editorial type system: loaded after page styles. */
:root{--type-display:clamp(3rem,2.1rem + 3.8vw,5.5rem);--type-section:clamp(2.25rem,1.8rem + 1.8vw,3.25rem);--type-card:clamp(1.5rem,1.3rem + .6vw,1.875rem);--type-body:clamp(1.0625rem,1rem + .2vw,1.125rem);--type-lead:clamp(1.1875rem,1.08rem + .45vw,1.375rem);--type-small:.875rem;--font-heading:'Instrument Serif',Georgia,serif;--font-reading:'DM Sans',Arial,sans-serif}
html body{font-family:var(--font-reading);font-size:var(--type-body);line-height:1.7}
main#main h1,main#main h2{font-family:var(--font-heading);font-weight:400;letter-spacing:-.025em;text-wrap:pretty}
main#main .page-intro h1,main#main .case-intro h1,main#main .contact-page h1{font-size:var(--type-display);line-height:1.06;max-width:1120px;white-space:normal}
main#main .page-intro h1.help-heading{font-size:var(--type-display);line-height:1.06;white-space:normal;max-width:1120px}
main#main h2{font-size:var(--type-section);line-height:1.12;margin-bottom:1.5rem}
main#main h3{font-family:var(--font-reading);font-size:var(--type-card);font-weight:500;line-height:1.25;letter-spacing:-.025em}
main#main .project-caption h3,main#main .process-grid h3,main#main .history-row h3{font-size:var(--type-card);line-height:1.25}
main#main .teams-skills h2,main#main .service-row h2,main#main .service-row h3,main#main .quality-row h2{font-size:var(--type-card);line-height:1.2}
main#main .service-row h2,main#main .service-row h3{font-family:var(--font-reading);font-weight:500}
main#main .lead,main#main .hero .lead{font-size:var(--type-lead);line-height:1.6}
main#main .case-deck{font-family:var(--font-heading);font-size:clamp(1.75rem,1.4rem + 1.2vw,2.5rem);line-height:1.3;letter-spacing:-.015em}
main#main :is(.case-body,.detail-grid,.teams-intro,.teams-artist-copy,.teams-client,.teams-skills,.systems-experience-copy,.intro,.credentials,.contact-grid) p:not(.eyebrow):not(.media-caption):not(.teams-photo-credit){font-family:var(--font-reading);font-size:var(--type-body);line-height:1.75;margin-bottom:1.4em}
main#main :is(.case-body,.detail-grid) li{font-size:var(--type-body);line-height:1.65}
main#main .eyebrow{font-family:var(--font-reading);font-size:.8125rem;font-weight:500;line-height:1.5;letter-spacing:.12em;text-transform:uppercase}
main#main figcaption,main#main .media-caption,main#main .teams-photo-credit{font-family:var(--font-reading);font-size:var(--type-small);line-height:1.5}
html body .site-header nav a{font-family:var(--font-reading);font-size:.9375rem;font-weight:500;line-height:1.4;letter-spacing:.06em}
html body .button,html body .text-link,html body .project-filters button{font-family:var(--font-reading);font-size:.9375rem;font-weight:500;line-height:1.5}
main#main .project-caption>p:not(.eyebrow){font-size:1rem;line-height:1.6}
main#main .tags a{font-family:var(--font-reading);font-size:.8125rem;line-height:1.5}
main#main .page-intro,main#main .case-intro{padding-top:clamp(2.75rem,6vw,5rem);padding-bottom:clamp(3rem,6vw,5.5rem)}
main#main .page-intro .lead{max-width:800px;margin-top:1.75rem}
main#main .word-mask{padding-bottom:.16em;margin-bottom:-.16em}
@media(max-width:620px){main#main h2{margin-bottom:1.25rem}main#main .page-intro h1,main#main .case-intro h1,main#main .contact-page h1{overflow-wrap:normal}html body .site-header nav a{font-size:1rem;line-height:1.5}main#main .case-body,main#main .detail-grid{row-gap:2.5rem}}
@media(max-width:900px){html body .site-header .menu{font-family:var(--font-reading);font-size:1rem;font-weight:500;line-height:1.5;min-width:64px;min-height:44px;padding:10px 14px}main#main .button{min-height:44px;display:inline-flex;align-items:center;justify-content:center}}
html body .site-header #navigation a{font-family:var(--font-reading);font-size:1rem;font-weight:500;line-height:1.5;letter-spacing:.06em}
