        :root {
            --bg: #eef3f8;
            --paper: #ffffff;
            --ink: #172434;
            --muted: #5c6f84;
            --accent: #0f5f86;
            --accent-soft: #d8eaf5;
            --line: #cfdae7;
            --shadow: 0 16px 34px rgba(22, 45, 67, 0.11);
            --soft-shadow: 0 8px 18px rgba(22, 45, 67, 0.08);
            --premium: #b1863d;
        }
        * { box-sizing: border-box; }
        body {
            font-family: "Manrope", "Avenir Next", "Segoe UI", "Helvetica Neue", sans-serif;
            margin: 0;
            background:
                radial-gradient(1400px 460px at 8% -220px, rgba(15, 95, 134, 0.14), transparent 70%),
                radial-gradient(900px 340px at 96% 8%, rgba(27, 132, 178, 0.10), transparent 70%),
                linear-gradient(180deg, #f9fcff 0%, var(--bg) 45%, #e9eff6 100%);
            color: var(--ink);
            line-height: 1.7;
            text-rendering: optimizeLegibility;
        }
        header {
            padding: 56px 20px 44px;
            text-align: center;
            background: linear-gradient(180deg, #edf4fb 0%, #dfeaf5 100%);
            border-bottom: 1px solid var(--line);
            box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.75);
            position: relative;
            overflow: hidden;
        }
        header::after {
            content: "";
            position: absolute;
            width: 480px;
            height: 480px;
            top: -310px;
            left: 50%;
            transform: translateX(-50%);
            background: radial-gradient(circle, rgba(15, 95, 134, 0.12) 0%, rgba(15, 95, 134, 0) 72%);
            pointer-events: none;
        }
        html {
            scroll-behavior: smooth;
        }
        h1 {
            margin: 0;
            font-family: "Cormorant Garamond", "Palatino Linotype", "Book Antiqua", Palatino, serif;
            font-size: clamp(2.2rem, 5vw, 3.2rem);
            letter-spacing: 0.01em;
            color: #1f2f42;
            position: relative;
            z-index: 1;
            text-wrap: balance;
        }
        .profile-photo {
            width: 144px;
            height: 144px;
            object-fit: cover;
            border-radius: 50%;
            border: 4px solid #f8fbff;
            box-shadow: 0 14px 28px rgba(23, 38, 56, 0.18);
            margin-bottom: 16px;
            position: relative;
            z-index: 1;
            outline: 2px solid rgba(177, 134, 61, 0.34);
            outline-offset: 4px;
        }
        .subtitle {
            color: #4f6378;
            margin-top: 10px;
            font-size: 1.05rem;
            max-width: 34ch;
            margin-left: auto;
            margin-right: auto;
            position: relative;
            z-index: 1;
        }
        nav {
            margin-top: 24px;
            display: flex;
            justify-content: center;
            flex-wrap: wrap;
            gap: 10px;
            position: relative;
            z-index: 1;
        }
        nav a {
            margin: 0;
            color: #104e71;
            text-decoration: none;
            border: 1px solid #b4c7db;
            background: linear-gradient(180deg, #f8fbff 0%, #eef5fc 100%);
            border-radius: 999px;
            padding: 7px 14px;
            font-size: 0.82rem;
            font-weight: 700;
            letter-spacing: 0.05em;
            text-transform: uppercase;
            transition: background-color .22s ease, border-color .22s ease, transform .22s ease, box-shadow .22s ease;
        }
        nav a:hover {
            background: var(--accent-soft);
            border-color: #84a7c7;
            box-shadow: var(--soft-shadow);
            transform: translateY(-2px);
        }
        section {
            max-width: 1020px;
            margin: auto;
            padding: 28px 22px;
        }
        section + section {
            padding-top: 18px;
        }
        h2 {
            border-bottom: none;
            padding-bottom: 10px;
            color: #26384b;
            font-family: "Cormorant Garamond", "Palatino Linotype", "Book Antiqua", Palatino, serif;
            font-size: clamp(1.7rem, 3vw, 2rem);
            letter-spacing: 0.01em;
            margin-bottom: 14px;
            position: relative;
            display: inline-block;
        }
        h2::after {
            content: "";
            position: absolute;
            left: 0;
            bottom: 2px;
            width: 72%;
            height: 2px;
            border-radius: 2px;
            background: linear-gradient(90deg, rgba(15, 95, 134, 0.58), rgba(15, 95, 134, 0.08));
        }
        .bio-sketch {
            max-width: 78ch;
            margin: 0;
            color: #334457;
            font-size: 1.01rem;
            line-height: 1.8;
            text-wrap: pretty;
        }
        .bio-sketch p {
            margin: 0 0 0.95rem;
        }
        .bio-sketch p:last-child {
            margin-bottom: 0;
        }
        @media (min-width: 900px) {
            .bio-sketch {
                text-align: justify;
                text-justify: inter-word;
                hyphens: auto;
            }
        }
        .card {
            background: var(--paper);
            padding: 24px 24px 22px;
            border-radius: 16px;
            margin-top: 14px;
            border: 1px solid #d2ddea;
            box-shadow: var(--shadow);
            backdrop-filter: blur(2px);
            position: relative;
            overflow: hidden;
        }
        .card::before {
            content: "";
            position: absolute;
            inset: 0;
            background: linear-gradient(130deg, rgba(255, 255, 255, 0.36), rgba(255, 255, 255, 0));
            pointer-events: none;
        }
        .about-card { margin-top: 8px; }
        #research ul {
            margin: 6px 0 0;
            padding-left: 20px;
        }
        #research li { margin: 4px 0; }
        a {
            color: var(--accent);
            text-underline-offset: 2px;
            text-decoration-thickness: 1px;
            transition: color .2s ease;
        }
        a:hover {
            color: #0a4a69;
        }
        .pub-intro { color: var(--muted); margin-bottom: 14px; }
    .pub-track {
      margin-top: 10px;
      max-height: 420px;
      overflow-y: auto;
      padding-right: 8px;
            scrollbar-color: #9aaec2 #e5ebf2;
    }
        .pub-item {
            display: block;
            background: linear-gradient(180deg, #fbfdff 0%, #f4f9fd 100%);
            border: 1px solid #ced9e6;
            border-radius: 11px;
            padding: 16px;
            margin-bottom: 12px;
            transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
        }
        .pub-item:hover {
            transform: translateY(-2px);
            border-color: #b5c9dc;
            box-shadow: var(--soft-shadow);
        }
        .pub-head {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 10px;
            flex-wrap: wrap;
        }
        .pub-title { font-weight:700; color:#2f3a49; flex: 1 1 320px; }
        .pub-meta { color:#6c7480; font-size:0.95em; margin-top:4px; }
        .pub-badges {
            display: flex;
            gap: 8px;
            flex-wrap: wrap;
            justify-content: flex-end;
        }
        .pub-badge {
            display: inline-flex;
            align-items: center;
            border-radius: 999px;
            padding: 4px 10px;
            font-size: 0.75rem;
            line-height: 1.1;
            font-weight: 700;
            letter-spacing: 0.02em;
            border: 1px solid transparent;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
        }
        .pub-badge-top {
            color: #5e3e00;
            background: linear-gradient(180deg, #ffe9a9 0%, #ffd56e 100%);
            border-color: #d9aa2a;
            box-shadow: 0 2px 8px rgba(170, 114, 0, 0.18);
        }
        .pub-badge-q1 {
            color: #0e4f3a;
            background: linear-gradient(180deg, #d9f4df 0%, #bceac8 100%);
            border-color: #6fba87;
            box-shadow: 0 2px 8px rgba(21, 126, 73, 0.18);
        }
        .pub-badge-preprint {
            color: #1f3f65;
            background: linear-gradient(180deg, #dceeff 0%, #c7e2fb 100%);
            border-color: #7ba8d2;
            box-shadow: 0 2px 8px rgba(43, 98, 150, 0.16);
        }
        .pub-toolbar {
            margin-top: 10px;
            margin-bottom: 10px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 10px;
            flex-wrap: wrap;
        }
        .pub-filters {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }
        .pub-filter.is-active {
            background: linear-gradient(180deg, #c7dced 0%, #b8d1e6 100%);
            border-color: #7396b4;
            color: #173c57;
            box-shadow: 0 5px 12px rgba(27, 74, 105, 0.12);
        }
        .pub-sort-wrap {
            color: #55657a;
            font-size: 0.9rem;
            display: inline-flex;
            align-items: center;
            gap: 6px;
        }
        .pub-sort {
            border:1px solid #a7bacf;
            background:#e8eff6;
            color:#264a67;
            border-radius:8px;
            padding:6px 10px;
            font: inherit;
        }
    .pub-url-row { margin-top:10px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
                .pub-note { color:#6f7f91; font-size:0.82em; }
                .pub-summary { margin: 0 0 8px; }
    .action-pill {
                        border:1px solid #9fb7cd;
                        background: linear-gradient(180deg, #f2f8ff 0%, #e1edf8 100%);
                        color:#1f4f6e;
            border-radius:999px;
            padding:6px 12px;
            font-size:0.88em;
            font-family:inherit;
            line-height:1.2;
            cursor:pointer;
            white-space:nowrap;
            max-width:100%;
            overflow:hidden;
            text-overflow:ellipsis;
            text-decoration:none;
            display:inline-flex;
            align-items:center;
            appearance:none;
            -webkit-appearance:none;
            transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
        }
        .action-pill:hover {
            background: #d2e3f2;
            box-shadow: var(--soft-shadow);
            transform: translateY(-1px);
        }
        .pub-loading { color:#6c7480; }
        .pub-error { color:#9b3c35; }
        .skeleton-list { margin-top: 8px; }
        .skeleton-item {
            height: 86px;
            border-radius: 10px;
            margin-bottom: 10px;
            background: linear-gradient(90deg, #e8eef5 25%, #f1f5fa 50%, #e8eef5 75%);
            background-size: 220% 100%;
            animation: shimmer 1.25s infinite ease-in-out;
        }
        @keyframes shimmer {
            0% { background-position: 180% 0; }
            100% { background-position: -40% 0; }
        }
        .project-intro { color: var(--muted); margin-bottom: 12px; }
        .project-list {
            margin-top: 8px;
            max-height: 420px;
            overflow-y: auto;
            padding-right: 8px;
            scrollbar-color: #9aaec2 #e5ebf2;
        }
        .project-item {
            background: linear-gradient(180deg, #fbfdff 0%, #f5f9fd 100%);
            border:1px solid #ced9e6;
            border-radius:11px;
            padding:14px;
            margin-bottom:10px;
            transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
        }
        .project-item:hover {
            transform: translateY(-2px);
            border-color: #b5c9dc;
            box-shadow: var(--soft-shadow);
        }
        .project-funding {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 10px 12px;
            border-radius: 10px;
            margin-bottom: 12px;
            border: 1px solid #c9d7e6;
            background: linear-gradient(180deg, #f4f8fc 0%, #eaf1f8 100%);
        }
        .project-funding--eu {
            border-color: #b9cceb;
            background: linear-gradient(180deg, #eef4ff 0%, #e1ebfb 100%);
        }
        .project-funding__logo {
            width: 54px;
            height: 36px;
            flex: 0 0 auto;
            object-fit: contain;
            border-radius: 4px;
            box-shadow: 0 3px 8px rgba(20, 41, 66, 0.12);
        }
        .project-funding__copy {
            min-width: 0;
        }
        .project-funding__eyebrow {
            font-size: 0.72rem;
            font-weight: 800;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: #36546f;
            margin-bottom: 3px;
        }
        .project-funding__label {
            color: #24384b;
            font-size: 0.92rem;
            line-height: 1.35;
        }
        .project-title { font-weight:700; color:#2f3a49; margin-bottom:4px; }
        .project-meta { color:#6c7480; font-size:0.92em; margin-bottom:7px; }
        .project-desc { margin:0; color:#334457; }
        .teaching-badge-row {
            display: flex;
            flex-wrap: wrap;
            gap: 7px;
            margin: 6px 0 8px;
        }
        .teaching-info-badge {
            display: inline-flex;
            align-items: center;
            border: 1px solid #bfd0e0;
            background: #eef4fa;
            color: #355066;
            border-radius: 8px;
            padding: 4px 9px;
            font-size: 0.8rem;
            line-height: 1.2;
            cursor: default;
            user-select: text;
            pointer-events: none;
        }
        .contact-card p { margin: 0 0 10px; }
        .contact-card p:last-child { margin-bottom: 0; }
        footer {
            text-align:center;
            padding:24px 20px;
            color:#5f7387;
            border-top:1px solid var(--line);
            background: linear-gradient(180deg, #e3edf8 0%, #dbe7f3 100%);
            margin-top:22px;
        }
        @media (max-width: 760px) {
            header {
                padding: 42px 16px 34px;
            }
            .profile-photo {
                width: 118px;
                height: 118px;
            }
            section {
                padding: 22px 16px;
            }
            .card {
                padding: 18px 16px 16px;
                border-radius: 14px;
            }
            .project-funding {
                align-items: flex-start;
            }
            nav {
                gap: 8px;
            }
            nav a {
                font-size: 0.84rem;
                padding: 6px 12px;
            }
        }
        @media (prefers-reduced-motion: no-preference) {
            header,
            section,
            .card {
                animation: fade-up .55s ease both;
            }
            section:nth-of-type(2) { animation-delay: .04s; }
            section:nth-of-type(3) { animation-delay: .08s; }
            section:nth-of-type(4) { animation-delay: .12s; }
            section:nth-of-type(5) { animation-delay: .16s; }
            section:nth-of-type(6) { animation-delay: .2s; }
        }
        @keyframes fade-up {
            from {
                opacity: 0;
                transform: translateY(8px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
