body{
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    color: #444444;
    padding:0 12px;
    margin:12px 0 0 0;
    counter-reset:section;
    line-height:1.5;
    overflow-x: hidden;
	margin: 0 auto;
}

.flexbox{
    display:flex;
    wrap:none;
}

.flexbox .personimage {
    width:96px;
    filter: grayscale(1);
}

.flexbox div{
    margin-right:1rem;
}

.banner-video, .banner-image{
    width:100%;
}

h1, h2, h3 {
    font-family: Baskerville, Georgia, Palatino, serif;
    color: #222222;
    padding:6px 0 0 0;
    margin:0;
}

h1{
    font-size:24px;
    margin-bottom:12px;
	counter-reset: h2-counter;
}

h2{
    font-size:20px;
    counter-increment: h2-counter;
    counter-reset: h3-counter;
}

h3{
	counter-increment: h3-counter;
}

h2:before{
   content: counter(h2-counter) ". ";
}

h3:before{
   content: counter(h2-counter) "." counter(h3-counter) ". ";
}

h4{
    margin:0;
}

a {
    color: #0099ff;
    margin: 0;
    padding: 0;
    vertical-align: baseline;
}
a:hover {
    text-decoration: none;
    color: #ff6600;
}
a:visited {
    color: purple;
}

ul, ol {
    padding: 0;
    margin: 0;
    margin-left:24px;
}

ul{
    list-style-type: none;
}

ul li:before{
    content:"›";   
    margin-left: -18px;
    margin-right:12px;
    color:#999;
    font-size:larger;
}

li:first-line{
    margin-left:36px;
}

li {
    margin:4px 0 8px 18px;
}
li ul, li ul {
    margin-left: 18px;
}
p, ul, ol {
    margin:6px 0;
}

p+p{
    padding:8px 0;
}

hr {
    max-width: 540px;
    margin: 24px auto;
    color: #aaa;
    border-top: none;
    border-left: none;
}

#publications ~ p {margin-bottom: 18px;}
#goto{clear:both;}

code{
    line-height:1;
}

img{
    margin:30px 0;
    max-width:100%;
}

.personimage img{
	margin: 6px 0;
}


@media only screen and (-webkit-min-device-pixel-ratio:2) and (max-device-width:667px){

    .flexbox .personimage img{
    	width:128px;
    }
    body{font-size:1rem;}
    h1{font-size:1.5rem;}
    h2{font-size:1.05rem;}
    h3{font-size:0.8rem;}
}

@media only screen and (min-resolution: 4x) and (device-width: 360px){
    body{
        font-size:1rem;
    }
    h1{
    	font-size:1.8rem;
    }
    h2{
    	font-size:1.25rem;
    }
    .flexbox .personimage img{
    	width:128px;
    }
    .flexbox .infobox{
    }
}

@media only screen and (min-device-width:1000px) {
    body{
        max-width:900px;
        margin: 0 auto;
    }
    h1{
        margin-top:24px;
    }
}

@media only screen and (min-resolution: 4x) and (device-width: 360px){
    body{
        font-size:12px;
    }
    img[src="gould.shrink.jpg"]{
        width:70px;
    }
}

@media only screen and (min-device-width:1000px) {
    body{
        max-width:840px;
        margin: 0 auto;
    }
}

p code {
    background:#f8f8f8;
    padding:2px 4px;
    color:#a00;
}

blockquote {
 display:block;
 font-style: italic;
 font-weight: bold;
 background: #eee;
 padding: 15px 20px 15px 45px;
 margin: 0 0 20px;
 position: relative;
}

blockquote:before{
	display:block;
    content:'\201C';   
    color:#999;
    font-size: 4em;
    margin-bottom:-2rem;
    margin-top:-1rem;
    margin-left:-2rem;
}

.btn {
	display: inline-block;
	font-weight: 400;
	color: #212529;
	text-align: center;
	vertical-align: middle;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	background-color: transparent;
	border: 1px solid transparent;
	padding: .375rem .75rem;
	font-size: 1rem;
	line-height: 1.5;
	border-radius: .25rem;
	transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}

.btn-primary {
    color: #fff;
    background-color: #7b0011;
    border-color: #7b0011;
}

.form-control{
	display: block;
	width: 100%;
	height: calc(1.5em + .75rem + 2px);
	padding: .375rem .75rem;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	color: #495057;
	background-color: #fff;
	background-clip: padding-box;
	border: 1px solid #ced4da;
	border-radius: .25rem;
}

.form-group{
	margin-bottom:1rem;
}

.form-group label {
    font-weight: bold;
}
label {
    display: inline-block;
    margin-bottom: .5rem;
}