/* tnhec.com */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { background: #FFFDF5; color: #333333; font-family: Georgia, serif; font-weight: 400; line-height: 1.75; }
.category-label { font-family: 'Inter', sans-serif; font-weight: 500; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.08em; color: #8B0000; display: block; margin-bottom: 0.5rem; }
.ornate-rule { border: none; border-top: 1px solid #C9B99A; margin: 0.75rem 0; position: relative; }
.ornate-rule::after { content: ''; display: block; border-top: 3px solid #C9B99A; margin-top: 3px; }
.thin-rule { border: none; border-top: 1px solid #C9B99A; margin-bottom: 1rem; }
.fleuron { text-align: center; font-size: 1.2rem; color: #C9B99A; padding: 1.5rem 0; }
.masthead { max-width: 800px; margin: 0 auto; padding: 2rem 2rem 0; text-align: center; }
.masthead-inner { }
.edition-badge { font-family: 'Inter', sans-serif; font-weight: 500; font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.08em; color: #555555; border: 2px solid #1A1A1A; display: inline-block; padding: 2px 10px; font-variant: small-caps; margin-bottom: 0.5rem; }
.masthead-title { font-family: 'Playfair Display', serif; font-weight: 900; font-size: 2.4rem; color: #1A1A1A; line-height: 1.1; margin-bottom: 0.35rem; }
.masthead-date { font-size: 0.85rem; color: #555555; margin-bottom: 0.5rem; }
.front-page { max-width: 800px; margin: 0 auto; padding: 1.5rem 2rem; }
.front-inner { }
.feature-headline { font-family: 'Playfair Display', serif; font-weight: 700; font-size: 2rem; color: #1A1A1A; line-height: 1.15; margin-bottom: 0.5rem; }
.feature-meta { font-size: 0.8rem; color: #555555; margin-bottom: 1.25rem; }
.feature-columns { column-count: 2; column-gap: 2rem; column-rule: 1px solid #C9B99A; text-align: justify; hyphens: auto; }
.drop-cap-text::first-letter { font-family: 'Playfair Display', serif; font-size: 4.5em; float: left; line-height: 0.8; margin-right: 0.08em; color: #8B0000; font-weight: 900; }
.drop-cap-text { font-size: 1.05rem; color: #333333; margin-bottom: 1rem; }
.body-text { font-size: 1.05rem; color: #333333; }
.archive { max-width: 800px; margin: 0 auto; padding: 0 2rem; }
.archive-list { }
.archive-entry { padding: 0.75rem 0; border-bottom: 1px solid #C9B99A; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem; }
.vol-badge { font-family: 'Inter', sans-serif; font-weight: 500; font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.08em; color: #555555; border: 1px solid #555555; padding: 1px 6px; font-variant: small-caps; }
.archive-title { font-family: 'Playfair Display', serif; font-weight: 700; font-size: 1.1rem; color: #1A1A1A; }
.archive-meta { font-size: 0.8rem; color: #555555; line-height: 1.3; }
.mood-icon { font-size: 0.7rem; margin-left: auto; }
.mood-icon.stormy { color: #8B0000; }
.mood-icon.overcast { color: #555555; }
.mood-icon.fog { color: #C9B99A; }
.letters { max-width: 800px; margin: 0 auto; padding: 0 2rem 2rem; }
.letter { background: #F5F0E4; padding: 1.25rem; margin-bottom: 0.75rem; border-left: 3px solid #C9B99A; }
.letter-text { font-style: italic; font-size: 1rem; color: #333333; margin-bottom: 0.35rem; }
.letter-author { font-size: 0.8rem; color: #555555; }
.footer { background: #2C2C2C; color: #C9B99A; }
.footer-inner { max-width: 800px; margin: 0 auto; padding: 2rem; }
.footer-columns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-bottom: 1.5rem; }
.footer-heading { font-family: 'Inter', sans-serif; font-weight: 500; font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.08em; color: #C9B99A; display: block; margin-bottom: 0.5rem; }
.footer-col a { display: block; font-size: 0.85rem; color: #C9B99A; text-decoration: none; padding: 0.15rem 0; }
.footer .ornate-rule { border-color: #555555; }
.footer .ornate-rule::after { border-color: #555555; }
.colophon { font-family: 'Inter', sans-serif; font-weight: 500; font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.08em; color: #555555; text-align: center; margin-top: 0.75rem; }
.footer-copy { font-size: 0.75rem; color: #555555; text-align: center; margin-top: 0.25rem; }
@media (max-width: 640px) { .feature-columns { column-count: 1; } .footer-columns { grid-template-columns: 1fr; } }
.fade-in { opacity: 0; transform: translateY(12px); transition: opacity 0.5s ease, transform 0.5s ease; }
.fade-in.visible { opacity: 1; transform: translateY(0); }
