html {
  font-family: 'Helvetica', sans-serif;
  font-weight: normal;
  font-size: 14px;
  line-height: 1.2;
  box-sizing: border-box;
  color: black;
  background: #f1f1f1;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

article, header, main, section, body {
    display: block;
}

header {
  top: 0;
  left: 0;
}

footer {
  /* position: fixed; */
  bottom: 0;
  left: 0;
  right: 0;
}

button {
  letter-spacing: inherit;
}

button:focus {
  outline: none;
}

::selection {
  background: rgba(0,0,0,.5);
  color: rgba(255,255,255,.99);
  /* -webkit-text-stroke: .5px white; */
}

.box {
  border: 1px solid grey;
  /* border-radius: 2px; */
  /* border-bottom: none; */
}

.box, .arrow_r {
  transition: all 120ms;
}

a.box  {
  text-decoration: none;
}

.semester:hover .box{
  width: 100%;
  border-color: black;
  color: black;
  cursor: pointer;
  transform: translate3d(2.5em, 0, 0);
  -webkit-transform: translate3d(2.5em, 0, 0);
}

.block:hover .box {
  border-color: black;
  color: black;
  cursor: pointer;
}

/*
    Global
    -------------------------------------- */

img, svg {
  max-width: 100%;
  display: block;
  height: auto;
  max-height: calc(88vh);
}

.mono {
  font-family: monospace;
  font-size: 1rem;
  letter-spacing: initial;
}

.black {
  color: black;
}

.white {
  background: white;
}


/*
    Scrollbar
    -------------------------------------- */

/*
::-webkit-scrollbar {
  padding-top: 2rem;
  width: 1rem;
}

::-webkit-scrollbar-thumb {
  border: 1px #fff solid;
  border-radius: 1rem;
} */

/*
    Typography
    -------------------------------------- */

.fs0-7 {font-size:0.7rem}
.fs1 {font-size:1rem}
.fs1-1 {font-size:1.1rem}
.fs1-3 {font-size:1.3rem}
.fs1-5 {font-size:1.5rem}

.fs1-8 {font-size:1.8rem}
.fs2-4 {font-size:2.4rem}
.fs3 {font-size:3rem}
.fs3-4 {font-size:3.4rem}
.fs4-8 {font-size:4.8rem}
.fs6 {font-size:6rem}
.fs6-4 {font-size:6.4rem}

.ls-5 {letter-spacing:-0.05}
.ls-4 {letter-spacing:-0.04}
.ls-3 {letter-spacing:-0.03}
.ls-2 {letter-spacing:-0.02}
.ls-1 {letter-spacing:-0.01}
.ls0 {letter-spacing:0}
.ls1 {letter-spacing:.01rem}
.ls2 {letter-spacing:.02rem}
.ls3 {letter-spacing:.03rem}
.ls4 {letter-spacing:.04rem}
.ls5 {letter-spacing:.05rem}
.ls7 {letter-spacing:.07rem}
.ls10 {letter-spacing:.1rem}

.lh0 {line-height:0}
.lh1_2 {line-height:.5}
.lh1 {line-height:1}
.lh1-5 {line-height:1.5}

.fsn {font-style:normal}
.fsi {font-style:italic}

.fwn {font-weight:normal}
.fwb {font-weight:bold}

.tal {text-align:left}
.tac {text-align:center}
.tar {text-align:right}
.taj {text-align:justify}

.toi {text-overflow:initial}
.toc {text-overflow:clip}
.toe {text-overflow:ellipsis}

.tdu {text-decoration:underline}
.tdo {text-decoration:overline}
.tdlt {text-decoration:line-through}
.tdn {text-decoration:none}

.ttu {text-transform:uppercase}
.ttl {text-transform:lowercase}
.ttc {text-transform:capitalize}
.ttn {text-transform:none}

.vabl {vertical-align:baseline}
.vat {vertical-align:top}
.vam {vertical-align:middle}
.vab {vertical-align:bottom}

.wsn {white-space:normal}
.wsnw {white-space:nowrap}
.wsp {white-space:pre}
.wsi {white-space:inherit}

.tc1 {columns:1}
.tc2 {columns:2}
.tc3 {columns:3}
.tc4 {columns:4}

.fv-sc {
  font-variant: small-caps;
  letter-spacing: .03rem;
}

.fsL {
  font-size: 1.4rem;
}

.hangline {
  margin-top: -.25rem;
}

.serif {
  font-family: 'FreeSerif', "Times", serif;
}

/*
    Resets
    -------------------------------------- */

ul, li {
  /* list-style-type: none; */
}

ul {
  padding-bottom: 1em;
}

li {
}

p {
  hyphens: none;
  padding-bottom: 1.111111em;
}

h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  font-weight: inherit;
}

sup {
  top: -0.25em;
}

sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
  background: inherit;
}

button, input, select, textarea {
    background-color: transparent;
    border-style: none;
    color: inherit;
}
button, select {
    text-transform: none;
}

[type=reset], [type=submit], button, html [type=button] {
    -webkit-appearance: button;
}
button {
    overflow: visible;
}
button, input, optgroup, select, textarea {
    font: inherit;
}
[role=button], [type=button], [type=reset], [type=submit], button {
    cursor: pointer;
}

/*
    Column Structure
    -------------------------------------- */
.cl1 {width:8.333333333%;}
.cl2 {width:16.66666667%;}
.cl3 {width:25%;}
.cl4 {width:33.3333333%;}
.cl5 {width:41.6666667%;}
.cl6 {width:50%;}
.cl7 {width:58.3333333%;}
.cl8 {width:66.6666667%;}
.cl9 {width:75%;}
.cl10 {width:83.3333333%;}
.cl11 {width:91.6666667%;}
.cl12 {width:100%;}

/*
    Viewport
    -------------------------------------- */
.vw50 {width: 50vw;}
.vw100 {width: 100vw;}

.vh25 {height:25vh;}
.vh50 {height:50vh;}
.vh75 {height:75vh;}
.vh100 {height:100vh;}

/*
    Flex Rules
    -------------------------------------- */
.x {display:flex}
.xac {align-items:center}
.xab {align-items:baseline}
.xas {align-items:stretch}
.xafs {align-items:flex-start}
.xafe {align-items:flex-end}
.xdr {flex-direction:row}
.xdrr {flex-direction:row-reverse}
.xdc {flex-direction:column}
.xdcr {flex-direction:column-reverse}
.xjc {justify-content:center}
.xjb {justify-content:space-between}
.xja {justify-content:space-around}
.xjs {justify-content:flex-start}
.xje {justify-content:flex-end}
.xw {flex-wrap:wrap}
.xwr {flex-wrap:wrap-reverse}
.xwn {flex-wrap:nowrap}
.xi {flex:initial}
.xx {flex:1}
.xa {flex:auto}
.xn {flex:none}
.xo0 {order:0}
.xo1 {order:1}
.xo2 {order:2}
.xo3 {order:3}
.xo4 {order:4}
.xot {order:-1}
.xob {order:99}

/*
    Margin Rules
    -------------------------------------- */
.m0 {margin:calc(0em * 1.111)}
.m1_2 {margin:calc(.5em * 1.111)}
.m1 {margin:calc(1em * 1.111)}
.m2 {margin:calc(2em * 1.111)}
.m3 {margin:calc(3em * 1.111)}
.m4 {margin:calc(4em * 1.111)}

.mt0 {margin-top:calc(0em * 1.111)}
.mt1_2 {margin-top:calc(.5em * 1.111)}
.mt1 {margin-top:calc(1em * 1.111)}
.mt2 {margin-top:calc(2em * 1.111)}
.mt3 {margin-top:calc(3em * 1.111)}
.mt4 {margin-top:calc(4em * 1.111)}

.mr0 {margin-right:calc(0em * 1.111)}
.mr1_2 {margin-right:calc(.5em * 1.111)}
.mr1 {margin-right:calc(1em * 1.111)}
.mr2 {margin-right:calc(2em * 1.111)}
.mr3 {margin-right:calc(3em * 1.111)}
.mr4 {margin-right:calc(4em * 1.111)}

.mb0 {margin-bottom:calc(0em * 1.111)}
.mb1_2 {margin-bottom:calc(.5em * 1.111)}
.mb1 {margin-bottom:calc(1em * 1.111)}
.mb2 {margin-bottom:calc(2em * 1.111)}
.mb3 {margin-bottom:calc(3em * 1.111)}
.mb4 {margin-bottom:calc(4em * 1.111)}

.ml0 {margin-left:calc(0em * 1.111)}
.ml1_2 {margin-left:calc(.5em * 1.111)}
.ml1 {margin-left:calc(1em * 1.111)}
.ml2 {margin-left:calc(2em * 1.111)}
.ml3 {margin-left:calc(3em * 1.111)}
.ml4 {margin-left:calc(4em * 1.111)}

.mx0 {margin-left:calc(0em * 1.111);margin-right:calc(0em * 1.111)}
.mx1_2 {margin-left:calc(.5em * 1.111);margin-right:calc(.5em * 1.111)}
.mx1 {margin-left:calc(1em * 1.111);margin-right:calc(1em * 1.111)}
.mx2 {margin-left:calc(2em * 1.111);margin-right:calc(2em * 1.111)}
.mx3 {margin-left:calc(3em * 1.111);margin-right:calc(3em * 1.111)}
.mx4 {margin-left:calc(4em * 1.111);margin-right:calc(4em * 1.111)}

.my0 {margin-top:calc(0em * 1.111);margin-bottom:calc(0em * 1.111)}
.my1_2 {margin-top:calc(.5em * 1.111);margin-bottom:calc(.5em * 1.111)}
.my1 {margin-top:calc(1em * 1.111);margin-bottom:calc(1em * 1.111)}
.my2 {margin-top:calc(2em * 1.111);margin-bottom:calc(2em * 1.111)}
.my3 {margin-top:calc(3em * 1.111);margin-bottom:calc(3em * 1.111)}
.my4 {margin-top:calc(4em * 1.111);margin-bottom:calc(4em * 1.111)}


/*
    Padding Rules
    -------------------------------------- */
.p0 {padding:calc(0em * 1.111)}
.p1_2 {padding:calc(.5em * 1.111)}
.p1 {padding:calc(1em * 1.111)}
.p2 {padding:calc(2em * 1.111)}
.p3 {padding:calc(3em * 1.111)}
.p4 {padding:calc(4em * 1.111)}

.pt0 {padding-top:calc(0em * 1.111)}
.pt1_2 {padding-top:calc(.5em * 1.111)}
.pt1 {padding-top:calc(1em * 1.111)}
.pt2 {padding-top:calc(2em * 1.111)}
.pt3 {padding-top:calc(3em * 1.111)}
.pt4 {padding-top:calc(4em * 1.111)}

.pr0 {padding-right:calc(0em * 1.111)}
.pr1_2 {padding-right:calc(.5em * 1.111)}
.pr1 {padding-right:calc(1em * 1.111)}
.pr2 {padding-right:calc(2em * 1.111)}
.pr3 {padding-right:calc(3em * 1.111)}
.pr4 {padding-right:calc(4em * 1.111)}
.pr36 {padding-right:36px}

.pb0 {padding-bottom:calc(0em * 1.111)}
.pb1_2 {padding-bottom:calc(.5em * 1.111)}
.pb1 {padding-bottom:calc(1em * 1.111)}
.pb2 {padding-bottom:calc(2em * 1.111)}
.pb3 {padding-bottom:calc(3em * 1.111)}
.pb4 {padding-bottom:calc(4em * 1.111)}

.pl0 {padding-left:calc(0em * 1.111)}
.pl1_2 {padding-left:calc(.5em * 1.111)}
.pl1 {padding-left:calc(1em * 1.111)}
.pl2 {padding-left:calc(2em * 1.111)}
.pl3 {padding-left:calc(3em * 1.111)}
.pl4 {padding-left:calc(4em * 1.111)}

.px0 {padding-left:calc(0em * 1.111);padding-right:calc(0em * 1.111)}
.px1_2 {padding-left:calc(.5em * 1.111);padding-right:calc(.5em * 1.111)}
.px1 {padding-left:calc(1em * 1.111);padding-right:calc(1em * 1.111)}
.px2 {padding-left:calc(2em * 1.111);padding-right:calc(2em * 1.111)}
.px3 {padding-left:calc(3em * 1.111);padding-right:calc(3em * 1.111)}
.px4 {padding-left:calc(4em * 1.111);padding-right:calc(4em * 1.111)}
.px5 {padding-left:calc(5em * 1.111);padding-right:calc(5em * 1.111)}

.py0 {padding-top:calc(0em * 1.111);padding-bottom:calc(0em * 1.111)}
.py1_2 {padding-top:calc(.5em * 1.111);padding-bottom:calc(.5em * 1.111)}
.py1 {padding-top:calc(1em * 1.111);padding-bottom:calc(1em * 1.111)}
.py2 {padding-top:calc(2em * 1.111);padding-bottom:calc(2em * 1.111)}
.py3 {padding-top:calc(3em * 1.111);padding-bottom:calc(3em * 1.111)}
.py4 {padding-top:calc(4em * 1.111);padding-bottom:calc(4em * 1.111)}

/*
    Border Rules
    -------------------------------------- */

.b1w {border: 1px solid white}
.b1g {border: 1px solid grey}
.b1b {border: 1px solid black}
.b1t {border: 1px solid transparent}

.bb1w {border-bottom: 1px solid white}

.bt1w {border-top: 1px solid white}

.brd-t1 {
  border-top: 1px solid black;
}

.brd-b1 {
  border-bottom: 1px solid black;
  margin-bottom: 2rem;
}

.brd-1 {
  border: 1px solid black;
}

.bt-1g {
  border-top: 1px solid grey;
}

/*
    Positioning
    -------------------------------------- */

.psa {position:absolute}
.psr {position:relative}
.psf {position:fixed}
.pss {position:static}

.t0 {top:0}
.r0 {right:0}
.b0 {bottom:0}
.l0 {left:0}

.z0 {z-index:0}
.z1 {z-index:1}
.z2 {z-index:2}
.z3 {z-index:3}
.z4 {z-index:4}

/*
    Opacity
    -------------------------------------- */

.op0 {opacity:0}
.op25 {opacity:0.25}
.op50 {opacity:0.5}
.op75 {opacity:0.75}
.op100 {opacity:1}

/*
    Lazy Load
    -------------------------------------- */

.lazyload,
.lazyloading {
	opacity: 0;
  min-height: calc(100vh);
}

.lazyloaded {
	opacity: 1;
	transition: all 120ms;
}

/*
    Tags
    -------------------------------------- */

/* .tags div {
  margin-right: 4px;
} */

.tags h1 {
  /* font-family: monospace; */
  font-size: .6667em;
  margin-bottom: 3px;
}

.tags a.tag {
  display: block;
  float: left;
  text-decoration: none;
  background: rgb(3, 172, 148);
  /* border-radius: 2px; */
  padding: 5px 7px;
  font-size: .6667em;
  margin-bottom: 4px;
  margin-right: 4px;
  text-align: center;
  border: 1px solid transparent;
}

.tags a.tag:hover {
  font-style: italic;
}

.tags a.sem {
  background: cyan;
  color: black;
}

.tags a.cat {
  background: rgb(195, 240, 246);
}

.tags a.ser {
  background: rgb(250, 220, 20);
}

.tags a.home {
  background: initial;
  border: 1px solid black;
  border-radius: 0;
}



/*
    Sort Later
    -------------------------------------- */
.comma:after {
  content: ",";
  white-space: pre;
  text-decoration: none!important;
}

.comma:last-of-type:after {
  content: "";
  white-space: pre;
}

.comma:nth-last-of-type(2):after {
  content: "";
  white-space: pre;
  text-decoration: none!important;
}

a {
  color: inherit;
  cursor: pointer;
  text-decoration: underline;
  text-decoration-skip: ink;
}

nav a {
  text-decoration: none;
}

nav.text a.active:before {
  content: "";
}

nav.text a {
  text-transform: uppercase;
  text-decoration: underline;
  display: initial;
}

nav.text a:hover {
  text-decoration: none;
}

a:hover {
  color: black;
  text-decoration: underline;
}

a.active {
  text-decoration: underline;
}

.title a {
  text-decoration: none;
}

.none {
  display: none;
}

img {
  /* cursor: pointer; */
}

.noPoint {
  pointer-events: none;
}

.desc p, .text p {
  padding-bottom: calc(1em * 1.111);
}

.desc p:last-of-type, .text p:last-of-type  {
  /* padding-bottom: 0; */
}

figcaption {
  text-align: left;
  font-size: 1rem;
  padding-top: 4px;
}

.text figcaption p {
  padding-bottom: 0;
}

figure {
  margin-bottom: calc(.6667em * 1.111111);
}

.overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  padding: .25rem;
  background: rgba(255,255,255,.925);
  justify-content: center;
  align-items: center;
  display: none;
}

.sidebar {
  width: 100%;
  position: fixed;
  top: 0;
  bottom: 0;
  right: 100%;
  z-index: 100;
  transform: translate3d(0,0,0);
  -webkit-transform: translate3d(0,0,0);
  overflow-y: hidden;
  background: rgba(255,0,0,.0);
}


#slideWrap.show, .slideRight nav {
/* body.slideRight { */
  transform: translate3d(600px,0,0);
  -webkit-transform: translate3d(600px,0,0);
  /* filter: invert(.66); */
  /* background: white; */
  /* filter: blur(.25em)invert(.5); */
  opacity: .25;
}

.noScroll {
  overflow: hidden;
}

/* #slideWrap, .sidebar, nav {
  transition: all 200ms;
} */

.sidebar.show {
  transform: translate3d(100%, 0, 0);
  -webkit-transform: translate3d(100%, 0, 0);
  cursor: pointer;
  pointer-events: auto;
}


.sidebarInner {
  cursor: default;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  max-width: 600px;
  min-height: 100%;
  max-height: 100%;
  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;
  border-right: 1px solid black;
  z-index: 4;
  /* background: rgba(100,100,100,1); */
}

.overlay.show {
  display: flex;
  flex-wrap: wrap;
  z-index: 5;
  cursor: default;
}

.overlay a, .overlay figcaption, .overlay button {

}

.overlay img {
  max-height: calc(100vh - 1.5rem);
  max-width: calc(100vw - 1rem);
  padding: 2rem;
  width: 100%;
  /* padding-right: calc(2rem + 40px); */
  cursor: default;
  object-fit:contain;
}

.overlay .closeButton {
  font-weight: normal;
  cursor: pointer;
  position: absolute;
  top: calc(.5rem * 1.111);
  right: calc(.5rem * 1.111);
}

.overlay figcaption {
  width: 100%;
  position: absolute;
  left: 0;
  bottom: 0;
  text-align: center;
}

.desc figcaption {
  font-size: 1rem;
  margin-bottom: 1em;
}
.documentation img {
  margin-right: 5px;
}

main {
  margin-top: 3em;
}
/*
body {
  width: 100%;
  height: 100%;
}

.slideout-menu {
  position: fixed;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  z-index: 0;
  width: 600px;
  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;
  display: none;
}

.slideout-panel {
  position: relative;
  z-index: 1;
  will-change: transform;
}

.slideout-open,
.slideout-open body,
.slideout-open .slideout-panel {
  overflow: hidden;
}

.slideout-open .slideout-menu {
  display: block;
} */


/*
    Media Queries
    -------------------------------------- */


@media (min-width: 0) and (max-width : 700px) {
  .cl1, .cl2, .cl3, .cl4, .cl5, .cl6, .cl7, .cl8, .cl9, .cl10, .cl11, .cl12 {
    width: 100%;
  }


}

@media (max-width : 1254px) {

}

@media (min-width : 2200px) {
  body {
  }

}
