* {
    box-sizing: border-box;
}
    
    
html, body {
    margin: 0;
    min-height: 100%;
    background: #03070b;
    color: #eef8ff;
}

body {
    min-height: 100vh;
    display: grid;
    place-items: center;
    overflow: hidden;
    font-family: Arial, Helvetica, sans-serif;
}

body:before {
      content: "";
      position: fixed;
      inset: -25%;
      pointer-events: none;
      background: radial-gradient(circle at 50% 45%, rgba(0, 153, 255, .12), transparent 28%);
      animation: atmosphere 7s ease-in-out infinite;
}

.wrap {
    text-align: center;
    padding: 32px;
    width: min(92vw, 720px);
}

.mark {
    width: min(64vw, 430px);
    aspect-ratio: 1;
    position: relative;
    margin: 0 auto 34px;
    opacity: 0;
    animation: arrive 1.8s cubic-bezier(.2, .8, .2, 1) .15s forwards, float 6s ease-in-out 2s infinite;
    filter: drop-shadow(0 0 22px rgba(0, 157, 255, .15));
}

.mark img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

h1 {
    margin: 0;
    font-size: clamp(2.25rem, 7vw, 4.8rem);
    font-weight: 500;
    letter-spacing: .02em;
    opacity: 0;
    transform: translateY(12px);
    animation: textIn 1s ease 1.35s forwards;
}

p {
    margin: 12px 0 0;
    color: #7e9bad;
    font-size: clamp(.78rem, 2.3vw, 1rem);
    letter-spacing: .22em;
    text-transform: uppercase;
    opacity: 0;
    transform: translateY(8px);
    animation: textIn 1s ease 1.8s forwards;
}


@keyframes arrive {
    from {
        opacity: 0;
        transform: scale(.92);
        filter: blur(10px) drop-shadow(0 0 0 transparent);
    } to {
        opacity: 1;
        transform: scale(1);
        filter: blur(0) drop-shadow(0 0 22px rgba(0,157,255,.15));
    }
}

@keyframes float {
    0%,100% {
        transform: translateY(0);
    } 50% {
        transform: translateY(-8px);
    }
}

@keyframes atmosphere {
    0%,100% {
        opacity: .55;
        transform: scale(.98);
    } 50% {
        opacity: 1;
        transform: scale(1.05);
    }
}

@keyframes textIn {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion:reduce) {
    *,*:before {
        animation: none!important;
    }
    .mark,h1,p {
        opacity: 1;
        transform: none;
    }
}