/* First screen. Phone: the film in the top half, the headline crossing its lower edge, the button under the thumb.
   Laptop: the film full bleed with the words low on it. */
.hero { position: relative; isolation: isolate; overflow: hidden; background: var(--ink); }
.hero-film { position: relative; z-index: -1; height: clamp(320px, 50svh, 500px); background: var(--ink); }
.hero-film video { width: 100%; height: 100%; object-fit: cover; object-position: 22% 50%; }
.hero-film video::-webkit-media-controls { display: none !important; } /* the browser adds controls when scripting is off */
.hero-film::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(to top, var(--ink) 0%, rgba(10, 11, 13, 0.6) 26%, rgba(10, 11, 13, 0) 52%),
    linear-gradient(to bottom, rgba(10, 11, 13, 0.55) 0%, rgba(10, 11, 13, 0) 26%);
}

.hero-copy { width: 100%; max-width: var(--wide); margin: -5.2rem auto 0; padding: 0 var(--gut) 30px; }
.hero-kicker {
  position: absolute; top: 20px; left: var(--gut); right: var(--gut);
  font: 700 0.7rem/1.4 var(--display); text-transform: uppercase; letter-spacing: 0.26em; color: var(--ice);
}
.hero h1 {
  font: 700 clamp(2.2rem, 10.4vw, 7rem)/0.98 var(--display); text-transform: uppercase; letter-spacing: -0.02em;
}
.hero h1 .line { display: block; }

.beadline { width: min(320px, 82%); height: 16px; margin: 18px 0 16px; overflow: visible; }
.beadline line { stroke: var(--ice); stroke-width: 1; opacity: 0.55; }
.beadline circle { fill: var(--ice); transform-box: fill-box; transform-origin: center; }

.hero-lede { max-width: 30em; font-size: 1rem; line-height: 1.5; color: #d6d3cd; }
.hero-prices { display: flex; margin: 20px 0; border-top: 1px solid var(--line-strong); }
.hero-prices div { flex: 1; padding-top: 12px; }
.hero-prices div + div { padding-left: 16px; border-left: 1px solid var(--line-strong); margin-left: 16px; }
.hero-prices dt { font-size: 0.86rem; color: var(--mute); }
.hero-prices dd { font: 700 1.28rem/1.2 var(--display); text-transform: uppercase; margin-top: 4px; }
.btn-hero { width: 100%; min-height: 56px; font-size: 0.82rem; }
.hero-hours { display: none; }

@media (min-width: 760px) {
  .hero { display: flex; align-items: flex-end; min-height: calc(100svh - var(--bar-h) - 48px); max-height: 980px; }
  .hero-film { position: absolute; inset: 0; height: auto; z-index: -1; }
  .hero-film video { object-position: 50% 50%; }
  .hero-film::after {
    background:
      linear-gradient(to right, rgba(10, 11, 13, 0.9) 0%, rgba(10, 11, 13, 0.62) 38%, rgba(10, 11, 13, 0.05) 68%),
      linear-gradient(to top, rgba(10, 11, 13, 0.92) 0%, rgba(10, 11, 13, 0) 45%),
      linear-gradient(to bottom, rgba(10, 11, 13, 0.5) 0%, rgba(10, 11, 13, 0) 22%);
  }
  .hero-copy {
    display: grid; grid-template-columns: minmax(0, 400px) minmax(0, 360px); column-gap: 48px; justify-content: start; align-items: end;
    margin-top: 0; padding-top: 40px; padding-bottom: 44px;
  }
  .hero-kicker { position: static; grid-column: 1 / -1; margin-bottom: 20px; }
  .hero h1 { grid-column: 1 / -1; font-size: min(6.4vw, 7rem); }
  .beadline { grid-column: 1 / -1; margin: 20px 0 20px; }
  .hero-prices { grid-column: 2; grid-row: 4; margin: 0; }
  .hero-lede { grid-column: 1; grid-row: 4; }
  .btn-hero { grid-column: 1; grid-row: 5; margin-top: 28px; }
  .hero-hours { display: block; grid-column: 2; grid-row: 5; align-self: center; margin-top: 28px; font-size: 0.9rem; color: var(--mute); }
}

/* The staged load, once: the film comes up from black, the words rise line by line, the beads gather, the rest settles. */
@media (prefers-reduced-motion: no-preference) {
  .hero-film { animation: film-in 1800ms var(--ease) both; }
  .hero-kicker, .hero h1 .line, .hero-lede, .hero-prices, .btn-hero, .hero-hours { animation: rise 900ms var(--ease) both; }
  .hero-kicker { animation-delay: 250ms; }
  .hero h1 .line:nth-child(1) { animation-delay: 380ms; }
  .hero h1 .line:nth-child(2) { animation-delay: 500ms; }
  .hero h1 .line:nth-child(3) { animation-delay: 620ms; }
  .beadline line { stroke-dasharray: 320; animation: draw 1100ms var(--ease) 820ms both; }
  .beadline circle { animation: bead 700ms var(--ease) both; }
  .beadline circle:nth-of-type(1) { animation-delay: 900ms; }
  .beadline circle:nth-of-type(2) { animation-delay: 970ms; }
  .beadline circle:nth-of-type(3) { animation-delay: 1040ms; }
  .beadline circle:nth-of-type(4) { animation-delay: 1110ms; }
  .beadline circle:nth-of-type(5) { animation-delay: 1180ms; }
  .beadline circle:nth-of-type(6) { animation-delay: 1250ms; }
  .hero-lede { animation-delay: 960ms; }
  .hero-prices { animation-delay: 1060ms; }
  .btn-hero { animation-delay: 1160ms; }
  .hero-hours { animation-delay: 1240ms; }
}
@keyframes film-in { from { opacity: 0; transform: scale(1.06); } to { opacity: 1; transform: none; } }
@keyframes rise { from { opacity: 0; transform: translateY(0.6em); } to { opacity: 1; transform: none; } }
@keyframes draw { from { stroke-dashoffset: 320; } to { stroke-dashoffset: 0; } }
@keyframes bead { from { opacity: 0; transform: scale(0); } to { opacity: 1; transform: none; } }
