/* weapon-design.css — the weapon detail page.

   The page wears the character dossier's chrome (.cd-page), so nothing here
   declares a colour, a typeface or a spacing scale of its own: every rule reads
   the same custom properties character-design.css already sets, which is what
   keeps the two page types looking like one site. Only the parts a weapon page
   has and a character page does not live here — stat bars, the figure grid,
   acquisition steps, pro/con columns, the comparison table and the rail box.

   Every rule is prefixed .wd-page so it can never reach another page. */

/* ---------- layout guard ----------
   The article column must be allowed to be NARROWER than its widest child.
   Below 940px the shared layout collapses to a single `1fr` track, which sizes
   to max-content, so the comparison table's own minimum width stretched the
   whole column to 737px on a 390px phone and the prose was clipped rather than
   wrapped. The table still scrolls inside its own box; only the column stops
   being dragged along with it. */
.wd-page .d-main,
.wd-page .sec {
  min-width: 0;
}

/* ---------- hero art ----------
   A weapon is photographed against nothing, so it is CONTAINED rather than
   cropped to fill: cover chopped the barrel off every silhouette. */
.wd-page .w-art img {
  object-fit: contain;
  padding: 6%;
  background: var(--art-bg);
}

/* ---------- statistics ---------- */
.wd-page .w-note {
  font-size: 14px;
  line-height: 1.6;
  color: var(--muted);
  margin: 0 0 18px;
  max-width: 68ch;
}
.wd-page .w-src {
  font-size: 12.5px;
  color: var(--muted);
  margin: 16px 0 0;
}

.wd-page .w-bars {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 34px;
  margin: 0 0 22px;
}
@media (max-width: 720px) {
  .wd-page .w-bars {
    grid-template-columns: 1fr;
  }
}
.wd-page .w-bar .top {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 6px;
}
.wd-page .w-bar .k {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
}
.wd-page .w-bar .v {
  font-family: var(--f-mono);
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  font-variant-numeric: tabular-nums;
}
.wd-page .w-bar .track {
  height: 9px;
  background: var(--sunk);
  border-radius: 5px;
  overflow: hidden;
}
.wd-page .w-bar .fill {
  height: 100%;
  background: var(--accent);
  border-radius: 5px;
}

/* The figures beside the bars: magazine size, price, unlock rank and the rest. */
.wd-page .w-facts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 12px;
}
.wd-page .w-facts li {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 14px 16px;
}
.wd-page .w-facts .lbl {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 5px;
}
.wd-page .w-facts .val {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--text);
}

/* A note on a figure — "per shot", "two-handed only" — is subordinate to it. */
.wd-page .w-facts .note {
  font-size: 12.5px;
  line-height: 1.45;
  color: var(--muted);
  margin-top: 4px;
}
/* The writer's headline figure keeps the emphasis the data asked for. */
.wd-page .w-facts li[data-emphasis='true'] {
  border-color: var(--accent);
}

/* A panel figure that declares a scale keeps its proportion, at panel scale. */
.wd-page .w-mini {
  display: block;
  height: 5px;
  margin-top: 6px;
  background: var(--sunk);
  border-radius: 3px;
  overflow: hidden;
}
.wd-page .w-mini .stat-bar-fill {
  display: block;
  height: 100%;
  background: var(--accent);
  border-radius: 3px;
}

/* ---------- acquisition ---------- */
.wd-page .w-prereq {
  background: var(--panel-2);
  border-left: 3px solid var(--accent);
  border-radius: 0 var(--r-md) var(--r-md) 0;
  padding: 14px 18px;
  margin: 0 0 18px;
}
.wd-page .w-prereq-h {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 6px;
}
.wd-page .w-prereq ul {
  margin: 0;
  padding-left: 18px;
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--text-2);
}

.wd-page .w-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.wd-page .w-steps li {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 14px 16px;
}
.wd-page .w-steps .n {
  font-family: var(--f-mono);
  font-size: 12px;
  font-weight: 700;
  color: var(--accent);
  flex: none;
  padding-top: 2px;
  font-variant-numeric: tabular-nums;
}
.wd-page .w-steps .t {
  font-size: 15px;
  line-height: 1.65;
  color: var(--text-2);
}

/* Availability: one card per mode, because a weapon is routinely purchasable in
   one mode and mission-locked in another and a single line cannot say that. */
.wd-page .w-avail {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
}
.wd-page .w-av {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 15px 17px;
}
.wd-page .w-av-h {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.wd-page .w-av .ctx {
  font-size: 14.5px;
  font-weight: 700;
  color: var(--text);
}
.wd-page .w-av .st,
.wd-page .w-av .pr {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: 999px;
  background: var(--chip-bg);
  color: var(--muted);
}
.wd-page .w-av .pr {
  background: var(--accent);
  color: var(--accent-ink);
}
.wd-page .w-av .req,
.wd-page .w-av .note {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--text-2);
}
.wd-page .w-av .req span {
  font-weight: 700;
  color: var(--muted);
}
.wd-page .w-av .note {
  margin-top: 6px;
  color: var(--muted);
}

/* ---------- strengths and weaknesses ---------- */
.wd-page .w-pc {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}
.wd-page .w-pc-box {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 18px 20px;
}
.wd-page .w-pc-box h3 {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0 0 12px;
}
.wd-page .w-pc-box[data-tone='pro'] h3 {
  color: #2f8f4e;
}
.wd-page .w-pc-box[data-tone='con'] h3 {
  color: #c0392b;
}
.wd-page .w-pc-box[data-tone='use'] h3 {
  color: var(--accent);
}
html[data-mode='dark'] .wd-page .w-pc-box[data-tone='pro'] h3 {
  color: #7cc47f;
}
html[data-mode='dark'] .wd-page .w-pc-box[data-tone='con'] h3 {
  color: #e8796b;
}
.wd-page .w-pc-box ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.wd-page .w-pc-box li {
  position: relative;
  padding-left: 22px;
  margin: 9px 0;
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--text-2);
}
.wd-page .w-pc-box li::before {
  position: absolute;
  left: 0;
  font-weight: 700;
}
.wd-page .w-pc-box[data-tone='pro'] li::before {
  content: '+';
  color: #2f8f4e;
}
.wd-page .w-pc-box[data-tone='con'] li::before {
  content: '\2013';
  color: #c0392b;
}
.wd-page .w-pc-box[data-tone='use'] li::before {
  content: '\2192';
  color: var(--accent);
}

/* ---------- comparison ----------
   The table scrolls inside its own box rather than widening the article, so a
   six-column comparison cannot force the whole page sideways on a phone. */
.wd-page .w-tbl-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--panel);
}
.wd-page .w-tbl {
  width: 100%;
  border-collapse: collapse;
  font-size: 13.5px;
  min-width: 520px;
}
/* On a phone a 520px floor guarantees a scrollbar on every table; at that size
   the columns are better left to wrap than to force sideways scrolling. */
@media (max-width: 560px) {
  .wd-page .w-tbl {
    min-width: 0;
  }
  .wd-page .w-tbl th,
  .wd-page .w-tbl td {
    padding: 10px 12px;
  }
}
.wd-page .w-tbl th,
.wd-page .w-tbl td {
  text-align: left;
  padding: 12px 15px;
  vertical-align: top;
}
.wd-page .w-tbl thead th {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
  background: var(--panel-2);
  border-bottom: 1px solid var(--line);
  white-space: nowrap;
}
.wd-page .w-tbl tbody th {
  font-weight: 700;
  color: var(--text);
}
.wd-page .w-tbl tbody td {
  color: var(--text-2);
  line-height: 1.55;
}
.wd-page .w-tbl tbody tr + tr th,
.wd-page .w-tbl tbody tr + tr td {
  border-top: 1px solid var(--line-2);
}
/* The row for the weapon being read is marked, so a reader never has to hunt
   for their own line in a table of near-identical rifles. */
.wd-page .w-tbl tbody tr.this th,
.wd-page .w-tbl tbody tr.this td {
  background: color-mix(in srgb, var(--accent) 12%, transparent);
}
.wd-page .w-tbl tbody tr.this th {
  box-shadow: inset 3px 0 0 var(--accent);
}

/* ---------- rail box ---------- */
.wd-page .w-box {
  padding: 0;
  overflow: hidden;
}
.wd-page .w-box-art {
  aspect-ratio: 4 / 3;
  background: var(--art-bg);
  display: flex;
  align-items: center;
  justify-content: center;
}
.wd-page .w-box-art img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 14px;
}
.wd-page .w-box-h {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
  background: var(--panel-2);
}
.wd-page .w-box-h .nm {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 15px;
  line-height: 1.2;
  color: var(--text);
}
.wd-page .w-box-h .tier {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
  border: 1.5px solid var(--accent);
  border-radius: 5px;
  padding: 2px 7px;
  flex: none;
}
.wd-page .w-grp {
  padding: 4px 0;
  border-bottom: 1px solid var(--line-2);
}
.wd-page .w-grp:last-of-type {
  border-bottom: 0;
}
.wd-page .w-grp-h {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  padding: 10px 16px 2px;
}
.wd-page .w-box .dl {
  padding: 0 16px 8px;
}
.wd-page .w-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 14px;
  padding: 12px 15px;
  background: var(--accent);
  color: var(--accent-ink);
  border-radius: var(--r-md);
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 13px;
  text-align: center;
  transition: filter 0.15s var(--ease);
}
.wd-page .w-cta:hover {
  filter: brightness(1.08);
}

.weapon-page .d-portrait>img{object-fit:cover}
.weapon-page .rail-id>img,.weapon-page .rc-art img{object-fit:cover}
.weapon-page .weapon-data-card{margin:24px 0 18px;border:1px solid rgba(26,23,18,.12);border-radius:14px;background:rgba(255,255,255,.72);overflow:hidden;box-shadow:0 14px 40px rgba(27,19,12,.06)}
.weapon-page .weapon-data-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:18px 20px 15px;border-bottom:1px solid rgba(26,23,18,.1);background:linear-gradient(135deg,rgba(255,90,31,.075),rgba(255,255,255,0))}
.weapon-page .weapon-data-kicker{display:block;margin-bottom:3px;font:700 10px/1.2 var(--t-font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--t-accent)}
.weapon-page .weapon-data-title{font:700 21px/1.12 var(--t-font-head);letter-spacing:.01em}
.weapon-page .weapon-data-note{max-width:250px;text-align:right;font:600 10px/1.4 var(--t-font-mono);letter-spacing:.05em;text-transform:uppercase;opacity:.55}
.weapon-page .weapon-table-wrap{width:100%;overflow-x:auto}
.weapon-page .weapon-table{width:100%;border-collapse:collapse;font-size:13px}
.weapon-page .weapon-table th,.weapon-page .weapon-table td{padding:14px 18px;border-bottom:1px solid rgba(26,23,18,.085);vertical-align:middle;text-align:left}
.weapon-page .weapon-table thead th{font:700 10px/1.2 var(--t-font-mono);letter-spacing:.11em;text-transform:uppercase;opacity:.55;background:rgba(26,23,18,.025)}
.weapon-page .weapon-table tbody tr:last-child th,.weapon-page .weapon-table tbody tr:last-child td{border-bottom:0}
.weapon-page .weapon-table tbody th{width:22%;font:700 12px/1.25 var(--t-font-body);letter-spacing:.01em}
.weapon-page .weapon-table .value{width:90px;text-align:right;font:700 12px/1.2 var(--t-font-mono);white-space:nowrap}
.weapon-page .stat-meter{height:8px;min-width:180px;border-radius:999px;background:rgba(26,23,18,.08);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(26,23,18,.035)}
.weapon-page .stat-meter>span{display:block;height:100%;width:var(--stat);border-radius:inherit;background:linear-gradient(90deg,var(--t-accent),var(--t-accent-2));box-shadow:0 0 16px rgba(255,90,31,.22)}
.weapon-page .weapon-spec-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px}
.weapon-page .weapon-spec{padding:14px 14px 13px;border:1px solid rgba(26,23,18,.085);border-radius:11px;background:rgba(255,255,255,.55)}
.weapon-page .weapon-spec .k{display:block;margin-bottom:5px;font:700 9px/1.2 var(--t-font-mono);letter-spacing:.12em;text-transform:uppercase;opacity:.48}
.weapon-page .weapon-spec .v{font:700 14px/1.25 var(--t-font-body)}
.weapon-page .weapon-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}
.weapon-page .weapon-mode-card{position:relative;padding:18px;border:1px solid rgba(26,23,18,.1);border-radius:13px;background:rgba(255,255,255,.65);overflow:hidden}
.weapon-page .weapon-mode-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--t-accent)}
.weapon-page .weapon-mode-card .ey{font:700 9px/1 var(--t-font-mono);letter-spacing:.13em;text-transform:uppercase;color:var(--t-accent)}
.weapon-page .weapon-mode-card h4{margin:7px 0 12px;font:700 20px/1.1 var(--t-font-head)}
.weapon-page .weapon-mode-card dl{margin:0}
.weapon-page .weapon-mode-card .mr{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-top:1px solid rgba(26,23,18,.075);font-size:12px}
.weapon-page .weapon-mode-card dt{opacity:.56}.weapon-page .weapon-mode-card dd{margin:0;font-weight:700;text-align:right}
.weapon-page .compat-yes,.weapon-page .compat-mode{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font:700 9px/1 var(--t-font-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.weapon-page .compat-yes{background:rgba(255,90,31,.1);color:var(--t-accent)}
.weapon-page .compat-mode{background:rgba(26,23,18,.055)}
.weapon-page .comparison-table th:first-child{width:24%}
.weapon-page .comparison-table .focus-col{background:rgba(255,90,31,.055)}
.weapon-page .table-caption{padding:12px 18px 15px;border-top:1px solid rgba(26,23,18,.08);font-size:11px;line-height:1.55;opacity:.6}
html[data-theme=dark] .weapon-page .weapon-data-card,html[data-theme=dark] .weapon-page .weapon-mode-card{border-color:rgba(244,241,234,.12);background:rgba(33,28,23,.76);box-shadow:0 16px 44px rgba(0,0,0,.17)}
html[data-theme=dark] .weapon-page .weapon-data-head{border-color:rgba(244,241,234,.1);background:linear-gradient(135deg,rgba(255,90,31,.11),rgba(33,28,23,0))}
html[data-theme=dark] .weapon-page .weapon-table th,html[data-theme=dark] .weapon-page .weapon-table td,html[data-theme=dark] .weapon-page .weapon-mode-card .mr,html[data-theme=dark] .weapon-page .table-caption{border-color:rgba(244,241,234,.09)}
html[data-theme=dark] .weapon-page .weapon-table thead th{background:rgba(244,241,234,.025)}
html[data-theme=dark] .weapon-page .stat-meter{background:rgba(244,241,234,.1)}
html[data-theme=dark] .weapon-page .weapon-spec{border-color:rgba(244,241,234,.09);background:rgba(244,241,234,.035)}
html[data-theme=dark] .weapon-page .compat-mode{background:rgba(244,241,234,.08)}
@media (prefers-color-scheme:dark){html:not([data-theme=light]) .weapon-page .weapon-data-card,html:not([data-theme=light]) .weapon-page .weapon-mode-card{border-color:rgba(244,241,234,.12);background:rgba(33,28,23,.76);box-shadow:0 16px 44px rgba(0,0,0,.17)}html:not([data-theme=light]) .weapon-page .weapon-data-head{border-color:rgba(244,241,234,.1);background:linear-gradient(135deg,rgba(255,90,31,.11),rgba(33,28,23,0))}html:not([data-theme=light]) .weapon-page .weapon-table th,html:not([data-theme=light]) .weapon-page .weapon-table td,html:not([data-theme=light]) .weapon-page .weapon-mode-card .mr,html:not([data-theme=light]) .weapon-page .table-caption{border-color:rgba(244,241,234,.09)}html:not([data-theme=light]) .weapon-page .weapon-table thead th{background:rgba(244,241,234,.025)}html:not([data-theme=light]) .weapon-page .stat-meter{background:rgba(244,241,234,.1)}html:not([data-theme=light]) .weapon-page .weapon-spec{border-color:rgba(244,241,234,.09);background:rgba(244,241,234,.035)}html:not([data-theme=light]) .weapon-page .compat-mode{background:rgba(244,241,234,.08)}}
@media(max-width:720px){.weapon-page .weapon-data-head{align-items:flex-start;flex-direction:column}.weapon-page .weapon-data-note{text-align:left;max-width:none}.weapon-page .weapon-spec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.weapon-page .weapon-mode-grid{grid-template-columns:1fr}.weapon-page .weapon-table th,.weapon-page .weapon-table td{padding:12px 13px}.weapon-page .stat-meter{min-width:130px}}
@media(max-width:440px){.weapon-page .weapon-spec-grid{grid-template-columns:1fr}.weapon-page .weapon-table{min-width:540px}}
   Replace each data-image-slot img src with a real asset. Remove optional figures
   when no useful image exists; never leave placeholders on a published article. */
.weapon-page .weapon-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:22px 0}
.weapon-page .weapon-media-figure{min-width:0;margin:22px 0}
.weapon-page .weapon-media-grid>.weapon-media-figure{margin:0}
.weapon-page .weapon-media-slot{position:relative;overflow:hidden;border:1px solid rgba(26,23,18,.12);border-radius:var(--t-radius,14px);background:#2B2B2B;isolation:isolate}
.weapon-page .weapon-slot-image{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#2B2B2B;margin:0;border:0;border-radius:0}
.weapon-page .weapon-media-slot:after{content:"";position:absolute;inset:50% 0 0;z-index:0;pointer-events:none;background:linear-gradient(transparent,rgba(0,0,0,.65))}
.weapon-page .weapon-slot-label{position:absolute;z-index:1;left:18px;right:18px;bottom:16px;color:#f4f1ea;font:600 14px/1.4 var(--t-font-body);letter-spacing:0}
.weapon-page .weapon-slot-badge{position:absolute;z-index:1;top:13px;left:13px;padding:6px 8px;border:1px solid rgba(255,255,255,.18);border-radius:5px;background:rgba(0,0,0,.3);color:#d9d5cf;font:600 9px/1.3 var(--t-font-mono);letter-spacing:.09em;text-transform:uppercase}
.weapon-page .weapon-media-figure figcaption{padding:10px 2px 0;font:400 12px/1.6 var(--t-font-body);opacity:.65}
.weapon-page .weapon-attachment-cell{display:flex;align-items:center;gap:12px;min-width:210px}
.weapon-page .weapon-attachment-cell .weapon-slot-image{width:76px;height:57px;aspect-ratio:4/3;flex:0 0 76px;border:1px solid rgba(26,23,18,.12);border-radius:8px}
.weapon-page .weapon-attachment-name{display:flex;flex-direction:column;gap:5px}
.weapon-page .weapon-image-hint{font:500 8px/1.3 var(--t-font-mono);letter-spacing:.06em;text-transform:uppercase;opacity:.5}
.weapon-page .weapon-table.attachments-with-images tbody th{width:30%}
.weapon-page .comparison-table{min-width:650px;table-layout:fixed}
.weapon-page .comparison-table thead th{opacity:1;vertical-align:bottom}
.weapon-page .weapon-compare-heading{display:flex;flex-direction:column;gap:11px}
.weapon-page .weapon-compare-heading .weapon-slot-image{width:100%;aspect-ratio:16/9;border-radius:8px;border:1px solid rgba(26,23,18,.12)}
.weapon-page .weapon-compare-heading .weapon-compare-name{font:700 10px/1.4 var(--t-font-mono);letter-spacing:.08em;opacity:.7}
.weapon-page .comparison-table .focus-col .weapon-compare-name{color:var(--t-accent);opacity:1}
.weapon-page .weapon-mode-card>.weapon-media-figure{margin:0 0 17px}
.weapon-page .weapon-mode-card .weapon-slot-label{font-size:12px;left:12px;right:12px;bottom:12px}
.weapon-page .weapon-mode-card .weapon-slot-badge{font-size:8px;top:10px;left:10px}
.weapon-page .weapon-mode-card .weapon-media-figure figcaption{font-size:11px}
html[data-theme=dark] .weapon-page .weapon-media-slot,html[data-theme=dark] .weapon-page .weapon-attachment-cell .weapon-slot-image,html[data-theme=dark] .weapon-page .weapon-compare-heading .weapon-slot-image{border-color:rgba(244,241,234,.15)}
@media(prefers-color-scheme:dark){html:not([data-theme=light]) .weapon-page .weapon-media-slot,html:not([data-theme=light]) .weapon-page .weapon-attachment-cell .weapon-slot-image,html:not([data-theme=light]) .weapon-page .weapon-compare-heading .weapon-slot-image{border-color:rgba(244,241,234,.15)}}
@media(max-width:720px){.weapon-page .weapon-media-grid{grid-template-columns:1fr}.weapon-page .weapon-slot-label{font-size:13px}.weapon-page .weapon-attachment-cell{min-width:175px;gap:9px}.weapon-page .weapon-attachment-cell .weapon-slot-image{width:60px;height:45px;flex-basis:60px}.weapon-page .comparison-table{min-width:610px}}
.weapon-page{--stick:72px}
.weapon-page .wrap{width:min(1440px,calc(100% - 44px));margin-inline:auto}
.weapon-page .d-hero{background:radial-gradient(ellipse at 65% 25%,#42372c 0,transparent 58%),linear-gradient(130deg,#12100e,#241b15);min-height:0}.weapon-page .d-hero .hero-inner{padding:28px 0 0}.weapon-page .d-name{color:#fff}.weapon-page .hero-bg:empty{display:none}.weapon-page .d-portrait{background:#2B2B2B;border:1px solid rgba(255,255,255,.15);border-bottom:0;border-radius:24px 24px 0 0;aspect-ratio:4/4.5}.weapon-page .d-portrait .weapon-slot-image{height:100%;aspect-ratio:auto;object-fit:contain}.weapon-page .d-portrait img[data-placeholder=true]{opacity:.35}.weapon-page .d-portrait .cap .t{color:#e9e2dc;font-size:10px}.u-hero-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#c5c0b8;font:600 13px/1.8 var(--f-mono);text-transform:uppercase;letter-spacing:.1em;pointer-events:none}.u-hero-placeholder small{font:500 11px/1.7 var(--f-body);text-transform:none;letter-spacing:0;color:#a29c95}
.weapon-page .d-meta .m .k{font-size:10px;letter-spacing:.1em;color:#d3cac3}.weapon-page .d-meta .m .v{color:#f4f1ea;font-size:20px;text-transform:none}
.weapon-page .weapon-media-grid.single,.weapon-page .weapon-mode-grid.single{grid-template-columns:1fr}.weapon-page .weapon-media-grid.single .weapon-media-figure{max-width:none}.weapon-page .u-facts{padding:0;margin:20px 0;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.weapon-page .u-stats:not(:has(.stat-meter)){min-width:0}.weapon-page .u-stats th{width:40%}.weapon-page .u-unit{font-weight:400;opacity:.55}.weapon-page .u-stats .value{width:auto;text-align:right}.weapon-page .u-flex-table{min-width:450px}.weapon-page .u-flex-table th:first-child{width:auto}.weapon-page .weapon-data-head{padding:20px}.weapon-page .u-stats td,.weapon-page .u-stats th{font-size:14px}.weapon-page .weapon-table td{line-height:1.55}
.weapon-page .u-ability{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:center;padding:20px;margin:24px 0;background:var(--panel);border:1px solid var(--line);border-radius:14px}.weapon-page .u-ability .weapon-media-figure{margin:0}.weapon-page .u-ability-body h3{margin:8px 0 12px;font-size:24px}.weapon-page .u-ability-body h3:before{display:none}.weapon-page .u-ability-body p{font-size:15px}.weapon-page .u-ability-body .dl dt{font-size:11px}.weapon-page .u-ability-body .dl dd{font-size:14px}.weapon-page .weapon-mode-card .dl .r{grid-template-columns:100px 1fr}.weapon-page .weapon-mode-card .dl dt{font-size:11px}.weapon-page .weapon-mode-card .dl dd{font-size:13px}.weapon-page .comparison-table{table-layout:fixed}.weapon-page .comparison-table th:first-child{width:23%}.weapon-page .comparison-table td{overflow-wrap:anywhere}.weapon-page .weapon-compare-heading a{color:inherit}
.weapon-page .rail-id>.weapon-slot-image{width:58px;height:58px;object-fit:contain;flex:0 0 58px;border-radius:9px}.weapon-page .rail-id .sub{font-size:10px}.weapon-page .rc-art .weapon-slot-image{width:100%;height:100%;object-fit:contain}.weapon-page .d-related .rc-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.weapon-page .d-related .rc{max-width:440px}
.u-mobile-toc{display:none;margin:20px 0;padding:15px 18px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.u-mobile-toc summary{cursor:pointer;font-size:14px;font-weight:700}.u-mobile-toc ol{list-style:none;padding:14px 0 0;margin:0;display:grid;gap:10px;font-size:13px}.u-mobile-toc a{color:var(--text-2)}
.weapon-page .d-main p,.weapon-page .kt p{font-size:calc(18px * var(--reader-scale,1));line-height:1.75}.weapon-page .d-main .sec-head h2{font-size:calc(34px * var(--reader-scale,1))}.weapon-page .kt-grid .kt h4{font-size:calc(18px * var(--reader-scale,1))}.weapon-page .kt-grid{margin-bottom:0}
@media(max-width:1080px){.weapon-page .d-hero-grid{grid-template-columns:minmax(0,1fr) 300px;gap:24px}.weapon-page .d-name{font-size:58px}}
@media(max-width:940px){.u-mobile-toc{display:block}.weapon-page .d-rail{order:-1;display:grid;grid-template-columns:1fr 1fr;gap:16px}.weapon-page .d-rail .rail-card{margin:0}.weapon-page .d-rail .d-toc{display:none}.weapon-page .d-layout{gap:20px}.u-ability{grid-template-columns:1fr!important}}
@media(max-width:640px){.weapon-page .wrap{width:calc(100% - 36px)}.weapon-page .d-hero-grid{grid-template-columns:1fr;gap:16px}.weapon-page .d-portrait{aspect-ratio:16/9;max-width:100%;border-radius:14px 14px 0 0}.weapon-page .d-name{font-size:46px}.weapon-page .d-rail{display:none}.weapon-page .d-layout{padding-top:0}.weapon-page .d-main .sec-head h2{font-size:calc(27px * var(--reader-scale,1))}.weapon-page .weapon-media-grid{gap:12px}.weapon-page .u-stats{min-width:0}.weapon-page .u-stats .stat-meter{min-width:90px}.weapon-page .weapon-mode-card .dl .r{grid-template-columns:90px 1fr}.weapon-page .sec{margin-bottom:38px}.weapon-page .d-main p,.weapon-page .kt p{font-size:calc(16px * var(--reader-scale,1))}}
@media print{.weapon-page .d-layout{display:block}.weapon-page .d-rail{display:none}.weapon-page .d-hero{print-color-adjust:exact}.weapon-page .weapon-table-wrap{overflow:visible}.weapon-page .weapon-table{min-width:0!important}.weapon-page .sec{break-inside:auto}.weapon-page .weapon-data-card,.weapon-page .weapon-media-figure{break-inside:avoid}.weapon-page .wrap{width:100%}}