/* Product typography follows Rider's responsive scale. Load after page styles.
   Keep code samples, decorative numerals and shared navigation independent. */
:is(.page-lite3, .page-mini2s, .page-mini2sw) {
    --product-hero: clamp(2.4rem, 5.2vw, 5.4rem);
    --product-title: clamp(1.9rem, 4vw, 4rem);
    --product-body: clamp(1rem, 1.25vw, 1.5rem);
    --product-feature-title: clamp(1.6rem, 2.4vw, 2.5rem);
    --product-feature-body: clamp(1rem, 1.25vw, 1.45rem);
    --product-card-title: clamp(1.25rem, 1.55vw, 1.7rem);
    --product-card-body: clamp(.92rem, 1.02vw, 1.12rem);
    --product-caption: clamp(1.4rem, 2vw, 2.4rem);
    --product-spec: clamp(.9rem, 1vw, 1.08rem);
    --product-cta: var(--product-title);
}

body :is(.l3-hero-title, .ms-hero h1, .m2s-hero-name, .m2s-hero-tagline) {
    font-size: var(--product-hero);
    line-height: 1.16;
}
body :is(.l3-hero-tag, .ms-tagline, .ms-hero-desc, .m2s-hero-sub) {
    font-size: clamp(.9rem, 1.02vw, 1.2rem);
    line-height: 1.8;
}
body :is(.l3-sec-title, .ms-heading h2, .m2s-head-title, .m2s-lineup-title, .m2s-bt-heading, .m2s-vibe-title, .m2s-oss-title) {
    font-size: var(--product-title);
    line-height: 1.2;
}
body :is(.l3-sec-desc, .ms-heading p, .ms-marquee p, .m2s-head-sub, .m2s-lineup-desc, .m2s-vibe-desc, .m2s-mob-desc, .m2s-oss-desc) {
    font-size: var(--product-body);
    line-height: 1.7;
}
body :is(.l3-ai-text h2, .l3-ai-dyn h3, .l3-dof-sub, .ms-ai-copy h3, .ms-dev-list h3, .m2s-rl-text h3, .m2s-head-sub-sub, .m2s-mob-text h3, .m2s-ai-text h3) {
    font-size: var(--product-feature-title);
    line-height: 1.25;
}
body :is(.l3-ai-dyn p, .ms-ai-copy p, .ms-dev-list p, .m2s-rl-text p, .m2s-mob-text p, .m2s-ai-text p) {
    font-size: var(--product-feature-body);
    line-height: 1.8;
}
body :is(.ms-core-body h3, .m2s-bt-card h3, .m2s-vstep h3) {
    font-size: var(--product-card-title);
    line-height: 1.4;
}
body :is(.ms-core-body > p, .m2s-bt-card p, .m2s-vstep p, .ms-motion-note) {
    font-size: var(--product-card-body);
    line-height: 1.78;
}
body :is(.l3-player-card figcaption, .l3-act-card figcaption, .ms-motion-grid figcaption, .ms-lineup-labels span, .m2s-lineup-label) {
    font-size: var(--product-caption);
    line-height: 1.4;
}
body .l3-player-card figcaption {
    font-size: clamp(1.125rem, 1.6vw, 1.9rem);
}
body .ms-hero-stats dt {
    font-size: clamp(1.5rem, 2.1vw, 2.4rem);
}
body :is(.ms-hero-stats dd, .ms-core-stats dd) {
    font-size: clamp(.7rem, .82vw, .95rem);
}
body :is(.ms-core-stats dt, .ms-spec-grid dt, .ms-spec-grid dd, .ms-joint-title, .ms-joint-detail p) {
    font-size: var(--product-spec);
}
body .ms-joint-detail strong {
    font-size: var(--product-card-title);
}
body .ms-index {
    font-size: clamp(.78rem, .95vw, 1.05rem);
}
body .ms-button {
    font-size: clamp(.92rem, 1.05vw, 1.2rem);
}
body .ms-cta h2 {
    font-size: var(--product-cta);
    line-height: 1.34;
}

/* The site increases rem on ultra-wide screens; let the hero copy grow with it. */
@media (min-width: 901px) {
    .page-mini2s .ms-hero-inner { width: min(76.5rem, 85%); }
}

html[lang="en"] :is(.page-lite3, .page-mini2s, .page-mini2sw) {
    --product-hero: clamp(2.1rem, 4.4vw, 4.6rem);
    --product-spec: clamp(.8rem, .95vw, 1rem);
    --product-cta: clamp(1.7rem, 3.4vw, 3.4rem);
}
