#recruit-ad {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 0;
  overflow: hidden;
  background: #14202b;
  pointer-events: auto;
}

#recruit-ad[hidden] { display: none; }

.recruit-ad-card {
  display: grid;
  grid-template-columns: minmax(340px, 0.95fr) 1.05fr;
  align-items: center;
  gap: 18px;
  width: 100vw;
  height: 100dvh;
  min-height: 100dvh;
  padding:
    max(16px, env(safe-area-inset-top))
    max(28px, env(safe-area-inset-right))
    max(16px, env(safe-area-inset-bottom))
    max(28px, env(safe-area-inset-left));
  border: 0;
  border-radius: 0;
  background:
    linear-gradient(rgba(111, 155, 181, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(111, 155, 181, 0.08) 1px, transparent 1px),
    #fff2d4;
  background-size: 32px 32px;
  box-shadow: none;
  color: #172331;
  filter: none;
  text-align: center;
}

.recruit-photo-frame {
  display: grid;
  width: min(100%, 480px);
  aspect-ratio: 1 / 1;
  margin: 0 auto 10px;
  overflow: hidden;
  place-items: center;
  border: 6px solid #4f6473;
  background:
    linear-gradient(135deg, transparent 49%, rgba(79, 100, 115, 0.35) 50%, transparent 51%),
    #dfe9e6;
}

.recruit-photo-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 24%;
}

.recruit-ad-copy { min-width: 0; }

.recruit-ad-card h2 {
  margin: 0;
  font: 1000 clamp(48px, 10vmin, 68px)/1.1 system-ui, "Noto Sans TC", sans-serif;
  white-space: pre-line;
  word-break: keep-all;
}

.recruit-ad-card p {
  margin: 9px auto;
  max-width: 440px;
  font: 700 clamp(24px, 5vmin, 34px)/1.4 system-ui, "Noto Sans TC", sans-serif;
  white-space: pre-line;
}

.ad-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
  margin-top: 10px;
}

#recruit-ad .kenney-button {
  --button-image: url("/assets/ui-starter-pack/button-blue.png");
  --button-pressed-image: url("/assets/ui-starter-pack/button-blue-pressed.png");
  position: relative;
  display: grid;
  min-height: 50px;
  padding: 10px 14px 13px;
  place-items: center;
  border: 0;
  background: var(--button-image) center / 100% 100% no-repeat;
  color: #172331;
  font: 1000 16px/1.1 system-ui, "Noto Sans TC", sans-serif;
  letter-spacing: .04em;
  text-align: center;
  text-decoration: none;
  image-rendering: pixelated;
}

#recruit-ad .kenney-button.tone-green {
  --button-image: url("/assets/ui-starter-pack/button-green.png");
  --button-pressed-image: url("/assets/ui-starter-pack/button-green-pressed.png");
}

#recruit-ad .kenney-button:active { transform: translateY(3px);background-image:var(--button-pressed-image); }

@media (orientation: landscape) and (max-height: 520px),
  (orientation: landscape) and (hover: none) and (pointer: coarse) {
  .recruit-ad-card {
    grid-template-columns: minmax(250px, 1fr) 1fr;
    gap: 12px;
    padding:
      max(8px, env(safe-area-inset-top))
      max(18px, env(safe-area-inset-right))
      max(10px, env(safe-area-inset-bottom))
      max(18px, env(safe-area-inset-left));
  }
  .recruit-photo-frame { width: min(80vmin, 312px); margin-bottom: 0; }
  .recruit-ad-card h2 { font-size: clamp(32px, 8vmin, 60px); }
  .recruit-ad-card p { margin: 5px auto; font-size: clamp(21px, 5vmin, 30px); line-height: 1.25; }
  .ad-actions { margin-top: 6px; }
  #recruit-ad .kenney-button { min-height: 44px; }
}

@media (orientation: portrait) {
  #recruit-ad {
    align-items: stretch;
  }

  .recruit-ad-card {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-content: center;
    justify-items: center;
    gap: 12px;
    min-height: 100dvh;
    padding:
      max(12px, env(safe-area-inset-top))
      max(16px, env(safe-area-inset-right))
      max(12px, env(safe-area-inset-bottom))
      max(16px, env(safe-area-inset-left));
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .recruit-photo-frame {
    width: min(64vw, 300px);
    height: min(48dvh, 360px);
    aspect-ratio: auto;
    margin: 0 auto;
  }

  .recruit-photo-frame img {
    object-position: center 20%;
  }

  .recruit-ad-copy {
    width: min(100%, 360px);
  }

  .recruit-ad-card h2 {
    font-size: clamp(30px, 8vw, 48px);
    line-height: 1.08;
  }

  .recruit-ad-card p {
    margin: 8px auto;
    font-size: clamp(18px, 4.8vw, 26px);
    line-height: 1.3;
  }

  .ad-actions {
    grid-template-columns: minmax(0, 1fr);
    width: min(100%, 340px);
    margin: 12px auto 0;
  }

  #recruit-ad .kenney-button {
    min-height: 48px;
    padding-inline: 12px;
  }
}
