/* Only static-runtime interactions and Japanese wrapping; original site CSS stays intact. */
html { scroll-behavior: smooth; }
.vp-doc,.doc-meta-title,.VPSidebar,.landing-hero-title { overflow-wrap: anywhere; }
.VPFlyout.ja-open .menu { opacity: 1; visibility: visible; transform: translateY(0); }
.VPDocOutlineItem .ja-outline-sub { padding-left: 16px; }
@media (min-width: 960px) {
  .VPNavBarSearch.search { position: static !important; transform: none !important; flex: 1; min-width: 60px; width: auto !important; max-width: 300px; margin-right: 20px; }
  .VPNavBarSearch #local-search { min-width: 0; width: 100%; }
}
.ja-backdrop,.ja-mobile-nav { display: none; }
.ja-search { color: var(--vp-c-text-1); background: var(--vp-c-bg); border: 1px solid var(--vp-c-divider); border-radius: 12px; padding: 24px; width: min(680px,calc(100% - 32px)); max-height: 80vh; margin: 8vh auto auto; }
.ja-search::backdrop { background: #0008; }
.ja-search form { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.ja-search form button { cursor: pointer; color: var(--vp-c-brand-1); }
.ja-search input { width: 100%; padding: 12px; border: 1px solid var(--vp-c-brand-1); border-radius: 6px; }
.ja-search-status { font-size: 13px; color: var(--vp-c-text-2); margin: 12px 0; }
.ja-search-results a { display: block; padding: 14px 8px; border-top: 1px solid var(--vp-c-divider); }
.ja-search-results strong { display: block; color: var(--vp-c-brand-1); }
.ja-search-results span { font-size: 13px; display: block; margin-top: 4px; color: var(--vp-c-text-2); }
.ja-search-results a:hover { background: var(--vp-c-bg-soft); }
@media (max-width: 959px) {
  .VPSidebar:not(.open) { visibility: hidden; }
  .ja-sidebar-open .ja-backdrop,.ja-nav-open .ja-backdrop { display: block; position: fixed; inset: 64px 0 0; z-index: 39; background: #0006; }
  .ja-sidebar-open .VPSidebar { z-index: 40; visibility: visible; transform: translateX(0); }
}
@media (max-width: 767px) {
  .ja-nav-open .ja-mobile-nav { display: flex; flex-direction: column; position: fixed; top: 64px; right: 0; left: 0; max-height: 75vh; overflow: auto; padding: 16px 24px; gap: 8px; z-index: 60; background: var(--vp-c-bg); border-bottom: 1px solid var(--vp-c-divider); }
  .ja-mobile-nav a { display: block; padding: 8px 0; }
  .landing-hero-title-line { white-space: normal; }
}
