fibe-me/app/globals.css

158 lines
4.8 KiB
CSS

@tailwind base;
@tailwind components;
@tailwind utilities;
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Instrument+Serif:ital@0;1&display=swap');
@layer base {
:root {
--font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif;
--font-display: 'Instrument Serif', Georgia, 'Times New Roman', serif;
/* Fibe dark tokens */
--background: #08080a;
--foreground: #fafafa;
--card: #121214;
--card-foreground: #fafafa;
--muted: #1c1c1f;
--muted-foreground: #a1a1aa;
--accent: #1a1525;
--accent-foreground: #c4b5fd;
--border: rgba(139, 92, 246, 0.15);
--border-subtle: rgba(139, 92, 246, 0.08);
--primary: #a78bfa;
--primary-dark: #8b5cf6;
--primary-light: #c4b5fd;
--ring: #8b5cf6;
--radius: 0.75rem;
--radius-xl: 1rem;
--shadow-glass: 0 8px 32px 0 rgb(139 92 246 / 0.12);
--shadow-elevated: 0 8px 30px -4px rgb(0 0 0 / 0.5), 0 4px 10px -4px rgb(0 0 0 / 0.4);
--transition-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
--transition-smooth: cubic-bezier(0.4, 0, 0.2, 1);
}
/* Phoenix logo animation */
@keyframes header-flame-out {
0% { transform: translate(-50%,-50%) scale(1); opacity: 1; filter: brightness(1); }
8% { opacity: 0.98; filter: brightness(1.12); }
28% { transform: translate(-50%,-50%) scale(0.85); opacity: 0.95; }
42% { transform: translate(-50%,-50%) scale(0.3); opacity: 0.25; filter: brightness(1.3); }
48% { transform: translate(-50%,-50%) scale(0.12); opacity: 0; }
52% { transform: translate(-50%,-50%) scale(0.08); opacity: 0; }
68% { transform: translate(-50%,-50%) scale(0.55); opacity: 0.65; filter: brightness(1.15); }
82% { transform: translate(-50%,-50%) scale(0.92); opacity: 0.95; }
100% { transform: translate(-50%,-50%) scale(1); opacity: 1; filter: brightness(1); }
}
@keyframes gradientShift {
0%, 100% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
}
@keyframes floatUp {
from { opacity: 0; transform: translateY(24px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes pulseGlow {
0%, 100% { box-shadow: 0 0 20px rgba(167,139,250,0.2); }
50% { box-shadow: 0 0 50px rgba(167,139,250,0.4), 0 0 80px rgba(139,92,246,0.2); }
}
.animate-flame-out { animation: header-flame-out 3.2s cubic-bezier(0.4,0,0.2,1) infinite; }
.animate-float-up { animation: floatUp 0.6s ease-out forwards; }
.animate-pulse-glow { animation: pulseGlow 3s ease-in-out infinite; }
}
*, *::before, *::after { box-sizing: border-box; }
html {
font-family: var(--font-sans);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
scroll-behavior: smooth;
background: var(--background);
color: var(--foreground);
overflow-x: hidden;
}
body {
font-family: var(--font-sans);
background: var(--background);
color: var(--foreground);
min-height: 100vh;
}
/* Display font for headings */
.font-display {
font-family: var(--font-display);
}
/* Animated purple-indigo gradient background */
.bg-fibe {
background: linear-gradient(135deg, #0b0916 0%, #0f0c29 25%, #1a1540 50%, #261f5a 75%, #1e1a42 100%);
background-size: 400% 400%;
animation: gradientShift 18s ease infinite;
}
/* Subtle grid */
.grid-overlay {
background-image:
linear-gradient(rgba(139,92,246,0.04) 1px, transparent 1px),
linear-gradient(90deg, rgba(139,92,246,0.04) 1px, transparent 1px);
background-size: 52px 52px;
}
/* Glass card */
.glass {
background: rgba(255,255,255,0.03);
border: 1px solid var(--border);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
}
.glass-strong {
background: rgba(26,21,37,0.7);
border: 1px solid rgba(167,139,250,0.18);
backdrop-filter: blur(24px);
-webkit-backdrop-filter: blur(24px);
box-shadow: var(--shadow-glass);
}
/* Glows */
.glow-orb {
position: absolute;
border-radius: 50%;
pointer-events: none;
filter: blur(1px);
}
/* Gradient text — display font hero */
.gradient-text {
background: linear-gradient(135deg, #c4b5fd 0%, #a78bfa 40%, #818cf8 80%, #93c5fd 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* Tags / pills */
.tag {
background: rgba(139,92,246,0.1);
border: 1px solid rgba(139,92,246,0.2);
color: #c4b5fd;
font-size: 0.7rem;
font-family: var(--font-sans);
font-weight: 500;
letter-spacing: 0.02em;
padding: 0.2rem 0.6rem;
border-radius: 999px;
}
/* Scrollbar */
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: var(--background); }
::-webkit-scrollbar-thumb { background: rgba(139,92,246,0.25); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(139,92,246,0.4); }