/* Shared integration safeguards; the supplied design lives in home.css. */
:where(a, button, input, select, textarea):focus-visible { outline: 2px solid var(--primary-light); outline-offset: 6px; }
[id] { scroll-margin-top: calc(var(--header) + 24px); }
body { font-family: var(--sans), 'Hiragino Kaku Gothic ProN', 'Yu Gothic', Meiryo, sans-serif; }
main { min-width: 0; }
.hero__logo { opacity: 1; filter: none; transform: none; }
.has-js:not(.is-loaded) .hero__logo { opacity: 0; filter: blur(10px); transform: scale(.94); }
.site-nav a, .site-footer__col a { min-height: 44px; display: inline-flex; align-items: center; }
.site-footer__logo { white-space: normal; }
.underline { overflow-wrap: anywhere; }
@media (min-width: 768px) and (max-width: 1023px) {
  .site-nav { gap: 20px; }
  .brand { letter-spacing: .15em; }
  .site-nav a { letter-spacing: .08em; }
}
@media (max-width: 767px) {
  .brand { font-size: 1.1rem; letter-spacing: .18em; }
  .menu-toggle { width: 44px; height: 44px; flex-shrink: 0; }
  .menu-toggle span { left: 10px; right: 10px; }
  .menu-toggle span:nth-child(1) { top: 15px; }
  .menu-toggle span:nth-child(2) { top: 21px; }
  .menu-toggle span:nth-child(3) { top: 27px; }
  .hero__visual { flex-basis: 100%; }
  .hero__logo { width: 280px; }
  .eyebrow--rule { font-size: .62rem; letter-spacing: .1em; flex-wrap: wrap; }
  .hero__title { font-size: clamp(1.9rem, 6.2vw, 2.8rem); }
  .platform__panel { min-height: 240px; aspect-ratio: auto; }
  .panel__word { font-size: clamp(3rem, 12vw, 6rem); }
  .site-nav { overflow-y: auto; padding: 88px 24px 32px; }
  html:not(.has-js) .site-header { position: relative; }
  html:not(.has-js) .site-header__inner { height: auto; padding-block: 24px; flex-wrap: wrap; gap: 24px; }
  html:not(.has-js) .menu-toggle { display: none; }
  html:not(.has-js) .site-nav { position: static; flex-direction: row; flex-wrap: wrap; opacity: 1; visibility: visible; background: transparent; width: 100%; padding: 0; gap: 8px 24px; }
  html:not(.has-js) .hero { padding-top: 32px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .has-js:not(.is-loaded) .hero__logo { opacity: 1; filter: none; transform: none; }
}
/* Animation integration: readable headings and keyboard access without motion. */
.hero__title .line { display: block; }
.js [data-reveal]:focus-within { opacity: 1; transform: none; clip-path: none; }
@media (prefers-reduced-motion: reduce) {
  .hero__visual { transform: none !important; }
}

/* Audit: skip navigation must stay above fixed page indicators; focus reveals are immediate. */
.skip-link { z-index: 1000; }
.js [data-reveal]:focus-within, .js [data-reveal]:focus-within * { transition-delay: 0s !important; transition-duration: 0s !important; }
.js [data-reveal]:focus-within { opacity: 1; transform: none; clip-path: none; }
@media (max-width: 767px) { .svc-index a { min-height: 44px; } }
