/* Selected Fonts */
  @font-face {
    font-family: 'IBMPlexMono_Regular';
    src: url(assets/fonts/IBMPlexMono-Regular.woff2) format('woff2');
  }

  @font-face {
    font-family: 'IBMPlexMono_Italic';
    src: url(assets/fonts/IBMPlexMono-Italic.woff2) format('woff2');
  }

  @font-face {
    font-family: 'Thonburi_Regular';
    src: url(assets/fonts/SF_Thonburi_Regular.woff2) format('woff2');
  }

  @font-face {
    font-family: 'Thonburi_Semibold';
    src: url(assets/fonts/SF_Thonburi_Semibold.woff2) format('woff2');
  }

/* Allgemein */
html, body {
  margin: 0;
  padding: 0;
  height: 100%;
}

.simulationContainer {
  width: 100vw;
  height: 100vh;
  overflow: hidden;
}

canvas {
  display: block;
}

/* Navbar */
nav {
  position: absolute;
  top: 2vh;
  width: 100%;
  display: flex;
  justify-content: space-between;
  padding-left: 2vw;
  padding-right: 2vw;
  box-sizing: border-box;
}

.container_icon_buttons {
  display: flex;
  gap: 1vw;
}

.container_schrift_buttons {
  display: flex;
  gap: 1vw;
}

.container_icon_buttons button {
  width: 76px;
}

.container_icon_buttons.green button {
  background-color: #DEFF7A;
}

.container_icon_buttons.pink button {
  background-color: #FF83CD;
}

.container_icon_buttons.blue button {
  background-color: #569CC2;
}

.container_schrift_buttons button {
  width: 190px;
}

.container_icon_buttons button:hover {
  background-color: black;
}

.container_icon_buttons button:hover img {
  filter: brightness(0) invert(1);
}

button {
  height: 56px;
  border-radius: 42px;
  border-style: solid;
  border-width: 2px;
  border-color: black;
}

button:hover {
  cursor: pointer;
}

button p {
  margin: 0;
  padding: 0;
  font-family: 'Thonburi_Regular';
  font-size: 24px;
}

.button_home {
  display: flex;
  justify-content: center;
  align-items: center;
}

.button_screenshot img {
  margin-top: 4px;
}

.button_predator,
.button_obstacle {
  background-color: #DEFF7A;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* Aktive Buttons (Predator + Obstacle) */
.button_predator.active,
.button_obstacle.active {
  background-color: black;
}

.button_predator.active .button_text,
.button_obstacle.active .button_text {
  color: white;
  font-family: 'IBMPlexMono_Italic', monospace;
}

/* Theme-Farben nur für inaktive Buttons */
.button_predator:not(.active).green,
.button_obstacle:not(.active).green {
  background-color: #DEFF7A;
}

.button_predator:not(.active).pink,
.button_obstacle:not(.active).pink {
  background-color: #FF83CD;
}

.button_predator:not(.active).blue,
.button_obstacle:not(.active).blue {
  background-color: #569CC2;
}

/* Swarm dropdown */
.button_swarm_container {
  border-radius: 42px;
  border-style: solid;
  border-width: 2px;
}

.button_swarm_container.green {
  background-color: #DEFF7A;
}

.button_swarm_container.pink {
  background-color: #FF83CD;
}

.button_swarm_container.blue {
  background-color: #569CC2;
}

.button_swarm {
  display: flex;
  justify-content: space-around;
  align-items: center;
  padding: 0;
  border-style: none;
  background-color: rgba(255, 255, 255, 0);
}

.button_swarm_content {
  width: 190px;
  display: flex;
  justify-content: center;
  gap: 11px;
  padding: 5px 0 20px 0;
}

.button_swarm_content ul {
  width: 38px;
  height: 38px;
  border-radius: 50px;
  margin: 0;
  padding: 0;
}


/* Aktiver Swarm-Modus */
.menu_green.active,
.menu_pink.active,
.menu_blue.active {
  border: 2px solid black;
  outline: 2px solid white;
  outline-offset: -4px;
}

/* Nicht-aktive Kreise */
.menu_green:not(.active),
.menu_pink:not(.active),
.menu_blue:not(.active) {
  border: 2px solid black;
  transition: filter 0.2s, transform 0.2s;
}

/* Hover Effekt Kreise */
.menu_green:not(.active):hover,
.menu_pink:not(.active):hover,
.menu_blue:not(.active):hover {
  outline: 2px solid white;
  outline-offset: -4px;
  transform: scale(1.05);
}

/* Tooltips nur bei Hover sichtbar */
.button_predator .tooltip,
.button_obstacle .tooltip {
  display: none;
  position: absolute;
  top: 70px;
  width: 190px;
  justify-content: center;
  gap: 10px;
  background-color: black;
  padding: 20px 5px 20px 5px;
  border-radius: 42px;
}

/* Tooltip sichtbar bei Hover */
.button_predator:not(.active):hover .tooltip,
.button_obstacle:not(.active):hover .tooltip {
  display: flex;
}

/* Tooltip Text: Dein eigenes Styling */
.tooltip p {
  font-family: 'Thonburi_Regular', sans-serif; /* gewünschtes Font */
  font-size: 16px; /* vorherige Größe */
  color: white;
  margin: 0;
}

.tooltip img.tooltip-icon {
  margin-right: 8px;
}

/* Swarm Arrow Rotation */
.button_swarm img {
  transition: transform 0.25s ease;
}

.button_swarm_container.open .button_swarm img {
  transform: rotate(180deg);
}





/* INFOBEREICH */
  /* Zahlen Slider ausblenden */
  #alignmentValue,
  #separationValue,
  #cohesionValue{
    display: none;
  }



  .infoContainer {
    position: absolute;
    bottom: 0;

    display: flex;
    width: 100%;

    align-items: flex-end;     /* ⬅️ wichtig */
  }


  .infoRules {
    padding: 3vw 3vw 0.5vw 3vw;
    outline: 2px solid black;
    outline-offset: -2px;
    width: 33.33%;

    background-color: white;


    max-height: 120px;      /* Höhe control-group */
    overflow: hidden;
    transition: max-height 0.4s ease;
  }


  .infoRules.open {
    max-height: 65vh; /* groß genug für den Content */
  }

  .infoMedia {
    display: block;

    height: 53vh;       /* maximal sichtbare Höhe für den Text + Bild */
    overflow-y: auto;       /* Scrollen, wenn Inhalt größer */
    padding-right: 10px;    /* optional, damit Scrollbar nicht am Text klebt */

    transition: margin-top 0.3s ease; /* bleibt für den Pfeil-Abstand */
  }





  label{
    display: flex;
    justify-content: space-between;
    padding-bottom: 20px;
  }


  .infoMedia img{
    display: block;
    margin-left: auto;
    margin-right: auto;
    width: 80%;      /*<- falls Bild mit scalieren soll*/

    padding-bottom: 2vh;
  }

  label p{
    font-family: 'IBMPlexMono_Italic';
    font-size: 32px;
  }

  .infoMedia p{
    font-family: 'Thonburi_Regular';
    font-size: 20px;

    margin-left: auto;
    margin-right: auto;

    width: 80%;
  }

  /* Pfeil Default (zugeklappt) */
  .infoRules label img {
    transition: transform 0.3s ease;
    transform: rotate(0deg); /* Pfeil nach oben */
  }

  /* Pfeil offen */
  .infoRules.open label img {
    transform: rotate(180deg); /* Pfeil nach unten */
  }

  .infoRules label {
    cursor: pointer;
    padding-bottom: 0;
  }

  /* Standard: geschlossener Zustand */
  .infoRules:not(.open) .infoMedia {
    margin-top: 20px; /* Abstand nur wenn zugeklappt */
  }

  /* Offen: kein Abstand nötig */
  .infoRules.open .infoMedia {
    margin-top: 0;
  }

  .control-group{
    margin-left: auto;
    margin-right: auto;

    width: 80%;
  }

  /* scrollbar */
  .infoMedia::-webkit-scrollbar {
    width: 4px;
  }

  .infoMedia::-webkit-scrollbar-thumb {
    background-color: rgb(0, 0, 0);
    border-radius: 4px;
  }

  .infoMedia::-webkit-scrollbar-track {
    background: transparent;
  }

 /* Grundstyle für alle Slider */
  input[type=range] {
    appearance: none; /* Chrome, Safari */
    width: 100%;
    height: 4px;              /* Track-Höhe */
    background: transparent;   /* Track transparent */
    border-radius: 4px;
    outline: none;
    margin: 0 0 10px 0;
  }

  /* Chrome / Safari Track */
  input[type=range]::-webkit-slider-runnable-track {
    width: 100%;
    height: 4px;
    background: black;
    border-radius: 4px;
  }

  /* Chrome / Safari Thumb */
  input[type=range]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 22px;             /* Größe des Griffs */
    height: 22px;
    background: black;
    border-radius: 50%;      /* Kugel */
    cursor: pointer;
    margin-top: -10px;        /* Zentriert den Thumb auf dem Track */
    transition: transform 0.2s ease;
  }

  input[type=range]::-webkit-slider-thumb:hover {
    transform: scale(1.2);
  }

  /* Firefox Track */
  input[type=range]::-moz-range-track {
    width: 100%;
    height: 4px;
    background: black;
    border-radius: 4px;
  }

  /* Firefox Thumb */
  input[type=range]::-moz-range-thumb {
    width: 16px;
    height: 16px;
    background: black;
    border-radius: 50%;
    cursor: pointer;
    transition: transform 0.2s ease;
  }

  input[type=range]::-moz-range-thumb:hover {
    transform: scale(1.2);
  }

  /* Edge / IE */
  input[type=range]::-ms-track {
    width: 100%;
    height: 4px;
    background: transparent;
    border-color: transparent;
    color: transparent;
  }

  input[type=range]::-ms-fill-lower {
    background: black;
    border-radius: 4px;
  }

  input[type=range]::-ms-fill-upper {
    background: black;
    border-radius: 4px;
  }

  input[type=range]::-ms-thumb {
    width: 16px;
    height: 16px;
    background: black;
    border-radius: 50%;
    cursor: pointer;
  }


