/*
Theme Name: Ars Intelligentiae
Theme URI: https://arsintelligentiae.eu
Author: Ars Intelligentiae
Description: Dark cyberpunk theme for OSINT, geopolitics and esoterica
Version: 1.0
*/

@import url('https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=Inter:wght@300;400;600&display=swap');

:root {
  --bg:      #080b0f;
  --bg2:     #0d1117;
  --bg3:     #111820;
  --neon:    #00d4ff;
  --neon2:   #00ff9f;
  --red:     #ff3c5a;
  --purple:  #c084fc;
  --text:    #c9d1d9;
  --muted:   #4a5568;
  --border:  #1e2d3d;
  --mono:    'Space Mono', monospace;
  --body:    'Inter', sans-serif;
}

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

body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--body);
  font-size: 15px;
  line-height: 1.7;
  overflow-x: hidden;
}

body::before {
  content:'';
  position:fixed; top:0; left:0;
  width:100%; height:100%;
  background: repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,0.03) 2px,rgba(0,0,0,0.03) 4px);
  pointer-events:none; z-index:9999;
}

a { color:var(--neon); text-decoration:none; transition:color .2s; }
a:hover { color:var(--neon2); }

img { max-width:100%; height:auto; }

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

.site-logo {
  font-family:var(--mono);
  font-size:.85rem;
  color:var(--neon);
  letter-spacing:.15em;
  text-transform:uppercase;
  display:flex; align-items:center; gap:.5rem;
}

.site-logo::before {
  content:'>';
  color:var(--neon2);
  animation:blink 1.2s step-end infinite;
}

@keyframes blink { 50%{opacity:0} }

#site-nav ul { display:flex; gap:2rem; list-style:none; }
#site-nav a {
  font-family:var(--mono); font-size:.72rem;
  color:var(--muted); letter-spacing:.1em; text-transform:uppercase;
  transition:color .2s;
}
#site-nav a:hover { color:var(--neon); }

.nav-status {
  font-family:var(--mono); font-size:.65rem; color:var(--neon2);
  display:flex; align-items:center; gap:.4rem;
}
.nav-dot {
  width:6px; height:6px; border-radius:50%; background:var(--neon2);
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse {
  0%,100%{opacity:1;box-shadow:0 0 4px var(--neon2)}
  50%{opacity:.4;box-shadow:none}
}

/* TICKER */
.ticker {
  background:var(--bg2);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:.6rem 0; overflow:hidden;
  margin-top:56px;
}
.ticker-inner {
  display:flex; gap:3rem;
  animation:ticker 28s linear infinite;
  white-space:nowrap;
}
@keyframes ticker { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.ticker-item {
  font-family:var(--mono); font-size:.65rem;
  color:var(--muted); letter-spacing:.08em; text-transform:uppercase;
  display:flex; align-items:center; gap:.6rem;
}
.ticker-sep { color:var(--red); }

/* HERO */
.hero {
  min-height:100vh; display:flex; flex-direction:column;
  justify-content:center; padding:6rem 2rem 4rem;
  position:relative; overflow:hidden;
}
.hero-grid {
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(0,212,255,.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,212,255,.03) 1px,transparent 1px);
  background-size:40px 40px;
  mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black 40%,transparent 100%);
}
.hero-glow {
  position:absolute; top:20%; left:50%; transform:translateX(-50%);
  width:600px; height:300px;
  background:radial-gradient(ellipse,rgba(0,212,255,.06) 0%,transparent 70%);
  pointer-events:none;
}
.hero-content { max-width:860px; margin:0 auto; position:relative; z-index:1; }
.hero-tag {
  font-family:var(--mono); font-size:.7rem; color:var(--neon2);
  letter-spacing:.2em; text-transform:uppercase;
  margin-bottom:1.5rem; display:flex; align-items:center; gap:.8rem;
}
.hero-tag::before { content:''; display:inline-block; width:24px; height:1px; background:var(--neon2); }

h1.hero-title {
  font-family:var(--mono);
  font-size:clamp(2rem,5vw,3.8rem);
  font-weight:700; line-height:1.15;
  color:#e6edf3; margin-bottom:1.5rem;
}
h1.hero-title .neon { color:var(--neon); text-shadow:0 0 20px rgba(0,212,255,.4); }
h1.hero-title .green { color:var(--neon2); text-shadow:0 0 20px rgba(0,255,159,.3); }

.hero-sub { font-size:1rem; color:var(--muted); max-width:560px; margin-bottom:2.5rem; }
.hero-cta { display:flex; gap:1rem; flex-wrap:wrap; }

.btn {
  font-family:var(--mono); font-size:.75rem; letter-spacing:.1em;
  text-transform:uppercase; padding:.75rem 1.5rem; border:1px solid;
  cursor:pointer; transition:all .2s; display:inline-block;
}
.btn-primary { background:transparent; border-color:var(--neon); color:var(--neon); }
.btn-primary:hover { background:var(--neon); color:var(--bg); box-shadow:0 0 20px rgba(0,212,255,.3); }
.btn-secondary { background:transparent; border-color:var(--border); color:var(--muted); }
.btn-secondary:hover { border-color:var(--muted); color:var(--text); }

/* SECTIONS */
.section { padding:5rem 2rem; }
.section-alt { background:var(--bg2); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.container { max-width:1000px; margin:0 auto; }

.section-label {
  font-family:var(--mono); font-size:.65rem;
  letter-spacing:.25em; text-transform:uppercase;
  color:var(--neon); margin-bottom:.75rem;
}
h2.section-title {
  font-family:var(--mono); font-size:1.6rem; color:#e6edf3; margin-bottom:.5rem;
}
.section-divider {
  width:40px; height:2px; background:var(--neon);
  margin-bottom:3rem; box-shadow:0 0 8px rgba(0,212,255,.4);
}

/* ARTICLES GRID */
.articles-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:1.5px; background:var(--border);
  border:1px solid var(--border);
}
.article-card {
  background:var(--bg2); padding:1.8rem;
  cursor:pointer; transition:background .2s;
  position:relative; overflow:hidden;
}
.article-card::before {
  content:''; position:absolute; top:0; left:0;
  width:2px; height:0; background:var(--neon); transition:height .3s;
}
.article-card:hover { background:var(--bg3); }
.article-card:hover::before { height:100%; }

.card-cat {
  font-family:var(--mono); font-size:.6rem;
  letter-spacing:.2em; text-transform:uppercase;
  margin-bottom:.8rem; display:flex; align-items:center; gap:.5rem;
}
.cat-osint { color:var(--neon); }
.cat-geo   { color:var(--neon2); }
.cat-esoteric { color:var(--purple); }

.card-title {
  font-family:var(--mono); font-size:.95rem;
  color:#e6edf3; line-height:1.4; margin-bottom:.8rem;
}
.card-excerpt { font-size:.82rem; color:var(--muted); line-height:1.6; margin-bottom:1.2rem; }
.card-meta {
  font-family:var(--mono); font-size:.6rem; color:var(--muted);
  letter-spacing:.08em; display:flex; justify-content:space-between;
  border-top:1px solid var(--border); padding-top:.8rem;
}

/* SINGLE POST */
.post-header { padding:8rem 2rem 3rem; border-bottom:1px solid var(--border); }
.post-header .card-cat { margin-bottom:1rem; }
.post-header h1 {
  font-family:var(--mono); font-size:clamp(1.5rem,4vw,2.5rem);
  color:#e6edf3; line-height:1.2; margin-bottom:1rem;
}
.post-meta { font-family:var(--mono); font-size:.65rem; color:var(--muted); letter-spacing:.08em; }

.post-content { max-width:720px; margin:0 auto; padding:3rem 2rem; }
.post-content p { margin-bottom:1.5rem; color:var(--text); }
.post-content h2 { font-family:var(--mono); color:#e6edf3; margin:2rem 0 1rem; font-size:1.2rem; }
.post-content h3 { font-family:var(--mono); color:var(--neon); margin:1.5rem 0 .75rem; font-size:1rem; }
.post-content code {
  font-family:var(--mono); font-size:.82rem;
  background:var(--bg2); border:1px solid var(--border);
  padding:.15rem .4rem; color:var(--neon2);
}
.post-content pre {
  background:var(--bg2); border:1px solid var(--border);
  padding:1.5rem; overflow-x:auto; margin:1.5rem 0;
}
.post-content blockquote {
  border-left:2px solid var(--neon); padding-left:1.5rem;
  margin:1.5rem 0; color:var(--muted); font-style:italic;
}

/* MAP */
#map { height:340px; border:1px solid var(--border); }
.leaflet-tile { filter:invert(1) hue-rotate(180deg) brightness(.7) saturate(.5); }
.leaflet-container { background:var(--bg); }
.map-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:1.5rem; flex-wrap:wrap; gap:1rem; }
.map-legend { display:flex; gap:1.5rem; flex-wrap:wrap; }
.legend-item {
  font-family:var(--mono); font-size:.62rem; color:var(--muted);
  display:flex; align-items:center; gap:.4rem;
  letter-spacing:.08em; text-transform:uppercase;
}
.legend-dot { width:8px; height:8px; border-radius:50%; }

/* TERMINAL */
.terminal-box {
  background:#0a0f14; border:1px solid var(--border);
  padding:1.8rem; font-family:var(--mono); font-size:.82rem;
  line-height:1.9; max-width:680px;
}
.t-line  { color:var(--muted); }
.t-cmd   { color:var(--neon2); }
.t-out   { color:var(--text); }
.t-warn  { color:var(--red); }
.t-cursor {
  display:inline-block; width:8px; height:1em;
  background:var(--neon); vertical-align:text-bottom;
  animation:blink 1s step-end infinite;
}

/* FOOTER */
#site-footer {
  background:var(--bg2); border-top:1px solid var(--border);
  padding:2rem; text-align:center;
  font-family:var(--mono); font-size:.65rem;
  color:var(--muted); letter-spacing:.1em;
}
#site-footer span { color:var(--neon); }

/* ARCHIVE */
.archive-header { padding:8rem 2rem 3rem; border-bottom:1px solid var(--border); }
.archive-header h1 { font-family:var(--mono); font-size:2rem; color:#e6edf3; }

/* WIDGETS */
.widget-title { font-family:var(--mono); font-size:.75rem; color:var(--neon); letter-spacing:.15em; text-transform:uppercase; margin-bottom:1rem; }