:root{
      --font-size: 16px;
      --game-padding-unit: 1rem;
      --lh-scale: 1.75;
    }
    #app.game-container {
      width: 1200px;
      height: 600px;
      max-width: 96%;
      position: relative;
      text-align: center;
      margin: 0 auto calc(var(--game-padding-unit) * 3);
      padding: 0 var(--game-padding-unit);
      background: linear-gradient(to bottom,rgba(36, 29, 71, 0.85) 0%,rgba(36, 29, 71, 0.6) 40%,rgba(55, 46, 104, 0.45) 100%);
      box-shadow: rgba(4, 10, 15, 0.8) 0px 20px 40px -5px;
      border-radius: calc(var(--game-padding-unit) * 3);
      backdrop-filter: blur(3px);
      z-index: 5;
      color:#fff;
      overflow: hidden;
    }
    .scoreboard{
        display:inline-block;        
        background: linear-gradient(to right, #7747ad, #5f337c);
        border:1px solid #f0c8fa;
        border-top: none;
        border-bottom-left-radius: 1rem;
        border-bottom-right-radius: 1rem;
        padding: 0.3rem 1rem;
        box-shadow: 0px 5px 16px #090402;
        position:absolute;
        top:0;
        transform: translateX(-50%);
    }

    .button-row{
        width: 1200px;
        max-width:90%;
        display:flex;
        flex-direction:row;
        flex-wrap:wrap;
        align-items:center;
        justify-content:center;
        margin: 2rem auto 0;
        gap: 0.5rem;
    }
    .round{
        position:absolute;
        display: inline-block;
        top:50%;
        font-size: 6rem;
        text-align: center;
        text-shadow: 0px 5px 16px #090402;        
        opacity: 0;
        transform: translate(-50%, -200%);
        transition: 
            transform 1s cubic-bezier(.68,-0.55,.27,1.55),
            opacity 1s ease;
        z-index: 20;    
    }
    .bounceFromTop{
        top:50%;
        transform:translate(-50%, -50%);
        opacity: 1;
    }
    .category{
        background: linear-gradient(to right, #7747ad, #5f337c);
        border:1px solid #f0c8fa;
        border-left: none;
        border-top-right-radius: 9999px;
        border-bottom-right-radius: 9999px;
        position:absolute;
        top:50px;
        left: 0;
        padding: 0.5rem 1rem;
        text-align: right;
        box-shadow: 0px 5px 16px #090402;
        min-width:150px;
        opacity: 0;
        transform:translateX(-100%);
        transition: 
            transform 0.5s ease-in-out,
            opacity 0.5s ease;
        z-index: 50;
        text-shadow: 0 0 8px #090402;          
    }
    .round_of{
        background: linear-gradient(to right, #7747ad, #5f337c);
        border:1px solid #f0c8fa;
        border-right: none;
        border-top-left-radius: 9999px;
        border-bottom-left-radius: 9999px;
        position:absolute;
        top:50px;
        right: 0;
        padding: 0.5rem 1rem;
        box-shadow: 0px 5px 16px #090402;
        max-width:150px;        
        opacity: 0;
        transform:translateX(100%);
        transition: 
            transform 0.5s ease-in-out,
            opacity 0.5s ease;
        z-index: 51;
        text-shadow: 0 0 38px #090402; 
    }
    .slideInFromLeft{      
      transform: translateX(0);
      opacity: 1;
    }
    .slideInFromRight{
      transform: translateX(0);
      opacity: 1;
    }
    #question{
      position:absolute;
      display: inline-block;
      top:130px;
      transform: translateX(-50%);
      width: 800px;
      max-width: 94%;
      background: linear-gradient(to right, #7747ad, #5f337c);
      border:1px solid #f0c8fa;
      padding: min(1rem, 8%);
      box-shadow: 0px 5px 16px #090402;
      font-size: clamp(1.25rem, 4.5vw, 1.7rem);
      text-align: center;
      white-space: pre-wrap;
      text-shadow: 0 0 8px #090402;
    }
    #answers_wrap{
      position: absolute;
      display: inline-block;
      top: 270px;
      transform: translateX(-50%);
      width: 800px;
      max-width: 94%;
    }
    #answers{
      display:flex;
      flex-direction:row;
      justify-content: center;
      align-items: center;
      flex-wrap:wrap;
      gap: var(--game-padding-unit);
    }
    .answer{
      flex: 0 1 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      max-width: calc(50% - (var(--game-padding-unit) * 0.5));
      min-width: calc(300px - var(--game-padding-unit));
      position: relative;
      transform: translateX(-125%);
      opacity:0;
      transition: 
        transform 1s cubic-bezier(.6,-0.3,.3,1.15),
        opacity 1s cubic-bezier(.6,-0.3,.3,1.15);
    }
    .answer:nth-child(even){
      transform: translateX(125%);
    }
    .answer-inner {
      display: flex;
      align-items: center;
      justify-content: center;
      width:100%;
      height:56px;
      background: linear-gradient(to right, #7747ad, #5f337c);
      border:1px solid #f0c8fa;
      padding: 0 var(--game-padding-unit) 0 58px;
      border-radius: 9999px;
      box-shadow: 0px 5px 16px #090402;
      font-size: clamp(1rem, 1.5vw, 0.9rem);
      text-align: center;
      white-space: pre-wrap;
      position:relative;
      box-shadow: 0px 5px 16px #090402;
      text-shadow: 0 0 8px #090402;
      transition: transform 0.25s ease, box-shadow 0.25s ease;
      line-height: 90%; 
    }
    .answer-inner::before{
      position:absolute;
      left:-2px;
      top:-5%;
      display:flex;
      justify-content: center;
      align-items: center;
      height:110%;
      aspect-ratio: 1 / 1;
      background: linear-gradient(to right bottom, #fff, #7747ad);
      border:1px solid #f0c8fa;
      color:#5f337c;
      font-size: 150%;
      font-weight:bold;
      border-radius: 100%;
      box-shadow: 0px 5px 16px #090402;
      content: attr(data-letter);
      text-shadow: none;
    }
    .answer-inner.unselected{
      filter: grayscale(50%) brightness(0.6);
      opacity: 0.7;
      transition: filter 0.5s ease, opacity 0.5s ease;
    }
    .answer-inner:not(.unselected):hover {
      cursor: pointer;
      transform: scale(1.01);
      box-shadow: 0 0 12px #f0c8fa;
    }
    .answer-icon {
      position:absolute;
      left:30px;
      top:-5px;
      display:flex;
      justify-content: center;
      align-items: center;
      height:56px;
      aspect-ratio: 1 / 1;
      z-index: 30;
      font-size: 300%;
      pointer-events: none;
      opacity: 0;
      transform: scale(0.5);
      transition: all 0.3s ease;
    }
    .answer-icon.correct {
      content: "✔";
      color: #00f200;
      font-size: 330%;
      text-shadow: 0 0 3px #f0c8fa;
      opacity: 1;
      transform: scale(1);
    }
    .answer-icon.wrong {
      content: "✘";
      color: #f04c4c;
      opacity: 1;
      transform: scale(1);
    }
    .t-ani{
      display: inline-block;
      opacity: 0;
      transform: translateY(-30px);
      transition: 
        transform 0.4s cubic-bezier(.68,-0.55,.27,1.55),
        opacity 0.4s ease;
    }
    .q-ani{
      transform: translateY(0);
      opacity: 1;
    }
    .progress-bar{
      position: absolute;
      display: inline-block;
      bottom: 30px;
      transform: translateX(-50%);
      width: 800px;
      max-width: 94%;
      height:1rem;
      border-radius: 9999px;
      background: linear-gradient(to right, #fceef8, #ad2b8d);
      border:1px solid #f0c8fa;
      box-shadow: 0px 5px 16px #090402;
      opacity:0;
      transition: opacity 0.5s ease;     
    }
    .progress-bar-inner{
      position: absolute;
      display: inline-block;
      width: 100%;
      top: 0;
      right:0;
      height: calc(1rem - 2px);
      border-radius: 9999px;
      background-color: #5f337c;
    }
    .progress-bar::before{
      position:absolute;
      left:-2px;
      top: -1.25rem;
      display:flex;
      justify-content: center;
      align-items: center;
      height:3rem;
      aspect-ratio: 1 / 1;
      background: linear-gradient(to right bottom, #fff, #7747ad);
      border:1px solid #f0c8fa;
      color:#5f337c;
      font-size: 150%;
      font-weight:bold;
      border-radius: 100%;
      box-shadow: 0px 5px 16px #090402;
      content: attr(data-time);
      text-shadow: none;
      z-index: 2;
    }
    .progress-bar.urgent {
      animation: pulse 1s infinite;
    }
    @keyframes pulse {
      0%   { box-shadow: 0 0 10px #f04c4c; }
      50%  { box-shadow: 0 0 25px #f04c4c; }
      100% { box-shadow: 0 0 10px #f04c4c; }
    }
    .fadeable{
      opacity:0;
      transition: opacity 0.7s ease;
    }
    .fadeable.fadeIn{
      opacity: 1;
    }
    .slideable.slideIn{
      transform: translateX(0);
      opacity:1;
    }
    #quiz_overlay{
      width:100%;
      height:100%;
      border-radius: 3rem;
      backdrop-filter: blur(2px);
      position: absolute;
      top:0;
      left:0;
      z-index: 100;
      background: rgba(0,0,0,0.5);
      pointer-events: none;
    }
    #result_message, #explanation{
      position: absolute;
      display: inline-block;
      top:100px;
      transform: translateX(-50%);
      width: 800px;
      max-width: 94%;
      background: linear-gradient(to right, #7747ad, #5f337c);
      border:1px solid #f0c8fa;
      box-shadow: 0px 5px 16px #090402;
      font-size: clamp(1.25rem, 4.5vw, 1.7rem);
      text-align: center;
      white-space: pre-wrap;
      text-shadow: 0 0 8px #090402;
    }
    .auto-radius{
      line-height: calc(var(--game-padding-unit) * var(--lh-scale));      
      padding-top: var(--game-padding-unit);
      padding-bottom: var(--game-padding-unit);
      padding-left: min(var(--game-padding-unit), 8%);
      padding-right: min(var(--game-padding-unit), 8%);
      border-radius: calc((var(--game-padding-unit) * 2 + calc(var(--game-padding-unit) * var(--lh-scale))) / 2);
    }
    #result_message{
      border-radius:9999px;
      padding: min(var(--game-padding-unit), 8%);
    }

    #explanation{
      top: 240px;
    }

    button{
        color:#fff;
        padding: calc(var(--game-padding-unit) * 0.8) calc(var(--game-padding-unit) * 1.5);
        margin: 0 calc(var(--game-padding-unit) * 0.25);
        border:1px solid #f0c8fa;
        cursor: pointer;
        background: linear-gradient(to right, #7747ad, #5f337c);
        border-radius: calc(var(--game-padding-unit) * 0.75);;     
        transition: all 0.2s ease-in-out;
    }
    button:hover{
        box-shadow: 0 0 10px #ce6cec;
    }

    #next_round_btn {
      position: absolute;
      transform: translateX(-50%);
      bottom: calc(var(--game-padding-unit) * 2);
      padding: calc(var(--game-padding-unit) * 0.8) calc(var(--game-padding-unit) * 1.25);
      font-size: 1.2rem;
      border-radius: 9999px;
      border: none;
      background: linear-gradient(to right, #4caf50, #388e3c);
      color: white;
      cursor: pointer;
      display: none; /* Start: unsichtbar */
      white-space: nowrap;
    }
    #next_round_btn:hover {
      background: linear-gradient(to right, #66bb6a, #43a047);
    }

    .points-info {
      margin-top: 1rem;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.2rem;
      font-size: 1rem;
      line-height: 1.25;
    }
    .points-info.final{
      font-size: 1.25rem;
    }

    .points-row {
      display: flex;
      justify-content: space-between;
      width: min(300px, 80%);
      padding: 0.2rem 0;
    }

    .points-row.total {
      border-top: 2px solid rgba(240,200,250,0.6);      
      margin-top: 0.3rem;
      padding-top: 0.3rem;
    }

    .points-label {
      flex: 1;
      text-align: right;
      color: #fceef8;
      font-weight: 400;
    }
    .points-info.final .points-row{
      width: 90%
    }

    .points-info.final .points-label{
      text-align: center;
    }

    .points-value {
      flex: 0;
      text-align: right;
      min-width: 60px;
      font-weight: 600;
      color: #fff;
    }


    @media (max-width: 768px) {
      :root{
        --font-size:15px;
        --lh-scale: 1.5;
        --game-padding-unit: 0.9rem;
      } 
      #app.game-container{
        height:660px;
        border-radius: calc(var(--game-padding-unit) * 2);
      }
      .answer {
        flex: 0 1 50%;
      }
    }