/* Global style */

/* Elements */
*:focus {
    outline: none;
}
a {
    color: inherit;
    cursor: pointer;
    text-decoration: none;
}
    a.blueLink {
        padding: 0;
    }
    article a {
        background-color: white;
        border: 2px solid lightgrey;
        border-radius: 4px;
        border-style: outset;
        margin: 5px 0;
        padding: 0 5px;
        white-space: nowrap;
    }
    article button, .articleButton {
        margin: 0;
        padding: 0 5px;
    }
        article a:active {
            color: #CC5430;
            border-style: inset;
        }
        article a:hover {
            background-color: lightgrey;
        }
    article li {
        margin-bottom: 10px;
    }
    article p {
        margin-left: 0;
        margin-right: 0;
    }
        article p:first-child {
            margin-top: 0;
        }
        article p:last-child {
            margin-bottom: 100px;
        }
abbr {
    font-variant: normal;
    text-decoration: underline;
    text-decoration-color: #1E4D2B;
    text-decoration-style: dotted;
    white-space: nowrap;
}
button.blueLink {
    text-align: left;
}
em {
    font-style: normal;
    text-decoration: underline;
}
figure {
    margin: 0;
    text-align: center;
    padding: 10px;
}
    figure img {
        background-color: white;
        border: 3px outset #1E4D2B;
        height: auto;
        margin: 10px auto;
        max-width: calc(100% - 20px);
        min-width: 0;
        padding: 10px;
    }
    .subfigure {
        flex: 2 0 40%;
        margin: 0;
        min-width: 260px;
    }
    .subfigure img {
        margin: 0;
    }
    .subfigure figcaption {
        max-width: 100%;
    }

figcaption {
    flex: 0 1 auto;
    font-size: calc(12px + 0.5vw);
    line-height: 110%;
    text-align: left;
}

article h5, article h6 {
    margin: 0;
    text-align: center;
}
body {
    background-color: black;
    font-family: 'prox-regular', Helvetica, sans-serif;
    height: 100%;
    margin: 0;
    min-height: 300px;
    min-width: 300px;
    padding: 0;
    width: 100%;
}
button, .articleButton {
    border-radius: 4px;
    font-family: 'prox-regular', Helvetica, sans-serif;
    font-size: inherit;
    background-color: white;
}
    
    button:active, .articleButton:active {
        color: #CC5430
    }
    button:hover, .articleButton:hover {
        background-color: lightgrey;
    }
footer {
    align-items: center;
    background: linear-gradient(#C8C372, #ECC530);
    bottom: 0;
    justify-content: space-between;
    min-height: 50px;
    overflow: hidden;
    padding: 5px;
    position: -webkit-sticky;
    position: sticky;
    width: calc(100% - 10px);
    z-index: -1;
}
header {
    text-align: center;
    width: 100%;
}
header h1, header h2, header h3 {
    margin: 0;
}
header h1 {
    font-size: calc(16px + 2vw);
}
html {
    height: 100%;
    margin:0;
    padding:0;
    width: 100%;
}
iframe {

}
li ol {
    list-style-type: upper-alpha;
}
main {
    background-color: #C8C372;
    border-bottom: 2px ridge #1E4D2B;
    flex: 1 1 100%;
    font-size: calc(12px + 0.8vw);
    padding: 10px;
    min-height: 0;
    min-width: 0;
    width: calc(100% - 20px);
}
p {
    margin: 10px;
    text-indent: 40px;
}
strong {
    color: darkviolet;
    font-weight: normal;
}
table {
    border-collapse: collapse;
    margin-bottom: 10px;
    overflow-x: auto;
}

thead tr {
    background-color: #105456;
    color: #12A4B6;
    font-weight: bold;
    text-align: center;
}

tbody tr:nth-child(even) {
    background-color: whitesmoke;
}

tbody tr:nth-child(odd) {
    background-color: lightblue;
}

tbody td:first-child {
    width: 150px;
}

tbody tr td:first-child {
    background-color: #C9D845;
    font-weight: bold;
    text-align: right;
}

tbody td {
    border: 1px solid black;
    padding: 5px;
}

/* Element classes */
.arrowPath {
    fill: #1E4D2B;
    fill-opacity: 1;
    fill-rule: nonzero;
    paint-order: stroke;
    stroke: #ECC530;
    stroke-linecap: round;
    stroke-linejoin: bevel;
    stroke-width: 50;
}
.arrowSVG {
    height: 100%;
    width: 100%;
}
.articleArrow {
    flex: 1 1 10%;
    height: calc(100% + 4px);
    max-width: 50px;
}
    .articleArrow button {
        background-color: transparent;
        border: 3px solid transparent;
        border-radius: 0;
        height: 100%;
        padding: 0;
        position: relative;
        width: 100%;
    }

        .articleArrow button:active {
            background-color: #D9782D;
        }
.bookend {
    font-family: 'factoria-book';
    font-weight: normal;
}
.bookend hr {
    border: 1px #105456 ridge;
    margin: 0 auto;
    width: 50%;
}
.handle {
    cursor: move;
}
.pgTitle {
    font-weight: normal;
}

/* Element IDs */
#alert {
    background-color: hsla(0,0%,50%,0.5);
    height: 100%;
    position: fixed;
    width: 100%;
    z-index: 100000;
}
#alertBox {
    background-color: white;
    border: 2px solid black;
    height: 50vh;
    margin: 25vh 10vw;
    padding: 10px;
    position: absolute;
    width: 80vw;
}
#appdiv0 {
    flex: 1 0 100%;
}
#appdiv1 {
    flex: 0 1 100%;
    border-left: 2px ridge #1E4D2B;
    border-right: 2px ridge #1E4D2B;
    min-height: 200px;
}
#appdiv2 {
    flex: 0 1 100%;
    border-right: 2px ridge #1E4D2B;
    min-height: 200px;
}
#appendix {
    height: 0;
    margin: 0;
    overflow: hidden;
    position: absolute;
    padding: 0;
    visibility: hidden;
    width: 0;
}
#articleContainer {
    width: 100%;
}
#articleSlider {
    align-self: center;
    flex: 1 0 auto;
    margin: 16px auto 8px auto;
    max-width: 800px;
    width: 80%;
}
    #articleSlider input {
        margin: 0;
        width: 100%;
    }
#bmb figure {
    align-items: center;
    color: #1E4D2B;
}
#bmb h3 {
    display: inline;
    font-family: 'prox-light';
    font-size: 15px;
    margin-left: 5px;
    text-align: left;
}
#bmb svg {
    height: 50px;
    width: 50px;
}
    #bmb svg path {
        fill: #1E4D2B;
        fill-opacity: 1;
        fill-rule: nonzero;
        paint-order: stroke;
        stroke: black;
        stroke-linecap: round;
        stroke-linejoin: bevel;
        stroke-width: 0;
    }
#carousel {
    align-items: stretch;
    flex: 0 1 100%;
}
#content {
    max-width: 100%;
    padding: 0;
    width: 100%;
}
#credit {
    padding-bottom: 5px;
}
#license {
    flex: 0 0 200px;
    line-height: 90%;
    margin: 10px 10px 0 10px;
    text-align: center;
}
#links {
    flex: 0 1 auto;
    text-align: left;
    margin-right: 20px;
}
#links li {
    list-style-type: none;
    margin: 0 10px 0 -30px;
    text-decoration: none; 
}
#links ul {
    margin: 0;
}
#bmb, #natsci, #nsf {
    flex: 0 1 auto;
    margin: 10px;
}
#nextButton {
    padding-right: 5px;
}
#nextPageLink {
    flex: 1 0 auto;
    font-size: 2em;
    margin: 0 10px;
    order: 3;
}
#natsci img, #nsf img {
    height: 100%;
    max-height: 50px;
}
#pageHead {
    align-content: center;
    align-items: center;
    justify-content: space-between;
    margin: 0;
}
#centerHeader {
    flex: 2 1 100%;
    margin: 0 auto;
    order: 2;
    text-align: center;
}
.pgTitle, .subTitle {
    font-size: calc(18px + 1.2vw);
}
#prevButton {
    padding-left: 5px;
}
#prevPageLink {
    flex: 1 0 auto;
    font-size: 2em;
    margin: 0 10px;
    order: 1;
}
#quizDiv {
    border-top: 2px ridge #1E4D2B;
}
#selectDiv {
    border-bottom: 2px ridge #1E4D2B;
    justify-content: space-around;
}

    #selectDiv > div {
        border: 2px solid transparent;
        margin: 10px;
    }

#shadowBox {
    background-color: white;
    border: 2px solid black;
    overflow: auto;
    padding: 10px;
    position: absolute;
    resize: both;
    width: 250px;
    z-index: 100000;
}
#shadowBoxMoveHandle {
    height: 4vh;
    margin: -10px;
    position: absolute;
    width: 4vh;
}
#shadowBoxClose {
    font-size: 30px;
    position: absolute;
    right: 0;
    top: 0;
}
#shadowBoxResizeHandle {
    background-color: transparent;
    bottom: 0;
    cursor: nw-resize;
    height: 10px;
    pointer-events: none;
    position: absolute;
    right: 0;
    width: 10px;
}
#shadowBoxContent {
	height: 100%;
}
#shadowBoxContent>iframe{
	border: none;
	height: 100%;
	width: 100%;
}

#siteTitle {
    background: #ECC530;
    margin: 0 auto;
    text-align: center;
}
    #siteTitle h1 {
        font-size: calc(14px + 1vw);
    }
    #siteTitle h2 {
        font-size: calc(14px + 0.5vw);
    }
    #siteTitle h3 {
        font-size: calc(12px + 0.5vw);
    }
#sliderTicks {
    justify-content: space-between;
}
#splitscreen {
    background-color: white;
    border-top: 2px ridge #1E4D2B;
    border-bottom: 2px ridge #1E4D2B;
    flex: 0 1 100%;
    width: 100%;
}
#tableOfContents {
    z-index: 0;
}
#tutorials {
    align-items: stretch;
    background: linear-gradient(#1E4D2B, #C8C372);
    border-bottom: 1px solid #1E4D2B;
    flex: 0 1 40%;
    min-height: 0;
    min-width: 0;
    width: 100%;
}
    #tutorials article {
        background-color: #c8c372;
        display: inline-block;
        left: 0;
        line-height: 150%;
        max-width: calc(100%-20px);
        overflow-x: hidden;
        overflow-y: auto;
        padding: 10px;
        position: absolute;
        text-align: left;
        top: 0;
        word-break: break-word;
        z-index: 1000;
    }
#tutorialBox {
    align-items: flex-start;
    background-color: #C8C372;
    border: 3px ridge #1E4D2B;
    color: black;
    flex: 0 1 100%;
    height: 100%;
    margin: 0;
    overflow: hidden;
    position: relative;
}
#viewer {
    background-color: white;
    flex: 0 1 60%;
    position: relative;
}

#wrapper {
    background: url('../img/hex-swatch.png'), linear-gradient(black, black, #1E4D2B);
    background-repeat: repeat-x repeat-y;
    background-attachment: fixed;
    border: 1px solid black;
    border-bottom: none;
    height: calc(100% - 2px);
    margin: 0 auto;
    width: calc(100% - 2px);
}

/* General Classes */
    .alignCenter {
        text-align: center;
    }
    .alignLeft {
        text-align: left;
    }
    .autoHeight {
        min-height: 100% !important;
        height: auto !important;
    }
    .blackHover:hover {
        color: black;
    }
    .blueHover:hover {
        color: #12A4B6;
    }
    .blueLink, .blueLink:visited {
        background: none;
        border: none;
        color: #105456;
        font-weight: bold;
        text-decoration: none;
        white-space: normal;
    }
    .blueLink:active, .blueLink:hover {
        background: none;
        border: none;
        color: #12A4B6;
    }
    .bold {
        font-weight: bold;
    }
    .center {
        align-self: center;
    }
    .code {
        background-color: lightgray;
        color: purple;
        font-family: "Courier New", Courier, monospace;
        font-weight: bold;
        padding: 2px;
    }
    .correct {
        border: 2px solid green !important;
    }
    .disabled {
        pointer-events: none;
    }
    .disabled:hover {
        background: inherit;
    }
    .flexColumn {
        display: -webkit-box;
        display: -moz-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        flex-direction: column;
        flex-wrap: nowrap;
    }
    .flexRow {
        display: -webkit-box;
        display: -moz-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
    }
    .incorrect {
        border: 2px solid red !important;
    }
    .inset {
        border: 1px solid black;
        margin: 20px;
    }
    .lockedON {
        background-color: #1E4D2B;
        border: 2px solid transparent;
        color: #C8C372 !important;
    }

        .lockedON:hover {
            background-color: #1E4D2B;
            border: 2px solid transparent;
            color: #C8C372 !important;
        }
    .goldHover:hover {
        color: #ecc530;
    }
    .hide {
        display: none;
        visibility: hidden;
    }
    .italic {
        font-style: italic;
    }
    
    .noMargin {
        margin: 0;
    }
    .noWrap {
        white-space: nowrap;
    }
    .orientationFocus {
        animation-delay: 0s;
        animation-direction: alternate;
        animation-duration: 0.5s;
        animation-iteration-count: infinite;
        animation-name: outlinePulse;
        animation-timing-function: cubic-bezier();
        outline: 5px solid #CC5430;
        z-index: 9999999;
    }
    .orientationHover {
        background: transparent;
        border: none;
        font-weight: bold;
        padding: 0;
    }
        .orientationHover:hover {
            background: transparent;
            border: none;
            color: #CC5430;
        }
    .orientationHover:active {
        color: inherit;
    }
    .outline {
        border: 1px solid black;
    }
    .primaryHeader {
        background: #1e4d2b;
        color: white;
        font-family: 'factoria-book';
        text-align: center;
    }
    .pinch {
        margin: 0 auto;
        max-width: 1000px;
    }
    .show {
        visibility: visible;
    }
    .smallCaps {
        font-size: small;
        font-variant: small-caps;
    }
    .textShadow {
        letter-spacing: 0.1px;
        text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
    }
    .toggled {
        border: 2px outset #CC5430;
    }
    .toggled:active {
        border-style: inset;
    }
    .underline {
        text-decoration: underline;
    }
    .verticalReveal {
        animation: verticalWipe 2s;
        animation-iteration-count: 1;
        overflow: hidden;
    }
    .wrap {
        flex-wrap: wrap;
    }

/* Animations */
    @keyframes verticalWipe {
        from {height: 0;}
        to {height: 100%}
    }
    @keyframes outlinePulse {
        from {
            outline-offset: -5px;
        }
        to {
            outline-offset: 0px;
        }
    }

/* TOC Webkit style */
@supports (-webkit-appearance:none) {
    .a {
        font-size: calc(18px + 0.9vw);
        list-style-type: decimal;
        margin: 0;
        margin-left: 50px;
        padding: 0;
    }

    .b {
        background: linear-gradient( #ECC530, #C9D845);
        border: 2px solid #105456;
        border-top: none;
        border-radius: 0 0 5px 5px;
        font-size: calc(16px + 0.8vw);
        list-style-type: upper-alpha;
        margin: 0;
        margin-left: -30px;
        padding: 5px;
    }

        .b li {
            margin-left: 35px;
        }

        .b summary {
            background-color: #FFFFFF);
        }

    .c {
        font-size: calc(14px + 0.7vw);
        list-style-type: lower-roman;
    }

        .c li {
            margin-left: -30px;
        }

    .d {
        font-size: calc(12px + 0.6vw);
        list-style-type: lower-alpha;
    }

        .d li {
            margin-left: -10px;
        }

    span.li-background {
        border: 2px solid #105456;
        border-right: none;
        border-radius: 5px 0 0 5px;
        position: absolute;
    }

    .a span.li-background {
        background-color: #FFFFFF;
        margin-left: -2em;
        top: 0px;
        width: 2em;
        z-index: -1;
    }
    .b span.li-background {
        background-color: #FFFFFF;
        top: 0px;
        z-index: -1;
    }

    details * {
        -ms-hyphens: auto;
        -moz-hyphens: auto;
        -webkit-hyphens: auto;
        hyphens: auto;
        overflow-wrap: break-word;
    }

    summary {
        background: #FFFFFF;
        border: 2px solid #105456;
        border-left: none;
        border-radius: 0 5px 0 0;
        margin: 5px 0 0 0;
        padding: 5px 30px 5px 0px;
        position: relative;
    }

        summary::after {
            color: #105456;
            content: "\e93e";
            font-family: csu-brand-icons;
            font-size: 48px;
            font-weight: bold;
            margin: -10px;
            position: absolute;
            top: 0;
            right: 0;
        }

    @supports (-moz-appearance:meterbar) {
        summary {
            list-style-type: none; /* Removes details marker from Firefox */
        }
    }

    summary::-webkit-details-marker {
        display: none;
    }

    .disabled summary {
        background-color: #C8C372;
    }

        .disabled summary::after {
            content: none;
        }

    .noSelect {
        -webkit-touch-callout: none; /* iOS Safari */
        -webkit-user-select: none; /* Safari */
        -khtml-user-select: none; /* Konqueror HTML */
        -moz-user-select: none; /* Firefox */
        -ms-user-select: none; /* Internet Explorer/Edge */
        user-select: none; /* Non-prefixed version, currently
                                  supported by Chrome and Opera */
    }

    .openDetails {
        background: linear-gradient(#CC5430, #D9782D) !important;
    }

    summary.openDetails::after {
        color: #ECC530;
        content: "\e933";
        font-family: csu-brand-icons;
        font-size: 48px;
        font-weight: bold;
        margin: -10px;
        position: absolute;
        top: 0;
        right: 0;
    }

    #tableOfContents {
        flex: 0 1 100%;
    }

        #tableOfContents li {
            position: relative;
            z-index: +1;
        }

    @media screen and (min-width: 800px) {
        #tableOfContents {
            display: flex;
            flex-flow: row nowrap;
        }

        ol.a {
            display: flex;
            flex: 0 1 100%;
            flex-flow: column nowrap;
            margin-left: 60px;
        }

        .a span.li-background {
            top: 5px;
        }

        .b span.li-background {
            top: 0px;
        }
    }
}
/* IE style */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
    main {
        flex: 0 1 auto
    }
    #content {
        flex: 1 1 100%;
    }
    ol {
        list-style-type: none;
    }
        ol.a {
            font-size: 20px;
            font-weight: bold;
        }

        ol.b {
            font-size: 18px;
            font-weight: normal;
            list-style-type: disc;
        }

        ol.c {
            font-size: 16px;
            list-style-type: circle;
        }

        ol.d {
            font-size: 14px;
            list-style-type: lower-alpha;
        }

    #tableOfContents {
        max-width: 800px;
        width: 100%;
    }
}
/* Media queries */
@media screen and (max-width: 800px) {
    footer {
        align-content: flex-start;
        justify-content: center;
        flex-wrap: wrap !important;
    }
}

@media screen and (min-width: 800px) {
    header h1 {
        font-size: 32px;
    }
}

@media screen and (min-width: 1000px) {
    main {
        font-size: 20px;
    }

    .a {
        font-size: 27px;
    }

    .b {
        font-size: 24px;
    }

    .c {
        font-size: 21px;
    }

    .d {
        font-size: 18px;
    }
}

@media screen and (min-aspect-ratio: 4/3) {
    #content {
        flex-direction: row;
    }

    #pageHead {
        border-bottom: none;
    }

    #tutorials {
        border-top: none;
        border-left: 1px solid black;
        width: 40% !important;
    }

    #tutorialBox {
        border-top: 1px solid black !important;
    }

    #tutorials, #viewer {
        height: 100%;
        max-height: 100%;
    }
}

@media screen and (max-height: 300px) {
    #wrapper {
        height: 300px;
    }
}

@media screen and (max-width: 600px), (max-height: 600px) {
    .articleArrow {
        height: 0;
        position: absolute;
        overflow: hidden;
        width: 0;
    }
}

@media (hover: hover) {
    .articleArrow button:hover {
        background-color: #CC5430;
        border: 3px outset #D9782D;
    }
}
/* Print constraints */
@media print {
    .noPrint, .noPrint * {
        display: none !important;
    }
}
@media screen {
    .noScreen, .noScreen * {
        display: none !important;
    }
}