@charset "UTF-8";
@import url("https://fonts.googleapis.com/css?family=Fira+Mono:400,700|Fira+Sans:400,400i,700,700i");
.form-select {
  overflow: hidden;
  position: relative;
  height: 50%;
  margin-top: 0.75rem; }
  .form-select:after {
    content: '▾';
    position: absolute;
    top: 0.25rem;
    right: 0.5rem;
    z-index: 1;
    color: black;
    line-height: 1;
    font-size: 1rem; }
  .form-select select {
    position: relative;
    background: #d0d0d0;
    opacity: 0.75;
    background-image: none;
    font-family: "Fira Sans", sans-serif;
    display: block;
    width: 10.25rem;
    outline: none;
    color: black;
    cursor: pointer;
    z-index: 2;
    border: none;
    padding: 0 0.5rem;
    border-radius: 3px;
    vertical-align: middle;
    text-overflow: '';
    text-indent: 0;
    font-size: 1rem;
    height: 1.5rem;
    -webkit-appearance: none;
    -moz-appearance: none;
    border-bottom: 1px solid #b9b9b9; }

html {
  font-size: 20px;
  height: 100%;
  width: 100%; }
  @media only screen and (max-width: 767px) {
    html {
      font-size: 16px; } }
  @media only screen and (min-width: 768px) and (max-width: 1023px) {
    html {
      font-size: 18px; } }

body {
  margin: 0;
  padding: 0;
  overflow-y: scroll;
  font-family: "Fira Sans", sans-serif;
  font-size: 1rem;
  color: #2e2e2e;
  background-color: white; }
  body > .container {
    min-height: calc((100vh - 3rem) + 2px); }

pre, code {
  font-family: "Fira Mono", monospace;
  border-radius: 3px;
  font-size: 0.8rem !important; }

h1 code,
h2 code,
h3 code,
h4 code,
h5 code,
h6 code,
li code,
td code,
p code {
  background-color: #f0f0f0;
  color: #06287e;
  padding: 0 0.25rem;
  line-height: 1rem; }

p img {
  max-width: 100%;
  display: block;
  margin: 0 auto; }

pre {
  border-radius: 3px;
  padding: 0.5rem;
  overflow-x: auto; }
  pre code {
    font-size: 0.75rem !important; }

table {
  width: 100%; }
  table td {
    border-top: 1px solid #e7e7e7;
    padding: 0.25rem; }
  table th {
    padding: 0.25rem;
    text-align: left; }

blockquote {
  background: aliceblue;
  padding: 0.25rem 1rem;
  margin-right: 0;
  margin-left: 0;
  border-radius: 3px;
  font-style: italic; }

p {
  line-height: 1.5; }

.container {
  box-sizing: border-box;
  margin: 0 auto; }
  @media only screen and (min-width: 1280px) {
    .container {
      max-width: calc(1280px - 6rem); } }
  @media only screen and (min-width: 1024px) and (max-width: 1279px) {
    .container {
      max-width: calc(1024px - 6rem); } }
  @media only screen and (min-width: 768px) and (max-width: 1023px) {
    .container {
      max-width: calc(768px - 6rem); } }
  @media only screen and (max-width: 767px) {
    .container {
      max-width: calc(100vw - 3rem); } }

.asciicast {
  margin: 0 auto !important; }

.articles {
  box-sizing: border-box;
  font-size: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%; }

.articles > * {
  box-sizing: border-box;
  display: inline-block;
  font-size: initial;
  margin: 0;
  padding: 0;
  vertical-align: top;
  width: 100%; }

.articles > * {
  margin: 0 0 1.5rem 0;
  color: inherit;
  text-decoration: none; }
  @media only screen and (min-width: 1024px) {
    .articles > * {
      width: 25%; }
      .articles > *:nth-child(1), .articles > *:nth-child(5), .articles > *:nth-child(9), .articles > *:nth-child(13), .articles > *:nth-child(17), .articles > *:nth-child(21), .articles > *:nth-child(25), .articles > *:nth-child(29) {
        padding-left: 0;
        padding-right: 1.1rem; }
      .articles > *:nth-child(2), .articles > *:nth-child(6), .articles > *:nth-child(10), .articles > *:nth-child(14), .articles > *:nth-child(18), .articles > *:nth-child(22), .articles > *:nth-child(26), .articles > *:nth-child(30) {
        padding-left: 0.4rem;
        padding-right: 0.75rem; }
      .articles > *:nth-child(3), .articles > *:nth-child(7), .articles > *:nth-child(11), .articles > *:nth-child(15), .articles > *:nth-child(19), .articles > *:nth-child(23), .articles > *:nth-child(27), .articles > *:nth-child(31) {
        padding-left: 0.75rem;
        padding-right: 0.4rem; }
      .articles > *:nth-child(4), .articles > *:nth-child(8), .articles > *:nth-child(12), .articles > *:nth-child(16), .articles > *:nth-child(20), .articles > *:nth-child(24), .articles > *:nth-child(28) {
        padding-left: 1.1rem;
        padding-right: 0; } }
  @media only screen and (min-width: 1024px) and (max-width: 1279px) {
    .articles > * {
      width: 33.333%; }
      .articles > *:nth-child(1), .articles > *:nth-child(4), .articles > *:nth-child(7), .articles > *:nth-child(10), .articles > *:nth-child(13), .articles > *:nth-child(16), .articles > *:nth-child(19), .articles > *:nth-child(22), .articles > *:nth-child(25), .articles > *:nth-child(28), .articles > *:nth-child(31) {
        padding-left: 0;
        padding-right: 1rem; }
      .articles > *:nth-child(2), .articles > *:nth-child(5), .articles > *:nth-child(8), .articles > *:nth-child(11), .articles > *:nth-child(14), .articles > *:nth-child(17), .articles > *:nth-child(20), .articles > *:nth-child(23), .articles > *:nth-child(26), .articles > *:nth-child(29) {
        padding-left: 0.5rem;
        padding-right: 0.5rem; }
      .articles > *:nth-child(3), .articles > *:nth-child(6), .articles > *:nth-child(9), .articles > *:nth-child(12), .articles > *:nth-child(15), .articles > *:nth-child(18), .articles > *:nth-child(21), .articles > *:nth-child(24), .articles > *:nth-child(27), .articles > *:nth-child(30) {
        padding-left: 1rem;
        padding-right: 0; } }
  @media only screen and (width: 768px) {
    .articles > * {
      width: 50%; }
      .articles > *:nth-child(1), .articles > *:nth-child(3), .articles > *:nth-child(5), .articles > *:nth-child(7), .articles > *:nth-child(9), .articles > *:nth-child(11), .articles > *:nth-child(13), .articles > *:nth-child(15), .articles > *:nth-child(17), .articles > *:nth-child(19), .articles > *:nth-child(21), .articles > *:nth-child(23), .articles > *:nth-child(25), .articles > *:nth-child(27), .articles > *:nth-child(29), .articles > *:nth-child(31) {
        padding-left: 0;
        padding-right: 1.5rem; }
      .articles > *:nth-child(2), .articles > *:nth-child(4), .articles > *:nth-child(6), .articles > *:nth-child(8), .articles > *:nth-child(10), .articles > *:nth-child(12), .articles > *:nth-child(14), .articles > *:nth-child(16), .articles > *:nth-child(18), .articles > *:nth-child(20), .articles > *:nth-child(22), .articles > *:nth-child(24), .articles > *:nth-child(26), .articles > *:nth-child(28), .articles > *:nth-child(30) {
        padding-left: 1.5rem;
        padding-right: 0; } }
  @media only screen and (max-width: 767px) {
    .articles > * {
      width: 100%; } }

.future {
  position: relative; }
  .future .date, .future .content {
    opacity: 0.5; }

.bar {
  display: none;
  width: 1.5rem;
  height: 27rem;
  background-color: black;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -0.75rem;
  margin-top: -13.5rem;
  z-index: 100; }
  @media only screen and (min-width: 1280px) {
    .bar {
      transform: skew(-27deg); } }
  @media only screen and (min-width: 1024px) and (max-width: 1279px) {
    .bar {
      transform: skew(-28.5deg); } }
  @media only screen and (min-width: 768px) and (max-width: 1023px) {
    .bar {
      transform: skew(-19deg);
      height: 29rem;
      margin-top: -14.5rem; } }
  @media only screen and (max-width: 767px) {
    .bar {
      transform: skew(-26deg);
      height: 24rem;
      margin-top: -12rem; } }

.spoiler {
  opacity: 0.2;
  background-color: #2e2e2e;
  display: inline; }

.date {
  text-align: center;
  height: 12rem; }
  .date .day {
    font-size: 10rem;
    font-weight: bold;
    line-height: 1;
    margin-bottom: -1rem; }
  .date .month-year {
    font-size: 1.44rem;
    line-height: 1; }

.contact {
  font-size: 0.8em;
  margin: 0;
  padding: 0; }
  .contact li {
    display: inline-block;
    list-style-position: inside;
    margin-bottom: 3px; }
    .contact li a {
      background-color: #e7e1c8;
      display: block;
      border-radius: 3px;
      line-height: 1.5rem;
      height: 1.5rem;
      padding: 0 0.5rem;
      border-bottom: 1px solid #d0cab4;
      text-decoration: none;
      color: #2e2e2e; }

article {
  box-sizing: border-box;
  margin: 0;
  overflow: hidden;
  border-radius: 0 0 3px 3px;
  position: relative; }
  article:last-child {
    margin-bottom: 0; }
  @media only screen and (min-width: 768px) and (max-width: 1023px) {
    article {
      border-radius: 0 3px 3px 0; } }
  article .content {
    background-color: #fff8dc;
    border-bottom: 1px solid #e7e1c8;
    height: 15rem;
    border-radius: 3px;
    padding: 1.5rem;
    box-sizing: border-box; }
    article .content > div {
      margin: 0 0 0.5rem 0; }
    @media only screen and (min-width: 768px) and (max-width: 1023px) {
      article .content {
        height: 17rem; } }
    @media only screen and (max-width: 767px) {
      article .content {
        height: auto; } }
    article .content .author {
      font-size: 0.8em; }
  article .tile {
    margin: 0; }
    article .tile h1, article .tile h2 {
      margin: 0 0 0.5rem 0; }
    article .tile .description {
      line-height: 1.5; }
  article.promoted {
    background-color: #007f00;
    background-image: linear-gradient(to bottom, #007f00, #1b8818, #2b9029, #399937, #45a245);
    color: white;
    border-radius: 0;
    height: auto;
    margin-bottom: 1rem;
    margin-top: -1px; }
    article.promoted .date {
      float: left; }
      @media only screen and (min-width: 1280px) {
        article.promoted .date {
          width: 20%; } }
      @media only screen and (width: 1024px) {
        article.promoted .date {
          width: 25%; } }
      @media only screen and (width: 768px) {
        article.promoted .date {
          width: 31%; } }
      @media only screen and (max-width: 767px) {
        article.promoted .date {
          float: none; } }
    article.promoted .content {
      float: left;
      height: auto;
      background-color: transparent;
      padding-bottom: 2rem;
      border-bottom: none; }
      @media only screen and (min-width: 1280px) {
        article.promoted .content {
          width: 80%; } }
      @media only screen and (width: 1024px) {
        article.promoted .content {
          width: 75%; } }
      @media only screen and (width: 768px) {
        article.promoted .content {
          width: 69%; } }
      @media only screen and (max-width: 767px) {
        article.promoted .content {
          float: none;
          padding-top: 0; }
          article.promoted .content .author {
            margin-bottom: 1.5rem; } }
      article.promoted .content h2 {
        font-size: 2rem;
        line-height: 1;
        margin: 0; }
      article.promoted .content a {
        display: inline-block;
        position: absolute;
        bottom: 1.5rem;
        right: 0;
        background-color: white;
        border-radius: 3px;
        color: #2e2e2e;
        text-shadow: none;
        text-decoration: none;
        padding: 0.5em 1em;
        border-bottom: 1px solid #e7e7e7;
        max-width: auto; }
        @media only screen and (max-width: 767px) {
          article.promoted .content a {
            bottom: 0;
            position: relative; } }

header {
  border-bottom: 1px solid #d0d0d0;
  height: 3rem; }
  header:hover {
    background-color: #e7e7e7; }
    header:hover select {
      background-color: #d0d0d0; }
  header .container {
    text-align: center; }
  header nav {
    height: 3rem;
    position: relative;
    overflow: hidden; }
    header nav a.vimways {
      position: absolute;
      display: block;
      top: 1.5rem;
      left: 0;
      height: 3rem;
      width: 12rem;
      background-image: url(/images/vimways.png);
      background-attachment: scroll;
      background-repeat: no-repeat;
      transform: rotate(-12deg);
      transform-origin: top left;
      text-indent: -9000px;
      -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
      -webkit-tap-highlight-color: transparent; }
      @media only screen and (max-width: 767px) {
        header nav a.vimways {
          background-position: none;
          background-size: 50%; } }
      @media only screen and (min-width: 768px) {
        header nav a.vimways {
          background-position: left center;
          background-size: contain; } }
  header ul {
    margin: 0;
    padding: 0;
    list-style-type: none;
    float: right; }
    header ul li {
      display: inline-block;
      line-height: 3rem;
      height: 3rem;
      margin: 0 0 0 2rem;
      box-sizing: border-box;
      vertical-align: top; }
      @media only screen and (max-width: 767px) {
        header ul li.about-link {
          display: none; } }

footer {
  clear: both;
  border-top: 1px solid #d0d0d0;
  height: 3rem; }
  footer:hover {
    background-color: #e7e7e7; }
    footer:hover select {
      background-color: #d0d0d0; }
  footer .container {
    text-align: center; }
  footer ul {
    margin: 0;
    padding: 0;
    list-style-type: none; }
    footer ul li {
      display: inline-block;
      line-height: 3rem;
      height: 3rem;
      margin: 0 1rem;
      box-sizing: border-box;
      vertical-align: top; }
      @media only screen and (max-width: 767px) {
        footer ul li {
          margin: 0 0.3em; }
          footer ul li.form-select {
            margin-top: 0;
            margin-bottom: 2rem; } }
      @media only screen and (max-width: 767px) {
        footer ul li:first-child {
          display: block;
          margin-bottom: -1rem; } }

#main {
  box-sizing: border-box;
  float: left;
  width: 60%;
  padding: 0 1.5rem 0 0;
  margin: 0 0 3rem 0; }
  #main article {
    overflow: unset;
    overflow-x: visible;
    text-align: justify; }
    #main article a {
      text-decoration: none;
      border-bottom: 1px solid; }
      #main article a.footnote-return {
        border-bottom: none;
        text-decoration: underline; }
    #main article > pre {
      overflow: hidden;
      box-sizing: border-box; }
      @media only screen and (max-width: 1023px) {
        #main article > pre {
          overflow: auto; } }
      @media only screen and (width: 1024px) {
        #main article > pre:active {
          min-width: 100%;
          width: calc(166% + 3rem); }
          #main article > pre:active:after {
            display: none; } }
      @media only screen and (min-width: 1025px) {
        #main article > pre:hover {
          min-width: 100%;
          width: calc(166% + 3rem); }
          #main article > pre:hover:after {
            display: none; } }

aside {
  box-sizing: border-box;
  float: left;
  width: 40%;
  padding: 0 0 0 1.5rem; }
  aside .content {
    background-color: #fff8dc;
    border-bottom: 1px solid #e7e1c8;
    border-radius: 3px;
    padding: 1.5rem;
    box-sizing: border-box; }
    aside .content > div {
      margin: 0 0 0.5rem 0; }
    aside .content .author {
      font-size: 0.8em; }
  aside h1 {
    font-size: 2rem;
    margin: 0 0 1rem 0; }

.meta aside .content {
  margin: 1.5rem 0 0 0; }
  .meta aside .content h1 {
    margin: 0; }

@media only screen and (width: 768px) {
  .container.post {
    display: flex;
    flex-direction: column-reverse; }
    .container.post aside, .container.post #main {
      width: 100%; }
    .container.post aside {
      padding: 0; }
      .container.post aside .date {
        float: left;
        width: 31%;
        margin: 0.75rem 1.5rem 0 0; }
      .container.post aside .content {
        float: left;
        width: calc(69% - 1.5rem);
        margin-top: 1.5rem;
        height: calc(12rem - 1.5rem);
        box-sizing: border-box; } }

@media only screen and (max-width: 767px) {
  .container.post {
    display: flex;
    flex-direction: column-reverse; }
    .container.post aside, .container.post #main {
      width: 100%;
      margin: 0;
      padding: 0; }
    .container.post aside {
      padding: 0; } }
