body.ecp-effect-standard .ecp-motion-card:hover{transform:translateY(-4px)}
body.ecp-effect-enhanced .ecp-motion-card:hover{transform:translateY(-6px) scale(1.01)}
body.ecp-effect-extreme .ecp-motion-card:hover{transform:translateY(-8px) scale(1.02)}
body.ecp-effect-extreme .ecp-motion-section::before{background:radial-gradient(circle at 18% 20%,rgba(102,126,234,0.09),transparent 34%),radial-gradient(circle at 82% 68%,rgba(118,75,162,0.09),transparent 34%),linear-gradient(180deg,rgba(255,255,255,0.015),transparent)}
.ecp-motion-stage{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden;opacity:.82}
.ecp-motion-stage canvas{position:absolute;inset:0;width:100%;height:100%}
.ecp-motion-scan{position:absolute;left:0;right:0;height:220px;background:linear-gradient(180deg,transparent,rgba(102,126,234,0.18),rgba(118,75,162,0.12),transparent);animation:ecpGlobalScan 9s linear infinite;mix-blend-mode:screen;opacity:.42;filter:blur(8px)}
body.ecp-effect-standard .ecp-motion-stage{opacity:.34}
body.ecp-effect-standard .ecp-motion-scan{opacity:.16;animation-duration:16s}
body.ecp-effect-enhanced .ecp-motion-stage{opacity:.58}
body.ecp-effect-enhanced .ecp-motion-scan{opacity:.28;animation-duration:11s}
body.ecp-effect-extreme .ecp-motion-stage{opacity:.9}
body.ecp-effect-extreme .ecp-motion-scan{opacity:.45;animation-duration:7s}
body.ecp-effect-extreme .ecp-motion-section::before{background:radial-gradient(circle at 18% 20%,rgba(102,126,234,0.12),transparent 34%),radial-gradient(circle at 82% 68%,rgba(118,75,162,0.12),transparent 34%),linear-gradient(180deg,rgba(255,255,255,0.03),transparent)}
@keyframes ecpGlobalScan{0%{transform:translateY(-220px)}100%{transform:translateY(calc(100vh + 220px))}}
.ecp-motion-reveal{opacity:0;transform:translateY(36px) scale(.98);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.ecp-motion-reveal.visible{opacity:1;transform:translateY(0) scale(1)}
.ecp-page-shell,.ecp-page-hero,.ecp-inner-shell,.ecp-form-shell,.ecp-section{position:relative;z-index:1}
.ecp-page-shell{min-height:calc(100vh - 140px)}
.ecp-inner-panel,.ecp-side-panel,.ecp-news-card,.ecp-case-card,.ecp-stream-item,.ecp-form-panel,.ub-panel,.ub-content-bg{background:rgba(21,24,35,.78)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.08)!important;box-shadow:0 12px 36px rgba(0,0,0,.22),0 0 0 1px rgba(102,126,234,.06) inset}
.ecp-inner-shell::before{background:linear-gradient(135deg,rgba(102,126,234,0.14),rgba(118,75,162,0.08));opacity:1}
.ecp-page-hero::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 20%,rgba(102,126,234,.16),transparent 32%),linear-gradient(180deg,rgba(10,10,18,.12),rgba(10,10,18,.04));pointer-events:none}
.ecp-inner-shell{position:relative}
.ecp-inner-shell::before{content:'';position:absolute;inset:0;border-radius:1rem;background:linear-gradient(135deg,rgba(102,126,234,0.08),rgba(118,75,162,0.04));opacity:.8;pointer-events:none}
.ecp-inner-panel{position:relative;background:var(--ecp-bg-card);border:1px solid var(--ecp-border);border-radius:1rem;box-shadow:0 12px 36px rgba(0,0,0,.18)}
.ecp-article-hero{padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--ecp-border);background:linear-gradient(180deg,rgba(102,126,234,0.08),rgba(0,0,0,0))}
.ecp-article-title{font-size:1.8rem;font-weight:700;line-height:1.3;color:var(--ecp-text);margin:0}
.ecp-article-meta{display:flex;flex-wrap:wrap;gap:1rem;color:var(--ecp-text-dim);margin-top:.75rem;font-size:.9rem}
.ecp-article-body{padding:1.25rem 1.5rem 1.75rem}
.ecp-side-panel{background:var(--ecp-bg-card);border:1px solid var(--ecp-border);border-radius:1rem;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.16)}
.ecp-side-panel-head{padding:1rem 1.1rem;border-bottom:1px solid var(--ecp-border);font-size:1rem;font-weight:600;color:var(--ecp-text)}
.ecp-side-panel-body{padding:.75rem 1.1rem 1rem}
.ecp-grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}
.ecp-news-card,.ecp-case-card{display:flex;flex-direction:column;background:var(--ecp-bg-card);border:1px solid var(--ecp-border);border-radius:1rem;overflow:hidden;box-shadow:0 6px 24px rgba(0,0,0,.15);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.ecp-news-card:hover,.ecp-case-card:hover{transform:translateY(-6px);box-shadow:0 16px 36px rgba(0,0,0,.24);border-color:rgba(102,126,234,.22)}
.ecp-list-stream{display:flex;flex-direction:column;gap:1rem}
.ecp-stream-item{background:var(--ecp-bg-card);border:1px solid var(--ecp-border);border-radius:1rem;padding:1.15rem 1.2rem;box-shadow:0 6px 22px rgba(0,0,0,.14);transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.ecp-stream-item:hover{transform:translateY(-5px);box-shadow:0 14px 34px rgba(0,0,0,.24);border-color:rgba(102,126,234,.22)}
.ecp-stream-title{font-size:1.05rem;font-weight:600;line-height:1.45;color:var(--ecp-text)}
.ecp-stream-title a{color:inherit;text-decoration:none}.ecp-stream-title a:hover{color:var(--ecp-accent)}
.ecp-stream-summary{margin-top:.55rem;color:var(--ecp-text-dim);line-height:1.8;font-size:.86rem}
.ecp-stream-meta{margin-top:.8rem;display:flex;justify-content:space-between;align-items:center;color:var(--ecp-text-dim);font-size:.8rem}
.ecp-page-hero{position:relative;padding:4.5rem 0 4rem;background:linear-gradient(180deg,rgba(102,126,234,.12),rgba(118,75,162,.05) 55%,rgba(0,0,0,0));overflow:hidden}
.ecp-page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(102,126,234,.12),transparent 35%),radial-gradient(circle at 80% 30%,rgba(118,75,162,.1),transparent 35%);pointer-events:none}
.ecp-page-hero-inner{position:relative;z-index:1;text-align:center;max-width:860px;margin:0 auto}
.ecp-page-hero-title{font-size:clamp(2rem,4vw,3rem);font-weight:700;line-height:1.2;color:#fff;margin:0}
.ecp-page-hero-subtitle{margin-top:1rem;color:rgba(226,232,240,.72);font-size:1rem;line-height:1.9}
.ecp-form-shell{max-width:860px;margin:0 auto}
.ecp-form-panel{padding:2rem 1.4rem}
.ecp-form-tip{color:var(--ecp-text-dim);margin-bottom:1rem;line-height:1.8}
.ecp-form-panel .ub-form .line{padding:.8rem 0;border-bottom:1px dashed rgba(255,255,255,.04)}
.ecp-form-panel .ub-form .line:last-child{border-bottom:none}
.ecp-theme-glow-boost .ecp-inner-panel,.ecp-theme-glow-boost .ecp-news-card,.ecp-theme-glow-boost .ecp-case-card,.ecp-theme-glow-boost .ecp-stream-item{box-shadow:0 0 0 1px rgba(102,126,234,.16),0 18px 44px rgba(28,32,51,.34)}
.ecp-news-cover,.ecp-case-cover{position:relative;padding-top:60%;overflow:hidden}
.ecp-news-cover .cover,.ecp-case-cover .cover{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .35s ease}
.ecp-news-card:hover .cover,.ecp-case-card:hover .cover{transform:scale(1.05)}
.ecp-news-body,.ecp-case-body{padding:1rem 1.1rem 1.15rem;display:flex;flex-direction:column;flex:1}
.ecp-news-title,.ecp-case-title{font-size:1rem;font-weight:600;line-height:1.45;color:var(--ecp-text);margin-bottom:.45rem}
.ecp-news-title a,.ecp-case-title a{color:inherit;text-decoration:none}
.ecp-news-title a:hover,.ecp-case-title a:hover{color:var(--ecp-accent)}
.ecp-news-summary,.ecp-case-summary{font-size:.83rem;line-height:1.7;color:var(--ecp-text-dim);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:1}
.ecp-news-meta,.ecp-case-meta{display:flex;justify-content:space-between;align-items:center;margin-top:.8rem;color:var(--ecp-text-dim);font-size:.78rem}
.ecp-product-card-lg .ecp-product-cover{padding-top:68%}
.ecp-product-card-lg .ecp-product-body{padding:0 1.3rem 1.35rem;margin-top:-2rem}
.ecp-product-card-lg .ecp-product-name{font-size:1.08rem}
.ecp-product-card-lg .ecp-product-summary{-webkit-line-clamp:3;font-size:.88rem;line-height:1.7}
.ecp-home-block-toolbar{display:flex;justify-content:flex-end;gap:.75rem;flex-wrap:wrap;margin-top:1rem}
.ecp-home-block-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .8rem;border-radius:999px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);color:var(--ecp-text-dim);font-size:.78rem}
.ecp-home-block-chip.active{color:var(--ecp-accent);border-color:rgba(102,126,234,.22);background:rgba(102,126,234,.08)}
.ecp-home-nav{position:sticky;top:72px;z-index:15;padding:.75rem 0 1rem;background:linear-gradient(180deg,rgba(10,10,18,.96),rgba(10,10,18,.78),transparent);backdrop-filter:blur(10px)}
.ecp-home-nav-inner{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center;padding:.75rem 1rem 1rem;border-radius:1rem;border:1px solid transparent;box-sizing:border-box;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease}
.ecp-home-nav.is-active .ecp-home-nav-inner{background:rgba(10,10,18,.82);backdrop-filter:blur(14px);box-shadow:0 12px 36px rgba(0,0,0,.22);border-color:rgba(255,255,255,.06)}
.ecp-home-nav.is-outside{position:relative;top:auto}
.ecp-home-nav-link{display:inline-flex;align-items:center;gap:.4rem;padding:.48rem .95rem;border-radius:999px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);color:var(--ecp-text-dim);font-size:.8rem;text-decoration:none;transition:all .25s ease}
.ecp-home-nav-link:hover,.ecp-home-nav-link.active{color:var(--ecp-accent);border-color:rgba(102,126,234,.22);background:rgba(102,126,234,.08)}
.ecp-section-head-center{text-align:center;max-width:760px;margin:0 auto 2.5rem}
.ecp-chip-group{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}
.ecp-banner-shell{position:relative;padding:2rem 0 3rem}.ecp-banner-shell::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(102,126,234,.08),transparent 45%);pointer-events:none}
.ecp-partner-shell{position:relative}.ecp-partner-shell::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(118,75,162,.04),transparent);pointer-events:none}
.ecp-anchor-offset{scroll-margin-top:110px}
.ecp-home{position:relative}
.ecp-home{--ecp-home-primary:var(--ecp-accent);--ecp-home-secondary:var(--ecp-accent2)}
.ecp-reveal{opacity:0;transform:translateY(50px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.ecp-reveal.visible{opacity:1;transform:translateY(0)}
.ecp-reveal-left{opacity:0;transform:translateX(-80px) perspective(600px) rotateY(8deg);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.ecp-reveal-left.visible{opacity:1;transform:translateX(0) perspective(600px) rotateY(0)}
.ecp-reveal-right{opacity:0;transform:translateX(80px) perspective(600px) rotateY(-8deg);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.ecp-reveal-right.visible{opacity:1;transform:translateX(0) perspective(600px) rotateY(0)}
.ecp-reveal-scale{opacity:0;transform:scale(.7) perspective(600px) rotateX(5deg);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.ecp-reveal-scale.visible{opacity:1;transform:scale(1) perspective(600px) rotateX(0)}
.ecp-stagger>*{opacity:0;transform:translateY(40px) perspective(600px) rotateX(4deg);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1)}
.ecp-stagger.visible>*{opacity:1;transform:translateY(0) perspective(600px) rotateX(0)}
.ecp-stagger.visible>*:nth-child(1){transition-delay:.06s}.ecp-stagger.visible>*:nth-child(2){transition-delay:.14s}.ecp-stagger.visible>*:nth-child(3){transition-delay:.22s}.ecp-stagger.visible>*:nth-child(4){transition-delay:.30s}.ecp-stagger.visible>*:nth-child(5){transition-delay:.38s}.ecp-stagger.visible>*:nth-child(6){transition-delay:.46s}.ecp-stagger.visible>*:nth-child(7){transition-delay:.54s}.ecp-stagger.visible>*:nth-child(8){transition-delay:.62s}
.ecp-depth-grid{position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:linear-gradient(rgba(102,126,234,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(102,126,234,.03) 1px,transparent 1px);background-size:80px 80px;-webkit-mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black,transparent);mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black,transparent)}
.ecp-depth-orbs{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.ecp-depth-orb{position:absolute;border-radius:50%;filter:blur(120px);animation:ecpDepthOrb 8s ease-in-out infinite}
.ecp-depth-orb-a{width:400px;height:400px;background:rgba(102,126,234,.06);top:-20%;left:-5%;animation-delay:0s}
.ecp-depth-orb-b{width:350px;height:350px;background:rgba(118,75,162,.05);bottom:-15%;right:-5%;animation-delay:3s}
@keyframes ecpDepthOrb{0%,100%{transform:translate(0,0)}50%{transform:translate(30px,-20px)}}
.ecp-depth-glow{position:absolute;top:0;left:50%;transform:translateX(-50%);width:60%;height:1px;background:linear-gradient(90deg,transparent,rgba(102,126,234,.12),transparent);pointer-events:none}
.ecp-depth-glow-spread{position:absolute;top:-1px;left:50%;transform:translateX(-50%);width:120px;height:60px;background:radial-gradient(ellipse at center,rgba(102,126,234,.05),transparent);pointer-events:none}
.ecp-transition{position:relative;height:200px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.ecp-transition-inner{position:absolute;inset:0}
.ecp-transition canvas{position:absolute;inset:0;width:100%;height:100%}
.ecp-transition-grad-top{position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(to bottom,var(--ecp-bg),transparent);z-index:1;pointer-events:none}
.ecp-transition-grad-bot{position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(to top,var(--ecp-bg),transparent);z-index:1;pointer-events:none}
.ecp-transition-label{position:relative;z-index:2;font-size:.7rem;letter-spacing:.3em;color:rgba(102,126,234,.2);font-weight:600;text-transform:uppercase}
.ecp-hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(ellipse 80% 60% at 50% 40%,rgba(102,126,234,.08),transparent)}
.ecp-hero-canvas{position:absolute;inset:0;z-index:0;width:100%;height:100%}
.ecp-hero-orb{position:absolute;border-radius:50%;filter:blur(100px);animation:ecpOrb 5s ease-in-out infinite;pointer-events:none}
.ecp-hero-orb-1{width:600px;height:600px;background:rgba(102,126,234,.2);top:-15%;left:10%;animation-delay:0s}
.ecp-hero-orb-2{width:500px;height:500px;background:rgba(118,75,162,.18);bottom:-10%;right:5%;animation-delay:1.5s}
.ecp-hero-orb-3{width:350px;height:350px;background:rgba(79,172,254,.12);top:20%;left:60%;animation-delay:3s}
@keyframes ecpOrb{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(40px,-30px) scale(1.08)}66%{transform:translate(-30px,40px) scale(.94)}}
.ecp-hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(102,126,234,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(102,126,234,.06) 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,black,transparent);-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,black,transparent)}
.ecp-shape{position:absolute;border:1.5px solid rgba(102,126,234,.15);border-radius:4px;animation:ecpFloat 6s ease-in-out infinite;pointer-events:none;z-index:0}
.ecp-shape-1{width:60px;height:60px;top:20%;left:8%;animation-delay:0s;transform:rotate(45deg);border-color:rgba(102,126,234,.2)}
.ecp-shape-2{width:40px;height:40px;top:60%;left:5%;animation-delay:1.5s;border-radius:50%;border-color:rgba(118,75,162,.2)}
.ecp-shape-3{width:80px;height:80px;top:15%;right:10%;animation-delay:3s;transform:rotate(20deg);border-color:rgba(79,172,254,.15)}
.ecp-shape-4{width:50px;height:50px;bottom:25%;right:8%;animation-delay:4s;border-radius:50%;border-color:rgba(67,233,123,.12)}
.ecp-shape-5{width:30px;height:30px;top:50%;right:30%;animation-delay:2s;transform:rotate(30deg);border-color:rgba(240,147,251,.15)}
@keyframes ecpFloat{0%,100%{transform:translateY(0) rotate(var(--r,45deg))}50%{transform:translateY(-20px) rotate(calc(var(--r,45deg) + 10deg))}}
.ecp-shape-1{--r:45deg}.ecp-shape-2{--r:0deg}.ecp-shape-3{--r:20deg}.ecp-shape-4{--r:0deg}.ecp-shape-5{--r:30deg}
.ecp-hero-content{position:relative;z-index:1;text-align:center;max-width:850px;padding:0 2rem}.ecp-hero-badge{display:inline-flex;align-items:center;gap:.5rem;background:rgba(102,126,234,.12);border:1px solid rgba(102,126,234,.25);border-radius:2rem;padding:.45rem 1.3rem;font-size:.82rem;color:var(--ecp-accent);margin-bottom:1.5rem;animation:ecpFadeIn .6s ease .1s both;backdrop-filter:blur(8px)}
.ecp-hero-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--ecp-home-primary);box-shadow:0 0 8px var(--ecp-home-primary);animation:ecpDot 1.2s ease-in-out infinite}
@keyframes ecpDot{0%,100%{opacity:1;box-shadow:0 0 8px var(--ecp-home-primary)}50%{opacity:.4;box-shadow:0 0 2px var(--ecp-home-primary)}}
.ecp-hero-title{font-size:clamp(2.5rem,6vw,4.5rem);font-weight:900;line-height:1.1;margin-bottom:1.25rem;animation:ecpHeroTitle .8s cubic-bezier(.16,1,.3,1) .3s both;letter-spacing:-.02em}
.ecp-hero-title-gradient{background:linear-gradient(135deg,#fff 0%,var(--ecp-home-primary) 40%,var(--ecp-home-secondary) 70%,#4facfe 100%);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:ecpShine 2.5s linear infinite}
@keyframes ecpShine{0%{background-position:0% center}100%{background-position:200% center}}
@keyframes ecpHeroTitle{from{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes ecpFadeIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.ecp-hero-sub{font-size:clamp(1rem,2vw,1.2rem);color:var(--ecp-text-sec);line-height:1.7;max-width:580px;margin:0 auto 2.5rem;animation:ecpFadeIn .6s ease .5s both}
.ecp-hero-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;animation:ecpFadeIn .6s ease .7s both}
.ecp-hero-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 2.2rem;border-radius:2rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:all .3s;cursor:pointer;border:none;position:relative;overflow:hidden}
.ecp-hero-btn-primary{background:linear-gradient(135deg,var(--ecp-home-primary),var(--ecp-home-secondary));color:#fff;box-shadow:0 4px 24px rgba(102,126,234,.4)}
.ecp-hero-btn-primary:hover{transform:translateY(-3px);box-shadow:0 8px 40px rgba(102,126,234,.55);color:#fff}
.ecp-hero-btn-primary::after{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(transparent,rgba(255,255,255,.15),transparent);transform:rotate(45deg);transition:.5s}
.ecp-hero-btn-primary:hover::after{left:100%}
.ecp-hero-btn-ghost{background:rgba(255,255,255,.03);color:var(--ecp-text-sec);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(4px)}
.ecp-hero-btn-ghost:hover{border-color:var(--ecp-accent);color:var(--ecp-accent);background:rgba(102,126,234,.08)}
.ecp-hero-scroll{position:absolute;bottom:5rem;left:50%;transform:translateX(-50%);z-index:1;display:flex;flex-direction:column;align-items:center;gap:.5rem;animation:ecpBounce 2s ease infinite}
.ecp-hero-scroll-mouse{display:block;width:26px;height:42px;border:2px solid rgba(255,255,255,.15);border-radius:13px;position:relative}
.ecp-hero-scroll-mouse::after{content:'';position:absolute;top:7px;left:50%;transform:translateX(-50%);width:3px;height:9px;background:var(--ecp-accent);border-radius:2px;animation:ecpScrollDot 1.8s ease infinite}
.ecp-hero-scroll-text{font-size:.72rem;color:rgba(255,255,255,.25);letter-spacing:.15em;font-weight:400;animation:ecpScrollTextPulse 2s ease infinite}
@keyframes ecpBounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(8px)}}
@keyframes ecpScrollDot{0%{opacity:1;top:7px}100%{opacity:0;top:22px}}
@keyframes ecpScrollTextPulse{0%,100%{opacity:.25}50%{opacity:.6}}
.ecp-banner-section{position:relative;z-index:2;overflow:hidden}.ecp-banner-section::before{content:'';position:absolute;top:0;left:0;right:0;height:80px;background:linear-gradient(to bottom,var(--ecp-bg),transparent);z-index:1;pointer-events:none}.ecp-banner-section::after{content:'';position:absolute;bottom:0;left:0;right:0;height:80px;background:linear-gradient(to top,var(--ecp-bg),transparent);z-index:1;pointer-events:none}.ecp-banner-wrap{width:100%;position:relative}
.ecp-section{padding:6rem 0;position:relative;overflow:hidden}.ecp-section-alt{background:linear-gradient(180deg,rgba(102,126,234,.025) 0%,transparent 100%)}.ecp-section-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.2em;color:var(--ecp-accent);margin-bottom:.5rem;font-weight:600}.ecp-section-title{font-size:clamp(1.6rem,3.5vw,2.5rem);font-weight:800;color:var(--ecp-text);margin-bottom:.75rem;line-height:1.2}.ecp-section-desc{font-size:1rem;color:var(--ecp-text-sec);line-height:1.7;max-width:600px}
.ecp-product-card{background:var(--ecp-bg-card);border:1px solid var(--ecp-border);border-radius:.85rem;overflow:hidden;transition:all .35s;display:flex;flex-direction:column;height:100%}.ecp-product-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 16px 48px rgba(102,126,234,.18);border-color:rgba(102,126,234,.3)}.ecp-product-cover{position:relative;padding-top:60%;overflow:hidden}.ecp-product-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}.ecp-product-card:hover .ecp-product-cover img{transform:scale(1.1)}.ecp-product-cover::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,var(--ecp-bg-card) 0%,transparent 50%);pointer-events:none}.ecp-product-body{padding:0 1.15rem 1.15rem;margin-top:-1.5rem;position:relative}.ecp-product-name{font-size:1rem;font-weight:700;color:var(--ecp-text);margin-bottom:.25rem}.ecp-product-name a{color:var(--ecp-text)!important;text-decoration:none}.ecp-product-name a:hover{color:var(--ecp-accent)!important}.ecp-product-summary{font-size:.82rem;color:var(--ecp-text-dim);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:.6rem}.ecp-product-tags{display:flex;gap:.35rem;flex-wrap:wrap}.ecp-product-tag{font-size:.68rem;padding:.12rem .5rem;border-radius:1rem;color:#fff}.ecp-tag-price{background:linear-gradient(135deg,var(--ecp-home-primary),var(--ecp-home-secondary))}.ecp-tag-free{background:linear-gradient(135deg,#43e97b,#38f9d7)}.ecp-tag-ver{background:linear-gradient(135deg,#f093fb,#f5576c)}.ecp-tag-auth{background:linear-gradient(135deg,#4facfe,#00f2fe)}
.ecp-about{position:relative;min-height:60vh;display:flex;align-items:center;overflow:hidden}.ecp-about-bg{position:absolute;inset:0;z-index:0}.ecp-about-bg img{width:100%;height:100%;object-fit:cover}.ecp-about-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,8,16,.92) 0%,rgba(10,10,18,.85) 50%,rgba(8,8,16,.92) 100%)}.ecp-about-inner{position:relative;z-index:1;max-width:800px;margin:0 auto;text-align:center;padding:5rem 1.5rem}.ecp-about-inner .ecp-section-label{margin-bottom:.6rem}.ecp-about-inner h2{font-size:clamp(1.6rem,4vw,2.4rem);font-weight:800;color:#fff;margin-bottom:1.25rem;line-height:1.3}.ecp-about-inner .ub-html{color:rgba(255,255,255,.72);line-height:2;font-size:.95rem;max-width:680px;margin:0 auto}.ecp-about-divider{width:50px;height:3px;background:linear-gradient(90deg,var(--ecp-home-primary),var(--ecp-home-secondary));border-radius:2px;margin:0 auto 1.25rem}
.ecp-news-card{background:var(--ecp-bg-card);border:1px solid var(--ecp-border);border-radius:.85rem;overflow:hidden;transition:all .3s;display:flex;flex-direction:column;height:100%}.ecp-news-card:hover{transform:translateY(-5px);box-shadow:0 10px 36px rgba(0,0,0,.3);border-color:rgba(102,126,234,.2)}.ecp-news-cover{position:relative;padding-top:56.25%;overflow:hidden}.ecp-news-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s}.ecp-news-card:hover .ecp-news-cover img{transform:scale(1.06)}.ecp-news-body{padding:1rem;flex:1;display:flex;flex-direction:column}.ecp-news-title{font-size:.95rem;font-weight:600;color:var(--ecp-text);margin-bottom:.35rem}.ecp-news-title a{color:var(--ecp-text)!important;text-decoration:none}.ecp-news-title a:hover{color:var(--ecp-accent)!important}.ecp-news-summary{font-size:.82rem;color:var(--ecp-text-dim);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1}
.ecp-case-card{position:relative;border-radius:.85rem;overflow:hidden;aspect-ratio:4/3;cursor:pointer;border:1px solid var(--ecp-border);transition:all .3s}.ecp-case-card:hover{transform:translateY(-5px);box-shadow:0 12px 36px rgba(0,0,0,.3)}.ecp-case-card img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.ecp-case-card:hover img{transform:scale(1.1)}.ecp-case-card::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,18,.9) 0%,transparent 65%);pointer-events:none}.ecp-case-card-info{position:absolute;bottom:0;left:0;right:0;padding:1.25rem;z-index:1}.ecp-case-card-name{font-size:1.05rem;font-weight:700;color:#fff}.ecp-case-card-name a{color:#fff!important;text-decoration:none}.ecp-case-card-name a:hover{color:var(--ecp-accent)!important}
.ecp-brand{padding:6rem 0 4rem;position:relative;overflow:hidden}.ecp-brand-canvas{width:100%;height:300px;display:block}.ecp-brand-sub{font-size:.95rem;color:var(--ecp-text-dim);letter-spacing:.35em;font-weight:300;text-align:center;position:relative}.ecp-brand-scanline{position:relative;height:3px;max-width:500px;margin:1.25rem auto 0;overflow:hidden;border-radius:2px}.ecp-brand-scanline-track{position:absolute;inset:0;background:rgba(255,255,255,.03);border-radius:2px}.ecp-brand-scanline-glow{position:absolute;top:0;left:-30%;width:30%;height:100%;background:linear-gradient(90deg,transparent,var(--ecp-home-primary),var(--ecp-home-secondary),transparent);border-radius:2px;animation:ecpScan 2.5s ease-in-out infinite}
@keyframes ecpScan{0%{left:-30%}100%{left:100%}}
@media(max-width:768px){.ecp-hero{min-height:85vh}.ecp-section{padding:4rem 0}.ecp-about{min-height:50vh}.ecp-about-inner{padding:3rem 1rem}.ecp-hero-orb-1{width:300px;height:300px}.ecp-hero-orb-2{width:250px;height:250px}.ecp-hero-orb-3{width:180px;height:180px}.ecp-article-title{font-size:1.4rem}}
@media (max-width: 768px){.ecp-article-title{font-size:1.4rem}}
