/* 記事本文の文字組み。公開サイトと、ポータルのプレビュー・審査画面で同じものを使う(見た目のずれを防ぐ)。 */
/* 旧サイトの記事本文(entry-content)の決まり: 16px・行間1.95、見出しは左の緑線(h2)と下線(h3)、引用は角丸の薄い面、リンクは青。
   文は、文節のまとまりの間でだけ改行する(本文の HTML に <wbr> が入っている)。 */
.prose { font-size: 16px; line-height: 1.95; letter-spacing: 0.01em; color: var(--kp-text-body, var(--kt-text)); word-break: keep-all; overflow-wrap: anywhere; line-break: strict; }
.prose > :first-child { margin-top: 0; }
.prose p { margin: 0 0 1.4em; text-wrap: pretty; }
.prose h2, .prose h3, .prose h4 { color: var(--kt-text); font-weight: 700; text-wrap: balance; }
.prose h2 { border-left: 4px solid var(--kt-accent); padding-left: 14px; margin: 2.2em 0 0.9em; font-size: clamp(1.45rem, 2.8vw, 1.85rem); letter-spacing: -0.02em; line-height: 1.32; }
.prose h3 { border-bottom: 2px solid var(--kt-border); padding-bottom: 6px; margin: 1.8em 0 0.7em; font-size: clamp(1.2rem, 2.2vw, 1.45rem); letter-spacing: -0.015em; line-height: 1.4; }
.prose h4 { margin: 1.4em 0 0.5em; font-size: 1.15rem; }
.prose ul, .prose ol { margin: 0 0 1.4em; padding-left: 1.5em; }
.prose ul { list-style: disc; }
.prose ol { list-style: decimal; }
.prose li > ul { list-style: circle; }
.prose li { margin: 0.35em 0; }
.prose li > ul, .prose li > ol { margin: 0.3em 0 0.3em; }
.prose .task { margin-left: -0.2em; }
.prose a { color: var(--kp-accent-cyan, var(--kt-accent)); text-decoration: underline; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); text-underline-offset: 3px; word-break: break-all; }
.prose a:hover { color: var(--kt-accent); }
.prose strong { font-weight: 700; color: var(--kt-text); }
.prose code { background: var(--kt-surface-2); border: 1px solid var(--kt-border); padding: 0.1em 0.45em; border-radius: 8px; word-break: break-all; }
.prose pre { margin: 0 0 1.6em; padding: 18px 20px; background: #0b1323; color: #e5e7eb; border: 1px solid #1e293b; border-radius: 14px; overflow-x: auto; font-size: 14px; line-height: 1.7; position: relative; -webkit-overflow-scrolling: touch; word-break: normal; overflow-wrap: normal; }
.prose pre code { background: none; border: 0; padding: 0; font-size: inherit; color: inherit; white-space: pre; word-break: normal; }
.prose pre[data-lang]::before { content: attr(data-lang); position: absolute; top: 6px; right: 14px; font-size: 11px; color: #9aa6b8; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.prose blockquote { margin: 0 0 1.6em; background: var(--kt-surface-2); border-left: 4px solid var(--kt-border-strong); color: var(--kt-text-2); padding: 1em 1.4em; border-radius: 12px; }
.prose blockquote > :last-child, .callout > :last-child { margin-bottom: 0; }
.callout { margin: 0 0 1.6em; padding: 16px 20px; border-radius: 14px; background: var(--kt-accent-soft); font-size: 15.5px; line-height: 1.85; }
.callout__label { font-weight: 700; font-size: 13px; margin: 0 0 4px !important; color: var(--kt-accent); }
.callout--warning, .callout--important { background: var(--kt-warning-soft); }
.callout--warning .callout__label, .callout--important .callout__label { color: var(--kt-warning); }
.prose figure { margin: 0 0 1.8em; }
/* 本文の画像は width/height の属性つき。ポータルの共通の img には height:auto が無いので、ここで付ける(無いと縮めた時に縦に伸びる。2026-11-01) */
.prose figure img { display: block; max-width: 100%; height: auto; margin-inline: auto; border-radius: 14px; background: var(--kt-surface-2); }
.prose figure.video .video__frame { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: #000; }
.prose figure.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.prose figure.video video { display: block; width: 100%; max-height: 80vh; border-radius: 14px; background: #000; }
.prose figcaption { margin-top: 8px; text-align: center; font-size: 13.5px; color: var(--kt-text-3); line-height: 1.6; }
.prose hr { border: 0; border-top: 1px solid var(--kt-border-strong); margin: 2.4em 0; }
.table-wrap { overflow-x: auto; margin: 0 0 1.6em; -webkit-overflow-scrolling: touch; }
.prose table { border-collapse: collapse; width: 100%; font-size: 15px; line-height: 1.6; }
.prose th, .prose td { border: 1px solid var(--kt-border-strong); padding: 10px 14px; text-align: left; vertical-align: top; min-width: 6em; }
.prose th { background: var(--kt-surface-2); font-weight: 700; white-space: nowrap; }
.ta-center { text-align: center !important; } .ta-right { text-align: right !important; }
.prose--small { font-size: 14.5px; line-height: 1.8; }
.prose--small p { margin-bottom: 0.8em; }
.prose--intro { font-size: 16px; margin-bottom: 28px; }
@media (max-width: 520px) { .prose pre { font-size: 13px; padding: 16px; } }

