ProjectGenesis's picture
Create animated numbers (1–10) in the style of Netflix’s "Top 10" design.
1838d8f verified
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap');
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Bebas Neue', cursive;
background: #000;
overflow: hidden;
}
.cinematic-number {
position: relative;
font-size: 30vw;
font-weight: 900;
color: transparent;
background: linear-gradient(145deg, #8B0000, #B22222, #DC143C);
-webkit-background-clip: text;
background-clip: text;
text-shadow:
0 0 30px rgba(220, 20, 60, 0.8),
0 0 60px rgba(220, 20, 60, 0.6),
0 0 90px rgba(220, 20, 60, 0.4),
4px 4px 0px #000,
8px 8px 15px rgba(0, 0, 0, 0.8);
transform-style: preserve-3d;
perspective: 1000px;
}
.cinematic-number::before {
content: attr(data-number);
position: absolute;
top: 0;
left: 0;
color: rgba(139, 0, 0, 0.3);
z-index: -1;
transform: translateZ(-30px) scale(1.1);
filter: blur(15px);
}
.cinematic-number::after {
content: '';
position: absolute;
top: -10%;
left: -10%;
right: -10%;
bottom: -10%;
background: radial-gradient(circle at center, rgba(220, 20, 60, 0.1) 0%, transparent 70%);
z-index: -2;
border-radius: 20%;
animation: ambientGlow 3s ease-in-out infinite alternate;
}
@keyframes ambientGlow {
0% { opacity: 0.3; transform: scale(0.95); }
100% { opacity: 0.7; transform: scale(1.05); }
}
/* Animation Classes */
.zoom-in {
animation: zoomIn 3s ease-out forwards;
}
@keyframes zoomIn {
0% {
transform: scale(0.1) rotateX(90deg);
opacity: 0;
}
50% {
transform: scale(1.1) rotateX(0deg);
opacity: 1;
}
100% {
transform: scale(1) rotateX(0deg);
opacity: 1;
}
}
.bounce-in {
animation: bounceIn 1.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
}
@keyframes bounceIn {
0% {
transform: scale(0) translateY(100vh);
opacity: 0;
}
60% {
transform: scale(1.2) translateY(-20px);
opacity: 1;
}
80% {
transform: scale(0.95) translateY(10px);
}
100% {
transform: scale(1) translateY(0);
opacity: 1;
}
}
.smoke-reveal {
animation: smokeReveal 4s ease-out forwards;
}
@keyframes smokeReveal {
0% {
transform: scale(0.5) translateY(50px);
opacity: 0;
filter: blur(20px);
}
30% {
transform: scale(1.1) translateY(-10px);
opacity: 0.5;
filter: blur(10px);
}
60% {
transform: scale(0.95) translateY(5px);
opacity: 0.8;
filter: blur(5px);
}
100% {
transform: scale(1) translateY(0);
opacity: 1;
filter: blur(0);
}
}
.glitch-flicker {
animation: glitchFlicker 2.5s ease-out forwards;
}
@keyframes glitchFlicker {
0% {
transform: scale(0.8);
opacity: 0;
filter: hue-rotate(0deg);
}
20% {
transform: scale(1.1);
opacity: 1;
filter: hue-rotate(90deg);
}
40% {
transform: scale(0.9) translateX(-10px);
filter: hue-rotate(180deg);
}
60% {
transform: scale(1.05) translateX(10px);
filter: hue-rotate(270deg);
}
80% {
transform: scale(0.95);
filter: hue-rotate(360deg);
}
100% {
transform: scale(1);
opacity: 1;
filter: hue-rotate(0deg);
}
}
.energy-pulse {
animation: energyPulse 3s ease-out forwards;
}
@keyframes energyPulse {
0% {
transform: scale(0.5);
opacity: 0;
}
30% {
transform: scale(1.3);
opacity: 1;
text-shadow:
0 0 50px rgba(220, 20, 60, 1),
0 0 100px rgba(220, 20, 60, 0.8),
0 0 150px rgba(220, 20, 60, 0.6);
}
50% {
transform: scale(1.1);
text-shadow:
0 0 30px rgba(220, 20, 60, 0.8),
0 0 60px rgba(220, 20, 60, 0.6),
0 0 90px rgba(220, 20, 60, 0.4);
}
100% {
transform: scale(1);
opacity: 1;
}
}
/* Particle Effects */
.particles {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
}
.particle {
position: absolute;
width: 4px;
height: 4px;
background: #DC143C;
border-radius: 50%;
animation: floatParticle 2s ease-out forwards;
}
@keyframes floatParticle {
0% {
transform: translate(0, 0) scale(0);
opacity: 1;
}
100% {
transform: translate(var(--tx), var(--ty)) scale(1);
opacity: 0;
}
}