body {
    font-family: "Open Sans", sans-serif;
    line-height: 1.6;
    margin: 0;
    padding: 0;

    background: url("astro.jpg") no-repeat center center fixed;
    background-size: cover;

    color: #fff;
}


/* ---------- Navigation ---------- */

.navbar {
    background: rgba(0, 0, 0, 0.8);
    padding: 15px 30px;

    display: flex;
    justify-content: space-between;
    align-items: center;
}

.nav-name {
    color: #fff;
    text-decoration: none;
    font-size: 1.2em;
    font-weight: bold;
}

.nav-links a {
    color: #fff;
    text-decoration: none;
    margin-left: 25px;
    font-weight: bold;
}

.nav-links a:hover,
.nav-links a.active {
    color: #FFD400;
}


/* ---------- Homepage ---------- */

.home {
    min-height: calc(100vh - 60px);

    display: flex;
    justify-content: center;
    align-items: center;

    padding: 30px 20px;
}

.container {
    max-width: 800px;

    background: rgba(0, 0, 0, 0.7);

    padding: 20px;

    box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);

    text-align: center;

    border-radius: 10px;
}

.photo {
    width: 150px;
    border-radius: 50%;
    margin-bottom: 20px;
    border: 3px solid #fff;
}


/* ---------- Links ---------- */

a {
    color: #FFD100;
}


/* ---------- Buttons ---------- */

.button {
    display: inline-block;

    padding: 10px 20px;
    margin: 10px;

    font-size: 1.1em;
    font-weight: bold;

    text-decoration: none;

    color: #fff;

    background-color: transparent;

    border: 2px solid #fff;
    border-radius: 5px;

    cursor: pointer;

    transition: background-color 0.3s, color 0.3s;
}

.button:hover {
    background-color: #fff;
    color: #000;
}


/* ---------- Email ---------- */

.email {
    margin-top: 20px;
    font-size: 1.1em;
}

.email a {
    color: #FFD400;
    text-decoration: none;
}

.email a:hover {
    text-decoration: underline;
}


/* ---------- Research/Publications pages ---------- */

.page-container {
    max-width: 900px;

    margin: 50px auto;

    background: rgba(0, 0, 0, 0.78);

    padding: 35px;

    border-radius: 10px;

    box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

.page-container h1 {
    margin-top: 0;
}

.page-container h2 {
    color: #FFD400;
    margin-top: 35px;
}


/* ---------- Mobile ---------- */

@media (max-width: 650px) {

    .navbar {
        flex-direction: column;
    }

    .nav-links {
        margin-top: 8px;
    }

    .nav-links a {
        margin: 0 8px;
    }

    .page-container {
        margin: 25px 15px;
        padding: 25px;
    }
}



/* ---------- Research cards ---------- */

.research-grid {
    margin-top: 35px;
}

.research-card {
    display: flex;
    align-items: center;
    gap: 35px;

    margin-bottom: 35px;
    padding: 25px;

    background: rgba(0, 0, 0, 0.55);

    border-radius: 10px;
}

.research-card.reverse {
    flex-direction: row-reverse;
}

.research-image {
    width: 40%;
    min-width: 280px;
}

.research-image img {
    width: 100%;
    display: block;
    border-radius: 8px;
}

.research-text {
    flex: 1;
}

.research-text h2 {
    margin-top: 0;
    color: #FFD400;
}

.research-text p {
    margin-bottom: 0;
}


/* Mobile research layout */

@media (max-width: 750px) {

    .research-card,
    .research-card.reverse {
        flex-direction: column;
    }

    .research-image {
        width: 100%;
        min-width: 0;
    }
}


/* ---------- Publications ---------- */

.publication {
    margin: 24px 0;
    padding: 20px 22px;

    background: rgba(0, 0, 0, 0.48);

    border-left: 4px solid #FFD400;
    border-radius: 8px;
}

.publication-title {
    font-size: 1.08em;
    font-weight: bold;
    color: #ffffff;

    margin-bottom: 8px;
}

.publication-authors {
    margin-bottom: 6px;
    color: #dddddd;
}

.publication-info {
    margin-bottom: 8px;
    color: #bbbbbb;
    font-size: 0.95em;
}

.publication-links a {
    color: #FFD400;
    text-decoration: none;
    font-weight: bold;
}

.publication-links a:hover {
    text-decoration: underline;
}

.publication:last-of-type {
    margin-bottom: 35px;
}

/* ---------- About Page ---------- */

.about-page {
    max-width: 1000px;
}

.about-section {
    margin-top: 40px;
}

.about-section:first-of-type {
    margin-top: 25px;
}

.about-card,
.contact-card {
    background: rgba(0, 0, 0, 0.45);

    padding: 20px 24px;

    border-left: 4px solid #FFD400;
    border-radius: 8px;
}

.about-card h3 {
    margin-top: 0;
}

.about-card ul {
    padding-left: 22px;
}

.about-card li {
    margin-bottom: 10px;
}


/* Education / experience timeline */

.timeline-item {
    display: flex;
    gap: 30px;

    margin: 22px 0;
    padding: 20px 22px;

    background: rgba(0, 0, 0, 0.45);

    border-radius: 8px;
}

.timeline-date {
    width: 110px;
    min-width: 110px;

    color: #FFD400;

    font-size: 1.05em;
    font-weight: bold;
}

.timeline-content h3 {
    margin-top: 0;
    margin-bottom: 5px;
}

.timeline-content p {
    margin: 5px 0;
}

.thesis-title {
    color: #dddddd;
}


/* Professional affiliations */

.tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.tag {
    display: inline-block;

    padding: 8px 14px;

    background: rgba(0, 0, 0, 0.55);

    border: 1px solid rgba(255, 212, 0, 0.7);

    border-radius: 20px;
}


/* Mobile */

@media (max-width: 650px) {

    .timeline-item {
        flex-direction: column;
        gap: 5px;
    }

    .timeline-date {
        width: auto;
        min-width: 0;
    }
}

.position {
    font-size: 1.05em;
    margin-bottom: 22px;
}

.position a {
    font-weight: bold;
    text-decoration: none;
}

.intro {
    max-width: 700px;
    margin: 12px auto;
}

.email {
    margin-top: 25px;
    font-size: 1.05em;
    font-weight: bold;
}

/* ---------- Homepage refinements ---------- */

.home .container h1 {
    margin-top: 8px;
    margin-bottom: 10px;
}

.position {
    font-size: 1.05em;
    line-height: 1.5;
    margin-top: 0;
    margin-bottom: 24px;
}

.position a {
    color: #FFD400;
    font-weight: bold;
    text-decoration: none;
}


/* Research-interest tags */

.research-interests {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;

    max-width: 700px;
    margin: 22px auto 26px;
}

.interest-tag {
    display: inline-block;

    padding: 8px 14px;

    background: rgba(0, 0, 0, 0.5);

    border: 1px solid rgba(255, 212, 0, 0.8);
    border-radius: 20px;

    font-size: 0.95em;
    font-weight: 600;
}


/* Collaboration note */

.collaboration-note {
    max-width: 690px;

    margin: 20px auto 5px;

    color: #dddddd;
    line-height: 1.6;
}

.email {
    margin-top: 10px;
    font-size: 1.05em;
    font-weight: bold;
}


.position a,
.position a:visited,
.position a:hover,
.position a:active {
    text-decoration: none !important;
    border-bottom: none !important;
}

.position a {
    color: #ffffff;
    font-weight: 600;
}

.position a:hover {
    color: #FFD400;
}


/* Background image attribution */

.background-credit {
    position: fixed;
    bottom: 8px;
    right: 12px;

    font-size: 0.65rem;
    color: rgba(255, 255, 255, 0.45);
    z-index: 100;
}

.background-credit a {
    color: inherit;
    text-decoration: none;
}

.background-credit a:hover {
    color: rgba(255, 255, 255, 0.8);
}

.research-context {
    max-width: 650px;
    margin: 22px auto 24px;
    font-size: 0.95rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.9);
}

.research-context a {
    color: #ffffff;
    font-weight: 600;
    text-decoration: none;
}

.research-context a:hover {
    color: #FFD400;
}

.research-section p {
    text-align: justify;
}