Files
lum1104--understand-anything/homepage/src/styles/global.css
T
wehub-resource-sync 17fc6764c9
CI / ci (ubuntu-latest) (push) Failing after 1s
Deploy Homepage / build (push) Failing after 1s
Deploy Homepage / deploy (push) Has been skipped
CI / ci (windows-latest) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:01:15 +08:00

160 lines
4.0 KiB
CSS

/* Font declarations — self-hosted, no external CDN dependency */
@font-face {
font-family: 'Geist Variable';
src: url('/fonts/GeistVariable.woff2') format('woff2');
font-weight: 100 900;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Geist Mono Variable';
src: url('/fonts/GeistMonoVariable.woff2') format('woff2');
font-weight: 100 900;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'DM Serif Display';
src: url('/fonts/DMSerifDisplay-Regular.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Inter';
src: url('/fonts/Inter-Regular.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Inter';
src: url('/fonts/Inter-SemiBold.woff2') format('woff2');
font-weight: 600;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'JetBrains Mono';
src: url('/fonts/JetBrainsMono-Regular.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
/* Design tokens */
:root {
--bg: #f8f8fd;
--surface: rgba(255, 255, 255, 0.78);
--surface-strong: #ffffff;
--surface-dark: #10131d;
--border: #e8e1ff;
--border-soft: #eceef4;
--accent: #582be8;
--accent-2: #6236ff;
--accent-3: #8b5cf6;
--accent-deep: #4520c8;
--accent-soft: #f1ecff;
--accent-glow: rgba(88, 43, 232, 0.18);
--text: #0f1020;
--text-soft: #1f2236;
--text-muted: #7e7893;
--text-on-dark: #eef0fb;
--text-muted-on-dark: #8d95aa;
--shadow-soft: 0 30px 80px rgba(88, 43, 232, 0.12), 0 10px 30px rgba(15, 16, 32, 0.08);
--shadow-card: 0 18px 42px rgba(80, 70, 120, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.86);
/* Egonex sweep: violet -> purple */
--grad-cool: #8b5cf6;
--grad-mid: #6236ff;
--grad-warm: #582be8;
--gradient: linear-gradient(135deg, var(--grad-cool), var(--grad-mid), var(--grad-warm));
--font-heading: 'Geist Variable', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
--font-body: 'Geist Variable', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
--font-code: 'Geist Mono Variable', 'JetBrains Mono', 'SF Mono', 'Cascadia Code', 'Fira Code', monospace;
}
/* Reset & base */
*, *::before, *::after {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
font-family: var(--font-body);
background:
radial-gradient(circle at 12% 8%, rgba(147, 197, 253, 0.3), transparent 34rem),
radial-gradient(circle at 86% 10%, rgba(139, 92, 246, 0.24), transparent 36rem),
radial-gradient(circle at 50% 88%, rgba(244, 114, 182, 0.16), transparent 34rem),
linear-gradient(180deg, #fbfdff 0%, var(--bg) 42%, #fbf8ff 100%);
color: var(--text);
line-height: 1.6;
-webkit-font-smoothing: antialiased;
overflow-x: hidden;
}
/* Noise texture overlay */
body::before {
content: '';
position: fixed;
inset: 0;
pointer-events: none;
z-index: 9999;
opacity: 0.025;
mix-blend-mode: multiply;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
}
/* Scroll-reveal animation */
@keyframes fadeSlideUp {
from {
opacity: 0;
transform: translateY(18px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.reveal {
opacity: 0;
}
.reveal.visible {
animation: fadeSlideUp 0.7s ease-out forwards;
}
/* Stagger delays for feature cards */
.reveal-delay-1 { animation-delay: 0.1s; }
.reveal-delay-2 { animation-delay: 0.25s; }
.reveal-delay-3 { animation-delay: 0.4s; }
/* Gradient text utility */
.grad {
background: var(--gradient);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
a {
color: var(--accent);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}