* {
    margin: 0;
    padding: 0;
  }
  
  :root {
    --padding: 1.5rem;
    --color-black: #000;
    --color-white: #fff;
    --color-grey: #777;
    --color-light: #efefef;
    --color-text: var(--color-black);
    --color-text-grey: var(--color-grey);
    --color-background: var(--color-white);
    --color-code-light-grey:  #cacbd1;
    --color-code-comment:     #a9aaad;
    --color-code-white:       #c5c9c6;
    --color-code-red:         #d16464;
    --color-code-orange:      #de935f;
    --color-code-yellow:      #f0c674;
    --color-code-green:       #a7bd68;
    --color-code-aqua:        #8abeb7;
    --color-code-blue:        #7e9abf;
    --color-code-purple:      #b294bb;
    --font-family-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    --font-family-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
  }
  
  html {
    font-family: var(--font-family-sans);
    color: var(--color-text);
    background: var(--color-background);
  }
  img {
    width: 100%;
  }
  body {
    /* padding: var(--padding); */
    /* max-width: 70rem; */
    margin: 0 auto;
    padding:0;
  }
  li {
    list-style: none;
  }
  a {
    color: currentColor;
    text-decoration: none;
  }
  button {
    font: inherit;
    background: none;
    border: 0;
    color: currentColor;
    cursor: pointer;
  }
  strong, b {
    font-weight: 600;
  }
  small {
    font-size: inherit;
    color: var(--color-text-grey);
  }
  
  .bg-light {
    background-color: var(--color-light);
  }
  .color-grey {
    color: var(--color-text-grey);
  }
  
  
  .social {
    display: flex;
    padding: 0 .5rem;
  }
  .social a {
    padding: 1rem .5rem;
  }
  
  
  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
  }
  
  .text {
    line-height: 1.5em;
  }
  .text a {
    text-decoration: underline;
  }
  .text :first-child {
    margin-top: 0;
  }
  .text :last-child {
    margin-bottom: 0;
  }
  .text p,
  .text ul,
  .text ol {
    margin-bottom: 1.5rem;
  }
  .text ul,
  .text ol {
    margin-left: 1rem;
  }
  .text ul p,
  .text ol p {
    margin-bottom: 0;
  }
  .text ul > li {
    list-style: disc;
  }
  .text ol > li {
    list-style: decimal;
  }
  .text ul ol,
  .text ul ul,
  .text ol ul,
  .text ol ol {
    margin-bottom: 0;
  }
  .text h1,
  .h1,
  .intro {
    font-size: 2rem;
    margin-bottom: 3rem;
    line-height: 1.25em;
  }
  .text h2,
  .h2 {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 1.25rem;
  }
  .text h3,
  .h3 {
    font-weight: 600;
  }
  .text .codeblock {
    display: grid;
  }
  .text code {
    font-family: var(--font-family-mono);
    font-size: 1em;
    background: var(--color-light);
    padding: 0 .5rem;
    display: inline-block;
    color: var(--color-black);
  }
  .text pre {
    margin: 3rem 0;
    background: var(--color-black);
    color: var(--color-white);
    padding: 1.5rem;
    overflow-x: scroll;
    overflow-y: hidden;
    line-height: 1.5rem;
  }
  .text pre code {
    padding: 0;
    background: none;
    color: inherit;
  }
  .text hr {
    margin: 6rem 0;
  }
  .text dt {
    font-weight: 600;
  }
  .text blockquote {
    font-size: 1.25rem;
    line-height: 1.325em;
    border-left: 2px solid var(--color-black);
    padding-left: 1rem;
    margin: 3rem 0;
    max-width: 25rem;
  }
  .text blockquote footer {
    font-size: .875rem;
    font-style: italic;
  }
  .text figure {
    margin: 3rem 0;
  }
  .text figcaption {
    padding-top: .75rem;
    color: var(--color-text-grey);
  }
  
  hr {
    border: 0;
    background: currentColor;
    height: 2px;
    width: 1.5rem;
    margin: 3rem auto;
  }
  
  .align-center {
    text-align: center;
  }
  
  .intro {
    max-width: 40rem;
  }
  .intro *:not(:last-child) {
    margin-bottom: 1em;
  }
  
  .cta {
    background: var(--color-black);
    color: var(--color-white);
    display: inline-flex;
    justify-content: center;
    padding: .75rem 1.5rem;
    border: 4px solid var(--color-white);
    outline: 2px solid var(--color-black);
  }
  
  .box {
    background: var(--color-light);
    padding: 1.5rem;
    border: 4px solid var(--color-white);
    outline: 2px solid var(--color-light);
  }
  
  .video,
  .img {
    position: relative;
    display: block;
    --w: 1;
    --h: 1;
    padding-bottom: calc(100% / var(--w) * var(--h));
    
  }
  .img img,
  .video iframe {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border: 0;
  }
  .img[data-contain] img {
    object-fit: contain;
  }
  .img-caption,
  .video-caption {
    padding-top: .75rem;
    line-height: 1.5em;
  }
  
  
  
  .map {
    --w: 2;
    --h: 1;
    padding-bottom: calc(100% / var(--w) * var(--h));
    position: relative;
    overflow: hidden;
    background: var(--color-black);
  }
  .map iframe {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
  }
  
  .margin-s {
    margin-bottom: .75rem;
  }
  .margin-m {
    margin-bottom: 1.5rem;
  }
  .margin-l {
    margin-bottom: 3rem;
  }
  .margin-xl {
    margin-bottom: 4.5rem;
  }
  .margin-xxl {
    margin-bottom: 6rem;
  }
  
  
  
  
  .pagination {
    display: flex;
    padding-top: 6rem;
  }
  .pagination > span {
    color: var(--color-text-grey);
  }
  .pagination > * {
    padding: .5rem;
    width: 3rem;
    text-align: center;
    border: 2px solid currentColor;
    margin-right: 1.5rem;
  }
  .pagination > a:hover {
    background: var(--color-black);
    color: var(--color-white);
    border-color: var(--color-black);
  }
  
  .note-excerpt {
    line-height: 1.5em;
  }
  .note-excerpt header {
    margin-bottom: 1.5rem;
  }
  .note-excerpt figure {
    margin-bottom: .5rem;
  }
  .note-excerpt-title {
    font-weight: 600;
  }
  .note-excerpt-date {
    color: var(--color-text-grey);
  }
  
  
/*  EOF basic styles  */  

html, body {
    min-height:100%;
    display:flex;
}
html {
    font-family:Arial, Helvetica, sans-serif;
    margin:0;
    padding:0;
}
body {
    width:100%;
    flex-direction: column;
    /*padding:0 1.5rem;*/
}
.main {
    flex-grow:1;
}



/* Projects overview */

ul.projects {
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    list-style:none;
    grid-column-gap: 1.5rem;
    grid-row-gap:3rem;
    margin:0;
    padding:0;
}

.projects img {
    width:100%;
}
.projects figure {
    margin:0;
    padding:0;
}

/* Project pages */

.project-layout {
    display: grid;
    grid-template-columns: 1fr 2fr;  
    grid-gap: 3rem;
}
.project-gallery ul {
    list-style: none;
    display:grid;
    grid-template-columns: repeat(4, 1fr);
    align-items: center;
    grid-gap:1rem;
}
.project-gallery ul li:first-child {
    grid-column: 1 / -1;
}

.project-gallery figure {
    margin:0;
    padding:0;
}
.project-gallery img {
    width:100%;
}

.project-info dl {
    margin:2rem 0;
    padding:0;
}
.project-info dt {
    margin:1rem 0 0 0;
    padding:0;
    font-weight:bold;
}
.project-info dd {
    margin:0;
    padding:0;
}