@import url('https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@300;400;600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Merriweather:wght@700&display=swap');

/* -----------------------------
   Global reset & base styles
------------------------------ */

* {
    box-sizing: border-box;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background-image: url("/assets/textures/noisy.png");
    background-repeat: repeat;
    background-size: auto;
    opacity: 0.22;
    z-index: 9999;
}

/* Outer background (under the texture) */
body {
    margin: 0;
    font-family: "Source Sans 3", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background-color: #f7f4ed;
    /* soft cream */
    color: #222;
    line-height: 1.6;
}

/* Global headings: use Merriweather everywhere */
h1,
h2,
h3,
h4 {
    font-family: "Merriweather", serif;
}

/* Page-level headings (articles, contributors, posters, etc.) */
h1 {
    font-size: 2.2rem;
    margin-bottom: 0.2rem;
    text-shadow: 0.2rem 0.2rem 0.3rem #d4cfc4;
}

/* Section headings (e.g., Articles, Contributors) */
h2 {
    font-size: 1.6rem;
    margin: 0 0 0.5rem;
}

/* Smaller, all-caps subheadings */
h3 {
    font-size: 1.2rem;
    margin: 0 0 0.5rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

/* Global body text defaults */
main p {
    font-size: 1.2rem;
    margin: 0 0 1rem;
    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
}


/* -----------------------------
   Links
------------------------------ */

/* Reset link appearance globally */
a {
    color: inherit;
    text-decoration: none;
}

/* Simple hover underline everywhere */
a:hover {
    text-decoration: underline;
}

/* Don’t underline images themselves */
a:hover img {
    text-decoration: none;
}


/* -----------------------------
   Site chrome: header, nav, main, footer
------------------------------ */

header {
    padding: 1.5rem 2rem;
    border-top: 1px solid #ddd;
    background: #fffaf2;

}

/* Site title in header */
header h1 {
    font-size: 2rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

/* Optional subheading in header */
header h3 {
    font-size: 1.7rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

header a {
    text-decoration: none;
    color: inherit;
}

nav {
    margin-top: 0.5rem;
}

header nav a {
    margin-right: 1rem;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

/* 
nav a {
    margin-right: 1rem;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
} */

/* Inner content panel */
main {
    max-width: 1100px;
    margin: 2rem auto 4rem;
    background-color: #fffaf2;
    /* slightly lighter warm paper */
    padding: 2rem 2rem 3rem;
    /* border: 1px solid #e3ded3; */
    border-radius: 12px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}

/* Footer */
footer {
    /* border-top: 1px solid #e0d9cc; */
    padding: 0rem 2rem;
    background: #fffaf2;
    display: block;
    width: 100%;
    text-align: right !important;
    /* FORCE right-alignment */
}

footer .tagline {
    display: inline-block;
    /* so alignment responds cleanly */
    font-family: "Merriweather", serif;
    font-size: 1.4rem;
    letter-spacing: 0.03em;
    color: rgba(0, 0, 0, 0.32);
    /* subtle, ghost-like */
    opacity: 0.7;
    /* gives a quiet, faded presence */
    margin: 0;
    transition: opacity 0.35s ease;
    /* smooth reveal */
    text-shadow: 0 1px 1px rgba(255, 255, 255, 0.45);
    /* blends into the paper */
    pointer-events: auto;
}

/* Reveal effect on hover */
footer .tagline:hover,
footer .tagline:focus {
    opacity: 1;
    /* soft reveal */
    color: rgba(0, 0, 0, 0.5);
    /* still subtle, just clearer */
}


/* -----------------------------
   Homepage intro, hero & article list
------------------------------ */

/* Intro ("About this zine") */
.intro {
    margin-bottom: 2.5rem;
}

/* Hero is a vertical stack of poster rows */
.hero {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
    margin-bottom: 3rem;
    border-bottom: 1px solid #ddd;
}

/* Each poster row: text on left, poster on right */
.poster-row {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr);
    gap: 2rem;
    align-items: start;
}

/* Text block next to each poster */
.poster-text h3 {
    margin-bottom: 0.5rem;
}

.poster-text {
    align-self: end;
}

.poster-inline-link {
    margin-top: 0.5rem;
    font-size: 0.95rem;
    margin-bottom: 2rem;
}

/* Hero poster figure */
.hero-poster {
    margin: 0;
    text-align: center;
}

/* Large poster image styling */
img.poster-large {
    max-width: 100%;
    height: auto;
    display: block;
    border: 4px solid #222;
    box-shadow: 4px 4px 0 #222;
}

.hero-poster figcaption {
    margin-top: 0.5rem;
    font-size: 0.85rem;
    margin-bottom: 2rem;
}

/* Mobile stacking */
@media (max-width: 768px) {
    .poster-row {
        grid-template-columns: 1fr;
    }
}

/* Homepage article listing block */
.article-listing {
    /* margin-top: 1rem; */
    padding-bottom: 1rem;
    border-bottom: 1px solid #ddd;
}

.article-list {
    list-style: none;
    padding: 0;
    margin: 1rem 0 0;
}

.article-list-item {
    margin-bottom: 0.5rem;
}

.article-list-item a {
    font-weight: 600;
}

/* Homepage “Articles” section: make titles more prominent */
.article-listing .article-list-item a {
    font-size: 1.1rem;
    /* bigger than body text */
    font-weight: 200;
    /* keep them strong */
    font-family: "Merriweather", serif;
    display: inline-block;
    margin-bottom: 0.1rem;
}

.article-tag {
    margin-left: 0.5rem;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 0.1rem 0.3rem;
    border: 1px solid #222;
}


/* -----------------------------
   Article pages
------------------------------ */

/* Layout: sidebar + content */
.page {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 2.5rem;
    align-items: start;
}

.sidebar {
    padding: 1rem;
    background: ##fffaf2;
    border: 1px solid #e0d9cc;
    border-radius: 4px;
}

.sidebar img {
    display: block;
    width: 100%;
    border-radius: 2px;
    border: 2px solid #222;
}

.sidebar-caption {
    font-size: 0.8rem;
    margin-top: 0.5rem;
    color: #555;
}

/* Article text column */
.content {
    max-width: 42rem;
    border-bottom: 1px solid #ddd;
}

/* Article header area (title, subtitle, byline, meta) */
.article-header h1 {
    /* Uses global h1 settings (Merriweather, size, shadow) */
}

.article-header {
    margin: 0;
    padding: 2rem 0.2rem;
}

.article-subtitle {
    margin: 0 0 0.4rem;
    font-size: 1.05rem;
    font-style: italic;
    color: #444;
}

.article-byline {
    margin: 0 0 0.4rem;
    font-size: 0.95rem;
    color: #555;
}

.article-byline a {
    font-weight: 500;
}

.article-reading {
    margin: 0 0 0.8rem;
    font-size: 0.85rem;
    color: #777;
    text-align: right;
    font-style: italic;
}

.article-meta {
    margin: 0 0 1.5rem;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.11em;
    color: #666;
}

/* Drop cap on first paragraph after the header */
.content>p:first-of-type::first-letter {
    initial-letter: 3 2;
    font-family: "Merriweather", serif;
    font-weight: 700;
    margin-right: 0.3rem;
    opacity: 0.9;
}

.article-references-link {
    margin: 0.5rem 0 0.5rem;
    text-align: right;
    font-size: 1.15rem;
    font-weight: 750;
    /* bold instead of italic */
    color: #666;
    /* still subtle */
}

.article-references-link a {
    font-weight: 600;
    /* ensure the link text stays bold */
    text-decoration: none;
}

.article-references-link a:hover {
    text-decoration: underline;
}

.reference-header {
    margin: 0;
    padding: 1.5rem 0 1.2rem 0;
    /* no left/right padding, controlled spacing below */
}

.references-title {
    margin: 0;
    padding: 0;
    text-align: left;
    /* makes alignment explicit */
}

.reference-for {
    margin: 0;
    padding: 0;
    color: #666;
    text-align: left;
    /* aligns with first line of body */
    margin-bottom: 0.5rem;
    /* optional for breathing room */
}

/* MLA-style references: hanging indent, subtle spacing */
.references-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.references-list li {
    margin: 0 0 1rem 0;
    padding: 0;

    /* hanging indent */
    text-indent: -1.5rem;
    /* pulls first line left */
    padding-left: 1.5rem;
    /* indents the rest of the lines */

    line-height: 1.5;
    font-size: 1.2rem;
    color: #333;
    /* slightly darker than your body text for readability */
}

/* keep hyperlinks consistent with rest of the site */
.references-list a:hover {
    text-decoration: underline;
}

/* -----------------------------
   Contributors (index & profiles)
------------------------------ */

/* Contributors index page (/contributors/) */
.contributors-index h2 {
    /* Inherits h2 styles (Merriweather) */
}

.contributors-intro {
    max-width: 42rem;
    margin-bottom: 2rem;
}

.contributors-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.contributors-list-item {
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #ddd;
}

.contributors-list-item a {
    font-weight: 600;
}

.contributor-role-inline {
    display: inline-block;
    margin-left: 0.5rem;
    font-size: 0.8rem;
    color: #666;
}

/* Individual contributor profile (/contributors/<slug>/) */
.contributor-profile h1 {
    /* Inherits global h1 (Merriweather, size, shadow) */
}

/* Contributor profile layout: sidebar headshot + main bio */
.contributor-profile {
    max-width: 60rem;
    margin: 0 auto;
}

.contributor-layout {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 2rem;
    align-items: start;
}

.contrib-sidebar {
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
}

.contrib-sidebar img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 4px;
    border: none;
    padding-top: 2rem;
    /* your alignment tweak */
}

.contrib-headshot-credit {
    font-size: 0.8rem;
    color: #666;
    margin-top: 0.5rem;
}

.contrib-main {
    max-width: 42rem;
}

.contributor-role,
.contributor-pronouns {
    margin: 0;
    font-size: 0.95rem;
    color: #666;
}

.contributor-bio {
    margin-top: 1.5rem;
    max-width: 40rem;
}


/* -----------------------------
   Posters pages (/posters/)
------------------------------ */

.poster-page {
    max-width: 60rem;
    margin: 0 auto;
}

.poster-header h1 {
    /* Inherits global h1 */
}

.poster-subtitle {
    margin: 0 0 0.5rem;
    font-size: 1rem;
    /* font-style: italic; */
    color: #555;
}

.poster-meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 0.5rem 1.5rem;
    margin: 1rem 0 2rem;
    padding: 0;
}

.poster-meta dt {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #777;
}

.poster-meta dd {
    margin: 0;
    font-size: 0.95rem;
}

.poster-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr);
    gap: 2rem;
    margin-bottom: 2.5rem;
}

.poster-image img {
    max-width: 100%;
    height: auto;
    border: 4px solid #222;
    box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.15);
    display: block;
}

.poster-image-note {
    font-size: 0.8rem;
    color: #666;
    margin-top: 0.5rem;
}

.poster-description {
    max-width: 38rem;
}

.poster-related h2 {
    font-size: 1.4rem;
    margin-bottom: 0.5rem;
}

.poster-related ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.poster-related li {
    margin-bottom: 0.4rem;
}

.poster-related a {
    font-weight: 500;
}

/* Posters index (/posters/ index page) */
.posters-intro {
    max-width: 42rem;
    margin-bottom: 2rem;
}

.posters-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.posters-list-item {
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #ddd;
}

.poster-title {
    font-weight: 600;
}

.poster-subtitle-inline {
    margin-left: 0.5rem;
    font-size: 0.85rem;
    color: #666;
    font-style: italic;
}


.references-index {
    max-width: 42rem;
    margin: 0 auto 2rem;
}

.references-intro {
    margin-bottom: 1.5rem;
}

.references-index-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.references-index-item {
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #ddd;
}

.references-index-item a {
    font-weight: 600;
}

.references-index-meta {
    margin-left: 0.5rem;
    font-size: 0.85rem;
    color: #666;
}

/* -----------------------------
   Articles index (/articles/)
------------------------------ */

.articles-index h2 {
    /* Inherits h2 styles */
}

.articles-intro {
    max-width: 42rem;
    margin-bottom: 2rem;
}

.articles-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.articles-list-item {
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #ddd;
}

.article-title {
    font-weight: 600;
}


/* -----------------------------
   Responsive tweaks
------------------------------ */

@media (max-width: 768px) {
    .poster-row {
        grid-template-columns: 1fr;
    }

    .page {
        grid-template-columns: 1fr;
    }

    .poster-layout {
        grid-template-columns: 1fr;
    }

    .contributor-layout {
        grid-template-columns: 1fr;
    }

    .contrib-sidebar {
        margin-bottom: 1rem;
    }
}

/* Breadcrumbs */
.breadcrumbs {
    font-size: 0.8rem;
    margin-bottom: 1.2rem;
    color: #777;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.breadcrumbs a {
    font-weight: 500;
}

.breadcrumbs span {
    white-space: nowrap;
}

/* Article bottom navigation (earlier/later links) */
.article-nav {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 2.5rem;
    padding-top: 1rem;
    border-top: 1px solid #ddd;
    font-size: 0.9rem;
    color: #555;
}

.article-nav-label {
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.75rem;
    color: #888;
}

.article-nav a {
    font-weight: 600;
}

/* Increase size of article navigation titles only */
.article-nav a.article-nav-link {
    font-size: 1.1rem;
    /* adjust to taste */
    font-weight: 600;
    /* keep your strong look */
    letter-spacing: 0.02em;
    margin: 0;
    /* preserve your spacing fix */
}

.article-nav-prev,
.article-nav-next {
    flex: 1;
}

.article-nav-prev {
    text-align: left;
}

.article-nav-next {
    flex: 1;
    text-align: right;
}

.article-nav-next span,
.article-nav-next a {
    display: block;
}


/* Stack on small screens */
@media (max-width: 768px) {
    .article-nav {
        flex-direction: column;
        align-items: stretch;
    }

    .article-nav-next {
        text-align: left;
    }
}

/* Resources index (/resources/) — match Posters & References styling */

.resources-index {
    max-width: 42rem;
    margin: 0 auto 2rem;
    /* same width and bottom spacing */
}

.resources-intro {
    margin-bottom: 2rem;
    font-size: 1.05rem;
    color: #444;
    /* same soft intro text style */
}

.resources-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.resources-list-item {
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #ddd;
    /* identical divider line */
}

/* Title matches poster index, references index, article index */
.resource-title {
    font-weight: 600;
    font-size: 1rem;
    font-family: "Merriweather", serif;
    display: inline-block;
    margin-bottom: 0.1rem;
}

/* Inline subtitle/meta, identical to poster and historical-posters subtitle styling */
.resource-subtitle-inline {
    margin-left: 0.5rem;
    font-size: 0.85rem;
    color: #666;
    font-style: italic;
}

/* Historical Posters index (/resources/historical-posters/) */

.historical-posters-index {
    max-width: 42rem;
    margin: 0 auto 2rem;
    /* same width + bottom spacing as other indexes */
}

.historical-posters-intro {
    margin-bottom: 2rem;
    font-size: 1.05rem;
    color: #444;
}

.historical-posters-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Match /posters and /references item rhythm */
.historical-posters-item {
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #ddd;
}

/* Title styling like other index titles */
.historical-poster-title {
    font-weight: 600;
    font-size: 1rem;
    /* same ballpark as .poster-title / .article-title */
    font-family: "Merriweather", serif;
}

/* Inline meta like subtitle/role on other indexes */
.historical-poster-meta {
    margin-left: 0.5rem;
    font-size: 0.85rem;
    color: #666;
    font-style: italic;
}

/* --- Hard reset all link colors everywhere --- */
a,
a:visited,
a:active,
a:hover,
a:focus {
    color: #222 !important;
    text-decoration: none;
}

a:hover,
a:focus {
    text-decoration: underline;
}

nav a.nav-invisible,
nav a.nav-invisible:visited,
nav a.nav-invisible:active {
    color: #fffaf2 !important;
    text-decoration: none;
    transition: color 0.3s ease;
}

nav a.nav-invisible:hover,
nav a.nav-invisible:focus {
    color: #e6dfd2 !important;
}