/* v30 - section-level reveal and updated statistics */
.vn30-reveal{opacity:0;transform:translateY(30px);transition:opacity var(--vn30-duration,750ms) ease var(--vn30-delay,0ms),transform var(--vn30-duration,750ms) cubic-bezier(.2,.7,.2,1) var(--vn30-delay,0ms),filter var(--vn30-duration,750ms) ease var(--vn30-delay,0ms);filter:blur(0)}
.vn30-reveal[data-vn30-effect="fade-in"]{transform:none}
.vn30-reveal[data-vn30-effect="fade-down"]{transform:translateY(-35px)}
.vn30-reveal[data-vn30-effect="fade-left"],.vn30-reveal[data-vn30-effect="slide-left"]{transform:translateX(45px)}
.vn30-reveal[data-vn30-effect="fade-right"],.vn30-reveal[data-vn30-effect="slide-right"]{transform:translateX(-45px)}
.vn30-reveal[data-vn30-effect="zoom-in"]{transform:scale(.93)}
.vn30-reveal[data-vn30-effect="zoom-out"]{transform:scale(1.07)}
.vn30-reveal[data-vn30-effect="blur-in"]{transform:translateY(10px);filter:blur(8px)}
.vn30-reveal[data-vn30-effect="rotate-in"]{transform:translateY(20px) rotate(-2deg)}
.vn30-reveal.vn30-visible{opacity:1;transform:none;filter:none}
.v4-stat-section .v4-stats article{background:var(--vn30-stat-card,#fff);border:1px solid rgba(31,62,104,.1);border-radius:22px;box-shadow:0 16px 36px rgba(18,40,78,.07);padding:26px;min-height:175px;display:flex;justify-content:space-between;align-items:center;gap:18px;transition:transform .25s ease,box-shadow .25s ease}
.v4-stat-section .v4-stats article:hover{transform:translateY(-5px);box-shadow:0 22px 44px rgba(18,40,78,.13)}
.v4-stat-section [data-vn30-counter]{font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-.03em}
.v4-stat-section .v4-stat-icon{font-size:38px;line-height:1.2;flex-shrink:0}
.vn30-config{padding:22px;background:#f5f8fc;border:1px solid #dce8f5;border-radius:18px;margin:20px 0}
.vn30-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.vn30-preview{border-radius:14px;background:#fff;border:1px solid #dce8f5;margin-top:12px;padding:20px;text-align:center;transition:opacity .7s ease,transform .7s ease}
.vn30-preview.vn30-run{animation:vn30demo .7s ease both}
@keyframes vn30demo{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@media(max-width:700px){.vn30-config-grid{grid-template-columns:1fr}.v4-stat-section .v4-stats article{padding:20px;min-height:120px}}
@media(prefers-reduced-motion:reduce){.vn30-reveal{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}.vn30-preview.vn30-run{animation:none!important}}
