/* =====================================================================
   Kungfupunk · wc.css — round 3 (2026-10-14, staging): the weapons and characters pages, and the two name-evidence sections at
   the end of /names. Loaded after r2.css on those three pages; uses only r2.css tokens. Nothing here changes a bosses-page rule.
   Weapons: category steel; characters bone; places moss (r2.css). Credibility colours as in r2.css (official jade, press ochre,
   ours stone, unknown Ø). Menu text is the game's own words: a jade rule when sharp, a dashed jade rule when it is our best reading
   of out-of-focus text. No rounded corners; motion is transform / opacity only and stops under reduced motion.
   ===================================================================== */
.wc .anchor { position: relative; display: block; height: 0; width: 0; scroll-margin-top: 16px; }

/* first screen: portrait strip coloured by category */
.rs--weapon .pt--rs, .rs--weapon .rs__a .pt--seal { border-bottom-color: var(--c-weapon); }
.rs--character .pt--rs, .rs--character .rs__a .pt--seal { border-bottom-color: var(--c-character); }
.rs--character .rs__yr:last-child .pt--rs, .rs--character .rs__yr:last-child .rs__a .pt--seal { border-bottom-color: var(--c-place); }
.rs__a .pt--mono { width: 40px !important; height: 40px !important; border-bottom: 2px solid var(--c-weapon); }
.rs--character .rs__a .pt--mono { border-bottom-color: var(--c-character); }
.rs--character .rs__yr:last-child .rs__a .pt--mono { border-bottom-color: var(--c-place); }
@media (max-width: 760px) { .rs__a .pt--mono { width: 46px !important; height: 46px !important; } }
.wc .rs__y { white-space: nowrap; }

/* section bands: the big outlined number is the count in the section */
.wc .era__band { grid-template-columns: auto minmax(0, 1fr); }
.wc .era__n { text-transform: none; letter-spacing: .02em; font: 400 14px/1.5 var(--serif); color: var(--ink-3); margin-top: 6px; }
.wc .era__band::before { background: var(--c-weapon); }
.wc .cxs .era__band::before { background: var(--c-character); }
.wc .cxs--place .era__band::before { background: var(--c-place); }

/* frames: weapons on a menu background are square "specimens", 440 px at most */
.bx__fig--sq { max-width: 440px; }
.bx__img--sq { aspect-ratio: 1 / 1; }
.bx__img--mid { aspect-ratio: 3 / 2; }
.bx--sq { margin-bottom: 80px; }
.bx__fig--extra { max-width: 640px; margin: 22px 0 0; }
.bx__fig--extra .bx__att .bx__capk { display: inline; }
@media (max-width: 760px) { .bx__fig--sq { max-width: none; } .bx--sq { margin-bottom: 64px; } .bx__fig--extra { max-width: none; } }

/* class line, under the name status */
.wx__cls { margin: 10px 0 0; font-size: 14px; line-height: 1.5; color: var(--ink-2); max-width: 760px; }
.wx__cls b { color: var(--ink-4); font-weight: 600; margin-right: 6px; letter-spacing: .02em; }

/* menu text: the game's own words, quoted */
.mt { margin: 2px 0 0; padding: 0 0 0 16px; border-left: 2px solid var(--c-official); max-width: 70ch; }
.mt--blur { border-left-style: dashed; }
.mt__h { margin: 0 0 6px; font-size: 13px; line-height: 1.45; color: var(--ink-4); }
.mt__k { font: 600 11px/1.4 var(--serif); letter-spacing: .14em; text-transform: uppercase; color: var(--c-official-text); margin-right: 4px; }
.mt__b { color: var(--ink-3); }
.mt__q { margin: 0; }
.mt__q p { margin: 0 0 6px; font-size: 15.5px; line-height: 1.55; color: var(--ink); max-width: none; }
.mt--blur .mt__q p { color: var(--ink-2); }
.mt__src { margin: 2px 0 0; font-size: 13px; line-height: 1.5; color: var(--ink-3); max-width: none; }
.mt__n { color: var(--ink-3); }
.kb { display: inline-block; min-width: 1.5em; padding: 0 4px; margin: 0 1px; font: 600 12px/18px var(--serif); text-align: center; color: var(--ink); border: 1px solid rgba(var(--white-rgb), .32); vertical-align: 1px; }
.kb--ico { min-width: 0; border: 0; color: var(--ink-3); padding: 0 1px; }
.mt__term { color: var(--ink); border-bottom: 1px dotted rgba(var(--white-rgb), .35); }
.mt__q .mt__q, .mt__q span.mt__q { color: var(--c-press); font-size: 13px; }
.mt__cut { color: var(--ink-4); font-style: normal; font-size: 13px; }

/* entry blocks (r2.css .bxs / .wr): a menu-text item carries no bullet */
.wr li.li--mt { padding-left: 0; }
.wr li.li--mt::before { content: none; }
.wr li + li.li--mt, .wr li.li--mt + li { margin-top: 6px; }
.bxs--do .wr li, .bxs--vs .wr li { font-size: 15px; color: var(--ink-2); }
.bxs--vs .wr b, .bxs--get .wr b, .bxs--up .wr b, .bxs--do .wr b { color: var(--ink); }
.bxs__p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--ink-2); max-width: 70ch; }
.bxs--more { margin-top: 10px; }
.wc .wfx { margin-top: 18px; }
.wc .wf__alt { line-height: 1.55; }
.wc .bx__more > summary { font-size: 14px; }
@media (max-width: 760px) { .wc .bx__more > summary { font-size: 17.5px; } .mt__q p { font-size: 15px; } .mt { padding-left: 12px; } }

/* Chinese-only names: a compact table under each weapon section */
.cn-only__h { margin: 8px 0 10px; font-size: 14px; color: var(--ink-3); max-width: 70ch; }
.cn-only { margin-bottom: 40px; }
.cn-only caption { text-align: left; }
.cn-only .zh-q { white-space: nowrap; }

/* characters: the quote card of the Seven Stars sits inside its entry */
.cx .qt { margin-top: 16px; }
.cx .qt p { font-size: 21px; }
.cx--place .bx__key { max-width: 70ch; }
@media (max-width: 760px) { .cx .qt p { font-size: 19px; } }

/* names page: the two round-3 sections */
.nbs--wc { margin-top: var(--h2-top, 64px); }
.nbs--wc .nb__d b { margin-right: 4px; }
.nb__was { color: var(--ink-3); }
.nbs--wc .zh-q { word-break: keep-all; }
@media (max-width: 760px) { .nbs--wc .zh-q { word-break: normal; overflow-wrap: anywhere; } }

/* tap targets: the in-text entry links */
.wc a.xl { padding: 14px 0; margin: -14px 0; }
.nbs--wc .nb h3 a { display: inline-block; padding: 7px 0; margin: -7px 0; }
.nbs--wc a.xl, .nbs--wc .nb__d a, .nbs--wc .nb__plates a { padding: 13px 0; margin: -13px 0; }
@media (prefers-reduced-motion: no-preference) {
  @media (hover: hover) { .bx--sq:hover .bx__img img { transform: scale(1.02); } }
}

/* round 3 pass 1 fixes: strip labels above their course on phones; source tags stay on one line on wider screens */
@media (max-width: 760px) { .wc .rs__yr { grid-template-columns: minmax(0, 1fr); } .wc .rs__y { padding-top: 0; } }
@media (min-width: 761px) { .wc .tg > span { white-space: nowrap; } }
/* a source tag that wraps keeps its frame on every line */
.wc .tg > span { -webkit-box-decoration-break: clone; box-decoration-break: clone; }
/* round 3b: the caption sits directly under its image, the source line under it */
.bx__fig figcaption { margin: 8px 0 0; }
.bx__capv { margin: 0; font-size: 14px; line-height: 1.5; color: var(--ink-3); max-width: 72ch; }
.bx__fig figcaption .bx__att { margin: 4px 0 0; }
.bxs--getup .rz { margin-top: 0; }
