
.v-grid{stroke:#d9bc7c;stroke-width:.5;opacity:.08;fill:none}
.v-frame{stroke:#d9bc7c;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1600;stroke-dashoffset:1600;animation:villaDraw 2.4s cubic-bezier(.4,0,.2,1) forwards}
.v-foundation{animation-delay:0.15s}.v-columns{animation-delay:0.675s}.v-beams{animation-delay:1.425s}
.v-depth{stroke:#e3c995;stroke-width:1.2;animation-delay:2.025s}.v-details{stroke:#b9c8ce;stroke-width:1;opacity:.7;animation-delay:2.7s}
.v-villa-surfaces{opacity:0;animation:villaReveal 1.8s 2.7s forwards}.v-landscape{opacity:0;animation:villaReveal 1.2s 3.75s forwards}
.v-planter{fill:none;stroke:#b5ac82;stroke-width:1.2}.v-plant{fill:none;stroke:#8b9b75;stroke-width:2;stroke-linejoin:round}
.v-brand{opacity:0;animation:villaReveal 1.2s 3.75s forwards}
@keyframes villaDraw{to{stroke-dashoffset:0}}@keyframes villaReveal{to{opacity:1}}

.hero-villa-return{min-width:0;position:relative}
.hero-villa-return .hero-villa-scene{width:100%;height:auto;display:block;max-width:640px;margin:0 auto}
.villa-garage-door{transform:translateY(0)}
.villa-car-drive{transform:translate(-110px,60px);opacity:0}
.hero-motion-ready .villa-garage-door{animation:villaGarage 7.8s 1.2s ease-in-out 1 both}
.hero-motion-ready .villa-car-drive{animation:villaDrive 7.8s 1.2s cubic-bezier(.45,0,.25,1) 1 both}
@keyframes villaGarage{0%,8%,100%{transform:translateY(0)}25%,76%{transform:translateY(-80px)}}
@keyframes villaDrive{0%,5%{transform:translate(-110px,60px);opacity:0}14%,25%{transform:translate(-110px,60px);opacity:1}72%,100%{transform:translate(0,0);opacity:1}}
.hero-motion-paused .hero-villa-scene *,.hero-motion-away .hero-villa-scene *{animation-play-state:paused!important}
.hero-refresh .hero-motion-toggle{background:transparent;border:0;border-bottom:1px solid #ffffff35;color:#bac3d3;font:inherit;font-size:12px;line-height:1.4;padding:7px 0;min-height:32px;margin-top:10px;cursor:pointer}
.hero-refresh .hero-motion-toggle[hidden]{display:none}
.hero-refresh .hero-motion-toggle:hover{color:var(--gold)}
.hero-refresh .hero-motion-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
@media(max-width:700px){.hero-refresh .hero-villa-return{width:92%;max-width:360px}}
@media(prefers-reduced-motion:reduce){.hero-refresh .hero-villa-scene *{animation:none!important}.hero-villa-scene .v-frame{stroke-dashoffset:0}.hero-villa-scene .v-villa-surfaces,.hero-villa-scene .v-landscape,.hero-villa-scene .v-brand{opacity:1}.hero-villa-scene .villa-garage-door{transform:translateY(0)}.hero-villa-scene .villa-car-drive{opacity:0}.hero-refresh .hero-motion-toggle{display:none}}

/* A short homecoming story: house, arrival, welcome, parked. */
.v-frame{animation-duration:1.35s}
.v-foundation{animation-delay:0s}.v-columns{animation-delay:0.225s}.v-beams{animation-delay:0.45s}.v-depth{animation-delay:0.75s}.v-details{animation-delay:1.05s}
.v-villa-surfaces{animation-duration:1.05s;animation-delay:0.9s}
.v-landscape,.v-brand{animation-duration:0.9s;animation-delay:1.5s}
.family-mother,.family-child-one,.family-child-two{opacity:0;transform:translate(-22px,-8px)}
.hero-motion-ready .family-mother{animation:familyArrival 1.275s 2.7s ease-out both}
.hero-motion-ready .family-child-one{animation:familyArrival 1.2s 3s ease-out both}
.hero-motion-ready .family-child-two{animation:familyArrival 1.2s 3.225s ease-out both}
.mother-wave{transform-origin:320px 195px}.child-one-wave{transform-origin:345px 208px}.child-two-wave{transform-origin:369px 214px}
.hero-motion-ready .mother-wave{animation:familyWave 0.825s 4.05s ease-in-out 4}
.hero-motion-ready .child-one-wave{animation:familyWave 0.675s 4.2s ease-in-out 5}
.hero-motion-ready .child-two-wave{animation:familyWave 0.75s 4.425s ease-in-out 4}
@keyframes familyArrival{0%{opacity:0;transform:translate(-22px,-8px)}30%{opacity:1}100%{opacity:1;transform:translate(0,0)}}
@keyframes familyWave{0%,100%{transform:rotate(0deg)}50%{transform:rotate(22deg)}}
@media(prefers-reduced-motion:reduce){.hero-villa-scene .family-mother,.hero-villa-scene .family-child-one,.hero-villa-scene .family-child-two{opacity:1;transform:none}}
