:root {
  --bg: #ffffff;
  --surface: #f6f8fb;
  --surface-2: #eef3f7;
  --ink: #101820;
  --muted: #566572;
  --line: #dfe6eb;
  --line-strong: #c9d4dc;
  --xrp: #176b7d;
  --xrp-dark: #0c4a59;
  --xrp-soft: #e9f5f7;
  --blue: #2b6fdb;
  --blue-soft: #edf4ff;
  --green: #16826b;
  --green-soft: #e9f7f3;
  --amber: #9a6411;
  --amber-soft: #fff7e8;
  --shadow: 0 18px 50px rgba(19, 45, 61, .08);
  --shadow-soft: 0 8px 28px rgba(19, 45, 61, .06);
  --radius-xl: 28px;
  --radius-lg: 22px;
  --radius-md: 16px;
  --shell: 1120px;
  --reading: 800px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", sans-serif;
  line-height: 1.78;
  letter-spacing: .012em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
strong { font-weight: 750; }

.reading-progress {
  position: fixed;
  inset: 0 0 auto 0;
  height: 3px;
  z-index: 100;
  background: rgba(255,255,255,.7);
}
.reading-progress span {
  display: block;
  width: 0;
  height: 100%;
  background: linear-gradient(90deg, var(--xrp), #34a5b5);
  transition: width .08s linear;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255,255,255,.9);
  border-bottom: 1px solid rgba(223,230,235,.85);
  backdrop-filter: blur(16px);
}
.header-inner {
  width: min(calc(100% - 40px), var(--shell));
  min-height: 66px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  font-weight: 800;
  letter-spacing: -.01em;
}
.brand-mark {
  width: 30px;
  height: 30px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 14px;
  background: var(--ink);
}
.header-topic { color: var(--muted); font-size: 13px; }

.section-shell { width: min(calc(100% - 40px), var(--shell)); margin-inline: auto; }
.hero { padding: 86px 0 64px; }
.eyebrow-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 22px;
  color: var(--muted);
  font-size: 13px;
}
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--xrp-dark);
  font-weight: 760;
}
.eyebrow::before { content: ""; width: 28px; height: 1px; background: var(--xrp); }
h1 {
  max-width: 940px;
  margin: 0;
  font-size: clamp(38px, 6vw, 72px);
  line-height: 1.14;
  letter-spacing: -.055em;
  font-weight: 820;
  text-wrap: balance;
}
.hero-lead {
  max-width: 820px;
  margin: 28px 0 0;
  color: var(--muted);
  font-size: clamp(17px, 2.3vw, 22px);
  line-height: 1.8;
}
.hero-lead strong { color: var(--ink); }
.hero-conclusion {
  margin-top: 34px;
  padding: 23px 26px;
  display: grid;
  grid-template-columns: 116px 1fr;
  gap: 24px;
  align-items: start;
  border: 1px solid #cfe5e9;
  border-radius: var(--radius-md);
  background: linear-gradient(115deg, #f2fbfc 0%, #fff 76%);
}
.conclusion-label {
  color: var(--xrp-dark);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
}
.hero-conclusion p { margin: 0; font-size: 17px; line-height: 1.8; }

.finality-hero {
  position: relative;
  margin-top: 48px;
  padding: 34px;
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr auto 1.2fr;
  gap: 14px;
  align-items: stretch;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  background: #fff;
  box-shadow: var(--shadow);
}
.finality-rail {
  position: absolute;
  left: 52px;
  right: 52px;
  top: 50%;
  height: 2px;
  transform: translateY(-50%);
  background: var(--line);
}
.finality-rail span {
  display: block;
  height: 100%;
  width: 26%;
  background: linear-gradient(90deg, transparent, #2d98a8, transparent);
  animation: rail-scan 4.2s ease-in-out infinite;
}
@keyframes rail-scan { from { transform: translateX(-120%); } to { transform: translateX(470%); } }
.finality-card, .finality-result {
  position: relative;
  z-index: 1;
  min-height: 198px;
  padding: 22px 18px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: rgba(255,255,255,.96);
}
.finality-icon {
  width: 50px;
  height: 50px;
  margin-bottom: 14px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  background: var(--surface);
}
.finality-icon svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.finality-card > span, .finality-result > span { color: var(--muted); font-size: 12px; font-weight: 750; }
.finality-card strong { margin-top: 5px; font-size: 17px; line-height: 1.35; }
.finality-card small { margin-top: 8px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.finality-card.is-tech .finality-icon { color: var(--blue); background: var(--blue-soft); }
.finality-card.is-rule .finality-icon { color: var(--green); background: var(--green-soft); }
.finality-card.is-law .finality-icon { color: var(--amber); background: var(--amber-soft); }
.finality-plus, .finality-equals { position: relative; z-index: 2; display: grid; place-items: center; color: #8796a1; font-size: 24px; font-weight: 400; }
.finality-result { color: #fff; border-color: transparent; background: linear-gradient(155deg, #0f5767, #173d49); }
.finality-result > span { color: rgba(255,255,255,.72); }
.finality-result strong { margin-top: 7px; font-size: 18px; line-height: 1.45; }
.result-ring {
  width: 54px;
  height: 54px;
  margin-bottom: 14px;
  padding: 5px;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 50%;
  animation: ring-breathe 2.8s ease-in-out infinite;
}
.result-ring span { display: block; width: 100%; height: 100%; border-radius: 50%; background: #fff; box-shadow: 0 0 28px rgba(255,255,255,.5); }
@keyframes ring-breathe { 50% { transform: scale(1.08); opacity: .82; } }
.article-map {
  margin-top: 26px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.article-map a {
  padding: 8px 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font-size: 12px;
  text-decoration: none;
  transition: border-color .2s ease, color .2s ease, background .2s ease;
}
.article-map a:hover { color: var(--xrp-dark); border-color: #b6d7dd; background: var(--xrp-soft); }

.content-section { padding: 94px 0; border-top: 1px solid var(--line); }
.section-heading {
  max-width: 900px;
  margin-bottom: 42px;
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 22px;
  align-items: start;
}
.section-number { padding-top: 6px; color: var(--xrp); font-size: 13px; font-weight: 800; letter-spacing: .12em; }
.section-heading h2, .summary-section h2 {
  margin: 0;
  font-size: clamp(28px, 4vw, 46px);
  line-height: 1.3;
  letter-spacing: -.04em;
  font-weight: 800;
  text-wrap: balance;
}
.section-heading p { max-width: 780px; margin: 13px 0 0; color: var(--muted); font-size: 16px; }

.definition-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.definition-card {
  position: relative;
  min-height: 260px;
  padding: 28px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: #fff;
  box-shadow: var(--shadow-soft);
}
.definition-no { color: #b6c2ca; font-size: 12px; font-weight: 850; }
.definition-card h3 { margin: 42px 0 10px; font-size: 20px; letter-spacing: -.02em; }
.definition-card p { margin: 0; color: var(--muted); font-size: 14px; }
.mini-status {
  position: absolute;
  left: 28px;
  bottom: 24px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--green);
  font-size: 11px;
  font-weight: 750;
}
.mini-status span { width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 5px rgba(22,130,107,.1); }
.mini-status.is-needed { color: var(--amber); }
.principle-callout {
  margin-top: 22px;
  padding: 28px;
  display: grid;
  grid-template-columns: 104px 1fr;
  gap: 26px;
  align-items: center;
  border-radius: var(--radius-lg);
  background: var(--surface);
}
.principle-mark {
  height: 72px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line-strong);
  border-radius: 16px;
  color: var(--xrp-dark);
  background: #fff;
  font-weight: 850;
  letter-spacing: .06em;
}
.principle-callout h3 { margin: 0 0 6px; font-size: 19px; }
.principle-callout p { margin: 0; color: var(--muted); font-size: 14px; }
.source-ref { margin-left: 3px; color: var(--xrp); font-weight: 750; text-decoration: none; }

.bridge-diagram {
  position: relative;
  padding: 34px;
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  background: linear-gradient(#fff, #fbfcfd);
  box-shadow: var(--shadow);
}
.bridge-lane { position: relative; display: grid; grid-template-columns: 140px repeat(3, 1fr); gap: 12px; align-items: stretch; }
.lane-label { align-self: center; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .05em; }
.asset-node, .money-node {
  min-height: 82px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #fff;
}
.asset-node span, .money-node span { color: var(--muted); font-size: 10px; }
.asset-node strong, .money-node strong { margin-top: 4px; font-size: 14px; line-height: 1.3; }
.bridge-connectors { height: 42px; margin-left: 140px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.drop { position: relative; width: 1px; height: 100%; justify-self: center; overflow: hidden; background: var(--line); }
.drop::after { content: ""; position: absolute; top: -12px; left: -2px; width: 5px; height: 12px; border-radius: 6px; background: var(--xrp); animation: drop-flow 2.4s ease-in-out infinite; }
.drop.d2::after { animation-delay: .6s; }
.drop.d3::after { animation-delay: 1.2s; }
@keyframes drop-flow { to { transform: translateY(58px); } }
.lane-xrp { grid-template-columns: 140px 1fr; }
.xrp-reservoir {
  min-height: 118px;
  padding: 22px 24px;
  display: grid;
  grid-template-columns: 70px 1fr 180px;
  gap: 20px;
  align-items: center;
  overflow: hidden;
  border-radius: 20px;
  color: #fff;
  background: linear-gradient(120deg, #0e5261, #1a7485);
}
.xrp-symbol { width: 62px; height: 62px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.28); border-radius: 19px; font-size: 19px; font-weight: 850; }
.xrp-reservoir strong { display: block; font-size: 19px; }
.xrp-reservoir span { display: block; margin-top: 5px; color: rgba(255,255,255,.7); font-size: 11px; }
.reservoir-flow { position: relative; height: 58px; overflow: hidden; opacity: .75; }
.reservoir-flow i { position: absolute; left: 0; width: 160px; height: 1px; background: linear-gradient(90deg, transparent, #fff, transparent); animation: flow-line 3.2s linear infinite; }
.reservoir-flow i:nth-child(1) { top: 12px; }
.reservoir-flow i:nth-child(2) { top: 28px; animation-delay: -1s; }
.reservoir-flow i:nth-child(3) { top: 44px; animation-delay: -2s; }
@keyframes flow-line { from { transform: translateX(-120%); } to { transform: translateX(150%); } }
.bridge-connectors.is-down .drop::after { animation-direction: reverse; }
.key-definition {
  margin-top: 22px;
  padding: 28px 32px;
  display: grid;
  grid-template-columns: 155px 310px 1fr;
  gap: 24px;
  align-items: center;
  border: 1px solid #cfe5e9;
  border-radius: var(--radius-lg);
  background: var(--xrp-soft);
}
.key-definition > span { color: var(--xrp-dark); font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.key-definition > strong { font-size: 22px; line-height: 1.4; }
.key-definition p { margin: 0; color: #41606a; font-size: 14px; }
.neutrality-grid { margin-top: 22px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.neutrality-card { min-height: 200px; padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.asset-type { color: var(--muted); font-size: 10px; font-weight: 750; }
.neutrality-card h3 { margin: 30px 0 8px; font-size: 17px; line-height: 1.4; }
.neutrality-card p { margin: 0; color: var(--muted); font-size: 13px; }
.neutrality-card.is-xrp { border-color: #badde3; background: linear-gradient(145deg, #f1fafb, #fff); }
.neutrality-card.is-xrp .asset-type { color: var(--xrp); }

.requirements-list { border-top: 1px solid var(--line); }
.requirement-row {
  min-height: 132px;
  padding: 24px 4px;
  display: grid;
  grid-template-columns: 62px 1fr 250px;
  gap: 22px;
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.requirement-index { color: #acbac3; font-size: 12px; font-weight: 850; }
.requirement-main h3 { margin: 0 0 6px; font-size: 19px; }
.requirement-main p { margin: 0; color: var(--muted); font-size: 14px; }
.requirement-impact { padding: 14px 16px; border-left: 2px solid #cce4e8; background: linear-gradient(90deg, #f2fafb, transparent); }
.requirement-impact span { display: block; color: var(--xrp); font-size: 9px; font-weight: 800; letter-spacing: .08em; }
.requirement-impact strong { display: block; margin-top: 4px; font-size: 13px; }
.capital-note {
  margin-top: 30px;
  padding: 28px;
  display: grid;
  grid-template-columns: 210px 1fr;
  gap: 30px;
  align-items: center;
  border-radius: var(--radius-lg);
  background: var(--surface);
}
.capital-visual { display: flex; align-items: center; justify-content: center; gap: 12px; color: var(--muted); font-size: 12px; font-weight: 750; }
.capital-visual span { width: 72px; height: 54px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 13px; background: #fff; }
.capital-visual i { width: 28px; height: 1px; position: relative; background: var(--line-strong); }
.capital-visual i::after { content: ""; position: absolute; right: 0; top: -3px; width: 7px; height: 7px; border-top: 1px solid var(--line-strong); border-right: 1px solid var(--line-strong); transform: rotate(45deg); }
.capital-note h3 { margin: 0 0 6px; font-size: 19px; }
.capital-note p { margin: 0; color: var(--muted); font-size: 14px; }

.benchmark-stack { display: grid; gap: 14px; }
.benchmark-card {
  padding: 26px;
  display: grid;
  grid-template-columns: 170px 1fr 230px;
  gap: 28px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: #fff;
  box-shadow: var(--shadow-soft);
}
.benchmark-name span { display: block; color: var(--muted); font-size: 10px; font-weight: 750; }
.benchmark-name strong { display: block; margin-top: 4px; font-size: 20px; }
.benchmark-body h3 { margin: 0 0 6px; font-size: 17px; }
.benchmark-body p { margin: 0; color: var(--muted); font-size: 13px; }
.benchmark-lesson { padding-left: 20px; border-left: 1px solid var(--line); }
.benchmark-lesson span { display: block; color: var(--xrp); font-size: 9px; font-weight: 800; letter-spacing: .08em; }
.benchmark-lesson strong { display: block; margin-top: 5px; font-size: 13px; }
.accuracy-note { margin-top: 22px; padding: 22px 25px; border-left: 3px solid var(--amber); border-radius: 0 14px 14px 0; background: var(--amber-soft); }
.accuracy-note strong { display: block; color: #77500f; font-size: 12px; }
.accuracy-note p { margin: 6px 0 0; color: #684f25; font-size: 13px; }

.status-board {
  padding: 30px;
  display: grid;
  grid-template-columns: 1fr 46px 1fr;
  gap: 24px;
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  background: #fff;
  box-shadow: var(--shadow);
}
.status-title { display: flex; align-items: center; gap: 10px; }
.status-title span { width: 9px; height: 9px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 6px var(--green-soft); }
.status-column.is-gap .status-title span { background: var(--amber); box-shadow: 0 0 0 6px var(--amber-soft); }
.status-title h3 { margin: 0; font-size: 18px; }
.status-column ul { margin: 24px 0 0; padding: 0; list-style: none; }
.status-column li { padding: 15px 0; border-top: 1px solid var(--line); }
.status-column li strong, .status-column li span { display: block; }
.status-column li strong { font-size: 14px; }
.status-column li span { margin-top: 4px; color: var(--muted); font-size: 12px; }
.status-divider { display: grid; place-items: center; }
.status-divider span { width: 1px; height: 100%; background: var(--line); }
.xrpl-note {
  margin-top: 22px;
  padding: 28px;
  display: grid;
  grid-template-columns: 1fr 330px;
  gap: 32px;
  align-items: center;
  border-radius: var(--radius-lg);
  background: var(--surface);
}
.xrpl-label { color: var(--xrp); font-size: 10px; font-weight: 850; letter-spacing: .09em; }
.xrpl-note h3 { margin: 8px 0 7px; font-size: 19px; }
.xrpl-note p { margin: 0; color: var(--muted); font-size: 14px; }
.xrpl-parts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.xrpl-parts span { padding: 12px 8px; border: 1px solid var(--line); border-radius: 12px; text-align: center; color: var(--muted); background: #fff; font-size: 11px; font-weight: 750; }

.demand-diagram {
  padding: 34px;
  display: grid;
  grid-template-columns: .85fr 100px 1.35fr;
  gap: 24px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  background: #fff;
  box-shadow: var(--shadow);
}
.demand-label { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .05em; }
.demand-pulse { position: relative; margin-top: 24px; min-height: 80px; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: var(--surface); }
.demand-pulse i { position: absolute; width: 30px; height: 30px; border: 1px solid var(--xrp); border-radius: 50%; animation: pulse-out 2.4s ease-out infinite; }
@keyframes pulse-out { from { transform: scale(.5); opacity: 1; } to { transform: scale(3.4); opacity: 0; } }
.demand-pulse strong { position: relative; z-index: 1; font-size: 14px; }
.demand-left p { margin: 12px 0 0; color: var(--muted); font-size: 13px; }
.demand-arrow { display: grid; place-items: center; }
.demand-arrow span { width: 58px; height: 1px; position: relative; background: var(--line-strong); }
.demand-arrow span::after { content: ""; position: absolute; right: 0; top: -4px; width: 8px; height: 8px; border-top: 1px solid var(--line-strong); border-right: 1px solid var(--line-strong); transform: rotate(45deg); }
.demand-right { display: grid; grid-template-columns: 130px 1fr; gap: 24px; align-items: center; }
.demand-right > .demand-label { grid-column: 1 / -1; }
.inventory-tank { position: relative; height: 170px; display: grid; place-items: center; overflow: hidden; border: 2px solid #b7d7dd; border-radius: 24px 24px 34px 34px; background: #f6fbfc; }
.inventory-tank span { position: absolute; left: 0; right: 0; bottom: 0; height: 72%; background: linear-gradient(#52a5b2, #156579); animation: tank-wave 4s ease-in-out infinite; }
.inventory-tank span::before { content: ""; position: absolute; top: -8px; left: -10%; width: 120%; height: 18px; border-radius: 50%; background: rgba(255,255,255,.3); }
@keyframes tank-wave { 50% { height: 79%; } }
.inventory-tank b { position: relative; z-index: 1; color: #fff; font-size: 20px; }
.demand-right ul { margin: 0; padding: 0; list-style: none; }
.demand-right li { position: relative; padding: 8px 0 8px 20px; color: var(--muted); font-size: 13px; border-bottom: 1px solid var(--line); }
.demand-right li::before { content: ""; position: absolute; left: 0; top: 17px; width: 7px; height: 7px; border-radius: 50%; background: var(--xrp); }
.price-caveat { margin-top: 20px; padding: 24px 26px; display: grid; grid-template-columns: 120px 1fr; gap: 24px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.price-caveat > span { color: var(--amber); font-size: 11px; font-weight: 850; }
.price-caveat p { margin: 0; color: var(--muted); font-size: 14px; }
.price-caveat strong { color: var(--ink); }

.stage-timeline { position: relative; margin-left: 26px; border-left: 1px solid var(--line-strong); }
.stage {
  position: relative;
  min-height: 128px;
  padding: 22px 0 22px 52px;
  display: grid;
  grid-template-columns: 1fr 230px;
  gap: 28px;
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.stage-no { position: absolute; left: -17px; top: 46px; width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid #bad7dd; border-radius: 50%; color: var(--xrp); background: #fff; font-size: 11px; font-weight: 850; }
.stage h3 { margin: 0 0 5px; font-size: 18px; }
.stage p { margin: 0; color: var(--muted); font-size: 14px; }
.stage small { padding: 12px 14px; border-radius: 12px; color: var(--muted); background: var(--surface); font-size: 11px; }

.summary-section { margin-top: 30px; margin-bottom: 92px; padding: 54px; border-radius: 30px; color: #fff; background: linear-gradient(145deg, #0d2630, #113f4b); box-shadow: 0 26px 70px rgba(16,54,65,.18); }
.summary-kicker { color: #7cd2df; font-size: 11px; font-weight: 850; letter-spacing: .12em; }
.summary-section h2 { max-width: 760px; margin-top: 12px; }
.summary-lines { margin-top: 34px; display: grid; gap: 13px; }
.summary-lines p { margin: 0; padding: 14px 0; display: grid; grid-template-columns: 40px 1fr; gap: 14px; border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.78); font-size: 14px; }
.summary-lines p span { color: #7cd2df; font-size: 10px; font-weight: 850; }
.summary-final { margin-top: 30px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.22); font-size: clamp(18px, 2.7vw, 26px); line-height: 1.65; font-weight: 750; }

.sources-section { padding: 72px 0 84px; border-top: 1px solid var(--line); }
.sources-heading { display: grid; grid-template-columns: 230px 1fr; gap: 30px; align-items: start; }
.sources-heading h2 { margin: 0; font-size: 24px; }
.sources-heading p { margin: 0; color: var(--muted); font-size: 13px; }
.sources-list { margin: 30px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.sources-list li { padding: 16px 0; display: grid; grid-template-columns: 34px 1fr; gap: 12px; border-bottom: 1px solid var(--line); }
.sources-list li > span { color: #a3b0b8; font-size: 11px; font-weight: 850; }
.sources-list a { font-size: 13px; font-weight: 700; text-decoration-color: #b8cbd0; text-underline-offset: 3px; }
.sources-list small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }
.editorial-note { margin: 26px 0 0; padding: 20px; border-radius: 13px; color: var(--muted); background: var(--surface); font-size: 12px; }
.site-footer { border-top: 1px solid var(--line); }
.site-footer > div { width: min(calc(100% - 40px), var(--shell)); min-height: 92px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 20px; color: #83919b; font-size: 11px; }

.reveal { opacity: 0; transform: translateY(16px); transition: opacity .7s ease, transform .7s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 980px) {
  .finality-hero { padding: 28px 22px; grid-template-columns: repeat(3, 1fr); }
  .finality-plus { display: none; }
  .finality-equals { grid-column: 1 / -1; min-height: 18px; }
  .finality-result { grid-column: 1 / -1; min-height: 140px; }
  .finality-rail { display: none; }
  .neutrality-grid { grid-template-columns: 1fr 1fr; }
  .key-definition { grid-template-columns: 130px 260px 1fr; }
  .benchmark-card { grid-template-columns: 135px 1fr; }
  .benchmark-lesson { grid-column: 2; padding: 14px 0 0; border-left: 0; border-top: 1px solid var(--line); }
  .demand-diagram { grid-template-columns: 1fr 70px 1.35fr; }
  .demand-right { grid-template-columns: 105px 1fr; }
}

@media (max-width: 760px) {
  :root { --radius-xl: 22px; --radius-lg: 18px; }
  body { line-height: 1.72; }
  .section-shell, .header-inner, .site-footer > div { width: min(calc(100% - 32px), var(--shell)); }
  .header-inner { min-height: 58px; }
  .header-topic { display: none; }
  .hero { padding: 54px 0 46px; }
  .eyebrow-row { align-items: flex-start; font-size: 11px; }
  h1 { font-size: clamp(34px, 11vw, 48px); line-height: 1.16; letter-spacing: -.045em; }
  .hero-lead { margin-top: 22px; font-size: 16px; line-height: 1.82; }
  .hero-conclusion { margin-top: 26px; padding: 20px; grid-template-columns: 1fr; gap: 8px; }
  .hero-conclusion p { font-size: 15px; }
  .finality-hero { margin-top: 30px; padding: 18px; grid-template-columns: 1fr; gap: 10px; }
  .finality-card { min-height: auto; padding: 16px; display: grid; grid-template-columns: 44px 64px 1fr; grid-template-rows: auto auto; column-gap: 12px; text-align: left; justify-items: start; }
  .finality-icon { grid-row: 1 / 3; width: 42px; height: 42px; margin: 0; border-radius: 12px; }
  .finality-icon svg { width: 23px; height: 23px; }
  .finality-card > span { align-self: end; font-size: 10px; }
  .finality-card strong { grid-column: 3; grid-row: 1 / 3; align-self: center; margin: 0; font-size: 15px; }
  .finality-card small { grid-column: 2; grid-row: 2; margin: 0; font-size: 9px; }
  .finality-equals { min-height: 16px; font-size: 17px; }
  .finality-result { min-height: 150px; padding: 20px; }
  .finality-result strong { font-size: 17px; }
  .article-map { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
  .article-map::-webkit-scrollbar { display: none; }
  .article-map a { flex: 0 0 auto; }
  .content-section { padding: 68px 0; }
  .section-heading { margin-bottom: 30px; grid-template-columns: 1fr; gap: 7px; }
  .section-number { padding: 0; }
  .section-heading h2, .summary-section h2 { font-size: 28px; line-height: 1.4; letter-spacing: -.035em; }
  .section-heading p { font-size: 14px; }
  .definition-grid { grid-template-columns: 1fr; gap: 12px; }
  .definition-card { min-height: 218px; padding: 23px; }
  .definition-card h3 { margin-top: 32px; }
  .mini-status { left: 23px; bottom: 20px; }
  .principle-callout { padding: 22px; grid-template-columns: 1fr; gap: 14px; }
  .principle-mark { width: 84px; height: 48px; }
  .bridge-diagram { padding: 18px; }
  .bridge-lane { grid-template-columns: 1fr; gap: 8px; }
  .lane-label { margin: 4px 0 2px; }
  .lane-assets, .lane-money { grid-template-columns: 1fr 1fr 1fr; }
  .lane-assets .lane-label, .lane-money .lane-label { grid-column: 1 / -1; }
  .asset-node, .money-node { min-height: 78px; padding: 11px 9px; }
  .asset-node strong, .money-node strong { font-size: 11px; }
  .bridge-connectors { height: 32px; margin-left: 0; grid-template-columns: repeat(3, 1fr); }
  .lane-xrp { grid-template-columns: 1fr; }
  .xrp-reservoir { min-height: 146px; padding: 18px; grid-template-columns: 54px 1fr; gap: 14px; }
  .xrp-symbol { width: 50px; height: 50px; border-radius: 15px; font-size: 16px; }
  .xrp-reservoir strong { font-size: 15px; }
  .reservoir-flow { grid-column: 1 / -1; height: 24px; }
  .reservoir-flow i { width: 100%; }
  .reservoir-flow i:nth-child(1) { top: 4px; }
  .reservoir-flow i:nth-child(2) { top: 12px; }
  .reservoir-flow i:nth-child(3) { top: 20px; }
  .key-definition { margin-top: 14px; padding: 22px; grid-template-columns: 1fr; gap: 8px; }
  .key-definition > strong { font-size: 20px; }
  .neutrality-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .neutrality-card { min-height: 176px; padding: 18px; }
  .neutrality-card h3 { margin-top: 24px; font-size: 15px; }
  .neutrality-card p { font-size: 11px; }
  .requirement-row { padding: 21px 0; grid-template-columns: 38px 1fr; gap: 12px; }
  .requirement-impact { grid-column: 2; padding: 11px 13px; }
  .requirement-main h3 { font-size: 17px; }
  .requirement-main p { font-size: 13px; }
  .capital-note { padding: 22px; grid-template-columns: 1fr; gap: 20px; }
  .capital-visual { justify-content: flex-start; }
  .benchmark-card { padding: 22px; grid-template-columns: 1fr; gap: 16px; }
  .benchmark-lesson { grid-column: auto; }
  .accuracy-note { padding: 20px; }
  .status-board { padding: 22px; grid-template-columns: 1fr; gap: 6px; }
  .status-divider { height: 30px; }
  .status-divider span { width: 100%; height: 1px; }
  .xrpl-note { padding: 22px; grid-template-columns: 1fr; gap: 22px; }
  .demand-diagram { padding: 22px; grid-template-columns: 1fr; gap: 20px; }
  .demand-arrow { height: 38px; transform: rotate(90deg); }
  .demand-right { grid-template-columns: 96px 1fr; gap: 16px; }
  .inventory-tank { height: 148px; }
  .price-caveat { padding: 21px; grid-template-columns: 1fr; gap: 8px; }
  .stage-timeline { margin-left: 17px; }
  .stage { min-height: 150px; padding: 20px 0 20px 38px; grid-template-columns: 1fr; gap: 12px; }
  .stage-no { left: -14px; top: 29px; width: 28px; height: 28px; }
  .stage small { justify-self: start; }
  .summary-section { width: calc(100% - 24px); margin-bottom: 68px; padding: 34px 22px; }
  .summary-lines p { grid-template-columns: 32px 1fr; font-size: 13px; }
  .summary-final { font-size: 18px; }
  .sources-section { padding: 58px 0 68px; }
  .sources-heading { grid-template-columns: 1fr; gap: 8px; }
  .site-footer > div { min-height: 80px; }
}

@media (max-width: 390px) {
  .section-shell, .header-inner, .site-footer > div { width: min(calc(100% - 26px), var(--shell)); }
  .neutrality-grid { grid-template-columns: 1fr; }
  .lane-assets, .lane-money { grid-template-columns: 1fr; }
  .lane-assets .lane-label, .lane-money .lane-label { grid-column: auto; }
  .bridge-connectors { grid-template-columns: 1fr; }
  .bridge-connectors .d2, .bridge-connectors .d3 { display: none; }
  .demand-right { grid-template-columns: 1fr; }
  .inventory-tank { width: 120px; justify-self: center; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
