.poetry-page { position: relative; overflow: hidden; } .poetry-bg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0.12; pointer-events: none; } .poetry-shell { position: relative; z-index: 1; } .poem-stage { margin: 1.5rem 0 2rem; } .poem-main { margin: 0 auto; max-width: 36rem; padding: 2rem 1.75rem; background: rgba(255, 255, 255, 0.72); border: 1px solid rgba(166, 28, 32, 0.15); writing-mode: vertical-rl; text-orientation: mixed; min-height: 18rem; } .poem-main p { margin: 0; font-size: 1.35rem; letter-spacing: 0.14em; line-height: 2; } .poem-main cite, .poem-slip cite { display: block; margin-top: 1rem; font-style: normal; color: var(--ink-soft); font-size: 0.9rem; font-family: 'Noto Sans SC', sans-serif; } .poem-scatter { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; align-items: stretch; margin-bottom: 2rem; } .poem-slip { display: flex; flex-direction: column; justify-content: space-between; height: 100%; padding: 1.25rem 1.1rem; background: rgba(247, 242, 234, 0.95); border-top: 2px solid var(--brand); box-shadow: var(--shadow-soft); box-sizing: border-box; } .poem-slip cite { margin-top: auto; padding-top: 0.85rem; } @media (max-width: 48rem) { .poem-main { writing-mode: horizontal-tb; text-orientation: mixed; min-height: auto; } .poem-scatter { grid-template-columns: 1fr; } }