@charset "utf-8";

html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
    scroll-padding-top: 80px; 
    scroll-behavior: smooth;
}
body {
	margin: 0
}
main {
	display: block
}
h1 {
	font-size: 2em;
	margin: .67em 0
}
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible
}
pre {
	font-family: monospace, monospace;
	font-size: 1em
}
a {
	background-color: transparent
}
abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted
}
b, strong {
	font-weight: bolder
}
code, kbd, samp {
	font-family: monospace, monospace;
	font-size: 1em
}
small {
	font-size: 80%
}
sub, sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline
}
sub {
	bottom: -.25em
}
sup {
	top: -.5em
}
img {
	border-style: none
}
button, input, optgroup, select, textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0
}
button, input {
	overflow: visible
}
button, select {
	text-transform: none
}
[type=button], [type=reset], [type=submit], button {
	-webkit-appearance: button
}
[type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner, button::-moz-focus-inner {
	border-style: none;
	padding: 0
}
[type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring, button:-moz-focusring {
	outline: 1px dotted ButtonText
}
fieldset {
	padding: .35em .75em .625em
}
legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal
}
progress {
	vertical-align: baseline
}
textarea {
	overflow: auto
}
[type=checkbox], [type=radio] {
	box-sizing: border-box;
	padding: 0
}
[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button {
	height: auto
}
[type=search] {
	-webkit-appearance: textfield;
	outline-offset: -2px
}
[type=search]::-webkit-search-decoration {
	-webkit-appearance: none
}
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit
}
details {
	display: block
}
summary {
	display: list-item
}
template {
	display: none
}
[hidden] {
	display: none
}
/* Colors inspired by Dracula Theme | https://draculatheme.com */ :root {
	color-scheme: dark;
	--color-bg: #110e17;
	--color-link: rgba(255, 255, 255, 0.15);
	--color-none: rgba(0, 0, 0, 0);
	--color-select: #323565;
	--color-text: #f8f8f2;
	--color-light: #6272a4;
	--color-purple: #A39BF2;
	--color-purple1: #AC91F7;
	--color-purple2: #9D85E2;
	--color-purple3: #5c5fa2;
	--color-purple4: #323565;
	--color-pink: #ff79c6; /* or softer # ? */
	--color-softpink: #ffc0cb; /* or softer # ? */
	--color-cyan: #8be9fd;
	--color-green: #CEEF83;
	--color-orange: #ffb86c;
	--color-lightorange: #ffd4a7;
	--color-red: #ff5555;
	--color-yellow: #f1fa8c;
}
::selection {
	background: var(--color-select);
}
::-moz-selection {
	background: var(--color-select);
}
/* Core */
body {
	background-color: var(--color-bg);
	font-size: 1em;
	font-family: "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", "DejaVu Sans", Verdana, "sans-serif";
}
p {
	color: var(--color-text);
	line-height: 1.7em;
	margin: 1.2em auto;
	text-align: left;
}
a {
	color: var(--color-text);
	background-color: var(--color-link);
	padding: 0 2px;
	border-width: thin;
	text-decoration: none;
	border-radius: 0.25em;
}
a:hover {
	background-color: var(--color-green);
	color: var(--color-purple4);
}
hr {
	border: none;
	border-top: 1px solid var(--color-purple2);
	margin: 1.25em auto;
}
h1 {
	color: var(--color-pink);
	font-size: 2.2em;
	margin: 1.55em 0 0.15em;
	font-weight: 500;
}
h1 a {
	color: var(--color-pink);
}
h2 {
	color: var(--color-cyan);
	font-size: 1.8em;
	margin: 1.20em 0 0.15em;
	font-weight: 500;
}
h3 {
	color: var(--color-green);
	font-size: 1.5em;
	margin: 1.00em 0 0.15em;
	font-weight: 500;
}
h4 {
	color: var(--color-yellow);
	font-size: 1.2em;
	margin: 0.7em 0 0.15em;
	font-weight: 500;
}
h5 {
	color: var(--color-purple);
	font-size: 1.1em;
	margin: 0.5em 0 0.15em;
	font-weight: 500;
}
h6 {
	color: var(--color-purple);
	font-size: 1.0em;
	margin: 0.3em 0 0.15em;
	font-weight: 500;
}
ul, ol {
	line-height: 1.7em;
	padding-left: 3em;
}
ul li, ol li {
	color: var(--color-text);
}
ul {
	list-style-type: square;
}
ol {
	list-style-type: decimal-leading-zero;
}
.cols2 {
	column-count: 2;
}
.cols3 {
	column-count: 3;
}
.cols4 {
	column-count: 4;
}
.cols2 li, .cols3 li, .cols4 li {
	margin-right: 1rem;
}
blockquote {
	background-color: var(--color-purple3);
	border-left: 0.2em solid var(--color-green);
	color: var(--color-text);
	margin: auto 1em;
	padding: 1.5em;
	font-size: 1.3em;
	line-height: 1.5em;
	border-top-right-radius: 1.2em;
	border-bottom-right-radius: 1.2em;
}
/* Inline Typography */
.textleft {
	text-align: left;
}
.textcenter {
	text-align: center;
}
.textright {
	text-align: right;
}
.floatleft {
	float: left;
}
.floatright {
	float: right;
}
.clear, .clearboth {
	clear: both;
}
.displaynone {
	display: none;
}
.colortext {
	color: var(--color-text);
}
.colorcyan {
	color: var(--color-cyan);
}
.colorgreen {
	color: var(--color-green);
}
.colorpink {
	color: var(--color-pink);
}
.colorsoftpink {
	color: var(--color-softpink);
}
.colorpurple {
	color: var(--color-purple);
}
.colorpurple1 {
	color: var(--color-purple1);
}
.colorpurple2 {
	color: var(--color-purple2);
}
.colorpurple3 {
	color: var(--color-purple3);
}
.colorpurple4 {
	color: var(--color-purple4);
}
.colororange {
	color: var(--color-orange);
}
.colorred {
	color: var(--color-red);
}
.coloryellow {
	color: var(--color-yellow);
}
.tiny {
	font-size: 0.6em;
}
.small, small {
	font-size: 0.75em;
}
.big {
	font-size: 1.2em;
}
.huge {
	font-size: 1.4em;
}
.strike, del {
	text-decoration: line-through;
	text-decoration-style: wavy;
	text-decoration-color: var(--color-orange);
}
.underline {
	text-decoration: underline;
}
.nobullets {
	list-style: none;
	padding-left: 2.5em;
	text-indent: -1.8rem;
}
.noborders, .noborders a {
	border: none;
}
/* Blocks */
#top {
	position: sticky;
	z-index: 1;
	top: 0;
	filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.5));
}
#wrapper {
	border-bottom-left-radius: 1em;
	border-bottom-right-radius: 1em;
	padding: 2.5% 5% 5% 5%;
	background: var(--color-purple3);
	/* background: linear-gradient(150deg, var(--color-light) 0%, var(--color-purple3) 80%); */
	filter: drop-shadow(0 10px 10px rgba(0, 0, 0, 0.5));
	/* but this is really interesting... blob. Maybe as fixed bg?

  border-radius: 60% 40% 40% 20% / 70% 50% 30% 25%;

  */
	position: relative;
}
#footer {
	padding: 1% 2%;
	margin: 0 5% 1% 5%;
	border-bottom-left-radius: 1.2em;
	border-bottom-right-radius: 1.2em;
	background-color: var(--color-purple4);
	color: var(--color-purple);
	font-size: 0.75em;
}
#footer a, #footer a:hover {
	color: var(--color-purple);
	margin: 0 2px;
}
.gridbox, .skillbox {
	display: grid;
	align-items: start;
	grid-template-columns: auto;
}
/* Navigation */
nav {
	text-align: center;
	background: var(--color-purple4);
	background: linear-gradient(150deg, var(--color-purple3) 0%, var(--color-purple4) 80%);
	border-bottom-left-radius: 1em;
	border-bottom-right-radius: 1em;
	font-size: 1em;
}
nav ul#nav {
	padding: 0;
	margin: 0;
	list-style: none;
}
nav ul#nav li {
	margin: 0%;
	display: inline;
}
nav ul#nav li a {
	text-decoration: none;
	border-bottom: none;
	background-color: var(--color-none);
	color: var(--color-cyan);
	white-space: nowrap;
}
nav ul#nav li a:hover, nav ul li a:active {
	background-color: var(--color-cyan);
	color: var(--color-purple3);
	border-bottom-left-radius: 1em;
	border-bottom-right-radius: 1em;
}
nav ul#nav li a:hover span {
	display: inline-grid;
	animation: wiggle 8s;
	animation-iteration-count: infinite;
}
/* Index specifics */
#welcome h1 {
	font-weight: normal;
}
#welcome h1 a {
	border-bottom: none;
	background-color: var(--color-purple3);
	border-radius: 0.25em;
}
#welcome h1 a:hover {
	color: var(--color-purple4);
	background-color: var(--color-pink);
}
.wave {
	display: inline-block;
	animation: wave 2s;
	animation-iteration-count: infinite;
	cursor: grabbing;
}
#welcome h1 a:hover .wave {
    content: "🤜";
}
.headshot {
	border-radius: 10em;
	border-bottom: 3px solid var(--color-orange);
	max-width: 300px;
	margin: 3%;
	background-image: url("images/throwback.png");
	shape-outside: circle();
}
img.secretmullet:hover {
	content: url("../images/throwback.png");
}

/* Resume specifics */
#resume h2 {
	display: inline-block;
	background-color: var(--color-purple4);
	padding: 0.25em 0.45em 0.25em 0.4em;
	border-left: 0.2em solid var(--color-pink);
	transform: skew(-7.5deg);
}
#resume h3 {
	color: var(--color-softpink);
}
#resume h3 span {
	background-color: var(--color-purple3);
	padding: 0 0.5rem 0 0;
}
#resume .tags {
	clear: both;
	line-height: 1.6em;
}
#resume .tag {
	background-color: var(--color-purple);
	color: var(--color-text);
	padding: 0.2rem;
	font-size: 0.65rem;
	border-radius: 0.25rem;
	white-space: nowrap;
	cursor: default;
}
.tag.highlight {
	background-color: var(--color-purple2);
}
.highlight {
	text-decoration: underline;
	text-decoration-color: var(--color-purple2);
	text-decoration-thickness: 0.15em;
}
#resume_mainbar ul {
	padding-left: 1.5em;
}
#resume_mainbar ul li {
	margin-bottom: 0.5em;
	padding: 0.2rem;
}
#resume_sidebar ul {
	font-size: 0.9em
}
#resume_sidebar ul {
	padding: 0;
}
#resume_sidebar ul li {
	list-style: none;
}

#supporting a { white-space:nowrap; }

.redacted{
  display:inline-block;
  height:1.3em;
  background:#43467e;
  border-radius:3px;
  vertical-align:-0.35em;
}

/* Footer specifics */
#footer p {
	margin: 0px; 
	line-height: 1em;
}
#footer a {
	border-bottom: none;
}
#footer a {
	background-color: var(--color-none);
}
#footer a:hover {
	background-color: var(--color-purple);
	color: var(--color-purple4);
}
/* Keyframes */
@keyframes wave {
	50% {
		transform: translate(-2px, 1px) rotate(-10deg) scale(1.025);
	}
}
@keyframes wiggle {
	10%, 30%, 50%, 70%, 90% {
		transform: translate(-3px, -1px) rotate(-8deg) scale(1.05);
	}
	20%, 40%, 60%, 80% {
		transform: translate(3px, -1px) rotate(8deg) scale(1.05);
	}
}
/* Responsive */
@media (max-width: 480px) {
	#wrapper, nav {
		margin: 0;
	}
	nav {
		border-bottom-left-radius: 0;
		border-bottom-right-radius: 0;
	}
	nav ul li a {
		padding: 0.05em 1em;
	}
	.cols2, .cols3, .cols4 {
		column-count: 1;
	}
	.skillbox {
		grid-template-columns: 100%;
	}
	.headshot {
		max-width: 180px;
	}
}
@media (min-width: 481px) and (max-width: 768px) {
	#wrapper {
		margin: 0 2%;
	}
	nav {
		margin: 0;
	}
	nav ul li a {
		padding: 0.1rem 1rem;
	}
	.cols2, .cols3, .cols4 {
		column-count: 1;
	}
	.skillbox {
		grid-template-columns: 48% 48%;
		grid-column-gap: 4%;
	}
	.skillblock:first-child {
		grid-column: 1 / 3; /* span from grid column line 1 to 3 (i.e., span 2 columns) */
	}
	.headshot {
		max-width: 240px;
	}
}
@media (min-width: 769px) and (max-width: 1023px) {
	#wrapper {
		margin: 0 3%;
	}
	nav {
		margin: 0 0.5%;
	}
	nav ul li a {
		padding: 0.2rem 1rem;
	}
	.cols2, .cols3, .cols4 {
		column-count: 2;
	}
	.gridbox {
		grid-template-columns: auto auto;
		grid-column-gap: 3.5em;
	}
	.skillbox {
		grid-template-columns: auto;
	}
	.headshot {
		max-width: 240px;
	}
}
@media (min-width: 1024px) {
	#wrapper {
		margin: 0 4%;
	}
	nav {
		margin: 0 1%;
	}
	nav ul li a {
		padding: 0.4rem 1.2rem;
	}
	.gridbox {
		grid-template-columns: auto auto;
		grid-column-gap: 5em;
	}
	.skillbox {
		grid-template-columns: auto;
	}
}
@media print {
	#top, #footer {
		display: none;
	}
}

body::after {
	position: absolute;
	width: 0;
	height: 0;
	overflow: hidden;
	z-index: -1;
	content: url("../images/throwback.png");
}