* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html,
body {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

body {
    background: #111;
    color: #fff;
    /*font-family: Arial, Helvetica, sans-serif;*/
}


.quicksand-<uniquifier> {
  font-family: "Quicksand", sans-serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
}
/* =================================
   MAIN
================================= */

.story {
    width: 100vw;
    height: 100vh;

    display: grid;
    grid-template-columns: 50% 50%;
}


/* =================================
   LEFT IMAGE
================================= */

.visual-column {
    width: 100%;
    height: 100%;
}

.visual-frame {
    width: 100%;
    height: 100%;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 60px;
}

.image-stack {
    position: relative;

    width: 100%;
    max-width: 700px;

    aspect-ratio: 4 / 3;

    overflow: hidden;

    background: #222;
}

.story-image {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;

    opacity: 0;

    transform: scale(1.05);

    transition:
        opacity 0.8s ease,
        transform 1.2s ease;
}

.story-image.active {
    opacity: 1;
    transform: scale(1);
}


/* =================================
   RIGHT CONTENT
================================= */

.content-column {
    width: 100%;
    height: 100%;

    display: flex;
    align-items: center;
}

.story-content {
    width: 100%;
    padding: 60px 12%;
}


/* =================================
   NUMBER
================================= */

.section-number {
    font-size: 12px;
    letter-spacing: 0.3em;
    color: #777;

    margin-bottom: 25px;
}


/* =================================
   TITLE
================================= */

#story-title {
    display: flex;
    flex-wrap: wrap;

    font-size: clamp(45px, 6vw, 100px);

    font-weight: 700;

    line-height: 1;

    letter-spacing: 0.04em;

    margin-bottom: 40px;

    min-height: 1em;

    perspective: 700px;
}


/* =================================
   PARAGRAPH
================================= */

#story-text {
    max-width: 550px;

    font-size: 20px;

    line-height: 1.7;

    color: #aaa;

    min-height: 10em;

    perspective: 700px;
    
    
}

/* =================================
   απο gemini.css
================================*/
.flip-word {
    display: inline-block;
    white-space: nowrap;
}
/*===============================
   AIRPORT CHARACTERS
================================= */

.flip-character {
    display: inline-block;

    position: relative;

    transform-style: preserve-3d;

    transform-origin: center center;

    backface-visibility: hidden;

    will-change: transform;

    /*
     * Πολύ σημαντικό:
     * σταθερό πλάτος ώστε
     * τίποτα να μην "χορεύει".
     */

    width: 0.62em;

    text-align: center;
}


/*
 * Τα κενά.
 */

.flip-space {
    display: inline-block;

    width: 0.50em;
}


/* =================================
   TITLE FLIP
================================= */

#story-title .flip-character {
    animation:
        airportFlip 0.38s
        cubic-bezier(.4, 0, .2, 1)
        both;
}


/* =================================
   PARAGRAPH FLIP
================================= */

#story-text .flip-character {
    animation:
        airportFlipSmall 0.28s
        cubic-bezier(.4, 0, .2, 1)
        both;
}


/* =================================
   3D FLIP
================================= */

@keyframes airportFlip {

    0% {
        transform:
            rotateX(-90deg);
        opacity: 0;
    }

    45% {
        transform:
            rotateX(35deg);
        opacity: 1;
    }

    75% {
        transform:
            rotateX(-12deg);
    }

    100% {
        transform:
            rotateX(0deg);
        opacity: 1;
    }
}


@keyframes airportFlipSmall {

    0% {
        transform:
            rotateX(-90deg);
        opacity: 0;
    }

    60% {
        transform:
            rotateX(15deg);
        opacity: 1;
    }

    100% {
        transform:
            rotateX(0deg);
        opacity: 1;
    }
}


/* =================================
   PROGRESS
================================= */

.progress {
    position: fixed;

    top: 0;
    left: 0;

    width: 100%;

    height: 3px;

    background: rgba(255,255,255,0.08);

    z-index: 100;
}

.progress-bar {
    width: 0%;
    height: 100%;

    background: #fff;

    transition:
        width 0.4s ease;
}


/* =================================
   DOTS
================================= */

.dots {
    position: fixed;

    right: 30px;
    top: 50%;

    transform: translateY(-50%);

    display: flex;
    flex-direction: column;

    gap: 12px;

    z-index: 100;
}

.dot {
    width: 8px;
    height: 8px;

    border: none;

    border-radius: 50%;

    background: #555;

    cursor: pointer;

    transition:
        transform 0.3s ease,
        background 0.3s ease;
}

.dot.active {
    background: #fff;

    transform: scale(1.6);
}


/* =================================
   MOBILE
================================= */

@media (max-width: 800px) {

    .story {
        grid-template-columns: 1fr;
    }

    .visual-column {
        position: absolute;

        inset: 0;

        z-index: 0;

        opacity: 0.25;
    }

    .visual-frame {
        padding: 25px;
    }

    .content-column {
        position: relative;

        z-index: 2;

        height: 100%;
    }

    .story-content {
        padding: 40px 30px;
    }

    #story-title {
        font-size: 14vw;
    }

    #story-text {
        font-size: 17px;
    }

    .dots {
        right: 15px;
    }
}