/**
 * Era: 2031-2032 — "Split Reality"
 * Two competing design languages:
 *   Clean Net = sterile, censored, government-controlled (neon blue)
 *   Open Net (OHC/Andean) = vibrant, rough, human (neon green)
 * The visual split IS the story.
 *
 * Full Arwes treatment: dual palette, frame borders, circuit backgrounds,
 * scan lines, glow text. The reader sees which network they're on.
 */

.era-2031-2032 {
  --sf-bg: #eae8e4;
  --sf-text: #111;
  --sf-accent: #c0392b;
  --sf-muted: #666;
  --sf-border: rgba(0,0,0,0.2);

  /* Legacy era variables */
  --era-bg: var(--sf-bg);
  --era-text: var(--sf-text);
  --era-accent: var(--sf-accent);
  --era-muted: var(--sf-muted);
  --era-border: var(--sf-border);

  /* Clean Net palette (blue = surveillance) */
  --clean-bg: #f5f5f5;
  --clean-text: #333;
  --clean-border: #ccc;
  --clean-accent: #0055aa;

  /* Open Net palette (green = resistance) */
  --open-bg: #1a1a2e;
  --open-text: #e0ddd5;
  --open-accent: #e6a817;
  --open-border: rgba(230, 168, 23, 0.3);

  /* Scan lines active */
  --sf-scanline-opacity: 0.6;

  /* Frame styling for this era */
  --sf-frame-width: 1.5px;
}

.era-2031-2032 body {
  font-family: "Helvetica Neue", Helvetica, sans-serif;
  color: var(--sf-text);
  background: var(--sf-bg);
}

/* Default: Clean Net aesthetic */
.era-2031-2032 .node-title {
  font-family: var(--sf-font-mono);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* --- Clean Net styling (neon blue) --- */
.era-2031-2032 .clean-net {
  background: var(--clean-bg);
  color: var(--clean-text);
  font-family: var(--sf-font-sans);
  --sf-neon: var(--sf-neon-blue);
  --sf-frame-color: var(--sf-neon-blue);
}
.era-2031-2032 .clean-net .news-headline {
  font-family: var(--sf-font-sans);
  font-weight: 300;
  color: var(--clean-accent);
}
.era-2031-2032 .clean-net .source-verified {
  background: var(--clean-accent);
  color: white;
  padding: 0.15em 0.5em;
  font-size: 0.7rem;
  border-radius: 2px;
  font-family: var(--sf-font-mono);
  letter-spacing: 0.05em;
}

/* Clean Net neon blue glow on system elements */
.era-2031-2032 .clean-net .node-type-badge {
  border-color: var(--sf-neon-blue);
  color: var(--sf-neon-blue);
  text-shadow: 0 0 2px rgba(74, 144, 217, 0.3);
  font-family: var(--sf-font-mono);
}
.era-2031-2032 .clean-net .node-links-sidebar {
  border-color: rgba(74, 144, 217, 0.2);
  box-shadow: 0 0 8px rgba(74, 144, 217, 0.05);
}

/* --- Open Net styling (neon green + Arwes frames) --- */
.era-2031-2032 .open-net {
  background: var(--open-bg);
  color: var(--open-text);
  font-family: Georgia, serif;
  --sf-neon: var(--sf-neon-green);
  --sf-frame-color: var(--sf-neon-green);
}
.era-2031-2032 .open-net .news-headline {
  color: var(--open-accent);
  font-weight: 800;
}
.era-2031-2032 .open-net .news-source {
  border-bottom: 2px solid var(--open-accent);
  padding-bottom: var(--sf-space-sm);
}
.era-2031-2032 .open-net a {
  color: var(--open-accent);
}

/* Open Net gets circuit-trace backgrounds */
.era-2031-2032 .open-net {
  background-image: var(--sf-circuit);
}

/* Open Net neon green elements */
.era-2031-2032 .open-net .node-type-badge {
  border-color: var(--sf-neon-green);
  color: var(--sf-neon-green);
  text-shadow: 0 0 2px var(--sf-neon-green);
  font-family: var(--sf-font-mono);
  font-size: 0.68rem;
}
.era-2031-2032 .open-net .node-header {
  border-bottom-color: rgba(100, 255, 100, 0.15);
}
.era-2031-2032 .open-net .node-links-sidebar {
  border-color: rgba(100, 255, 100, 0.15);
}

/* Government notices at peak authority */
.era-2031-2032 .government-notice {
  background: #fff;
  border: 6px solid #8b0000;
  box-shadow: 0 0 0 2px #1a1a1a;
  position: relative;
}
/* Scan lines on government notices */
.era-2031-2032 .government-notice::after {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    transparent 0px, transparent 1px,
    rgba(0,0,0,0.02) 1px, rgba(0,0,0,0.02) 2px
  );
  pointer-events: none;
}
.era-2031-2032 .gov-badge--warning {
  background: #8b0000;
  color: white;
  padding: 0.5em 1em;
  font-size: 1.1rem;
  display: block;
  text-align: center;
  animation: warning-pulse 2s ease-in-out infinite;
  font-family: var(--sf-font-mono);
  letter-spacing: 0.1em;
}
@keyframes warning-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.8; }
}

/* Manifesto template = OHC energy, vibrant, with neon green frame */
.era-2031-2032 .manifesto {
  background: var(--open-bg);
  background-image: var(--sf-circuit);
  color: var(--open-text);
}
.era-2031-2032 .manifesto-title {
  color: var(--open-accent);
  font-size: 3rem;
  line-height: 1;
  font-weight: 900;
  text-shadow: 0 0 20px rgba(230, 168, 23, 0.2);
}
.era-2031-2032 .manifesto-pullquote {
  border-color: var(--open-accent);
  color: var(--open-accent);
  font-size: 1.35rem;
}

/* Propaganda template — peak desperation */
.era-2031-2032 .propaganda-ad {
  background: linear-gradient(135deg, #001a3a, #002255);
  color: white;
}
.era-2031-2032 .propaganda-headline {
  font-size: 2.5rem;
  text-transform: uppercase;
  color: #fff;
  text-shadow: 0 0 30px rgba(255,0,0,0.3);
}
.era-2031-2032 .propaganda-flag-stripe {
  height: 6px;
  background: repeating-linear-gradient(90deg,
    #bf0a30 0px, #bf0a30 40px,
    #fff 40px, #fff 80px
  );
}

/* Intercepts — full Arwes treatment: terminal green, circuit bg, frame */
.era-2031-2032 .intercept {
  background: #0a0a0a;
  background-image: var(--sf-circuit);
  color: #33ff33;
  font-family: var(--sf-font-mono);
  position: relative;
  border: 1px solid rgba(51, 255, 51, 0.2);
  box-shadow: 0 0 8px rgba(51, 255, 51, 0.05);
}
/* Scan lines on intercepts */
.era-2031-2032 .intercept::after {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    transparent 0px, transparent 1px,
    rgba(0,255,0,0.015) 1px, rgba(0,255,0,0.015) 2px
  );
  pointer-events: none;
}
.era-2031-2032 .intercept-stamp {
  color: #ff0000;
  font-size: 1.5rem;
  letter-spacing: 0.2em;
  border: 3px solid #ff0000;
  padding: 0.25em 0.75em;
  transform: rotate(-5deg);
  display: inline-block;
  text-shadow: 0 0 6px rgba(255, 0, 0, 0.3);
}
