/* --------------------------------------------------
   Global research-page layout
-------------------------------------------------- */

body {
    margin: 0;
    padding:
        clamp(30px, 6vw, 60px)
        clamp(16px, 4vw, 20px);

    font-family:
        var(--font-mono);

    line-height: 1.6;
}

.container {
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
}

section {
    scroll-margin-top: 40px;
}


/* --------------------------------------------------
   Header and navigation
-------------------------------------------------- */

header {
    margin-bottom: 60px;
    padding-bottom: 30px;

    border-bottom:
        1px solid
        var(--border-color);
}

h1 {
    margin: 0;

    color: var(--heading-color);

    font-size: clamp(1.55rem, 5vw, 2.35rem);
    font-weight: 400;
    letter-spacing: -0.025em;
    line-height: 1.15;
}

.research-intro {
    max-width: 600px;

    margin: 14px 0 0;

    color: var(--muted-text);

    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.6;
}

.page-nav {
    margin: 24px 0 28px;

    color: var(--faint-text);

    font-size: 0.85rem;
    line-height: 1.9;
    letter-spacing: 0.5px;
}

.page-nav a {
    padding: 3px 4px;

    color: var(--strong-link-color);

    text-decoration: none;

    transition: color 200ms ease;
}

.page-nav a:hover {
    color: var(--hover-color);
}

.page-nav a:focus-visible {
    color: var(--hover-color);

    outline:
        1px solid
        var(--hover-color);

    outline-offset: 3px;
}


/* --------------------------------------------------
   Biography and affiliation blocks
-------------------------------------------------- */

.research-facts {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    border-top:
        1px solid
        var(--border-color);
    border-left:
        1px solid
        var(--border-color);
}

.bio-line {
    min-width: 0;
    margin: 0;
    padding: 15px 16px 17px;

    color: var(--muted-text);

    font-size: 0.82rem;
    line-height: 1.55;

    border-right:
        1px solid
        var(--border-color);
    border-bottom:
        1px solid
        var(--border-color);
}

.fact-label {
    margin: 0 0 7px;

    color: var(--hover-color);

    font-family: var(--font-mono);
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    line-height: 1.4;
    text-transform: uppercase;
}

.fact-value {
    margin: 0;

    color: var(--muted-text);

    font-family: var(--font-mono);
    font-size: 0.82rem;
    line-height: 1.55;
}

.bio-line a {
    color: var(--strong-link-color);

    text-decoration: none;

    border-bottom:
        1px solid
        var(--strong-border-color);

    transition:
        color 200ms ease,
        border-color 200ms ease;
}

.bio-line a:hover {
    color: var(--hover-color);
    border-bottom-color: var(--hover-color);
}

.bio-line a:focus-visible {
    color: var(--hover-color);

    outline:
        1px solid
        var(--hover-color);

    outline-offset: 3px;
}

.thesis-box {
    margin-top: 8px;
    padding-left: 11px;

    color: var(--subtle-text);

    font-size: 0.78rem;

    border-left:
        1px solid
        var(--border-color);
}

.previous-collaborations {
    margin-top: 12px;

    border-bottom:
        1px solid
        var(--border-color);
}

.previous-collaborations summary {
    padding: 10px 2px;

    color: var(--subtle-text);

    cursor: pointer;

    font-size: 0.78rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;

    transition: color 180ms ease;
}

.previous-collaborations summary:hover,
.previous-collaborations summary:focus-visible {
    color: var(--heading-color);
}

.previous-collaborations summary:focus-visible {
    outline: 1px solid var(--hover-color);
    outline-offset: 3px;
}

.previous-collaborations .thesis-box {
    margin: 0 0 14px 2px;
}


/* --------------------------------------------------
   General content
-------------------------------------------------- */

h2 {
    margin-top: 50px;
    margin-bottom: 20px;

    color: var(--heading-color);

    font-size: 1.15rem;
    font-weight: 400;
    letter-spacing: 1px;
    text-transform: uppercase;
}

p {
    margin-top: 0;
    margin-bottom: 20px;

    font-family: var(--font-body);
    font-size: 0.98rem;
    line-height: 1.72;
    text-align: left;
}

p a,
.footer-link {
    color: var(--link-color);

    text-decoration: none;

    transition: color 200ms ease;
}

p a:hover,
.footer-link:hover {
    color: var(--hover-color);
}

p a:focus-visible,
.footer-link:focus-visible {
    color: var(--hover-color);

    outline:
        1px solid
        var(--hover-color);

    outline-offset: 3px;
}

.meta {
    margin-bottom: 15px;

    color: var(--faint-text);

    font-size: 0.8rem;
    font-style: italic;
    font-family: var(--font-mono);
}


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

:root {
    --paper-hover-background:
        rgba(255, 255, 255, 0.025);
}

html[data-theme="light"] {
    --paper-hover-background:
        rgba(0, 0, 0, 0.028);
}

.publication-section {
    margin-top: 0;
}

.section-heading-row {
    display: flex;

    align-items: flex-end;
    justify-content: space-between;

    gap: 24px;

    margin-bottom: 8px;
}

.section-heading-row h2 {
    margin-top: 0;
    margin-bottom: 0;
}

.section-kicker {
    margin: 0 0 7px;

    color: var(--hover-color);

    font-family: var(--font-mono);
    font-size: 0.75rem;
    letter-spacing: 0.16em;
    text-align: left;
    text-transform: uppercase;
}

.section-count {
    color: var(--faint-text);

    font-size: 0.78rem;
    letter-spacing: 0.12em;
}

.paper-list {
    margin-top: 26px;

    border-top:
        1px solid
        var(--border-color);
}

.paper-entry {
    margin: 0;

    border-bottom:
        1px solid
        var(--border-color);
}

.paper-link {
    display: grid;

    grid-template-columns:
        34px
        minmax(0, 1fr)
        auto;

    gap: 18px;
    align-items: start;

    padding:
        22px 5px;

    color: inherit;

    text-decoration: none;

    transition:
        padding-left 180ms ease,
        padding-right 180ms ease,
        background-color 180ms ease;
}

.paper-link:hover,
.paper-link:focus-visible {
    padding-left: 12px;
    padding-right: 12px;

    background:
        var(--paper-hover-background);
}

.paper-link:focus-visible {
    outline:
        1px solid
        var(--hover-color);

    outline-offset: 3px;
}

.paper-index {
    padding-top: 4px;

    color: var(--faint-text);

    font-size: 0.75rem;
    letter-spacing: 0.08em;
}

.paper-content {
    min-width: 0;
}

.paper-title {
    margin: 0;

    color: var(--heading-color);

    font-size: 1rem;
    font-weight: 400;
    line-height: 1.45;
    letter-spacing: -0.015em;

    transition:
        color 180ms ease;
}

.paper-link:hover .paper-title,
.paper-link:focus-visible .paper-title {
    color: var(--hover-color);
}

.paper-authors {
    margin:
        8px 0 0;

    color: var(--muted-text);

    font-family: var(--font-mono);
    font-size: 0.82rem;
    line-height: 1.55;
    text-align: left;
}

.paper-meta {
    display: flex;
    flex-wrap: wrap;

    gap:
        5px 16px;

    margin-top: 11px;

    color: var(--subtle-text);

    font-size: 0.75rem;
    letter-spacing: 0.065em;
    text-transform: uppercase;
}

.paper-meta span {
    position: relative;
}

.paper-meta span:not(:last-child)::after {
    content: "·";

    position: absolute;
    right: -11px;

    color: var(--faint-text);
}

.paper-arrow {
    padding-top: 1px;

    color: var(--faint-text);

    font-size: 0.9rem;

    opacity: 0;

    transform:
        translate(
            -5px,
            5px
        );

    transition:
        color 180ms ease,
        opacity 180ms ease,
        transform 180ms ease;
}

.paper-link:hover .paper-arrow,
.paper-link:focus-visible .paper-arrow {
    color: var(--hover-color);

    opacity: 1;

    transform:
        translate(0, 0);
}


/* --------------------------------------------------
   Physics notes and essays
-------------------------------------------------- */

.notes-section {
    margin-top: 58px;
}

.notes-intro {
    max-width: 590px;
    margin: 14px 0 24px;
    color: var(--muted-text);
    font-size: 0.94rem;
}

.note-list {
    border-top: 1px solid var(--border-color);
}

.note-entry {
    margin: 0;
    border-bottom: 1px solid var(--border-color);
}

.note-link {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: 18px;
    align-items: start;
    padding: 22px 5px;
    color: inherit;
    text-decoration: none;
    transition:
        padding-left 180ms ease,
        padding-right 180ms ease,
        background-color 180ms ease;
}

.note-link:hover,
.note-link:focus-visible {
    padding-left: 12px;
    padding-right: 12px;
    background: var(--paper-hover-background);
}

.note-link:focus-visible {
    outline: 1px solid var(--hover-color);
    outline-offset: 3px;
}

.note-index {
    padding-top: 4px;
    color: var(--faint-text);
    font-size: 0.75rem;
    letter-spacing: 0.08em;
}

.note-content {
    min-width: 0;
}

.note-title {
    margin: 0;
    color: var(--heading-color);
    font-size: 1rem;
    font-weight: 400;
    letter-spacing: -0.015em;
    line-height: 1.45;
    transition: color 180ms ease;
}

.note-link:hover .note-title,
.note-link:focus-visible .note-title {
    color: var(--hover-color);
}

.note-summary {
    margin: 8px 0 0;
    color: var(--muted-text);
    font-family: var(--font-body);
    font-size: 0.88rem;
    line-height: 1.58;
}

.note-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 16px;
    margin-top: 11px;
    color: var(--subtle-text);
    font-size: 0.75rem;
    letter-spacing: 0.065em;
    text-transform: uppercase;
}

.note-meta span {
    position: relative;
}

.note-meta span:not(:last-child)::after {
    content: "·";
    position: absolute;
    right: -11px;
    color: var(--faint-text);
}

.note-arrow {
    padding-top: 1px;
    color: var(--faint-text);
    opacity: 0;
    transform: translateX(-5px);
    transition:
        color 180ms ease,
        opacity 180ms ease,
        transform 180ms ease;
}

.note-link:hover .note-arrow,
.note-link:focus-visible .note-arrow {
    color: var(--hover-color);
    opacity: 1;
    transform: translateX(0);
}

.notes-empty {
    margin: 0;
    padding: 18px 0;
    border-top: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
    color: var(--faint-text);
    font-family: var(--font-mono);
    font-size: 0.78rem;
}

@media (max-width: 600px) {
    .section-heading-row {
        align-items: start;
    }

    .paper-link {
        grid-template-columns:
            26px
            minmax(0, 1fr);

        gap: 12px;

        padding:
            19px 2px;
    }

    .paper-link:hover,
    .paper-link:focus-visible {
        padding-left: 7px;
        padding-right: 7px;
    }

    .paper-arrow {
        display: none;
    }

    .paper-title {
        font-size: 0.94rem;
    }

    .paper-authors {
        font-size: 0.8rem;
    }

    .paper-meta {
        gap:
            4px 13px;

        font-size: 0.75rem;
    }

    .paper-meta span:not(:last-child)::after {
        right: -9px;
    }

    .note-link {
        grid-template-columns: 26px minmax(0, 1fr);
        gap: 12px;
        padding: 19px 2px;
    }

    .note-link:hover,
    .note-link:focus-visible {
        padding-left: 7px;
        padding-right: 7px;
    }

    .note-arrow {
        display: none;
    }

    .note-title {
        font-size: 0.94rem;
    }

    .note-meta {
        gap: 4px 13px;
    }

    .note-meta span:not(:last-child)::after {
        right: -9px;
    }
}

/* --------------------------------------------------
   Quotations
-------------------------------------------------- */

blockquote {
    margin: 35px 0;
    padding: 5px 0 5px 20px;

    color: var(--muted-text);

    font-family: var(--font-body);
    font-style: italic;

    border-left:
        1px solid
        var(--blockquote-border);
}


/* --------------------------------------------------
   Responsive adjustments
-------------------------------------------------- */

@media (max-width: 600px) {
    .research-facts {
        grid-template-columns: 1fr;
    }

    header {
        margin-bottom: 45px;
    }

    .page-nav {
        line-height: 2;
    }

    .thesis-box {
        padding-left: 12px;
    }
}
