/* Japanese editorial typesetting: controlled line breaks, kinsoku and optical spacing. */
:lang(ja) {
  line-break: strict;
  word-break: normal;
  overflow-wrap: anywhere;
  hanging-punctuation: first last;
  text-spacing-trim: trim-start;
}

.title-line {
  display: block;
  width: max-content;
  max-width: 100%;
}

.hero h1 .title-line {
  letter-spacing: .075em;
}

.intro h2 .title-line,
.statement h2 .title-line,
.section-heading h2 .title-line {
  letter-spacing: .035em;
}

/* Only compact labels are distributed. Large headings retain natural Japanese rhythm. */
.hero-label {
  display: inline-grid;
  grid-template-columns: auto auto;
  column-gap: 1.2em;
  align-items: baseline;
  min-width: 16em;
  text-align: justify;
  text-align-last: justify;
  text-justify: inter-character;
  font-feature-settings: "palt" 1;
}

.hero-label b {
  font: inherit;
  font-weight: 700;
}

.lead,
.intro-layout > div > p,
.statement h2,
.profile-copy > p:not(.section-kicker),
.contact > div > p:not(.section-kicker) {
  text-align: justify;
  text-justify: inter-character;
}

.site-nav,
.button,
.text-link,
.section-kicker,
.hero-label {
  font-feature-settings: "palt" 1, "kern" 1;
}

.hero h1,
.intro h2,
.statement h2,
.section-heading h2,
.profile h2,
.contact h2 {
  font-kerning: normal;
  font-feature-settings: "palt" 1, "kern" 1;
}

@media (max-width: 600px) {
  .title-line { width: auto; }
  .hero h1 .title-line { letter-spacing: .045em; }
  .hero-label { min-width: 0; column-gap: .9em; }
  .lead,
  .intro-layout > div > p,
  .statement h2,
  .profile-copy > p:not(.section-kicker),
  .contact > div > p:not(.section-kicker) { text-align: start; }
}
