.inner-page { background: var(--paper); color: var(--ink); }
.inner-page .site-header { color: var(--paper-bright); background: rgba(22, 26, 25, 0.96); }
.inner-main { min-height: 100vh; padding-top: 4.75rem; }
.page-hero { display: grid; min-height: 58svh; align-items: end; padding: clamp(5rem, 12vw, 9rem) var(--page-pad) clamp(3.5rem, 8vw, 6rem); color: var(--paper-bright); background: var(--ink-soft); }
.page-hero h1 { max-width: 11ch; margin: 0; font: 500 clamp(4rem, 13vw, 9rem)/0.78 var(--font-display); letter-spacing: -0.065em; text-wrap: balance; }
.page-hero p { max-width: 40rem; margin: 2rem 0 0; color: rgba(238, 232, 220, 0.7); font: 400 clamp(1.1rem, 2vw, 1.35rem)/1.55 var(--font-display); }

.library { padding: clamp(4rem, 10vw, 8rem) var(--page-pad); }
.library-grid { display: grid; gap: 1.5rem; max-width: 72rem; margin: 0 auto; }
.library-cover { position: relative; min-height: 34rem; overflow: hidden; color: var(--paper-bright); background: #1c2020; }
.library-cover img { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: center 24%; opacity: 0.64; }
.library-cover::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 20%, rgba(14, 17, 16, 0.92)); content: ""; }
.library-copy { position: absolute; z-index: 1; right: 0; bottom: 0; left: 0; padding: clamp(1.5rem, 6vw, 3rem); }
.library-copy h2 { margin: 0; font: 500 clamp(3.25rem, 9vw, 6rem)/0.88 var(--font-display); letter-spacing: -0.05em; }
.library-copy p { max-width: 35rem; color: rgba(238, 232, 220, 0.72); }
.library-meta { display: flex; flex-wrap: wrap; gap: 1rem; margin: 1rem 0 1.75rem; color: var(--ember-bright); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }
.chapters-preview { display: grid; align-content: start; padding: clamp(1.5rem, 5vw, 3rem); border: 1px solid rgba(22, 26, 25, 0.16); background: rgba(238, 232, 220, 0.48); }
.chapters-preview h2 { margin: 0 0 1.5rem; font: 500 2rem var(--font-display); }
.chapter-preview-list { list-style: none; margin: 0; padding: 0; }
.chapter-preview-list li { border-top: 1px solid rgba(22, 26, 25, 0.13); }
.chapter-preview-list a { display: grid; grid-template-columns: 3rem 1fr; gap: 0.75rem; padding: 1rem 0; text-decoration: none; }
.chapter-preview-list span { color: #777e78; font-size: 0.78rem; }
.all-chapters { margin-top: 1.5rem; color: #8e4c21; font-weight: 600; }

.roster { padding: clamp(4rem, 10vw, 8rem) var(--page-pad); }
.portrait-grid { display: grid; gap: 1rem; max-width: 78rem; margin: 0 auto; }
.portrait-card { position: relative; min-height: 72svh; overflow: hidden; color: var(--paper-bright); background: #1d2220; }
.portrait-card img { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: center top; transition: transform 700ms ease; }
.portrait-card:hover img { transform: scale(1.025); }
.portrait-card::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(13, 16, 15, 0.94) 96%); content: ""; }
.portrait-card-copy { position: absolute; z-index: 1; right: 0; bottom: 0; left: 0; padding: clamp(1.5rem, 5vw, 3rem); }
.portrait-card h2 { margin: 0; font: 500 clamp(3.5rem, 9vw, 6rem)/0.9 var(--font-display); letter-spacing: -0.05em; }
.portrait-card p { max-width: 33rem; margin: 1rem 0 0; color: rgba(238, 232, 220, 0.72); }
.team-feature { max-width: 78rem; margin: 1rem auto 0; overflow: hidden; color: var(--paper-bright); background: #1d2220; }
.team-feature img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.team-feature-copy { padding: clamp(1.5rem, 5vw, 3rem); }
.team-feature h2 { margin: 0; font: 500 clamp(3.5rem, 9vw, 6rem)/0.9 var(--font-display); letter-spacing: -0.05em; }
.team-feature p { max-width: 38rem; margin: 1rem 0 0; color: rgba(238, 232, 220, 0.72); }
.field-index { max-width: 78rem; margin: clamp(4rem, 10vw, 8rem) auto 0; }
.field-index h2 { margin: 0 0 2rem; font: 500 clamp(2.5rem, 7vw, 4.8rem)/0.95 var(--font-display); letter-spacing: -0.04em; }
.name-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid rgba(22, 26, 25, 0.18); border-left: 1px solid rgba(22, 26, 25, 0.18); }
.name-grid div { padding: 1rem; border-right: 1px solid rgba(22, 26, 25, 0.18); border-bottom: 1px solid rgba(22, 26, 25, 0.18); }
.name-grid strong, .name-grid span { display: block; }
.name-grid span { margin-top: 0.3rem; color: #69706b; font-size: 0.8rem; }

.gallery-feature { display: grid; min-height: 92svh; color: var(--paper-bright); background: var(--ink); }
.gallery-art { min-height: 55svh; overflow: hidden; }
.gallery-art img { width: 100%; height: 100%; object-fit: cover; }
.gallery-copy { display: flex; align-items: flex-start; flex-direction: column; justify-content: center; padding: clamp(3rem, 8vw, 7rem) var(--page-pad); }
.gallery-copy h2 { margin: 0; font: 500 clamp(3.5rem, 9vw, 7rem)/0.88 var(--font-display); letter-spacing: -0.055em; }
.gallery-copy p { max-width: 36rem; margin: 1.5rem 0 0; color: rgba(238, 232, 220, 0.68); }
.gallery-feature.light { color: var(--ink); background: var(--paper-bright); }
.gallery-feature.light .gallery-copy p { color: #5e6560; }
.gallery-feature.reverse .gallery-art { order: 2; }
.ship-index { display: grid; gap: 1px; padding: clamp(4rem, 10vw, 8rem) var(--page-pad); background: var(--paper); }
.ship-index article { overflow: hidden; background: var(--paper-bright); }
.ship-index img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.ship-index-copy { padding: clamp(1.5rem, 4vw, 3rem); }
.ship-index h3 { margin: 0; font: 500 2rem var(--font-display); }
.ship-index p { color: #5e6560; }

.world-map { display: grid; color: var(--paper-bright); background: var(--ink-soft); }
.world-map-image { min-height: 76svh; background: url("../img/world/tellus-ruins-watercolor.webp") center/cover; }
.world-map-copy { display: flex; align-items: flex-start; flex-direction: column; justify-content: center; padding: clamp(3rem, 9vw, 7rem) var(--page-pad); }
.world-map-copy h2 { margin: 0; font: 500 clamp(3.5rem, 10vw, 7rem)/0.88 var(--font-display); letter-spacing: -0.055em; }
.world-map-copy p { max-width: 35rem; color: rgba(238, 232, 220, 0.7); }
.world-system { padding: clamp(4rem, 10vw, 8rem) var(--page-pad); }
.system-grid { display: grid; gap: 1px; max-width: 72rem; margin: 0 auto; background: rgba(22, 26, 25, 0.16); }
.system-card { padding: clamp(1.5rem, 4vw, 3rem); background: var(--paper-bright); }
.system-card h3 { margin: 0; font: 500 2rem var(--font-display); }
.system-card p { color: #606762; }

.author-layout { display: grid; max-width: 72rem; margin: 0 auto; padding: clamp(4rem, 10vw, 8rem) var(--page-pad); }
.author-photo img { width: 100%; height: 100%; max-height: 48rem; object-fit: cover; object-position: center top; }
.author-copy { padding: clamp(2rem, 6vw, 5rem) 0; }
.author-copy h2 { margin: 0; font: 500 clamp(2.6rem, 7vw, 5rem)/0.95 var(--font-display); letter-spacing: -0.04em; }
.author-copy p { max-width: 38rem; color: #59605b; }

.inner-page .site-footer { color: rgba(238, 232, 220, 0.64); }

@media (min-width: 760px) {
    .name-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .team-feature-copy { display: grid; grid-template-columns: minmax(0, 0.65fr) minmax(20rem, 1.35fr); gap: 2rem; align-items: end; }
    .team-feature p { margin: 0; }
    .ship-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 900px) {
    .library-grid { grid-template-columns: minmax(0, 1.2fr) minmax(22rem, 0.8fr); }
    .portrait-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .portrait-card:last-child:nth-child(odd) { grid-column: 1 / -1; width: calc(50% - 0.5rem); justify-self: center; }
    .gallery-feature, .world-map { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); }
    .gallery-art { min-height: 92svh; }
    .gallery-feature.reverse .gallery-art { order: 2; }
    .system-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .author-layout { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); align-items: center; }
    .author-copy { padding-left: clamp(3rem, 7vw, 7rem); }
}
