@charset "UTF-8";
/* =====================================================================
   BASE — page canvas, typography, focus, skip link, Japanese line breaking.
   ===================================================================== */

body {
  background: var(--td-bg-canvas);
  color: var(--td-text-primary);
  font-family: var(--font-jp);
  font-size: 16px;
  line-height: 1.75;
  font-feature-settings: "palt" 1;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;              /* guard only — does not create a scrollport */
}

/* Phase 5: the header scrolls away instead of overlaying the page, so an
   anchor target only needs a little breathing room above it — not a measured
   header offset. Nothing re-measures this at runtime any more. */
[id] { scroll-margin-top: 16px; }

:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  border-radius: 4px;
}

.skip-link {
  position: absolute;
  left: 8px;
  top: -64px;
  z-index: var(--z-skip);
  padding: 10px 16px;
  background: var(--pachi-gold);
  color: #2a1400;
  font-weight: 700;
  border-radius: 0 0 10px 10px;
  text-decoration: none;
  transition: top .18s var(--ease);
}
.skip-link:focus { top: 0; }

/* ---------------------------------------------------------------------
   Japanese line breaking
   Default CJK wrapping breaks mid-word (オンラ / イン). `auto-phrase` breaks at
   phrase boundaries; browsers without it fall back to the default, so this is
   a pure progressive enhancement. `balance` stops short centred display
   headings leaving a one-character orphan line.
   --------------------------------------------------------------------- */
.hero__title,
.hero__sub,
.section-head__title,
.section-head__sub,
.final-cta__title,
.final-cta__sub,
.benefit__text,
.feature-card__impact,
.feature-card__support,
.machine-card__title,
.step__title,
.step__text,
.faq__q-text,
.faq__a,
.trust__point-text,
.license__scope,
.license__val {
  word-break: auto-phrase;
  line-break: strict;
}

.section-head__title,
.final-cta__title,
.license__title {
  text-wrap: balance;
}
