1
0

first commit

This commit is contained in:
2026-04-18 22:04:54 +02:00
commit 46256b764b
16 changed files with 3862 additions and 0 deletions

307
src/styles/global.css Normal file
View File

@@ -0,0 +1,307 @@
:root {
--bg: #0f1115;
--bg-elevated: rgba(19, 23, 30, 0.86);
--surface: rgba(255, 255, 255, 0.04);
--surface-strong: rgba(255, 255, 255, 0.08);
--border: rgba(255, 255, 255, 0.1);
--border-strong: rgba(165, 252, 125, 0.28);
--text: #f4f7fb;
--muted: #a4adbb;
--accent: #96fc7d;
--accent-strong: #60fa68;
--shadow: 0 20px 45px rgba(0, 0, 0, 0.28);
--radius-lg: 24px;
--radius-md: 18px;
--shell: min(1080px, calc(100vw - 2rem));
color-scheme: dark;
font-family:
Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
sans-serif;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
margin: 0;
min-height: 100vh;
background:
radial-gradient(circle at top left, rgba(96, 250, 114, 0.12), transparent 30%),
radial-gradient(circle at top right, rgba(125, 252, 125, 0.1), transparent 28%),
linear-gradient(180deg, #11141b 0%, var(--bg) 35%, #0b0d12 100%);
color: var(--text);
line-height: 1.6;
}
body::before,
body::after {
content: "";
position: fixed;
inset: auto;
pointer-events: none;
filter: blur(80px);
opacity: 0.3;
z-index: 0;
}
body::before {
top: 8rem;
left: -2rem;
width: 12rem;
height: 12rem;
background: rgba(96, 250, 106, 0.25);
}
body::after {
right: 0;
bottom: 8rem;
width: 16rem;
height: 16rem;
background: rgba(34, 197, 94, 0.12);
}
main,
footer {
position: relative;
z-index: 1;
}
a {
color: inherit;
}
p,
h1,
h2,
h3 {
margin: 0;
}
.shell {
width: var(--shell);
margin: 0 auto;
}
.hero {
display: grid;
gap: 1.5rem;
padding: 5.5rem 0 3rem;
}
.hero-copy {
display: grid;
gap: 0.9rem;
max-width: 42rem;
}
.hero-eyebrow,
.section-kicker {
color: var(--accent);
font-size: 0.82rem;
font-weight: 700;
letter-spacing: 0.14em;
text-transform: uppercase;
}
.hero h1 {
font-size: clamp(3rem, 8vw, 5.8rem);
line-height: 0.95;
letter-spacing: -0.05em;
}
.hero-subtitle {
max-width: 30rem;
color: var(--muted);
font-size: clamp(1.05rem, 2.8vw, 1.35rem);
}
.hero-meta {
display: flex;
flex-wrap: wrap;
gap: 0.85rem 1rem;
align-items: center;
width: fit-content;
padding: 0.9rem 1rem;
border: 1px solid var(--border);
border-radius: 999px;
background: rgba(255, 255, 255, 0.03);
box-shadow: var(--shadow);
}
.hero-meta p {
color: var(--muted);
}
.hero-meta span,
.footer small {
color: var(--text);
font-family:
ui-monospace, SFMono-Regular, SFMono-Regular, Menlo, Monaco, Consolas,
"Liberation Mono", "Courier New", monospace;
font-size: 0.85rem;
}
.section {
display: grid;
gap: 1.25rem;
padding: 1.5rem 0;
}
.section-copy {
display: grid;
gap: 0.55rem;
max-width: 40rem;
}
.section h2 {
font-size: clamp(1.8rem, 4vw, 2.4rem);
letter-spacing: -0.03em;
}
.section-description,
.card-copy p,
.footer p {
color: var(--muted);
}
.section-grid {
display: grid;
gap: 1rem;
}
.card {
position: relative;
}
.card-link {
display: grid;
gap: 1.2rem;
height: 100%;
padding: 1.25rem;
border: 1px solid var(--border);
border-radius: var(--radius-md);
background:
linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)),
var(--bg-elevated);
box-shadow: var(--shadow);
text-decoration: none;
transition:
transform 180ms ease,
border-color 180ms ease,
box-shadow 180ms ease,
background 180ms ease;
}
.card-link:hover,
.card-link:focus-visible {
transform: translateY(-4px) scale(1.01);
border-color: var(--border-strong);
box-shadow: 0 26px 60px rgba(0, 0, 0, 0.36);
background:
linear-gradient(180deg, rgba(136, 252, 125, 0.08), rgba(255, 255, 255, 0.03)),
var(--bg-elevated);
}
.card-link:focus-visible {
outline: 2px solid rgba(125, 252, 142, 0.65);
outline-offset: 3px;
}
.card-primary .card-link {
border-color: rgba(125, 252, 129, 0.22);
background:
linear-gradient(180deg, rgba(125, 252, 131, 0.12), rgba(255, 255, 255, 0.03)),
var(--bg-elevated);
}
.card-icon {
display: inline-flex;
width: 2.75rem;
height: 2.75rem;
align-items: center;
justify-content: center;
border-radius: 999px;
background: var(--surface);
color: var(--accent);
}
.card-icon i {
font-size: 1.25rem;
line-height: 1;
}
.card-copy {
display: grid;
gap: 0.55rem;
}
.card-header {
display: flex;
justify-content: space-between;
gap: 1rem;
align-items: start;
}
.card-header h3 {
font-size: 1.2rem;
letter-spacing: -0.02em;
}
.card-arrow {
color: var(--accent);
font-size: 1.15rem;
transition: transform 180ms ease;
}
.card-link:hover .card-arrow,
.card-link:focus-visible .card-arrow {
transform: translate(2px, -2px);
}
.card-cta {
display: inline-flex;
width: fit-content;
align-items: center;
gap: 0.45rem;
padding: 0.55rem 0.8rem;
border-radius: 999px;
background: var(--surface);
color: var(--text);
font-size: 0.92rem;
font-weight: 600;
}
.footer {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
gap: 0.75rem 1rem;
align-items: center;
padding: 2rem 0 3rem;
}
@media (min-width: 720px) {
.hero {
grid-template-columns: minmax(0, 1fr) auto;
align-items: end;
gap: 2rem;
min-height: 55vh;
}
.section-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (min-width: 960px) {
.section-grid[data-columns="4"] {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
}