/* ===== Banner: Ministry of Truth edition ===== */

/* Banner bar (static) */
body::before {
  content: "";
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 9998;
  height: 30px;
  background: #c8102e;
  border-bottom: 3px solid #ffd700;
  pointer-events: none;
}

/* Banner text (scrolls with transform, which is GPU-friendly) */
body::after {
  content: "★ BIG DASHBOARD IS WATCHING YOU ★ WAR IS PEACE ★ FREEDOM IS SLAVERY ★ IGNORANCE IS STRENGTH ★ 2+2=5 ★ UPTIME IS MANDATORY ★ THE WIFI HAS ALWAYS BEEN AT WAR WITH EASTASIA ★ WHO CONTROLS THE DNS CONTROLS THE PAST ★ THE PAST WAS ALWAYS CACHED ★ ALL UNAPPROVED TABS WILL BE MEMORY-HOLED ★ THOUGHTCRIME IS PUNISHABLE BY HARD REFRESH ★ DOUBLEPLUSGOOD CACHE HIT RATE ★ ALL USERS ARE EQUAL BUT SOME USERS ARE ROOT ★ THERE ARE FOUR LIGHTS ON THE ROUTER ★ YOUR BROWSER HISTORY IS WAITING IN ROOM 101 ★ PLEASE ENJOY YOUR TWO MINUTES HATE: ACCEPT ALL COOKIES ★ REPORT SUSPICIOUS PACKETS TO THE MINISTRY OF TRUTH (404 NOT FOUND) ★ WE HAVE ALWAYS BEEN AT 99.9% UPTIME ★";
  position: fixed;
  top: 0; left: 0;
  z-index: 9999;
  width: max-content;
  height: 30px;
  color: #ffd700;
  font: 700 13px/30px "Courier New", monospace;
  letter-spacing: 3px;
  white-space: nowrap;
  pointer-events: none;
  will-change: transform;
  animation: dprk-scroll 80s linear infinite;
}
@keyframes dprk-scroll {
  from { transform: translateX(100vw); }
  to   { transform: translateX(-100%); }
}

body { padding-top: 34px; }

/* ===== Poster background with scanlines ===== */
body {
  background-image:
    repeating-linear-gradient(0deg, rgba(0,0,0,.18) 0 1px, transparent 1px 3px),
    radial-gradient(circle at 50% 0%, rgba(200,16,46,.3), transparent 60%),
    radial-gradient(circle at 50% 100%, rgba(255,215,0,.08), transparent 50%);
  font-family: "Courier New", "Lucida Console", monospace;
}

/* ===== Widget headers: gold, shouty, stamped ===== */
.widget-header h2 {
  color: #ffd700;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 800;
}
.widget-header::after {
  content: "★ DOUBLEPLUSGOOD";
  float: right;
  font-size: 10px;
  color: #c8102e;
  border: 2px solid #c8102e;
  padding: 1px 6px;
  border-radius: 3px;
  transform: rotate(4deg);
  letter-spacing: 1px;
  opacity: .85;
}
.widget:nth-child(2n) .widget-header::after { content: "★ MONITORED"; transform: rotate(-3deg); }
.widget:nth-child(3n) .widget-header::after { content: "★ UNTHINKINGLY OK"; transform: rotate(2deg); }
.widget:nth-child(5n) .widget-header::after { content: "★ ROOM 101 READY"; transform: rotate(-5deg); }
.widget:nth-child(7n) .widget-header::after { content: "★ MEMORY-HOLE SAFE"; transform: rotate(3deg); }

/* ===== Cards: red-and-gold, glow on hover ===== */
.widget-content {
  border: 1px solid rgba(255, 215, 0, .35);
  border-left: 4px solid #c8102e;
  box-shadow: 0 0 18px rgba(200, 16, 46, .25);
  transition: box-shadow .3s;
}
.widget-content:hover {
  box-shadow: 0 0 28px rgba(255, 215, 0, .35);
}

/* ===== Logo (static glow) ===== */
.logo {
  color: #ffd700 !important;
  text-shadow: 0 0 10px #c8102e, 0 0 20px #c8102e;
  font-size: 1.6em;
}

/* ===== Citizen status widget ===== */
.dprk-status p {
  margin: 6px 0;
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(255, 215, 0, .3);
  text-transform: uppercase;
  font-size: 13px;
}
.dprk-status strong { color: #ffd700; }
.dprk-status small  { opacity: .6; }

/* ===== Redacted text: black bar until hovered ===== */
.redact {
  background: #000;
  color: #000 !important;
  padding: 0 4px;
  transition: all .4s;
}
.redact:hover {
  background: transparent;
  color: #ffd700 !important;
}

/* ===== Links ===== */
a:hover { color: #ffd700 !important; text-shadow: 0 0 6px #c8102e; }

/* ===== Footer ===== */
footer, .footer { letter-spacing: 1px; text-transform: uppercase; font-size: 11px; opacity: .7; }

/* ===== Respect people who don't want motion ===== */
@media (prefers-reduced-motion: reduce) {
  body::after { animation: none; transform: none; }
}
