/* --- Globale Instellingen & Variabelen: Digital Bloom Thema --- */
:root {
    --background: #050807;
    --surface: #101413;
    --primary-text: #e0e0e0;
    --secondary-text: #889691;
    --accent: #00f0a8;
    --accent-glow: rgba(0, 240, 168, 0.5);
    --accent-dark: #00c78c;
    --nav-height: 70px;
}
/* --- Custom Scrollbar Styling --- */

/* Voor Webkit browsers (Chrome, Safari, Edge, Opera) */
body::-webkit-scrollbar {
  width: 14px; /* Breedte van de scrollbar */
}

body::-webkit-scrollbar-track {
  background: var(--surface); /* De achtergrond, donkergrijs/zwart */
}

body::-webkit-scrollbar-thumb {
  background-color: var(--accent); /* De 'pil', in jouw accent-groen */
  border-radius: 20px; /* Dit maakt hem volledig rond */
  /* Deze rand in de kleur van de track creëert een 'padding' effect, heel strak! */
  border: 3px solid var(--surface); 
}

body::-webkit-scrollbar-thumb:hover {
  background-color: #33ffbe; /* Iets lichtere kleur bij hover */
  box-shadow: 0 0 10px var(--accent-glow); /* Voegt een subtiele gloed toe */
}

/* Voor Firefox */
/* Firefox ondersteunt minder uitgebreide styling, maar we kunnen wel de kleuren en breedte instellen. */
body {
  scrollbar-width: thin; /* 'auto', 'thin', of 'none' */
  scrollbar-color: var(--accent) var(--surface); /* thumb-kleur en track-kleur */
}

/* --- Keyframe Animaties --- */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes textReveal {
    from { opacity: 0; transform: translateY(15px) scale(0.9); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes aurora-border {
	0% { background-position: 0% 50%; }
	50% { background-position: 100% 50%; }
	100% { background-position: 0% 50%; }
}

/* --- Basis Reset & Body Styling --- */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
html {
    scroll-behavior: smooth;
}
body {
    font-family: 'Inter', sans-serif;
    background-color: var(--background);
    color: var(--primary-text);
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
} 
/* --- NIEUW: Styling voor het logo --- */
/* --- NIEUW: Styling voor het logo --- */
.site-logo {
    position: fixed;
    top: 30px; /* Iets omhoog voor betere visuele centrering */
    left: 2rem;
    z-index: 1001; /* Hoger dan de navigatiebalk */
    opacity: 0;
    animation: fadeIn 1s ease 0.5s forwards;
    transition: transform 0.3s ease;
}

.site-logo ul {
    display: flex;
    position: relative;
    background: #101413; 
    border-radius: 50px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
    padding: 5px;
    list-style: none;
}
.site-logo a {
    display: block;
    padding: 0.7rem 1.6rem;
    font-size: 14px;
    font-weight: 600;
    color: var(--secondary-text);
    position: relative;
    z-index: 2;
    transition: color 0.4s ease;
    text-decoration: none;
    white-space: nowrap;
}

.site-logo img {
    width: 60px; /* Logo is nu groter */
    height: auto;
}

.site-logo:hover {
    transform: scale(1.1);
}

/* --- Animaties bij Scrollen --- */
.fade-in {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s cubic-bezier(0.165, 0.84, 0.44, 1), transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.fade-in.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* --- STRAKKE EN MODERNE NAVIGATIE --- */
/* STRAKKE EN MODERNE NAVIGATIE (AANGEPAST VOOR LOGO) */
.glass-nav {
    position: fixed;
    top: 20px;
    left: 50%;
    /* Meer verschuiving om ruimte te maken voor het grotere logo */
    transform: translateX(calc(-50% + 50px));
    z-index: 1000;
    opacity: 0;
    animation: fadeIn 1s ease 0.5s forwards;
}
.glass-nav ul {
    display: flex;
    position: relative;
    background: #101413; 
    border-radius: 50px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
    padding: 5px;
    list-style: none;
}
.glass-nav a {
    display: block;
    padding: 0.7rem 1.6rem;
    font-size: 14px;
    font-weight: 600;
    color: var(--secondary-text);
    position: relative;
    z-index: 2;
    transition: color 0.4s ease;
    text-decoration: none;
    white-space: nowrap;
}
.glass-nav a.active {
    color: var(--background);
}
.glass-nav a:not(.active):hover {
    color: var(--primary-text);
}
.glass-glider {
    position: absolute;
    top: 5px;
    left: 5px;
    height: calc(100% - 10px);
    border-radius: 50px;
    z-index: 1;
    transition: all 0.6s cubic-bezier(0.68, -0.55, 0.27, 1.55);
    background: var(--accent);
    box-shadow: 0 0 20px var(--accent-glow);
}

/* --- STYLING VOOR P5.JS HERO ACHTERGROND --- */

/* --- VOEG DEZE STYLES TOE/PAS DEZE AAN IN style.css --- */

/* Zorg ervoor dat de algemene content sectie gecentreerd is met padding.
   Deze stijl had je waarschijnlijk al. */
.content-section {
    width: 100%;
    max-width: 1100px; /* Of wat je voorkeur ook is */
    margin-left: auto;
    margin-right: auto;
    padding: 0 2rem; /* Ruimte aan de zijkanten op mobiel */
    position: relative;
    z-index: 2; /* Zorg dat de content boven de achtergrondlagen komt */
}

/* De hero container zelf wordt nu full-width */
.hero {
    position: relative;
    width: 100%; /* Verplicht: neem volledige breedte */
    min-height: 100vh; /* Zorg dat het de volledige schermhoogte vult */
    display: flex; /* Gebruik flexbox voor eenvoudige centrering van de content */
    align-items: center; /* Centreer de content verticaal */
    justify-content: center; /* Centreer de content horizontaal */
    overflow: hidden;
}

/* De p5.js achtergrond en spotlight vullen de volledige hero-sectie */
#p5-hero-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

#p5-hero-background {
    z-index: 1;
}

/* --- GLOBAAL SPOTLIGHT EFFECT --- */

.background-spotlight {
    /* Positionering: vast op het scherm, vult alles */
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;  /* Volledige viewport breedte */
    height: 100vh; /* Volledige viewport hoogte */

    /* Uiterlijk: de radiale gradient die de muis volgt */
    background: radial-gradient(
        circle at var(--mouse-x) var(--mouse-y),
        rgba(0, 240, 168, 0.521) 0%, /* Kleur van de spotlight, speel met de 0.1 voor intensiteit */
        transparent 10%
    );

    /* Laag & Interactie: */
    z-index: 998; /* Boven de meeste content, maar onder de nav */
    pointer-events: none; /* SUPER BELANGRIJK: zorgt dat je door de laag heen kunt klikken! */
    opacity: 0; /* Standaard onzichtbaar */
    transition: opacity 0.4s ease-out; /* Vloeiende overgang */
}

/* Zorg ervoor dat de navigatie BOVEN de spotlight blijft */
.glass-nav {
    position: fixed; /* Zorg dat de nav vast staat */
    top: 2rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 999; /* Hogere z-index dan de spotlight */
}

/* De hero-content heeft nu de .content-section class,
   en wordt bovenop de achtergrondlagen geplaatst. */
.hero-content {
    position: relative;
    z-index: 3;
    text-align: center; /* Zorg dat de tekst in de box gecentreerd is */
}

/* We moeten de margin van de .content-section op de hero-content resetten,
   omdat de flexbox-uitlijning op .hero dit al regelt. */
.hero .hero-content.content-section {
    margin-left: 0;
    margin-right: 0;
}
.hero-title {
    font-size: clamp(2.5rem, 8vw, 5.5rem);
    font-weight: 900;
    margin-bottom: 1.5rem;
    letter-spacing: -0.04em;
    line-height: 1.1;
    color: #fff;
}
.hero-title span {
    display: inline-block;
    opacity: 0;
    animation: textReveal 0.8s cubic-bezier(0.68, -0.55, 0.27, 1.55) forwards;
}
.hero-subtitle {
    font-size: 1.25rem;
    color: var(--secondary-text);
    margin: 0 auto 2.5rem auto;
    max-width: 600px;
    opacity: 0;
    animation: fadeInUp 1s ease 1s forwards;
}
.cta-button {
    background: var(--accent);
    color: #000;
    font-weight: 700;
    padding: 1rem 2.5rem;
    border-radius: 50px;
    text-decoration: none;
    display: inline-block;
    transition: all 0.3s ease;
    border: none;
    opacity: 0;
    animation: fadeInUp 1s ease 1.2s forwards;
}
.cta-button:hover {
    transform: translateY(-5px) scale(1.05);
    box-shadow: 0 10px 25px var(--accent-glow);
}

/* --- Algemene Sectie Styling --- */
.content-section {
    padding: 8rem 2rem;
    max-width: 1100px;
    margin: 0 auto;
    position: relative;
}
h2 {
    font-size: 3rem;
    font-weight: 900;
    text-align: center;
    margin-bottom: 4rem;
    letter-spacing: -1px;
}
/* --- STYLING VOOR 'OVER MIJ' SECTIE & GEANIMEERDE FOTO --- */
/* --- Styling voor Benoemingswaardigheden --- */

.noteworthy-list {
    list-style: none;
    padding: 0;
    margin: 2.5rem 0; /* Ruimte boven en onder de lijst */
    display: flex;
    flex-direction: column;
    gap: 1.5rem; /* Ruimte tussen de items */
}

.noteworthy-list li {
    padding-left: 1.5rem; /* Creëer ruimte voor de groene streep */
    position: relative;
}

/* De verticale groene streep */
.noteworthy-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px; /* Lijn uit met de tekst */
    width: 3.5px; /* Iets dikker voor impact */
    height: 32px; /* Iets langer */
    
    /* Gebruik de gradient voor diepte */
    background: linear-gradient(180deg, var(--accent-dark), var(--accent));
    
    border-radius: 3px;
    box-shadow: 0 0 8px rgba(0, 240, 168, 0.3); /* Subtiele gloed */
}

.noteworthy-list h4 {
    font-size: 1.1rem;
    color: var(--primary-text);
    margin: 0 0 0.2rem 0;
}

.noteworthy-list span {
    color: var(--secondary-text);
    font-size: 0.95rem;
    line-height: 1.6;
}
.noteworthy-list li::before,
.noteworthy-list li h4,
.noteworthy-list li span {
    transition: all 0.3s ease;
}

/* De daadwerkelijke hover-stijlen */
.noteworthy-list li:hover::before {
    width: 5px; /* Maak de streep iets breder */
    box-shadow: 0 0 15px var(--accent-glow); /* Maak de gloed intenser */
}

.noteworthy-list li:hover h4 {
    color: var(--accent); /* Maak de titel groen */
}

.noteworthy-list li:hover span {
    color: var(--primary-text); /* Maak de beschrijving helderder */
}
.about-section {
    padding-top: 8rem;
    padding-bottom: 8rem;
}

.about-content {
    display: flex;
    align-items: center;
    gap: 3rem;
    margin-top: 2rem;
}

/* De container voor de foto wordt onze 'positioning context' */
.about-photo-container {
    position: relative;
    width: 200px;
    height: 200px;
    flex-shrink: 0; /* Zorgt dat de container niet krimpt */
}

.about-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
}

.about-text {
    flex: 1;
}

/* --- Word Spinner Styling --- */

/* Bijgewerkte styling */
.word-spinner-container {
    margin-top: 0; /* Geen marge meer aan de bovenkant */
    margin-bottom: 2rem; /* Voeg een duidelijke marge aan de onderkant toe */
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 1.25rem;
    font-weight: 600;
}

/* De 'Ik maak:' tekst */
.spinner-prefix {
    color: var(--secondary-text);
}

/* De 'doos' waar de woorden doorheen scrollen */
.spinner-words {
    overflow: hidden;
    position: relative;
    height: 1.5em; /* Hoogte aanpassen aan de font-size */
}

/* Een subtiele fade aan de boven- en onderkant */
.spinner-words::after {
    content: "";
    position: absolute;
    inset: 0;
    /* Gebruik de achtergrondkleur van de sectie voor de fade */
    background: linear-gradient(
      var(--background) 0%,
      transparent 25%,
      transparent 75%,
      var(--background) 100%
    );
    pointer-events: none;
}

/* De kolom met alle woorden */
.spinner-word {
    display: block;
    height: 100%;
    color: var(--accent); /* Gebruik jouw accentkleur */
    animation: spin-words 10s infinite; /* Langere, rustigere animatie */
}

/* De keyframe-animatie die de woorden omhoog schuift */
@keyframes spin-words {
  10% { transform: translateY(-110%); }
  20% { transform: translateY(-100%); }
  30% { transform: translateY(-210%); }
  40% { transform: translateY(-200%); }
  50% { transform: translateY(-310%); }
  60% { transform: translateY(-300%); }
  70% { transform: translateY(-410%); }
  80% { transform: translateY(-400%); }
  90% { transform: translateY(-510%); }
  100% { transform: translateY(-500%); }
}
/* --- DE GEANIMEERDE ORBIT-LIJNEN --- */


/* --- NIEUWE GEANIMEERDE FOTO LIJNEN --- */
.photo-background-lines {
    position: absolute;
    /* Maak de container iets groter dan de foto voor een 'zwevend' effect */
    top: -15px;
    left: -15px;
    width: calc(100% + 30px);
    height: calc(100% + 30px);
    z-index: -1; /* Plaats achter de foto */
    pointer-events: none;
    transition: transform 0.5s ease;
}

.photo-line-main {
    stroke: var(--accent); /* Direct de groene accentkleur */
    stroke-width: 3px;     /* Duidelijk dikker */
    opacity: 0.8;          /* Goed zichtbaar */
}
.about-photo-container.is-visible .photo-line-main { 
    animation: draw-line 1.5s cubic-bezier(0.65, 0, 0.35, 1) forwards;
    animation-delay: 0.3s; /* Laat deze als eerste of tweede starten */
}

/* De bestaande verspringende animatie voor de subtiele lijnen */
.about-photo-container.is-visible .photo-line-1 { animation-delay: 0.8s; }
.about-photo-container.is-visible .photo-line-2 { animation-delay: 0.5s; }
.about-photo-container.is-visible .photo-line-3 { animation-delay: 1.1s; }
.about-photo-container:hover .photo-background-lines {
    transform: scale(1.05) rotate(10deg); /* Klein, speels hover effect */
}

.photo-background-lines path {
    fill: none;
    stroke: var(--secondary-text);
    stroke-width: 1.5px;
    opacity: 0.6;
    stroke-linecap: round;
    /* Animatie setup */
    stroke-dasharray: 650; /* Grote waarde die zeker alle paden dekt */
    stroke-dashoffset: 650;
    transition: stroke 0.4s ease;
}


/* Maak de lijnen groen bij hover op de container */
.about-photo-container:hover .photo-background-lines path {
    stroke: var(--accent);
    opacity: 1;
}




/* --- Responsive aanpassingen --- */
@media (max-width: 768px) {
    h2 { font-size: 2.2rem; }
    .content-section { padding: 6rem 1rem; }

    /* Logo verbergen op mobiel om de navigatiebalk de volledige breedte te geven */
    .site-logo {
        display: none;
    }
    
    .glass-nav {
        width: 100%;
        top: 0;
        left: 0; /* Reset positionering voor volledige breedte */
        transform: none; /* Reset transform */
        border-radius: 0;
    }
     .glass-nav ul {
        border-radius: 0;
        justify-content: center;
        width: 100%;
        overflow-x: auto;
        -ms-overflow-style: none;
        scrollbar-width: none;
     }
    .glass-nav ul::-webkit-scrollbar {
        display: none;
    }
    .glass-nav a { padding: 0.8rem 1rem; }
    
    .portfolio-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}
.card {
  width: 190px;
  height: 254px;
  background: var(--surface);
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  position: relative;
  border: 1px solid rgba(255, 255, 255, 0.1);
  cursor: pointer;
  border-radius: 16px;
  transition: border-color 0.3s ease;
  text-decoration: none; /* <-- DEZE REGEL VERWIJDERT DE STREPEN */
}

.card .content {
  border-radius: 14px;
  background: var(--surface); /* Gebruik de variabele voor consistentie */
  width: 186px;
  height: 250px;
  z-index: 1;
  padding: 20px;
  color: white;
  display: flex;
  justify-content: center;
  align-items: center;
}

.content::before {
  opacity: 0;
  transition: opacity 300ms;
  content: " ";
  display: block;
  background: white;
  width: 5px;
  height: 50px;
  position: absolute;
  filter: blur(50px);
  overflow: hidden;
}
/* Voeg deze nieuwe regels toe voor perfecte tekst-styling */
.card .content h3 {
    color: var(--primary-text);
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 0.25rem;
}

.card .content span {
    color: var(--secondary-text);
    font-size: 0.95rem;
}

.card:hover .content::before {
  opacity: 1;
}

.card::before {
  opacity: 0;
  content: " ";
  position: absolute;
  display: block;
  width: 80px;
  height: 360px;
  background: linear-gradient( #00f0a8, #ffffff);
  transition: opacity 300ms;
  animation: rotation_9018 8000ms infinite linear;
  animation-play-state: paused;
}

.card:hover::before {
  opacity: 1;
  animation-play-state: running;
}

.card::after {
  position: absolute;
  content: " ";
  display: block;
  width: 250px;
  height: 360px;
  background: #17171733;
  backdrop-filter: blur(50px);
}
/* --- Layout voor de werk kaarten --- */
.work-cards-grid {
    display: flex;
    justify-content: center; /* Centreert de groep kaarten horizontaal */
    flex-wrap: wrap;         /* Zorgt dat kaarten op kleine schermen onder elkaar springen */
    gap: 2rem;               /* Voegt ruimte toe tussen de kaarten */
}
@keyframes rotation_9018 {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

/* --- Popup / Modal Styling --- */
body.popup-open {
    overflow: hidden; /* Voorkomt scrollen van de achtergrondpagina */
}

.popup-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    z-index: 2000;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s ease;
}

.popup-modal.is-visible {
    opacity: 1;
    pointer-events: all;
}

.popup-content {
    /* De 'Glass' stijl, net als de navigatiebalk */
    background: rgba(16, 20, 19, 0.8); /* Gebaseerd op --surface met transparantie */
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 24px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);

    position: relative;
    padding: 3rem;
    width: 90%;
    max-width: 900px;
    max-height: 85vh;
    overflow-y: auto;

    /* Animatie voor het verschijnen */
    transform: scale(0.95);
    transition: all 0.4s ease;
}

.popup-modal.is-visible .popup-content {
    transform: scale(1);
}

.popup-close {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    background: transparent;
    border: none;
    color: var(--secondary-text);
    font-size: 2.5rem;
    line-height: 1;
    cursor: pointer;
    transition: color 0.3s ease, transform 0.3s ease;
}

.popup-close:hover {
    color: var(--primary-text);
    transform: rotate(90deg);
}

.popup-content h2 {
    text-align: left;
    margin-top: 0;
    margin-bottom: 2rem;
}

.popup-content-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.5rem;
}

/* We hergebruiken de .project-item styling. Zorg dat die nog in je CSS staat! */
.project-item {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 16px;
    background: var(--surface);
    transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.project-item:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.3);
}
.project-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.project-item:hover img {
    transform: scale(1.05);
}
.project-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,0.8) 100%);
    display: flex;
    align-items: flex-end;
    padding: 2rem;
    transition: background 0.4s ease;
}
.project-item:hover .project-overlay {
     background: linear-gradient(180deg, transparent 20%, rgba(0,0,0,0.95) 100%);
}
.project-info {
    transform: translateY(10px);
    opacity: 0;
    transition: transform 0.5s ease, opacity 0.5s ease;
}
.project-item:hover .project-info {
    transform: translateY(0);
    opacity: 1;
}
.project-info h3 {
    font-size: 1.5rem;
    color: #fff;
}
.project-info span {
    font-size: 1rem;
    color: var(--accent);
    font-weight: 600;
}
/* --- NIEUWE Talenten Sectie: Constellaties --- */


.talent-constellations-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 2.5rem;
}

.constellation-item {
    background-color: var(--surface);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 16px;
    padding: 2.5rem 2rem;
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: all 0.3s ease;
}

.constellation-line {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 70px;
    z-index: 0;
    fill: none;
    stroke: var(--accent);
    stroke-width: 1.5px;
    stroke-linecap: round;
    /* Magie voor de animatie */
    stroke-dasharray: 210; /* Geschatte lengte van de path */
    stroke-dashoffset: 210;
}

/* NIEUWE styling voor de organische lijnen */
@keyframes draw-line {
    to {
        stroke-dashoffset: 0;
    }
}

.constellation-lines {
    position: absolute;
    top: -5px; /* Iets hoger voor betere positionering */
    left: 0;
    width: 100%;
    height: 80px;
    z-index: 0;
    opacity: 0.5; /* Maakt de lijnen subtieler */
    transition: opacity 0.3s ease;
}

.constellation-lines svg {
    overflow: visible;
}

.constellation-lines path {
    fill: none;
    /* Subtiele grijze kleur, net als in je voorbeeld */
    stroke: var(--secondary-text); 
    stroke-width: 2px;
    stroke-linecap: round;
    /* Animatie setup */
    stroke-dasharray: 300; /* Een veilige, grote waarde voor alle paden */
    stroke-dashoffset: 300;
    transition: stroke 0.3s ease;
}

/* De animatie start als het element in beeld komt */
.constellation-item.is-visible .constellation-lines path {
    animation: draw-line 2s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}

/* De MAGIE: geef elke lijn een andere vertraging voor het 'staggered' effect */
.constellation-item.is-visible .line-1 { animation-delay: 0.5s; }
.constellation-item.is-visible .line-2 { animation-delay: 0.7s; }
.constellation-item.is-visible .line-3 { animation-delay: 0.6s; }


/* Extra detail: maak de lijnen groen bij hover */
.constellation-item:hover .constellation-lines {
    opacity: 1;
}

.constellation-item:hover .constellation-lines path {
    stroke: var(--accent);
}

.constellation-item h3 {
    font-size: 1.5rem;
    color: var(--primary-text);
    margin-bottom: 1rem;
    position: relative;
}

.stars-container {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
    position: relative;
}

.star {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.15);
}

.star.filled {
    background-color: var(--accent);
    box-shadow: 0 0 8px var(--accent-glow);
}

.constellation-item p {
    color: var(--secondary-text);
    font-size: 0.95rem;
    line-height: 1.6;
    position: relative;
}

/* Speciale stijl voor het certificaat */
.certificate-item {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.certificate-icon {
    font-size: 3rem;
    color: var(--accent);
    line-height: 1;
    margin-bottom: 1rem;
    font-weight: 900;
}

/* --- Geanimeerde Achtergrondlijnen voor Secties --- */
.section-background-lines {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1; /* Plaatst de lijnen ACHTER de content */
    overflow: hidden;
    pointer-events: none; /* SUPER BELANGRIJK: maakt de laag niet-klikbaar */
}

.section-background-lines svg {
    width: 100%;
    height: 100%;
}

.section-background-lines path {
    fill: none;
    stroke: var(--secondary-text); /* Subtiele grijze kleur */
    stroke-width: 2px;
    opacity: 0.15; /* Heel subtiel, niet afleidend */
    stroke-linecap: round;
    /* Animatie setup */
    stroke-dasharray: 1500; /* Een veilige, grote waarde */
    stroke-dashoffset: 1500;
}

/* De class die de animatie start */
.section-background-lines.is-drawing path {
    animation: draw-line 8s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}

/* Geef elke lijn een andere vertraging voor een organisch effect */
.section-background-lines.is-drawing .bg-line-1 { animation-delay: 0.5s; }
.section-background-lines.is-drawing .bg-line-2 { animation-delay: 1.2s; }
.section-background-lines.is-drawing .bg-line-3 { animation-delay: 0.2s; }
.section-background-lines.is-drawing .bg-line-4 { animation-delay: 1.8s; }
/* --- Social Icons met Tooltip in Footer --- */
.footer-socials {
    display: flex;
    justify-content: center;
    gap: 2.5rem; /* Ruimte tussen de iconen */
    margin-bottom: 4rem; /* Extra ruimte boven de copyright tekst */
    position: relative; /* Nodig voor de tooltips */
    padding-top: 150px; /* Ruimte voor de tooltips om naar boven te komen */
    margin-top: -150px; /* Compenseert de padding zodat de layout niet breekt */
}

.tooltip-container {
  position: relative;
  cursor: pointer;
  transition: all 0.2s;
  font-size: 17px;
  border-radius: 10px;
}

.tooltip {
  position: absolute;
  bottom: 80px; /* Startpositie van de tooltip */
  left: 50%;
  transform: translateX(-50%);
  width: max-content; /* Zorgt dat de tooltip breed genoeg is */
  padding: 8px;
  opacity: 0;
  pointer-events: none;
  transition: all 0.3s cubic-bezier(0.68, -0.55, 0.27, 1.55);
  border-radius: 12px;
  background: var(--surface);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.profile {
  background: var(--background);
  border-radius: 8px;
  padding: 12px 16px;
  border: 1px solid var(--accent-dark);
}

.tooltip-container:hover .tooltip {
  bottom: 100%; /* Beweegt naar boven, net boven het icoon */
  opacity: 1;
  pointer-events: auto;
}

.icon {
  text-decoration: none;
  color: var(--primary-text);
  display: block;
  position: relative;
}

.layer {
  width: 55px;
  height: 55px;
  transition: transform 0.3s;
}

.icon:hover .layer {
  transform: rotate(-35deg) skew(20deg);
}

.layer span {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  border: 1px solid var(--accent);
  border-radius: 5px;
  transition: all 0.3s;
}

.icon:hover .layer span {
  box-shadow: -1px 1px 3px var(--accent-glow);
}

.icon .text {
  position: absolute;
  left: 50%;
  bottom: -5px;
  opacity: 0;
  font-weight: 600;
  color: var(--accent);
  transform: translateX(-50%);
  transition: bottom 0.3s ease, opacity 0.3s ease;
}

.icon:hover .text {
  bottom: -35px;
  opacity: 1;
}
/* --- P5.js Achtergrond voor de Footer --- */

#footer-p5-background {
    width: 100%;
    height: 200px; /* Hoogte van de p5.js sectie onderaan. Pas dit gerust aan! */
    position: relative;
    overflow: hidden;
}

#footer-p5-background canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.icon:hover .layer span:nth-child(1) { opacity: 0.2; }
.icon:hover .layer span:nth-child(2) { opacity: 0.4; transform: translate(5px, -5px); }
.icon:hover .layer span:nth-child(3) { opacity: 0.6; transform: translate(10px, -10px); }
.icon:hover .layer span:nth-child(4) { opacity: 0.8; transform: translate(15px, -15px); }
.icon:hover .layer span:nth-child(5) { opacity: 1; transform: translate(20px, -20px); }

.layer span.fab {
  font-size: 24px;
  display: flex;
  justify-content: center;
  align-items: center;
  fill: var(--accent);
  background: var(--background);
}

.user {
  display: flex;
  align-items: center;
  gap: 10px;
}

.img {
  width: 50px;
  height: 50px;
  font-size: 20px;
  font-weight: 700;
  border: 1px solid var(--accent);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--surface);
  color: var(--accent);
}

.name {
  font-size: 16px;
  font-weight: 700;
  color: var(--primary-text);
}

.details {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.username {
    font-size: 14px;
    color: var(--secondary-text);
}

.about {
  color: var(--secondary-text);
  padding-top: 8px;
  font-size: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  margin-top: 8px;
}
/* --- Footer --- */
.footer {
    text-align: center;
    padding-top: 6rem;
    padding-bottom: 4rem;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}
.footer h2 {
    font-size: 2.5rem;
    margin-bottom: 1rem;
}
.footer p {
    color: var(--secondary-text);
    margin-bottom: 2rem;
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
}
.email-link {
    display: inline-block;
    background: var(--accent);
    color: #000;
    font-weight: 700;
    padding: 1rem 2.5rem;
    border-radius: 50px;
    text-decoration: none;
    transition: all 0.3s ease;
    margin-bottom: 6rem;
}
.email-link:hover {
    transform: translateY(-5px) scale(1.05);
    box-shadow: 0 10px 25px var(--accent-glow);
}
.footer-socials {
    margin-bottom: 1.5rem;
}
.footer-socials a {
    color: var(--secondary-text);
    text-decoration: none;
    margin: 0 1rem;
    font-weight: 600;
    transition: color 0.3s ease;
}
.footer-socials a:hover {
    color: var(--accent);
}
.footer-bottom p {
    font-size: 0.9rem;
    color: #4f5b57;
}
/* Styling voor de merk-link in de footer */
.footer-brand-link {
    color: var(--accent); /* Maakt de link groen */
    text-decoration: none; /* Verwijdert de standaard onderstreping */
    font-weight: 600;      /* Maakt het iets vetter, zodat het opvalt */
    transition: color 0.3s ease;
}

.footer-brand-link:hover {
    color: var(--primary-text); /* Wordt wit bij hover voor een duidelijke interactie */
}

/* NIEUWE "DATA-STREAM" LIJN-STYLING */

/* ============================================= */
/* --- Ervaringstijdlijn Styling (DEFINITIEF) --- */
/* ============================================= */

/* Keyframe voor de bewegende lijn */
@keyframes move-dashes {
    to {
        stroke-dashoffset: -100;
    }
}
/* ============================================= */
/* --- Ervaringstijdlijn Styling (DEFINITIEVE FIX) --- */
/* ============================================= */

/* Keyframe voor de bewegende lijn */
@keyframes move-dashes {
    to {
        stroke-dashoffset: -100;
    }
}

.timeline-container {
    margin-top: 8rem;
    padding-bottom: 4rem;
}

.experience-timeline {
    position: relative;
    width: 100%;
    max-width: 800px;
    margin: 4rem auto 0;
    padding: 0 1rem;
}

.timeline-line-svg {
    position: absolute;
    left: 50%;
    top: 0;
    height: 100%;
    transform: translateX(-50%);
    z-index: 0;
}

.timeline-line-svg path {
    fill: none;
    stroke: var(--accent);
    stroke-width: 2px;
    opacity: 0.4;
    stroke-dasharray: 4 12; 
    stroke-dashoffset: 0;
}

.timeline-container.is-visible .timeline-line-svg path {
    animation: move-dashes 2s linear infinite;
}

.timeline-item {
    position: relative;
    width: 50%;
    padding: 0 40px;
    margin-bottom: 50px;
}

/* Items aan de rechterkant (even nummers: 2, 4, etc.) */
.timeline-item:nth-child(even) {
    left: 50%;
    text-align: left;
}

/* Items aan de linkerkant (oneven nummers: 1, 3, etc.) */
.timeline-item:nth-child(odd) {
    text-align: right;
}

.timeline-dot {
    position: absolute;
    top: 15px;
    width: 18px;
    height: 18px;
    background: var(--surface);
    border: 3px solid var(--accent);
    border-radius: 50%;
    z-index: 5;
    transition: transform 0.3s ease;
}

.timeline-item:hover .timeline-dot {
    transform: scale(1.2);
    box-shadow: 0 0 10px var(--accent-glow);
}

.timeline-item:nth-child(odd) .timeline-dot { right: -9px; }
.timeline-item:nth-child(even) .timeline-dot { left: -9px; }

.timeline-content {
    background: var(--surface);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 2rem;
    position: relative;
    transition: border-color 0.3s ease;
}

.timeline-item:hover .timeline-content {
    border-color: var(--accent);
}

.timeline-content::before {
    content: '';
    position: absolute;
    top: 18px;
    width: 0;
    height: 0;
    border-style: solid;
}

.timeline-item:nth-child(odd) .timeline-content::before {
    right: -10px;
    border-width: 10px 0 10px 10px;
    border-color: transparent transparent transparent rgba(255, 255, 255, 0.08);
}

.timeline-item:nth-child(even) .timeline-content::before {
    left: -10px;
    border-width: 10px 10px 10px 0;
    border-color: transparent rgba(255, 255, 255, 0.08) transparent transparent;
}

.timeline-date {
    font-size: 0.9rem;
    color: var(--secondary-text);
    font-weight: 600;
}

.timeline-content h3 {
    color: var(--primary-text);
    margin: 0.25rem 0;
    font-size: 1.25rem;
}

.timeline-company {
    color: var(--accent);
    font-weight: 600;
    margin-bottom: 1.25rem;
}

.timeline-description {
    font-size: 0.95rem;
    color: var(--secondary-text);
    line-height: 1.6;
}

.timeline-content h4 {
    margin-top: 1.5rem;
    margin-bottom: 0.75rem;
    color: var(--primary-text);
    font-size: 1rem;
}

.timeline-skills {
    list-style: none;
    padding: 0;
    font-size: 0.95rem;
    color: var(--secondary-text);
}

.timeline-skills li {
    position: relative;
    margin-bottom: 0.5rem;
}

/* Standaard (voor rechterkant-items) - stip links van de tekst */
.timeline-skills li {
    padding-left: 1.25rem;
}
.timeline-skills li::before {
    content: '•';
    position: absolute;
    left: 0;
    top: 1px;
    color: var(--accent);
    font-size: 1.2em;
}

/* DE FIX: Specifieke override voor linkerkant-items (odd) */
.timeline-item:nth-child(odd) .timeline-skills li {
    padding-left: 0;
    padding-right: 1.25rem;
}
.timeline-item:nth-child(odd) .timeline-skills li::before {
    left: auto;
    right: 0;
}

/* ============================================= */
/* --- Responsive Tijdlijn (Mobiel) ---          */
/* ============================================= */
/* Deze regels moeten binnen je @media (max-width: 768px) { ... } blok */
@media (max-width: 768px) {
    .experience-timeline {
        padding: 0;
    }
    .timeline-line-svg {
        left: 10px;
        transform: none;
    }
    .timeline-item, .timeline-item:nth-child(even) {
        width: 100%;
        left: 0;
        text-align: left;
        padding-left: 40px;
        padding-right: 0;
    }
    .timeline-item:nth-child(odd) .timeline-dot, 
    .timeline-item:nth-child(even) .timeline-dot {
        left: 1px;
    }
    .timeline-item:nth-child(odd) .timeline-content::before,
    .timeline-item:nth-child(even) .timeline-content::before {
        left: -10px;
        right: auto;
        border-width: 10px 10px 10px 0;
        border-color: transparent rgba(255, 255, 255, 0.08) transparent transparent;
    }
    /* Zorg dat ALLE skills op mobiel links uitgelijnd zijn met de stip ervoor */
    .timeline-item:nth-child(odd) .timeline-skills li {
        text-align: left; /* Zorgt dat de tekst zelf ook links uitlijnt */
        padding-left: 1.25rem;
        padding-right: 0;
    }
    .timeline-item:nth-child(odd) .timeline-skills li::before {
        left: 0;
        right: auto;
    }
}
/* ============================================= */
/* --- Ervaringstijdlijn Styling (ACTIEVE FOCUS) --- */
/* ============================================= */

@keyframes move-dashes {
    to {
        stroke-dashoffset: -100;
    }
}

.timeline-container {
    margin-top: 8rem;
    padding-bottom: 4rem;
}

.experience-timeline {
    position: relative;
    width: 100%;
    /* AANGEPAST: Nog breder voor maximale impact */
    max-width: 1100px; 
    margin: 4rem auto 0;
    padding: 0 1rem;
}

.timeline-line-svg {
    position: absolute;
    left: 50%;
    top: 0;
    height: 100%;
    transform: translateX(-50%);
    z-index: 0;
}

.timeline-line-svg path {
    fill: none;
    stroke: var(--accent);
    stroke-width: 2px;
    opacity: 0.4;
    stroke-dasharray: 4 12;
    stroke-dashoffset: 0;
}

.timeline-container.is-visible .timeline-line-svg path {
    animation: move-dashes 2.5s linear infinite;
}

.timeline-item {
    position: relative;
    /* AANGEPAST: Nog breder voor een gedurfde overlap */
    width: 60%; 
    padding: 0 50px; /* Meer padding voor de grotere ruimte */
    margin-bottom: 50px;
    opacity: 0.5; /* NIEUW: Maak inactieve items subtieler */
    transition: opacity 0.4s ease, transform 0.4s ease; /* NIEUW: Transitie voor de actieve staat */
}

/* Items aan de rechterkant */
.timeline-item:nth-child(even) {
    left: 40%; 
    text-align: left;
}

/* Items aan de linkerkant */
.timeline-item:nth-child(odd) {
    text-align: right;
}

/* DE NIEUWE ACTIEVE STAAT */
.timeline-item.is-active {
    opacity: 1;
    transform: scale(1.02); /* Maakt het actieve item iets groter */
}
.timeline-item.is-active .timeline-content {
    border-color: var(--accent);
    box-shadow: 0 0 30px var(--accent-glow);
}
.timeline-item.is-active .timeline-dot {
    transform: scale(1.3);
    box-shadow: 0 0 15px var(--accent-glow);
}


/* De rest van de styling blijft grotendeels hetzelfde */
.timeline-dot {
    position: absolute;
    top: 15px;
    width: 18px;
    height: 18px;
    background: var(--surface);
    border: 3px solid var(--accent);
    border-radius: 50%;
    z-index: 5;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.timeline-item:nth-child(odd) .timeline-dot { right: -9px; }
.timeline-item:nth-child(even) .timeline-dot { left: -9px; }

.timeline-content {
    background: var(--surface);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 2rem;
    position: relative;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}


/* Responsive Tijdlijn (Mobiel) */
@media (max-width: 768px) {
    .experience-timeline { padding: 0; }
    .timeline-line-svg { left: 10px; transform: none; }
    .timeline-item, .timeline-item:nth-child(even) {
        width: 100%;
        left: 0;
        text-align: left;
        padding-left: 40px;
        padding-right: 0;
    }
    .timeline-item {
        opacity: 1; /* Op mobiel zijn alle items altijd volledig zichtbaar */
    }
    .timeline-item.is-active {
        transform: scale(1); /* Geen schaal-effect op mobiel */
    }
    /* ... de rest van de media query voor de tijdlijn blijft ongewijzigd ... */
}
/* --- Hamburger Menu & Mobiele Navigatie --- */

.hamburger-menu-button {
    position: fixed;
    top: 2rem;
    right: 1.5rem;
    z-index: 2001; /* Ligt boven ALLES, behalve de popup */
    width: 40px;
    height: 40px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: none; /* Standaard verborgen op desktop */
    padding: 0;
}

.hamburger-menu-button span {
    display: block;
    width: 28px;
    height: 3px;
    background-color: var(--primary-text);
    border-radius: 3px;
    margin: 5px auto;
    transition: all 0.3s ease-in-out;
}

/* Animatie van de hamburger naar 'X' */
.hamburger-menu-button.is-active span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}
.hamburger-menu-button.is-active span:nth-child(2) {
    opacity: 0;
}
.hamburger-menu-button.is-active span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

/* De fullscreen overlay */
.mobile-nav-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1500; /* Ligt boven de content, onder de knop */
    
    /* De 'glassmorphism' achtergrond */
    background: rgba(5, 8, 7, 0.85); /* --background met transparantie */
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    
    display: flex;
    justify-content: center;
    align-items: center;

    /* Start buiten beeld */
    opacity: 0;
    pointer-events: none;
    transform: translateY(-100%);
    transition: transform 0.5s cubic-bezier(0.65, 0, 0.35, 1), opacity 0.5s ease;
}

.mobile-nav-overlay.is-open {
    transform: translateY(0);
    opacity: 1;
    pointer-events: all;
}

.mobile-nav ul {
    list-style: none;
    padding: 0;
    text-align: center;
}

.mobile-nav li {
    margin: 1.5rem 0;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.4s ease, transform 0.4s ease;
}

/* Animatie voor de menu-items */
.mobile-nav-overlay.is-open .mobile-nav li {
    opacity: 1;
    transform: translateY(0);
}
/* Staggered (verspringende) animatie delay */
.mobile-nav-overlay.is-open .mobile-nav li:nth-child(1) { transition-delay: 0.2s; }
.mobile-nav-overlay.is-open .mobile-nav li:nth-child(2) { transition-delay: 0.25s; }
.mobile-nav-overlay.is-open .mobile-nav li:nth-child(3) { transition-delay: 0.3s; }
.mobile-nav-overlay.is-open .mobile-nav li:nth-child(4) { transition-delay: 0.35s; }
.mobile-nav-overlay.is-open .mobile-nav li:nth-child(5) { transition-delay: 0.4s; }

.mobile-nav a {
    color: var(--primary-text);
    text-decoration: none;
    font-size: 2rem; /* Groot en duidelijk */
    font-weight: 700;
    padding: 0.5rem 1rem;
    transition: color 0.3s ease;
}

.mobile-nav a:hover {
    color: var(--accent);
}
/* ============================================= */
/* --- MOBIEL & TABLET RESPONSIVE STIJLEN ---      */
/* ============================================= */
@media (max-width: 768px) {
    /* --- Globale aanpassingen --- */
    h2 {
        font-size: 2.5rem; /* Iets groter dan voorheen, voor impact */
    }
    .content-section {
        /* Minder verticale padding op mobiel */
        padding: 5rem 1.5rem;
    }

    /* --- Navigatie: Verberg desktop nav, toon hamburger --- */
    .glass-nav, .site-logo {
        display: none; /* Verberg desktop nav en logo compleet */
    }
    .hamburger-menu-button {
        display: block; /* Toon de hamburger knop */
        top: 1.5rem;
        right: 1.5rem;
    }

    /* --- Hero sectie --- */
    .hero-title {
        /* De clamp() functie werkt al goed, geen aanpassing nodig */
        line-height: 1.2;
    }
    .hero-subtitle {
        font-size: 1.1rem;
        max-width: 90%; /* Zorg dat het niet te breed wordt */
    }

    /* --- Over Mij Sectie: Stapel de content --- */
    .about-content {
        flex-direction: column; /* Stapel foto boven tekst */
        text-align: center;     /* Centreer de tekstblokken */
        gap: 2.5rem;
    }
    .word-spinner-container {
        justify-content: center; /* Centreer de "Ik maak:" spinner */
    }
    .noteworthy-list {
        text-align: left; /* Hou de opsomming links uitgelijnd */
        align-self: flex-start; /* Lijn de lijst links uit binnen de flex-container */
        width: 100%;
    }

    /* --- Werk & Talenten Secties --- */
    .work-cards-grid, .talent-constellations-grid {
        gap: 1.5rem; /* Iets minder ruimte tussen de kaarten */
    }
    
    /* --- Footer: Vereenvoudig social icons --- */
    .footer-socials {
        padding-top: 2rem; /* Verwijder de grote ruimte voor de tooltips */
        margin-top: 0;
        gap: 1.5rem; /* Iets minder ruimte tussen iconen */
    }
    .tooltip, .icon .text {
        display: none; /* Verberg de hover-tooltips en tekst compleet */
    }
    .footer-socials .icon .layer {
        width: 60px; /* Maak de tap-targets groter */
        height: 60px;
    }
    
    /* --- Popup Modal --- */
    .popup-content {
        width: 95%;
        padding: 2rem 1.5rem;
    }
    .popup-content-grid {
        grid-template-columns: 1fr; /* Zorg dat popup projecten altijd onder elkaar staan */
    }

    /* --- Tijdlijn: Converteer naar enkele kolom (BELANGRIJK!) --- */
    .experience-timeline {
        padding: 0;
        max-width: 100%; /* Gebruik volledige breedte */
    }
    .timeline-line-svg {
        /* Verplaats de centrale lijn naar links */
        left: 20px;
        transform: none;
    }
    
    /* Pas ALLE tijdlijn items aan, negeer even/oneven logica */
    .timeline-item, 
    .timeline-item:nth-child(even) {
        width: 100%;
        left: 0;
        text-align: left !important; /* Forceer links uitlijnen */
        padding-left: 50px;      /* Ruimte voor de lijn en de stip */
        padding-right: 15px;
    }
    
    /* Zet alle stippen op de nieuwe lijn-positie */
    .timeline-item .timeline-dot,
    .timeline-item:nth-child(odd) .timeline-dot, 
    .timeline-item:nth-child(even) .timeline-dot {
        left: 11px; /* (20px van lijn) - (18px/2 van stip) = 11px */
    }
    
    /* Pas alle pijltjes aan om naar links te wijzen */
    .timeline-item .timeline-content::before,
    .timeline-item:nth-child(odd) .timeline-content::before,
    .timeline-item:nth-child(even) .timeline-content::before {
        left: -10px;
        right: auto;
        border-width: 10px 10px 10px 0;
        border-color: transparent rgba(255, 255, 255, 0.08) transparent transparent;
    }
    
    /* Forceer de skills-lijst om correct uit te lijnen */
    .timeline-item:nth-child(odd) .timeline-skills {
        text-align: left;
    }
    .timeline-item:nth-child(odd) .timeline-skills li {
        padding-left: 1.25rem;
        padding-right: 0;
    }
    .timeline-item:nth-child(odd) .timeline-skills li::before {
        left: 0;
        right: auto;
    }
    
    /* Verwijder de "actieve" schaal-animatie op mobiel, het kan schokkerig zijn */
    .timeline-item.is-active {
        transform: scale(1);
    }
    .timeline-item.is-active .timeline-content {
        /* Hou wel de visuele feedback */
        border-color: var(--accent);
        box-shadow: none; /* Verwijder de gloed voor betere performance */
    }
}