/* tooltip arrows from: http://www.cssarrowplease.com/ */

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
    border: 0px none;
    margin: 0px;
    padding: 0px;
    vertical-align: baseline;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
    display: block;
}

body, html {
    color: #353535;
    font-family: "Lato", sans-serif;
    font-size: 16px;
    /*line-height: 16px;*/
    margin: 0px;
    padding: 0px;
    text-align: left;
}

.main {
    max-width: 1100px;
    margin: 0 auto;
    padding-top: 51px;
}

text,
input {
    font-family: "Lato", sans-serif;
}

*, *::before, *::after {
    box-sizing: border-box;
}

a {
    color:#1696d2;
    text-decoration: none;
    cursor: pointer;
}

a:hover {
    color: #000;
    text-decoration: none;
}

p {
    margin-bottom: 24px;
    line-height: 1.56;
    /*max-width: 726px;*/
}

h1 {
    font-size: 40px;
    font-weight: bold;
    margin-top: 100px;
    text-align: center;
}

h2 {
    font-size: 20px;
    text-align: center;
    font-weight: normal;
    line-height: 40px;
    margin-bottom: 40px;
}

hr {
    border: 0.5px solid #d2d2d2;
}

.hidden {
    display: none;
}

.invisible {
    visibility: hidden;
}

#isMobile,
#isPhoneSm {
    display: none;
}

@media screen and (max-width: 1099px) {
    .main {
        padding-left: 20px;
        padding-right: 20px;
    }
}

@media screen and (max-width: 659px) {
    #isMobile {
        display: block;
    }
}

@media screen and (max-width: 499px) {
    #isPhoneSm {
        display: block;
    }
}

@media screen and (max-width: 428px) {
    h1 {
        font-size: 30px;
        margin-bottom: 20px;
    }

    h2 {
        font-size: 16px;
        line-height: 20px;
    }
}

/*********** STRUCTURE ***********/
.content {
    max-width: 726px;
    margin: 0 auto;
    /*padding: 0px 30px;*/

}

.content.intro {
    margin-bottom: 15vh;
}

.date {
    text-align: center;
    font-size: 14px;
    padding: 20px 0 60px;
}

.afterScroll {
    padding-top: 100px;
}

@media screen and (max-width: 1099px) {
    .afterScroll {
        padding-top: 0;
    }

    .content.intro {
        margin-bottom: 0;
    }
}


/********** SCROLLYTELLING STYLES ************/
#graphic {
    width: 100%;
    position: relative;
    /*padding-top: 51px;*/
}

#sections {
    position: relative;
    width: 100%;
    /*top: 0;*/
}

.step {
    margin-left: 720px;
    margin-bottom: 10vh;
    padding: 0;
    min-height: 80vh;
    opacity: 50%;
}

.step.inView {
    opacity: 1;
}

#vis {
    position: absolute;
    top: 0;
    height: calc(100vh - 50px);
    /*max-width: 626px;*/
    /*border: 1px solid #d2d2d2;*/
    /*background-color: #d2d2d2;*/
}

#vis.sticky {
    position: fixed;
    top: 51px;
}

#vis.stickToBottom {
    /*position: absolute;*/
    bottom: 0;
    top: auto;
}

#vis svg {
    /*top: 50%;*/
    /*position: relative;*/
    /*transform: translateY(-50%);*/
    /*border: 1px dashed #d2d2d2;*/
}

#visInnerDiv {
    position: absolute;
    top: 50%;
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
}

#chart {
    padding-right: 100px;
}

.personaTextHighlight {
    background-color: rgba(253, 191, 17, 0.7);
    padding: 1px 4px;
    border-radius: 4px;
    cursor: pointer;
}

.personaTextHighlight:hover {
    background-color: #fdbf11;
}

.stipendTextHighlight {
    background-color: rgba(236, 0, 139, 0.3);
    padding: 1px 4px;
    border-radius: 4px;
    cursor: pointer;
}

.stipendTextHighlight:hover {
    background-color: #ec008b;
    color: #fff;
}

@media screen and (max-width: 1099px) {
    #vis {
        width: 100%;
        z-index: -5;
    }

    #vis.sticky {
        width: calc(100% - 58px);
    }

    .step {
        margin: 0 auto;
        margin-bottom: 90vh;
        max-width: 500px;
    }

    .step:first-child {
        min-height: 40vh;
    }

    .step:last-child {
        margin-bottom: 10vh;
        height: 140vh;
    }

    .scrollyTextContainer {
        background: rgba(245, 245, 245, 0.95);
        padding: 40px 15px;
    }

    .step p {
        margin-bottom: 0;
        padding: 10px 20px;
    }
}

@media screen and (min-width: 700px) and (max-width: 1099px) {
    #visInnerDiv {
        left: 50%;
        transform: translate(-50%, -50%);
    }
}


/********** CHART STYLES ***************/
.chartTitle {
    text-align: center;
    font-weight: bold;
    font-size: 22px;
    padding-top: 5px;
    height: 67px;
    max-width: 600px;
}

.student {
    fill: #1696d2;
    stroke: none;
    cursor: pointer;
}

.columnLabel {
    text-anchor: middle;
    font-size: 14px;
    font-weight: bold;
    fill: #000;
}

.catLabel {
    font-size: 14px;
    text-anchor: middle;
    alignment-baseline: middle;
    fill: #000;
}

.dotLabel {
    font-size: 13px;
    text-anchor: middle;
    alignment-baseline: middle;
    fill: #1696d2;
}

.dividerLine {
    stroke-width: 1px;
    stroke: #d2d2d2;
}

.noFreeCollege {
    fill: #9d9d9d;
}

.hasStipend {
    fill: #ec008b;
}

.highlighted1 {
    stroke: #000;
    stroke-width: 3px;
}

.highlighted2 {
    stroke: #fdbf11;
    stroke-width: 3px;
}

@media screen and (max-width: 1099px) {
    #chart {
        padding-right: 0;
    }

    .student {
        pointer-events: none;
    }
}

@media screen and (max-width: 659px) {
    .chartTitle {
        font-size: 16px;
        height: 50px;
    }

    .catLabel,
    .columnLabel {
        font-size: 12px;
    }

    .dotLabel {
        display: none;
    }
}

@media screen and (max-width: 375px) {
    .chartTitle {
        height: 72px;
    }
}


/********** ANIMATION STYLES ***********/

/* Source: bounce.js library */

.animation-target {
  -webkit-animation: bounce 500ms linear infinite both;
  animation: bounce 500ms linear infinite both;
}

/* Generated with Bounce.js. Edit at http://bouncejs.com#%7Bl%3A1%2Cs%3A%5B%7BT%3A%22t%22%2Ce%3A%22s%22%2Cd%3A500%2CD%3A0%2Cf%3A%7Bx%3A0%2Cy%3A0%7D%2Ct%3A%7Bx%3A0%2Cy%3A75%7D%2Cs%3A3%2Cb%3A1%7D%5D%7D */

@-webkit-keyframes bounce {
  0% { -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
  4% { -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 5.778, 0, 1); transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 5.778, 0, 1); }
  8.01% { -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 7.04, 0, 1); transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 7.04, 0, 1); }
  31.03% { -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1.417, 0, 1); transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1.417, 0, 1); }
  54.05% { -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0.103, 0, 1); transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0.103, 0, 1); }
  100% { -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
}

@keyframes bounce {
  0% { -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
  4% { -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 5.778, 0, 1); transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 5.778, 0, 1); }
  8.01% { -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 7.04, 0, 1); transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 7.04, 0, 1); }
  31.03% { -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1.417, 0, 1); transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1.417, 0, 1); }
  54.05% { -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0.103, 0, 1); transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0.103, 0, 1); }
  100% { -webkit-transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); }
}


/********** LEGEND STYLES **************/
.legend {
    width: 100%;
    height: 65px;
    padding: 10px 20px;
}

.legend p {
    font-size: 14px;
    font-weight: bold;
    margin-bottom: 5px;
    color: #000;
}

.legendEntry {
    display: inline-block;
    /*width: 49%;*/
    margin-right: 38px;
    height: 18px;
}

.legendText {
    font-family: Lato;
    font-size: 14px;
    line-height: 14px;
    float: left;
    display: inline-block;
    color: #000;
    /*width: calc(100% - 20px);*/
}

.legendSquare {
    /*display: inline-block;*/
    height: 0;
    width: 0;
    margin-right: 10px;
    float: left;
    border-width: 7px;
    border-style: solid;
    border-color: #fff;
    pointer-events: none;
}

.legendSquare.freeCollege {
    border-color: #1696d2;
}

.legendSquare.noFreeCollege {
    border-color: #9d9d9d;
}

.legendSquare.hasStipend {
    border-color: #ec008b;
}

@media screen and (max-width: 659px) {
    .legend {
        padding: 0;
        height: auto;
    }
}

@media screen and (max-width: 399px) {
    .legend p,
    .legendText {
        font-size: 12px;
    }
}


/*********** PERSONA STYLES ***********/
.personaDiv {
    overflow-y: auto;
    margin-bottom: 40px;
}

.persona.image {
    display: inline-block;
    float: left;
    /*width: 71px;*/
    /*height: 108px;*/
    /*background-color: #d2d2d2;*/
}

.persona.image img {
    width: 95px;
}

.persona.bio {
    display: inline-block;
    float: left;
    width: calc(100% - 95px);
    padding-left: 10px;
}

.persona.bio p {
    margin-bottom: 0;
}

.persona.topRow {
    padding-top: 15px;
}

.personaDot {
    fill: #1696d2;
}

.personaDot.noFreeCollege {
    fill: #9d9d9d;
}
.persona.name {
    color: #000;
    font-size: 22px;
    font-weight: bold;
    display: inline-block;
    vertical-align: top;
    padding-left: 8px;
}

@media screen and (max-width: 659px) {
    .persona.image {
        float: none;
        width: 100%;
    }

    .persona.image img {
        display: block;
        margin: 0 auto;
        width: 100px;
    }

    .persona.bio {
        float: none;
        width: 100%;
        padding-left: 0;
    }

    .persona.topRow {
        padding-left: 20px;
    }
}


/*********** TOOLTIP STYLES ************/
.tooltip {
    background-color: #fff;
    border: 1px solid #d2d2d2;
    max-width: 210px;
    position: absolute;
    top: 0;
    left: 0;
    padding: 15px;
    box-shadow: 3px 3px 10px #d2d2d2;
}

.tooltip .studentPic img {
    width: 150px;
    display: block;
    margin: 0 auto;
}

.tooltip .studentName {
    color: #000;
    font-weight: bold;
    font-size: 18px;
    margin: 5px 0;
}

.tooltip p {
    font-size: 14px;
    color: #000;
    margin-bottom: 5px;
}


/*********** FOOTER ************/

footer {
    width: 100%;
    padding-bottom: 25px;
    padding-top: 25px;
}

footer h4 {
    font-size: 34px;
    font-weight: 300;
    margin: 100px 0 25px 0;
    text-transform: uppercase;
}

footer p {
    font-size: 16px;
    margin-bottom: 12px;
}

.credits {
    font-size: 14px;
    margin-top: 1em;
    margin-bottom: 16px;
}

.job {
    margin-bottom: 4px;
    margin-top: 12px;
    text-transform: uppercase;
    font-weight: bold;
}

.urbanStatement {
    font-style: italic;
    margin-bottom: 40px;
}

.githubLink {
    margin-top: 24px;
}

@media screen and (max-width: 1099px) {
    footer {
        padding-left: 20px;
        padding-right: 36px;
    }

    footer h4 {
        font-size: 26px;
    }

    .job {
        font-size: 15px;
    }
}

@media screen and (max-width: 428px) {
    footer p {
        font-size: 14px;
    }

    .job {
        font-size: 13px;
    }
}