.page-blocks { color: #bfd0da; font-size: 1.04rem; line-height: 1.65; }
.page-blocks > * + *, .page-blocks__column > * + * { margin-top: 16px; }
.page-blocks p { margin: 0 0 16px; }
.page-blocks h2, .page-blocks h3, .page-blocks h4 { margin: 28px 0 12px; color: #edf8ff; line-height: 1.3; letter-spacing: -.025em; }
.page-blocks h2 { font-size: clamp(1.25rem,2.2vw,1.65rem); }
.page-blocks h3 { font-size: 1.3rem; }
.page-blocks h4 { font-size: 1.1rem; }
.page-blocks a { color: #22d3ee; text-underline-offset: 3px; }
.page-blocks__columns { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 28px; margin: 24px 0; }
.page-blocks__columns[data-ratio="wide-left"] { grid-template-columns: minmax(0,2fr) minmax(0,1fr); }
.page-blocks__columns[data-ratio="wide-right"] { grid-template-columns: minmax(0,1fr) minmax(0,2fr); }
.page-blocks__column { min-width: 0; }
.page-blocks__column > :first-child { margin-top: 0; }
.page-blocks__image { margin: 24px 0; border: 1px solid #23343e; border-radius: 14px; background: #091924; overflow: hidden; }
.page-blocks__image a { display: block; }
.page-blocks__image img { display: block; width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; transform: none; }
.page-blocks__image figcaption { padding: 13px 16px; color: #91a9b8; font-size: .85rem; line-height: 1.5; }
.page-blocks .math-formula { padding: 16px 20px; margin: 16px 0 24px; border: 1px solid #23404c; border-radius: 12px; background: #0a151c; color: #dceaf0; overflow-x: auto; }
.page-blocks .katex-display { margin: .4em 0; text-align: left; }
.page-blocks .katex-display > .katex { text-align: left; white-space: nowrap; }
.page-blocks .formula-error { color: #ff8a9a; font-size: .85rem; }
.page-blocks--mobile .page-blocks__columns { grid-template-columns: minmax(0,1fr); }
@media(max-width:700px) {
  .page-blocks__columns[data-ratio] { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .page-blocks .math-formula { padding: 12px; font-size: .9rem; }
}
