body { font-family: "Noto Sans", sans-serif; }

.title { font-family: 'Google Sans'; font-weight: 700; }

.portrait { border-radius: 2%; overflow: hidden; aspect-ratio: 1; }
.portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.portrait-placeholder {
    background: linear-gradient(135deg, #1a365d 0%, #2c5282 100%);
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}
.portrait-initials {
    color: #fff;
    font-family: 'Google Sans', sans-serif;
    font-size: 4rem;
    font-weight: 700;
}

.report-placeholder {
    background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 50%, #2563eb 100%);
    aspect-ratio: 4/3;
    border-radius: 2%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.report-label {
    color: #fff;
    font-family: 'Google Sans', sans-serif;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.footer .footer-links a { font-size: 25px; color: #000; }

.publication-block .publication-title { width: fit-content; margin: 0 !important; font-weight: 600; font-size: 110% !important; }
.publication-block .publication-title a { color: #000; }
.publication-block .publication-venue { color: #555; width: fit-content; margin-top: 0; }
.publication-block .publication-venue-emph { font-style: normal; font-size: 90%; font-weight: 500; color: firebrick; padding-left: 0.25em; }
.publication-block .publication-awards { color: firebrick; width: fit-content; font-weight: bolder; }
.publication-block .publication-authors .author-me { color: #000; font-weight: 600; }
.publication-block .publication-authors a { color: #000 !important; }
.publication-block .publication-authors a:hover { text-decoration: underline; }
.publication-block .publication-image { border-radius: 2%; width: 100%; height: 100%; overflow: hidden; font-size: 0; }
.publication-block .publication-image img { width: 100%; }
.publication-block .column.is-3 img { width: 100%; border-radius: 2%; display: block; }
.publication-block .publication-mousecell { position: relative; font-size: 0; }
.publication-block .publication-mousecell { width: 100%; height: 100%; display: inline-block; overflow: hidden; }
.publication-block .publication-mousecell video { display: none; }
.publication-block .publication-description { color: #333; margin: 0.5em 0; }
.publication-block .publication-links { margin: 0 !important; margin-top: 0.5em !important; }
.publication-title a {
    color: black;
    text-decoration: none;
}

.pub-filter { gap: 0.5rem; }
.pub-filter-btn {
    font-family: 'Google Sans', sans-serif;
    font-weight: 500;
    font-size: 0.9rem;
    border: 2px solid #dbdbdb;
    transition: all 0.25s ease;
}
.pub-filter-btn:hover { border-color: #3273dc; color: #3273dc; }
.pub-filter-btn.is-active {
    background-color: #3273dc;
    border-color: #3273dc;
    color: #fff;
}
.pub-filter-btn.is-active:hover {
    background-color: #2366d1;
    border-color: #2366d1;
}

.publication-block { transition: opacity 0.3s ease, max-height 0.3s ease; }
.publication-block.pub-hidden {
    display: none !important;
}

hr.pub-divider {
    border: none;
    border-top: 1px solid #e8e8e8;
    margin: 2rem 0;
}

.team-toggle {
    cursor: pointer;
    color: #3273dc;
    font-weight: 500;
    transition: color 0.2s ease;
}
.team-toggle:hover { color: #2366d1; text-decoration: underline; }
.team-toggle i { font-size: 0.75em; margin-left: 0.15em; transition: transform 0.25s ease; }
.team-toggle.is-expanded i { transform: rotate(180deg); }
.team-authors { display: inline; }

.site-footer {
    margin-top: 2rem;
    padding: 2rem 1.5rem 3rem;
}
.visitor-stats {
    color: #888;
    font-size: 0.85rem;
    letter-spacing: 0.01em;
}
.visitor-stats i {
    margin-right: 0.25rem;
    opacity: 0.75;
}
.visitor-divider {
    margin: 0 0.75rem;
    opacity: 0.6;
}

.visitor-map-section {
    padding: 2.5rem 0 1rem;
    border-top: 1px solid #e8e8e8;
}
.visitor-map-section .title {
    margin-bottom: 0.35rem;
}
.visitor-map-caption {
    color: #888;
    font-size: 0.9rem;
    margin-bottom: 1.25rem;
}
.visitor-map-mount {
    width: 720px;
    max-width: 100%;
    margin: 0 auto;
    text-align: center;
    min-height: 160px;
}
.visitor-map-mount #mapmyvisitors-widget {
    display: block;
    margin: 0 auto;
    max-width: 100%;
}
.visitor-map-note {
    color: #888;
    font-size: 0.85rem;
    margin-top: 0.75rem;
    text-align: center;
}
.visitor-map-note a {
    color: #3273dc;
}
.visitor-map-pixel {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}
