  body {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
      font-family: "Roboto", sans-serif;
  }

  main {
      background-color: #faf7e2;
  }

  .big-hero,
  .big-villain {
      display: flex;
  }

  .hero-content {
      background-color: #160b2b;
      color: #f5f1df;
      flex: 0 0 60%;
      box-sizing: border-box;
      display: flex;
      align-items: center;
  }

  .hero-content .content {
      height: 100%;
      margin: 0;
      padding: clamp(2rem, 1vw, 3rem) 15%;
      display: flex;
      flex-direction: column;
      justify-content: center;
  }

  .hero-content p {
      font-size: clamp(1.1rem, 1.8vw, 1rem);
      font-weight: 400;
      line-height: 1.6;
  }

  .hero-content h1 {
      font-size: clamp(2rem, 7vw, 3.4rem);
      margin: 0 0 1rem 0;
      line-height: 1.2;
  }

  .hero-images {
      display: flex;
      flex-wrap: wrap;
      flex: 0 0 40%;
  }

  .hero-images img {
      width: 50%;
      flex: 0 0 50%;
      box-sizing: border-box;
  }

  .big-villain .hero-images img {
      width: 100%;
      flex: 0 0 100%;
  }

  button {
      background: #dd4760;
      color: #fff;
      padding: clamp(12px, 1rem, 16px) clamp(20px, 2.5em, 30px);
      border: none;
      border-radius: 6px;
      cursor: pointer;
      margin-top: 5%;
      display: block;
      width: fit-content;
      box-sizing: border-box;
      font-size: clamp(0.9rem, 1.3vw, 1.2rem);
  }

  @keyframes pulse {
      0% {
          transform: scale(1);
          box-shadow: 0 0 0 0 rgba(221, 71, 96, 0.7);
      }

      70% {
          transform: scale(1.03);
          box-shadow: 0 0 10px 15px rgba(221, 71, 96, 0);
      }

      100% {
          transform: scale(1);
          box-shadow: 0 0 0 0 rgba(221, 71, 96, 0);
      }
  }

  .quiz-button {
      animation: pulse 2.5s infinite;
  }

  button:hover,
  button:focus {
      background: #e73c69;
      animation: none;
  }

  .submit-story a {
      text-decoration: none;
      color: white;
  }

  .button-container {
      width: 100%;
      display: flex;
      justify-content: center;
      align-items: flex-start;
      height: fit-content;
      margin-bottom: clamp(20px, 5vw, 100px);
  }

  .research-card-link {
      text-decoration: none;
      color: inherit;
  }

  .research-btn {
      display: inline-flex;
      align-items: center;
      flex-wrap: nowrap;
      margin: 0;
  }

  .research-btn .arrow {
      margin-left: 0.5em;
      display: flex;
      align-items: center;
  }

  @media (max-width: 900px) {

      .big-hero,
      .big-villain {
          flex-direction: column;
      }

      .hero-images,
      .hero-content {
          flex: 1 1 100%;
          width: 100%;
      }

      .hero-content .content {
          padding: 4rem 10%;
      }

      .research-btn {
          padding: clamp(8px, 0.6rem, 80px) clamp(10px, 1.8em, 12px);
      }

      .research-btn .arrow {
          padding-top: 0.3em;
      }
  }

  @media (max-width: 500px) {
      .hero-content .content {
          padding: 3rem 8%;
      }
  }

  .pin-container {
      position: relative;
      width: 100%;
  }

  .auto-slider-section {
      position: sticky;
      top: 0;
      height: 100vh;
      width: 100%;
      overflow: hidden;
      background-color: #faf7e2;
      display: flex;
      align-items: center;
  }

  .auto-slider-track {
      display: flex;
      width: fit-content;
      position: relative;
      padding-left: 15vw;
  }

  .auto-slider-card {
      width: 60vw;
      max-width: 800px;
      margin: 0 2vw;
      display: flex;
      flex-direction: column;
      flex-shrink: 0;
      box-sizing: border-box;
      color: #160b2b;
      background: #ffffff;
      border-radius: 12px;
      box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
      overflow: hidden;
  }

  .slider-card-image-wrapper {
      width: 100%;
      aspect-ratio: 16 / 9;
  }

  .slider-card-image-wrapper img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
  }

  .slider-card-content {
      padding: 2rem;
      box-sizing: border-box;
  }

  .slider-card-content h3 {
      font-size: clamp(1.3rem, 2.5vw, 1.8rem);
      margin: 0 0 0.75rem 0;
  }

  .slider-card-content p {
      font-size: clamp(0.9rem, 1.5vw, 1.0rem);
      line-height: 1.6;
      margin: 0;
  }

  @media (max-width: 768px) {
      .auto-slider-track {
          padding-left: 5vw;
      }

      .auto-slider-card {
          width: 80vw;
      }
  }


  /* --- Event Popup Styles --- */
  #event-popup-overlay {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(22, 11, 43, 0.8);
      /* Dark purple with transparency */
      display: none;
      /* Hidden by default */
      justify-content: center;
      align-items: center;
      z-index: 1001;
      backdrop-filter: blur(5px);
      -webkit-backdrop-filter: blur(5px);
      animation: fadeIn 0.3s ease-out;
  }

  @keyframes fadeIn {
      from {
          opacity: 0;
      }

      to {
          opacity: 1;
      }
  }

  #event-popup {
      position: relative;
      background: #f5f1df;
      /* Cream background from site */
      color: #160b2b;
      /* Dark purple text */
      border-radius: 20px;
      max-width: 800px;
      width: 90%;
      display: flex;
      box-shadow: 0 15px 40px rgba(0, 0, 0, 0.2);
      overflow: hidden;
      /* Important for the shapes and rounded corners */
      transform-origin: center;
      animation: scaleUp 0.4s cubic-bezier(0.165, 0.84, 0.44, 1) forwards;
  }

  @keyframes scaleUp {
      from {
          transform: scale(0.8) translateY(20px);
          opacity: 0;
      }

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

  /* Decorative Background Shapes */
  #event-popup::before,
  #event-popup::after {
      content: '';
      position: absolute;
      z-index: 0;
      border-radius: 50%;
      filter: blur(40px);
  }

  #event-popup::before {
      width: 250px;
      height: 250px;
      background: #dd4760;
      /* Pink from site */
      top: -80px;
      right: -80px;
      opacity: 0.3;
  }

  #event-popup::after {
      width: 200px;
      height: 200px;
      background: #160b2b;
      /* Purple from site */
      bottom: -100px;
      left: -80px;
      opacity: 0.2;
  }

  #close-popup-btn {
      position: absolute;
      top: 15px;
      right: 15px;
      background: #160b2b;
      color: #f5f1df;
      border: none;
      width: 35px;
      height: 35px;
      border-radius: 50%;
      font-size: 24px;
      line-height: 35px;
      text-align: center;
      padding: 0;
      cursor: pointer;
      z-index: 3;
      transition: transform 0.2s ease, background-color 0.2s ease;
  }

  #close-popup-btn:hover {
      transform: scale(1.1);
      background-color: #dd4760;
  }

  /* Popup Layout */
  .popup-image-section {
      flex: 0 0 40%;
      position: relative;
      z-index: 1;
  }

  .popup-image-section img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
  }

  .popup-content-section {
      flex: 1 1 60%;
      padding: clamp(1.5rem, 5vw, 3rem);
      position: relative;
      z-index: 1;
      display: flex;
      flex-direction: column;
      justify-content: center;
  }

  /* Content Styling */
  .popup-content-section h3 {
      font-size: clamp(0.9rem, 2vw, 1rem);
      color: #dd4760;
      margin: 0 0 0.25rem 0;
      font-weight: 700;
      letter-spacing: 1.5px;
      text-transform: uppercase;
  }

  .popup-content-section h2 {
      font-size: clamp(1.5rem, 5vw, 2.5rem);
      margin: 0 0 1rem 0;
      line-height: 1.2;
  }

  .popup-content-section p {
      font-size: clamp(0.9rem, 2vw, 1rem);
      line-height: 1.6;
      margin: 0 0 1.5rem 0;
  }

  .popup-details {
      background: rgba(22, 11, 43, 0.05);
      border-radius: 8px;
      padding: 1rem;
      margin-bottom: 1.5rem;
  }

  .popup-details p {
      margin: 0.5rem 0;
      font-size: clamp(0.85rem, 2vw, 0.95rem);
  }

  .popup-details p strong {
      color: #160b2b;
  }

  .popup-cta-btn {
      background: #dd4760;
      color: #fff;
      padding: 12px 25px;
      border-radius: 6px;
      text-decoration: none;
      font-weight: bold;
      display: inline-block;
      text-align: center;
      transition: background-color 0.3s ease, transform 0.3s ease;
      align-self: flex-start;
      border: none;
      font-size: clamp(0.9rem, 1.3vw, 1rem);
  }

  .popup-cta-btn:hover {
      background: #e73c69;
      transform: translateY(-2px);
  }

  /* Responsive Styles */
  @media (max-width: 768px) {
      #event-popup {
          flex-direction: column;
          max-width: 400px;
          width: 90%;
      }

      .popup-image-section {
          flex: 0 0 180px;
          /* Fixed height for image on mobile */
      }
  }