body {
background-color: rgb(27,38,9);
}

/* Basic variable definitions */
:root {
    --sidebar-width: 25%;
    --nav-height-small: 8em;
    --nav-height-large: 5em;
    --navbar-color: rgb(40,56,13);
    --sidebar-color: rgb(40,56,13);

    --nav-border-color: rgb(252,255,237);
    --nav-border-width: 1px;
    --nav-background-color: rgb(44,92,22);
    --nav-background-color-transparent: rgba(44,92,22,0.3);
    --nav-text-color: rgb(27,43,34);
    --nav-hover-color: hsl(76,35%,70%);
    --nav-active-color: hsl(76,45%,70%);

    --sidebar-text-color: rgb(184,156,30);

    --mainbar-text-color: rgb(184,156,30);
}

/* Primary block layout */
body {
    margin: 0;
}
#layout {
    display: grid;
    grid-template-rows: var(--nav-height-small) [main-start] minmax(50em, 1fr) [main-end footer-start] 25em [footer-end];
    grid-template-columns: [main-start footer-start] 1fr [main-end footer-end]
}
nav {
    position: fixed;
    grid-row: 1 / 2;
    grid-column: 1 / 2;
    width: 100%;
    height: var(--nav-height-small);
    z-index: 10;
    background-color: var(--navbar-color);

    display: grid;
    grid-template-columns: 1fr auto;
}
#mainbar {
    grid-area: main;
    z-index: 1;
    color: var(--mainbar-text-color);
}
#sidebar {
    grid-area: footer;
    z-index: 20;
    background-color: var(--sidebar-color);
    color: var(--sidebar-text-color);
}

/* Block layout for large screens */
@media screen and (min-width: 1100px) {
    body {
        margin: 0;
    }
    #layout {
        display: grid;
        grid-template-rows: var(--nav-height-large) [main-start] minmax(50em,1fr) [main-end];
        grid-template-columns: [main-start] 1fr [main-end] var(--sidebar-width);
    }
    nav {
        position: fixed;
        grid-row: 1 / 2;
        grid-column: 1 / 2; 
        width: calc(100% - var(--sidebar-width));
        height: var(--nav-height-large);
        z-index: 10;
        background-color: var(--navbar-color);

        display: grid;
        grid-template-columns: 1fr auto;
    }
    #mainbar {
        grid-area: main;
        z-index: 1;
    }
    #sidebar {
        grid-row: 1 / 3;
        grid-column: 2 / -1;
        z-index: 20;
        background-color: var(--sidebar-color);
        color: var(--sidebar-text-color);
    }
}

/* Navbar layout */

nav ul {
    grid-column: 1 / 2;
    font-family: Georgia, 'Times New Roman', Times, serif;
    font-variant: small-caps;
    list-style-type: none;
    font-weight: bold;
    font-size: 1.6em;
    display: flex;
    justify-content: center;
    gap: 0.5em;
}
/* Smaller nav font for large screens */
@media screen and (min-width: 1100px) {
    nav ul {
        font-size: 1em;
    }
}
nav ul li a {
    display: block;
    padding: 1em;
    border-radius: .5em;
    border: var(--nav-border-width) solid var(--nav-border-color);
    background-image: linear-gradient(to bottom, var(--nav-background-color-transparent), 80%, hsla(0,100%,100%,30%));
    background-color: var(--nav-background-color);
}
nav div#external-links {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap-reverse;
    grid-column: 2 / 3;
}
#external-links a {
    margin: .5em;
}
#external-links a img {
    width: 50px;
    height: 50px;
}
/* Smaller icon size for larger screens */
@media screen and (min-width: 1100px) {
    #external-links a img {
        width: 25px;
        height: 25px;
    }
}


/* Link effects (excluding page-specific effects) */
nav ul li a:link {
text-decoration: none;
color: var(--nav-text-color);
}
nav ul li a:visited {
color: var(--nav-text-color);
border: var(--nav-border-width) solid var(--nav-border-color);
}
nav ul li a {
transition: background-color 0.2s linear,
            padding 0.08s;
}
nav ul li a:hover {
background-color: var(--nav-hover-color);
padding: 1.05em;
}
nav ul li a:active {
background-color: var(--nav-active-color);
padding: 0.95em;
}


/* Sidebar layout */
#sidebar:first-child {
margin-top: 10em;
}
#sidebar h2 {
font-family: 'Trebuchet MS', 'Lucida Sans', Arial, sans-serif;
font-variant: small-caps;
font-size: 2.2em;
text-align: center;
margin: 2em;
}
#tagline {
font-family: 'Lucida Sans', Arial, sans-serif;
line-height: 1.75em;
font-size: 1.4em;
text-align: center;
word-spacing: 0.3em;
margin: 1em;
}
#tagline2 {
font-family: 'Lucida Sans', Arial, sans-serif;
line-height: 1.75em;
text-align: center;
word-spacing: 0.3em;
margin: 1em;
font-size: 1.1em;
}
/* Smaller font size for large screens */
@media screen and (min-width: 1100px) {
    #sidebar h2 {
        font-size: 1.8em;
    }
    #tagline {
        font-size: 1em;
    }
    #tagline2 {
        font-size: 0.8em;
    }
}


/* Mainbar formatting: handled individually */