.catalog-heading { padding-block: 2rem 1.5rem; }
.catalog-heading h1 { font-size: clamp(1.9rem, 3vw, 2.6rem); margin-block: .35rem .65rem; }
.catalog-heading > p:last-child { color: var(--color-muted-text); }
.catalog-navigation { margin-bottom: 1.5rem; }
.catalog-navigation ul { display: flex; flex-wrap: wrap; gap: .5rem .75rem; list-style: none; margin: 0; padding: 0; }
.catalog-navigation li { min-width: 0; }
.catalog-navigation a, .catalog-navigation [aria-current] { display: block; padding: .4rem .65rem; font-size: .875rem; border-bottom: 2px solid var(--color-border); overflow-wrap: anywhere; }
.catalog-navigation [aria-current] { color: var(--color-primary-accent); border-color: var(--color-primary-accent); font-weight: 700; }
.filter-placeholder { padding: 1rem 1.25rem; background: var(--color-stone); border-top: 2px solid var(--color-border); }
.filter-caption { display: flex; gap: .75rem; align-items: center; font-size: .875rem; font-weight: 700; margin-bottom: .75rem; }
.filter-caption span { font-weight: 400; font-size: .75rem; color: var(--color-muted-text); }
.filter-fields { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: .75rem; }
.filter-field { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .5rem .75rem; background: var(--color-surface); border: 1px solid var(--color-border); color: var(--color-muted-text); font-size: .875rem; }
.ledger-caption { display: flex; gap: 1rem; align-items: baseline; margin-block: 2rem 1rem; }
.ledger-caption h2 { font-size: 1.25rem; }
.ledger-caption > span { font-size: .875rem; color: var(--color-muted-text); }
.weapon-ledger { border-top: 3px solid var(--color-primary-accent); }
.weapon-ledger > ul { margin: 0; padding: 0; list-style: none; }
.ledger-head, .weapon-row { display: grid; grid-template-columns: 4.5rem minmax(0, 1.3fr) minmax(0, .8fr) minmax(0, 1.6fr); gap: 1.25rem; align-items: start; }
.catalog-with-applicability :is(.ledger-head, .weapon-row) { grid-template-columns: 4.5rem minmax(0, 1.3fr) minmax(0, .8fr) minmax(0, 1.6fr) minmax(0, .8fr); }
.ledger-head { font-size: .75rem; color: var(--color-muted-text); padding: .65rem 1rem; border-bottom: 1px solid var(--color-border); }
.weapon-row { padding: 1.25rem 1rem; border-bottom: 1px solid var(--color-border); background: var(--color-surface); }
.weapon-row[hidden] { display: none; }
.weapon-row > * { min-width: 0; overflow-wrap: anywhere; }
.weapon-row h3 { font-size: 1rem; }
.weapon-row-class, .weapon-row-description, .weapon-row-applicability { font-size: .875rem; }
.weapon-row-description { color: var(--color-muted-text); }
.weapon-row-applicability > p { margin-top: .5rem; }
.sample-label { display: inline-block; font-size: .75rem; color: var(--color-warning); margin-top: .4rem; }
.verification-label { display: inline-block; padding: .1rem .5rem; color: var(--color-game-unknown); background: var(--color-game-unknown-bg); font-size: .75rem; }
.mobile-field-label { display: none; }
.equipment-image { background: var(--color-image-bg); min-width: 0; }
.equipment-image-list { width: 4.5rem; aspect-ratio: 1; }
.equipment-image-body { aspect-ratio: 1; }
.equipment-image img { width: 100%; height: 100%; object-fit: contain; }
.equipment-image-capture img { height: auto; }
.equipment-image-capture a { display: block; }
.equipment-image-capture a > span { display: block; padding: .5rem; font-size: .875rem; }
.image-placeholder { min-height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: .5rem; text-align: center; color: var(--color-muted-text); font-size: .75rem; }
.image-placeholder-mark { font-size: 1.5rem; letter-spacing: .13em; font-weight: 700; }
.equipment-image-list .image-placeholder-mark { font-size: .875rem; }
.catalog-empty { padding: 3rem 1.5rem; background: var(--color-surface); border-block: 1px solid var(--color-border); text-align: center; }
.catalog-empty h2 { font-size: 1.15rem; }
.catalog-empty p { color: var(--color-muted-text); margin-top: .75rem; }
.catalog-footnote { margin-block: 1rem 3rem; color: var(--color-muted-text); font-size: .875rem; }
.weapon-detail { padding-bottom: 2.5rem; }
.detail-overview { display: grid; grid-template-columns: minmax(10rem, 15rem) minmax(0, 1fr); gap: 2rem; margin-top: 1.5rem; padding-bottom: 2rem; border-bottom: 2px solid var(--color-primary-accent); }
.detail-overview > .equipment-image { align-self: start; border: 1px solid var(--color-border); }
.detail-summary { min-width: 0; }
.detail-summary h1 { font-size: clamp(1.6rem, 2.5vw, 2.25rem); margin-top: .45rem; }
.other-language-name { color: var(--color-muted-text); font-size: .875rem; margin-top: .6rem; overflow-wrap: anywhere; }
.detail-lead { margin-top: 1rem; overflow-wrap: anywhere; }
.quick-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem 1.5rem; margin: 1.25rem 0 0; padding: 1rem 1.25rem; background: var(--color-surface); border-left: 3px solid var(--color-border); }
.quick-facts > div { min-width: 0; }
.quick-facts dt { font-size: .75rem; color: var(--color-muted-text); }
.quick-facts dd { margin: .25rem 0 0; font-size: .875rem; overflow-wrap: anywhere; }
.detail-body { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; margin-top: 2rem; align-items: start; }
.detail-body-with-verification { grid-template-columns: minmax(0, 1fr) 17rem; }
.detail-article { min-width: 0; max-width: 50rem; }
.detail-article > section + section { margin-top: 2.5rem; }
.detail-article h2 { font-size: 1.4rem; padding-left: .75rem; border-left: 4px solid var(--color-secondary-accent); margin-bottom: 1rem; }
.detail-article p { overflow-wrap: anywhere; white-space: pre-line; }
.detail-article p + p { margin-top: 1rem; }
.section-status { font-size: .875rem; color: var(--color-muted-text); }
.verification-panel { padding: 1.25rem; background: var(--color-secondary-soft); border-top: 3px solid var(--color-secondary-accent); }
.verification-panel h2 { font-size: 1.2rem; margin-top: .35rem; }
.verification-panel > summary { font-size: 1.2rem; }
.verification-panel > .eyebrow { margin-top: 1rem; }
.verification-panel dl { margin-block: 1rem; }
.verification-panel dl > div + div { margin-top: .85rem; }
.verification-panel dt { font-size: .75rem; color: var(--color-muted-text); }
.verification-panel dd { margin: .15rem 0 0; font-size: .875rem; overflow-wrap: anywhere; }
.verification-panel > p:last-child { font-size: .875rem; color: var(--color-muted-text); border-top: 1px solid var(--color-border); padding-top: 1rem; }
.related-list { list-style: none; margin: 1rem 0 0; padding: 0; }
.related-list li { padding-block: 1rem; border-bottom: 1px solid var(--color-border); }
.related-list a { font-weight: 700; overflow-wrap: anywhere; }
.related-list p { font-size: .875rem; color: var(--color-muted-text); margin-top: .4rem; }
.history-list { list-style: none; margin: 0; padding: 0; font-size: .875rem; }
.history-list li { display: flex; gap: 1rem; padding-block: .6rem; border-bottom: 1px solid var(--color-border); }
.history-list time { flex-shrink: 0; color: var(--color-muted-text); }
.detail-back { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border); font-size: .875rem; font-weight: 700; }
.observation-example { margin-top: 1.25rem; padding: 1.25rem; background: var(--color-surface); border: 1px solid var(--color-border); border-top: 3px solid var(--color-primary-accent); }
.observation-example h3 { font-size: 1.05rem; }
.observation-example > p { margin-top: .75rem; }
.observation-values { margin: 1rem 0 0; }
.observation-values > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: .5rem 1rem; padding-block: .6rem; border-top: 1px solid var(--color-border); font-size: .875rem; }
.observation-values dt { color: var(--color-muted-text); overflow-wrap: anywhere; }
.observation-values dd { margin: 0; min-width: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.observation-images { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; margin-top: 1rem; }
.observation-images figure { margin: 0; min-width: 0; }
.observation-images figcaption { margin-top: .5rem; font-size: .875rem; color: var(--color-muted-text); overflow-wrap: anywhere; }
@media (max-width: 960px) {
  .ledger-head { display: none; }
  .weapon-row, .catalog-with-applicability .weapon-row { grid-template-columns: 4.5rem minmax(0, 1fr) minmax(0, 1fr); gap: .6rem 1rem; }
  .weapon-row > .equipment-image { grid-column: 1; grid-row: 1 / 4; }
  .weapon-row-name { grid-column: 2 / -1; }
  .weapon-row-class { grid-column: 2 / -1; } .catalog-with-applicability .weapon-row-class { grid-column: 2; } .weapon-row-applicability { grid-column: 3; grid-row: 2; }
  .weapon-row-description { grid-column: 2 / -1; }
  .mobile-field-label { display: block; color: var(--color-muted-text); font-size: .75rem; margin-bottom: .1rem; }
  .detail-body { gap: 1.5rem; }
  .detail-body-with-verification { grid-template-columns: minmax(0, 1fr) 14rem; }
  .detail-overview { grid-template-columns: 10rem minmax(0, 1fr); gap: 1.5rem; }
}
@media (max-width: 680px) {
  .filter-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filter-name { grid-column: 1 / -1; }
  .detail-overview { grid-template-columns: 1fr; gap: 1.25rem; }
  .detail-overview > .equipment-image { width: 7rem; order: 2; }
  .detail-overview .image-placeholder-mark { font-size: 1.25rem; }
  .detail-body, .detail-body-with-verification { grid-template-columns: 1fr; gap: 2rem; }
  .verification-panel { max-width: none; }
  .quick-facts { padding: .85rem; gap: 1rem; }
}
@media (max-width: 420px) {
  .catalog-navigation ul { gap: .4rem; }
  .catalog-navigation a, .catalog-navigation [aria-current] { padding: .35rem .45rem; font-size: .8rem; }
  .observation-example { padding: 1rem; }
  .observation-values > div { grid-template-columns: minmax(0, 1fr); gap: .15rem; }
  .observation-images { grid-template-columns: minmax(0, 1fr); }
  .weapon-row, .catalog-with-applicability .weapon-row { grid-template-columns: 3.5rem minmax(0, 1fr); padding: 1rem .75rem; gap: .6rem .85rem; }
  .weapon-row > .equipment-image { width: 3.5rem; grid-row: 1; }
  .weapon-row-name { grid-column: 2; }
  .weapon-row-class, .catalog-with-applicability .weapon-row-class, .weapon-row-description, .weapon-row-applicability { grid-column: 1 / -1; grid-row: auto; }
  .weapon-row-class, .weapon-row-applicability { display: flex; gap: .75rem; align-items: baseline; flex-wrap: wrap; }
  .history-list li { flex-direction: column; gap: .25rem; }
}

.definition-page { max-width: 1050px; margin: 0 auto 3rem; }
.definition-nav { display:flex; flex-wrap:wrap; gap:.4rem; margin:1rem 0; }
.definition-nav a { border:1px solid var(--color-border); padding:.5rem .75rem; color:inherit; text-decoration:none; }
.definition-nav span { color:var(--color-muted); margin-left:.3rem; }
.definition-filters { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:.75rem; padding:1rem; background:var(--color-surface); border:1px solid var(--color-border); }
.definition-filters label { display:block; font-size:.85rem; margin-bottom:.4rem; }
.definition-filters input,.definition-filters select { width:100%; min-width:0; min-height:42px; font:inherit; color:inherit; background:var(--color-page); border:1px solid var(--color-border); padding:.5rem; }
.definition-actions { grid-column:1/-1; display:flex; gap:.75rem; }
.definition-actions button { padding:.5rem 1rem; font:inherit; cursor:pointer; }
.definition-list { list-style:none; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; border-left:1px solid var(--color-border); border-top:1px solid var(--color-border); }
.definition-list li { display:flex; align-items:center; gap:.8rem; min-width:0; border-right:1px solid var(--color-border); border-bottom:1px solid var(--color-border); padding:.8rem; }
.definition-list li[hidden] { display:none; }
.definition-list h2 { font-size:1rem; margin:0 0 .2rem; line-height:1.5; }
.definition-list h2 a { color:inherit; }
.definition-list-icon { width:72px; height:72px; flex-shrink:0; display:grid; place-items:center; }
.definition-list-icon img { width:72px; height:72px; object-fit:contain; }
.definition-other-name { font-size:.8rem; color:var(--color-muted); margin:.25rem 0; overflow-wrap:anywhere; }
.definition-class,.definition-unique { font-size:.75rem; display:inline-block; margin:.2rem .4rem .2rem 0; }
.definition-unique { border:1px solid var(--color-border); padding:.1rem .4rem; color:var(--color-primary-accent); }
.definition-overview { display:flex; align-items:center; gap:2rem; margin:1rem 0 2rem; }
.definition-overview img { width:160px; height:160px; object-fit:contain; flex-shrink:0; }
.definition-overview h1 { margin:0 0 .5rem; }
.definition-page section { margin:2rem 0; }
.definition-page section h2 { font-size:1.3rem; padding-bottom:.5rem; border-bottom:1px solid var(--color-border); }
.definition-status { font-size:.85rem; border-left:3px solid var(--color-primary-accent); padding:.5rem .8rem; }
.definition-values { display:flex; flex-wrap:wrap; gap:1rem 2rem; }
.definition-values div { min-width:110px; }
.definition-values dt { font-size:.8rem; color:var(--color-muted); }
.definition-values dd { margin:.3rem 0 0; overflow-wrap:anywhere; }
.definition-table-wrap { overflow-x:auto; }
.definition-table { border-collapse:collapse; width:100%; font-size:.9rem; }
.definition-table th,.definition-table td { border:1px solid var(--color-border); padding:.6rem; text-align:left; }
.definition-effects { list-style:none; padding:0; }
.definition-effects>li { border-bottom:1px solid var(--color-border); padding:.7rem 0; }
.definition-effects h3 { font-size:1rem; }
.definition-raw,.definition-notes,.definition-collapse { border:1px solid var(--color-border); padding:.8rem 1rem; margin:.7rem 0; min-width:0; }
.definition-page summary { cursor:pointer; font-weight:600; overflow-wrap:anywhere; }
.definition-raw pre { white-space:pre-wrap; overflow-wrap:anywhere; font-size:.75rem; line-height:1.6; max-height:32rem; overflow:auto; tab-size:2; }
.definition-page code { overflow-wrap:anywhere; font-size:.8rem; }
.definition-review-banner { font-size:.8rem; color:var(--color-muted); margin-top:2rem; }
.definition-primary { padding:1rem; border:1px solid var(--color-border); background:var(--color-surface); }
.definition-primary dd { font-size:1.4rem; font-weight:700; }
.definition-unresolved { font-size:.85rem; color:var(--color-muted); }
.definition-channel { border-left:3px solid var(--color-primary-accent); padding:.1rem 1rem; }
.definition-list-summary { font-size:.8rem; margin:.4rem 0; overflow-wrap:anywhere; }
@media(max-width:800px) { .definition-list { grid-template-columns:repeat(2,minmax(0,1fr)); } .definition-filters { grid-template-columns:1fr 1fr; } .definition-filters>div:first-child { grid-column:1/-1; } }
@media(max-width:480px) { .definition-list { grid-template-columns:1fr; } .definition-overview { align-items:flex-start; gap:.8rem; } .definition-overview img { width:96px; height:96px; } .definition-overview h1 { font-size:1.6rem; } .definition-filters { padding:.75rem; gap:.5rem; } .definition-page section { margin:1.5rem 0; } }

.book-page .definition-list-icon img { image-rendering:pixelated; width:64px; height:64px; }
.book-page .definition-overview img { image-rendering:pixelated; width:96px; height:96px; }
.book-filters { padding:1rem; background:var(--color-surface); border:1px solid var(--color-border); }
.book-filters label { display:block; margin-bottom:.5rem; }
.book-filters>div { display:flex; gap:.5rem; }
.book-filters input { flex:1; width:100%; min-width:0; min-height:44px; padding:.5rem; color:inherit; background:var(--color-page); font:inherit; border:1px solid var(--color-border); }
.book-filters button { min-height:44px; padding:.5rem 1rem; font:inherit; }
.book-evidence { font-size:.85rem; color:var(--color-muted); }
.book-names { font-size:.9rem; }
.book-page .book-capture figure { margin:1.5rem 0; max-width:640px; }
.book-page .book-capture img { display:block; width:100%; height:auto; }
.book-page .book-capture figcaption { margin-top:.5rem; font-size:.85rem; color:var(--color-muted); }
.book-page .book-meaning-pending { font-weight:600; }
