/* =====================================
     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;
          }
        }