body {
  font-size: 15px;
  font-display: swap;
  -webkit-font-smoothing: subpixel-antialiased; }

body {
  font-size: 15px;
  font-display: swap;
  -webkit-font-smoothing: subpixel-antialiased; }

.hidden {
  display: none;
  visibility: hidden; }

body {
  font-size: 15px;
  font-display: swap;
  -webkit-font-smoothing: subpixel-antialiased; }

body {
  font-size: 15px;
  font-display: swap;
  -webkit-font-smoothing: subpixel-antialiased; }

.hidden {
  display: none;
  visibility: hidden; }

*,
*:after,
*:before {
  box-sizing: border-box; }

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important; } }

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
av,
section {
  display: block; }

audio,
canvas,
video {
  display: inline-block; }

audio:not([controls]) {
  display: none; }

html {
  font-size: 100%; }

a:focus {
  outline: none; }

a:focus-visible {
  box-shadow: 0 0 0 2px currentColor;
  outline: none; }

a:focus:not(:focus-visible) {
  outline: none;
  box-shadow: none; }

button:focus {
  outline: none; }

button:focus-visible {
  box-shadow: 0 0 0 2px currentColor;
  outline: none; }

button:focus:not(:focus-visible) {
  outline: none;
  box-shadow: none; }

a:hover,
a:active {
  outline: 0; }

sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

blockquote {
  margin: 0; }

img,
video {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  border: 0;
  border-radius: calc($border-radius / 1.33); }

table {
  width: 100%; }

#map_canvas img,
.google-maps img {
  max-width: none; }

button,
input,
select,
textarea {
  margin: 0;
  font-size: 100%;
  vertical-align: middle; }

button,
input {
  line-height: normal; }

button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
  cursor: pointer;
  user-select: none; }

label,
select,
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
input[type="radio"],
input[type="checkbox"] {
  cursor: pointer; }

input[type="search"],
input[type="text"],
input[type="email"],
input[type="password"],
input[type="tel"],
input[type="url"],
textarea {
  box-sizing: border-box;
  font-size: 16px;
  -webkit-appearance: none;
  appearance: none; }

textarea {
  overflow: auto;
  vertical-align: top; }

a {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-touch-callout: none; }

a.btn,
button,
[role="button"] {
  -webkit-user-select: none;
  user-select: none; }

body {
  font-size: 15px;
  font-display: swap;
  -webkit-font-smoothing: subpixel-antialiased; }

body {
  font-size: 15px;
  font-display: swap;
  -webkit-font-smoothing: subpixel-antialiased; }

.hidden {
  display: none;
  visibility: hidden; }

.wrap {
  margin: 0 auto; }

.all-caps {
  text-transform: uppercase; }

.image-left {
  float: none; }
  @media only screen and (min-width: 48em) {
    .image-left {
      float: left; } }
.image-right {
  float: none; }
  @media only screen and (min-width: 48em) {
    .image-right {
      float: right; } }
.unstyled-list {
  list-style: none;
  margin-left: 0;
  padding-left: 0; }
  .unstyled-list li {
    list-style-type: none; }

.inline-list {
  list-style: none;
  margin-left: 0;
  padding-left: 0; }
  .inline-list li {
    list-style-type: none;
    display: inline;
    margin-right: 10px; }

b, i, strong, em, blockquote, p, q, span, figure, img, h1, h2, header, input, a {
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease; }

html {
  scroll-behavior: smooth; }

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto; } }

.language-switch {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 36px !important;
  height: 36px !important;
  padding: 0 !important;
  border-radius: 50%;
  background-color: transparent;
  color: #9ca3af !important;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: colors 150ms ease; }
  .language-switch:hover {
    color: #111827 !important;
    background-color: transparent; }

body {
  font-size: 15px;
  font-display: swap;
  -webkit-font-smoothing: subpixel-antialiased; }

body {
  font-size: 15px;
  font-display: swap;
  -webkit-font-smoothing: subpixel-antialiased; }

.hidden {
  display: none;
  visibility: hidden; }

::selection {
  background-color: rgba(36, 41, 47, 0.15);
  color: inherit; }

body {
  font-family: "TsangerJinKai02", "STKaiti", "KaiTi", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  color: rgba(36, 41, 47, 0.9);
  letter-spacing: 0.5px;
  line-height: 1.7;
  -webkit-text-size-adjust: 100%; }
  @media only screen and (min-width: 48em) {
    body {
      letter-spacing: 0.6px; } }
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "TsangerJinKai02", "STKaiti", "KaiTi", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; }

h1 {
  margin: 8px 0 12px; }
  @media only screen and (min-width: 48em) {
    h1 {
      font-size: 30px; } }
table,
th,
td {
  border-collapse: collapse;
  border: 1px solid #f2f3f4;
  font-variant-numeric: tabular-nums; }

td,
th {
  padding: 6px;
  text-align: left; }

.text-table td,
.text-table th {
  padding: 6px 16px; }

.text-table,
th {
  text-align: left; }

a {
  text-decoration: none;
  color: rgba(36, 41, 47, 0.8);
  border-radius: calc($border-radius / 4); }
  a:hover {
    color: #404040; }
  a:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(36, 41, 47, 0.8);
    color: #404040; }
  a:hover, a:active {
    outline: 0; }

.link-arrow {
  font-weight: 400;
  text-decoration: underline;
  font-style: normal; }

figcaption {
  padding-top: 10px;
  font-size: 15px;
  line-height: 1.3;
  color: #505862; }

.notice {
  margin-top: 1.5em;
  padding: 0.5em 1em;
  text-indent: 0;
  font-size: 15px;
  background-color: #e8e8e8;
  border: 1px solid #bbbbbb;
  border-radius: 8px; }

blockquote {
  font-style: normal;
  border-left: 4px solid #c9ced4;
  padding-left: 12px; }

.entry-content li {
  margin-bottom: 7px; }

.entry-content .footnotes ol,
.entry-content .footnotes li,
.entry-content .footnotes p {
  font-size: 17px; }

tt,
code,
kbd,
samp,
pre {
  font-family: "TsangerJinKai02", "STKaiti", "KaiTi", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; }

p code,
li code {
  font-size: 17px;
  line-height: 1.5;
  margin: 0 2px;
  padding: 0 5px;
  border: 1px solid #e6e6e6;
  background-color: #f2f2f2;
  border-radius: calc($border-radius / 2); }

pre {
  font-size: 17px;
  line-height: 1.5;
  overflow-x: auto; }
  pre::-webkit-scrollbar {
    height: 12px;
    background-color: #34362e;
    border-radius: 0 0 calc($border-radius / 2) calc($border-radius / 2); }
  pre::-webkit-scrollbar-thumb:horizontal {
    background-color: #6a6d5d;
    border-radius: calc($border-radius / 2); }

body {
  font-size: 15px;
  font-display: swap;
  -webkit-font-smoothing: subpixel-antialiased; }

body {
  font-size: 15px;
  font-display: swap;
  -webkit-font-smoothing: subpixel-antialiased; }

.hidden {
  display: none;
  visibility: hidden; }

.highlight {
  position: relative;
  margin-bottom: 1.5em;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.1);
  background-color: #272822;
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
  transition: box-shadow 0.3s ease; }
  .highlight:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2), 0 4px 8px rgba(0, 0, 0, 0.15); }
  .highlight .highlight-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 12px 0;
    background: #272822;
    border-radius: 8px 8px 0 0; }
    .highlight .highlight-header .highlight-dots {
      display: flex;
      gap: 6px; }
      .highlight .highlight-header .highlight-dots span {
        width: 10px;
        height: 10px;
        border-radius: 50%;
        box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
        transition: transform 0.2s ease; }
        .highlight .highlight-header .highlight-dots span.dot-red {
          background: linear-gradient(135deg, #ff6159 0%, #ff5f56 100%); }
        .highlight .highlight-header .highlight-dots span.dot-yellow {
          background: linear-gradient(135deg, #ffbd44 0%, #ffbd2e 100%); }
        .highlight .highlight-header .highlight-dots span.dot-green {
          background: linear-gradient(135deg, #28cd41 0%, #27c93f 100%); }
        .highlight .highlight-header .highlight-dots span:hover {
          transform: scale(1.1); }
    .highlight .highlight-header .copy-btn {
      color: #a0a0a0;
      font-size: 12px;
      cursor: pointer;
      padding: 2px 8px;
      border-radius: 4px;
      transition: color 0.2s ease; }
      .highlight .highlight-header .copy-btn:hover {
        color: #e8e8e8; }
  .highlight pre {
    margin: 0;
    padding: 18px;
    overflow-x: auto;
    font-size: 14px;
    line-height: 1.7;
    border-radius: 0 0 8px 8px;
    background-color: #272822;
    color: #f8f8f2;
    user-select: text; }
    .highlight pre::selection,
    .highlight pre code::selection,
    .highlight pre span::selection {
      background-color: rgba(255, 255, 255, 0.25);
      color: inherit; }
    .highlight pre::-webkit-scrollbar {
      height: 8px; }
    .highlight pre::-webkit-scrollbar-track {
      background: rgba(0, 0, 0, 0.2);
      border-radius: 0 0 8px 8px; }
    .highlight pre::-webkit-scrollbar-thumb {
      background: rgba(255, 255, 255, 0.2);
      border-radius: 4px; }
      .highlight pre::-webkit-scrollbar-thumb:hover {
        background: rgba(255, 255, 255, 0.3); }
  .highlight .lineno {
    padding-right: 24px;
    color: #8f908a; }
  .highlight .hll {
    background-color: #49483e; }
  .highlight .c {
    color: #75715e; }
  .highlight .err {
    color: #960050;
    background-color: #1e0010; }
  .highlight .k {
    color: #66d9ef; }
  .highlight .l {
    color: #ae81ff; }
  .highlight .n {
    color: #f8f8f2; }
  .highlight .o {
    color: #f92672; }
  .highlight .p {
    color: #f8f8f2; }
  .highlight .cm {
    color: #75715e; }
  .highlight .cp {
    color: #75715e; }
  .highlight .c1 {
    color: #75715e; }
  .highlight .cs {
    color: #75715e; }
  .highlight .ge {
    font-style: italic; }
  .highlight .gs {
    font-weight: bold; }
  .highlight .kc {
    color: #66d9ef; }
  .highlight .kd {
    color: #66d9ef; }
  .highlight .kn {
    color: #f92672; }
  .highlight .kp {
    color: #66d9ef; }
  .highlight .kr {
    color: #66d9ef; }
  .highlight .kt {
    color: #66d9ef; }
  .highlight .ld {
    color: #e6db74; }
  .highlight .m {
    color: #ae81ff; }
  .highlight .s {
    color: #e6db74; }
  .highlight .na {
    color: #a6e22e; }
  .highlight .nb {
    color: #f8f8f2; }
  .highlight .nc {
    color: #a6e22e; }
  .highlight .no {
    color: #66d9ef; }
  .highlight .nd {
    color: #a6e22e; }
  .highlight .ni {
    color: #f8f8f2; }
  .highlight .ne {
    color: #a6e22e; }
  .highlight .nf {
    color: #a6e22e; }
  .highlight .nl {
    color: #f8f8f2; }
  .highlight .nn {
    color: #f8f8f2; }
  .highlight .nx {
    color: #a6e22e; }
  .highlight .py {
    color: #f8f8f2; }
  .highlight .nt {
    color: #f92672; }
  .highlight .nv {
    color: #f8f8f2; }
  .highlight .ow {
    color: #f92672; }
  .highlight .w {
    color: #f8f8f2; }
  .highlight .mf {
    color: #ae81ff; }
  .highlight .mh {
    color: #ae81ff; }
  .highlight .mi {
    color: #ae81ff; }
  .highlight .mo {
    color: #ae81ff; }
  .highlight .sb {
    color: #e6db74; }
  .highlight .sc {
    color: #e6db74; }
  .highlight .sd {
    color: #e6db74; }
  .highlight .s2 {
    color: #e6db74; }
  .highlight .se {
    color: #ae81ff; }
  .highlight .sh {
    color: #e6db74; }
  .highlight .si {
    color: #e6db74; }
  .highlight .sx {
    color: #e6db74; }
  .highlight .sr {
    color: #e6db74; }
  .highlight .s1 {
    color: #e6db74; }
  .highlight .ss {
    color: #e6db74; }
  .highlight .bp {
    color: #f8f8f2; }
  .highlight .vc {
    color: #f8f8f2; }
  .highlight .vg {
    color: #f8f8f2; }
  .highlight .vi {
    color: #f8f8f2; }
  .highlight .il {
    color: #ae81ff; }

body {
  font-size: 15px;
  font-display: swap;
  -webkit-font-smoothing: subpixel-antialiased; }

body {
  font-size: 15px;
  font-display: swap;
  -webkit-font-smoothing: subpixel-antialiased; }

.hidden {
  display: none;
  visibility: hidden; }

hr {
  display: block;
  margin: 2em 0;
  border: 0;
  border-top: 1px solid #ddd;
  height: 0; }

figure {
  margin: 0;
  padding-top: 10px;
  padding-bottom: 10px; }
  figure img {
    margin-bottom: 10px; }
  figure a img {
    transform: translate(0, 0);
    transition: transform 180ms ease, box-shadow 180ms ease; }
    @media (hover: hover) {
      figure a img:hover {
        transform: translate(0, -2px);
        box-shadow: 0 4px 12px rgba(36, 41, 47, 0.1), 0 2px 4px rgba(36, 41, 47, 0.07); } }
    @media (prefers-reduced-motion: reduce) {
      figure a img {
        transition: none; }
        figure a img:hover {
          transform: none; } }
  @media only screen and (min-width: 62.5em) {
    figure.half img {
      width: 310px;
      float: left;
      margin-right: 10px; }
    figure.half figcaption {
      clear: left; } }
  @media only screen and (min-width: 62.5em) {
    figure.third img {
      width: 200px;
      float: left;
      margin-right: 10px; }
    figure.third figcaption {
      clear: left; } }
svg:not(:root) {
  overflow: hidden; }

figure.center {
  text-align: center; }

figure.center img {
  float: none; }

.btn {
  display: inline-block;
  margin-bottom: 20px;
  padding: 0 20px;
  height: 40px;
  line-height: 38px;
  font-size: 14px;
  background-color: #24292f;
  color: #fff;
  border-width: 2px !important;
  border-style: solid !important;
  border-color: #24292f;
  border-radius: 8px;
  box-sizing: border-box;
  user-select: none;
  transition: background-color 150ms ease, color 150ms ease, transform 100ms ease; }
  .btn:visited {
    color: #fff; }
  @media (hover: hover) {
    .btn:hover {
      background-color: #fff;
      color: #24292f; } }
  .btn:active {
    transform: scale(0.98); }
  .btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none; }

.btn-inverse {
  background-color: #fff;
  color: #24292f;
  border-color: #fff; }
  .btn-inverse:visited {
    color: #24292f; }
  @media (hover: hover) {
    .btn-inverse:hover {
      background-color: #24292f;
      color: #fff; } }
.btn-success {
  background-color: #5cb85c;
  color: #fff;
  border-color: #5cb85c; }
  .btn-success:visited {
    color: #fff; }
  @media (hover: hover) {
    .btn-success:hover {
      background-color: #fff;
      color: #5cb85c; } }
.btn-warning {
  background-color: #dd8338;
  color: #fff;
  border-color: #dd8338; }
  .btn-warning:visited {
    color: #fff; }
  @media (hover: hover) {
    .btn-warning:hover {
      background-color: #fff;
      color: #dd8338; } }
.btn-danger {
  background-color: #c64537;
  color: #fff;
  border-color: #c64537; }
  .btn-danger:visited {
    color: #fff; }
  @media (hover: hover) {
    .btn-danger:hover {
      background-color: #fff;
      color: #c64537; } }
.btn-info {
  background-color: #308cbc;
  color: #fff;
  border-color: #308cbc; }
  .btn-info:visited {
    color: #fff; }
  @media (hover: hover) {
    .btn-info:hover {
      background-color: #fff;
      color: #308cbc; } }
.well {
  padding: 20px;
  border: 1px solid #d0d6db;
  border-radius: 8px; }

body {
  font-size: 15px;
  font-display: swap;
  -webkit-font-smoothing: subpixel-antialiased; }

body {
  font-size: 15px;
  font-display: swap;
  -webkit-font-smoothing: subpixel-antialiased; }

.hidden {
  display: none;
  visibility: hidden; }

html {
  background-color: #e8e8e8;
  min-height: 100%; }

body {
  margin: 0;
  padding: 0;
  width: 100%;
  min-height: 100vh;
  display: flow-root;
  overflow-x: hidden;
  background-color: #fff; }
  @media only screen and (min-width: 48em) {
    body {
      background-color: #e8e8e8; } }
iframe {
  border: 0; }

#main {
  min-height: calc(100vh - $menu-height); }

.entry:after,
.hentry:after {
  content: "";
  display: table;
  clear: both; }

.entry h1,
.entry h2,
.entry h3,
.entry h4,
.entry h5,
.entry h6,
.entry p,
.entry li,
.hentry h1,
.hentry h2,
.hentry h3,
.hentry h4,
.hentry h5,
.hentry h6,
.hentry p,
.hentry li {
  word-wrap: break-word; }

.hentry h1.entry-title,
.hentry h2.entry-title {
  font-size: 22px;
  line-height: 1.35;
  margin: 6px 0 8px; }
  @media only screen and (min-width: 48em) {
    .hentry h1.entry-title,
    .hentry h2.entry-title {
      font-size: 30px; } }
.body-title {
  display: block; }

.entry-content {
  font-size: 17px;
  position: relative;
  word-wrap: break-word;
  margin-bottom: 12px;
  text-autospace: ideograph-alpha ideograph-numeric; }
  @media only screen and (min-width: 48em) {
    .entry-content {
      font-size: 17px; } }
  .entry-content .page-info {
    color: rgba(85, 85, 85, 0.8);
    font-size: 15px;
    font-weight: normal;
    margin: -5px 2px 0;
    position: relative; }
    .entry-content .page-info .page-info-taxonomy {
      display: inline-block;
      margin-right: 10px; }
      .entry-content .page-info .page-info-taxonomy a {
        color: rgba(60, 60, 60, 0.9); }
    .entry-content .page-info time {
      margin: 0 20px; }
    .entry-content .page-info .qr-text {
      background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAA9ElEQVRYR9VXWw7DIAwbN+Yo3HjTJqUfqSI/FNaWvwpIjeOYMOac75cw1lrjuzz2xXeEUOMNdcM2APkkmRR0YgSsincwcBsAOSXVyVRGgoEc78TAYwBk1SOm2hnYBqCyhJxzVgMonl0F7QBYM6ycL2uAjWc7IdIADYBdyDqjGu93sTij0oAaqzQiVNeVdaNqyfPXA6jEhHKunrRaf2gA5bTrh6fLSBWNygxab1cB8gFWpLYRdaXkPgB2tWSIKfs2ZDUgA3BbMreM23rCvwNwU5B9wWZgGwDUw7EvICS+mLerwM15+TBh7wS2J2T7CdsJXQ1k5j7FF35r3ynsoAAAAABJRU5ErkJggg==) o-repeat;
      background-size: 16px 16px;
      width: 16px;
      height: 16px;
      display: none;
      position: relative;
      margin-bottom: -2px; }
      .entry-content .page-info .qr-text::before {
        content: "";
        position: absolute;
        top: -20px;
        right: -20px;
        bottom: -20px;
        left: -20px; }
      .entry-content .page-info .qr-text:hover .qr-code {
        width: 128px;
        opacity: 1;
        transform: none; }
    .entry-content .page-info .qr-code {
      position: absolute;
      opacity: 0;
      transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out;
      transform: scale(0.8);
      width: 0;
      left: -4px;
      top: -4px;
      z-index: 10;
      will-change: opacity, transform;
      pointer-events: none; }
      .entry-content .page-info .qr-code > img {
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.08);
        padding: 4px;
        background-color: #fff;
        border-radius: calc($border-radius / 2); }
    @media only screen and (min-width: 48em) {
      .entry-content .page-info {
        font-size: 17px; }
        .entry-content .page-info .qr-text {
          display: inline-block; }
        .entry-content .page-info .page-info-taxonomy {
          margin-right: 16px; } }
  .entry-content h2 > a,
  .entry-content h3 > a,
  .entry-content h4 > a,
  .entry-content p > a,
  .entry-content strong > a,
  .entry-content li > a {
    border-bottom: 1px dotted #c0c0c0; }
    .entry-content h2 > a:hover,
    .entry-content h3 > a:hover,
    .entry-content h4 > a:hover,
    .entry-content p > a:hover,
    .entry-content strong > a:hover,
    .entry-content li > a:hover {
      border-bottom-style: solid; }

.social-icon svg {
  width: 20px;
  height: 20px;
  margin-left: 12px;
  display: inline-block;
  margin-top: 3px; }
  @media only screen and (min-width: 48em) {
    .social-icon svg {
      margin-top: 4px; } }
.repo-time {
  font-size: 17px;
  display: inline-block;
  vertical-align: top; }

.content-header-title {
  text-align: center;
  margin: 30px 0 0; }
  .content-header-title h1 {
    margin: 10px 20px;
    font-weight: 700;
    font-size: 22px;
    color: #5c6469; }
    @media only screen and (min-width: 48em) {
      .content-header-title h1 {
        font-size: 30px; } }
  .content-header-title h2 {
    margin: 0;
    font-size: 18px;
    text-transform: uppercase;
    color: #8b9299; }
    @media only screen and (min-width: 48em) {
      .content-header-title h2 {
        font-size: 25px; } }
  .content-header-title p {
    color: #5c6469; }

.entry-meta {
  font-size: 13px;
  margin-top: 0;
  color: #c9ced4; }
  .entry-meta a {
    color: #c9ced4; }
  .entry-meta .tag {
    display: inline-block;
    margin: 4px;
    color: #fff;
    border-radius: calc($border-radius / 2);
    background-color: #15141a; }
    .entry-meta .tag span {
      float: left;
      padding: 2px 6px; }
    .entry-meta .tag .count {
      background-color: #fff;
      color: #15141a;
      border-top-right-radius: calc($border-radius / 2);
      border-top-left-radius: 0px;
      border-bottom-right-radius: calc($border-radius / 2);
      border-bottom-left-radius: 0; }

#post #main,
#page #main {
  margin: 60px 0 0 0;
  background-color: #e8e8e8; }
  @media only screen and (min-width: 48em) {
    #post #main,
    #page #main {
      margin: 0;
      background-color: transparent; } }
#post .hentry,
#page .hentry {
  background-color: #e8e8e8;
  padding-top: 15px; }
  @media only screen and (min-width: 48em) {
    #post .hentry,
    #page .hentry {
      background-color: transparent;
      padding-top: 0; } }
#post .entry-content,
#page .entry-content {
  margin-bottom: 15px;
  padding: 10px 15px;
  background-color: #fff;
  box-shadow: none; }
  @media only screen and (min-width: 48em) {
    #post .entry-content,
    #page .entry-content {
      margin: 30px 10px;
      padding: 20px 30px;
      border-radius: 8px; } }
  @media only screen and (min-width: 62.5em) {
    #post .entry-content,
    #page .entry-content {
      max-width: 900px;
      margin: 34px auto 34px auto;
      padding: 32px 80px 70px; }
      #post .entry-content > p:first-child,
      #page .entry-content > p:first-child {
        font-size: 20px; } }
#post .giscus-container,
#page .giscus-container {
  margin: 0 0 15px 0;
  padding: 20px 15px;
  background-color: #fff; }
  @media only screen and (min-width: 48em) {
    #post .giscus-container,
    #page .giscus-container {
      margin: 20px 10px;
      padding: 20px 30px;
      border-radius: 8px; } }
  @media only screen and (min-width: 62.5em) {
    #post .giscus-container,
    #page .giscus-container {
      max-width: 900px;
      padding: 50px 80px;
      margin: 0 auto; } }
#post .entry-meta,
#page .entry-meta {
  margin: 10px 0 20px; }

.entry-tags {
  display: block;
  margin-bottom: 6px; }

.year-heading {
  margin-top: 0; }

.permalink {
  margin-right: 7px; }

.pagination {
  margin: 30px 0 30px 0;
  text-align: center;
  font-size: 18px; }
  @media only screen and (min-width: 48em) {
    .pagination {
      margin: 40px 10px 30px;
      font-size: 20px; } }
  .pagination ul {
    display: inline;
    margin-left: 10px;
    margin-right: 10px; }
  .pagination li {
    padding-left: 4px;
    padding-right: 4px; }
  .pagination .current-page {
    font-weight: 700; }
  .pagination .btn {
    padding: 0 10px;
    height: 40px;
    line-height: 38px; }
    @media only screen and (min-width: 48em) {
      .pagination .btn {
        padding: 0 20px; } }
.read-more {
  display: block;
  position: relative;
  margin: 40px 0 48px 0;
  padding: 40px 15px 25px;
  background-color: #fff; }
  @media only screen and (min-width: 48em) {
    .read-more {
      margin: 40px 10px 48px;
      padding: 40px 30px 25px;
      border-radius: 8px; } }
  @media only screen and (min-width: 62.5em) {
    .read-more {
      max-width: 900px;
      padding: 50px 80px;
      margin: 34px auto 48px; } }
  .read-more:after {
    content: "";
    display: table;
    clear: both; }

.read-more-header {
  position: absolute;
  top: -20px;
  left: 0;
  right: 0;
  height: 35px;
  text-align: center; }
  .read-more-header .read-more-btn {
    display: inline-block;
    margin-bottom: 20px;
    padding: 0 20px;
    height: 40px;
    line-height: 38px;
    font-size: 14px;
    background-color: #24292f;
    color: #fff;
    border-width: 2px !important;
    border-style: solid !important;
    border-color: #24292f;
    border-radius: 8px;
    text-decoration: none;
    box-sizing: border-box; }
    .read-more-header .read-more-btn:visited {
      color: #fff; }
    .read-more-header .read-more-btn:hover {
      background-color: #fff;
      color: #24292f; }

.read-more-content {
  font-size: 17px;
  margin-bottom: 0; }
  .read-more-content p {
    text-align: left;
    margin-top: 6px;
    margin-bottom: 6px; }
  .read-more-content p > a,
  .read-more-content li > a {
    border-bottom: 1px dotted #c0c0c0; }
    .read-more-content p > a:hover,
    .read-more-content li > a:hover {
      border-bottom-style: solid; }
  .read-more-content h3 {
    margin: 0;
    font-size: 22px; }
    @media only screen and (min-width: 48em) {
      .read-more-content h3 {
        font-size: 30px; } }
    .read-more-content h3 a {
      color: rgba(36, 41, 47, 0.9); }

.list-inline {
  padding-left: 0;
  margin-left: -5px;
  list-style: none; }

.list-inline > li {
  display: inline-block;
  padding-right: 5px;
  padding-left: 5px; }

#post-index #main {
  margin: 60px 0 0 0;
  overflow: hidden;
  background-color: #e8e8e8; }
  @media only screen and (min-width: 48em) {
    #post-index #main {
      margin: 20px;
      background-color: transparent; } }
  @media only screen and (min-width: 62.5em) {
    #post-index #main {
      max-width: 900px;
      margin: 34px auto 0; } }
#post-index article {
  background-color: #fff;
  box-shadow: none;
  margin-top: 15px;
  margin-bottom: 15px;
  padding: 15px; }
  @media only screen and (min-width: 48em) {
    #post-index article {
      margin-top: 0;
      margin-bottom: 30px;
      border-radius: 8px;
      padding: 20px 36px 20px; } }
  @media only screen and (min-width: 62.5em) {
    #post-index article {
      margin-bottom: 34px;
      padding: 30px 50px 20px; } }
#post-index .terms-container {
  margin: 15px 0;
  padding: 18px 15px;
  background-color: #fff; }
  @media only screen and (min-width: 48em) {
    #post-index .terms-container {
      margin: 0 0 30px;
      padding: 24px 30px;
      border-radius: 8px; } }
  @media only screen and (min-width: 62.5em) {
    #post-index .terms-container {
      padding: 32px 50px;
      margin-bottom: 34px; } }
#post-index .terms-title {
  margin: 0 0 16px; }

#post-index .terms-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px; }

#post-index .term-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-radius: calc($border-radius / 2);
  padding: 4px 10px;
  background-color: #f5f8ff;
  color: #334155; }
  #post-index .term-chip:hover {
    background-color: #e8eefc; }

#post-index .term-name {
  font-size: 14px; }

#post-index .term-count {
  display: inline-block;
  min-width: 20px;
  text-align: center;
  padding: 0 6px;
  border-radius: 999px;
  font-size: 12px;
  line-height: 20px;
  color: #3a5aa9;
  background-color: #fff;
  border: 1px solid #dbe3f3; }

#post-index .terms-empty {
  margin: 0;
  color: #6b7280; }

#post-index .post-card-link {
  color: rgba(36, 41, 47, 0.9); }

#post-index .entry-taxonomies {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px; }

#post-index .entry-taxonomy {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: calc($border-radius / 2);
  font-size: 13px;
  line-height: 1.5; }

#post-index .entry-category {
  background-color: #eef2f7;
  color: #57606a; }

#post-index .entry-tag {
  background-color: #f5f8ff;
  color: #3a5aa9; }

.footer-wrapper {
  margin: 0 auto;
  padding: 14px 0 30px;
  text-align: center;
  font-size: 15px;
  background-color: #e8e8e8; }
  .footer-wrapper:after {
    content: "";
    display: table;
    clear: both; }
  @media only screen and (min-width: 48em) {
    .footer-wrapper {
      padding: 8px 0 20px;
      font-size: 17px; } }
.upgrade {
  padding: 10px;
  text-align: center; }

#goog-fixurl ul {
  list-style: none;
  margin-left: 0;
  padding-left: 0; }
  #goog-fixurl ul li {
    list-style-type: none; }

#goog-wm-qt {
  width: auto;
  margin-right: 10px;
  margin-bottom: 20px;
  padding: 8px 20px;
  display: inline-block;
  font-size: 15px;
  background-color: #fff;
  color: rgba(36, 41, 47, 0.9);
  border-width: 2px;
  border-style: solid;
  border-color: #91979f;
  border-radius: calc($border-radius / 2); }

#goog-wm-sb {
  display: inline-block;
  margin-bottom: 20px;
  padding: 0 20px;
  height: 40px;
  line-height: 38px;
  font-size: 14px;
  background-color: #24292f;
  color: #fff;
  border-width: 2px !important;
  border-style: solid !important;
  border-color: #24292f;
  border-radius: 8px;
  text-decoration: none;
  box-sizing: border-box; }
  #goog-wm-sb:visited {
    color: #fff; }
  #goog-wm-sb:hover {
    background-color: #fff;
    color: #24292f; }

.entry-header {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 260px;
  background: #15141a;
  display: none; }
  .entry-header svg {
    margin-top: 60px; }
  .entry-header canvas {
    position: absolute;
    left: 0;
    top: 0; }
  @media only screen and (min-width: 48em) {
    .entry-header {
      display: block; } }
.header-menu {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 20;
  overflow: hidden;
  background-color: white;
  height: 60px;
  box-shadow: 0 0 0 0, 0 6px 12px rgba(0, 0, 0, 0.1);
  padding: 0 15px; }
  @media only screen and (min-width: 48em) {
    .header-menu {
      position: fixed;
      padding: 0;
      transition: transform 0.3s ease-out; } }
  .header-menu ul {
    margin: 0 auto;
    list-style-type: none;
    height: 100%;
    padding: 0; }
    @media only screen and (min-width: 62.5em) {
      .header-menu ul {
        max-width: 900px;
        padding: 0; } }
@media only screen and (min-width: 48em) {
  .header-menu-overflow {
    transform: translateY(-100%); } }

.header-item.language-icon svg {
  display: inline-block;
  width: 18px;
  height: 18px;
  margin-top: 9px;
  margin-right: 4px; }
  @media only screen and (min-width: 48em) {
    .header-item.language-icon svg {
      margin-top: 11px; } }
.header-item {
  padding-left: 8px;
  padding-right: 8px; }
  @media only screen and (min-width: 48em) {
    .header-item {
      padding-left: 8px;
      padding-right: 8px; } }
  @media only screen and (min-width: 62.5em) {
    .header-item.language-item {
      margin-right: 0;
      padding-right: 0 !important; } }
  .header-item.language-item {
    padding-right: 0 !important; }
  .header-item a {
    vertical-align: middle;
    display: block;
    font-size: 15px;
    box-sizing: border-box;
    font-weight: bold; }
    .header-item a:visited {
      color: rgba(36, 41, 47, 0.9); }
    @media only screen and (min-width: 48em) {
      .header-item a {
        font-size: 16px; } }
  .header-item.active a, .header-item:hover a {
    color: #15141a; }

.header-item-title {
  border-top-width: 0px; }
  @media only screen and (min-width: 48em) {
    .header-item-title {
      padding-left: 0;
      padding-right: 20px; } }
.header-item-left {
  display: flex;
  align-items: center;
  padding-left: 10px;
  padding-right: 10px; }
  .header-item-title + .header-item-left {
    display: none; }
    @media only screen and (min-width: 48em) {
      .header-item-title + .header-item-left {
        display: flex;
        padding-left: 10px; } }
  .header-item-title + .header-item-left + .header-item-left {
    padding-left: 30px; }
    @media only screen and (min-width: 48em) {
      .header-item-title + .header-item-left + .header-item-left {
        padding-left: 10px; } }
  @media only screen and (min-width: 48em) {
    .header-item-left {
      padding-left: 10px;
      padding-right: 10px; } }
  @media only screen and (min-width: 48em) {
    .header-item-left.header-item-social:last-of-type {
      margin-right: 20px; } }
  .header-item-left a {
    vertical-align: middle;
    display: block;
    font-size: 15px;
    box-sizing: border-box;
    font-weight: bold;
    position: relative;
    top: 0; }
    .header-item-left a:visited {
      color: rgba(36, 41, 47, 0.9); }
    @media only screen and (min-width: 48em) {
      .header-item-left a {
        font-size: 16px; } }
  .header-item-left.active a, .header-item-left:hover a {
    color: #15141a; }

.header-item-social {
  display: flex; }
  .header-item-social + .header-item-social {
    display: none; }
  @media only screen and (min-width: 48em) {
    .header-item-social {
      display: block; }
      .header-item-social + .header-item-social {
        display: block; } }
.logo {
  width: 60px;
  height: 60px;
  float: left;
  padding: 10px; }

.header-item-container {
  height: 100%;
  display: flex;
  align-items: center; }
  @media only screen and (min-width: 62.5em) {
    .header-item-container {
      max-width: 900px;
      margin: 0 auto; } }
.header-item {
  height: 100%;
  display: flex;
  align-items: center; }

.header-item-title {
  float: left;
  border-top-width: 0px;
  height: 100%; }
  .header-item-title a.title {
    font-size: 24px;
    font-weight: 800;
    color: #24292f;
    padding-left: 0;
    display: flex;
    align-items: center;
    height: 60px; }
    @media only screen and (min-width: 48em) {
      .header-item-title a.title {
        font-size: 30px;
        padding-left: 0; } }
    .header-item-title a.title .logo-img {
      display: block;
      border-radius: 50%;
      margin-top: -2px;
      width: 36px;
      height: 36px;
      object-fit: cover; }

.header-href {
  display: block; }

.video-container,
.keynote-container {
  position: relative;
  padding-bottom: 56.25%;
  padding-top: 24px;
  height: 0;
  overflow: hidden; }
  .video-container iframe,
  .video-container object,
  .video-container embed,
  .video-container video,
  .keynote-container iframe,
  .keynote-container object,
  .keynote-container embed,
  .keynote-container video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }

.keynote-container {
  padding-bottom: 50.4%;
  background-color: #fff; }
  .keynote-container .fullscreen-btn {
    display: none;
    display: inline-block;
    margin-bottom: 20px;
    padding: 0 20px;
    height: 40px;
    line-height: 38px;
    font-size: 14px;
    background-color: #24292f;
    color: #fff;
    border-width: 2px !important;
    border-style: solid !important;
    border-color: #24292f;
    border-radius: 8px;
    text-decoration: none;
    box-sizing: border-box;
    position: absolute;
    right: 0;
    font-size: 13px;
    letter-spacing: 1px;
    bottom: -20px;
    height: 32px;
    width: 60px;
    line-height: 32px;
    padding: 0 8px;
    opacity: 0.3;
    border-width: 0; }
    .keynote-container .fullscreen-btn:visited {
      color: #fff; }
    .keynote-container .fullscreen-btn:hover {
      background-color: #fff;
      color: #24292f; }
  @media only screen and (min-width: 48em) {
    .keynote-container {
      padding-bottom: 53.2%; }
      .keynote-container .fullscreen-btn {
        display: block; } }
.coffee {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 40px 0 20px;
  position: relative; }
  @media only screen and (min-width: 62.5em) {
    .coffee {
      margin-bottom: -20px; } }
  .coffee .buy-me-coffee {
    display: inline-block;
    margin-bottom: 20px;
    padding: 0 20px;
    height: 40px;
    line-height: 38px;
    font-size: 14px;
    background-color: #24292f;
    color: #fff;
    border-width: 2px !important;
    border-style: solid !important;
    border-color: #24292f;
    border-radius: 8px;
    text-decoration: none;
    box-sizing: border-box;
    margin: 0 auto;
    position: relative;
    padding: 0 18px;
    text-align: center;
    cursor: pointer;
    user-select: none; }
    .coffee .buy-me-coffee:visited {
      color: #fff; }
    .coffee .buy-me-coffee:hover {
      background-color: #fff;
      color: #24292f; }
    .coffee .buy-me-coffee.active {
      background-color: #fff;
      color: #222; }

@media only screen and (min-width: 48em) {
  .img-zoom {
    cursor: zoom-in; } }

.lazyload,
.lazyloading {
  filter: blur(5px);
  transition: filter 400ms; }

.lazyloaded {
  filter: blur(0); }

.share-img {
  margin: 0 auto;
  width: 0px;
  height: 0px;
  overflow: hidden; }

.video {
  margin-block-end: 1em; }

.bg-img {
  padding: 10px 15px 15px;
  background: #171f32;
  margin-top: -2px; }
  @media only screen and (min-width: 48em) {
    .bg-img {
      padding: 10px 30px 30px; } }
video.bg-img {
  margin-block-start: -1em; }

.btn-arrow {
  font-size: 20px;
  display: inline-block;
  vertical-align: middle;
  height: 42px;
  line-height: 42px; }

.video-border {
  padding: 24px;
  background: url(https://gw.alipayobjects.com/zos/k/0d/UpT4s7.png) no-repeat center; }

@media only screen and (min-width: 48em) {
  .entry-content img {
    cursor: zoom-in; } }

body {
  font-size: 15px;
  font-display: swap;
  -webkit-font-smoothing: subpixel-antialiased; }

body {
  font-size: 15px;
  font-display: swap;
  -webkit-font-smoothing: subpixel-antialiased; }

.hidden {
  display: none;
  visibility: hidden; }

.search-btn-container {
  line-height: 1;
  margin-left: auto; }

.search-btn {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 6px !important;
  border-radius: 50%;
  border: none;
  background-color: transparent;
  cursor: pointer;
  transition: colors 150ms ease; }
  .search-btn, .search-btn:link, .search-btn:visited {
    color: #9ca3af !important; }
  .search-btn:hover {
    color: #111827 !important;
    background-color: transparent;
    opacity: 1; }
  .search-btn:active {
    transform: scale(0.95); }
  .search-btn svg {
    display: block;
    width: 18px;
    height: 18px; }

.search-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(4px);
  z-index: 9999;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 70px 0 0 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease; }
  @media only screen and (min-width: 48em) {
    .search-modal {
      padding: 120px 20px 20px; } }
  .search-modal.active {
    opacity: 1;
    pointer-events: auto; }

.search-container {
  width: 100%;
  max-width: 600px;
  background: #fff;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 70px);
  transform: translateY(-20px);
  transition: transform 0.2s ease; }
  .search-modal.active .search-container {
    transform: translateY(0); }
  @media only screen and (min-width: 48em) {
    .search-container {
      border-radius: 8px;
      max-height: calc(100vh - 140px); } }
.search-header {
  display: flex;
  align-items: center;
  padding: 16px 20px;
  gap: 12px; }

.search-input {
  flex: 1;
  font-size: 16px;
  border: none;
  outline: none;
  background: transparent;
  color: rgba(36, 41, 47, 0.9);
  font-family: "TsangerJinKai02", "STKaiti", "KaiTi", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; }
  .search-input::placeholder {
    color: #9ca3af; }
  .search-input::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none; }
  .search-input::-webkit-search-decoration {
    -webkit-appearance: none;
    appearance: none; }

.search-close {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6px;
  background: transparent;
  border: none;
  cursor: pointer;
  color: #9ca3af;
  border-radius: calc($border-radius / 1.33);
  transition: opacity 0.2s ease;
  flex-shrink: 0; }
  .search-close:hover {
    opacity: 0.6; }

.search-results {
  flex: 1;
  overflow-y: auto;
  padding: 8px 20px 20px; }
  .search-results::-webkit-scrollbar {
    width: 6px; }
  .search-results::-webkit-scrollbar-thumb {
    background-color: #e5e7eb;
    border-radius: 3px; }

.search-no-results {
  padding: 40px 20px;
  text-align: center;
  color: #9ca3af;
  font-size: 15px; }

.search-result-item {
  display: block;
  padding: 12px 16px;
  margin: 0 -8px 4px;
  border-radius: 8px;
  transition: background-color 0.2s ease; }
  .search-result-item:hover {
    background-color: #f3f4f6; }

.search-result-title {
  display: block;
  font-size: 16px;
  font-weight: 600;
  color: rgba(36, 41, 47, 0.9);
  margin-bottom: 4px; }
  .search-result-item:hover .search-result-title {
    color: #24292f; }

.search-result-excerpt {
  display: block;
  font-size: 14px;
  color: #6b7280;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden; }
  .search-result-excerpt mark {
    background: #fef3c7;
    color: #92400e;
    padding: 0 2px;
    border-radius: 2px;
    font-weight: 500; }

.search-result-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 8px;
  font-size: 12px;
  color: #9ca3af; }

.search-result-category {
  display: flex;
  align-items: center;
  gap: 4px; }
  .search-result-category svg {
    width: 14px;
    height: 14px; }

.search-result-tag {
  display: flex;
  align-items: center;
  color: #6b7280; }

.search-result-date {
  display: flex;
  align-items: center;
  gap: 4px; }
  .search-result-date svg {
    width: 14px;
    height: 14px; }

.search-footer {
  padding: 12px 20px;
  border-top: 1px solid #f3f4f6;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  font-size: 12px;
  color: #9ca3af; }
  @media (max-width: 480px) {
    .search-footer {
      display: none; } }
.search-shortcut {
  display: flex;
  align-items: center;
  gap: 4px; }
  .search-shortcut kbd {
    display: inline-block;
    padding: 2px 4px;
    font-size: 11px;
    font-family: sans-serif;
    line-height: 1;
    color: #6b7280;
    background-color: #f3f4f6;
    border: 1px solid #e5e7eb;
    border-radius: 3px;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
    min-width: 18px;
    text-align: center; }

body {
  font-size: 15px;
  font-display: swap;
  -webkit-font-smoothing: subpixel-antialiased; }

body {
  font-size: 15px;
  font-display: swap;
  -webkit-font-smoothing: subpixel-antialiased; }

.hidden {
  display: none;
  visibility: hidden; }

svg#robot {
  display: block;
  position: relative;
  margin: 3em auto 0em auto;
  padding: 10px;
  transform-origin: bottom;
  transform: rotate(0deg) translate3d(0px, 0px, 0px);
  animation: move 2s ease infinite; }
  @media only screen and (min-width: 48em) {
    svg#robot {
      margin: 2.4em auto 0 auto; } }
@keyframes move {
  0%, 100% {
    transform: rotate(0deg) translate3d(0px, 0px, 0px); }
  25% {
    transform: rotate(5deg) translate3d(5px, 5px, 0px); }
  75% {
    transform: rotate(-6deg) translate3d(-5px, 5px, 0px); } }

g#head {
  transform: rotate(0deg) translate3d(0px, 0px, 0px);
  transform-origin: bottom center;
  animation: head 1s 1s ease infinite; }
  g#head #leftAntenna > ellipse, g#head #rightAntenna > ellipse {
    animation: color 350ms linear infinite; }

@keyframes head {
  0%, 46%, 50%, 55%, 100% {
    transform: rotate(0deg) translate3d(0px, 0px, 0px); }
  49% {
    transform: rotate(20deg) translate3d(0px, 0px, 0px); }
  51% {
    transform: rotate(-10deg) translate3d(0px, 0px, 0px); } }

@keyframes color {
  0%, 100% {
    fill: #ccc; }
  50% {
    fill: red; } }

#upperTorso {
  transform: rotate(0deg);
  transform-origin: center;
  animation: torso 600ms 1s ease infinite; }
  #upperTorso #leftArm {
    transform: rotate(0deg);
    transform-origin: 80% 5%;
    animation: left 1s ease infinite; }
    #upperTorso #leftArm .forearm {
      transform: rotate(0deg);
      transform-origin: 68% 10%;
      animation: forearm 800ms 1s ease infinite; }
  #upperTorso #rightArm {
    transform: rotate(0deg);
    transform-origin: 18% 0%;
    animation: right 1s ease infinite; }
    #upperTorso #rightArm .forearm {
      transform: rotate(0deg);
      transform-origin: 68% 10%;
      animation: forearm 700ms 1s ease infinite; }

@keyframes torso {
  40%, 50%, 60% {
    transform: rotate(0deg); }
  45% {
    transform: rotate(5deg); }
  55% {
    transform: rotate(-5deg); } }

@keyframes left {
  60% {
    transform: rotate(100deg); } }

@keyframes right {
  50% {
    transform: rotate(-70deg); } }

@keyframes forearm {
  0%, 30%, 50%, 70%, 100% {
    transform: rotate(0deg); }
  40% {
    transform: rotate(25deg); }
  60% {
    transform: rotate(-25deg); } }

#lowerTrunk {
  transform: rotate(0deg);
  transform-origin: 60% 5%;
  animation: lowerTrunk 1s ease infinite; }

@keyframes lowerTrunk {
  0%, 100% {
    transform: rotate(0deg) translate3d(0px, 0px, 0px); }
  25% {
    transform: rotate(2deg) translate3d(2px, 0px, 0px); }
  75% {
    transform: rotate(-2deg) translate3d(-2px, 0px, 0px); } }

#leftFoot {
  transform: rotate(0deg);
  transform-origin: 60% 5%;
  animation: leftFoot 2s ease infinite; }
  #leftFoot > .lowerLeg {
    transform: rotate(0deg);
    transform-origin: 68% 10%;
    animation: lowerLeg 2s ease infinite; }

@keyframes leftFoot {
  0%, 50% {
    transform: rotate(0deg); }
  25% {
    transform: rotate(70deg); } }

@keyframes lowerLeg {
  0%, 50% {
    transform: rotate(0deg); }
  8%, 14% {
    transform: rotate(-15deg); }
  11%, 18% {
    transform: rotate(15deg); } }

#rightFoot {
  transform: rotate(0deg);
  transform-origin: 50% 5%;
  animation: rightFoot 2s ease infinite; }
  #rightFoot > .lowerLeg {
    transform: rotate(0deg);
    transform-origin: 68% 10%;
    animation: lowerLegIz 2s ease infinite; }

@keyframes rightFoot {
  75% {
    transform: rotate(-60deg); }
  50%, 100% {
    transform: rotate(0deg); } }

@keyframes lowerLegIz {
  50%, 100% {
    transform: rotate(0deg); }
  60%, 70% {
    transform: rotate(15deg); }
  65%, 85% {
    transform: rotate(-15deg); } }

h1.error-not-found {
  width: 100%;
  text-align: center;
  text-shadow: 0 3px 0px #000, 0 6px 0px #333;
  color: #f54f59;
  font-size: 6em;
  font-weight: 700;
  margin-bottom: 1.2em;
  margin-top: 0; }
  @media only screen and (min-width: 48em) {
    h1.error-not-found {
      margin-bottom: 0.4em; } }
