/*
Theme Name: Haunted Atlas
Theme URI: https://www.thehauntedatlas.org/
Author: The Haunted Atlas
Description: Atmospheric editorial theme for The Haunted Atlas — documented history and reported folklore, mapped with a traveler's eye and a skeptic's care.
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: haunted-atlas
*/

:root{color-scheme:light dark;--paper:#f2efe8;--ink:#161916;--muted:#5e635d;--line:#c8c5bc;--wash:#e6e2d8;--accent:#b7432b;--accent-ink:#8d2f1d;--dark:#18231f;--ghost:#768c82;--shadow:0 22px 60px rgba(25,31,26,.13)}
@media(prefers-color-scheme:dark){:root{--paper:#111512;--ink:#e9ebe4;--muted:#a8afa8;--line:#343b36;--wash:#1b211d;--accent:#ef7655;--accent-ink:#ff9b7e;--dark:#0a0e0c;--ghost:#8aa598;--shadow:0 26px 70px rgba(0,0,0,.35)}}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;line-height:1.55}button,input{font:inherit}a{color:inherit}img{max-width:100%;display:block}.shell{min-height:100vh;display:flex;flex-direction:column}.shell main{flex:1}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px max(22px,calc((100vw - 1180px)/2));background:color-mix(in srgb,var(--paper) 93%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.home-link,.nav a,.nav button{border:0;background:none;color:var(--ink);padding:7px 0;cursor:pointer;text-decoration:none}
.home-link{font-family:'Libre Caslon Display',serif;font-size:21px}
.nav{display:flex;gap:22px;align-items:center}
.nav a,.nav button{font-size:13px;font-weight:600}
.nav a:hover,.nav button:hover,.home-link:hover{color:var(--accent)}
.search-toggle{display:flex!important;align-items:center;gap:7px}
.search-toggle svg{width:16px}
.search-panel{display:none;max-width:1180px;margin:0 auto;padding:14px 22px 0;width:100%}
.search-panel.open{display:block}
.search-panel input{width:100%;border:1px solid var(--line);background:var(--wash);color:var(--ink);padding:13px 16px;border-radius:2px;outline:none}
.search-panel input:focus{border-color:var(--accent)}
.home{display:block}
.hero{min-height:610px;display:grid;grid-template-columns:1.08fr .92fr;max-width:1180px;margin:0 auto;padding:56px 22px 68px;gap:34px;align-items:stretch}
.hero-copy{position:relative;padding:34px 20px 34px 0;display:flex;flex-direction:column;justify-content:center}
.hero-copy:before{content:'◌';position:absolute;top:-8px;left:-30px;font-family:serif;font-size:140px;color:var(--wash);z-index:-1}
.kicker{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink)}
.kicker:before{content:'';width:32px;height:1px;background:var(--accent)}
h1,h2,h3{font-family:'Libre Caslon Display',serif;font-weight:400;line-height:1.04;margin:0}
.hero h1{font-size:clamp(54px,7.3vw,96px);max-width:650px;margin:18px 0 24px;letter-spacing:-.035em}
.hero-copy>p{font-size:18px;max-width:560px;color:var(--muted);margin:0 0 30px}
.cta{align-self:flex-start;border:0;background:var(--accent);color:white;padding:13px 18px;font-weight:600;cursor:pointer;border-radius:2px;text-decoration:none;display:inline-block}
.cta:hover{background:var(--accent-ink)}
.hero-visual{position:relative;min-height:490px;overflow:hidden;background:var(--dark)}
.hero-visual img{width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(1.05)}
.hero-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(4,9,7,.86))}
.hero-caption{position:absolute;z-index:2;bottom:24px;left:24px;right:24px;color:#fff}
.hero-caption span{display:block;font-size:12px;opacity:.72;margin-bottom:5px}
.hero-caption strong{font-family:'Libre Caslon Display',serif;font-weight:400;font-size:25px}
.issue-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 22px}
.issue-strip-inner{max-width:1180px;margin:auto;display:flex;gap:20px;justify-content:space-between;font-size:12px;color:var(--muted)}
.issue-strip b{color:var(--ink);font-weight:600}
.section{max-width:1180px;margin:0 auto;padding:72px 22px;scroll-margin-top:70px}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px}
.section h2{font-size:clamp(38px,5vw,62px);letter-spacing:-.025em}
.section-head p{max-width:400px;color:var(--muted);margin:0}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:28px}
a.card{color:inherit;text-decoration:none}
.card{grid-column:span 4;display:flex;flex-direction:column;border-top:1px solid var(--ink);padding-top:12px;cursor:pointer}
.card.featured{grid-column:span 8}
.card-image{aspect-ratio:4/3;overflow:hidden;background:var(--wash);margin-bottom:17px}
.card.featured .card-image{aspect-ratio:16/8.7}
.card img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;filter:saturate(.82) contrast(1.04)}
.card:hover img{transform:scale(1.025)}
.card-meta{display:flex;justify-content:space-between;gap:15px;font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}
.card h3{font-size:clamp(25px,3vw,39px);margin:12px 0 9px}
.card p{margin:0;color:var(--muted)}
.card .read{margin-top:auto;padding-top:18px;font-weight:600;color:var(--accent-ink)}
.manifesto{margin-top:70px;background:var(--dark);color:#eef2ed;padding:56px;display:grid;grid-template-columns:.75fr 1.25fr;gap:50px;scroll-margin-top:90px}
.manifesto h2{font-size:44px}
.manifesto p{margin:0;color:#c9d2cc;font-size:17px}
.manifesto strong{color:#fff}
.newsletter{padding:68px 22px;background:var(--wash);text-align:center}
.newsletter h2{font-size:44px;margin-bottom:12px}
.newsletter p{color:var(--muted);margin:0 auto 20px;max-width:520px}
.newsletter a{display:inline-block;text-decoration:none;background:var(--ink);color:var(--paper);padding:12px 18px;border-radius:2px;font-weight:600}
.article-hero{max-width:1180px;margin:0 auto;padding:58px 22px 34px}
.back{border:0;background:none;color:var(--accent-ink);padding:0;margin-bottom:34px;cursor:pointer;font-weight:600;text-decoration:none;display:inline-block;font-size:15px}
.article-hero h1{font-size:clamp(42px,6.2vw,78px);max-width:1000px;letter-spacing:-.03em;margin:14px 0 18px}
.dek{font-size:19px;color:var(--muted);max-width:760px;margin:0}
.article-meta{display:flex;gap:18px;margin-top:22px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);flex-wrap:wrap}
.article-image{max-width:1180px;height:min(58vw,650px);margin:0 auto;position:relative;overflow:hidden;background:var(--wash)}
.article-image img{width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.04)}
.image-credit{position:absolute;right:12px;bottom:10px;background:rgba(6,9,7,.78);color:white;padding:5px 8px;font-size:10px;text-decoration:none}
.article-layout{max-width:990px;margin:0 auto;padding:58px 22px 96px;display:grid;grid-template-columns:190px minmax(0,680px);gap:70px}
.toc{position:sticky;top:80px;align-self:start;font-size:12px}
.toc strong{display:block;text-transform:uppercase;letter-spacing:.12em;margin-bottom:10px}
.toc a{display:block;color:var(--muted);text-decoration:none;padding:5px 0}
.toc a:hover{color:var(--accent)}
.prose{font-family:Georgia,'Times New Roman',serif;font-size:18px;line-height:1.78;min-width:0}
.prose>p:first-child{font-size:22px;line-height:1.58}
.prose>p:first-child:first-letter{float:left;font-family:'Libre Caslon Display',serif;font-size:83px;line-height:.74;padding:13px 8px 0 0;color:var(--accent)}
.prose h2{font-size:37px;margin:62px 0 18px;scroll-margin-top:90px}
.prose em{font-style:italic}
.prose a{color:var(--accent-ink)}
.prose .faq-block{border-top:1px solid var(--ink);margin-top:68px;padding-top:34px}
.faq-block h2{margin-top:0}
.faq-block details{border-bottom:1px solid var(--line)}
.faq-block summary{font-family:'DM Sans',sans-serif;font-weight:600;cursor:pointer;padding:18px 30px 18px 0;list-style:none;position:relative;font-size:17px}
.faq-block summary::-webkit-details-marker{display:none}
.faq-block summary:after{content:'+';position:absolute;right:3px;font-size:22px;color:var(--accent)}
.faq-block details[open] summary:after{content:'–'}
.faq-block details p{margin:0 0 20px;font-size:17px}
.truth-note{font-family:'DM Sans',sans-serif;font-size:14px;color:var(--muted);border-left:2px solid var(--accent);padding:3px 0 3px 16px;margin:0 0 36px}
.footer{border-top:1px solid var(--line);padding:30px 22px;color:var(--muted);font-size:12px}
.footer-inner{max-width:1180px;margin:auto;display:flex;justify-content:space-between;gap:20px}
.empty{text-align:center;padding:60px 20px;color:var(--muted)}
.archive-head{max-width:1180px;margin:0 auto;padding:58px 22px 10px}
.archive-head h1{font-size:clamp(38px,5vw,60px);letter-spacing:-.025em;margin:14px 0 10px}
.archive-head p{color:var(--muted);max-width:640px;margin:0}
.notfound{max-width:760px;margin:0 auto;padding:90px 22px;text-align:center}
.notfound h1{font-size:clamp(44px,6vw,72px);margin-bottom:16px}
.notfound p{color:var(--muted);margin:0 0 26px}
.pagination{max-width:1180px;margin:0 auto;padding:0 22px 70px;display:flex;gap:12px}
.pagination .page-numbers{border:1px solid var(--line);padding:9px 15px;text-decoration:none;font-weight:600;font-size:14px}
.pagination .page-numbers.current{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.aligncenter{margin-left:auto;margin-right:auto}.alignwide{max-width:1180px}
@media(max-width:800px){
.topbar{padding:12px 18px}
.nav a:not(.search-toggle),.nav button:not(.search-toggle){display:none}
.hero{grid-template-columns:1fr;padding:38px 18px 48px;min-height:0;gap:20px}
.hero-copy{padding:18px 0}
.hero h1{font-size:57px}
.hero-visual{min-height:420px}
.section{padding:55px 18px}
.section-head{display:block}
.section-head p{margin-top:15px}
.grid{display:block}
.card,.card.featured{margin-bottom:38px}
.card .card-image,.card.featured .card-image{aspect-ratio:16/10}
.manifesto{grid-template-columns:1fr;padding:34px 24px;gap:20px}
.article-hero{padding:36px 18px 28px}
.article-hero h1{font-size:44px}
.article-image{height:56vw;min-height:290px}
.article-layout{display:block;padding:44px 20px 74px}
.toc{position:static;border-bottom:1px solid var(--line);padding-bottom:24px;margin-bottom:34px;column-count:2}
.toc strong{column-span:all}
.prose{font-size:17px}
.prose>p:first-child{font-size:20px}
.prose h2{font-size:31px;margin-top:48px}
.footer-inner{display:block}
.footer-inner span{display:block;margin-top:8px}
}
@media(max-width:430px){
.hero h1{font-size:49px}
.hero-visual{min-height:360px}
.issue-strip-inner{display:block}
.issue-strip-inner span{display:block;margin:4px 0}
.toc{column-count:1}
.article-hero h1{font-size:39px}
.manifesto h2,.newsletter h2{font-size:36px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card img{transition:none}}
