/*
Theme Name:  Justice for Nijjar — Professional
Theme URI:   https://justicefornjjar.ca
Author:      Nijjar Justice Committee
Description: Professional advocacy website for Hardeep Singh Nijjar — Justice, Truth, Accountability
Version:     2.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License:     GNU General Public License v2 or later
Text Domain: justice-nijjar
*/

/* ============================================================
   CUSTOM PROPERTIES
   ============================================================ */
:root {
  /* Palette */
  --ink:        #070E1A;
  --navy:       #0B1628;
  --navy-2:     #122040;
  --navy-3:     #1C3160;
  --gold:       #C9860E;
  --gold-lt:    #E8A030;
  --gold-pale:  #F5C96A;
  --cream:      #F7F2E8;
  --cream-2:    #EDE6D6;
  --cream-3:    #E2D8C4;
  --white:      #FFFFFF;
  --slate:      #8496AE;
  --slate-lt:   #B8C6D4;
  --red:        #C0392B;

  /* Typography */
  --font-display: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
  --font-body:    'Source Serif 4', 'Georgia', serif;
  --font-ui:      'Barlow', 'Helvetica Neue', sans-serif;
  --font-mono:    'JetBrains Mono', 'Courier New', monospace;

  /* Spacing */
  --max:     1280px;
  --wide:    1440px;
  --gutter:  clamp(1.25rem, 5vw, 3.5rem);
  --section: clamp(4rem, 10vw, 8rem);

  /* Effects */
  --r:       4px;
  --r-md:    8px;
  --r-lg:    16px;
  --shadow:  0 2px 20px rgba(0,0,0,.14);
  --shadow-lg: 0 8px 48px rgba(0,0,0,.28);
  --shadow-xl: 0 20px 80px rgba(0,0,0,.4);
  --glow:    0 0 40px rgba(201,134,14,.25);
  --trans:   .28s cubic-bezier(.4,0,.2,1);
  --trans-slow: .55s cubic-bezier(.4,0,.2,1);

  /* Borders */
  --border:     rgba(201,134,14,.2);
  --border-lt:  rgba(255,255,255,.1);
  --border-dk:  rgba(0,0,0,.1);
}

/* ============================================================
   RESET
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:17px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-body);
  font-size:1rem;line-height:1.8;
  color:var(--navy);background:var(--cream);
  overflow-x:hidden;
  font-feature-settings:'kern','liga','calt';
}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold);text-decoration:none;transition:color var(--trans)}
a:hover{color:var(--gold-lt)}
h1,h2,h3,h4,h5,h6{
  font-family:var(--font-display);font-weight:600;
  line-height:1.15;color:var(--navy);letter-spacing:-.01em;
}
p{margin-bottom:1.3rem}
p:last-child{margin-bottom:0}
ul,ol{padding-left:1.5rem}
li{margin-bottom:.3rem}
blockquote{
  border-left:3px solid var(--gold);
  padding:1.2rem 1.8rem;margin:2rem 0;
  font-style:italic;color:var(--navy-2);
  background:rgba(201,134,14,.05);
  border-radius:0 var(--r) var(--r) 0;
  font-size:1.05rem;
}
strong{font-weight:700}
hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}

/* ============================================================
   UTILITY
   ============================================================ */
.container{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.container--wide{max-width:var(--wide);margin:0 auto;padding:0 var(--gutter)}
.section-pad{padding:var(--section) 0}
.section-pad-sm{padding:calc(var(--section)*.6) 0}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.75rem}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.flex{display:flex;gap:1rem}
.flex-center{display:flex;align-items:center;justify-content:center;gap:1rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Tags / Labels */
.tag{
  display:inline-block;
  font-family:var(--font-ui);font-size:.65rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;
  padding:.3rem .9rem;border:1px solid var(--gold);
  color:var(--gold);border-radius:2px;
}
.tag--light{color:rgba(245,201,106,.85);border-color:rgba(245,201,106,.35)}
.tag--sm{font-size:.6rem;padding:.2rem .65rem}
.tag--solid{background:var(--gold);color:var(--white);border-color:var(--gold)}

/* Section headings */
.section-headline{
  font-size:clamp(2rem,5vw,3.2rem);
  font-weight:700;letter-spacing:-.02em;
  line-height:1.1;
}
.section-sub{
  font-family:var(--font-ui);
  font-size:1rem;color:var(--slate);
  max-width:560px;line-height:1.7;
  margin-top:.75rem;
}
.rule{width:3rem;height:3px;background:var(--gold);margin:1.2rem 0 2rem}
.rule--center{margin-left:auto;margin-right:auto}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--font-ui);font-size:.8rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;
  padding:.9rem 2.2rem;border-radius:var(--r);
  border:2px solid transparent;cursor:pointer;
  transition:all var(--trans);white-space:nowrap;
}
.btn svg{width:14px;height:14px;fill:currentColor;flex-shrink:0}
.btn-gold{background:var(--gold);color:var(--white);border-color:var(--gold)}
.btn-gold:hover{background:var(--gold-lt);border-color:var(--gold-lt);color:var(--white);transform:translateY(-2px);box-shadow:0 8px 24px rgba(201,134,14,.4)}
.btn-ghost-light{background:transparent;color:var(--white);border-color:rgba(255,255,255,.5)}
.btn-ghost-light:hover{background:rgba(255,255,255,.1);border-color:var(--white);color:var(--white)}
.btn-outline-dark{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn-outline-dark:hover{background:var(--navy);color:var(--white)}
.btn-ghost-gold{background:transparent;color:var(--gold);border-color:transparent;padding-left:0;padding-right:0}
.btn-ghost-gold::after{content:' →';display:inline}
.btn-ghost-gold:hover{color:var(--gold-lt);text-decoration:underline}
.btn-sm{padding:.6rem 1.4rem;font-size:.72rem}
.btn-lg{padding:1.1rem 2.8rem;font-size:.88rem}

/* ============================================================
   NOISE TEXTURE OVERLAY
   ============================================================ */
.noise::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  background-repeat:repeat;background-size:200px;
  opacity:.5;z-index:1;
}

/* ============================================================
   HEADER
   ============================================================ */
#site-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  transition:all .35s ease;
}
#site-header .header-bg{
  position:absolute;inset:0;
  background:rgba(7,14,26,.0);
  backdrop-filter:blur(0px);
  transition:all .35s ease;
  border-bottom:1px solid transparent;
}
#site-header.scrolled .header-bg{
  background:rgba(7,14,26,.96);
  backdrop-filter:blur(16px);
  border-bottom-color:var(--border-lt);
}
.header-inner{
  position:relative;z-index:1;
  display:flex;align-items:center;justify-content:space-between;
  height:76px;max-width:var(--max);margin:0 auto;padding:0 var(--gutter);
}
/* Logo */
.logo{display:flex;align-items:center;gap:.8rem;text-decoration:none}
.logo-emblem{
  width:40px;height:40px;flex-shrink:0;
  position:relative;
}
.logo-emblem svg{width:100%;height:100%;fill:var(--gold)}
.logo-wordmark{display:flex;flex-direction:column}
.logo-primary{
  font-family:var(--font-display);font-size:1.05rem;font-weight:700;
  color:var(--white);line-height:1.1;letter-spacing:.01em;
}
.logo-secondary{
  font-family:var(--font-ui);font-size:.6rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--gold);
}
/* Nav */
.nav-wrap{display:flex;align-items:center;gap:.5rem}
#primary-nav{
  display:flex;align-items:center;gap:.1rem;
  list-style:none;padding:0;margin:0;
}
#primary-nav > li{position:relative}
#primary-nav > li > a{
  font-family:var(--font-ui);font-size:.78rem;font-weight:500;
  letter-spacing:.04em;color:rgba(255,255,255,.78);
  padding:.5rem .9rem;border-radius:var(--r);
  display:block;transition:all var(--trans);
}
#primary-nav > li > a:hover,
#primary-nav > li.current-menu-item > a{
  color:var(--white);background:rgba(255,255,255,.1);
}
.nav-cta{
  font-family:var(--font-ui);font-size:.72rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;
  background:var(--gold);color:var(--white);
  padding:.55rem 1.2rem;border-radius:var(--r);
  margin-left:.5rem;transition:all var(--trans);
}
.nav-cta:hover{background:var(--gold-lt);color:var(--white);transform:translateY(-1px)}
/* Mobile toggle */
.burger{
  display:none;background:none;border:none;
  cursor:pointer;padding:.4rem;flex-direction:column;gap:5px;
}
.burger span{display:block;width:24px;height:2px;background:var(--white);border-radius:2px;transition:all .3s}
/* Mobile menu */
#mob-menu{
  display:none;position:absolute;top:76px;left:0;right:0;
  background:var(--ink);border-top:1px solid var(--border-lt);
  padding:1.25rem var(--gutter) 1.5rem;
}
#mob-menu.open{display:block}
#mob-menu ul{list-style:none;padding:0;margin:0}
#mob-menu li a{
  display:block;padding:.75rem 0;
  font-family:var(--font-ui);font-size:.95rem;
  color:rgba(255,255,255,.75);
  border-bottom:1px solid var(--border-lt);
}
#mob-menu li:last-child a{border-bottom:none}

/* ============================================================
   HERO CAROUSEL — offset for header (76px) + ticker (40px)
   ============================================================ */
.hero-carousel{
  position:relative;height:100vh;min-height:680px;overflow:hidden;
  background:var(--ink);
  padding-top:116px; /* 76px header + 40px ticker */
}
.carousel-track{
  display:flex;height:100%;
  transition:transform .9s cubic-bezier(.77,0,.175,1);
}
.carousel-slide{
  position:relative;flex:0 0 100%;width:100%;height:100%;overflow:hidden;
}
.slide-bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;background-repeat:no-repeat;
  transform:scale(1.06);
  transition:transform 6s ease;
}
.carousel-slide.active .slide-bg{transform:scale(1)}
.slide-overlay{
  position:absolute;inset:0;
  background:linear-gradient(
    105deg,
    rgba(7,14,26,.92) 0%,
    rgba(7,14,26,.7) 50%,
    rgba(7,14,26,.3) 100%
  );
}
.slide-content{
  position:absolute;inset:0;display:flex;align-items:center;
  padding-top:76px;
}
.slide-inner{
  max-width:var(--max);margin:0 auto;padding:0 var(--gutter);
  max-width:720px;
  opacity:0;transform:translateY(30px);
  transition:opacity .8s ease .3s, transform .8s ease .3s;
}
.carousel-slide.active .slide-inner{opacity:1;transform:translateY(0)}
.slide-tag{
  display:inline-flex;align-items:center;gap:.6rem;
  margin-bottom:1.5rem;
}
.slide-tag-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);flex-shrink:0}
.slide-tag-text{
  font-family:var(--font-ui);font-size:.7rem;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--gold-pale);
}
.slide-headline{
  font-family:var(--font-display);font-size:clamp(2.4rem,5.5vw,5rem);
  font-weight:700;color:var(--white);line-height:1.05;
  letter-spacing:-.02em;margin-bottom:1.25rem;
}
.slide-headline em{color:var(--gold-pale);font-style:normal}
.slide-body{
  font-family:var(--font-ui);font-size:1rem;color:rgba(255,255,255,.65);
  max-width:540px;line-height:1.8;margin-bottom:2.5rem;
}
.slide-actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
/* Carousel Controls */
.carousel-prev,
.carousel-next{
  position:absolute;top:50%;transform:translateY(-50%);
  z-index:10;background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(8px);
  color:var(--white);width:52px;height:52px;
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all var(--trans);font-size:1.2rem;
}
.carousel-prev:hover,.carousel-next:hover{background:var(--gold);border-color:var(--gold)}
.carousel-prev{left:2rem}
.carousel-next{right:2rem}
/* Dots */
.carousel-dots{
  position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);
  display:flex;gap:.6rem;z-index:10;
}
.carousel-dot{
  width:8px;height:8px;border-radius:50%;
  background:rgba(255,255,255,.3);cursor:pointer;
  transition:all var(--trans);border:none;
}
.carousel-dot.active{background:var(--gold);width:24px;border-radius:4px}
/* Progress bar */
.carousel-progress{
  position:absolute;bottom:0;left:0;height:3px;
  background:var(--gold);width:0%;transition:width linear;z-index:10;
}

/* ============================================================
   ANNOUNCEMENT TICKER — below fixed header
   ============================================================ */
.ticker-wrap{
  position:fixed;
  top:76px; /* sits immediately below the 76px header */
  left:0;right:0;
  z-index:999;
  box-shadow:0 2px 12px rgba(0,0,0,.25);
  transform:translateY(0);
  transition:transform .35s ease, top .35s ease;
}
/* Shift down if mobile menu is open */
.ticker-wrap.menu-open{ top:76px; }
.ticker{
  background:var(--navy-2);
  border-bottom:1px solid rgba(201,134,14,.3);
  border-top:1px solid rgba(201,134,14,.15);
  overflow:hidden;position:relative;
  height:40px;display:flex;align-items:center;
}
.ticker-label{
  flex-shrink:0;
  background:var(--gold);color:var(--white);
  font-family:var(--font-ui);font-size:.62rem;font-weight:800;
  letter-spacing:.16em;text-transform:uppercase;
  padding:0 1.2rem;height:100%;
  display:flex;align-items:center;
  white-space:nowrap;
}
.ticker-track{
  display:flex;gap:2.5rem;
  animation:ticker 32s linear infinite;
  white-space:nowrap;
  padding-left:1.5rem;
}
.ticker-track:hover{ animation-play-state:paused }
.ticker-item{
  font-family:var(--font-ui);font-size:.73rem;
  color:rgba(255,255,255,.65);
  letter-spacing:.02em;
}
.ticker-item a{ color:rgba(255,255,255,.85) }
.ticker-item a:hover{ color:var(--gold) }
.ticker-sep{ color:var(--gold);opacity:.4;font-size:.55rem }
@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ============================================================
   STATS STRIP
   ============================================================ */
.stats-strip{background:var(--navy);border-bottom:1px solid var(--border-lt)}
.stats-grid{
  display:grid;grid-template-columns:repeat(5,1fr);
  max-width:var(--max);margin:0 auto;
}
.stat{
  padding:1.8rem var(--gutter);
  border-right:1px solid var(--border-lt);
  text-align:center;
}
.stat:last-child{border-right:none}
.stat-n{
  font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.4rem);
  font-weight:700;color:var(--gold);display:block;line-height:1;
}
.stat-l{
  font-family:var(--font-ui);font-size:.68rem;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.45);display:block;margin-top:.4rem;
}

/* ============================================================
   SECTION: BIOGRAPHY
   ============================================================ */
.bio-wrap{
  display:grid;grid-template-columns:400px 1fr;
  gap:clamp(2.5rem,7vw,5rem);align-items:start;
}
.bio-portrait-col{position:sticky;top:100px}
.portrait-frame{
  border-radius:var(--r-md);overflow:hidden;
  aspect-ratio:3/4;background:var(--navy-2);
  box-shadow:var(--shadow-xl);
  border:1px solid var(--border-lt);
}
.portrait-frame img{width:100%;height:100%;object-fit:cover}
.portrait-placeholder{
  width:100%;height:100%;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  background:linear-gradient(160deg,var(--navy) 0%,var(--navy-3) 100%);
  gap:1rem;padding:2rem;
}
.portrait-placeholder svg{fill:rgba(201,134,14,.2);width:80px;height:80px}
.portrait-placeholder p{
  font-family:var(--font-ui);font-size:.72rem;
  color:rgba(255,255,255,.25);text-align:center;line-height:1.6;
}
.portrait-caption{
  margin-top:.8rem;font-family:var(--font-ui);font-size:.7rem;
  color:var(--slate);font-style:italic;text-align:center;
}
.bio-facts-panel{
  margin-top:1.25rem;background:var(--navy);
  border-radius:var(--r-md);border:1px solid var(--border-lt);overflow:hidden;
}
.facts-header{
  padding:1rem 1.5rem;background:rgba(201,134,14,.08);
  border-bottom:1px solid var(--border-lt);
  font-family:var(--font-ui);font-size:.7rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--gold);
}
.fact-row{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:.7rem 1.5rem;border-bottom:1px solid var(--border-lt);
  gap:1rem;
}
.fact-row:last-child{border-bottom:none}
.fact-k{font-family:var(--font-ui);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--slate)}
.fact-v{font-family:var(--font-ui);font-size:.82rem;color:var(--white);text-align:right;font-weight:500}

.bio-text h3{font-size:1.35rem;margin:2.2rem 0 .8rem;color:var(--navy)}
.bio-text h3:first-of-type{margin-top:0}
.bio-text p{color:#3A4A5C;font-size:1rem}
.bio-pullquote{
  margin:2.2rem 0;padding:2rem 2.2rem;
  background:var(--navy);border-radius:var(--r-lg);
  position:relative;overflow:hidden;
}
.bio-pullquote::before{
  content:'\201C';font-family:var(--font-display);font-size:9rem;
  color:var(--gold);opacity:.12;position:absolute;
  top:-2rem;left:.5rem;line-height:1;
}
.bio-pullquote p{
  font-family:var(--font-display);font-size:1.3rem;
  font-style:italic;color:var(--white);line-height:1.65;
  position:relative;z-index:1;margin-bottom:.5rem;
}
.bio-pullquote cite{
  font-family:var(--font-ui);font-size:.75rem;
  color:var(--gold);letter-spacing:.08em;
  position:relative;z-index:1;
}

/* ============================================================
   SECTION: CURRENT ISSUES (DARK)
   ============================================================ */
.issues-dark{background:var(--ink)}
.issues-dark .section-headline{color:var(--white)}
.issues-dark .section-sub{color:rgba(255,255,255,.5)}
.issue-card{
  background:var(--navy-2);border:1px solid var(--border-lt);
  border-radius:var(--r-lg);padding:2rem 2rem 1.75rem;
  transition:all var(--trans);position:relative;overflow:hidden;
  cursor:default;
}
.issue-card::after{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--gold),transparent);
  transform:scaleX(0);transform-origin:left;transition:transform var(--trans);
}
.issue-card:hover{border-color:rgba(201,134,14,.35);transform:translateY(-5px);box-shadow:0 16px 48px rgba(0,0,0,.4)}
.issue-card:hover::after{transform:scaleX(1)}
.issue-icon-wrap{
  width:50px;height:50px;border-radius:50%;
  background:rgba(201,134,14,.1);border:1px solid rgba(201,134,14,.2);
  display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem;
}
.issue-icon-wrap svg{width:22px;height:22px;fill:var(--gold)}
.issue-badge{
  display:inline-block;font-family:var(--font-ui);font-size:.6rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;padding:.25rem .65rem;
  border-radius:2px;margin-bottom:.85rem;
}
.badge-red{background:rgba(192,57,43,.15);color:#E74C3C}
.badge-amber{background:rgba(230,126,34,.15);color:#E67E22}
.badge-blue{background:rgba(52,152,219,.15);color:#3498DB}
.badge-purple{background:rgba(142,68,173,.15);color:#9B59B6}
.badge-green{background:rgba(39,174,96,.15);color:#27AE60}
.issue-title{font-size:1.15rem;color:var(--white);margin-bottom:.75rem;line-height:1.35}
.issue-body{font-family:var(--font-ui);font-size:.84rem;color:rgba(255,255,255,.5);line-height:1.72;margin-bottom:1.25rem}
.issue-link{font-family:var(--font-ui);font-size:.78rem;font-weight:600;color:var(--gold);letter-spacing:.04em}
.issue-link:hover{color:var(--gold-lt);text-decoration:underline}

/* ============================================================
   VERTICAL TIMELINE (homepage)
   ============================================================ */
.timeline-v{position:relative;max-width:860px;margin:3.5rem auto 0}
.timeline-v::before{
  content:'';position:absolute;left:50%;top:0;bottom:0;
  width:1px;background:linear-gradient(to bottom,var(--gold),rgba(201,134,14,.05));
  transform:translateX(-50%);
}
.tv-item{
  display:grid;grid-template-columns:1fr auto 1fr;
  gap:0 2.5rem;margin-bottom:3.5rem;align-items:start;
}
.tv-item:last-child{margin-bottom:0}
.tv-date{
  font-family:var(--font-ui);font-size:.75rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold);padding-top:.4rem;
}
.tv-item:nth-child(odd) .tv-date{text-align:right}
.tv-item:nth-child(even) .tv-date{text-align:left;order:3}
.tv-dot{
  width:14px;height:14px;border-radius:50%;
  background:var(--gold);flex-shrink:0;margin-top:.4rem;
  box-shadow:0 0 0 4px rgba(201,134,14,.2),0 0 0 8px rgba(201,134,14,.08);
  position:relative;z-index:1;
}
.tv-card{
  background:var(--white);border-radius:var(--r-md);
  padding:1.4rem 1.6rem;
  box-shadow:0 2px 16px rgba(0,0,0,.07);
  border:1px solid var(--border-dk);
}
.tv-item:nth-child(even) .tv-card{order:1}
.tv-card h4{font-size:.95rem;color:var(--navy);margin-bottom:.4rem}
.tv-card p{font-family:var(--font-ui);font-size:.82rem;color:var(--slate);line-height:1.65;margin:0}

/* ============================================================
   POSTS GRID
   ============================================================ */
.post-card{
  background:var(--white);border-radius:var(--r-md);overflow:hidden;
  box-shadow:0 2px 16px rgba(0,0,0,.07);border:1px solid var(--border-dk);
  transition:all var(--trans);display:flex;flex-direction:column;
}
.post-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.post-thumb{aspect-ratio:16/9;overflow:hidden;background:var(--navy-2)}
.post-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.post-card:hover .post-thumb img{transform:scale(1.05)}
.post-body{padding:1.6rem;flex:1;display:flex;flex-direction:column}
.post-meta-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.8rem}
.post-cat{
  font-family:var(--font-ui);font-size:.62rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold);padding:.2rem .55rem;background:rgba(201,134,14,.1);border-radius:2px;
}
.post-dt{font-family:var(--font-ui);font-size:.73rem;color:var(--slate)}
.post-title{font-size:1.05rem;color:var(--navy);line-height:1.35;margin-bottom:.75rem}
.post-title a{color:inherit}
.post-title a:hover{color:var(--gold)}
.post-excerpt{font-family:var(--font-ui);font-size:.83rem;color:var(--slate);line-height:1.65;flex:1;margin-bottom:1.2rem}
.post-more{font-family:var(--font-ui);font-size:.78rem;font-weight:600;color:var(--gold);margin-top:auto}
.post-more:hover{color:var(--gold-lt);text-decoration:underline}
.post-more::after{content:' →'}

/* ============================================================
   PAGE HERO (inner pages) — offset for header + ticker = 116px
   ============================================================ */
.page-hero{
  position:relative;background:var(--ink);
  padding:clamp(7.5rem,16vw,11rem) var(--gutter) clamp(3.5rem,8vw,5.5rem);
  text-align:center;overflow:hidden;
}
.page-hero-bg{
  position:absolute;inset:0;
  background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(201,134,14,.12) 0%,transparent 70%);
}
.page-hero-rule{
  width:4rem;height:2px;background:var(--gold);
  margin:.85rem auto 1.5rem;opacity:.6;
}
.page-hero h1{
  font-size:clamp(2.2rem,6vw,4rem);color:var(--white);
  letter-spacing:-.025em;max-width:800px;margin:0 auto;
}
.page-hero-sub{
  font-family:var(--font-ui);font-size:1rem;
  color:rgba(255,255,255,.55);max-width:600px;margin:1.25rem auto 0;
  line-height:1.75;
}
.breadcrumb{
  position:absolute;top:88px;left:50%;transform:translateX(-50%);
  font-family:var(--font-ui);font-size:.7rem;color:rgba(255,255,255,.35);
  white-space:nowrap;
}
.breadcrumb a{color:rgba(255,255,255,.5)}
.breadcrumb a:hover{color:var(--gold)}

/* ============================================================
   GALLERY PAGE — NIJJAR TIMELINE
   ============================================================ */
.nijjar-gallery-hero{
  position:relative;
  background:linear-gradient(160deg,var(--ink) 0%,var(--navy-3) 60%,var(--navy-2) 100%);
  padding:calc(116px + 3rem) var(--gutter) 4rem;
  overflow:hidden;text-align:center;
}
.nijjar-gallery-hero::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 60% 60% at 50% 0%,rgba(201,134,14,.1) 0%,transparent 70%);
}
.gallery-timeline-section{ background:var(--cream); }

/* Vertical image timeline */
.img-timeline{
  position:relative;
  max-width:900px;margin:0 auto;
  padding:2rem 0;
}
.img-timeline::before{
  content:'';position:absolute;
  left:50%;top:0;bottom:0;width:2px;
  background:linear-gradient(to bottom,var(--gold),rgba(201,134,14,.05));
  transform:translateX(-50%);
}

.imt-item{
  display:grid;
  grid-template-columns:1fr 60px 1fr;
  gap:0;
  margin-bottom:5rem;
  align-items:center;
  position:relative;
}
.imt-item:last-child{ margin-bottom:0; }

/* odd items: image left, text right */
.imt-item:nth-child(odd) .imt-image{ order:1; padding-right:2.5rem; }
.imt-item:nth-child(odd) .imt-dot  { order:2; }
.imt-item:nth-child(odd) .imt-text { order:3; padding-left:2.5rem; }

/* even items: text left, image right */
.imt-item:nth-child(even) .imt-text { order:1; padding-right:2.5rem; text-align:right; }
.imt-item:nth-child(even) .imt-dot  { order:2; }
.imt-item:nth-child(even) .imt-image{ order:3; padding-left:2.5rem; }

.imt-dot-wrap{
  display:flex;align-items:center;justify-content:center;
  position:relative;z-index:2;
}
.imt-dot{
  width:18px;height:18px;border-radius:50%;
  background:var(--gold);
  border:4px solid var(--cream);
  box-shadow:0 0 0 4px rgba(201,134,14,.25),0 0 0 8px rgba(201,134,14,.08);
  flex-shrink:0;
}
.imt-dot--red{
  background:var(--red);
  box-shadow:0 0 0 4px rgba(192,57,43,.25),0 0 0 8px rgba(192,57,43,.08);
}
.imt-dot--large{ width:24px;height:24px; }

/* Image frame */
.imt-img-frame{
  border-radius:var(--r-md);overflow:hidden;
  box-shadow:var(--shadow-lg);
  background:var(--navy-2);
  position:relative;cursor:pointer;
  transition:transform var(--trans),box-shadow var(--trans);
}
.imt-img-frame:hover{
  transform:scale(1.02);
  box-shadow:var(--shadow-xl);
}
.imt-img-frame img{
  width:100%;display:block;
  transition:transform .5s ease;
  aspect-ratio:4/3;object-fit:cover;
}
.imt-img-frame:hover img{ transform:scale(1.04); }

/* Placeholder image with gradient art */
.imt-placeholder{
  aspect-ratio:4/3;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:.75rem;padding:1.5rem;
  background:linear-gradient(135deg,var(--navy-2) 0%,var(--navy-3) 100%);
  position:relative;overflow:hidden;
}
.imt-placeholder::after{
  content:'';position:absolute;
  bottom:-30%;right:-20%;
  width:200px;height:200px;border-radius:50%;
  background:rgba(201,134,14,.06);
}
.imt-placeholder svg{ fill:rgba(201,134,14,.2);width:48px;height:48px;position:relative;z-index:1; }
.imt-placeholder-label{
  font-family:var(--font-ui);font-size:.7rem;
  color:rgba(255,255,255,.25);text-align:center;
  line-height:1.5;position:relative;z-index:1;
}
.imt-img-badge{
  position:absolute;top:.75rem;left:.75rem;
  background:rgba(7,14,26,.75);backdrop-filter:blur(6px);
  padding:.3rem .75rem;border-radius:2px;
  font-family:var(--font-ui);font-size:.62rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--gold-pale);
  z-index:2;
}
.imt-img-badge--red{ color:#FF9090; }
.imt-img-expand{
  position:absolute;bottom:.75rem;right:.75rem;
  width:32px;height:32px;border-radius:50%;
  background:rgba(255,255,255,.15);backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;
  color:var(--white);font-size:.9rem;
  opacity:0;transition:opacity var(--trans);z-index:2;
  border:1px solid rgba(255,255,255,.2);
}
.imt-img-frame:hover .imt-img-expand{ opacity:1; }

/* Text panel */
.imt-year{
  font-family:var(--font-display);
  font-size:clamp(2rem,4vw,3rem);
  font-weight:700;color:var(--gold);
  opacity:.25;line-height:1;
  margin-bottom:.4rem;
  display:block;
}
.imt-title{
  font-size:1.15rem;color:var(--navy);
  margin-bottom:.65rem;line-height:1.35;
}
.imt-body{
  font-family:var(--font-ui);font-size:.85rem;
  color:var(--slate);line-height:1.75;margin:0;
}
.imt-tags{ display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.85rem; }
.imt-tag{
  font-family:var(--font-ui);font-size:.6rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;
  padding:.2rem .6rem;border-radius:2px;
  background:rgba(201,134,14,.08);color:var(--gold);
  border:1px solid rgba(201,134,14,.2);
}
.imt-tag--red{
  background:rgba(192,57,43,.08);color:var(--red);
  border-color:rgba(192,57,43,.2);
}
.imt-item:nth-child(even) .imt-tags{ justify-content:flex-end; }

/* Upload prompt card */
.upload-prompt{
  background:var(--white);border:2px dashed rgba(201,134,14,.3);
  border-radius:var(--r-lg);padding:2rem;
  text-align:center;margin-top:3rem;
}
.upload-prompt h3{ font-size:1.1rem;color:var(--navy);margin-bottom:.5rem; }
.upload-prompt p{ font-family:var(--font-ui);font-size:.84rem;color:var(--slate);margin-bottom:1.25rem; }

/* Gallery section intro strip */
.gallery-era-strip{
  background:var(--navy);
  padding:1.75rem var(--gutter);
  display:flex;align-items:center;gap:2rem;
  flex-wrap:wrap;
}
.gallery-era-num{
  font-family:var(--font-display);
  font-size:3.5rem;font-weight:700;
  color:var(--gold);opacity:.2;line-height:1;
  flex-shrink:0;
}
.gallery-era-info h3{
  font-size:1.2rem;color:var(--white);
  margin-bottom:.3rem;
}
.gallery-era-info p{
  font-family:var(--font-ui);font-size:.82rem;
  color:rgba(255,255,255,.45);margin:0;line-height:1.6;
}

@media(max-width:768px){
  .img-timeline::before{ left:20px; }
  .imt-item{
    grid-template-columns:40px 1fr;
    grid-template-rows:auto auto;
    gap:1rem 0;
    margin-bottom:3.5rem;
    align-items:start;
  }
  .imt-item:nth-child(odd) .imt-image,
  .imt-item:nth-child(even) .imt-image{ order:2; padding:0; grid-column:2; }
  .imt-item:nth-child(odd) .imt-dot,
  .imt-item:nth-child(even) .imt-dot  { order:1; grid-column:1; grid-row:1/3; align-self:start; padding-top:.3rem; }
  .imt-item:nth-child(odd) .imt-text,
  .imt-item:nth-child(even) .imt-text { order:3; padding:0 0 0 0; text-align:left; grid-column:2; }
  .imt-item:nth-child(even) .imt-tags{ justify-content:flex-start; }
  .imt-dot-wrap{ justify-content:flex-start; padding-left:13px; }
}
.gallery-carousel{
  position:relative;background:var(--ink);overflow:hidden;
  height:75vh;min-height:550px;
}
.gc-track{display:flex;height:100%;transition:transform .8s cubic-bezier(.77,0,.175,1)}
.gc-slide{flex:0 0 100%;position:relative;overflow:hidden}
.gc-slide-img{
  width:100%;height:100%;object-fit:cover;
  transform:scale(1.05);transition:transform 5s ease;
  opacity:.55;
}
.gc-slide.active .gc-slide-img{transform:scale(1)}
.gc-slide-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(7,14,26,.9) 0%,rgba(7,14,26,.2) 60%,transparent 100%);
}
.gc-slide-content{
  position:absolute;bottom:0;left:0;right:0;
  padding:2.5rem var(--gutter);max-width:var(--max);margin:0 auto;
}
.gc-slide-content h2{
  font-size:clamp(1.4rem,3vw,2.2rem);color:var(--white);
  margin-bottom:.5rem;letter-spacing:-.015em;
}
.gc-slide-content p{
  font-family:var(--font-ui);font-size:.85rem;
  color:rgba(255,255,255,.65);max-width:560px;
  margin:0;line-height:1.65;
}
.gc-year-badge{
  display:inline-block;
  font-family:var(--font-ui);font-size:.68rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold-pale);margin-bottom:.75rem;
}
.gc-thumbs{
  position:absolute;right:2rem;top:50%;transform:translateY(-50%);
  display:flex;flex-direction:column;gap:.6rem;z-index:10;
}
.gc-thumb{
  width:56px;height:40px;border-radius:4px;overflow:hidden;
  border:2px solid transparent;cursor:pointer;transition:all var(--trans);
  opacity:.5;
}
.gc-thumb img{width:100%;height:100%;object-fit:cover}
.gc-thumb.active{border-color:var(--gold);opacity:1}
.gc-thumb:hover{opacity:.85}
.gc-arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  z-index:10;width:46px;height:46px;border-radius:50%;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);
  backdrop-filter:blur(8px);color:var(--white);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all var(--trans);font-size:1rem;
}
.gc-arrow:hover{background:var(--gold);border-color:var(--gold)}
.gc-arrow-prev{left:1.5rem}
.gc-arrow-next{right:6rem}

/* ============================================================
   GALLERY TIMELINE GRID
   ============================================================ */
.gallery-timeline{margin-top:4rem}
.gt-year-group{margin-bottom:4rem}
.gt-year-label{
  display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem;
}
.gt-year-num{
  font-family:var(--font-display);font-size:3rem;font-weight:700;
  color:var(--gold);opacity:.25;line-height:1;flex-shrink:0;
}
.gt-year-title{
  font-family:var(--font-display);font-size:1.5rem;color:var(--navy);
}
.gt-year-line{flex:1;height:1px;background:var(--border)}
.gt-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:1.25rem;
}
.gt-item{
  position:relative;border-radius:var(--r-md);overflow:hidden;
  cursor:pointer;group:true;
  box-shadow:0 2px 12px rgba(0,0,0,.1);
}
.gt-item-img{
  aspect-ratio:4/3;width:100%;object-fit:cover;
  transition:transform .5s ease;display:block;
  background:var(--navy-2);
}
.gt-item:hover .gt-item-img{transform:scale(1.06)}
.gt-item-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(7,14,26,.88) 0%,transparent 55%);
  opacity:0;transition:opacity var(--trans);
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:1.2rem 1.3rem;
}
.gt-item:hover .gt-item-overlay{opacity:1}
.gt-item-caption{
  font-family:var(--font-ui);font-size:.8rem;
  color:var(--white);line-height:1.5;
}
.gt-item-date{
  font-family:var(--font-ui);font-size:.65rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold-pale);margin-bottom:.3rem;
}
/* Placeholder image tiles (CSS art) */
.gt-item-placeholder{
  aspect-ratio:4/3;background:var(--navy-2);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.5rem;
}
.gt-item-placeholder span{
  font-family:var(--font-ui);font-size:.7rem;color:rgba(255,255,255,.25);
  text-align:center;padding:0 1rem;
}

/* Lightbox */
.lightbox{
  position:fixed;inset:0;z-index:9999;
  background:rgba(7,14,26,.95);backdrop-filter:blur(12px);
  display:none;align-items:center;justify-content:center;
  padding:2rem;
}
.lightbox.open{display:flex}
.lightbox-inner{
  position:relative;max-width:900px;width:100%;
}
.lightbox-img{
  width:100%;border-radius:var(--r-md);
  max-height:80vh;object-fit:contain;
}
.lightbox-caption{
  margin-top:1rem;font-family:var(--font-ui);font-size:.85rem;
  color:rgba(255,255,255,.7);text-align:center;
}
.lightbox-close{
  position:absolute;top:-2.5rem;right:0;
  background:none;border:none;color:rgba(255,255,255,.6);
  font-size:1.5rem;cursor:pointer;transition:color var(--trans);
}
.lightbox-close:hover{color:var(--white)}

/* ============================================================
   KHALISTAN PAGE — HISTORY SECTIONS
   ============================================================ */
.khalistan-intro{
  background:linear-gradient(135deg,var(--ink) 0%,var(--navy-3) 100%);
  position:relative;overflow:hidden;
}
.khalistan-intro::before{
  content:'';position:absolute;
  top:-20%;right:-10%;
  width:600px;height:600px;border-radius:50%;
  background:radial-gradient(circle,rgba(201,134,14,.08) 0%,transparent 70%);
}
.empire-stats{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:var(--border-lt);
  border:1px solid var(--border-lt);border-radius:var(--r-md);
  overflow:hidden;margin-top:3rem;
}
.emp-stat{
  background:rgba(255,255,255,.03);
  padding:1.8rem 1.5rem;text-align:center;
}
.emp-stat-n{
  font-family:var(--font-display);font-size:2.2rem;font-weight:700;
  color:var(--gold-pale);display:block;line-height:1;
}
.emp-stat-l{
  font-family:var(--font-ui);font-size:.68rem;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(255,255,255,.4);
  display:block;margin-top:.4rem;
}
/* Map placeholder */
.empire-map{
  background:linear-gradient(135deg,var(--navy-2),var(--navy-3));
  border:1px solid var(--border-lt);border-radius:var(--r-lg);
  overflow:hidden;aspect-ratio:16/9;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1rem;position:relative;
}
.empire-map svg{
  position:absolute;inset:0;width:100%;height:100%;opacity:.08;
}
.empire-map-text{
  font-family:var(--font-display);font-size:2rem;color:rgba(255,255,255,.15);
  position:relative;z-index:1;text-align:center;
}
.empire-map-legend{
  position:relative;z-index:1;
  display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem;
}
.map-legend-item{
  display:flex;align-items:center;gap:.5rem;
  font-family:var(--font-ui);font-size:.72rem;color:rgba(255,255,255,.45);
}
.map-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}

/* Horizontal scrolling timeline */
.h-timeline{
  overflow-x:auto;overflow-y:visible;
  padding:2rem 0 3rem;
  scroll-snap-type:x mandatory;
  scrollbar-width:thin;
  scrollbar-color:var(--gold) var(--navy-2);
  -webkit-overflow-scrolling:touch;
}
.h-timeline::-webkit-scrollbar{height:4px}
.h-timeline::-webkit-scrollbar-track{background:var(--navy-2)}
.h-timeline::-webkit-scrollbar-thumb{background:var(--gold);border-radius:2px}
.h-timeline-inner{
  display:flex;gap:0;
  width:max-content;padding:0 var(--gutter);
  position:relative;
}
.h-timeline-inner::before{
  content:'';position:absolute;
  left:var(--gutter);right:var(--gutter);
  top:64px;height:2px;
  background:linear-gradient(to right,var(--gold),rgba(201,134,14,.2));
}
.ht-item{
  width:240px;flex-shrink:0;
  scroll-snap-align:start;
  padding-top:0;
  position:relative;
  padding-right:1px;
}
.ht-dot-row{
  display:flex;align-items:center;height:130px;
  position:relative;justify-content:flex-start;padding-left:1.5rem;
}
.ht-dot{
  width:16px;height:16px;border-radius:50%;
  background:var(--gold);border:3px solid var(--cream);
  box-shadow:0 0 0 4px rgba(201,134,14,.3);
  flex-shrink:0;z-index:1;position:relative;
}
.ht-dot--large{width:22px;height:22px;background:var(--red);border-color:var(--cream)}
.ht-year{
  position:absolute;bottom:0;left:1.5rem;
  font-family:var(--font-display);font-size:1.6rem;font-weight:700;
  color:var(--gold);opacity:.3;line-height:1;
}
.ht-card{
  background:var(--white);border-radius:var(--r-md);
  padding:1.25rem 1.4rem;margin-left:1.5rem;margin-right:1rem;
  box-shadow:0 4px 20px rgba(0,0,0,.08);
  border:1px solid var(--border-dk);min-height:160px;
}
.ht-card.card-red{border-top:3px solid var(--red)}
.ht-card.card-gold{border-top:3px solid var(--gold)}
.ht-card h4{font-size:.9rem;color:var(--navy);margin-bottom:.5rem}
.ht-card p{font-family:var(--font-ui);font-size:.78rem;color:var(--slate);line-height:1.6;margin:0}

/* History sections dark */
.history-dark{background:var(--ink)}
.history-dark .section-headline{color:var(--white)}
.history-dark .rule{background:var(--gold)}
.h-event{
  display:grid;grid-template-columns:80px 1fr;gap:2.5rem;
  padding:2.5rem 0;border-bottom:1px solid var(--border-lt);
  align-items:start;
}
.h-event:last-child{border-bottom:none}
.h-event-year{
  font-family:var(--font-display);font-size:2.2rem;font-weight:700;
  color:var(--gold);opacity:.3;line-height:1;text-align:right;
  padding-top:.25rem;
}
.h-event-body h3{font-size:1.25rem;color:var(--white);margin-bottom:.75rem}
.h-event-body p{font-family:var(--font-ui);font-size:.9rem;color:rgba(255,255,255,.55);line-height:1.8;margin-bottom:.8rem}
.h-event-body p:last-child{margin-bottom:0}
.h-event-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}

/* Atrocity cards (1984) */
.atrocity-card{
  background:var(--navy-2);border:1px solid var(--border-lt);
  border-top:3px solid var(--red);border-radius:var(--r-md);
  padding:2rem;
}
.atrocity-card h3{color:var(--white);margin-bottom:1rem;font-size:1.35rem}
.atrocity-card p{font-family:var(--font-ui);font-size:.88rem;color:rgba(255,255,255,.55);line-height:1.8}
.atrocity-stat-row{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--border-lt);border-radius:var(--r);overflow:hidden;margin-top:1.5rem;
}
.atrocity-stat{
  background:rgba(255,255,255,.03);padding:1.25rem 1rem;text-align:center;
}
.atrocity-stat-n{
  font-family:var(--font-display);font-size:1.8rem;font-weight:700;color:#E74C3C;display:block;line-height:1;
}
.atrocity-stat-l{font-family:var(--font-ui);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.4);display:block;margin-top:.4rem}

/* Nijjar SFJ section */
.nijjar-sfj{background:var(--cream)}
.sfj-grid{
  display:grid;grid-template-columns:1fr 400px;gap:4rem;align-items:start;
}
.sfj-timeline-list{list-style:none;padding:0;margin:0}
.sfj-timeline-list li{
  display:grid;grid-template-columns:80px 1fr;gap:1.5rem;
  padding:1.5rem 0;border-bottom:1px solid var(--border);
  align-items:start;
}
.sfj-timeline-list li:last-child{border-bottom:none}
.sfj-year{
  font-family:var(--font-display);font-size:1.5rem;font-weight:700;
  color:var(--gold);opacity:.5;line-height:1;text-align:center;
}
.sfj-event-title{font-size:1rem;color:var(--navy);margin-bottom:.4rem}
.sfj-event-body{font-family:var(--font-ui);font-size:.84rem;color:var(--slate);line-height:1.7;margin:0}
.sfj-card{
  background:var(--navy);border-radius:var(--r-lg);padding:2rem;
  position:sticky;top:100px;border:1px solid var(--border-lt);
}
.sfj-card h3{color:var(--white);font-size:1.3rem;margin-bottom:1.25rem}
.sfj-role-list{list-style:none;padding:0;margin:0}
.sfj-role-list li{
  display:flex;gap:.75rem;padding:.75rem 0;
  border-bottom:1px solid var(--border-lt);
  font-family:var(--font-ui);font-size:.84rem;color:rgba(255,255,255,.65);
  align-items:flex-start;line-height:1.6;
}
.sfj-role-list li::before{
  content:'◆';color:var(--gold);font-size:.5rem;margin-top:.35rem;flex-shrink:0;
}
.sfj-role-list li:last-child{border-bottom:none}

/* ============================================================
   NEWSLETTER
   ============================================================ */
.newsletter-band{
  background:linear-gradient(110deg,var(--navy-3) 0%,var(--navy) 100%);
  border-top:1px solid var(--border-lt);border-bottom:1px solid var(--border-lt);
}
.nl-inner{
  display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;
}
.nl-headline{font-size:clamp(1.6rem,3.5vw,2.4rem);color:var(--white);margin-bottom:.75rem}
.nl-desc{font-family:var(--font-ui);font-size:.9rem;color:rgba(255,255,255,.55);line-height:1.75;margin:0}
.nl-form{display:flex;flex-direction:column;gap:.85rem}
.nl-row{display:flex;gap:.75rem}
.nl-input{
  flex:1;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.18);border-radius:var(--r);
  padding:.88rem 1.1rem;font-family:var(--font-ui);font-size:.88rem;
  color:var(--white);outline:none;transition:border-color var(--trans);
}
.nl-input::placeholder{color:rgba(255,255,255,.3)}
.nl-input:focus{border-color:var(--gold)}
.nl-note{font-family:var(--font-ui);font-size:.7rem;color:rgba(255,255,255,.35);line-height:1.6}
#nl-msg{display:none}

/* ============================================================
   FOOTER
   ============================================================ */
#site-footer{background:var(--ink);color:rgba(255,255,255,.55);padding:5rem 0 0}
.footer-grid{
  max-width:var(--max);margin:0 auto;padding:0 var(--gutter);
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:3rem;
  padding-bottom:3.5rem;border-bottom:1px solid var(--border-lt);
}
.footer-logo-wrap{display:flex;align-items:center;gap:.75rem;margin-bottom:1.2rem;text-decoration:none}
.footer-logo-wrap svg{fill:var(--gold);width:32px;height:32px;flex-shrink:0}
.footer-logo-wrap span{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--white)}
.footer-tagline{font-family:var(--font-ui);font-size:.82rem;color:rgba(255,255,255,.4);line-height:1.75;margin-bottom:1.75rem}
.footer-socials{display:flex;gap:.65rem}
.social-btn{
  width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);
  display:flex;align-items:center;justify-content:center;
  transition:all var(--trans);color:rgba(255,255,255,.5);
}
.social-btn svg{width:15px;height:15px;fill:currentColor}
.social-btn:hover{background:var(--gold);border-color:var(--gold);color:var(--white);transform:translateY(-2px)}
.footer-col-head{
  font-family:var(--font-ui);font-size:.68rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--white);margin-bottom:1.35rem;padding-bottom:.75rem;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.footer-links{list-style:none;padding:0;margin:0}
.footer-links li{margin-bottom:.6rem}
.footer-links a{font-family:var(--font-ui);font-size:.82rem;color:rgba(255,255,255,.4);transition:color var(--trans)}
.footer-links a:hover{color:var(--gold)}
.footer-bottom{
  max-width:var(--max);margin:0 auto;padding:1.5rem var(--gutter);
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;
}
.footer-copy{font-family:var(--font-ui);font-size:.72rem;color:rgba(255,255,255,.25)}
.footer-legal{list-style:none;padding:0;margin:0;display:flex;gap:1.5rem}
.footer-legal a{font-family:var(--font-ui);font-size:.7rem;color:rgba(255,255,255,.25)}
.footer-legal a:hover{color:rgba(255,255,255,.5)}

/* ============================================================
   RESOURCES PAGE
   ============================================================ */
.resources-full{background:var(--cream)}
.res-cat{margin-bottom:3.5rem}
.res-cat-head{
  display:flex;align-items:center;gap:1rem;
  margin-bottom:1.25rem;padding-bottom:1rem;
  border-bottom:2px solid var(--border);
}
.res-cat-icon{
  width:36px;height:36px;border-radius:50%;
  background:rgba(201,134,14,.1);border:1px solid rgba(201,134,14,.2);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.res-cat-icon svg{width:16px;height:16px;fill:var(--gold)}
.res-cat-title{font-size:1.3rem;color:var(--navy)}
.res-list{list-style:none;padding:0;margin:0}
.res-list li{margin-bottom:.5rem}
.res-list a{
  display:flex;align-items:flex-start;gap:.9rem;padding:1rem 1.25rem;
  background:var(--white);border:1px solid var(--border-dk);border-radius:var(--r-md);
  color:var(--navy);font-family:var(--font-ui);font-size:.86rem;
  transition:all var(--trans);
}
.res-list a:hover{background:var(--navy);color:var(--white);border-color:var(--navy);transform:translateX(5px)}
.res-list-arrow{color:var(--gold);flex-shrink:0;margin-top:.05rem}
.res-list a:hover .res-list-arrow{color:var(--gold-pale)}
.res-desc{display:block;font-size:.72rem;color:var(--slate);margin-top:.2rem}
.res-list a:hover .res-desc{color:rgba(255,255,255,.55)}

/* ============================================================
   ARTICLE / SINGLE POST
   ============================================================ */
.article-layout{max-width:780px;margin:0 auto;padding:4rem var(--gutter)}
.article-cat-date{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}
.article-h1{font-size:clamp(1.9rem,5vw,3rem);letter-spacing:-.025em;color:var(--navy);line-height:1.1;margin-bottom:1.5rem}
.article-content{font-size:1.05rem}
.article-content p{color:#3A4A5C;margin-bottom:1.5rem;line-height:1.85}
.article-content h2{font-size:1.5rem;color:var(--navy);margin:2.5rem 0 1rem}
.article-content h3{font-size:1.2rem;color:var(--navy);margin:2rem 0 .75rem}
.article-content ul,.article-content ol{margin-bottom:1.5rem;color:#3A4A5C}
.article-content img{border-radius:var(--r-md);margin:2rem 0;box-shadow:var(--shadow)}

/* ============================================================
   PAGINATION
   ============================================================ */
.pagination{display:flex;justify-content:center;gap:.4rem;padding:3rem 0}
.page-numbers{
  width:42px;height:42px;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-ui);font-size:.85rem;font-weight:600;color:var(--navy);
  border:1px solid var(--border-dk);border-radius:var(--r);transition:all var(--trans);
}
.page-numbers:hover,.page-numbers.current{background:var(--navy);border-color:var(--navy);color:var(--white)}

/* ============================================================
   404
   ============================================================ */
.error-page{
  min-height:85vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;
  padding:4rem var(--gutter);background:var(--ink);
}
.error-big{
  font-family:var(--font-display);font-size:clamp(8rem,20vw,16rem);
  color:var(--gold);opacity:.08;line-height:1;margin-bottom:-3rem;
}
.error-page h1{color:var(--white);margin-bottom:1rem}
.error-page p{font-family:var(--font-ui);color:rgba(255,255,255,.45);max-width:400px;margin-bottom:2rem}

/* ============================================================
   FILTER BUTTONS
   ============================================================ */
.filter-row{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid var(--border-dk)}
.filter-btn{
  font-family:var(--font-ui);font-size:.75rem;font-weight:600;
  padding:.5rem 1.2rem;border-radius:999px;
  border:1px solid var(--border-dk);background:transparent;
  color:var(--slate);cursor:pointer;transition:all var(--trans);
}
.filter-btn:hover,.filter-btn.active{background:var(--navy);border-color:var(--navy);color:var(--white)}

/* ============================================================
   SCROLL ANIMATIONS
   ============================================================ */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.1s}
.reveal-delay-2{transition-delay:.2s}
.reveal-delay-3{transition-delay:.3s}
.reveal-delay-4{transition-delay:.4s}
.reveal-left{opacity:0;transform:translateX(-30px);transition:opacity .65s ease,transform .65s ease}
.reveal-left.visible{opacity:1;transform:translateX(0)}

/* ============================================================
   BACK-TO-TOP
   ============================================================ */
#back-to-top{
  position:fixed;bottom:2rem;right:2rem;
  width:46px;height:46px;border-radius:50%;
  background:var(--gold);color:var(--white);
  border:none;font-size:1.2rem;cursor:pointer;
  box-shadow:0 4px 20px rgba(201,134,14,.5);
  opacity:0;pointer-events:none;
  transition:all var(--trans);z-index:500;
  display:flex;align-items:center;justify-content:center;
}
#back-to-top.visible{opacity:1;pointer-events:auto}
#back-to-top:hover{background:var(--gold-lt);transform:translateY(-3px)}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1100px){
  .bio-wrap{grid-template-columns:320px 1fr}
  .sfj-grid{grid-template-columns:1fr;gap:2.5rem}
  .sfj-card{position:static}
  .footer-grid{grid-template-columns:1fr 1fr;gap:2.5rem}
}
@media(max-width:900px){
  .bio-wrap{grid-template-columns:1fr}
  .bio-portrait-col{position:static;max-width:380px;margin:0 auto}
  .nl-inner{grid-template-columns:1fr;gap:2rem}
  .stats-grid{grid-template-columns:repeat(3,1fr)}
  .stat:nth-child(3){border-right:none}
  .stat:nth-child(4){border-top:1px solid var(--border-lt)}
  .empire-stats{grid-template-columns:1fr 1fr}
  .timeline-v::before{left:20px}
  .tv-item{grid-template-columns:1fr;padding-left:3.5rem}
  .tv-item::before{left:20px}
  .tv-date,.tv-item:nth-child(even) .tv-date{text-align:left;order:unset}
  .tv-item:nth-child(even) .tv-card{order:unset}
  .tv-dot{position:absolute;left:13px;top:.4rem}
  .gc-thumbs{display:none}
  .gc-arrow-next{right:1.5rem}
}
@media(max-width:768px){
  :root{--gutter:1.25rem;--section:3.5rem}
  #primary-nav,.nav-cta{display:none}
  .burger{display:flex}
  .hero-carousel{height:90vh}
  .stats-grid{grid-template-columns:1fr 1fr}
  .stat:nth-child(3){border-right:1px solid var(--border-lt);border-top:1px solid var(--border-lt)}
  .stat:nth-child(4){border-right:none;border-top:1px solid var(--border-lt)}
  .stat:nth-child(5){grid-column:span 2;border-top:1px solid var(--border-lt);border-right:none}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:2rem}
  .nl-row{flex-direction:column}
  .h-event{grid-template-columns:60px 1fr;gap:1.5rem}
  .atrocity-stat-row{grid-template-columns:1fr}
}
@media(max-width:480px){
  .slide-headline{font-size:2rem}
  .carousel-prev,.carousel-next{display:none}
}
