/*
==============================================
General Styles
============================================== */

* { box-sizing: border-box; }

.dim {
  color: rgba(0,0,0,0.5);
}

img.full {
  width: 100%;
  display: block;
  margin: 0;
}

img.limit {
  width: 100%;
  display: block;
  max-width: 15rem;
  margin-bottom: 1.5rem;
}

img.profilepic {
  display: block;
  border-radius: 100%;
  width: 100%;
  max-width: 200px;
  margin: 0 0 2rem 0;
}

main[role='main'] {
  padding: 1rem 1.5rem;
  max-width: 45em;
  margin-left: auto;
  margin-right: auto;
}

@media (min-width:600px) {
  main[role='main'] { padding-left: 2rem; padding-right: 2rem; }
  img.profilepic { width: 33.333%; float: right; margin-left: 2rem; }
}

hr {
  border: none;
  border-top: 1px solid rgba(0,0,0,0.1);
  height: 0;
  margin: 2rem auto;
  max-width: 33.333%;
}

body>footer {
  margin-top: 1.5rem;
  padding: 0.75rem 2rem 0.9rem;
  border-top: 1px solid rgba(0,0,0,0.1);
  font-family: 'Pitch Sans', SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace;
  font-size: 0.9rem;
  color: rgba(0,0,0,0.5);
}

@media (min-width:500px) {
  body>footer { display: flex; justify-content: space-between; }
}


body>footer a {
  color: rgba(0,0,0,0.5);
  border-bottom: 1px solid rgba(0,0,0,0.25);
}

body>footer a.icon { border: none; opacity: 0.5; transition: 0.2s all ease; }
body>footer a.icon:hover { opacity: 1; }
body>footer a.icon:not(:last-child) { margin-right: 0.75rem; }

/*
==============================================
Sections
============================================== */

section {
  border-bottom: 1px solid rgba(0,0,0,0.1);
  padding: 2rem 0;
  margin-bottom: 2rem;
}

section+section { padding-top: 0.5rem; }

section:last-child {
  border: none;
  padding-bottom: 0;
}

section>h2 {
  margin-top: 0;
}

section.landscape {
  border: none;
  padding: 0;
  margin: 0;
}

section.twoup>div img {
  width: 150px;
  margin: 1rem 2rem 1rem 0;
}

@media (min-width: 500px) {
  section.twoup>div img { margin-top: 0; }
  section.twoup>div:not(:first-child) { padding-top: 1rem; }
  section.twoup>div { display: flex; }
  section.twoup.bottom>div { align-items: flex-end; }
  section.twoup>div:not(:last-child) { margin-bottom: 1rem;   }
}

/*
==============================================
Navigation
============================================== */

/* Small viewports (stacked name & nav links) */

header[role='banner'] a.title {
  display: block;
  background-color: #000;
  border: none;
  text-align: center;
  transition: none;
}

header[role='banner'] a.title:hover {
  background-color: #333;
}

header[role='banner'] a.title h1 {
  display: block;
  margin: 0;
  font-family: 'Pitch Sans', SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.9rem;
  line-height: 1.7;
  color: #fff;
  white-space: nowrap;
}

header[role='banner'] a.title, nav[role='navigation'] {
  padding: 0.75rem 2rem 0.9rem;
}

nav[role='navigation'] ul {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  max-width: 18em;
  display: flex;
  justify-content: space-between;
}

nav[role='navigation'] ul li { line-height: 1.3; }

nav[role='navigation'] a {
  font-family: 'Pitch Sans', SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace;
  font-size: 0.9rem;
  border: none;
}

nav[role='navigation'] a.active { border-bottom: 1px solid #444; }
nav[role='navigation'] a.active:hover { border-bottom-color: #07d; }

/* Marquee */

div.marquee {
  padding: 0.75rem 0 0.9rem;
  font-family: 'Pitch Sans', SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace;
  font-size: 0.9rem;
  background-color: #FBDEB9;
  overflow: hidden;
}

/* Medium viewports (side-by-side name & nav links) */

@media (min-width: 700px) {
  header[role='banner'] {
    display: flex;
    align-content: stretch;
  }
  nav[role='navigation'] {
    width: 100%;
  }
}

/* Large viewport rearrange */

@media (min-width: 1000px) {
  a.title {
    transform: rotateZ(90deg);
    transform-origin: bottom left;
    position: fixed;
    left: 0;
    top: -3rem;
    height: 3rem;
    width: 12rem;
    z-index: 4;
  }
  div.marquee {
    transform: rotateZ(90deg);
    transform-origin: bottom left;
    position: fixed;
    left: 0;
    top: 9rem;
    width: calc(100vh - 12rem);
    height: 3rem;
    z-index: 3;
  }

  nav[role='navigation'] {
    padding: 0.8rem 2rem 1.25rem;
    border-bottom: 1px solid rgba(0,0,0,0.1);
    margin-bottom: 1.5rem;
  }
}

/*
==============================================
Subnav
============================================== */

header.subnav {
  border-bottom: 1px solid rgba(0,0,0,0.1);
}

header.subnav ul {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem 0;
  display: flex;
}

@media (min-width: 400px) {
  header.subnav {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline;
  }
}

header.subnav ul li:not(:last-child) {
  margin-right: 1rem;
}

header.subnav ul a {
  font-family: 'Pitch Sans', SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace;
  font-size: 0.9rem;
  border: none;
  color: #07d;
}

header.subnav ul a:hover {
  border-bottom: 1px solid #07d;
}

header.subnav p {
  width: 100%;
  border-top: 1px solid rgba(0,0,0,0.1);
  padding: 1.5rem 0 0;
  margin-bottom: 1.75rem;
  margin-top: 0;
}

/*
==============================================
Post Lists
============================================== */

ul.postlist {
  margin-top: 2.5rem;
}

ul.postlist li:not(:last-child) {
  margin-bottom: 2rem;
}

ul.postlist li p {
  margin: 0;
}

ul.postlist.condensed a {
  width: 100%;
  border-bottom: none;
}

ul.postlist.condensed a:hover span {
  border-bottom: 1px solid #07d;
}

ul.postlist.condensed li { width: 100%; }

ul.postlist.condensed small {
  width: 8em;
  display: block;
}

ul.postlist.condensed span {
  color: #07d;
  border-bottom: 1px solid rgba(0,0,0,0);
}

@media (min-width: 500px) {
  ul.postlist.condensed a {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
  }
  ul.postlist.condensed small { text-align: right; }
}

ul.postlist.reader li:not(:last-child) {
  border-bottom: 1px solid rgba(0,0,0,0.1);
}

ul.postlist.reader small {
  display: block;
  margin-bottom: 0.5rem;
}

ul.postlist.reader li:last-child small {
  margin-bottom: 0;
}

ul.postlist.reader small:last-child {
  margin-top: 0.5rem;
  margin-bottom: 2rem;
}

ul.postlist.reader img {
  float: right;
  display: block;
  margin-left: 2rem;
  height: 2.5rem;
}

/*
==============================================
Post
============================================== */

article header {
  border-bottom: 1px solid rgba(0,0,0,0.1);
  padding-bottom: 2rem;
  margin-bottom: 2.5rem;
}

article header h2 {
  margin-bottom: 0;
  text-transform: none;
  letter-spacing: 0;
  font-size: 1.25rem;
  font-weight: normal;
}

article footer {
  border-top: 1px solid rgba(0,0,0,0.1);
  padding-top: 2rem;
  margin-top: 2.5rem;
  text-align: center;
}

article footer a {
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  border-bottom: none;
  color: #07d;
}

article footer a:hover {
  border-bottom: 1px solid #07d;
}

/*
==============================================
General Layout Media Queries
============================================== */

@media (min-width: 550px) {
  /* Only float if VP is wide enough */
  .left { float: left; margin: 0 2rem 2rem 0; }
  .right { float: right; margin: 0 0 2rem 2rem; }
}

@media (min-width: 1000px) {
  body>footer { padding-left: 3rem; padding-right: 3rem; }
}

/*
==============================================
Hero Image
============================================== */

div.heroimg {
  background-color: #FBDEB9;
  background-blend-mode: multiply;
  /*background-size: cover;*/
  background-size: 110% auto;
  background-position: 50% 50%;
  padding-bottom: 60%;
  position: relative;
}

div.heroimg img { display: none; }

.geotag {
  font-family: 'Pitch Sans', SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace;
  font-size: 0.9rem;
  background-color: #000;
  color: #fff;
  position: absolute;
  bottom: 0;
  left: 0;
  overflow: hidden;
  transition: all 0.2s ease-out;
}

.geotag:not(.expand) {
  width: 3rem;
  height: 3rem;
}

.geotag.expand {
  width: 18rem;
  height: 9.5rem;
}

.geotag svg {
  position: absolute;
  left: 0;
  bottom: 0;
  cursor: pointer;
}

.geotag>div {
  position: absolute;
  left: 4rem;
  bottom: 1rem;
  width: 12rem;
}

.geotag h3 {
  font-family: 'Pitch Sans', SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace;
  font-size: 0.9rem;
  color: rgba(255,255,255,0.5);
  margin: 0;
}

.geotag p { margin: 0; }

.geotag p.credit {
  margin-top: 0.5rem;
  color: rgba(255,255,255,0.5);
}

.geotag p.credit a {
  color: rgba(255,255,255,0.5);
  border-bottom-color: rgba(255,255,255,0.25);
}

@media (min-width: 600px) {
  div.heroimg { padding-bottom: 60%; }
}

@media (min-width: 1000px) {
  div.heroimg {
    position: fixed;
    background-size: cover;
    top: 0;
    left: 3rem;
    bottom: 0;
    padding: 0;
    width: calc(50% - 3rem);
    z-index: 999; /* so geotag can overlay marquee */
  }

  body {
    width: 50%;
    margin-left: 50%;
  }

  .geotag {
    left: -3rem; /* pull back over marquee area */
  }
}


/*
==============================================
Homepage
============================================== */

h1.homeheadline { color: rgba(0,0,0,0.5); }
h1.homeheadline span { color: #333; }

@media (min-width: 1000px) {
  h1.homeheadline { margin-top: 10vh; }
  main[role='main'] { padding: 1rem 3rem; }
}

section.datablock {
  border-top: 1px solid rgba(0,0,0,0.1);
  border-bottom: 1px solid rgba(0,0,0,0.1);
  padding: 1rem 0;
  margin: 2rem 0;
  font-family: 'Pitch Sans', SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace;
  font-size: 0.9rem;
}

section.datablock div { padding-bottom: 1em; }

@media (min-width: 500px) {
  section.datablock { display: flex; }
  section.datablock div { width: 33.33333%; padding-bottom: 0; padding-right: 1em; }
}

section.datablock h3, section.datablock p { margin: 0; }

body.home section:last-child { padding: 0; margin-bottom: 0; }

/*
==============================================
Spacing Fixes
============================================== */

h2 + ul.postlist { margin-top: 1.5rem; }
