/* ═══════════════════════════════════════════════════════════════════════
   HOME HERO VISUAL (index.html)
   A tall rounded photo with one offset outline frame behind it and two
   slim glass chips. Motion is limited to a smooth entrance and a slow zoom,
   all switched off for reduced motion.
   ═══════════════════════════════════════════════════════════════════════ */

.hv { position: relative; width: 100%; max-width: 500px; aspect-ratio: 4 / 4.9; justify-self: center; }

/* Thin sky outline, offset down and right */
.hv-frame {
  position: absolute; inset: 7% 0 0 9%; z-index: 0;
  border: 1.5px solid var(--sky-400); border-radius: 32px; opacity: .55;
  animation: hv-fade .9s var(--ease-out, cubic-bezier(.16,1,.3,1)) .45s both;
}

/* The photo */
.hv-photo {
  position: absolute; inset: 0 9% 7% 0; z-index: 1; margin: 0; overflow: hidden;
  border-radius: 32px; background: var(--sky-100);
  box-shadow: 0 34px 70px -32px rgba(12,35,65,.5);
  animation: hv-reveal 1s var(--ease-out, cubic-bezier(.16,1,.3,1)) .15s both;
}
.hv-photo img {
  width: 100%; height: 100%; object-fit: cover; object-position: 52% 50%; display: block;
  animation: hv-zoom 24s ease-in-out infinite alternate;
}

/* Slim glass chips */
.hv-chip {
  position: absolute; z-index: 3; display: flex; align-items: center; gap: 11px;
  padding: 10px 16px 10px 10px; border-radius: 16px; line-height: 1.25; white-space: nowrap;
  background: rgba(255,255,255,.86); backdrop-filter: blur(14px) saturate(160%); -webkit-backdrop-filter: blur(14px) saturate(160%);
  border: 1px solid rgba(255,255,255,.8); box-shadow: 0 14px 34px -14px rgba(12,35,65,.32);
  font-size: .84rem; font-weight: 700; color: var(--ink);
}
.hv-chip span { display: block; font-weight: 400; font-size: .74rem; color: var(--muted); }
.hv-chip > i {
  flex-shrink: 0; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center;
  background: var(--navy-700); color: #fff;
}
.hv-chip > i svg { width: 17px; height: 17px; }
.hv-chip--1 { left: -9%; top: 13%; animation: hv-in-l .8s var(--ease-out, cubic-bezier(.16,1,.3,1)) .6s both; }
.hv-chip--2 { right: 0; bottom: 14%; animation: hv-in-r .8s var(--ease-out, cubic-bezier(.16,1,.3,1)) .75s both; }

@keyframes hv-reveal { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes hv-fade   { from { opacity: 0; } to { opacity: .55; } }
@keyframes hv-zoom   { from { transform: scale(1.02); } to { transform: scale(1.08); } }
@keyframes hv-in-l   { from { opacity: 0; transform: translateX(-20px); } to { opacity: 1; transform: none; } }
@keyframes hv-in-r   { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: none; } }

@media (max-width: 1180px) { .hv-chip--1 { left: -3%; } }
@media (max-width: 920px) {
  .hv { max-width: 440px; margin: 20px auto 0; }
  .hv-chip--1 { left: -2%; }
}
@media (max-width: 560px) {
  .hv { aspect-ratio: 4 / 4.6; }
  .hv-photo, .hv-frame { border-radius: 26px; }
  .hv-chip { font-size: .8rem; padding: 8px 13px 8px 8px; gap: 9px; }
  .hv-chip span { display: none; }
  .hv-chip > i { width: 28px; height: 28px; border-radius: 8px; }
  .hv-chip--1 { left: -2%; top: 8%; }
  .hv-chip--2 { right: 2%; bottom: 12%; }
}

@media (prefers-reduced-motion: reduce) {
  .hv-frame, .hv-photo, .hv-photo img, .hv-chip { animation: none !important; }
}
