/* TODO: ...
    - When a sub-menu is open, then screen shrunk, needs to become un-active, so don't see flash. <- should just close it. Along w/ this, when screen is wide, need to click a menu-item to show. Should just be activated when hover, when screen is wide.
    - Header background - Mrs. Poof's creepy eyes - have it appear only when scroll down over her eyes on home screen
    - clip-path for videos, images, ...
    - animate logos
 */

@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
/*@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@500&display=swap');*/

/* Global variables */
:root {
    /* Colors */
    --foreground-color: #fff; /* white */
    --dimmed-foreground-color: rgba(0, 0, 0, 0.40);
    --background-color: #23252B;
    --highlight-color: #19B3D3; /* torquise blue */
    --highlight-darker-color: #0D9DBB; /* darker torquise */
    --header-background-color: #22242A; /* dark gray */
    --sidebar-background-color: #2F323A; /* gray */
    --silver-color: #ccc;
    
    /* Transitions */
    --trans-05: 0.5s;
    
    /* Metrics */
    --section-fade-height: 30px;
    
    /* Layers */
    --layer-9: 999;
    --layer-8: 888;
    --layer-0: 000;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "Poppins", san-serif;
    /*font-family: "Roboto", sans-serif;*/
}

body {
/*    background: blue;*/
    overflow: hidden; /* (1/5) Smooth Scrolling - prevents scrolling from revealing rest of image outside the element's box */
    height: 100vh;
}

.snap-scroll-container {
    width: 100%;
    height: 100%;
    
    /* >>>>>>>>>>>>>>>>> */
    /* CSS Smooth Scroll */
    overflow-y: scroll; /* (2/5) Smooth Scrolling -  allow scrolling again 13:50 https://www.youtube.com/watch?v=y9nlfqT4s9s */
    scroll-behavior: smooth; /* (3/5) Smooth Scrolling -  exponential decayed movement, when coming from a clicked link */
    /*scroll-snap-type: y proximity; /* (4/5) Smooth Scrolling -  Snaps viewport after y scroll action */
    scroll-snap-type: y mandatory; /* (4/5) Smooth Scrolling -  Snaps viewport after y scroll action */
    /* <<<<<<<<<<<<<<<<< */
}

section {
    padding: 20px 100px;
    /*height: 100vh; /* Note: When on, text will overlap when viewport height is small */
    scroll-snap-align: center; /* (5/5) Smooth Scrolling -  Viewport is snapped to the center of this element */
}

/* Text over video overlays */
section h1,
section h2,
section p {
    z-index: var(--layer-8);
}

section p {
    text-indent: 30px;
}

section a {
    font-style: italic;
    color: var(--foreground-color);
/*    visited:*/
}

.section-home {
    position: relative;
    min-height: 100vh; /* expand to 100% of height of the viewport */
    
    background: url(selfie_p.jpg) no-repeat;
    background-size: cover; /* fit to view */
    background-position: center; /* stays center even when viewport shrinks smaller than image */
    
    /* all contents within: */
    display: flex;
    justify-content: center;
    align-items: center;
}

.section-home h1 {
    color: var(--foreground-color);
    font-size: 5vw;
    font-weight: 800;
    text-shadow: 0 5px 25px rgb(0 0 0 / 20%);
    opacity: 0.3;
    white-space: nowrap;
}

/* blend from background color to transparent */
.section-home:before {
    content: '';
    position: absolute;
    background: linear-gradient(to top, #23252B, transparent);
    width: 100%;
    height: 80px;
    bottom: 0;
}

.section-dark {
    position: relative;
    min-height: 100vh; /* expand to 100% of height of the viewport */
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px; /* horizontal space between items*/
    background: #23252B;
    color: var(--foreground-color);
}

.section-light:before {
    content: '';
    position: absolute;
    background: linear-gradient(to bottom, var(--background-color), transparent);
    width: 100%;
    height: var(--section-fade-height);
    top: 0;
    left: 0;
}

.section-light:after {
    content: '';
    position: absolute;
    background: linear-gradient(to top, #23252B, transparent);
    width: 100%;
    height: var(--section-fade-height);
    bottom: 0;
    left: 0;
}

.section-dark h1 {
    font-weight: 700;
    white-space: nowrap;
}

.section-dark h2 {
    font-weight: 500;
    white-space: nowrap;
}

.section-dark p {
    font-size: 1.0em;
    font-weight: 400;
    text-shadow: 0 5px 25px rgb(0 0 0 / 20%);
}

.section-light {
    position: relative;
    min-height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
    background: var(--dimmed-foreground-color);
    
    /* Don't display section items over the fade area between sections */
    padding-top: var(--section-fade-height);
    padding-bottom: var(--section-fade-height);
}

.vertical {
    flex-direction: column;
}

.section-light.vertical {
    gap: 20px;
}

.section-light h2 {
    font-weight: 500;
}

.section-light p {
    font-size: 1.0em;
    font-weight: 400;
    text-shadow: 0 5px 25px rgb(0 0 0 / 20%);
}

.section-lightest {
    position: relative;
    min-height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
}

.section-lightest:before {
    content: '';
    position: absolute;
    background: linear-gradient(to bottom, var(--dimmed-foreground-color), transparent);
    width: 100%;
    height: 30px;
    top: 0;
    left: 0;
}

.quote {
    font-style: italic;
    margin-left: auto; /* flex - center align item */
    /*flex-direction: right;
    /*text-indent: 50px;*/
}

.face_image {
    width: 200px;
    height: 200px;
    border-radius: 150px;
    margin-bottom: 10px;
}

.pic-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-direction: column;
}

.pic-title img:hover {
    transform: scale(1.3);
}

header {
    z-index: var(--layer-9);
    position: fixed; /* don't move when scrolling */
    top: 0;
    left: 0;
    width: 100%;
    display: flex; /* Flexbox - see https://css-tricks.com/snippets/css/a-guide-to-flexbox/ */
    justify-content: space-between; /* space items along main (here, horizontal) axis*/
    align-items: center; /* vertically align content along main axis */
    background: #23252B;
    box-shadow: 0 5px 25px rgb(0 0 0 / 20%);
    padding: 0 100px; /* 100px padding on left and right */
    transition: 0.6s;
}

header .logo {
    color: var(--foreground-color);
    font-size: 1.8em;
    font-weight: 700;
    text-transform: uppercase;
    text-decoration: none;
    letter-spacing: 2px; /* wider space between characters */
}

header .navigation {
    position: relative; /* TODO: why? */
    line-height: 75px;
}

header .navigation .menu {
    position: relative;
    display: flex;
    justify-content: center;
    list-style: none; /* remove bullets */
    user-select: none; /* make text unselectable */
}

/* References to a selectors that are direct descendants of things of class="menu-item" */
.menu-item > a {
    color: var(--foreground-color);
    font-size: 1em;
    text-decoration: none;
    margin: 20px; /* margin of 20px for all sides: top, bottom, left, and right */
    padding: 25px 0; /* TODO: why? */
    white-space: nowrap; /* Stop all the flex vertical resizing craziness */
}

.menu-item > a:hover {
    color: #469DFF;
    transition: 0.65s;
}

.menu-item .sub-menu {
    display: none; /* default hidden. only display when clicked */
    position: absolute; /* TODO: why???? What does this really do??? => like...it tightens up the boundaries to the menu w/o the displayed invisible menus*/
    background: #23252B;
    /*top: 74px;*/
    line-height: 40px; /* vertical spacing between items */
    list-style: none;
    border-radius: 0 0 8px 8px; /* top-left | top-right | bottom-right | bottom-left */
    box-shadow: 0 5px 25px rgb(0 0 0 / 20%);
    
    /* now disable this submenu until it's hovered over */
    pointer-events: none; /* disable change in cursor pointer */
    /*transform: translateY(20px);*/
    opacity: 0;
    
    transition: 0.3s;
    /*transition-property: transform, opacity;*/
    transition-property: opacity;
}

/* show submenu when hovering over a menu-item */
.menu-item:hover .sub-menu {
    pointer-events: all;
    /*transform: translateY(0);*/
    opacity: 1;
}

.menu-item .sub-menu .sub-item {
    position: relative;
    padding: 7px 0; /* top/bottom padding = 7px */
    cursor: pointer; /* clickable */
    box-shadow: inset 0px -30px 5px -30px rgba(255, 255, 255, 0.2); /* gives each item unique button-like border quality */
}

.menu-item .sub-menu .sub-item a {
    color: var(--foreground-color);
    font-size: 1em;
    text-decoration: none;
    padding: 15px 30px;
}

.menu-item .sub-menu .sub-item:hover {
    background: #4080EF;
}

.menu-item .sub-menu .sub-item:last-child:hover {
    border-radius: 0 0 8px 8px; /* rounded corners for last highlighted sub item */
}

.more .more-menu {
    position: absolute;
    background: #23252B;
    list-style: none;
    top: 0; /* shift upward, instead of directly under "Menu >" */
    left: 100%; /* shift over completely */
    white-space: nowrap; /* text on single line */
    border-radius: 0 8px 8px 8px; /* rounded exposed corners */
    overflow: hidden; /* TODO: ? */
    pointer-events: none;
    transform: translateY(20px);
    opacity: 0;
    transition: 0.3s;
    transition-property: transform, opacity;
}

.more:hover .more-menu {
    pointer-events: all;
    transform: translateY(0);
    opacity: 1;
}

.more .more-menu .more-item {
    padding: 7px 0;
    box-shadow: inset 0px -30px 5px -30px rgba(255, 255, 255, 0.2);
}

.more .more-menu .more-item:hover {
    background: #4080EF;
}

/* show menu icon only when in wide view */
.menu-btn {
    display: none;
}










.vertical-box {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
/*    gap: 30px;*/
}

/*.vertical-box p {*/
/*    max-height: 25vh;*/
/*}*/
/**/
/*.vertical-box video {*/
/*    top: 25vh;*/
/*}*/

/* TODO: Wrong approach here */
/* Push video lower. Flexbox gap isn't working... */
.vertical-box video {
    top: 150px;
}



/* Videos */
.video-slide {
    z-index: var(--layer-0);
    position: absolute;
    width: 100%;
    height: 100%;
    opacity: 0%;
/*    max-height: 90vh;*/
/*    max-width: 90vw;*/
}

.video-slide.small-video {
    position: relative
    width: 90%;
    height: 90%;
    
    min-height: 200px;
    /*max-height: 50vh;
    max-width: 20vw;*/
    
    /*max-height: 90vh;
    max-width: 90vw;*/
}

.video-slide.active {
/*    clip-path: circle(150% at 0 50%);*/
    opacity: 100%;
    transition: 2s ease;
/*    transition-property: clip-path, opacity;*/
    transition-property: opacity;
}










/*<img class="overlay" src="https://managedbycats.com/imgs/catSilhouette1.png" width="50" height="60"> */

/* Section Images */
section#about-section-last {
/*    background: url('imgs/catSilhouette1.png') no-repeat center center/cover;*/
}

.overlay {
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0px;
    left: 0px;
    z-index: 999999;
    /* background: green; */
    opacity: 1;
}









/* When screen's width is small enough, ... */
/*@media (max-width: 1060px) {*/
@media (max-width: 700px) {
    header {
        padding: 15px 20px;
    }
    
    section {
        padding: 20px 15px;
    }
    
    section p {
        text-indent: 0px;
    }
    
    /* Change to Wide Menu */
    header .navigation .menu {
        position: fixed;
        display: block;
        background: #23252b;
        min-width: 350px;
        height: 100vh; /* expand the entire height */
        top: 0;
        /*right: 0;*/
        right: -100%; /* shift out of view. Only in view when menu is active */
        padding: 90px 50px;
        visibility: hidden;
        overflow-y: auto; /* where the sub-menu items popup */
        transition: 0.5s;
        transition-property: right, visibility;
    }
    
    /* When menu has an active class, show it */
    header .navigation .menu.active {
        right: 0;
        visibility: visible;
    }
    
    .menu-item {
        position: relative;
    }
    
    .menu-item .sub-menu {
        opacity: 1;
        position: relative; /* places sub-menu within place, instead of overlapping */
        top: 0;
        transform: translateX(10px); /* set more in line w/ other menu items */
        background: rgba(255, 255, 255, 0.1);
        border-radius: 5px;
        overflow: hidden;
    }
    
    /* TODO: what does this do?? */
    .menu-item:hover .sub-menu {
        transform: translateX(10px);
    }
    
    .menu-item .sub-menu .sub-item {
        box-shadow: none;
    }
    
    .menu-item .sub-menu .sub-item:hover {
        background: none;
    }
    
    .menu-item .sub-menu .sub-item a:hover {
        color: #4080EF;
        transition: 0.3s;
    }
    
    .more .more-menu {
        opacity: 1;
        position: relative;
        left: 0;
        transform: translateY(0);
        background: rgba(255, 255, 255, 0.1);
        border-radius: 5px;
        display: none; /* hide until toggled (see javascript) */
    }

    .more .more-menu .more-item {
        box-shadow: none;
    }
    
    .more .more-menu .more-item:hover {
        background: none;
    }
    
    .more .more-menu .more-item a {
        margin-left: 20px; /* shift right to indicate sub-sub-menu */
    }
    
    .close-btn {
        position: absolute;
        background: url(close.png) no-repeat;
        width: 40px;
        height: 40px;
        background-size: 25px;
        background-position: center;
        top: 0;
        left: 0;
        margin: 25px;
        cursor: pointer;
    }
    
    .menu-btn {
        background: url(menu-icon.png) no-repeat;
        width: 40px;
        height: 40px;
        background-size: 25px;
        background-position: center;
        cursor: pointer;
        display: block; /* show menu icon only when in wide view */
    }
}
