@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/inter-400-1e94a563.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/inter-500-5949f5fc.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/inter-600-a957bd0d.woff2") format("woff2");
}
@font-face {
  font-family: "Bricolage Grotesque";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/bricolage-600-89c531ba.woff2") format("woff2");
}
@font-face {
  font-family: "Bricolage Grotesque";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/bricolage-700-ce5df1ba.woff2") format("woff2");
}
@font-face {
  font-family: "Caveat";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/caveat-600-9eddd13c.woff2") format("woff2");
}
@font-face {
  font-family: "Anton";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/anton-400-89561fac.woff2") format("woff2");
}

@keyframes reservation-pop {
  from { opacity: 0; transform: scale(0.8); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes reservation-rise {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
.reservation-success__logo {
  animation: reservation-pop 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
.reservation-success__title {
  animation: reservation-rise 0.5s ease-out 0.15s both;
}
.reservation-success__body {
  animation: reservation-rise 0.5s ease-out 0.3s both;
}
@media (prefers-reduced-motion: reduce) {
  .reservation-success__logo,
  .reservation-success__title,
  .reservation-success__body {
    animation: none;
  }
}

.goal-bar {
  position: relative;
  overflow: hidden;
}
.goal-bar::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    transparent 25%,
    rgba(255, 255, 255, 0.28) 50%,
    transparent 75%
  );
  transform: translateX(-100%);
  animation: goal-shimmer 5.5s ease-in-out infinite;
}
@keyframes goal-shimmer {
  to { transform: translateX(100%); }
}
@media (prefers-reduced-motion: reduce) {
  .goal-bar::after { animation: none; }
}

.verse-typewriter::after {
  content: "|";
  margin-left: 2px;
  animation: verse-caret 0.9s step-end infinite;
}
@keyframes verse-caret {
  50% { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .verse-typewriter::after {
    content: none;
  }
}

html:has(.is-preview) {
  background: var(--color-brand-coffee);
  scrollbar-width: none;
  -ms-overflow-style: none;
}
html:has(.is-preview)::-webkit-scrollbar,
.is-preview::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
.is-preview {
  scrollbar-width: none;
}
.is-preview * {
  pointer-events: none;
}
.campaign-video {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 0.75rem;
  overflow: hidden;
  --media-object-fit: cover;
}
.video-upload__msg {
  display: none;
}
.video-upload[data-state="uploading"] .video-upload__msg--uploading,
.video-upload[data-state="processing"] .video-upload__msg--processing,
.video-upload[data-state="errored"] .video-upload__msg--errored,
.video-upload[data-state="ready"] .video-upload__msg--ready {
  display: block;
}
mux-player.no-seek::part(time range) {
  pointer-events: none;
}
.video-intro { text-align: center; }
.video-intro h1, .video-intro h2, .video-intro h3 {
  font-weight: 600;
  line-height: 1.15;
  margin-bottom: 0.5rem;
}
.video-intro h1 { font-size: 1.75rem; }
.video-intro h2 { font-size: 1.4rem; }
.video-intro h3 { font-size: 1.15rem; }
.video-intro p {
  font-family: var(--font-sans);
  font-size: 0.95rem;
  line-height: 1.6;
  color: rgb(237 214 192 / 0.7);
  margin-top: 0.5rem;
}
.video-intro ul, .video-intro ol {
  font-family: var(--font-sans);
  font-size: 0.95rem;
  color: rgb(237 214 192 / 0.7);
  text-align: left;
  display: inline-block;
  margin-top: 0.5rem;
  padding-left: 1.25rem;
}
.video-intro ul { list-style: disc; }
.video-intro ol { list-style: decimal; }
.video-intro a { color: var(--color-brand-cream); text-decoration: underline; }
.video-intro strong { color: var(--color-brand-cream); }
