/* Shared type scale. Load after component styles so equivalent roles stay aligned. */
:root{
 --type-display:clamp(44px,5.5vw,76px);
 --type-section:40px;
 --type-subheading:20px;
 --type-card:16px;
 --type-body:14px;
 --type-small:12px;
 --type-caption:11px;
 --type-control:12px;
 --type-leading:1.85;
}
body{font-size:var(--type-body);line-height:var(--type-leading)}
.hero h1{font-size:var(--type-display);font-weight:700;line-height:1.15;letter-spacing:-.045em}
.section-heading h2,.work .section-heading h2,.studio h2,.statement h2,.contact-top h2,.dialog-copy h2{
 font-size:var(--type-section);font-weight:700;line-height:1.25;letter-spacing:-.035em;
}
.skills h3,.discretion h3,.process-grid h3{font-size:var(--type-subheading);line-height:1.4;letter-spacing:-.025em;font-weight:700}
.project-caption h3,.tool-card h4{font-size:var(--type-card);line-height:1.45;letter-spacing:-.02em;font-weight:700}
.service-name{font-size:26px;line-height:1.3;letter-spacing:-.025em}
.hero-description,.section-intro,.work .section-intro,.statement-bottom p,.services-intro p,.service-body p,.studio-copy p:not(.eyebrow),.studio-copy p.lead,.history-item>p,.discretion p,.process-grid p,.contact-top>p,.contact-direct .contact-small,.dialog-subtitle,.dialog-copy>p:not(.eyebrow):not(.dialog-subtitle),.privacy-page p,.privacy-page li{
 font-size:var(--type-body);line-height:var(--type-leading);
}
.history-item summary{font-size:var(--type-card);line-height:1.6}
.service-headline{font-size:var(--type-body);line-height:1.6}
.eyebrow,.hero-kicker,.dialog-copy .eyebrow,.profile-content .eyebrow{
 font-size:var(--type-caption);line-height:1.6;letter-spacing:.12em;font-weight:400;
}
.project-caption p,.tool-card p,.skill-meter p,.skill-meter h4,.skill-meter strong>span,.history-item .year,.skill-tags li,.tags li,.contact-form label,.contact-direct>p,.footer-top>p{
 font-size:var(--type-small);line-height:1.7;
}
.gallery-controls>span,.gallery-instruction,.art-caption,.hero-bottom>span,.disciplines .wrap,.process-step-head>span,.form-bottom p,.form-status,.footer-bottom{
 font-size:var(--type-caption);line-height:1.7;
}
.nav nav,.nav-contact,.button,.hero-actions .button,.form-bottom .button,.dialog-links .button,.inline-link,.hero-actions .inline-link,.dialog-links .inline-link,.back-top,.skill-profile>summary{
 font-size:var(--type-control);line-height:1.5;
}
.contact-form input,.contact-form textarea{font-size:16px;line-height:1.6}
.contact-form input::placeholder,.contact-form textarea::placeholder{font-size:var(--type-body)}
.tool-monogram{font-size:var(--type-card);line-height:1}
.skill-meter strong{font-size:28px;line-height:1.2;letter-spacing:-.035em}
.privacy-page h1{font-size:var(--type-display);line-height:1.15;letter-spacing:-.045em}
.privacy-page h2{font-size:var(--type-subheading);line-height:1.4;letter-spacing:-.025em}
/* Film controls intentionally share the compact size requested for this pair. */
.film-toggle,.scroll-hint,.film-toggle-label{font-size:10px;font-weight:400;line-height:1.4}
@media(max-width:1100px){:root{--type-section:36px}.nav nav{gap:23px}}
@media(max-width:760px){
 :root{--type-display:clamp(37px,9.5vw,52px);--type-section:30px;--type-subheading:20px}
 .nav nav{font-size:16px}.nav-contact{font-size:var(--type-control)}
 .service-name{font-size:24px}
 .history-item summary{font-size:var(--type-body)}
 .hero-description{max-width:330px}
 .tool-grid{grid-template-columns:1fr}
 .tool-card{display:grid;grid-template-columns:38px 1fr;column-gap:12px;padding:14px}
 .tool-monogram{grid-row:1/3;margin:0;align-self:center}
 .tool-card h4{margin:0 0 3px}
 .tool-card p{grid-column:2}
 .tool-card p,.skill-meter p{font-size:var(--type-small)}
 .footer-top>p{max-width:170px}
 .form-bottom p{max-width:100%}
}
@media(max-width:370px){:root{--type-section:28px;--type-card:15px}.history-item summary{font-size:13px}.contact-direct>a{font-size:21px}}

/* Expanded profile spans both columns of the skills section. */
.skills{row-gap:30px;align-items:start}
.skills>.skill-profile{grid-column:1/-1;width:100%;min-width:0;margin:0}
.skill-profile>summary{padding:23px 30px}
.profile-content{padding:10px 30px 32px}
.tool-grid{gap:20px}
.tool-card{padding:24px}
.tool-monogram{margin-bottom:20px}
.profile-content .profile-metrics-label{margin-top:35px}
.skill-meter-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px}
@media(max-width:1000px){.skill-meter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}}
@media(max-width:760px){
 .skills{row-gap:24px}
 .skill-profile>summary{padding:20px 18px}
 .profile-content{padding:8px 18px 25px}
 .tool-grid{gap:10px}
 .tool-card{padding:16px;grid-template-columns:38px minmax(0,1fr)}
 .tool-monogram{margin:0}
 .skill-meter-grid{gap:25px 18px}
}
@media(max-width:370px){.skill-meter-grid{grid-template-columns:1fr}}
