/*
    Fonts
    -------------------------------------- */
@font-face {
    font-family: 'FreeSans';
    src: url('FreeSans.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'FreeSans';
    src: url('FreeSansOblique.otf') format('opentype');
    font-weight: normal;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'FreeSans';
    src: url('FreeSansBold.otf') format('opentype');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

html {
  font-family: 'FreeSans', 'Helvetica', sans-serif;
  font-weight: normal;
  font-size: 21px;
  line-height: 1.25;
  box-sizing: border-box;
  /* letter-spacing: .02em;
  word-spacing: -0.07rem; */
  letter-spacing: -.01em;
  word-spacing: -0.05rem;
  color: black;
  background: rgb(255,255,255);
}

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

p {
  margin-bottom: 1.111em
}

a {
	color: inherit;
}

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

button {
  letter-spacing: inherit;
}

button:focus {
  outline: none;
}

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

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

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

.black {
  color: black;
}

.white {
  background: white;
}

/*
    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}

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

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

ul {
  padding-bottom: calc(1em * 1.1111);
}

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}
.xass {align-self: stretch; }
.xasfs {align-self: flex-start; }
.xasfe { align-self: 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 {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 {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 {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)}

.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 lightgrey}
.b1b {border: 1px solid black}
.b1t {border: 1px solid transparent}

.bb1w {border-bottom: 1px solid white}
.bb1g {border-bottom: 1px solid lightgrey}
.bb1b {border-bottom: 1px solid black}
.bb1t {border-bottom: 1px solid transparent}

.bt1w {border-top: 1px solid white}
.bt1g {border-top: 1px solid lightgrey}
.bt1b {border-top: 1px solid black}

.bl1w {border-left: 1px solid white;}
.bl1g {border-left: 1px solid lightgrey;}
.bl1b {border-left: 1px solid black;}
.bl1t {border-left: 1px solid transparent;}

.br1w {border-right: 1px solid white}
.br1g {border-right: 1px solid lightgrey}
.br1b {border-right: 1px solid black}
.br1t {border-right: 1px solid transparent}

.bx1w {border-left: 1px solid white; border-right: 1px solid white}
.bx1g {border-left: 1px solid lightgrey; border-right: 1px solid lightgrey}
.bx1b {border-left: 1px solid black; border-right: 1px solid black}
.bx1t {border-left: 1px solid transparent; border-right: 1px solid transparent}

.by1w {border-top: 1px solid white; border-bottom: 1px solid white}
.by1g {border-top: 1px solid lightgrey; border-bottom: 1px solid lightgrey}
.by1b {border-top: 1px solid black; border-bottom: 1px solid black}
.by1t {border-top: 1px solid transparent; border-bottom: 1px solid transparent}


/*
    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}

.oh {overflow:hidden}
.os {overflow:scroll}
.ov {overflow:visible}
.oxh {overflow-x:hidden}
.oxs {overflow-x:scroll}
.oxv {overflow-x:visible}
.oyh {overflow-y:hidden}
.oys {overflow-y:scroll; -webkit-overflow-scrolling: touch}
.oyv {overflow-y:visible}

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

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