
:root{--cream:#faf8f4;--warm:#f5f2ed;--sand:#e8e0d4;--taupe:#c4b8a8;--deep:#3d2f1f;--accent:#7a9e87;--acl:#a8c4b0;--text:#2c2418;--muted:#7a6e62;--border:#ddd5c8;--white:#fffdf9}
*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:'DM Sans','Apple SD Gothic Neo','Noto Sans KR',sans-serif;background:var(--cream);color:var(--text);font-size:15px;line-height:1.75;word-break:keep-all}a{color:inherit} .en{word-break:normal}
nav{position:sticky;top:0;z-index:100;background:rgba(250,248,244,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);height:62px;display:flex;align-items:center;justify-content:space-between;padding:0 2rem}.nav-logo{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:600;color:var(--deep);text-decoration:none}.nav-links{display:flex;gap:.25rem;list-style:none}.nav-links a{font-size:.82rem;font-weight:500;color:var(--muted);text-decoration:none;padding:.38rem .7rem;border-radius:999px;transition:.2s}.nav-links a:hover,.nav-links a.active{color:var(--deep);background:var(--sand)}.lang-switch{font-size:.8rem;font-weight:600;color:var(--accent);text-decoration:none;padding:.32rem .78rem;border:1px solid var(--acl);border-radius:999px;transition:.2s}.lang-switch:hover{background:var(--accent);color:#fff}.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:5px}.hamburger span{width:22px;height:2px;background:var(--deep);border-radius:2px}.mobile-menu{display:none;position:absolute;top:62px;left:0;right:0;background:var(--cream);border-bottom:1px solid var(--border);padding:1rem 2rem;z-index:99;flex-direction:column}.mobile-menu.open{display:flex}.mobile-menu a{font-size:.95rem;color:var(--text);text-decoration:none;padding:.75rem 0;border-bottom:1px solid var(--border)}
.hero{min-height:calc(100vh - 62px);display:grid;grid-template-columns:1fr 1fr}.hero-left{display:flex;flex-direction:column;justify-content:center;padding:6rem 4rem 6rem 5rem;position:relative}.hero-left::after{content:'';position:absolute;right:0;top:12%;bottom:12%;width:1px;background:var(--border)}.hero-tag,.section-tag{font-size:.74rem;font-weight:600;color:var(--accent);letter-spacing:.11em;text-transform:uppercase;display:flex;align-items:center;gap:.6rem;margin-bottom:1rem}.hero-tag::before,.section-tag::before{content:'';width:26px;height:1px;background:var(--accent)}.hero-name{font-family:'Cormorant Garamond',serif;font-size:clamp(3.2rem,6vw,5rem);font-weight:300;line-height:1.02;color:var(--deep);margin-bottom:.8rem}.hero-name em{font-style:italic}.hero-title{font-size:1rem;color:var(--muted);margin-bottom:2rem}.hero-summary{font-size:.94rem;color:var(--text);line-height:1.9;max-width:520px;border-left:2px solid var(--acl);padding-left:1.25rem;margin-bottom:2.4rem}.hero-links,.button-row{display:flex;gap:.75rem;flex-wrap:wrap}.pill{font-size:.8rem;font-weight:600;color:var(--deep);text-decoration:none;padding:.48rem 1rem;border:1px solid var(--border);border-radius:999px;transition:.2s;background:rgba(255,255,255,.28)}.pill:hover{border-color:var(--accent);color:var(--accent);background:rgba(122,158,135,.07)}.hero-right{background:var(--warm);display:flex;flex-direction:column;justify-content:center;padding:6rem 4rem;gap:2rem}.stat-row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.stat{padding:1.5rem;background:var(--cream);border-radius:14px;border:1px solid var(--border)}.stat-num{font-family:'Cormorant Garamond',serif;font-size:2.5rem;font-weight:300;color:var(--deep);line-height:1}.stat-label{font-size:.78rem;color:var(--muted);margin-top:.35rem}.interests-box{padding:1.6rem;background:var(--deep);border-radius:14px;color:var(--cream)}.interests-box h4{font-size:.78rem;color:var(--acl);letter-spacing:.08em;text-transform:uppercase;margin-bottom:1rem}.interest-tags{display:flex;flex-wrap:wrap;gap:.5rem}.interest-tag{font-size:.78rem;padding:.3rem .72rem;border:1px solid rgba(255,255,255,.16);border-radius:999px;color:rgba(255,255,255,.82)}
main section{padding:5.5rem 0}main section:nth-child(even){background:var(--warm)}.container{max-width:1120px;margin:0 auto;padding:0 3rem}.narrow{max-width:840px}.section-header{margin-bottom:3rem}.section-title{font-family:'Cormorant Garamond',serif;font-size:2.55rem;font-weight:300;color:var(--deep);line-height:1.15}.lead{font-size:1rem;color:var(--muted);max-width:760px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.card{background:var(--white);border:1px solid var(--border);border-radius:14px;padding:1.45rem}.card h3{font-size:1rem;color:var(--deep);margin-bottom:.7rem}.card p,.card li{font-size:.88rem;color:var(--text)}.item{padding:1.15rem 1.35rem;border:1px solid var(--border);border-radius:12px;background:var(--white);margin-bottom:.9rem}.item-title{font-weight:600;color:var(--deep);line-height:1.55}.item-meta{font-size:.78rem;color:var(--muted);margin-top:.35rem;display:flex;gap:1rem;flex-wrap:wrap}.item-desc{font-size:.86rem;color:var(--text);margin-top:.55rem}.year{font-family:'DM Mono',monospace;font-size:.75rem;color:var(--taupe)}
.pub-item{padding:1.2rem 1.4rem;border-left:2px solid var(--border);margin-bottom:1rem;background:rgba(255,255,255,.45);transition:.2s}.pub-item:hover{border-left-color:var(--accent);background:var(--white)}.pub-text{font-size:.86rem;color:var(--text)}.pub-links{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.65rem}.pub-btn{font-size:.72rem;font-weight:600;padding:.24rem .68rem;border-radius:999px;text-decoration:none;border:1px solid;transition:.2s}.btn-doi{color:#c86a22;border-color:#c86a22}.btn-doi:hover{background:#c86a22;color:#fff}.btn-pubmed{color:#2980b9;border-color:#2980b9}.btn-pubmed:hover{background:#2980b9;color:#fff}.btn-scholar{color:#1a73e8;border-color:#1a73e8}.btn-scholar:hover{background:#1a73e8;color:#fff}.btn-url{color:var(--accent);border-color:var(--acl)}.btn-url:hover{background:var(--accent);color:#fff}.count{font-size:.82rem;color:var(--muted);margin-bottom:1.2rem;font-style:italic}.media-badge{font-size:.68rem;font-weight:700;padding:.2rem .6rem;border-radius:6px;white-space:nowrap;background:#d5e8d4;color:#387535}.badge-tv{background:#fdebd0;color:#c0712a}.badge-news{background:#dae8fc;color:#2a5fa8}.news-item{display:grid;grid-template-columns:96px 1fr;gap:1rem;align-items:start}.news-item a{text-decoration:none;color:var(--deep);font-weight:600}.news-item a:hover{color:var(--accent)}
.contact-section{background:var(--deep)!important;color:var(--cream)}.contact-section .section-title{color:var(--cream)}.contact-section .section-tag{color:var(--acl)}.contact-section .section-tag::before{background:var(--acl)}.contact-value a{color:var(--acl);text-decoration:none}.contact-ext{display:flex;align-items:center;gap:.7rem;padding:.85rem 1rem;border:1px solid rgba(255,255,255,.13);border-radius:10px;text-decoration:none;color:var(--cream);font-size:.88rem;transition:.2s}.contact-ext:hover{border-color:var(--acl);background:rgba(122,158,135,.12)}
.contact-ext.contact-gap{margin-top:1.1rem}footer{background:#1a1208;color:var(--taupe);text-align:center;padding:2rem;font-size:.78rem}footer a{color:var(--acl);text-decoration:none}.page-hero{padding:5rem 0 3rem;background:var(--warm);border-bottom:1px solid var(--border)}.profile-list li{list-style:none;padding:.55rem 0;border-bottom:1px solid var(--border);font-size:.88rem}.profile-list li::before{content:'✦';color:var(--accent);font-size:.62rem;margin-right:.55rem}
@media(max-width:900px){nav{padding:0 1.2rem}.nav-links{display:none}.hamburger{display:flex}.hero{grid-template-columns:1fr}.hero-left{padding:3.2rem 1.6rem}.hero-left::after{display:none}.hero-right{padding:2rem 1.6rem}.container{padding:0 1.4rem}.grid-2,.grid-3{grid-template-columns:1fr}.news-item{grid-template-columns:1fr;gap:.2rem}main section{padding:4rem 0}.page-hero{padding:3rem 0 2rem}}

.pagination{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center;margin-top:1.5rem}.page-btn{font-size:.78rem;font-weight:600;padding:.35rem .75rem;border:1px solid var(--border);border-radius:999px;background:var(--white);color:var(--muted);cursor:pointer;transition:.2s}.page-btn:hover,.page-btn.active{border-color:var(--accent);background:var(--accent);color:#fff}.page-info{font-size:.78rem;color:var(--muted);margin-left:.4rem}.map-embed{width:100%;min-height:420px;border:1px solid var(--border);border-radius:14px;background:var(--white)}.section-note{font-size:.84rem;color:var(--muted);margin-top:.6rem}.item-group-title{font-size:1rem;color:var(--deep);font-weight:700;margin:2rem 0 1rem}.embed-wrap{overflow:hidden;border-radius:14px;border:1px solid var(--border);background:var(--white)}.embed-wrap iframe{display:block;width:100%;height:460px;border:0}

/* Profile photo */
.portrait-card{background:var(--white);border:1px solid var(--border);border-radius:18px;padding:1rem;display:grid;grid-template-columns:118px 1fr;gap:1.1rem;align-items:center;box-shadow:0 8px 24px rgba(61,47,31,.04)}
.portrait-card img{width:118px;height:148px;object-fit:cover;border-radius:14px;border:1px solid var(--border);display:block}
.portrait-caption{font-size:.9rem;font-weight:600;color:var(--deep);line-height:1.5}
.profile-hero-grid{display:grid;grid-template-columns:1fr 220px;gap:3rem;align-items:center}
.profile-photo-wrap{justify-self:end;background:var(--white);border:1px solid var(--border);border-radius:22px;padding:.9rem;box-shadow:0 8px 24px rgba(61,47,31,.05)}
.profile-photo-wrap img{width:190px;height:240px;object-fit:cover;border-radius:16px;display:block}
@media(max-width:900px){.portrait-card{grid-template-columns:90px 1fr}.portrait-card img{width:90px;height:112px}.profile-hero-grid{grid-template-columns:1fr}.profile-photo-wrap{justify-self:start}.profile-photo-wrap img{width:160px;height:200px}}

.lead.small{font-size:.95rem;max-width:760px;margin-top:.5rem}.project-item.role-pi{border-left:3px solid var(--accent)}.project-item.role-participant{opacity:.95}

/* v10 updates */
.stat-link{display:block;text-decoration:none;color:inherit;cursor:pointer}
.stat-link:hover{border-color:var(--accent);box-shadow:0 4px 16px rgba(122,158,135,.14);transform:translateY(-1px)}
.subsection-title{font-size:1rem;font-weight:600;color:var(--deep);margin:0 0 1rem 0}
#patents-section{scroll-margin-top:80px}
#projects-pi-section{scroll-margin-top:80px}

/* 학회·강연 지도 */
#talk-map{width:100%;height:460px;border:1px solid var(--border);border-radius:14px;background:var(--white);z-index:0}
@media(max-width:760px){#talk-map{height:280px}}
.map-pop h4{font-size:.9rem;color:var(--deep);margin-bottom:.5rem}
.map-pop ul{list-style:none;margin:0;padding:0;max-height:230px;overflow-y:auto}
.map-pop li{font-size:.78rem;color:var(--text);padding:.4rem 0;border-top:1px solid var(--border);line-height:1.5}
.map-pop-date{font-family:'DM Mono',monospace;font-size:.7rem;color:var(--taupe);margin-right:.35rem}
.map-pop-event{display:block;font-size:.72rem;color:var(--muted);margin-top:.15rem}
/* 좁은 화면: 팝업이 지도(280px)보다 길어지지 않게, 그리고 확대 버튼에 제목이 가리지 않게 */
@media(max-width:760px){#talk-map .map-pop ul{max-height:110px}
/* 컨트롤 레이어가 지도 레이어 밖에 있어 z-index로는 팝업을 위로 못 올린다.
   좁은 화면에선 팝업이 제목을 가리므로 버튼을 감춘다 — 핀치 확대는 그대로 동작한다. */
#talk-map .leaflet-control-zoom{display:none}}
.leaflet-container{font:inherit}
.profile-list li.thesis-note{font-size:.8rem;color:var(--muted);line-height:1.6}
.profile-list li.thesis-note::before{content:'↳';color:var(--taupe)}

/* 학위논문상 강조 */
.award-line{display:inline-block;margin-top:.6rem;padding:.32rem .8rem;border-radius:999px;
  border:1px solid var(--acl);background:rgba(122,158,135,.12);
  color:var(--deep);font-weight:600;font-size:.8rem;line-height:1.5}
.award-line::before{content:'✦';color:var(--accent);margin-right:.4rem;font-size:.7rem}

/* 국문 페이지 소제목 — 한글 위, 영어는 아래 보조 표기 */
.h-en{display:block;margin-top:.24rem;font-family:'DM Sans',sans-serif;font-size:.74rem;
  font-weight:400;color:var(--muted);letter-spacing:.02em;line-height:1.45}

/* 연구 페이지 상단 요약 패널 */
.stat-row.stat-row-4{grid-template-columns:repeat(4,1fr);gap:1rem}
.stat-row-4 .stat{padding:1.25rem}
.stat-row-4 .stat-num{font-size:2.1rem}
@media(max-width:900px){.stat-row.stat-row-4{grid-template-columns:1fr 1fr}}
#projects-all-section{scroll-margin-top:80px}
.stat-sub{font-size:.7rem;color:var(--taupe);margin-top:.28rem;line-height:1.4}
/* 목록 항목 안의 보조 줄 (협력 기관 등) */
.profile-list li .li-sub{display:block;margin-top:.22rem;font-size:.76rem;color:var(--muted);line-height:1.55}
.item-group-title:first-child{margin-top:0}
.group-count{font-family:'DM Mono',monospace;font-size:.72rem;font-weight:400;color:var(--taupe);margin-left:.4rem}
