157 lines
2.4 KiB
CSS
157 lines
2.4 KiB
CSS
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
html {
|
|
scroll-behavior: smooth;
|
|
--wisp-x: 0;
|
|
--wisp-y: 0;
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
min-height: 100svh;
|
|
@apply font-sans text-villa-mist bg-[#0a1220];
|
|
}
|
|
|
|
#root {
|
|
min-height: 100svh;
|
|
}
|
|
|
|
::selection {
|
|
background: rgba(201, 162, 39, 0.35);
|
|
color: #fff;
|
|
}
|
|
|
|
@keyframes float-leaf {
|
|
0%,
|
|
100% {
|
|
transform: translateY(0) rotate(-2deg);
|
|
opacity: 0.35;
|
|
}
|
|
50% {
|
|
transform: translateY(-14px) rotate(3deg);
|
|
opacity: 0.55;
|
|
}
|
|
}
|
|
|
|
@keyframes shimmer-btn {
|
|
0% {
|
|
background-position: 0% 50%;
|
|
}
|
|
100% {
|
|
background-position: 200% 50%;
|
|
}
|
|
}
|
|
|
|
@keyframes mist-drift {
|
|
0% {
|
|
transform: translateX(-2%) translateY(0);
|
|
}
|
|
50% {
|
|
transform: translateX(2%) translateY(-1%);
|
|
}
|
|
100% {
|
|
transform: translateX(-2%) translateY(0);
|
|
}
|
|
}
|
|
|
|
@keyframes wisp-path-a {
|
|
0%,
|
|
100% {
|
|
opacity: 0.3;
|
|
}
|
|
50% {
|
|
opacity: 0.55;
|
|
}
|
|
}
|
|
|
|
@keyframes wisp-path-b {
|
|
0%,
|
|
100% {
|
|
opacity: 0.2;
|
|
transform: translateX(0);
|
|
}
|
|
50% {
|
|
opacity: 0.38;
|
|
transform: translateX(18px);
|
|
}
|
|
}
|
|
|
|
@keyframes wisp-mote {
|
|
0%,
|
|
100% {
|
|
opacity: 0.25;
|
|
transform: scale(1);
|
|
}
|
|
50% {
|
|
opacity: 0.85;
|
|
transform: scale(1.4);
|
|
}
|
|
}
|
|
|
|
@keyframes wisp-ribbon-drift {
|
|
0%,
|
|
100% {
|
|
opacity: 0.28;
|
|
}
|
|
50% {
|
|
opacity: 0.42;
|
|
}
|
|
}
|
|
|
|
.animate-wisp-path-a {
|
|
animation: wisp-path-a 22s ease-in-out infinite;
|
|
}
|
|
|
|
.animate-wisp-path-b {
|
|
animation: wisp-path-b 18s ease-in-out infinite;
|
|
}
|
|
|
|
.animate-wisp-mote {
|
|
animation: wisp-mote 5s ease-in-out infinite;
|
|
}
|
|
|
|
.wisp-ribbon-a {
|
|
animation: wisp-ribbon-drift 26s ease-in-out infinite;
|
|
}
|
|
|
|
.wisp-ribbon-b {
|
|
animation: wisp-ribbon-drift 32s ease-in-out infinite 1s;
|
|
}
|
|
|
|
.wisp-ribbon-c {
|
|
animation: wisp-ribbon-drift 20s ease-in-out infinite 0.5s;
|
|
}
|
|
|
|
.animate-mist {
|
|
animation: mist-drift 28s ease-in-out infinite;
|
|
}
|
|
|
|
.animate-leaf {
|
|
animation: float-leaf 9s ease-in-out infinite;
|
|
}
|
|
|
|
.btn-shimmer {
|
|
background-size: 200% 200%;
|
|
animation: shimmer-btn 8s linear infinite;
|
|
}
|
|
|
|
.glass-panel {
|
|
background: linear-gradient(
|
|
135deg,
|
|
rgba(255, 255, 255, 0.1) 0%,
|
|
rgba(255, 255, 255, 0.04) 50%,
|
|
rgba(255, 255, 255, 0.08) 100%
|
|
);
|
|
backdrop-filter: blur(14px);
|
|
border: 1px solid rgba(255, 255, 255, 0.14);
|
|
box-shadow:
|
|
0 20px 50px rgba(0, 0, 0, 0.35),
|
|
inset 0 1px 0 rgba(255, 255, 255, 0.12);
|
|
}
|
|
|
|
.text-balance {
|
|
text-wrap: balance;
|
|
}
|