/* Shared typography. Edit these role tokens instead of page-specific font sizes. */
:root{
 --type-family:Pretendard,sans-serif;
 --type-title-size:clamp(45px,6.75vw,99px);--type-title-weight:700;--type-title-tracking:-.04em;--type-title-leading:1.2;
 --type-section-size:clamp(32px,4vw,64px);--type-section-weight:700;--type-section-tracking:-.04em;
 --type-body-size:20px;--type-body-weight:400;--type-body-tracking:-.025em;--type-body-leading:1.8;
 --type-support-size:16px;--type-support-weight:400;--type-support-tracking:-.025em;
 --type-caption-size:14px;--type-caption-weight:400;--type-caption-tracking:-.025em;
 --type-card-size:21px;--type-card-weight:600;--type-card-tracking:-.025em;
 --type-keyword-size:12px;--type-keyword-weight:400;--type-keyword-tracking:-.025em;
 --type-eyebrow-size:11px;--type-eyebrow-weight:400;--type-eyebrow-tracking:.13em;
}
body,button,input,select{font-family:var(--type-family)}
.hero h1,.contact h1,.detail-head h1,.invite h2{
 font-family:var(--type-family);font-size:var(--type-title-size);font-weight:var(--type-title-weight);letter-spacing:var(--type-title-tracking);line-height:var(--type-title-leading);
}
.section h2{
 font-family:var(--type-family);font-size:var(--type-section-size);font-weight:var(--type-section-weight);letter-spacing:var(--type-section-tracking);line-height:1.3;
}
.hero .hero-copy,.statement p,.partnership p:not(.prototype-note),.invite p,.contact .contact-story p:not(.brand-equation){
 font-family:var(--type-family);font-size:var(--type-body-size);font-weight:var(--type-body-weight);letter-spacing:var(--type-body-tracking);line-height:var(--type-body-leading);
}
.contact>p.prototype-note,.partnership p.prototype-note{
 font-size:var(--type-support-size)!important;font-family:var(--type-family);font-weight:var(--type-support-weight);letter-spacing:var(--type-support-tracking);line-height:1.8;
}
header .header-note,footer>span,.detail-meta,.work-card .card-meta,.archive-list .card-meta{
 font-family:var(--type-family);font-size:var(--type-caption-size);font-weight:var(--type-caption-weight);letter-spacing:var(--type-caption-tracking);
}
.work-card h3,.archive-list h3,.archive-list.grid h3{
 font-family:var(--type-family);font-size:var(--type-card-size);font-weight:var(--type-card-weight);letter-spacing:var(--type-card-tracking);line-height:1.4;
}
.capabilities span,.contact .contact-tags span{
 font-family:var(--type-family);font-size:var(--type-keyword-size);font-weight:var(--type-keyword-weight);letter-spacing:var(--type-keyword-tracking);line-height:1.4;
}
.eyebrow,.archive-head .eyebrow,.hero>.eyebrow{
 font-family:var(--type-family);font-size:var(--type-eyebrow-size);font-weight:var(--type-eyebrow-weight);letter-spacing:var(--type-eyebrow-tracking);line-height:1.5;
}
@media(max-width:800px){:root{
 --type-title-size:clamp(34px,7.9vw,58px);--type-section-size:clamp(28px,5vw,40px);
 --type-body-size:17px;--type-support-size:14px;--type-card-size:16px;
}}
/* Navigation, date controls, contact links, equations and loading interlude
   retain their separately approved display styles. */

/* Hero navigation uses the shared supporting-text scale. */
.hero .scroll-cue{font-family:var(--type-family);font-size:var(--type-support-size);font-weight:var(--type-support-weight);letter-spacing:var(--type-support-tracking);line-height:1.8;gap:10px}
.hero a.scroll-cue{transition:color .25s ease}
.hero a.scroll-cue:hover,.hero a.scroll-cue:focus-visible{color:#e60033}
.hero span.scroll-cue{color:#858585}

/* Home consultation heading shares the section-heading role. */
.home-invite h2{font-size:var(--type-section-size);font-weight:var(--type-section-weight);letter-spacing:var(--type-section-tracking);line-height:1.3}

/* Shared home subheading role. */
:root{--type-home-subheading-size:calc(var(--type-section-size)*.5)}
.approach-card h3,.portfolio-group-head h3{font-size:var(--type-home-subheading-size);font-weight:var(--type-section-weight);letter-spacing:var(--type-section-tracking);line-height:1.4}
.portfolio-group-head h3{color:#858585}
.portfolio-group-head h3 span{color:var(--ink)}
@media(max-width:800px){:root{--type-home-subheading-size:max(20px,calc(var(--type-section-size)*.5))}}

/* Portfolio red theme, including all three groups. */
.home-portfolio,.home-portfolio .portfolio-group{background:#e60033;color:#fff}
.home-portfolio .eyebrow,.home-portfolio h2,.home-portfolio h3,.home-portfolio .portfolio-group-head h3 span,.home-portfolio .portfolio-group-head p,.home-portfolio .card-meta,.home-portfolio .text-link{color:#fff}
.home-portfolio .text-link:hover{color:#fff;opacity:.65}

/* Subdued portfolio numbering and supporting descriptions. */
.home-portfolio .portfolio-group-head h3 span,.home-portfolio .portfolio-group-head p{opacity:.4}

/* Portfolio card date and title contrast. */
.home-portfolio .card-meta{opacity:.4}
.home-portfolio .work-card h3{opacity:1}

/* Approach red; portfolio returns to light gray with black typography. */
.home-approach{background:#e60033;color:#fff}
.home-approach .eyebrow,.home-approach h2,.home-approach .approach-card h3,.home-approach .approach-card p{color:#fff}
.home-approach .approach-card p{opacity:.6}
.home-approach .approach-number{color:#fff;opacity:.4}
.home-approach .approach-rule{background:rgba(255,255,255,.3)}
.home-portfolio,.home-portfolio .portfolio-group{background:var(--paper);color:var(--ink)}
.home-portfolio .eyebrow,.home-portfolio h2,.home-portfolio h3,.home-portfolio .portfolio-group-head h3 span,.home-portfolio .portfolio-group-head p,.home-portfolio .card-meta,.home-portfolio .text-link{color:var(--ink)}
.home-portfolio .text-link:hover{color:#e60033;opacity:1}

/* Q&A questions share the portfolio subheading size. */
.home-faq .faq-card h3{font-size:var(--type-home-subheading-size)}

.home-portfolio .portfolio-group-head p{opacity:.3}

/* Portfolio supporting descriptions: smaller, lighter and quieter. */
.home-portfolio .portfolio-group-head p{font-size:var(--type-support-size);font-weight:300;opacity:.2}
