/* ===================================== */
/* MODERNIZED RETRO 90s LAYOUT */
/* Keep the fun — improve the structure */
/* Replace MOST of styles.css with this */
/* ===================================== */

:root {

  --mustard: #ffbf00;
  --mustard-dark: #cc8400;
  --mustard-light: #fff1a8;

  --bg1: #fff8dc;
  --bg2: #ffe082;

  --pink: #ff4fc3;
  --cyan: #49e7ff;

  --shadow:
    0 10px 25px rgba(0,0,0,0.18);

}

/* Global */

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {

  margin: 0;

  font-family:
    "Trebuchet MS",
    "Comic Sans MS",
    sans-serif;

  background:
    radial-gradient(
      circle at top,
      #fff6bf,
      #ffd76a 60%,
      #ffb300 100%
    );

  color: #442500;

  position: relative;

  overflow-x: hidden;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image:
    radial-gradient(circle at 20% 15%, rgba(255,255,255,0.45), transparent 18%),
    radial-gradient(circle at 80% 18%, rgba(255,255,255,0.3), transparent 20%),
    linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0) 35%, rgba(255,255,255,0.08) 65%, rgba(255,255,255,0) 100%);
  opacity: 0.55;
  z-index: 1;
}

/* Floating background silliness */

.floating {

  position: fixed;

  opacity: 0.18;

  z-index: 0;

  pointer-events: none;

  animation: drift linear infinite;
}

.floating1 {
  left: 5%;
  font-size: 3rem;
  animation-duration: 18s;
}

.floating2 {
  left: 25%;
  font-size: 4rem;
  animation-duration: 22s;
}

.floating3 {
  left: 70%;
  font-size: 3.5rem;
  animation-duration: 16s;
}

.floating4 {
  left: 88%;
  font-size: 4rem;
  animation-duration: 20s;
}

@keyframes drift {

  from {
    transform:
      translateY(110vh)
      rotate(0deg);
  }

  to {
    transform:
      translateY(-140vh)
      rotate(360deg);
  }
}

/* Main page container */

.page-shell {

  width: min(1400px, 95vw);

  margin: auto;

  position: relative;

  z-index: 2;

  padding: 0 12px 24px;
}

/* Hero */

.hero {

  margin: 30px auto 25px auto;

  padding: 30px;

  border-radius: 24px;

  background:
    linear-gradient(
      135deg,
      #ffcc33,
      #ff9d00
    );

  border: 4px solid #fff4c2;

  box-shadow: var(--shadow);

  text-align: center;

  position: relative;

  overflow: hidden;
}

.hero::before {

  content: "";

  position: absolute;

  inset: 0;

  background:
    repeating-linear-gradient(
      45deg,
      rgba(255,255,255,0.08),
      rgba(255,255,255,0.08) 10px,
      transparent 10px,
      transparent 20px
    );

  pointer-events: none;
}

.hero marquee {

  background: black;

  color: #00ff66;

  padding: 8px;

  margin-bottom: 20px;

  border: 2px solid yellow;

  border-radius: 10px;

  font-weight: bold;
}

.hero h1 {

  font-size:
    clamp(3rem, 7vw, 6rem);

  margin: 10px 0;

  color: #fffde7;

  text-shadow:
    3px 3px #d96f00,
    6px 6px #5a2200;

  letter-spacing: 4px;
}

.tagline {

  font-size:
    clamp(1.1rem, 2vw, 1.5rem);

  margin-bottom: 20px;

  font-weight: bold;
}

.blink {

  animation: blink 1s infinite;

  font-size: 1.3rem;

  margin-bottom: 25px;

  color: white;
}

@keyframes blink {

  50% {
    opacity: 0.2;
  }
}

/* Buttons */

button {

  background:
    linear-gradient(
      180deg,
      #ffcc00,
      #ff9100
    );

  color: white;

  border: 3px solid #fff5c2;

  padding: 14px 22px;

  border-radius: 12px;

  font-size: 1rem;

  font-weight: bold;

  cursor: pointer;

  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease;

  box-shadow:
    0 4px 10px rgba(0,0,0,0.2);
}

button:hover {

  transform:
    translateY(-2px)
    scale(1.03);

  box-shadow:
    0 8px 16px rgba(0,0,0,0.25);
}

button:active {
  transform:
    translateY(0px)
    scale(0.99);
  box-shadow:
    0 4px 10px rgba(0,0,0,0.22);
}

/* Grid layout */

.content-grid {

  display: grid;

  grid-template-columns:
    repeat(auto-fit, minmax(320px, 1fr));

  gap: 24px;

  margin-bottom: 30px;
}

/* Cards */

.card {

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.96),
      rgba(255,247,210,0.95)
    );

  border-radius: 20px;

  border: 3px solid #ffd466;

  padding: 24px;

  box-shadow: var(--shadow);

  position: relative;

  overflow: hidden;

  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

.card:hover {
  transform: translateY(-6px);
  box-shadow:
    0 20px 40px rgba(0,0,0,0.2);
}

.card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at top left, rgba(255,255,255,0.35), transparent 20%),
    radial-gradient(circle at bottom right, rgba(255,239,179,0.22), transparent 24%);
  pointer-events: none;
}

.card::after {

  content: "";

  position: absolute;

  top: 0;
  right: 0;

  width: 100px;
  height: 100px;

  background:
    radial-gradient(
      rgba(255,255,255,0.3),
      transparent
    );

  pointer-events: none;
}

.card h2 {

  margin-top: 0;

  color: #c46c00;

  font-size: 1.6rem;

  border-bottom:
    2px dashed #ffd977;

  padding-bottom: 10px;
}

/* Fun neon style */

.neon-border {

  border-color: var(--cyan);

  box-shadow:
    0 0 0 2px rgba(73,231,255,0.25),
    0 8px 24px rgba(0,0,0,0.18);
}

/* Counter */

.counter-box {

  margin-bottom: 24px;

  background: #111;

  color: #00ff66;

  border-radius: 18px;

  border: 3px solid yellow;

  padding: 20px;

  text-align: center;

  box-shadow: var(--shadow);
}

.counter {

  font-size: clamp(2rem, 5vw, 4rem);

  font-family: monospace;

  letter-spacing: 4px;
}

.counter-box {
  position: relative;
}

.counter-box::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(255,255,255,0.08), transparent 20%);
  pointer-events: none;
}

/* Meter */

.meter {

  width: 100%;

  height: 36px;

  border-radius: 999px;

  background: #ececec;

  overflow: hidden;

  border: 2px solid #444;
  background-image:
    repeating-linear-gradient(
      45deg,
      rgba(255,255,255,0.18),
      rgba(255,255,255,0.18) 10px,
      transparent 10px,
      transparent 20px
    );
}

.meter-fill {

  width: 10%;
  height: 100%;

  background:
    linear-gradient(
      90deg,
      yellow,
      orange,
      red
    );

  transition: width 0.4s ease;
}

/* Lists */

ul,
ol {

  padding-left: 20px;

  line-height: 1.8;
}

/* Guestbook */

.entry {

  background: #fffde7;

  border-left: 5px solid var(--pink);

  padding: 12px;

  border-radius: 10px;

  margin-bottom: 12px;
}

/* Awards */

.awards {

  display: flex;

  flex-wrap: wrap;

  gap: 14px;
}

.award {

  background:
    linear-gradient(
      135deg,
      gold,
      #ffb300
    );

  color: #4a2f00;

  padding: 14px;

  border-radius: 12px;

  font-weight: bold;

  flex: 1 1 180px;

  min-width: 180px;

  text-align: center;
}

.manifesto-list,
.playlist {

  padding-left: 22px;

  line-height: 1.8;

}

.recipe-list {

  display: grid;

  gap: 14px;

  margin-top: 16px;

}

.recipe {

  background: rgba(255,255,255,0.92);

  border: 2px dashed #ffb300;

  padding: 16px;

  border-radius: 16px;

}

.recipe strong {

  display: block;

  margin-bottom: 8px;

  color: #b86f00;

}

/* Forms */

input {

  width: 100%;

  margin-bottom: 12px;

  padding: 14px;

  border-radius: 10px;

  border: 2px solid #ffcf66;

  font-size: 1rem;
}

/* Quote section */

.quote-box {

  margin-top: 25px;

  padding: 18px;

  background: #fff7d7;

  border-left: 6px solid orange;

  border-radius: 12px;

  font-style: italic;

  line-height: 1.7;
}

/* Web ring */

.web-ring {

  text-align: center;

  background:
    linear-gradient(
      180deg,
      #dffcff,
      #c5f7ff
    );
}

/* Construction sign */

.under-construction {

  margin-top: 18px;

  font-size: 1.5rem;

  animation: blink 1s infinite;
}

/* Disclaimer */

.disclaimer {

  margin: 40px 0;

  padding: 24px;

  background:
    linear-gradient(
      180deg,
      #2b2b2b,
      #111
    );

  color: #eee;

  border-radius: 18px;

  border: 2px solid #ffd54f;

  box-shadow: var(--shadow);

  text-align: center;
}

.disclaimer h3 {

  color: #ffd54f;

  margin-top: 0;
}

/* Footer */

footer {

  margin-bottom: 30px;

  background: black;

  color: white;

  border-radius: 18px;

  overflow: hidden;

  box-shadow: var(--shadow);
}

footer marquee {

  padding: 12px;

  color: #00ff66;

  font-weight: bold;
}

footer p {

  text-align: center;

  margin: 0;

  padding: 16px;
}

/* Responsive */

@media (max-width: 700px) {

  .hero {

    padding: 24px 18px;
  }

  .card {

    padding: 20px;
  }

}