/* Thai needs room for its marks: keep these sizes even in compact viewports.
   English display specimens retain their own type families and proportions. */
html[lang=th] {
  --thai-body: 14px;
  --thai-label: 13px;
  --thai-note: 12px;
}

html[lang=th] .product-intro p,
html[lang=th] .service-panel .service-intro,
html[lang=th] .service-specimen small,
html[lang=th] .service-specimen .service-cta,
html[lang=th] .studio-note,
html[lang=th] .product-status,
html[lang=th] .poster-actions .inspect-label,
html[lang=th] .demo-action .action-copy>span:last-child,
html[lang=th] .detail-audience,
html[lang=th] .detail-audience>span,
html[lang=th] .journey-tabs button,
html[lang=th] .journey-copy h4,
html[lang=th] .journey-copy p,
html[lang=th] .detail-colophon,
html[lang=th] .detail-colophon>span,
html[lang=th] .detail-colophon button,
html[lang=th] .demo-note,
html[lang=th] .hub-intro,
html[lang=th] .hub-small-label,
html[lang=th] .hub-bottom-note,
html[lang=th] .hub-bottom-note>button,
html[lang=th] .hub-cta,
html[lang=th] .hub-switch button,
html[lang=th] .signal-stat small,
html[lang=th] .signal-note,
html[lang=th] .dashboard-total small,
html[lang=th] .dashboard-row small,
html[lang=th] .endpoint-result>span,
html[lang=th] .dashboard-stamp,
html[lang=th] .dashboard-stamp>span,
html[lang=th] .dashboard-stamp button,
html[lang=th] .dashboard-scope,
html[lang=th] .fit-options small,
html[lang=th] .fit-match>span,
html[lang=th] .fit-custom p,
html[lang=th] .process-detail h3,
html[lang=th] .process-detail p,
html[lang=th] .process-detail ul,
html[lang=th] .project-kind button,
html[lang=th] .process-start>p,
html[lang=th] .gallery-heading>span,
html[lang=th] .live-strip,
html[lang=th] #status-time,
html[lang=th] .footer-meta button,
html[lang=th] .game-sidebar .game-heading p,
html[lang=th] .game-sidebar span,
html[lang=th] .game-records summary,
html[lang=th] .game-sidebar .score-storage,
html[lang=th] .game-records ol,
html[lang=th] .game-controls small,
html[lang=th] .game-toolbar,
html[lang=th] .game-toolbar>span,
html[lang=th] .game-keyboard,
html[lang=th] .game-overlay>.pill,
html[lang=th] .project-index>p,
html[lang=th] .type-option small,
html[lang=th] .feature-option small,
html[lang=th] .project-scope-note,
html[lang=th] .brief-type+ul li span,
html[lang=th] #brief-form label,
html[lang=th] #brief-form>p,
html[lang=th] #download-status {
  font-family: 'Noto Thai', Manrope, sans-serif;
  font-size: var(--thai-note);
  font-weight: 450;
  line-height: 1.75;
  letter-spacing: 0;
}

/* Main descriptions and selectable UI have a stronger reading hierarchy. */
html[lang=th] .product-intro p,
html[lang=th] .service-panel .service-intro,
html[lang=th] .hub-intro,
html[lang=th] .journey-copy p,
html[lang=th] .process-detail p,
html[lang=th] .project-index>p,
html[lang=th] #brief-form label {font-size:var(--thai-body)}
html[lang=th] .service-specimen small,
html[lang=th] .service-specimen .service-cta,
html[lang=th] .detail-audience,
html[lang=th] .journey-tabs button,
html[lang=th] .detail-colophon button,
html[lang=th] .hub-cta,
html[lang=th] .hub-switch button,
html[lang=th] .fit-options small,
html[lang=th] .fit-match>span,
html[lang=th] .process-detail ul,
html[lang=th] .project-kind button,
html[lang=th] .dashboard-stamp button,
html[lang=th] .type-option small,
html[lang=th] .feature-option small,
html[lang=th] .project-scope-note,
html[lang=th] .game-toolbar,
html[lang=th] .game-overlay>.pill {font-size:var(--thai-label)}
html[lang=th] .service-specimen .service-cta,
html[lang=th] .poster-actions .inspect-label,
html[lang=th] .demo-action .action-copy>span:last-child,
html[lang=th] .hub-cta,
html[lang=th] .hub-switch button,
html[lang=th] .journey-tabs button,
html[lang=th] .project-kind button,
html[lang=th] .game-toolbar button {font-weight:550}
html[lang=th] .header-brief strong {font-size:14px;font-weight:600;line-height:1.6}
html[lang=th] .journey-copy h4,
html[lang=th] .process-detail h3 {
  font-size:21px;font-weight:550;line-height:1.5;
}
html[lang=th] .poster-actions .inspect-label {white-space:normal}
html[lang=th] .poster-actions .action-copy {gap:5px}
html[lang=th] .poster-actions :is(.inspect-toggle,.demo-action) {height:auto;min-height:76px}
html[lang=th] .detail-audience {flex-wrap:wrap;gap:4px 10px}
html[lang=th] .detail-colophon {flex-wrap:wrap;gap:4px 12px}
html[lang=th] .journey-scene {min-height:min-content}
html[lang=th] .journey-tabs button {gap:5px}
html[lang=th] .signal-plot .signal-empty {font:450 13px 'Noto Thai',sans-serif}
html[lang=th] .dashboard-row {min-height:64px;gap:10px}
html[lang=th] .dashboard-rows {min-height:192px}
html[lang=th] .dashboard-stamp {font-size:12px}
html[lang=th] .fit-options {min-height:248px}
html[lang=th] .fit-options button {min-height:62px}
html[lang=th] .fit-match>span {min-width:0}
html[lang=th] .fit-match small {font-size:10px}
html[lang=th] .process-detail {min-height:178px}
html[lang=th] .process-start>p {padding-block:8px}
html[lang=th] .service-specimen {min-height:110px}
html[lang=th] .studio-note {padding-top:10px}
html[lang=th] .game-toolbar {min-height:38px}
html[lang=th] .game-controls button {min-height:52px}
html[lang=th] .game-sidebar .game-records summary {font-weight:550}
html[lang=th] .project-index .local-disclosure {font-size:12px}
html[lang=th] .project-type h3,
html[lang=th] .project-features h3 {font-size:15px}
html[lang=th] .project-total {font-size:14px}
html[lang=th] #brief-form :is(input,textarea) {font-size:16px}

/* Recover space from display headings and margins, not from Thai type. */
html[lang=th] .hub-panel .hub-title {
  font-size:min(18cqw,8.5cqh);margin:14px 0 8px;
}
html[lang=th] .hub-panel .hub-intro {margin-bottom:8px}
html[lang=th] .hub-dashboard .hub-title {font-size:min(17cqw,7.5cqh)}
html[lang=th] .dashboard-total>output {font-size:min(23cqw,11cqh)}
html[lang=th] .fit-result {padding-top:6px;min-height:0}
html[lang=th] .fit-match {margin:4px 0 8px}
html[lang=th] .process-detail {min-height:152px;padding-block:12px 8px}
html[lang=th] .process-detail ul {margin-top:9px}

@media(max-width:600px) {
  html[lang=th] .header-brief strong {font-size:12px}
  html[lang=th] .header-project {gap:9px}
  html[lang=th] .site-header nav {gap:10px}
  html[lang=th] .header-index {gap:10px}
  html[lang=th] .site-header .header-brief {gap:7px;padding-inline:7px}
  html[lang=th] .poster-actions .action-kicker {font-size:17px}
  html[lang=th] .poster-actions .inspect-toggle {padding-right:7px}
  html[lang=th] .demo-action {padding-left:7px}
  html[lang=th] .journey-copy h4,
html[lang=th] .process-detail h3 {font-size:19px}
  html[lang=th] .journey-scene {grid-template-columns:1fr;gap:10px}
  html[lang=th] .journey-visual {flex-direction:row;justify-content:space-between}
  html[lang=th] .journey-tabs button {font-size:12px;gap:3px}
  html[lang=th] .dashboard-row {flex-wrap:wrap;min-height:74px}
  html[lang=th] .dashboard-rows {min-height:222px}
  html[lang=th] .game-sidebar .game-records summary {font-size:12px}
  html[lang=th] .game-keyboard {font-size:12px}
  html[lang=th] .footer-meta {flex-wrap:wrap;row-gap:4px}
  html[lang=th] .footer-meta>div:last-child {margin-left:auto}
  html[lang=th] .live-strip {font-size:12px}
}
