@font-face {
  font-family: 'AGaramondPro';
  src: local('Adobe Garamond Pro'),
  url('fonts/AGaramondPro-Regular.woff2') format('woff2'),
  url('fonts/AGaramondPro-Regular.woff') format('woff'),
  url('fonts/AGaramondPro-Regular.ttf') format('ttf')
}

@font-face {
  font-family: 'NotoSansRegular';
  src: local('NotoSans-Regular'),
  url('fonts/NotoSans-Regular.woff2') format('woff2'),
  url('fonts/NotoSans-Regular.woff') format('woff'),
  url('fonts/NotoSans-Regular.ttf') format('ttf')
}

@font-face {
  font-family: 'NotoSansItalic';
  src: local('NotoSans-Italic'),
  url('fonts/NotoSans-Italic.woff2') format('woff2'),
  url('fonts/NotoSans-Italic.woff') format('woff'),
  url('fonts/NotoSans-Italic.ttf') format('ttf')
}

@font-face {
  font-family: 'NotoSansBold';
  src: local('NotoSans-Bold'),
  url('fonts/NotoSans-Bold.woff2') format('woff2'),
  url('fonts/NotoSans-Bold.woff') format('woff'),
  url('fonts/NotoSans-Bold.ttf') format('ttf')
}

@font-face {
  font-family: 'NotoSansBoldItalic';
  src: local('NotoSans-BoldItalic'),
  url('fonts/NotoSans-BoldItalic.woff2') format('woff2'),
  url('fonts/NotoSans-BoldItalic.woff') format('woff'),
  url('fonts/NotoSans-BoldItalic.ttf') format('ttf')
}

@font-face {
  font-family: 'Optima';
  src: local('Optima-Regular'),
  url('fonts/Optima-Regular.woff2') format('woff2'),
  url('fonts/Optima-Regular.woff') format('woff'),
  url('fonts/Optima-Regular.ttf') format('ttf')
}

@font-face {
  font-family: 'OptimaItalic';
  src: local('Optima-Italic'),
  url('fonts/Optima-Italic.woff2') format('woff2'),
  url('fonts/Optima-Italic.woff') format('woff'),
  url('fonts/Optima-Italic.ttf') format('ttf')
}

@font-face {
  font-family: 'OptimaBold';
  src: local('Optima-Bold'),
  url('fonts/Optima-Bold.woff2') format('woff2'),
  url('fonts/Optima-Bold.woff') format('woff'),
  url('fonts/Optima-Bold.ttf') format('ttf')
}

@font-face {
  font-family: 'OptimaBoldItalic';
  src: local('Optima-BoldItalic'),
  url('fonts/Optima-BoldItalic.woff2') format('woff2'),
  url('fonts/Optima-BoldItalic.woff') format('woff'),
  url('fonts/Optima-BoldItalic.ttf') format('ttf')
}

/* Properties: postion, dimesnsions+display, color, text, other */

/* TAGs */

body {
  /*background-color: #CCCC99; old background color */
  font-family: NotoSansRegular, LucidaGrande, Verdana, sans-serif;
  font-size: 1.1vw;
  line-height: 1.3;
  background-image: url('imgs/celadon1.png');
  margin: 0;
}

a {
  color: midnightblue;
  text-decoration: none;
}

a:visited {
  color: midnightblue;
}

a:hover {
  color: slategray;
}

a.heading {
  color: black;
}

a.heading:hover {
  color: black;
}

b {
  font-family: NotoSansBold;
  font-weight: normal;
}

b.h {
  font-family: OptimaBold;
  font-weight: normal;
}

em {
  font-family: NotoSansItalic;
  font-style: normal;
}

em.h {
  font-family: OptimaItalic;
  font-style: normal;
}

figcaption {
  font-size: .8rem;
}

form {
  box-sizing: border-box;
  width: 21vw;
  height: 1.5vw;
}

h1 { /* main heading: Hanshan Tang */
  font-family: OptimaBold, Arial, sans-serif;
  font-size: 2vw;
  font-weight: normal;
  font-variant: small-caps;
  line-height: 1.2;
  letter-spacing: .03em;
  margin: 0;
}

h2 { /* Contacts line: Hanshan Tang address */
  font-family: AGaramondPro, Garamond, serif;
  font-size: 1.5vw;
  font-weight: normal;
  line-height: 1.2;
  margin: 0;
}

h3 { /* regular, smaller scale headings, small-caps */
  font-family: Optima, Arial, sans-serif;
  font-size: 1.5vw;
  font-variant: small-caps;
  line-height: 1.2;
  margin: 0;
  letter-spacing: .03em;
}

h4 { /* regular, smaller scale headings */
  font-family: Optima, Arial, sans-serif;
  font-size: 1.4vw;
  font-weight: normal;
  line-height: 1.2;
  margin: 0;
}

h5 { /* heading modeled on rubrics buttons */
  font-family: Optima, Arial, sans-serif;
  font-size: 1.2vw;
  font-weight: normal;
  letter-spacing: .05em;
  background-color: #FFFF99;
  display: inline-block;
  padding: .1vw 1vw;
  margin-top: 1vw;
}

hr {
  margin-top: 0.55vw;
  margin-bottom: 0.55vw;
  border-color: darkred;
  border-width: 0.1vw;
}

i { /* should not really be used */
  font-family: NotoSansItalic;
  font-style: normal;
}

i.h { /* should not really be used */
  font-family: OptimaItalic;
  font-style: normal;
}

input {
  /*font-family: NotoSans, LucidaGrande, Verdana, sans-serif;*/
  font-size: 1.1vw;
  border: 0.1vw solid darkred;
  box-sizing: border-box;
  width: 21vw;
  height: 1.5vw;
}

label { /* not used */
  /*font-family: NotoSans, LucidaGrande, Verdana, sans-serif;*/
  font-size: 1.1vw;
  line-height: 1.2;
  box-sizing: border-box;
}

p {
  margin-top: .55vw;
}

/*  #bannerlists p {
    margin-top: .33vm;
    margin-bottom: 0;
  }*/
  
  #index p {
    font-size: 1vw;
    line-height: 1.2;
  }

select {
  /*font-family: NotoSans, LucidaGrande, Verdana, sans-serif;*/
  font-size: 1.1vw;
  width: 26vw;
  box-sizing: border-box;
}

table { /* this table is the (legacy) default for the site's page
  /*font-family: NotoSans, LucidaGrande, Verdana, sans-serif;*/
  background-color: white;
  width: 100%;
  border-spacing: 0.2vw;
  border: none;
  box-sizing: border-box;
}

td {
  padding: 1vw;
  vertical-align: top;
/*  the following are inherited from body:
  font-size: 1.1vw;
  line-height: 1.32vw;*/
}

td.info {
  width: calc(100%/2);
}/* IDs */

textarea {
  font-family: 'AGaramondPro', serif;
  font-size: 1.2vw;
  width: 50vw;
  height: 20vw;
}

#back, #add {
  font-family: Optima, Arial, sans-serif;
  font-size: 1.1vw;
  letter-spacing: .05em;
  background-color: #FFFF99;
  padding: .2vw;
  cursor: pointer;
  position: fixed;
  border-radius: 6px;
  box-shadow: 3px 4px 2px #333;
}

#add {
  top: 42vw;
  left: 91vw;
  visibility: hidden;
}

#back {
  top: .5vw;
  left: .5vw;
  visibility: hidden;
}

#banner {
  position: absolute;
  top: 2vw;
  left: 2vw;
  width: 96vw;
  height: 10.5vw;
  padding: 0 2vw;
  background-color: white;
  box-sizing: border-box;
}

  #bannerlogo { /* div */
    position: absolute;
    background-color: slategray;
/*      filter: invert(1);*/
    top: 0;
    left: 0;
    padding: 1vw;
    width: 28vw;
    height: 100%;
    box-sizing: border-box;
  }
  
  #bannercontacts { /* div */
    position: absolute;
    display: table-cell;
    vertical-align: middle;
    background-color: white;
    height: 100%;
    min-width: 45vw;
    padding: 1vw;
    top: 0;
    left: 28vw;
    box-sizing: border-box;
  }
  
  #bannerform {
    position: absolute;
    top: 8.5vw;
    left: 51vw;
    border: none;
    box-sizing: border-box;
  }

  #bannerlists { /* div */
    position: absolute;
    display: table-cell;
    vertical-align: middle;
    text-align: center;
    background-color: #FFFF99;
    height: 100%;
    width: 23vw;
    padding: .7vw;
    top: 0;
    left: 73vw;
    box-sizing: border-box;
  }
  
  #bannerlists p {
    margin: 0;
  }
  
  #bannerlists table {
    height: 100%;
  }
  
  #bannerlists td {
    padding: .5vw;
  }
  

#index {
  position: absolute;
  width:  20vw;
  left: 2vw;
  top: 19.5vw;
  height: 100vh;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 0;
  box-sizing: border-box;
  border-bottom: 0.2vw dotted #333;
}

  #index p {
    font-size: 1vw;
    line-height: 1.1;
  }

  #index table {
    position: relative;
    background-color: rgba(0, 0, 0, 0);
    border-spacing: 0;
  }
  
  #index th {
    position: sticky;
    top: 0;
    width: 100%;
    background-color: #FFFF99;
    text-align: center;
    padding: .3vw;
    padding-right: .5vw;
  }
  
  #index td {
    /*background-color: #FFFF99;*/
    padding: .5vw;
  }
  
  #letterCell {
    width: 2vw;
    float: right;
  }

  #indexHd {
    postion: sticky;
    top: 0;
    left: 0;
    width: 100%;
    padding: .1vw;
    text-align: center;
    background-color: #FFFF99;
  }


#menu {
  position: absolute;
  top: 12.5vw;
  left: 2vw;
  width: 96vw;
  background-color: white;
  box-sizing: border-box;
}

  #menu table {
    min-width: 100%;
    text-align: center;
    vertical-align: middle;
    /*background-color: white;*/
  }

  #menu td {
    padding: .1vw;
  }

  #alpha td {
    width: calc(100%/26);
  }

  #catletter {
    width: 50vw;
  }

  #rubrics {
    position: absolute;
    top: 0;
    left: 50vw;
    width: 46vw;
    min-height: 3.8vw;
    background-color: white;
  }
  
  #rubrics table {
    border-spacing: 2vw 0;
  }
  
  #rubrics td {
    font-family: Optima, Arial, sans-serif;
    font-size: 1.2vw;
    letter-spacing: .05em;
    background-color: #FFFF99;
  }
  

#record {
  position: absolute;
  width: 73vw;
  left: 25vw;
  top: 19.5vw;
  background-color: #FFFF99;
  padding: 1vw;
  box-sizing: border-box;
}

#searchbutton {
  /*font-family: NotoSans, LucidaGrande, Verdana, sans-serif;*/
  font-size: 1.1vw;
}


/* CLASSES */

.clickable {
  cursor: pointer;
  color: midnightblue;
}

.clickable:hover {
  color: slategray;
}

:focus {
  outline: 0.1vw solid gray;
}

.indent {
  margin-left: 2.2vm;
}

.noshow {
  display: none;
}

.nocopy {
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  -o-user-select: none;
  user-select: none;
}

.sc {
  font-variant: small-caps;
}