
    :root {
      --ink: #17233d;
      --muted: #5d687b;
      --blue: #2868c7;
      --blue-deep: #123b78;
      --ice: #edf5ff;
      --line: #dbe5f1;
      --paper: #ffffff;
      --soft: #f5f8fc;
      --warm: #f5f1eb;
      --shadow: 0 18px 55px rgba(21, 57, 101, 0.11);
    }

    * { box-sizing: border-box; }

    html { scroll-behavior: smooth; }

    body {
      margin: 0;
      color: var(--ink);
      background: #f6f8fb;
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      line-height: 1.72;
      -webkit-font-smoothing: antialiased;
    }

    a { color: var(--blue-deep); text-decoration-thickness: 1px; text-underline-offset: 3px; }
    a:hover { color: var(--blue); }

    .page {
      width: min(1180px, calc(100% - 36px));
      margin: 0 auto;
      padding: 34px 0 80px;
    }

    .hero {
      display: grid;
      grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
      min-height: 520px;
      overflow: hidden;
      background: var(--paper);
      border: 1px solid var(--line);
      box-shadow: var(--shadow);
    }

    .hero-copy {
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: 62px 54px;
      background:
        radial-gradient(circle at 15% 10%, rgba(255,255,255,.28), transparent 28%),
        linear-gradient(145deg, #15294b 0%, #1b4c8f 72%, #2d78d2 100%);
      color: #fff;
    }

    .eyebrow {
      margin: 0 0 22px;
      color: #c9e3ff;
      font-size: .76rem;
      font-weight: 800;
      letter-spacing: .16em;
      text-transform: uppercase;
    }

    .hero h1 {
      max-width: 560px;
      margin: 0;
      font-size: clamp(2.35rem, 5vw, 4.3rem);
      line-height: 1.05;
      letter-spacing: -.045em;
    }

    .hero-deck {
      max-width: 510px;
      margin: 28px 0 0;
      color: #e9f3ff;
      font-size: 1.08rem;
    }

    .hero-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 10px 22px;
      margin-top: 34px;
      color: #c9e3ff;
      font-size: .86rem;
    }

    .hero-media {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 34px;
      background:
        linear-gradient(135deg, rgba(239,247,255,.96), rgba(216,233,252,.9)),
        repeating-linear-gradient(135deg, transparent 0 28px, rgba(255,255,255,.3) 29px 30px);
    }

    .hero-media figure { width: min(100%, 510px); margin: 0; }
    .hero-media img { display: block; width: 100%; height: auto; border-radius: 18px; box-shadow: 0 22px 40px rgba(24, 57, 98, .18); }
    figcaption { margin-top: 10px; color: var(--muted); font-size: .78rem; text-align: center; }

    .article-layout {
      display: grid;
      grid-template-columns: 230px minmax(0, 1fr);
      gap: 48px;
      align-items: start;
      margin-top: 54px;
    }

    .reading-rail {
      position: sticky;
      top: 22px;
      padding: 22px 0 0 22px;
      border-left: 3px solid var(--blue);
    }

    .reading-rail h2 {
      margin: 0 0 18px;
      font-size: .82rem;
      letter-spacing: .14em;
      text-transform: uppercase;
    }

    .reading-rail ol { margin: 0; padding: 0; list-style: none; counter-reset: rail; }
    .reading-rail li { counter-increment: rail; margin: 0 0 15px; }
    .reading-rail li::before { content: "0" counter(rail); display: block; color: var(--blue); font-size: .72rem; font-weight: 800; letter-spacing: .1em; }
    .reading-rail a { color: var(--muted); font-size: .92rem; text-decoration: none; }
    .reading-rail a:hover { color: var(--blue-deep); }

    .content { min-width: 0; }
    .content > *:first-child { margin-top: 0; }
    .content h2 { margin: 62px 0 18px; font-size: clamp(1.75rem, 3vw, 2.45rem); line-height: 1.15; letter-spacing: -.035em; }
    .content h3 { margin: 0 0 10px; font-size: 1.25rem; line-height: 1.25; }
    .content p { margin: 0 0 18px; color: #354158; }
    .lead { color: var(--ink) !important; font-size: 1.22rem; line-height: 1.65; }

    .source-note,
    .warning-note,
    .product-note {
      margin: 28px 0;
      padding: 25px 28px;
      border: 1px solid var(--line);
      background: var(--paper);
      box-shadow: 0 10px 26px rgba(28, 62, 105, .06);
    }

    .source-note { border-left: 5px solid var(--blue); }
    .warning-note { border-left: 5px solid #d08a35; background: #fffaf2; }
    .product-note { border-left: 5px solid #2b9a80; background: #f1fbf8; }
    .note-label { display: block; margin-bottom: 7px; color: var(--blue-deep); font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }

    .benefit {
      display: grid;
      grid-template-columns: 78px minmax(0, 1fr);
      gap: 24px;
      padding: 32px 0;
      border-top: 1px solid var(--line);
    }

    .benefit-number {
      color: var(--blue);
      font-size: 2.4rem;
      font-weight: 900;
      line-height: 1;
      letter-spacing: -.06em;
    }

    .benefit-number small { display: block; margin-top: 9px; color: #8b99ab; font-size: .68rem; font-weight: 800; letter-spacing: .11em; }
    .benefit p:last-child { margin-bottom: 0; }

    .image-band {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      gap: 18px;
      margin: 26px 0 10px;
    }

    .image-band figure { margin: 0; padding: 12px; background: var(--paper); border: 1px solid var(--line); }
    .image-band img { display: block; width: 100%; height: auto; }

    .comparison {
      width: 100%;
      margin: 24px 0 20px;
      border-collapse: collapse;
      overflow: hidden;
      background: var(--paper);
      border: 1px solid var(--line);
      font-size: .96rem;
    }

    .comparison th,
    .comparison td { padding: 16px 17px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
    .comparison th { color: #fff; background: var(--blue-deep); font-size: .83rem; letter-spacing: .06em; text-transform: uppercase; }
    .comparison tr:last-child td { border-bottom: 0; }
    .comparison td:first-child { width: 26%; color: var(--ink); font-weight: 750; }

    .filter-flow {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 10px;
      margin: 24px 0 28px;
    }

    .filter-step { position: relative; padding: 20px 16px; min-height: 132px; background: #f0f6ff; border: 1px solid #cbdcf1; }
    .filter-step:not(:last-child)::after { content: "→"; position: absolute; right: -16px; top: 50%; z-index: 2; color: var(--blue); font-size: 1.45rem; font-weight: 800; transform: translateY(-50%); }
    .filter-step strong { display: block; margin-bottom: 5px; color: var(--blue-deep); }
    .filter-step span { display: block; color: var(--muted); font-size: .84rem; line-height: 1.45; }

    .practice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 25px 0; }
    .practice { padding: 23px; background: var(--warm); border: 1px solid #e9dfd2; }
    .practice .phase { display: block; margin-bottom: 10px; color: #987349; font-size: .72rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
    .practice p { margin: 0; font-size: .92rem; }

    .checklist { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 18px; margin: 24px 0; }
    .check { display: flex; gap: 12px; padding: 16px; background: var(--paper); border: 1px solid var(--line); }
    .check::before { content: "✓"; flex: 0 0 auto; width: 23px; height: 23px; border-radius: 50%; color: #fff; background: var(--blue); font-size: .83rem; font-weight: 800; line-height: 23px; text-align: center; }
    .check span { color: #354158; font-size: .93rem; line-height: 1.5; }

    .faq { margin-top: 24px; border-top: 1px solid var(--line); }
    .faq details { padding: 20px 0; border-bottom: 1px solid var(--line); }
    .faq summary { cursor: pointer; color: var(--ink); font-weight: 800; list-style: none; }
    .faq summary::-webkit-details-marker { display: none; }
    .faq summary::after { content: "+"; float: right; color: var(--blue); font-size: 1.35rem; line-height: 1; }
    .faq details[open] summary::after { content: "–"; }
    .faq details p { max-width: 850px; margin: 13px 0 0; }

    .references { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 25px; }
    .reference-card { padding: 20px; background: var(--paper); border: 1px solid var(--line); }
    .reference-card strong { display: block; margin-bottom: 8px; }
    .reference-card p { margin: 0; font-size: .86rem; line-height: 1.55; }

    .article-footer { margin-top: 55px; padding-top: 22px; border-top: 1px solid var(--line); color: #768298; font-size: .82rem; }

    @media (max-width: 900px) {
      .hero { grid-template-columns: 1fr; }
      .hero-copy { padding: 44px 34px; }
      .hero-media { padding: 25px; }
      .article-layout { grid-template-columns: 1fr; gap: 25px; }
      .reading-rail { position: static; padding: 18px 0 0; border-top: 3px solid var(--blue); border-left: 0; }
      .reading-rail ol { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 20px; }
      .reading-rail li { margin: 0; }
      .filter-flow { grid-template-columns: repeat(2, 1fr); }
      .filter-step:not(:last-child)::after { display: none; }
      .references { grid-template-columns: 1fr; }
    }

    @media (max-width: 620px) {
      .page { width: min(100% - 22px, 1180px); padding-top: 12px; }
      .hero-copy { padding: 35px 23px; }
      .hero-media { padding: 13px; }
      .hero h1 { font-size: 2.35rem; }
      .article-layout { margin-top: 35px; }
      .benefit { grid-template-columns: 1fr; gap: 13px; padding: 25px 0; }
      .benefit-number { font-size: 1.9rem; }
      .image-band, .practice-grid, .checklist, .filter-flow { grid-template-columns: 1fr; }
      .comparison { display: block; overflow-x: auto; white-space: normal; }
      .comparison th, .comparison td { min-width: 180px; }
    }
  