:root{
  --ink:#1c2340;
  --sub:#5f6880;
  --accent:#3f51a8;
  --accent-dark:#283566;
  --accent-soft:#eaeefb;
  --line:#e3e6f0;
  --bg:#fafbfe;
  --card:#ffffff;
  --star:#c9a227;
  --serif:"Source Serif 4","Noto Serif JP","Hiragino Mincho ProN",serif;
  --sans:"Noto Sans JP","Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--sans);
  line-height:1.9;font-size:15.5px;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:880px;margin:0 auto;padding:0 24px 90px}
a{color:var(--accent)}

/* ---------- header ---------- */
header.site{padding:0 0 14px;border-bottom:1px solid var(--line)}
.accentbar{height:4px;background:linear-gradient(90deg,var(--accent) 0%,#6272c9 60%,#c7d0f0 100%);border-radius:0 0 3px 3px;margin:0 -24px 26px}
.brand{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:10px}
.brand .name{
  font-family:var(--serif);font-size:1.32em;font-weight:700;color:var(--ink);
  text-decoration:none;letter-spacing:.03em;
}
.brand .name .en{
  font-family:var(--sans);font-weight:400;color:var(--sub);
  font-size:.7em;margin-left:.8em;letter-spacing:.06em;
}
nav.top a,nav.top .here{margin-left:1.6em;font-size:.93em;text-decoration:none}
nav.top a{color:var(--accent)}
nav.top a:hover{text-decoration:underline}
nav.top .here{color:var(--ink);font-weight:600}

/* ---------- hero ---------- */
.hero{
  display:grid;grid-template-columns:1fr 230px;gap:40px;
  align-items:center;padding:44px 0 10px;
}
.hero.solo{display:block;padding:40px 0 0}
.hero h1{
  font-family:var(--serif);font-size:2.35em;margin:0 0 4px;
  letter-spacing:.05em;line-height:1.3;
}
.hero .romaji{color:var(--sub);font-size:1em;margin:0 0 20px;letter-spacing:.04em}
.hero .titles{margin:0;padding:0;list-style:none}
.hero .titles li{margin:3px 0;font-size:.98em}
.hero .titles .org{font-weight:700}
.hero .degree{color:var(--sub);font-size:.9em;margin:12px 0 18px}
.portrait{margin:0}
.portrait img{
  width:100%;height:auto;display:block;border-radius:14px;
  border:1px solid var(--line);
  box-shadow:0 10px 30px -12px rgba(40,53,102,.35);
}
.linkchips{display:flex;flex-wrap:wrap;gap:9px;padding:0;margin:0;list-style:none}
.linkchips a{
  display:block;border:1px solid var(--line);border-radius:999px;
  padding:5px 17px;color:var(--accent);text-decoration:none;background:var(--card);
  font-size:.88em;transition:.15s;
}
.linkchips a:hover{border-color:var(--accent);background:var(--accent-soft)}

/* ---------- sections ---------- */
section{margin-top:52px}
h2{
  font-family:var(--sans);font-size:.92em;letter-spacing:.22em;color:var(--accent-dark);
  text-transform:uppercase;margin:0 0 4px;font-weight:700;
}
h2::after{
  content:"";display:block;width:34px;height:3px;background:var(--accent);
  border-radius:2px;margin-top:7px;margin-bottom:20px;
}
h3.sub{font-size:.85em;letter-spacing:.18em;color:var(--sub);text-transform:uppercase;margin:30px 0 8px}
.keywords{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:16px 0 0;list-style:none}
.keywords li{
  background:var(--accent-soft);color:var(--accent-dark);
  border-radius:999px;padding:3px 15px;font-size:.85em;
}
.en-note{
  color:var(--sub);font-size:.93em;border-left:3px solid var(--accent);
  padding-left:16px;margin-top:20px;line-height:1.8;
}

/* rows (news / career / grants) */
.rows{margin:0;padding:0;list-style:none}
.rows li{display:flex;gap:22px;padding:9px 2px;border-bottom:1px solid var(--line)}
.rows li:last-child{border-bottom:none}
.rows .when{
  color:var(--accent-dark);white-space:nowrap;font-size:.85em;
  padding-top:3px;min-width:6.2em;font-weight:600;letter-spacing:.03em;
  font-variant-numeric:tabular-nums;
}
.rows .funder{color:var(--sub);font-size:.9em}
.member{color:var(--sub);font-size:.93em;margin-top:14px}

/* ---------- publications ---------- */
.pubnote{color:var(--sub);font-size:.94em;margin:6px 0 0}
.yeartag{
  font-family:var(--serif);font-size:1.25em;font-weight:700;color:var(--ink);
  margin:40px 0 4px;letter-spacing:.08em;
  border-bottom:1px solid var(--line);padding-bottom:6px;
}
.yeartag .ycount{color:var(--sub);font-weight:400;font-size:.75em}
ol.pubs{padding-left:1.5em;margin:10px 0 0}
ol.pubs li{margin:0 0 15px;padding-left:.2em}
ol.pubs li::marker{color:var(--sub);font-size:.85em}
ol.pubs .t{font-weight:600;text-decoration:none;color:var(--ink)}
ol.pubs a.t:hover{color:var(--accent);text-decoration:underline}
ol.pubs .j{font-style:italic;color:var(--sub)}
ol.pubs strong{color:var(--accent-dark);font-weight:700}
.first{
  display:inline-block;background:var(--accent);color:#fff;border-radius:4px;
  font-size:.68em;padding:1px 8px;margin-left:8px;vertical-align:2px;letter-spacing:.08em;
}
.sel{color:#c99700;margin-left:6px;font-size:.9em}
.sel-list{margin-top:4px}
.more{text-align:right;font-size:.95em;margin-top:18px}
.more a{text-decoration:none;font-weight:600}
.more a:hover{text-decoration:underline}

/* contact */
.contact p{margin:.35em 0}
.contact .mail{
  font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--card);
  border:1px solid var(--line);border-radius:6px;padding:3px 12px;font-size:.95em;
}

footer.site{
  margin-top:80px;border-top:1px solid var(--line);
  padding-top:16px;color:var(--sub);font-size:.83em;
}
footer.site a{color:var(--sub)}

@media (max-width:680px){
  .hero{grid-template-columns:1fr;gap:26px;padding-top:30px}
  .portrait{order:-1;max-width:190px}
  .brand{flex-direction:column}
  nav.top a,nav.top .here{margin-left:0;margin-right:1.4em}
  .rows li{flex-direction:column;gap:2px}
  .rows .when{min-width:0}
}
@media print{
  .accentbar,nav.top,.linkchips,.more{display:none}
  body{background:#fff;font-size:11.5px}
  .portrait img{box-shadow:none}
  a{color:var(--ink);text-decoration:none}
}

/* ---------- research / projects pages ---------- */
.lead{font-size:1.02em;max-width:720px;margin-top:14px}
.eyebrow{display:flex;align-items:baseline;gap:16px;margin-bottom:20px}
.eyebrow h2{margin:0;flex-shrink:0}
.eyebrow h2::after{margin-bottom:0}
.eyebrow .count{
  color:var(--sub);font-size:.78em;letter-spacing:.14em;text-transform:uppercase;
  margin-left:auto;white-space:nowrap;
}
.programs{display:grid;gap:22px;margin-top:6px}
.prog{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:26px 30px 22px;box-shadow:0 6px 22px -16px rgba(40,53,102,.25);
}
.prog .kicker{
  display:inline-block;color:var(--accent-dark);font-size:.75em;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;margin-bottom:6px;
}
.prog h3{font-family:var(--serif);font-size:1.3em;margin:2px 0 2px;line-height:1.5}
.prog .en-sub{color:var(--sub);font-size:.88em;margin:0 0 12px;font-style:italic}
.themes{margin:12px 0 16px;padding-left:1.2em}
.themes li{margin:5px 0;font-size:.95em}
.fund{display:flex;flex-wrap:wrap;gap:8px}
.fund span{
  background:var(--accent-soft);color:var(--accent-dark);border-radius:6px;
  padding:2px 12px;font-size:.8em;font-weight:500;
}
.domains{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.dom{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 20px 10px}
.dom .h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:4px}
.dom .n{font-weight:700}
.dom .c{color:var(--accent-dark);font-size:.78em;white-space:nowrap;font-variant-numeric:tabular-nums}
.dom p{margin:4px 0 8px;font-size:.88em;color:var(--sub);line-height:1.75}
.two{display:grid;grid-template-columns:1.2fr 1fr;gap:34px}
.facts{margin:0;padding:0;list-style:none}
.facts li{display:flex;gap:14px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:.92em}
.facts li:last-child{border-bottom:none}
.facts .k{color:var(--accent-dark);font-weight:700;min-width:3.2em;white-space:nowrap}

.rolekey{display:flex;flex-wrap:wrap;gap:20px;margin-top:18px;font-size:.88em;color:var(--sub)}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px;vertical-align:-1px}
.dot.pi{background:var(--accent)}
.dot.stat{background:#c99700}
.dot.co{background:#96a0b5}
section.tight{margin-top:26px}
.domain{margin-top:30px}
.domain h3{
  font-family:var(--serif);font-size:1.08em;margin:0 0 2px;
  border-bottom:1px solid var(--line);padding-bottom:7px;
}
.domain h3 .cnt{
  color:var(--sub);font-family:var(--sans);font-weight:400;font-size:.72em;
  letter-spacing:.12em;text-transform:uppercase;margin-left:10px;
}
.proj{display:flex;gap:14px;padding:11px 2px;border-bottom:1px dashed var(--line);align-items:flex-start}
.proj:last-child{border-bottom:none}
.rtag{
  flex-shrink:0;font-size:.72em;font-weight:700;border-radius:5px;
  padding:2px 10px;margin-top:4px;white-space:nowrap;letter-spacing:.04em;
}
.rtag.pi{background:var(--accent);color:#fff}
.rtag.stat{background:#fff6df;color:#8a6a00;border:1px solid #e5cf8c}
.rtag.co{background:#eef0f6;color:#5f6880;border:1px solid var(--line)}
.pj .t{font-weight:600;line-height:1.7}
.pj .d{color:var(--sub);font-size:.86em;margin-top:1px}
.pj .fundname{font-weight:500}

@media (max-width:680px){
  .domains{grid-template-columns:1fr}
  .two{grid-template-columns:1fr}
  .eyebrow{flex-wrap:wrap}
  .eyebrow .count{margin-left:0}
  .proj{flex-direction:column;gap:4px}
}

/* role badges & researchmap CTA */
.rb{
  display:inline-block;border-radius:4px;font-size:.68em;font-weight:700;
  padding:1px 8px;margin-left:6px;vertical-align:2px;letter-spacing:.06em;
}
.rb.first{background:var(--accent);color:#fff}
.rb.corr{background:#fff6df;color:#8a6a00;border:1px solid #e5cf8c}
.rb.last{background:#eef0f6;color:#5f6880;border:1px solid var(--line)}
.rmcta{margin-top:18px}
.rmcta a{
  display:inline-block;background:var(--accent);color:#fff;text-decoration:none;
  border-radius:8px;padding:9px 22px;font-size:.95em;font-weight:600;
  box-shadow:0 6px 16px -8px rgba(40,53,102,.5);
}
.rmcta a:hover{background:var(--accent-dark)}

/* news links */
.rows a{color:var(--accent);text-decoration:none}
.rows a:hover{text-decoration:underline}
.rows a em{color:inherit}

/* ================= research (merged) page ================= */
/* three questions */
.qgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.qcard{
  background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:22px 22px 18px;position:relative;
}
.qcard .qnum{
  font-family:var(--serif);font-size:1.5em;font-weight:700;color:var(--accent);
  opacity:.35;display:block;margin-bottom:6px;
}
.qcard h3{font-size:1.02em;line-height:1.55;margin:0 0 8px}
.qcard p{font-size:.88em;color:var(--sub);margin:0;line-height:1.7}

/* featured big cards */
.fcards{display:grid;gap:20px}
.fcard{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:26px 30px 22px;box-shadow:0 6px 22px -16px rgba(40,53,102,.28);
}
.pbadges,.cbadge{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}
.pbadge{font-size:.72em;font-weight:700;border-radius:5px;padding:2px 11px;letter-spacing:.04em}
.b-pi{background:var(--accent);color:#fff}
.b-live{background:#fff6df;color:#8a6a00;border:1px solid #e5cf8c}
.b-lead{background:#e7f1f2;color:var(--accent-dark);border:1px solid #cfe3e4}
.b-collab{background:#eef0f6;color:#5f6880;border:1px solid var(--line)}
.b-co{background:#eef0f6;color:#5f6880;border:1px solid var(--line)}
.fcard h3{font-family:var(--serif);font-size:1.32em;margin:2px 0 6px;line-height:1.45}
.pq{font-weight:600;color:var(--accent-dark);margin:0 0 10px;font-size:1.02em}
.pbody{margin:0 0 12px;font-size:.95em}
.pmeta{
  color:var(--accent-dark);font-size:.84em;font-weight:500;margin:0 0 12px;
  background:var(--accent-soft);border-radius:6px;padding:6px 12px;display:inline-block;
}
.pnote{color:var(--sub);font-size:.88em;font-style:italic;margin:6px 0 0}
.repbox{border-top:1px dashed var(--line);padding-top:12px;margin-top:4px}
.replabel{font-size:.72em;font-weight:700;letter-spacing:.12em;color:var(--sub);text-transform:uppercase}
ol.reps{padding-left:1.3em;margin:6px 0 0}
ol.reps li{margin:0 0 7px;font-size:.9em;line-height:1.6}
ol.reps a{font-weight:600;color:var(--ink);text-decoration:none}
ol.reps a:hover{color:var(--accent);text-decoration:underline}
.reps .repmeta{color:var(--sub)}
.reps .rb{display:inline-block;border-radius:4px;font-size:.68em;font-weight:700;padding:1px 7px;margin-left:5px;vertical-align:1px}
.reps .rb.first{background:var(--accent);color:#fff}
.reps .rb.corr{background:#fff6df;color:#8a6a00;border:1px solid #e5cf8c}
.reps .rb.last{background:#eef0f6;color:#5f6880;border:1px solid var(--line)}

/* continuing compact cards */
.ccards{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px}
.ccard{background:var(--card);border:1px solid var(--line);border-radius:11px;padding:18px 20px 14px}
.ccard .ch{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px}
.ccard .cn{font-weight:700;line-height:1.5}
.ccard .cnum{color:var(--accent-dark);font-size:.78em;white-space:nowrap;font-variant-numeric:tabular-nums}
.ccard>p{margin:2px 0 8px;font-size:.88em;color:var(--sub);line-height:1.75}
.ccard details{font-size:.9em}
.ccard summary{cursor:pointer;color:var(--accent);font-size:.85em;font-weight:600;list-style-position:inside}
.ccard summary:hover{text-decoration:underline}
.ccard details ol.reps{margin-top:8px}
.allnote{color:var(--sub);font-size:.92em;margin-top:20px;border-left:3px solid var(--line);padding-left:14px}

@media (max-width:680px){
  .qgrid{grid-template-columns:1fr}
  .ccards{grid-template-columns:1fr}
}

/* ---- refinement pass: research page ---- */
.pagesub{color:var(--sub);letter-spacing:.24em;text-transform:uppercase;font-size:.78em;margin:4px 0 0;font-weight:600}
.prog{position:relative;overflow:hidden;padding-top:30px}
.prog::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--accent) 0%,#6272c9 45%,rgba(61,154,162,0) 90%)}
.prog h3{margin:4px 0 3px}
.themes{list-style:none;padding-left:.1em}
.themes li{padding-left:1.15em;position:relative}
.themes li::before{content:"▸";color:var(--accent);position:absolute;left:0;font-size:.9em;top:1px}
.dom{transition:box-shadow .15s, transform .15s, border-color .15s;border-left:3px solid transparent}
.dom:hover{border-left-color:var(--accent);box-shadow:0 10px 24px -16px rgba(40,53,102,.4);transform:translateY(-1px)}
.facts-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 22px;
  box-shadow:0 6px 22px -18px rgba(40,53,102,.3)}
.facts-card .facts li{padding:9px 0}
.two{align-items:start}
.lead b{color:var(--accent-dark)}

/* ==== research v2: guiding questions ==== */
.qgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.qcard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 22px 14px;position:relative}
.qnum{font-family:var(--serif);font-size:1.6em;font-weight:700;color:var(--accent);opacity:.35;line-height:1;display:block;margin-bottom:6px}
.qcard h3{font-size:.95em;margin:0 0 6px;line-height:1.75}
.qcard p{margin:0 0 4px;font-size:.85em;color:var(--sub);line-height:1.75}

/* ==== research v2: featured project cards ==== */
.fcards{display:grid;gap:22px;margin-top:6px}
.fcard{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:26px 30px 22px;box-shadow:0 6px 22px -16px rgba(40,53,102,.25);
  position:relative;overflow:hidden;
}
.fcard::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--accent) 0%,#6272c9 45%,rgba(61,154,162,0) 90%)}
.fcard h3{font-family:var(--serif);font-size:1.28em;margin:10px 0 2px;line-height:1.55}
.pbadges{display:flex;flex-wrap:wrap;gap:6px}
.pbadge{display:inline-block;border-radius:999px;font-size:.72em;font-weight:700;padding:2px 12px;letter-spacing:.04em}
.pbadge.b-pi{background:var(--accent);color:#fff}
.pbadge.b-live{background:#eaf5ec;color:#2e6b45;border:1px solid #bcdcc5}
.pbadge.b-lead{background:#fff6df;color:#8a6a00;border:1px solid #e5cf8c}
.pbadge.b-collab{background:#eef0f6;color:#5f6880;border:1px solid var(--line)}
.pq{color:var(--accent-dark);font-weight:700;font-size:.97em;margin:4px 0 10px}
.pbody{font-size:.93em;margin:0;line-height:1.9}
.pmeta{color:var(--sub);font-size:.84em;margin:12px 0 0;border-top:1px dashed var(--line);padding-top:10px}
.pnote{color:var(--sub);font-size:.84em;font-style:italic;margin:10px 0 0}
.repbox{background:#f5f6fc;border-left:3px solid var(--accent);border-radius:0 8px 8px 0;padding:12px 18px;margin-top:14px}
.replabel{display:block;font-size:.72em;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-dark);margin-bottom:6px}
.reps{margin:0;padding-left:1.25em}
.reps li{margin:7px 0;font-size:.88em;line-height:1.75}
.reps li::marker{color:var(--sub);font-size:.85em}
.reps a{font-weight:600;text-decoration:none;color:var(--ink)}
.reps a:hover{color:var(--accent);text-decoration:underline}
.repmeta{color:var(--sub)}

/* ==== research v2: continuing collaboration cards ==== */
.ccards{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px}
.ccard{
  background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 20px 12px;
  border-left:3px solid transparent;transition:box-shadow .15s,transform .15s,border-color .15s;
}
.ccard:hover{border-left-color:var(--accent);box-shadow:0 10px 24px -16px rgba(40,53,102,.4);transform:translateY(-1px)}
.ch{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.cn{font-weight:700;font-size:.95em;line-height:1.6}
.cnum{color:var(--accent-dark);font-size:.76em;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}
.cbadge{margin:6px 0 2px}
.ccard>p{margin:6px 0 8px;font-size:.86em;color:var(--sub);line-height:1.75}
.ccard details{margin:2px 0 6px}
.ccard summary{
  cursor:pointer;font-size:.82em;font-weight:700;color:var(--accent);
  list-style:none;display:inline-flex;align-items:center;gap:5px;
}
.ccard summary::-webkit-details-marker{display:none}
.ccard summary::before{content:"▸";transition:transform .15s;font-size:.95em}
.ccard details[open] summary::before{transform:rotate(90deg)}
.ccard details .reps{margin-top:8px}
.ccard details .reps li{font-size:.84em}
.allnote{color:var(--sub);font-size:.9em;margin-top:22px}

@media (max-width:680px){
  .qgrid{grid-template-columns:1fr}
  .ccards{grid-template-columns:1fr}
  .fcard{padding:22px 20px 18px}
}

/* fixes: lead width / external label */
.lead{max-width:none}
nav.top .ext{font-size:.72em;color:var(--sub);margin-left:2px;font-weight:400}

/* publication layout: authors on new line */
ol.pubs .aline{display:block;margin-top:3px}

/* grants rows */
.rows .rtag{margin-right:9px;vertical-align:1px;margin-top:0}

/* language switcher */
.langsw{margin-left:1.6em;font-size:.9em;white-space:nowrap}
.langsw a{color:var(--accent);text-decoration:none}
.langsw a:hover{text-decoration:underline}
.langsw .langcur{color:var(--ink);font-weight:700}
.langsw .langsep{color:var(--line);margin:0 .1em}
@media (max-width:680px){ .langsw{margin-left:0;margin-top:6px;display:block} }

/* ==== design polish v2: header & banner ==== */
header.site{padding:0;border-bottom:none}
.accentbar{
  height:3px;border-radius:0;
  background:linear-gradient(90deg,var(--accent-dark) 0%,var(--accent) 32%,#6a7bd4 62%,rgba(185,217,219,0) 100%);
  margin:0 -24px 20px;
}
.brand{display:flex;align-items:center;gap:18px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.brand .name{font-size:1.22em;line-height:1.25;display:flex;flex-direction:column;gap:0}
.brand .name .en{margin-left:0;font-size:.56em;letter-spacing:.26em;text-transform:uppercase;color:var(--sub)}
nav.top{margin-left:auto;display:flex;align-items:center;flex-wrap:wrap;gap:6px 26px;row-gap:8px}
nav.top a,nav.top .here{margin-left:0;font-size:.9em;letter-spacing:.02em}
nav.top>a{color:var(--sub);position:relative;padding:3px 0;transition:color .15s;text-decoration:none}
nav.top>a:hover{color:var(--accent-dark);text-decoration:none}
nav.top>a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--accent);border-radius:2px;transition:right .18s ease}
nav.top>a:hover::after{right:0}
nav.top .here{color:var(--accent-dark);font-weight:700;position:relative;padding:3px 0}
nav.top .here::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--accent);border-radius:2px}
nav.top .ext{font-size:.66em;color:#96a0b5;margin-left:3px;font-weight:400}

/* language switcher: segmented pill */
.langsw{
  display:inline-flex;align-items:center;gap:2px;
  margin-left:4px;padding:3px 5px;
  border:1px solid var(--line);border-radius:999px;background:var(--card);
  font-size:.76em;white-space:nowrap;line-height:1.6;
  box-shadow:0 1px 3px -2px rgba(40,53,102,.25);
}
.langsw .langsep{display:none}
.langsw a,.langsw .langcur{padding:1px 11px;border-radius:999px;text-decoration:none;font-weight:600}
.langsw a{color:var(--sub);transition:.12s}
.langsw a:hover{color:var(--accent-dark);background:var(--accent-soft);text-decoration:none}
.langsw .langcur{color:#fff;background:var(--accent)}

/* hero */
.hero{position:relative;padding:46px 0 14px}
.hero::before{
  content:"";position:absolute;top:-10px;right:-70px;width:380px;height:380px;border-radius:50%;
  background:radial-gradient(circle,rgba(40,53,102,.08) 0%,rgba(40,53,102,0) 68%);
  pointer-events:none;
}
.hero h1{font-size:2.55em;letter-spacing:.06em;margin-bottom:2px}
.hero .romaji{
  letter-spacing:.16em;text-transform:uppercase;font-size:.8em;font-weight:700;
  color:var(--accent-dark);margin:4px 0 22px;
}
.hero .titles li{margin:4px 0}
.hero .degree{margin:14px 0 20px}
.portrait{position:relative}
.portrait img{
  border-radius:16px;border:1px solid #d9def0;
  box-shadow:0 22px 44px -20px rgba(35,44,86,.5), 0 4px 14px -8px rgba(35,44,86,.3);
}
.linkchips a{padding:5px 16px;font-size:.85em}
h2::after{width:42px}
.hero.solo{padding-top:42px}

@media (max-width:680px){
  .brand{flex-direction:column;align-items:flex-start;gap:12px}
  nav.top{margin-left:0;gap:4px 20px}
  .langsw{margin-left:0;margin-top:2px;display:inline-flex}
  .hero::before{display:none}
  .hero h1{font-size:2.1em}
}

/* ==== cosmic finish ==== */
.accentbar{
  background:linear-gradient(90deg,#232c56 0%,#3f51a8 34%,#7d8bd9 64%,rgba(199,208,240,0) 100%);
}
.brand .mono{
  display:inline-flex;width:42px;height:42px;border-radius:13px;
  align-items:center;justify-content:center;
  font-family:var(--serif);font-weight:700;font-size:1.02em;letter-spacing:.04em;color:#fff;
  background:linear-gradient(135deg,#232c56 0%,#3f51a8 55%,#7d8bd9 120%);
  box-shadow:0 8px 18px -8px rgba(40,53,102,.55);
}
.brand a.mark{text-decoration:none;line-height:0}
.brand a.mark:hover .mono{box-shadow:0 10px 22px -8px rgba(40,53,102,.7)}

/* 星空のにじみ＋星屑（ヒーロー背景） */
.hero::before{
  content:"";position:absolute;top:-30px;right:-90px;width:460px;height:440px;border-radius:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 68% 32%, rgba(63,81,168,.08), transparent 72%),
    radial-gradient(circle at 30% 72%, rgba(125,107,199,.06), transparent 70%),
    radial-gradient(circle at 18% 22%, rgba(40,53,102,.55) 0 1.4px, transparent 2.2px),
    radial-gradient(circle at 58% 12%, rgba(40,53,102,.42) 0 1.2px, transparent 2px),
    radial-gradient(circle at 84% 58%, rgba(40,53,102,.5) 0 1.1px, transparent 1.9px),
    radial-gradient(circle at 44% 84%, rgba(40,53,102,.38) 0 1.3px, transparent 2.1px),
    radial-gradient(circle at 8% 62%, rgba(40,53,102,.45) 0 1px, transparent 1.8px),
    radial-gradient(circle at 72% 88%, rgba(201,162,39,.55) 0 1.2px, transparent 2px);
}
.hero .romaji{color:var(--accent-dark)}

/* 言語切替を右端で完全分離 */
nav.top{column-gap:24px}
.langsw{margin-left:14px}
@media (min-width:681px){
  .langsw{position:relative}
  .langsw::before{content:"";position:absolute;left:-14px;top:15%;bottom:15%;width:1px;background:var(--line)}
}

/* 星光ゴールドの一貫化 */
.sel{color:var(--star)}

/* language switcher: 2-line cells with flags */
.langsw{padding:4px 6px;border-radius:18px;gap:3px}
.langsw a,.langsw .langcur{
  display:flex;flex-direction:column;align-items:center;
  padding:4px 12px 3px;border-radius:13px;line-height:1.3;gap:1px;
}
.langsw .ll{font-weight:700;font-size:.95em;letter-spacing:.03em}
.langsw .lf{font-size:1.05em;line-height:1.15}

/* author name highlight in publication lists */
ol.pubs strong{
  color:var(--accent-dark);font-weight:700;
  background:linear-gradient(transparent 58%, #dbe2fa 58%);
  padding:0 3px;border-radius:3px;
}

/* qualifications */
.quals{list-style:none;padding:0;margin:0}
.quals li{padding:9px 2px;border-bottom:1px solid var(--line)}
.quals li:last-child{border-bottom:none}
.quals li::before{content:"◆";color:var(--accent);font-size:.55em;margin-right:12px;vertical-align:2px}

/* link chips: two rows */
.linkchips + .linkchips{margin-top:9px}

/* author name: pill highlight (visibility v2) */
ol.pubs strong{
  background:#e4eaff;border:1px solid #c7d3f8;color:#1f2c66;
  padding:0 9px;border-radius:999px;font-weight:700;
  box-decoration-break:clone;-webkit-box-decoration-break:clone;
  white-space:nowrap;
}

/* author name: underline emphasis only (v3) */
ol.pubs strong{
  background:none;border:none;padding:0;border-radius:0;white-space:normal;
  color:var(--accent-dark);font-weight:700;
  text-decoration:underline;
  text-decoration-color:var(--accent);
  text-decoration-thickness:2px;
  text-underline-offset:4px;
}

/* fix: flex-shrink text overlap (long labels in EN/FR) */
.facts li{align-items:flex-start}
.facts .k{flex:0 0 auto;white-space:nowrap}
.facts li>span:last-child{flex:1 1 auto;min-width:0}
.rows .when{flex-shrink:0}
.rows li>span:last-child{flex:1 1 auto;min-width:0}

/* 「最終」badge: violet tone (visible on paper bg) */
.rb.last{background:#efe9fb;color:#4e3a86;border:1px solid #d2c2ef}

/* facts: grid layout — overlap structurally impossible */
.facts li{display:grid;grid-template-columns:8em 1fr;column-gap:14px;align-items:start}
.facts .k{min-width:0;white-space:normal}
.facts-card .facts li{display:grid}
