Muhammad-Mehdi's picture
script regeneration modified
9fd9bf6
Raw
History Blame Contribute Delete
4.08 kB
@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;
}