/* Free valuation hero: overlapping lilac discs, dot field and a coral arc (animated by js/stem-hero.js) */
.px-hero--form { background: radial-gradient(circle at 12% 100%, #2E008C 0, transparent 45%), linear-gradient(120deg, #3A01AC 0%, #4700CD 45%, #540DEE 100%); }
.px-hero--form .px-orbit { display: none; }
.px-hero--form .px-dots { opacity: .12; }
.px-hero-copy { position: relative; z-index: 2; }
.vl-stop { color: #FF6B6B; }
.vl-art { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.vl-art .sf-orbits { position: absolute; inset: 0; width: 100%; height: 100%; }
.vl-art .sf-disc circle { fill: rgba(109, 91, 255, .38); }
.vl-art .sf-disc.d2 circle { fill: rgba(97, 57, 255, .5); }
.vl-art .sf-dots { opacity: .45; }
.vl-art .o-coral { fill: none; stroke: #FF6B6B; stroke-width: 2.2; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.vl-art .o-dot circle { fill: #FF6B6B; }
.vl-art .o-dot .halo { fill: rgba(255, 107, 107, .3); }
.vl-art .sf-disc { transform-box: fill-box; transform-origin: center; }
.motion .vl-art .sf-disc, .motion .vl-art .sf-dots { opacity: 0; transition: opacity 1.8s ease, transform 2.4s cubic-bezier(.22,1,.36,1); }
.motion .vl-art .sf-disc { transform: scale(.9) translateY(36px); }
.motion .vl-art.on .sf-disc { opacity: 1; transform: none; }
.motion .vl-art.on .sf-disc.d2 { transition-delay: .25s; }
.motion .vl-art.on .sf-disc.d3 { transition-delay: .45s; }
.motion .vl-art.on .sf-dots { opacity: .45; transition-delay: .5s; }
.motion .vl-art .o-dot { opacity: 0; transition: opacity .5s ease; }
.motion .vl-art .o-dot.on { opacity: 1; }
.motion .vl-art .sf-orbits:not(.is-on) .o-coral { visibility: hidden; }
@media (max-width: 900px) { .vl-art { opacity: .6; } }
/* softer dot field: finer dots, fading out from the top-right; no full-height dot columns */
.px-hero--form .px-dots { display: none; }
.vl-art .sf-dots { opacity: .35; }
.motion .vl-art.on .sf-dots { opacity: .35; }
