/*
FONTS
-------------------------------------- */

/* @font-face {
    font-family: 'Name';
    src: url('fonts/path-to.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
} */


/*
    ROOT
    -------------------------------------- */

:root {
    --lheight: 1.25;
    --font-size-xl: 40px;
    --font-size-l: 21px;
    --font-size-m: 16px;
    --font-size-s: 13.5px;
    --background: 'white';
    --foreground: 'grey';
}

/*
    MAIN CSS
    -------------------------------------- */
    
html {
    font-family: 'Times New Romain', 'Times', serif;
    font-weight: normal;
    font-size: var(--font-size-m);
    line-height: var(--lheight);
    color: black;
    -moz-osx-font-smoothing: grayscale;
    background-color: rgba(255,255,255,1);
}

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

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);
}


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

.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}

.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}


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

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

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: calc((1/12) * 100%);}
.cl2 {width: calc((2/12) * 100%);}
.cl3 {width: calc((3/12) * 100%);}
.cl4 {width: calc((4/12) * 100%);}
.cl5 {width: calc((5/12) * 100%);}
.cl6 {width: calc((6/12) * 100%);}
.cl7 {width: calc((7/12) * 100%);}
.cl8 {width: calc((8/12) * 100%);}
.cl9 {width: calc((9/12) * 100%);}
.cl10 {width: calc((10/12) * 100%);}
.cl11 {width: calc((11/12) * 100%);}
.cl12 {width: calc((12/12) * 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; }
.xasc {align-self: center; }
.xasfs {align-self: flex-start; }
.xasfe { align-self: flex-end; }
.xdr {flex-direction:row}
.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}

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

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

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

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

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

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

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


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

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

.pr0 {padding-right:calc(0 * var(--lheight))}
.pr1_2 {padding-right:calc(.5em * var(--lheight))}
.pr1 {padding-right:calc(1em * var(--lheight))}
.pr2 {padding-right:calc(2em * var(--lheight))}
.pr3 {padding-right:calc(3em * var(--lheight))}
.pr4 {padding-right:calc(4em * var(--lheight))}
.pr5 {padding-right:calc(5em * var(--lheight))}

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

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

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

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


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

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

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


/*
    
    -------------------------------------- */

