
/* Container takes full viewport */
#video-container {
    position: relative;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
}

/* Background video */
#bg-video {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;        /* cover the container without distortion */
    filter: blur(15px);       /* optional blur for background effect */
    transition: opacity 0.8s ease-in-out width 2s; /* smooth fade */
    z-index: -1;
}

/* Foreground video */
#fg-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;      /* keeps aspect ratio, avoids zooming too much */
    z-index: 1;
}
#left{
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 32%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color:#6da155 /*#49885D;*/;
    transition: opacity 0.3s;
}
#right{
    position: absolute;
    right: 0;
    top: 0;
    height: 100%;
    width: 32%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #684583/*#914E85*/;
    transition: opacity 0.3s;
    
}
#right_words{
    color: red;
    
}
#left_words{
    color: red;
    
}
#loading{
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 20%;
    width: 75%;
}
#portfolio{
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 20%;
    width: 75%;
}

#body {
    width: 50%;
    background-color: #DFC5FE;
    position: absolute;
    top: 10%;
    left: 50%;
    transform: translate(-50%, 0%); /* this is correct for centering at 10% */
    display: flex;
    flex-direction: column; /* FIXED TYPO */
    align-items: center;    /* centers child elements horizontally */
    padding: 20px;
    border-radius: 10px;
    position: relative;     /* allows pfp to be absolute inside */
}

#pfp {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    position: absolute;     
    top: 10px;
    left: 10px;
    border: 3px solid white;

    object-fit: cover;
    object-position: 50% 30%;
    transform: scale(1.2);
}

#content {
    background-color: #914E85;
    width: 80%;            /* looks better than 50% but up to you */
    min-height: 100px;     /* so you can see it */
    margin-top: 20px;      /* spacing under the h1 */
    padding: 10px;

    display: flex;
    position: relative;
    border-radius: 10px;
}
#nav{
    background-color:#DAB1DA;
    border-radius: 10px;
    border: 3px solid black;
    padding: 10px;
    display: flex;
    gap: 15px;
}
#button_to_grades{
    background-color:#90D5FF;
    border-radius: 10px;
    border: 3px solid black;
    padding: 10px;
    cursor: pointer;

    
}
#page_grades {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    background-color: #90D5FF;
    display: flex;
    justify-content: center; /* horizontal centering */
    align-items: flex-start; /* push to top */
    padding : 10px;
}

#page_grades_inner {
    width: 60%;
    background-color: purple;
    border-radius: 10px;
    display: flex;           /* make it a flex container */
    flex-direction: column;  /* stack items vertically */
    align-items: center;     /* center children horizontally */
    padding: 20px;           /* optional spacing */
    position: relative;
    z-index: 1;
}

/* Table itself */
#table_contents {
    width: 80%;
    border-collapse: collapse; /* remove double borders */
    margin: 20px auto;          /* center the table */
    font-family: Arial, sans-serif;
    background-color: #fff;     /* table background */
    box-shadow: 0 2px 5px rgba(0,0,0,0.2); /* subtle shadow */
}

/* Table header */
#table_contents th {
    background-color: #6a0dad;  /* purple header */
    color: white;
    padding: 10px;
    text-align: center;
}

/* Table body cells */
#table_contents td {
    padding: 10px;
    text-align: center;
    border-bottom: 1px solid #ddd;
}

/* Row hover effect */
#table_contents tr:hover {
    background-color: #f2f2f2;
}

/* Optional: alternate row colors */
#table_contents tr:nth-child(even) {
    background-color: #f9f9f9;
}
/* Container bubbles layer behind content */
.bubbles {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 0; /* behind page_grades_inner */
}

/* The bubbles */
.bubbles span {
    position: absolute;
    bottom: -50px; /* start below the container */
    width: 40px;
    height: 40px;
    background-color: rgba(106, 0, 218, 0.3); /* semi-transparent purple */
    border-radius: 50%;
    animation: floatUp 8s linear infinite;
}

/* Random positions & sizes for variation  spawn size speed*/ 
.bubbles span:nth-child(1) { left: 10%; width: 30px; height: 30px; animation-duration: 6s; }
.bubbles span:nth-child(2) { left: 30%; width: 50px; height: 50px; animation-duration: 7s; }
.bubbles span:nth-child(3) { left: 50%; width: 20px; height: 20px; animation-duration: 7s; }
.bubbles span:nth-child(4) { left: 25%; width: 40px; height: 40px; animation-duration: 9s; }
.bubbles span:nth-child(5) { left: 20%; width: 65px; height: 65px; animation-duration: 6s; }
.bubbles span:nth-child(6) { left: 60%; width: 95px; height: 95px; animation-duration: 5s; }
.bubbles span:nth-child(7) { left: 40%; width: 35px; height: 35px; animation-duration: 8s; }
.bubbles span:nth-child(8) { left: 67%; width: 45px; height: 45px; animation-duration: 5s; }
.bubbles span:nth-child(9) { left: 85%; width: 65px; height: 65px; animation-duration: 4s; }

/* Floating animation */
@keyframes floatUp {
    0% {
        transform: translateY(0) scale(1);
        opacity: 0.5;
    }
    50% {
        opacity: 0.7;
    }
    100% {
        transform: translateY(-100vh) scale(1.2);
        opacity: 0;
    }
}


