/* Modern minimalist editorial — flat, near-white, single accent */

body {
    font-family: 'Geist', system-ui, -apple-system, 'Helvetica Neue', sans-serif;
    color: #0a0a0a;
    background: #fafafa;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.dark body {
    color: #fafafa;
    background: #0a0a0a;
}

.smallcaps {
    font-family: 'Geist', system-ui, sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 500;
    font-size: 0.7rem;
}

.hairline { border-top: 1px solid #e5e5e5; }
.dark .hairline { border-top-color: #27272a; }

.masthead-title {
    font-family: 'DM Serif Display', Georgia, serif;
    font-weight: 400;
    letter-spacing: -0.02em;
    line-height: 1;
}

.link-accent {
    color: #a8201a;
    text-decoration: none;
    border-bottom: 1px solid currentColor;
    padding-bottom: 1px;
    transition: opacity .15s;
}
.link-accent:hover { opacity: 0.7; }
.dark .link-accent { color: #fb7185; }

/* Post cards (homepage grid) */
.post-card {
    display: block;
    text-decoration: none;
    color: inherit;
    transition: opacity .2s;
}
.post-card:hover { opacity: 0.85; }
.post-card .banner {
    aspect-ratio: 3 / 2;
    background: #f0f0f0;
    overflow: hidden;
    border-radius: 4px;
    margin-bottom: 1rem;
    border: 1px solid #e5e5e5;
}
.dark .post-card .banner {
    background: #18181b;
    border-color: #27272a;
}
.post-card .banner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}
.post-card:hover .banner img {
    transform: scale(1.02);
}
.post-card .banner-empty {
    width: 100%;
    height: 100%;
    background: linear-gradient(0deg, transparent 49%, #e5e5e5 49%, #e5e5e5 51%, transparent 51%);
    background-size: 100% 8px;
    background-repeat: repeat;
    opacity: 0.4;
}
.dark .post-card .banner-empty {
    background: linear-gradient(0deg, transparent 49%, #27272a 49%, #27272a 51%, transparent 51%);
    background-size: 100% 8px;
    background-repeat: repeat;
}
.post-card .meta {
    color: #737373;
    margin-bottom: 0.5rem;
}
.dark .post-card .meta { color: #a3a3a3; }
.post-card .title {
    font-family: 'DM Serif Display', Georgia, serif;
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 1.2;
    letter-spacing: -0.01em;
    margin-bottom: 0.5rem;
    color: #0a0a0a;
}
.dark .post-card .title { color: #fafafa; }
.post-card .dek {
    color: #525252;
    font-size: 0.95rem;
    line-height: 1.55;
}
.dark .post-card .dek { color: #a3a3a3; }
.post-card .section-label {
    color: #a8201a;
    margin-right: 0.5rem;
}
.dark .post-card .section-label { color: #fb7185; }

/* Filter buttons */
.filter-btn {
    color: #737373;
    background: transparent;
    border: none;
    padding: 0.25rem 0.25rem;
    font-family: 'Geist', system-ui, sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 500;
    font-size: 0.7rem;
    transition: color .15s;
    cursor: pointer;
    position: relative;
}
.filter-btn:hover, .filter-btn.active { color: #0a0a0a; }
.filter-btn.active::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 25%;
    right: 25%;
    height: 1px;
    background: #a8201a;
}
.dark .filter-btn { color: #a3a3a3; }
.dark .filter-btn:hover, .dark .filter-btn.active { color: #fafafa; }
.dark .filter-btn.active::after { background: #fb7185; }

.loading-text {
    font-family: 'Geist', system-ui, sans-serif;
    color: #737373;
    font-size: 0.875rem;
}
.error-mark {
    font-family: 'Geist', system-ui, sans-serif;
    font-size: 3rem;
    color: #a8201a;
}
.dark .error-mark { color: #fb7185; }

/* Newsletter inline form */
.newsletter-inline {
    display: flex;
    gap: 0.75rem;
    align-items: baseline;
    flex-wrap: wrap;
    padding: 1.5rem 0;
}
.newsletter-inline label {
    font-family: 'Geist', system-ui, sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 600;
    font-size: 0.7rem;
    color: #0a0a0a;
}
.dark .newsletter-inline label { color: #fafafa; }
.newsletter-inline span {
    color: #737373;
    font-size: 0.95rem;
}
.dark .newsletter-inline span { color: #a3a3a3; }
.newsletter-inline button {
    background: none;
    border: none;
    border-bottom: 1px solid #a8201a;
    padding: 0 0 1px;
    color: #a8201a;
    font-family: 'Geist', system-ui, sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: opacity .15s;
}
.dark .newsletter-inline button { color: #fb7185; border-bottom-color: #fb7185; }
.newsletter-inline button:hover { opacity: 0.7; }

/* Masthead nav row */
.masthead-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0;
    gap: 1rem;
}
.masthead-nav a {
    font-family: 'Geist', system-ui, sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 500;
    font-size: 0.7rem;
    color: #525252;
    transition: color .15s;
}
.masthead-nav a:hover { color: #0a0a0a; }
.dark .masthead-nav a { color: #a3a3a3; }
.dark .masthead-nav a:hover { color: #fafafa; }
.masthead-nav .sep {
    color: #d4d4d4;
    margin: 0 0.5rem;
}
.dark .masthead-nav .sep { color: #404040; }

/* Post body — sans, comfortable reading */
.prose {
    font-family: 'Geist', system-ui, -apple-system, 'Helvetica Neue', sans-serif;
    font-size: 1.125rem;
    line-height: 1.7;
    color: #1f1f1f;
}
.dark .prose { color: #d4d4d4; }
