/* =====================================
     Base / Rendering
     ===================================== */
    * {
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }

    /* =====================================
     Prose Images
     ===================================== */
    .prose img {
      width: 100%;
      margin: 0 auto;
    }

    /* =====================================
     Article Base
     ===================================== */
    .poetic-prose {
      font-family: "Inter", "Noto Sans JP", sans-serif;
      color: #374151;
    }

    /* =====================================
     Headings
     ===================================== */
    .poetic-prose h2 {
      font-family: "Playfair Display", "Noto Serif JP", serif;
      font-size: 1.75rem;
      font-weight: 400;
      color: #111827;
      margin-top: 4rem;
      margin-bottom: 1.5rem;
      padding-bottom: 0.75rem;
      line-height: 1.55;
      border-bottom: 1px solid #f0f0f0;
    }

    .poetic-prose h3 {
      font-family: "Inter", "Noto Sans JP", sans-serif;
      font-size: 1.0625rem;
      font-weight: 600;
      color: #1f2937;
      margin-top: 2.5rem;
      margin-bottom: 1rem;
      letter-spacing: 0.01em;
    }

    /* =====================================
     Paragraphs
     ===================================== */
    .poetic-prose p {
      color: #374151;
      line-height: 2;
      margin: 1.75rem 0;
      font-weight: 400;
    }

    /* =====================================
     Images inside article
     ===================================== */
    .poetic-prose img {
      border-radius: 4px;
      border: 1px solid #f3f4f6;
      box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
    }

    /* =====================================
     Blockquote
     ===================================== */
    .poetic-prose blockquote {
      border-left: 2px solid #d1d5db;
      padding: 1.25rem 1.5rem;
      margin: 3rem 0;
      color: #6b7280;
      font-weight: 400;
      background: #f9fafb;
      border-radius: 0 4px 4px 0;
    }

    .poetic-prose blockquote p {
      margin: 0.5rem 0;
      line-height: 1.85;
    }

    /* =====================================
     Inline Code / Pre
     ===================================== */
    .poetic-prose code {
      color: #374151;
      background-color: #f3f4f6;
      padding: 0.125rem 0.5rem;
      border-radius: 0.25rem;
      font-size: 0.85rem;
    }

    .poetic-prose pre {
      background-color: #f9fafb;
      border: 1px solid #e5e7eb;
      border-radius: 4px;
      padding: 1.5rem;
      margin: 3rem 0;
      font-size: 0.875rem;
      line-height: 1.7;
    }

    /* =====================================
     Horizontal Rule
     ===================================== */
    .poetic-prose hr {
      border: none;
      height: 1px;
      background: linear-gradient(to right, transparent, #e5e7eb, transparent);
      margin: 4rem 0;
    }

    /* =====================================
     Lists
     ===================================== */
    .poetic-prose ul,
    .poetic-prose ol {
      margin: 2rem 0;
      color: #374151;
    }

    .poetic-prose li {
      margin: 0.75rem 0;
      line-height: 1.85;
      font-weight: 400;
    }

    .poetic-prose ul li::before {
      content: "・";
      color: #9ca3af;
      margin-right: 0.5rem;
    }

    .poetic-prose ul li ul {
      margin: 0.5rem 0 0.5rem 1.5rem;
    }

    .poetic-prose ul li ul li::before {
      color: #cbd5e1;
    }

    /* markerなし */
    .poetic-prose ul.no-marker li::before,
    .poetic-prose .no-marker ul li::before {
      content: none;
    }

    /* =====================================
     Tables
     ===================================== */
    .poetic-prose table {
      width: 100%;
      max-width: 100%;
      table-layout: auto;
      border-collapse: collapse;
      margin: 0 auto;
    }

    .poetic-prose thead {
      background: #f9fafb;
      border-bottom: 1px solid #e5e7eb;
    }

    .poetic-prose thead th {
      padding: 0.75rem;
      text-align: left;
      font-weight: 600;
      color: #4b5563;
      font-size: 0.75rem;
      letter-spacing: 0.05em;
    }

    .poetic-prose tbody tr {
      border-bottom: 1px solid #f3f4f6;
    }

    .poetic-prose tbody tr:last-child {
      border-bottom: none;
    }

    .poetic-prose tbody tr:hover {
      background-color: rgba(249, 250, 251, 0.8);
    }

    .poetic-prose tbody td {
      padding: 1rem 0.75rem;
      color: #374151;
      vertical-align: top;
      line-height: 1.7;
    }

    .poetic-prose tbody td:first-child {
      font-weight: 500;
      color: #6b7280;
      white-space: nowrap;
      padding-left: 1.25rem;
    }

    /* =====================================
     Strong
     ===================================== */
    .poetic-prose strong {
      font-weight: 700;
      color: #111827;
      background: rgba(254, 243, 199, 0.55);
      padding: 0 0.15em;
      border-radius: 2px;
    }

    /* =====================================
     Embeds
     ===================================== */
    .poetic-prose iframe {
      margin-top: 2rem;
    }

    /* =====================================
     Prevent Horizontal Scroll
     ===================================== */
    html,
    body {
      overflow-x: hidden;
    }

    /* テーブルのレスポンシブ対応 */
    @media (max-width: 768px) {
      .poetic-prose table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
      }
    }