/* ==========================================
   MEMORY 2 — DISCOVERY SCREEN
========================================== */

#memory2{

    position:fixed;
    inset:0;

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

    width:100%;
    height:100%;

    padding:24px 20px 70px;

    box-sizing:border-box;

    overflow:hidden;

    text-align:center;

    color:#fff;

    background:

    radial-gradient(
        circle at 50% 42%,
        rgba(255,215,106,.11),
        transparent 48%
    ),

    linear-gradient(
        180deg,
        #030711 0%,
        #071426 50%,
        #0a1c31 100%
    );
}


/* ==========================================
   VIGNETTE
========================================== */

#memory2::after{

    content:"";

    position:absolute;

    inset:0;

    pointer-events:none;

    background:

    radial-gradient(
        circle,
        transparent 40%,
        rgba(0,0,0,.18) 72%,
        rgba(0,0,0,.58) 100%
    );

    z-index:10;
}


/* ==========================================
   CONTENT
========================================== */

.memory2-content{

    position:relative;

    z-index:20;

    width:100%;

    max-width:350px;

    margin:0 auto;

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    text-align:center;
}


/* ==========================================
   KICKER
========================================== */

.memory2-kicker{

    width:100%;

    margin:0;

    font-size:10px;

    font-weight:600;

    letter-spacing:4px;

    line-height:1.6;

    color:#D9B65C;

    text-align:center;
}


/* ==========================================
   DIVIDER
========================================== */

.memory2-line{

    display:flex;

    align-items:center;

    justify-content:center;

    width:170px;

    height:22px;

    margin:20px auto 24px;
}


.memory2-line span{

    width:55px;

    height:1px;

    display:block;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,215,106,.65)
        );
}


.memory2-line span:last-child{

    background:
        linear-gradient(
            90deg,
            rgba(255,215,106,.65),
            transparent
        );
}


.memory2-line i{

    width:30px;

    font-size:15px;

    font-style:normal;

    color:#FFD76A;

    text-shadow:
        0 0 12px rgba(255,215,106,.8);
}


/* ==========================================
   TITLE
========================================== */

.memory2-title{

    width:100%;

    margin:0;

    padding:0;

    font-size:clamp(38px,10vw,48px);

    font-weight:700;

    line-height:1.16;

    letter-spacing:-.8px;

    color:#fff;

    text-align:center;
}


.memory2-title br + *{

    color:#FFE08A;
}


/* ==========================================
   TEXT
========================================== */

.memory2-text{

    width:100%;

    max-width:310px;

    margin:28px auto 0;

    padding:0;

    font-size:16px;

    font-weight:400;

    line-height:1.75;

    color:rgba(255,255,255,.72);

    text-align:center;

    box-sizing:border-box;
}


/* ==========================================
   REVEAL BUTTON
========================================== */

.memory2-reveal{

    display:flex;

    align-items:center;

    justify-content:center;

    gap:14px;

    width:205px;

    height:56px;

    margin:32px auto 0;

    padding:0 22px;

    border:
        1px solid
        rgba(255,215,106,.38);

    border-radius:999px;

    background:
        rgba(255,255,255,.045);

    backdrop-filter:blur(14px);

    -webkit-backdrop-filter:blur(14px);

    color:#FFE7A0;

    font-family:inherit;

    font-size:15px;

    font-weight:600;

    letter-spacing:.2px;

    cursor:pointer;

    box-sizing:border-box;

    box-shadow:
        0 0 24px rgba(255,215,106,.06);

    transition:
        transform .25s ease,
        background .3s ease,
        border-color .3s ease,
        box-shadow .3s ease;
}


.memory2-reveal:hover{

    transform:translateY(-2px);

    background:
        rgba(255,215,106,.08);

    border-color:
        rgba(255,215,106,.65);

    box-shadow:
        0 8px 30px rgba(255,215,106,.13);
}


.memory2-reveal:active{

    transform:scale(.97);
}


.memory2-reveal b{

    font-size:19px;

    font-weight:400;

    transition:
        transform .25s ease;
}


.memory2-reveal:hover b{

    transform:translateX(4px);
}


/* ==========================================
   BOTTOM NOTE
========================================== */

.memory2-note{

    position:absolute;

    left:50%;

    bottom:22px;

    z-index:20;

    width:100%;

    margin:0;

    transform:translateX(-50%);

    font-size:10px;

    letter-spacing:1.5px;

    line-height:1.5;

    color:rgba(255,255,255,.28);

    text-align:center;
}


/* ==========================================
   GOLDEN GLOW
========================================== */

.memory2-glow{

    position:absolute;

    left:50%;

    top:42%;

    width:360px;

    height:360px;

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

    border-radius:50%;

    background:

        radial-gradient(
            circle,
            rgba(255,215,106,.13),
            transparent 68%
        );

    filter:blur(35px);

    pointer-events:none;

    z-index:1;

    animation:
        memory2Glow 7s ease-in-out infinite;
}


@keyframes memory2Glow{

    0%,100%{

        transform:
            translate(-50%,-50%)
            scale(1);

        opacity:.45;
    }

    50%{

        transform:
            translate(-50%,-50%)
            scale(1.12);

        opacity:.75;
    }
}


/* ==========================================
   STARS
========================================== */

.memory2-stars{

    position:absolute;

    inset:0;

    overflow:hidden;

    pointer-events:none;

    z-index:3;
}


.memory2-stars span{

    position:absolute;

    display:block;

    width:2px;

    height:2px;

    border-radius:50%;

    background:#fff;

    box-shadow:
        0 0 8px rgba(255,255,255,.75);

    opacity:.3;

    animation:
        memory2Twinkle 4s ease-in-out infinite;
}


.memory2-stars span:nth-child(1){
    top:13%;
    left:17%;
}

.memory2-stars span:nth-child(2){
    top:27%;
    left:82%;
    animation-delay:.7s;
}

.memory2-stars span:nth-child(3){
    top:43%;
    left:9%;
    animation-delay:1.5s;
}

.memory2-stars span:nth-child(4){
    top:59%;
    left:91%;
    animation-delay:2.2s;
}

.memory2-stars span:nth-child(5){
    top:76%;
    left:25%;
    animation-delay:1s;
}

.memory2-stars span:nth-child(6){
    top:84%;
    left:74%;
    animation-delay:2.8s;
}


@keyframes memory2Twinkle{

    0%,100%{

        opacity:.18;

        transform:scale(1);
    }

    50%{

        opacity:.8;

        transform:scale(1.8);
    }
}


/* ==========================================
   MEMORY 2 — PHOTO CARD
========================================== */

.memory2-card{

    width:100%;

    max-width:300px;

    margin:28px auto 0;

    display:flex;

    flex-direction:column;

    align-items:center;

    opacity:0;

    visibility:hidden;

    transform:
        translateY(24px)
        scale(.96);

    pointer-events:none;

    transition:
        opacity .9s ease,
        transform 1s cubic-bezier(.22,1,.36,1),
        visibility 0s linear .9s;
}


.memory2-card.revealed{

    opacity:1;

    visibility:visible;

    transform:
        translateY(0)
        scale(1);

    pointer-events:auto;

    transition:
        opacity .9s ease,
        transform 1s cubic-bezier(.22,1,.36,1);
}


/* ==========================================
   PHOTO
========================================== */

.memory2-card-image{

    position:relative;

    width:100%;

    aspect-ratio:3 / 4;

    overflow:hidden;

    border-radius:22px;

    background:#081322;

    border:
        1px solid
        rgba(255,215,106,.22);

    box-shadow:
        0 20px 55px rgba(0,0,0,.45),
        0 0 35px rgba(255,215,106,.10);
}


.memory2-card-image img{

    display:block;

    width:100%;

    height:100%;

    object-fit:cover;

    object-position:center center;

    opacity:0;

    filter:
        blur(14px)
        brightness(.82);

    transform:scale(1.06);

    transition:
        opacity 1.2s ease,
        filter 1.4s ease,
        transform 1.4s
        cubic-bezier(.22,1,.36,1);
}


.memory2-card.revealed
.memory2-card-image img{

    opacity:1;

    filter:
        blur(0)
        brightness(1);

    transform:scale(1);
}


/* ==========================================
   CAPTION
========================================== */

.memory2-card-caption{

    max-width:285px;

    margin:17px auto 0;

    font-size:14px;

    line-height:1.65;

    color:rgba(255,255,255,.76);

    text-align:center;
}


/* ==========================================
   CONTINUE BUTTON
========================================== */

.memory2-next{

    display:flex;

    align-items:center;

    justify-content:center;

    gap:13px;

    min-width:190px;

    height:50px;

    margin:24px auto 0;

    padding:0 22px;

    border:
        1px solid
        rgba(255,215,106,.32);

    border-radius:999px;

    background:
        rgba(255,255,255,.045);

    color:#FFE7A0;

    font-family:inherit;

    font-size:14px;

    font-weight:600;

    cursor:pointer;

    backdrop-filter:blur(12px);

    -webkit-backdrop-filter:blur(12px);

    opacity:0;

    visibility:hidden;

    transform:translateY(14px);

    pointer-events:none;

    transition:
        opacity .7s ease,
        transform .7s ease,
        border-color .3s ease,
        background .3s ease,
        box-shadow .3s ease;
}


.memory2-next.visible{

    opacity:1;

    visibility:visible;

    transform:translateY(0);

    pointer-events:auto;
}


.memory2-next b{

    font-size:18px;

    font-weight:400;

    transition:
        transform .25s ease;
}


.memory2-next:hover{

    background:
        rgba(255,215,106,.07);

    border-color:
        rgba(255,215,106,.58);

    box-shadow:
        0 8px 25px
        rgba(255,215,106,.10);
}


.memory2-next:hover b{

    transform:translateX(4px);
}


.memory2-next:active{

    transform:scale(.97);
}


/* ==========================================
   REVEALED MODE
========================================== */

#memory2.memory2-revealed
.memory2-kicker,

#memory2.memory2-revealed
.memory2-line,

#memory2.memory2-revealed
.memory2-title,

#memory2.memory2-revealed
.memory2-text,

#memory2.memory2-revealed
.memory2-reveal{

    display:none !important;
}


#memory2.memory2-revealed
.memory2-content{

    max-width:320px;
}


#memory2.memory2-revealed
.memory2-card{

    margin:0 auto;

    max-width:300px;
}


#memory2.memory2-revealed
.memory2-next{

    margin-top:20px;
}


#memory2.memory2-revealed
.memory2-note{

    display:none;
}


/* ==========================================
   SHORT SCREEN
========================================== */

@media (max-height:700px){

    .memory2-line{

        margin-top:14px;

        margin-bottom:18px;
    }


    .memory2-text{

        margin-top:20px;
    }


    .memory2-reveal{

        margin-top:24px;
    }


    .memory2-note{

        display:none;
    }
}


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

@media (max-width:420px){

    #memory2{

        align-items:flex-start;

        padding:
            95px 20px 70px;

        overflow-y:auto;

        overflow-x:hidden;
    }


    .memory2-content{

        max-width:340px;

        margin-top:0;

        padding-bottom:30px;
    }


    .memory2-kicker{

        font-size:9.5px;

        letter-spacing:3.5px;
    }


    .memory2-line{

        margin-top:18px;

        margin-bottom:22px;
    }


    .memory2-title{

        font-size:40px;

        line-height:1.15;
    }


    .memory2-text{

        max-width:300px;

        margin-top:24px;

        font-size:15.5px;

        line-height:1.7;
    }


    .memory2-reveal{

        width:205px;

        height:54px;

        margin-top:28px;
    }


    .memory2-card{

        max-width:295px;
    }


    .memory2-card-image{

        border-radius:20px;
    }


    .memory2-card-caption{

        margin-top:16px;

        font-size:14px;
    }


    .memory2-next{

        min-width:180px;

        height:48px;

        margin-top:20px;

        font-size:14px;
    }
}
/* ==========================================
   MEMORY 2 — NEXT BUTTON POSITION FIX
========================================== */

#memory2 .memory2-next{

    position:relative;

    display:flex;

    align-items:center;

    justify-content:center;

    width:190px;

    height:50px;

    margin:22px auto 0;

    transform:translateY(14px);

    box-sizing:border-box;

}


/* Revealed state */

#memory2 .memory2-next.visible{

    transform:translateY(0);

}


/* Keep caption above button */

#memory2 .memory2-caption{

    position:relative;

    z-index:5;

    margin-bottom:0;

}