/* Shared Chinese fixes used by every variant. Applies only while the page is in Chinese
   (:root:not([data-lang="en"])), so the English version is untouched. */
:root:not([data-lang="en"]) {
  /* CJK font first after the system UI font, no Arial/Segoe UI in between:
     Latin and digits inside Chinese text use the Chinese font's own Latin, so heights and weights match. */
  --font: -apple-system, BlinkMacSystemFont, "PingFang HK", "PingFang TC", "Noto Sans TC", "Noto Sans CJK TC",
          "Source Han Sans TC", "Microsoft JhengHei", sans-serif;
  --font-latin: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --serif: "Noto Serif TC", "Noto Serif CJK TC", "Source Han Serif TC", "Songti TC", "Songti SC", "PMingLiU", "MingLiU", serif;
}
:root:not([data-lang="en"]) body { line-break: strict; }
/* No 1–3 character orphan lines, avoid punctuation-only last lines */
:root:not([data-lang="en"]) p,
:root:not([data-lang="en"]) li { text-wrap: pretty; hanging-punctuation: allow-end; }
/* Headings break between words (at spaces / punctuation), balanced line lengths */
:root:not([data-lang="en"]) :is(h1, h2, h3, h4, .quote, .statement) { text-wrap: balance; }
:root:not([data-lang="en"]) :is(h1, h2, h3, h4) { word-break: keep-all; overflow-wrap: anywhere; letter-spacing: .02em; }
:root:not([data-lang="en"]) .hero h1 .accent { letter-spacing: -0.01em; }
/* Trim the extra half-width of full-width brackets at line start / between adjacent punctuation */
:root:not([data-lang="en"]) body { text-spacing-trim: trim-start; }
/* Small Chinese labels: 13px + wide Latin tracking reads as noise; give them 14px and less tracking */
:root:not([data-lang="en"]) :is(.label, .scope-title, .facts h3, .areas-title, .product .kicker, .contact-list .k) {
  font-size: 14px; letter-spacing: .08em;
}
:root:not([data-lang="en"]) .label .num { letter-spacing: .04em; }
/* Short copy (one to three lines): break only at punctuation and spaces (phrase-aware, words like 普通話 / 產品 never split),
   and balance the lines so there is no 2–4 character tail. Falls back to breaking anywhere if a phrase is wider than the line. */
:root:not([data-lang="en"]) :is(.hero .lede, .statement, .sub, .feature-body p, .callout p, .outcome, .role, .scope li, .roles li, .area h4, .book p, .facts p) {
  word-break: keep-all; overflow-wrap: anywhere; text-wrap: balance; text-align: start;
}
/* Pure Latin bits keep a Latin font: in CJK fonts the middle dot "·" is full-width and leaves big gaps ("AI ・ Web3") */
:root:not([data-lang="en"]) :is(.hero h1 .accent, .eyebrow) { font-family: var(--font-latin); }
:root:not([data-lang="en"]) .eyebrow [lang="zh-Hant-HK"] { font-family: var(--font); }
/* 方案 C｜極簡科技: one sans family, only Regular + Medium, big headings, short left-aligned lines, two text colours */
:root:not([data-lang="en"]) body { font-size: 17px; line-height: 1.8; letter-spacing: 0; }
:root:not([data-lang="en"]) :is(h1, h2, h3, h4, .quote, .founder h2, .minor h3) { font-weight: 500; letter-spacing: 0; }
:root:not([data-lang="en"]) .hero h1 { font-size: clamp(48px, 8vw, 116px); line-height: 1.12; }
:root:not([data-lang="en"]) .hero h1 [lang="zh-Hant-HK"] { letter-spacing: 0; }
:root:not([data-lang="en"]) .h2 { font-size: clamp(36px, 4.6vw, 60px); line-height: 1.2; }
:root:not([data-lang="en"]) .feature-head h3 { font-size: clamp(30px, 3.2vw, 42px); line-height: 1.2; letter-spacing: 0; }
:root:not([data-lang="en"]) .quote { font-size: clamp(36px, 5.2vw, 70px); }
:root:not([data-lang="en"]) .quote [lang="zh-Hant-HK"] { letter-spacing: 0; line-height: 1.25; }
:root:not([data-lang="en"]) .statement { font-size: clamp(22px, 2.4vw, 30px); line-height: 1.6; max-width: 22em; font-weight: 400; }
/* fewer sizes: body 17 / small 15; lead = body size, only colour differs */
:root:not([data-lang="en"]) .feature-body .lead { font-size: 19px; line-height: 1.7; font-weight: 500; }
:root:not([data-lang="en"]) :is(.feature-body p, .product p, .callout p, .sub, .bio, .hero .lede, .book p) { max-width: 28em; }
:root:not([data-lang="en"]) :is(.feature-body p, .product p, .bio p, .area p, .book p, .sub, .roles li) { color: var(--ink); }
:root:not([data-lang="en"]) .scope li { font-size: 17px; line-height: 1.5; }
:root:not([data-lang="en"]) :is(.outcome, .area p, .minor p, .book .about-line) { font-size: 15px; }
:root:not([data-lang="en"]) .area h4 { font-size: 20px; line-height: 1.4; }
:root:not([data-lang="en"]) .callout h3 { font-size: 20px; }
:root:not([data-lang="en"]) .founder h2 { font-size: clamp(40px, 4.6vw, 60px); }
:root:not([data-lang="en"]) :is(.label, .scope-title, .facts h3, .areas-title, .product .kicker, .contact-list .k) {
  font-size: 14px; letter-spacing: 0; color: var(--ink); font-weight: 500;
}
:root:not([data-lang="en"]) :is(.label .num, .feature-head .n, .area .n) { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; letter-spacing: 0; }

/* Hero lede: natural wrapping (owner request 2026-10-03) */
:root:not([data-lang="en"]) .hero .lede, :root:not([data-lang="en"]) .hero .lede[lang] { word-break: normal; text-wrap: wrap; max-width: 40em; }
