html, body {
    margin: 0; /* Remove default margin */
    padding: 0; /* Remove default padding */
    box-sizing: border-box; /* Use border-box model for consistent sizing */
    font-family: 'Open Sans', sans-serif; /* Use a sans-serif font for better readability */
    font-size: 18px; /* Set base font size */
    font-weight: 400; /* Normal weight for body text */
    line-height: 1.75; /* Set line height for better readability */
    background-color: white; /* Light grey background for the body */
    color: #333; /* Dark grey text color */
    height: 100%; /* Ensure the body takes up the full height of the viewport */
}

/* General Page Styling */
body {
    display: flex;
    flex-direction: column; /* Use flexbox to structure the layout */
    height: 100dvh; /* Ensure the page takes up the full viewport height */
}

h1, h2, h3 {
    text-align: center;
}

/* Header Styles */
header {
    text-align: center;
    padding: 0.1em;
    background-color: #7f3f98; /* DarkSky Royal Purple */
    color: white;
}
.logo-container {
    display: flex;
    justify-content: left; /* Align the logo to the left */
    align-items: center; /* Center vertically */
    padding: 0.5em; /* Add padding for better spacing */
    flex-direction: row; /* Align items in a row */
    flex-wrap: wrap; /* Allow items to wrap to the next line if necessary */
    gap: 0.5em; /* Add space between logo and text */
    max-width: 800px; /* Set a maximum width for larger screens */
}
.logo {
    width: auto; /* Allow the logo to scale */
    height: 50px; /* Set a fixed height for the logo */
}


/* Main Content Styling */
main {
    text-align: left; /* Align text to the left */
    flex: 1; /* Allow the main content to grow and take up available space */
}


/* About */
.about {
    display: flex;
    justify-content: center; /* Center the about section */
    align-items: center; /* Center vertically */
    margin: 1em 0; /* Add margin for spacing */
    gap: 0.5em; /* Add space between image and text */
    flex-direction: row; /* Align items in a row */
    flex-wrap: wrap; /* Allow items to wrap to the next line if necessary */
}
.about-image {
    width: auto; /* Allow the logo to scale */
    height: 50px; /* Set a fixed height for the logo */
}
.about-text {
    display: flex;
    justify-content: center; /* Center the about section */
    align-items: center; /* Center vertically */
    text-align: left; /* Align text to the left */
    padding: 0 1.6em; /* Add padding to paragraphs for better spacing */
    flex-direction: column; /* Align items in a column */
    flex-wrap: wrap; /* Allow items to wrap to the next line if necessary */
}
.about-link {
    text-decoration: none; /* Remove underline from links */
    color: #7f3f98; /* DarkSky Royal Purple */
    transition: color 0.3s ease; /* Smooth transition for hover effect */
}
.about-link:hover {
    color: #300051; /* Darker shade on hover */
    text-decoration: underline; /* Underline on hover */
}
.about-link:active {
    color: #300051; /* Darker shade on click */
    text-decoration: underline; /* Underline on click */
}
.about-link:focus {
    color: #300051; /* Darker shade on focus */
    text-decoration: underline; /* Underline on focus */
}
.about-link:visited {
    color: #300051; /* Change color for visited links */
}
.about-icon {
    height: 18px; /* Set a fixed height for the icons */
    margin-right: 0.2em; /* Add space between the icon and text */
    margin-bottom: -0.1em; /* Adjust bottom margin for better alignment */
    transition: transform 0.3s ease; /* Smooth transition for hover effect */
}


/* Contact Section */
.contact {
    display: flex;
    text-align: center; /* Center the contact section */
    justify-content: center; /* Center the contact links */
    align-items: center; /* Center vertically */
    flex-direction: column; /* Align items in a column */
    flex-wrap: wrap; /* Allow items to wrap to the next line if necessary */
    background-color: #f2eefa; /* Light purple background */
    margin: 4em auto; /* Center the contact section */
    padding: 1em; /* Add padding for spacing */
    width: 80dvw; /* Set a fixed width for the contact section */
    max-width: 800px; /* Set a maximum width for larger screens */
    border-radius: 5px; /* Rounded corners */
    box-shadow: 2px 3px 9px #eee5ff; /* Shadow effect */
}
.contact-header {
    margin-top: 0em; /* Remove space above the header */
    margin-bottom: 0.5em; /* Add space below the header */
}
.hypercube-img {
    width: 150px; /* Set a fixed width for the image */
    height: auto; /* Maintain aspect ratio */
    margin: 0 auto; /* Center the image */
    display: block; /* Make the image a block element */
}
.contact-links {
    display: flex;
    flex-direction: row; /* Align items in a row */
    flex-wrap: wrap; /* Allow items to wrap to the next line if necessary */
    justify-content: center; /* Center the contact links */
}
.contact-link {
    display: flex;
    flex-wrap: wrap; /* Allow items to wrap to the next line if necessary */
    text-decoration: none; /* Remove underline from links */
    justify-content: center; /* Center the contact links */
    align-items: center; /* Center vertically */
    color: #57068c; /* Black text color */
    background-color: #eee5ff; /* Light purple background */
    margin: 0.5em; /* Add margin for spacing */
    padding: 0.1em 0.6em; /* Add padding for better spacing */
    border-radius: 5px; /* Rounded corners */
    transition: background-color 0.3s ease; /* Smooth transition for hover effect */
}
.contact-link:hover {
    background-color: #eeccff; /* Darker shade on hover */
    box-shadow: 0 0 5px #8e44ad; /* Shadow effect on hover */
    transform: translateY(-2px); /* Slightly move up on hover */
    transition: transform 0.3s ease; /* Smooth transition for hover effect */
}
.contact-link:active {
    background-color: #eeccff; /* Darker shade on click */
    box-shadow: 0 0 5px #8e44ad; /* Shadow effect on click */
    transform: translateY(1px); /* Slightly move down on click */
    transition: transform 0.1s ease; /* Smooth transition for click effect */
}
.contact-link:focus {
    background-color: #eee5ff; /* Light purple background on focus */
    outline: none; /* Remove default outline */
    box-shadow: 0 0 5px #8e44ad;
    transform: translateY(1px); /* Slightly move down on focus */
    transition: transform 0.1s ease; /* Smooth transition for click effect */
}
.contact-link:visited {
    color: #300051; /* Change color for visited links */
}
.contact-icons {
    height: 18px; /* Set a fixed height for the icons */
    margin-right: 0.23em; /* Add space between the icon and text */
}


/* Footer Styling */
footer {
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    text-align: center;
    padding: 0.1em;
    font-size: 0.9em;
    background-color: #7f3f98; /* DarkSky Royal Purple */
    color: white;
}