:root {
  --main-title-color: #0e90cf;
  --main-header-color: #f88634;
  --main-text-color: #444;
  --link-color: #0e90cf;
  --header-font-family: "Quicksand", sans-serif;
  --font-family: "Quicksand", sans-serif;
  --light-bg: #f7fcff;
}

html {
  font-size:16px; /* impact rem */
}

body {
  color: var(--main-text-color);
  font-family: var(--font-family);
  min-height: 100vh; /* full viewport height */
  display: flex;
  flex-direction: row;
}

header {
  padding:40px 30px;
  max-width: 420px;
  flex: 0 0 25%;
  align-self: stretch;
  background-color:#024771;
  color:#fff;
}

header h3 a {
  white-space:nowrap;
  color:#fff;
  text-decoration:underline;
}

main {
  padding:50px 40px;
  flex:1;
  background-color:#f4f4f4;
}

.subscribe-form {
  white-space:nowrap;
}

.subscribe-form input[type=text] {
  max-width:60%;
  font-size:1.2rem;
}
.subscribe-button {
  font-size:1.2rem;
  padding:2px 10px;
  background: var(--main-header-color);
  border-radius:5px;
  border:0px solid #999;
  color: #fff;
  margin-bottom:0px !important;
  margin-left:2px;
}

.subscribe-button:hover {
  cursor:pointer;
  background: #ff8a3f;;
}



h1 {
  color: var(--main-title-color);
  font-family: var(--header-font-family);
  font-weight: normal;
  font-size: 6rem;
  line-height: 1;
}

h2 {
  font-family: var(--header-font-family);
  font-weight: normal;
  font-size: 2.3rem;
  line-height:1.3;
  margin-top: 20px;
  margin-left: 2px;
  color: var(--main-header-color);
}
h3 {
  font-family: var(--header-font-family);
  font-weight: normal;
  font-size: 1.5rem;
  line-height:1.3;
  margin-top: 30px;
}

h3 b {
  font-size: 1.1rem;
  font-weight:normal;
  color:#ccc;
}

h4 {
  font-family: var(--header-font-family);
  font-weight: normal;
  font-size: 2rem;
  line-height:1.3;
}

a {
  color: var(--link-color);
  text-decoration: none;
}

.flex {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  padding-left: 0px;
  list-style-type: none;
}

.flex li {
  display:flex;
  flex: 0 1 430px;
  flex-direction: column;
  font-size: 1rem;
  /* margin:auto; THIS BREAKS FLEX */
  border-radius:5px;
  box-shadow:0px 0px 5px #ccc;
  background-color:#fff;
}

/* headers */
.flex li span {
  font-family: var(--header-font-family);
  display:block;
  padding: 25px 25px 15px 25px;
  font-size: 1.8rem;
  font-weight:500;
}

.flex li span b {
  font-size:1rem;
  color:#666;
  display:block;
  font-weight:normal;
}

/* bodies */
.flex li div {
  padding: 0px 25px 25px 25px;
  font-size: 1.3rem;
}

.flex img {
  max-width:100px;
  float:right;
  display:inline;
  margin-left:10px;
}

.flex a.read {
  display:block;
}

a.read {
  font-size:1rem;
  text-decoration:none;
  border:1px solid var(--link-color);
  border-radius:15px;
  padding:2px 15px;
  margin: auto auto 20px auto; /* top-auto pushes button to bottom */
  font-weight:bold;
}
a.read:hover {
  border:1px solid var(--link-color);
  background: var(--link-color);
  color:#fff;
}
a.read.todo {
  color:#999;
  border:1px solid #999;
}
a.read.todo:hover {
  color:#999;
  border:1px solid #999;
  background:#fff;
  cursor:default;
}

footer {
  position: relative;
  border:1px solid red;
  color:#f4f4f4;
  /* background-image: url(/.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  */
  padding:0px;
}
footer h2 {
  font-size:2.5rem;
  font-weight:normal;
  color:#999;
  text-align:left;
  margin-top:20px;
  margin-bottom:5px !important;
  padding-bottom:5px !important;
}
.svg {
  width:23px;
  top:5px;
  position:relative;
}

input[type=text] {
  border-radius:4px;
  border:1px solid #ccc;
}

/* articles */
.story {
  display: block;
  unicode-bidi: embed;
  line-height:2.0;
  font-size:1.5rem;
  max-width: 70ch;
}
div.title {
  padding:0;
  line-height: normal !important;
  font-size:3.4rem !important;
}
div.subtitle {
  font-size:3rem;
}
div.little {
  margin-bottom:5px;
  margin:0;
  padding:0;
  padding-left:3px;
  line-height: normal;
  font-size:1rem;
  color:#666;
}
.story img {
  width:250px;
  border-radius: 50%;
  float:right;
}

code {
  font-family:monospace;
  background:black;
  color:#fff;
  display:block;
  border-radius:10px;
  padding:30px 30px 30px 30px;
  font-size:1rem;
  margin:20px 0px;
}

code p {
  display:block;
  color: #f88634;
}
code h1 {
  color:#999;
  font-family:monospace;
  font-size:1.4rem;
  padding:0px 10px 10px 0px;
  margin-bottom:20px;
  border-bottom:1px solid #999;
}


@media (max-width: 1024px) {
  html {
    font-size:14px;
  }
  body {
   flex-direction: column;
  }
  header {
    max-width: none;
  }
  main {
    padding:10px 10px;
  }
  .flex li {
    flex-basis: 100%;
    margin: auto;
  }
  .flex li div {
    max-height: none;
  }
  .story img {
    display:block;
    width:100%;
    max-width:400px;
    margin:auto;
    float:none;
  }
  code {
    font-size:0.8rem;
  }
}
