html, body {
  min-height: 100vh;
  padding: 0;
  margin:0;
  font-family: var(--primary-font);
  line-height: var(--body-line-height);
  font-size: var(--body-font-size);
  font-weight: var(--body-font-weight);
}
body {
  overflow-x: hidden;
  width: 100%;
  min-width: 320px;
  margin: 0;
}

#fallback {
  display: none;
}

#locimoi {
  position: relative;
  display: flex;
  flex-flow: row wrap;
  max-width: 100%;
  width: 100vw;
  padding: var(--locimoi-pad);
  box-sizing: border-box;
}

/* locus */
.locus {
  display: none;
  flex-flow: row wrap;
  box-sizing: border-box
}
.locus.level-0 {
  display: flex;
  /*max-width: 100%;*/
}
.locus.vis {
  display: flex;
}
.locus.header {
  position: relative;
  width: 100%;
}
.locus.gene {
  .ci-title {
    font-size: var(--gci-title-font-size);
  }
}
#locimoi {
  .locus.home {
    display: none;
  }
  &.home {
   .locus.home {
    display: flex;
   }
  }
}
/* content locus */
.locus.content {
  display: flex;
  .ci-title {
    padding: var(--ci-padding);
    font-size: var(--cl-title-font-size);
    color: var(--cl-title-color);
  }
}
/* navigation locus */
.locus.navigation {
  flex-wrap: nowrap;
  z-index: 900;
  width: 100%;
  position: relative;
  * {
    font-size: var(--ci-nav-font-size);
  }
  .locus {
    position: absolute;
    top: 100%;
    flex-direction: column;
    .locus {
      top: 0;
      left: 100%;
    }
    .overflow {
      flex-flow: column nowrap;
    }
  }
  .ci-title {
    white-space: nowrap;
  }
  .content-item.on-path, .content-item.in-path {
    width: auto;
  }
  .in-path .content-item.on-path {
    width: auto;
  }
}
.locus .overflow {
  position: absolute;
  left:0;
  top: 100%;
  min-width: 100%;
  display: flex;
  flex-flow: row wrap;
  box-sizing: border-box;
}
.level-0 > .overflow {
  visibility: hidden;
  z-index: -100;
  opacity: 0;
  transition: all 0s;
  height: 0;
  overflow: hidden;
  &.vis {
    visibility: visible;
    z-index: 5;
    opacity: 1;
    height: auto;
  }
}
.more {
  position: relative;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  padding: var(--ci-padding);
  background: #000;
  color: #FFF;
  &::before {
    content: "more";
    display: inline-block;
    
  }
  &.vis .chev {
     transform: rotate(180deg);
  }
}
.chev {
  box-sizing: border-box;
  position: relative;
  display: block;
  width: 22px;
  height: 22px;
  border: 2px solid transparent;
  border-radius: 100px;
}
.chev::after {
  content: "";
  display: block;
  box-sizing: border-box;
  position: absolute;
  width: 10px;
  height: 10px;
  border-bottom: 2px solid #FFF;
  border-right: 2px solid #FFF;
  transform: rotate(45deg);
  left: 4px;
  top: 2px;
}


/* filter */
.locus.index.filter {
  .fil-form {
    .fil-form-item {
      display: flex;
      flex-flow: row nowrap;
      label {
        display: inline-block;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        /*width: calc(100% - 40px);*/
      }
      input {
      }
    }
  }
}
/* pagination */
.locus.index.pagination {
  position: relative;
  flex-flow: row nowrap;
  flex-grow: 0;
  align-self: start;
  width: 300px;
  max-width: 300px;
  width: 100%;
  max-width: 100%;
  overflow: scroll;
  padding-top: 30px;
  display: flex;
}
.locus.index.pagination::-webkit-scrollbar-button {
  display: block;
  background-color: rgba(255,255,255,0.8);
}
.locus.index.pagination.min {
  height: auto !important;
}
.locus.index.pagination::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
/* Track */
.locus.index.pagination::-webkit-scrollbar-track:horizontal {
  background: var(--tertiary-90);  
}
 /* Handle */
.locus.index.pagination::-webkit-scrollbar-thumb {
  background: var(--tertiary-30); 
  border-radius: 6px;
}
/* handle on hover */
.locus.index.pagination::-webkit-scrollbar-thumb:hover {
  background: var(--tertiary-10);
}
.locus.index.pagination::-webkit-scrollbar-button {
 display: block;
 background-color: var(--secondary-40);
 width: 6px;
}
.locus.index.pagination::-webkit-scrollbar-corner {
  background: transparent;
  width: 0;
  height: 0;
  opacity: 0;
}
.pagination-index-item {
  position: relative;
  display: flex;
  margin-left:4px;
  flex-flow: row nowrap;
  padding: 2px;
  
}
.pagination-index-item:after {
  content:'|';
  color: inherit;
  opacity: 0.3;
  padding-left: 4px;
}
.pagination-index-item:last-of-type:after {
  content:'';
}
.pai-anchor {
  text-decoration: none;
  color: #EEE;
  
}
.pai-anchor.on {
  color: #000;
}
.timeline-mark {
  position: absolute;
  font-size: 7pt;
}
.timeline-year {
  top:-26px;
  color: var(--secondary-50);
  font-size: 8pt;
}
.timeline-month {
  top:-12px;
  color: var(--tertiary-40);
  font-size: 7pt;
}


/* filter */
.content-item {
  &.hid1, &.hid2, &.hid3, &.hid4, &.hid5, &.hid6, &.hid7, &.hid8 {
    display: none;
  }
}
.filter-menu {
  position: relative;
  /*width: 80%;
  width: 80vw;
  width: calc( ((100vw * 0.9) - (2 * var(--locimoi-pad))) * 0.8);
  left: calc( ((100vw * 0.9) - (2 * var(--locimoi-pad))) * 0.2);*/
  width: 100%;
  display: flex;
  flex-flow: row nowrap;
  overflow-x: auto;
  flex-shrink: 0;
  .filter {
	width: 200px;
	height: 200px;
	max-height: 200px;
	flex-grow: 1;
	overflow-y: scroll;
	box-sizing: border-box;
	padding: 2px;
	&::-webkit-scrollbar {
	  width: 6px;
	  height: 6px;
	}
	&::-webkit-scrollbar-track:vertical {
	  background: var(--tertiary-90);  
	}
	&::-webkit-scrollbar-thumb {
	  background: var(--tertiary-30); 
	  border-radius: 6px;
	}
	&::-webkit-scrollbar-thumb:hover {
	  background: var(--tertiary-10);
	}
	&::-webkit-scrollbar-corner {
	  background: transparent;
	  width: 0;
	  height: 0;
	  opacity: 0;
	}
  }
}
.filter-results {
  display: flex;
  flex-flow: row wrap;
  width: 100%;
  position: relative;
  max-width: 100%;
  > .content-item {
	width: 20%;
  }
  &.vis {
	top: 0px;
	opacity: 1;
	height: auto;
  }
}

/* tile */ 
.locus.tile {
  justify-content: space-between;
  .content-item {
    margin: 10px 0;
    flex-grow: 0;
  }
}
/* content item */
.content-item {
  position: relative;
  display: flex;
  flex-flow: column nowrap;
  max-width: 100%;
  box-sizing: border-box
}
.ci-cover {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.ci-image {
  position relative;
  width: 100%;
  height: 100%;
  object-position: center;
  object-fit: cover;
}
.ci-title {
  box-sizing: border-box;
  padding: var(--ci-padding);
  font-size: var(--ci-title-font-size);
  background-color: rgba(255,255,255,0.0);
}
.ci-desc {
  box-sizing: border-box;
  /*padding: var(--ci-padding);*/
  font-size: var(--ci-desc-font-size);
}
.ci-anchor {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /*right: 0;
  bottom: 0;*/
}
.ci-content {
  padding: var(--ci-padding);
  box-sizing: border-box;
}
.image-mesh {
  position: absolute;
  top:0;
  left:0;
  width: 100%;
  height: 100%;
  opacity: 1;
  transition: all 0.6s ease-out;
  &.hidden {
     opacity: 0;
  }
}

/* index */
.index-group {
  overflow: hidden;
  .content-item, .ig-title {
    height: 0px;
    transition: all 0.4s;
    border-bottom: 0px solid rgba(222,222,222,0);
  }
  > .index-group.open {
    > .content-item {
      height: 0;
      border-bottom: 0px solid rgba(222,222,222,0);
    }
  }
  &.open {
     > .index-group.open {
       > .content-item {
         height: 40px;
       }
     }
    > .content-item, .index-group > .ig-title {
      height: 40px;
      transition: all 0.4s;
      border-bottom: 1px solid rgba(222,222,222,1);
    }
    
  }
  &.index-0 {
    > .ig-title {
      height: 40px;
    }
  }
  .ci-title {
    display: inline-block;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    transition: all 0.6s;
  }
  .ig-title {
    display: flex;
    align-items: center;
    font-family: var(--condensed-font);
    font-size: var(--ig-title-font-size);
    font-weight: 600
  }
}

/* html element */
.html-el {
  position: relative;
}
