/* Effects layer — ported from PromptENG AI site (SMHcoders product), recolored to system tokens */
@keyframes reveal{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.animate-reveal{animation:reveal .6s var(--ease-out) forwards}
.animate-reveal-delay-1{animation:reveal .6s var(--ease-out) .1s forwards;opacity:0}
.animate-reveal-delay-2{animation:reveal .6s var(--ease-out) .2s forwards;opacity:0}
.animate-reveal-delay-3{animation:reveal .6s var(--ease-out) .3s forwards;opacity:0}
.stagger-item{opacity:0;transform:translateY(20px);animation:reveal .5s var(--ease-out) forwards}
.stagger-item:nth-child(1){animation-delay:0ms}.stagger-item:nth-child(2){animation-delay:100ms}.stagger-item:nth-child(3){animation-delay:200ms}.stagger-item:nth-child(4){animation-delay:300ms}.stagger-item:nth-child(5){animation-delay:400ms}.stagger-item:nth-child(6){animation-delay:500ms}
@keyframes smh-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
.animate-float{animation:smh-float 6s ease-in-out infinite}
.animate-float-slow{animation:smh-float 8s ease-in-out infinite}
.animate-float-delayed{animation:smh-float 7s ease-in-out 1s infinite}
@keyframes pulse-glow{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}
.animate-pulse-glow{animation:pulse-glow 3s ease-in-out infinite}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
.shimmer{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.1) 50%,transparent 100%);background-size:200% 100%;animation:shimmer 3s ease-in-out infinite}
.text-gradient{background:var(--grad-signal);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.glow-signal-box{box-shadow:0 0 30px rgba(20,154,154,.3),0 0 60px rgba(20,154,154,.1)}
.glow-cyan-box{box-shadow:0 0 30px rgba(28,197,197,.3),0 0 60px rgba(28,197,197,.1)}
.glow-cyan-sm{box-shadow:0 0 15px rgba(28,197,197,.2),0 0 30px rgba(28,197,197,.05)}
@keyframes border-spin{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
.animated-border{position:relative;z-index:0}
.animated-border::before{content:'';position:absolute;inset:-2px;z-index:-1;background:linear-gradient(90deg,var(--signal),var(--cyan),var(--signal));background-size:200% 100%;animation:border-spin 4s linear infinite;border-radius:inherit;opacity:0;transition:opacity .3s ease}
.animated-border:hover::before{opacity:1}
.gradient-border{position:relative;background:var(--surface-card);border-radius:var(--radius-md)}
.gradient-border::before{content:'';position:absolute;inset:0;padding:1px;border-radius:inherit;background:var(--grad-signal);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.card-hover{transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out)}
.card-hover:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.underline-animate{position:relative}
.underline-animate::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--grad-signal);transition:width .3s var(--ease-out)}
.underline-animate:hover::after{width:100%}
.glass{background:rgba(255,255,255,.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3)}
.glass-dark{background:rgba(7,19,27,.8);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--panel-border)}
.gradient-radial-signal{background:radial-gradient(ellipse at center,rgba(20,154,154,.15) 0%,transparent 70%)}
.gradient-radial-cyan{background:radial-gradient(ellipse at center,rgba(28,197,197,.12) 0%,transparent 70%)}
.spotlight{position:relative;overflow:hidden}
.spotlight::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at center,rgba(28,197,197,.1) 0%,transparent 40%);opacity:0;transition:opacity .5s ease;pointer-events:none}
.spotlight:hover::before{opacity:1}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.animate-marquee{animation:marquee 25s linear infinite}
@keyframes line-draw{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.animate-line-draw{stroke-dasharray:100;animation:line-draw 1.5s var(--ease-out) forwards}
@keyframes gradient-shift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.animate-gradient{background-size:200% 200%;animation:gradient-shift 5s ease infinite}
.noise{position:relative}
.noise::before{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:.03;pointer-events:none;z-index:1}
.blur-edge{mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent)}
@media (prefers-reduced-motion:reduce){.animate-reveal,.animate-reveal-delay-1,.animate-reveal-delay-2,.animate-reveal-delay-3,.stagger-item{animation:none;opacity:1;transform:none}}
.scale-hover{transition:transform .3s var(--ease-out)}
.scale-hover:hover{transform:scale(1.05)}
.rotate-hover{transition:transform .3s var(--ease-out)}
.rotate-hover:hover{transform:rotate(5deg)}
.text-glow{text-shadow:0 0 20px rgba(28,197,197,.5)}
.hover-line{position:relative}
.hover-line::after{content:'';position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--cyan);transition:all .3s var(--ease-out);transform:translateX(-50%)}
.hover-line:hover::after{width:100%}
@keyframes smh-bounce-dot{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.bounce-dot{animation:smh-bounce-dot 1s ease-in-out infinite}
.smh-prod-card .smh-learn{opacity:0;transform:translateY(4px);transition:opacity .3s var(--ease-out),transform .3s var(--ease-out)}
.smh-prod-card:hover .smh-learn{opacity:1;transform:none}
.smh-prod-card .smh-learn:hover{text-decoration:none}
