* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-size: 9pt;
}

:root {
    --color-primary: #1a1a1a;        /* Almost black - for text */
    --color-secondary: #c9c9c9;      /* Light gray - for borders */
    --color-accent: #e9b872;         /* Muted orange accent */
    --color-muted: #f3f3f3;          /* Soft white - background */
    --color-highlight: #a4c8de;      /* Pale blue - optional subtle highlight */
}


body {
    background: var(--color-muted);
}

.hide-on-small{
    display: none !important;
}


.layout {
    display: flex;
    height: 100vh;
}

.sidebar {
    width: 17%; /* 1/6 of the screen */
    /*background: var(--color-secondary);*/
    padding: 40px 20px;
    box-sizing: border-box;
    font-family: "neue-haas-grotesk-display", sans-serif;
    text-align: right;
}

.sidebar ul {
    /*margin-top: 100px;*/
    list-style: none;
    padding-right: 0;

}

.sidebar ul li {
    margin-bottom: 10px;
    text-align: right;
}

.sidebar ul li a {
    color: var(--color-primary);
    text-decoration: none;
    font-size: 1em;
    display: block;
    text-align: right;
}

.main-content {
    width: 83%; /* 5/6 of the screen */
    padding: 40px 20px;
    box-sizing: border-box;
    overflow-x: hidden;
    overflow-y: auto;
    scroll-behavior: smooth;
}

/* Update the nav to no longer be fixed */
nav {
    position: relative;
    height: 60px;
    display: flex;
    align-items: center;
    padding-left: 20px;
}

.menu-desc {
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transition: max-height 0.4s ease, opacity 0.4s ease;
    font-size: 0.85em;
    color: var(--color-primary);
    line-height: 1.4;
    margin-top: 5px;
}

.menu-desc.open {
    max-height: 200px; /* You can increase if you have more text */
    opacity: 1;
}

.menu-desc p {
    margin-bottom: 0.5rem; /* spacing between text and submenu */
    font-size: 0.85em;
}

.note{
    font-size: 0.85em;
}

.copyright {
    text-align: right;
    font-size: 0.85em;

}

.note-block {
    border-top: 1px solid var(--color-secondary); /* or just #ccc */
    margin-top: 1.5em;
    padding-top: 1em;
}

/*CONTENT*/
.project-plane {
    column-count: 3; /* Default: 3 column for small screens */
    column-gap: 0; /* Space between columns */

    border-bottom: 1px solid #ccc; /* Visual separation (optional) */
    height: 100vh;
}

.project-viewer {
    min-height: 100vh; /* Full viewport height */
    display: flex;
    flex-direction: column;
    justify-content: center; /* Vertically center content (optional) */
    padding: 2rem;
    box-sizing: border-box;
}

.project-viewer {
    border-top: 1px solid #ccc; /* Optional for contrast */
}

.project-plane div {
    break-inside: avoid; /* Prevents breaking content across columns */
    margin-bottom: 0;
    padding: 0;
}

.project-description {
    border-top: 1px solid var(--color-secondary); /* or just #ccc */
    margin-top: 1.5em;
    padding-top: 1em;
}

/*project Text*/

.project-box .text small {
    font-size: 0.85em;
    color: #666;
    line-height: 1.4;
    display: block;
    margin-top: 4px;
}


.wave-container {
    position: relative;
}

.id-label {
    position: absolute;
    top: 6px;
    left: 6px;
    padding: 2px 6px;
    font-size: 1em;
    font-weight: bold;
    border-radius: 4px;
    pointer-events: none; /* makes it click-through */


    /*font-family: 'Noto Sans', sans-serif; /* Apply Noto Sans */
    font-family: "neue-haas-grotesk-display", sans-serif;
    font-style: normal;
    /*font-family: 'Roboto', sans-serif; /* Apply Roboto */
    /*font-family: 'IBM Plex Sans', sans-serif; /* Apply IBM Plex Sans */

    color: var(--color-primary); /* Change to desired text color */


    cursor: default;
}



/* Animation */

.box img {
    display: block;
    width: 100%;
    height: auto;
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.box:hover img {
    /* opacity: 0.7; /* Dim the image for emphasis */
    filter: brightness(0.85);
    transform: translateY(-5px); /* Slight move up */
}








/* Medium Screens (≥768px) */
@media (min-width: 768px) {
    .hide-on-small {
        display: block !important;
    }
}

@media (min-width: 768px) {
    .project-plane {
        column-count: 3; /* 5 columns for medium screens */
    }
}

@media (max-width: 768px) {
    .layout {
        flex-direction: row; /* Ensure horizontal layout even on small screens */
    }

    .sidebar {
        width: 30%; /* 1 out of 5 parts = 1:4 ratio */
        padding: 20px 10px; /* Optional: reduce padding for smaller screens */
    }

    .main-content {
        width: 70%; /* 4 out of 5 parts = 1:4 ratio */
        padding: 20px 10px; /* Optional: reduce padding for smaller screens */
    }
}


/* Large Screens (≥992px) */
@media (min-width: 992px) {
    .hide-on-small {
        display: block !important;
    }
}
@media (min-width: 992px) {
    .project-plane {
        column-count: 9; /* 10 columns for large screens */
    }
}

/*PROJECTS*/
#projects {
    margin: 0 auto; /* Center the container horizontally */
    /*margin-top: 60px; */
    max-width: 1100px; /* Optional: Set a maximum width */
    padding: 0 0; /* Add horizontal padding for spacing inside the container */
    text-align: center; /* Centers text content inside the container (if applicable) */
}

.project-box {
    background-color: rgba(218, 218, 218, 0.48)
;
}

.box {
    border: 0.25px solid var(--color-primary); /* Border around each image */
    margin: 0;            /* Space between the borders of each image */
    padding: 0;           /* Optional: Adds spacing inside the border */
    max-width: 100%;
    aspect-ratio: 1;
    display: block;
}


.box img {
    padding: 10%;
}

.box.text {
    position: relative;
    top: 0; /* Align to the top of the container */
    left: 0; /* Align to the left of the container */
    padding: 5%; /* Set padding as a percentage of the parent container's dimensions */
    text-align: left; /* Ensure text is aligned to the left */

    /*font-family: 'Noto Sans', sans-serif; /* Apply Noto Sans */
    font-family: "neue-haas-grotesk-display", sans-serif;
    font-style: normal;
    /*font-family: 'Roboto', sans-serif; /* Apply Roboto */
    /*font-family: 'IBM Plex Sans', sans-serif; /* Apply IBM Plex Sans */

    color: var(--color-primary); /* Change to desired text color */
    font-size: 1em;
    font-weight: 500;
    margin: 0;

    cursor: default;

}

.bold {
    font-weight: 600;
}

.wave-canvas {
    width: 100%;
    height: auto;
    display: block;
    padding: 0; /* Set padding as a percentage of the parent container's dimensions */


    /* border-radius: 4px; */
}


/*EXPERIMENTAL*/

html {
    filter: invert(0); /* Fully inverts all colors */
}

html, body {
    margin: 0;
    padding: 0;
    height: 100%;
}

section {

}

.carousel {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
}

.carousel-image {
    max-height: 85vh;
    max-width: 100vw;
    object-fit: contain;
}

.carousel-arrow {
    font-size: 2rem;
    background: none;
    border: none;
    cursor: pointer;
}

.carousel-arrow.left {
    left: 0;
}
.carousel-arrow.right {
    right: 0;
}

.project-details {
    margin-top: auto;
    /*padding: 1rem;*/
}
.hidden {
    display: none !important;
}

.back-button {
    margin-bottom: 1rem;
}


