:root, [data-theme="light"] {
--color-bg: #f0f4f8;
--color-surface: #ffffff;
--color-text: #0d1b2a;
--color-text-muted: #4a6080;
--color-text-faint: #8fa8c2;
--color-primary: #1e4b8f;
--color-accent: #e87b1e;
--color-border: rgba(30,75,143,0.12);
--font-display: 'Instrument Serif', Georgia, serif;
--font-body: 'Plus Jakarta Sans', 'Helvetica Neue', sans-serif;
--text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
--text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
--text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
--text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
--text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
--text-2xl: clamp(2rem, 1.2rem + 2.5vw, 3.5rem);
--space-2: 0.5rem;
--space-3: 0.75rem;
--space-4: 1rem;
--space-6: 1.5rem;
--space-8: 2rem;
--space-10: 2.5rem;
--space-12: 3rem;
--space-16: 4rem;
--radius-sm: 0.375rem;
--radius-md: 0.5rem;
--radius-lg: 0.75rem;
--radius-full: 9999px;
--shadow-md: 0 4px 20px rgba(14,40,80,0.10);
--shadow-lg: 0 12px 40px rgba(14,40,80,0.16);
--transition: 200ms cubic-bezier(0.16, 1, 0.3, 1);
}
[data-theme="dark"] {
--color-bg: #0d1622;
--color-surface: #14202e;
--color-text: #e2eaf4;
--color-text-muted: #7a9ab8;
--color-text-faint: #3d566e;
--color-primary: #4f8fcf;
--color-accent: #f5a040;
--color-border: rgba(79,143,207,0.15);
--shadow-md: 0 4px 20px rgba(0,0,0,0.3);
--shadow-lg: 0 12px 40px rgba(0,0,0,0.45);
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body {
min-height: 100dvh;
font-family: var(--font-body);
font-size: var(--text-base);
color: var(--color-text);
background: var(--color-bg);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: var(--space-8) var(--space-4);
position: relative;
overflow: hidden;
}
body::before, body::after {
content: '';
position: fixed;
border-radius: 50%;
filter: blur(80px);
opacity: 0.25;
pointer-events: none;
z-index: 0;
}
body::before {
width: 600px;
height: 600px;
background: radial-gradient(circle, #1e4b8f 0%, transparent 70%);
top: -200px;
left: -150px;
}
body::after {
width: 500px;
height: 500px;
background: radial-gradient(circle, #e87b1e 0%, transparent 70%);
bottom: -150px;
right: -100px;
}
.theme-toggle {
position: fixed;
top: var(--space-4);
right: var(--space-6);
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-full);
padding: var(--space-2) var(--space-3);
cursor: pointer;
color: var(--color-text-muted);
font-size: var(--text-sm);
box-shadow: var(--shadow-md);
z-index: 100;
transition: color var(--transition), background var(--transition), box-shadow var(--transition);
}
.theme-toggle:hover {
color: var(--color-primary);
box-shadow: var(--shadow-lg);
}
.theme-toggle svg { display: block; }
.card {
position: relative;
z-index: 1;
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: 1.5rem;
padding: var(--space-12) var(--space-10);
max-width: 780px;
width: 100%;
box-shadow: var(--shadow-lg);
display: flex;
flex-direction: column;
align-items: center;
gap: var(--space-8);
text-align: center;
}
.logo-wrap img {
height: 64px;
width: auto;
display: block;
}
.divider {
width: 60px;
height: 3px;
background: linear-gradient(90deg, var(--color-primary), var(--color-accent));
border-radius: var(--radius-full);
}
.hero-image {
width: 100%;
max-width: 640px;
border-radius: var(--radius-lg);
overflow: hidden;
box-shadow: var(--shadow-md);
}
.hero-image img {
width: 100%;
height: auto;
display: block;
border-radius: var(--radius-lg);
}
.text-content {
display: flex;
flex-direction: column;
gap: var(--space-4);
align-items: center;
}
h1 {
font-family: var(--font-display);
font-size: var(--text-2xl);
font-weight: 400;
line-height: 1.15;
color: var(--color-text);
text-wrap: balance;
}
h1 em {
font-style: italic;
color: var(--color-accent);
}
.subtitle {
font-size: var(--text-base);
color: var(--color-text-muted);
max-width: 52ch;
line-height: 1.65;
}
.badge {
display: inline-flex;
align-items: center;
gap: var(--space-2);
background: rgba(30, 75, 143, 0.08);
color: var(--color-primary);
border: 1px solid rgba(30, 75, 143, 0.15);
border-radius: var(--radius-full);
padding: 0.3rem var(--space-4);
font-size: var(--text-xs);
font-weight: 600;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.badge .dot {
width: 6px;
height: 6px;
background: var(--color-accent);
border-radius: 50%;
animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: 0.5; transform: scale(0.75); }
}
.features {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: var(--space-3);
list-style: none;
}
.features li {
display: flex;
align-items: center;
gap: var(--space-2);
font-size: var(--text-sm);
color: var(--color-text-muted);
background: var(--color-bg);
border: 1px solid var(--color-border);
border-radius: var(--radius-full);
padding: 0.35rem var(--space-4);
}
.features li svg {
color: var(--color-accent);
flex-shrink: 0;
}
.cta-wrap {
display: flex;
flex-direction: column;
align-items: center;
gap: var(--space-2);
}
.cta-text {
font-size: var(--text-sm);
color: var(--color-text-faint);
}
.cta-url {
font-size: var(--text-base);
font-weight: 600;
color: var(--color-primary);
text-decoration: none;
border-bottom: 2px solid var(--color-accent);
padding-bottom: 2px;
transition: color var(--transition), border-color var(--transition);
}
.cta-url:hover {
color: var(--color-accent);
border-color: var(--color-primary);
}
.footer-note {
position: fixed;
bottom: var(--space-4);
font-size: var(--text-xs);
color: var(--color-text-faint);
z-index: 1;
}
@media (max-width: 600px) {
.card {
padding: var(--space-8) var(--space-6);
gap: var(--space-6);
}
}
Binnenkort beschikbaar
Dé plek om jouwServicedesk carrière te starten
Servicedesk Academy is een nieuw online leerplatform voor IT-servicedesk professionals in Nederland.
Van eerstelijns support tot servicemanagement — wij bieden praktijkgerichte trainingen die jou verder helpen.
Praktijkgerichte cursussen
ITIL-gebaseerde modules
Certificering & voortgang bijhouden
Voor beginners & gevorderden
(function(){
const t = document.querySelector('[data-theme-toggle]');
const r = document.documentElement;
let d = matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
r.setAttribute('data-theme', d);
t && t.addEventListener('click', () => {
d = d === 'dark' ? 'light' : 'dark';
r.setAttribute('data-theme', d);
t.setAttribute('aria-label', 'Schakel naar ' + (d === 'dark' ? 'lichte' : 'donkere') + ' modus');
t.innerHTML = d === 'dark'
? ''
: '';
});
})();