:root{color-scheme:light;--ink:#20342e;--muted:#60736c;--paper:#fff;--soft:#f3f5f2;--line:#d9e3dc;--accent:#184b3e;--accent-dark:#12392f;--highlight:#907841;}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;color:var(--ink);background:var(--paper);font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;font-size:16px;line-height:1.85;-webkit-text-size-adjust:100%}
h1,h2,h3,p,ul,figure{margin:0}ul{padding:0;list-style:none}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}svg{display:block;flex:0 0 auto}button,summary{font:inherit}button{cursor:pointer}a,summary{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid #d08b28;outline-offset:5px}::selection{color:var(--accent-dark);background:#d7ebe0}
.wrap{width:calc(100% - 96px);max-width:1184px;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(-160%)}.skip-link:focus{transform:translateY(0)}
.site-header{position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px solid var(--line)}
.header-inner{min-height:90px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:block;flex:0 0 auto;line-height:1.5}.brand-university{display:block;font-size:10px;letter-spacing:.14em;color:var(--muted);margin-bottom:5px}.brand-name{display:block;font-size:20px;font-weight:700;letter-spacing:.025em}
.header-inner>nav{flex:0 0 auto}.desktop-nav{display:flex;gap:24px;align-items:center}.desktop-nav a{display:block;font-size:13px;font-weight:600;padding:30px 0 26px;white-space:nowrap;border-bottom:3px solid transparent}.desktop-nav a:hover,.desktop-nav a[aria-current="page"]{color:var(--accent);border-bottom-color:var(--accent)}
.mobile-nav{display:none}.mobile-nav summary{display:flex;align-items:center;gap:7px;padding:10px 8px;list-style:none;cursor:pointer;font-size:12px;white-space:nowrap}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav summary svg{width:21px;height:21px}.mobile-nav[open] summary{background:var(--soft)}.mobile-nav:not([open]) nav{display:none}.mobile-nav nav{position:absolute;top:100%;inset-inline:0;background:var(--paper);padding:10px 28px 20px;border-bottom:1px solid var(--line);box-shadow:0 14px 24px #142a2712}.mobile-nav nav a{display:block;padding:12px 4px;border-bottom:1px solid var(--line);font-size:15px}
.eyebrow{font-size:10px;font-weight:600;letter-spacing:.18em;color:var(--muted);line-height:1.5}
.hero h1{font-size:48px;line-height:1.35;font-weight:700;color:var(--accent);letter-spacing:.03em;margin-top:18px}.hero h1 span{display:block;white-space:nowrap}.hero-english{font-size:12px;color:var(--muted);letter-spacing:.025em;margin-top:12px;line-height:1.65}.hero-description{font-size:15px;line-height:1.95;overflow-wrap:anywhere}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;min-height:49px;padding:10px 18px;border:1px solid var(--accent);color:var(--accent);font-weight:600;font-size:13px;white-space:nowrap;flex-shrink:0;transition:background .18s,color .18s}.button svg,.text-link svg{width:16px;height:16px}.button-primary{background:var(--accent);color:#fff}.button-primary:hover{background:var(--accent-dark)}.button-secondary:hover{background:var(--soft)}
.hero-figure{min-width:0}.hero-photo{width:100%;height:auto}.photo-caption{padding:20px 26px;background:var(--accent);color:#fff}.photo-caption-label{font-size:9px;letter-spacing:.16em;opacity:.8}.photo-caption-title{font-size:18px;margin-top:4px;letter-spacing:.045em}.photo-caption-note{font-size:11px;margin-top:6px;opacity:.85}
.section{padding-block:76px}.section-header{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:32px}.section-title{font-size:30px;line-height:1.5;color:var(--accent);letter-spacing:.065em;margin-top:10px}.text-link{display:inline-flex;align-items:center;gap:15px;font-size:13px;font-weight:600;border-bottom:1px solid var(--highlight);padding-bottom:5px;white-space:nowrap;flex-shrink:0;color:var(--accent)}.text-link:hover{text-decoration:underline;text-underline-offset:5px}
.research-intro{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:58px;margin-bottom:32px}.research-intro h3{font-size:22px;line-height:1.7;font-weight:600;margin-bottom:13px}.research-intro p{font-size:14px;color:var(--muted)}.research-intro p+p{margin-top:10px}.research-image-link{display:block;background:#fff;padding:10px;border:1px solid var(--line)}.research-image-link:hover{border-color:var(--accent)}.research-image-link img{width:100%;height:auto}
.research-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.research-grid>li{min-width:0}.research-card{display:block;height:100%;padding:24px;border:1px solid var(--line);background:var(--paper);transition:background .18s,border-color .18s}.research-card:hover{background:var(--soft);border-color:var(--accent)}.card-number{font-size:11px;letter-spacing:.12em;color:var(--highlight)}.research-card h3{font-size:17px;line-height:1.6;margin-top:9px;font-weight:600;overflow-wrap:anywhere}.research-card p{font-size:12px;line-height:1.8;color:var(--muted);margin-top:8px;overflow-wrap:anywhere}
.news-section{background:var(--soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.news-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:62px;align-items:start}.news-heading .text-link{margin-top:27px;font-size:12px}.news-list{border-top:1px solid var(--line)}.news-item{display:grid;grid-template-columns:108px minmax(0,1fr);gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}.news-item time{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;padding-top:3px}.news-item p{font-size:14px;line-height:1.9;overflow-wrap:anywhere}
.visit-section{padding-block:50px}.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.visit-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:28px 30px;border:1px solid var(--line);background:var(--paper)}.visit-card:hover{background:var(--soft);border-color:var(--accent)}.visit-label{font-size:10px;letter-spacing:.14em;color:var(--highlight)}.visit-card h2{font-size:20px;line-height:1.6;margin-top:5px;font-weight:600}.visit-card p{font-size:12px;color:var(--muted);margin-top:6px}.visit-card svg{width:22px;height:22px}
.site-footer{background:var(--accent-dark);color:#fff;padding-block:36px 28px}.footer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:30px}.footer-name{font-size:18px;font-weight:600}.footer-english{font-size:11px;margin-top:5px;opacity:.8}.footer-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 22px;max-width:550px;font-size:12px;opacity:.9}.footer-links a:hover{text-decoration:underline;text-underline-offset:4px}.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:11px;margin-top:28px;padding-top:20px;border-top:1px solid #ffffff40;opacity:.8}.back-top{display:inline-flex;align-items:center;gap:8px}.back-top svg{width:13px;height:13px;transform:rotate(-90deg)}
@media(max-width:1120px){.wrap{width:calc(100% - 64px)}.desktop-nav{display:none}.mobile-nav{display:block}.brand-name{font-size:19px}.news-layout{grid-template-columns:200px minmax(0,1fr);gap:34px}.research-intro{gap:32px}.button{font-size:12px;padding-inline:15px;gap:14px}}
@media(max-width:760px){html{scroll-padding-top:90px}.wrap{width:calc(100% - 40px)}.header-inner{min-height:74px;gap:10px}.brand-university{font-size:9px;letter-spacing:.08em}.brand-name{font-size:16px}.mobile-nav summary{padding:9px 2px 9px 7px;font-size:11px;gap:5px}.mobile-nav nav{padding-inline:20px}.hero h1{font-size:clamp(28px,7.2vw,40px);line-height:1.4;margin-top:16px}.hero-english{font-size:11px}.hero-description{font-size:14px}.hero-actions{margin-top:23px;gap:10px}.button{min-height:48px;gap:14px;padding-inline:15px}.photo-caption{padding:17px 20px}.photo-caption-title{font-size:16px}.section{padding-block:48px}.section-header{flex-wrap:wrap;align-items:flex-start;gap:22px;margin-bottom:26px}.section-title{font-size:26px;margin-top:9px}.text-link{font-size:12px;gap:11px}.research-intro{grid-template-columns:1fr;gap:23px;margin-bottom:26px}.research-intro h3{font-size:20px}.research-intro p{font-size:13px}.research-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.research-card{padding:19px 15px}.research-card h3{font-size:15px}.research-card p{font-size:11px}.news-layout{grid-template-columns:1fr;gap:26px}.news-heading .text-link{margin-top:18px}.news-item{grid-template-columns:1fr;gap:6px;padding-block:17px}.news-item p{font-size:13px}.news-item time{font-size:12px}.visit-section{padding-block:35px}.visit-grid{grid-template-columns:1fr;gap:14px}.visit-card{padding:23px}.visit-card h2{font-size:18px}.footer-top{flex-direction:column;gap:24px}.footer-name{font-size:16px}.footer-links{justify-content:flex-start;font-size:11px;gap:10px 20px}.footer-bottom{align-items:flex-start;font-size:10px;gap:14px}}
@media(max-width:360px){.wrap{width:calc(100% - 32px)}.brand-name{font-size:14px}.brand-university{font-size:8px}.hero h1{font-size:27px}.hero-actions{flex-direction:column;align-items:stretch}.research-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
.footer-bottom{flex-wrap:wrap}.footer-bottom small{font-size:inherit}.back-top{white-space:nowrap;flex-shrink:0;margin-left:auto}

/* A: a broad original photograph, quiet white space and deep green. */
.design-a{--ink:#263c33;--muted:#61756b;--paper:#fff;--soft:#f2f5f1;--line:#d8e1d9;--accent:#184b3e;--accent-dark:#10362d;--highlight:#8b7138}
.design-a .hero{background:#f7f8f4;border-bottom:1px solid var(--line)}
.design-a .hero-inner{padding-block:48px 54px}
.design-a .hero-title-row{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:64px;margin-bottom:38px}
.design-a .hero h1{font-size:48px;margin-top:14px}
.design-a .hero-overview{padding-top:13px}
.design-a .hero-figure{border:1px solid var(--line)}
.design-a .photo-caption{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:28px;padding:19px 28px}
.design-a .photo-caption-label{grid-column:1}.design-a .photo-caption-title{grid-column:1;margin-top:3px}.design-a .photo-caption-note{grid-column:2;grid-row:1/span 2;margin:0;font-size:12px}
.design-a .research-card{border-top:3px solid var(--accent)}
@media(max-width:1120px){.design-a .hero-title-row{gap:35px}.design-a .hero h1{font-size:clamp(30px,3.85vw,43px)}}
@media(max-width:760px){.design-a .hero-inner{padding-block:35px 36px}.design-a .hero-title-row{grid-template-columns:1fr;gap:22px;margin-bottom:29px}.design-a .hero h1{font-size:clamp(28px,7.2vw,40px)}.design-a .hero-overview{padding-top:0}.design-a .photo-caption{display:block;padding:16px 18px}.design-a .photo-caption-label{font-size:8px}.design-a .photo-caption-title{font-size:15px}.design-a .photo-caption-note{font-size:10px;margin-top:6px}}
@media(max-width:360px){.design-a .hero h1{font-size:27px}}

/* Shared layout and responsive behavior for every page in A, B and C. */
[hidden]{display:none!important}html{scroll-padding-top:112px}body{overflow-wrap:break-word}.header-inner>nav{min-width:0}.desktop-nav{gap:20px}.desktop-nav a{font-size:12px}.brand-name{font-size:19px}.is-inner .site-header{box-shadow:0 2px 16px #18332806}
.page-hero{padding:27px 0 47px;background:var(--soft);border-bottom:1px solid var(--line)}.breadcrumbs{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:11px;color:var(--muted);margin-bottom:28px;line-height:1.6}.breadcrumbs a:hover{text-decoration:underline;text-underline-offset:3px}.breadcrumbs>span:last-child{max-width:780px}.page-hero h1{font-size:38px;font-weight:600;line-height:1.5;letter-spacing:.025em;color:var(--accent);margin-top:12px;overflow-wrap:anywhere}.is-research-detail .page-hero h1{font-size:31px;line-height:1.45;max-width:1070px;letter-spacing:0}.page-intro{font-size:14px;color:var(--muted);margin-top:12px}.source-update{font-size:12px;color:var(--muted);margin-top:9px}.page-actions{display:flex;flex-wrap:wrap;gap:18px 30px;margin-top:24px}.page-body{padding-block:42px 74px}.page-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:42px;align-items:start}.page-content{min-width:0}.page-toc{position:sticky;top:122px;font-size:12px;line-height:1.65;padding:20px 0}.page-toc>p{font-size:10px;letter-spacing:.12em;color:var(--muted);margin-bottom:12px}.page-toc li{border-left:2px solid var(--line)}.page-toc a{display:block;padding:10px 15px;overflow-wrap:anywhere}.page-toc a:hover{color:var(--accent);background:var(--soft);border-left-color:var(--accent)}
.content-section{border:1px solid var(--line);background:var(--paper);padding:30px 32px;margin-bottom:24px;scroll-margin-top:112px}.content-section>h2{font-size:24px;line-height:1.55;letter-spacing:.025em;color:var(--accent);font-weight:600;margin-bottom:24px}.source-block{font-size:15px;line-height:1.95;overflow-wrap:anywhere}.source-block+.source-block{margin-top:25px}.source-block p{margin-block:1em}.source-block a,.citation a,.member-name a,.section-original-intro a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.source-block a:hover,.citation a:hover{color:var(--highlight)}.source-block ul{padding-left:1.4em;list-style:disc}.source-block ol{padding-left:1.5em;list-style:decimal}.source-block li{padding-block:6px}.source-block img{max-width:100%;height:auto;margin:22px auto}.source-block img[width="63"]{width:63px;margin-top:25px}.source-block .content-button{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;margin:8px 6px 8px 0;background:var(--accent);color:white;text-decoration:none;font-size:13px;line-height:1.65}.source-block .content-button:hover{background:var(--accent-dark);color:white}.source-block br+br{line-height:1.3}.source-block table{max-width:100%;border-collapse:collapse}.source-block td{padding:10px;border-bottom:1px solid var(--line)}.anchor-marker{display:block;scroll-margin-top:112px}.detail-return{margin-top:32px}.faculty-lead{padding:30px 32px;border:1px solid var(--line);background:var(--paper);margin-bottom:30px;font-size:14px;line-height:1.9}.faculty-intro{font-size:22px;color:var(--accent);line-height:1.8}.faculty-lead img{max-width:200px;float:right;margin:0 0 18px 30px}.faculty-lead:after{content:"";display:block;clear:both}.is-faculty .source-block ul{margin-top:10px}.is-faculty .source-block li{padding-block:10px}
.filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;background:var(--paper);border:1px solid var(--line);padding:21px 23px;margin-bottom:28px}.filter-bar label{display:flex;flex-direction:column;gap:7px;min-width:150px;max-width:100%;font-size:11px;color:var(--muted);font-weight:600}.filter-bar .filter-search{flex:1;min-width:230px}.filter-bar input,.filter-bar select{font:inherit;font-size:14px;font-weight:400;width:100%;min-height:45px;color:var(--ink);background:var(--paper);border:1px solid #9aaea5;border-radius:3px;padding:9px 11px;max-width:300px}.filter-search input{max-width:none}.filter-reset{font:inherit;font-size:12px;background:var(--soft);border:1px solid var(--line);padding:11px 16px;min-height:45px;color:var(--ink);white-space:nowrap}.filter-count{font-size:12px;color:var(--muted);min-width:92px;padding-bottom:12px}.empty-message{padding:36px 24px;background:var(--soft);font-size:15px;border:1px solid var(--line);margin-bottom:25px}.original-navigation{font-size:12px;margin-bottom:25px}.original-navigation summary{cursor:pointer;padding:12px 0;color:var(--accent)}.original-navigation ul{display:flex;flex-wrap:wrap;gap:8px 20px}.original-navigation li{padding:4px 0}.original-navigation a{text-decoration:underline;text-underline-offset:3px}.original-navigation p{display:none}
.section-tabs{display:flex;gap:22px;margin-bottom:26px;border-bottom:1px solid var(--line);font-size:14px}.section-tabs a{padding:0 0 14px;border-bottom:3px solid transparent}.section-tabs a[aria-current="page"]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.group-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}.group-heading h2{font-size:23px;line-height:1.5;font-weight:600;color:var(--accent)}.group-heading>span{font-size:12px;color:var(--muted)}.members-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.member-card{padding:21px 20px;background:var(--soft);border:1px solid var(--line);min-width:0}.member-role{font-size:11px;color:var(--muted);line-height:1.75;margin-bottom:9px}.member-role strong{font-weight:500}.member-name{font-size:15px;line-height:1.8;overflow-wrap:anywhere}.member-name strong{font-size:12px;line-height:1.7}.is-inner .news-list{border-top-color:var(--line)}.is-inner .news-item{grid-template-columns:105px minmax(0,1fr);padding-block:20px}.is-inner .news-item p{font-size:14px;overflow-wrap:anywhere}
.publication-year{margin-top:25px}.publication-year>h3{color:var(--muted);font-size:13px;border-bottom:1px solid var(--line);padding-bottom:11px;font-weight:500}.citation-list{padding-left:24px;list-style:decimal}.citation{font-size:14px;line-height:1.95;padding:20px 0 20px 6px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.citation::marker{font-size:11px;color:var(--muted)}.citation b,.citation strong{font-weight:600}.reference-list{padding-left:1.4em;list-style:disc}.reference-list li{font-size:14px;line-height:1.95;padding-block:18px!important;overflow-wrap:anywhere;border-bottom:1px solid var(--line)}.section-original-intro{font-size:14px;line-height:1.9;margin-bottom:12px}
.catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.catalog-card{border:1px solid var(--line);background:var(--paper);min-width:0;transition:border-color .15s,background .15s}.catalog-card:hover{border-color:var(--accent);background:var(--soft)}.catalog-card>a{display:grid;grid-template-columns:112px minmax(0,1fr);gap:23px;padding:25px;height:100%}.catalog-image{display:flex;align-items:center;justify-content:center;background:#fff;min-width:0;align-self:start;border:1px solid var(--line);padding:5px}.catalog-image img{width:100px;height:100px;object-fit:contain}.catalog-copy{min-width:0}.tag-row{display:flex;flex-wrap:wrap;gap:4px 10px;margin-bottom:10px}.tag-row span{font-size:9px;line-height:1.7;color:var(--muted)}.catalog-copy h2{font-size:16px;font-weight:600;line-height:1.65;overflow-wrap:anywhere}.catalog-more{display:inline-flex;gap:12px;align-items:center;margin-top:19px;font-size:11px;color:var(--accent);font-weight:600}.catalog-more svg{width:14px;height:14px}.legacy-research-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.legacy-research-card{display:flex;align-items:flex-start;gap:13px;border:1px solid var(--line);padding:15px;text-decoration:none!important;font-size:13px;line-height:1.7}.legacy-research-card img{width:75px!important;height:75px!important;object-fit:contain;margin:0}.legacy-research-card span{min-width:0}
.design-b.is-inner .page-hero{background:#112b40;color:#fff;border-color:#2c475a}.design-b.is-inner .page-hero h1{color:#fff}.design-b.is-inner .page-hero .eyebrow,.design-b.is-inner .page-hero .breadcrumbs,.design-b.is-inner .page-hero .page-intro,.design-b.is-inner .page-hero .source-update{color:#b5cbd9}.design-b.is-inner .page-hero .text-link{color:#a4dfcb;border-color:#75bda6}.design-b .content-section,.design-b .filter-bar,.design-b .member-card{border-radius:5px}.design-b .catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.design-b .catalog-card>a{display:block}.design-b .catalog-image{margin-bottom:20px;min-height:135px;border:0;background:#f2f6f8}.design-b .catalog-copy h2{font-size:16px}.design-b .tag-row span{color:#427261}
.design-c.is-inner .page-hero{background:var(--paper);border:0}.design-c.is-inner .page-hero .wrap{border-bottom:1px solid var(--line);padding-bottom:36px}.design-c.is-inner .page-hero{padding-bottom:0}.design-c .content-section{border:0;border-top:1px solid var(--line);padding:30px 0;background:transparent}.design-c .member-card{background:transparent;border:0;border-bottom:1px solid var(--line);padding:18px 0}.design-c .catalog-grid{grid-template-columns:1fr;gap:0;border-top:1px solid var(--line)}.design-c .catalog-card{border:0;border-bottom:1px solid var(--line);background:transparent}.design-c .catalog-card>a{grid-template-columns:110px minmax(0,1fr);gap:32px;padding:27px 0}.design-c .catalog-copy h2{font-size:19px;font-weight:500}.design-c .catalog-more{margin-top:12px}.design-c .filter-bar{background:#f3efe8}.design-c .filter-bar input,.design-c .filter-bar select{background:#fbfaf6}.design-c .page-toc li{border-left-color:#d5c8c7}
@media(max-width:1120px){.desktop-nav{display:none}.brand-name{font-size:19px}.page-layout{grid-template-columns:180px minmax(0,1fr);gap:28px}.content-section{padding:26px 25px}.catalog-grid,.design-b .catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-card>a{grid-template-columns:86px minmax(0,1fr);gap:18px;padding:22px}.catalog-image img{width:75px;height:75px}.catalog-copy h2{font-size:15px}.members-grid{grid-template-columns:1fr}.filter-bar{gap:12px}.filter-bar label{min-width:130px}.filter-bar .filter-search{min-width:200px}.legacy-research-grid{grid-template-columns:1fr}}
@media(max-width:760px){html{scroll-padding-top:91px}.brand-name{font-size:16px}.page-hero{padding:18px 0 29px}.breadcrumbs{font-size:10px;gap:5px 8px;margin-bottom:22px}.page-hero h1{font-size:28px;line-height:1.5;margin-top:9px}.is-research-detail .page-hero h1{font-size:23px;line-height:1.5}.page-intro{font-size:13px}.page-actions{gap:15px;margin-top:20px;flex-direction:column;align-items:flex-start}.page-actions .text-link{white-space:normal}.page-body{padding-block:26px 45px}.page-layout{grid-template-columns:1fr;gap:24px}.page-toc{position:static;padding:0;font-size:11px}.page-toc>p{margin-bottom:10px}.page-toc ul{display:flex;flex-wrap:wrap;gap:7px}.page-toc li{border:1px solid var(--line);background:var(--soft);max-width:100%}.page-toc a{padding:8px 10px}.content-section{padding:24px 20px;margin-bottom:19px;scroll-margin-top:91px}.content-section>h2{font-size:21px;margin-bottom:20px}.source-block{font-size:14px;line-height:1.95}.source-block+.source-block{margin-top:22px}.source-block img{margin:18px auto}.faculty-lead{padding:23px 20px}.faculty-intro{font-size:18px}.faculty-lead img{float:none;max-width:160px;margin:15px 0}.filter-bar{padding:17px 16px;gap:13px;margin-bottom:23px}.filter-bar .filter-search{flex:1 1 100%;min-width:0}.filter-bar label{flex:1;min-width:115px}.filter-bar input,.filter-bar select{font-size:16px;max-width:100%;min-height:45px}.filter-reset{font-size:11px;padding:11px 13px}.filter-count{padding-bottom:11px;font-size:11px;min-width:80px}.members-grid{grid-template-columns:1fr;gap:11px}.member-card{padding:18px}.member-name{font-size:14px}.group-heading h2{font-size:21px}.group-heading{margin-bottom:18px}.section-tabs{font-size:12px;gap:18px;line-height:1.8}.is-inner .news-item{grid-template-columns:1fr;gap:6px;padding-block:18px}.is-inner .news-item p{font-size:13px}.citation{font-size:13px;padding-block:17px}.citation-list{padding-left:19px}.reference-list li{font-size:13px}.catalog-grid,.design-b .catalog-grid{grid-template-columns:1fr;gap:15px}.catalog-card>a{grid-template-columns:78px minmax(0,1fr);gap:17px;padding:20px 17px}.catalog-copy h2{font-size:15px}.catalog-image img{width:67px;height:67px}.catalog-more{font-size:11px;margin-top:14px}.design-b .catalog-card>a{display:grid}.design-b .catalog-image{margin-bottom:0;min-height:80px}.design-c .catalog-card>a{grid-template-columns:78px minmax(0,1fr);gap:19px;padding:23px 0}.design-c .catalog-copy h2{font-size:16px}.design-c.is-inner .page-hero .wrap{padding-bottom:26px}.design-c .content-section{padding:24px 0}.legacy-research-grid{grid-template-columns:1fr}.legacy-research-card{padding:13px;gap:12px}.legacy-research-card img{width:62px!important;height:62px!important}}
@media(max-width:360px){.brand-name{font-size:14px}.page-hero h1{font-size:25px}.is-research-detail .page-hero h1{font-size:21px}.content-section{padding:21px 16px}.filter-bar{padding:15px 13px}.filter-bar label{min-width:100px}.catalog-card>a,.design-c .catalog-card>a{grid-template-columns:1fr}.catalog-image{width:84px}.design-b .catalog-image{width:84px}.page-toc a{font-size:10px}.source-block{font-size:13px}}
.faculty-intro small{font-size:14px}.faculty-lead table{width:100%;max-width:100%;border-collapse:collapse;table-layout:fixed}.faculty-lead td{width:auto;vertical-align:top;overflow-wrap:anywhere}.faculty-lead td:first-child{width:220px}.faculty-lead td:nth-child(2){width:24px}.faculty-lead table img{float:none;margin:0;max-width:100%;height:auto}.faculty-lead table .faculty-intro{font-size:16px}.faculty-lead table .faculty-intro:first-child{font-size:24px;margin-bottom:10px}
@media(max-width:760px){.faculty-lead table,.faculty-lead tbody,.faculty-lead tr,.faculty-lead td{display:block;width:100%!important}.faculty-lead td:nth-child(2){display:none}.faculty-lead table img{width:160px;margin-bottom:21px}.faculty-lead table .faculty-intro{font-size:14px}.faculty-lead table .faculty-intro:first-child{font-size:21px}}
.filter-bar{display:grid;grid-template-columns:minmax(180px,1fr) minmax(160px,240px) auto auto;align-items:end}.filter-bar.filter-publications{grid-template-columns:minmax(190px,1fr) minmax(180px,250px) 135px auto auto}.filter-bar label,.filter-bar .filter-search{min-width:0}.filter-bar input,.filter-bar select{max-width:100%}
@media(max-width:1120px){.filter-bar,.filter-bar.filter-publications{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-bar .filter-search{grid-column:1/-1}.filter-reset{justify-self:start}.filter-count{padding-bottom:12px}}
@media(max-width:760px){.filter-bar,.filter-bar.filter-publications{display:block}.filter-bar label{margin-bottom:13px}.filter-bar input,.filter-bar select{min-width:0}.filter-reset{display:inline-block}.filter-count{display:inline-block;padding:10px 0 0 14px;vertical-align:middle}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.catalog-card{transition:none}}

/* A layout, with a lighter background and darker warm text for readability. */
.design-final {
  --ink: #2d2725;
  --muted: #5e5551;
  --paper: #fff;
  --soft: #fcfbfa;
  --line: #e6e0dc;
  --accent: #572536;
  --accent-dark: #3d1926;
  --highlight: #65471f;
  font-size: 18px;
  line-height: 1.9;
}
.design-final ::selection { color: #482630; background: #eee0e2; }
.design-final :focus-visible { outline-color: var(--accent); }
.design-final .hero { background: #fdfcfb; }
.design-final .header-inner { gap: 22px; min-height: 94px; }
.design-final .brand { min-width: 0; flex: 0 1 auto; }
.design-final .brand-university { font-size: 12px; line-height: 1.55; }
.design-final .brand-name { font-size: 20px; line-height: 1.6; }
.design-final:lang(en) .brand { max-width: 345px; }
.design-final:lang(en) .brand-name { font-size: 19px; line-height: 1.45; }
.design-final .desktop-nav { display: flex; gap: 14px; }
.design-final .desktop-nav a { font-size: 14px; padding-block: 31px 27px; }
.design-final .header-controls {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 15px;
  position: static;
}
.design-final .language-switch {
  display: flex;
  align-items: center;
  gap: 0;
  font-size: 13px;
  line-height: 1.4;
  white-space: nowrap;
}
.design-final .language-switch a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 9px 8px;
  color: var(--muted);
  text-underline-offset: 5px;
}
.design-final .language-switch a + a { border-left: 1px solid var(--line); }
.design-final .language-switch a[aria-current="page"],
.design-final .language-switch a[aria-current="true"] {
  color: var(--accent);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 2px;
}
.design-final .language-switch a:hover { color: var(--accent); text-decoration: underline; }
.design-final .mobile-nav { display: block; position: static; }
.design-final .mobile-nav summary {
  min-height: 44px;
  padding: 9px 10px;
  gap: 8px;
  border: 1px solid var(--line);
  color: var(--accent);
  font-size: 13px;
}
.design-final .mobile-nav summary svg { width: 23px; height: 23px; }
.design-final .mobile-nav nav {
  position: absolute;
  top: 100%;
  inset-inline: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 14px max(32px, calc((100% - 1184px) / 2)) 22px;
  background: var(--paper);
  border-top: 1px solid var(--line);
  box-shadow: 0 15px 26px #48263014;
}
.design-final .mobile-nav nav a {
  min-height: 48px;
  padding: 12px 8px;
  font-size: 16px;
  line-height: 1.65;
}
.design-final .mobile-nav nav a:hover,
.design-final .mobile-nav nav a[aria-current="page"] { color: var(--accent); background: var(--soft); }

/* Increase reading sizes while keeping A's existing grids and white space. */
.design-final .eyebrow { font-size: 12px; line-height: 1.6; }
.design-final .hero-english { font-size: 14px; }
.design-final .hero-description { font-size: 18px; line-height: 1.95; }
.design-final .button { min-height: 50px; font-size: 15px; padding-inline: 18px; }
.design-final .text-link,
.design-final .news-heading .text-link { font-size: 15px; }
.design-final .photo-caption-label { font-size: 11px; }
.design-final .photo-caption-title { font-size: 20px; }
.design-final .photo-caption-note { font-size: 14px; }
.design-final .research-intro h3 { font-size: 27px; line-height: 1.7; }
.design-final .research-intro p { font-size: 17px; line-height: 1.95; }
.design-final .research-card h3 { font-size: 19px; }
.design-final .research-card p { font-size: 15px; }
.design-final .card-number { font-size: 13px; }
.design-final .news-item p,
.design-final.is-inner .news-item p { font-size: 16px; line-height: 1.95; }
.design-final .news-item time { font-size: 14px; }
/* Keep the homepage news easy to scan; the news archive retains its existing weight. */
.design-final:not(.is-inner) .news-section .news-item p,
.design-final:not(.is-inner) .news-section .news-item time { font-weight: 700; }
.design-final .visit-label { font-size: 12px; }
.design-final .visit-card h2 { font-size: 22px; }
.design-final .visit-card p { font-size: 15px; }
.design-final .footer-name { font-size: 20px; }
.design-final .footer-english,
.design-final .footer-bottom { font-size: 13px; }
.design-final .footer-links { font-size: 14px; }

.design-final .breadcrumbs { font-size: 13px; }
.design-final .page-intro,
.design-final .section-original-intro { font-size: 17px; }
.design-final .source-update { font-size: 14px; }
.design-final .page-toc { font-size: 14px; line-height: 1.8; }
.design-final .page-toc > p { font-size: 12px; }
.design-final .page-toc a { padding-block: 11px; }
.design-final .source-block { font-size: 18px; line-height: 1.95; }
.design-final .source-block .content-button { font-size: 16px; }
.design-final .faculty-lead { font-size: 17px; }
.design-final .faculty-intro small,
.design-final .faculty-lead table .faculty-intro { font-size: 17px; }
.design-final .faculty-lead table .faculty-intro:first-child { font-size: 26px; }
.design-final .filter-bar label { font-size: 13px; }
.design-final .filter-bar input,
.design-final .filter-bar select { font-size: 16px; border-color: #a69c94; }
.design-final .filter-reset,
.design-final .filter-count,
.design-final .original-navigation { font-size: 14px; }
.design-final .empty-message { font-size: 17px; }
.design-final .section-tabs { font-size: 16px; }
.design-final .member-role { font-size: 14px; }
.design-final .member-name { font-size: 17px; }
.design-final .member-name strong { font-size: 15px; }
.design-final .group-heading > span { font-size: 14px; }
.design-final .publication-year > h3 { font-size: 16px; }
.design-final .citation,
.design-final .reference-list li { font-size: 16px; line-height: 1.95; }
.design-final .citation::marker { font-size: 13px; }
.design-final .catalog-copy h2 { font-size: 18px; line-height: 1.75; }
.design-final .tag-row span { font-size: 12px; }
.design-final .catalog-more { font-size: 14px; }
.design-final .legacy-research-card { font-size: 16px; }

/* Preserve image aspect ratios and make the research overview easier to read. */
.design-final .source-block a:has(> .image-research-3d-interaction),
.design-final .source-block a:has(> .image-research-matrix),
.design-final .source-block a:has(> img[alt="research_3d_interaction.jpg"]),
.design-final .source-block a:has(> img[alt="research_matrix.jpg"]) { display: block; text-align: center; }
.design-final .source-block .image-research-3d-interaction,
.design-final .source-block img[alt="research_3d_interaction.jpg"] {
  display: inline-block;
  width: 100%;
  max-width: 720px;
  height: auto;
  margin: 30px auto;
}
.design-final .source-block .image-research-matrix,
.design-final .source-block img[alt="research_matrix.jpg"] {
  display: inline-block;
  width: 100%;
  max-width: 720px;
  height: auto;
  margin: 32px auto;
}

.design-final .motto-section { padding-block: 52px; border-top: 1px solid var(--line); background: #fcfbfa; }
.design-final .motto-inner {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 5px 50px;
  align-items: center;
}
.design-final .motto-mark {
  grid-column: 1;
  grid-row: 1 / span 2;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: 48px;
  letter-spacing: .14em;
  line-height: 1.7;
  color: var(--accent);
  white-space: nowrap;
}
.design-final .motto-copy { min-width: 0; }
.design-final .motto-copy h2 { font-size: 25px; line-height: 1.7; font-weight: 600; color: var(--accent); }
.design-final .motto-copy p { margin-top: 8px; font-size: 17px; line-height: 1.9; }
.design-final .motto-english { grid-column: 2; margin-top: 7px; font-size: 14px; line-height: 1.8; color: var(--muted); }
.design-final:lang(en) .hero h1 { font-size: 45px; line-height: 1.3; letter-spacing: 0; }
.design-final:lang(en) .hero h1 span { white-space: normal; }
.design-final:lang(en) .hero-english { font-size: 15px; }
.design-final:lang(en) .news-heading .text-link { white-space: normal; }

@media (max-width: 1279px) {
  .design-final .header-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 20px; padding-top: 12px; }
  .design-final .header-inner > .brand { grid-column: 1; grid-row: 1; }
  .design-final .header-inner > .header-controls { grid-column: 2; grid-row: 1; margin-left: auto; }
  .design-final .header-inner > .primary-nav { grid-column: 1 / -1; grid-row: 2; display: block; min-width: 0; }
  .design-final .desktop-nav { display: flex; flex-wrap: wrap; justify-content: center; column-gap: 24px; row-gap: 0; }
  .design-final .desktop-nav a { padding-block: 12px 10px; }
}
@media (min-width: 1440px) {
  .design-final .desktop-nav { display: flex; }
  .design-final:lang(en) .header-inner { width: calc(100% - 64px); max-width: 1360px; gap: 18px; }
}
@media (max-width: 1120px) {
  .design-final .header-inner { gap: 18px; }
  .design-final .hero-title-row { gap: 32px; }
  .design-final .hero-description { font-size: 17px; }
  .design-final .research-intro h3 { font-size: 25px; }
  .design-final .news-layout { grid-template-columns: 220px minmax(0, 1fr); gap: 32px; }
  .design-final .motto-inner { grid-template-columns: 230px minmax(0, 1fr); gap: 4px 32px; }
  .design-final .motto-mark { font-size: 42px; }
  .design-final .motto-copy h2 { font-size: 23px; }
  .design-final:lang(en) .hero h1 { font-size: 35px; }
}
@media (max-width: 900px) {
  .design-final .hero-title-row { grid-template-columns: 1fr; gap: 24px; }
  .design-final .hero-overview { padding-top: 0; }
  .design-final .hero-title { max-width: 650px; }
  .design-final .hero-description { max-width: 780px; }
  .design-final .page-layout { grid-template-columns: 170px minmax(0, 1fr); gap: 24px; }
}
@media (max-width: 760px) {
  .design-final { font-size: 16px; }
  .design-final .header-inner { min-height: 82px; }
  .design-final .brand-name { font-size: 18px; }
  .design-final .brand-university { font-size: 11px; }
  .design-final .eyebrow { font-size: 11px; letter-spacing: .12em; }
  .design-final .hero h1 { font-size: clamp(28px, 7.2vw, 40px); }
  .design-final:lang(en) .hero h1 { font-size: clamp(28px, 6.8vw, 36px); }
  .design-final .hero-english { font-size: 13px; }
  .design-final .hero-description,
  .design-final .research-intro p { font-size: 16px; }
  .design-final .button { font-size: 15px; padding-inline: 15px; gap: 12px; }
  .design-final .text-link,
  .design-final .news-heading .text-link { font-size: 14px; }
  .design-final .photo-caption-label { font-size: 10px; }
  .design-final .photo-caption-title { font-size: 18px; }
  .design-final .photo-caption-note { font-size: 13px; }
  .design-final .research-intro h3 { font-size: 23px; }
  .design-final .research-card h3 { font-size: 17px; }
  .design-final .research-card p { font-size: 14px; }
  .design-final .news-layout { grid-template-columns: 1fr; gap: 26px; }
  .design-final .news-item p,
  .design-final.is-inner .news-item p { font-size: 16px; }
  .design-final .news-item time { font-size: 13px; }
  .design-final .visit-card h2 { font-size: 20px; }
  .design-final .visit-card p { font-size: 15px; }
  .design-final .footer-name { font-size: 18px; }
  .design-final .footer-links { font-size: 14px; }
  .design-final .footer-english,
  .design-final .footer-bottom { font-size: 12px; }
  .design-final .breadcrumbs { font-size: 12px; }
  .design-final .page-intro,
  .design-final .section-original-intro { font-size: 16px; }
  .design-final .page-layout { grid-template-columns: 1fr; gap: 24px; }
  .design-final .page-toc { font-size: 13px; }
  .design-final .page-toc a { font-size: 13px; padding: 9px 11px; }
  .design-final .page-toc > p { font-size: 11px; }
  .design-final .source-block { font-size: 16px; }
  .design-final .source-block .content-button { font-size: 15px; }
  .design-final .faculty-lead { font-size: 16px; }
  .design-final .faculty-intro small,
  .design-final .faculty-lead table .faculty-intro { font-size: 16px; }
  .design-final .faculty-lead table .faculty-intro:first-child { font-size: 23px; }
  .design-final .filter-bar label { font-size: 13px; }
  .design-final .filter-reset,
  .design-final .filter-count { font-size: 13px; }
  .design-final .original-navigation { font-size: 14px; }
  .design-final .section-tabs { font-size: 15px; }
  .design-final .member-name { font-size: 16px; }
  .design-final .member-name strong { font-size: 14px; }
  .design-final .member-role,
  .design-final .group-heading > span { font-size: 13px; }
  .design-final .publication-year > h3 { font-size: 15px; }
  .design-final .citation,
  .design-final .reference-list li { font-size: 16px; }
  .design-final .citation::marker { font-size: 12px; }
  .design-final .catalog-copy h2 { font-size: 17px; }
  .design-final .catalog-more { font-size: 13px; }
  .design-final .tag-row span { font-size: 11px; }
  .design-final .legacy-research-card { font-size: 15px; }
  .design-final .source-block .image-research-3d-interaction,
  .design-final .source-block .image-research-matrix,
  .design-final .source-block img[alt="research_3d_interaction.jpg"],
  .design-final .source-block img[alt="research_matrix.jpg"] { max-width: 100%; height: auto; margin-block: 24px; }
  .design-final .motto-section { padding-block: 36px; }
  .design-final .motto-inner { grid-template-columns: 1fr; gap: 15px; }
  .design-final .motto-mark { grid-column: 1; grid-row: auto; font-size: 39px; }
  .design-final .motto-copy h2 { font-size: 22px; }
  .design-final .motto-copy p { font-size: 16px; }
  .design-final .motto-english { grid-column: 1; margin-top: 0; font-size: 14px; }
}
@media (max-width: 620px) {
  .design-final .header-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 9px;
    min-height: 0;
    padding-block: 11px 10px;
  }
  .design-final .header-inner > .brand { grid-column: 1; grid-row: 1; }
  .design-final .header-inner > .header-controls { grid-column: 1; grid-row: 2; }
  .design-final .header-inner > .primary-nav { grid-column: 1; grid-row: 3; width: 100%; border-top: 1px solid var(--line); }
  .design-final .desktop-nav { justify-content: flex-start; column-gap: 16px; }
  .design-final .desktop-nav a { font-size: 14px; min-height: 42px; padding-block: 7px 5px; }
  .design-final .brand { width: 100%; max-width: none; }
  .design-final .brand-university { margin-bottom: 2px; font-size: 10px; }
  .design-final .brand-name { font-size: 18px; }
  .design-final:lang(en) .brand { max-width: none; }
  .design-final:lang(en) .brand-name { font-size: 17px; line-height: 1.4; }
  .design-final .header-controls { width: 100%; justify-content: flex-end; gap: 16px; }
  .design-final .language-switch { font-size: 13px; }
  .design-final .language-switch a { min-height: 40px; padding-block: 8px; }
  .design-final .mobile-nav summary { font-size: 13px; min-height: 40px; padding-block: 7px; }
  .design-final .mobile-nav nav { padding: 10px 20px 18px; }
  .design-final .content-section,
  .design-final .anchor-marker { scroll-margin-top: 12px; }
}
@media (max-width: 360px) {
  .design-final .brand-name { font-size: 17px; }
  .design-final:lang(en) .brand-name { font-size: 16px; }
  .design-final .hero h1 { font-size: 28px; }
  .design-final .hero h1 span { white-space: normal; }
  .design-final .research-intro h3 { font-size: 22px; }
  .design-final .source-block,
  .design-final .news-item p,
  .design-final.is-inner .news-item p { font-size: 16px; }
  .design-final .citation,
  .design-final .reference-list li { font-size: 15px; }
  .design-final .page-toc a { font-size: 13px; }
  .design-final .motto-mark { font-size: 35px; }
}

/* Header height is measured by site.js; these values also support no-script use. */
html { --site-header-height: 96px; scroll-padding-top: calc(var(--site-header-height) + 14px); }
.design-final .mobile-nav nav { max-height: calc(100vh - var(--site-header-height) - 8px); max-height: calc(100dvh - var(--site-header-height) - 8px); }
.design-final .content-section,
.design-final .anchor-marker { scroll-margin-top: 12px; }
@media (max-width: 1279px) { html { --site-header-height: 166px; } }
@media (max-width: 620px) { html { --site-header-height: 282px; } }

/* Faculty name and award photographs. */
.design-final .hero-professor { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 12px; margin-top: 18px; padding-bottom: 4px; color: var(--accent); border-bottom: 2px solid var(--line); text-decoration: none; }
.design-final .hero-professor:hover { border-color: var(--accent); }
.design-final .professor-name { font-size: 28px; font-weight: 600; line-height: 1.6; letter-spacing: .035em; }
.design-final .professor-role { font-size: 17px; line-height: 1.6; }
.design-final:lang(en) .professor-name { font-size: 25px; letter-spacing: 0; }
.design-final .source-block .award-list { padding-left: 1.4em; }
.design-final .source-block .award-list > li { padding-block: 24px; border-bottom: 1px solid var(--line); }
.design-final .source-block .award-list > li:last-child { border-bottom: 0; }
.design-final .award-row { display: grid; grid-template-columns: minmax(0, 1fr) 200px; align-items: start; gap: 26px; }
.design-final .award-copy { min-width: 0; }
.design-final .award-photo { width: 200px; justify-self: end; }
.design-final .source-block .award-photo img { display: block; width: auto; height: auto; max-width: 100%; max-height: 240px; margin: 0 auto; object-fit: contain; }
.design-final .source-block .research-concept { margin: 0 0 26px; padding: 18px 20px; border-left: 3px solid var(--accent); background: var(--soft); line-height: 1.95; }
@media (max-width: 1000px) {
 .design-final .award-row { grid-template-columns: minmax(0, 1fr); gap: 18px; }
 .design-final .award-photo { justify-self: start; width: min(200px, 100%); }
}
@media (max-width: 760px) {
 .design-final .professor-name { font-size: 24px; }
 .design-final:lang(en) .professor-name { font-size: 23px; }
 .design-final .professor-role { font-size: 16px; }
 .design-final .hero-professor { gap: 9px; margin-top: 15px; }
 .design-final .source-block .research-concept { padding: 15px 16px; }
}

/* Pale footer: retain the layout and provide the same dark, legible text. */
.design-final .site-footer { background: #faf8f8; color: var(--ink); border-top: 1px solid var(--line); }
.design-final .footer-name, .design-final .footer-links a, .design-final .back-top { color: var(--accent); }
.design-final .footer-english, .design-final .footer-bottom { color: var(--muted); opacity: 1; }
.design-final .footer-links { opacity: 1; }
.design-final .footer-bottom { border-top-color: var(--line); }

/* Motion changes only paint/transform, never the existing page geometry. */
.design-final .hero-figure { overflow: hidden; }
.design-final .hero-photo { transform-origin: 50% 50%; }
.design-final .button, .design-final .research-card, .design-final .visit-card,
.design-final .mobile-nav summary, .design-final .mobile-nav nav a,
.design-final .desktop-nav a, .design-final .hero-professor {
  transition: background-color .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.design-final .button svg, .design-final .text-link svg, .design-final .visit-card > svg {
  transition: transform .2s ease;
}
@media (hover: hover) and (pointer: fine) {
  .design-final .button:hover { transform: translateY(-2px); }
  .design-final .research-card:hover, .design-final .visit-card:hover {
    transform: translateY(-3px); box-shadow: 0 5px 16px #3d19260b;
  }
  .design-final .button:hover svg, .design-final .text-link:hover svg,
  .design-final .visit-card:hover > svg { transform: translateX(3px); }
  .design-final .mobile-nav summary:hover { background: var(--soft); border-color: var(--accent); }
}
.design-final .button:active, .design-final .research-card:active,
.design-final .visit-card:active, .design-final .mobile-nav summary:active { transform: translateY(1px); }
.design-final .button:focus-visible svg, .design-final .text-link:focus-visible svg,
.design-final .visit-card:focus-visible > svg { transform: translateX(3px); }
/* Scrolling a touch screen must not lift the text under the finger. */
@media (hover: none), (pointer: coarse) {
  .design-final .button:active, .design-final .research-card:active,
  .design-final .visit-card:active, .design-final .mobile-nav summary:active {
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .design-final *, .design-final *::before, .design-final *::after {
    animation: none !important; transition: none !important;
  }
  .design-final .hero-photo, .design-final .button, .design-final .research-card,
  .design-final .visit-card, .design-final .mobile-nav summary,
  .design-final .button svg, .design-final .text-link svg, .design-final .visit-card > svg {
    transform: none !important;
  }
}
@media print {
  .design-final .hero-photo { transform: none !important; }
}

/* Small personal mark at the end of the profile/contact page. */
.design-final .page-signature { display: flex; justify-content: flex-end; margin-top: 26px; padding-top: 12px; }
.design-final .page-signature img { display: block; width: 48px; max-width: 48px; height: auto; margin: 0; }
.design-final .page-toc li.toc-secondary-start { margin-top: 18px; }
@media (max-width: 760px) {
  .design-final .page-toc li.toc-secondary-start { margin-top: 0; }
}

/* Keep award titles and their photographs beside each other on desktop.
   This file follows final.css so a 1000px-wide desktop window no longer
   inherits the former single-column award layout. */
.design-final .source-block .award-list > li > .award-row {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  flex-wrap: nowrap;
  gap: 24px;
  width: 100%;
}
.design-final .source-block .award-row > .award-copy {
  flex: 1 1 0%;
  min-width: 0;
  overflow-wrap: anywhere;
}
.design-final .source-block .award-row > .award-photo {
  flex: 0 0 180px;
  width: 180px;
  max-width: 180px;
  margin: 0;
}
.design-final .source-block .award-photo > img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 220px;
  margin: 0 auto;
  object-fit: contain;
}
@media (max-width: 760px) {
  .design-final .source-block .award-list > li > .award-row {
    flex-direction: column;
    gap: 16px;
  }
  .design-final .source-block .award-row > .award-copy {
    flex: 0 1 auto;
    width: 100%;
  }
  .design-final .source-block .award-row > .award-photo {
    flex: 0 1 auto;
    width: 180px;
    max-width: 100%;
  }
  .design-final .source-block .award-photo > img {
    margin-inline: 0;
  }
}

/* Reserve award-photo space from the intrinsic HTML dimensions before lazy loading. */
.design-final .source-block .award-photo > img[width][height] {
  width: 100%;
  height: auto;
  object-fit: contain;
}
@media (max-width: 760px) {
  .design-final .source-block .award-photo > img[width][height] {
    object-position: left top;
  }
}
