/* Load last: improve reading sizes without scaling the immersive scenes or media. */
:root {
  --reading-body: 17px;
  --reading-meta: 13px;
  --reading-action: 16px;
}

/* Keep the brand legible and let its Chinese name wrap on the narrowest screens. */
.brand { min-width: 0; }
.brand > span { min-width: 0; }
.brand small, .footer-brand small {
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: .08em;
}
#main-nav { font-size: 16px; }
#main-nav .nav-contact { font-size: 16px; }

/* Headline sizes and the WebGL scene positions remain in the design stylesheet. */
.hero-kicker { font-size: 13px; line-height: 1.6; letter-spacing: .12em; }
.hero-description {
  font-size: 17px;
  line-height: 1.85;
  max-width: 520px;
  color: #eef0eb;
}
.hero-actions .text-link { font-size: var(--reading-action); }
#hero-controls, .scroll-hint, .hero-footnote { font-size: 12px; letter-spacing: .06em; }
.hero-footnote { color: #cdd2d1; }
.motion-controls button { font-size: 13px; min-height: 40px; }
#intro-skip { font-size: 15px; }
#intro-caption span { font-size: 16px; }
#intro-caption small { font-size: 12px; }

/* Body copy, including rules that originally overrode the common text styles. */
.section-description,
.research-heading .section-description,
.platform-heading .section-description,
.page-lede,
.product-desc,
.product-grid .product-desc,
.original-products .feature-product .product-desc,
.original-news-snippet,
.news-card > p,
.news-card .news-excerpt,
.product-detail-copy p,
.product-information > p,
.product-detail-description,
.detail-card p,
.detail-card > div,
.services-intro p,
.original-services .service-entry p,
.catalog-empty p,
.service-description,
.service-empty,
.service-status,
.service-search-result p {
  font-size: var(--reading-body);
  line-height: 1.85;
}
.tech-tab p { font-size: var(--reading-body); line-height: 1.85; }
.tech-tab[aria-expanded="true"] p { max-height: 34em; }
.article-body { font-size: 18px; line-height: 1.95; }
.article-body blockquote { font-size: 18px; line-height: 1.85; }
.article-body .text-sm, .article-body .text-xs, .article-caption { font-size: 14px; line-height: 1.8; }
.original-news-snippet, .news-card > p, .news-card .news-excerpt { color: #5f6c64; }
.product-desc, .product-grid .product-desc { color: #5f6c64; }

/* Actions need the same reading priority as the copy beside them. */
.text-link,
.section-heading-row .text-link,
.original-products .section-heading-row > .text-link,
.original-journal .section-heading-row > .text-link,
.original-journal .journal-row .text-link,
.product-detail-copy > .text-link,
.related-products > .section-heading .text-link,
.article-contact .text-link,
.solid-link,
.about-strip .solid-link,
.primary-button,
.original-back,
.news-read-more,
.service-submit,
.service-link,
.original-services .service-action {
  font-size: var(--reading-action);
  line-height: 1.6;
}
.text-link { min-height: 44px; }
.original-back { gap: 14px; }
.filter-chip { font-size: 15px; line-height: 1.6; }
.catalog-search input, .catalog-tools input, #catalog-search,
.service-search-input, .service-field input { font-size: 16px; line-height: 1.6; }
.service-field label { font-size: 15px; line-height: 1.6; }
.service-search-result strong { font-size: 17px; line-height: 1.65; }
.service-cert-fields { font-size: 16px; line-height: 1.8; }
.service-cert-fields dt { color: #65715f; }
.service-dialog-header h2 { line-height: 1.5; }

/* Small labels stay subordinate without falling to the old 8–10 px sizes. */
.section-topline,
.section-topline span:last-child,
.eyebrow,
.journal-row .eyebrow,
.science-caption,
.tech-number,
.tech-tab small,
.product-meta,
.product-grid .product-meta,
.original-products .product-meta,
.news-meta,
.catalog-count,
.catalog-toolbar .catalog-count,
.filter-count,
.breadcrumb,
.product-footnote,
.gallery-counter,
.journal-row .date small,
.film-placeholder span,
.film-placeholder > .film-mark + span,
.service-entry small,
.original-services .service-entry small,
.original-services .service-state,
.service-entry > i,
.service-eyebrow,
.service-search-result small,
.service-cert-image,
.detail-number,
.detail-card i,
.product-detail-visual > span,
.article-sidebar time,
.article-sidebar small,
.article-end {
  font-size: var(--reading-meta);
  line-height: 1.7;
}
.eyebrow, .section-topline { letter-spacing: .08em; }
.services-intro .eyebrow { font-size: var(--reading-meta); }
.filter-count { opacity: 1; }
.journal-row .date { font-size: 16px; }
.products-section .section-topline,
.journal-section .section-topline,
.page-shell .eyebrow,
.page-shell .catalog-count,
.services-section .eyebrow { color: #637168; }
.research-section .section-topline,
.platform-section .section-topline,
.science-caption,
.tech-tab small,
.tech-number { color: #aeb8b8; }
.original-services .service-entry small, .original-services .service-state { color: #58675c; }
.product-features span, .product-features li { font-size: 14px; line-height: 1.7; }

/* Hierarchy stays clear above the larger body text. */
.product-name,
.product-grid .product-name,
.original-products .feature-product .product-name { font-size: 22px; line-height: 1.55; }
.news-card h2, .news-card h3, .journal-row h3 { font-size: 22px; line-height: 1.6; }
.journal-feature h3 { font-size: 26px; line-height: 1.55; }
.detail-card h3 { font-size: 21px; line-height: 1.6; }
.article-sidebar h3, .article-sidebar a { font-size: 16px; line-height: 1.8; }
.article-contact, .catalog-contact { font-size: 16px; line-height: 1.85; }

/* Footer and contact details are readable content, not fine print. */
.footer-desc { font-size: 16px; line-height: 1.9; color: #aeb9b9; }
.footer-nav, .footer-connect, .footer-connect .text-link { font-size: 15px; line-height: 1.8; }
.footer-bottom { font-size: 12px; line-height: 1.8; color: #a0adad; }
.footer-brand strong { font-size: 18px; line-height: 1.5; }

@media (min-width: 901px) and (max-width: 1200px) {
  #site-header { gap: 20px; }
  #main-nav { font-size: 15px; gap: 18px; }
  #main-nav .nav-contact { font-size: 15px; padding-left: 16px; }
  #main-nav .nav-contact span { margin-left: 10px; }
  .brand strong { font-size: 15px; letter-spacing: .025em; }
  .brand small { letter-spacing: .025em; }
}

@media (max-width: 900px) {
  .brand { flex-shrink: 1; }
  #main-nav { font-size: 18px; }
  #main-nav .nav-contact { font-size: 18px; }
  .section-heading-row { flex-wrap: wrap; }
  .research-heading .section-description, .platform-heading .section-description { font-size: 16px; }
  .hero-description { font-size: 16px; }
  .hero-actions { column-gap: 24px; row-gap: 8px; }
  .hero-actions .text-link { gap: 18px; }
  .news-card h2, .news-card h3, .journal-row h3 { font-size: 21px; }
}

@media (max-width: 600px) {
  :root { --reading-body: 16px; --reading-meta: 12px; --reading-action: 15px; }
  #site-header { gap: 12px; }
  .brand strong { font-size: 14px; letter-spacing: 0; line-height: 1.4; }
  .brand small { font-size: 11px; letter-spacing: .01em; opacity: .8; }
  .header-tools { flex-shrink: 0; gap: 8px; }
  .hero-kicker { font-size: 12px; line-height: 1.6; letter-spacing: .05em; margin-bottom: 20px; }
  .hero-description { font-size: 16px; line-height: 1.75; max-width: 100%; margin-top: 20px; }
  .hero-actions { gap: 4px 16px; margin-top: 18px; }
  .hero-actions .text-link { font-size: 15px; gap: 10px; padding: 8px 0; }
  #hero-controls, .scroll-hint { font-size: 12px; letter-spacing: 0; }
  .motion-controls { gap: 16px; }
  .motion-controls button { font-size: 12px; }
  .section-topline { align-items: flex-start; gap: 16px; }
  .section-topline span:last-child { font-size: 12px; }
  .tech-tab h3 { font-size: 22px; }
  .tech-tab p { line-height: 1.85; }
  .product-name,
  .product-grid .product-name,
  .original-products .feature-product .product-name { font-size: 19px; line-height: 1.6; }
  .news-card h2, .news-card h3, .journal-row h3 { font-size: 20px; line-height: 1.65; }
  .journal-feature h3 { font-size: 23px; line-height: 1.6; }
  .article-body, .article-body blockquote { font-size: 16px; line-height: 1.95; }
  .article-body h2 { font-size: 25px; }
  .article-body h3, .detail-card h3 { font-size: 21px; }
  .product-features span, .product-features li { font-size: 13px; }
  .article-caption, .article-body .text-sm, .article-body .text-xs { font-size: 14px; }
  .related-products > .section-heading { flex-wrap: wrap; gap: 16px; }
  .catalog-search input, #catalog-search { font-size: 16px !important; }
  .service-description, .service-empty, .service-search-result p, .service-status { font-size: 16px; }
  .service-dialog-header { gap: 14px; }
  .service-dialog-header h2 { font-size: 23px; }
  .service-close { flex-shrink: 0; }
  .service-cert-fields { grid-template-columns: 82px minmax(0, 1fr); font-size: 16px; gap: 12px 8px; }
  .original-services .service-entry small { display: block; margin: 5px 0 0; }
  .service-entry strong { font-size: 24px; }
  .footer-brand strong { font-size: 16px; }
  .footer-nav, .footer-connect, .footer-connect .text-link { font-size: 15px; }
  .footer-bottom { font-size: 12px; }
  .footer-legal { align-items: flex-start; }
  .footer-legal a { overflow-wrap: anywhere; }
}

/* On compact phones the hero gets a little more vertical breathing room,
   instead of shrinking the explanatory copy back to unreadable sizes. */
@media (max-width: 600px) and (max-height: 700px) {
  .hero-copy[data-scene="0"], .hero-copy[data-scene="1"] { top: 22%; }
  .hero-kicker { margin-bottom: 14px; }
  .hero-description { margin-top: 16px; }
  .hero-actions { margin-top: 12px; }
  #hero-controls { bottom: 18px; }
}
@media (max-width: 359px) {
  .hero-copy[data-scene="0"], .hero-copy[data-scene="1"] { left: 6%; right: 6%; }
  .hero-actions { column-gap: 12px; }
  .hero-description { line-height: 1.7; }
  .tech-tab h3 { font-size: 20px; }
  .service-dialog { padding: 26px 20px; }
  .service-cert-fields { grid-template-columns: 1fr; gap: 4px; }
  .service-cert-fields dd { margin-bottom: 12px; }
}
