ORA / frontend /app /globals.css
Abdalkaderdev's picture
Initial ORA deployment
5e0532d
@tailwind base;
@tailwind components;
@tailwind utilities;
:root {
--gradient-angle: 0deg;
}
body {
font-family: 'Inter', sans-serif;
background-color: #050402;
color: #f5f5f4;
-webkit-font-smoothing: antialiased;
}
html {
scroll-behavior: smooth;
}
::selection {
background-color: rgba(245, 158, 11, 0.2);
color: #fef3c7;
}
/* Glass Panel */
.glass-panel {
background: rgba(255, 255, 255, 0.02);
backdrop-filter: blur(12px);
border: 1px solid rgba(255, 255, 255, 0.06);
box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
}
.glass-panel-glow {
background: rgba(251, 191, 36, 0.03);
backdrop-filter: blur(12px);
border: 1px solid rgba(251, 191, 36, 0.1);
}
/* Text Gradient */
.text-gradient-gold {
background: linear-gradient(to right, #fef3c7, #f59e0b);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* Grid Pattern */
.bg-grid-pattern {
background-image: linear-gradient(to right, rgba(255,255,255,0.03) 1px, transparent 1px),
linear-gradient(to bottom, rgba(255,255,255,0.03) 1px, transparent 1px);
background-size: 40px 40px;
}
/* Spotlight Card */
.spotlight-card {
transform-style: preserve-3d;
transition: transform 0.1s ease-out, box-shadow 0.3s ease;
will-change: transform;
}
.spotlight-card:hover {
z-index: 10;
box-shadow: 0 20px 40px -10px rgba(0,0,0,0.5), 0 0 30px rgba(251, 191, 36, 0.1);
}
/* Candle Glow */
.candle-glow {
filter: drop-shadow(0 0 8px rgba(251, 191, 36, 0.5));
}
/* Beam Line */
.beam-line {
stroke-dasharray: 80 1000;
stroke-linecap: round;
}
/* Shiny CTA Button */
.shiny-cta {
position: relative;
overflow: visible;
border-radius: 9999px;
padding: 1.25rem 2.5rem;
font-size: 0.875rem;
line-height: 1.2;
font-weight: 600;
color: #ffffff;
background: transparent;
border: none;
cursor: pointer;
isolation: isolate;
z-index: 0;
transition: all 0.5s ease;
}
.shiny-cta:hover {
transform: scale(1.02);
box-shadow: 0 0 40px -10px rgba(245, 158, 11, 0.5);
}
.shiny-cta:active {
transform: translateY(1px) scale(1.02);
}
/* Border Spin Animation */
@keyframes border-spin {
to {
transform: rotate(360deg);
}
}
.animate-border-spin {
animation: border-spin 3s linear infinite;
}
/* Dots Movement Animation */
@keyframes dots-move {
0% { background-position: 0 0; }
100% { background-position: 24px 24px; }
}
.animate-dots-move {
animation: dots-move 8s linear infinite;
}
/* Animation Delays */
.delay-100 { animation-delay: 100ms; }
.delay-200 { animation-delay: 200ms; }
.delay-300 { animation-delay: 300ms; }
.delay-1000 { animation-delay: 1s; }
.delay-2000 { animation-delay: 2s; }
/* Animations */
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes slideUp {
from { transform: translateY(20px); opacity: 0; }
to { transform: translateY(0); opacity: 1; }
}
@keyframes blurIn {
from { filter: blur(10px); opacity: 0; }
to { filter: blur(0); opacity: 1; }
}
.animate-fade-in { animation: fadeIn 1s cubic-bezier(0.16, 1, 0.3, 1) both; }
.animate-slide-up { animation: slideUp 1s cubic-bezier(0.16, 1, 0.3, 1) both; }
.animate-blur-in { animation: blurIn 1.2s ease-out both; }
/* Sonar Animation */
@keyframes sonar-wave {
0% { r: 10px; opacity: 0.8; stroke-width: 1px; }
100% { r: 80px; opacity: 0; stroke-width: 0px; }
}
.animate-sonar {
animation: sonar-wave 3s cubic-bezier(0, 0, 0.2, 1) infinite;
}
/* Spin Animations */
.animate-spin-slow {
animation: spin 12s linear infinite;
}
.animate-spin-slow-reverse {
animation: spin 15s linear infinite reverse;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
/* Pulse Fast */
.animate-pulse-fast {
animation: pulse 1.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.5; }
}
/* Float Animation */
@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-10px); }
}
.animate-float {
animation: float 6s ease-in-out infinite;
}
/* Flicker Animation */
@keyframes flicker {
0%, 100% { opacity: 1; }
50% { opacity: 0.8; }
}
.animate-flicker {
animation: flicker 3s ease-in-out infinite;
}
/* Beam Animation */
@keyframes beam {
0% { stroke-dashoffset: 1000; }
100% { stroke-dashoffset: 0; }
}
.animate-beam {
animation: beam 3s linear infinite;
}
/* Interactive Background Gradient */
.radial-glow-amber {
background: radial-gradient(circle at 70% 50%, rgba(245, 158, 11, 0.25) 0%, rgba(5, 5, 5, 0) 60%);
}
.radial-glow-purple {
background: radial-gradient(circle at 50% 30%, rgba(168, 85, 247, 0.2) 0%, rgba(5, 5, 5, 0) 50%);
}
/* ORA Page Enhanced Grid Background */
.ora-grid-bg {
background-size: 80px 80px;
background-image:
linear-gradient(to right, rgba(168, 85, 247, 0.03) 1px, transparent 1px),
linear-gradient(to bottom, rgba(168, 85, 247, 0.03) 1px, transparent 1px);
mask-image: radial-gradient(ellipse 80% 60% at 50% 30%, black 20%, transparent 70%);
-webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 30%, black 20%, transparent 70%);
}
/* Text Glow Effect */
.text-glow-amber {
text-shadow: 0 0 25px rgba(245, 158, 11, 0.4);
}
/* Grid Background with mask */
.grid-bg {
background-size: 100px 200px;
background-image: linear-gradient(to right, rgba(255, 255, 255, 0.03) 1px, transparent 1px),
linear-gradient(to bottom, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
mask-image: radial-gradient(circle at center, black 40%, transparent 100%);
}
/* Infinite Marquee Animation */
@keyframes marquee {
0% { transform: translateX(0); }
100% { transform: translateX(-50%); }
}
.animate-marquee {
animation: marquee 40s linear infinite;
}
/* Progressive Blur Effect for Navbar */
.gradient-blur {
position: fixed;
top: 0;
left: 0;
right: 0;
height: 100px;
pointer-events: none;
z-index: 40;
}
.gradient-blur::before,
.gradient-blur::after {
content: '';
position: absolute;
inset: 0;
}
.gradient-blur::before {
background: linear-gradient(to bottom, rgba(5, 4, 2, 0.8), transparent);
}
.gradient-blur::after {
backdrop-filter: blur(4px);
mask-image: linear-gradient(to bottom, black 20%, transparent 80%);
-webkit-mask-image: linear-gradient(to bottom, black 20%, transparent 80%);
}
/* Fade Slide In Animation */
@keyframes fadeSlideIn {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.animate-fade-slide-in {
animation: fadeSlideIn 0.8s ease-out forwards;
}
/* Column Reveal Animation */
@keyframes columnReveal {
0% { clip-path: inset(0 0 100% 0); }
100% { clip-path: inset(0 0 0% 0); }
}
.col-anim {
animation: columnReveal 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.col-anim.delay-1 { animation-delay: 0.1s; }
.col-anim.delay-2 { animation-delay: 0.15s; }
.col-anim.delay-3 { animation-delay: 0.2s; }
.col-anim.delay-4 { animation-delay: 0.25s; }
.col-anim.delay-5 { animation-delay: 0.3s; }
.col-anim.delay-6 { animation-delay: 0.35s; }
.col-anim.delay-7 { animation-delay: 0.4s; }
/* Typing Animation */
@keyframes typing {
from { width: 0; }
to { width: 100%; }
}
@keyframes blink-caret {
50% { border-color: transparent; }
}
.type-writer {
overflow: hidden;
white-space: nowrap;
border-right: 2px solid #f59e0b;
width: 0;
animation: typing 1.5s steps(30, end) 0.5s forwards, blink-caret 0.75s step-end infinite;
}
/* Button Shimmer Effect */
@keyframes button-shimmer {
0% { transform: translateX(-100%); }
100% { transform: translateX(100%); }
}
.animate-button-shimmer {
animation: button-shimmer 1.5s infinite;
}
/* Breathing/Pulse Glow */
@keyframes breathe {
0%, 100% { box-shadow: 0 0 20px -5px rgba(245, 158, 11, 0.3); }
50% { box-shadow: 0 0 40px -5px rgba(245, 158, 11, 0.5); }
}
.animate-breathe {
animation: breathe 3s ease-in-out infinite;
}
/* Stagger Animation Delays */
.stagger-1 { animation-delay: 0.1s; }
.stagger-2 { animation-delay: 0.2s; }
.stagger-3 { animation-delay: 0.3s; }
.stagger-4 { animation-delay: 0.4s; }
.stagger-5 { animation-delay: 0.5s; }
.stagger-6 { animation-delay: 0.6s; }
/* Enhanced Thinking Animations */
@keyframes ping-slow {
0% { transform: scale(1); opacity: 0.5; }
75%, 100% { transform: scale(1.5); opacity: 0; }
}
@keyframes ping-slower {
0% { transform: scale(1); opacity: 0.3; }
75%, 100% { transform: scale(2); opacity: 0; }
}
.animate-ping-slow {
animation: ping-slow 2s cubic-bezier(0, 0, 0.2, 1) infinite;
}
.animate-ping-slower {
animation: ping-slower 3s cubic-bezier(0, 0, 0.2, 1) infinite;
}
/* Agent Orb Glow Animations */
@keyframes orb-glow-purple {
0%, 100% { box-shadow: 0 0 20px rgba(168, 85, 247, 0.3), 0 0 40px rgba(168, 85, 247, 0.1); }
50% { box-shadow: 0 0 30px rgba(168, 85, 247, 0.5), 0 0 60px rgba(168, 85, 247, 0.2); }
}
@keyframes orb-glow-amber {
0%, 100% { box-shadow: 0 0 20px rgba(245, 158, 11, 0.3), 0 0 40px rgba(245, 158, 11, 0.1); }
50% { box-shadow: 0 0 30px rgba(245, 158, 11, 0.5), 0 0 60px rgba(245, 158, 11, 0.2); }
}
.animate-orb-glow-purple {
animation: orb-glow-purple 2s ease-in-out infinite;
}
.animate-orb-glow-amber {
animation: orb-glow-amber 2s ease-in-out infinite;
}
/* Shimmer Text Effect */
@keyframes shimmer-text {
0% { background-position: -100% 0; }
100% { background-position: 200% 0; }
}
.animate-shimmer-text {
background: linear-gradient(90deg,
rgba(168, 85, 247, 0.6) 0%,
rgba(255, 255, 255, 0.8) 50%,
rgba(168, 85, 247, 0.6) 100%
);
background-size: 200% 100%;
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
animation: shimmer-text 2s linear infinite;
}
/* Chat Message Slide In */
@keyframes message-slide-in {
from {
opacity: 0;
transform: translateY(10px) scale(0.98);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
.animate-message-in {
animation: message-slide-in 0.3s ease-out forwards;
}
/* Agent Badge Pulse */
@keyframes badge-pulse {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: 0.7; transform: scale(1.05); }
}
.animate-badge-pulse {
animation: badge-pulse 1.5s ease-in-out infinite;
}
/* Reasoning Trace Expand */
@keyframes trace-expand {
from {
opacity: 0;
max-height: 0;
transform: translateY(-10px);
}
to {
opacity: 1;
max-height: 500px;
transform: translateY(0);
}
}
.animate-trace-expand {
animation: trace-expand 0.4s ease-out forwards;
overflow: hidden;
}