/* =========================
   基本設定
========================= */

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;

    font-family:
        "Noto Sans TC",
        "Microsoft JhengHei",
        "PingFang TC",
        Arial,
        sans-serif;

    color: #252525;

    background-color: #f8f8f6;

    line-height: 1.8;
}


/* =========================
   連結
========================= */

a {
    color: inherit;
    text-decoration: none;
}

a:hover {
    opacity: 0.65;
}

.text-link {
    text-decoration: underline;
    text-underline-offset: 4px;
}


/* =========================
   論文 LINK 按鈕
========================= */

.paper-link {
    display: inline-block;

    margin-left: 8px;

    padding: 1px 7px;

    border: 1px solid #aaa;

    border-radius: 2px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 11px;

    font-weight: 400;

    line-height: 1.6;

    letter-spacing: 0.08em;

    color: #666;

    text-decoration: none;

    vertical-align: 1px;

    white-space: nowrap;
}

.paper-link:hover {
    color: #222;

    border-color: #444;

    opacity: 1;
}


/* =========================
   頂端選單
========================= */

.site-header {
    position: sticky;

    top: 0;

    z-index: 100;

    background-color: rgba(248, 248, 246, 0.95);

    border-bottom: 1px solid #deded8;
}

.header-inner {
    max-width: 1100px;

    margin: 0 auto;

    padding: 18px 30px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 25px;
}

.site-title {
    font-family:
        "Noto Serif TC",
        "PMingLiU",
        "Times New Roman",
        serif;

    font-size: 19px;

    font-weight: bold;

    white-space: nowrap;
}


/* =========================
   頂端右側
========================= */

.header-actions {
    display: flex;

    align-items: center;

    justify-content: flex-end;

    gap: 24px;

    margin-left: auto;
}


/* =========================
   導覽選單
========================= */

.navigation {
    display: flex;

    flex-wrap: wrap;

    justify-content: flex-end;

    gap: 18px;

    font-size: 13px;
}

.navigation a {
    color: #555;
}

.navigation a:hover {
    color: #000;
}


/* =========================
   語言切換
========================= */

.language-switch {
    display: flex;

    align-items: center;

    flex-shrink: 0;

    padding: 6px 11px;

    background-color: #222;

    border-radius: 2px;

    font-size: 12px;

    line-height: 1.4;

    white-space: nowrap;
}

.language-link {
    color: #fff;

    opacity: 0.65;

    text-decoration: none;

    transition: opacity 0.2s ease;
}

.language-link:hover {
    color: #fff;

    opacity: 1;
}

.language-link.active {
    color: #fff;

    opacity: 1;

    font-weight: 600;
}

.language-separator {
    margin: 0 7px;

    color: #777;
}


/* =========================
   主要內容
========================= */

main {
    max-width: 1100px;

    margin: 0 auto;

    padding: 0 30px;
}


/* =========================
   首頁
========================= */

.hero {
    min-height: auto;

    padding: 35px 0 55px;

    display: flex;

    flex-direction: column;

    justify-content: flex-start;

    border-bottom: 1px solid #d6d6d0;
}


/* =========================
   首頁姓名與照片
========================= */

.hero-top {
    width: 100%;

    max-width: 950px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 55px;
}

.hero-photo {
    width: 220px;

    height: 220px;

    flex: 0 0 220px;

    display: block;

    object-fit: cover;

    object-position: center;

    border-radius: 50%;
}

.hero-name {
    margin: 0;
}

.hero-name h1 {
    margin: 0;

    font-family:
        "Noto Serif TC",
        "PMingLiU",
        "Times New Roman",
        serif;

    font-size: clamp(58px, 8vw, 88px);

    line-height: 1.15;

    font-weight: 500;

    letter-spacing: 0.02em;
}

.hero-name-en {
    margin: 13px 0 0 3px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 25px;

    line-height: 1.4;

    letter-spacing: 0.03em;

    color: #666;
}

.hero-name-kana {
    margin-left: 7px;

    font-family:
        "Noto Serif JP",
        "Noto Serif TC",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        "PMingLiU",
        serif;

    font-size: 0.72em;

    letter-spacing: 0.02em;

    color: #777;

    white-space: nowrap;
}

.hero-description {
    max-width: 800px;

    margin-top: 42px;

    margin-bottom: 0;

    font-size: 17px;

    line-height: 1.7;

    color: #555;
}

.hero-interest {
    max-width: 800px;

    margin-top: 5px;

    margin-bottom: 0;

    font-size: 17px;

    line-height: 1.7;

    color: #555;
}

.hero-divider {
    width: 100%;

    max-width: 800px;

    margin-top: 24px;

    margin-bottom: 18px;

    border-top: 1px solid #cfcfc8;
}

.hero-contact {
    max-width: 800px;

    margin: 0;

    font-size: 17px;

    line-height: 1.7;

    color: #555;
}


/* =========================
   各主要區塊
========================= */

.section {
    padding: 90px 0;

    border-bottom: 1px solid #d6d6d0;
}

.section-title {
    display: grid;

    grid-template-columns: 50px auto 1fr;

    align-items: center;

    gap: 15px;

    margin-bottom: 50px;
}

.section-number {
    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 13px;

    color: #888;
}

.section-title h2 {
    margin: 0;

    font-family:
        "Noto Serif TC",
        "PMingLiU",
        "Times New Roman",
        serif;

    font-size: 30px;

    font-weight: 500;
}

.section-en {
    text-align: right;

    font-size: 11px;

    letter-spacing: 0.18em;

    color: #888;
}


/* =========================
   一般內文
========================= */

.section-content {
    max-width: 800px;

    margin-left: 65px;

    font-size: 17px;
}

.section-content p {
    margin-top: 0;

    margin-bottom: 20px;
}


/* =========================
   關於我
========================= */

.about-content {
    margin-left: 0;
}

.about-text {
    line-height: 1.55;

    margin-bottom: 0;

    text-align: justify;

    text-justify: inter-ideograph;
}


/* =========================
   學經歷
========================= */

.education-list {
    max-width: 800px;

    margin-left: 0;

    font-size: 17px;

    line-height: 1.55;
}

.education-list p {
    margin-top: 0;

    margin-bottom: 12px;
}

.education-list p:last-child {
    margin-bottom: 0;
}


/* =========================
   所屬學會
========================= */

.membership-block {
    max-width: 800px;

    margin-top: 48px;
}

.membership-block h3 {
    margin: 0 0 18px 0;

    padding-bottom: 10px;

    border-bottom: 1px solid #cfcfc8;

    font-family:
        "Noto Serif TC",
        "PMingLiU",
        serif;

    font-size: 21px;

    font-weight: 500;
}

.membership-list {
    font-size: 16px;

    line-height: 1.6;
}

.membership-list p {
    margin: 0;
}


/* =========================
   學術論著
========================= */

.publication-category {
    max-width: 900px;

    margin-bottom: 65px;
}

.publication-category:last-child {
    margin-bottom: 0;
}

.publication-category h3 {
    margin: 0 0 20px 0;

    padding-bottom: 10px;

    border-bottom: 1px solid #cfcfc8;

    font-family:
        "Noto Serif TC",
        "PMingLiU",
        serif;

    font-size: 21px;

    font-weight: 500;
}

.publication-list {
    margin: 0;

    padding-left: 32px;
}

.publication-list li {
    padding: 0 0 16px 5px;

    font-size: 16px;

    line-height: 1.65;

    text-align: justify;

    text-justify: inter-ideograph;
}

.publication-list li:last-child {
    padding-bottom: 0;
}

.note {
    color: #777;

    font-size: 14px;

    white-space: nowrap;
}


/* =========================
   名單之後：年度標籤
========================= */

.year-publication h3 {
    margin-bottom: 14px;
}

.year-tabs {
    display: flex;

    align-items: center;

    gap: 28px;

    margin: 0 0 30px 0;

    overflow-x: auto;

    -webkit-overflow-scrolling: touch;
}

.year-tab {
    appearance: none;

    flex: 0 0 auto;

    margin: 0;

    padding: 4px 1px 7px;

    border: 0;

    border-bottom: 2px solid transparent;

    background: transparent;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 14px;

    line-height: 1.4;

    color: #888;

    cursor: pointer;

    transition:
        color 0.2s ease,
        border-color 0.2s ease;
}

.year-tab:hover {
    color: #222;
}

.year-tab.active {
    color: #222;

    border-bottom-color: #222;

    font-weight: 600;
}

.year-tab:focus-visible {
    outline: 1px solid #777;

    outline-offset: 4px;
}

.year-panel[hidden] {
    display: none;
}


/* =========================
   學術獎項 ＋ 演講與座談
========================= */

.simple-list,
.talk-list {
    max-width: 900px;
}

.simple-list ol,
.talk-list ol {
    margin: 0;

    padding-left: 32px;
}

.simple-list li,
.talk-list li {
    padding: 0 0 16px 5px;

    font-size: 16px;

    line-height: 1.65;

    text-align: justify;

    text-justify: inter-ideograph;
}

.simple-list li:last-child,
.talk-list li:last-child {
    padding-bottom: 0;
}


/* =========================
   參與計畫
========================= */

.project-list {
    max-width: 1000px;

    border-top: 1px solid #cfcfc8;
}

.project-item {
    display: grid;

    grid-template-columns: minmax(0, 1fr) 140px 150px;

    gap: 25px;

    align-items: start;

    padding: 18px 0;

    border-bottom: 1px solid #d6d6d0;
}

.project-name {
    font-size: 16px;

    line-height: 1.6;
}

.project-role {
    font-size: 15px;

    line-height: 1.6;

    color: #666;
}

.project-date {
    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 14px;

    line-height: 1.6;

    color: #777;

    text-align: right;

    white-space: nowrap;
}


/* =========================
   頁尾
========================= */

footer {
    background-color: #222;

    color: #eee;
}

.footer-inner {
    max-width: 1100px;

    margin: 0 auto;

    padding: 35px 30px;

    display: flex;

    justify-content: space-between;

    font-size: 12px;
}

.footer-inner p {
    margin: 0;
}

.footer-note {
    color: #999;

    letter-spacing: 0.1em;
}


/* =========================
   手機版
========================= */

@media (max-width: 750px) {

    .header-inner {
        align-items: flex-start;

        flex-direction: column;

        gap: 12px;
    }

    .header-actions {
        width: 100%;

        flex-direction: column;

        align-items: flex-start;

        gap: 12px;

        margin-left: 0;
    }

    .navigation {
        justify-content: flex-start;

        gap: 10px 16px;

        font-size: 13px;
    }

    .language-switch {
        font-size: 12px;

        padding: 6px 10px;
    }

    main {
        padding: 0 22px;
    }

    .hero {
        min-height: auto;

        padding: 30px 0 45px;
    }

    .hero-top {
        flex-direction: column-reverse;

        align-items: flex-start;

        justify-content: flex-start;

        gap: 25px;
    }

    .hero-photo {
        width: 150px;

        height: 150px;

        flex: 0 0 150px;
    }

    .hero-name h1 {
        font-size: 54px;
    }

    .hero-name-en {
        font-size: 20px;
    }

    .hero-name-kana {
        margin-left: 5px;

        font-size: 0.7em;
    }

    .hero-description {
        margin-top: 32px;

        font-size: 16px;
    }

    .hero-interest {
        font-size: 16px;
    }

    .hero-divider {
        margin-top: 20px;

        margin-bottom: 16px;
    }

    .hero-contact {
        font-size: 16px;
    }

    .section {
        padding: 65px 0;
    }

    .section-title {
        grid-template-columns: 35px 1fr;

        gap: 10px;

        margin-bottom: 35px;
    }

    .section-en {
        display: none;
    }

    .section-content {
        margin-left: 0;

        font-size: 16px;
    }

    .about-content {
        margin-left: 0;
    }

    .about-text {
        line-height: 1.55;

        text-align: justify;

        text-justify: inter-ideograph;
    }

    .education-list {
        font-size: 16px;
    }

    .membership-block {
        margin-top: 38px;
    }

    .membership-block h3 {
        font-size: 20px;
    }

    .membership-list {
        font-size: 15px;
    }

    .publication-category {
        margin-bottom: 50px;
    }

    .publication-category h3 {
        font-size: 20px;
    }

    .publication-list {
        padding-left: 25px;
    }

    .publication-list li {
        padding-left: 2px;

        font-size: 15px;

        line-height: 1.65;
    }

    .year-tabs {
        gap: 20px;

        margin-bottom: 26px;
    }

    .year-tab {
        font-size: 13px;

        padding-bottom: 6px;
    }

    .paper-link {
        margin-left: 6px;

        padding: 1px 6px;

        font-size: 10px;
    }

    .simple-list ol,
    .talk-list ol {
        padding-left: 25px;
    }

    .simple-list li,
    .talk-list li {
        padding-left: 2px;

        padding-bottom: 16px;

        font-size: 15px;

        line-height: 1.65;
    }

    .simple-list li:last-child,
    .talk-list li:last-child {
        padding-bottom: 0;
    }

    .project-item {
        grid-template-columns: 1fr;

        gap: 5px;

        padding: 17px 0;
    }

    .project-name {
        font-size: 15px;
    }

    .project-role {
        font-size: 14px;
    }

    .project-date {
        font-size: 13px;

        text-align: left;
    }

    .footer-inner {
        flex-direction: column;

        gap: 5px;
    }
}


/* =========================
   日本語版フォント
========================= */

html[lang="ja"] body {
    font-family:
        "Noto Serif JP",
        "Noto Serif TC",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        "Hiragino Mincho Pro",
        "PMingLiU",
        serif;
}

html[lang="ja"] .site-title,
html[lang="ja"] .hero-name h1,
html[lang="ja"] .section-title h2,
html[lang="ja"] .publication-category h3,
html[lang="ja"] .membership-block h3 {
    font-family:
        "Noto Serif JP",
        "Noto Serif TC",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        "Hiragino Mincho Pro",
        "PMingLiU",
        serif;
}
