@import url("https://use.typekit.net/jlb5olz.css");

/* heavily borrowed from Harvard's cs61, which calls it cs161.css */

ol > li > ol {
	list-style-type: lower-alpha;
}
ol.upper-alpha {
	list-style-type: upper-alpha;
}
p + ol, p + ul {
	margin-bottom: 1rem;
}
p:last-child {
	margin-bottom: 0.5rem;
}

/* cs202 additions */
.required, .challenge, .question {
  padding: .5em .5em .5em .5em;
  display: block;
  margin-left: auto;
  margin-right: auto;
  background: #f0f0ff;
}

.highlight {
    border-left: 0.25rem solid rgba(255, 255, 0, 0.5);
    background: #fffff0;
    padding-left: 0.25rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    padding-right: 1rem;
}

.honors {
  padding: .5em .5em .5em .5em;
  display: block;
  margin-left: auto;
  margin-right: auto;
  background: #fffff0;
}


.callout {
    border-left: 0.25rem solid #5bc0de;
    background: #5bc0de;
    padding-left: 0.25rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    padding-right: 1rem;
}

div.required .header {
    font-weight: bold;
}
div.honors .header {
    font-weight: bold;
}

div.callout .header {
    font-weight: bold;
}


div.challenge .header {
    font-style: italic;
}


div.challenge {
    background-color: #ffe0e0;
}



div.highlight .header {
    font-weight: bold;
}

pre {
    background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4
}

#topnavbar ul {
 width: 100%;
 float: left;

 margin: 0;
 padding: 0;

 text-align: center;
 white-space: nowrap;
 color: #000;
 font-family: Arial, Helvetica, sans-serif;
 background-color: white;
 border-top: solid 2px maroon;
 border-bottom: solid 2px maroon;
 clear: right;
 margin-top: .5em;
 margin-bottom: .5em;
}

#topnavbar ul li {
 display: inline;
 padding-left: 0;
 padding-right: 0;
}

#topnavbar ul li a {
 padding: 3px 10px;
 text-decoration: none;
 color: #000;
 background-color: white;
 float: left;
 border-right: 1px solid black;
}

#topnavbar ul li a:hover {
 background-color: maroon;
 color: white;
}

#topnavbar div { 
 clear: both;
}

div#news {
  width: 30%;
  float: right;
  margin-left: 2em;
  padding-left: 1em;
  background-color: #fffff0;
  margin-bottom: 0.5em;
  border-left: 0.25rem solid rgba(255, 255, 0, 0.5);
/*  border: 1px solid maroon;*/
}

dl.idealist dt { 
  font-weight: bold;
}

dl.idealist dt { 
  margin-top: 0.5em;
}


dl.newslist { 
 margin: 0;
 padding: 0;
}

dl.newslist dt { 
 padding-left: 0;
 color: #000055;
 font-weight: bold;
 margin-bottom: 0.2em;
}

dl.newslist dd {
  padding-bottom: 1em;
  margin-bottom: 0;
  margin-left: 1em;
  padding-left: 0;
  margin-right: 1em;
}

div#news p { 
margin-top: 0; 
padding-top: 0;
}

#announcements p { 
  color: maroon;
}

#announcements h1 { 
  color: #ffffff;
  text-align: center;
  font-size: 110%;
  text-decoration: underline;
}

/* The alternating announcement colors */
#announcements p.one { color: #ff0000; }
#announcements p.two { color: #00ff00; }
#announcements p.three { color: #3333ff; }

.announce_date { font-weight: bold; }
table.people {
  margin-left: 10px;
  padding: 2px;
  border-collapse: collapse;
  border: none;
}

table.people th { 
  font-weight: bold;
  text-align: left;
  border: 0;
/*  border-bottom: solid 2px; */
}

table.people td { 
  padding-right: 1em;
/*
  border: none;
  border-bottom: 1px solid #888;
  padding-right: 1em;
  padding-left: 1em;
*/
}

table.books {
  margin-left: 2%;
/*  margin-bottom: 8px; */
}

table.books tr,td {
  vertical-align: top;
}

table.assignments { 
/*  width: 98%; */
  margin-left: 1%;
  margin-right: 1%;
  border-collapse: collapse;
}

table.assignments th { 
/*  background: #E0FFFF;*/
  color: black;
  border: none;
  text-align: left;
  width: 29%;
}

table.assignments tr,td { 
/*  padding: 50px;
  border-width: 50px;
  border-style: solid;
  border-color: black;
  border-spacing: 0px;*/
  border: none;
}

table.schedule {
  width: 98%;
  margin-left: 1%;
  margin-right: 1%;
  border-collapse:  collapse;
}

table.schedule th { 
/*  background: maroon;*/
  color: black;
  border-width: 0px;
  text-align: left;
}

table.Schedule tr { 
  padding: 3px;  
  border-width: 1px; 
  border-spacing: 0px; 
  border-style: solid;  
  border-color: black;
}

table.Schedule th,td { 
  padding: 5px;  
  border-width: 1px; 
  border-spacing: 0px; 
  border: none;  
  border-color: black;
}
/* Presentation:  No underlines on links in schedule unless you're
 * moving the mouse over it. */

table.schedule tr.lecture { background: white; border-bottom: 1px solid #736F6E; }
table.schedule tr.alt { background: #E0FFFF; }
/*table.schedule tr.lecture.alt { background: white; }*/
/*table.schedule tr.noclass { background: #d3d3d3; }
table.schedule tr.makeupclass { background: #FAAFBE; }*/
table.schedule tr.noclass { color: #736F6E; }
table.schedule tr.makeupclass { color: #FF0000; border-bottom: 1px solid #736F6E;}
table.schedule td.readings { color: black; }
table.schedule td.altreadings { color: black; }
table.schedule tr.due { color: #FF0000; }
table.schedule td.due { color: #FF0000; }
table.schedule tr.exam    { color: #FF0000; background: #ccf; }
table.schedule tr.recitation { background: #ccf; }
table.schedule tr.recitation.alt { background: #ccf; }
table.schedule tr.lechead { font-weight: bold; text-align: left; height:20px}



/* end cs202 additions */

blockquote {
	margin-left: 2rem;
	padding-left: 1rem;
}
blockquote > h3:first-child {
	margin-top: 0.5rem;
}
blockquote, blockquote.solution.note {
	border-left: 0.25rem solid rgba(0, 0, 80, 0.25);
}
.solution.shown, .solution-collapsed.shown {
	animation: slide-down .3s ease-out;
}
.solution, blockquote.highlight {
	border-left: 0.25rem solid rgba(255, 255, 0, 0.5);
	background: #fffff0;
	padding-top: 0.25rem;
	padding-bottom: 0.25rem;
	padding-right: 1rem;
}
.solution-collapsed, blockquote.note {
	background: #f0f0ff;
	padding-top: 0.25rem;
	padding-bottom: 0.25rem;
	padding-right: 1rem;
}
.solution-collapsed {
	display: table;
	border-left: 0rem none;
	margin-left: 0rem;
	font-size: smaller;
}
.larger {
	font-size: larger;
}
a.js-solution.hide {
	font-size: smaller;
}
a.js-solution.hide.all {
	font-size: inherit;
}
.githubref {
	text-align: right;
	margin-top: -0.5rem;
	font-style: italic;
	font-size: 0.75rem;
}
.float-left {
	float: left;
}
.float-right {
	float: right;
}
@keyframes slide-down {
	0% { opacity: 0; }
	100% { opacity: 1; }
}
.post {
	margin-bottom: 3rem;
}
.post img {
	max-width: 100%;
}
.tall > img {
	max-height: 50vh;
}
h1, h2, h3, h4 {
	font-family: "brix-slab", sans-serif;
}
h1 {
	font-weight: 900;
}
h2 {
	margin-top: 3rem;
	font-weight: 700;
}
h2:first-child {
	margin-top: 0;
}
.h3, h3 {
	font-size: 1.5rem;
}
.h4, h4 {
	font-size: 1.25rem;
	font-style: italic;
}
h3 {
	margin-top: 1.5rem;
}
h3 > code {
	color: inherit;
}
.container th, .container td {
	padding: 0.15rem 1.5rem 0.15rem 0;
}
.container table {
	margin: 0.85rem 0;
	border-spacing: 0;
}
tr.even > td,
table.alternate > tbody > tr:nth-child(even) > td {
	background: #f0f0ff;
}
tr.separator > td, tr.separator > th {
	background: #d8d8f8;
}
td > p:first-child, th > p:first-child {
	margin-top: 0.25rem;
}
td > p:last-child, th > p:last-child {
	margin-bottom: 0.25rem;
}
table.padleft > thead > tr > th:first-child,
table.padleft > tbody > tr > td:first-child,
table.padleft > tbody > tr > th:first-child {
	padding-left: 0.35rem;
}
th.r {
	font-weight: normal;
}
tr.row-wide-padding > td {
	padding-left: 3em;
	padding-right: 3em;
}
tr.row-wide-padding > td:first-child {
	padding-left: 0;
}
tr.row-wide-padding > td:last-child {
	padding-right: 0;
}
tr.row-space-above > td {
	padding-top: 3em;
}
div.sp {
	margin-top: 3em;
}

blockquote.float-left {
	margin-left: 0;
	padding-left: 0;
	border-left: 0 none;
	margin-right: 3rem;
}
blockquote.float-left.half-width {
	min-width: 25rem;
	max-width: 100%;
}

/* prettier table types */
table.wikitable > tr > th,
table.wikitable > tr > td,
table.wikitable > * > tr > th,
table.wikitable > * > tr > td {
	border: 1px solid #a2a9b1;
	padding: 0.2em 0.4em;
}
table.wikitable th {
	text-align: center;
	background-color: #eaecf0;
}
td.hgray, tr.hgray {
	background-color: #888888;
}
td.hpink, tr.hpink {
	background: #ff80bb;
}

table.truthtable > * > tr > th,
table.truthtable > * > tr > td {
	border: 2px solid #a2a9b1;
	padding: 0.6em;
	text-align: center;
}

table.nowrap1 > * > tr > th:first-child,
table.nowrap1 > * > tr > td:first-child {
	white-space: nowrap;
}
table.text-right-1 > * > tr > th:first-child,
table.text-right-1 > * > tr > td:first-child {
	text-align: right;
}
table.text-right-2 > * > tr > th:nth-child(2),
table.text-right-2 > * > tr > td:nth-child(2) {
	text-align: right;
}
.text-left {
	text-align: left;
}
.text-center {
	text-align: center;
}
.text-right {
	text-align: right;
}

hr.c {
	clear: both;
	margin: 0;
	border: 0 none;
	height: 0;
}

.hellobackground {
	position: fixed;
	transform: rotate(-15deg);
	opacity: 0.15;
	z-index: -1;
	top: -3rem;
	left: -2.5rem;
}
.float-left.rotate-img-m5 {
	margin-right: 1.5em;
}
.float-right.rotate-img-5 {
	margin-left: 1.5em;
}
img.rotate-img-5, .rotate-img-5 img {
	transform: rotate(5deg);
}
img.rotate-img-m5, .rotate-img-m5 img {
	transform: rotate(-5deg);
}

figure > img {
	max-width: 100%;
	object-fit: scale-down;
}

.navbar-has-drafts {
	background: yellow;
}

.hidden {
	display: none;
}
hr.prbr {
	border: 0 none;
}
hr.twoem {
	border: 0 none;
	margin-top: 2em;
}
hr.fourem {
	border: 0 none;
	margin-top: 4em;
}
hr.eightem {
	border: 0 none;
	margin-top: 8em;
}
hr.sixteenem {
	border: 0 none;
	margin-top: 16em;
}

@media print {
html {
	font-size: 125%;
}
h1 {
	font-size: 2rem;
}
h2 {
	font-size: 1.5rem;
	margin-top: 2rem;
}
.prbr {
	page-break-before: always;
	margin-top: 0;
}
@page {
	margin-top: 0.75in;
	margin-bottom: 0.75in;
}
.hellobackground {
	display: none;
}
.print-hide-solutions .solution, .print-hide-solutions .solution-collapsed {
	display: none;
}
a, a:not(.btn) {
	color: inherit;
	text-decoration: none;
}
}

@media not print {
.pronly {
	display: none;
}
}

.navbar .gsc-control-cse {
	padding: 0;
	padding-top: .5rem;
	padding-left: 1rem;
	background: inherit;
	border: 0 none;
}
