/* ========================================
   WILLKOMMENS-OVERLAY
   ======================================== */

#welcome-overlay {

    position: fixed;

    inset: 0;

    z-index: 5000;

    display: flex;

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

    transition:
        opacity 180ms ease,
        visibility 0s linear 180ms;

    align-items: center;

    justify-content: center;

    padding:
        20px;

    padding-top:
        calc(20px + env(safe-area-inset-top));

    padding-bottom:
        calc(20px + env(safe-area-inset-bottom));

    box-sizing: border-box;

    background:
        rgba(8, 25, 40, 0.45);

    backdrop-filter:
        blur(5px);

    -webkit-backdrop-filter:
        blur(5px);
}

#welcome-overlay.welcome-overlay-visible {

    opacity: 1;

    visibility: visible;

    pointer-events: auto;

    transition-delay: 0s;
}



/* ========================================
   WILLKOMMENS-POPUP
   ======================================== */

#welcome-popup {

    position: relative;

    width: 100%;

    max-width: 480px;

    max-height:
        calc(100vh - 40px);

    display: flex;

    flex-direction: column;

    overflow: hidden;

    background: #ffffff;

    border-radius: 22px;

    box-shadow:
        0 25px 60px
        rgba(0, 0, 0, 0.25);

    transform: translateY(8px) scale(0.985);

    transition:
        transform 180ms ease;
}

#welcome-overlay.welcome-overlay-visible
#welcome-popup {

    transform: translateY(0) scale(1);
}




/* ========================================
   SCROLL-HINWEIS
   ======================================== */

.welcome-scroll-hint {

    position: absolute;

    left: 50%;
    bottom: 12px;

    z-index: 25;

    display: flex;

    align-items: center;

    gap: 7px;

    padding: 8px 12px;

    border: 1px solid rgba(255, 255, 255, 0.42);

    border-radius: 999px;

    background: rgba(16, 42, 67, 0.92);

    color: #ffffff;

    box-shadow: 0 5px 16px rgba(8, 25, 40, 0.22);

    font-size: 12px;

    font-weight: 650;

    white-space: nowrap;

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

    transform: translate(-50%, 6px);

    transition:
        opacity 160ms ease,
        transform 160ms ease,
        visibility 0s linear 160ms;
}

.welcome-scroll-hint-visible {

    opacity: 1;

    visibility: visible;

    transform: translate(-50%, 0);

    transition-delay: 0s;
}

.welcome-scroll-hint-arrow {

    font-size: 15px;

    line-height: 1;

    animation:
        welcome-scroll-hint-arrow
        1.3s ease-in-out infinite;
}

@keyframes welcome-scroll-hint-arrow {

    0%,
    100% {

        transform: translateY(-1px);
    }

    50% {

        transform: translateY(2px);
    }
}


/* ========================================
   WILLKOMMENS-INHALT
   ======================================== */

.welcome-content {

    min-height: 0;

    padding: 34px;

    overflow-y: auto;

    -webkit-overflow-scrolling: touch;
}


.welcome-logo {

    display: inline-block;

    margin-bottom: 18px;

    padding:
        8px 12px;

    border-radius: 8px;

    background: #102A43;

    color: #ffffff;

    font-size: 14px;

    font-weight: 700;

    letter-spacing: 0.3px;
}


.welcome-content h1 {

    margin:
        0 35px 12px 0;

    color: #102A43;

    font-size: 28px;

    line-height: 1.15;

    font-weight: 750;

    letter-spacing: -0.6px;
}


.welcome-intro {

    margin:
        0 0 28px 0;

    color: #52606D;

    font-size: 16px;

    line-height: 1.55;
}


.welcome-section {

    margin-top: 24px;
}


.welcome-section h2 {

    margin:
        0 0 9px 0;

    color: #243B53;

    font-size: 16px;

    font-weight: 700;
}


.welcome-section p {

    margin:
        7px 0;

    color: #52606D;

    font-size: 14px;

    line-height: 1.55;
}


.welcome-section ul {

    margin:
        8px 0 0 0;

    padding-left: 20px;

    color: #52606D;

    font-size: 14px;

    line-height: 1.6;
}


.welcome-section li {

    margin-bottom: 6px;
}


/* ========================================
   WILLKOMMENS-HINWEIS
   ======================================== */

.welcome-note {

    padding:
        14px 16px;

    background: #F4F7FA;

    border-radius: 12px;

    border-left:
        3px solid #102A43;
}


.welcome-note strong {

    color: #102A43;

    font-size: 14px;
}


/* ========================================
   WILLKOMMENS-BUTTON
   ======================================== */

#welcome-start {

    width: 100%;

    min-height: 50px;

    margin-top: 28px;

    border: none;

    border-radius: 11px;

    background: #102A43;

    color: #ffffff;

    font-family: inherit;

    font-size: 16px;

    font-weight: 600;

    cursor: pointer;

    touch-action: manipulation;
}


#welcome-start:active {

    transform: scale(0.98);
}


/* ========================================
   KURZER ERSTELL-HINWEIS
   ======================================== */

.creation-hint {

    position: fixed;

    top:
        calc(76px + env(safe-area-inset-top));

    left: 50%;

    z-index: 4500;

    max-width:
        calc(100vw - 32px);

    padding:
        11px 17px;

    border-radius: 12px;

    background: #102A43;

    color: #ffffff;

    box-shadow:
        0 8px 24px
        rgba(8, 25, 40, 0.28);

    font-size: 15px;

    font-weight: 650;

    line-height: 1.35;

    text-align: center;

    white-space: nowrap;

    pointer-events: none;

    opacity: 0;

    transform:
        translate(-50%, -8px);

    transition:
        opacity 0.22s ease,
        transform 0.22s ease;
}


.creation-hint-visible {

    opacity: 1;

    transform:
        translate(-50%, 0);
}


@media (prefers-reduced-motion: reduce) {

    #welcome-overlay,
    #welcome-popup,
    .welcome-scroll-hint,
    .welcome-scroll-hint-arrow,
    .creation-hint {

        transition: none;
    }

}


/* ========================================
   WILLKOMMENS-X
   ======================================== */

#welcome-close {

    position: absolute;

    top: 12px;
    right: 12px;

    width: 42px;
    height: 42px;

    display: flex;

    align-items: center;
    justify-content: center;

    padding: 0;

    border: none;

    background: transparent;

    color: #829AB1;

    font-family: inherit;

    font-size: 30px;

    font-weight: 300;

    line-height: 1;

    cursor: pointer;

    border-radius: 50%;

    z-index: 20;

    touch-action: manipulation;
}


#welcome-close:hover {

    background: #F0F4F8;

    color: #102A43;
}


/* ========================================
   MOBILE
   ======================================== */

@media (max-width: 600px) {

    #welcome-overlay {

        padding:
            12px;

        padding-top:
            calc(72px + env(safe-area-inset-top));

        padding-bottom:
            calc(12px + env(safe-area-inset-bottom));

        align-items:
            flex-start;
    }


    #welcome-popup {

        max-height:
            calc(
                100dvh - 84px -
                env(safe-area-inset-top) -
                env(safe-area-inset-bottom)
            );

        border-radius:
            19px;
    }


    .welcome-content {

        padding:
            26px 22px;
    }


    .welcome-logo {

        margin-bottom:
            14px;
    }


    .welcome-content h1 {

        margin-right:
            35px;

        font-size:
            24px;
    }


    .welcome-intro {

        margin-bottom:
            22px;

        font-size:
            15px;
    }


    .welcome-section {

        margin-top:
            20px;
    }


    .welcome-section h2 {

        font-size:
            15px;
    }


    .welcome-section p,
    .welcome-section ul {

        font-size:
            13px;
    }


    #welcome-start {

        min-height:
            50px;

        margin-top:
            22px;
    }


    #welcome-close {

        width:
            42px;

        height:
            42px;

        top:
            8px;

        right:
            8px;
    }

}


/* ========================================
   SEHR KLEINE HANDYS
   ======================================== */

@media (max-width: 380px) {

    .welcome-content {

        padding:
            22px 18px;
    }


    .welcome-content h1 {

        font-size:
            22px;
    }

}
