:root{
  --maxw: 960px;
  --pad: 16px;
  --border: rgba(0,0,0,.12);
}
*{box-sizing:border-box}
html{font-size:16px}
body{
  margin:0;
  font-family: system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,
    "Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;
  line-height:1.7;
  color:#111;
  background:#fff;
}
a{color:inherit}
a:hover{opacity:.8}
.container{
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--pad);
}
.site-header{
  border-bottom:1px solid var(--border);
  background:#fff;
}
.header-inner{
  display:flex;
  align-items:center;
  gap:12px;
  padding: 10px var(--pad);
  max-width: var(--maxw);
  margin:0 auto;
}
.brand img{
  display:block;
  height:auto;
  max-width: 100%;
}
.nav{
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  background:#fafafa;
}
.nav-inner{
  display:flex;
  flex-wrap:wrap;
  gap:10px 14px;
  padding: 10px var(--pad);
  max-width: var(--maxw);
  margin:0 auto;
}
.nav a{
  text-decoration:none;
  padding:6px 10px;
  border-radius:10px;
}
.nav a[aria-current="page"]{
  background:#111;
  color:#fff;
}
main{
  padding: 18px 0 40px;
}
h1,h2,h3{
  line-height:1.25;
  margin: 1.2em 0 .5em;
}
h1{font-size:1.55rem}
h2{font-size:1.25rem}
h3{font-size:1.1rem}
hr{
  border:none;
  border-top:1px solid var(--border);
  margin: 20px 0;
}
img{
  max-width:100%;
  height:auto;
}
table{
  width:100%;
  border-collapse:collapse;
  overflow:auto;
}
th,td{
  border:1px solid var(--border);
  padding:8px 10px;
  vertical-align:top;
}
blockquote{
  margin: 12px 0;
  padding: 10px 12px;
  border-left: 4px solid var(--border);
  background:#fafafa;
}
.footer{
  border-top:1px solid var(--border);
  padding:18px 0;
  color:#444;
  font-size:.92rem;
}
.small{font-size:.92rem;color:#444}
.card{
  border:1px solid var(--border);
  border-radius:16px;
  padding:14px;
  background:#fff;
}
.grid{
  display:grid;
  gap:16px;
}
@media (min-width: 760px){
  .grid-2{grid-template-columns: 1fr 1fr;}
}


/* Card layout */
.cards{
  display:grid;
  grid-template-columns: 1fr;
  gap: 14px;
  margin-top: 14px;
}
@media (min-width: 840px){
  .cards{ grid-template-columns: 1fr 1fr; }
}
.card{
  border:1px solid var(--border);
  border-radius: 16px;
  background: var(--bg);
  box-shadow: var(--shadow);
  padding: 14px 14px 10px;
}
.card h4{
  margin: 0 0 8px;
  font-size: 1.05rem;
  line-height: 1.3;
}
.card-body p{ margin-top: 0; }
.card-body img{
  max-width:100%;
  height:auto;
  border-radius: 12px;
  border:1px solid var(--border);
}

/* Year cards (Publications/Presentations) */
.year-cards{
  display:grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 14px;
}
.year-card{
  border:1px solid var(--border);
  border-radius: 16px;
  background: var(--bg);
  box-shadow: var(--shadow);
  overflow:hidden;
}
.year-card summary{
  cursor:pointer;
  padding: 12px 14px;
  font-weight: 700;
  list-style:none;
}
.year-card summary::-webkit-details-marker{ display:none; }
.year-card summary:after{
  content: "▾";
  float:right;
  opacity: .7;
}
.year-card[open] summary:after{ content:"▴"; }
.year-body{
  padding: 0 14px 12px;
}
.year-body p{ margin: 10px 0; }

.table-scroll{
  overflow-x: auto;
}

.members-table{
  width: 100%;
  border-collapse: collapse;
  min-width: 520px; /* スマホでは横スクロールにする */
}

.members-table th,
.members-table td{
  border: 1px solid rgba(0,0,0,.15);
  padding: 10px 12px;
  vertical-align: top;
}

.members-table thead th{
  background: rgba(0,0,0,.04);
  text-align: left;
}

.members-table tbody tr:nth-child(even){
  background: rgba(0,0,0,.02);
}



/* Language switch */
.lang-switch{margin-left:auto;display:flex;gap:.5rem;align-items:center;font-size:.9rem;}
.lang-switch a{text-decoration:none;opacity:.85;}
.lang-switch a:hover{opacity:1;}
.is-en .lang-switch a[data-lang="en"]{font-weight:600;opacity:1;}
