:root {
  --color-black: #0A0B1A;
  --color-white: #FFF5E1;
  --color-theme1: #1C1442;
  --color-theme2: #2B1660;
  --color-theme3: #142850;
  --color-backg: #444;
}

body {
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}
/*================================================================================================
                Nav Bar
================================================================================================*/

.Nav_Bar nav {
    position: fixed;
    z-index: 10; /*affects the stacking priority of the object*/
    margin: auto;
    
    top: 50%;
    transform: translateY(-50%); /*together, these two move the object to be centerd vertically in the screen*/

    left: 0;
    
    display: flex;
    align-items: center;


    height: auto;
    width: 10vw;

}

.Nav_Bar nav ul {
    display: flex;
    flex-flow: column;
    gap: 3vh;
}

.Nav_Bar nav ul li {
    text-transform: uppercase;          
    font-size: clamp(1rem, 2vh, 1.5rem);
    font-family: 'quantico';
    list-style: none;

}

.Nav_Bar nav ul li a {
    text-decoration: none;
    
    transition: all 0.3s ease 0s;

    color: var(--color-white);

    mix-blend-mode: difference;

}

.Nav_Bar nav ul li a:hover {
    transition: all 0.3s ease 0s;
    color: sandybrown;
}

/*================================================================================================
                init
================================================================================================*/



.binder {
        overflow-y: scroll;
    scroll-snap-type: y proximity;
    height: 100vh;
    scrollbar-width: none;
    background-image: url('/media/background/OrionNebulaDSS_GIMP.webp'); /* default static image */
    background-size: cover;     /* like object-fit: cover */
    background-position: center bottom;
    background-repeat: no-repeat;
}

.page {
    z-index: 2;
    
    margin: 0;
    border: 0;
    padding: 0;


    width: 100%;

    display: flex;
    align-items: center;
    flex-direction: column;

}


#headerPage {
    z-index: 2;
    
    margin: 0;
    border: 0;
    padding: 0;

    display: flex;
    justify-content: end;
    align-items: center;
    flex-direction: column;


    height: 35vh;    

}


#heroTitle {
    font-family: 'ruigslay';
    font-size: 15vh;
    color: var(--color-white);

    width: clamp(400px, 75vw, 1500px);
    padding-bottom: 2vh;


    display: flex;
    justify-content: end;
    flex-direction: column;

}


/*================================================================================================
                Recent Posts
================================================================================================*/


#recentPostsPage {
    overflow-y: visible;
    height: fit-content;
    padding: 0 0 clamp(10px, 7vh, 100px);

}

.recentPostsTitle {
    font-family: 'fields-display';
    font-size: 6vh;
    color: var(--color-white);
    text-decoration: none;
    align-self: center;

}



.recent_post {
    width: clamp(400px, 75vw, 1500px);
    height: fit-content;

    
    background-color: rgba(255, 245, 225, .95);
    box-shadow: 0 4px 20px rgba(255, 245, 225, 0.8);


    z-index: 2;
    margin: clamp(10px, 7vh, 100px) 0 0;
    border: 0;
    padding: 0;

    border-radius: 20px;

    display: grid;
    grid-template-columns: 1fr max-content 35%;
    grid-template-rows: 20% 80%;
    grid-template-areas:
        "title  date       thumbnail"
        "text   text       thumbnail";

    color: var(--color-theme3);

}

.recent_post a:hover {
    text-decoration: underline;

}


.recent_post .title {
    grid-area: title;
    align-self: end;
    
    padding-left: clamp(8px, 1.5vw, 24px);
    padding-right: clamp(6px, 1vw, 16px);
    color: var(--color-theme3);

    font-size: clamp(1rem, 4vw, 3rem);
    font-family: 'fields-display';
    text-decoration: none;
    min-width: 0;

    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    line-clamp: 2;
}
 
.recent_post .date {
    grid-area: date;
    align-self: end;
    padding-bottom: clamp(4px, 0.8vw, 12px);
    justify-self: end;
    padding-right: clamp(8px, 1.5vw, 24px);
    white-space: nowrap;

    font-size: clamp(0.75rem, 1.2vw, 1.1rem);
    font-style: italic;
    font-family: 'quantico';
}

.recent_post .text {
    grid-area: text;
    align-self: start;
    padding: clamp(8px, 1.5vw, 24px);
    margin-left: clamp(5.5px, 1vw, 16px);
    margin-right: clamp(5.5px, 1vw, 16px);
    overflow: hidden;

    width: 90%;
    height: 80%;
}

.recent_post .thumbnail {
    grid-area: thumbnail;
    padding: clamp(8px, 1.5vw, 24px);
    box-sizing: border-box;
    
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.recent_post .thumbnail img {
    width: 100%;
    flex-shrink: 1;
    min-height: 0;
    object-fit: contain;
    object-position: center;
    padding-bottom: 1vh;
}

.recent_post .thumbnail p {
    flex-shrink: 0;
    margin: 4px 0 0;
    font-size: clamp(0.9rem, 1.5vw, 1.275rem);
    text-align: center;
    font-family: 'quantico';

}

.recent_post .text p {
    font-size: clamp(0.8rem, 1.25vw, 1.2rem);
    font-family: 'quantico';
}



/*================================================================================================
                Highlights carousel
================================================================================================*/


#highlightsPage {
    justify-content: center;
    gap: 4vh;
    height: 70vh;

}

.hightlightsTitle {
    font-family: 'fields-display';
    font-size: 6vh;
    color: var(--color-white);
    text-decoration: none;
    align-self: center;

}

.carousel {
    width: clamp(400px, 75vw, 1500px);
    display: flex;
    align-items: center;
    gap: 1vw;
}

.carousel_track {
    flex: 1;
    display: flex;
    gap: 2vw;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding: 2vh 0;
}

.carousel_item {
    flex-shrink: 0;
    width: calc((100% - 4vw) / 3);
    scroll-snap-align: start;
    background-color: var(--color-white);
    text-decoration: none;
    color: var(--color-black);
    display: flex;
    flex-direction: column;
    transition: transform 0.2s ease;
}

.carousel_item:hover {
    transform: translateY(-4px);
}

.carousel_thumb {
    width: 100%;
    aspect-ratio: 3 / 2;
    overflow: hidden;
}

.carousel_thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.carousel_title {
    font-size: clamp(0.9rem, 1.5vw, 1.3rem);
    font-family: 'quantico';
    padding: clamp(6px, 1vw, 14px) clamp(8px, 1.2vw, 16px) 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.carousel_date {
    font-size: clamp(0.7rem, 1vw, 1rem);
    padding: 0 clamp(8px, 1.2vw, 16px) clamp(8px, 1vw, 14px);
    opacity: 0.7;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    line-clamp: 2;
}

.carousel_btn {
    flex-shrink: 0;
    background: none;
    border: 2px solid var(--color-white);
    color: var(--color-white);
    font-size: clamp(1rem, 2vh, 1.5rem);
    width: clamp(30px, 3vw, 50px);
    height: clamp(30px, 3vw, 50px);
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.carousel_btn:hover {
    background-color: var(--color-white);
    color: var(--color-theme2);
}



/*================================================================================================
                Archive Page
================================================================================================*/




#archivePage {
    width: 100%;
}

.archiveTitle {
    font-family: 'fields-display';
    font-size: 6vh;
    color: var(--color-white);
    text-decoration: none;
    align-self: center;

}

.archiveBox {
    width: clamp(400px, 75vw, 1500px);

    margin-bottom: 15vh;
}

.archive_table {
    width: clamp(400px, 75vw, 1500px);
    border-collapse: collapse;
    color: var(--color-white);
    font-family: 'quantico';
    table-layout: fixed;  /* prevents columns from shifting on hover */
}

.archive_table td {
    border: 1px solid var(--color-white);
    padding: 1.5vh 1.5vw;
    font-size: clamp(1.2rem, 2.5vh, 1.8rem);
    transition: font-size 0.2s ease;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

#archiveDate {
    font-size: clamp(1rem, 1.5vw, 1.5rem);
}

/* column widths — adjust to taste */
.archive_table td:nth-child(1) { width: 90%; }  
.archive_table td:nth-child(2) {width: 10%;text-align: right;}

.archive_table tr:hover td {
    font-size: clamp(1.5rem, 3.2vh, 2.2rem);
    }

.archive_table a {
    color: var(--color-white);
    text-decoration: none;
}

.archive_table a:hover {
    text-decoration: underline;
}


/*================================================================================================
                Footer
================================================================================================*/



#footer {
    height: 50vh;
    background-color: black;
}