/* Opt-in typography for LAB subpages. The lobby does not load this file. */
@import url('https://fonts.googleapis.com/css2?family=Jost:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;600;700&display=swap');

@font-face {
  font-family: "TPS Futura";
  src: local("Futura Book"), local("Futura-Book"), local("Futura");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "TPS Futura";
  src: local("Futura Medium"), local("Futura-Medium"), local("Futura");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "TPS Futura";
  src: local("Futura Bold"), local("Futura-Bold"), local("Futura");
  font-weight: 600 700;
  font-style: normal;
  font-display: swap;
}

:root {
  --font-web: "TPS Futura", "Futura", "Jost", "Noto Sans JP", "Yu Gothic", "M PLUS 2", sans-serif;
  /* Legacy component variables all resolve to the same mixed-script stack.
     No generic fallback may precede the named Japanese font. */
  --font-primary: var(--font-web);
  --font-latin: "Jost";
  --font-jp: var(--font-web);
  --font-body: var(--font-web);
}

body {
  font-family: var(--font-web);
  line-height: 1.8;
  line-break: strict;
  overflow-wrap: anywhere;
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-web);
  text-wrap: balance;
  word-break: normal;
}
.type-phrase { display: inline-block; }
p.lead { line-height: 1.8; }

/* Narrow grids must shrink before long text wraps. */
.sim-grid > *, .tool > *, .finding .note { min-width: 0; }

@media (max-width: 480px) {
  .site-header-inner { flex-wrap: wrap; gap: 12px; }
  .site-nav { flex-wrap: wrap; }
  .display-md { font-size: clamp(24px, 6.2vw, 30px); line-height: 1.45; }
  .editorial h1 { font-size: clamp(26px, 7vw, 32px); line-height: 1.4; }
}
