/* HICHEM PUBLIC — WATCH LANGUAGE HYGIENE V1
   The presentation is translated into seven editions, but start-v4.css was
   authored around Latin metrics. This layer is intentionally presentation-only:
   type-editions.css supplies the house font stacks; this file adjusts optical
   size, leading, tracking and breaking where the writing system needs it.

   Goal: optical parity, not identical numbers. No webfont is introduced. */

/* Shared guard: long translated labels may wrap, but never escape their box. */
.scene h1,.scene h2,.scene h3,.scene p,.scene li,.scene small,
.topbar,.footer,.exits a{overflow-wrap:break-word}

/* Arabic — proportional Arabic faces, taller leading, no Latin tightening. */
html[lang="ar"] h1{font-size:clamp(44px,6.7vw,82px);line-height:1.18;letter-spacing:0;font-weight:650}
html[lang="ar"] h2{font-size:clamp(35px,5vw,61px);line-height:1.22;letter-spacing:0}
html[lang="ar"] h3{line-height:1.28;letter-spacing:0}
html[lang="ar"] .lede{line-height:1.68}
html[lang="ar"] .body,
html[lang="ar"] .manifesto-text p,
html[lang="ar"] .against-copy>p,
html[lang="ar"] .objects article>p:last-child,
html[lang="ar"] .examples article>p:last-child{line-height:1.72}
html[lang="ar"] .kicker,
html[lang="ar"] .topbar,
html[lang="ar"] .phone-head,
html[lang="ar"] .bubble b,
html[lang="ar"] .role-title,
html[lang="ar"] .tag,
html[lang="ar"] .example-tag,
html[lang="ar"] .object-name,
html[lang="ar"] .formula span,
html[lang="ar"] .exits a,
html[lang="ar"] .footer{letter-spacing:.04em;text-transform:none}
html[lang="ar"] em{font-style:normal}
html[lang="ar"] .time-arrow b,
html[lang="ar"] .before-after i,
html[lang="ar"] .trade-flow>i,
html[lang="ar"] .exits a span:last-child{display:inline-block;transform:scaleX(-1)}

/* Simplified Chinese — Han is denser and fills more of the em square. */
html[lang="zh-CN"] h1{font-size:clamp(42px,6.35vw,82px);line-height:1.18;letter-spacing:normal;font-weight:500;text-wrap:balance}
html[lang="zh-CN"] h2{font-size:clamp(34px,4.8vw,59px);line-height:1.22;letter-spacing:normal;font-weight:500;text-wrap:balance}
html[lang="zh-CN"] h3{line-height:1.28;letter-spacing:normal;font-weight:500}
html[lang="zh-CN"] .lede{line-height:1.62}
html[lang="zh-CN"] .body,
html[lang="zh-CN"] .manifesto-text p,
html[lang="zh-CN"] .against-copy>p,
html[lang="zh-CN"] .objects article>p:last-child,
html[lang="zh-CN"] .examples article>p:last-child{line-height:1.72}
html[lang="zh-CN"] .kicker,
html[lang="zh-CN"] .topbar,
html[lang="zh-CN"] .phone-head,
html[lang="zh-CN"] .bubble b,
html[lang="zh-CN"] .role-title,
html[lang="zh-CN"] .tag,
html[lang="zh-CN"] .example-tag,
html[lang="zh-CN"] .object-name,
html[lang="zh-CN"] .formula span,
html[lang="zh-CN"] .exits a,
html[lang="zh-CN"] .footer{letter-spacing:.06em}
html[lang="zh-CN"] em{font-style:normal}

/* Japanese — palt + strict kinsoku, more leading, no synthetic oblique. */
html[lang="ja"]{line-break:strict}
html[lang="ja"] h1{font-size:clamp(42px,6.35vw,82px);line-height:1.24;letter-spacing:normal;font-weight:500;font-feature-settings:"palt" 1;text-wrap:balance}
html[lang="ja"] h2{font-size:clamp(35px,4.85vw,60px);line-height:1.28;letter-spacing:normal;font-weight:500;font-feature-settings:"palt" 1;text-wrap:balance}
html[lang="ja"] h3{line-height:1.3;letter-spacing:normal;font-feature-settings:"palt" 1;text-wrap:balance}
html[lang="ja"] .lede{line-height:1.72}
html[lang="ja"] .body,
html[lang="ja"] .manifesto-text p,
html[lang="ja"] .against-copy>p,
html[lang="ja"] .objects article>p:last-child,
html[lang="ja"] .examples article>p:last-child{line-height:1.8;text-wrap:pretty}
html[lang="ja"] .kicker,
html[lang="ja"] .topbar,
html[lang="ja"] .phone-head,
html[lang="ja"] .bubble b,
html[lang="ja"] .role-title,
html[lang="ja"] .tag,
html[lang="ja"] .example-tag,
html[lang="ja"] .object-name,
html[lang="ja"] .formula span,
html[lang="ja"] .exits a,
html[lang="ja"] .footer{letter-spacing:.05em}
html[lang="ja"] em{font-style:normal}

/* Korean — preserve eojeol word units and restore breathing room between lines. */
html[lang="ko"] body{word-break:keep-all;overflow-wrap:break-word}
html[lang="ko"] h1{font-size:clamp(43px,6.5vw,84px);line-height:1.22;letter-spacing:normal;font-weight:600;text-wrap:balance}
html[lang="ko"] h2{font-size:clamp(35px,4.9vw,60px);line-height:1.26;letter-spacing:normal;font-weight:600;text-wrap:balance}
html[lang="ko"] h3{line-height:1.3;letter-spacing:normal;font-weight:600}
html[lang="ko"] .lede{line-height:1.66}
html[lang="ko"] .body,
html[lang="ko"] .manifesto-text p,
html[lang="ko"] .against-copy>p,
html[lang="ko"] .objects article>p:last-child,
html[lang="ko"] .examples article>p:last-child{line-height:1.76}
html[lang="ko"] .kicker,
html[lang="ko"] .topbar,
html[lang="ko"] .phone-head,
html[lang="ko"] .bubble b,
html[lang="ko"] .role-title,
html[lang="ko"] .tag,
html[lang="ko"] .example-tag,
html[lang="ko"] .object-name,
html[lang="ko"] .formula span,
html[lang="ko"] .exits a,
html[lang="ko"] .footer{letter-spacing:.05em}
html[lang="ko"] em{font-style:normal}
html[lang="ko"] pre,html[lang="ko"] code{word-break:normal;overflow-wrap:anywhere}

/* Spanish and French share the Latin house metrics; only line composition needs
   help because their translated phrases are routinely longer than English. */
html[lang="es"] h1,html[lang="es"] h2,
html[lang="fr"] h1,html[lang="fr"] h2{text-wrap:balance}
html[lang="es"] .exits a,html[lang="fr"] .exits a{overflow-wrap:anywhere}

/* The compact header is allowed to wrap rather than squeeze a language name or
   a translated return link below a readable size. */
@media(max-width:560px){
  .topbar{flex-wrap:wrap;row-gap:6px}
  .topbar .continuity-lang{order:3;flex:0 0 auto}
  .topbar .back{margin-inline-start:auto}
  html[lang="ar"] h1{font-size:clamp(40px,10.8vw,58px)}
  html[lang="zh-CN"] h1,html[lang="ja"] h1,html[lang="ko"] h1{font-size:clamp(39px,10.5vw,56px)}
}
