:root {
  color-scheme: dark;
  --bg: #07100e;
  --surface: #0b1714;
  --surface-2: #0f1d19;
  --surface-3: #13221e;
  --line: #263c36;
  --line-strong: #3e5b52;
  --text: #f0f5f2;
  --muted: #a6b6b0;
  --green: #43d989;
  --green-dark: #16663f;
  --blue: #69aaf5;
  --blue-dark: #285f9f;
  --amber: #f0c75e;
  --danger: #ef766f;
  --shadow: 0 18px 52px rgba(0, 0, 0, 0.24);
}

* { box-sizing: border-box; }
html { background: var(--bg); scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  color: var(--text);
  background: var(--bg);
  font-family: Pretendard, "Noto Sans KR", "Apple SD Gothic Neo", system-ui, sans-serif;
  letter-spacing: 0;
  line-height: 1.55;
}
button, input, select { font: inherit; }
button, select { cursor: pointer; }
a { color: inherit; text-decoration: none; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-header {
  position: sticky;
  z-index: 20;
  top: 0;
  border-bottom: 1px solid var(--line);
  background: rgba(7, 16, 14, 0.96);
  backdrop-filter: blur(12px);
}
.header-inner {
  display: flex;
  width: min(1240px, calc(100% - 40px));
  min-height: 64px;
  margin: 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.brand { display: inline-flex; align-items: center; gap: 10px; font-size: 17px; font-weight: 800; white-space: nowrap; }
.brand-mark {
  width: 23px;
  height: 23px;
  border: 2px solid var(--green);
  border-radius: 50%;
  box-shadow: inset 0 0 0 5px var(--bg);
  background: var(--green);
}
.header-inner nav { display: flex; align-items: center; gap: 24px; color: var(--muted); font-size: 14px; }
.header-inner nav a { display: inline-flex; min-height: 40px; align-items: center; }
.header-inner nav a:hover, .header-inner nav a:focus-visible, .header-inner nav a[aria-current="page"] { color: var(--text); }
.header-inner nav a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--green); }

.page-shell { width: min(1240px, calc(100% - 40px)); margin: 0 auto; }
.page-intro {
  display: flex;
  padding: 48px 0 30px;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
}
.eyebrow, .section-kicker {
  margin: 0 0 8px;
  color: var(--green);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0;
}
.page-intro h1 { margin: 0; font-size: 38px; line-height: 1.2; letter-spacing: 0; }
.lead { max-width: 760px; margin: 14px 0 0; color: var(--muted); font-size: 16px; }
.intro-data-note { display: flex; max-width: 390px; margin: 0; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px 12px; color: var(--muted); font-size: 11px; text-align: right; }
.intro-data-note strong { color: #cfe0d9; font-size: 12px; }
.intro-data-note a { color: var(--green); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }

.simulator, .damage-chart-section, .results, .shot-group-section, .body-damage-section {
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 6px;
  background: var(--surface);
}
.simulator-head, .results-head {
  display: flex;
  min-height: 78px;
  padding: 17px 22px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid var(--line);
}
.simulator-head h2, .results-head h2, .section-heading h2 { margin: 0; font-size: 22px; line-height: 1.25; letter-spacing: 0; }
.simulator-head .section-kicker, .results-head .section-kicker { margin-bottom: 3px; }
.secondary-button, .primary-button {
  min-height: 44px;
  border-radius: 5px;
  font-weight: 750;
}
.secondary-button { display: inline-flex; padding: 0 14px; align-items: center; gap: 9px; border: 1px solid var(--line-strong); color: var(--text); background: transparent; }
.secondary-button:hover, .secondary-button:focus-visible { border-color: var(--green); background: #10241d; }
.primary-button { min-width: 240px; padding: 0 24px; border: 1px solid #66e5a2; color: #04100b; background: var(--green); }
.primary-button:hover, .primary-button:focus-visible { background: #6ceaa9; }
.primary-button[aria-busy="true"] { opacity: 0.72; cursor: wait; }

.global-controls {
  display: grid;
  grid-template-columns: minmax(360px, 1fr) 330px;
  gap: 16px;
  padding: 18px 22px;
  align-items: end;
  border-bottom: 1px solid var(--line);
  background: #0a1412;
}
.global-controls label, .fighter-controls label { display: flex; min-width: 0; flex-direction: column; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 700; }
.global-controls select, .global-controls input[type="number"], .fighter-controls select, .fighter-controls input {
  width: 100%;
  min-width: 0;
  height: 44px;
  padding: 0 12px;
  border: 1px solid var(--line-strong);
  border-radius: 5px;
  outline: none;
  color: var(--text);
  background: #081310;
}
.global-controls select:focus, .global-controls input:focus, .fighter-controls select:focus, .fighter-controls input:focus { border-color: var(--green); box-shadow: 0 0 0 2px rgba(67, 217, 137, 0.15); }
.range-control > span:first-child { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.range-control output { color: var(--green); font-size: 18px; }
.range-control input[type="range"] { width: 100%; height: 28px; margin: 0; accent-color: var(--green); }
.range-scale { display: flex; justify-content: space-between; color: #72837d; font-size: 11px; font-weight: 500; }
.advanced-settings { min-width: 0; }
.advanced-settings summary { display: flex; min-height: 44px; padding: 0 12px; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid var(--line-strong); border-radius: 5px; color: var(--text); background: #081310; cursor: pointer; list-style: none; }
.advanced-settings summary::-webkit-details-marker { display: none; }
.advanced-settings summary::after { width: 7px; height: 7px; flex: 0 0 auto; content: ""; border-right: 2px solid var(--green); border-bottom: 2px solid var(--green); transform: rotate(45deg) translateY(-2px); transition: transform .16s ease; }
.advanced-settings[open] summary::after { transform: rotate(225deg) translate(-2px, -2px); }
.advanced-settings summary span { font-size: 12px; font-weight: 800; }
.advanced-settings summary small { color: var(--muted); font-size: 10px; }
.advanced-settings-grid { display: grid; margin-top: 10px; grid-template-columns: 1fr 1fr; gap: 10px; }
.data-source-strip { display: flex; min-height: 48px; padding: 8px 22px; align-items: center; gap: 0; overflow-x: auto; border-bottom: 1px solid var(--line); color: var(--muted); background: #07110f; scrollbar-width: thin; }
.data-source-strip > span { display: flex; min-width: max-content; padding-right: 16px; align-items: baseline; gap: 6px; }
.data-source-strip > span + span { padding-left: 16px; border-left: 1px solid var(--line); }
.data-source-strip small { color: #83948e; font-size: 10px; font-weight: 750; }
.data-source-strip strong { color: #d1dcd8; font-size: 11px; }
.data-source-strip a { display: inline-flex; min-width: max-content; min-height: 40px; margin-left: auto; align-items: center; color: var(--green); font-size: 11px; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.mobile-fighter-tabs, .body-damage-tabs, .shot-target-tabs { display: none; }

.fighter-grid { display: grid; grid-template-columns: minmax(0, 1fr) 58px minmax(0, 1fr); align-items: stretch; }
.fighter { min-width: 0; margin: 0; padding: 20px 22px 22px; border: 0; }
.fighter-b { border-left: 1px solid var(--line); }
.fighter legend { display: flex; width: 100%; padding: 0 0 14px; align-items: baseline; justify-content: space-between; gap: 14px; }
.fighter legend span { color: var(--muted); font-size: 11px; font-weight: 800; }
.fighter legend strong { overflow: hidden; font-size: 20px; text-overflow: ellipsis; white-space: nowrap; }
.fighter-a legend strong { color: var(--green); }
.fighter-b legend strong { color: var(--blue); }
.weapon-visual {
  display: grid;
  position: relative;
  height: 132px;
  margin: 0 0 18px;
  overflow: hidden;
  place-items: center;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #081310;
}
.weapon-visual::before { position: absolute; top: 0; bottom: 0; left: 0; width: 3px; content: ""; background: var(--green); }
.fighter-b .weapon-visual::before { right: 0; left: auto; background: var(--blue); }
.weapon-visual img { width: min(78%, 300px); height: 116px; object-fit: contain; filter: brightness(1.18) contrast(1.04) drop-shadow(0 10px 12px rgba(0, 0, 0, 0.34)); }
.weapon-tags { display: flex; position: absolute; right: 9px; bottom: 8px; gap: 5px; }
.fighter-b .weapon-tags { right: auto; left: 9px; }
.weapon-tags span { padding: 3px 7px; border: 1px solid var(--line-strong); border-radius: 3px; color: #cbd8d3; background: rgba(7, 16, 14, 0.9); font-size: 10px; font-weight: 800; }
.fighter-controls { display: grid; gap: 16px; }
.fighter-controls .wide { width: 100%; }
.fighter-b select:focus, .fighter-b input:focus { border-color: var(--blue); box-shadow: 0 0 0 2px rgba(105, 170, 245, 0.15); }
.loadout-editor { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 18px; padding-top: 2px; }
.avatar-panel { min-width: 0; }
.avatar-status { display: flex; height: 32px; padding: 0 9px; align-items: center; justify-content: space-between; border: 1px solid var(--line); border-bottom: 0; color: var(--muted); background: #091411; font-size: 10px; }
.avatar-status strong { color: var(--text); font-size: 13px; font-variant-numeric: tabular-nums; }
.combat-avatar {
  position: relative;
  height: 286px;
  overflow: hidden;
  border: 1px solid var(--line);
  background-color: #07110f;
  background-image: linear-gradient(rgba(62, 91, 82, .1) 1px, transparent 1px), linear-gradient(90deg, rgba(62, 91, 82, .1) 1px, transparent 1px);
  background-size: 32px 32px;
  isolation: isolate;
}
.combat-avatar::before { position: absolute; inset: 0; z-index: -1; content: ""; background: radial-gradient(ellipse at 50% 41%, rgba(67, 217, 137, .13), transparent 63%); }
.combat-avatar::after { position: absolute; right: 12px; bottom: 9px; left: 12px; z-index: 0; height: 24px; content: ""; border-radius: 50%; background: rgba(0, 0, 0, .5); filter: blur(8px); }
.fighter-b .combat-avatar::before { background: radial-gradient(ellipse at 50% 41%, rgba(105, 170, 245, .13), transparent 63%); }
.avatar-character { position: absolute; top: 7px; left: 50%; z-index: 1; width: auto; max-width: 94%; height: 271px; object-fit: contain; transform: translateX(-50%); filter: brightness(.92) contrast(1.07) drop-shadow(0 14px 14px rgba(0, 0, 0, .5)); }
.avatar-equipment { position: absolute; left: 50%; z-index: 4; object-fit: contain; pointer-events: none; filter: brightness(.94) contrast(1.06) drop-shadow(0 4px 4px rgba(0, 0, 0, .52)); }
.avatar-equipment[hidden] { display: none; }
.avatar-vest-image { object-fit: fill; transform: translateX(-50%); }
[data-vest="1"] .avatar-vest-image { top: 56px; left: calc(50% + 1px); width: 78px; height: 68px; }
[data-vest="2"] .avatar-vest-image { top: 60px; width: 84px; height: 68px; }
[data-vest="3"] .avatar-vest-image { top: 58px; left: calc(50% - 1px); width: 86px; height: 70px; }
.aim-hotspot { position: absolute; z-index: 8; width: 30px; height: 30px; padding: 0; border: 0; border-radius: 50%; outline: none; background: transparent; transform: translate(-50%, -50%); }
.aim-hotspot::before { position: absolute; inset: 10px; content: ""; border: 1px solid rgba(211, 228, 220, .5); border-radius: 50%; background: rgba(7, 16, 14, .56); transition: inset 150ms ease, border-color 150ms ease, background 150ms ease; }
.aim-hotspot::after { position: absolute; top: 50%; left: calc(100% + 3px); padding: 2px 5px; content: attr(data-label); opacity: 0; border: 1px solid var(--line-strong); border-radius: 3px; color: var(--text); background: rgba(7, 16, 14, .96); font-size: 9px; font-weight: 750; white-space: nowrap; transform: translateY(-50%); pointer-events: none; }
.aim-hotspot:hover::before, .aim-hotspot:focus-visible::before { inset: 6px; border-color: var(--text); }
.aim-hotspot:hover::after, .aim-hotspot:focus-visible::after { opacity: 1; }
.aim-hotspot[aria-pressed="true"]::before { inset: 6px; border: 2px solid var(--green); background: rgba(67, 217, 137, .18); box-shadow: 0 0 0 3px rgba(67, 217, 137, .08), inset 0 0 0 3px rgba(7, 16, 14, .84); }
.fighter-b .aim-hotspot[aria-pressed="true"]::before { border-color: var(--blue); background: rgba(105, 170, 245, .18); box-shadow: 0 0 0 3px rgba(105, 170, 245, .08), inset 0 0 0 3px rgba(7, 16, 14, .84); }
.aim-head { top: 14%; left: 50%; }.aim-upper-chest { top: 29%; left: 50%; }.aim-lower-chest { top: 36%; left: 50%; }.aim-stomach { top: 43%; left: 50%; }.aim-pelvis { top: 51%; left: 50%; }.aim-arm { top: 35%; left: 35%; }.aim-leg { top: 62%; left: 41%; }
.selected-aim { display: flex; min-height: 34px; margin: 0; padding: 6px 9px; align-items: center; justify-content: space-between; border: 1px solid var(--line); border-top: 0; color: var(--muted); background: #091411; font-size: 10px; }
.selected-aim strong { color: var(--green); font-size: 12px; }.fighter-b .selected-aim strong { color: var(--blue); }
.loadout-options { display: flex; min-width: 0; flex-direction: column; gap: 14px; }
.control-group { min-width: 0; }
.control-label { display: flex; min-height: 22px; margin-bottom: 6px; align-items: baseline; justify-content: space-between; gap: 10px; }
.control-label span { color: var(--muted); font-size: 11px; font-weight: 800; }.control-label small { overflow: hidden; color: #72837d; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.choice-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; }
.choice-options button { display: flex; min-width: 0; min-height: 42px; padding: 4px 5px; align-items: center; justify-content: center; gap: 4px; border: 1px solid var(--line); border-radius: 4px; color: #aab9b4; background: #081310; font-size: 10px; font-weight: 750; line-height: 1.15; }
.choice-options button:hover, .choice-options button:focus-visible { border-color: var(--line-strong); color: var(--text); outline: none; }
.choice-options button[aria-pressed="true"] { border-color: var(--green); color: #e9fff3; background: #123225; box-shadow: inset 0 0 0 1px rgba(67, 217, 137, .12); }
.fighter-b .choice-options button[aria-pressed="true"] { border-color: var(--blue); color: #edf6ff; background: #14283d; box-shadow: inset 0 0 0 1px rgba(105, 170, 245, .12); }
.equipment-options button { min-height: 58px; flex-direction: column; gap: 1px; }
.equipment-options button img { width: 38px; height: 34px; object-fit: contain; filter: drop-shadow(0 3px 3px rgba(0, 0, 0, .48)); transition: transform 140ms ease; }
.equipment-options button:hover img, .equipment-options button:focus-visible img { transform: translateY(-1px) scale(1.05); }
.equipment-options button span { color: inherit; font-size: 9px; line-height: 1; }
.equipment-options .empty-choice { min-height: 58px; color: #778781; }
.aim-options { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.aim-options button:last-child { grid-column: span 2; }
.skill-options button:last-child { position: relative; }
.skill-options button span { position: absolute; top: -6px; right: 3px; padding: 1px 3px; border: 1px solid #7a6531; border-radius: 2px; color: var(--amber); background: #19170d; font-size: 7px; }
.skill-description { min-height: 31px; margin: 7px 0 0; color: #778781; font-size: 9px; line-height: 1.45; }
.unit-input { position: relative; }
.unit-input input { padding-right: 42px; }
.unit-input span { position: absolute; top: 50%; right: 12px; color: #71827c; transform: translateY(-50%); font-size: 11px; }
.versus { display: flex; position: relative; z-index: 1; align-items: center; justify-content: center; color: var(--amber); background: #0a1412; font-size: 12px; font-weight: 900; }
.versus::before, .versus::after { position: absolute; left: 50%; width: 1px; height: calc(50% - 27px); content: ""; background: var(--line); }
.versus::before { top: 0; }.versus::after { bottom: 0; }
.versus span { display: grid; width: 38px; height: 38px; border: 1px solid #7a6531; border-radius: 50%; place-items: center; background: #19170d; }
.weapon-spec { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 18px 0 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.weapon-spec div { padding: 10px 7px; text-align: center; }
.weapon-spec div + div { border-left: 1px solid var(--line); }
.weapon-spec dt { color: var(--muted); font-size: 10px; }
.weapon-spec dd { margin: 2px 0 0; font-size: 13px; font-weight: 800; }
.weapon-spec .provisional dd { color: var(--amber); }
.weapon-data-source { display: flex; min-height: 30px; margin: 0; padding: 7px 3px 0; flex-wrap: wrap; gap: 5px 12px; color: #72837d; font-size: 9px; line-height: 1.35; }
.weapon-data-source span { white-space: nowrap; }
.weapon-data-source strong { color: #aab9b4; font-weight: 700; }
.run-row { display: flex; padding: 17px 22px; align-items: center; justify-content: space-between; gap: 24px; border-top: 1px solid var(--line); background: #0a1412; }
.run-row p { margin: 0; color: var(--muted); font-size: 13px; }.run-row p strong { color: var(--text); }

.damage-chart-section { margin-top: 22px; }
.damage-chart-head {
  display: flex;
  min-height: 78px;
  padding: 17px 22px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid var(--line);
}
.damage-chart-head h2 { margin: 0; font-size: 22px; line-height: 1.25; letter-spacing: 0; }
.damage-chart-head .section-kicker { margin-bottom: 3px; }
.damage-chart-head > p { margin: 0; color: var(--muted); font-size: 13px; text-align: right; }
.damage-chart-legend { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid var(--line); background: #0a1412; }
.chart-legend-item { display: grid; min-width: 0; padding: 14px 22px; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.chart-legend-item + .chart-legend-item { border-left: 1px solid var(--line); }
.legend-line { display: block; width: 28px; height: 3px; border-radius: 2px; background: var(--green); }
.legend-b .legend-line { background: var(--blue); }
.chart-legend-item div { min-width: 0; }
.chart-legend-item strong, .chart-legend-item small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chart-legend-item strong { font-size: 14px; }
.chart-legend-item small { margin-top: 2px; color: var(--muted); font-size: 11px; }
.chart-legend-item b { color: var(--green); font-size: 15px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.legend-b b { color: var(--blue); }
.damage-chart-wrap { padding: 14px 18px 4px; background: #081310; }
.damage-chart { display: block; width: 100%; min-height: 280px; overflow: visible; }
.chart-grid-line { stroke: #2a3d37; stroke-width: 1; vector-effect: non-scaling-stroke; }
.chart-grid-line-vertical { stroke: #1c302a; }
.chart-axis-label { fill: #82938d; font-size: 11px; font-variant-numeric: tabular-nums; }
.chart-axis-title { fill: #aab9b4; font-size: 11px; font-weight: 700; }
.chart-damage-line { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.chart-line-a { stroke: var(--green); }
.chart-line-b { stroke: var(--blue); }
.chart-current-line { stroke: #e4d18a; stroke-width: 1.5; stroke-dasharray: 5 5; vector-effect: non-scaling-stroke; }
.chart-current-point { stroke: #07100e; stroke-width: 3; vector-effect: non-scaling-stroke; }
.chart-point-a { fill: var(--green); }
.chart-point-b { fill: var(--blue); }
.chart-current-label { fill: #f1d982; font-size: 11px; font-weight: 800; }
.damage-chart-foot { display: flex; min-height: 56px; padding: 10px 22px; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid var(--line); background: #0a1412; }
.damage-chart-foot > p { margin: 0; color: var(--muted); font-size: 11px; }
.damage-chart-foot > p strong { color: #d3ddd9; font-weight: 750; }
.damage-data-details { position: relative; flex: 0 0 auto; }
.damage-data-details summary { min-height: 36px; padding: 8px 10px; border: 1px solid var(--line-strong); border-radius: 4px; color: #d5dfdb; cursor: pointer; font-size: 12px; font-weight: 700; }
.damage-data-details[open] summary { border-color: var(--green); }
.damage-data-table-wrap { position: absolute; z-index: 5; right: 0; bottom: calc(100% + 8px); width: min(440px, calc(100vw - 48px)); max-height: 310px; overflow: auto; border: 1px solid var(--line-strong); border-radius: 5px; background: #081310; box-shadow: 0 16px 36px rgba(0, 0, 0, .4); }
.damage-data-table-wrap table { width: 100%; border-collapse: collapse; font-size: 12px; font-variant-numeric: tabular-nums; }
.damage-data-table-wrap th, .damage-data-table-wrap td { padding: 9px 12px; border-bottom: 1px solid var(--line); text-align: right; }
.damage-data-table-wrap th:first-child { text-align: left; }
.damage-data-table-wrap thead th { position: sticky; top: 0; color: var(--muted); background: #0f1d19; }
.damage-data-table-wrap tbody tr:last-child > * { border-bottom: 0; }
.damage-data-table-wrap .is-current { color: var(--text); background: #10241d; }
.current-distance-tag { display: inline-block; margin-left: 5px; padding: 1px 4px; border-radius: 2px; color: #06100c; background: var(--green); font-size: 9px; vertical-align: 1px; }

.results { margin-top: 22px; }
.result-head-meta { display: flex; align-items: flex-end; flex-direction: column; gap: 5px; text-align: right; }
.result-head-meta p { margin: 0; color: var(--muted); font-size: 13px; }
.result-state-notice { padding: 4px 7px; border: 1px solid #715f2f; border-radius: 3px; color: var(--amber) !important; background: #17160f; font-size: 11px !important; font-weight: 750; }
.results[data-stale="true"] { border-color: #715f2f; }
.results[data-stale="true"] .probability-panel,
.results[data-stale="true"] .metric-grid,
.results[data-stale="true"] .ttk-comparison,
.results[data-stale="true"] .result-columns { opacity: .58; }
.probability-panel { display: grid; grid-template-columns: 220px minmax(320px, 1fr) 220px; padding: 24px 22px; align-items: center; gap: 24px; border-bottom: 1px solid var(--line); }
.probability-side { display: flex; min-width: 0; flex-direction: column; gap: 13px; }
.result-weapon { display: flex; min-width: 0; align-items: center; gap: 10px; }
.result-weapon img { width: 76px; height: 52px; flex: 0 0 auto; object-fit: contain; filter: brightness(1.16) contrast(1.04) drop-shadow(0 6px 8px rgba(0, 0, 0, 0.3)); }
.result-weapon div { min-width: 0; }
.result-weapon span, .win-rate span { display: block; color: var(--muted); font-size: 10px; font-weight: 750; }
.result-weapon strong { display: block; overflow: hidden; margin-top: 1px; color: var(--text); font-size: 14px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.result-model-badge { display: inline-flex; width: max-content; margin-top: 5px; padding: 2px 5px; border: 1px solid #6c5c2f; border-radius: 3px; color: var(--amber); background: #17160f; font-size: 9px; font-weight: 800; }
.result-model-badge[hidden] { display: none; }
.win-rate strong { display: block; font-size: 24px; line-height: 1.2; }
.side-a .win-rate strong { color: var(--green); }
.side-b { text-align: right; }
.side-b .result-weapon { flex-direction: row-reverse; }
.side-b .win-rate strong { color: var(--blue); }
.probability-center { display: flex; min-width: 0; flex-direction: column; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; }
.verdict-block { display: flex; margin-bottom: 7px; align-items: center; flex-direction: column; text-align: center; }.verdict-block > span { color: #8ea09a; font-size: 10px; font-weight: 800; }.verdict-block > strong { margin-top: 3px; color: var(--text); font-size: 28px; line-height: 1.2; }.verdict-block > strong[data-tier="photo-finish"] { color: var(--amber); }.verdict-block > strong[data-winner="a"]:not([data-tier="photo-finish"]) { color: var(--green); }.verdict-block > strong[data-winner="b"]:not([data-tier="photo-finish"]) { color: var(--blue); }.verdict-block small { margin-top: 4px; color: #b6c2bd; font-size: 11px; }.verdict-block em { margin-top: 8px; padding: 4px 7px; border: 1px solid #6c5c2f; border-radius: 3px; color: var(--amber); background: #17160f; font-size: 10px; font-style: normal; font-weight: 750; }
.probability-bar { display: flex; overflow: hidden; width: 100%; height: 8px; border-radius: 2px; background: #1c2925; opacity: .72; }
.probability-bar span { display: block; min-width: 0; transition: width 280ms ease; }.bar-a { background: var(--green-dark); }.bar-draw { background: #8a7540; }.bar-b { background: var(--blue-dark); }
.simulation-note { max-width: 460px; margin: 2px 0 0; color: #71817b; font-size: 10px; line-height: 1.45; text-align: center; }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--line); }
.metric-grid article { display: flex; min-height: 108px; padding: 17px 18px; flex-direction: column; justify-content: center; }.metric-grid article + article { border-left: 1px solid var(--line); }.metric-grid span { color: var(--muted); font-size: 12px; }.metric-grid strong { margin-top: 3px; font-size: 21px; }.metric-grid small { margin-top: 3px; color: #778781; font-size: 11px; }
.ttk-comparison { display: grid; grid-template-columns: 190px minmax(0, 1fr) 100px minmax(0, 1fr); min-height: 84px; align-items: stretch; border-bottom: 1px solid var(--line); background: #12150f; }
.ttk-comparison > div { display: flex; min-width: 0; padding: 14px 18px; justify-content: center; flex-direction: column; }.ttk-comparison > div + div { border-left: 1px solid var(--line); }
.ttk-comparison span, .ttk-comparison small { color: var(--muted); font-size: 11px; }.ttk-heading > span { color: var(--text); font-size: 13px; font-weight: 800; }.ttk-heading small { margin-top: 3px; line-height: 1.35; }
.ttk-player span b { color: var(--text); font-weight: 800; }.ttk-player strong, .ttk-gap strong { overflow: hidden; margin-top: 3px; font-size: 17px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }.ttk-player small { margin-top: 3px; }.ttk-a strong { color: var(--green); }.ttk-b strong { color: var(--blue); }.ttk-gap { align-items: center; text-align: center; }.ttk-gap strong { color: var(--amber); font-variant-numeric: tabular-nums; }
.result-columns { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.result-columns > article { min-width: 0; padding: 22px; }.result-columns > article + article { border-left: 1px solid var(--line); }
.article-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; }.article-heading > div { min-width: 0; }.article-heading span { display: block; color: var(--muted); font-size: 12px; font-weight: 700; }.article-heading small { display: block; margin-top: 4px; color: #8ea09a; font-size: 11px; line-height: 1.4; }.article-heading strong { flex: 0 0 auto; font-size: 16px; }.result-columns article > p { margin: 9px 0 18px; color: var(--muted); font-size: 13px; }
.perfect-result dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border: 1px solid var(--line); border-radius: 5px; }.perfect-result dl div { padding: 13px; }.perfect-result dl div:nth-child(even) { border-left: 1px solid var(--line); }.perfect-result dl div:nth-child(n+3) { border-top: 1px solid var(--line); }.perfect-result dt { color: var(--muted); font-size: 11px; }.perfect-result dd { margin: 3px 0 0; font-size: 15px; font-weight: 800; }
.event-log { max-height: 245px; margin: 0; padding: 0; overflow-y: auto; list-style: none; border-top: 1px solid var(--line); scrollbar-color: var(--line-strong) transparent; }.event-log li { display: grid; grid-template-columns: 64px 1fr auto; padding: 9px 0; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); font-size: 12px; }.event-log time { color: var(--muted); font-variant-numeric: tabular-nums; }.event-log b { font-size: 11px; }.event-log .event-a b { color: var(--green); }.event-log .event-b b { color: var(--blue); }.event-log .event-canceled { color: var(--amber); }.event-log .event-miss { color: #a5b0ac; }.event-log .event-miss span { text-decoration-color: var(--muted); }.event-log .event-omitted { display: block; padding: 8px 0; color: var(--muted); text-align: center; }.event-log em { color: var(--muted); font-style: normal; text-align: right; }
.event-log:not([data-expanded="true"]) li:nth-child(n+6) { display: none; }
.event-log-toggle { display: flex; width: 100%; min-height: 44px; margin-top: 8px; padding: 8px 12px; align-items: center; justify-content: center; border: 1px solid var(--line-strong); border-radius: 4px; color: #c6d2cd; background: #0a1613; font-size: 11px; font-weight: 800; cursor: pointer; }
.event-log-toggle:hover, .event-log-toggle:focus-visible { border-color: var(--green-dark); color: var(--text); }
.event-log-toggle[hidden] { display: none; }

.analysis-details { margin-top: 22px; overflow: hidden; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface); }
.analysis-details-head { display: flex; min-height: 78px; padding: 17px 22px; align-items: center; justify-content: space-between; gap: 24px; }
.analysis-details-head h2 { margin: 0; font-size: 22px; line-height: 1.25; }
.analysis-details-head .section-kicker { margin-bottom: 3px; }
.analysis-details-head > p { max-width: 480px; margin: 0; color: var(--muted); font-size: 12px; text-align: right; }
.analysis-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #07110f; }
.analysis-tabs button { position: relative; min-height: 50px; border: 0; color: #8fa19a; background: transparent; font: inherit; font-size: 12px; font-weight: 850; cursor: pointer; }
.analysis-tabs button + button { border-left: 1px solid var(--line); }
.analysis-tabs button::after { position: absolute; right: 18px; bottom: -1px; left: 18px; height: 2px; content: ""; background: transparent; }
.analysis-tabs button[aria-selected="true"] { color: var(--text); background: #0b1814; }
.analysis-tabs button[aria-selected="true"]::after { background: var(--green); }
.analysis-tabs button:hover, .analysis-tabs button:focus-visible { color: var(--text); }
.analysis-tabs button:focus-visible { outline: 0; box-shadow: inset 0 0 0 2px rgba(67, 217, 137, .72); }
.analysis-panel[hidden] { display: none; }
.analysis-panel > .body-damage-section, .analysis-panel > .shot-group-section, .analysis-panel > .damage-chart-section { margin-top: 0; border: 0; border-radius: 0; }

.body-damage-section { margin-top: 22px; }
.body-damage-head { display: flex; min-height: 78px; padding: 17px 22px; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); }
.body-damage-head h2 { margin: 0; font-size: 22px; line-height: 1.25; }
.body-damage-head .section-kicker { margin-bottom: 3px; }
.body-damage-head > p { margin: 0; color: var(--muted); font-size: 12px; text-align: right; }
.body-damage-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.body-damage-card { min-width: 0; padding: 18px 22px 20px; background: #081310; }
.body-damage-card + .body-damage-card { border-left: 1px solid var(--line); }
.body-damage-card header { display: flex; min-height: 48px; align-items: flex-start; justify-content: space-between; gap: 16px; }
.body-damage-card header span, .body-damage-card header small { color: var(--muted); font-size: 10px; }
.body-damage-card header span { display: block; font-weight: 800; }
.body-damage-card header strong { display: block; margin-top: 2px; font-size: 17px; }
.body-damage-meta { display: flex; max-width: 220px; align-items: flex-end; flex-direction: column; gap: 4px; text-align: right; }.body-damage-card header small { line-height: 1.4; }.body-damage-card header .body-damage-ttk { color: #d7e2de; font-size: 11px; line-height: 1.35; }
.body-damage-a header strong { color: var(--green); }
.body-damage-b header strong { color: var(--blue); }
.body-map-stage { position: relative; width: min(100%, 440px); height: 320px; margin: 8px auto 0; overflow: hidden; isolation: isolate; border: 1px solid var(--line); background-color: #07110f; background-image: linear-gradient(rgba(62, 91, 82, .09) 1px, transparent 1px), linear-gradient(90deg, rgba(62, 91, 82, .09) 1px, transparent 1px); background-size: 32px 32px; }
.body-map-character { position: absolute; z-index: 0; bottom: 5px; left: 50%; width: 174px; height: 300px; object-fit: contain; transform: translateX(-50%); filter: brightness(1.02) contrast(1.03) drop-shadow(0 10px 10px rgba(0, 0, 0, .38)); }.body-map-vest { position: absolute; z-index: 1; left: 50%; object-fit: fill; transform: translateX(-50%); pointer-events: none; filter: brightness(1.03) contrast(1.03) drop-shadow(0 3px 4px rgba(0, 0, 0, .4)); }.body-map-vest[hidden] { display: none; }.body-map-stage[data-vest="1"] .body-map-vest { top: 82px; left: calc(50% + 1px); width: 75px; height: 65px; }.body-map-stage[data-vest="2"] .body-map-vest { top: 85px; width: 81px; height: 65px; }.body-map-stage[data-vest="3"] .body-map-vest { top: 83px; left: calc(50% - 1px); width: 83px; height: 67px; }
.body-damage-connectors { position: absolute; z-index: 2; top: 0; left: 0; width: 100%; height: 320px; overflow: visible; color: rgba(67, 217, 137, .68); pointer-events: none; }
.body-damage-b .body-damage-connectors { color: rgba(83, 158, 255, .72); }
.body-damage-connectors path { fill: none; stroke: currentColor; stroke-width: 1.15; vector-effect: non-scaling-stroke; }
.body-damage-connectors circle { fill: #07110f; stroke: currentColor; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.body-damage-connectors .connector-targets { filter: drop-shadow(0 0 3px currentColor); }
.body-damage-point { display: grid; position: absolute; z-index: 3; min-width: 112px; min-height: 46px; padding: 6px 8px; grid-template-columns: auto auto; grid-template-areas: "label damage" "ttk ttk"; align-items: center; justify-content: space-between; column-gap: 8px; border: 1px solid var(--line-strong); border-radius: 4px; background: rgba(8, 19, 16, .94); font-size: 10px; }
.body-damage-point span { grid-area: label; color: var(--muted); }
.body-damage-point strong { grid-area: damage; color: var(--green); font-size: 14px; font-variant-numeric: tabular-nums; text-align: right; }
.body-damage-point small { grid-area: ttk; color: #a7b7b1; font-size: 9px; font-variant-numeric: tabular-nums; line-height: 1.25; text-align: right; white-space: nowrap; }
.body-damage-b .body-damage-point strong { color: var(--blue); }
.point-head { top: 18px; left: 14px; }.point-upper { top: 68px; right: 10px; }.point-lower { top: 122px; left: 7px; }.point-arm { top: 120px; right: 10px; }.point-stomach { top: 174px; right: 5px; }.point-pelvis { top: 216px; left: 14px; }.point-leg { right: 16px; bottom: 15px; }
.body-damage-note { margin: 0; padding: 12px 22px; border-top: 1px solid var(--line); color: #778781; background: #0a1412; font-size: 10px; }

.shot-group-section { margin-top: 22px; }
.shot-group-head {
  display: flex;
  min-height: 78px;
  padding: 17px 22px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid var(--line);
}
.shot-group-head h2 { margin: 0; font-size: 22px; line-height: 1.25; }
.shot-group-head .section-kicker { margin-bottom: 3px; }
.shot-group-head > p { margin: 0; color: var(--muted); font-size: 12px; text-align: right; }
.shot-group-head > p span { display: inline-block; margin-right: 6px; padding: 2px 5px; border: 1px solid #6c5c2f; border-radius: 3px; color: var(--amber); background: #17160f; font-size: 9px; font-weight: 800; }
.shot-target-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.shot-target-card { display: grid; min-width: 0; padding: 18px 22px 20px; grid-template-columns: minmax(180px, 1fr) minmax(230px, 290px); grid-template-areas: "head target" "stats target"; align-items: start; gap: 18px 22px; background: #081310; }
.shot-target-card + .shot-target-card { border-left: 1px solid var(--line); }
.shot-target-card header { display: flex; min-width: 0; grid-area: head; align-items: flex-start; justify-content: space-between; gap: 14px; }
.shot-target-card header div { min-width: 0; }
.shot-target-card header span { display: block; color: var(--muted); font-size: 10px; font-weight: 800; }
.shot-target-card header strong { display: block; overflow: hidden; margin-top: 2px; font-size: 18px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.shot-target-card header small { max-width: 140px; color: var(--muted); font-size: 10px; line-height: 1.45; text-align: right; }
.target-a header strong, .target-a .shot-target-stats dd { color: var(--green); }
.target-b header strong, .target-b .shot-target-stats dd { color: var(--blue); }
.shot-target { display: block; width: 100%; max-width: 290px; height: auto; grid-area: target; justify-self: end; border: 1px solid var(--line); background: #07110e; }
.target-grid-line { stroke: #193029; stroke-width: 1; vector-effect: non-scaling-stroke; }
.target-center-line { stroke: #2a463e; stroke-dasharray: 4 5; }
.target-silhouette { fill: #14241f; stroke: #526961; stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.target-zone-line { fill: none; stroke: #304840; stroke-width: 1; vector-effect: non-scaling-stroke; }
.target-aim-ring { fill: none; stroke: #dce9e3; stroke-width: 1.5; stroke-dasharray: 3 3; vector-effect: non-scaling-stroke; }
.shot-point { stroke: #07100e; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.shot-point-exact { fill: #f3f7f5; }
.target-a .shot-point-adjacent { fill: var(--green); }
.target-b .shot-point-adjacent { fill: var(--blue); }
.shot-point-miss { fill: var(--danger); opacity: .9; }
.shot-target-stats { display: grid; margin: 0; grid-area: stats; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line); }
.shot-target-stats div { min-width: 0; padding: 12px 9px; }
.shot-target-stats div + div { border-left: 1px solid var(--line); }
.shot-target-stats dt { color: var(--muted); font-size: 10px; }
.shot-target-stats dd { margin: 3px 0 0; font-size: 15px; font-weight: 850; font-variant-numeric: tabular-nums; }
.shot-group-foot { display: flex; min-height: 54px; padding: 10px 22px; align-items: center; gap: 15px; border-top: 1px solid var(--line); background: #0a1412; }
.shot-group-foot p { margin: 0 0 0 auto; color: #778781; font-size: 10px; text-align: right; }
.shot-legend { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 10px; white-space: nowrap; }
.shot-legend i { display: block; width: 8px; height: 8px; border-radius: 50%; background: #f3f7f5; }
.shot-legend.adjacent i { background: var(--green); }
.shot-legend.miss i { background: var(--danger); }

.methodology { padding: 68px 0 30px; }.section-heading { max-width: 760px; }.section-heading > p:last-child { margin: 10px 0 0; color: var(--muted); }.method-details, .sources { margin-top: 22px; border: 1px solid var(--line-strong); border-radius: 5px; background: #081310; }.method-details > summary, .sources > summary { display: flex; min-height: 64px; padding: 14px 18px; align-items: center; justify-content: space-between; gap: 18px; cursor: pointer; list-style: none; }.method-details > summary::-webkit-details-marker, .sources > summary::-webkit-details-marker { display: none; }.method-details > summary span, .sources > summary span { color: var(--text); font-size: 14px; font-weight: 850; }.method-details > summary small, .sources > summary small { color: var(--muted); font-size: 11px; text-align: right; }.method-details > summary::after, .sources > summary::after { flex: 0 0 auto; content: "+"; color: var(--green); font-size: 20px; line-height: 1; }.method-details[open] > summary::after, .sources[open] > summary::after { content: "−"; }.method-details[open] > summary, .sources[open] > summary { border-bottom: 1px solid var(--line); }.method-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border-bottom: 1px solid var(--line); }.method-grid article { padding: 20px 18px 22px; }.method-grid article + article { border-left: 1px solid var(--line); }.method-grid article > span { color: var(--green); font-size: 11px; font-weight: 800; }.method-grid h3 { margin: 8px 0 7px; font-size: 15px; }.method-grid p { margin: 0; color: var(--muted); font-size: 13px; }
.limits { display: grid; grid-template-columns: 210px 1fr; margin-top: 20px; padding: 18px; gap: 20px; border: 1px solid #5a4d2a; border-radius: 5px; background: #17160f; }.limits strong { color: var(--amber); }.limits p { margin: 0; color: #c2bba8; font-size: 13px; }
.method-details .limits { margin: 18px; }.sources { scroll-margin-top: 24px; }.sources-content { padding: 16px 18px 20px; }.source-audit { margin: 0 0 12px; padding: 10px 12px; border-left: 3px solid var(--green); color: #b9c7c2; background: #0a1412; font-size: 12px; }.sources ul { margin: 0; padding-left: 20px; color: var(--muted); font-size: 13px; }.sources li + li { margin-top: 6px; }.sources a { color: #cfe8dc; text-decoration: underline; text-underline-offset: 3px; }

footer { display: flex; width: min(1240px, calc(100% - 40px)); margin: 42px auto 0; padding: 28px 0 38px; align-items: flex-start; justify-content: space-between; gap: 40px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
footer > div { max-width: 720px; } footer strong { color: var(--text); } footer p { margin: 6px 0 0; } footer nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 14px; } footer a:hover, footer a:focus-visible { color: var(--text); }

@media (max-width: 920px) {
  .header-inner { width: min(100% - 28px, 1240px); min-height: 58px; align-items: flex-start; flex-direction: column; gap: 0; padding-top: 10px; }
  .header-inner nav { width: 100%; padding: 2px 0 5px; overflow-x: auto; gap: 20px; scroll-padding-inline: 14px; scroll-snap-type: x proximity; scrollbar-width: none; }.header-inner nav::-webkit-scrollbar { display: none; }.header-inner nav a { min-height: 44px; white-space: nowrap; scroll-snap-align: center; }
  .page-shell { width: min(100% - 28px, 1240px); }.page-intro { align-items: flex-start; flex-direction: column; gap: 18px; }.intro-data-note { max-width: none; justify-content: flex-start; text-align: left; }
  .global-controls { grid-template-columns: 1fr; }.range-control { grid-column: 1; }
  .data-source-strip a { margin-left: 16px; }
  .mobile-fighter-tabs, .body-damage-tabs, .shot-target-tabs { display: grid; padding: 10px 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; border-bottom: 1px solid var(--line); background: #07110f; }
  .mobile-fighter-tabs button, .body-damage-tabs button, .shot-target-tabs button { min-height: 44px; border: 1px solid var(--line-strong); border-radius: 4px; color: var(--muted); background: #0a1613; font-size: 12px; font-weight: 850; cursor: pointer; }
  .mobile-fighter-tabs button[aria-selected="true"], .body-damage-tabs button[aria-selected="true"], .shot-target-tabs button[aria-selected="true"] { border-color: var(--green); color: var(--text); background: #10241d; }
  .mobile-fighter-tabs button:focus-visible, .body-damage-tabs button:focus-visible, .shot-target-tabs button:focus-visible { outline: 0; box-shadow: inset 0 0 0 2px rgba(67, 217, 137, .68); }
  .body-damage-tabs button:last-child[aria-selected="true"], .shot-target-tabs button:last-child[aria-selected="true"] { border-color: var(--blue); background: #102033; }
  .fighter-grid { display: block; }.fighter-grid .fighter:not(.mobile-active) { display: none; }.fighter-b { border-top: 0; border-left: 0; }.fighter-grid .versus { display: none; }
  .loadout-editor { grid-template-columns: 220px minmax(0, 1fr); }
  .probability-panel { grid-template-columns: 170px 1fr 170px; gap: 16px; }.metric-grid { grid-template-columns: repeat(2, 1fr); }.metric-grid article:nth-child(3) { border-top: 1px solid var(--line); border-left: 0; }.metric-grid article:nth-child(4) { border-top: 1px solid var(--line); }
  .result-columns { grid-template-columns: 1fr; }.result-columns > article + article { border-top: 1px solid var(--line); border-left: 0; }
  .shot-target-grid { display: block; }.shot-target-grid .shot-target-card:not(.mobile-active) { display: none; }.shot-target-card { grid-template-columns: minmax(180px, 1fr) minmax(230px, 290px); }.shot-target-card + .shot-target-card { border-top: 0; border-left: 0; }
  .body-damage-grid { display: block; }.body-damage-grid .body-damage-card:not(.mobile-active) { display: none; }.body-damage-card + .body-damage-card { border-top: 0; border-left: 0; }
  .method-grid { grid-template-columns: repeat(2, 1fr); }.method-grid article:nth-child(3) { border-top: 1px solid var(--line); border-left: 0; }.method-grid article:nth-child(4) { border-top: 1px solid var(--line); }
}

@media (max-width: 600px) {
  .page-shell { width: min(100% - 20px, 1240px); }.page-intro { padding: 32px 0 20px; }.page-intro h1 { font-size: 27px; word-break: keep-all; }.lead { font-size: 14px; }.intro-data-note { gap: 5px 10px; }
  .simulator-head, .results-head { min-height: 70px; padding: 14px; }.secondary-button .button-copy { display: none; }.secondary-button { min-width: 70px; justify-content: center; }
  .global-controls { grid-template-columns: 1fr; padding: 15px 14px; gap: 12px; }.global-controls label:not(.range-control) { min-width: 0; }.advanced-settings-grid { grid-template-columns: 1fr 1fr; }
  .data-source-strip { display: grid; padding: 4px 14px 9px; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; }
  .data-source-strip > span { min-width: 0; padding: 7px 6px; flex-direction: column; gap: 2px; }
  .data-source-strip > span + span { padding-left: 10px; }
  .data-source-strip > span:nth-child(3) { border-left: 0; }
  .data-source-strip small, .data-source-strip strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .data-source-strip a { grid-column: 1 / -1; min-height: 44px; margin: 2px 0 0; padding: 7px 6px 0; border-top: 1px solid var(--line); }
  .mobile-fighter-tabs, .body-damage-tabs, .shot-target-tabs { padding: 8px 10px; }.fighter { padding: 17px 14px 18px; }.fighter legend strong { font-size: 18px; }.weapon-visual { height: 112px; margin-bottom: 15px; }.weapon-visual img { height: 98px; }.fighter-controls { gap: 12px; }.fighter-controls select, .fighter-controls input { padding: 0 9px; }
  .loadout-editor { grid-template-columns: 132px minmax(0, 1fr); gap: 12px; }.combat-avatar { height: 250px; }.avatar-character { top: 6px; height: 235px; }[data-vest="1"] .avatar-vest-image { top: 49px; left: 50%; width: 68px; height: 59px; }[data-vest="2"] .avatar-vest-image { top: 52px; width: 73px; height: 59px; }[data-vest="3"] .avatar-vest-image { top: 50px; left: calc(50% - 1px); width: 75px; height: 61px; }.avatar-status { padding: 0 7px; }.selected-aim { padding: 6px 7px; }.loadout-options { gap: 11px; }.choice-options { gap: 4px; }.choice-options button { min-height: 44px; padding: 3px; font-size: 9px; }.equipment-options button, .equipment-options .empty-choice { min-height: 54px; }.equipment-options button img { width: 29px; height: 27px; }.skill-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }.control-label small { max-width: 120px; }.skill-description { min-height: 27px; }
  .weapon-spec { grid-template-columns: repeat(2, 1fr); }.weapon-spec div:nth-child(3) { border-top: 1px solid var(--line); border-left: 0; }.weapon-spec div:nth-child(4) { border-top: 1px solid var(--line); }
  .run-row { position: sticky; z-index: 8; bottom: 0; padding: 14px; align-items: stretch; flex-direction: column; gap: 12px; background: rgba(10, 20, 18, .97); box-shadow: 0 -12px 28px rgba(0, 0, 0, .28); }.primary-button { width: 100%; min-width: 0; }
  .damage-chart-head { min-height: 70px; padding: 14px; align-items: flex-start; flex-direction: column; gap: 5px; }.damage-chart-head > p { text-align: left; }
  .damage-chart-legend { grid-template-columns: 1fr; }.chart-legend-item { padding: 12px 14px; }.chart-legend-item + .chart-legend-item { border-top: 1px solid var(--line); border-left: 0; }
  .damage-chart-wrap { padding: 10px 7px 2px; }.damage-chart { min-height: 280px; }
  .damage-chart-foot { padding: 11px 14px; align-items: stretch; flex-direction: column; gap: 9px; }.damage-data-details { width: 100%; }.damage-data-details summary { display: flex; align-items: center; }.damage-data-table-wrap { right: auto; bottom: calc(100% + 7px); left: 0; width: 100%; }
  .results-head { align-items: flex-start; flex-direction: column; gap: 6px; }.result-head-meta { align-items: flex-start; text-align: left; }
  .probability-panel { grid-template-columns: 1fr 1fr; padding: 18px 14px 20px; gap: 18px 10px; }.probability-center { grid-column: 1 / -1; grid-row: 1; }.probability-side.side-a { grid-column: 1; grid-row: 2; }.probability-side.side-b { grid-column: 2; grid-row: 2; }.result-weapon { gap: 6px; }.result-weapon img { width: 54px; height: 40px; }.result-weapon strong { max-width: 90px; font-size: 12px; }.win-rate strong { font-size: 22px; }.verdict-block > strong { font-size: 25px; }.simulation-note { max-width: 320px; }
  .metric-grid article { min-height: 96px; padding: 14px; }.metric-grid strong { font-size: 18px; }
  .ttk-comparison { grid-template-columns: 1fr 1fr; }.ttk-heading { grid-column: 1 / -1; }.ttk-comparison > .ttk-heading { border-bottom: 1px solid var(--line); }.ttk-comparison > .ttk-a { border-left: 0; }.ttk-b { grid-column: 2; grid-row: 2; }.ttk-gap { grid-column: 1 / -1; grid-row: 3; }.ttk-comparison > .ttk-gap { min-height: 58px; border-top: 1px solid var(--line); border-left: 0; }.ttk-player strong { font-size: 14px; white-space: normal; }.ttk-player span { min-height: 31px; }.ttk-player small { min-height: 28px; line-height: 1.35; }
  .result-columns > article { padding: 18px 14px; }.event-log li { grid-template-columns: 56px minmax(0, 1fr); }.event-log em { grid-column: 2; text-align: left; }
  .analysis-details-head { min-height: 70px; padding: 14px; align-items: flex-start; flex-direction: column; gap: 5px; }.analysis-details-head > p { text-align: left; }.analysis-tabs button { min-height: 46px; padding: 0 7px; font-size: 11px; }.analysis-tabs button::after { right: 8px; left: 8px; }
  .body-damage-head { min-height: 70px; padding: 14px; align-items: flex-start; flex-direction: column; gap: 5px; }.body-damage-head > p { text-align: left; }.body-damage-card { padding: 16px 14px 18px; }.body-map-stage { height: 302px; }.body-map-character { width: 154px; height: 282px; }.body-map-stage[data-vest="1"] .body-map-vest { top: 83px; width: 67px; height: 58px; }.body-map-stage[data-vest="2"] .body-map-vest { top: 86px; width: 72px; height: 58px; }.body-map-stage[data-vest="3"] .body-map-vest { top: 84px; width: 74px; height: 60px; }.body-damage-card header { align-items: flex-start; flex-direction: column; gap: 7px; }.body-damage-meta { max-width: none; align-items: flex-start; text-align: left; }.body-damage-point { min-width: 101px; min-height: 44px; padding: 5px 6px; column-gap: 5px; }.body-damage-point strong { font-size: 13px; }.body-damage-point small { font-size: 8px; }.point-head { left: 4px; }.point-upper, .point-arm { right: 3px; }.point-lower { left: 2px; }.point-stomach { right: 2px; }.point-pelvis { left: 4px; }.point-leg { right: 4px; }.body-damage-note { padding: 11px 14px; font-size: 11px; line-height: 1.55; }
  .shot-group-head { min-height: 70px; padding: 14px; align-items: flex-start; flex-direction: column; gap: 5px; }.shot-group-head > p { text-align: left; }
  .shot-target-card { padding: 16px 14px 18px; grid-template-columns: 1fr; grid-template-areas: "head" "target" "stats"; gap: 13px; }.shot-target-card header small { max-width: 130px; }.shot-target { width: min(100%, 300px); justify-self: center; }.shot-group-foot { padding: 12px 14px; flex-wrap: wrap; gap: 8px 13px; }.shot-group-foot p { width: 100%; margin: 2px 0 0; text-align: left; }
  .methodology { padding-top: 52px; }.method-details > summary, .sources > summary { min-height: 58px; padding: 12px 14px; align-items: flex-start; }.method-details > summary small, .sources > summary small { max-width: 150px; }.method-grid { grid-template-columns: 1fr; }.method-grid article + article { border-top: 1px solid var(--line); border-left: 0; }.method-details .limits { margin: 12px; }.limits { grid-template-columns: 1fr; gap: 8px; }.sources-content { padding: 14px; }
  footer { width: min(100% - 20px, 1240px); align-items: flex-start; flex-direction: column; gap: 18px; } footer nav { justify-content: flex-start; }
}

@media (max-width: 380px) {
  .header-inner nav { gap: 14px; font-size: 13px; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; }.probability-bar span { transition: none; } }
