.story-shell { max-width: 804px; margin: auto; padding: 0 32px; }
.story-header { padding: 36px 0 28px; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 32px; font-size: .875rem; color: var(--muted); }
.breadcrumbs a { text-decoration: none; }
.breadcrumbs a:hover { color: var(--accent); }
.story-header h1 { margin: 0 0 20px; font-size: clamp(2.25rem, 4.6vw, 3.25rem); font-weight: 650; line-height: 1.1; letter-spacing: -.045em; }
.story-header h1 span { display: block; }
.story-deck { margin: 0 0 22px; color: var(--muted); font-size: 1.1875rem; line-height: 1.75; }
.comparison-strip { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 30px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.comparison-strip > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; padding: 20px; }
.comparison-strip > div + div { border-left: 1px solid var(--line); }
.comparison-strip strong { font-size: 1.125rem; }
.comparison-strip .price { grid-row: span 2; align-self: center; font-size: 1.625rem; font-weight: 650; }
.comparison-strip small { color: var(--muted); font-size: .875rem; }
.story-layout { display: flex; flex-direction: column; gap: 32px; margin-bottom: 56px; }
.story-body { width: 100%; min-width: 0; color: #354050; font-size: 1.125rem; line-height: 1.85; }
.story-body section { margin: 0 0 40px; }
.story-body h2 { color: var(--ink); margin: 0 0 18px; font-size: 1.625rem; line-height: 1.3; letter-spacing: -.03em; }
.story-body h3 { color: var(--ink); font-size: 1.1875rem; line-height: 1.5; }
.story-body p { margin: 0 0 22px; }
.story-body strong { color: var(--ink); }
.story-body a { color: var(--accent); text-decoration-thickness: 1px; overflow-wrap: anywhere; }
.story-body a:hover { color: #173d8b; }
.story-body .source-note { margin-top: 16px; font-size: .875rem; line-height: 1.75; color: var(--muted); }
.verdict { padding: 24px 26px; background: var(--accent-light); border-left: 3px solid var(--accent); }
.verdict .eyebrow { margin-bottom: 10px; }
.verdict h2 { font-size: 1.375rem; margin-bottom: 14px; }
.verdict p:last-child { margin-bottom: 0; }
.media-slot { margin: 30px 0 40px; }
.hero-media .router-pair { padding: 16px 26px 22px; }
.hero-media .product-shot { height: 280px; }
.hero-media figcaption { margin-top: 10px; color: var(--dim); font-size: .8125rem; line-height: 1.6; }
.table-scroll { width: 100%; overflow-x: auto; border: 1px solid var(--line); }
.spec-table { width: 100%; border-collapse: collapse; font-size: .9375rem; line-height: 1.6; }
.spec-table caption { text-align: left; padding: 15px 17px; color: var(--muted); font-size: .875rem; }
.spec-table th, .spec-table td { padding: 14px 16px; text-align: left; border-top: 1px solid var(--line); vertical-align: top; }
.spec-table thead th { color: var(--ink); background: var(--panel-2); font-weight: 650; }
.spec-table tbody th { color: var(--muted); font-weight: 500; width: 35%; }
.spec-table tbody tr:nth-child(even) { background: #f8f9fb; }
.spec-table .price-row td { font-size: 1.125rem; font-weight: 650; color: var(--ink); }
.story-toc { width: 100%; border-bottom: 1px solid var(--line); padding-bottom: 16px; }
.story-toc summary { cursor: pointer; min-height: 44px; padding: 8px 0; font-size: .9375rem; font-weight: 600; }
.story-toc ol { padding: 8px 0 12px 22px; margin: 0; display: grid; gap: 10px; }
.story-toc a { color: var(--muted); font-size: .9375rem; text-decoration: none; }
.story-toc a:hover { color: var(--accent); text-decoration: underline; }
.choice { padding: 22px 0; margin: 18px 0; border-top: 1px solid var(--line); }
.choice h3 { margin: 0 0 10px; }
.choice p { margin: 0; }
.story-body ul { padding-left: 24px; }
.story-body li { padding-left: 4px; margin-bottom: 16px; }
.article-end { padding-top: 24px; border-top: 1px solid var(--line); font-size: 1rem; }
@media (max-width: 640px) {
  .story-shell { padding-inline: 22px; }
  .story-header { padding-top: 26px; }
  .breadcrumbs { margin-bottom: 24px; }
  .story-header h1 { font-size: 2.125rem; }
  .story-deck { font-size: 1.0625rem; }
  .story-body { font-size: 1.0625rem; }
  .story-body h2 { font-size: 1.5rem; }
  .comparison-strip > div { padding: 16px 12px; grid-template-columns: minmax(0, 1fr); }
  .comparison-strip .price { grid-row: auto; font-size: 1.375rem; }
  .spec-table { min-width: 440px; }
  .spec-table th, .spec-table td { padding: 12px; }
  .verdict { padding: 20px; }
  .hero-media .router-pair { padding: 12px 12px 18px; }
  .hero-media .product-shot { height: clamp(165px, 48vw, 265px); }
}
