/* Updated: 10/26/24 */
body {
    --color-anchor:-webkit-link;
    --color-very-dark:#000;
    --color-dark:#212121;
    --color-dark-purple:#4b0096;
    --color-light:#efefef;
    --color-purple:#7500EB;
    --color-very-light:#fff;
}
@media (prefers-color-scheme:dark), (prefers-contrast:more) {
    body {
        --color-anchor:#eba800;
        --color-very-dark:#fff;
        --color-dark:#efefef;
        --color-dark-purple:#4b0096;
        --color-light:#212121;
        --color-purple:#9E3DFF;
        --color-very-light:#000;
        background-color:var(--color-very-light) !important;
        background-image:radial-gradient(var(--color-light) 20%, transparent 20%), radial-gradient(var(--color-light) 20%, transparent 20%) !important;
   }
    #about, details summary {
        background:linear-gradient(115deg, var(--color-light), var(--color-very-light)) !important;
        color:var(--color-very-dark) !important;
   }
    #about a {
        color:var(--color-anchor) !important;
   }
    #about h1, #main_navigation li a, #main_navigation li a:focus, #main_navigation li a:hover {
        color:var(--color-very-dark) !important;
   }
    .button {
        background-color:var(--color-light) !important;
        border:.09em solid var(--color-very-dark) !important;
   }
    .experience-logo, .project-logo {
        background-color:var(--color-very-dark);
        border-radius:0.25em;
        padding:0.75em;
   }
    footer, footer abbr, footer a.button {
        color:var(--color-very-dark) !important;
   }
    footer a {
        color:var(--color-anchor) !important;
   }
    progress {
        color:var(--color-very-dark) !important;
   }
    progress:after {
        content:attr(value);
   }
}
@media print {
    abbr {
        border-style:none !important;
   }
    details {
        break-inside:avoid;
   }
    footer, progress:after, th, #about {
        color:var(--color-very-dark) !important;
   }
    footer, h2 {
        page-break-before:always;
   }
    footer {
        text-align:left;
   }
    footer .list-horizontal li {
        display:block;
   }
}
#about {
    background:linear-gradient(115deg, var(--color-purple), var(--color-dark-purple));
    color:var(--color-very-light);
}
#about a {
    color:var(--color-very-light);
}
#about abbr {
    border-bottom:.125em dotted var(--color-dark-purple);
}
#about blockquote {
    border-left:.5em solid var(--color-dark-purple);
}
#about h1 {
    color:var(--color-very-light);
}
#achievements h2:after {
    content:"\f091";
}
#achievements_table li.list-unstyled, #contact dd {
    padding:.25em;
    margin-bottom:.25em;
}
#achievements_table li {
    margin-left:1em;
}
#achievements_table ul {
    padding-left:0;
}
#certifications h2:after {
    content:"\f559";
}
#contact h2:after {
    content:"\f086";
}
#download_vpat a:before {
    content:'↓ ' 
}
#education h2:after {
    content:"\f501";
}
#experience h2:after {
    bottom:0.4em;
    content:"\e29c";
    font-size:0.8em;
    right:0.1em;
    transform:rotate(270deg);
}
#main_navigation {
    position:sticky;
    top:0;
    z-index:1;
}
#main_navigation li {
    margin:0;
    padding:0;
}
#main_navigation li a {
    color:var(--color-very-light);
    display: inline-block;
    height: 1.75em;
    padding:.5em;
    text-decoration:none;
}
#main_navigation li a:after, #back_to_top a:after, .carousel-navigation-anchor:after, .no-marker:after {
    content:'';
}
#main_navigation li a:focus, #main_navigation li a:hover {
    background-color:var(--color-very-light);
    color:var(--color-dark-purple);
    border-radius:.25em;
}
#main_navigation ul {
    align-items:center;
    background-color:var(--color-dark-purple);
    display:flex;
    font-weight:700;
    justify-content:space-between;
    padding:.5em;
    margin:0;
}
@media(max-width:768px) {
    #main_navigation ul {
        display:none;
   }
}
#projects h2:after {
    content:"\f53f";
}
#quick_links {
    background-color:var(--color-very-light);
    color:var(--color-anchor);
    list-style-type:none;
    margin:0;
    padding-left:0;
    text-align:center;
}
#quick_links a, .screen-reader-only {
    background-color:var(--color-very-light);
    color:var(--color-anchor);
    display:inline-block;
    height:.125em;
    left:-10000em;
    overflow:hidden;
    margin:.5em;
    position:absolute;
    top:auto;
    width:.125em;
}
#quick_links a:focus {
    height:auto;
    margin:.5em;
    padding:.5em;
    position:static;
    text-decoration-style:dashed;
    width:auto;
}
#skills h2:after {
    content:"\f7d9";
}
.blockquote figcaption {
    margin-left:1.5em;
    margin-right:0;
    position:relative;
    text-align:left;
}
.blockquote figcaption:before {
    content:'— ';
    left:-1em;
    position:absolute;
}
.experience-logo, .project-logo {
    filter:grayscale(100%);
    height:3.5em;
    margin-top:1.25em;
}
a:active .experience-logo, a:active .project-logo:active, a:focus .experience-logo, a:focus .project-logo:active, a:hover .experience-logo, a:hover .project-logo:hover {
    filter:grayscale(0%);
}
.lead {
    font-size:1.25rem;
}
.list-horizontal li {
    display:inline-block 
}
.list-unstyled {
    padding-left:0;
}
.list-unstyled li {
    list-style:none;
}
.other-skills {
    padding-left:0;
    margin-top:.5em;
}
.other-skills li {
    background:var(--color-light);
    border-radius:.25em;
    color:var(--color-dark);
    display:inline-block;
    list-style:none;
    padding:.5em;
    margin-bottom:.5em;
    margin-right:.25em;
    text-align:center;
}
@media(max-width:768px) {
    .other-skills li {
        display:block;
        margin-right:0;
        padding:.125em;
   }
}
@media print {
    .other-skills li {
        text-align:initial;
   }
}
.align-right {
    text-align:right;
}
.accessibility-test {
    padding-left:0;
}
.accessibility-test li {
    padding-right:.5em;
}
@media screen {
    .accessibility-test li:before {
        content:'✓ ';
   }
}
.button {
    background-color:var(--color-very-light);
    border-radius:.25em;
    color:var(--color-dark-purple);
    display:inline-block;
    margin:1em;
    padding:.5em .75em;
    text-decoration:none;
}
.button:after {
    content:none;
}
.contact_phonetic {
    padding:1em;
    border:.1em solid var(--color-light) 
}
.employer {
    font-weight:700;
}
.grid-two-columns {
    display:grid;
    grid-template-columns:1fr 8fr;
}
@media(max-width:600px) {
    .grid-two-columns {
        grid-template-columns:1fr 3fr;
   }
}
.image-circle {
    object-fit:cover;
    border-radius:50%;
}
.image-responsive {
    max-width:100%;
}
@media(min-width:768px) {
    .list-two-columns-top-bottom {
        columns:2;
   }
    .list-two-columns-left-right{
        display:grid;
        grid-template-columns:repeat(2, 1fr);
   }
}
.logo {
    width:5em;
}
.table-container {
    overflow-x:auto;
}
::selection {
    background:var(--color-very-dark);
    color:var(--color-very-light);
}
@media screen {
    a:after {
        content:' ›';
   }
}
@media print {
    a:not([href^='#']):not([href^='/']):not([href^='tel']):after {
        content:' [' attr(href) '] ';
   }
}
@media screen {
    a:not([href*='mattsnow.dev']):not([href^='#']):not([href^='/']):not([href^='tel']):after {
        content:' ⎋';
        display:inline-block;
        font-size:.7em;
        padding-left:.25em;
        transform:rotate(90deg);
   }
}
@media screen {
    a[target='_blank']:after {
        content:' \2750';
        display:inline-block;
        font-size:.8em;
        padding-left:0.25em;
   }
}
a.img-link:after, a.img-link:not([href*='mattsnow.dev']):not([href^='#']):not([href^='/']):not([href^='tel']):after {
    content:none;
}
a abbr {
    border-style:none;
}
abbr {
    border-width:0 0 .125em 0;
    border-style:dotted;
    cursor:help;
    text-decoration:none;
}
@media print {
    abbr {
        border-style:none;
   }
    abbr:after {
        content:'] ';
   }
    abbr:before {
        content:' ' attr(title) ' [';
   }
}
address {
    font-style:normal;
   ;
}
audio {
    width:100%;
}
blockquote {
    border-left:.5em solid var(--color-light);
    margin-left:0;
    margin-right:0;
    padding-left:.5em;
}
blockquote:after {
    content:'"';
}
blockquote:before {
    content:'"';
}
body {
    background-attachment:fixed;
    background-color:var(--color-very-dark);
    background-image:radial-gradient(var(--color-dark) 20%, transparent 20%), radial-gradient(var(--color-dark) 20%, transparent 20%);
    background-position:0 0, .5em .5em;
    background-size:1em 1em;
    color:var(--color-very-dark);
    font-family:Lato, sans-serif;
    font-size:1rem;
    font-weight:300;
    line-height:1.5;
    margin:0 auto;
    max-width:50em;
}
details {
    background:var(--color-very-light);
    border:.125em solid var(--color-light);
    border-radius:.125em;
}
details p {
    color:initial;
    padding:.5em .5em 0;
}
details p:first-of-type {
    padding-top:0;
}
details summary {
    background:var(--color-light);
    color:var(--color-purple);
    cursor:pointer;
    margin-bottom:0;
    padding:.5em;
}
dt, dd {
    display:inline-block;
}
dt {
    font-weight:700;
    width:2em;
}
figure.blockquote {
    margin-bottom:0;
    margin-left:0;
    margin-right:0;
}
footer, #back_to_top {
    color:var(--color-very-light);
    margin-bottom:4em;
    text-align:center;
}
footer a {
    color:var(--color-very-light);
}
h1 {
    color:var(--color-purple);
    font-size:3rem;
}
h1,h2 {
    font-family:'Playfair Display', serif;
    font-style:italic;
    font-weight:700;
}
h1:first-of-type {
    color:var(--color-dark);
    margin-bottom:.2em;
    margin-top:0;
}
h2 {
    color:var(--color-dark);
    font-size:2rem;
    margin-bottom:0;
    border-bottom:.1em solid var(--color-purple);
}
h2 {
    position:relative;
}
h2:after {
    color:var(--color-light);
    font:var(--fa-font-solid);
    position:absolute;
    right:.25em;
    bottom:0.25em 
}
@media(max-width:768px) {
    h2:after {
        content:none !important;
   }
}
h3 {
    border-bottom:.05em solid var(--color-purple);
    color:var(--color-purple);
    font-size:1.5rem;
    margin-bottom:1em;
}
h4 {
    color:var(--color-dark);
    font-size:1.25rem;
    margin-bottom:0;
}
h5 {
    color:var(--color-dark);
    font-size:1.1rem;
    margin-bottom:0;
}
label {
    display:block;
}
main {
    background:var(--color-very-light);
    border-radius:.5em;
}
main a {
    color:var(--color-anchor) 
}
main a:hover {
    text-decoration-style:dashed;
}
main section {
    background:var(--color-very-light);
    margin:5em;
    scroll-margin-top:3.5em;
}
@media(max-width:768px) {
    main section {
        margin:2.5em;
   }
}
main section section {
    margin:0;
}
main > section:first-of-type {
    margin:0;
    padding:4em;
}
@media (max-width:768px) {
    main > section:first-of-type {
        padding:2.5em;
   }
}
main > section:last-of-type {
    padding-bottom:2em;
}
p {
    line-height:1.5;
}
progress {
    background:var(--color-dark);
    color:var(--color-very-light);
    height:1.75em;
    position:relative;
    text-align:left;
    width:100%;
    border:none;
    border-radius:.25em;
}
progress::-moz-progress-bar {
    background:var(--color-purple);
    border-radius:.25em;
}
progress::-webkit-progress-bar {
    background-color:var(--color-light);
    border-radius:.25em;
}
progress::-moz-progress-value {
    background:var(--color-purple);
    border-radius:.25em;
}
progress::-webkit-progress-value {
    background:var(--color-purple);
    border-radius:.25em;
}
progress:after {
    content:attr(value)'%';
    margin-left:.5em;
    margin-top:.125em;
    position:absolute;
    top:0;
}
progress[value] {
    -webkit-appearance:none;
    appearance:none;
}
table {
    border:.1em solid var(--color-purple);
    border-collapse:collapse;
    text-align:left;
}
th, tr {
    vertical-align:top;
}
thead th {
    background-color:var(--color-purple);
    color:var(--color-very-light);
}
tbody td:first-of-type {
    font-style:italic;
}
tbody th {
    color:var(--color-purple);
    font-weight:700;
}
table th,table td {
    padding:.5em;
}
.carousel {
    overflow:hidden;
}
.carousel h3 {
    font-size:1.25em;
}
.carousel-navigation {
    padding:1.25rem .5rem;
    text-align:center;
}
.carousel-navigation-anchor {
    align-items:center;
    background-color:var(--color-dark);
    border:.125em solid var(--color-purple);
    border-radius:50%;
    color:var(--color-very-light);
    display:inline-flex;
    height:1.5rem;
    justify-content:center;
    padding:.5rem;
    position:relative;
    text-decoration:none;
    width:1.5rem;
}
.carousel-navigation-anchor:hover, .carousel-navigation-anchor:active {
    background-color:var(--color-very-light);
    color:var(--color-very-dark);
}
.carousel-slide {
    align-items:center;
    background-color:var(--color-light);
    border-radius:.25em;
    box-sizing:border-box;
    color:var(--color-very-dark);
    flex-shrink:0;
    min-height:auto;
    justify-content:center;
    margin:0 1em 0 0;
    padding:0 1em;
    position:relative;
    scroll-snap-align:start;
    transform:scale(1);
    transform-origin:center center;
    transition:transform .5s;
    width:calc(50% - 0.5em);
}
.carousel-slides {
    width:100%;
    display:flex;
    overflow-x:scroll;
    scrollbar-width:none;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    text-align:center;
}
.carousel-slides::-webkit-scrollbar {
    display:none;
}
@media (max-width:800px) {
    .carousel-slide {
        margin:0;
        width:calc(100% - 0.5em);
   }
}

/*
     FILE ARCHIVED ON 17:08:38 Mar 09, 2025 AND RETRIEVED FROM THE
     INTERNET ARCHIVE ON 00:58:25 Feb 25, 2026.
     JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.

     ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
     SECTION 108(a)(3)).
*/
/*
playback timings (ms):
  captures_list: 1.168
  exclusion.robots: 0.036
  exclusion.robots.policy: 0.015
  esindex: 0.018
  cdx.remote: 7.675
  LoadShardBlock: 121.167 (3)
  PetaboxLoader3.datanode: 118.947 (4)
  PetaboxLoader3.resolve: 61.8 (3)
  load_resource: 78.367
*/