.public-guest-hero {
  position: relative;
  width: min(1440px, calc(100% - 24px));
  margin: 10px auto 16px;
  aspect-ratio: 16 / 7;
  min-height: 330px;
  overflow: hidden;
  border: 1px solid rgba(20, 139, 184, .28);
  border-radius: 24px;
  background: #075d8e;
  box-shadow: 0 18px 44px rgba(7, 82, 123, .18);
  isolation: isolate;
  direction: rtl;
  touch-action: pan-y pinch-zoom;
  overscroll-behavior-inline: contain;
  -webkit-user-select: none;
  user-select: none;
}

.public-guest-hero-track,
.public-guest-hero-slide,
.public-guest-hero-picture,
.public-guest-hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.public-guest-hero-slide {
  opacity: 0;
  visibility: hidden;
  transition: opacity .75s ease, visibility 0s .75s;
}

.public-guest-hero-picture {
  opacity: 0;
  transition: opacity .2s ease;
}

.public-guest-hero-slide.is-media-ready .public-guest-hero-picture { opacity: 1; }

.public-guest-hero-blue-halo {
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg,
    rgba(0, 184, 234, .78) 0%,
    rgba(0, 174, 229, .62) 28%,
    rgba(0, 162, 219, .42) 54%,
    rgba(0, 126, 188, .18) 78%,
    rgba(0, 92, 145, .08) 100%);
  opacity: 0;
  transform: translate3d(0, -101%, 0);
}

.public-guest-hero-slide.is-active.is-media-ready .public-guest-hero-blue-halo {
  animation: publicGuestHeroHaloDrop 1.05s cubic-bezier(.2, .78, .22, 1) both;
}

.public-guest-hero-slide.is-active {
  opacity: 1;
  visibility: visible;
  transition-delay: 0s;
}

.public-guest-hero.is-dragging {
  cursor: grabbing;
}

.public-guest-hero-picture { display: block; }

.public-guest-hero-image {
  display: block;
  object-fit: cover;
  object-position: var(--guest-hero-x, 50%) var(--guest-hero-y, 50%);
  transform: scale(1.012);
  filter: saturate(1.03) contrast(1.015);
}

.public-guest-hero-copy {
  position: absolute;
  z-index: 2;
  top: clamp(22px, 8%, 62px);
  right: clamp(20px, 6%, 84px);
  width: min(76%, 820px);
  color: #fff;
  text-align: right;
  text-shadow: 0 4px 20px rgba(0, 36, 70, .52);
  opacity: 0;
  transform: translate3d(0, -34px, 0);
}

.public-guest-hero-copy h2 {
  margin: 6px 0 0;
  font: 1000 clamp(1.75rem, 4.25vw, 4.15rem) / 1.36 Vazirmatn, Tahoma, sans-serif;
}

.public-guest-hero-copy h2 span { display: block; }

.public-guest-hero-copy p {
  margin: 0;
  color: rgba(255, 255, 255, .94);
  font: 650 clamp(.9rem, 2.05vw, 1.9rem) / 1.8 Vazirmatn, Tahoma, sans-serif;
}

.public-guest-hero-copy.is-left {
  right: auto;
  left: clamp(22px, 5%, 72px);
  width: min(48%, 690px);
}

.public-guest-hero-slide.is-product-photography .public-guest-hero-copy h2 {
  font-size: clamp(1.75rem, 4.25vw, 4.15rem);
  line-height: 1.36;
}

.public-guest-hero.is-copy-visible .public-guest-hero-slide.is-active .public-guest-hero-copy {
  animation: publicGuestHeroCopyDrop .85s cubic-bezier(.18, .82, .22, 1) both;
}

.public-guest-hero-search {
  position: absolute;
  z-index: 4;
  right: 50%;
  bottom: clamp(22px, 8%, 58px);
  width: min(76%, 780px);
  height: clamp(62px, 8vw, 94px);
  opacity: 1;
  transform: translate3d(50%, 0, 0);
  transition: box-shadow .2s ease;
}

.public-guest-hero-stars {
  position: absolute;
  z-index: 1;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.public-guest-hero-stars span {
  position: absolute;
  top: -24px;
  left: var(--star-x);
  color: rgba(231, 239, 246, .9);
  font-size: var(--star-size);
  line-height: 1;
  text-shadow: 0 0 5px rgba(255, 255, 255, .45);
  will-change: transform, opacity;
  animation: publicGuestHeroStarFall var(--star-duration) linear var(--star-delay) infinite;
}

.public-guest-hero-stars span.is-blue {
  color: rgba(105, 200, 235, .9);
  text-shadow: 0 0 5px rgba(75, 175, 225, .45);
}

.public-guest-hero-stars span.is-glowing {
  animation: publicGuestHeroStarFall var(--star-duration) linear var(--star-delay) infinite,
    publicGuestHeroStarGlow 1.55s ease-in-out var(--star-delay) infinite;
}

.public-guest-hero-stars span.is-foreground {
  --star-opacity: .5;
  filter: blur(2.2px);
  text-shadow: 0 0 12px rgba(205, 235, 249, .7);
}

.public-guest-hero-cameras {
  position: absolute;
  z-index: 1;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.public-guest-hero-cameras span {
  position: absolute;
  top: -64px;
  left: var(--camera-x);
  width: var(--camera-size);
  height: var(--camera-size);
  color: rgba(239, 250, 255, .9);
  opacity: 0;
  will-change: transform, opacity;
  animation: publicGuestHeroCameraFall var(--camera-duration) linear var(--camera-delay) infinite;
}

.public-guest-hero-cameras svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.public-guest-hero-cameras span.is-turquoise {
  color: rgba(76, 226, 231, .88);
}

.public-guest-hero-cameras span.is-glowing {
  filter: drop-shadow(0 0 4px rgba(255, 255, 255, .8)) drop-shadow(0 0 9px rgba(55, 220, 232, .72));
  animation: publicGuestHeroCameraFall var(--camera-duration) linear var(--camera-delay) infinite,
    publicGuestHeroCameraGlow 1.8s ease-in-out var(--camera-delay) infinite;
}

.public-guest-hero-cameras span.is-foreground {
  opacity: .42;
  filter: blur(3px) drop-shadow(0 0 12px rgba(119, 226, 239, .7));
}

.public-guest-hero-city-trigger {
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  padding: 0 clamp(58px, 8%, 78px) 0 clamp(74px, 12%, 104px);
  border: 1px solid rgba(255, 255, 255, .82);
  border-radius: 18px;
  outline: 0;
  background: rgba(255, 255, 255, .94);
  color: #a4adb3;
  box-shadow: 0 12px 34px rgba(0, 34, 67, .28);
  backdrop-filter: blur(12px);
  font: 750 clamp(.92rem, 1.8vw, 1.45rem) Vazirmatn, Tahoma, sans-serif;
  direction: rtl;
  text-align: right;
  cursor: pointer;
}

.public-guest-hero-city-trigger.has-value { color: #123f56; }

.public-guest-hero-search-icon {
  position: absolute;
  z-index: 2;
  right: clamp(18px, 3.2%, 28px);
  top: 50%;
  width: clamp(21px, 3vw, 29px);
  height: clamp(21px, 3vw, 29px);
  color: #aab3b9;
  pointer-events: none;
  transform: translateY(-50%);
}

.public-guest-hero-search-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
}

.public-guest-hero-city-trigger:focus {
  border-color: #55d4ff;
  box-shadow: 0 0 0 4px rgba(69, 202, 246, .25), 0 14px 38px rgba(0, 34, 67, .32);
}

.public-guest-hero-city-options[hidden] { display: none !important; }

.public-guest-hero-city-options {
  position: absolute;
  z-index: 8;
  right: 50%;
  bottom: clamp(96px, 20%, 158px);
  width: min(76%, 520px);
  box-sizing: border-box;
  padding: 18px;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 24px;
  background: rgba(244, 251, 254, .9);
  box-shadow: 0 22px 55px rgba(0, 43, 72, .3);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  transform: translateX(50%);
}

.public-guest-hero-city-options-title {
  display: block;
  margin-bottom: 8px;
  color: #577582;
  text-align: right;
  font: 850 .78rem/1.7 Vazirmatn, Tahoma, sans-serif;
}

.public-guest-hero-city-options-list { display: grid; }

.public-guest-hero-city-options-list button {
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 8px;
  border: 0;
  border-bottom: 1px solid rgba(8, 143, 192, .12);
  background: transparent;
  color: #078fc0;
  font: 950 1.05rem/1.5 Vazirmatn, Tahoma, sans-serif;
  cursor: pointer;
}

.public-guest-hero-city-options-list button:last-child { border-bottom: 0; }

.public-guest-hero-city-options-list i {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  display: grid;
  place-items: center;
  font-style: normal;
}

.public-guest-hero-city-options-list svg { width: 100%; height: 100%; fill: none; stroke-width: 1.8; }
.public-guest-hero-city-options-list svg .pin { stroke: #078fc0; }
.public-guest-hero-city-options-list svg .dot { stroke: #73d5ed; fill: rgba(115, 213, 237, .18); }

.public-guest-hero-city-options p {
  margin: 10px 0 0;
  color: #899da6;
  text-align: center;
  font: 700 .65rem/1.8 Vazirmatn, Tahoma, sans-serif;
}

.public-guest-hero-city-picker-icon {
  position: absolute;
  left: 9px;
  top: 7px;
  width: clamp(58px, 12%, 86px);
  height: calc(100% - 14px);
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: #08a5d8;
  color: #fff;
  pointer-events: none;
  box-shadow: 0 6px 14px rgba(0, 115, 160, .22);
}

.public-guest-hero-city-picker-icon svg {
  width: clamp(22px, 3vw, 34px);
  height: clamp(22px, 3vw, 34px);
  fill: none;
  stroke: currentColor;
  stroke-width: 2.3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.public-guest-hero-search-status {
  position: absolute;
  top: calc(100% + 4px);
  right: 14px;
  color: #fff;
  font: 750 .68rem / 1.7 Vazirmatn, Tahoma, sans-serif;
  text-shadow: 0 2px 8px rgba(0, 34, 67, .8);
}

body.public-guest-photographers-open { overflow: hidden; }

.public-guest-photographers-intro {
  margin: 0 14px 12px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255, 255, 255, .42);
  color: #7b8d96;
  text-align: right;
  font: 650 clamp(.58rem, 1.65vw, .72rem) / 1.95 Vazirmatn, Tahoma, sans-serif;
}

.public-guest-photographers-intro p {
  margin: 0;
}

.public-guest-photographers-intro p + p {
  margin-top: 0;
}

.public-guest-photographers-modal[hidden] { display: none !important; }

.public-guest-photographers-modal {
  position: fixed;
  z-index: 10050;
  inset: 0;
  display: grid;
  place-items: stretch;
  direction: rtl;
}

.public-guest-photographers-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4, 34, 51, .72);
  backdrop-filter: blur(8px);
}

.public-guest-photographers-dialog {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: max(18px, env(safe-area-inset-top)) clamp(14px, 3vw, 42px) max(18px, env(safe-area-inset-bottom));
  overflow: hidden;
  background: linear-gradient(180deg, #f4fbff 0%, #eaf7fc 100%);
  color: #123f56;
}

.public-guest-photographers-header {
  width: min(920px, 100%);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex: 0 0 auto;
}

.public-guest-photographers-header p {
  margin: 0 0 2px;
  color: #159ac7;
  font: 800 .78rem/1.7 Vazirmatn, Tahoma, sans-serif;
}

.public-guest-photographers-header h2 {
  margin: 0;
  color: #103f57;
  font: 950 clamp(1.35rem, 4vw, 2.2rem)/1.4 Vazirmatn, Tahoma, sans-serif;
}

.public-guest-photographers-close {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  position: relative;
  display: grid;
  place-items: center;
  box-sizing: border-box;
  padding: 0;
  border: 0;
  border-radius: 16px;
  outline: 0 !important;
  -webkit-appearance: none;
  appearance: none;
  background: #fff;
  color: #177fa5;
  box-shadow: 0 8px 24px rgba(11, 83, 115, .14);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.public-guest-photographers-close::before,
.public-guest-photographers-close::after {
  content: none !important;
  display: none !important;
}

.public-guest-photographers-close svg {
  width: 23px;
  height: 23px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.5;
  stroke-linecap: round;
}

.public-guest-photographers-close:focus { outline: 0 !important; }

.public-guest-photographers-close:focus-visible {
  box-shadow: 0 0 0 3px rgba(47, 177, 222, .24), 0 8px 24px rgba(11, 83, 115, .14);
}

.public-guest-photographers-list {
  width: min(920px, 100%);
  margin: 0 auto;
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  align-content: start;
  gap: 12px;
  overflow: auto;
  overscroll-behavior: contain;
  padding: 2px 2px 12px;
}

.public-guest-photographer-card {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr) minmax(112px, auto) 94px;
  align-items: center;
  gap: clamp(10px, 2.5vw, 22px);
  padding: 12px;
  border: 1px solid rgba(18, 151, 199, .17);
  border-radius: 22px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 10px 30px rgba(8, 77, 108, .09);
}

.public-guest-photographer-card.is-offline {
  opacity: .5;
  filter: grayscale(1);
  background: #eef1f3;
  box-shadow: none;
}

.public-guest-photographer-photo-wrap { position: relative; width: 76px; height: 76px; }

.public-guest-photographer-photo,
.public-guest-photographer-photo-fallback {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  border: 3px solid #d6f2fc;
  border-radius: 50%;
  object-fit: cover;
  background: linear-gradient(135deg, #15abd9, #087cab);
  color: #fff;
  font: 900 1.45rem/1 Vazirmatn, Tahoma, sans-serif;
}

.public-guest-photographer-rank {
  position: absolute;
  right: 50%;
  bottom: -4px;
  transform: translateX(50%);
  min-width: 52px;
  padding: 2px 7px;
  border-radius: 99px;
  background: #fff;
  color: #168db8;
  box-shadow: 0 3px 10px rgba(0, 88, 126, .16);
  text-align: center;
  white-space: nowrap;
  font: 850 .62rem/1.6 Vazirmatn, Tahoma, sans-serif;
}

.public-guest-photographer-name { min-width: 0; display: grid; gap: 4px; }
.public-guest-photographer-name strong { overflow: hidden; text-overflow: ellipsis; color: #103f57; font: 900 clamp(.96rem, 2.3vw, 1.25rem)/1.6 Vazirmatn, Tahoma, sans-serif; }
.public-guest-photographer-name span { color: #7593a1; font: 650 .72rem/1.7 Vazirmatn, Tahoma, sans-serif; }
.public-guest-photographer-rating {
  min-width: 0;
  display: grid;
  justify-items: center;
  gap: 6px;
  direction: rtl;
}

.public-guest-photographer-rating.is-empty { min-height: 34px; }

.public-guest-photographer-rating-line {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  white-space: nowrap;
}

.public-guest-photographer-rating-label {
  color: #8999a1;
  font: 750 .62rem/1.4 Vazirmatn, Tahoma, sans-serif;
}

.public-guest-photographer-stars {
  --rating-fill: 0%;
  position: relative;
  display: inline-block;
  direction: ltr;
  color: #c9d0d4;
  letter-spacing: 1px;
  font: 900 .94rem/1 Arial, sans-serif;
}

.public-guest-photographer-stars-base { display: block; }

.public-guest-photographer-stars-fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--rating-fill);
  overflow: hidden;
  color: #f5bf25;
  text-shadow: 0 1px 2px rgba(185, 123, 0, .22);
  white-space: nowrap;
}

.public-guest-photographer-green-copy {
  color: #7d919a;
  white-space: nowrap;
  font: 750 .61rem/1.5 Vazirmatn, Tahoma, sans-serif;
}

.public-guest-photographer-reserve {
  width: 94px;
  min-height: 46px;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(135deg, #11a9dc, #087eae);
  color: #fff;
  box-shadow: 0 8px 18px rgba(2, 126, 176, .22);
  font: 850 .92rem/1 Vazirmatn, Tahoma, sans-serif;
  cursor: pointer;
}

.public-guest-photographer-reserve:disabled {
  background: #707b80;
  box-shadow: none;
  cursor: default;
}

.public-guest-photographers-close-bottom {
  width: min(920px, 100%);
  min-height: 50px;
  margin: 0 auto;
  flex: 0 0 auto;
  border: 1px solid rgba(20, 145, 190, .25);
  border-radius: 16px;
  background: #fff;
  color: #137fa7;
  font: 850 .92rem/1 Vazirmatn, Tahoma, sans-serif;
  cursor: pointer;
}

.public-guest-photographers-loading,
.public-guest-photographers-empty,
.public-guest-photographers-error {
  padding: 34px 18px;
  border-radius: 20px;
  background: #fff;
  color: #597c8c;
  text-align: center;
  font: 750 .9rem/1.9 Vazirmatn, Tahoma, sans-serif;
}
.public-guest-photographers-error { color: #b54848; }

@keyframes publicGuestHeroCopyDrop {
  from { opacity: 0; transform: translate3d(0, -34px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes publicGuestHeroHaloDrop {
  from { opacity: 0; transform: translate3d(0, -101%, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes publicGuestHeroSearchDrop {
  from { opacity: 0; transform: translate3d(50%, -20px, 0); }
  to { opacity: 1; transform: translate3d(50%, 0, 0); }
}

@keyframes publicGuestHeroStarFall {
  0% { opacity: 0; transform: translate3d(0, -16px, 0) rotate(0deg); }
  12% { opacity: var(--star-opacity, .9); }
  88% { opacity: var(--star-opacity, .72); }
  100% { opacity: 0; transform: translate3d(24px, 110vh, 0) rotate(210deg); }
}

@keyframes publicGuestHeroStarGlow {
  0%, 100% { text-shadow: 0 0 4px rgba(255, 255, 255, .35); }
  50% { text-shadow: 0 0 7px #fff, 0 0 15px rgba(138, 211, 241, .95); }
}

@keyframes publicGuestHeroCameraFall {
  0% { opacity: 0; transform: translate3d(0, -28px, 0) rotate(-14deg); }
  12% { opacity: .86; }
  86% { opacity: .7; }
  100% { opacity: 0; transform: translate3d(24px, 110vh, 0) rotate(22deg); }
}

@keyframes publicGuestHeroCameraGlow {
  0%, 100% { opacity: .54; }
  50% { opacity: 1; }
}

@media (max-width: 719px) {
  .public-guest-hero {
    width: calc(100% - 16px);
    min-height: 0;
    aspect-ratio: 1 / 1;
    margin: 8px auto 12px;
    border-radius: 19px;
  }
  .public-guest-hero-copy {
    top: 6.5%;
    right: 7%;
    width: 86%;
  }
  .public-guest-hero-copy h2 { margin-top: 2px; font-size: clamp(1.35rem, 6.2vw, 2.35rem); line-height: 1.42; }
  .public-guest-hero-copy p { font-size: clamp(.72rem, 3.25vw, 1.15rem); }
  .public-guest-hero-copy.is-left {
    top: 6.5%;
    right: auto;
    left: 5%;
    width: 48%;
  }
  .public-guest-hero-slide.is-product-photography .public-guest-hero-copy h2 {
    font-size: clamp(1.35rem, 6.2vw, 2.35rem);
    line-height: 1.42;
  }
  .public-guest-hero-slide.is-product-photography .public-guest-hero-copy p {
    font-size: clamp(.72rem, 3.25vw, 1.15rem);
  }
  .public-guest-hero-search {
    bottom: 10%;
    width: 76%;
    height: clamp(54px, 12vw, 72px);
  }
  .public-guest-hero-city-trigger { padding-right: 48px; padding-left: 64px; border-radius: 19px; font-size: clamp(.72rem, 3.05vw, .95rem); }
  .public-guest-hero-search-icon { right: 17px; width: 21px; height: 21px; }
  .public-guest-hero-city-options { bottom: 23%; width: 72%; padding: 14px 16px; border-radius: 21px; }
  .public-guest-hero-city-options-list button { min-height: 48px; font-size: .95rem; }
  .public-guest-hero-city-options-list i { width: 25px; height: 25px; flex-basis: 25px; }
  .public-guest-hero-city-options p { font-size: .58rem; }
  .public-guest-hero-city-picker-icon { left: 7px; top: 7px; width: 50px; height: calc(100% - 14px); border-radius: 14px; }
  .public-guest-photographer-card { grid-template-columns: 66px minmax(0, 1fr) 92px 78px; gap: 7px; padding: 10px 8px; border-radius: 18px; }
  .public-guest-photographer-photo-wrap,
  .public-guest-photographer-photo,
  .public-guest-photographer-photo-fallback { width: 62px; height: 62px; }
  .public-guest-photographer-rank { min-width: 44px; font-size: .55rem; }
  .public-guest-photographer-name strong { font-size: .84rem; }
  .public-guest-photographer-name span { font-size: .61rem; }
  .public-guest-photographer-rating { gap: 4px; }
  .public-guest-photographer-rating-line { gap: 4px; }
  .public-guest-photographer-rating-label { font-size: .52rem; }
  .public-guest-photographer-stars { font-size: .76rem; letter-spacing: .6px; }
  .public-guest-photographer-green-copy { font-size: .51rem; }
  .public-guest-photographer-reserve { width: 78px; min-height: 40px; padding: 0 4px; border-radius: 12px; font-size: .65rem; }
  .public-guest-photographers-intro {
    margin: 0 8px 10px;
    padding: 8px 10px;
    font-size: .58rem;
    line-height: 1.9;
  }
}

@media (max-width: 950px) and (orientation: landscape) {
  .public-guest-hero {
    width: calc(100% - 18px);
    min-height: 280px;
    max-height: 72vh;
    aspect-ratio: 16 / 7;
    border-radius: 18px;
  }
  .public-guest-hero-copy { top: 9%; right: 5%; width: 55%; }
  .public-guest-hero-copy.is-left { right: auto; left: 5%; width: 48%; }
  .public-guest-hero-search { bottom: 8%; width: 67%; height: 46px; }
  .public-guest-hero-city-picker-icon { width: 48px; }
}

/* S1922: raw image -> halo -> copy/search, with two-layer horizontal swipe. */
.public-guest-hero-slide {
  opacity: 1;
  visibility: hidden;
  transform: translate3d(-100%, 0, 0);
  transition: transform .92s cubic-bezier(.22, .72, .28, 1), visibility 0s linear .92s;
  will-change: transform;
  backface-visibility: hidden;
}

.public-guest-hero-slide.is-active,
.public-guest-hero-slide.is-stage {
  visibility: visible;
}

.public-guest-hero-slide.is-active {
  z-index: 2;
  transform: translate3d(0, 0, 0);
  transition-delay: 0s;
}

.public-guest-hero-slide.is-outgoing { z-index: 2; }
.public-guest-hero-slide.is-incoming { z-index: 3; }
.public-guest-hero-slide.is-dragging { transition: none !important; }

.public-guest-hero-blue-halo {
  opacity: 0;
  transform: scale(1.018);
  animation: none !important;
}

.public-guest-hero.is-halo-visible .public-guest-hero-slide.is-active.is-media-ready .public-guest-hero-blue-halo {
  animation: publicGuestHeroHaloSoftReveal 1.05s cubic-bezier(.2, .78, .22, 1) both !important;
}

.public-guest-hero-stars,
.public-guest-hero-cameras {
  opacity: 0;
  transition: opacity .55s ease;
}

.public-guest-hero.is-effects-visible .public-guest-hero-slide.is-active .public-guest-hero-stars,
.public-guest-hero.is-effects-visible .public-guest-hero-slide.is-active .public-guest-hero-cameras {
  opacity: 1;
}

.public-guest-hero-copy {
  opacity: 0;
  visibility: hidden;
  transform: translate3d(0, -38px, 0);
}

.public-guest-hero.is-content-visible .public-guest-hero-slide.is-active .public-guest-hero-copy {
  visibility: visible;
  animation: publicGuestHeroCopyDrop .88s cubic-bezier(.18, .82, .22, 1) both;
}

.public-guest-hero-search {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate3d(50%, 38px, 0);
  transition: box-shadow .2s ease;
}

.public-guest-hero.is-content-visible .public-guest-hero-search {
  visibility: visible;
  pointer-events: auto;
  animation: publicGuestHeroSearchRise .88s cubic-bezier(.18, .82, .22, 1) both;
}

.public-guest-hero.is-dragging .public-guest-hero-search {
  animation: none;
  transform: translate3d(50%, 0, 0) translate3d(var(--guest-hero-drag-x, 0px), 0, 0);
}

@keyframes publicGuestHeroHaloSoftReveal {
  from { opacity: 0; transform: scale(1.018); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes publicGuestHeroSearchRise {
  from { opacity: 0; transform: translate3d(50%, 38px, 0); }
  to { opacity: 1; transform: translate3d(50%, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .public-guest-hero-slide,
  .public-guest-hero-picture,
  .public-guest-hero-blue-halo,
  .public-guest-hero-copy,
  .public-guest-hero-search,
  .public-guest-hero-stars span,
  .public-guest-hero-cameras span { animation: none !important; transition: none !important; }
  .public-guest-hero-stars,
  .public-guest-hero-cameras { display: none; }
  .public-guest-hero-slide.is-active,
  .public-guest-hero-slide.is-media-ready .public-guest-hero-picture,
  .public-guest-hero.is-content-visible .public-guest-hero-slide.is-active .public-guest-hero-copy,
  .public-guest-hero.is-content-visible .public-guest-hero-search { opacity: 1; visibility: visible; transform: none; }
  .public-guest-hero.is-halo-visible .public-guest-hero-slide.is-active.is-media-ready .public-guest-hero-blue-halo { opacity: 1; transform: none; }
}

/* S1926: white dissolve transition, unified city picker rise, tap-to-advance. */
.public-guest-hero-track {
  background: #fff;
}

.public-guest-hero-slide {
  opacity: 0;
  visibility: hidden;
  transform: none !important;
  transition: none !important;
  animation: none;
  will-change: opacity;
}

.public-guest-hero-slide.is-active,
.public-guest-hero-slide.is-stage {
  visibility: visible;
}

.public-guest-hero-slide.is-active {
  opacity: 1;
}

.public-guest-hero-slide.is-outgoing {
  z-index: 3;
  animation: publicGuestHeroWhiteDissolveOut var(--guest-hero-dissolve-duration, .92s) ease-in-out both;
}

.public-guest-hero-slide.is-incoming {
  z-index: 2;
  animation: publicGuestHeroWhiteDissolveIn var(--guest-hero-dissolve-duration, .92s) ease-in-out both;
}

.public-guest-hero-search {
  isolation: isolate;
  will-change: transform, opacity;
  transform-style: preserve-3d;
}

.public-guest-hero-search > * {
  opacity: 1 !important;
  visibility: visible !important;
  animation: none !important;
  transition: box-shadow .2s ease, border-color .2s ease !important;
}

.public-guest-hero.is-content-visible .public-guest-hero-search {
  animation: publicGuestHeroSearchRiseUnified .88s cubic-bezier(.18, .82, .22, 1) both;
}

.public-guest-hero.is-dragging .public-guest-hero-search {
  transform: translate3d(50%, 0, 0);
}

@keyframes publicGuestHeroWhiteDissolveOut {
  0% { opacity: 1; filter: brightness(1); }
  46%, 100% { opacity: 0; filter: brightness(1.16); }
}

@keyframes publicGuestHeroWhiteDissolveIn {
  0%, 48% { opacity: 0; filter: brightness(1.14); }
  100% { opacity: 1; filter: brightness(1); }
}

@keyframes publicGuestHeroSearchRiseUnified {
  from { opacity: 0; transform: translate3d(50%, 38px, 0); }
  to { opacity: 1; transform: translate3d(50%, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .public-guest-hero-slide.is-outgoing,
  .public-guest-hero-slide.is-incoming { animation: none !important; }
}

/* S1940: awards title at 1.5s; fixed two-line caption at 3s. */
.public-guest-hero-slide.is-awards {
  background: #fff;
}

.public-guest-hero-slide.is-awards .public-guest-hero-image {
  object-fit: cover;
  transform: none;
  filter: none;
}

.public-guest-hero-slide.is-awards .public-guest-hero-picture {
  z-index: 1;
}

.public-guest-hero-slide.is-awards .public-guest-hero-copy {
  top: clamp(28px, 9%, 72px);
  left: clamp(24px, 6%, 92px);
  right: auto;
  width: min(45%, 640px);
  color: #fff;
  text-align: right;
  text-shadow: 0 2px 16px rgba(0, 27, 59, .62);
  z-index: 4;
}

.public-guest-hero-slide.is-awards .public-guest-hero-copy p:empty {
  display: none;
}

.public-guest-hero-slide.is-awards .public-guest-hero-copy h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(1.55rem, 3.55vw, 3.5rem);
  line-height: 1.42;
}

.public-guest-hero-slide.is-awards .public-guest-hero-copy h2 span + span {
  margin-top: .32em;
  font-size: .62em;
  line-height: 1.75;
}

.public-guest-hero-awards-caption {
  position: absolute;
  z-index: 4;
  left: 50%;
  bottom: clamp(28px, 8%, 92px);
  width: min(86%, 760px);
  margin: 0;
  color: #fff;
  direction: rtl;
  text-align: center;
  text-shadow: 0 2px 14px rgba(0, 24, 54, .8), 0 1px 4px rgba(0, 0, 0, .48);
  font: 750 clamp(.9rem, 2.05vw, 1.9rem) / 1.75 Vazirmatn, Tahoma, sans-serif;
  opacity: 0;
  transform: translate3d(-50%, 26px, 0);
}

.public-guest-hero-awards-caption span {
  display: block;
}

.public-guest-hero.is-content-visible .public-guest-hero-slide.is-active .public-guest-hero-awards-caption {
  /* Content becomes visible at 1.5s for this slide; this delay makes 3s total. */
  animation: publicGuestHeroAwardsCaptionRise .78s cubic-bezier(.18, .82, .22, 1) 1.5s both;
}

@keyframes publicGuestHeroAwardsCaptionRise {
  from { opacity: 0; transform: translate3d(-50%, 26px, 0); }
  to { opacity: 1; transform: translate3d(-50%, 0, 0); }
}

.public-guest-hero-confetti {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.public-guest-hero-confetti.is-back { z-index: 0; }
.public-guest-hero-confetti.is-front { z-index: 3; }

.public-guest-hero.is-awards-active .public-guest-hero-search {
  display: none !important;
}

.public-guest-hero-confetti span {
  position: absolute;
  top: -42px;
  left: var(--confetti-x);
  width: calc(var(--confetti-size) * 1.35);
  height: var(--confetti-size);
  border-radius: 3px;
  opacity: 0;
  transform: rotate(var(--confetti-rotate));
  will-change: transform, opacity;
  animation: publicGuestHeroConfettiFall var(--confetti-duration) linear var(--confetti-delay) infinite;
}

.public-guest-hero-confetti span.is-blue {
  background: linear-gradient(145deg, #13a9de, #0578b3);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.42);
}

.public-guest-hero-confetti span.is-gold {
  background: linear-gradient(145deg, #ffe47a, #d79a16);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.5);
}

.public-guest-hero-confetti span.is-background {
  z-index: 1;
  --confetti-opacity: .34;
  opacity: .34;
  filter: blur(2.2px);
}

.public-guest-hero-confetti span.is-foreground {
  z-index: 5;
  --confetti-opacity: .46;
  opacity: .46;
  filter: blur(4.5px);
  box-shadow: 0 0 14px rgba(24, 137, 185, .2);
}

.public-guest-hero-confetti span.is-giant {
  width: calc(var(--confetti-size) * 3.15);
  height: calc(var(--confetti-size) * 2.25);
  border-radius: 8px;
  --confetti-opacity: .28;
  filter: blur(8px);
  box-shadow: 0 0 28px rgba(24, 137, 185, .16);
}

@keyframes publicGuestHeroConfettiFall {
  0% { opacity: 0; transform: translate3d(0, -35px, 0) rotate(var(--confetti-rotate)); }
  10% { opacity: var(--confetti-opacity, .9); }
  88% { opacity: var(--confetti-opacity, .78); }
  100% { opacity: 0; transform: translate3d(30px, 112vh, 0) rotate(calc(var(--confetti-rotate) + 260deg)); }
}

@media (max-width: 719px) {
  .public-guest-hero-slide.is-awards .public-guest-hero-copy {
    top: 7%;
    left: 5%;
    width: 49%;
  }
  .public-guest-hero-slide.is-awards .public-guest-hero-copy h2 {
    font-size: clamp(1rem, 4.8vw, 1.65rem);
    line-height: 1.48;
  }
  .public-guest-hero-slide.is-awards .public-guest-hero-copy h2 span + span {
    font-size: .58em;
    line-height: 1.72;
  }
  .public-guest-hero-awards-caption {
    left: 50%;
    bottom: 8%;
    width: 86%;
    font-size: clamp(.66rem, 2.85vw, .9rem);
    line-height: 1.58;
  }
}

@media (prefers-reduced-motion: reduce) {
  .public-guest-hero-confetti { display: none; }
}

/* S1943: render the white field and blue picker as one Safari compositing layer. */
.public-guest-hero-search {
  box-sizing: border-box;
  border: 1px solid rgba(255, 255, 255, .82);
  border-radius: 18px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 12px 34px rgba(0, 34, 67, .28);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  transform-style: flat;
  backface-visibility: hidden;
  will-change: transform;
}

.public-guest-hero-search .public-guest-hero-city-trigger {
  border: 0;
  background: transparent;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.public-guest-hero.is-content-visible .public-guest-hero-search {
  animation: publicGuestHeroSearchRiseSingleLayer .88s cubic-bezier(.18, .82, .22, 1) both;
}

@keyframes publicGuestHeroSearchRiseSingleLayer {
  from { opacity: 1; transform: translate3d(50%, 38px, 0); }
  to { opacity: 1; transform: translate3d(50%, 0, 0); }
}

@media (max-width: 719px) {
  .public-guest-hero-search { border-radius: 19px; }
}
