/* FULL SCREEN MODAL */
.welcome-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
}

/* BLUR BACKGROUND */
.modal-overlay {
    position: absolute;
    inset: 0;
    backdrop-filter: blur(12px);
    background: rgba(0,0,0,0.5);
}

/* CENTERING WRAPPER */
.modal-center {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* 4:5 CARD */
.modal-card {
    position: relative;

    height: 90vh;
    width: 80vw;
    max-width: 700px;

    aspect-ratio: 4 / 5;   /* 🔥 THIS FIXES YOUR ISSUE */

    border-radius: 16px;
    overflow: hidden;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    text-align: center;
    color: #fff;
    padding: 20px;
}

/* IMAGE */
.modal-card::before {
    content: "";
    position: absolute;
    inset: 0;

    background: url("../images/gandr-collage.jpg") center/cover no-repeat;

    z-index: 0;
}

/* COLOR LAYER */
.modal-card::after {
    content: "";
    position: absolute;
    inset: 0;

    background: radial-gradient(
        circle at center,
        rgba(0,0,0,0.8) 0%,
        rgba(0,0,0,0.5) 80%
    );

    z-index: 1;
}

/* CONTENT ABOVE */
.modal-card > * {
    position: relative;
    z-index: 2;
}

/* TEXT */
.top-text {
    font-size: 16px;
}

.tagline {
    font-size: 28px;
    color: yellow;
    font-style: italic;
    text-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}

.welcome-text {
    font-size: 26px;
    text-shadow: 0 0 5px rgba(53, 53, 53, 0.3);
}

.big-world {
    font-size: 80px;
    font-weight: 900;
    display: flex;
    gap: 0px;
}

/* individual tilt */
.big-world span:nth-child(1) { transform: rotate(10deg); }
.big-world span:nth-child(2) { transform: rotate(-5deg); }
.big-world span:nth-child(3) { transform: rotate(6deg); }
.big-world span:nth-child(4) { transform: rotate(-8deg); }
.big-world span:nth-child(5) { transform: rotate(-6deg); }

.big-world span{
    margin-left: -3px;
    margin-right: -3px;
}

.big-world span {
    display: inline-block;
    transition: 0.3s;
    text-shadow: 0 0 5px rgba(39, 39, 39, 0.3);
}

.big-world span:hover {
    transform: scale(1.2) rotate(0deg);
}

/* BUTTON */
.modal-card button {
    margin-top: 15px;
    padding: 10px 50px;
    border-radius: 6px;
    border: none;
    background: white;
    cursor: pointer;
}

/* WRAPPER */
.arrow-wrap {
    margin-top: 10px;
    display: flex;
    justify-content: center;
}

/* SVG */
.cta-arrow {
    width: 60px;
    display: block;
    margin: 10px auto 0;
    margin-left: 150px;
    margin-top: -20px;
    transform: rotate(120deg);

    animation: arrowBounce 1.5s ease-in-out infinite;
}

/* bounce keeps same angle */
@keyframes arrowBounce {
    0%, 100% {
        transform: translateY(0) rotate(230deg);
    }
    50% {
        transform: translateY(10px) translateX(10px) rotate(230deg);
    }
}
/* FOOTER */
.bottom-text {
    position: absolute;
    bottom: 10px;
    font-size: 12px;
    opacity: 0.7;
}

/* HIDE */
.welcome-modal.hide {
    opacity: 0;
    pointer-events: none;
    transition: 0.4s;
}

/* BLUR BACKGROUND */
.modal-overlay {
    position: absolute;
    inset: 0;
    backdrop-filter: blur(10px);

    background:
        radial-gradient(circle at top left, rgba(84, 114, 72, 0.6), transparent 30%),
        radial-gradient(circle at top right, rgba(255, 123, 0, 0.4), transparent 30%),
        radial-gradient(circle at bottom left, rgba(71, 203, 255, 0.4), transparent 30%),
        radial-gradient(circle at bottom right, rgba(122, 81, 126, 0.6), transparent 30%);
}
/* CONTENT */
.modal-content {
    position: relative;
    text-align: center;
    color: #fff;
    width: 100%;
    height: 100%;
    padding: 40px;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    overflow: hidden;
}

/* BACKGROUND IMAGE (4:5 STYLE) */
.modal-content::before {
    content: "";
    position: absolute;
    inset: 0;

    background: url("../images/gandr-collage.jpg") center/cover no-repeat;

    /* FORCE PORTRAIT FEEL */
    aspect-ratio: 4 / 5;
    
    /* Ensure it fills screen nicely */
    width: 100%;
    height: 100%;

    z-index: 0;
}

/* COLOR OVERLAY */
.modal-content::after {
    content: "";
    position: absolute;
    inset: 0;

    background: linear-gradient(
        rgba(20, 20, 20, 0.7),
        rgba(0, 0, 0, 0.9)
    );

    z-index: 1;
}

/* KEEP TEXT ABOVE OVERLAY */
.modal-content > * {
    position: relative;
    z-index: 2;
}

/* TEXT STYLING */

.top-text {
    font-size: 24px;
    font-weight: 600;
    margin-bottom: 10px;
}

.tagline {
    font-size: 65px;
    color: gold;
    font-style: italic;
    margin-bottom: 20px;
}

.welcome-text {
    font-size: 33px;
    margin-bottom: -10px;
    font-family: "Play", sans-serif;
    font-weight: 500;
}


.welcome-text span {
    font-weight: 800;
    font-family: "Play", sans-serif;
}

.big-world {
    display: flex;
    font-size: 115px;
    font-weight: 900;
    margin: 20px 0;
    letter-spacing: 5px;
}


/* MASCOT POSITION */
.mascot {
    position: absolute;

    right: -105px;   /* move further since it's bigger */
    bottom: -35px;   /* align with bigger text baseline */

    width: 160px;    /* 🔥 bigger mascot */
    height: auto;

}


/* BUTTON */
.modal-content button {
    padding: 12px 25px;
    font-size: 18px;
    border: none;
    border-radius: 6px;
    background: #fff;
    color: #000;
    cursor: pointer;
    margin-top: 20px;
    transition: 0.3s;
}

.modal-content button:hover {
    background: #ffcc00;
}

/* FOOTER TEXT */
.bottom-text {
    position: absolute;
    bottom: 20px;
    font-size: 14px;
    opacity: 0.8;
}

/* HIDE ANIMATION */
.welcome-modal.hide {
    opacity: 0;
    pointer-events: none;
    transition: 0.5s ease;
}

/* BASE */
.splash {
    position: absolute;
    width: 150px;
    opacity: 0;
    transform: scale(0) rotate(0deg);
    pointer-events: none;
}

/* POSITIONS */
.s1 { top: 0%; left: -4%; }
.s2 { top: 0%; right: -4%; }
.s3 { top: 83%; left: -4%; }
.s4 { top: 83%; right: -4%; }

/* POP ANIMATION */
@keyframes splashPop {
    0% {
        transform: scale(0) rotate(-180deg);
        opacity: 0;
    }
    60% {
        transform: scale(1.2) rotate(10deg);
        opacity: 1;
    }
    80% {
        transform: scale(0.95) rotate(-5deg);
    }
    100% {
        transform: scale(1) rotate(0deg);
        opacity: 1;
    }
}

@keyframes splashPopEnd {
    0% {
        transform: scale(1.5) rotate(0deg);
    }
    50% {
        transform: scale(1.8) rotate(3deg);
    }
    100% {
        transform: scale(1.5) rotate(0deg);
    }
}

/* LEFT TOP */
@keyframes splashThrow1 {
    0% {
        transform: translate(-300px, -300px) scale(0.2) rotate(-200deg);
        opacity: 0;
    }
    70% {
        transform: translate(0, 0) scale(1.2) rotate(15deg);
        opacity: 1;
    }
    100% {
        transform: scale(1.5) rotate(0deg);
        opacity: 1;
    }
}

/* RIGHT TOP */
@keyframes splashThrow2 {
    0% {
        transform: translate(300px, -300px) scale(0.2) rotate(200deg);
        opacity: 0;
    }
    70% {
        transform: translate(0, 0) scale(1.2) rotate(-15deg);
        opacity: 1;
    }
    100% {
        transform: scale(1.3) rotate(0deg);
        opacity: 1;
    }
}

/* LEFT BOTTOM */
@keyframes splashThrow3 {
    0% {
        transform: translate(-300px, 300px) scale(0.2) rotate(-150deg);
        opacity: 0;
    }
    70% {
        transform: translate(0, 0) scale(1.2) rotate(10deg);
        opacity: 1;
    }
    100% {
        transform: scale(1.3) rotate(0deg);
        opacity: 1;
    }
}

/* RIGHT BOTTOM */
@keyframes splashThrow4 {
    0% {
        transform: translate(300px, 300px) scale(0.2) rotate(150deg);
        opacity: 0;
    }
    70% {
        transform: translate(0, 0) scale(1.2) rotate(-10deg);
        opacity: 1;
    }
    100% {
        transform: scale(1.3) rotate(0deg);
        opacity: 1;
    }
}

/* APPLY WITH DELAY (stagger effect) */
.s1 {
    animation:
        splashThrow1 0.7s ease-out 0.2s forwards,
        splashPopEnd 2.5s ease-in-out calc(0.2s + 5.7s) infinite;
}

.s2 {
    animation:
        splashThrow2 0.7s ease-out 0.4s forwards,
        splashPopEnd 2.5s ease-in-out calc(0.4s + 0.7s + 0.5s) infinite;
}

.s3 {
    animation:
        splashThrow3 0.7s ease-out 0.6s forwards,
        splashPopEnd 2.5s ease-in-out calc(0.6s + 0.7s + 3s) infinite;
}

.s4 {
    animation:
        splashThrow4 0.7s ease-out 0.8s forwards,
        splashPopEnd 2.5s ease-in-out calc(0.8s + 0.7s + 1.5s) infinite;
}

.birthstone-regular {
  font-family: "Birthstone", cursive;
  font-weight: 500;
  font-style: normal;
}

.modal-card button {
    margin-top: 15px;
    padding: 12px 28px;
    border-radius: 50px;
    border: none;
    cursor: pointer;
    font-weight: 600;
    color: #fff;

    background: linear-gradient(
        135deg,
        #ff477e,
        #ff9f1c,
        #00c2ff,
        #7b2cbf
    );

    background-size: 300% 300%;
    animation: 
        buttonPop 0.5s ease-out 1.2s forwards,
        floaty 3s ease-in-out infinite 2s,
        gradientMove 6s ease infinite;
        /* heartbeat 2.5s ease-in-out infinite 2s; */

    box-shadow: 0 10px 25px rgba(0,0,0,0.3);
}

@keyframes gradientMove {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

@keyframes heartbeat {
    0%, 100% {
        transform: scale(1);
    }
    25% {
        transform: scale(1.05);
    }
    40% {
        transform: scale(1);
    }
    60% {
        transform: scale(1.05);
    }
}

.world-wrap {
    position: relative;
    display: inline-block;
}

/* TABLET */
@media (max-width: 1024px) {

    .modal-card {
        width: 90vw;
        height: 90vh;
        aspect-ratio: 9 / 16;
    }

    .big-world {
        font-size: 100px;
    }

    .tagline {
        font-size: 45px;
    }

    .welcome-text {
        font-size: 26px;
    }

    .mascot {
        width: 135px;
        right: -90px;
        bottom: -25px;
    }
}


/* MOBILE */
@media (max-width: 768px) {

    .modal-card {
        width: 95vw;
        height: auto;
        padding: 15px;
    }

    .big-world {
        font-size: 55px;
        letter-spacing: 2px;
    }

    .tagline {
        font-size: 32px;
    }

    .welcome-text {
        font-size: 20px;
    }

    .top-text {
        font-size: 14px;
    }

    .modal-content button {
        font-size: 14px;
        padding: 10px 20px;
    }

    .mascot {
        width: 100px;
        right: -40px;
        bottom: -15px;
    }
    
    .splash {
        width: 140px;
    }

    /* adjust positions slightly so they stay visible */
    .s1 { left: -6%; top: 0%; }
    .s2 { right: -6%; top: 0%; }
    .s3 { left: -6%; top: 85%; }
    .s4 { right: -6%; top: 85%; }
}


/* SMALL MOBILE */
@media (max-width: 480px) {

    .big-world {
        font-size: 60px;
    }

    .tagline {
        font-size: 24px;
    }

    .welcome-text {
        font-size: 16px;
    }

    .mascot {
        width:90px;
        right: -75px;
        bottom: -10px;
    }

    .modal-content button {
        font-size: 12px;
        padding: 8px 16px;
    }
    
     .splash {
        width: 110px;
    }

    .s1 { left: -8%; }
    .s2 { right: -8%; }
    .s3 { left: -8%; }
    .s4 { right: -8%; }
}