body {
    font-family: Georgia, serif;
    background: url('../images/background.jpeg') no-repeat center center fixed; /* Set background image */
    background-size: cover; /* Ensure the image covers the entire background */
    color: white; /* White text for contrast */
    text-align: center;
    margin: 0;
    padding: 20px;
}

h1, h3, p {
    color: white; /* Ensure all headings and paragraphs are visible */
}

.menu {
    margin-top: 50px;
}

#board {
    display: grid;
    grid-template-columns: repeat(3, 100px);
    grid-gap: 5px;
    margin: 20px auto;
}

.cell {
    width: 100px;
    height: 100px;
    border: 2px solid white; /* White border for contrast */
    background-color: rgba(0, 0, 0, 0.7); /* Semi-transparent black for contrast against background */
    color: white; /* White text in cells */
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2em;
    cursor: pointer;
    transition: background-color 0.3s;
}

.cell:hover {
    background-color: navy; /* Navy blue on hover */
}

button {
    background-color: navy; /* Navy blue for buttons */
    color: white;
    border: none;
    border-radius: 10px;
    padding: 15px 30px;
    font-size: 1em;
    cursor: pointer;
    transition: background-color 0.3s, transform 0.2s;
    margin: 10px 0;
    text-decoration: none;
    display: inline-block;
}

button:hover {
    background-color: #003366; /* Darker navy on hover */
    transform: scale(1.05);
}

button:focus {
    outline: none;
    box-shadow: 0 0 5px #003366; /* Subtle shadow on focus */
}

#status {
    margin-top: 20px;
    font-size: 1.2em;
    color: red; /* Keep red for status messages */
}

/* Responsive and centered adjustments */
.menu {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 20px;
    margin: 50px auto;
    max-width: 1200px;
    justify-content: center;
}

.project {
    text-align: center;
    text-decoration: none;
    color: inherit;
    border: 1px solid white;
    border-radius: 10px;
    overflow: hidden;
    transition: transform 0.3s;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 10px;
    background-color: rgba(0, 0, 0, 0.8); /* Semi-transparent black for projects */
}

.project:hover {
    transform: scale(1.05);
}

.project-image {
    width: 100%;
    height: auto;
    border-bottom: 2px solid navy;
}



.logo-image {
    width: 50px;
    height: auto;
}

/* Make the top banner white */
.top-banner {
    background-color: white; /* White banner */
    color: black; /* Black text */
    text-align: center;
    padding: 10px 0;
    position: fixed;
    width: 100vw; /* Ensure full width */
    top: 0;
    z-index: 1000;
    border-bottom: 3px solid #ddd;
}

/* Style navigation links */
.top-banner a {
    /*color: black;*/
    margin: 0 1px;
    text-decoration: none;
    font-size: 18px;
    font-weight: normal;
}

/* Ensure the hawk image is positioned correctly */
.logo {
    position: absolute;
    top: 40px;
    left: 10px;
    width: 80px;
    height: auto;
    z-index: 1100;
}

/* Add padding to avoid content being hidden under the fixed banner */
#home, #contact, #about{
    padding-top: 60px;
}

/* Container to hold the image and second paragraph in a row */
.container {
    display: flex;
    align-items: flex-start; /* Align content at the top */
    justify-content: flex-start;
    gap: 20px;
    margin-top: 0px;
    text-align: left;
}

/* Image styling */
.pic {
    max-width: 200px;
    height: auto;
}

/* Adjust the second paragraph positioning */
.container p {
    margin-top: 0; /* Remove any default margin */
    line-height: 1.2; /* Adjust line height to align with the image */
    vertical-align: top; /* Align top of text with image */
}

/* Additional styling specific to homework helper */
        .tool-section {
            background-color: rgba(0,0,0,0.8);
            border: 2px solid white;
            border-radius: 15px;
            padding: 20px;
            margin: 20px auto;
            max-width: 800px;
            color: white;
        }
        .tool-section h2 {
            margin-top: 0;
        }
        input[type="number"], input[type="text"], select {
            padding: 8px 10px;
            border-radius: 8px;
            border: none;
            margin: 5px;
            font-size: 1em;
        }
        .tool-section button {
            margin-top: 10px;
        }
        .result {
            margin-top: 10px;
            font-weight: bold;
            color: #ffdd00;
        }
        details {
            margin-bottom: 15px;
        }
        summary {
            font-size: 1.2em;
            cursor: pointer;
            outline: none;
        }
        /* Calculator UI */
        #calc-display {
            width: 100%;
            font-size: 2em;
            padding: 10px;
            margin-bottom: 10px;
            text-align: right;
            border-radius: 8px;
            border: none;
        }
        .calc-grid {
            grid-template-columns: repeat(4, 1fr);
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 10px;
            margin-top: 10px;
        }
        .calc-btn {
            width: 100%;
            padding: 15px 0;
            font-size: 1.2em;
            border: none;
            border-radius: 10px;
            background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
            color: #fff;
            box-shadow: 0 4px 10px rgba(0,0,0,0.4);
            cursor: pointer;
            transition: transform 0.1s;
        }
        .calc-btn:active { transform: scale(0.96); }
        /* Flowchart nodes */
        .flow-node{
            position:absolute;
            padding:10px 15px;
            background:linear-gradient(135deg,#003366 0%,#004b8d 100%);
            color:#fff;
            border:2px solid #fff;
            border-radius:10px;
            cursor:move;
            user-select:none;
            text-align:center;
        }
        .flow-node.selected{border-color:#ffdd00;}
        svg line{stroke:#ffdd00;stroke-width:2;marker-end:url(#arrowhead);} 
        /* Factor tree */
        .factor-tree, .factor-tree ul{ list-style:none; padding-top:20px; position:relative; text-align:center; transition:all .5s; }
        .factor-tree ul::before{ content:''; position:absolute; top:0; left:50%; border-left:1px solid #fff; height:20px; }
        .factor-tree li{ display:inline-block; padding:5px 10px; border:1px solid #fff; border-radius:8px; background:rgba(0,0,0,0.6); color:#fff; position:relative; }
        .factor-tree li::before,.factor-tree li::after{ content:''; position:absolute; top:0; border-top:1px solid #fff; width:50%; height:20px; }
        .factor-tree li::before{ left:-50%; }
        .factor-tree li::after{ right:-50%; }
        .factor-tree li:only-child::before, .factor-tree li:only-child::after{ display:none; }
        .factor-tree li:first-child::before{ border:none; }
        .factor-tree li:last-child::after{ border:none; }
        .factor-tree ul{ padding-top:20px; position:relative; transition:all .5s;}
        .factor-tree li{ list-style-type:none; display:inline-block; text-align:center; position:relative; padding:5px 10px; color:#fff; border:1px solid #fff; border-radius:8px;}
        .factor-tree li::before, .factor-tree li::after{ content:''; position:absolute; top:0; border-top:1px solid #fff; width:50%; height:20px;}
        .factor-tree li::before{ left:-50%; }
        .factor-tree li::after{ right:-50%; }
        .factor-tree li:only-child::before, .factor-tree li:only-child::after{ display:none; }
        .factor-tree li:first-child::before{ border:none; }
        .factor-tree li:last-child::after{ border:none; }
        .factor-tree ul::before{ content:''; position:absolute; top:0; left:50%; border-left:1px solid #fff; width:0; height:20px;}
