/* PARA NØRMAL // 1997 AREA51 HOMESTEAD
   Best viewed at 800x600 with Netscape Navigator 4.0
   and a healthy distrust of official narratives. */

@import url('https://fonts.googleapis.com/css2?family=VT323&family=Share+Tech+Mono&family=Press+Start+2P&family=Orbitron:wght@500;700&family=Special+Elite&display=swap');

:root {
  --bg: #000000;
  --bg2: #050805;
  --panel: #0a120a;
  --green: #00ff41;
  --green-dim: #00aa2a;
  --cyan: #00ffff;
  --magenta: #ff00ff;
  --yellow: #ffff33;
  --red: #ff2244;
  --gold: #d4af37;
  --purple: #bb44ff;
  --text: #c8ffc8;
  --muted: #6a9a6a;
  --border: #00ff41;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: #000;
  color: var(--text);
  font-family: "Share Tech Mono", "Courier New", Courier, monospace;
  font-size: 16px;
  line-height: 1.55;
  min-height: 100%;
}

body {
  background-color: #000;
  background-image:
    radial-gradient(1px 1px at 20px 30px, #fff 50%, transparent 51%),
    radial-gradient(1px 1px at 80px 120px, #9cf 50%, transparent 51%),
    radial-gradient(1px 1px at 160px 70px, #fff 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 240px 180px, #6f6 40%, transparent 51%),
    radial-gradient(1px 1px at 320px 40px, #fff 50%, transparent 51%),
    radial-gradient(1px 1px at 400px 220px, #faf 50%, transparent 51%),
    radial-gradient(1px 1px at 40px 260px, #fff 50%, transparent 51%),
    radial-gradient(1px 1px at 480px 90px, #fff 50%, transparent 51%);
  background-size: 520px 300px;
}

/* CRT scanlines overlay */
body::before {
  content: "";
  pointer-events: none;
  position: fixed;
  inset: 0;
  background: repeating-linear-gradient(
    to bottom,
    rgba(0,0,0,0) 0px,
    rgba(0,0,0,0) 2px,
    rgba(0,0,0,0.18) 3px
  );
  z-index: 9998;
}

body::after {
  content: "";
  pointer-events: none;
  position: fixed;
  inset: 0;
  background: radial-gradient(ellipse at center, transparent 50%, rgba(0,0,0,0.45) 100%);
  z-index: 9997;
}

.wrap {
  max-width: 920px;
  margin: 12px auto 40px;
  background: rgba(0, 8, 0, 0.82);
  border: 3px ridge #00ff41;
  box-shadow:
    0 0 0 1px #003300,
    0 0 24px rgba(0,255,65,0.25),
    inset 0 0 40px rgba(0,40,0,0.4);
  position: relative;
  z-index: 1;
}

/* HEADER */
.banner {
  display: block;
  width: 100%;
  height: 200px;
  object-fit: cover;
  object-position: center 45%;
  border-bottom: 2px solid var(--green);
  filter: contrast(1.1) saturate(1.2);
}

.topbar {
  background: #001800;
  border-bottom: 1px solid #00aa33;
  padding: 4px 8px;
  font-size: 13px;
  color: var(--yellow);
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 6px;
}

.topbar a { color: var(--cyan); }

marquee.alert {
  background: #110000;
  color: var(--red);
  font-family: "Press Start 2P", monospace;
  font-size: 10px;
  padding: 6px 0;
  border-bottom: 1px dashed var(--magenta);
  letter-spacing: 1px;
}

/* NAV */
nav.mainnav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0;
  background: linear-gradient(#021802, #000);
  border-bottom: 2px groove #00cc44;
}

nav.mainnav a {
  color: var(--green);
  text-decoration: none;
  padding: 10px 14px;
  font-family: "Orbitron", sans-serif;
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
  border-right: 1px solid #003300;
  text-shadow: 0 0 6px #00ff41;
}

nav.mainnav a:hover,
nav.mainnav a.active {
  background: #003300;
  color: #fff;
  box-shadow: inset 0 0 12px #00ff41;
}

/* LAYOUT */
.layout {
  display: grid;
  grid-template-columns: 210px 1fr;
  min-height: 480px;
}

.sidebar {
  background: #050d05;
  border-right: 2px ridge #00aa33;
  padding: 14px 10px;
  font-size: 13px;
}

.sidebar h3 {
  font-family: "Press Start 2P", monospace;
  font-size: 9px;
  color: var(--magenta);
  text-align: center;
  margin: 0 0 10px;
  line-height: 1.6;
  text-shadow: 0 0 8px #ff00ff;
}

.sidebar img.sidepic {
  display: block;
  width: 100%;
  max-width: 180px;
  margin: 0 auto 10px;
  border: 2px inset #004400;
  image-rendering: pixelated;
}

.sidebar ul {
  list-style: none;
  padding: 0;
  margin: 0 0 16px;
}

.sidebar li { margin: 6px 0; }

.sidebar a {
  color: var(--cyan);
  text-decoration: none;
}

.sidebar a:hover { color: var(--yellow); text-decoration: underline; }

.badge {
  display: block;
  text-align: center;
  border: 2px outset #666;
  background: #111;
  color: var(--yellow);
  font-size: 11px;
  padding: 6px;
  margin: 10px 0;
  font-family: "VT323", monospace;
}

.hit-counter {
  background: #000;
  color: #ff3333;
  font-family: "VT323", monospace;
  font-size: 28px;
  letter-spacing: 4px;
  text-align: center;
  border: 3px inset #444;
  padding: 4px 8px;
  margin: 8px 0 14px;
  text-shadow: 0 0 8px #ff0000;
}

.content {
  padding: 18px 22px 28px;
}

h1, h2, h3 {
  font-family: "Orbitron", "Arial Black", sans-serif;
  font-weight: 700;
  letter-spacing: 1px;
}

h1 {
  color: var(--cyan);
  font-size: 26px;
  margin: 0 0 8px;
  text-shadow: 0 0 10px #00ffff, 0 0 2px #fff;
}

h2 {
  color: var(--green);
  font-size: 18px;
  border-bottom: 1px dashed #00aa33;
  padding-bottom: 4px;
  text-shadow: 0 0 8px #00ff41;
}

h3 { color: var(--magenta); font-size: 15px; }

.blink {
  animation: blink 1.1s step-end infinite;
}

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

.glow {
  text-shadow: 0 0 8px currentColor;
}

.quote {
  font-family: "Special Elite", "Courier New", cursive;
  color: var(--yellow);
  font-size: 18px;
  text-align: center;
  margin: 18px 20px;
  line-height: 1.5;
}

.quote cite {
  display: block;
  font-size: 13px;
  color: var(--muted);
  margin-top: 8px;
  font-style: normal;
}

p { margin: 0 0 12px; }

a { color: var(--cyan); }
a:visited { color: var(--purple); }
a:hover { color: var(--yellow); }

hr.neon {
  border: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--green), var(--cyan), var(--magenta), transparent);
  margin: 18px 0;
  box-shadow: 0 0 8px #00ff41;
}

.panel {
  background: #071007;
  border: 2px inset #225522;
  padding: 12px 14px;
  margin: 14px 0;
}

.warning {
  border: 2px dashed var(--red);
  background: #1a0000;
  color: #ffaaaa;
  padding: 10px 12px;
  font-size: 13px;
}

.grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.card {
  background: #081208;
  border: 1px solid #00aa33;
  padding: 10px;
}

.card h3 { margin-top: 0; }

.card img {
  width: 100%;
  max-height: 160px;
  object-fit: contain;
  background: #000;
}

footer {
  background: #001000;
  border-top: 2px ridge #00aa33;
  text-align: center;
  padding: 16px 10px 22px;
  font-size: 12px;
  color: var(--muted);
}

footer .webring {
  margin: 8px 0;
  color: var(--yellow);
}

.netscape {
  display: inline-block;
  border: 2px outset #888;
  background: #222;
  color: #0f0;
  padding: 3px 8px;
  font-size: 11px;
  margin: 6px;
  font-family: "VT323", monospace;
}

.construction {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 10px auto;
  border: 2px solid #ffcc00;
}

/* GUESTBOOK */
form.gb label { display: block; color: var(--green); margin-top: 8px; font-size: 13px; }
form.gb input, form.gb textarea {
  width: 100%;
  background: #001100;
  color: var(--green);
  border: 2px inset #004400;
  font-family: "Share Tech Mono", monospace;
  padding: 6px;
  font-size: 14px;
}
form.gb textarea { min-height: 80px; resize: vertical; }
form.gb button, .btn {
  margin-top: 10px;
  background: #003300;
  color: var(--yellow);
  border: 3px outset #00aa44;
  font-family: "Orbitron", sans-serif;
  font-size: 12px;
  padding: 8px 16px;
  cursor: pointer;
  text-transform: uppercase;
}
form.gb button:hover, .btn:hover {
  background: #005500;
  color: #fff;
}
form.gb button:active { border-style: inset; }

.entry {
  border: 1px dashed #335533;
  padding: 8px 10px;
  margin: 8px 0;
  background: #050a05;
}
.entry .who { color: var(--cyan); font-weight: bold; }
.entry .when { color: var(--muted); font-size: 12px; float: right; }
.entry .msg { clear: both; color: var(--text); margin-top: 4px; }

/* SPARKLE CURSOR bits */
.spark {
  position: fixed;
  pointer-events: none;
  width: 4px;
  height: 4px;
  background: #0f0;
  box-shadow: 0 0 6px #0f0, 0 0 2px #fff;
  border-radius: 50%;
  z-index: 10000;
  animation: sparkfade 0.6s linear forwards;
}
@keyframes sparkfade {
  to { opacity: 0; transform: translateY(12px) scale(0.2); }
}

/* UFO float */
.float-ufo {
  animation: hover 3.2s ease-in-out infinite;
}
@keyframes hover {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

/* TABLES like 1998 */
table.data {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
table.data th {
  background: #003300;
  color: var(--yellow);
  border: 1px solid #00aa33;
  padding: 6px;
  text-align: left;
}
table.data td {
  border: 1px solid #224422;
  padding: 6px;
  vertical-align: top;
}
table.data tr:nth-child(even) { background: #071107; }

.center { text-align: center; }
.small { font-size: 12px; color: var(--muted); }
img[src$=".gif"] { image-rendering: pixelated; image-rendering: crisp-edges; }

@media (max-width: 720px) {
  .layout { grid-template-columns: 1fr; }
  .sidebar { border-right: 0; border-bottom: 2px ridge #00aa33; }
  .banner { height: 140px; }
  nav.mainnav a { font-size: 10px; padding: 8px 8px; }
  .grid-2 { grid-template-columns: 1fr; }
  h1 { font-size: 20px; }
}

/* --- THE OTHER FILING CABINET -------------------------------- */
.fnord {
  color: #071407;
  text-decoration: none;
  font-size: 11px;
}
.fnord:hover, .fnord:focus {
  color: #ff00ff;
  text-shadow: 0 0 8px #ff00ff;
}
.tiny-door {
  font-size: 9px;
  color: #0d220d;
  letter-spacing: 2px;
  text-decoration: none;
}
.tiny-door:hover { color: #ffff33; }
.hole-body .wrap {
  border-color: #ff00ff;
  box-shadow: 0 0 24px rgba(255,0,255,0.2), inset 0 0 40px rgba(40,0,40,0.35);
}
.hole-stamp {
  font-family: "Press Start 2P", monospace;
  font-size: 9px;
  color: #ff2244;
  letter-spacing: 2px;
  text-align: center;
  margin: 0 0 12px;
}
.memo {
  background: #0b0b00;
  border: 1px dashed #888800;
  color: #dddd88;
  padding: 12px;
  font-size: 14px;
}
.wrong {
  font-family: "Times New Roman", serif;
  color: #ffccaa;
  background: #1a0000;
  padding: 16px;
  border: 8px ridge #660000;
}
.ascii {
  font-size: 11px;
  line-height: 1.15;
  color: #00ff41;
  overflow-x: auto;
}
.clickable { cursor: pointer; }
.clickable:hover { filter: brightness(1.2); }

/* --- K-FNORD 23.0 CASSETTE DECK -------------------------------- */
.deck {
  background: linear-gradient(#1a1a1a, #0a0a0a);
  border: 4px outset #555;
  padding: 8px;
  color: #9f6;
  font-family: "Share Tech Mono", monospace;
  box-shadow: inset 0 0 20px #000, 0 0 8px #003300;
}
.deck-brand {
  font-family: "Press Start 2P", monospace;
  font-size: 8px;
  color: #ffcc00;
  letter-spacing: 1px;
  text-align: center;
  margin-bottom: 6px;
}
.deck-lcd {
  background: #021a08;
  border: 2px inset #004400;
  color: #33ff66;
  font-family: "VT323", monospace;
  font-size: 18px;
  padding: 6px 8px;
  min-height: 44px;
  text-shadow: 0 0 6px #0f0;
  line-height: 1.15;
}
.deck-lcd .sub { color: #88aa88; font-size: 14px; display: block; }
.deck-eq {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: 28px;
  margin: 8px 0 6px;
  padding: 0 4px;
}
.deck-eq span {
  flex: 1;
  background: #00ff41;
  height: 4px;
  box-shadow: 0 0 4px #0f0;
}
.deck.playing .deck-eq span { animation: eq 0.5s ease-in-out infinite alternate; }
.deck.playing .deck-eq span:nth-child(2) { animation-delay: .1s; }
.deck.playing .deck-eq span:nth-child(3) { animation-delay: .05s; }
.deck.playing .deck-eq span:nth-child(4) { animation-delay: .2s; }
.deck.playing .deck-eq span:nth-child(5) { animation-delay: .15s; }
.deck.playing .deck-eq span:nth-child(6) { animation-delay: .08s; }
.deck.playing .deck-eq span:nth-child(7) { animation-delay: .18s; }
.deck.playing .deck-eq span:nth-child(8) { animation-delay: .03s; }
@keyframes eq {
  from { height: 4px; background: #00aa2a; }
  to { height: 26px; background: #ffff33; }
}
.deck-row { display: flex; gap: 4px; flex-wrap: wrap; margin: 4px 0; }
.deck-btn {
  flex: 1;
  min-width: 36px;
  background: #222;
  color: #ffcc00;
  border: 3px outset #666;
  font-family: "Orbitron", sans-serif;
  font-size: 10px;
  padding: 6px 4px;
  cursor: pointer;
  text-transform: uppercase;
}
.deck-btn:hover { background: #333; color: #fff; }
.deck-btn:active, .deck-btn.on { border-style: inset; background: #003300; color: #0f0; }
.deck input[type="range"] {
  width: 100%;
  accent-color: #00ff41;
  margin: 4px 0;
}
.deck-vol { display: flex; align-items: center; gap: 6px; font-size: 11px; color: #888; }
.deck-pl {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  max-height: 180px;
  overflow-y: auto;
  border: 1px solid #224422;
  background: #000;
}
.deck-pl li {
  padding: 4px 8px;
  font-size: 12px;
  cursor: pointer;
  color: #8f8;
  border-bottom: 1px dotted #123;
}
.deck-pl li:hover { background: #021a08; color: #fff; }
.deck-pl li.now { background: #003300; color: #ffff33; }
.deck-load {
  display: block;
  margin-top: 8px;
  font-size: 11px;
  color: #6a9a6a;
  cursor: pointer;
}
.deck-load input { display: none; }
.deck.compact .deck-pl { max-height: 88px; }
.deck.compact .deck-lcd { min-height: 36px; font-size: 16px; }
.reels {
  display: flex;
  justify-content: space-around;
  margin: 6px 0;
}
.reel {
  width: 44px; height: 44px;
  border: 3px solid #666;
  border-radius: 50%;
  background:
    repeating-conic-gradient(#333 0 12deg, #111 0 24deg);
  box-shadow: inset 0 0 8px #000;
}
.deck.playing .reel { animation: spin 1.6s linear infinite; }
.deck.playing .reel:nth-child(2) { animation-duration: 2.1s; }
@keyframes spin { to { transform: rotate(360deg); } }

/* DIARY OF A MAN IN BLACK */
.diary {
  background: #16120a;
  color: #e8d9b0;
  border: 1px solid #5a4a28;
  padding: 16px 18px 20px;
  margin: 16px 0;
  font-family: "Special Elite", "Courier New", monospace;
  font-size: 16px;
  line-height: 1.7;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.45);
}
.diary .when { color:#c9a227; letter-spacing:2px; font-size:13px; margin:0 0 4px; }
.diary .where { color:#9a8860; font-size:13px; margin:0 0 10px; }
.diary p { margin: 0 0 10px; }
.diary .ash { color:#8a7a55; font-size:13px; }
.diary-toc a { display:block; margin:4px 0; font-size:13px; }
