Files
gregWiki/src/css/custom.css
Marvin 8d8fda49c4 docs(readme): update README for clarity and consistency
- Translated sections from German to English for better accessibility.
- Enhanced the structure by clearly defining the workspace relationship and local development instructions.
- Improved descriptions for Docker setup and deployment processes to ensure users understand the requirements and context.
- Updated links and formatting for consistency throughout the document.

This commit aims to improve the overall clarity and usability of the README documentation.
2026-04-10 02:12:06 +02:00

690 lines
17 KiB
CSS

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&family=Space+Grotesk:wght@300;500;700&display=swap');
@import 'tailwindcss';
/* Luminescent Architect — design tokens (see docs/contributors/luminescent-design-system.md) */
@theme {
--color-background: #001110;
--color-surface: #001110;
--color-surface-dim: #001110;
--color-surface-bright: #00322f;
--color-surface-variant: #002b29;
--color-surface-container-lowest: #000000;
--color-surface-container-low: #001715;
--color-surface-container: #001e1c;
--color-surface-container-high: #002422;
--color-surface-container-highest: #002b29;
--color-on-background: #c0fcf6;
--color-on-surface: #c0fcf6;
--color-on-surface-variant: #7cb6b0;
--color-primary: #61f4d8;
--color-primary-dim: #4fe5ca;
--color-primary-container: #08c1a6;
--color-primary-fixed: #61f4d8;
--color-primary-fixed-dim: #4fe5ca;
--color-on-primary: #00594c;
--color-on-primary-container: #00332b;
--color-on-primary-fixed: #00443a;
--color-on-primary-fixed-variant: #006455;
--color-secondary: #1cede1;
--color-secondary-dim: #00ded3;
--color-secondary-container: #006a65;
--color-secondary-fixed: #1cede1;
--color-secondary-fixed-dim: #00ded3;
--color-on-secondary: #00534e;
--color-on-secondary-container: #dbfffa;
--color-on-secondary-fixed-variant: #005d58;
--color-tertiary: #64d0ff;
--color-tertiary-dim: #00b6eb;
--color-tertiary-container: #0ac4fd;
--color-tertiary-fixed: #0ac4fd;
--color-on-tertiary: #00445a;
--color-on-tertiary-container: #00394d;
--color-outline: #457f7a;
--color-outline-variant: #0f514c;
--color-error: #ff716c;
--color-error-dim: #d7383b;
--color-error-container: #9f0519;
--color-on-error: #490006;
--color-on-error-container: #ffa8a3;
--color-inverse-surface: #e4fffb;
--color-inverse-on-surface: #225e5a;
--color-inverse-primary: #006c5c;
--color-surface-tint: #61f4d8;
/* Legacy aliases (pages / older class names) */
--color-app-bg: #001110;
--color-text-main: #c0fcf6;
--color-text-soft: #7cb6b0;
--color-text-muted: #5a9a94;
--color-accent-green: #61f4d8;
--color-accent-green-deep: #08c1a6;
--color-accent-pink: #64d0ff;
--color-accent-violet: #1cede1;
--color-code-bg: #001110;
--color-code-surface: #002b29;
--font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif;
--font-headline: 'Space Grotesk', ui-sans-serif, system-ui, sans-serif;
--font-mono: 'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace;
}
:root,
[data-theme='dark'] {
--ifm-color-primary: #61f4d8;
--ifm-color-primary-dark: #4fe5ca;
--ifm-color-primary-darker: #08c1a6;
--ifm-color-primary-light: #7ff7e4;
--ifm-color-primary-lighter: #bafdf1;
--ifm-background-color: var(--color-background);
--ifm-color-content: var(--color-on-surface);
--ifm-color-content-secondary: var(--color-on-surface-variant);
--ifm-font-family-base: var(--font-sans);
--ifm-heading-font-family: var(--font-headline);
--ifm-font-family-monospace: var(--font-mono);
--ifm-navbar-height: 72px;
--ifm-navbar-background-color: rgba(0, 17, 16, 0.8);
--ifm-card-background-color: var(--color-surface-container);
--ifm-code-font-size: 0.9rem;
--ifm-pre-background: var(--color-surface-container-highest);
--ifm-global-shadow-lw: 0 0 32px -4px rgba(0, 191, 165, 0.1);
}
html {
scroll-behavior: smooth;
}
html.dark,
html[data-theme='dark'] {
color-scheme: dark;
}
body {
min-height: 100vh;
color: var(--color-on-surface);
background-color: var(--color-background);
background-image:
radial-gradient(circle at 50% 50%, rgba(0, 191, 165, 0.05) 0%, transparent 70%),
radial-gradient(circle at 12% 0%, rgba(97, 244, 216, 0.06), transparent 50%),
linear-gradient(180deg, var(--color-background) 0%, var(--color-surface-container-low) 100%);
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
::selection {
background: var(--color-primary);
color: var(--color-on-primary);
}
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: var(--color-surface-container);
}
::-webkit-scrollbar-thumb {
border-radius: 999px;
background: linear-gradient(180deg, rgba(97, 244, 216, 0.45), rgba(28, 237, 225, 0.35));
}
::-webkit-scrollbar-thumb:hover {
background: linear-gradient(180deg, rgba(97, 244, 216, 0.65), rgba(100, 208, 255, 0.45));
}
/* Glass top bar — no hard bottom border; depth via blur + tinted shadow */
.navbar {
border: 0;
-webkit-backdrop-filter: blur(20px) saturate(140%);
backdrop-filter: blur(20px) saturate(140%);
background: rgba(0, 17, 16, 0.8) !important;
box-shadow: 0 0 32px -4px rgba(0, 191, 165, 0.1);
}
.navbar__title {
font-family: var(--font-headline);
font-weight: 700;
letter-spacing: -0.02em;
color: var(--color-on-surface);
}
.navbar__items--right {
display: flex;
align-items: center;
gap: 0.45rem;
}
.navbar__item .navbar__link,
.navbar__item.navbar__link {
font-family: var(--font-headline);
font-weight: 500;
letter-spacing: 0.06em;
font-size: 0.875rem;
text-transform: none;
color: rgba(192, 252, 246, 0.7);
transition: color 0.25s ease;
}
.navbar__item .navbar__link:hover,
.navbar__item.navbar__link:hover {
color: var(--color-on-surface);
}
.navbar__item .navbar__link--active,
.navbar__item.navbar__link--active {
color: var(--color-primary);
box-shadow: inset 0 -2px 0 0 var(--color-primary);
}
.navbar [class*='colorModeToggle'] {
display: none !important;
}
.nav-right-icon {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 2.25rem;
min-height: 2.25rem;
padding: 0;
border-radius: 999px;
backdrop-filter: blur(12px);
background: rgba(0, 30, 28, 0.65);
box-shadow: inset 0 0 0 1px rgba(15, 81, 76, 0.15);
}
.nav-right-icon.nav-icon-only {
color: var(--color-on-surface-variant);
}
.nav-right-icon.nav-icon-only:hover,
.nav-right-icon.nav-icon-only:focus-visible {
color: var(--color-on-surface);
}
.nav-icon-svg {
flex-shrink: 0;
display: block;
color: currentColor;
}
.nav-icon-sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
/* Editorial bleed + hero (homepage) */
.editorial-bleed {
background: radial-gradient(circle at 50% 50%, rgba(0, 191, 165, 0.05) 0%, transparent 70%);
}
.hero-glow {
box-shadow: 0 0 80px -20px rgba(97, 244, 216, 0.15);
}
.hero-motion-wrap {
position: relative;
isolation: isolate;
}
.bg-hero-gradient {
background:
radial-gradient(circle at 50% -8%, rgba(97, 244, 216, 0.12), transparent 52%),
radial-gradient(circle at 14% 68%, rgba(28, 237, 225, 0.08), transparent 48%),
radial-gradient(circle at 84% 62%, rgba(100, 208, 255, 0.08), transparent 48%);
}
.hero-particles,
.hero-orb {
position: absolute;
pointer-events: none;
}
.hero-particles {
inset: 0;
opacity: 0.22;
background-image:
radial-gradient(circle at 18% 26%, rgba(192, 252, 246, 0.08) 0 1px, transparent 1px),
radial-gradient(circle at 72% 38%, rgba(97, 244, 216, 0.06) 0 1px, transparent 1px);
background-size: 280px 220px;
}
.hero-orb {
width: clamp(12rem, 20vw, 18rem);
height: clamp(12rem, 20vw, 18rem);
border-radius: 999px;
filter: blur(120px);
mix-blend-mode: screen;
opacity: 0.35;
}
.hero-orb-pink {
top: 6%;
right: 8%;
background: rgba(100, 208, 255, 0.45);
}
.hero-orb-green {
bottom: 12%;
left: 6%;
background: rgba(97, 244, 216, 0.35);
}
.homepage-logo-title {
font-family: var(--font-headline);
letter-spacing: -0.03em;
}
.text-gradient-brand {
background-image: linear-gradient(
90deg,
var(--color-primary),
var(--color-secondary),
var(--color-tertiary)
);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.text-reveal-glow {
text-shadow: 0 0 28px rgba(97, 244, 216, 0.18);
}
/* Tonal sectioning — avoid 1px rules; optional subtle top fade only */
.section-border {
position: relative;
}
.section-surface-alt {
background-color: var(--color-surface-container-low);
}
/* Glass cards */
.glass-card {
background: rgba(0, 30, 28, 0.8);
-webkit-backdrop-filter: blur(12px);
backdrop-filter: blur(12px);
}
.app-card {
background: linear-gradient(180deg, rgba(0, 30, 28, 0.85) 0%, rgba(0, 23, 21, 0.9) 100%);
border: 1px solid rgba(15, 81, 76, 0.1);
box-shadow: 0 18px 36px rgba(0, 0, 0, 0.35);
-webkit-backdrop-filter: blur(12px) saturate(125%);
backdrop-filter: blur(12px) saturate(125%);
transition:
transform 0.28s ease,
box-shadow 0.28s ease,
border-color 0.28s ease;
}
.app-card-glow {
position: relative;
}
.app-card-glow::after {
content: '';
position: absolute;
inset: -1px;
border-radius: inherit;
pointer-events: none;
box-shadow: 0 0 24px rgba(97, 244, 216, 0.08);
}
.app-card-motion:hover {
transform: translateY(-5px);
border-color: rgba(97, 244, 216, 0.25);
box-shadow:
0 24px 42px rgba(0, 0, 0, 0.4),
0 0 32px -4px rgba(0, 191, 165, 0.12);
}
.btn-primary,
.btn-outline,
.btn-social {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
text-decoration: none !important;
transition:
transform 0.25s ease,
box-shadow 0.25s ease,
background 0.25s ease,
color 0.25s ease;
}
/* Primary CTA: 135° primary → primary-container, on-primary text */
.btn-primary {
border: 1px solid transparent;
color: var(--color-on-primary);
font-family: var(--font-headline);
font-weight: 700;
letter-spacing: 0.02em;
background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-container) 100%);
box-shadow: 0 0 32px -4px rgba(0, 191, 165, 0.2);
}
.btn-primary:hover {
color: var(--color-on-primary);
transform: translateY(-2px);
box-shadow:
0 0 20px rgba(97, 244, 216, 0.3),
0 14px 28px rgba(0, 0, 0, 0.35);
}
/* Secondary: ghost border outline-variant @ 40% */
.btn-outline {
border: 1px solid rgba(15, 81, 76, 0.4);
color: var(--color-on-surface);
font-family: var(--font-headline);
font-weight: 700;
background: rgba(0, 17, 16, 0.5);
-webkit-backdrop-filter: blur(8px);
backdrop-filter: blur(8px);
}
.btn-outline:hover {
color: var(--color-on-surface);
border-color: var(--color-primary);
transform: translateY(-2px);
}
.btn-social {
border: 1px solid transparent;
color: var(--color-on-surface-variant);
font-weight: 600;
font-size: 0.9rem;
border-radius: 0.75rem;
padding: 0.6rem 0.95rem;
background: rgba(0, 30, 28, 0.72);
box-shadow: inset 0 0 0 1px rgba(15, 81, 76, 0.15);
}
.btn-social:hover {
color: var(--color-on-surface);
transform: translateY(-2px);
box-shadow: inset 0 0 0 1px rgba(97, 244, 216, 0.25);
}
.btn-primary:focus-visible,
.btn-outline:focus-visible,
.btn-social:focus-visible {
outline: 2px solid rgba(97, 244, 216, 0.65);
outline-offset: 2px;
}
.btn-primary:focus,
.btn-outline:focus,
.btn-social:focus {
outline: 2px solid rgba(97, 244, 216, 0.65);
outline-offset: 2px;
}
/* Doc canvas — editorial bleed (wiki layout alignment); no hard section borders */
.theme-doc-wrapper {
background: linear-gradient(180deg, var(--color-surface-container-low) 0%, var(--color-background) 42%);
}
.theme-doc-root .theme-doc-sidebar-container {
border: 0;
background: color-mix(in srgb, var(--color-surface-container-low) 92%, transparent);
box-shadow: inset -1px 0 0 color-mix(in srgb, var(--color-outline-variant) 12%, transparent);
}
.menu {
padding-top: 1rem;
padding-bottom: 1rem;
}
.menu__link {
margin: 0.2rem 0;
border-radius: 0.5rem;
border-left: 4px solid transparent;
padding-left: 0.75rem;
color: var(--color-on-surface-variant);
font-weight: 500;
transition:
color 0.22s ease,
background 0.22s ease,
border-color 0.22s ease;
}
.menu__link:hover {
color: var(--color-on-surface);
background: rgba(97, 244, 216, 0.06);
}
.menu__link--active {
color: var(--color-on-surface) !important;
background: rgba(97, 244, 216, 0.1) !important;
border-left-color: var(--color-primary) !important;
}
.theme-doc-markdown {
line-height: 1.74;
}
.theme-doc-markdown h1,
.theme-doc-markdown h2,
.theme-doc-markdown h3,
.theme-doc-markdown h4 {
font-family: var(--font-headline);
letter-spacing: -0.015em;
color: var(--color-on-surface);
}
.theme-doc-markdown h2,
.theme-doc-markdown h3 {
border: 0;
margin-top: 2.2rem;
}
.theme-doc-markdown h2::after,
.theme-doc-markdown h3::after {
content: '';
display: block;
width: 64px;
height: 2px;
margin-top: 0.6rem;
background: linear-gradient(90deg, rgba(97, 244, 216, 0.55), rgba(28, 237, 225, 0.45));
border-radius: 999px;
opacity: 0.95;
}
.theme-doc-markdown p,
.theme-doc-markdown li {
color: var(--color-on-surface-variant);
}
.theme-doc-markdown a {
color: var(--color-primary);
text-decoration-color: rgba(97, 244, 216, 0.35);
}
.theme-doc-markdown a:hover {
color: var(--color-secondary);
text-decoration-color: rgba(28, 237, 225, 0.55);
}
.theme-doc-markdown :not(pre) > code {
color: var(--color-on-surface);
background: var(--color-surface-container-high);
box-shadow: inset 0 0 0 1px rgba(15, 81, 76, 0.15);
border-radius: 0.42rem;
font-family: var(--font-mono);
font-size: 0.84em;
padding: 0.12rem 0.34rem;
}
.theme-doc-markdown pre {
background: linear-gradient(
180deg,
var(--color-surface-container-highest) 0%,
var(--color-surface-container-high) 100%
) !important;
border-radius: 0.75rem;
border: 0;
box-shadow:
0 18px 32px rgba(0, 0, 0, 0.35),
inset 0 0 0 1px rgba(15, 81, 76, 0.12);
}
.theme-doc-markdown pre code {
font-family: var(--font-mono);
}
.footer {
border: 0;
box-shadow: 0 -12px 40px -28px color-mix(in srgb, var(--color-primary) 14%, transparent);
background: var(--color-background);
color: rgba(192, 252, 246, 0.4);
font-size: 0.75rem;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.footer__title {
font-family: var(--font-headline);
color: #00bfa5;
}
.footer a {
color: rgba(192, 252, 246, 0.4);
transition: color 0.2s ease;
}
.footer a:hover {
color: var(--color-primary);
}
.footer-link-with-icon {
display: inline-flex;
align-items: center;
gap: 0.4rem;
}
.footer-icon-svg {
flex-shrink: 0;
opacity: 0.85;
color: rgba(192, 252, 246, 0.45);
transition: color 0.2s ease, opacity 0.2s ease;
}
.footer__link-item:hover .footer-icon-svg {
opacity: 1;
color: var(--color-primary);
}
.button.button--primary {
border: 0;
color: var(--color-on-primary);
background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-container) 100%);
box-shadow: 0 0 32px -4px rgba(0, 191, 165, 0.2);
}
.button.button--secondary {
border: 1px solid rgba(15, 81, 76, 0.4);
color: var(--color-on-surface);
background: rgba(0, 30, 28, 0.65);
}
.button.button--secondary:hover,
.button.button--primary:hover {
transform: translateY(-1px);
text-decoration: none;
}
.mod-release-card {
background: linear-gradient(180deg, rgba(0, 30, 28, 0.85) 0%, rgba(0, 17, 16, 0.92) 100%);
border-radius: 0.8rem;
box-shadow:
inset 0 0 0 1px rgba(15, 81, 76, 0.12),
0 12px 24px rgba(0, 0, 0, 0.35);
}
.mod-release-badge {
color: var(--color-primary);
background: var(--color-surface-container-high);
border-radius: 999px;
padding: 0.24rem 0.62rem;
font-size: 0.74rem;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.mod-release-btn-primary {
color: var(--color-on-primary);
font-weight: 700;
border-radius: 0.6rem;
padding: 0.52rem 1rem;
background: linear-gradient(135deg, var(--color-primary), var(--color-primary-container));
box-shadow: 0 0 24px rgba(97, 244, 216, 0.15);
}
.mod-release-btn-outline {
color: var(--color-on-surface);
font-weight: 700;
border-radius: 0.6rem;
padding: 0.52rem 1rem;
background: rgba(0, 30, 28, 0.7);
box-shadow: inset 0 0 0 1px rgba(15, 81, 76, 0.35);
}
.mod-release-btn-primary:hover,
.mod-release-btn-outline:hover {
text-decoration: none;
}
@media (max-width: 996px) {
.navbar {
-webkit-backdrop-filter: blur(14px) saturate(130%);
backdrop-filter: blur(14px) saturate(130%);
}
.hero-orb {
opacity: 0.28;
}
.menu__link {
border-radius: 0.45rem;
}
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation: none !important;
transition: none !important;
scroll-behavior: auto !important;
}
}
/* Optional: Material Symbols (loaded via docusaurus.config.js headTags) */
.material-symbols-outlined {
font-family: 'Material Symbols Outlined', sans-serif;
font-variation-settings:
'FILL' 0,
'wght' 400,
'GRAD' 0,
'opsz' 24;
font-style: normal;
line-height: 1;
letter-spacing: normal;
text-transform: none;
display: inline-block;
white-space: nowrap;
word-wrap: normal;
direction: ltr;
}