/*@import url(http://fonts.googleapis.com/css?family=Open+Sans:400,700|Inconsolata:400,700);*/

:root {  /* pre-2023 brandind */
    --main-color: #61578B;  /* tu-purple */
    --main-light: rgba(97, 87, 139, 0.75);
    --highlight:  #DEB364;  /* tu-gold */
    --lowlight:   #87672C;  /* tu-dark-gold */
    --accent:     #107E7D;  /* tu-teal */
    --link-dropshadow:  rgba(192, 128, 255, 0.25);
    --link-border: rgba(0, 0, 0, 0.125);
    --backdrop: #F8F8F8;
}

:root {  /* 2023 Branding */
    --main-color: #522D72;  /* tu-purple */
    --main-light: rgba(82, 45, 114, 0.75);  /* transparent tu-purple */

    --highlight:  #C1A027;  /* tu-gold */
    --lowlight:   #87672C;  /* tu-dark-gold */
    --accent:     #00AFCE;  /* tu-plunge (teal) */

    --link-dropshadow:  rgba(192, 128, 255, 0.25);
    --link-border: rgba(0, 0, 0, 0.125);
    --backdrop: #F8F8F8;

    --a-bg:     rgba(82, 45, 114, 0.125); /*hsla(  7, 70.9%, 77.75%, 0.25);*/
    --quiz-bg:  hsl(  7, 70.9%, 94.4375%); /* hsl(7, 70.9%, 55.5%);*/
    --group-bg: hsl(216, 55.7%, 90.4875%); /* rgb(R27 G54 B95) hsl(216, 55.7%, 23.9%) */

    --iron: #B2B4BE;
    --night: #1B365F;
    --sunset: #E14F3D;
}


/* open-dyslexic fonts */
@font-face {
  font-family: 'opendyslexic';
    src: url('https://gfx.cse.taylor.edu/fonts/opendyslexic/OpenDyslexic-Regular.otf');
    font-style: normal;
    font-weight: normal;
}
@font-face {
    font-family: 'opendyslexic';
    src: url('https://gfx.cse.taylor.edu/fonts/opendyslexic/OpenDyslexic-Italic.otf');
    font-style: italic;
    font-weight: normal;
}
@font-face {
    font-family: 'opendyslexic';
    src: url('https://gfx.cse.taylor.edu/fonts/opendyslexic/OpenDyslexic-Bold.otf');
    font-weight: bold;
    font-style: normal;
}
@font-face {
    font-family: 'opendyslexic';
    src: url('https://gfx.cse.taylor.edu/fonts/opendyslexic/OpenDyslexic-BoldItalic.otf');
    font-weight: bold;
    font-style: italic;
}
/*@font-face {
    font-family: eulexia;
    src: url('https://gfx.cse.taylor.edu/fonts/opendyslexic/eulexia.ttf');
}
*/

html {
    margin: 0;
    padding: 0;
}

body {
    margin: 0 auto;
    padding: 0;
    padding-top: 0px;
    padding-bottom: 128px;

    /* width is now set in build.py (template.html: $style$)
    /*width: 600px;*/
    /*width: 775px;*/

    /*font-family: 'Open Sans', sans-serif;*/
    /*font-family: 'Lato', sans-serif;*/
    /*font-family: 'Questrial', sans-serif;*/

    font-family: 'Merriweather', serif;
    font-size: 12px;

    /*line-height: 20px;*/
    counter-reset: h4counter;

    background-color: var(--backdrop);
}


.accessibility a {
    line-break: anywhere;
    /*padding: 0;
    border: 0;
    filter: none;*/
}
div.clear-url {
    line-height: 14pt;
    margin-top: 4px;
    margin-bottom: 16px;
    font-size: 11pt;
    font-family: 'Ubuntu Mono', monospace;
}

a {
    background-color: var(--a-bg);
    padding-left: 5px;
    border-left: 2px solid rgba(0,0,0,0.5);
    padding-right: 5px;
    border-right: 2px solid rgba(0,0,0,0.5);
    border-radius: 5px;
    color: black;
    /*border: 1px solid var(--link-border);*/
    /*filter: drop-shadow(0 0 10px var(--link-dropshadow));*/
    text-decoration-style: dotted;
    text-decoration-color: rgba(32, 32, 32, 0.25);
}
a:hover {
    color: var(--main-color);
    text-decoration-style: solid;
    text-decoration-color: var(--highlight); /* rgba(32, 32, 32, 1.0); */
}

a.linked-image {
    background: transparent;
    padding: 0;
    border: 0;
    border-radius: 0;
    text-decoration: none;
    border-bottom: 2px dotted rgba(32,32,32,0.25);
}
a.linked-image:hover {
    border-bottom: 2px solid var(--highlight);
}



a.nostyle {
    background-color: transparent;
    padding: 0;
    border: 0;
    filter: none;
    text-decoration: none;
}

h1, h2, h3 {
    font-family: 'Questrial', sans-serif;
    /*font-family: 'Ubuntu', sans-serif;*/
    page-break-after: avoid;
}

h1 {
    font-size: 20px;
    /*padding: 8px 16px;*/
    /*padding-bottom:0px;*/
    /*line-height: 20px;*/
    /*margin: 144px 0 0px 0;*/
    background-color: var(--main-color);
    color: white;

    margin: 48px -32px 0px -32px;
    padding: 8px 48px 8px 48px;
}

h1:first-child, hr.pagebreak + h1 {
    margin-top: 16px;
}

/*h1:nth-of-type(1) {
    margin-top: 32px;
}
*/
h1 a, h3 a {
    background-color: transparent;
    border:  0px;
    color: white;
    opacity: 50%;
}
h1 a:hover, h3 a:hover {
    color: white;
    opacity:  100%;
}
hr.h1 {
    border-top: 2px solid var(--highlight);
    margin: 0 -32px 2px -32px;
    width: calc(100% + 64px);
    padding: 0;
}

h2 {
    font-size: 18px;
    /*line-height: 16px;*/
    margin: 0 0 24px 0;
    color: var(--main-light);
    text-align: right;
}

/* #C0C0FF; */

h3 {
    font-size: 18px;
    /*line-height: 12px;*/
    margin: 32px -32px 0px -32px;
    padding: 4px 48px 0px 48px;
    background-color: var(--main-light);
    color:  white;
}
h3::before {
    /* https://unicode-search.net/unicode-namesearch.pl?term=TRIANGLE */
    /*content: "⯈"; /*"🢖";* /
    margin:  0px;
    padding: 0 8px 0 0;
    color:  rgba(255, 255, 255, 0.5);*/

    display: inline-block;
    content: "";
    padding: 0;
    width: 10px;
    height: 10px;
    background: linear-gradient(to bottom right, transparent 0%, transparent 50%, white 50%, white 100%);
    margin: 0 8px 2px 0;
    transform: rotate(-45deg);
    opacity: 25%;
}
hr.h3 {
    border-top: 2px solid var(--highlight);
    margin: 0 -32px 2px -32px;
    width: calc(100% + 64px);
    padding: 0;
}

hr {
    display: block;
    background: transparent;
    border: none;
    border-top: solid 2px var(--highlight); /* #202080; */
    height: 1px;
    width: 100%;
}



span.highlight {
    /*color: #82A3CF;*/
    background-color: #C0FFFF;
}
span.highlight span.highlight {
    /*color: #FFFF00;*/
    background-color: #FFFFC0;
}

span.strike-text {
    background-color: rgba(255,0,0,0.25); /* #FFC0C0;*/
    text-decoration: line-through rgba(255,0,0,0.75) wavy;
}
span.add-text {
    background-color: rgba(0,255,0,0.25); /* #C0FFC0;*/
    text-decoration: underline rgba(0,128,0,0.75);
}

span.underline {
    border-bottom: 1px solid #000000;
}

div.highlight {
    background-color: #FFFFC0;
    border: 1px dashed;
}

/* http://www.2ality.com/2012/01/numbering-headingshtml.html */
h4 {
    font-size: 12px;
    font-weight: normal;
    /*line-height: 16px;*/
    counter-reset: h5counter;
    padding-left: 18px;
}
h4:before {
    font-size: 12px;
    /*line-height: 16px;*/
    content: counter(h4counter) ".\0000a0\0000a0";
    counter-increment: h4counter;
    margin-left: -18px;
    width: 18px;
}

h4 + div.tightlist > ol {
    margin-left: 20px;
}
/*h4 + div.tightlist > ol > li:before {
    content: counter(h4counter) ".\0000a0\0000a0";
}
*/
h4 span {
    position: relative;
    left: 0px;
    padding: 0px;
    margin: 0px;
    text-indent: 0px;

    /*text-indent: 0px;
    position: relative;*/
}
h5 {
    font-size: 12px;
    font-weight: normal;
    padding-left: 28px;
}
h5:before {
    font-size: 12px;
    content: counter(h4counter) "." counter(h5counter) ".\0000a0\0000a0";
    counter-increment: h5counter;
    margin-left: -28px;
    width: 28px;
}
h5 span {
    position: relative;
    left: 0px;
    padding: 0px;
    margin: 0px;
    text-indent: 0px;

    /*text-indent: 0px;
    position: relative;*/
}

hr {
    page-break-after: avoid;
}
hr.pagebreak {
    display: block;
    background: transparent;
    border: none;
    border-top: dashed 2px #C0C0C0;
    height: 1px;
    width: 100%;
    page-break-before: always;
}
hr:not([class~="pagebreak"]) {
    page-break-before: avoid;
}
hr:not([class~="pagebreak"]) + p {
    page-break-before: avoid;
}

p {
    position: relative;
    /*margin: 0;*/
    padding: 0;
    margin: 12px 0 12px 0;
    page-break-inside: avoid;
}

ol, ul, li {
    margin: 0;
    margin-top: 12px;
    margin-bottom: 12px;
    margin-left: 8px;
    padding-left:4px;
}
li {
    text-align: left;
}

ol.tight, ul.tight, ol.tight li, ul.tight li {
    margin-top: 2px;
    margin-bottom: 2px;
}

div.tightlist {
     margin: 12px 0px 12px 0px;
}

/*ul ul {
    margin: 0 0 0 0;
}*/

/*pre {
    margin: 0 0 24px 0;
}

code {
    font-family: 'Ubuntu Mono',;
    font-size: 13px;
}*/

table {
    /*margin: 6px 0 6px 0; /* 12px 0 12px 0;*/
    margin: 0 auto;
    border-collapse: collapse;
    page-break-inside: avoid;
}


tr {
    padding: 0;
    margin: 0;
}

th {
    text-align: center;
    padding: 0;
    margin: 0;
    padding-left: 8px;
    padding-right: 8px;
    vertical-align: top;
    padding-top: 6px;
    padding-bottom: 6px;
}

td {
    text-align: left;
    padding: 0;
    margin: 0;
    padding-left: 8px;
    padding-right: 8px;
    vertical-align: top;
    padding-top: 6px;
    padding-bottom: 6px;
}

td[align="left"] {
    text-align: left;
}
td[align="center"] {
    text-align: center;
}
td[align="right"] {
    text-align: right;
}

table.edges tr, table.edges td, table.edges th {
    border: 1px solid #C0C0D0;
}


table.align {
    margin: 0;
    padding: 0;
}
table.align td {
    padding: 0px;
    text-align: left;
}
table.align td + td {
    padding-left: 8px;
}


pre {
    /*font-family: Inconsolata, monospace;*/
    font-family: 'Ubuntu Mono', monospace;
    font-size: 12px;
    line-height: 14px;
    width: 80%;
    /*max-height: 360px;*/
    margin-left: auto;
    margin-right: auto;
    margin-top: 20px;
    margin-bottom: 20px;
    padding: 10px;
    overflow: auto;
    /*line-height: 40px;*/
}

pre ol, pre ul, pre li {
    margin: 0;
    /*margin-top: 4px;
    margin-bottom: 4px;
    margin-left: 8px;*/
    padding: 0;
    margin-left: 16px;
    /*padding-left:4px;*/
}


code {
    color: #404040;
    /*font-family: Inconsolata, monospace;*/
    font-family: 'Ubuntu Mono', monospace;
    font-style: normal;
    font-weight: normal;
    /*font-size: 12px;
    line-height: 12px;*/
    border: 1px solid #F0F0F0;
    padding: 1px 4px;
    background-color: #F8F8F8;
    white-space: pre;
}

kbd {
    font-family: 'Ubuntu Mono', monospace;
    font-style: normal;
    font-weight: normal;
    font-size: 1em;
    border: 1px solid #F0F0F8;
    padding: 1px 4px;
    background-color: #F8F8FF;
    white-space: pre;
    color: #4040C0;
}


/*blockquote {
    border-left: 2px solid #C0C0C0;
    padding-left: 5px;
}*/
blockquote {
    position: relative;
    background-color: #F0F0F0; /* #E0E0E0; /*white;*/
    padding-left: 70px;
    padding-right: 70px;
    padding-top: 10px;
    padding-bottom: 10px;
    border-radius: 20px;
    page-break-inside: avoid;
    border: 1px solid rgba(0, 0, 0, 0.0625);
    filter: drop-shadow(2px 4px 6px rgba(0, 0, 0, 0.125));
}

iframe {
    filter: drop-shadow(2px 4px 6px rgba(0,0,0,0.125));
}

blockquote p {
    color: black; /* #000000; */
    text-align: justify;
}

blockquote span.quotationstart {
    position: absolute;
    left: 16px;
    top: 12px;
    color: rgba(0,0,0,0.10); /*#C0C0C0; /*#404040;*/
    text-align: left;
    font-size: 32pt;
}
blockquote span.quotationend {
    position: absolute;
    right: 16px;
    bottom: 0px;
    color: rgba(0,0,0,0.10); /*#C0C0C0; /*#404040;*/
    text-align: left;
    font-size: 32pt;
}



dl, dt, dd {
    margin: 0px;
    padding: 0px;
    margin-top: 16px;
    margin-bottom: 16px;
}

dt {
    margin-bottom: 0 !important;
}
dd {
    margin-top: 0 !important;
    margin-left: 32px;
    border: 0;
    border-left: 2px solid #D0D0D0;
    padding-left: 12px;
}
/*dd {
    margin-top: 0 !important;
    padding-left: 16px;
}
dd:before {
    content: '>';
    padding-left: 16px;
    padding-right: 16px;
    color: #808080;
}*/

figure {
    text-align: center;
}

table figure {
    margin: 0;
    padding: 0.5ex 0;
    img {
        margin: 0;
    }
}


div.centerimg img {
    display: block;
    margin-left: auto;
    margin-right: auto;
}


div.content {
    background-color: white;
    margin-top: 36px;
    margin-left:  -48px;
    margin-right: -48px;
    padding-left:  48px;
    padding-right: 48px;
    padding-bottom: 36px;
    border: 1px solid #E0E0E0;
    box-shadow: 0px 0px 10px #E0E0E0;
    overflow: hidden;
}

@media print {
    div.content {
        overflow: visible;
    }
}

div#buildreport {
    box-sizing: border-box;
    position: fixed;
    left: 0;
    bottom: 0;
    border: 5px solid rgba(0,0,0,0.50);
    width: 100%;
    background-color: rgba(255,0,0,0.75);
    font-family: 'Questrial', sans-serif;
    font-size: 16pt;
    color: white;
    max-height: 50%;
    overflow-y: scroll;
    line-height: 100%;
    visibility: hidden;
}
div#buildreport:empty {
    visibility: hidden;
}


div#bottomright {
    z-index: 100000;
    position: fixed;
    bottom: 10px;
    right: 10px;
    font-size: 10pt;
    line-height: 10pt;
    font-family: 'Questrial', sans-serif;
    user-select: none;
}
div#bottomright div {
    text-align: center;
    opacity: 0.10;
    background: rgba(0,0,0,0.5);
    color: white;
    cursor: pointer;
    padding: 5px;
    margin: 2px;
    border: 1px solid black;
}
div#bottomright div:hover {
    opacity: 1.0;
}
div#bottomright div#viewpublished {
    background: darkred;
    opacity: 1.0;
}
div#bottomright div#viewpublished:hover {
    background: red;
    opacity: 1.0;
}
div#bottomright span {
    display: inline-block;
    text-align: center;
    padding-left: 5px;
    padding-right: 5px;
    margin-left: 2px;
    margin-right: 2px;
    border: 1px solid rgba(0,0,0,0.10);
}


div.answerkey {
    margin: 20px;
    padding: 10px;
    border: 1px solid rgba(0,0,0,0.5);
    background-color: rgba(255,128,128,0.25);
    clear: both;
}



textarea.copy-clipboard {
    position: absolute;
    left: -99999px;
}
button.copy-clipboard {
    position: absolute;
    /*
    right: 0;
    margin-right: 100px;
    */
    margin-left: 490px;
    margin-top: 7px;
    opacity: 0.20;
    transform: scale(0.75);
}
button.copy-clipboard:hover {
    opacity: 1.00;
}


#under-construction {
    display:       inline-block;
    background:    rgba(255, 0, 0, 0.9);
    color:         white;
    position:      fixed;
    text-align:    center;
    padding:       10px;
    border:        0px;
    border-bottom: 2px solid rgba(128, 0, 0, 0.9);
    font-size:     12pt;
    font-weight:   bold;
    box-shadow:    0 2px 10px rgba(128, 0, 0, 0.5);
    left:    0;
    top:     0;
    right:   0;
    width: 100%;
    z-index: 1000000;
}


/*  collapsible elements  */
blockquote.contracted {
    overflow-y: hidden;
    max-height: 80px;
}
blockquote.contracted:after {
    content  : "";
    position : absolute;
    z-index  : 1;
    bottom   : 0;
    left     : 0;
    width    : 100%;
    height   : 4em;
    pointer-events    : none;
    /*--fade-color-value: 160;*/
    --fade-color-value: 255;
    background-image  : linear-gradient(to bottom,
                            rgba( var(--fade-color-value), var(--fade-color-value), var(--fade-color-value), 0),
                            rgba( var(--fade-color-value), var(--fade-color-value), var(--fade-color-value), 1) 90%
                            );
}
blockquote button.expand {
    position: absolute;
    right:16px;
    opacity:50%;
}
blockquote button.expand:hover {
    opacity:100%;
}
pre.contracted {
    overflow-y: hidden;
    max-height: 80px;
}
pre.contracted:after {
    content  : "";
    position : absolute;
    z-index  : 1;
    bottom   : 0;
    left     : 0;
    width    : 100%;
    height   : 4em;
    pointer-events    : none;
    /*--fade-color-value: 160;*/
    --fade-color-value: 255;
    background-image  : linear-gradient(to bottom,
                            rgba( var(--fade-color-value), var(--fade-color-value), var(--fade-color-value), 0),
                            rgba( var(--fade-color-value), var(--fade-color-value), var(--fade-color-value), 1) 90%
                            );
}
pre button.expand {
    position: absolute;
    right:16px;
    opacity:50%;
}
pre button.expand:hover {
    opacity:100%;
}


sup.accessible {
    margin-left: 0.25em;
}
section#accessibility li {
    clear: both;
    break-inside: avoid;
}
section#accessibility li div.clear-url {
    word-wrap: break-word;
}
section#accessibility div.qrcode {
    display: inline-block;
    float: left;
}
section#accessibility div.qrcode img {
    width:  4.2em;
    height: 4.2em;
    margin-right: 0.5em;
    margin-bottom: 0.5em;
/*    opacity: 0.5;*/
}


body.dyslexic {
    font-family: 'opendyslexic', serif !important;
    font-size: 12pt;
    line-height: 16pt;
}

body.dyslexic h1, body.dyslexic h2, body.dyslexic h3 {
    font-family: 'opendyslexic', serif !important;
}
body.dyslexic h1 {
    font-size: 18pt;
    line-height: 22pt;
}
body.dyslexic h2, body.dyslexic h3 {
    font-size: 16pt;
    line-height: 22pt;
}
body.dyslexic h4, body.dyslexic h4::before {
    font-size: 14pt;
}
body.dyslexic h5, body.dyslexic h5::before {
    font-size: 14pt;
}
body.dyslexic pre {
    font-family: 'Comic Mono';
    font-size: 14pt;
    line-height: 18pt;
}
body.dyslexic code {
    font-family: 'Comic Mono';
}


.enable-bionic bionic {
    font-weight: bold !important;
}






div.admonition {
    border: 0.1em solid rgba(0, 0, 0, 0.5);
    border-radius: 0.5em;
    padding: 1em;
    margin: 1em 0;
    p.admonition-title {
        font-weight: bold;
        margin: -1em -1em 1.5ex -1em;
        padding: 0.5ex 2em;
        border-radius: 0.4em 0.4em 0 0;
    }
    /* first-child is the title bar! */
    p:nth-child(2) {
        margin-top: 0;
    }
    p:last-child {
        margin-bottom: 0;
    }
}

div.admonition.note {
    background-color: rgba(178, 180, 190, 0.25);
    p.admonition-title {
        background-color: rgba(178, 180, 190, 1.0);
        color: white;
    }
}

div.admonition.important {
    background-color: rgba(222, 79, 61, 0.25);
    p.admonition-title {
        background-color: rgba(222, 79, 61, 1.0);
        color: white;
    }
}

div.admonition.warning {
    background-color: rgba(0, 175, 206, 0.25);
    p.admonition-title {
        background-color: rgba(0, 175, 206, 1.0);
        color: white;
    }
}

div.admonition.answers {
    background-color: rgba(128, 128, 255, 0.25);
    p.admonition-title {
        background-color: rgba(128, 128, 255, 1.0);
        color: white;
    }
}

div.admonition.tip, div.admonition.hint {
    background-color: rgba(0, 206, 174, 0.25);
    p.admonition-title {
        background-color: rgba(0, 206, 175, 1.0);
        color: white;
    }
}




@media print {
    .hide-print {
        display:  none;
    }
    @page {
        width: 8.5in;
        height: 11in;
        /*margin: 48px 48px 48px 48px;*/
        margin: 0.25in 0.25in;
        padding: 0;
    }
    html {
        margin: 0px !important;
        padding: 0px !important;
        background: white;
        width: 100%;
        height: 100%;
        /*width: 1024px;
        height: 768px;*/
    }
    body {
        margin: 0.5in auto;
        padding: 0;
        background-color: white;
        width: 100%;
        height: 100%;
        zoom: 100% !important;
    }
    a {
        border: 1px solid rgba(0,0,0,0.0625);
        /*padding: 0;*/
        filter: none;
        /*text-decoration: none;*/
        /*color: black;*/
    }
    a::after {
        font-size: 4pt;
        padding-left: 2pt;
        content: "🔗";
        vertical-align: middle;
    }
    blockquote.contracted {
        overflow-y: initial;
        max-height: fit-content;
    }
    blockquote.contracted:after {
        display: none;
    }
    pre.contracted {
        overflow-y: initial;
        max-height: fit-content;
    }
    pre.contracted:after {
        display: none;
    }
    button.expand {
        display: none;
    }
    a:has(img):after {
        display: none;
    }

    hr.pagebreak {
        border: 0;
        height: 0px;
        padding-top: 0px;
        padding-bottom: 1px;
    }
    div.content {
        border: none;
        margin-top: -24px;
        margin-left: 0px;
        margin-right: 0px;
        padding-left: 0px;
        padding-right: 0px;
        padding-bottom: 0px;
        box-shadow: 0px 0px 0px;
    }
    div#bottomright {
        display: none;
    }
    div#buildreport {
        display: none;
    }
    span.highlight {
        background-color: #A0FFFF;
    }
    #under-construction {
        margin-top: 24px;
        /*margin-bottom: -48px;*/
        position: relative;
    }
    button.copy-clipboard {
        display: none;
    }
}
