Merge version_2 into main #2
184
src/app/styles/animations.css
Normal file
184
src/app/styles/animations.css
Normal file
@@ -0,0 +1,184 @@
|
||||
@keyframes cinemaHover {
|
||||
0% {
|
||||
--tilt-x: 0deg;
|
||||
--tilt-y: 0deg;
|
||||
transform: perspective(1200px) rotateX(0deg) rotateY(0deg) scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes parallaxShift {
|
||||
0% {
|
||||
transform: translateZ(0px);
|
||||
}
|
||||
100% {
|
||||
transform: translateZ(20px);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes holographicSheen {
|
||||
0% {
|
||||
background-position: 0% center;
|
||||
}
|
||||
100% {
|
||||
background-position: 100% center;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes glowPulse {
|
||||
0%, 100% {
|
||||
box-shadow: 0 0 20px rgba(255, 255, 255, 0.3), inset 0 0 20px rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
50% {
|
||||
box-shadow: 0 0 40px rgba(255, 255, 255, 0.6), inset 0 0 40px rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes scrollReveal {
|
||||
0% {
|
||||
opacity: 0;
|
||||
clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes luminousWaveBottom {
|
||||
0% {
|
||||
transform: translateX(-100%);
|
||||
opacity: 0;
|
||||
}
|
||||
50% {
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
transform: translateX(100%);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes luminousWaveTop {
|
||||
0% {
|
||||
transform: translateX(100%);
|
||||
opacity: 0;
|
||||
}
|
||||
50% {
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
transform: translateX(-100%);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes scrollParallax {
|
||||
0% {
|
||||
transform: translateY(0px);
|
||||
}
|
||||
100% {
|
||||
transform: translateY(var(--parallax-distance));
|
||||
}
|
||||
}
|
||||
|
||||
.hero-cinematic-card {
|
||||
perspective: 1200px;
|
||||
position: relative;
|
||||
transition: all 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
|
||||
}
|
||||
|
||||
.hero-cinematic-card:hover {
|
||||
transform: scale(1.02);
|
||||
filter: drop-shadow(0 30px 60px rgba(0, 0, 0, 0.4));
|
||||
}
|
||||
|
||||
.hero-cinematic-card::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(255, 255, 255, 0.1) 0%,
|
||||
rgba(255, 255, 255, 0) 50%,
|
||||
rgba(0, 0, 0, 0.1) 100%
|
||||
);
|
||||
border-radius: inherit;
|
||||
pointer-events: none;
|
||||
opacity: 0;
|
||||
transition: opacity 0.6s ease;
|
||||
}
|
||||
|
||||
.hero-cinematic-card:hover::before {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.scroll-parallax-layer {
|
||||
--parallax-distance: var(--scroll-distance, 0px);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.scroll-parallax-layer.layer-1 {
|
||||
--parallax-distance: calc(var(--scroll-distance, 0px) * 0.3);
|
||||
}
|
||||
|
||||
.scroll-parallax-layer.layer-2 {
|
||||
--parallax-distance: calc(var(--scroll-distance, 0px) * 0.5);
|
||||
}
|
||||
|
||||
.scroll-parallax-layer.layer-3 {
|
||||
--parallax-distance: calc(var(--scroll-distance, 0px) * 0.7);
|
||||
}
|
||||
|
||||
.section-reveal {
|
||||
animation: scrollReveal 0.8s ease-out forwards;
|
||||
animation-timeline: view();
|
||||
animation-range: entry 0% cover 30%;
|
||||
}
|
||||
|
||||
.glow-pulse {
|
||||
animation: glowPulse 3s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.luminous-wave {
|
||||
position: absolute;
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
transparent 0%,
|
||||
rgba(255, 255, 255, 0.4) 50%,
|
||||
transparent 100%
|
||||
);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.luminous-wave.bottom {
|
||||
animation: luminousWaveBottom 6s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.luminous-wave.top {
|
||||
animation: luminousWaveTop 8s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.headline-stagger {
|
||||
animation: scrollReveal 1s ease-out forwards;
|
||||
animation-timeline: view();
|
||||
animation-range: entry 0% cover 25%;
|
||||
}
|
||||
|
||||
.cta-stagger {
|
||||
animation: scrollReveal 1.2s ease-out 0.2s forwards;
|
||||
animation-timeline: view();
|
||||
animation-range: entry 0% cover 25%;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.micro-detail-glow {
|
||||
position: relative;
|
||||
transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
|
||||
}
|
||||
|
||||
.micro-detail-glow:hover {
|
||||
filter: drop-shadow(0 0 12px rgba(255, 255, 255, 0.6));
|
||||
}
|
||||
Reference in New Issue
Block a user