@font-face{font-family:'Sacramento';src:url('assets/sacramento.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
/* A handwritten name and motion visible within the first few seconds. */
.hero h1{font-family:'Sacramento',cursive;letter-spacing:0;line-height:1.25;font-size:clamp(5.5rem,13vw,10rem);padding:0 .06em;animation:rise-in 1.3s both .15s,xv-name-float 6s ease-in-out 1.5s infinite}
.hero-photo{animation:xv-photo-drift 9s ease-in-out infinite alternate;will-change:transform}
.closing-photo{animation:xv-photo-drift 11s ease-in-out infinite alternate;will-change:transform}
.hero-halo{inset:-10%;width:120%;height:120%;background:radial-gradient(ellipse at 70% 25%,#e4c8ff30,transparent 48%);animation:xv-glow-drift 7s ease-in-out infinite alternate}
.hero .section-curve{width:108%;left:-4%;animation:xv-boundary-drift 6s ease-in-out infinite alternate}
.spark{animation:xv-spark-float 4.5s ease-in-out infinite}
.hero-top .spark{font-size:1.8rem}
.film-caption .spark{animation-delay:-1.5s}
.bridge .spark{animation-delay:-2.5s}
.date-orbit:before{content:'';position:absolute;width:7px;height:7px;top:28%;left:4%;border-radius:50%;background:#a17bb7;box-shadow:0 0 16px #a17bb733;animation:xv-orbit-light 5s ease-in-out infinite}
.story-orbit:before{animation:xv-spark-float 5s ease-in-out infinite}
@keyframes xv-photo-drift{from{transform:scale(1.02) translateY(0)}to{transform:scale(1.15) translateY(-1%)}}
@keyframes xv-name-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes xv-glow-drift{from{transform:translate(-3%,0);opacity:.35}to{transform:translate(3%,2%);opacity:.8}}
@keyframes xv-boundary-drift{from{transform:translateX(-1%) scaleY(.92)}to{transform:translateX(1%) scaleY(1.08)}}
@keyframes xv-spark-float{0%,100%{transform:translateY(0) rotate(-9deg);opacity:.6}50%{transform:translateY(-9px) rotate(9deg);opacity:1}}
@keyframes xv-orbit-light{0%,100%{opacity:.35;transform:scale(.75)}50%{opacity:1;transform:scale(1.1)}}
@keyframes xv-gentle-photo{from{transform:scale(1.015)}to{transform:scale(1.045)}}
@keyframes xv-gentle-light{0%,100%{opacity:.6}50%{opacity:1}}
@media(max-width:600px){.hero h1{font-size:clamp(4.8rem,19vw,7rem);line-height:1.25}.hero-copy{bottom:133px}.hero-line{margin-top:3px}}
/* A quieter automatic treatment for device preferences, without a motion switch. */
@media(prefers-reduced-motion:reduce){.hero-photo,.closing-photo{animation:xv-gentle-photo 18s ease-in-out infinite alternate!important}.hero h1{animation:rise-in 1.5s both!important}.hero-halo,.hero .section-curve{animation:none!important}.spark,.story-orbit:before,.date-orbit:before{animation:xv-gentle-light 6s ease-in-out infinite!important}}
