.container {
        max-width: 1120px;
        margin: 10px auto 80px;
        padding: 0 20px;
      }

      .article-shell {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 300px;
        gap: 26px;
        align-items: start;
      }

      .article-main {
        min-width: 0;
      }

      .article-side {
        position: sticky;
        top: 96px;
      }

      /* Article header */
      .article-header {
        background: var(--surface);
        border-radius: var(--radius-xl);
        box-shadow: var(--shadow);
        padding: 28px 30px;
        margin-bottom: 22px;
      }

      .breadcrumb {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        align-items: center;
        color: var(--muted);
        font-size: 0.95rem;
        margin-bottom: 18px;
      }

      .breadcrumb a {
        text-decoration: none;
        color: var(--muted);
      }

      .breadcrumb a:hover {
        color: var(--text);
      }

      .article-kicker {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        color: var(--family);
        font-weight: 700;
        margin-bottom: 10px;
      }

      .article-title {
        margin: 0;
        font-size: clamp(2rem, 4vw, 3.25rem);
        line-height: 1.12;
        letter-spacing: -0.03em;
        color: var(--text);
      }

      .article-meta {
        display: flex;
        flex-wrap: wrap;
        gap: 18px;
        align-items: center;
        margin-top: 18px;
        padding-top: 18px;
        border-top: 1px solid var(--line);
        color: var(--muted);
      }

      .meta-item {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        font-size: 1rem;
      }

      .meta-item svg {
        width: 18px;
        height: 18px;
      }

      /* Lead */
      .lead-box {
        background: var(--surface);
        border-radius: var(--radius-xl);
        box-shadow: var(--shadow);
        padding: 26px 30px;
        margin-bottom: 22px;
      }

      .lead {
        margin: 0;
        font-size: 1.18rem;
        line-height: 1.9;
        color: #2b456f;
      }

      /* Article content */
      .article-content {
        background: var(--surface);
        border-radius: var(--radius-xl);
        box-shadow: var(--shadow);
        padding: 30px;
      }

      .hero-image {
        margin: 0 0 28px;
        border-radius: 20px;
        overflow: hidden;
        background: linear-gradient(
          135deg,
          rgba(47, 103, 200, 0.09),
          rgba(23, 151, 166, 0.08)
        );
        border: 1px solid rgba(23, 58, 116, 0.05);
      }

      .hero-image img {
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 9;
        object-fit: cover;
      }

      .image-placeholder {
        width: 100%;
        aspect-ratio: 16 / 9;
        display: grid;
        place-items: center;
        color: var(--muted);
        background:
          radial-gradient(
            circle at 20% 20%,
            rgba(255, 255, 255, 0.7),
            transparent 28%
          ),
          linear-gradient(135deg, #edf3ff, #eef9fb);
      }

      .image-placeholder-inner {
        text-align: center;
      }

      .image-placeholder svg {
        width: 56px;
        height: 56px;
        margin: 0 auto 10px;
        color: #6d86b5;
      }

      .article-content h2,
      .article-content h3 {
        color: var(--text);
        letter-spacing: -0.02em;
        scroll-margin-top: 110px;
      }

      .article-content h2 {
        margin: 34px 0 12px;
        font-size: clamp(1.6rem, 3vw, 2.2rem);
        line-height: 1.2;
      }

      .article-content h3 {
        margin: 28px 0 10px;
        font-size: clamp(1.25rem, 2.4vw, 1.6rem);
      }

      .article-content p {
        margin: 0 0 18px;
        color: #314b75;
        font-size: 1.12rem;
        line-height: 1.95;
        font-weight: 400;
      }

      .article-content strong {
        color: var(--text);
      }

      .article-content ul {
        margin: 0 0 22px;
        padding: 0 22px 0 0;
        color: #314b75;
      }

      .article-content li {
        margin-bottom: 10px;
        line-height: 1.8;
      }

      .note-box {
        margin: 26px 0;
        padding: 18px 20px;
        border-radius: 18px;
        background: #f4f8ff;
        border: 1px solid #dbe7fb;
      }

      .note-box-title {
        margin: 0 0 8px;
        color: var(--text);
        font-weight: 800;
      }

      .inline-cta {
        margin: 34px 0;
        padding: 24px;
        border-radius: 22px;
        background: linear-gradient(135deg, #f7faff, #eef5ff);
        border: 1px solid #dbe6f5;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
      }

      .inline-cta h3 {
        margin: 0 0 8px;
        font-size: 1.4rem;
      }

      .inline-cta p {
        margin: 0;
        font-size: 1rem;
      }

      .cta-actions {
        display: flex;
        gap: 10px;
        flex-wrap: wrap;
      }

      .btn {
        border: 0;
        text-decoration: none;
        border-radius: 14px;
        padding: 12px 18px;
        font-weight: 800;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        transition: 0.2s ease;
      }

      .btn-primary {
        background: var(--link);
        color: #fff;
      }

      .btn-primary:hover {
        background: #174fb0;
      }

      .btn-secondary {
        background: #eaf1ff;
        color: var(--text);
      }

      .btn-secondary:hover {
        background: #dbe7ff;
      }

      /* Sidebar */
      .side-card {
        background: var(--surface);
        border-radius: var(--radius-xl);
        box-shadow: var(--shadow);
        padding: 22px 20px;
        margin-bottom: 18px;
      }

      .side-card-title {
        display: flex;
        align-items: center;
        gap: 10px;
        margin: 0 0 16px;
        font-size: 1.2rem;
        font-weight: 800;
        color: var(--text);
      }

      .side-card-title svg {
        width: 22px;
        height: 22px;
      }

      .toc-list {
        list-style: none;
        margin: 0;
        padding: 0;
      }

      .toc-list li + li {
        margin-top: 8px;
      }

      .toc-list a {
        display: block;
        text-decoration: none;
        color: var(--muted);
        line-height: 1.6;
        padding: 10px 12px;
        border-radius: 12px;
        transition: 0.2s ease;
      }

      .toc-list a:hover,
      .toc-list a.active {
        background: #eef4ff;
        color: var(--text);
      }

      .share-list {
        display: flex;
        gap: 10px;
        flex-wrap: wrap;
      }

      .share-btn {
        width: 42px;
        height: 42px;
        border-radius: 12px;
        background: #eef4ff;
        color: var(--text);
        display: grid;
        place-items: center;
        text-decoration: none;
      }

      .share-btn:hover {
        background: #dce8ff;
      }

      /* Related articles */
      .related {
        margin-top: 24px;
      }

      .related h2 {
        margin: 0 0 16px;
        font-size: 1.8rem;
      }

      .related-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 16px;
      }

      .related-card {
        background: var(--surface);
        border-radius: 20px;
        box-shadow: var(--shadow);
        padding: 18px;
        text-decoration: none;
        border: 1px solid rgba(23, 58, 116, 0.05);
      }

      .related-card:hover {
        transform: translateY(-2px);
      }

      .related-tag {
        display: inline-block;
        margin-bottom: 10px;
        font-size: 0.86rem;
        font-weight: 800;
        color: var(--family);
      }

      .related-title {
        margin: 0 0 8px;
        font-size: 1.15rem;
        line-height: 1.4;
        color: var(--text);
      }

      .related-desc {
        margin: 0;
        color: var(--muted);
        line-height: 1.7;
        font-size: 0.98rem;
      }

      /* Mobile TOC */
      .mobile-toc {
        display: none;
        margin-bottom: 18px;
      }

      .mobile-toc details {
        background: var(--surface);
        border-radius: 18px;
        box-shadow: var(--shadow);
        padding: 16px 18px;
      }

      .mobile-toc summary {
        list-style: none;
        cursor: pointer;
        font-weight: 800;
        color: var(--text);
      }

      .mobile-toc summary::-webkit-details-marker {
        display: none;
      }

      .mobile-toc-list {
        list-style: none;
        margin: 14px 0 0;
        padding: 0;
      }

      .mobile-toc-list li + li {
        margin-top: 8px;
      }

      .mobile-toc-list a {
        text-decoration: none;
        color: var(--muted);
      }

      @media (max-width: 980px) {
        .article-shell {
          grid-template-columns: 1fr;
        }

        .article-side {
          display: none;
        }

        .mobile-toc {
          display: block;
        }

        .related-grid {
          grid-template-columns: 1fr;
        }
      }

      @media (max-width: 760px) {
        .container {
          padding-right: 14px;
          padding-left: 14px;
        }

        .article-header,
        .lead-box,
        .article-content {
          padding: 20px 18px;
          border-radius: 20px;
        }

        .article-title {
          font-size: 2rem;
        }

        .article-meta {
          gap: 12px;
        }

        .meta-item {
          font-size: 0.95rem;
        }

        .article-content p {
          font-size: 1.04rem;
          line-height: 1.85;
        }

        .inline-cta {
          padding: 18px;
        }

        .inline-cta h3 {
          font-size: 1.25rem;
        }
      }
