.app-launch {
  --launch-gap: clamp(12px, 1.2vw, 18px);
  --launch-black: #0b0d0e;
  position: fixed;
  z-index: 125;
  left: 24px;
  right: 24px;
  bottom: 12px;
  max-width: 740px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "heading stores";
  align-items: center;
  gap: 0 16px;
  padding: clamp(12px, 1.25vw, 19px) 24px clamp(12px, 1.25vw, 19px) clamp(12px, 1.6vw, 24px);
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--surface);
  color: var(--navy);
  box-shadow: 0 4px 20px #1e24641a;
  font-family: 'Pretendard Variable', 'Pretendard', sans-serif;
  font-size: 16px;
  line-height: 1.4;
  animation: app-launch-rise .35s ease-out both;
}
.app-launch__heading { grid-area: heading; display: flex; align-items: center; gap: var(--launch-gap); min-width: 0; color: inherit; text-decoration: none; }
.app-launch__icon { width: clamp(56px, 5.4vw, 82px); height: auto; aspect-ratio: 1; border-radius: 16px; flex-shrink: 0; }
.app-launch__eyebrow { color: var(--text-muted); font-size: clamp(9px, .92vw, 14px); font-weight: 500; margin-bottom: 6px; }
.app-launch h2 { font-family: inherit; font-size: clamp(16px, 1.85vw, 28px); font-weight: 760; line-height: 1.2; word-break: keep-all; }
.app-launch__description { margin: 8px 0 0; color: var(--text-muted); font-size: clamp(9px, .86vw, 13px); word-break: keep-all; }
.app-launch__close { position: absolute; right: 2px; top: 2px; width: 24px; min-height: 24px; border: 0; background: transparent; color: var(--text-muted); font: inherit; font-size: 18px; cursor: pointer; }
.app-launch__stores { grid-area: stores; display: flex; gap: clamp(8px, .8vw, 12px); align-items: center; padding: 6px 12px 6px 6px; border-radius: 10px; background: var(--launch-black); }
.app-launch__qr { display: flex; padding: 4px; border-radius: 8px; background: #fff; text-decoration: none; flex-shrink: 0; }
.app-launch__qr img { width: clamp(52px, 4.875vw, 74px); height: auto; aspect-ratio: 1; }
.app-launch__store-buttons { display: flex; align-items: center; gap: clamp(8px, .8vw, 12px); }
.app-launch__store { display: flex; align-items: center; justify-content: center; min-width: 24px; min-height: 32px; text-decoration: none; }
.app-launch__store + .app-launch__store { border-left: 1px solid #ffffff70; padding-left: clamp(8px, .8vw, 12px); }
.app-launch__apple { display: block; width: clamp(22px, 2.11vw, 32px); height: auto; aspect-ratio: 21 / 25; object-fit: contain; }
.app-launch__play { display: block; --play-size: clamp(22px, 2.375vw, 36px); width: var(--play-size); height: calc(var(--play-size) * 1.1364); background-image: url('/app-launch/google-play-badge.png'); background-repeat: no-repeat; background-size: calc(var(--play-size) * 5.8727) calc(var(--play-size) * 2.2727); background-position: calc(var(--play-size) * -.432) calc(var(--play-size) * -.568); mix-blend-mode: lighten; }
.app-launch__scan { display: none; }
.app-launch :is(a, button):focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.app-launch--ios [data-store="android"], .app-launch--android [data-store="ios"] { display: none; }
.app-launch:is(.app-launch--ios, .app-launch--android) { grid-template-areas: "heading heading"; }
.app-launch:is(.app-launch--ios, .app-launch--android) .app-launch__stores { display: none; }
body:has(#modal:not([hidden]), dialog[open]) .app-launch { display: none; }
@keyframes app-launch-rise { from { opacity: 0; transform: translateY(calc(100% + 24px)); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 900px) {
  .app-launch, .app-launch:is(.app-launch--ios, .app-launch--android) {
    top: calc(12px + env(safe-area-inset-top)); bottom: auto; left: 12px; right: 12px; max-width: none;
    padding: 14px 44px 14px 12px;
    border-radius: 16px; border-width: 1px;
    grid-template-columns: minmax(0, 1fr); grid-template-areas: "heading";
    gap: 0; animation: none; cursor: pointer;
  }
  .app-launch__heading { gap: 10px; min-height: 44px; }
  .app-launch__icon { width: 44px; border-radius: 10px; }
  .app-launch h2 { font-size: 18px; line-height: 1.25; }
  .app-launch__description { display: block; margin: 4px 0 0; font-size: 11px; line-height: 1.45; }
  .app-launch__eyebrow, .app-launch__stores, .app-launch__scan { display: none; }
  .app-launch__close { top: 50%; right: 6px; width: 32px; min-height: 32px; font-size: 24px; transform: translateY(-50%); }
}
@media (prefers-reduced-motion: reduce) { .app-launch { animation: none; } }
