 :root {
     --bg: #181823;
     --accent: #04befe;
     --accent2: #003c8d;
     --text: #fff;
     --text-muted: #a9adc1;
     --card-bg: #222235;
 }

 body,
 html {
     height: 100%;
     margin: 0;
     scroll-behavior: smooth;
     font-family: Candara, 'Roboto', sans-serif;
     font-size: clamp(1rem, 1.5vw, 1.5rem);
 }

 .white-bg {
     background: white;
 }

 h1,
 h2,
 h3 {
     font-family: Candara, sans-serif;
 }

 h1 {
     font-size: clamp(2rem, 3vw, 5rem);
 }

 h2 {
     font-size: clamp(1.5rem, 2.5vw, 4rem);
 }

 p {
     margin: 1rem;
 }

 .scroll-container {
     height: 100%;
     scroll-snap-type: y mandatory;
     overflow-y: scroll;
 }

 section {
     min-height: 100svh;
     display: flex;
     justify-content: top;
     align-items: center;
     scroll-snap-align: start;
     text-align: center;
     flex-direction: column;

     &.welcome {
         justify-content: center;
     }
 }

 section p {
     max-width: 1250px;
     hyphens: auto;
     text-align: justify
 }

 .blue {
     background-color: var(--accent2);
     color: #fff;
 }

 .blue a {
     color: #fff;
 }

 .welcome {
     background-image: linear-gradient(to top, var(--accent2) 0%, var(--accent) 100%);
     font-weight: 700;
     user-select: none;
     -webkit-user-drag: none;
     pointer-events: none;
     color: white;
 }

 .welcome p {
     opacity: 0;
     margin: unset;
     animation:
         fadeIn 1s cubic-bezier(0.25, 0.1, 0.25, 1) forwards 1.5s,
         float 3s cubic-bezier(0.645, 0.045, 0.355, 1) infinite 3s;
 }

 .welcome .title {
     font-size: clamp(2.4em, 6vw, 8rem);
 }

 .welcome .subtitle {
     font-size: clamp(1.2em, 6vw, 2.5rem);
 }

 .logo {
     width: 100%;
     max-width: 600px;
     opacity: 0;
     transform: scale(0.8);
     animation:
         fadeIn 2s cubic-bezier(0.25, 0.1, 0.25, 1) forwards,
         scale 2s cubic-bezier(0.25, 0.1, 0.25, 1) forwards,
         float 3s cubic-bezier(0.645, 0.045, 0.355, 1) infinite 3s;
     will-change: transform;
 }

 @media (max-width: 450px) {
     .logo {
         width: 80%;
     }
 }

 .scroll-down {
     position: absolute;
     bottom: 3rem;
     transform: rotate(-45deg);
     width: 20px;
     height: 20px;
     border-left: 8px solid #fff;
     border-bottom: 8px solid #fff;
     opacity: 0;
     animation: arrowFadeIn 1s ease-in-out 2s forwards, arrowBounce 2s ease-in-out 4s infinite;
 }

 .scroll-down.hidden {
     animation: none;
     opacity: 0;
     pointer-events: none;
 }

 .scroll-down.invert {
     border-color: var(--accent2);
 }

 header img {
     height: 100%;
 }

 footer,
 header {
     width: 100%;
     background-color: var(--accent2);
     height: 100px;
 }

 footer {
     display: flex;
     justify-content: center;
 }

 footer a {
     text-decoration: none;
 }

 #studio,
 #contact {
     background: #fff;
     color: #333;
 }

 #contact {
     justify-content: space-between;
 }

 #upcoming {
     color: #fff;
 }

 .grid {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(500px, 1fr));
     width: 100%;
     gap: 1rem;
     align-items: center;
 }

 #upcoming img {
     width: calc(100% - 2rem);
 }

 @media (max-width: 650px) {
     .grid {
         display: block;
     }
 }


 ::-webkit-scrollbar {
     width: 8px;
 }

 ::-webkit-scrollbar-track {
     background: var(--accent2);
 }

 ::-webkit-scrollbar-thumb {
     background: #d0f5fe;
     border-radius: 4px;
 }

 @keyframes fadeIn {
     0% {
         opacity: 0;
     }

     100% {
         opacity: 1;
     }
 }

 @keyframes scale {
     0% {
         transform: scale(0.8);
     }

     100% {
         transform: scale(1);
     }
 }

 @keyframes float {
     0% {
         transform: translateY(0);
     }

     50% {
         transform: translateY(-10px);
     }

     100% {
         transform: translateY(0);
     }
 }

 @keyframes arrowFadeIn {
     0% {
         opacity: 0;
     }

     100% {
         opacity: 1;
     }
 }

 @keyframes arrowBounce {

     0%,
     100% {
         transform: rotate(-45deg);
     }

     50% {
         transform: translateY(10px) rotate(-45deg);
     }
 }

 /* Kontakt & Socials */
 .socials {
     display: flex;
     gap: 1.2em;
     align-items: center;
     margin-bottom: 1em;
     justify-content: center;
 }

 .social-link {
     font-size: 1.5em;
     color: var(--accent2);
     text-decoration: none;
     transition: color .18s, transform .13s;
     will-change: transform;
 }

 .social-name {
     font-size: 0.75rem;
     text-align: center;
     color: var(--bg);
 }

 .social-link:hover {
     color: var(--accent);
     transform: scale(1.2) rotate(-3deg);
 }

 .social-link img {
     width: 48px;
 }