/* Vertical kiosk: 720×1280 design, scaled to the physical screen. */

  :root { --kiosk-w: 720px; --kiosk-h: 1280px; }
  .shell, .kiosk-install-standby__stage {
    position: absolute;
    left: calc((100vw - 720px * var(--kiosk-scale)) / 2);
    top: calc((100vh - 1280px * var(--kiosk-scale)) / 2);
  }
  .kiosk-brand-logo,
  .shell[data-screen="capture"] .kiosk-brand-logo,
  .shell[data-screen="processing"] .kiosk-brand-logo,
  .shell[data-screen="result"] .kiosk-brand-logo {
    left: 280px; top: 34px; width: 160px; height: 90px;
  }
  .shell[data-screen="start"] .kiosk-brand-logo {
    left: 100px; top: 350px; width: 520px; height: 290px;
  }
  .kiosk-start-logo-glow::before,
  .kiosk-start-logo-glow::after {
    left: 20px; top: 290px; width: 680px; height: 440px;
  }
  .shell[data-screen="start"] .kiosk-logo-backplate {
    left: 0; top: 690px; width: 720px; height: 420px;
  }
  .shell[data-screen="capture"] .kiosk-logo-backplate,
  .shell[data-screen="processing"] .kiosk-logo-backplate {
    left: 125px; top: -80px; width: 470px; height: 274px;
  }
  .start-tagline {
    left: 90px; top: 820px; width: 540px; height: 112px;
    font-size: 40px;
  }
  .start-hint { bottom: 65px; padding: 0 48px; font-size: 22px; }
  .capture-stage { left: 108px; top: 156px; width: 504px; }
  .capture-frame { width: 504px; height: 896px; border-radius: 28px; }
  .capture-tagline { width: 100%; margin-top: 32px; font-size: 38px; }
  .camera-rig video { transform: scaleX(-1); }
  /* Landscape decorations must not cross the face or the QR code. */
  .capture-overlay-front, .result-overlay-front { display: none; }
  .processing-status { left: 60px; width: 600px; height: 140px; padding: 24px; }
  .processing-status--previous { top: 470px; }
  .processing-status--current { top: 570px; }
  .status-main { font-size: 38px; line-height: 1.15; white-space: normal; }
  .kiosk-result .result-bg-fallback {
    left: 40px; top: 138px; width: 640px; height: 1086px; border-radius: 36px;
  }
  .result-portrait-wrap {
    left: 135px; top: 160px; width: 450px; height: 800px; border-radius: 24px;
  }
  .result-portrait-wrap .result-portrait img { object-fit: contain; object-position: center; }
  .result-qr-card { left: 80px; top: 992px; width: 192px; height: 192px; padding: 14px; }
  #qr { width: 164px; height: 164px; border-radius: 0; }
  .result-cta-banner { left: 308px; top: 1014px; width: 310px; height: 140px; }
  .result-cta-text { font-size: 27px; line-height: 1.25; }
  #screen-error { padding: 80px; font-size: 26px; }
  .error-title { font-size: 44px; }
  #btn-error-retry { padding: 24px; font-size: 26px; }
  .kiosk-install-standby__image { object-fit: contain; opacity: 0.25; }
  .kiosk-install-standby__copy {
    inset: 0; width: auto; height: auto; clip: auto; white-space: normal;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 30px; padding: 80px; text-align: center; color: #122654;
  }
  .kiosk-install-standby__title { font-size: 64px; font-weight: 700; }
  .kiosk-install-standby__text { font-size: 36px; line-height: 1.3; }
