/* Shared type hierarchy across the public site. Brand artwork is unchanged. */
:root {
  --type-page: clamp(48px, 6.25vw, 80px);
  --type-section: clamp(36px, 4.1vw, 52px);
  --type-feature: clamp(26px, 2.5vw, 32px);
  --type-card: 22px;
  --type-body: 16px;
  --type-reading: 14px;
  --type-meta: 12px;
}
body { font-size:var(--type-body); line-height:1.9; }
.page-head { padding-top:64px; padding-bottom:48px; }
.project-heading { padding-top:64px; padding-bottom:48px; }
.page-head h1,.project-heading h1 {
  font-size:var(--type-page); font-weight:400; line-height:1.15;
  letter-spacing:-.025em; margin:12px 0 18px;
}
.section-head h2,.editorial-heading h2 {
  font-size:var(--type-section); font-weight:400; line-height:1.2;
  letter-spacing:-.025em;
}
.section-head,.editorial-heading { margin-bottom:36px; align-items:flex-end; }
.editorial-heading h2>span { font-size:var(--type-meta); line-height:1.6; margin-top:12px; letter-spacing:.04em; }
.eyebrow,.project-label,.project-index,.project-heading p { font-size:var(--type-meta); line-height:1.6; letter-spacing:.06em; }
.page-intro { font-size:var(--type-body); line-height:1.9; max-width:50em; }
.agency-title h1 { font-size:clamp(108px,14vw,200px); line-height:1; }
.agency-title>p { font-size:13px; line-height:1.7; letter-spacing:.04em; }
.site-header nav a { font-size:12px; line-height:1.5; letter-spacing:.035em; }
.menu-label { font-size:11px; }
.text-link,.editorial-heading>.text-link,.section-head>.text-link,.news-card>.text-link,
.work-link,.article-links a,.button { font-size:var(--type-meta); line-height:1.6; letter-spacing:.02em; }
.button { font-size:13px; }
.breadcrumb { font-size:11px; line-height:1.6; letter-spacing:.02em; }
.news-meta,.news-meta time,.news-tools label,.news-tools>span { font-size:var(--type-meta); line-height:1.6; letter-spacing:.01em; }
.news-card h3 { font-size:16px; font-weight:500; line-height:1.75; letter-spacing:0; }
.talent-name h3 { font-size:20px; line-height:1.5; letter-spacing:.025em; }
.talent-name>span { font-size:14px; line-height:1.5; }
.contract,.section-note,.small-note,.live-details .small-note,.contact-panel p.small-note,
.preparing-label,.program-note { font-size:var(--type-meta); line-height:1.8; letter-spacing:0; }
.project-caption h3 { font-size:var(--type-card); line-height:1.45; font-weight:500; }
.project-caption p { font-size:var(--type-meta); line-height:1.7; margin-top:9px; }
.project-event-links a { font-size:var(--type-meta); line-height:1.6; }
.project-caption--radio { container-type:inline-size; }
.project-caption--radio h3 { font-size:clamp(16px,6cqw,22px); white-space:nowrap; letter-spacing:0; }
.profile-info h1 { font-size:38px; font-weight:500; line-height:1.35; letter-spacing:.025em; margin-top:16px; }
.profile-roman { font-size:20px; line-height:1.5; letter-spacing:.02em; margin-top:8px; }
.profile-facts { margin-top:30px; }
.profile-facts dt,.company-facts dt { font-size:var(--type-meta); line-height:1.8; color:#666; }
.profile-facts dd,.company-facts dd { font-size:var(--type-reading); line-height:1.85; }
.credit-section h3 { font-size:13px; line-height:1.5; letter-spacing:.06em; font-weight:600; padding-top:20px; padding-bottom:16px; }
.credit-section li { font-size:var(--type-reading); line-height:1.85; grid-template-columns:58px minmax(0,1fr); gap:18px; }
.credit-year,.credit-detail,.portfolio-count { font-size:var(--type-meta); line-height:1.7; }
.credit-year { padding-top:2px; }
.work-link { margin-top:8px; }
.live-intro h2,.live-page .editorial-heading h2,.live-details h2,.live-terms h2,
.consulting-section h2,.contact-panel h2 {
  font-family:var(--sans); font-size:28px; font-weight:500; line-height:1.55; letter-spacing:0;
}
.support-grid h3,.steps h3,.noroshi-format h3 { font-size:var(--type-card); font-weight:500; line-height:1.5; letter-spacing:0; }
.live-intro p,.support-grid p,.steps p,.live-details p,.event-project-info p,
.consulting-section p:not(.eyebrow),.program-grid p,.noroshi-program .program-grid p,
.noroshi-format p,.contact-panel p { font-size:var(--type-body); line-height:1.9; }
.event-project-info .project-label,.program-grid .project-label { font-size:var(--type-meta); line-height:1.6; }
.event-project-info h2,.event-project--yoin .event-project-info h2,
.program-grid h2,.noroshi-program h2 { font-size:var(--type-feature); font-weight:500; line-height:1.45; letter-spacing:.02em; }
.event-project--yoin .event-project-info h2,.noroshi-program h2 { font-family:var(--sans); }
.program-grid>div { min-width:0; }
.radio-program .program-grid>div:last-child { container-type:inline-size; }
.program-grid .radio-title { font-size:clamp(18px,6.5cqw,28px); line-height:1.5; white-space:nowrap; letter-spacing:0; }
.broadcast-time { font-size:var(--type-body); }
.company-band h2,.youtube-band h2 { font-size:var(--type-card); line-height:1.6; font-weight:500; }
.article-heading h1 { font-size:32px; font-weight:500; line-height:1.55; letter-spacing:0; text-wrap:balance; line-break:strict; }
.article-heading>p { font-size:var(--type-reading); line-height:1.85; }
.article-body p,.article-body ul { font-size:var(--type-body); line-height:1.95; }
.article-body h2 { font-size:24px; font-weight:500; line-height:1.5; padding-bottom:14px; margin-bottom:22px; }
.article-body section { margin-block:40px; }
.article-body .text-link { font-size:14px; line-height:1.8; margin-right:28px; margin-bottom:12px; }
.footer-contact { font-size:56px; line-height:1.25; }
.footer-contact>span { font-size:30px; }
.footer-upper p:not(.eyebrow),.footer-details,.footer-details>a,
.footer-bottom>div,.footer-bottom small { font-size:var(--type-meta); line-height:1.8; }
@media(max-width:1000px) {
  .program-grid { grid-template-columns:1fr; gap:24px; }
  .radio-program .program-grid>div:last-child { width:100%; }
}
@media(max-width:760px) {
  :root { --type-page:48px; --type-section:36px; --type-feature:28px; --type-card:20px; --type-body:15px; --type-reading:14px; }
  .page-head,.project-heading { padding-top:42px; padding-bottom:36px; }
  .section-head,.editorial-heading { margin-bottom:28px; gap:18px; }
  .agency-title h1 { font-size:clamp(84px,23vw,150px); }
  .agency-title>p { font-size:11px; }
  .site-header nav a { font-size:15px; line-height:1.5; }
  .hero-scroll,.portrait-open { font-size:11px; }
  .hero-controls { display:grid; grid-template-columns:1fr auto; align-content:center; gap:6px 16px; }
  .hero-scroll { grid-column:1/-1; margin-left:0; justify-content:space-between; white-space:nowrap; letter-spacing:0; gap:10px; }
  .portrait-caption strong { font-size:24px; }
  .portrait-caption>span:first-child { font-size:11px; }
  .portrait-open { position:static; margin-top:8px; }
  .talent-name h3 { font-size:18px; }
  .talent-name>span { font-size:13px; }
  .profile-info h1 { font-size:32px; }
  .profile-roman { font-size:18px; }
  .profile-facts { margin-top:24px; }
  .credit-section li { grid-template-columns:46px minmax(0,1fr); gap:14px; }
  .live-intro h2,.live-page .editorial-heading h2,.live-details h2,.live-terms h2,
  .consulting-section h2,.contact-panel h2 { font-size:24px; line-height:1.55; }
  .live-details .small-note,.contact-panel p.small-note,.small-note { font-size:var(--type-meta); line-height:1.8; }
  .company-band h2,.youtube-band h2 { font-size:20px; }
  .article-heading h1 { font-size:26px; line-height:1.55; }
  .article-body h2 { font-size:22px; }
  .article-body section { margin-block:32px; }
  .contact-email { font-size:16px; gap:10px; }
  .footer-contact { font-size:44px; line-height:1.25; }
  .footer-contact>span { font-size:26px; }
}

.article-heading .title-phrase { display:inline-block; max-width:100%; vertical-align:top; }
.broadcast-time strong { font-size:24px; line-height:1.25; }

.event-project-info p:not(.project-label) { font-size:var(--type-body); line-height:1.9; }
