/* Motion layer (royal preview) */
.hero video.hv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease;z-index:0}
.hero video.hv.on{opacity:1}
.hero picture{z-index:0}
.hero .mist{position:absolute;left:-20%;right:-20%;height:45%;bottom:8%;z-index:1;pointer-events:none;background:radial-gradient(ellipse at 30% 60%,rgba(255,255,255,.22),transparent 60%),radial-gradient(ellipse at 75% 40%,rgba(255,255,255,.16),transparent 55%);filter:blur(18px);animation:mist 38s ease-in-out infinite alternate;will-change:transform}
.hero .mist.m2{bottom:28%;opacity:.6;animation-duration:52s;animation-direction:alternate-reverse}
@keyframes mist{from{transform:translate3d(-6%,0,0)}to{transform:translate3d(6%,-2%,0)}}
canvas.snow{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:40}
.hero .in{transform:translate3d(0,var(--py,0px),0);will-change:transform}
.rv{opacity:0;transform:translateY(28px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.no-js .rv{opacity:1;transform:none}
.stay .im,.royal-frame figure,.ph{overflow:hidden}
.stay .im img,.ph img,.royal-frame img{transition:transform 1.6s cubic-bezier(.2,.7,.2,1)}
.rv.in .stay .im img,.stay.rv.in .im img,.ph.rv.in img{animation:kb 22s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.07) translate(-1%,-1%)}}
.stay{transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s}
@media(hover:hover){.stay:hover{transform:translateY(-6px);box-shadow:0 30px 60px -28px rgba(15,42,32,.55)}.stay:hover .im img{transform:scale(1.06)}}
.royal-band{position:relative;overflow:hidden}
.royal-band .stars{position:absolute;inset:0;pointer-events:none}
.royal-band .stars i{position:absolute;width:2px;height:2px;border-radius:50%;background:#f6e3b4;box-shadow:0 0 6px 1px rgba(232,200,130,.7);animation:tw 3.5s ease-in-out infinite}
@keyframes tw{0%,100%{opacity:.15}50%{opacity:1}}
.royal-band:before{content:"";position:absolute;left:50%;top:50%;width:70vmin;height:70vmin;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(201,169,110,.22),transparent 65%);animation:glow 7s ease-in-out infinite alternate;pointer-events:none}
@keyframes glow{from{opacity:.5}to{opacity:1}}
.royal-band>*{position:relative}
.royal-frame figure{transition:box-shadow .6s}
.royal-frame figure:hover{box-shadow:0 30px 70px -25px rgba(201,169,110,.65)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}.hero .mist{display:none}}
/* v2: light hero, localized legibility */
.hero:after{background:linear-gradient(180deg,rgba(10,26,19,.28) 0%,rgba(10,26,19,0) 16%,rgba(10,26,19,0) 55%,rgba(10,26,19,.35) 100%)!important}
.hero img,.hero video.hv{filter:none!important}
.hero .in .wrap{position:relative}
.hero .in .wrap:before{content:"";position:absolute;left:-8%;right:30%;top:-6%;bottom:-8%;background:radial-gradient(ellipse at 30% 60%,rgba(8,20,14,.38),rgba(8,20,14,.16) 50%,transparent 75%);z-index:-1;pointer-events:none}
@media(max-width:879px){.hero .in .wrap:before{left:-10%;right:-10%;background:radial-gradient(ellipse at 50% 60%,rgba(8,20,14,.42),rgba(8,20,14,.2) 50%,transparent 78%)}}
.hero h1,.hero .royal-tag,.hero .lede,.hero .usp-line,.hero .eyebrow{text-shadow:0 1px 2px rgba(0,0,0,.45),0 2px 18px rgba(0,0,0,.4)}
.hero .mist{opacity:.3}.hero .mist.m2{opacity:.2}
