Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
| @tailwind base; | |
| @tailwind components; | |
| @tailwind utilities; | |
| @layer base { | |
| body { | |
| font-family: 'Plus Jakarta Sans', 'Inter', sans-serif; | |
| } | |
| /* Guard against horizontal overflow inflating the layout viewport on small | |
| screens. Without this, any element wider than the viewport widens the page, | |
| which pushes position:fixed overlays (modals) off-center to the right. | |
| `clip` (not `hidden`) avoids creating a scroll container, so it doesn't | |
| break position:sticky descendants. */ | |
| html, | |
| body { | |
| overflow-x: clip; | |
| } | |
| } | |
| @layer components { | |
| /* βββ True transparent glass card βββ */ | |
| .glass-card { | |
| background: rgba(255, 255, 255, 0.55); | |
| backdrop-filter: blur(20px); | |
| -webkit-backdrop-filter: blur(20px); | |
| border: 1px solid rgba(255, 255, 255, 0.70); | |
| border-radius: 1rem; | |
| box-shadow: | |
| 0 4px 24px rgba(0, 0, 0, 0.06), | |
| 0 1px 2px rgba(0, 0, 0, 0.04), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.90); | |
| } | |
| /* βββ Dark glass β hero / dark section context βββ */ | |
| .glass-dark { | |
| background: rgba(255, 255, 255, 0.06); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| box-shadow: | |
| 0 4px 32px rgba(0, 0, 0, 0.3), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.08); | |
| @apply rounded-3xl backdrop-blur-2xl; | |
| } | |
| /* βββ Legacy glass util (kept for other pages) βββ */ | |
| .glass { | |
| @apply bg-white/60 backdrop-blur-xl border border-white/20 shadow-[0_1px_3px_rgba(0,0,0,0.04)]; | |
| } | |
| } | |
| /* βββ Scroll reveal animations βββββββββββββββββββββββββββ */ | |
| .reveal { | |
| opacity: 0; | |
| transform: translateY(32px); | |
| transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), | |
| transform 0.7s cubic-bezier(0.16, 1, 0.3, 1); | |
| } | |
| .reveal.visible { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| /* Stagger children inside a reveal-group */ | |
| .reveal-group > .reveal:nth-child(1) { transition-delay: 0ms; } | |
| .reveal-group > .reveal:nth-child(2) { transition-delay: 80ms; } | |
| .reveal-group > .reveal:nth-child(3) { transition-delay: 160ms; } | |
| .reveal-group > .reveal:nth-child(4) { transition-delay: 240ms; } | |
| .reveal-group > .reveal:nth-child(5) { transition-delay: 320ms; } | |
| .reveal-group > .reveal:nth-child(6) { transition-delay: 400ms; } | |
| /* Scale variant */ | |
| .reveal-scale { | |
| opacity: 0; | |
| transform: scale(0.95); | |
| transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), | |
| transform 0.6s cubic-bezier(0.16, 1, 0.3, 1); | |
| } | |
| .reveal-scale.visible { | |
| opacity: 1; | |
| transform: scale(1); | |
| } | |
| /* Hero fade-down (instant on load) */ | |
| @keyframes hero-fade-down { | |
| from { opacity: 0; transform: translateY(-20px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } | |
| .hero-animate > * { | |
| animation: hero-fade-down 0.8s cubic-bezier(0.16, 1, 0.3, 1) both; | |
| } | |
| .hero-animate > *:nth-child(1) { animation-delay: 0ms; } | |
| .hero-animate > *:nth-child(2) { animation-delay: 100ms; } | |
| .hero-animate > *:nth-child(3) { animation-delay: 200ms; } | |
| .hero-animate > *:nth-child(4) { animation-delay: 300ms; } | |
| .hero-animate > *:nth-child(5) { animation-delay: 400ms; } | |
| .hero-animate > *:nth-child(6) { animation-delay: 500ms; } | |
| /* βββ Platform showcase testimonial marquee (3Γ loop segment) βββββββββββββββ */ | |
| @keyframes ticker-scroll { | |
| 0% { transform: translateX(0); } | |
| 100% { transform: translateX(-33.333%); } | |
| } | |
| @keyframes ticker-scroll-rtl { | |
| 0% { transform: translateX(-33.333%); } | |
| 100% { transform: translateX(0); } | |
| } | |
| /* βββ Thin scrollbar, no end arrows βββββββββββββββββββββββββββ */ | |
| /* Firefox */ | |
| * { | |
| scrollbar-width: thin; | |
| scrollbar-color: #b6bac0 transparent; | |
| } | |
| /* WebKit (Chrome, Edge, Safari) */ | |
| *::-webkit-scrollbar { | |
| width: 6px; | |
| height: 6px; | |
| } | |
| *::-webkit-scrollbar-button { | |
| display: none; | |
| width: 0; | |
| height: 0; | |
| } | |
| *::-webkit-scrollbar-track { | |
| background: transparent; | |
| } | |
| *::-webkit-scrollbar-thumb { | |
| background: #a8adb3; | |
| border-radius: 3px; | |
| } | |
| *::-webkit-scrollbar-thumb:hover { | |
| background: #b1b7c0; | |
| } | |