/* Base */

* {
    box-sizing: border-box;
  }
  
  html, body {
    margin: 0;
    padding: 0;
  }
  
  body {
    font-family: Georgia, "Times New Roman", Times, serif;
    margin: 0;
    color: #111;
    background: #fff;
  }
  
  .hero-headline {
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    font-weight: 400;
    letter-spacing: -0.02em;
  }

  /* Navigation */
  
  .nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.25rem 2rem;
  }
  
  .nav a {
    text-decoration: none;
    color: inherit;
    font-size: 0.95rem;
  }
  
  .brand {
    font-weight: 500;
  }
  
  /* Hero */
  
  .hero {
    min-height: calc(100vh - 72px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    text-align: center;
  }
  
  .media {
    margin-bottom: 2.5rem;
  }
  
  .media-placeholder {
    width: 320px;
    height: 200px;
    background: #eee;
  }
  
  /* Headline */
  
  .headline {
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 400;
    letter-spacing: -0.01em;
  }
  
  #rotating-text {
    display: inline-block;
    transition: opacity 0.3s ease;
  }
  
  .fade-out {
    opacity: 0;
  }
  
  /* Content */
  
  .content {
    max-width: 720px;
    padding: 4rem 2rem;
  }
  
  .content h1 {
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 400;
    margin-bottom: 2rem;
  }
  
  .content p {
    margin-bottom: 1.5rem;
  }
  
  /* Accessibility */
  
  a:focus {
    outline: 2px solid #000;
    outline-offset: 2px;
  }
  
  /* Mobile */
  
  @media (min-width: 1024px) {
    .hero-media img {
      width: 60vw;
      max-width: 1100px;
    }
  }

  .hero-gif {
    width: 100vw;
    max-width: 1100px;
    height: auto;
    display: block;
    margin: 3rem auto 0;
  }
  