@charset "utf-8";
body {
    background: #f8f6f1 !important;
    color: #2f302c;
    font-family: "Noto Serif SC", "Songti SC", "STSong", serif;
    font-weight: 400;
    padding-top: 5.5rem;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-weight: 700;
}

.card {
    border-radius: 0.8rem!important;
}

.card-img-overlay {
    border-radius: 0.8rem!important;
}

.rounded-xl {
    border-radius: 0.8rem!important;
}

.rounded-xl-bottom {
    border-bottom-right-radius: 0.8rem !important;
    border-bottom-left-radius: 0.8rem !important;
}

.rounded-xl-top {
    border-top-left-radius: 0.8rem !important;
    border-top-right-radius: 0.8rem !important;
}


.text-profile-position {
    font-weight: 400;
}

.text-profile-bio {
    /* font-family: "Raleway"; */
    font-weight: 400;
}

.navbar {
    background-color: rgba(250, 249, 246, 0.86) !important;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(77, 82, 68, 0.1);
    box-shadow: none !important;
}

.navbar-brand {
    color: #364438 !important;
    font-size: 1.2rem;
    letter-spacing: 0.12em;
}

.navbar .nav-link {
    color: #6a6d63 !important;
    margin-left: 0.7rem;
    padding: 0.55rem 0.35rem !important;
    transition: color 0.2s ease;
}

.navbar .nav-item.active .nav-link,
.navbar .nav-link:hover {
    color: #415b45 !important;
}

.navbar .nav-item.active .nav-link::after {
    background: #8c9c72;
    border-radius: 99px;
    content: "";
    display: block;
    height: 2px;
    margin: 3px auto -5px;
    width: 14px;
}

a { color: #547157; }
a:hover { color: #314c36; }

.shadow-sm {
    box-shadow: 0 10px 30px rgba(61, 67, 51, 0.07) !important;
}

.card, .rounded-xl {
    border: 1px solid rgba(79, 85, 67, 0.09) !important;
}

.home-layout { margin-top: 1.5rem; }

.intro-card { overflow: hidden; position: relative; }
.intro-card::before {
    background: #9faf86;
    content: "";
    height: 100%; left: 0; opacity: 0.75; position: absolute; top: 0; width: 5px;
}
.section-eyebrow, .post-kicker {
    color: #788660;
    font-family: "Lato", sans-serif;
    font-size: 0.73rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}
.text-profile-bio { color: #51544c; font-size: 1.02rem; line-height: 2; }
.text-profile-bio p:last-child { margin-bottom: 0; }

.journal-list { overflow: hidden; }
.journal-list > h6 { color: #39463b; font-size: 0.95rem; letter-spacing: 0.04em; }
.journal-card { border-color: rgba(79, 85, 67, 0.1) !important; padding: 1.45rem 1.6rem !important; transition: background-color 0.2s ease; }
.journal-card:hover { background: #fcfbf8; }
.journal-card h2 { font-size: 1.22rem; font-weight: 700; letter-spacing: 0.015em; }
.journal-card h2 a { color: #30372e !important; }
.journal-card h2 a:hover { color: #567356 !important; }
.journal-card .text-muted { color: #85877e !important; line-height: 1.8; }
.journal-card .badge, .post-meta .badge { background: #edf0e7; border-radius: 99px; color: #657255; font-weight: 500; padding: 0.28rem 0.55rem; }

.archive-year { color: #3d493c; font-size: 1.55rem; font-weight: 700; margin-bottom: 1rem; }
.archive-year span { color: #969a8b; font-family: "Lato", sans-serif; font-size: 0.78rem; font-weight: 400; margin-left: 0.35rem; }

.journey-heading { border-bottom: 1px solid #e8e9e1; padding-bottom: 1.15rem; }
.journey-section { position: relative; }
.journey-section + .journey-section { border-left: 1px solid #e8e9e1; padding-left: 2rem; }
.journey-section-title { color: #475648; font-size: 1rem; font-weight: 700; margin: 0 0 1.3rem; }
.journey-section-title i { color: #8a9b70; font-size: 0.88rem; margin-right: 0.4rem; width: 1rem; }
.journey-items { position: relative; }
.journey-item { display: flex; min-height: 3.85rem; position: relative; }
.journey-item:not(:last-child)::before { background: #dce2d3; content: ""; height: calc(100% - 0.72rem); left: 0.28rem; position: absolute; top: 0.72rem; width: 1px; }
.journey-dot { background: #a0ad84; border: 3px solid #eff2e9; border-radius: 50%; flex: 0 0 auto; height: 0.7rem; margin: 0.28rem 0.8rem 0 0; position: relative; width: 0.7rem; z-index: 1; }
.journey-item-content { color: #777b70; flex: 1; font-family: "Lato", "Noto Serif SC", sans-serif; font-size: 0.83rem; line-height: 1.6; padding-bottom: 0.8rem; }
.journey-item-topline { align-items: baseline; display: flex; gap: 0.7rem; justify-content: space-between; }
.journey-item strong { color: #41483e; font-family: "Noto Serif SC", serif; font-size: 0.95rem; font-weight: 600; }
.journey-item time { color: #969b8c; flex: 0 0 auto; font-size: 0.72rem; white-space: nowrap; }

.footer { background: transparent !important; border-color: rgba(79, 85, 67, 0.12) !important; }

@media (max-width: 767.98px) {
    body { padding-top: 4.7rem; }
    .home-layout { margin-top: 0; }
    .journal-card { padding: 1.2rem !important; }
    .navbar .nav-link { margin-left: 0; }
    .navbar .nav-item.active .nav-link::after { margin-left: 0; }
    .journey-section + .journey-section { border-left: 0; border-top: 1px solid #e8e9e1; padding: 1.5rem 0 0; }
    .journey-section { padding-bottom: 0.2rem; }
}

.inline-badge {
    height: 16px;
    vertical-align: -10%;
    margin-right: 2px;
    line-break: unset;
}

.no-break {
    white-space: nowrap;
}

.cover-image {
    width: 180px;
    max-height: 120px;
}

.abstract-body {
    min-height: 100px;
}

img.lazy {
    background-image: url('images/loading.gif');
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 50px 50px;
    min-height: 80px;
}

div.lazy {
    background-image: url('images/loading.gif');
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 50px 50px;
    min-height: 80px;
}

.badge-publication {
    font-size: 100%;
}

.email-text {
    font-family: Source Code Pro, monospace;
}
