@font-face {
  font-family: 'Fuchs';
  src: url('../fonts/Fuchs-Light.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Fuchs';
  src: url('../fonts/Fuchs-LightItalic.woff2') format('woff2');
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Fuchs';
  src: url('../fonts/Fuchs-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Fuchs';
  src: url('../fonts/Fuchs-RegularItalic.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Fuchs';
  src: url('../fonts/Fuchs-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Fuchs';
  src: url('../fonts/Fuchs-Black.woff2') format('woff2');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

:root {
  --gelb: #ffef00;
  --violett: #150a37;
  --violett-tief: #0e0626;
  --magenta: #ce1f81;
  --magenta-hell: #d02082;
  --rot: #e6082e;

  --grau: #e2e8ec;

  --schwarz: #12121a;

  --seite: min(1920px, 100%);
  --luft: clamp(1rem, 8.41vw - 1.1rem, 9rem);
  --block: clamp(2.5rem, 7vw, 5.5rem);

  --radius: clamp(.9rem, 3vw, 1.5rem);
  --tap: 2.75rem;

  --t-body: clamp(1.0625rem, .855rem + .85vw, 1.875rem);

  --t-lead: clamp(1.1875rem, .933rem + 1.05vw, 2.1875rem);

  --t-h2: clamp(1.375rem, 1.168rem + .85vw, 2.1875rem);

  --t-h3: clamp(1.3125rem, 1.011rem + 1.24vw, 2.494rem);

  --t-small: clamp(.875rem, .66rem + .88vw, 1.719rem);

  --t-marke: clamp(1.25rem, .315rem + 3.84vw, 4.919rem);

  --ease: cubic-bezier(.22, 1, .36, 1);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}

body {
  margin: 0;
  font-family: 'Fuchs', 'Helvetica Neue', Arial, sans-serif;
  font-weight: 400;
  font-size: var(--t-body);
  line-height: 1.45;
  color: var(--gelb);
  background: var(--violett);
  overflow-x: hidden;
}

body.is-locked {
  overflow: hidden;
}

img,
svg {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
}

button {
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  cursor: pointer;
}

:where(a, button, [tabindex]):focus-visible {
  outline: 3px solid var(--magenta);
  outline-offset: 3px;
  border-radius: 4px;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.wrap {
  width: var(--seite);
  margin-inline: auto;
  padding-inline: var(--luft);
}

.kopf {
  background: var(--gelb);

  padding: clamp(.678rem, .404rem + 1.168vw, 1.806rem) var(--luft);
  display: flex;
  justify-content: center;
}

.kopf a {
  display: flex;
  align-items: center;
  min-width: 0;
  text-decoration: none;
}

.kopf__logo {
  display: block;
  height: auto;
  width: calc(var(--t-marke) * 8.599);
  max-width: 100%;
}

.hero {
  background: var(--violett) url('../prototype-img/bg-chevron.jpg') center / cover;
  padding: clamp(2rem, 8vw, 4.5rem) var(--luft) clamp(1.5rem, 5vw, 3rem);
  text-align: center;
}

.hero__titel {
  width: min(100%, 80rem);
  margin-inline: auto;
}

.hero__powered {
  font-weight: 300;
  font-size: var(--t-small);
  margin: clamp(.4rem, 1.5vw, .9rem) 0 0;
}

.kacheln {
  list-style: none;
  margin: clamp(1.5rem, 5vw, 2.5rem) 0 0;
  margin-bottom: 70px;
  padding: 0;
  display: grid;
  gap: clamp(1.6rem, 5vw, 2.4rem);
}

@media (min-width: 600px) {
  .kacheln {
    grid-template-columns: repeat(4, 3fr);
  }

  .kacheln>li {
    grid-column: span 2;
  }

  .kacheln>li:nth-child(5) {
    grid-column: 2 / span 2;
  }
}

@media (min-width: 1100px) {
  .kacheln {
    grid-template-columns: repeat(6, 1fr);
  }

  .kacheln>li {
    grid-column: span 2;
  }

  .kacheln>li:nth-child(4) {
    grid-column: 2 / span 2;
  }

  .kacheln>li:nth-child(5) {
    grid-column: 4 / span 2;
  }
}

.kachel {
  position: relative;
  display: block;
  width: 100%;
  text-align: left;
  container-type: inline-size;
  transition: transform .35s var(--ease);
}

.kachel__rahmen {
  position: relative;
  display: block;
  border: 3px solid var(--gelb);
  border-radius: var(--radius);
  overflow: hidden;
  background: #000;
  transition: box-shadow .35s var(--ease);
}

.kachel:hover,
.kachel:focus-visible {
  transform: translateY(-4px);
}

.kachel:hover .kachel__rahmen {
  box-shadow: 0 .8rem 2rem rgb(0 0 0 / .45);
}

.kachel:hover .kachel__label {
  filter: drop-shadow(.055em .055em 0 var(--magenta-hell));
}

.kachel__bild {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

@media (min-width: 1100px) {
  .kachel__bild {
    aspect-ratio: 4 / 3;
  }
}

.kachel__bild {
  opacity: .72;
  transition: opacity .35s var(--ease);
}

.kachel:hover .kachel__bild,
.kachel:focus-visible .kachel__bild,
.kachel.spielt .kachel__bild {
  opacity: 1;
}

.kachel__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  opacity: 0;
  transition: opacity .4s var(--ease);
}

.kachel.spielt .kachel__video {
  opacity: 1;
}

@media (hover: none) {
  .kachel.spielt {
    transform: translateY(-4px);
  }

  .kachel.spielt .kachel__rahmen {
    box-shadow: 0 .8rem 2rem rgb(0 0 0 / .45);
  }
}

@media (prefers-reduced-motion: reduce) {
  .kachel__video {
    display: none;
  }
}

.kachel__label {
  position: absolute;
  left: 6%;
  bottom: 0;
  height: 17cqw;
  font-size: 17cqw;
  line-height: 1;
  transform: translateY(32%);
  color: var(--gelb);
  pointer-events: none;
}

.label {
  display: block;
  height: 100%;
  width: auto;
  aspect-ratio: var(--ratio);
  background-color: currentColor;
  -webkit-mask-image: var(--src);
  mask-image: var(--src);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: left center;
  mask-position: left center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.label--pixel {
  --src: url('../prototype-svg/label-pixel.svg');
  --ratio: 2.222;
}

.label--digital {
  --src: url('../prototype-svg/label-digital.svg');
  --ratio: 2.847;
}

.label--craft {
  --src: url('../prototype-svg/label-craft.svg');
  --ratio: 2.667;
}

.label--sketch {
  --src: url('../prototype-svg/label-sketch.svg');
  --ratio: 3.117;
}

.label--wildcard {
  --src: url('../prototype-svg/label-wildcard.svg');
  --ratio: 4.146;
}

.service {
  background: var(--gelb);
  color: #000;
  padding-block: clamp(1.6rem, 5vw, 2.6rem);
  overflow: hidden;

}

.service__inner {
  display: grid;
  gap: clamp(1.4rem, 5vw, 2rem);
}

@media (min-width: 800px) {
  .service__inner {
    grid-template-columns: 1fr 1px 1fr;
    align-items: stretch;
  }

  .service__strich {
    background: #000;
    width: 1px;
    justify-self: center;
  }
}

.service__strich {
  display: none;
}

@media (min-width: 800px) {
  .service__strich {
    display: block;
  }
}

.service__karte {
  position: relative;
  display: grid;
  gap: clamp(.8rem, 3vw, 1.4rem);
}

.service__karte>* {
  position: relative;
  z-index: 1;
}

.service__karte h2 {
  font-size: var(--t-h3);
  font-weight: 400;
  margin: 0;
  line-height: 1.2;
}

.service__karte h2 b {
  display: block;
  font-weight: 900;
}

.service__karte--mail {
  text-align: center;
}

.service__karte--mail .bild {
  width: 62%;
  max-width: 28rem;
  margin-inline: auto;
}

.service__karte--mail .knopf {
  justify-self: center;
}

@media (min-width: 800px) {
  .service__karte--mail .bild {
    width: 100%;
  }

  .service__karte--mail .knopf {
    justify-self: end;
    margin-top: -1.5rem;
  }
}

.service__karte--fuchs {
  min-height: clamp(14rem, 42vw, 20rem);
}

.service__fuchs {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  right: -34%;
  top: -6%;
  width: 132%;
  max-width: none;
}

.service__karte--fuchs h2 {
  max-width: 58%;
}

.service__karte--fuchs .knopf {
  justify-self: start;
  align-self: end;
}

@media (min-width: 800px) {
  .service__fuchs {
    right: -30%;
    top: -9%;
    width: 149%;
  }

  .service__karte--fuchs h2 {
    max-width: 52%;
  }
}

.knopf {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  background: var(--rot);
  color: #fff;
  padding: .5em 1.5em;
  border-radius: 2em;
  font-size: var(--t-body);
  text-decoration: none;
  min-height: var(--tap);
  transition: transform .25s var(--ease), background .25s;
}

.knopf:hover {
  transform: translateY(-2px);
  background: #c40726;
}

.rechtsfuss {
  background: var(--grau);
  color: #1b1b23;
  padding: clamp(.9rem, 3vw, 1.4rem) var(--luft);
  text-align: center;
  font-size: var(--t-small);
  font-weight: 300;
}

.rechtsfuss a {
  text-decoration: underline;
  text-underline-offset: .15em;
}

.rechtsseite {
  background: #fff;
  color: var(--violett);
  padding: clamp(1.5rem, 5vw, 3.5rem) var(--luft) clamp(3rem, 8vw, 6rem);
}

.rechtsseite__innen {
  max-width: 46rem;
  margin-inline: auto;
}

.rechtsseite__zurueck {
  font-size: var(--t-small);
  margin: 0 0 clamp(1.2rem, 4vw, 2rem);
}

.rechtsseite__zurueck a::before {
  content: '\2190\00a0';
  text-decoration: none;
}

.rechtsseite h1 {
  font-size: clamp(1.5rem, 1.15rem + 1.4vw, 2.25rem);
  line-height: 1.15;
  margin: 0 0 .6em;
  text-wrap: balance;
}

.rechtsseite__unterzeile {
  font-size: var(--t-lead);
  font-weight: 900;
  color: var(--magenta);
  margin: -.4em 0 1.2em;
}

.rechtsseite p,
.rechtsseite li {
  font-size: 1.0625rem;
  line-height: 1.6;
  font-weight: 300;
  overflow-wrap: break-word;
}

.rechtsseite .rechtsseite__vorspann {
  font-size: 1.1875rem;
}

.rechtsseite p {
  margin: 0 0 1em;
}

.rechtsseite b {
  font-weight: 700;
}

.rechtsseite a {
  color: var(--magenta);
  text-decoration: underline;
  text-underline-offset: .15em;
}

.rechtsseite .rechtsseite__zurueck a {
  font-weight: 700;
  text-decoration: none;
}

.rechtsseite .rechtsseite__zurueck a:hover {
  text-decoration: underline;
}

.rechtsseite h2 {
  font-size: clamp(1.0625rem, .98rem + .35vw, 1.3125rem);
  line-height: 1.25;
  margin: 2.2em 0 .7em;
}

.rechtsseite h3 {
  font-size: 1rem;
  margin: 0 0 .5em;
}

.paragrafen {
  list-style: none;
  counter-reset: para;
  margin: 0;
  padding: 0;
}

.paragrafen>li {
  counter-increment: para;
}

.paragrafen>li>h2 {
  margin-top: 2.4em;
}

.paragrafen>li:first-child>h2 {
  margin-top: 1.6em;
}

.paragrafen>li>h2::before {
  content: counter(para, upper-roman) '. ';
  color: var(--magenta);
}

.stufe2 {
  counter-reset: unter;
  list-style: none;
  margin: 0 0 1em;
  padding: 0;
}

.stufe2>li {
  counter-increment: unter;
  position: relative;
  padding-inline-start: 1.9em;
  margin-bottom: .9em;
}

@media (min-width: 700px) {
  .stufe2>li {
    padding-inline-start: 2.4em;
  }
}

.stufe2>li::before {
  content: counter(unter) '.';
  position: absolute;
  inset-inline-start: 0;
  font-weight: 700;
  color: var(--magenta);
}

.stufe2>li>p:last-child {
  margin-bottom: 0;
}

.stufe3 {
  margin: 0 0 1em;
  padding-inline-start: 1.4em;
}

.stufe3>li {
  margin-bottom: .45em;
}

.stufe3--zahl {
  list-style: decimal;
}

.kontaktblock {
  display: grid;
  gap: 1.2rem clamp(1.5rem, 4vw, 2.5rem);
  margin: 0 0 1.5em;
  padding: clamp(1rem, 3vw, 1.5rem);
  background: var(--grau);
  border-radius: var(--radius);
}

@media (min-width: 640px) {
  .kontaktblock {
    grid-template-columns: 1fr 1fr;
  }
}

.kontaktblock__feld>*:last-child {
  margin-bottom: 0;
}

.rechtsseite__stand {
  margin-top: 2.5em;
  padding-top: 1.2em;
  border-top: 1px solid rgb(21 10 55 / .15);
  font-size: var(--t-small);
}

.kein-js {
  margin: 0;
  padding: .9em var(--luft);
  background: var(--rot);
  color: #fff;
  font-size: var(--t-small);
  font-weight: 700;
  text-align: center;
}

.cookie-banner.cookie-banner--visible {
  z-index: 300;
}

.cookie-banner .cookie-btn {
  border: 2px solid var(--magenta);
  color: var(--violett);
  background: transparent;
}

.cookie-banner .cookie-btn--accept,
.cookie-banner .cookie-btn--save {
  color: var(--violett);
  background: var(--magenta);
  border-color: var(--magenta);
}

.cookie-banner .cookie-btn--accept:hover,
.cookie-banner .cookie-btn--save:hover {
  background: var(--magenta-hell);
  border-color: var(--magenta-hell);
}

.cookie-banner .cookie-btn--options:hover,
.cookie-banner .cookie-btn--decline:hover {
  color: var(--violett);
  background: color-mix(in srgb, var(--magenta) 12%, transparent);
  border-color: var(--magenta-hell);
}

.login-page {
  min-height: calc(100vh - 10rem);
  display: grid;
  place-items: center;
  padding: var(--block) var(--luft);
  background: var(--gelb);
}

.login-card {
  width: min(100%, 28rem);
  padding: clamp(1.5rem, 5vw, 3rem);
  color: var(--violett);
  background: #fff;
  border: 2px solid var(--magenta);
  border-radius: var(--radius);
}

.login-card h1 {
  margin-bottom: 1.5rem;
}

.login-card form {
  display: grid;
  gap: .75rem;
}

.login-card label {
  font-weight: 700;
}

.login-card input {
  min-height: 2.75rem;
  padding: .5rem .75rem;
  border: 2px solid var(--grau);
  border-radius: .35rem;
  font: inherit;
}

.login-card input:focus {
  outline: 3px solid color-mix(in srgb, var(--magenta) 35%, transparent);
  border-color: var(--magenta);
}

.login-card button {
  min-height: 2.75rem;
  margin-top: .75rem;
  padding: .5rem 1rem;
  border: 2px solid var(--magenta);
  border-radius: .35rem;
  color: var(--violett);
  background: var(--magenta);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.login-card button:hover {
  background: var(--magenta-hell);
  border-color: var(--magenta-hell);
}

.login-error {
  margin-bottom: 1rem;
  padding: .75rem;
  color: #8b1025;
  background: #ffe6eb;
  border-left: 4px solid var(--rot);
}

.ki-label {
  margin: 0;
}

.ki-label__toggle {
  display: inline-flex;
  align-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, .5);
  overflow: hidden;
  cursor: pointer;
  transition: width .35s ease;
}

.ki-label__icon {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
}

.ki-label__text {
  flex: 0 0 auto;
  max-width: 0;
  overflow: hidden;
  white-space: nowrap;
  opacity: 0;
  font-size: clamp(.75rem, .65rem + .4vw, 1.0625rem);
  font-weight: 700;
  color: var(--violett);
  transition: max-width .35s ease, opacity .25s ease, padding .35s ease;
}

.ki-label__toggle.is-open {
  width: 250px;
}

.ki-label__toggle.is-open .ki-label__text {
  max-width: 28rem;
  opacity: 1;
  padding: 0 1.1em 0 .6em;
  transition: max-width .35s ease, opacity .25s ease .1s, padding .35s ease;
}

@media (hover: hover) and (pointer: fine) {
  .ki-label__toggle:hover {
    width: 250px;
  }

  .ki-label__toggle:hover .ki-label__text {
    max-width: 28rem;
    opacity: 1;
    padding: 0 1.1em 0 .6em;
    transition: max-width .35s ease, opacity .25s ease .1s, padding .35s ease;
  }
}

@media (hover: none) {
  .kachel.spielt {
    transform: translateY(0px);
    filter: grayscale(0);
  }
}

.hero.v2 {
  padding-bottom: clamp(4rem, 15vw, 8rem);
}

.banner-full-width {
  position: relative;
  background: var(--gelb);
  overflow: visible;

}

.banner-full-width .banner-full-width__inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  position: relative;
  overflow: visible;
}

.banner-full-width .banner-full-width__inner .banner-full-width__image {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: var(--luft);
  width: min(50%, 47rem);
  z-index: 3;
  pointer-events: none;

  >img.resp {
    display: none;
  }

  >img.desktop {
    display: block;
  }
}

@media (max-width: 599px) {
  .banner-full-width .banner-full-width__inner .banner-full-width__image {
    >img.resp {
      display: block;
    }

    >img.desktop {
      display: none;
    }
  }
}

.banner-full-width .banner-full-width__inner .banner-full-width__text {
  position: relative;
  z-index: 4;
  width: 40%;
  color: #000;
  font-size: var(--t-small);
  padding: clamp(1.2rem, 4vw, 2rem) 0;
}

.banner-full-width .banner-full-width__inner .banner-full-width__text .title {
  margin-bottom: 20px;
  font-weight: bold;
  font-size: clamp(16px, 4vw, 40px);
  line-height: clamp(14px, 4vw, 36px);
}

.banner-full-width .banner-full-width__inner .banner-full-width__text .title .highlight {
  color: var(--magenta);
  font-family: "Horizone", cursive;
  font-size: 1.12em;
  font-weight: 400;
}

.banner-full-width .banner-full-width__inner .banner-full-width__text .subtitle {
  margin: 0px;
  margin-bottom: 20px;
  line-height: 1.3;
  font-weight: 400;

}

@media (max-width: 1179px) {
  .banner-full-width .banner-full-width__inner>div {
    width: 100%;
  }

  .banner-full-width .banner-full-width__inner .banner-full-width__image {
    position: relative;
    top: -60px;
    left: calc(var(--luft) * -1);
    transform: none;
    width: 100%;
    z-index: 3;
    pointer-events: none;
  }

  .banner-full-width .banner-full-width__inner .banner-full-width__image>img {
    margin: 0 auto;
    object-fit: cover;
  }

  .banner-full-width .banner-full-width__inner .banner-full-width__text {
    position: relative;
    width: 100%;
    padding: clamp(1.2rem, 4vw, 2rem) 0 clamp(1.2rem, 4vw, 2rem) 0;
  }
}

@media (max-width: 599px) {
  .banner-full-width .banner-full-width__inner .banner-full-width__image {
    top: -100px;
    left: 0px;
    width: 190px;
    min-width: 160px;
  }

  .banner-full-width .banner-full-width__inner .banner-full-width__text {
    min-width: calc(100% - 140px);
    left: 15px;
  }
}

.voting-section {
  padding-block: clamp(3rem, 12vw, 6rem) clamp(6rem, 24vw, 12rem);
  background-color: var(--violett);
  background-image: url("../prototype-img/bg-chevron-v2.jpg");
  background-position: center top;
  background-size: cover;
  background-repeat: no-repeat;
}

@media (max-width: 768px) {
  .voting-section {
    padding-block: clamp(1.5rem, 6vw, 3rem) clamp(3rem, 12vw, 6rem);
  }
}

.voting-grid.v2 .voting-grid__info {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  line-height: 1;
}

.voting-grid.v2 .voting-grid__info .ki-label__toggle {
  background: rgba(1, 1, 1);
}

.voting-grid.v2 .voting-grid__info .ki-label__toggle .ki-label__text {
  color: #fff;
  font-size: clamp(.6875rem, .55rem + .4vw, 1.0625rem);
  white-space: wrap;
  min-width: fit-content;
}

.voting-grid.v2 .kacheln {
  list-style: none;
  margin: 0px;
  padding: 5px 0 0;
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  gap: clamp(1.6rem, 5vw, 2.4rem);

}

.voting-grid.v2 .kacheln>li {
  flex: 1;
  aspect-ratio: 1;
  width: 100%;
}

.voting-grid.v2 .kacheln>li .kachel {
  width: 100%;
  height: 100%;
  filter: grayscale(0.5);
}

.voting-grid.v2 .kacheln>li .kachel .kachel__rahmen {
  width: 100%;
  height: 100%;
}

.voting-grid.v2 .kacheln>li .kachel .kachel__rahmen .kachel__bild {
  aspect-ratio: 1;
}

.voting-grid.v2 .kachel__label {
  left: 50%;
  bottom: 4%;
  transform: translateX(-50%);
  text-align: center;
}

.voting-grid.v2 .kacheln>li .kachel.selected {
  transform: translateY(-4px);
  filter: grayscale(0);
}

.voting-grid.v2 .kacheln>li .kachel.selected .kachel__rahmen {
  border-color: var(--magenta-hell);
  box-shadow: 0 0 0 2px var(--magenta-hell), 0 .8rem 2rem rgb(0 0 0 / .45);
}

.voting-grid.v2 .kacheln>li .kachel.selected .kachel__bild {
  opacity: 1;
}

.voting-grid.v2 .kacheln>li .kachel.selected.spielt .kachel__bild {
  opacity: 0;
}

.voting-grid.v2 .kacheln>li .kachel.selected .kachel__label {
  filter: drop-shadow(.055em .055em 0 var(--magenta-hell));
}

@media (max-width: 1179px) {
  .voting-grid.v2 {
    padding-inline: 0;
  }

  .voting-grid.v2 .voting-grid__info {
    padding-inline: var(--luft);
  }

  .voting-grid.v2 .kacheln {
    justify-content: flex-start;
    overflow-x: auto;
    margin-left: var(--luft);
    padding-bottom: 20px;
  }

  .voting-grid.v2 .kacheln>li {
    min-width: 166px;
  }

  .voting-grid.v2 .kacheln>li:last-child {
    margin-right: var(--luft);
  }
}

@media (max-width: 599px) {
  .voting-grid.v2 .kacheln>li {
    min-width: 120px;
  }
}

@media (max-width: 599px) {
  .wrapper-fixed-mobile__sentinel {
    height: 0;
  }

  .wrapper-fixed-mobile {
    position: sticky;
    top: 0;
    z-index: 30;
    padding-block: 10px;
  }

  .wrapper-fixed-mobile.is-stuck {
    background-color: var(--violett);
    box-shadow: 0 4px 12px rgb(0 0 0 / .25);
  }
}

.voting-current-category {
  margin: 40px 0px 10px 0px;
  font-weight: 700;
  font-size: 16px;

  .voting-current-category__name {
    font-size: 20px;
  }

  &.resp {
    display: none;
  }
}

.participants-container .participants-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.participant__winner-logo {
  position: absolute;
  bottom: -2rem;
  right: -2rem;
  z-index: 10;
  width: clamp(8rem, 15vw, 15rem);
  height: clamp(8rem, 15vw, 15rem);
  object-fit: contain;
  pointer-events: none;
}

@media (max-width: 768px) {
  .participant__winner-logo {
    position: absolute;
    bottom: -2rem;
    right: -2rem;
    z-index: 10;
    width: clamp(7rem, 16vw, 10rem);
    height: clamp(7rem, 16vw, 10rem);
    object-fit: contain;
    pointer-events: none;
  }
}

@media (max-width: 600px) {
  .participant__winner-logo {
    position: absolute;
    bottom: -2rem;
    right: -2rem;
    z-index: 10;
    width: clamp(10rem, 45vw, 20rem);
    height: clamp(10rem, 45vw, 20rem);
    object-fit: contain;
    pointer-events: none;
  }
}

@media (max-width: 1179px) {
  .voting-current-category {
    padding-inline: var(--luft);
  }

  .participants-container .participants-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding-inline: var(--luft);
  }
}

@media (max-width: 599px) {
  .voting-current-category {
    text-align: center;
    display: none;

    &.resp {
      display: block;
      margin: 0;
    }
  }

  .participants-container .participants-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.participants-container .participants-grid>li {
  position: relative;
  border: 4px solid #FFF02D;
  border-radius: 20px;
  border-width: 4px;
  overflow: hidden;

  .wraper-image {
    position: relative;
    cursor: zoom-in;

    &:focus-visible {
      outline: 3px solid var(--magenta-hell);
      outline-offset: -3px;
    }

    .swiper-button-prev,
    .swiper-button-next {
      --swiper-navigation-size: 16px;
      --swiper-navigation-color: #FFF02D;
      width: 32px;
      height: 32px;
      margin-top: -20px;
      border-radius: 50%;
      border: 3px solid #FFF02D;
    }

    .swiper-button-prev::before,
    .swiper-button-next::before {
      width: 280%;
      height: 190%;
      background: radial-gradient(circle, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 50%);
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      z-index: 1;
    }

    .swiper-button-prev::after,
    .swiper-button-next::after {
      z-index: 2;
    }

    .swiper-button-disabled {
      display: none;
    }

    .participant__media {
      object-fit: cover;
      width: 100%;
      height: 100%;
      aspect-ratio: 1;
    }

    .swiper-pagination {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 10px;
      z-index: 5;
      text-align: center;
      height: auto;
      margin: 0;
      display: flex;
      justify-content: center;

      .swiper-pagination-bullet {
        opacity: 0.6;
        margin-inline: 5px;
        background-color: var(--gelb);
      }

      .swiper-pagination-bullet-active {
        opacity: 1;
      }
    }
  }

  .wraper-content {
    padding: 16px 10px 20px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;

    .participant__name {
      font-weight: 700;
      font-size: 20px;
      min-height: 40px;
      max-width: 100%;
      word-break: break-word;

      .participant__title,
      .participant__author {
        display: block;
        font-size: 20px;
        line-height: 110%;
      }

      .participant__title {
        font-weight: 700;
      }

      .participant__author {
        font-weight: 400;
      }
    }

    .participant__description {
      margin-top: 16px;
      font-weight: 400;
      font-size: 20px;
      line-height: 100%;
      vertical-align: middle;

    }

  }
}

.modal-wrapper {
  background-color: #000000C4;
  width: 100vw;
  height: 100svh;
  line-height: 1;
  position: fixed;
  z-index: 1000;
  transition: opacity 1s ease;
  display: flex;
  justify-content: center;
  align-items: center;
  pointer-events: all;
  top: 0;
  left: 0;

  &[hidden] {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    z-index: -1000;
  }

  .modal-close-button {
    width: 36px;
    height: 36px;
    color: var(--gelb);
    position: absolute;
    top: -56px;
    right: 0;
    border: 3px solid var(--gelb);
    border-radius: 50%;
    padding: 6px;

    svg {
      width: 100%;
      height: 100%;
    }
  }
}

.modal-swiper-big {

  .modal-swiper-big__content {
    position: relative;
    width: min(calc(100vw - 48px), calc(100svh - 220px), 769px);
    max-height: calc(100svh - 64px);
    opacity: 1;
    transform: scale(1);
    transition: opacity 1s ease, transform 1.5s cubic-bezier(0.16, 1, 0.3, 1);
  }

  .modal-swiper-big__frame {
    position: relative;
    display: flex;
    flex-direction: column;
    border: 4px solid var(--gelb);
    border-radius: 20px;
  }

  .modal-swiper-big__slider,
  .swiper-wrapper,
  .swiper-slide {
    width: 100%;
    height: 100%;
  }

  .modal-swiper-big__slider {
    aspect-ratio: 1;
    border-radius: 14px;
  }

  .swiper-slide {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    overflow: hidden;

    .modal-media-stage {
      position: relative;
      width: 100%;
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
      border-radius: 10px;
      background: #000;
    }

    .participant__media {
      position: absolute;
      inset: 0;
      z-index: 1;
      display: block;
      width: 100%;
      height: 100%;
      object-fit: contain;
      border-radius: 0;
    }

  }

  .swiper-button-prev {
    left: 18px;
  }

  .swiper-button-next {
    right: 18px;
  }

  .swiper-button-prev,
  .swiper-button-next {
    --swiper-navigation-size: 18px;
    --swiper-navigation-color: #FFF02D;
    width: 36px;
    height: 36px;
    margin-top: -20px;
    border-radius: 50%;
    border: 3px solid #FFF02D;
  }

  .swiper-button-prev::before,
  .swiper-button-next::before {
    width: 280%;
    height: 190%;
    background: radial-gradient(circle, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 50%);
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
  }

  .swiper-button-prev::after,
  .swiper-button-next::after {
    z-index: 2;
  }

  .swiper-button-disabled {
    display: none;
  }

  .modal-close-button {
    top: 0;
    right: -44px;
  }

  .swiper-pagination {
    text-align: center;
    height: 12px;

    display: flex;
    justify-content: center;
    bottom: 144px;

    .swiper-pagination-bullet {
      opacity: 0.35;
      margin-inline: 5px;
      background-color: var(--gelb);
      width: 12px;
      height: 12px;
    }

    .swiper-pagination-bullet-active {
      opacity: 1;
    }
  }

  .modal-participant-wrap {
    position: relative;
    border-radius: 14px;
    background: var(--violett);
  }

  .modal-participant {
    padding: 18px 20px;
    line-height: 1.25;
    text-align: left;
    max-height: 140px;
    overflow: auto;
    position: relative;
    background: transparent;

    -webkit-mask-image: linear-gradient(to bottom, transparent 5%, #000 28px, #000 calc(100% - 28px), transparent 95%);
    mask-image: linear-gradient(to bottom, transparent 0%, #000 30px, #000 calc(100% - 25px), transparent 100%);
  }

  .modal-participant__name {
    margin: 0 0 8px;
    color: var(--gelb);
    font-size: 20px;
    font-weight: 700;

    .participant__title {
      font-weight: 700;
    }

    .participant__author {
      font-weight: 400;
    }
  }

  .modal-participant__description {
    font-size: 20px;
  }
}

@media (max-width: 1179px) {
  .modal-swiper-big {
    .modal-close-button {
      right: 30px;
      top: 25px;
      z-index: 20;
    }
  }
}

@media (max-width: 1179px) {
  .modal-swiper-big {
    .modal-swiper-big__content {
      width: min(100vw, calc(100svh - 180px));
    }

    .swiper-slide,
    .swiper-slide .participant__media,
    .swiper-slide .modal-media-stage {
      border-radius: 0;
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  .modal-swiper-big .modal-swiper-big__content {
    opacity: 1;
  }
}