/* Distinct Noir ambience: diagonal aurora, contour ribbons and constellations. */
.nv-scene{position:relative;isolation:isolate}
.nv-ambient{position:absolute;inset:-20px 0;z-index:-1;pointer-events:none;overflow:hidden;border-radius:inherit;mask-image:linear-gradient(transparent,#000 18%,#000 80%,transparent)}
.nv-ambient:before,.nv-ambient:after{content:'';position:absolute;inset:-15%;pointer-events:none}
.nv-style-0:before{background:repeating-radial-gradient(ellipse at 5% 100%,transparent 0 54px,#b5ec6922 55px 56px,transparent 57px 74px);opacity:.55;transform:rotate(-12deg)}
.nv-style-0:after{background:radial-gradient(ellipse at 80% 35%,#8cab3b30,transparent 58%)}
.nv-style-1:before{background:linear-gradient(125deg,transparent 25%,#6dbb4420 37%,#c5ff6c29 39%,transparent 47%,transparent 60%,#98d15618 66%,transparent 74%);filter:none}
.nv-style-1:after{background:radial-gradient(ellipse at 20% 65%,#8abb3533,transparent 50%)}
.nv-style-2:before{background:radial-gradient(circle at 12% 28%,#c8f78f80 0 1px,transparent 2px),radial-gradient(circle at 68% 18%,#c8f78f66 0 1px,transparent 2px),radial-gradient(circle at 82% 70%,#c8f78f80 0 1px,transparent 2px),linear-gradient(155deg,transparent 44%,#8de85210 48%,#8de85220 50%,transparent 56%);background-size:230px 210px,310px 270px,270px 330px,100% 100%}
.nv-style-2:after{background:radial-gradient(ellipse at 65% 50%,#97ca3b25,transparent 62%)}
.nv-card{position:relative;isolation:isolate}
.nv-edge{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none;z-index:1;mask-image:linear-gradient(#000 0 3px,transparent 3px calc(100% - 3px),#000 calc(100% - 3px))}
.nv-edge:before{content:'';position:absolute;top:0;bottom:0;width:40%;left:-45%;background:linear-gradient(90deg,transparent,#cdfb7caa,transparent);opacity:.7}
.nv-toggle{position:fixed;bottom:20px;left:20px;z-index:1000;padding:12px 18px;border:1px solid #b6e97c;border-radius:24px;background:#152010;color:#e5f7d3;font:inherit}
.nv-toggle:not(:focus-visible){width:1px;height:1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.nv-toggle[hidden]{display:none}
@keyframes nv-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes nv-sweep{0%{transform:translateX(0)}100%{transform:translateX(370%)}}
@keyframes nv-aurora{0%,100%{transform:translate(-2%,-1%) rotate(-3deg);opacity:.55}50%{transform:translate(4%,3%) rotate(3deg);opacity:.95}}
@keyframes nv-ribbon{0%,100%{transform:translateX(-2%) scale(1)}50%{transform:translateX(3%) scale(1.06)}}
@media(prefers-reduced-motion:no-preference){
 .nv-enabled .nv-edge:before{animation:nv-sweep 4.8s linear infinite;animation-delay:var(--nv-delay,0s);animation-play-state:paused}
 .nv-enabled .nv-card.nv-active>.nv-edge:before{animation-play-state:running}
 .nv-enabled .feature .round-icon,.nv-enabled .float-mark{animation:nv-float 4.2s ease-in-out infinite;animation-delay:var(--nv-delay,0s);animation-play-state:paused}
 .nv-enabled .feature.nv-active .round-icon,.nv-enabled .device-visual.nv-active .float-mark{animation-play-state:running}
 .nv-enabled .nv-ambient:before{animation:nv-aurora 12s ease-in-out infinite;animation-play-state:paused}
 .nv-enabled .nv-ambient:after{animation:none}
 .nv-enabled .nv-scene.nv-active>.nv-ambient:before,.nv-enabled .nv-scene.nv-active>.nv-ambient:after{animation-play-state:running}
 .nv-enabled .nv-card:hover .nv-edge:before,.nv-enabled .nv-card:focus-within .nv-edge:before{animation-play-state:paused}
 .nv-enabled.nv-paused .nv-edge:before,.nv-enabled.nv-paused .nv-ambient:before,.nv-enabled.nv-paused .nv-ambient:after,.nv-enabled.nv-paused .round-icon,.nv-enabled.nv-paused .float-mark{animation-play-state:paused!important}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .feature,.plan,.four-stats>div,.guide-list>a{transition:opacity 700ms ease var(--entrance-delay,0ms),translate 700ms ease var(--entrance-delay,0ms),transform .35s cubic-bezier(.22,1,.36,1),border-color .3s}
 .feature:hover,.plan:hover,.four-stats>div:hover,.guide-list>a:hover{transform:translateY(-5px);border-color:#b5e576;box-shadow:0 20px 40px #0006,0 0 28px #9bd44d18}
 .faq .questions details:hover{border-color:#b3d587;box-shadow:0 0 22px #b1ef5114}
 .btn:hover,.plan-buy:hover{transform:translateY(-3px);box-shadow:0 7px 25px #a1dc4628}
}
@media(prefers-reduced-motion:reduce){.nv-edge:before,.nv-ambient:before,.nv-ambient:after,.round-icon,.float-mark{animation:none!important}.nv-edge{display:none}.nv-ambient:before,.nv-ambient:after{opacity:.5}}
/* Feather every decorative boundary; card/content widths stay unchanged. */
.nv-ambient{mask-image:radial-gradient(ellipse closest-side at center,#000 45%,#000b 65%,transparent 98%);-webkit-mask-image:radial-gradient(ellipse closest-side at center,#000 45%,#000b 65%,transparent 98%)}

@media(prefers-reduced-motion:no-preference){.faq.nv-scene>.nv-ambient:before,.faq.nv-scene>.nv-ambient:after{animation:none!important}.faq .questions details:hover{box-shadow:inset 0 1px 0 #d9f5b508}}

/* Release the finished stats-heading compositor layer; keep background edges diffuse. */
.about-stats .section-line.noir-motion-in{translate:none}
.about-stats>.nv-ambient:after{background-repeat:no-repeat}
/* Keep only sparse stars here: no diagonal beam whose composited edge can form a seam behind the heading. */
.about-stats>.nv-ambient:before{background-image:radial-gradient(circle at 12% 28%,#c8f78f80 0 1px,transparent 2px),radial-gradient(circle at 68% 18%,#c8f78f66 0 1px,transparent 2px),radial-gradient(circle at 82% 70%,#c8f78f80 0 1px,transparent 2px);background-size:230px 210px,310px 270px,270px 330px}
