/* Page layout only: editor-generated HTML is styled in editorial.css. */
body.article-body { background-image: radial-gradient(ellipse at 85% 9%, #ff2bd610, transparent 35%); }
.article-detail { position: relative; padding-bottom: 5rem; }
.article-navigation { position: absolute; z-index: 2; top: clamp(8rem, 13vh, 11rem); left: 0; right: 0; display: flex; align-items: center; gap: 1.5rem; }
.article-back, .article-top { display: inline-flex; align-items: center; gap: .8rem; min-height: 44px; color: var(--moon-gray); font-size: .68rem; line-height: 1.6; text-decoration: none; transition: color .2s ease; }
.article-back > span, .article-top > span { color: var(--nebula-pink); font-size: 1rem; }
.article-back:hover, .article-top:hover { color: var(--white-star); }
.article-intro { position: relative; isolation: isolate; display: flex; align-items: flex-end; padding-block: clamp(15rem, 25vh, 20rem) clamp(3rem, 6vw, 6rem); }
.article-intro-with-cover { min-height: clamp(36rem, 78svh, 56rem); }
.article-heading { position: relative; z-index: 1; min-width: 0; }
.article-heading > .article-title { max-width: 1120px; }
.article-title { margin: 0 0 1.5rem; color: var(--white-star); font-size: clamp(2.5rem, 5vw, 5.5rem); font-weight: 700; line-height: 1.04; letter-spacing: -.06em; overflow-wrap: anywhere; text-wrap: balance; scroll-margin-top: 8rem; }
.article-standfirst { max-width: 48rem; margin: 1.8rem 0; color: var(--moon-gray); font-size: clamp(1.05rem, 1.7vw, 1.4rem); line-height: 1.8; overflow-wrap: anywhere; }
.article-byline { display: flex; flex-wrap: wrap; gap: .7rem 1.4rem; margin-top: 2.5rem; color: var(--moon-gray); font-size: .7rem; line-height: 1.8; }
.article-byline > :not(:first-child) { padding-left: 1.4rem; border-left: 1px solid var(--journal-line); }
.article-author strong { color: var(--white-star); font-weight: 600; }
.article-cover { position: absolute; z-index: -1; inset: 0; overflow: hidden; pointer-events: none; }
.article-cover img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.article-cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #050508b8 0%, #05050875 55%, #05050833 100%), linear-gradient(180deg, #0505089c 0%, #05050826 30%, #05050880 65%, #050508 100%); }
.article-intro-with-cover .article-standfirst, .article-intro-with-cover .article-byline { color: #d0d2dc; }
.article-reading { padding-block: clamp(1.5rem, 3vw, 3rem) clamp(2.5rem, 6vw, 6rem); }
.article-reading > .editorial-content { width: min(100%, 780px); margin-inline: auto; font-size: clamp(1rem, 1.2vw, 1.125rem); }
.article-ending { display: flex; justify-content: flex-end; padding-block: 2rem; border-block: 1px solid var(--journal-line); }
.article-top { position: fixed; z-index: 90; left: 50%; bottom: max(96px, env(safe-area-inset-bottom)); transform: translateX(-50%); padding: .6rem 1rem; border: 1px solid var(--journal-line); border-radius: 999px; color: var(--white-star); background: #0b0b12f2; box-shadow: 0 4px 24px #0005; white-space: nowrap; }
.article-top[hidden] { display: none; }
.article-missing { min-height: 60vh; padding-block: 15rem 4rem; }
@media (max-width: 699px) {
  .article-detail { padding-bottom: 2rem; }
  .article-navigation { top: 7.5rem; }
  .article-intro { padding-block: 14rem 3rem; }
  .article-intro-with-cover { min-height: 36rem; }
  .article-cover::after { background: linear-gradient(180deg, #05050880 0%, #05050885 30%, #050508cc 70%, #050508 100%); }
  .article-byline { column-gap: 1rem; }
  .article-byline > :not(:first-child) { padding-left: 1rem; }
  .article-author { flex-basis: 100%; }
  .article-author + * { padding-left: 0 !important; border-left: 0 !important; }
  .article-ending { padding-bottom: 4.5rem; }
}
@media print {
  html, body.article-body { color: #111; background: #fff; }
  .site-header, .custom-cursor, .footer, .skip-link, .preview-banner, .article-navigation, .article-ending, .article-top { display: none !important; }
  .article-intro { display: block; min-height: 0; padding: 0; }
  .article-detail { width: 100%; padding: 0; }
  .article-heading { padding: 0 0 1.5rem; }
  .article-title { color: #111; font-size: 32pt; }
  .article-standfirst, .article-byline, .article-author strong { color: #444; }
  .article-cover { display: none; }
  .article-heading, .article-reading { width: 100%; }
  .article-intro-with-cover .article-standfirst, .article-intro-with-cover .article-byline { color: #444; }
  .article-reading { padding: 1.5rem 0; }
}
