:root{--ink:#16191F;--sub:#373D48;--muted:#5A6170;--line:#E2E1DC;--soft:#F6F5F1;--navy:#14294A;--navy-d:#0A1A33;--chip:#C9D2DE}
*{box-sizing:border-box}
body{margin:0;background:#fff;color:var(--ink);font-family:'Noto Sans JP',system-ui,sans-serif;font-size:16px;line-height:1.8}
a{color:var(--navy);text-decoration:none}a:hover{color:var(--navy-d);text-decoration:underline}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.serif{font-family:'Noto Serif JP',serif}
header.site{border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-top:20px;padding-bottom:20px}
.brand{display:flex;flex-direction:column;color:var(--ink);line-height:1.3}
.brand b{font-family:'Noto Serif JP',serif;font-size:22px;font-weight:600;letter-spacing:.08em}
.brand span{font-size:12px;color:var(--muted);letter-spacing:.12em}
nav.main{display:flex;flex-wrap:wrap;gap:4px 24px;font-size:14px}
nav.main a{color:var(--ink);padding:10px 0;border-bottom:2px solid transparent}
nav.main a[aria-current=page]{color:var(--navy);font-weight:700;border-bottom-color:var(--navy)}
nav.main a.en{color:var(--muted)}
.hero{background:var(--soft)}
.hero .wrap{display:flex;flex-wrap:wrap;gap:48px;align-items:center;padding-top:80px;padding-bottom:72px}
.hero .txt{flex:1 1 520px;min-width:0}
.eyebrow{margin:0 0 12px;font-size:13px;letter-spacing:.16em;color:var(--navy);font-weight:500}
.hero h1{margin:0 0 24px;font-family:'Noto Serif JP',serif;font-weight:600;font-size:clamp(22px,2.6vw,28px);line-height:1.6;letter-spacing:.04em}
.hero p.lead{margin:0;color:var(--sub);max-width:620px}
.hero .photo{flex:0 1 300px;display:flex;justify-content:center}
.photo-ph{width:260px;height:320px;background:#DDE1E7;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px}
.page-head{background:var(--soft)}
.page-head .wrap{padding-top:56px;padding-bottom:40px}
.page-head h1{margin:0 0 8px;font-family:'Noto Serif JP',serif;font-weight:600;font-size:32px;letter-spacing:.04em}
.page-head p{margin:0;color:var(--muted);font-size:14px}
section.block{padding:64px 0}
section.alt{background:var(--soft)}
h2.sec{margin:0 0 8px;font-family:'Noto Serif JP',serif;font-size:24px;font-weight:600}
.sec-lead{margin:0 0 32px;color:var(--muted);font-size:15px}
.row-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:20px}
ul.list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
ul.list li{display:flex;flex-wrap:wrap;gap:2px 24px;padding:14px 0;border-bottom:1px solid var(--line)}
ul.list .d{flex:0 0 104px;font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}
ul.list .c{flex:0 0 96px;font-size:12px;color:var(--navy);border:1px solid var(--chip);padding:0 8px;height:24px;line-height:22px;text-align:center}
ul.list .t{flex:1 1 420px;min-width:0}
ul.list .t small{display:block;font-size:13px;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.theme{border-top:2px solid var(--navy);padding-top:20px}
.theme h3{margin:0 0 8px;font-size:17px}
.theme p{margin:0;font-size:14px;color:var(--sub)}
.book{display:flex;gap:16px;align-items:flex-start}
.book .cover{flex:0 0 72px;height:104px;background:#DDE1E7;object-fit:cover}
.book p{margin:0}.book .bt{font-weight:700;font-size:15px;line-height:1.6;margin-bottom:4px}.book .bm{font-size:13px;color:var(--muted)}
.two{display:flex;flex-wrap:wrap;gap:48px}.two>div{flex:1 1 420px;min-width:0}
.box{background:var(--soft);padding:28px}
dl.kv{margin:0;font-size:14px;display:grid;grid-template-columns:96px 1fr;gap:10px 16px}
dl.kv dt{color:var(--muted)}dl.kv dd{margin:0}
.tabs{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--line);margin-bottom:32px}
.tabs button{font:inherit;font-size:15px;background:none;border:0;border-bottom:2px solid transparent;padding:12px 16px;min-height:44px;color:var(--muted);cursor:pointer;margin-bottom:-1px}
.tabs button[aria-selected=true]{color:var(--navy);font-weight:700;border-bottom-color:var(--navy)}
.panel[hidden]{display:none}
.panel h2{margin:32px 0 8px;font-family:'Noto Serif JP',serif;font-size:20px;font-weight:600;color:var(--navy)}
.note{font-size:13px;color:var(--muted)}
.ph{background:#FFF7DB;padding:0 4px}
footer.site{background:var(--navy);color:#fff;margin-top:0}
footer.site .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;padding-top:48px;padding-bottom:48px;font-size:14px}
footer.site a{color:#fff;padding:10px 0}
footer.site p{margin:0}
footer.site .muted{color:#D5DDE8}
.links{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center}
@media (max-width:640px){ul.list .d{flex-basis:100%}ul.list .c{flex:0 0 auto}}

.feature{border-bottom:1px solid var(--line)}
.feat{display:flex;flex-wrap:wrap;gap:48px;align-items:center}
.feat-cover{flex:0 0 200px;height:290px;background:#DDE1E7;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px;box-shadow:0 8px 24px rgba(15,35,64,.15)}
.feat-txt{flex:1 1 420px;min-width:0}
.feat-title{margin:0 0 4px;font-size:clamp(24px,3vw,32px);font-weight:600;letter-spacing:.04em;line-height:1.5}
.feat-sub{margin:0 0 12px;font-size:17px;color:var(--sub)}
.feat-meta{margin:0 0 16px;font-size:14px;color:var(--muted)}
.feat-desc{margin:0 0 20px}

/* --- refined academic look --- */
h1,h2,h3,.brand b,.feat-title{font-family:'Noto Serif JP','Noto Serif CJK JP','Hiragino Mincho ProN','Yu Mincho',serif}
.kicker{margin:0 0 6px;font-family:'Cormorant Garamond','Times New Roman',serif;font-size:15px;letter-spacing:.18em;text-transform:uppercase;color:var(--navy)}
.hero{background:var(--soft);border-bottom:1px solid var(--line)}
.hero .wrap{padding-top:96px;padding-bottom:88px}
.hero h1.name{margin:0 0 16px;font-size:clamp(34px,4.4vw,48px);font-weight:600;letter-spacing:.12em;line-height:1.3}
.hero h1.name span{display:block;margin-top:6px;font-family:'Cormorant Garamond','Times New Roman',serif;font-size:clamp(18px,2vw,22px);font-weight:500;letter-spacing:.06em;color:var(--sub)}
.affil{margin:0 0 28px;font-size:14px;color:var(--muted);letter-spacing:.06em;line-height:1.9}
.hero p.lead{font-size:17px;color:var(--ink);border-left:0;max-width:600px;line-height:2}
.photo-ph{filter:grayscale(1)}
h2.sec{font-weight:600;letter-spacing:.04em}
.section-rule{border:0;border-top:1px solid var(--line)}
.appts h3{margin:0 0 12px;font-size:15px;font-weight:600;padding-bottom:8px;border-bottom:1px solid var(--line)}
.appts ul{margin:0;padding:0;list-style:none;font-size:14px;color:var(--sub)}
.appts li{padding:6px 0;line-height:1.7}
ul.news .c{border:0;padding:0;text-align:left;font-family:'Cormorant Garamond','Times New Roman',serif;letter-spacing:.08em;color:var(--navy);font-size:13px}
.theme{border-top:1px solid var(--navy)}
footer.site{background:var(--navy-d)}

.exp-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:40px}
.exp{border-top:1px solid var(--navy);padding-top:24px}
.exp .kicker{font-size:13px;margin-bottom:4px}
.exp h3{margin:0 0 12px;font-size:21px;font-weight:600;letter-spacing:.04em}
.exp .hook{margin:0 0 12px;font-family:'Noto Serif JP','Noto Serif CJK JP',serif;font-size:16px;color:var(--navy)}
.exp .body{margin:0 0 16px;font-size:14px;color:var(--sub)}
.exp .ev{margin:0;padding:12px 0 0;list-style:none;border-top:1px dashed var(--line);font-size:13px;color:var(--muted)}
.exp .ev li{padding:3px 0}
.exp .ev li::before{content:'— ';color:var(--chip)}

main h3{font-family:'Noto Serif JP','Noto Serif CJK JP',serif;font-size:17px;font-weight:600;margin:24px 0 8px}
.hookq{font-family:'Noto Serif JP','Noto Serif CJK JP',serif;color:var(--navy);font-size:17px}
.photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:32px}
.ph-img{aspect-ratio:4/3;background:#DDE1E7;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px}
ul.cv .d{flex-basis:96px}

.portrait{width:300px;max-width:100%;height:auto;display:block}
.feat-cover-link{flex:0 0 200px}
.feat-cover-img{width:200px;height:auto;display:block;box-shadow:0 8px 24px rgba(15,35,64,.18)}
.book-t{border-top:1px solid var(--line);padding-top:16px}
.book-t p{margin:0}.book-t .bt{font-weight:700;font-size:15px;line-height:1.6;margin-bottom:4px}.book-t .bm{font-size:13px;color:var(--muted)}
.photos figure{margin:0}.photos img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.photos figcaption{font-size:13px;color:var(--muted);margin-top:6px}
