196 lines
4.3 KiB
CSS
196 lines
4.3 KiB
CSS
@keyframes landing-float {
|
|
0%, 100% { transform: translateY(0); }
|
|
50% { transform: translateY(-12px); }
|
|
}
|
|
|
|
@keyframes landing-scan {
|
|
0% { top: 0; opacity: 0; }
|
|
8% { opacity: 1; }
|
|
92% { opacity: 1; }
|
|
100% { top: 100%; opacity: 0; }
|
|
}
|
|
|
|
@keyframes landing-pulse {
|
|
0% { transform: scale(0.9); opacity: 0.8; }
|
|
100% { transform: scale(1.7); opacity: 0; }
|
|
}
|
|
|
|
@keyframes landing-blob {
|
|
0%, 100% { border-radius: 42% 58% 60% 40% / 45% 40% 60% 55%; }
|
|
50% { border-radius: 58% 42% 40% 60% / 55% 60% 40% 45%; }
|
|
}
|
|
|
|
@keyframes landing-kenburns {
|
|
from { transform: scale(1); }
|
|
to { transform: scale(1.08); }
|
|
}
|
|
|
|
@keyframes landing-spin {
|
|
to { transform: rotate(360deg); }
|
|
}
|
|
|
|
@keyframes landing-marquee {
|
|
from { transform: translateX(0); }
|
|
to { transform: translateX(50%); }
|
|
}
|
|
|
|
@keyframes landing-draw {
|
|
to { stroke-dashoffset: 0; }
|
|
}
|
|
|
|
@keyframes landing-timeline {
|
|
0%, 12% { opacity: 0.35; }
|
|
18%, 100% { opacity: 1; }
|
|
}
|
|
|
|
@keyframes landing-toggle {
|
|
0%, 40% { transform: translateX(0); }
|
|
50%, 90% { transform: translateX(-100%); }
|
|
100% { transform: translateX(0); }
|
|
}
|
|
|
|
@keyframes landing-bubble {
|
|
0% { opacity: 0; transform: translateY(12px) scale(0.96); }
|
|
100% { opacity: 1; transform: translateY(0) scale(1); }
|
|
}
|
|
|
|
.landing-page {
|
|
background-image: radial-gradient(rgba(128, 14, 19, 0.08) 1px, transparent 1px);
|
|
background-size: 28px 28px;
|
|
}
|
|
|
|
.landing-grid {
|
|
background-image: linear-gradient(#DEE3EB 1px, transparent 1px), linear-gradient(90deg, #DEE3EB 1px, transparent 1px);
|
|
background-size: 32px 32px;
|
|
}
|
|
|
|
.landing-float {
|
|
animation: landing-float 6s ease-in-out infinite;
|
|
}
|
|
|
|
.landing-float--delay {
|
|
animation-delay: 1.6s;
|
|
}
|
|
|
|
.landing-scan {
|
|
animation: landing-scan 3.6s ease-in-out infinite;
|
|
}
|
|
|
|
.landing-pulse::after {
|
|
content: '';
|
|
@apply absolute inset-0 rounded-full border-2 border-complement-700;
|
|
animation: landing-pulse 2.2s ease-out infinite;
|
|
}
|
|
|
|
.landing-blob {
|
|
animation: landing-blob 14s ease-in-out infinite;
|
|
}
|
|
|
|
.landing-kenburns {
|
|
animation: landing-kenburns 24s ease-out forwards;
|
|
}
|
|
|
|
.landing-spin svg {
|
|
animation: landing-spin 18s linear infinite;
|
|
}
|
|
|
|
.landing-marquee {
|
|
animation: landing-marquee 32s linear infinite;
|
|
}
|
|
|
|
.landing-marquee:hover {
|
|
animation-play-state: paused;
|
|
}
|
|
|
|
.landing-underline path {
|
|
stroke-dasharray: 320;
|
|
stroke-dashoffset: 320;
|
|
animation: landing-draw 1.1s ease-out 0.5s forwards;
|
|
}
|
|
|
|
.landing-timeline-step {
|
|
animation: landing-timeline 8s ease-in-out infinite;
|
|
}
|
|
|
|
.landing-timeline-step:nth-child(2) { animation-delay: 1.6s; }
|
|
.landing-timeline-step:nth-child(3) { animation-delay: 3.2s; }
|
|
.landing-timeline-step:nth-child(4) { animation-delay: 4.8s; }
|
|
|
|
.landing-toggle-thumb {
|
|
animation: landing-toggle 6s ease-in-out infinite;
|
|
}
|
|
|
|
.landing-bubble {
|
|
opacity: 0;
|
|
animation: landing-bubble 0.5s ease-out forwards;
|
|
}
|
|
|
|
.landing-bubble:nth-child(2) { animation-delay: 0.6s; }
|
|
.landing-bubble:nth-child(3) { animation-delay: 1.2s; }
|
|
|
|
.landing-reveal {
|
|
@apply opacity-0 translate-y-8 transition-all duration-700 ease-out;
|
|
}
|
|
|
|
.landing-reveal.is-visible {
|
|
@apply opacity-100 translate-y-0;
|
|
}
|
|
|
|
.landing-reveal--1 { transition-delay: 100ms; }
|
|
.landing-reveal--2 { transition-delay: 200ms; }
|
|
.landing-reveal--3 { transition-delay: 300ms; }
|
|
.landing-reveal--4 { transition-delay: 400ms; }
|
|
.landing-reveal--5 { transition-delay: 500ms; }
|
|
|
|
.landing-timeline-line {
|
|
@apply origin-top scale-y-0 transition-transform duration-1000 ease-out;
|
|
}
|
|
|
|
.landing-reveal.is-visible .landing-timeline-line {
|
|
@apply scale-y-100;
|
|
}
|
|
|
|
.landing-faq summary::-webkit-details-marker {
|
|
display: none;
|
|
}
|
|
|
|
.landing-faq[open] .landing-faq-icon {
|
|
@apply rotate-45;
|
|
}
|
|
|
|
html:has(.landing-page) {
|
|
scroll-behavior: smooth;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.landing-float,
|
|
.landing-scan,
|
|
.landing-kenburns,
|
|
.landing-spin svg,
|
|
.landing-blob,
|
|
.landing-marquee,
|
|
.landing-timeline-step,
|
|
.landing-toggle-thumb,
|
|
.landing-pulse::after {
|
|
animation: none;
|
|
}
|
|
|
|
.landing-underline path {
|
|
animation: none;
|
|
stroke-dashoffset: 0;
|
|
}
|
|
|
|
.landing-bubble {
|
|
animation: none;
|
|
opacity: 1;
|
|
}
|
|
|
|
.landing-reveal {
|
|
@apply opacity-100 translate-y-0 transition-none;
|
|
}
|
|
|
|
.landing-timeline-line {
|
|
@apply scale-y-100 transition-none;
|
|
}
|
|
}
|