/* ================================================
   style.css — John's Homepage (circa 1997, forever)
   ================================================ */

body {
  margin: 0;
  padding: 0;
  font-family: "Comic Sans MS", "Comic Sans", cursive, sans-serif;
  color: #00FF00;
  background-color: #000033;
  background-image:
    radial-gradient(1px 1px at 10% 20%, #ffffff 100%, transparent 100%),
    radial-gradient(1px 1px at 80% 10%, #ffffff 100%, transparent 100%),
    radial-gradient(2px 2px at 50% 50%, #ffffff 100%, transparent 100%),
    radial-gradient(1px 1px at 30% 70%, #ffffff 100%, transparent 100%),
    radial-gradient(1px 1px at 90% 80%, #ffffff 100%, transparent 100%),
    radial-gradient(2px 2px at 65% 30%, #ffffff 100%, transparent 100%),
    radial-gradient(1px 1px at 15% 90%, #ffffff 100%, transparent 100%),
    radial-gradient(1px 1px at 45% 15%, #ffffff 100%, transparent 100%);
  background-repeat: repeat;
  background-size: 200px 200px;
  background-attachment: fixed;
}

/* ===== Layout wrapper ===== */
.page-wrapper {
  max-width: 800px;
  margin: 0 auto;
  padding: 10px;
}

/* ===== Tables-as-layout retro container ===== */
.retro-table {
  width: 100%;
  border: 4px ridge #cccccc;
  background-color: #000000;
  border-collapse: collapse;
}

.retro-table td {
  padding: 12px;
  vertical-align: top;
}

/* ===== Title banner ===== */
.title-banner {
  text-align: center;
  padding: 10px;
  background: repeating-linear-gradient(
    45deg,
    #ff00ff,
    #ff00ff 10px,
    #00ffff 10px,
    #00ffff 20px
  );
  border-bottom: 4px double #ffff00;
}

.title-banner h1 {
  margin: 0;
  padding: 8px;
  font-size: 2.4em;
  color: #ffff00;
  text-shadow: 3px 3px 0 #ff0000, -1px -1px 0 #000000;
  letter-spacing: 2px;
  background-color: rgba(0,0,0,0.55);
  display: inline-block;
}

/* ===== Marquee bar ===== */
.marquee-bar {
  background-color: #ff0000;
  color: #ffff00;
  font-weight: bold;
  padding: 4px 0;
  border-top: 2px solid #ffff00;
  border-bottom: 2px solid #ffff00;
  font-size: 1.1em;
}

/* ===== Nav bar ===== */
.navbar {
  text-align: center;
  background-color: #330066;
  padding: 10px 6px;
  border: 3px outset #9900cc;
  margin: 10px 0;
}

.navbar a {
  display: inline-block;
  margin: 4px 8px;
  padding: 6px 14px;
  background-color: #000000;
  color: #00ffff;
  text-decoration: none;
  border: 2px outset #00ffff;
  font-weight: bold;
  font-size: 0.95em;
}

.navbar a:hover {
  background-color: #00ffff;
  color: #000000;
  border-style: inset;
}

/* ===== Content boxes ===== */
.content-box {
  background-color: #000000;
  border: 3px groove #ff9900;
  padding: 16px;
  margin: 14px 0;
}

.content-box h2 {
  color: #ff9900;
  border-bottom: 2px dashed #ff9900;
  padding-bottom: 4px;
  font-size: 1.5em;
  text-shadow: 2px 2px 0 #663300;
}

.content-box h3 {
  color: #66ffff;
}

.content-box p, .content-box li {
  line-height: 1.6;
  color: #ccffcc;
}

/* ===== Rainbow text ===== */
.rainbow {
  font-weight: bold;
  font-size: 1.2em;
  background: linear-gradient(90deg, red, orange, yellow, green, blue, indigo, violet);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: rainbow-shift 4s linear infinite;
  background-size: 200% 100%;
}

@keyframes rainbow-shift {
  0% { background-position: 0% 0%; }
  100% { background-position: 200% 0%; }
}

/* ===== Blink (CSS-based, since <blink> is dead) ===== */
.blink {
  animation: blinker 1s step-start infinite;
  color: #ffff00;
  font-weight: bold;
}

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

/* ===== Under Construction badge (pure CSS, no gif needed) ===== */
.construction-banner {
  text-align: center;
  margin: 16px 0;
  padding: 10px;
  background: repeating-linear-gradient(
    -45deg,
    #ffff00,
    #ffff00 12px,
    #000000 12px,
    #000000 24px
  );
  border: 3px solid #ff9900;
}

.construction-banner span {
  background-color: #000000;
  color: #ffff00;
  padding: 4px 12px;
  font-weight: bold;
  border: 2px dashed #ff9900;
}

/* ===== Spinning globe / star, CSS only ===== */
.spin {
  display: inline-block;
  animation: spin 3s linear infinite;
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* ===== Sparkle stars scattered in text ===== */
.sparkle::before, .sparkle::after {
  content: " \2726 ";
  color: #ffff00;
}

/* ===== Visitor counter ===== */
.counter-box {
  text-align: center;
  margin: 14px 0;
}

.counter-digits {
  display: inline-block;
  background-color: #000000;
  border: 2px inset #999999;
  padding: 6px 10px;
  font-family: "Courier New", monospace;
  letter-spacing: 4px;
  font-size: 1.6em;
  color: #ff0000;
  text-shadow: 0 0 6px #ff0000;
}

/* ===== Buttons / webring badges ===== */
.badge-row {
  text-align: center;
  margin: 16px 0;
}

.badge {
  display: inline-block;
  width: 88px;
  height: 31px;
  line-height: 31px;
  margin: 4px;
  font-size: 0.65em;
  font-weight: bold;
  color: #ffffff;
  background-color: #333399;
  border: 2px outset #6666cc;
  vertical-align: middle;
}

/* ===== Guestbook ===== */
.guestbook-entry {
  border-bottom: 1px dotted #ff9900;
  padding: 10px 0;
}

.guestbook-entry .name {
  color: #ffff00;
  font-weight: bold;
}

.guestbook-entry .date {
  color: #999999;
  font-size: 0.85em;
}

form.retro-form input[type="text"],
form.retro-form textarea {
  width: 90%;
  background-color: #000000;
  color: #00ff00;
  border: 2px inset #999999;
  font-family: "Comic Sans MS", cursive;
  padding: 4px;
  margin-bottom: 8px;
}

form.retro-form input[type="submit"] {
  background-color: #cc0000;
  color: #ffff00;
  border: 2px outset #ff6666;
  font-weight: bold;
  padding: 6px 16px;
  cursor: pointer;
}

/* ===== hr divider ===== */
hr.retro-hr {
  border: none;
  height: 4px;
  background: repeating-linear-gradient(90deg, #ff00ff, #ff00ff 6px, #00ffff 6px, #00ffff 12px);
  margin: 18px 0;
}

/* ===== Footer ===== */
.footer {
  text-align: center;
  font-size: 0.8em;
  color: #9999cc;
  padding: 16px 6px;
  margin-top: 20px;
  border-top: 3px double #6666cc;
}

.footer a {
  color: #66ffff;
}

/* ===== Email link ===== */
.email-link {
  color: #ff66ff;
  font-weight: bold;
}

/* ===== Links list ===== */
.link-list a {
  color: #66ff66;
  display: block;
  padding: 4px 0;
}

.link-list a:before {
  content: "\1F449 ";
}

/* ===== Photo frame ===== */
.photo-frame {
  border: 6px ridge #cccccc;
  background: #ffffff;
  padding: 6px;
  display: inline-block;
  margin: 8px;
}

.photo-frame img {
  display: block;
  max-width: 100%;
}

.photo-caption {
  text-align: center;
  color: #000000;
  font-size: 0.8em;
  font-family: "Comic Sans MS", cursive;
  padding-top: 4px;
}
