.module, blockquote, pre, code, figure figcaption, table tbody, .toc, .footnotes {
  font-size: 16.2px;
  line-height: 1.8; }

  html {
    scroll-behavior: smooth; }

    body {
      margin: 0;
      width: 100%;
      overflow-wrap: break-word;
      text-align: justify;
      font-size: 18px;
      line-height: 1.8;
      font-family: Cambria, "Microsoft Yahei", sans-serif;
      font-weight: normal;
      color: #333;
      background: #fff; }
      body#index {
        height: 100dvh; }

p, pre, blockquote, figure, table {
  margin: 1em 0; }

  pre, blockquote, figure, table {
    margin: 1em -1rem; }

    a {
      text-decoration: none;
      color: #cc827c;
      transition: 0.5s; }
      a:hover {
        color: #305370; }

h1, h2, h3, h4, h5, h6 {
  margin: 1.5em 0 1em;
  line-height: 1em; }

  ul, ol {
    margin: 1em 0;
    padding-left: 2em;
    padding-right: 1em; }
    ul p, ol p {
      margin: 0 !important; }

ul ul, ul ol, ol ol, ol ul {
  margin: 0 !important;
  padding-left: 1em;
  padding-bottom: 1em; }

  img, video {
    max-width: 100%; }

    del {
      color: #ccc; }

      hr {
        border: 0;
        border-bottom: 2px solid #eee;
        margin: 3em 40%; }

        blockquote {
          color: #333;
          font-style: italic;
          padding: 1em;
          border-top: 2px solid #eee;
          background: #f3f3f3; }
          blockquote:before {
            content: '“';
            font-size: 8em;
            position: absolute;
            color: rgba(0, 0, 0, 0.03);
            margin-top: -74px;
            margin-left: -10px;
            font-family: georgia;
            font-style: normal;
            height: 0; }
            blockquote:after {
              content: '”';
              font-size: 8em;
              color: rgba(0, 0, 0, 0.03);
              font-family: georgia;
              font-style: normal;
              float: right;
              margin-top: -90px;
              margin-right: -10px;
              height: 0; }
              blockquote p:first-child {
                margin-top: 0; }
                blockquote p:last-child {
                  margin-bottom: 0; }
                  blockquote ul, blockquote ol {
                    margin: 0 !important;
                    padding-left: 1em;
                    padding-right: 0; }

pre {
  background: #f3f3f3;
  font-family: monospace, serif;
  text-align: left;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 1em;
  border-top: 2px solid #eee;
  border-radius: 0;
  -webkit-overflow-scrolling: touch;
  word-wrap: normal; }
  pre code {
    padding: 0;
    margin: 0;
    border: 0;
    color: inherit;
    font-size: inherit; }

code {
  font-family: monospace, serif;
  padding: 5px 10px;
  margin: 0 3px;
  background: #f3f3f3;
  font-size: 13px;
  border-radius: 100px; }

  figure {
    text-align: center; }
    figure img {
      display: block;
      padding-bottom: 3px;
      box-sizing: border-box;
      margin: auto; }
      figure figcaption {
        color: #999;
        margin: 0 1em 1em; }

table {
  width: calc(100% + 2rem);
  word-break: break-all;
  background: #f3f3f3;
  border-collapse: collapse;
  border-spacing: 0;
  border-top: 2px solid #eee; }
  table th, table td {
    border-top: 2px solid #eee;
    border-left: 2px solid #eee;
    padding: 1em;
    vertical-align: top; }
    table th:first-child, table td:first-child {
      border-left: 0; }
  table thead tr {
    border-bottom: 2px solid #eee;
    border-width: 4px; }
    table thead tr > th {
      border-top: 0; }
  table tbody > tr:nth-child(odd) > td, table tbody > tr:nth-child(odd) > th {
    background: #fcfcfc; }

sup {
  vertical-align: top;
  position: relative;
  top: -0.5em; }
  sup a {
    border-radius: 100%;
    width: 16px;
    height: 16px;
    line-height: 16px;
    display: inline-block;
    text-align: center;
    font-size: 10px;
    margin: 0 3px;
    padding: 0 !important;
    background: #305370;
    border: 1px solid #305370;
    color: #fff; }
    sup a:hover {
      color: #333;
      background: #fff; }

::-moz-selection {
  background: #fefecc; }

  ::selection {
    background: #fefecc; }

    .md_line {
      display: block; }

      .todo_done_item {
        color: #999; }

        .toc {
          padding: 1em;
          float: right;
          margin: 1em 0 1em 2em;
          background: #f3f3f3;
          border-top: 2px solid #eee; }
          .toc ul {
            padding-left: 1em;
            padding-right: 0;
            margin: 0; }
            .toc > ul {
              padding-left: 0; }
              .toc ul li {
                list-style: none; }
                .toc ul li a {
                  display: block;
                  color: #999; }
                  .toc ul li a:hover {
                    color: #305370; }
                    .toc ul li a:before {
                      content: '+';
                      padding-right: 5px; }

.footnotes a {
  border: 0; }
  .footnotes ol {
    color: #999;
    border: 2px solid #eee;
    padding: 1em 1em 1em 2em;
    background: #fff; }
    .footnotes ol p {
      margin: 0;
      padding: 0; }
.footnotes .md_line {
  display: inline; }

#back_to_top {
  border: 2px solid #eee;
  background: #fff; }
  #back_to_top span {
    color: #bbb;
    line-height: 40px;
    transition: 0.5s; }
    #back_to_top:hover {
      background: #f3f3f3; }
      #back_to_top:hover span {
        color: #305370; }

table.highlighttable {
  table-layout: fixed;
  width: calc(100% + 2rem); }
  table.highlighttable pre {
    margin: 0;
    padding: 0;
    border: 0; }
    table.highlighttable td {
      background: #f3f3f3 !important; }
      table.highlighttable td.linenos {
        width: 1.2em;
        color: #999; }

::-webkit-scrollbar {
  width: 0;
  height: 0; }

  ::-webkit-scrollbar-track {
    background: transparent; }

    ::-webkit-scrollbar-thumb {
      background: transparent; }

      header {
        position: fixed;
        left: 0;
        z-index: 9999; }
        header a {
          display: block;
          margin: 1em; }
          header img {
            width: 46px;
            border-radius: 100%;
            background: #fff; }

main#index {
  height: 100dvh;
  overflow-y: auto;
  scroll-snap-type: y mandatory;
  scroll-snap-stop: always; }
  main#index section {
    height: 100dvh;
    scroll-snap-align: start;
    overflow: hidden; }
    main#index section ul.nav {
      float: right;
      list-style: none; }
      main#index section ul.nav li {
        float: left;
        margin-left: 10px; }
        main#index section ul.nav li a, main#index section ul.nav li button {
          border: 1px solid #fff;
          padding: 7px 17px;
          border-radius: 5px;
          background: transparent;
          color: #fff;
          cursor: pointer;
          transition: 0.5s;
          display: block;
          line-height: 30px; }
          main#index section ul.nav li a:hover, main#index section ul.nav li button:hover {
            color: #333;
            background: #fff; }
    main#index section#about {
      background: linear-gradient(-45deg, #f2e6db, #f1d8e2 33.33333%, #d3e5eb 66.66667%,
            #daeee9);
      background-size: 400% 400%;
      animation: gradient 15s ease infinite; }
      main#index section#about article {
        clear: both;
        width: 80%;
        position: relative;
        left: 10%;
        top: 15%;
        text-align: right; }
        main#index section#about article .partone {
          font-size: 1.3em;
          font-weight: bold; }
          main#index section#about article .parttwo {
            margin-top: 2em; }
    main#index section#portfolio {
      background: linear-gradient(-45deg, #f1d8e2, #d3e5eb 33.33333%, #daeee9 66.66667%,
            #f2e6db);
      background-size: 400% 400%;
      animation: gradient 15s ease infinite;
      position: relative; }
      main#index section#portfolio ul.nav {
        position: absolute;
        top: 0;
        right: 0; }
        main#index section#portfolio figure {
          overflow-x: auto;
          scroll-snap-type: x mandatory;
          scroll-snap-stop: always;
          display: flex;
          height: 100dvh;
          margin: 0 auto; }
          main#index section#portfolio figure::before,
          main#index section#portfolio figure::after {
            content: '';
            border-left: 10dvw solid transparent; }
            main#index section#portfolio figure img {
              scroll-snap-align: center;
              max-width: 80dvw;
              max-height: 90dvh;
              margin: auto 0.5em;
              border-radius: 10px; }
    main#index section#footprints div#map {
      height: 100dvh;
      width: 100%; }
      main#index section#footprints div#map .leaflet-popup-content-wrapper,
      main#index section#footprints div#map .leaflet-popup-tip {
        color: #333;
        box-shadow: 0 1px 10px rgba(204, 130, 124, 0.4);
        opacity: 0.9; }
        main#index section#footprints div#map .leaflet-popup-content {
          font-family: Cambria, "Microsoft Yahei", sans-serif;
          font-weight: normal;
          font-size: 18px;
          line-height: 1.8;
          margin: 1em 1.5em; }
          main#index section#footprints div#map .leaflet-popup-content b {
            display: block;
            font-size: 27px; }
            main#index section#footprints div#map .leaflet-popup-content i {
              display: block;
              margin-bottom: 12px;
              font-style: normal;
              font-size: 16.2px;
              color: #999; }
              main#index section#footprints div#map .leaflet-popup-content a {
                display: block;
                color: #cc827c; }
                main#index section#footprints div#map .leaflet-popup-content a:hover {
                  color: #305370; }
                  main#index section#footprints div#map .leaflet-popup-content a::before {
                    content: '+';
                    padding-right: 8px; }
      main#index section#footprints div#map .leaflet-popup-close-button {
        display: none; }
        main#index section#footprints div#map .leaflet-control-zoom.leaflet-bar.leaflet-control {
          border: none;
          margin: 1em;
          font-size: 18px; }
          main#index section#footprints div#map .leaflet-control-zoom.leaflet-bar.leaflet-control a {
            float: left;
            margin-left: 10px;
            border: 1px solid #fff;
            padding: 7px 8px;
            display: block;
            border-radius: 5px;
            background: transparent;
            font-family: Cambria, "Microsoft Yahei", sans-serif;
            font-weight: normal;
            font-size: 18px;
            color: #fff;
            line-height: 30px; }
            main#index section#footprints div#map .leaflet-control-zoom.leaflet-bar.leaflet-control a:hover {
              color: #333;
              background: #fff; }
    main#index section#blog {
      background: linear-gradient(-45deg, #daeee9, #f2e6db 33.33333%, #f1d8e2 66.66667%,
            #d3e5eb);
      background-size: 400% 400%;
      animation: gradient 15s ease infinite; }
      main#index section#blog #new, main#index section#blog #recommend,
      main#index section#blog footer {
        margin: 0 1em; }
        main#index section#blog #new {
          margin-top: 100px; }
          main#index section#blog footer {
            font-size: 0.8em;
            float: right;
            text-align: right;
            margin-top: 90px; }

@keyframes gradient {
  0% {
    background-position: 0% 50%;   }
    50% {
      background-position: 100% 50%;   }
      100% {
        background-position: 0% 50%;   }
}

nav ul {
  float: right;
  list-style: none; }
  nav ul li {
    float: left;
    margin-left: 10px; }
    nav ul li a {
      border: 1px solid #cc827c;
      padding: 7px 17px;
      border-radius: 5px;
      background: transparent;
      cursor: pointer;
      transition: 0.5s;
      display: block;
      line-height: 30px; }
      nav ul li a:hover {
        color: #333;
        background: #fff; }

main {
  width: 100%; }
  main#post, main#category, main#search {
    max-width: 700px;
    margin: 0 auto;
    padding: 8em 1rem;
    box-sizing: border-box; }
