body.jp-system {
  font-family: "EB Garamond", "Hiragino Mincho ProN", "Yu Mincho", "Songti SC", serif;
}

/* 20260805filterfix — `.gcard { display: flex }` (korean-atlas.css) overrides the
   UA `[hidden] { display: none }` rule, so JS-driven filtering set the hidden
   attribute without ever removing cards from the layout. Restore it explicitly. */
.jp-system .jp-card[hidden],
.jp-system .gcard[hidden],
.jp-system [hidden] {
  display: none !important;
}

.jp-system [lang="ja"],
.jp-system .gform,
.jp-system .review-form,
.jp-system .review-answer-form {
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif;
  letter-spacing: 0;
}

.jp-system .hero h1 {
  font-family: "EB Garamond", "Hiragino Mincho ProN", "Yu Mincho", serif;
}

.jp-levels {
  max-width: 1120px;
  margin: -50px auto 76px;
  padding: 0 48px;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
}

.jp-level {
  padding: 18px 20px;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.jp-level strong {
  display: block;
  font-size: 1.45rem;
  font-weight: 400;
}

.jp-level span {
  font-family: "JetBrains Mono", monospace;
  color: var(--text-light);
  font-size: 0.53rem;
  letter-spacing: 0.12em;
}

.jp-card .gform {
  font-size: 1.42rem;
  line-height: 1.45;
}

.source-panel {
  margin-top: 0;
}

.verification-note {
  color: var(--text-light);
  font-size: 0.82rem;
  line-height: 1.55;
}

.source-details .excerpt p {
  padding-bottom: 8px;
  border-bottom: 1px dashed rgba(80, 70, 55, 0.12);
}

.scope-note {
  max-width: 1120px;
  margin: 0 auto 22px;
  padding: 0 48px;
  color: var(--text-mid);
  font-size: 0.88rem;
}

.jp-toolbar .jp-tag-filter { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--border); }
.jp-tag-filter > .meta { margin-bottom: 10px; }
.pillrow-tags { gap: 7px; }
.pillrow-tags .pill { font-size: 0.68rem; }
.conf-toolbar, .conf-index, .conf-list { max-width: 1120px; margin-right: auto; margin-left: auto; padding-right: 48px; padding-left: 48px; }
.conf-toolbar { margin-bottom: 28px; }
.conf-toolbar .meta { margin-top: 12px; }
.conf-index { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-bottom: 48px; }
.conf-index[hidden] { display: none; }
.conf-index a { padding: 13px 15px; border: 1px solid var(--border); color: var(--text-mid); text-decoration: none; font-size: 0.8rem; }
.conf-index a:hover { color: var(--ink); background: rgba(255,255,255,.45); }
.conf-index span { margin-right: 9px; font-family: "JetBrains Mono", monospace; color: var(--text-light); font-size: 0.58rem; }
.conf-list { margin-bottom: 80px; }
.conf-group { border-top: 1px solid var(--border); }
.conf-group:last-child { border-bottom: 1px solid var(--border); }
.conf-group > summary { display: grid; grid-template-columns: 52px minmax(0, 1fr) 24px; gap: 20px; align-items: start; padding: 25px 0; cursor: pointer; list-style: none; }
.conf-group > summary::-webkit-details-marker { display: none; }
.conf-number { font-family: "JetBrains Mono", monospace; color: var(--text-light); font-size: .67rem; padding-top: 8px; }
.conf-summary-copy h2 { margin: 3px 0 5px; font-size: 1.55rem; font-weight: 400; }
.conf-summary-copy p, .conf-group-intro { margin: 0; color: var(--text-mid); line-height: 1.55; }
.conf-toggle::before { content: "+"; font-size: 1.25rem; }
.conf-group[open] .conf-toggle::before { content: "−"; }
.conf-body { padding: 0 0 30px 72px; }
.conf-group-intro { max-width: 760px; margin-bottom: 18px; }
.conf-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.conf-item { padding: 22px; border: 1px solid var(--border); background: rgba(255,255,255,.3); }
.conf-item h3 { margin: 0 0 18px; font-size: 1.35rem; font-weight: 400; }
.conf-item-block + .conf-item-block { margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--border); }
.conf-item-block span { font-family: "JetBrains Mono", monospace; color: var(--text-light); font-size: .54rem; }
.conf-item-block p { margin: 5px 0 0; line-height: 1.6; }
.load-error { color: #9b3f36; }

@media (max-width: 900px) {
  .jp-levels { grid-template-columns: repeat(5, minmax(100px, 1fr)); overflow-x: auto; }
  .conf-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .jp-levels { margin-top: -24px; padding: 0 20px; }
  .jp-level { padding: 14px 12px; }
  .scope-note { padding: 0 20px; }
  .conf-toolbar, .conf-index, .conf-list { padding-right: 20px; padding-left: 20px; }
  .conf-index { grid-template-columns: 1fr; }
  .conf-group > summary { grid-template-columns: 34px minmax(0, 1fr) 18px; gap: 10px; }
  .conf-body { padding-left: 44px; }
  .conf-items { grid-template-columns: 1fr; }
}