* {
margin: 0;
box-sizing: border-box;
}
:root {
--bg: #020617;
--c1: #38bdf8;
--c2: #a855f7;
--c3: #22c55e;
--noise: rgba(255, 255, 255, 0.05);
}
body {
font-family: system-ui, sans-serif;
background: radial-gradient(circle at 20% 10%, #1e293b, transparent 60%),
radial-gradient(circle at 80% 90%, #020617, transparent 70%), var(--bg);
color: white;
overflow-x: hidden;
}
/* grain */
body::after {
content: "";
position: fixed;
inset: 0;
background: repeating-radial-gradient(
circle,
var(--noise) 0 1px,
transparent 1px 2px
);
mix-blend-mode: overlay;
pointer-events: none;
opacity: 0.35;
animation: grain 0.25s steps(2) infinite;
}
@keyframes grain {
to {
transform: translate(2px, -2px);
}
}
/* layout */
section {
min-height: 100vh;
display: grid;
place-items: center;
padding: 5rem 2rem;
perspective: 1000px;
}
/* glitch title */
.glitch {
position: relative;
font-size: clamp(3rem, 9vw, 6rem);
font-weight: 900;
letter-spacing: 0.08em;
margin-bottom: 4rem;
}
.glitch::before,
.glitch::after {
content: attr(data-text);
position: absolute;
inset: 0;
opacity: 0.8;
}
.glitch::before {
color: var(--c1);
transform: translate(3px, -2px);
mix-blend-mode: screen;
animation: glitch 2s infinite alternate;
}
.glitch::after {
color: var(--c2);
transform: translate(-3px, 2px);
mix-blend-mode: screen;
animation: glitch 1.5s infinite alternate-reverse;
}
@keyframes glitch {
0% {
clip-path: inset(0 0 70% 0);
}
25% {
clip-path: inset(20% 0 40% 0);
}
50% {
clip-path: inset(40% 0 20% 0);
}
75% {
clip-path: inset(10% 0 60% 0);
}
100% {
clip-path: inset(0 0 0 0);
}
}
/* holographic card */
.card {
width: min(420px, 90vw);
padding: 2.5rem;
border-radius: 28px;
background: linear-gradient(
120deg,
rgba(255, 255, 255, 0.08),
rgba(255, 255, 255, 0.02)
);
backdrop-filter: blur(16px);
box-shadow: 0 0 50px rgba(56, 189, 248, 0.35),
inset 0 0 35px rgba(255, 255, 255, 0.15);
transform-style: preserve-3d;
animation: float 6s ease-in-out infinite;
position: relative;
}
.card::before {
content: "";
position: absolute;
inset: -2px;
background: linear-gradient(
120deg,
transparent 20%,
var(--c1),
var(--c2),
var(--c3),
transparent 80%
);
filter: blur(25px);
opacity: 0.4;
z-index: -1;
animation: holo 4s linear infinite;
background-size: 400% 100%;
}
@keyframes holo {
to {
background-position: 400% 0;
}
}
@keyframes float {
0%,
100% {
transform: rotateX(12deg) rotateY(-10deg) translateY(0);
}
50% {
transform: rotateX(18deg) rotateY(12deg) translateY(-25px);
}
}
.card h2 {
font-size: 1.7rem;
margin-bottom: 1rem;
}
.card p {
line-height: 1.6;
opacity: 0.85;
}
/* holographic button */
.btn {
display: inline-block;
margin-top: 2rem;
padding: 0.9rem 1.8rem;
border-radius: 999px;
font-weight: 600;
letter-spacing: 0.08em;
color: white;
text-decoration: none;
background: linear-gradient(90deg, var(--c1), var(--c2), var(--c3));
background-size: 300% 100%;
animation: holo 3s linear infinite;
box-shadow: 0 0 25px rgba(168, 85, 247, 0.6);
}