:root {
  --bg:      #070707;
  --bg2:     #0e0e0e;
  --bg3:     #141414;
  --gold:    #B8963E;
  --gold2:   #D4AF6A;
  --gold3:   #8B6E2A;
  --cream:   #E8E0D0;
  --muted:   #7A7468;
  --red:     #6B1E2E;
  --border:  rgba(184,150,62,0.15);
  --border2: rgba(184,150,62,0.3);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }

body {
  background: var(--bg);
  color: var(--cream);
  font-family: 'EB Garamond', Georgia, serif;
  font-size: 18px;
  line-height: 1.7;
  overflow-x: hidden;
}

body::after {
  content:'';
  position:fixed;
  inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  pointer-events:none;
  z-index:9999;
  opacity:.5;
}

.ambient {
  position:fixed; inset:0; pointer-events:none; z-index:0;
  background:
    radial-gradient(ellipse 80% 40% at 50% -10%, rgba(184,150,62,0.06) 0%, transparent 60%),
    radial-gradient(ellipse 50% 30% at 80% 50%,  rgba(107,30,46,0.07) 0%, transparent 60%),
    radial-gradient(ellipse 50% 30% at 20% 80%,  rgba(184,150,62,0.04) 0%, transparent 60%);
}

/* NAV */
nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:0 2rem; height:64px;
  display:flex; align-items:center; justify-content:space-between;
  border-bottom:1px solid var(--border);
  background:rgba(7,7,7,0.92);
  backdrop-filter:blur(12px);
}

.nav-logo {
  font-family:'Cinzel Decorative',serif; font-size:1.1rem; font-weight:700;
  color:var(--gold); text-decoration:none; letter-spacing:.05em;
}
.nav-logo span {
  color:var(--cream); opacity:.5; font-size:.75rem; display:block;
  letter-spacing:.2em; font-family:'EB Garamond',serif; font-weight:400;
}

.nav-links { display:flex; gap:2rem; list-style:none; }
.nav-links a {
  font-family:'Cinzel',serif; font-size:.65rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--muted); text-decoration:none; transition:color .3s;
}
.nav-links a:hover { color:var(--gold); }

.nav-search {
  display:flex; align-items:center; gap:8px;
  background:var(--bg3); border:1px solid var(--border);
  border-radius:2px; padding:6px 14px;
}
.nav-search input {
  background:none; border:none; outline:none;
  color:var(--cream); font-family:'EB Garamond',serif;
  font-size:.9rem; width:160px;
}
.nav-search input::placeholder { color:var(--muted); }
.nav-search svg { color:var(--muted); flex-shrink:0; }

.hamburger { display:none; background:none; border:none; cursor:pointer; color:var(--gold); }

.mobile-menu {
  display:none; flex-direction:column; gap:0;
  position:fixed; top:64px; left:0; right:0; z-index:99;
  background:rgba(7,7,7,0.98); border-bottom:1px solid var(--border);
  padding:1rem 0;
}
.mobile-menu.open { display:flex; }
.mobile-menu a {
  font-family:'Cinzel',serif; font-size:.75rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--muted); text-decoration:none;
  padding:.8rem 2rem; transition:color .3s, background .3s;
}
.mobile-menu a:hover { color:var(--gold); background:var(--bg3); }

/* HERO */
.hero {
  position:relative; min-height:100vh; z-index:1;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:8rem 2rem 6rem;
}

.hero-ornament {
  width:120px; height:120px; margin:0 auto 3rem;
  opacity:0; animation:riseIn 1.4s cubic-bezier(.22,1,.36,1) forwards .2s;
}
.hero-ornament svg { width:100%; height:100%; }
.rotating  { animation:spin  40s linear infinite;         transform-origin:center; }
.rotating2 { animation:spin  25s linear infinite reverse; transform-origin:center; }

.hero-eyebrow {
  font-family:'Cinzel',serif; font-size:.65rem; letter-spacing:.35em;
  text-transform:uppercase; color:var(--gold3); margin-bottom:1.2rem;
  opacity:0; animation:riseIn 1s ease forwards .6s;
}
.hero-title {
  font-family:'Cinzel Decorative',serif;
  font-size:clamp(2.8rem,7vw,5.5rem); font-weight:700;
  color:var(--gold); line-height:1.05; letter-spacing:.03em; margin-bottom:.8rem;
  opacity:0; animation:riseIn 1.2s cubic-bezier(.22,1,.36,1) forwards .8s;
  text-shadow:0 0 60px rgba(184,150,62,0.15);
}
.hero-subtitle {
  font-family:'Cinzel',serif; font-size:clamp(.8rem,1.5vw,1rem);
  letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-bottom:2rem;
  opacity:0; animation:riseIn 1s ease forwards 1s;
}
.hero-desc {
  max-width:560px; font-size:1.05rem; font-style:italic;
  color:rgba(232,224,208,.6); line-height:1.9; margin:0 auto 3rem;
  opacity:0; animation:riseIn 1s ease forwards 1.2s;
}
.hero-divider {
  display:flex; align-items:center; gap:1rem; justify-content:center; margin-bottom:3rem;
  opacity:0; animation:riseIn 1s ease forwards 1.4s;
}
.hero-divider::before, .hero-divider::after {
  content:''; width:80px; height:1px;
}
.hero-divider::before { background:linear-gradient(90deg,transparent,var(--gold3)); }
.hero-divider::after  { background:linear-gradient(90deg,var(--gold3),transparent); }
.hero-divider-diamond { width:6px; height:6px; background:var(--gold); transform:rotate(45deg); }

.hero-cta {
  display:inline-flex; align-items:center; gap:10px;
  font-family:'Cinzel',serif; font-size:.7rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--bg); background:var(--gold); padding:14px 32px;
  text-decoration:none; transition:background .3s, transform .2s;
  opacity:0; animation:riseIn 1s ease forwards 1.6s;
}
.hero-cta:hover { background:var(--gold2); transform:translateY(-2px); }

.scroll-indicator {
  position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:8px;
  opacity:0; animation:riseIn 1s ease forwards 2.2s;
}
.scroll-indicator span {
  font-family:'Cinzel',serif; font-size:.55rem; letter-spacing:.3em;
  color:var(--muted); text-transform:uppercase;
}
.scroll-line {
  width:1px; height:40px;
  background:linear-gradient(var(--gold3),transparent);
  animation:scrollLine 2s ease-in-out infinite;
}

/* SECTION HEADERS */
.section-header { text-align:center; margin-bottom:4rem; }
.section-label {
  font-family:'Cinzel',serif; font-size:.6rem; letter-spacing:.35em;
  text-transform:uppercase; color:var(--gold3); margin-bottom:1rem; display:block;
}
.section-title {
  font-family:'Cinzel Decorative',serif;
  font-size:clamp(1.6rem,3vw,2.4rem); color:var(--cream); margin-bottom:1.2rem; font-weight:400;
}
.section-rule { width:60px; height:1px; background:var(--gold3); margin:0 auto; }

/* CATEGORIES */
.categories { position:relative; z-index:1; padding:6rem 2rem; max-width:1200px; margin:0 auto; }
.categories-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:1px; background:var(--border); border:1px solid var(--border);
}
.cat-card {
  background:var(--bg); padding:2.5rem 2rem;
  text-decoration:none; display:flex; flex-direction:column; gap:1rem;
  transition:background .3s; position:relative; overflow:hidden;
}
.cat-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:var(--gold3); transform:scaleX(0); transform-origin:left;
  transition:transform .4s cubic-bezier(.22,1,.36,1);
}
.cat-card:hover { background:var(--bg3); }
.cat-card:hover::before { transform:scaleX(1); }
.cat-icon { width:48px; height:48px; color:var(--gold3); transition:color .3s; }
.cat-card:hover .cat-icon { color:var(--gold); }
.cat-number { font-family:'Cinzel',serif; font-size:.55rem; letter-spacing:.3em; color:var(--muted); opacity:.5; }
.cat-name { font-family:'Cinzel',serif; font-size:1.1rem; color:var(--cream); font-weight:500; letter-spacing:.05em; }
.cat-desc { font-size:.9rem; font-style:italic; color:var(--muted); line-height:1.6; }
.cat-count {
  font-family:'Cinzel',serif; font-size:.6rem; letter-spacing:.2em;
  color:var(--gold3); margin-top:auto; display:flex; align-items:center; gap:8px;
}
.cat-count::before { content:''; width:20px; height:1px; background:var(--gold3); }

/* FEATURED */
.featured {
  position:relative; z-index:1; padding:6rem 2rem;
  background:var(--bg2); border-top:1px solid var(--border); border-bottom:1px solid var(--border);
}
.featured-inner { max-width:1200px; margin:0 auto; }
.featured-grid {
  display:grid; grid-template-columns:1fr 1fr 1fr;
  gap:1px; background:var(--border); border:1px solid var(--border);
}
.feat-card {
  background:var(--bg2); padding:2rem; text-decoration:none;
  display:flex; flex-direction:column; gap:.8rem; transition:background .3s;
}
.feat-card:hover { background:var(--bg3); }
.feat-tag { font-family:'Cinzel',serif; font-size:.55rem; letter-spacing:.25em; text-transform:uppercase; color:var(--gold3); }
.feat-title { font-family:'Cinzel',serif; font-size:1.05rem; color:var(--cream); font-weight:500; line-height:1.4; }
.feat-excerpt { font-size:.9rem; font-style:italic; color:var(--muted); line-height:1.7; flex:1; }
.feat-read {
  font-family:'Cinzel',serif; font-size:.6rem; letter-spacing:.2em; color:var(--gold3);
  display:flex; align-items:center; gap:8px; transition:gap .3s, color .3s;
}
.feat-card:hover .feat-read { gap:14px; color:var(--gold); }
.feat-read::after { content:'→'; }

/* MANIFESTO */
.manifesto {
  position:relative; z-index:1; padding:8rem 2rem;
  text-align:center; max-width:800px; margin:0 auto;
}
.manifesto-quote {
  font-size:clamp(1.3rem,2.5vw,1.8rem); font-style:italic;
  color:rgba(232,224,208,.7); line-height:1.8; margin-bottom:2rem;
}
.manifesto-quote em { font-style:normal; color:var(--gold); }
.manifesto-attr {
  font-family:'Cinzel',serif; font-size:.65rem; letter-spacing:.3em;
  color:var(--muted); text-transform:uppercase;
}

/* FOOTER */
footer {
  position:relative; z-index:1;
  border-top:1px solid var(--border); padding:3rem 2rem; text-align:center;
}
.footer-logo { font-family:'Cinzel Decorative',serif; font-size:1.4rem; color:var(--gold); margin-bottom:.5rem; }
.footer-tagline { font-size:.9rem; font-style:italic; color:var(--muted); margin-bottom:2rem; }
.footer-links {
  display:flex; justify-content:center; gap:2rem; list-style:none;
  margin-bottom:2.5rem; flex-wrap:wrap;
}
.footer-links a {
  font-family:'Cinzel',serif; font-size:.6rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--muted); text-decoration:none; transition:color .3s;
}
.footer-links a:hover { color:var(--gold); }
.footer-copy { font-size:.8rem; color:rgba(122,116,104,.4); font-style:italic; }

/* ARTICLE PAGE */
.article-hero {
  position:relative; z-index:1; padding:8rem 2rem 4rem;
  text-align:center; border-bottom:1px solid var(--border);
}
.breadcrumb {
  font-family:'Cinzel',serif; font-size:.6rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--muted); margin-bottom:2rem;
  display:flex; align-items:center; justify-content:center; gap:.8rem;
}
.breadcrumb a { color:var(--muted); text-decoration:none; transition:color .3s; }
.breadcrumb a:hover { color:var(--gold); }
.breadcrumb span { color:var(--gold3); }

.article-tag {
  font-family:'Cinzel',serif; font-size:.6rem; letter-spacing:.25em;
  text-transform:uppercase; color:var(--gold3); margin-bottom:1.2rem; display:block;
}
.article-title {
  font-family:'Cinzel Decorative',serif;
  font-size:clamp(2rem,5vw,3.8rem); font-weight:700; color:var(--gold);
  line-height:1.1; margin-bottom:1rem;
}
.article-subtitle {
  font-family:'Cinzel',serif; font-size:clamp(.8rem,1.5vw,.95rem);
  letter-spacing:.15em; text-transform:uppercase; color:var(--muted); margin-bottom:2rem;
}
.article-meta {
  display:flex; align-items:center; justify-content:center; gap:2rem; flex-wrap:wrap;
  font-family:'Cinzel',serif; font-size:.6rem; letter-spacing:.15em;
  text-transform:uppercase; color:var(--muted);
}
.article-meta span { display:flex; align-items:center; gap:.5rem; }

.article-image {
  position:relative; z-index:1; max-width:900px; margin:0 auto;
  padding:0 2rem;
}
.article-image img {
  width:100%; aspect-ratio:16/9; object-fit:cover;
  border:1px solid var(--border2); filter:grayscale(20%) contrast(1.05);
}
.article-image-caption {
  font-size:.8rem; font-style:italic; color:var(--muted);
  text-align:center; margin-top:.8rem;
}

.article-body {
  position:relative; z-index:1;
  max-width:760px; margin:0 auto; padding:4rem 2rem;
}

.article-toc {
  background:var(--bg2); border:1px solid var(--border);
  border-left:3px solid var(--gold3); padding:1.5rem 2rem;
  margin-bottom:3rem;
}
.article-toc h4 {
  font-family:'Cinzel',serif; font-size:.7rem; letter-spacing:.25em;
  text-transform:uppercase; color:var(--gold3); margin-bottom:1rem;
}
.article-toc ol { padding-left:1.2rem; }
.article-toc li { margin-bottom:.4rem; }
.article-toc a {
  font-size:.9rem; font-style:italic; color:var(--muted);
  text-decoration:none; transition:color .3s;
}
.article-toc a:hover { color:var(--gold); }

.article-body h2 {
  font-family:'Cinzel',serif; font-size:1.3rem; font-weight:500;
  color:var(--cream); margin:3rem 0 1.2rem; letter-spacing:.05em;
  padding-bottom:.8rem; border-bottom:1px solid var(--border);
}
.article-body h3 {
  font-family:'Cinzel',serif; font-size:1rem; font-weight:500;
  color:var(--gold3); margin:2rem 0 .8rem; letter-spacing:.08em;
}
.article-body p { margin-bottom:1.5rem; color:rgba(232,224,208,.85); }
.article-body em { color:var(--gold3); font-style:italic; }
.article-body strong { color:var(--cream); font-weight:500; }

.article-body blockquote {
  border-left:3px solid var(--gold3); padding:1rem 1.5rem;
  margin:2rem 0; background:var(--bg2);
  font-style:italic; color:var(--muted);
}
.article-body blockquote cite {
  display:block; margin-top:.8rem;
  font-family:'Cinzel',serif; font-size:.65rem; letter-spacing:.15em;
  text-transform:uppercase; color:var(--gold3); font-style:normal;
}

.article-attributes {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:1px; background:var(--border); border:1px solid var(--border); margin:2rem 0;
}
.attr-item { background:var(--bg2); padding:1rem 1.2rem; }
.attr-label {
  font-family:'Cinzel',serif; font-size:.55rem; letter-spacing:.25em;
  text-transform:uppercase; color:var(--gold3); margin-bottom:.3rem; display:block;
}
.attr-value { font-size:.95rem; color:var(--cream); }

.article-sources {
  margin-top:3rem; padding-top:2rem; border-top:1px solid var(--border);
}
.article-sources h4 {
  font-family:'Cinzel',serif; font-size:.7rem; letter-spacing:.25em;
  text-transform:uppercase; color:var(--gold3); margin-bottom:1rem;
}
.article-sources ul { list-style:none; }
.article-sources li {
  font-size:.85rem; font-style:italic; color:var(--muted);
  padding:.3rem 0; border-bottom:1px solid rgba(184,150,62,0.05);
}
.article-sources li::before { content:'· '; color:var(--gold3); }

.related-articles {
  position:relative; z-index:1; padding:4rem 2rem;
  border-top:1px solid var(--border); background:var(--bg2);
}
.related-inner { max-width:1200px; margin:0 auto; }
.related-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1px; background:var(--border); border:1px solid var(--border);
}

/* HUB PAGE */
.hub-hero {
  position:relative; z-index:1; padding:8rem 2rem 4rem;
  text-align:center; border-bottom:1px solid var(--border);
}
.hub-title {
  font-family:'Cinzel Decorative',serif;
  font-size:clamp(2.5rem,6vw,4.5rem); font-weight:700; color:var(--gold);
  margin-bottom:1rem;
}
.hub-desc {
  max-width:600px; margin:0 auto; font-size:1.05rem; font-style:italic;
  color:rgba(232,224,208,.6); line-height:1.9;
}
.hub-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:1px; background:var(--border); border:1px solid var(--border);
}
.hub-card {
  background:var(--bg); padding:1.8rem; text-decoration:none;
  display:flex; flex-direction:column; gap:.6rem; transition:background .3s;
  position:relative; overflow:hidden;
}
.hub-card::after {
  content:'→'; position:absolute; right:1.5rem; top:50%; transform:translateY(-50%);
  color:var(--gold3); opacity:0; transition:opacity .3s, right .3s;
  font-size:1.2rem;
}
.hub-card:hover { background:var(--bg3); }
.hub-card:hover::after { opacity:1; right:1.2rem; }
.hub-card-number {
  font-family:'Cinzel',serif; font-size:.5rem; letter-spacing:.3em;
  color:var(--muted); opacity:.4;
}
.hub-card-name { font-family:'Cinzel',serif; font-size:1rem; color:var(--cream); font-weight:500; }
.hub-card-desc { font-size:.85rem; font-style:italic; color:var(--muted); line-height:1.5; }
.hub-card-tag {
  font-family:'Cinzel',serif; font-size:.55rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--gold3); margin-top:.4rem;
}

/* ANIMATIONS */
@keyframes riseIn {
  from { opacity:0; transform:translateY(20px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes spin {
  from { transform:rotate(0deg); }
  to   { transform:rotate(360deg); }
}
@keyframes scrollLine {
  0%   { transform:scaleY(0); transform-origin:top;    opacity:1; }
  50%  { transform:scaleY(1); transform-origin:top;    opacity:1; }
  51%  { transform:scaleY(1); transform-origin:bottom; }
  100% { transform:scaleY(0); transform-origin:bottom; opacity:0; }
}

.reveal { opacity:0; transform:translateY(30px); transition:opacity .8s ease, transform .8s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* RESPONSIVE */
@media (max-width:900px) {
  .featured-grid { grid-template-columns:1fr 1fr; }
  .nav-links, .nav-search { display:none; }
  .hamburger { display:block; }
}
@media (max-width:600px) {
  .featured-grid, .categories-grid { grid-template-columns:1fr; }
}
