/* Stylesheet of the Safeguards blog. One file for every page.

   PART 1 is the stylesheet of the Distill v2 article template. Only its
   comments are removed.
   Copyright 2018 The Distill Template Authors. Licensed under the Apache
   License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
   The template's script is not used. The d-* tags in the pages are plain
   elements that these rules style.

   PART 2 holds this site's own rules. Change the look there. */

/* ==================== PART 1: Distill v2 ==================== */
/* --- distill v2: base --- */
html {
  font-size: 14px;
	line-height: 1.6em;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;
  text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
@media(min-width: 768px) {
  html {
    font-size: 16px;
  }
}
body {
  margin: 0;
}
a {
  color: #004276;
}
figure {
  margin: 0;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
table th {
	text-align: left;
}
table thead {
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}
table thead th {
  padding-bottom: 0.5em;
}
table tbody :first-child td {
  padding-top: 0.5em;
}
pre {
  overflow: auto;
  max-width: 100%;
}
p {
  margin-top: 0;
  margin-bottom: 1em;
}
sup, sub {
  vertical-align: baseline;
  position: relative;
  top: -0.4em;
  line-height: 1em;
}
sub {
  top: 0.4em;
}
.kicker,
.marker {
  font-size: 15px;
  font-weight: 600;
  color: rgba(0, 0, 0, 0.5);
}
@media(min-width: 1024px) {
  d-title h1 span {
    display: block;
  }
}
figure {
  position: relative;
  margin-bottom: 2.5em;
  margin-top: 1.5em;
}
figcaption+figure {
}
figure img {
  width: 100%;
}
figure svg text,
figure svg tspan {
}
figcaption,
.figcaption {
  color: rgba(0, 0, 0, 0.6);
  font-size: 12px;
  line-height: 1.5em;
}
@media(min-width: 1024px) {
figcaption,
.figcaption {
    font-size: 13px;
  }
}
figure.external img {
  background: white;
  border: 1px solid rgba(0, 0, 0, 0.1);
  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);
  padding: 18px;
  box-sizing: border-box;
}
figcaption a {
  color: rgba(0, 0, 0, 0.6);
}
figcaption b,
figcaption strong, {
  font-weight: 600;
  color: rgba(0, 0, 0, 1.0);
}

/* --- distill v2: layout --- */
@supports not (display: grid) {
  .base-grid,
  distill-header,
  d-title,
  d-abstract,
  d-article,
  d-appendix,
  distill-appendix,
  d-byline,
  d-footnote-list,
  d-citation-list,
  distill-footer {
    display: block;
    padding: 8px;
  }
}
.base-grid,
distill-header,
d-title,
d-abstract,
d-article,
d-appendix,
distill-appendix,
d-byline,
d-footnote-list,
d-citation-list,
distill-footer {
  display: grid;
  justify-items: stretch;
  grid-template-columns: [screen-start] 8px [page-start kicker-start text-start gutter-start middle-start] 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr [text-end page-end gutter-end kicker-end middle-end] 8px [screen-end];
  grid-column-gap: 8px;
}
.grid {
  display: grid;
  grid-column-gap: 8px;
}
@media(min-width: 768px) {
  .base-grid,
  distill-header,
  d-title,
  d-abstract,
  d-article,
  d-appendix,
  distill-appendix,
  d-byline,
  d-footnote-list,
  d-citation-list,
  distill-footer {
    grid-template-columns: [screen-start] 1fr [page-start kicker-start middle-start text-start] 45px 45px 45px 45px 45px 45px 45px 45px [ kicker-end text-end gutter-start] 45px [middle-end] 45px [page-end gutter-end] 1fr [screen-end];
    grid-column-gap: 16px;
  }
  .grid {
    grid-column-gap: 16px;
  }
}
@media(min-width: 1000px) {
  .base-grid,
  distill-header,
  d-title,
  d-abstract,
  d-article,
  d-appendix,
  distill-appendix,
  d-byline,
  d-footnote-list,
  d-citation-list,
  distill-footer {
    grid-template-columns: [screen-start] 1fr [page-start kicker-start] 50px [middle-start] 50px [text-start kicker-end] 50px 50px 50px 50px 50px 50px 50px 50px [text-end gutter-start] 50px [middle-end] 50px [page-end gutter-end] 1fr [screen-end];
    grid-column-gap: 16px;
  }
  .grid {
    grid-column-gap: 16px;
  }
}
@media(min-width: 1180px) {
  .base-grid,
  distill-header,
  d-title,
  d-abstract,
  d-article,
  d-appendix,
  distill-appendix,
  d-byline,
  d-footnote-list,
  d-citation-list,
  distill-footer {
    grid-template-columns: [screen-start] 1fr [page-start kicker-start] 60px [middle-start] 60px [text-start kicker-end] 60px 60px 60px 60px 60px 60px 60px 60px [text-end gutter-start] 60px [middle-end] 60px [page-end gutter-end] 1fr [screen-end];
    grid-column-gap: 32px;
  }
  .grid {
    grid-column-gap: 32px;
  }
}
.base-grid {
  grid-column: screen;
}
.l-gutter {
  grid-column: gutter;
}
.l-text,
.l-body {
  grid-column: text;
}
.l-page {
  grid-column: page;
}
.l-body-outset {
  grid-column: middle;
}
.l-page-outset {
  grid-column: page;
}
.l-screen {
  grid-column: screen;
}
.l-screen-inset {
  grid-column: screen;
  padding-left: 16px;
  padding-left: 16px;
}
d-article aside {
  grid-column: gutter;
  font-size: 12px;
  line-height: 1.6em;
  color: rgba(0, 0, 0, 0.6)
}
@media(min-width: 768px) {
  aside {
    grid-column: gutter;
  }
  .side {
    grid-column: gutter;
  }
}

/* --- distill v2: title --- */
d-title {
  padding: 2rem 0 1.5rem;
  contain: layout style;
  overflow-x: hidden;
}
@media(min-width: 768px) {
  d-title {
    padding: 4rem 0 1.5rem;
  }
}
d-title h1 {
  grid-column: text;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.1em;
  margin: 0 0 0.5rem;
}
@media(min-width: 768px) {
  d-title h1 {
    font-size: 50px;
  }
}
d-title p {
  font-weight: 300;
  font-size: 1.2rem;
  line-height: 1.55em;
  grid-column: text;
}
d-title .status {
  margin-top: 0px;
  font-size: 12px;
  color: #009688;
  opacity: 0.8;
  grid-column: kicker;
}
d-title .status span {
  line-height: 1;
  display: inline-block;
  padding: 6px 0;
  border-bottom: 1px solid #80cbc4;
  font-size: 11px;
  text-transform: uppercase;
}

/* --- distill v2: byline --- */
d-byline {
  contain: style;
  overflow: hidden;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  font-size: 0.8rem;
  line-height: 1.8em;
  padding: 1.5rem 0;
  min-height: 1.8em;
}
d-byline .byline {
  grid-template-columns: 1fr 1fr;
  grid-column: text;
}
@media(min-width: 768px) {
  d-byline .byline {
    grid-template-columns: 1fr 1fr 1fr 1fr;
  }
}
d-byline .authors-affiliations {
  grid-column-end: span 2;
  grid-template-columns: 1fr 1fr;
  margin-bottom: 1em;
}
@media(min-width: 768px) {
  d-byline .authors-affiliations {
    margin-bottom: 0;
  }
}
d-byline h3 {
  font-size: 0.6rem;
  font-weight: 400;
  color: rgba(0, 0, 0, 0.5);
  margin: 0;
  text-transform: uppercase;
}
d-byline p {
  margin: 0;
}
d-byline a,
d-article d-byline a {
  color: rgba(0, 0, 0, 0.8);
  text-decoration: none;
  border-bottom: none;
}
d-article d-byline a:hover {
  text-decoration: underline;
  border-bottom: none;
}
d-byline p.author {
  font-weight: 500;
}
d-byline .affiliations {
}

/* --- distill v2: article --- */
d-article {
  contain: layout style;
  overflow-x: hidden;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  padding-top: 2rem;
  color: rgba(0, 0, 0, 0.8);
}
d-article > * {
  grid-column: text;
}
@media(min-width: 768px) {
  d-article {
    font-size: 16px;
  }
}
@media(min-width: 1024px) {
  d-article {
    font-size: 1.06rem;
    line-height: 1.7em;
  }
}
d-article .marker {
  text-decoration: none;
  border: none;
  counter-reset: section;
  grid-column: kicker;
  line-height: 1.7em;
}
d-article .marker:hover {
  border: none;
}
d-article .marker span {
  padding: 0 3px 4px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
  position: relative;
  top: 4px;
}
d-article .marker:hover span {
  color: rgba(0, 0, 0, 0.7);
  border-bottom: 1px solid rgba(0, 0, 0, 0.7);
}
d-article h2 {
  font-weight: 600;
  font-size: 24px;
  line-height: 1.25em;
  margin: 2rem 0 1.5rem 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  padding-bottom: 1rem;
}
@media(min-width: 1024px) {
  d-article h2 {
    font-size: 36px;
  }
}
d-article h3 {
  font-weight: 700;
  font-size: 18px;
  line-height: 1.4em;
  margin-bottom: 1em;
  margin-top: 2em;
}
@media(min-width: 1024px) {
  d-article h3 {
    font-size: 20px;
  }
}
d-article h4 {
  font-weight: 600;
  text-transform: uppercase;
  font-size: 14px;
  line-height: 1.4em;
}
d-article a {
  color: inherit;
}
d-article p,
d-article ul,
d-article ol,
d-article blockquote {
  margin-top: 0;
  margin-bottom: 1em;
  margin-left: 0;
  margin-right: 0;
}
d-article blockquote {
  border-left: 2px solid rgba(0, 0, 0, 0.2);
  padding-left: 2em;
  font-style: italic;
  color: rgba(0, 0, 0, 0.6);
}
d-article a {
  border-bottom: 1px solid rgba(0, 0, 0, 0.4);
  text-decoration: none;
}
d-article a:hover {
  border-bottom: 1px solid rgba(0, 0, 0, 0.8);
}
d-article .link {
  text-decoration: underline;
  cursor: pointer;
}
d-article ul,
d-article ol {
  padding-left: 24px;
}
d-article li {
  margin-bottom: 1em;
  margin-left: 0;
  padding-left: 0;
}
d-article li:last-child {
  margin-bottom: 0;
}
d-article pre {
  font-size: 14px;
  margin-bottom: 20px;
}
d-article hr {
  grid-column: screen;
  width: 100%;
  border: none;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  margin-top: 60px;
  margin-bottom: 60px;
}
d-article section {
  margin-top: 60px;
  margin-bottom: 60px;
}
d-article span.equation-mimic {
  font-family: georgia;
  font-size: 115%;
  font-style: italic;
}
d-article > d-code,
d-article section > d-code  {
  display: block;
}
d-article > d-math[block],
d-article section > d-math[block]  {
  display: block;
}
@media (max-width: 768px) {
  d-article > d-code,
  d-article section > d-code,
  d-article > d-math[block],
  d-article section > d-math[block] {
      overflow-x: scroll;
      -ms-overflow-style: none;  // IE 10+
      overflow: -moz-scrollbars-none;  // Firefox
  }
  d-article > d-code::-webkit-scrollbar,
  d-article section > d-code::-webkit-scrollbar,
  d-article > d-math[block]::-webkit-scrollbar,
  d-article section > d-math[block]::-webkit-scrollbar {
    display: none;  // Safari and Chrome
  }
}
d-article .citation {
  color: #668;
  cursor: pointer;
}
d-include {
  width: auto;
  display: block;
}
d-figure {
  contain: layout style;
}
.katex, .katex-prerendered {
  contain: style;
  display: inline-block;
}
d-article table {
  border-collapse: collapse;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
d-article table th {
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
d-article table td {
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}
d-article table tr:last-of-type td {
  border-bottom: none;
}
d-article table th,
d-article table td {
  font-size: 15px;
  padding: 2px 8px;
}
d-article table tbody :first-child td {
  padding-top: 2px;
}

/* --- distill v2: print --- */
@media print {
  @page {
    size: 8in 11in;
    @bottom-right {
      content: counter(page) " of " counter(pages);
    }
  }
  html {
  }
  p, code {
    page-break-inside: avoid;
  }
  h2, h3 {
    page-break-after: avoid;
  }
  d-header {
    visibility: hidden;
  }
  d-footer {
    display: none!important;
  }
}

/* --- distill v2: d-appendix --- */
d-appendix {
  contain: layout style;
  font-size: 0.8em;
  line-height: 1.7em;
  margin-top: 60px;
  margin-bottom: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  color: rgba(0,0,0,0.5);
  padding-top: 60px;
  padding-bottom: 48px;
}

d-appendix h3 {
  grid-column: page-start / text-start;
  font-size: 15px;
  font-weight: 500;
  margin-top: 1em;
  margin-bottom: 0;
  color: rgba(0,0,0,0.65);
}

d-appendix h3 + * {
  margin-top: 1em;
}

d-appendix ol {
  padding: 0 0 0 15px;
}

@media (min-width: 768px) {
  d-appendix ol {
    padding: 0 0 0 30px;
    margin-left: -30px;
  }
}

d-appendix li {
  margin-bottom: 1em;
}

d-appendix a {
  color: rgba(0, 0, 0, 0.6);
}

d-appendix > * {
  grid-column: text;
}

d-appendix > d-footnote-list,
d-appendix > d-citation-list,
d-appendix > distill-appendix {
  grid-column: screen;
}


/* --- distill v2: d-footnote-list --- */
d-footnote-list {
  contain: layout style;
}

d-footnote-list > * {
  grid-column: text;
}

d-footnote-list a.footnote-backlink {
  color: rgba(0,0,0,0.3);
  padding-left: 0.5em;
}


/* --- distill v2: d-citation-list --- */
d-citation-list {
  contain: style;
}

d-citation-list .references {
  grid-column: text;
}

d-citation-list .references .title {
  font-weight: 500;
}


/* ==================== PART 2: this site ==================== */
body{background:#fff}
img{max-width:100%;height:auto}
d-title,d-byline,d-article,d-appendix{box-sizing:border-box}
d-title>*,d-byline>*{grid-column:text;min-width:0}
d-article>*,d-appendix>*{min-width:0}
d-article{overflow-wrap:break-word}
.article-header{width:100%;padding:36px;padding-bottom:20px;box-sizing:border-box;display:flex;align-items:center;gap:12px}
.home-link{color:#333;font-weight:700;font-size:1.3em}
/* The line under the title, then the authors and the date in grey italics, with no band of their own. */
d-byline{contain:none;overflow:visible;border-top:1px solid rgba(0,0,0,.1);border-bottom:none;padding:36px 0 0;min-height:0;font-size:1rem;line-height:1.3;font-style:italic;color:#777}
@media(min-width:1024px){d-byline{font-size:1.06rem}}
d-byline>div{margin-bottom:calc(1em + 32px)}
d-byline>div::after{content:"";display:block;clear:both}
d-byline .authors{display:inline;margin:0}
/* The date keeps a gap after the last name. If the gap does not fit, the date goes to the next line. */
d-byline .date{float:right;margin:0 0 0 1em}
/* Each row of names is a line of its own on a wide screen. On a narrow screen a row would wrap and leave one name alone on a line, so there the rows run on. */
d-byline .author-row{display:block}
d-byline .author-row:last-child{display:inline}
@media(max-width:767px){d-byline .author-row{display:inline}}
d-article{border-top:none;padding-top:0}
/* "Tl;dr:" stands in the left margin on a wide screen, and on a line of its own on a phone. */
d-article p.tldr{position:relative}
d-article p.tldr>strong:first-child{position:absolute;right:calc(100% + 10px);top:0;white-space:nowrap;font-weight:400;color:#777;text-transform:lowercase}
@media(max-width:768px){d-article p.tldr>strong:first-child{position:static;display:block}}
/* Each main section starts after a wide gap and a line across the whole screen. */
d-article{overflow-x:clip}
d-article hr{grid-column:screen;margin-top:60px;margin-bottom:60px}
/* A section heading has no line under it: the line across the screen above it marks the section. */
d-article h2{position:relative;margin-top:153px;border-bottom:none;padding-bottom:0}
d-article h2::before{content:"";position:absolute;left:-100vw;right:-100vw;top:-93px;border-top:1px solid rgba(0,0,0,.1)}
d-article hr+h2{margin-top:2rem}
d-article hr+h2::before{content:none}
@media(max-width:767px){d-article h2{margin-top:149px}d-article h2::before{top:-89px}}
d-article ul,d-article ol{padding-left:0;margin-bottom:.2em}
d-article li,d-article li:last-child{margin-left:48px;margin-bottom:.5em}
d-article strong{font-weight:600;color:rgba(0,0,0,.9)}
d-article a.cite{border-bottom:none;color:hsla(206,90%,20%,.7)}
d-article a.cite:hover{text-decoration:underline;border-bottom:none}
sup.fn{font-size:.75em}
d-article sup.fn a{border-bottom:none;color:hsla(206,90%,20%,.7);padding:0 1px}
d-article sup.fn a:hover{text-decoration:underline;border-bottom:none}
code{font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono","Liberation Mono",Menlo,monospace}
d-article p code,d-article li code{background:rgba(0,0,0,.04);border-radius:2px;padding:2px 5px;font-size:.88em;color:rgba(0,0,0,.65);white-space:normal;overflow-wrap:anywhere}
d-article pre.transcript{margin:.5em 0 1em;padding:12px 16px;background:rgba(241,243,244,.8);border:1px solid #dadce0;border-radius:4px;font-family:"Roboto Mono",Consolas,Monaco,"Courier New",monospace;font-size:.85em;line-height:1.4;white-space:pre-wrap;overflow-wrap:break-word;overflow-x:auto;color:#137333}
d-article figure,d-article figure.l-body-outset{grid-column:text;margin-bottom:0}
d-article figure img{display:block;width:100%;height:auto}
/* Each picture is a link to its own file, so a reader can open it at full size. The link has no underline. */
d-article figure>a{display:block;border-bottom:none;cursor:zoom-in}
d-article figure>a:hover{border-bottom:none}
/* A picture with no caption keeps the gap below it that a caption would give. */
d-article figure>a:last-child{margin-bottom:1.25rem}
d-article figcaption{margin-top:21px;margin-bottom:1.25rem;font-style:italic}
@media(min-width:768px){d-article figcaption{margin-top:24px}}
@media(min-width:1024px){d-article figcaption{margin-top:25px}}
d-article figcaption strong{font-weight:500;color:inherit}
d-appendix{overflow-wrap:anywhere;color:rgba(0,0,0,.65)}
d-appendix a{color:rgba(0,0,0,.7)}
d-byline .authors span:not(.author-row){white-space:nowrap}
@media(max-width:999px){d-appendix h3{grid-column:text}}
d-appendix ol{margin-bottom:1.5em}
d-appendix a.footnote-backlink{color:rgba(0,0,0,.55);padding-left:.5em;text-decoration:none}
d-appendix p.ref{margin:0 0 1em;position:relative;padding-left:2.2em}
d-appendix p.ref .n{position:absolute;left:0;white-space:nowrap}
@media(min-width:768px){d-appendix p.ref{padding-left:0}d-appendix p.ref .n{left:auto;right:100%;margin-right:.45em}}
:target{background:rgba(255,229,100,.25)}
a.home-link{text-decoration:none}
d-title p a{color:inherit}
d-article .box{background:rgba(0,0,0,.03);border-left:2px solid rgba(0,0,0,.12);border-radius:2px;padding:14px 18px;margin:.5em 0 1.75em}
d-article .box p:last-child{margin-bottom:0}
d-article .table-wrap{overflow-x:auto;margin-bottom:1.5rem}
d-article .table-wrap table{margin-bottom:0;width:100%}
d-article li ul,d-article li ol{margin-top:.5em;margin-bottom:0}
/* Home page */
.container{--indent:16px;font-size:16.8px;line-height:22.4px;margin:100px 0 100px calc(.2*calc(100% - 700px));max-width:700px}
.container h1{font-size:250%;line-height:1.2em;margin-top:80px;margin-bottom:0}
.container h2{font-size:170%;line-height:1.2em;margin-top:74px;margin-bottom:calc(.83em - 6px)}
.container .date{padding-bottom:2px;text-transform:uppercase;font-weight:bold;font-size:80%;color:#333;border-bottom:1px solid #333;margin-top:60px}
.container .paper{display:block;text-decoration:none;color:#000;border-bottom:1px solid #d8d8d8;background:hsla(32,44%,86%,100%);padding:22px 16px 22px var(--indent)}
.container .paper:hover{padding-left:calc(var(--indent) - 2px);border-left:2px solid black}
.container .paper h3{font-size:1.3em;margin-top:0;margin-bottom:12px}
.container .paper .byline{font-style:italic;opacity:.6;margin-bottom:12px}
.container .toc>p{margin-top:60px;font-style:italic;color:#333}
.container .toc>:first-child{margin-top:54px}
.container .info *{margin:0;opacity:.8}
.container .info *:not(:first-child){margin-top:24px}
.container .info a{font-weight:bold;color:#000}
@media only screen and (max-width:750px){
.container{margin:100px 0;--indent:20px;max-width:100%}
.container h1,.container h2{margin-left:var(--indent);margin-right:var(--indent)}
.container .info{padding-left:var(--indent);padding-right:var(--indent);width:calc(100% - calc(2*var(--indent)))}
.container .date{padding-left:20px}
.container .toc{width:100%}
.container .toc>p{margin-left:var(--indent);margin-right:var(--indent)}
.container .paper>*{max-width:700px}
}
