/* Pattern Recognition System Laboratory — journal edition, 2026-10-07.
   Local system fonts avoid delayed font swaps on phones. */
:root{color-scheme:light;--ink:#252326;--muted:#60585c;--paper:#fff;--soft:#faf8f8;--line:#d4ccd0;--accent:#672c43;--accent-dark:#452032;--highlight:#672c43;--font-heading:"Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro","Noto Serif CJK JP",Georgia,serif;--font-body:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,"Noto Sans CJK JP",sans-serif;--site-header-height:118px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--site-header-height) + 20px);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:18px;line-height:1.9;overflow-wrap:break-word}
h1,h2,h3,h4,p,figure,ul,ol{margin:0}ul{padding:0;list-style:none}ol{padding-left:1.5em}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}svg{display:block;flex:0 0 auto}button,input,select,textarea,summary{font:inherit}button,summary{cursor:pointer}button{color:inherit}a,summary{-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}::selection{color:var(--accent-dark);background:#eee2e7}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
h1,h2,h3{font-family:var(--font-heading);font-weight:600;text-wrap:pretty}p{overflow-wrap:break-word}
.wrap{width:calc(100% - 96px);max-width:1240px;margin-inline:auto;min-width:0}
.skip-link{position:fixed;top:8px;left:8px;z-index:100;padding:8px 16px;background:var(--accent);color:#fff;transform:translateY(-170%)}.skip-link:focus{transform:none}
.site-header{position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid var(--line)}
.header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;column-gap:24px;padding-top:12px}
.brand{display:block;min-width:0;line-height:1.4;max-width:650px}.brand-university{display:block;color:var(--muted);font-size:11px;letter-spacing:.13em;margin-bottom:3px}.brand-name{display:block;font-family:var(--font-heading);font-size:22px;font-weight:600;letter-spacing:.03em}
.header-controls{display:flex;grid-column:2;grid-row:1;align-items:center;gap:20px}
.primary-nav{grid-column:1/-1;grid-row:2;min-width:0}.desktop-nav{display:flex;gap:32px;align-items:center;flex-wrap:wrap}.desktop-nav a{display:block;min-height:45px;padding:11px 0 8px;border-bottom:2px solid transparent;font-size:14px;font-weight:600;white-space:nowrap}.desktop-nav a:hover,.desktop-nav a[aria-current="page"]{border-color:var(--accent);color:var(--accent)}
.language-switch{display:flex;gap:0;align-items:center;font-size:13px;line-height:1.4;white-space:nowrap}.language-switch a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 10px;color:var(--muted)}.language-switch a+a{border-left:1px solid var(--line)}.language-switch a[aria-current]{color:var(--accent);font-weight:700;text-decoration:underline;text-underline-offset:5px}.language-switch a:hover{text-decoration:underline;text-underline-offset:5px}
.mobile-nav{display:block}.mobile-nav summary{display:flex;align-items:center;gap:9px;min-height:44px;padding:8px 0 8px 8px;list-style:none;color:var(--accent);font-size:14px;line-height:1.4}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav summary svg{width:23px;height:23px}.mobile-nav[open] summary{text-decoration:underline;text-underline-offset:5px}.mobile-nav:not([open]) nav{display:none}.mobile-nav nav{position:absolute;top:100%;inset-inline:0;padding:22px max(48px,calc((100vw - 1240px)/2)) 28px;background:#fff;border-bottom:2px solid var(--accent);box-shadow:0 16px 20px #24161c0a}.mobile-nav nav ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px}.mobile-nav nav a{display:block;padding:14px 0;border-bottom:1px solid var(--line);font-size:17px}.mobile-nav nav a:hover,.mobile-nav nav a[aria-current]{color:var(--accent);border-color:var(--accent)}
.eyebrow{color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.16em;line-height:1.6}
.button,.content-button{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;max-width:100%;min-height:46px;padding:9px 0;border:0;border-bottom:1px solid var(--accent);background:transparent;color:var(--accent);font-size:16px;font-weight:700;line-height:1.7;white-space:normal;text-decoration:none;transition:color .18s,border-color .18s}
.button svg,.text-link svg{width:18px;height:18px}.button:hover,.content-button:hover{color:var(--ink);border-color:var(--ink)}
.text-link{display:inline-flex;align-items:center;gap:14px;min-height:44px;max-width:100%;font-size:15px;font-weight:700;line-height:1.65;border-bottom:1px solid var(--accent);color:var(--accent);padding-block:7px;text-decoration:none}.text-link:hover{color:var(--ink);border-color:var(--ink)}
.hero{padding-top:38px}.hero-inner{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:32px 48px;padding:22px 0 48px;border-top:5px solid var(--ink);border-bottom:1px solid var(--ink)}
.hero-title-row{display:contents}.hero-title{grid-column:1/-1;grid-row:1;position:relative;padding-bottom:21px;border-bottom:1px solid var(--line)}
.hero h1{font-size:clamp(35px,4.2vw,59px);line-height:1.4;letter-spacing:.075em;margin-top:10px;color:var(--ink);font-weight:600}.hero h1 span{display:inline}.hero-english{font-family:Georgia,serif;font-size:17px;letter-spacing:.03em;color:var(--muted);margin-top:5px}.hero-professor{display:inline-flex;align-items:baseline;flex-wrap:wrap;column-gap:12px;margin-top:15px;color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;line-height:1.6}.hero-professor:hover{border-color:var(--accent)}.professor-name{font-family:var(--font-heading);font-size:27px;font-weight:600;letter-spacing:.05em}.professor-role{font-size:15px}
.hero-figure{grid-column:1;grid-row:2;min-width:0;align-self:start;overflow:hidden}.hero-photo{width:100%;height:auto;transform-origin:50% 50%}
.hero-overview{grid-column:2;grid-row:2;min-width:0;align-self:center}.hero-statement{font-size:clamp(26px,2.45vw,35px);font-weight:500;line-height:1.7;color:var(--accent);margin-bottom:22px;letter-spacing:.035em}.hero-description{font-size:18px;line-height:1.95}.hero-actions{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:22px}
.home-journal-columns{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:56px;margin-block:54px 0}
.home-journal-columns>.section{padding:0;min-width:0}.home-journal-columns>.section>.wrap{width:100%;max-width:none}.home-journal-columns .research-section{border-left:1px solid var(--line);padding-left:42px}.section-header{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px 24px;margin-bottom:28px}.section-title{font-size:32px;color:var(--ink);line-height:1.5;letter-spacing:.045em;margin-top:5px}.section-header>.text-link{font-size:14px}
.news-heading{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px 20px;margin-bottom:28px}.news-heading .text-link{font-size:14px}.news-list{border-top:2px solid var(--ink)}.news-item{display:grid;grid-template-columns:100px minmax(0,1fr);column-gap:24px;padding:22px 0;border-bottom:1px solid var(--line)}.news-item time{font-family:Georgia,serif;font-size:16px;color:var(--accent);font-variant-numeric:tabular-nums;line-height:1.9}.news-item p{font-size:17px;line-height:1.9;font-weight:600}.news-item a{text-decoration:underline;text-underline-offset:3px;color:var(--accent)}
.research-intro{display:flex;flex-direction:column;gap:24px;margin-bottom:26px}.research-intro p{font-size:17px;line-height:1.9}.research-intro p+p{margin-top:12px}.research-image-link{display:block;border-block:1px solid var(--line);padding:14px 0}.research-image-link img{width:100%;height:auto}.research-grid{display:grid;grid-template-columns:1fr;gap:0;border-top:2px solid var(--ink)}.research-card{display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:12px;padding:18px 0 20px;border-bottom:1px solid var(--line);height:100%}.card-number{grid-column:1;grid-row:1/3;font-size:12px;font-family:Georgia,serif;color:var(--accent);margin-top:6px}.research-card h3{grid-column:2;font-size:22px;line-height:1.55;font-weight:600;color:var(--accent)}.research-card p{grid-column:2;font-size:15px;line-height:1.8;color:var(--muted);margin-top:7px}.research-card:hover h3{text-decoration:underline;text-underline-offset:5px}
.visit-section{padding:56px 0 0}.visit-grid{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid var(--ink)}.visit-card{display:flex;justify-content:space-between;align-items:center;gap:28px;padding:28px 32px 30px 0;min-width:0}.visit-card+ .visit-card{padding-left:32px;padding-right:0;border-left:1px solid var(--line)}.visit-label{font-size:11px;color:var(--accent);letter-spacing:.14em;font-weight:700}.visit-card h2{font-size:25px;font-weight:600;line-height:1.6;margin-top:6px}.visit-card p:not(.visit-label){font-size:16px;line-height:1.8;color:var(--muted);margin-top:9px}.visit-card>svg{width:22px;height:22px;color:var(--accent)}.visit-card:hover h2{text-decoration:underline;text-underline-offset:6px}
.motto-section{padding-block:55px 58px}.motto-inner{display:grid;grid-template-columns:1fr 1.8fr;align-items:center;gap:40px}.motto-mark{font-family:var(--font-heading);font-size:clamp(34px,3.6vw,50px);letter-spacing:.2em;color:var(--accent);font-weight:500;line-height:1.6}.motto-copy h2{font-size:25px;line-height:1.7;font-weight:500}.motto-copy p{font-size:17px;line-height:1.8;margin-top:6px}.motto-english{font-family:Georgia,serif;color:var(--muted);font-size:16px;line-height:1.8}
.site-footer{padding:34px 0 24px;background:#faf8f8;border-top:3px solid var(--ink);color:var(--ink)}.footer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:38px}.footer-name{font-family:var(--font-heading);font-size:23px;font-weight:600;line-height:1.5}.footer-english{font-family:Georgia,serif;color:var(--muted);font-size:14px;margin-top:7px}.footer-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px 22px;max-width:530px;font-size:13px;line-height:1.8}.footer-links a{display:inline-block;padding:4px 0}.footer-links a:hover{text-decoration:underline;text-underline-offset:4px}.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:26px;border-top:1px solid var(--line);padding-top:16px;font-size:12px;color:var(--muted)}.footer-bottom small{font-size:inherit}.back-top{display:inline-flex;align-items:center;gap:10px;min-height:40px;white-space:nowrap}.back-top svg{width:16px;height:16px;transform:rotate(-90deg)}
:lang(en) .hero h1{font-size:clamp(34px,4.2vw,58px);line-height:1.25;letter-spacing:-.018em;font-family:Georgia,"Times New Roman",serif}:lang(en) .hero h1 span+span::before{content:" "}:lang(en) .hero-statement{font-size:32px;line-height:1.45;letter-spacing:0}:lang(en) .brand-name{font-size:22px;letter-spacing:0}:lang(en) .professor-name{letter-spacing:0}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.hero-inner{column-gap:32px;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.hero-statement{font-size:28px}.hero-actions{gap:8px 20px}.home-journal-columns{gap:36px}.home-journal-columns .research-section{padding-left:28px}.news-item{grid-template-columns:1fr;gap:6px}.header-controls{gap:12px}.footer-top{flex-direction:column;gap:20px}.footer-links{max-width:none;justify-content:flex-start}}
@media(max-width:760px){html{scroll-behavior:auto;scroll-padding-top:20px}.wrap{width:calc(100% - 40px)}.site-header{position:relative}.header-inner{grid-template-columns:minmax(0,1fr) auto;padding-top:12px;gap:6px 14px}.brand-name{font-size:18px}.brand-university{font-size:10px;letter-spacing:.06em}.header-controls{gap:8px}.language-switch{font-size:12px}.language-switch a{padding-inline:7px}.mobile-nav summary{font-size:0;gap:0;padding-inline:8px}.mobile-nav summary svg{width:23px;height:23px}.desktop-nav{gap:0 20px}.desktop-nav a{font-size:13px;min-height:44px;padding-block:9px}.mobile-nav nav{padding:12px 20px 22px}.mobile-nav nav ul{grid-template-columns:1fr 1fr;column-gap:22px}.mobile-nav nav a{font-size:16px}.hero{padding-top:26px}.hero-inner{display:flex;flex-direction:column;gap:25px;padding-top:18px;padding-bottom:34px;border-top-width:4px}.hero-title-row{display:contents}.hero-title{order:0;padding-bottom:22px}.hero h1{font-size:clamp(27px,5.5vw,40px);letter-spacing:.025em;line-height:1.5;margin-top:8px}.hero-english{font-size:14px;line-height:1.65;margin-top:7px}.hero-professor{margin-top:14px;gap:10px}.professor-name{font-size:25px}.professor-role{font-size:15px}.hero-figure{order:1;width:100%}.hero-overview{order:2;width:100%;align-self:stretch}.hero-statement{font-size:28px;line-height:1.65;margin-bottom:18px}.hero-description{font-size:18px;line-height:1.9}.hero-actions{margin-top:18px;gap:10px 22px}.button{font-size:16px}.home-journal-columns{grid-template-columns:1fr;gap:40px;margin-top:34px}.home-journal-columns .research-section{padding-left:0;border-left:0;padding-top:32px;border-top:1px solid var(--ink)}.section-title{font-size:29px}.news-heading,.section-header{margin-bottom:21px}.news-item{grid-template-columns:1fr;gap:5px;padding-block:20px}.news-item p{font-size:17px;line-height:1.9}.news-item time{font-size:16px}.research-intro p{font-size:17px}.research-card h3{font-size:23px}.research-card p{font-size:16px}.research-card{padding-block:18px 21px}.visit-section{padding-top:36px}.visit-grid{grid-template-columns:1fr}.visit-card,.visit-card+ .visit-card{padding:25px 0;border-left:0}.visit-card+ .visit-card{border-top:1px solid var(--line)}.visit-card h2{font-size:24px}.motto-section{padding-block:35px 38px}.motto-inner{grid-template-columns:1fr;gap:14px}.motto-mark{font-size:40px}.motto-copy h2{font-size:23px}.motto-copy p{font-size:16px}.site-footer{padding-block:28px 18px}.footer-name{font-size:22px}.footer-english{font-size:13px}.footer-links{font-size:13px;gap:5px 20px}.footer-bottom{font-size:11px}:lang(en) .brand-name{font-size:17px}:lang(en) .hero h1{font-size:clamp(32px,5.8vw,44px);line-height:1.25}:lang(en) .hero h1 span{display:block}:lang(en) .hero h1 span+span::before{content:none}:lang(en) .hero-statement{font-size:29px}
}
@media(max-width:480px){.header-inner{grid-template-columns:minmax(0,1fr);gap:5px;padding-top:12px}.brand{grid-column:1;grid-row:1}.header-controls{grid-column:1;grid-row:2;justify-content:flex-end;gap:13px;margin-top:-2px}.primary-nav{grid-row:3}.brand-name{font-size:20px}.desktop-nav{column-gap:19px}.desktop-nav a{font-size:13px;line-height:1.5}.mobile-nav summary{font-size:13px;gap:8px}.mobile-nav nav ul{grid-template-columns:1fr}.hero h1 span{display:block}.hero h1{font-size:35px;letter-spacing:.09em;line-height:1.4}.hero .eyebrow{font-size:9px;letter-spacing:.08em}.hero-statement{font-size:27px}.hero-title{padding-bottom:20px}.section-header,.news-heading{gap:8px}.text-link{font-size:14px}:lang(en) .brand-name{font-size:19px}:lang(en) .hero h1{font-size:33px}:lang(en) .hero-statement{font-size:27px}}
@media(max-width:360px){.wrap{width:calc(100% - 32px)}.brand-name{font-size:18px}.desktop-nav{column-gap:17px}.desktop-nav a{font-size:12px}.hero h1{font-size:31px}.hero-statement{font-size:25px}.hero-description{font-size:17px}.hero-actions{display:grid;grid-template-columns:1fr}.hero-actions .button{justify-content:space-between}.hero-english{font-size:13px}.section-title{font-size:27px}.visit-card h2{font-size:22px}:lang(en) .hero h1{font-size:29px}:lang(en) .brand-name{font-size:17px}}
/* Keep text on its original pixel grid during scrolling. */
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.hero-photo{transform:none!important}}
@media print{html{scroll-behavior:auto}.site-header{position:static}.header-controls,.primary-nav,.skip-link,.back-top,.filter-bar{display:none!important}.wrap{width:100%;max-width:none}.hero{padding-top:16px}.site-footer{margin-top:30px}.page-toc{position:static}.hero-photo{transform:none!important}a{color:inherit}}

.mobile-nav summary{white-space:nowrap}.button,.text-link{flex-shrink:0}.hero-actions .button,.news-heading .text-link,.section-header .text-link{white-space:nowrap}.news-item p{font-weight:700}


/* Inner pages: an editorial index and open reading column. */
.page-hero {
  padding: 24px 0 0;
  background: #fff;
}
.page-hero > .wrap {
  padding-bottom: 38px;
  border-bottom: 1px solid var(--ink, #252326);
}
.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 3px 11px;
  margin: 0 0 30px;
  color: var(--muted, #60585c);
  font-size: 13px;
  line-height: 1.7;
}
.breadcrumbs a {
  color: inherit;
  text-decoration: none;
}
.breadcrumbs a:hover { text-decoration: underline; text-underline-offset: 4px; }
.breadcrumbs > span:last-child { min-width: 0; max-width: 870px; overflow-wrap: anywhere; }
.page-hero .eyebrow { margin: 0 0 13px; }
.page-hero h1 {
  max-width: 1100px;
  margin: 0;
  color: var(--ink, #252326);
  font-family: var(--font-heading, serif);
  font-size: clamp(32px, 3.35vw, 46px);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .025em;
  overflow-wrap: anywhere;
}
.is-research-detail .page-hero h1 {
  max-width: 1080px;
  font-size: clamp(29px, 2.8vw, 38px);
  line-height: 1.6;
  letter-spacing: .005em;
}
.page-intro {
  max-width: 880px;
  margin: 18px 0 0;
  font-size: 18px;
  line-height: 1.85;
}
.source-update { margin: 16px 0 0; color: var(--muted, #60585c); font-size: 15px; }
.page-actions { display: flex; flex-wrap: wrap; gap: 14px 30px; margin-top: 24px; }
.page-body { padding-top: 42px; padding-bottom: 86px; }
.page-layout {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 58px;
  align-items: start;
}
.page-content { min-width: 0; }
.page-toc {
  position: sticky;
  top: calc(var(--site-header-height, 120px) + 26px);
  align-self: start;
  max-height: calc(100vh - var(--site-header-height, 120px) - 52px);
  overflow-y: auto;
  padding-top: 4px;
  font-size: 15px;
  line-height: 1.7;
}
.page-toc > p {
  margin: 0 0 14px;
  color: var(--muted, #60585c);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .12em;
}
.page-toc ul { list-style: none; margin: 0; padding: 0; }
.page-toc li { margin: 0; padding: 0; border-top: 1px solid var(--line, #d4ccd0); }
.page-toc li:last-child { border-bottom: 1px solid var(--line, #d4ccd0); }
.page-toc a {
  display: block;
  padding: 11px 0;
  color: var(--ink, #252326);
  text-decoration: none;
  overflow-wrap: anywhere;
}
.page-toc a:hover, .page-toc a[aria-current="true"] {
  color: var(--accent, #672c43);
  text-decoration: underline;
  text-underline-offset: 5px;
}
.page-toc li.toc-secondary-start { margin-top: 22px; }
.content-section {
  min-width: 0;
  padding: 31px 0 44px;
  margin: 0;
  border-top: 1px solid var(--line, #d4ccd0);
  scroll-margin-top: calc(var(--site-header-height, 120px) + 26px);
}
.page-content > .content-section:first-child { padding-top: 0; border-top: 0; }
.content-section > h2, .group-heading h2 {
  margin: 0 0 23px;
  color: var(--ink, #252326);
  font-family: var(--font-heading, serif);
  font-size: 29px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: .015em;
  overflow-wrap: anywhere;
}
.source-block, .section-original-intro {
  min-width: 0;
  font-size: 18px;
  line-height: 1.95;
  overflow-wrap: anywhere;
}
.source-block + .source-block { margin-top: 25px; }
.source-block p { margin: 0 0 1.2em; }
.source-block p:last-child { margin-bottom: 0; }
.source-block b, .source-block strong { font-weight: 650; }
.source-block a, .citation a, .member-name a, .section-original-intro a {
  color: var(--accent, #672c43);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
}
.source-block a:hover, .citation a:hover, .member-name a:hover {
  text-decoration-thickness: 2px;
}
.source-block .content-button { margin-block: 6px; text-decoration: none; }
.source-block ul { margin: 20px 0; padding-left: 1.5em; list-style: disc; }
.source-block ol { margin: 20px 0; padding-left: 1.6em; list-style: decimal; }
.source-block li { padding: 7px 0; }
.source-block li::marker { color: var(--muted, #60585c); }
.source-block img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 28px auto;
}
.source-block img[width="63"], .source-block img[src$="otama1.png"] {
  width: 48px;
  height: auto;
  margin: 28px 0 0;
}
.source-block .image-research-3d-interaction { width: 100%; max-width: 900px; }
.source-block table { width: 100%; max-width: 100%; border-collapse: collapse; }
.source-block td, .source-block th {
  padding: 13px 12px;
  border-bottom: 1px solid var(--line, #d4ccd0);
  text-align: left;
  vertical-align: top;
}
.source-block iframe, .source-block video {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  margin: 26px 0;
  border: 0;
}
.source-block .research-concept {
  margin: 0 0 30px;
  padding: 0;
  color: var(--ink, #252326);
  font-size: 19px;
  line-height: 1.95;
}
.anchor-marker { display: block; scroll-margin-top: calc(var(--site-header-height, 120px) + 26px); }
.detail-return { padding-top: 24px; border-top: 1px solid var(--line, #d4ccd0); }
.page-signature { margin-top: 40px; }
.page-signature img { display: block; width: 48px; height: auto; }

/* Catalogue tools stay compact, with ordinary labelled form controls. */
.filter-bar {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(190px, 260px) auto auto;
  gap: 15px 20px;
  align-items: end;
  padding: 0 0 27px;
  margin: 0 0 32px;
  border-bottom: 1px solid var(--line, #d4ccd0);
}
.filter-publications {
  grid-template-columns: minmax(200px, 1fr) minmax(200px, 270px) 125px auto auto;
}
.filter-bar label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  color: var(--muted, #60585c);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
}
.filter-bar input, .filter-bar select {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: 46px;
  padding: 9px 11px;
  border: 1px solid #95868d;
  border-radius: 0;
  color: var(--ink, #252326);
  background: #fff;
  font: 400 16px/1.55 var(--font-body, sans-serif);
}
.filter-bar input::placeholder { color: #71666c; opacity: 1; }
.filter-reset {
  min-height: 46px;
  padding: 9px 15px;
  border: 1px solid #95868d;
  border-radius: 0;
  background: #fff;
  color: var(--ink, #252326);
  font: 500 15px/1.6 var(--font-body, sans-serif);
  cursor: pointer;
}
.filter-reset:hover { color: var(--accent, #672c43); border-color: var(--accent, #672c43); background: #f8f5f6; }
.filter-count {
  min-width: 100px;
  margin: 0;
  padding-bottom: 11px;
  color: var(--muted, #60585c);
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}
.empty-message {
  padding: 32px 0;
  border-bottom: 1px solid var(--line, #d4ccd0);
  font-size: 18px;
  line-height: 1.8;
}
.catalog-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 44px;
  row-gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.catalog-card { min-width: 0; margin: 0; border-top: 1px solid var(--line, #d4ccd0); }
.catalog-card > a {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 24px;
  height: 100%;
  padding: 30px 0;
  color: var(--ink, #252326);
  text-decoration: none;
}
.catalog-image {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: start;
  min-width: 0;
  width: 132px;
  min-height: 132px;
  background: #fff;
}
.catalog-image img { width: 132px; height: 132px; object-fit: contain; }
.catalog-copy { min-width: 0; }
.tag-row { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-bottom: 9px; }
.tag-row span { color: var(--muted, #60585c); font-size: 12px; line-height: 1.7; }
.catalog-copy h2 {
  margin: 0;
  color: var(--ink, #252326);
  font-family: var(--font-heading, serif);
  font-size: 21px;
  font-weight: 600;
  line-height: 1.7;
  overflow-wrap: anywhere;
}
.catalog-card > a:hover h2 { color: var(--accent, #672c43); text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.catalog-more {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 17px;
  color: var(--accent, #672c43);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
}
.catalog-more svg { width: 17px; height: 17px; flex-shrink: 0; }

/* Bibliography: year rules and numbered references, without enclosing panels. */
.publication-year { margin-top: 30px; }
.publication-year > h3 {
  margin: 0 0 4px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--ink, #252326);
  color: var(--accent, #672c43);
  font-family: var(--font-heading, serif);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
}
.citation-list { margin: 0; padding-left: 28px; list-style: decimal; }
.citation {
  padding: 21px 0 23px 8px;
  border-bottom: 1px solid var(--line, #d4ccd0);
  font-size: 18px;
  line-height: 1.85;
  overflow-wrap: anywhere;
}
.citation::marker { color: var(--muted, #60585c); font-size: 13px; font-variant-numeric: tabular-nums; }
.citation b, .citation strong { font-weight: 650; }
.source-block .reference-list { margin: 0; padding-left: 1.4em; list-style: disc; }
.source-block .reference-list li {
  padding: 18px 0 22px 4px;
  border-bottom: 1px solid var(--line, #d4ccd0);
  font-size: 18px;
  line-height: 1.85;
  overflow-wrap: anywhere;
}
.section-original-intro { margin-bottom: 18px; }

/* Members are a directory set in columns, rather than individual cards. */
.section-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 30px;
  margin-bottom: 34px;
  border-bottom: 1px solid var(--line, #d4ccd0);
  font-size: 17px;
  line-height: 1.8;
}
.section-tabs a { padding: 0 0 12px; color: var(--muted, #60585c); border-bottom: 2px solid transparent; text-decoration: none; }
.section-tabs a[aria-current="page"] { color: var(--accent, #672c43); border-bottom-color: var(--accent, #672c43); font-weight: 650; }
.section-tabs a:hover { color: var(--accent, #672c43); }
.group-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 5px; }
.group-heading h2 { margin-bottom: 15px; }
.group-heading > span { flex-shrink: 0; color: var(--muted, #60585c); font-size: 14px; }
.members-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 34px; list-style: none; padding: 0; margin: 0; }
.member-card { min-width: 0; padding: 18px 0 21px; border-top: 1px solid var(--line, #d4ccd0); }
.member-role { margin: 0 0 7px; color: var(--muted, #60585c); font-size: 13px; line-height: 1.8; }
.member-role strong { font-weight: 500; }
.member-name { color: var(--ink, #252326); font-size: 18px; line-height: 1.9; overflow-wrap: anywhere; }
.member-name strong { font-size: 16px; font-weight: 650; }

/* Profile and award photographs retain their natural aspect ratio. */
.faculty-lead {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  gap: 40px;
  align-items: center;
  margin-bottom: 42px;
  padding: 0 0 40px;
  border-bottom: 1px solid var(--line, #d4ccd0);
}
.faculty-lead .image-masashi { display: block; width: 210px; max-width: 100%; height: auto; margin: 0; }
.faculty-intro { font-size: 21px; line-height: 1.9; }
.faculty-intro > b { color: var(--ink, #252326); font-family: var(--font-heading, serif); font-size: 34px; font-weight: 600; }
.faculty-intro small { font-size: 18px; }
.faculty-intro small small { font-size: inherit; }
.faculty-intro small b { font-size: 18px; font-weight: 500; }
.is-faculty .source-block li { padding-block: 10px; }
.source-block .award-list { margin: 0; padding-left: 1.5em; list-style: decimal; }
.source-block .award-list > li { padding: 26px 0; border-bottom: 1px solid var(--line, #d4ccd0); }
.source-block .award-list > li:first-child { padding-top: 0; }
.source-block .award-list > li::marker { font-size: 13px; }
.award-row { display: grid; grid-template-columns: minmax(0, 1fr) 180px; gap: 30px; align-items: start; }
.award-copy { min-width: 0; overflow-wrap: anywhere; }
.award-photo { width: 180px; min-width: 0; justify-self: end; }
.source-block .award-photo > img {
  display: block;
  width: auto;
  max-width: 180px;
  height: auto;
  max-height: 225px;
  margin: 0 0 0 auto;
  object-fit: contain;
}
.is-inner .news-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line, #d4ccd0); }
.is-inner .news-item { display: grid; grid-template-columns: 113px minmax(0, 1fr); gap: 26px; padding: 23px 0; border-bottom: 1px solid var(--line, #d4ccd0); }
.is-inner .news-item time { padding-top: 3px; color: var(--muted, #60585c); font-size: 14px; line-height: 1.8; font-variant-numeric: tabular-nums; }
.is-inner .news-item p { margin: 0; font-size: 18px; line-height: 1.9; overflow-wrap: anywhere; }

/* Filtering must always take precedence over an element's layout display. */
.is-inner [hidden] { display: none !important; }

@media (max-width: 1050px) {
  .page-layout { grid-template-columns: 170px minmax(0, 1fr); gap: 36px; }
  .filter-bar, .filter-publications { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .filter-search { grid-column: 1 / -1; }
  .filter-reset { justify-self: start; }
  .filter-count { align-self: center; padding-bottom: 0; }
  .catalog-grid { column-gap: 30px; }
  .catalog-card > a { grid-template-columns: 105px minmax(0, 1fr); gap: 18px; }
  .catalog-image { width: 105px; min-height: 105px; }
  .catalog-image img { width: 105px; height: 105px; }
  .catalog-copy h2 { font-size: 19px; }
  .members-grid { gap: 0 25px; }
  .award-row { grid-template-columns: minmax(0, 1fr) 150px; gap: 24px; }
  .award-photo { width: 150px; }
  .source-block .award-photo > img { max-width: 150px; max-height: 205px; }
}
@media (max-width: 760px) {
  .page-hero { padding-top: 19px; }
  .page-hero > .wrap { padding-bottom: 28px; }
  .breadcrumbs { font-size: 12px; gap: 4px 8px; margin-bottom: 26px; }
  .page-hero h1 { font-size: 31px; line-height: 1.55; }
  .is-research-detail .page-hero h1 { font-size: 27px; line-height: 1.65; }
  .page-intro { font-size: 17px; margin-top: 15px; }
  .page-actions { gap: 16px 25px; margin-top: 22px; }
  .page-actions .text-link { white-space: normal; }
  .page-body { padding-top: 29px; padding-bottom: 56px; }
  .page-layout { grid-template-columns: minmax(0, 1fr); gap: 31px; }
  .page-toc { position: static; max-height: none; overflow: visible; padding: 0 0 17px; border-bottom: 1px solid var(--line, #d4ccd0); font-size: 14px; }
  .page-toc > p { margin-bottom: 8px; font-size: 12px; }
  .page-toc ul { display: flex; flex-wrap: wrap; gap: 1px 22px; }
  .page-toc li, .page-toc li:last-child { max-width: 100%; border: 0; }
  .page-toc a { padding: 7px 0; text-decoration: underline; text-underline-offset: 5px; text-decoration-color: var(--line, #d4ccd0); }
  .page-toc li.toc-secondary-start { margin-top: 0; }
  .content-section { padding: 27px 0 35px; }
  .content-section, .anchor-marker { scroll-margin-top: 20px; }
  .content-section > h2, .group-heading h2 { font-size: 25px; margin-bottom: 20px; }
  .source-block, .section-original-intro { font-size: 17px; line-height: 1.95; }
  .source-block + .source-block { margin-top: 22px; }
  .source-block img { margin-block: 23px; }
  .source-block .research-concept { font-size: 17px; margin-bottom: 24px; }
  .source-block td, .source-block th { padding: 9px 7px; }
  .filter-bar, .filter-publications { gap: 15px; padding-bottom: 24px; margin-bottom: 26px; }
  .filter-bar label { font-size: 13px; }
  .filter-research > label:not(.filter-search) { grid-column: 1 / -1; }
  .filter-count { font-size: 13px; }
  .catalog-grid { grid-template-columns: minmax(0, 1fr); }
  .catalog-card > a { grid-template-columns: 112px minmax(0, 1fr); gap: 24px; padding: 26px 0; }
  .catalog-image { width: 112px; min-height: 112px; }
  .catalog-image img { width: 112px; height: 112px; }
  .catalog-copy h2 { font-size: 20px; line-height: 1.75; }
  .catalog-more { margin-top: 13px; font-size: 13px; }
  .tag-row { margin-bottom: 7px; }
  .tag-row span { font-size: 11px; }
  .publication-year { margin-top: 26px; }
  .publication-year > h3 { font-size: 23px; }
  .citation-list { padding-left: 24px; }
  .citation, .source-block .reference-list li { font-size: 17px; line-height: 1.85; padding: 18px 0 20px 4px; }
  .section-tabs { gap: 10px 22px; margin-bottom: 26px; font-size: 16px; }
  .section-tabs a { padding-bottom: 10px; }
  .group-heading { gap: 15px; }
  .group-heading h2 { margin-bottom: 12px; }
  .members-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
  .member-card { padding: 16px 0 19px; }
  .member-name { font-size: 17px; }
  .faculty-lead { grid-template-columns: 160px minmax(0, 1fr); gap: 27px; padding-bottom: 30px; margin-bottom: 31px; }
  .faculty-lead .image-masashi { width: 160px; }
  .faculty-intro > b { font-size: 29px; }
  .faculty-intro small, .faculty-intro small b { font-size: 17px; }
  .award-row { grid-template-columns: minmax(0, 1fr); gap: 19px; }
  .award-photo { justify-self: start; width: 160px; }
  .source-block .award-photo > img { max-width: 160px; max-height: 205px; margin: 0; }
  .source-block .award-list > li { padding-block: 23px; }
  .is-inner .news-item { grid-template-columns: 100px minmax(0, 1fr); gap: 20px; padding-block: 20px; }
  .is-inner .news-item p { font-size: 17px; }
  .detail-return { padding-top: 22px; }
  .page-signature { margin-top: 32px; }
}
@media (max-width: 480px) {
  .page-hero h1 { font-size: 29px; }
  .is-research-detail .page-hero h1 { font-size: 25px; line-height: 1.65; }
  .content-section > h2, .group-heading h2 { font-size: 24px; }
  .source-update { font-size: 13px; }
  .filter-bar, .filter-publications { gap: 14px 12px; }
  .filter-publications > label:not(.filter-search) { grid-column: 1 / -1; }
  .filter-reset { padding-inline: 13px; font-size: 14px; }
  .catalog-card > a { grid-template-columns: 84px minmax(0, 1fr); gap: 18px; padding: 23px 0; }
  .catalog-image { width: 84px; min-height: 84px; }
  .catalog-image img { width: 84px; height: 84px; }
  .catalog-copy h2 { font-size: 18px; line-height: 1.8; }
  .members-grid { grid-template-columns: minmax(0, 1fr); }
  .faculty-lead { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .faculty-lead .image-masashi { width: 160px; }
  .faculty-intro > b { font-size: 29px; }
  .is-inner .news-item { grid-template-columns: minmax(0, 1fr); gap: 7px; }
  .is-inner .news-item time { font-size: 13px; padding-top: 0; }
  .section-tabs { gap: 8px 18px; font-size: 15px; }
}

@media print {
  .page-toc { position: static; max-height: none; }
  .page-layout { display: block; }
  .page-toc, .filter-bar, .page-actions, .detail-return { display: none; }
  .page-body { padding-top: 25px; }
  .content-section, .publication-year, .award-row { break-inside: avoid; }
  .source-block, .citation, .source-block .reference-list li { font-size: 11pt; }
}

/* Motto: selected design B, Kouzan Brush Gyousho, outlined SVG.
   The same local artwork is used in Japanese and English. No web font required.
   Source and permission notes: internal/licenses/houteibanri-font.txt */
.motto-mark{width:clamp(260px,24vw,310px);max-width:100%;font-size:0;line-height:0;letter-spacing:0}
.motto-mark picture,.motto-mark img{display:block;width:100%;height:auto}
@media(max-width:760px){.motto-mark{width:272px;max-width:100%;font-size:0}}
