@font-face {
    font-family: "pxplus";
    src: url("/PxPlus_VGA_SquarePx.ttf");
}
body {
    font-family: "PxPlus VGA SquarePx", "pxplus";
    font-size: 130%;
    color: white;
    background-color: #555;
    margin: 0;
    /* white-space: pre; */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    overflow-x: hidden;
    min-height: 100vh;
}
body * {
    background-color: blue;

}
p {
    margin: 0;
}
h1, h2 {
    font-size: 1em;
}
h1 {
    white-space: pre;
}
h2 {
    text-transform: uppercase;
    display: inline;
    font-weight: normal;
}
a:link {
    color: #a50;
}
a:visited {
    color: #a0a;
}
section, nav {
    flex-grow: 0;
    max-width: 118ch;
    width: calc( 100% - 4ch + 2px );
    border-style: solid;
    margin-bottom: 1.576em;
}
nav {
    max-width: 120ch;
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    margin-top: auto;
    margin-bottom: 0;
    border-width: 1em 1ch;
    border-image: url("/sf.svg") 33%;
}
nav > a {
    display: block;
    /* flex-grow: 1; */
    /* text-align: center; */
    border-width: 1em 0;
    border-image: url("/st.svg") 50% 0%;
    border-style: solid;
    margin: calc( 1px - 1em ) 0;
    text-decoration: none;
    color: white;
}
section#intro {
    padding: 0 1ch  .788em 1ch;
    display: flex;
    flex-direction: column;
    align-items: center;
}    
section#intro {
    border-image: url("/doubleopentop.svg") 25% 25% 22%;
    border-width: .788em 1ch;
}
/* but what if there is no h1:first-child? there wasn't one today... */
section#intro > h1:first-child {
    display: flex;
    flex-direction: row;
    width: 100%;
    margin: -0.78em -2ch .788em -2ch;
    background: none;
}
section#intro > h1:first-child:before,
section#intro > h1:first-child:after {
    content: "";
    display: block;
    width: auto;
    border: solid;
    border-width: .78em 1ch 0 1ch;
    border-image-slice: 48% 25% 0% 25%;
    flex-grow: 1;
}
section#intro > h1:first-child:before {
    margin-right: 1ch;
    margin-left: calc( 1px - 2ch );
    border-image-source: url( "/doubletitleleft.svg" );
}
section#intro > h1:first-child:after {
    margin-left: 1ch;
    margin-right: calc( 1px - 2ch );
    border-image-source: url( "/doubletitleright.svg" );
}
section#intro > p {
    max-width: 80ch;
    text-align: center;
}
section, .buttons a, nav {
    box-shadow: 1ch .788em black;
}
.buttons a {
    color: white;
}
.buttons a:active {
    box-shadow: .5ch .394em black;
}
section.project {
    padding: .788em 1ch 0;
    border-width: 0 1ch 1em;
    border-image: url("sbl.svg") 0% 33% 50% repeat;
}
section.project:last-child {
    margin-bottom: auto;
}
section.project > :not( h2 ):first-child::before {
    display: block;
    width: calc( 100%  );
    height: 1em;
    background-color: inherit;
    content: " ";
    margin-top: -1em;
    margin-left: -2ch;
    border-width: 0 1ch;
    border-style: solid;
    border-image: url("sbu.svg") 0% 33% 0% fill;
    padding: 0 1ch;
}
section.project > h2:first-child {
    display: flex;
    flex-direction: row;
    margin: 0;
    margin-top: -.74em;
    margin-left: calc( 1px - 2ch );
    margin-bottom: .5em;
    width: calc( 100% + 4ch );
}
section.project > h2:first-child::before {
    display: inline-block;
    background-color: inherit;
    content: "┌──┤";
    font-weight: normal;
    margin-right: 1ch;
}
section.project > h2:first-child::after {
    display: block;
    background-color: inherit;
    width: auto;
    flex-grow: 1;
    margin-left: 1ch;
    margin-right: 2px;
    border-width: 0 1ch;
    border-style: solid;
    border-image: url("sbtl.svg") 0% 33% 0% fill;
    content: " ";
}
.background {
    background-color: #555;
    color: black;
}
.background.█, .background .█ {
    background-color: black;
}
figure {
    float: left;
    margin: 0 2ch 0 0;
}
video {
    width: 34ex;
}
dl {
    padding-left: 0;
    text-indent: 0;
}
dt {
    display: inline-block;
    min-width: 10ch;
    color: cyan;
}
dd {
    display: inline;
    margin: 0;
}
dd::after {
    /* this is how we newline... */
    display: block;
    content: '';
}
.buttons {
    text-align: right;
}
.buttons a {
    display: inline-block;
    color: white;
    text-decoration: none;
    background-color: #A50;
    border: solid #A50;
    border-width: 16px 1ch;
    border-image: url("sf.svg") 33% 33%;
    padding: 0 1ch;
    margin-right: 1ch;
    margin-bottom: 1.576em;
}
menu {
    margin: 0;
    background-color: darkgrey;
    width: 100%;
    max-width: 118ch;
    border: solid darkgrey;
    border-width: 0 10000px 0;
    padding: 0;
    text-align: right;
    max-height: 1em;
    z-index: 100;
    margin-bottom: 1em;
}

menu * {
    background: none;
}

menu > li {
    display: inline-block;
    height: 1em;
}

menu > li > ul {
    margin: 0;
    max-height: 1em;
    /* overflow: hidden; */
    position: relative;
}

menu > li > ul li {
    display: block;
    height: 1em;
    background-color: black;
    padding-left: 1ch;
    padding-right: 3ch;
    color: white;
}

menu > li > ul::after {
    content: "▼";
    position: absolute;
    top: 0;
    right: 1ch;
}


menu > li > ul:not( *:focus, *:focus-within ) > a {
    display: none;
}

menu > li > ul > a:not( *:hover ) > li {
    background-color: #AAA;
    color: black;
}

menu > li > ul > a {
    text-decoration: none;
}
nav > a:visited {
    color: #AAA;
}
nav > a:link {
    color: white;
}

nav > a:hover {
    text-decoration: underline;
    border-image: url("/dt.svg") 50% 0%;
}

nav > a.current {
    border-image: url("/dt.svg") 50% 0%;
}
