/* QueueBreeze food-truck hero treatment — selected concept 04. */
.site-header .brand-logo {
  background: transparent;
  content: url("/assets/images/queuebreeze-logo-final.png");
  mix-blend-mode: normal;
}

/* Preserve the selected QueueBreeze artwork's true black and red colours. */
.brand-logo,
.mini-brand-mark {
  filter: none;
  mix-blend-mode: normal;
}

/* The static export references this shared QR in several product mockups. */
.qr-mark {
  background-image: url("/rushdish-order-qr.png?v=20260805-restored1");
}

.hero {
  background-color: #fffaf7;
  background-image: linear-gradient(
    180deg,
    #fffaf7 0%,
    #fffaf7 54%,
    #fde8e7 78%,
    #f8dedd 100%
  );
  padding-bottom: 42px;
}

/* Keep the full-width truck composition, then dissolve its lower edge into
   the pale-red paper field so the artwork never ends on a hard white line. */
.hero::before {
  content: "";
  display: block !important;
  position: absolute;
  inset: 0;
  z-index: 0;
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  background: url("/assets/images/rushdish-food-truck-festival-lane-selected-20260805.png") center top / max(1500px, 100vw) auto no-repeat;
  box-shadow: none;
  filter: none;
  opacity: 1;
  pointer-events: none;
  transform: none;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 52%, rgba(0, 0, 0, 0.72) 61%, transparent 74%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 52%, rgba(0, 0, 0, 0.72) 61%, transparent 74%);
}

.hero::after,
.hero-orb {
  display: none !important;
}

.hero-copy,
.hero-stage {
  position: relative;
  z-index: 1;
}

/* Keep the supporting copy within the artwork's clear centre corridor. */
.hero-subtitle {
  max-width: 560px;
}

/* Make the hero phone explain the product at a glance: the guest has scanned
   a QR code and the matching food-truck menu is ready to open. */
.hero-phone {
  color: #fff;
  background: #171112;
}

.hero-phone .phone-top {
  color: #151617;
  background: #fff;
}

.phone-scan-screen {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: calc(100% - 29px);
  padding: 19px 15px 15px;
  background:
    radial-gradient(circle at 50% 31%, rgba(214, 40, 40, 0.22), transparent 37%),
    linear-gradient(180deg, #241718 0%, #120f10 100%);
}

.phone-scan-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  margin-bottom: 14px;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.phone-scan-header span:last-child {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #ffb9b7;
  font-size: 7px;
  letter-spacing: 0.14em;
}

.phone-scan-header span:last-child::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #ef2c2c;
  box-shadow: 0 0 0 4px rgba(239, 44, 44, 0.18);
}

.phone-scan-viewfinder {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  width: 100%;
  max-width: 205px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 21px;
  background: rgba(255, 255, 255, 0.045);
  box-shadow: inset 0 0 50px rgba(214, 40, 40, 0.16), 0 18px 38px rgba(0, 0, 0, 0.28);
}

.phone-scan-qr {
  width: 74%;
  max-width: 150px;
  padding: 8px;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.9), 0 0 34px rgba(255, 255, 255, 0.18);
}

.phone-scan-qr .qr-mark {
  display: block;
  aspect-ratio: 1;
  width: 100%;
  max-width: none;
  height: auto;
  border: 0;
}

.phone-scan-beam {
  position: absolute;
  z-index: 2;
  top: 18%;
  left: 8%;
  width: 84%;
  height: 2px;
  border-radius: 999px;
  background: #ef2c2c;
  box-shadow: 0 0 9px #ef2c2c, 0 0 20px rgba(239, 44, 44, 0.7);
  animation: rushdish-phone-qr-scan 2.35s ease-in-out infinite;
}

.phone-scan-success {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  margin-top: 14px;
  min-height: 50px;
  padding: 10px 11px;
  border: 1px solid rgba(187, 40, 40, 0.28);
  border-radius: 12px;
  color: #241c1c;
  background: #fff;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.15);
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

.phone-scan-check {
  display: grid;
  flex: none;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  color: #fff;
  background: #d62828;
  font-size: 15px;
  font-weight: 900;
  box-shadow: 0 0 0 5px rgba(214, 40, 40, 0.12);
}

.phone-scan-success b,
.phone-scan-success small {
  display: block;
}

.phone-scan-success b {
  font-size: 10.5px;
  line-height: 1.1;
  letter-spacing: -0.01em;
}

.phone-scan-success small {
  margin-top: 3px;
  color: #655a5b;
  font-size: 8px;
  font-weight: 550;
  line-height: 1.2;
}

.phone-scan-open {
  width: 100%;
  margin-top: 10px;
  min-height: 36px;
  padding: 10px 13px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 9px;
  color: #fff;
  background: #d62828;
  font: inherit;
  font-size: 10.5px;
  font-weight: 850;
  line-height: 1;
  letter-spacing: 0.01em;
  box-shadow: 0 7px 16px rgba(151, 19, 19, 0.28);
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

.phone-scan-open span {
  float: right;
}

@keyframes rushdish-phone-qr-scan {
  0%, 100% {
    top: 17%;
    opacity: 0;
  }
  12%, 45% {
    opacity: 1;
  }
  72% {
    top: 82%;
    opacity: 1;
  }
  86% {
    top: 82%;
    opacity: 0;
  }
}

.ticker {
  position: relative;
  z-index: 5;
  margin-top: -14px;
}

@media (max-width: 900px) {
  .hero {
    background-image: linear-gradient(180deg, #fffaf7 0%, #fffaf7 48%, #fde8e7 76%, #f8dedd 100%);
  }

  .hero::before {
    background-position: 20% top;
    background-size: auto 820px;
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 46%, rgba(0, 0, 0, 0.76) 58%, transparent 75%);
    mask-image: linear-gradient(to bottom, #000 0%, #000 46%, rgba(0, 0, 0, 0.76) 58%, transparent 75%);
  }
}

@media (max-width: 680px) {
  .hero::before {
    background-position: 19% top;
    background-size: auto 720px;
  }

  .phone-scan-screen {
    padding: 17px 12px 12px;
  }

  .phone-scan-header {
    margin-bottom: 10px;
  }

  .phone-scan-viewfinder {
    max-width: 155px;
    border-radius: 17px;
  }

  .phone-scan-success {
    margin-top: 10px;
    padding: 8px;
  }

  .phone-scan-check {
    width: 24px;
    height: 24px;
  }
}

/* Centre the benefit copy independently from the tick icon. */
.scan-ready-badge {
  box-sizing: border-box;
  justify-content: center;
  min-height: 70px;
  width: 224px;
  padding: 12px 48px;
}

.scan-ready-badge > span {
  position: absolute;
  left: 15px;
}

.scan-ready-badge > div {
  align-items: center;
  text-align: center;
  white-space: nowrap;
}

/* Pulse the status core and send a softer glow through each ring. */
.signal-moon {
  animation: rushdish-core-glow 2.8s ease-in-out infinite;
}

.signal-line {
  animation: rushdish-ring-glow 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 2px rgba(214, 40, 40, 0.28));
}

.signal-line--2 {
  animation-delay: 0.22s;
}

.signal-line--3 {
  animation-delay: 0.44s;
}

@keyframes rushdish-core-glow {
  0%, 100% {
    box-shadow: 0 0 22px rgba(214, 40, 40, 0.32);
  }
  50% {
    box-shadow: 0 0 82px rgba(214, 40, 40, 0.92), 0 0 125px rgba(214, 40, 40, 0.32);
  }
}

@keyframes rushdish-ring-glow {
  0%, 100% {
    border-color: rgba(214, 40, 40, 0.24);
    opacity: 0.46;
    filter: drop-shadow(0 0 1px rgba(214, 40, 40, 0.16));
  }
  50% {
    border-color: rgba(214, 40, 40, 0.76);
    opacity: 1;
    filter: drop-shadow(0 0 9px rgba(214, 40, 40, 0.62));
  }
}

/* Preserve the dashboard's true centre after removing the redundant logo. */
.dashboard-bar {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
}

.dashboard-brand {
  justify-self: start;
}

.dashboard-event {
  justify-self: center;
}

.dashboard-avatar {
  display: none !important;
}

/* Four equal repetitions are created by rushdish-enhancements.js. */
.ticker-track[data-rushdish-loop="true"] {
  animation-name: rushdish-seamless-ticker;
  will-change: transform;
}

@keyframes rushdish-seamless-ticker {
  to {
    transform: translateX(var(--rushdish-ticker-shift, -25%));
  }
}

/* Give the featured plan real reading space on pointer devices. */
.pricing-grid,
.price-card {
  transition: grid-template-columns 420ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 420ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 320ms ease,
    box-shadow 320ms ease;
}

@media (min-width: 1200px) and (hover: hover) {
  .pricing-grid:has(.price-card--featured:hover) .price-card--featured {
    z-index: 2;
    transform: translateY(-28px) scale(1.14);
    box-shadow: 0 34px 85px rgba(127, 29, 29, 0.38);
  }

  .pricing-grid:has(.price-card--featured:hover) .price-card:first-child {
    transform: translateX(-92px) scale(0.96);
    opacity: 0.72;
  }

  .pricing-grid:has(.price-card--featured:hover) .price-card:last-child {
    transform: translateX(92px) scale(0.96);
    opacity: 0.72;
  }
}

@media (min-width: 901px) and (max-width: 1199px) and (hover: hover) {
  .pricing-grid:has(.price-card--featured:hover) .price-card--featured {
    z-index: 2;
    transform: translateY(-21px) scale(1.06);
  }

  .pricing-grid:has(.price-card--featured:hover) .price-card:first-child {
    transform: translateX(-24px) scale(0.98);
    opacity: 0.82;
  }

  .pricing-grid:has(.price-card--featured:hover) .price-card:last-child {
    transform: translateX(24px) scale(0.98);
    opacity: 0.82;
  }
}

/* Give the featured plan's upfront price a one-shot chrome burst on each
   pointer entry. Leaving the card removes the animation so it reliably
   restarts on the next hover. */
.price-card--featured .price span b:first-of-type {
  position: relative;
  z-index: 3;
  display: inline-block;
  transform-origin: left center;
}

@media (hover: hover) {
  .price-card--featured:hover .price span b:first-of-type {
    background-image: linear-gradient(
      105deg,
      #575b63 0%,
      #f8fbff 16%,
      #858b96 31%,
      #ffffff 48%,
      #6f747d 65%,
      #eef2f7 82%,
      #8b9099 100%
    );
    background-position: 120% center;
    background-size: 220% 100%;
    background-clip: text;
    -webkit-background-clip: text;
    animation: rushdish-chrome-price-burst 1.7s cubic-bezier(0.22, 1, 0.36, 1) both;
    will-change: transform, filter;
  }
}

@keyframes rushdish-chrome-price-burst {
  0% {
    transform: translate3d(0, 0, 0) scale(1);
    color: #ffffff;
    -webkit-text-fill-color: #ffffff;
    text-shadow: none;
    filter: none;
  }
  11% {
    transform: translate3d(-2px, -1px, 0) rotate(-1.2deg) scale(1.38);
    color: transparent;
    -webkit-text-fill-color: transparent;
    text-shadow: 0 0 7px rgba(255, 255, 255, 0.82), 0 0 18px rgba(207, 220, 235, 0.66);
    filter: drop-shadow(0 3px 3px rgba(30, 31, 35, 0.34));
  }
  17% {
    transform: translate3d(3px, 1px, 0) rotate(1.1deg) scale(1.5);
  }
  23% {
    transform: translate3d(-3px, 0, 0) rotate(-0.9deg) scale(1.48);
  }
  29% {
    transform: translate3d(2px, -1px, 0) rotate(0.7deg) scale(1.5);
    background-position: -20% center;
  }
  36% {
    transform: translate3d(-1px, 0, 0) rotate(-0.35deg) scale(1.46);
  }
  44% {
    transform: translate3d(0, 0, 0) rotate(0) scale(1.42);
    color: transparent;
    -webkit-text-fill-color: transparent;
    text-shadow: 0 0 9px rgba(255, 255, 255, 0.92), 0 0 24px rgba(210, 224, 240, 0.72);
    filter: drop-shadow(0 4px 4px rgba(30, 31, 35, 0.28));
  }
  70% {
    transform: translate3d(0, 0, 0) scale(1.14);
    color: rgba(255, 255, 255, 0.94);
    -webkit-text-fill-color: rgba(255, 255, 255, 0.94);
    text-shadow: 0 0 7px rgba(255, 255, 255, 0.38);
    filter: none;
    background-position: -120% center;
  }
  100% {
    transform: translate3d(0, 0, 0) scale(1);
    color: #ffffff;
    -webkit-text-fill-color: #ffffff;
    text-shadow: none;
    filter: none;
    background-position: -120% center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .signal-moon,
  .signal-line,
  .ticker-track,
  .pricing-grid,
  .price-card,
  .price-card--featured .price span b:first-of-type {
    animation: none !important;
    transition: none !important;
  }
}

/* Two-step event enquiry flow. */
body.rushdish-modal-open {
  overflow: hidden;
}

.rushdish-contact-backdrop {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  overflow-y: auto;
  background: rgba(30, 20, 20, 0.68);
  backdrop-filter: blur(10px);
}

.rushdish-contact-backdrop[hidden],
.rushdish-contact-step[hidden],
.rushdish-contact-success[hidden],
.rushdish-contact-progress[hidden],
.rushdish-contact-error[hidden] {
  display: none !important;
}

.rushdish-contact-modal {
  position: relative;
  width: min(720px, 100%);
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  border: 1px solid rgba(214, 40, 40, 0.38);
  border-radius: 30px;
  padding: 34px;
  background:
    radial-gradient(circle at 100% 0, rgba(214, 40, 40, 0.11), transparent 30%),
    #fffaf7;
  color: #211919;
  box-shadow: 0 36px 100px rgba(42, 15, 15, 0.34);
}

.rushdish-contact-close {
  position: absolute;
  z-index: 2;
  top: 18px;
  right: 20px;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(214, 40, 40, 0.24);
  border-radius: 50%;
  background: #fff;
  color: #211919;
  font: inherit;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
}

.rushdish-contact-progress {
  display: flex;
  align-items: center;
  width: min(390px, calc(100% - 52px));
  margin-bottom: 30px;
  color: #7d6b6b;
}

.rushdish-contact-progress span {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.rushdish-contact-progress span::first-letter {
  color: #fff;
}

.rushdish-contact-progress span {
  border-radius: 999px;
  padding: 7px 12px;
  background: #f2e6e3;
}

.rushdish-contact-progress span.is-active {
  background: #d62828;
  color: #fff;
}

.rushdish-contact-progress i {
  flex: 1;
  height: 1px;
  background: rgba(214, 40, 40, 0.28);
}

.rushdish-contact-modal h2 {
  margin: 8px 0 10px;
  max-width: 590px;
  font-size: clamp(34px, 5vw, 56px);
  line-height: 0.98;
  letter-spacing: -0.055em;
}

.rushdish-contact-intro {
  max-width: 590px;
  margin: 0 0 24px;
  color: #665757;
  line-height: 1.55;
}

.rushdish-contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 20px;
}

.rushdish-contact-form label {
  display: grid;
  gap: 8px;
  color: #332929;
  font-size: 13px;
  font-weight: 700;
}

.rushdish-contact-form label > span {
  color: #8c7b7b;
  font-weight: 500;
}

.rushdish-contact-form input,
.rushdish-contact-form select,
.rushdish-contact-form textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #decaca;
  border-radius: 14px;
  padding: 13px 14px;
  background: #fff;
  color: #211919;
  font: inherit;
  font-weight: 450;
  outline: none;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.rushdish-contact-form input:focus,
.rushdish-contact-form select:focus,
.rushdish-contact-form textarea:focus {
  border-color: #d62828;
  box-shadow: 0 0 0 4px rgba(214, 40, 40, 0.12);
}

.rushdish-contact-form textarea {
  min-height: 180px;
  resize: vertical;
  line-height: 1.5;
}

.rushdish-contact-form .rushdish-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
}

.rushdish-contact-form .button--full {
  margin-top: 2px;
}

.rushdish-contact-note {
  display: block;
  margin-top: 12px;
  color: #806f6f;
  text-align: center;
  line-height: 1.45;
}

.rushdish-contact-summary {
  margin: -4px 0 18px;
  border-left: 3px solid #d62828;
  border-radius: 0 10px 10px 0;
  padding: 10px 14px;
  background: rgba(214, 40, 40, 0.07);
  color: #695858;
  font-size: 13px;
}

.rushdish-contact-actions {
  display: grid;
  grid-template-columns: 0.45fr 1fr;
  gap: 12px;
  margin-top: 18px;
}

.rushdish-contact-actions .button {
  width: 100%;
}

.rushdish-contact-error {
  margin: 14px 0 0;
  border-radius: 12px;
  padding: 12px 14px;
  background: #ffe5e5;
  color: #981f1f;
  font-size: 13px;
  font-weight: 650;
}

.rushdish-contact-success {
  padding: 26px 6px 8px;
  text-align: center;
}

.rushdish-contact-success h2,
.rushdish-contact-success p {
  margin-right: auto;
  margin-left: auto;
}

.rushdish-contact-success > p:not(.eyebrow) {
  max-width: 510px;
  color: #665757;
  line-height: 1.55;
}

.rushdish-success-rush {
  position: relative;
  width: min(360px, 90%);
  height: 112px;
  margin: 0 auto 10px;
  overflow: hidden;
}

.rushdish-success-racing-mark,
.rushdish-success-wordmark {
  position: absolute;
  top: 50%;
  left: 50%;
  height: auto;
  object-fit: contain;
}

.rushdish-success-racing-mark {
  z-index: 3;
  width: 74px;
  height: 74px;
  background: transparent;
  object-fit: cover;
  object-position: left center;
  image-rendering: auto;
  backface-visibility: hidden;
  transform-origin: 50% 50%;
  will-change: transform, opacity;
  animation: rushdish-logo-rush 1.12s cubic-bezier(0.16, 1, 0.3, 1) both;
  filter: drop-shadow(0 10px 16px rgba(118, 20, 20, 0.34));
}

.rushdish-success-wordmark {
  z-index: 4;
  width: 205px;
  background: transparent;
  animation: rushdish-wordmark-arrive 560ms cubic-bezier(0.2, 0.9, 0.25, 1.12) 760ms both;
}

.rushdish-success-burst {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  width: 70px;
  height: 70px;
  border: 2px solid rgba(214, 40, 40, 0.66);
  border-radius: 50%;
  animation: rushdish-speed-burst 680ms ease-out 470ms both;
}

.rushdish-speed-lines,
.rushdish-speed-lines i {
  position: absolute;
  inset: 0;
}

.rushdish-speed-lines i::before,
.rushdish-speed-lines i::after {
  content: "";
  position: absolute;
  left: -52%;
  width: 72%;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgba(214, 40, 40, 0.16) 22%, #d62828 100%);
  transform: skewX(-20deg);
  animation: rushdish-speed-line 820ms cubic-bezier(0.12, 0.7, 0.22, 1) both;
}

.rushdish-speed-lines i::before {
  top: calc(36px + var(--rushdish-line-offset, 0px));
}

.rushdish-speed-lines i::after {
  top: calc(62px + var(--rushdish-line-offset, 0px));
  width: 54%;
  height: 2px;
  animation-delay: 70ms;
}

.rushdish-speed-lines i:nth-child(2) {
  --rushdish-line-offset: 12px;
}

.rushdish-speed-lines i:nth-child(2)::before,
.rushdish-speed-lines i:nth-child(2)::after {
  animation-delay: 90ms;
}

.rushdish-speed-lines i:nth-child(3) {
  --rushdish-line-offset: -13px;
}

.rushdish-speed-lines i:nth-child(3)::before,
.rushdish-speed-lines i:nth-child(3)::after {
  animation-delay: 160ms;
}

.rushdish-contact-success > .eyebrow,
.rushdish-contact-success > h2,
.rushdish-contact-success > p:not(.eyebrow),
.rushdish-contact-success > .button {
  animation: rushdish-success-copy-arrive 520ms ease-out both;
}

.rushdish-contact-success > .eyebrow {
  animation-delay: 930ms;
}

.rushdish-contact-success > h2 {
  animation-delay: 1.01s;
}

.rushdish-contact-success > p:not(.eyebrow) {
  animation-delay: 1.09s;
}

.rushdish-contact-success > .button {
  animation-delay: 1.17s;
}

@keyframes rushdish-logo-rush {
  0% {
    opacity: 0;
    transform: translate(-430px, -50%) rotate(-14deg) scale(0.62);
  }
  14% {
    opacity: 1;
  }
  52% {
    opacity: 1;
    transform: translate(20px, -50%) rotate(2.8deg) scale(1.2);
  }
  65% {
    transform: translate(-50%, -50%) rotate(-1.4deg) scale(0.94);
  }
  76% {
    opacity: 1;
    transform: translate(-50%, -50%) rotate(0) scale(1);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.84);
  }
}

@keyframes rushdish-speed-line {
  0% {
    opacity: 0;
    transform: translateX(-80px) skewX(-20deg) scaleX(0.38);
  }
  24% {
    opacity: 1;
  }
  72% {
    opacity: 0.82;
    transform: translateX(214px) skewX(-20deg) scaleX(1);
  }
  100% {
    opacity: 0;
    transform: translateX(310px) skewX(-20deg) scaleX(0.18);
  }
}

@keyframes rushdish-speed-burst {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.3);
  }
  24% {
    opacity: 0.75;
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(1.72);
  }
}

@keyframes rushdish-wordmark-arrive {
  0% {
    opacity: 0;
    transform: translate(calc(-50% + 30px), -50%) scale(0.92);
    filter: blur(7px);
  }
  70% {
    opacity: 1;
    transform: translate(calc(-50% - 4px), -50%) scale(1.025);
    filter: blur(0);
  }
  100% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    filter: blur(0);
  }
}

@keyframes rushdish-success-copy-arrive {
  0% {
    opacity: 0;
    transform: translateY(12px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.rushdish-contact-success .button {
  max-width: 340px;
  margin: 24px auto 0;
}

@media (max-width: 640px) {
  .rushdish-contact-backdrop {
    place-items: end center;
    padding: 0;
  }

  .rushdish-contact-modal {
    width: 100%;
    max-height: 94vh;
    border-radius: 26px 26px 0 0;
    padding: 26px 20px 22px;
  }

  .rushdish-contact-grid {
    grid-template-columns: 1fr;
    gap: 13px;
  }

  .rushdish-contact-progress b {
    display: none;
  }

  .rushdish-contact-actions {
    grid-template-columns: 0.55fr 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .phone-scan-beam {
    top: 50%;
    opacity: 0.72;
    animation: none !important;
  }

  .rushdish-success-racing-mark,
  .rushdish-success-burst,
  .rushdish-speed-lines i::before,
  .rushdish-speed-lines i::after {
    display: none;
    animation: none !important;
  }

  .rushdish-success-wordmark,
  .rushdish-contact-success > .eyebrow,
  .rushdish-contact-success > h2,
  .rushdish-contact-success > p:not(.eyebrow),
  .rushdish-contact-success > .button {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    animation: none !important;
  }

  .rushdish-contact-success > .eyebrow,
  .rushdish-contact-success > h2,
  .rushdish-contact-success > p:not(.eyebrow),
  .rushdish-contact-success > .button {
    transform: none;
  }
}
