/* ============================================================
   Home hero — cinematic full-screen video with animated fallback
   ============================================================ */
.hero{position:relative;height:100svh;min-height:640px;overflow:hidden;display:flex;align-items:center}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.hero-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;background-color:#0b2742}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 55%}
/* When a real photo is present, suppress the animated gradient so the photo shows through */
.hero-fallback:has(.hero-photo)::before,.hero-fallback:has(.hero-photo)::after{display:none}
.hero-fallback::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 40% at 78% 30%,rgba(244,201,142,.30),transparent 60%),linear-gradient(180deg,#163a5c 0%,#0d2640 48%,#081627 100%);animation:dawn 16s ease-in-out infinite alternate}
.hero-fallback::after{content:"";position:absolute;left:-10%;right:-10%;bottom:-2%;height:46%;background:linear-gradient(180deg,rgba(96,170,200,0),rgba(58,120,150,.5));filter:blur(2px);-webkit-mask:linear-gradient(180deg,transparent,#000 30%);mask:linear-gradient(180deg,transparent,#000 30%);animation:shimmer 9s ease-in-out infinite}
@keyframes dawn{0%{filter:brightness(.82) saturate(1)}100%{filter:brightness(1.08) saturate(1.18)}}
@keyframes shimmer{0%,100%{transform:translateX(-2%) scaleY(1)}50%{transform:translateX(2%) scaleY(1.06)}}
.hero-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,23,41,.62) 0%,rgba(8,23,41,.30) 30%,rgba(8,23,41,.34) 58%,rgba(8,23,41,.88) 100%),linear-gradient(90deg,rgba(8,23,41,.70) 0%,rgba(8,23,41,.34) 38%,transparent 68%)}
.hero-content{position:relative;z-index:2;width:100%}
.hero-loc{color:rgba(255,255,255,.7);margin-bottom:30px;opacity:0;transform:translateY(20px);animation:rise 1s var(--ease) .3s forwards}
.hero h1{color:#fff;font-weight:200;letter-spacing:-.02em;line-height:1.24;font-size:clamp(2.1rem,4.6vw,4.2rem);max-width:16ch}
.hero h1 em{font-style:normal;color:var(--gold);font-weight:300}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.hero h1 .ln i{display:block;font-style:normal;transform:translateY(112%);animation:revl 1.1s var(--ease) forwards}
.hero h1 .ln:nth-child(1) i{animation-delay:.45s}
.hero h1 .ln:nth-child(2) i{animation-delay:.6s}
.hero h1 .ln:nth-child(3) i{animation-delay:.75s}
.hero p.sub{color:rgba(255,255,255,.84);font-size:clamp(1rem,1.5vw,1.28rem);font-weight:300;max-width:46ch;margin:30px 0 44px;line-height:1.65;opacity:0;transform:translateY(20px);animation:rise 1s var(--ease) 1s forwards}
.hero-ctas{display:flex;gap:18px;flex-wrap:wrap;opacity:0;transform:translateY(20px);animation:rise 1s var(--ease) 1.15s forwards}
.scrollcue{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);z-index:2;color:rgba(255,255,255,.6);font-size:10px;letter-spacing:.3em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:12px;opacity:0;animation:rise 1s var(--ease) 1.5s forwards}
.scrollcue .line{width:1px;height:46px;background:linear-gradient(var(--gold),transparent);position:relative;overflow:hidden}
.scrollcue .line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--gold);animation:drop 2.2s var(--ease) infinite}
@keyframes drop{0%{transform:translateY(-100%)}100%{transform:translateY(250%)}}
@keyframes revl{to{transform:translateY(0)}}
@keyframes rise{to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){
  .hero h1 .ln i,.hero-loc,.hero p.sub,.hero-ctas,.scrollcue{animation:none;opacity:1;transform:none}
}
