@charset "UTF-8";
/**

//HTML5 Boilerplate + Normalize
*= require "_vendor/normalize.css"
*= require "_vendor/html5bp.css"

//Code
*= require "_code.css"
*/
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: paralucent, sans serif;
  font-weight: 400; }

* {
  box-sizing: border-box; }

.main {
  width: 100%;
  padding: 15px;
  font-size: 12pt; }
  .main h1,
  .main h2 {
    font-family: paralucent, sans serif;
    font-weight: 500; }
    .main h1 a,
    .main h2 a {
      color: #131313; }
      .main h1 a:hover,
      .main h2 a:hover {
        color: #3667a1; }
      .main h1 a:active,
      .main h2 a:active {
        color: #1c3553; }
      .main h1 a:visited,
      .main h2 a:visited {
        color: #131313; }
      .main h1 a:focus,
      .main h2 a:focus {
        color: #3667a1; }
  .main h1 {
    font-size: 26px;
    margin-top: 20px;
    line-height: 1.2em; }
  .main h2 {
    font-size: 18px;
    margin-top: 40px;
    margin-bottom: 15px; }
    .main h2.title {
      margin-top: 0; }
  .main h3 {
    margin-top: 1.5em; }
  .main h3.date {
    font-style: italic;
    font-weight: 300;
    font-size: 14px;
    color: #acacac;
    margin-bottom: 15px;
    border-bottom: solid thin #acacac; }
  .main a {
    color: #3667a1; }
    .main a:visited {
      color: #3667a1; }
    .main a:focus {
      color: #498bd9; }
    .main a:hover {
      text-decoration: underline;
      color: #131313; }
    .main a:active {
      color: #1c3553; }
  .main li {
    margin-bottom: 0.3em; }
  .main img,
  .main video {
    margin: 10px 0;
    max-width: 100%; }

body {
  background: #fff9b5;
  /* fallback for old browsers */
  background: linear-gradient(to left, #d9f7ff, #fff9b5);
  font-family: expo-serif-pro, serif;
  color: #131313;
  font-size: 14pt;
  width: 100%;
  margin: 0; }

.site-container {
  background-color: #fffbca; }

a {
  color: #3667a1;
  text-decoration: none; }
  a:hover {
    color: #498bd9; }
  a:active {
    color: #1c3553; }
  a:visited {
    color: #3667a1; }
  a:focus {
    color: #498bd9; }

pre {
  overflow-x: scroll; }

pre.highlight {
  padding: 6px;
  font-family: "Courier New", Courier, monospace; }

blockquote {
  font-size: 0.9em;
  border-left: solid thin #ddd;
  padding-left: 10px; }

.one-column {
  max-width: 675px; }

.project-grid-description {
  max-width: 600px; }

h2.project-category {
  padding: 5px;
  font-size: 18px !important; }
  h2.project-category::before {
    content: "";
    display: inline-block;
    height: 12px;
    width: 12px;
    margin-right: 6px;
    background-color: #ee5b36; }

.project-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  grid-gap: 30px; }

.project {
  color: #131313; }
  .project .project-image {
    height: 150px;
    margin-bottom: 10px;
    overflow: hidden; }
    .project .project-image img {
      margin: 0;
      max-width: 100%;
      display: block;
      position: relative;
      top: 50%;
      transform: translateY(-50%); }
  .project .project-title {
    margin: 0; }
  .project .project-description {
    font-size: 1rem;
    line-height: 1.2rem; }
  .project .recent {
    font-size: 0.8rem;
    font-weight: bold;
    vertical-align: top;
    color: #ee5b36; }

hr {
  margin: 30px 0;
  border-top: solid thin #939393;
  border-bottom: none; }

article.blogpost p.summary {
  font-style: italic;
  background-color: rgba(255, 255, 255, 0.5);
  padding: 10px; }

.blogposts-list {
  margin-top: 25px; }

.blogpost-link {
  margin-bottom: 5px; }
  .blogpost-link::before {
    content: "- "; }

table td,
table th {
  border: solid thin #ddd;
  padding: 5px; }

.iframe-container {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 60%; }

.video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

img.book-cover {
  max-height: 200px;
  border: solid 1px black; }

img.transcript-headshot {
  border-radius: 100%;
  height: 1.5rem;
  vertical-align: top;
  margin: -0.2rem 0.4rem 0 0; }

figure img {
  margin-bottom: 0; }

figure figcaption {
  font-size: 12px;
  color: #777;
  text-align: right;
  margin-top: -15px; }
  figure figcaption a.figure-link,
  figure figcaption a.figure-link:visited {
    color: #777; }

.subscribe {
  background-color: rgba(245, 245, 245, 0.4);
  border-top: solid 3px #ee5b36;
  padding: 20px;
  margin: 50px 0; }
  .subscribe h4 {
    margin: 10px 0; }
  .subscribe .subscribe-links {
    font-weight: bold;
    margin: 10px 0; }

.llm-conversation {
  background: rgba(255, 255, 255, 0.5);
  padding: 10px;
  font-family: Arial, Helvetica, sans-serif;
  border-radius: 5px; }
  .llm-conversation .prompt {
    margin-bottom: 4px; }
    .llm-conversation .prompt::before {
      content: "Prompt: ";
      color: #888;
      font-weight: bold;
      text-transform: uppercase;
      font-size: 12px;
      margin-right: 3px; }
  .llm-conversation .completion::before {
    content: "Completion: ";
    color: #888;
    font-weight: bold;
    text-transform: uppercase;
    font-size: 12px;
    margin-right: 3px; }
  .llm-conversation .completion span {
    font-weight: normal;
    color: black;
    background-color: rgba(100, 255, 100, 0.3); }

header {
  width: 100%;
  padding: 20px 0 0 20px;
  font-family: paralucent, sans serif;
  font-weight: 400; }
  header a.logo {
    display: none; }
  header h1.name {
    display: inline-block;
    line-height: 0.6em;
    font-weight: 300;
    margin: 15px 0; }
    header h1.name a {
      font-size: 23px;
      color: #131313;
      margin: 0; }

nav {
  display: inline-block;
  vertical-align: bottom; }
  nav ul {
    margin: 0;
    padding: 0;
    overflow: hidden; }
    nav ul li {
      display: inline-block;
      margin-right: 5px;
      font-size: 14px; }
  nav ul.contact {
    display: none; }
  nav .subscribe-header {
    font-size: 12px;
    color: #aaa;
    display: none;
    /* hide on mobile */ }
  nav ul.subscribe-links {
    display: inline-block;
    margin-bottom: 10px; }

.home-body-text {
  max-width: 40rem; }
  .home-body-text hr {
    border-color: #999;
    margin: 2rem 8rem; }

@media screen and (min-width: 500px) {
  nav a {
    font-size: 16px; }
  .main {
    padding: 35px 25px;
    font-size: 16px; }
    .main h1 {
      font-size: 28px; }
    .main h2 {
      font-size: 20px; }
    .main h3.date {
      font-size: 16px; }
  footer {
    font-size: 16px; }
  img.book-cover {
    float: left;
    margin-right: 20px; } }

@media screen and (min-width: 860px) {
  header {
    position: fixed;
    top: 0px;
    left: 0px;
    width: 170px;
    height: 100%;
    padding-top: 55px;
    text-align: right; }
    header a.logo {
      display: inline-block;
      height: 60px;
      width: 60px; }
      header a.logo img {
        border-radius: 100%; }
  nav {
    text-align: right; }
    nav ul.sections {
      margin: 20px 0; }
    nav ul li {
      display: block; }
    nav li {
      display: block; }
    nav .subscribe-header {
      display: block; }
  .main_container {
    display: block;
    margin-left: 200px; }
    .main_container .main {
      font-size: 13pt;
      line-height: 1.5em;
      width: 90%;
      max-width: 1000px;
      margin: 0 5% 20px 5%; } }

.highlight .hll {
  background-color: #ffffcc; }

.highlight {
  background: #f8f8f8; }

.highlight .c {
  color: #408080;
  font-style: italic; }

/* Comment */
.highlight .err {
  border: 1px solid #FF0000; }

/* Error */
.highlight .k {
  color: #008000;
  font-weight: bold; }

/* Keyword */
.highlight .o {
  color: #666666; }

/* Operator */
.highlight .ch {
  color: #408080;
  font-style: italic; }

/* Comment.Hashbang */
.highlight .cm {
  color: #408080;
  font-style: italic; }

/* Comment.Multiline */
.highlight .cp {
  color: #BC7A00; }

/* Comment.Preproc */
.highlight .cpf {
  color: #408080;
  font-style: italic; }

/* Comment.PreprocFile */
.highlight .c1 {
  color: #408080;
  font-style: italic; }

/* Comment.Single */
.highlight .cs {
  color: #408080;
  font-style: italic; }

/* Comment.Special */
.highlight .gd {
  color: #A00000; }

/* Generic.Deleted */
.highlight .ge {
  font-style: italic; }

/* Generic.Emph */
.highlight .gr {
  color: #FF0000; }

/* Generic.Error */
.highlight .gh {
  color: #000080;
  font-weight: bold; }

/* Generic.Heading */
.highlight .gi {
  color: #00A000; }

/* Generic.Inserted */
.highlight .go {
  color: #888888; }

/* Generic.Output */
.highlight .gp {
  color: #000080;
  font-weight: bold; }

/* Generic.Prompt */
.highlight .gs {
  font-weight: bold; }

/* Generic.Strong */
.highlight .gu {
  color: #800080;
  font-weight: bold; }

/* Generic.Subheading */
.highlight .gt {
  color: #0044DD; }

/* Generic.Traceback */
.highlight .kc {
  color: #008000;
  font-weight: bold; }

/* Keyword.Constant */
.highlight .kd {
  color: #008000;
  font-weight: bold; }

/* Keyword.Declaration */
.highlight .kn {
  color: #008000;
  font-weight: bold; }

/* Keyword.Namespace */
.highlight .kp {
  color: #008000; }

/* Keyword.Pseudo */
.highlight .kr {
  color: #008000;
  font-weight: bold; }

/* Keyword.Reserved */
.highlight .kt {
  color: #B00040; }

/* Keyword.Type */
.highlight .m {
  color: #666666; }

/* Literal.Number */
.highlight .s {
  color: #BA2121; }

/* Literal.String */
.highlight .na {
  color: #7D9029; }

/* Name.Attribute */
.highlight .nb {
  color: #008000; }

/* Name.Builtin */
.highlight .nc {
  color: #0000FF;
  font-weight: bold; }

/* Name.Class */
.highlight .no {
  color: #880000; }

/* Name.Constant */
.highlight .nd {
  color: #AA22FF; }

/* Name.Decorator */
.highlight .ni {
  color: #999999;
  font-weight: bold; }

/* Name.Entity */
.highlight .ne {
  color: #D2413A;
  font-weight: bold; }

/* Name.Exception */
.highlight .nf {
  color: #0000FF; }

/* Name.Function */
.highlight .nl {
  color: #A0A000; }

/* Name.Label */
.highlight .nn {
  color: #0000FF;
  font-weight: bold; }

/* Name.Namespace */
.highlight .nt {
  color: #008000;
  font-weight: bold; }

/* Name.Tag */
.highlight .nv {
  color: #19177C; }

/* Name.Variable */
.highlight .ow {
  color: #AA22FF;
  font-weight: bold; }

/* Operator.Word */
.highlight .w {
  color: #bbbbbb; }

/* Text.Whitespace */
.highlight .mb {
  color: #666666; }

/* Literal.Number.Bin */
.highlight .mf {
  color: #666666; }

/* Literal.Number.Float */
.highlight .mh {
  color: #666666; }

/* Literal.Number.Hex */
.highlight .mi {
  color: #666666; }

/* Literal.Number.Integer */
.highlight .mo {
  color: #666666; }

/* Literal.Number.Oct */
.highlight .sa {
  color: #BA2121; }

/* Literal.String.Affix */
.highlight .sb {
  color: #BA2121; }

/* Literal.String.Backtick */
.highlight .sc {
  color: #BA2121; }

/* Literal.String.Char */
.highlight .dl {
  color: #BA2121; }

/* Literal.String.Delimiter */
.highlight .sd {
  color: #BA2121;
  font-style: italic; }

/* Literal.String.Doc */
.highlight .s2 {
  color: #BA2121; }

/* Literal.String.Double */
.highlight .se {
  color: #BB6622;
  font-weight: bold; }

/* Literal.String.Escape */
.highlight .sh {
  color: #BA2121; }

/* Literal.String.Heredoc */
.highlight .si {
  color: #BB6688;
  font-weight: bold; }

/* Literal.String.Interpol */
.highlight .sx {
  color: #008000; }

/* Literal.String.Other */
.highlight .sr {
  color: #BB6688; }

/* Literal.String.Regex */
.highlight .s1 {
  color: #BA2121; }

/* Literal.String.Single */
.highlight .ss {
  color: #19177C; }

/* Literal.String.Symbol */
.highlight .bp {
  color: #008000; }

/* Name.Builtin.Pseudo */
.highlight .fm {
  color: #0000FF; }

/* Name.Function.Magic */
.highlight .vc {
  color: #19177C; }

/* Name.Variable.Class */
.highlight .vg {
  color: #19177C; }

/* Name.Variable.Global */
.highlight .vi {
  color: #19177C; }

/* Name.Variable.Instance */
.highlight .vm {
  color: #19177C; }

/* Name.Variable.Magic */
.highlight .il {
  color: #666666; }

/* Literal.Number.Integer.Long */
.highlight {
  background: rgba(255, 255, 255, 0.2); }

.publication-link {
  margin-bottom: 30px; }
  .publication-link .main-metadata p {
    margin: 0; }
  .publication-link .paper-title {
    font-weight: bold; }
  .publication-link .links {
    background-color: rgba(176, 176, 176, 0.1);
    padding: 5px 10px;
    margin-top: 10px;
    border-radius: 20px;
    font-variant: all-small-caps;
    font-size: 22px;
    font-family: paralucent, sans serif; }
  .publication-link .links a {
    padding-right: 5px;
    margin-right: 5px;
    border-right: solid thin #ddd; }
    .publication-link .links a:last-child {
      border-right: none; }

a.starred {
  font-weight: bold; }
  a.starred::before {
    content: "⭐️ "; }

h1.the-archive {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #4daaba 100%);
  padding: 500px 10px 10px 10px;
  color: white;
  margin-top: 150px;
  border-radius: 10px; }
  h1.the-archive .small {
    font-size: 14px;
    font-style: italic; }