.missionary-visual {
    display: grid;
    justify-items: center;
    min-height: 640px;
    position: relative;
  }

  .missionary-frame {
    background: rgba(255, 250, 246, 0.08);
    border: 8px solid rgba(255, 250, 246, 0.98);
    border-radius: 44% 44% 44% 44% / 16% 16% 16% 16%;
    box-shadow: 0 28px 80px rgba(22, 53, 45, 0.18);
    height: min(74vw, 620px);
    max-height: 620px;
    max-width: 470px;
    overflow: hidden;
    position: absolute;
    right: 0;
    top: 0;
    width: min(100%, 470px);
  }

  .missionary-frame img {
    height: 100%;
    object-fit: cover;
    object-position: 58% center;
    transition: transform 560ms ease;
    width: 100%;
  }

  .missionary-frame::before {
    background: linear-gradient(108deg, transparent 24%, rgba(255, 255, 255, 0.16) 46%, rgba(255, 255, 255, 0.32) 50%, rgba(255, 255, 255, 0.14) 54%, transparent 74%);
    content: "";
    inset: -12% -42%;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    transform: translateX(-130%) skewX(-14deg);
    transition: transform 780ms ease, opacity 260ms ease;
    z-index: 2;
  }

  .missionary-frame::after {
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.08), transparent 16%, transparent 84%, rgba(255, 255, 255, 0.12)),
      radial-gradient(circle at 50% 50%, transparent 58%, rgba(255, 250, 246, 0.14) 100%);
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
  }

  .missionary-frame:hover::before {
    opacity: 1;
    transform: translateX(130%) skewX(-14deg);
  }

  .missionary-frame:hover img {
    transform: scale(1.02);
  }

  .missionary-orbit {
    border: 1px solid rgba(209, 170, 115, 0.24);
    border-radius: 999px;
    position: absolute;
  }

  .orbit-a {
    height: 76px;
    left: 24px;
    top: 32px;
    width: 76px;
  }

  .orbit-b {
    bottom: 46px;
    height: 128px;
    left: 8px;
    width: 128px;
  }

  .prose p {
    color: #475467;
    font-size: 1.06rem;
    margin: 0 0 18px;
  }

  .cta {
    text-align: center;
  }

  .cta h2 {
    font-family: "Noto Sans TC", Inter, system-ui, sans-serif;
    font-size: clamp(2rem, 4vw, 4rem);
    line-height: 1.15;
    margin: 0;
  }

  .cta p {
    color: #d0d5dd;
    margin: 18px auto 28px;
    max-width: 760px;
  }

  @media (max-width: 980px) {
    .missionary-visual {
      min-height: 560px;
      order: -1;
    }

    .missionary-frame {
      height: min(92vw, 540px);
      position: relative;
      right: auto;
      width: min(100%, 460px);
    }

    .orbit-a {
      left: 8px;
      top: 6px;
    }

    .orbit-b {
      bottom: 20px;
      left: auto;
      right: 10px;
    }
  }
