:root{
  --paper:#f7f5f0;
  --ink:#1e2430;
  --ink-soft:#4a5163;
  --rule:#c9c2b2;
  --maroon:#6b2737;
  --maroon-soft:#8a4553;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Open Sans',Arial,sans-serif;
  line-height:1.65;
}
a{color:var(--maroon);text-decoration:none;border-bottom:1px solid transparent;}
a:hover{border-bottom-color:var(--maroon);}
.wrap{max-width:920px;margin:0 auto;padding:0 28px;}

/* Masthead */
header.masthead{
  border-bottom:3px double var(--rule);
  padding-top:38px;
}
.masthead-inner{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:20px;
  padding-bottom:22px;
}
.titling h1{
  font-size:2.15rem;
  letter-spacing:.02em;
  margin:0 0 6px;
  font-weight:600;
  color:var(--ink);
}
.titling .rank{
  font-family:'Open Sans',Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.78rem;
  color:var(--maroon);
  margin:0 0 10px;
}
.titling .dept{
  font-family:'Open Sans',Arial,sans-serif;
  font-size:.85rem;
  color:var(--ink-soft);
  margin:2px 0;
}
.titling .contact{
  font-family:'Open Sans',Arial,sans-serif;
  font-size:.82rem;
  color:var(--ink-soft);
  margin-top:8px;
}
.portrait{
  width:190px;
  height:190px;
  border:1px solid var(--rule);
  background:
    repeating-linear-gradient(135deg, #e9e4d8, #e9e4d8 8px, #efebe1 8px, #efebe1 16px);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:'Open Sans',Arial,sans-serif;
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--ink-soft);
  text-align:center;
  flex-shrink:0;
}

/* Nav */
nav.crossbar{
  font-family:'Open Sans',Arial,sans-serif;
  font-size:.78rem;
  letter-spacing:.06em;
  text-transform:uppercase;
}
nav.crossbar ul{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:0;
  margin:0;
  padding:0;
}
nav.crossbar li{border-right:1px solid var(--rule);}
nav.crossbar li:last-child{border-right:none;}
nav.crossbar a{
  display:block;
  padding:11px 18px;
  color:var(--ink-soft);
  border-bottom:none;
}
nav.crossbar a:hover{color:var(--maroon);background:#efe9db;}
nav.crossbar a.active{color:var(--maroon);background:#efe9db;font-weight:700;}

main{padding:36px 0 60px;}
section{margin-bottom:46px;scroll-margin-top:24px;}

.eyebrow{
  font-family:'Open Sans',Arial,sans-serif;
  font-size:.95rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--maroon);
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:16px;
}
.eyebrow::after{
  content:"";
  flex:1;
  height:1px;
  background:var(--rule);
}

.placeholder{
  color:var(--ink-soft);
  font-style:italic;
}
.placeholder-tag{
  font-family:'Open Sans',Arial,sans-serif;
  font-size:.65rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#a7876f;
  background:#f0e5d6;
  border:1px solid #e0cfae;
  padding:1px 7px;
  border-radius:2px;
  margin-left:8px;
  vertical-align:middle;
}

.interests{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:16px;
  padding:0;
  list-style:none;
}
.interests li{
  font-family:'Open Sans',Arial,sans-serif;
  font-size:.76rem;
  border:1px solid var(--rule);
  padding:5px 12px;
  color:var(--ink-soft);
}

ol.news{
  list-style:none;
  counter-reset:news;
  padding:0;
  margin:0;
}
ol.news li{
  counter-increment:news;
  display:flex;
  gap:16px;
  padding:12px 0;
  border-bottom:1px solid var(--rule);
  font-size:.94rem;
}
ol.news li:first-child{border-top:1px solid var(--rule);}
.news-year{
  font-family:'Open Sans',Arial,sans-serif;
  font-size:.78rem;
  color:var(--maroon-soft);
  flex-shrink:0;
  width:44px;
}

.cards{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:18px;
  margin-top:14px;
}
.card{
  border:1px solid var(--rule);
  padding:18px 20px;
  background:#fbf9f4;
}
.card h3{
  margin:0 0 8px;
  font-size:1.02rem;
  font-weight:600;
}
.card p{margin:0;font-size:.9rem;color:var(--ink-soft);}

.cards-horizontal{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-top:14px;
}
.card-h{
  display:flex;
  align-items:flex-start;
  gap:24px;
  border:1px solid var(--rule);
  padding:18px 22px;
  background:#fbf9f4;
}
.card-h h3{
  margin:0;
  font-size:1rem;
  font-weight:600;
  flex:0 0 38%;
  max-width:38%;
}
.card-h-details{
  font-size:.88rem;
  color:var(--ink-soft);
  border-left:1px solid var(--rule);
  padding-left:22px;
  flex:1;
}
@media (max-width:700px){
  .card-h{flex-direction:column;gap:10px;}
  .card-h h3{max-width:100%;}
  .card-h-details{border-left:none;padding-left:0;}
}

.page-title{
  font-size:1.5rem;
  margin:0 0 26px;
  font-weight:600;
}

.breadcrumb{
  font-family:'Open Sans',Arial,sans-serif;
  font-size:.75rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--ink-soft);
  margin:0 0 10px;
}

table.course-meta{
  width:100%;
  border-collapse:collapse;
  margin:16px 0 18px;
  font-size:.9rem;
}
table.course-meta th{
  text-align:left;
  font-family:'Open Sans',Arial,sans-serif;
  font-size:.72rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--maroon-soft);
  padding:8px 16px 8px 0;
  border-bottom:1px solid var(--rule);
  width:180px;
  vertical-align:top;
}
table.course-meta td{
  padding:8px 0;
  border-bottom:1px solid var(--rule);
}

ul.plain-list{
  margin:0;
  padding-left:20px;
}
ul.plain-list li{
  margin-bottom:8px;
}

ol.pub-list{
  margin:0;
  padding-left:0;
  counter-reset:pub;
  list-style:none;
}
ol.pub-list li.pub-item{
  counter-increment:pub;
  font-size:.92rem;
  padding:12px 0 12px 34px;
  border-bottom:1px solid var(--rule);
  position:relative;
}
ol.pub-list li.pub-item:first-child{border-top:1px solid var(--rule);}
ol.pub-list li.pub-item::before{
  content:counter(pub) ".";
  position:absolute;
  left:0;
  top:12px;
  font-family:'Open Sans',Arial,sans-serif;
  font-size:.78rem;
  color:var(--maroon-soft);
}
ol.pub-list li.pub-item a{
  font-family:'Open Sans',Arial,sans-serif;
  font-size:.78rem;
  white-space:nowrap;
}

footer{
  border-top:1px solid var(--rule);
  padding:22px 0 40px;
  font-family:'Open Sans',Arial,sans-serif;
  font-size:.75rem;
  color:var(--ink-soft);
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px;
}

@media (max-width:600px){
  .masthead-inner{flex-direction:column-reverse;align-items:flex-start;}
  nav.crossbar ul{flex-direction:column;}
  nav.crossbar li{border-right:none;border-bottom:1px solid var(--rule);}
}

:focus-visible{outline:2px solid var(--maroon);outline-offset:2px;}
