:root{
  --logo-h: 150px;     /* hoogte hero/header */
  --lamp-w: 200px;     /* breedte lamp */
  --lamp-right: 25px;  /* marge rechts tot rand */
  --beam-l: 60vw;      /* lengte beam */
  --beam-h: 100px;     /* hoogte beam */
  --beam-gap: -35px;    /* ruimte tussen lens en beam */
  --beam-opacity: 0.9; /* startintensiteit */
}

body.fade-out {
  opacity: 0;
  transition: opacity 0.4s ease;
}
@media (max-width: 1024px){
  :root{
    --logo-h: 150px;
    --lamp-w: 160px;
    --beam-l: 50vw;
    --beam-h: 82px;
    --beam-gap: -27px
  }
}
@media (max-width: 700px){
  :root{
    --logo-h: 110px;
    --lamp-w: 140px;
    --lamp-right: 12px;
    --beam-l: 48vw;     /* relatief aan viewport → past zich aan */
    --beam-h: 75px;
    --beam-gap: -25px;
    --beam-opacity: 0.8;
  }
}
@media (max-width: 420px){
  :root{
    --logo-h: 80px;
    --lamp-w: 132px;
    --beam-l: 30vw;
    --beam-h: 50px;
    --beam-gap: -20px;
  }
}
html, body{
  overflow-x: hidden;
  margin: 0;
  display: flex;
  flex-direction: column;
  height: 100%;
}
main{
  flex: 1;
}
header{
    position: relative;
    color: #111;
    background: white;
}
body {
  background-color: white;
  color: #222;
  font-family: 'Roboto', sans-serif;
  line-height: 1.6;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
}
body.dark {
  background: #121212;
  color: #e0e0e0; /* zacht lichtgrijs i.p.v. fel wit */
}
body p {
  color: black;
}
body.dark p {
  color: #e0e0e0;
}
body.dark header {
  background: #121212;
}
body.dark nav a,
body.dark nav a:visited {
  color: #fff;         /* links in nav wit in dark mode */
}
body.dark .line1 {
  color: white;
}
body.dark .line2 {
  color: white;
}
body.dark .logo{
    background: #121212;
    border-color: #333;
}
body.dark .beam {
  background: linear-gradient(
    to left,
    rgba(255,255,255,var(--beam-opacity)) 0%,  /* fel wit bij lamp */
    rgba(255,255,255,.45) 35%,
    rgba(255,255,255,.15) 70%,
    rgba(255,255,255,0) 100%
  );
  
  -webkit-mask-image: linear-gradient(to bottom,
    rgba(0,0,0,0) 0%,
    rgba(0,0,0,1) 20%,
    rgba(0,0,0,1) 80%,
    rgba(0,0,0,0) 100%);
    
  mask-image: linear-gradient(to bottom,
    rgba(0,0,0,0) 0%,
    rgba(0,0,0,1) 20%,
    rgba(0,0,0,1) 80%,
    rgba(0,0,0,0) 100%);
    
  filter: blur(.3px);
}
body.dark .lamp {
  filter: drop-shadow(0 0 2px white)
          drop-shadow(0 0 6px white);
}

nav {
  background: black;
  padding: 10px 14px;
  position: sticky;
  top: 0%;
  display:flex; 
  align-items:center;
  justify-content: center;  /* centreren */
  gap: clamp(12px, 3vw, 40px); /* automatische ruimte tussen links */
  flex-wrap: wrap; /* zodat ze niet uit beeld gaan op kleine schermen */
}
nav a {
  color: white;
  margin-right: 5px;
  text-decoration: none;
        /* voeg deze toe */
      /* nodig voor ::before / ::after */
}
nav a::before{
  content:"";
  position:absolute; inset:0;
  border-radius:6px;
  background: radial-gradient(120% 120% at 30% 50%,
              rgba(255,255,255,.18) 0%,
              rgba(255,255,255,.10) 35%,
              rgba(255,255,255,0) 70%);
  opacity:0; transition:opacity .2s ease;
  pointer-events:none;
}
nav a:hover::before{ opacity:1; }
nav a:hover {
  background: rgba(255,255,255,0.1);
  border-radius: 4px;
  text-shadow: 0 0 6px rgba(255,255,255,0.8);
  transition: color .2s ease;
  position: relative;
  padding: 2px;
}
nav a::after{
  content:"";
  position:absolute; 
  left:10px; 
  right:10px; 
  bottom:-6px;
  height:2px; 
  background:#fff; 
  transform:scaleX(0);
  transform-origin:left; 
  transition:transform .25s ease;
  pointer-events: none;
}
nav a.active::after{ 
transform:scaleX(1);
content:"";
position:absolute;
left:10px; 
right:10px; 
bottom:-6px;
height:2px; 
background:#fff;
}

.logo {
  position: relative;
  width: 100%;
  height: 180px;
  background: white;
  margin-left: auto;
  margin-top: 0;
  overflow: hidden;
}

.lamp {
  position: absolute;
  right: var(--lamp-right);   /* afstand van de rechterkant */
  top: 50%;      /* verticaal centreren */
  transform: translateY(-50%);
  width: var(--lamp-w);   /* schaal → kleiner maken */
  height: auto;
  z-index: 2;
}

.beam {
  position: absolute;
  right: calc(var(--lamp-w) + var(--lamp-right) + var(--beam-gap));    /* vanaf lamp-lens (lampbreedte + marge) */
  top: 50%;
  transform: translateY(-50%);
  width: var(--beam-l);    /* lengte van de straal */
  height: var(--beam-h);   /* breedte van de straal */
  
  /* Driehoekvorm */
  clip-path: polygon(100% 30%, 0 0, 0 100%, 100% 70%);
  
  /* Fade van zwart (bij lamp) naar transparant/wit */
  background: linear-gradient(
    to left,
    rgba(0, 0, 0, 0.9) 0%,   /* bijna zwart bij lamp */
    rgba(0, 0, 0, 0.0) 100%  /* transparant (wit achtergrond zichtbaar) */
  );
  
  z-index: 1; /* achter de lamp */
  pointer-events: none; /* niet klikbaar */

  -webkit-mask-image: linear-gradient(to bottom,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,1) 20%,
      rgba(0,0,0,1) 80%,
      rgba(0,0,0,0) 100%);
  mask-image: linear-gradient(to bottom,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,1) 20%,
      rgba(0,0,0,1) 80%,
      rgba(0,0,0,0) 100%);
      background: linear-gradient(to left,
     rgba(0,0,0,var(--beam-opacity)) 0%,
     rgba(0,0,0,.45) 35%,
     rgba(0,0,0,.15) 70%,
     rgba(0,0,0,0) 100%);
    filter: blur(.3px);
}

.title {
  position: absolute;
  left: 450px;              /* afstand van linkerrand, schuif mee tot je precies in de beam zit */
  top: 50%;
  transform: translateY(-50%);
  color: #111;             /* donkere tekst → contrasteert met het lichte einde van de beam */
  font-family: 'Roboto', sans-serif;
  text-align: left;
  line-height: 1.1;
}
@media (max-width: 1280px){
  .title{ left: 200px; }
}
@media (max-width: 1024px){
  .title{ left: 150px; }
}
@media (max-width: 700px){
  .title{ left: 30px; }
}
@media (max-width: 420px){
  .title{ left: 16px; }
}

.title .line1 {
  font-size: clamp(20px, 5vw, 44px);;
  font-weight: 1000;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.title .line2 {
  font-size: clamp(16px, 4vw, 32px);;
  font-weight: 700;
  color: #333;
}

.title .shadow {
  position: absolute;
  bottom: -10px;       /* onder de tekst */
  left: 0;
  width: 100%;
  height: 20px;
  background: linear-gradient(to right,
    rgba(0,0,0,0.4),
    rgba(0,0,0,0)
  );
  transform: perspective(200px) rotateX(60deg); /* 'vloer' effect */
  transform-origin: top;
  filter: blur(6px);   /* maakt de schaduw realistischer */
}

  body.dark .title .shadow {
  background: linear-gradient(to right,
    rgba(255,255,255,0.4),
    rgba(255,255,255,0)
  );
}

.banner{
    padding: 0;
    overflow: hidden;
    width: 100%;
    text-align: center;
    height: 400px;
    margin: 0%;
  }
.banner img{
  transform: translate(-50%, calc(-50% + var(--py)));
  max-width: 100%;
  min-height: 100%;
  object-fit: contain;
  display: block;
  height: auto;
  width: 100%;
}
@media (max-width: 767px) {
  .banner {
    height: 25vh; /* of experimenteer met 45vh, 60vh... */
  }
  .banner img {
    width: 100%;
    height: 100%; /* Belangrijk! */
    object-fit: cover;
    object-position: center top;
    transform: none !important;
    position: relative;
    left: 0;
    top: 0;
    display: block;
    overflow: hidden;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .banner {
    height: 30vh; /* wat ruimer */
  }
  .banner img {
    width: 100%;
    height: 100%; /* Belangrijk! */
    object-fit: cover;
    object-position: center top;
    transform: none !important;
    position: relative;
    left: 0;
    top: 0;
    display: block;
    overflow: hidden;
  }
}
@media (min-width: 1024px) and (max-width: 1439px) {
  .banner {
    height: 30vh; /* cinematic */
    max-height: 300px;
  }
  .bannerpicture,
  .banner img {
    width: 100%;
    height: 100%; /* Belangrijk! */
    object-fit: cover;
    object-position: center;
    transform: none !important;
    position: relative;
    left: 0;
    top: 0;
    display: block;
    overflow: hidden;
  }   
}
@media (min-width: 1440px) {
  .banner {
    height: 40vh; /* meer impact */
    max-height: 350px;

  }
  .banner img {
    width: 100%;
    height: 100%; /* Belangrijk! */
    object-fit: cover;
    object-position: center;
    transform: none !important;
    position: relative;
    left: 0;
    top: 0;
    display: block;
    overflow: hidden;
  }   
}
@media (min-width: 2560px) {
  .banner {
    height: 45vh; /* meer impact */
    max-height: 400px;

  }
  .banner img {
    width: 100%;
    height: 100%; /* Belangrijk! */
    object-fit: cover;
    object-position: center;
    transform: none !important;
    position: relative;
    left: 0;
    top: 0;
    display: block;
    overflow: hidden;
  }   
}
.banner.tsunami img {
    object-position: center bottom; /* tsunami verschuift naar beneden */
}
.banner.blackout img{
  object-position: center center;
}

.alinea{
  display: flex;
  justify-content: center;
  text-align: center;
}
.alinea-content{
  max-width: 700px; /* zodat de tekst niet te breed wordt */
}
.alinea h2{
  margin-bottom: 12px;
  font-size: 1.8rem;
}
p {
  font-size: clamp(14px, 2vw, 18px);   /* 14px op klein, max 18px op groot */
  line-height: clamp(20px, 3vw, 28px); /* 1.4–1.6x font-size voor leesbaarheid */
  margin-bottom: 1em;                  /* ruimte tussen paragrafen */
  font-family: 'Roboto', sans-serif;
  max-width: 700px;
}

.tips{
  background-color: #222;   /* of iets lichter dan je achtergrond */
  border-left: 4px solid #ffcc00; /* survival-achtige accentkleur */
  padding: 10px 15px;
  margin-top: 15px;
  font-style: italic;
  color: #ddd;
  border-radius: 6px;
}

.dyk {
  border-left: 4px solid #00aaff;     /* blauw accent */
  background: rgba(0, 170, 255, 0.05); /* subtiele blauwe gloed */
  padding: 16px;
  margin: 30px 0;
  border-radius: 6px;
}

.dyk h3 {
  margin-top: 0;
  color: #00aaff;   /* titel springt eruit */
}

.dyk p {
  margin: 8px 0 0;
  line-height: 1.6;
}

section{
  margin: 10px;
  padding-top: 10px;
  padding-bottom: 10px;
}

.fade-in {
  opacity: 0;
  transform: translateY(20px); /* zacht van onder */
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

.footer {
  background: #111;
  color: #fff;
  padding: 20px;
  margin-top: 40px;
}

.footer-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  color: #fff;
}

.footer-nav {
  display: flex;
  gap: 16px;
  background-color: #111;
}

.footer-nav a {
  color: #fff;
  text-decoration: none;
  font-size: 0.9rem;
  background-color: #111;
}

.footer-nav a:hover {
  text-decoration: underline;
}
#copyright{
    color: #e0e0e0;
}
/* Dark mode (blijft donker, dus je hoeft niet veel aan te passen) */
body.dark .footer {
  background: black;
  color: #e0e0e0;
}
body.dark .footer-nav{
  background-color: black;
}
body.dark .footer-nav a{
  background-color: black;
}

.what-if {
  text-align: center;
  padding: 50px 20px;
  background: #111;
  color: #eee;
  border-radius: 8px;
  box-shadow: 0 0 30px rgba(255, 255, 255, 0.15);
  transition: box-shadow 0.3s ease;
  margin-top: 4rem;
  margin-bottom: 4rem;
  animation: glowFade 4s infinite;
  max-width: 90vw; /* mobiel */
}

@keyframes glowFade {
  0% { box-shadow: 0 0 20px rgba(255,255,255,0.1); }
  50% { box-shadow: 0 0 40px rgba(255,255,255,0.3); }
  100% { box-shadow: 0 0 20px rgba(255,255,255,0.1); }
}

@media (min-width: 768px) {
  .what-if {
    max-width: 700px;
    margin: 0 auto;
  }
}
.what-if:hover {
  box-shadow: 0 0 40px rgba(255, 255, 255, 0.3);
}
.what-if h2 {
  font-size: 2rem;
  margin-top: 10px;
  margin-bottom: 10px;
  padding-top: 5px;
  text-shadow: 0 0 4px rgba(255, 255, 255, 0.4);
}
.what-if p {
  font-size: 1.2rem;
  font-style: italic;
  color: #ccc;
  padding-top: 10px;
  text-shadow: 0 0 2px rgba(255, 255, 255, 0.2);
  text-align: center;
  margin: 0 auto;
  max-width: 600px;
}

#randomQuestion{
    text-align: center;
    margin: 0 auto;
    max-width: 600px;
}
body.dark .what-if {
  background: #000;
  color: #fff;
}
body.dark .what-if p {
  color: #bbb;
}

#randomQuestion::after {
  content: "|";
  animation: blink 1s infinite;
}

@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}

#particles {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 0;
}
.particle {
  position: absolute;
  background: rgba(0, 0, 0, 0.7); /* standaard lichte stofjes */
  border-radius: 50%;
  animation: fall linear infinite;
  box-shadow: 0 0 4px rgba(0,0,0,0.2);
}

@keyframes fall {
  from {
    transform: translateY(-100vh) translateX(0) scale(1);
    opacity: 0.6;
  }
  to {
    transform: translateY(100vh) translateX(20px) scale(0.5);
    opacity: 0;
  }
}

/* Dark mode stofjes */
body.dark #particles .particle {
  background: rgba(255, 255, 255, 0.5); /* feller wit */
  box-shadow: 0 0 8px rgba(255,255,255,0.4); /* meer gloed */
}

.cookie-banner {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: #111;
  color: #eee;
  border-top: 1px solid #333;
  padding: 14px 16px;
  display: none; /* Belangrijk! standaard verborgen */
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  z-index: 9999;
}

.cookie-banner a {
  color: #9fd3ff;
  text-decoration: underline;
}

.cookie-banner { 
  background: #111;
  color: #eee;
}

.cookie-banner p { 
  color: #eee;        /* overschrijft body p */
  margin: 0;
}

.cookie-actions {
  display: flex;
  gap: 8px;
}

.cbtn {
  background: #2a7bf6;
  color: #fff;
  border: none;
  padding: 8px 12px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.9rem;
  text-shadow: 0 1px 2px rgba(0,0,0,0.6);
}
.cbtn.ghost {
  background: transparent;
  border: 1px solid #555;
}