:root {
    --footer-blu: #101B34;
    --dark-blu: #111E3B;
    --card-dark-blu: #17294A;
    --light-blu: #61A9FC;
    --lb-transp: rgba(97,169,252,0.1);
    --lb-transp-hover: rgba(97,169,252,0.2);
    --lb-transp-3: rgba(97,169,252,0.07);
    --grey: #7485AA;    
    --white: #F4F8FB;
    --gradient: linear-gradient(35Deg, #61A9FC, #315BCE);
    --text: 'Source Sans 3', sans-serif;
    --kern: -.4px;

    --glow-shadow: 0px 0px 40px rgba(97,169,252,0.2);
    --glow-shadow-hover: 0px 0px 60px rgba(97,169,252,0.5);
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body,html {
    margin:0;
    color:var(--grey);
    font-family: var(--text);
    font-weight:400;
    text-rendering: geometricPrecision;
    
}

main {
    background-color:var(--dark-blu);
    width:100%;
    height: 100svh;
    overflow: hidden;
    background-image:url('../img/backgrounds/background.png');
    background-size:cover;
}

header {
    position:fixed;
    top:0;
    width:100%;
    height:80px;
    display:flex;
    align-items: center;
    justify-content: center;
}

header img {
    width:114px;
    
}

.area {
    width:calc(100% - 40px);
    display:flex;
    align-items: center;
    justify-content: center;
    min-height:100svh;
    padding:80px 0px;
    margin:auto;
    position:relative;
    perspective: 800px;
}

.white {
    color:var(--white);
}

.small {
    font-size:13px;
}

.title-small {
    font-size:28px;
    font-weight:800;
    line-height:1.2em;
}

p {
    font-size:16px;
    line-height:1.6em;
    margin:0;
}


/* generic card*/
.generic-card {
    width:410px;
    position:relative;
    
}


.glow-back:before {
    content:"";
    width:calc(100% + 0px);
    height:calc(100% + 0px);
    position:absolute;
    left:-0px;
    top:-0px;
    background:var(--gradient);
    border-radius:30px;
    transition-duration:.3s;
    opacity:0;
    box-shadow: var(--glow-shadow);
}

.glow-back:hover:before{
    opacity:1;
    width:calc(100% + 6px);
    height:calc(100% + 6px);
    left:-3px;
    top:-3px;
}


.generic-card .wrappo {
    border-radius:28px;
    padding:35px;
    background-color:var(--card-dark-blu);
    position:relative;
    overflow:hidden;
    min-height:400px;
}

.button {
    text-transform: uppercase;
    font-weight:800;
    font-size:18px;
    color:var(--white);
    border-radius:50px;
    padding:14px 38px;
    transition-duration: .3s;
    line-height:1em;
    display:inline-block;
    text-decoration: none;
    border:none;
    font-family: var(--text);
    text-align: center;
    width:100%;
    margin-top:30px;
    text-align: center;
    cursor:pointer;
}

.primary {
    background:var(--gradient);
    box-shadow: var(--glow-shadow);
}

.primary:hover {
    box-shadow: var(--glow-shadow-hover);
    transform:scale(1.015);
}

.generic-card .top {
    text-align: center;
}

.top img {
    width:100px;
    aspect-ratio: 1 / 1;
    border-radius: 100%;
    margin-bottom:16px;

}

.generic-card .center {
    display:flex;
    gap:20px;
    margin-top:40px;
    margin-bottom:20px;
}

.generic-card .data-areas {
    border-radius:12px;
    padding:14px;
    background:var(--lb-transp);
    width:100%;
    text-align: center;
}

.generic-card .data-areas img {
    width:26px;
}

.generic-card .data-areas .small {
    line-height:1.2em;
    margin-top:6px;
}

#inviter-avatar {
    position:absolute;
    top:14px;
    left:14px;
}

#inviter-avatar img {
    width:40px;
    aspect-ratio: 1 / 1;
    border-radius: 100%;
}
#step-1.pre {
    opacity:0;
    transform:translateX(-50%) translateY(40px) translateZ(0px);
}

#step-1 {
    position:absolute;
    transition-duration: .6s;
    left:50%;
    transform:translateX(-50%) translateY(0px) translateZ(0px);

}

#step-1.vanish {
    opacity:0;
    transform:translateX(-50%) translateY(-80px) translateZ(-500px);
}

#step-2 {
    position:absolute;
    transition-duration: .6s;
    left:50%;
    transform:translateX(-50%) translateY(-50%);
    top:60%;
    opacity:0;
    pointer-events: none;
}

#step-2.appear {
    opacity:1;
    top:calc(50% + 20px);
    pointer-events: all;
}



#qr-area {
    max-width:500px;
    text-align: center;
    margin:auto;

}

#qr-area img,
#qr-area canvas {
    width:100%;
    aspect-ratio: 1/1;
}

#step-2 .generic-card  .wrappo {
    padding:25px;
}

.message {
    text-align: center;
    padding:20px 0px 40px 0px;
}

.message p:first-child {
    margin-bottom:8px;
}

#back {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    cursor:pointer;
    padding:2px 20px;
    border-radius: 40px;
    background:transparent;
    transition-duration: .3s;
}

#back:hover {
    background:var(--lb-transp);
}

.message-resp {
    display:none;
    text-align: center;
}




#step-2.vanish {
    opacity:0;
    transform:translateX(-50%) translateY(-380px) translateZ(-500px);
    pointer-events: none;
}

#step-3,
#step-zero {
    text-align: center;
    position:absolute;
    transition-duration: .6s;
    left:50%;
    transform:translateX(-50%) translateY(-50%);
    top:60%;
    opacity:0;
    pointer-events: none;
}

#step-3  .wrappo,
#step-zero  .wrappo {
    min-height:max-content;
}

#step-3 img,
#step-zero img {
    width: 76px;
    margin-bottom:20px;
}


#step-3.appear,
#step-zero.appear {
    opacity:1;
    top:calc(50% + 20px);
    pointer-events: all;
}

#step-3 .glow-back:before,
#step-zero .glow-back:before {
    opacity:1;
    width:calc(100% + 6px);
    height:calc(100% + 6px);
    left:-3px;
    top:-3px;
}


@media screen and (max-width : 600px) {
    #step-1,
    #step-2,
    #step-3,
    #step-zero {
        width:100%;
    }
    .generic-card {
        width:100%;
        position:relative;
        
    }

    .generic-card .center {
        margin-top:30px;
    }

    .message-resp {
        display:block;
        margin-top: 20px;
    }

    .generic-card .wrappo {
        padding:25px;
    }

    .message-resp {
        display:block;
    }
}