1000planets-site/app/globals.css

154 lines
3.2 KiB
CSS

@tailwind base;
@tailwind components;
@tailwind utilities;
:root {
--foreground: 255 255 255;
--background: 8 10 24;
--accent: 139 92 246;
--soft: 226 232 240;
--glow: 148 163 184;
--font-body: var(--font-body, 'Space Grotesk', system-ui, sans-serif);
--font-heading: var(--font-heading, 'Dela Gothic One', system-ui, sans-serif);
--font-data: var(--font-data, 'JetBrains Mono', monospace);
}
body {
font-family: var(--font-body);
color: rgb(var(--foreground));
background: radial-gradient(circle at 10% 20%, rgba(79, 70, 229, 0.25), transparent 50%),
radial-gradient(circle at 80% 10%, rgba(239, 68, 68, 0.25), transparent 60%),
rgb(var(--background));
min-height: 100vh;
}
.font-heading {
font-family: var(--font-heading);
}
.font-data {
font-family: var(--font-data);
}
.hero-prism {
position: relative;
overflow: visible;
}
.hero-prism::after {
content: '';
position: absolute;
inset: -60px auto auto -40px;
width: 320px;
height: 320px;
border-radius: 999px;
background: radial-gradient(circle, rgba(59, 130, 246, 0.35), transparent 70%);
filter: blur(30px);
opacity: 0.75;
}
.module-card {
background: rgba(15, 23, 42, 0.8);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 28px;
padding: 1.5rem;
backdrop-filter: blur(14px);
box-shadow: 0 25px 40px rgba(2, 6, 23, 0.7);
transition: transform 0.4s ease, border-color 0.4s ease;
}
.module-card:hover {
border-color: rgba(139, 92, 246, 0.7);
transform: translateY(-4px);
}
.floating-ring {
position: absolute;
width: 420px;
height: 420px;
border-radius: 999px;
background: radial-gradient(circle, rgba(139, 92, 246, 0.25), transparent 70%);
filter: blur(30px);
opacity: 0.35;
top: -120px;
right: 20%;
animation: orbitRing 10s ease-in-out infinite;
}
.floating-ring--secondary {
width: 320px;
height: 320px;
background: radial-gradient(circle, rgba(59, 130, 246, 0.3), transparent 65%);
top: 200px;
left: 10%;
animation-duration: 12s;
}
.shimmer {
position: relative;
overflow: hidden;
}
.shimmer::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.22), transparent);
animation: shimmer 1.6s infinite;
}
@keyframes shimmer {
0% {
transform: translateX(-110%);
}
100% {
transform: translateX(110%);
}
}
.skeleton {
height: 20px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.08);
position: relative;
overflow: hidden;
}
.skeleton::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.28), transparent);
animation: shimmer 1.4s infinite;
}
.svg-prism {
width: 90px;
height: 90px;
filter: drop-shadow(0 15px 40px rgba(234, 179, 8, 0.35));
animation: rotatePrism 14s linear infinite;
}
@keyframes rotatePrism {
from {
transform: rotateY(0deg) rotateZ(0deg);
}
to {
transform: rotateY(360deg) rotateZ(360deg);
}
}
@keyframes orbitRing {
0% {
transform: translateY(0) scale(1);
opacity: 0.35;
}
50% {
transform: translateY(-20px) scale(1.05);
opacity: 0.6;
}
100% {
transform: translateY(0) scale(1);
opacity: 0.35;
}
}