:root {
  --night-950: #040813;
  --night-900: #0a1630;
  --night-800: #112347;
  --surface-700: #182d54;
  --text-100: #e8efff;
  --text-200: #b8c5e1;
  --red: #f05a6e;
  --blue: #73a7ff;
  --gold: #ffd27a;
  --glass: rgba(255, 255, 255, 0.08);
  --glass-border: rgba(255, 255, 255, 0.19);
  --shadow: 0 22px 55px rgba(3, 10, 28, 0.6);
}

* {
  box-sizing: border-box;
}

.tyr-body {
  min-height: 100vh;
  color: var(--text-100);
  background:
    radial-gradient(circle at 10% 18%, rgba(240, 90, 110, 0.16), transparent 28%),
    radial-gradient(circle at 90% 82%, rgba(115, 167, 255, 0.2), transparent 30%),
    radial-gradient(circle at 75% 15%, rgba(255, 210, 122, 0.08), transparent 24%),
    linear-gradient(160deg, var(--night-950) 0%, var(--night-900) 55%, var(--night-800) 100%);
  background-attachment: fixed;
  font-family: "Manrope", "Segoe UI", Tahoma, sans-serif;
  line-height: 1.55;
}

.hero {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--glass-border);
  border-radius: 22px;
  color: #fff;
  background: linear-gradient(145deg, rgba(9, 22, 48, 0.93), rgba(17, 35, 71, 0.84));
  box-shadow: var(--shadow);
  backdrop-filter: blur(10px);
  isolation: isolate;
  animation: rise 850ms ease-out both;
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 14% 20%, rgba(240, 90, 110, 0.22), transparent 35%),
    radial-gradient(circle at 88% 85%, rgba(115, 167, 255, 0.23), transparent 31%),
    linear-gradient(0deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.06));
  opacity: 1;
  z-index: -1;
}

.hero::after {
  content: "";
  position: absolute;
  right: -16%;
  top: -22%;
  width: 280px;
  height: 280px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255, 210, 122, 0.16), transparent 65%);
  filter: blur(2px);
  z-index: -1;
}

.eyebrow {
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--gold);
}

#headline {
  font-family: "Instrument Serif", Georgia, serif;
  font-style: italic;
  letter-spacing: 0.01em;
  line-height: 1.08;
  font-size: clamp(2rem, 8.5vw, 4rem);
  text-wrap: balance;
}

.subhead {
  max-width: 56ch;
  color: var(--text-200);
  font-size: clamp(1rem, 2.5vw, 1.18rem);
}

.flag-line {
  height: 10px;
  width: min(58vw, 250px);
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    var(--red) 0% 33%,
    rgba(255, 255, 255, 0.9) 33% 66%,
    var(--blue) 66% 100%
  );
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.2), 0 10px 30px rgba(4, 8, 19, 0.5);
}

.panel {
  border: 1px solid var(--glass-border);
  border-radius: 16px;
  background: var(--glass);
  padding: 1rem;
  color: var(--text-100);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(8px);
}

.quote-card {
  margin: 0;
  padding: 1rem 1rem;
  border: 1px solid var(--glass-border);
  border-left: 4px solid var(--gold);
  border-radius: 14px;
  background: linear-gradient(170deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.04));
  box-shadow: 0 14px 34px rgba(3, 10, 28, 0.44);
  backdrop-filter: blur(8px);
  animation: rise 850ms ease-out forwards;
  transition: transform 250ms ease, border-color 250ms ease, box-shadow 250ms ease;
}

.quote-card:hover {
  transform: translateY(-4px);
  border-color: rgba(255, 255, 255, 0.33);
  box-shadow: 0 18px 42px rgba(3, 10, 28, 0.5);
}

.quote-card p {
  margin: 0;
  font-family: "Instrument Serif", Georgia, serif;
  color: #f2f6ff;
  font-size: 1.03rem;
  line-height: 1.45;
}

.quotes-rotator {
  width: 100%;
  position: relative;
  z-index: 0;
}

.quotes-grid {
  display: grid;
  gap: 1rem;
}

.quote-slot {
  min-width: 0;
}

.quote-text {
  transition: opacity 220ms ease;
}

.quote-text.is-fading,
#rotating-citation.is-fading,
#rotating-topic.is-fading {
  opacity: 0;
}

cite {
  display: block;
  margin-top: 0.72rem;
  font-style: normal;
  font-weight: 600;
  letter-spacing: 0.01em;
  font-size: 0.84rem;
  color: #b8c5e1;
}

.site-note {
  margin-top: 1.5rem !important;
  margin-bottom: 0;
  padding: 1rem 1.15rem;
  border: 1px solid var(--glass-border);
  border-left: 3px solid var(--blue);
  background: rgba(255, 255, 255, 0.04);
  color: var(--text-100);
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(3, 10, 28, 0.28);
  backdrop-filter: blur(6px);
  font-size: 0.95rem;
  text-align: left;
  letter-spacing: 0;
}

footer {
  color: #a9b8d8;
  font-size: 0.85rem;
  letter-spacing: 0.02em;
}

@keyframes rise {
  from {
    opacity: 0;
    transform: translateY(12px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (min-width: 768px) {
  .hero {
    border-radius: 28px;
  }

  .panel {
    padding: 1.2rem;
  }

  .quote-card {
    padding: 1.15rem 1.2rem;
  }

  .quotes-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero,
  .quote-card {
    animation: none;
  }

  .quote-card {
    transition: none;
  }

  .quote-text {
    transition: none;
  }
}
