section, article, aside, footer, header, nav, hgroup {
  display:block;
}

#social-list {
    list-style-type: none;
    margin: 0;
    padding: 0;
}

#socialsec {
    font-size: 90%;
    font-style: italic;
    border-top: 1px dashed #ccc;
}

#twitter-message * {
    vertical-align: middle;
}

#map-root li {
    line-height: 1.75em;
    list-style-type: disc;
}

#map-root img {
    margin-left: 0.5em;
    vertical-align: middle;
}

.idhint {
    color: #880000;
    font-size: 90%;
    margin-left: 1ex;
    text-decoration: none;
    display: none;
}

*:target {
    background: #222;
    color: white;
}

*:hover > .idhint {
    display: inline;
}

@media screen and (min-width:701px) {
.nav {
    position: absolute;
    top: 1ex;
    left: 1ex;
    right: 1ex;
    z-index: 5;
}

.nav ul {
    margin: 0;
    padding: 0;
    list-style-type: none;
}

.nav a {
    position: absolute;
    top: -1000px;
    padding: 0.5ex;
    color: #395792;
}

.nav a:focus, .nav a:active {
    background: white;
    background: rgba(255,255,255,0.9);
    border: 1px solid #395792;
    text-decoration: underline;
    position: static;
}

html {
    font-size: 14pt;
    font-family: Arial, sans-serif;
    color: #333;
    line-height: 2.5ex;
    background: white;
}

body {
    padding: 0;
    margin: 0;
}

a {
    color: #470303;
}

a img {
    border: none;
    outline: 0;
}

#header {
    border-bottom: 5px solid #395792;
    height: 6.5ex;
    position: relative;
    z-index: 2;
    padding: 0.5ex 0;

    background: #f8f8f8; /* Old browsers */
    background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); /* IE10+ */
    background: linear-gradient(to bottom, #f8f8f8 0%,#dddddd 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f8f8f8', endColorstr='#dddddd',GradientType=0 ); /* IE6-9 */
}

#headerwrap {
    list-style-type: none;
    margin: 0 auto;
    max-width: 100ex;
    min-width: 80ex;
    padding: 0;
    position: relative;
}

#headerwrap li {
    display: inline-block;
    vertical-align: middle;
    margin: 0 0.5ex;
}

#logoimg {
    padding: 0.5ex;
}

#headerwrap a {
    color: maroon;
    display: block;
    font-size: 110%;
    padding: 0.5ex 1ex;
    text-decoration: none;
    border-radius: 0.25ex;
    border: none;
}

#headerwrap #contactdiv a {
    display: inline;
}

#headerwrap a:hover {
    color: #395792;
}

#headerwrap a:focus,  #headerwrap a:active {
    background: #395792;
    color: white;
}

#logodiv a:focus, #logodiv a:active {
    background: #ccc;
}

#contactdiv {
    font-size: 80%;
    line-height: 2ex;
    position: absolute;
    right: 0;
    top: 0.5ex;
    text-align: right;
}

#contactdiv p {
    margin: 0.25ex;
}

#contentwrap {
    box-shadow: 0 4px 4px #888 inset;
}

#content {
    margin: 0 auto;
    min-height: 20ex;
    position: relative;
    max-width: 100ex;
    min-width: 70ex;
    z-index: 1;
    padding: 1ex 3.5ex;
}

#footerdiv {
    background: none repeat scroll 0 0 #F8F8F8;
    border: 1px solid #CCCCCC;
    color: #555555;
    margin: 1ex auto;
    padding: 1ex;
    max-width: 100ex;
    min-width: 70ex;
    clear: both;
    text-align: center;
}

#copyright {
    font-size: 85%;
    text-align: center;
    font-style: normal;
}

#port-philosophy {
    background: none repeat scroll 0 0 #395792;
    border: 1px solid white;
    border-radius: 1ex 1ex 1ex 1ex;
    box-shadow: 0 2px 3px #888888;
    color: white;
    float: left;
    min-width: 15ex;
    width: 40%;
    padding: 0.5ex 1.5ex;
    margin-right: 1.5ex;
    margin-bottom: 1.5ex;
}

#port-philosophy h2 {
    color: #7194D6;
    font-family: Georgia,serif;
    font-size: 200%;
    margin: 0.5ex 0 -0.5ex;
    text-align: right;
    position: relative;
}

#port-philosophy h2:before {
    content: "“”";
    font-size: 500%;
    left: 0;
    position: absolute;
    top: 375%;
    opacity: 0.5;
}

#port-philosophy p {
    z-index: 2;
    position: relative;
}

#what-we-do h2 {
    display: none;
}

.empty-message {
    font-size: 90%;
    font-style: italic;
}

.port.empty {
    display: none;
}

h1 {
    border-bottom: 1px dotted #555555;
    font-family: Arial;
}
h2 {
    color: maroon;
    font-size: 125%;
}

h2 img {
    vertical-align: middle;
}

h3 {
    color: #395792;
}

h3 img {
    vertical-align: middle;
}

.port h2 {
    color: #395792;
}

#port-software p {
    margin-top: 0.25ex;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 1ex;
    text-align: center;
    white-space: nowrap;
}

#port-software img {
    background: none repeat scroll 0 0 #F3F3F3;
    border: 1px solid #AAAAAA;
    border-radius: 1ex 1ex 1ex 1ex;
    box-shadow: 0 2px 2px #CCCCCC;
    margin: 0 0.25ex;
    padding: 0.5ex;
    vertical-align: middle;
}

#port-software img:hover {
    box-shadow: 0 0 2px 1px #AAAAAA;
}

#port-software h2 {
    color: #888888;
    margin-bottom: 0.75ex;
    margin-top: 0;
    visibility: hidden;
}

#port-software:hover h2 {
    visibility: visible;
}

#footinfo p {
    margin: 1ex 0 0;
}

#footerdiv img {
    vertical-align: middle;
}

#epigraph:before {
    color: #395792;
    content: "✓";
    font-size: 400%;
    left: -0.5ex;
    position: absolute;
    top: 0;
}

#epigraph {
    background: none repeat scroll 0 0 #EEEEEE;
    border: 1px solid white;
    box-shadow: 1px 1px 1px 0 #555555;
    float: right;
    font-size: 125%;
    font-style: italic;
    margin-bottom: 1ex;
    margin-left: 1ex;
    max-width: 35%;
    padding: 1em;
    position: relative;
}
#epigraph p {
    margin: 0;
}

#breadcrumbs {
    margin-top: -1ex;
}

#breadcrumbs li {
    display: inline-block;
    list-style-type: none;
    margin-right: 2ex;
    visibility: visible;
}

#breadcrumbs ol {
    background: none repeat scroll 0 0 #395792;
    border-radius: 0 0 0.5ex 0.5ex;
    box-shadow: 0 4px 4px #888888;
    list-style-type: none;
    margin: 0;
    padding: 0 1ex;
}

#breadcrumbs li {
    display: inline-block;
    list-style-type: none;
    margin-right: 2ex;
}

#breadcrumbs li:after {
    color: #91B4FA;
    content: "→";
    font-size: 80%;
    margin-left: 1ex;
}

#breadcrumbs a {
    color: white;
    font-size: 90%;
    text-decoration: none;
}

.float-left {
    float: left;
    margin-bottom: 0.5ex;
    margin-right: 1ex;
}

.float-left img {
    border: 1px solid #aaa;
    border-top: 1px solid #ccc;
    background: none repeat scroll 0 0 #F8F8F8;
    border-radius: 1ex 1ex 1ex 1ex;
    box-shadow: 0 2px 2px 0 #888888;
    padding: 0.5ex;
}

article h2.published {
    font-size: 90%;
    margin: 0 0 1ex;
    padding: 0;
}

article h1 {
    font-size: 150%;
    margin-bottom: 0;
}

article > header + p {
    font-size: 110%;
}

var {
    font-family: Courier,monospace;
    font-style: normal;
}

.article-list {
    list-style-type: none;
    margin: 0;
    padding: 0;
}

.article-list > li {
    border-bottom: 1px solid #AAAAAA;
    border-top: 1px solid #EEEEEE;
}

.article-list h2 {
    font-size: 110%;
    font-weight: normal;
    margin: 1ex 0 0;
}

.article-list h3 {
    color: #555555;
    font-size: 90%;
    font-weight: normal;
    margin: 0;
}

.article-list p {
    margin: 0.5ex 0;
}

.port h4 {
    margin: 0;
    font-weight: normal;
}

.port h5 {
    font-weight: normal;
    margin: 0;
}

.port .summary {
    font-size: 90%;
}

#latest-articles {
    clear: both;
}

#latest-articles > h3 {
    margin-bottom: 1ex;
}

.port .article-list li {
    background: #f8f8f8; /* Old browsers */
    background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); /* IE10+ */
    background: linear-gradient(to bottom, #f8f8f8 0%,#dddddd 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f8f8f8', endColorstr='#dddddd',GradientType=0 ); /* IE6-9 */

    border: 1px solid #CCCCCC;
    border-radius: 1ex 1ex 1ex 1ex;
    display: inline-block;
    margin-right: 1ex;
    margin-bottom: 1ex;
    min-width: 10em;
    padding: 1ex;
    width: 28%;
    vertical-align: top;
    overflow: hidden;
    text-overflow: "…";
    height: 28ex;
}

.code-snippet {
    background: none repeat scroll 0 0 #F8F8F8;
    border: 1px solid #CCCCCC;
    border-radius: 1ex 1ex 1ex 1ex;
    font-size: 80%;
    line-height: 1.15em;
    max-width: 100%;
    overflow: auto;
    padding: 2ex;
    white-space: pre;
    max-height: 30em;
}

.code-snippet ul {
    padding: 0 2ex;
    margin-left: 0;
    list-style-type: none;
    font-family: monospace;
}

.code-snippet > ul {
    padding: 0;
    margin: 0;
}

.ows-doctype {
    color: orange;
}

.ows-tagname {
    color: #0000BB;
}

.ows-attrname {
    color: #DD0000;
}

.ows-attrvalue {
    color: #007700;
}

.ows-comment {
    color: #888;
    font-style: italic;
}

.toc {
    background: none repeat scroll 0 0 #F8F8F8;
    border: 1px solid #CCCCCC;
    border-radius: 1ex 1ex 1ex 1ex;
    float: left;
    font-size: 80%;
    list-style-position: outside;
    list-style-type: square;
    margin-right: 1.5ex;
    margin-top: 0;
    padding: 1ex;
    width: 25ex;
}
.toc ol {
    font-size: 95%;
    list-style-type: square;
    margin: 0;
    padding-left: 2ex;
}
.toc a {
    color: #395792;
    text-decoration: none;
}
.toc a:hover {
    color: #880000;
    text-decoration: underline;
}
.toc > h2 {
    font-size: 100%;
    margin: 0;
    text-align: center;
}
article > ul {
    display: table;
}

.rss {
    margin-left: 0.5ex;
    border: none;
}

#mobile-menu-button {
    display: none;
}
}