:root {
    --dark: #343a40;
    --grayer: #495057;
    --gray: #6c757d;
    --gray-light: #ced4da;
    --light-gray: #adb5bd;
    --light: #dee2e6;
    --lighter: #e9ecef;
    --lightest: #faf9fa;
    --white: #fff;
    --blue: #007bff;
    --red: #dc3545;
    --bg-color: var(--white);
    --content-width: 750px
}

@keyframes spin {
    0% {
        -webkit-transform: rotate(0deg);
        tranform: rotate(0deg)
    }

    to {
        -webkit-transform: rotate(1turn);
        tranform: rotate(1turn)
    }
}

* {
    border: 0;
    padding: 0;
    margin: 0;
    box-sizing: border-box
}

body,
html {
    font-family: "Times New Roman", TimesNewRoman, Times, "宋体", SimSun, apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Apple Color Emoji, Arial, sans-serif, Segoe UI Emoji, Segoe UI Symbol, Microsoft YaHei, 微软雅黑, STXihei, 华文细黑;
    width: 100%;
    background-color: var(--bg-color);
    color: var(--dark);
    font-size: 17px;
}

body {
    min-height: 100vh;
    overflow-x: hidden;
    display: flex !important;
    display: -webkit-box;
    display: -ms-flexbox;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column
}

main {
    flex: 1
}

h1,
h2,
h3 {
    font-weight: 400
}

h1 {
    font-size: 2.36rem
}

h2 {
    font-size: 1.77rem
}

h3 {
    font-size: 1.33rem
}

a,
a:active,
a:hover,
a:visited {
    text-decoration: none;
    color: var(--dark)
}

.loading {
    display: flex;
    width: 100vw;
    height: 100vh;
    position: fixed;
    z-index: 15;
    background-color: var(--bg-color);
    align-items: center;
    justify-content: center
}

.loading__icon {
    width: 60px;
    height: 60px;
    position: relative;
    border-radius: 30px;
    border: 2px solid var(--gray-light)
}

.loading__icon:after {
    content: "";
    position: absolute;
    top: -2px;
    left: -2px;
    bottom: -2px;
    right: -2px;
    border-radius: 30px;
    border: 2px solid transparent;
    border-top: 2px solid var(--gray);
    animation: spin 1s linear infinite
}

.error-title {
    font-size: 3.5rem
}

.error-hint {
    margin: 3rem 0
}

.error-link {
    text-decoration: underline
}

.clearfix:after {
    content: "";
    clear: both;
    display: block
}

.site-footer {
    line-height: 1.5rem;
    padding: 1.25rem 0;
    color: var(--gray);
    font-size: .75rem;
    text-align: center;
    width: 100%
}

.site-footer a {
    font-size: .75rem;
    margin: 0 3px
}

.logo {
    position: fixed;
    left: 3rem;
    top: 2rem;
    z-index: 11;
    display: block;
    color: var(--gray)
}

.logo h1 {
    font-size: 18px;
    font-weight: 400;
    line-height: 30px
}

.logo img+h1 {
    margin: 0;
    transform: translateX(-20px);
    opacity: 0;
    position: absolute;
    left: calc(30px + 1rem);
    top: 0;
    width: 100px
}

.logo:hover img+h1 {
    opacity: 1;
    transform: none;
    transition: transform .3s, opacity .3s
}

.sidebar__toggler {
    width: 40px;
    height: 40px;
    position: fixed;
    left: 3rem;
    bottom: 2rem;
    margin: -20px 10px 10px;
    z-index: 11
}

.logo,
.sidebar__toggler {
    -webkit-transition: all .35s ease-out;
    -moz-transition: all .35s ease-out;
    -o-transition: all .35s ease-out;
    transition: all .35s ease-out
}

.sidebar-right .logo,
.sidebar-right .sidebar__toggler {
    right: 3rem;
    left: auto
}

.sidebar-right .logo img+h1 {
    left: auto;
    right: calc(30px + 1rem);
    transform: translateX(20px);
    text-align: right
}

.sidebar-right .logo:hover img+h1 {
    transform: none
}

.sidebar__toggler span {
    display: inline-block;
    position: absolute;
    background-color: var(--gray);
    height: 2px;
    left: 5%;
    transition: all .25s linear;
    border-radius: 2px
}

.sidebar__toggler_top {
    width: 40%;
    top: 7.5px
}

.sidebar__toggler_middle {
    width: 70%;
    top: 19px
}

.sidebar__toggler_bottom {
    width: 90%;
    bottom: 7.5px
}

.sidebar__toggler:hover .sidebar__toggler_top {
    width: 90%
}

.sidebar__toggler:hover .sidebar__toggler_bottom {
    width: 40%
}

.sidebar__toggler.active .sidebar__toggler_top {
    transform-origin: 5% 5%;
    width: 90%;
    transform: rotate(45deg)
}

.sidebar__toggler.active .sidebar__toggler_middle {
    opacity: 0
}

.sidebar__toggler.active .sidebar__toggler_bottom {
    width: 90%;
    transform-origin: 5% 95%;
    transform: rotate(-45deg)
}

a.nav-link {
    display: inline-block;
    padding: 5px .25rem;
    position: relative
}

a.nav-link:after {
    content: "";
    position: absolute;
    display: inline-block;
    left: 0;
    bottom: 0;
    height: 1px;
    background-color: var(--light-gray);
    width: 0;
    transition: width .25s ease-out
}

a.nav-link:hover:after {
    width: 100%
}

a.nav-link.active:after {
    background-color: var(--gray);
    width: 100%
}

.top-nav {
    margin: -2.45rem 0 3.45rem;
    text-align: right
}

.top-nav a {
    margin: 0 0 0 1rem
}

@media screen and (max-width:768px) {

    .logo,
    .logo.active,
    .sidebar-right .logo,
    .sidebar-right .logo.active {
        position: absolute;
        left: 1.5rem;
        top: 2rem;
        margin: 0
    }

    .sidebar-right .sidebar__toggler,
    .sidebar-right .sidebar__toggler.active,
    .sidebar__toggler,
    .sidebar__toggler.active {
        position: absolute;
        bottom: auto;
        top: 2rem;
        right: 1rem;
        margin: -10px 0 0;
        left: auto
    }

    .top-nav {
        padding-left: 40px
    }
}

.content {
    display: block;
    word-wrap: break-word;
    overflow: hidden;
    color: var(--dark);
    line-height: 1.7;
    text-align: justify;
    text-justify: inter-word
}

.content * {
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
    font-size: inherit
}

.content>:last-child {
    margin-bottom: 0 !important
}

.content blockquote,
.content code,
.content figure,
.content img,
.content pre,
.content table,
.content tr {
    page-break-inside: avoid
}

.content h2,
.content h3,
.content h4,
.content h5,
.content p {
    orphans: 3;
    widows: 3
}

.content h1,
.content h2,
.content h3,
.content h4,
.content h5 {
    page-break-after: avoid
}

.content b,
.content strong {
    font-weight: 700
}

.content em {
    font-style: italic
}

.content blockquote,
.content dl,
.content ol,
.content p,
.content table,
.content ul {
    margin-top: 0;
    margin-bottom: .85em
}

.content a {
    text-decoration: none;
    background: transparent;
    border-bottom: 1px dashed var(--gray);
    margin: 0 .25rem;
    font-size: .9em;
    color: var(--grayer)
}

.content a:active,
.content a:focus,
.content a:hover {
    outline: 0;
    border-style: solid
}

.content img {
    border: 0;
    max-width: 100%;
    vertical-align: middle
}

.content hr {
    height: 1px;
    padding: 0;
    margin: 1.7em 0;
    overflow: hidden;
    background-color: #e7e7e7;
    border: none
}

.content hr:after,
.content hr:before {
    display: table;
    content: " "
}

.content hr:after {
    clear: both
}

.content h1,
.content h2,
.content h3,
.content h4,
.content h5,
.content h6 {
    margin-top: 1.275em;
    margin-bottom: .85em;
    font-weight: 550
}

.content h1 {
    font-size: 2.3em;
    font-weight: 500;
    margin-bottom: 1em
}

.content h2 {
    font-size: 1.75em
}

.content h3 {
    font-size: 1.5em
}

.content h4 {
    font-size: 1.25em
}

.content h5,
.content h6 {
    font-size: 1em
}

.content h6 {
    color: #777
}

.content code,
.content pre {
    font-family: Consolas, Liberation Mono, Menlo, Courier, monospace;
    direction: ltr;
    margin: 0;
    padding: 0;
    border: none;
    color: inherit
}

.content pre {
    overflow: auto;
    word-wrap: normal;
    padding: .85em 1em;
    margin: 0 0 1.275em;
    background: var(--lightest)
}

.content pre>code {
    display: inline;
    max-width: none;
    padding: 0;
    margin: 0;
    overflow: initial;
    line-height: inherit;
    font-size: .85em;
    white-space: pre;
    background: transparent
}

.content pre>code:after,
.content pre>code:before {
    content: normal
}

.content code {
    padding: .2em;
    margin: 0;
    font-size: .85em;
    background-color: var(--lightest);
    border-radius: 3px
}

.content code:after,
.content code:before {
    letter-spacing: -.2em;
    content: " "
}

.content table {
    display: table;
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    overflow: auto
}

.content table td,
.content table th {
    padding: 6px 13px;
    border: 1px solid #ddd
}

.content table tr {
    background-color: #fff;
    border-top: 1px solid var(--gray-light)
}

.content table tr:nth-child(2n) {
    background-color: var(--lightest)
}

.content table th {
    font-weight: 700
}

.content ol,
.content ul {
    margin: 0 0 .85em;
    padding: 0 0 0 2em
}

.content ol ol,
.content ol ul,
.content ul ol,
.content ul ul {
    margin-top: 0;
    margin-bottom: 0
}

.content ol ol {
    list-style-type: lower-roman
}

.content blockquote {
    margin: 0 0 .85em;
    padding: 0 15px;
    color: var(--gray);
    border-left: 4px solid var(--light)
}

.content blockquote:first-child {
    margin-top: 0
}

.content blockquote:last-child {
    margin-bottom: 0
}

.content dl {
    padding: 0
}

.content dl dt {
    padding: 0;
    margin-top: .85em;
    font-style: italic;
    font-weight: 700
}

.content dl dd {
    padding: 0 .85em;
    margin-bottom: .85em
}

.content dd {
    margin-left: 0
}

.content .mermaid {
    margin-bottom: .85rem
}

.content sup .footnote {
    font-size: .75rem
}

.content .footnotes {
    margin: 2rem 0 0;
    padding: 1rem 0;
    position: relative;
    color: var(--gray);
    width: 100%;
    text-align: left
}

.content .footnotes:before {
    content: "";
    position: absolute;
    display: inline-block;
    left: 0;
    background-color: var(--light);
    width: 30%;
    height: 1px;
    top: 0
}

.content .footnotes ol li {
    font-size: .875rem
}

.error-container {
    display: flex;
    width: 100vw;
    height: 100vh;
    align-items: center;
    justify-content: center;
    flex-direction: column
}

.error-title {
    font-size: 4rem
}

.error-hint {
    margin: .5rem 0 1.5rem;
    font-size: 1.35rem;
    text-decoration: none
}

.body-archive {
    overflow-x: hidden
}

.archive {
    width: 100vw;
    height: 100vh;
    overflow: hidden
}

.archive .site-footer {
    position: fixed;
    width: 35%;
    left: 0;
    bottom: 0;
    z-index: 2
}

.archive__header {
    width: 35%;
    height: 100%;
    border-right: 1px solid var(--lighter);
    text-align: center;
    justify-content: center;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 1;
    display: flex !important;
    display: -webkit-box;
    display: -ms-flexbox;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column
}

.archive__header h1 {
    font-size: 1.5rem;
    margin-bottom: .75rem
}

.archive__header h1 a:hover {
    text-decoration: underline
}

.archive__header .archive__header_intro {
    width: 70%;
    max-width: 345px;
    margin: 0 0 1.5rem;
    color: var(--grayer);
    font-size: .875rem
}

.archive__content {
    width: 65%;
    min-height: 100%;
    margin-left: 35%;
    -ms-flex-direction: column;
    flex-direction: column;
    flex-wrap: nowrap
}

.archive__content,
.archive__list {
    display: flex !important;
    display: -webkit-box;
    display: -ms-flexbox;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    justify-content: center
}

.archive__list {
    width: 100%;
    margin: 1.5rem 0 2.5rem;
    flex: 1;
    -ms-flex-direction: column;
    flex-direction: column
}

.archive__item {
    list-style: none;
    padding: .75rem 5.35rem;
    border-top: 1px solid transparent;
    border-bottom: 1px solid transparent;
    width: 100%;
    overflow: hidden
}

.archive__item:hover {
    border-color: var(--lighter)
}

.archive__link {
    color: var(--dark);
    width: 100%;
    height: 100%;
    font-size: 18px;
    line-height: 1.5rem;
    display: flex !important;
    display: -webkit-box;
    display: -ms-flexbox
}

.archive__time {
    width: 135px;
    flex-basis: 135px;
    font-size: .9rem;
    color: var(--gray);
    flex-shrink: 0
}

.icon__list {
    text-align: center;
    margin: 0 0 1.5rem
}

.icon__link svg {
    margin: 0 5px;
    width: 18px;
    height: 18px
}

.icon__fill {
    fill: var(--gray)
}

.icon__stroke {
    stroke: var(--gray)
}

.icon__list a:hover .icon__fill {
    fill: var(--dark)
}

.icon__list a:hover .icon__stroke {
    stroke: var(--dark)
}

@media screen and (max-width:800px) {
    .archive {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        min-height: 100%;
        height: auto
    }

    .archive .site-footer {
        position: static;
        width: 100%
    }

    .archive__content,
    .archive__header {
        width: 100%;
        height: auto;
        margin: 0
    }

    .archive__header {
        padding: 5rem 0 0;
        position: static
    }
}

@media screen and (max-width:600px) {
    .archive__item {
        padding: .75rem 2rem
    }

    .archive__time {
        width: 100px;
        flex-basis: 100px
    }
}

.page__content {
    max-width: 800px;
    padding: 2rem 3rem !important
}

.slide {
    width: 100vw;
    height: 100vh;
    overflow: hidden
}

.slide__section {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    opacity: 0;
    overflow: hidden
}

.slide__section:first-child {
    z-index: 5;
    opacity: 1
}

.slide__img {
    height: 85%;
    position: relative;
    overflow: hidden
}

.slide__img_placehold {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    transform: translateY(0);
    background-color: var(--bg-color);
    background-size: 100% 100%;
    -webkit-transition: all .35s ease;
    -moz-transition: all .35s ease;
    -o-transition: all .35s ease;
    transition: all .35s ease;
    transform-origin: 100% 100%
}

.slide__img .slide__link:hover~.slide__img_placehold {
    transform: scale(1.1)
}

.slide__img img {
    height: 100%;
    width: auto
}

.slide__text {
    z-index: 5;
    position: relative;
    height: 120px;
    width: 275px;
    margin-top: -10%
}

.slide__link {
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 6
}

.slide__text_left {
    margin-right: -10%;
    text-align: right
}

.slide__text_right {
    margin-left: -10%;
    text-align: left
}

.slide__title {
    width: 275px;
    min-height: 65px
}

.slide__time,
.slide__title {
    position: relative;
    background-color: transparent
}

.slide__time {
    display: inline-block;
    margin-top: .5rem;
    height: 35px;
    width: 120px
}

.slide__time_inner,
.slide__title_inner {
    background-color: var(--dark);
    opacity: 0;
    width: 0;
    height: 100%;
    position: absolute;
    top: 0
}

.slide__text_left .slide__time_inner,
.slide__text_left .slide__title_inner {
    right: 0
}

.slide__text_right .slide__time_inner,
.slide__text_right .slide__title_inner {
    left: 0
}

.slide__time_text,
.slide__title_text {
    color: var(--white);
    opacity: 0
}

.slide__title_text {
    padding: 0 20px;
    line-height: 65px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.slide__text_left .slide__title_text {
    transform: translateX(100px)
}

.slide__text_right .slide__title_text {
    transform: translateX(-100px)
}

.slide__time_text {
    padding: 0 15px;
    line-height: 35px;
    text-align: center
}

.slide__text_left .slide__time_text {
    transform: translateX(40px)
}

.slide__text_right .slide__time_text {
    transform: translateX(-40px)
}

.slide__desc {
    position: absolute;
    width: 80%;
    top: 100%;
    color: var(--gray);
    opacity: 0;
    transform: tranlateY(-100px)
}

.slide__text_left .slide__desc {
    right: 60%
}

.slide__text_right .slide__desc {
    left: 60%
}

.slide__controls {
    position: fixed;
    right: 3rem;
    top: 0;
    height: 100%;
    display: flex;
    width: 35px;
    align-items: flex-end;
    flex-direction: column;
    justify-content: center;
    z-index: 7
}

.slide__control {
    width: 100%;
    height: 1.25rem;
    display: inline-block;
    cursor: pointer;
    position: relative
}

.slide__control:after {
    content: "";
    display: inline-block;
    width: 65%;
    height: 3px;
    background-color: var(--gray-light);
    position: absolute;
    right: 0;
    top: 50%;
    margin-top: -1.5px;
    -webkit-transition: all .35s linear;
    -moz-transition: all .35s linear;
    -o-transition: all .35s linear;
    transition: all .35s linear
}

.slide__control:hover:after {
    width: 100%
}

.slide__control.current:after {
    background-color: var(--dark);
    width: 100%
}

.slide__control__icon {
    display: inline-block;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    position: relative;
    margin-right: -10px;
    cursor: pointer
}

.slide__control__icon.slide__control_top {
    margin-bottom: 3rem
}

.slide__control__icon.slide__control_bottom {
    margin-top: 3rem
}

.circle-progress {
    stroke: var(--gray-light);
    fill: none;
    stroke-width: 1;
    stroke-dasharray: 0 120;
    transition: all .45s ease-in
}

.slide__control__icon:hover .circle-progress {
    stroke-dasharray: 120 120
}

.slide__control_arrow {
    position: absolute;
    height: 60%;
    width: 2px;
    left: calc(50% - 1px);
    top: 20%;
    background-color: var(--gray-light);
    transition: all .25s ease-in
}

.slide__control_arrow:after,
.slide__control_arrow:before {
    content: "";
    position: absolute;
    display: inline-block;
    height: 50%;
    width: 2px;
    background-color: var(--gray-light)
}

.slide__control_up:after,
.slide__control_up:before {
    top: 0;
    left: 0
}

.slide__control_down:after,
.slide__control_down:before {
    bottom: 0;
    left: 0
}

.slide__control_up:before {
    transform-origin: top right;
    transform: rotate(-45deg)
}

.slide__control_up:after {
    transform-origin: left top;
    transform: rotate(45deg)
}

.slide__control_down:before {
    transform-origin: bottom right;
    transform: rotate(-45deg)
}

.slide__control_down:after {
    transform-origin: left bottom;
    transform: rotate(45deg)
}

@media screen and (max-width:768px) {

    .slide__controls,
    .slide__desc {
        display: none
    }

    .slide__img {
        width: calc(100% - 3rem);
        height: auto
    }

    .slide__img img {
        width: 100%;
        height: auto
    }

    .slide__text {
        position: absolute;
        margin-top: 0
    }
}

.book-summary {
    position: absolute;
    top: 0;
    bottom: 0;
    left: -300px;
    z-index: 1;
    overflow-y: auto;
    width: 300px;
    color: var(--grayer);
    background: var(--white);
    border-right: 1px solid rgba(0, 0, 0, .07);
    -webkit-transition: left .25s ease;
    -moz-transition: left .25s ease;
    -o-transition: left .25s ease;
    transition: left .25s ease
}

.book-summary::-webkit-scrollbar {
    width: 8px;
    height: 1px
}

.book-summary::-webkit-scrollbar-thumb {
    border-radius: 8px;
    background-color: var(--light)
}

.book-summary::-webkit-scrollbar-track {
    border-radius: 8px;
    background-color: var(--lightest)
}

.book-summary ul.summary {
    list-style: none;
    margin: 0;
    padding: 0;
    -webkit-transition: top .5s ease;
    -moz-transition: top .5s ease;
    -o-transition: top .5s ease;
    transition: top .5s ease;
    font-size: 16px
}

.book-summary ul.summary li {
    list-style: none
}

.book-summary ul.summary li.header {
    padding: 20px 15px 10px;
    text-transform: uppercase;
    color: var(--gray)
}

.book-summary ul.summary li.divider {
    height: 1px;
    margin: 7px 0;
    overflow: hidden;
    background: rgba(0, 0, 0, .07)
}

.book-summary ul.summary li i.fa-check {
    display: none;
    position: absolute;
    right: 9px;
    top: 16px;
    font-size: 9px;
    color: #3c3
}

.book-summary ul.summary li.done>a {
    color: var(--grayer);
    font-weight: 400
}

.book-summary ul.summary li.done>a i {
    display: inline
}

.book-summary ul.summary li a,
.book-summary ul.summary li span {
    display: block;
    padding: 10px 15px;
    border-bottom: none;
    color: var(--grayer);
    background: transparent;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    position: relative
}

.book-summary ul.summary li a:hover {
    text-decoration: underline
}

.book-summary ul.summary li a:focus {
    outline: none
}

.book-summary ul.summary li.active>a {
    color: var(--blue);
    background: transparent;
    text-decoration: none
}

.book-summary ul.summary li ul {
    padding-left: 20px
}

@media(max-width:600px) {
    .book-summary {
        width: calc(100% - 60px);
        bottom: 0;
        left: -100%
    }
}

.book {
    margin-left: 0;
    width: 100vw;
    height: 100vh
}

.book__cover {
    height: 100vh;
    width: 40%;
    overflow: hidden;
    position: fixed;
    left: 0;
    top: 0
}

.book__img {
    height: 100vh;
    width: auto
}

.book__content {
    width: 60%;
    min-height: 100%;
    margin-left: 40%;
    -ms-flex-direction: column;
    flex-direction: column;
    flex-wrap: nowrap
}

.book__content,
.book__content_inner {
    display: flex !important;
    display: -webkit-box;
    display: -ms-flexbox;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal
}

.book__content_inner {
    padding: 2.5rem 10%;
    width: 100%;
    flex: 1;
    -ms-flex-direction: column;
    flex-direction: column;
    justify-content: center;
    flex-wrap: nowrap
}

.book__title {
    margin: 2.5rem 0;
    color: var(--dark);
    font-size: 2.85rem
}

.book__desc {
    color: var(--dark-light);
    line-height: 2rem
}

.book__meta {
    margin: 0 0 1.5rem;
    color: var(--gray);
    font-size: .875rem
}

.book__icon {
    display: inline-block;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    position: relative;
    cursor: pointer;
    margin: 1.5rem 0
}

.book__icon .circle-progress {
    stroke-dasharray: 0 226
}

.book__icon:hover .circle-progress {
    stroke-dasharray: 226 226
}

.book__icon_arrow {
    position: absolute;
    width: 60%;
    height: 2px;
    top: calc(50% - 1px);
    left: 20%;
    background-color: var(--gray-light);
    transition: all .25s ease-in
}

.book__icon_arrow:after,
.book__icon_arrow:before {
    content: "";
    position: absolute;
    display: inline-block;
    width: 50%;
    height: 2px;
    background-color: var(--gray-light);
    right: 0;
    top: 0
}

.book__icon_arrow:before {
    transform-origin: bottom right;
    transform: rotate(45deg)
}

.book__icon_arrow:after {
    transform-origin: top right;
    transform: rotate(-45deg)
}

@media screen and (max-width:750px) {
    .book {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        height: auto;
        min-height: 100vh;
        position: relative
    }

    .book__content,
    .book__cover {
        width: 100%
    }

    .book__cover {
        height: 35%;
        position: static
    }

    .book__cover .book__img {
        width: 100%;
        height: auto;
        margin-top: -35%
    }

    .book__content {
        margin-left: 0
    }

    .book__content_inner {
        padding: 1rem 10%
    }

    .book__more {
        display: block;
        text-align: center
    }
}

.book__wrapper {
    position: relative;
    min-height: 100vh;
    width: 100%
}

.book-header {
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    z-index: 7
}

.with-summary .book-header {
    width: calc(100% - 300px)
}

.book-header h1 {
    font-size: 20px;
    font-weight: 200;
    text-align: center;
    opacity: 0;
    padding-left: 200px;
    padding-right: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin: 1.5rem 0 0;
    -webkit-transition: opacity .4s ease;
    -moz-transition: opacity ease .4s;
    -o-transition: opacity ease .4s;
    transition: opacity .4s ease
}

.book-header h1 a,
.book-header h1 a:hover {
    color: inherit;
    text-decoration: none
}

.summary__toggler {
    position: absolute;
    top: 1.5rem;
    left: 3rem;
    width: 30px;
    height: 30px;
    z-index: 8;
    transition: transform .25s linear;
    transform-origin: top left;
    color: var(--gray)
}

.summary__toggler.active {
    transform: rotate(90deg)
}

@media(max-width:1000px) {
    .book-header h1 {
        display: none
    }
}

.book-header h1 i {
    display: none
}

.book-header:hover h1 {
    opacity: 1
}

.book__body {
    -webkit-transition: left .25s ease;
    -moz-transition: left .25s ease;
    -o-transition: left .25s ease;
    transition: left .25s ease
}

.book__body,
.book__body .body__inner {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    overflow-y: auto
}

.book__wrapper.with-summary .book-summary {
    left: 0
}

.book__wrapper.with-summary .book__body {
    left: 300px
}

@media(max-width:1240px) {
    .book__body {
        -webkit-transition: transform .25s ease;
        -moz-transition: transform .25s ease;
        -o-transition: transform .25s ease;
        transition: transform .25s ease;
        padding-bottom: 20px
    }

    .book__body .body__inner {
        position: static;
        min-height: calc(100% - 50px)
    }
}

@media(max-width:600px) {
    .book__wrapper.with-summary {
        overflow: hidden
    }

    .book__wrapper.with-summary .book__body {
        left: calc(100% - 60px);
        right: calc(60px - 100%)
    }

    .book__wrapper.with-summary .sidebar__toggler {
        display: none
    }
}

.chapter__wrapper {
    position: relative;
    outline: none;
    padding-top: 5rem;
    min-height: 100vh;
    display: flex !important;
    display: -webkit-box;
    display: -ms-flexbox;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column
}

.chapter__wrapper .site-footer {
    margin-top: 2.5rem
}

.chapter__inner {
    position: relative;
    margin: 0 auto;
    padding: 1.5rem 1rem;
    max-width: var(--content-width);
    flex: 1
}

.navigation {
    position: absolute;
    top: 50px;
    bottom: 0;
    margin: 0;
    max-width: 150px;
    min-width: 90px;
    display: flex !important;
    display: -webkit-box;
    display: -ms-flexbox;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    justify-content: center;
    align-content: center;
    align-items: center;
    font-size: 40px;
    color: var(--gray-light);
    text-align: center;
    -webkit-transition: all .35s ease;
    -moz-transition: all .35s ease;
    -o-transition: all .35s ease;
    transition: all .35s ease
}

.navigation:hover {
    text-decoration: none;
    color: var(--gray)
}

.navigation.navigation-next {
    right: 20px
}

.navigation.navigation-prev {
    left: 0
}

@media(max-width:1240px) {
    .navigation {
        position: static;
        top: auto;
        max-width: 50%;
        width: 50%;
        display: inline-block;
        float: left
    }

    .navigation.navigation-unique {
        max-width: 100%;
        width: 100%
    }
}

@media screen and (max-width:768px) {

    .book__wrapper.sidebar-right .logo,
    .book_wrapper.sidebar-right.logo {
        left: 50%;
        margin-left: -20px
    }

    .book-summary {
        z-index: 12
    }

    .summary__toggler {
        left: 1.5rem;
        top: 2rem;
        position: absolute
    }
}

@media screen and (max-width:600px) {
    .summary__toggler.active {
        left: 45px
    }

    .book-header {
        right: auto
    }
}

.post__top_navs {
    margin-bottom: 2rem
}

.post__archive__header {
    margin: 5rem 0;
    display: flex !important;
    display: -webkit-box;
    display: -ms-flexbox;
    flex-direction: column;
    align-items: center
}

.post__archive__header h1 {
    font-weight: 300;
    display: inline-block;
    margin: 0 auto;
    position: relative;
    text-transform: capitalize
}

.post__archive__header h1:after,
.post__archive__header h1:before {
    content: "";
    position: absolute;
    display: inline-block;
    width: 30px;
    height: 1px;
    top: 50%;
    background-color: var(--gray)
}

.post__archive__header h1:before {
    left: -40px
}

.post__archive__header h1:after {
    right: -40px
}

.post__archive__header p {
    color: var(--gray)
}

.post__entry {
    margin: 0 0 3rem
}

.post__entry .post__link {
    display: block
}

.post__entry h2 {
    margin-bottom: .75rem
}

.post__entry .post__meta {
    font-size: .875rem;
    color: var(--gray);
    margin: .5rem 0 1rem
}

.post__entry .post__excerpt {
    color: var(--gray);
    margin: .5rem 0 0
}

.post__entry .post__excerpt p {
    line-height: 1.5rem
}

.post__entry .post__more_arrow {
    margin-top: 2rem;
    width: 30%;
    height: 1px;
    background-color: var(--light);
    position: relative;
    transition: all .35s ease-out;
    display: inline-block
}

.post__entry .post__more_arrow:after,
.post__entry .post__more_arrow:before {
    content: "";
    position: absolute;
    width: 15px;
    height: 1px;
    background-color: var(--light);
    right: -2.5px;
    opacity: 0;
    transition: all .35s ease-out
}

.post__entry .post__more_arrow:after {
    transform: rotate(45deg);
    top: -5px
}

.post__entry .post__more_arrow:before {
    transform: rotate(-45deg);
    top: 5px
}

.post__entry .post__entry__link {
    display: block
}

.post__entry .post__entry__link:hover .post__more_arrow {
    width: 30px;
    background-color: var(--gray)
}

.post__entry .post__entry__link:hover .post__more_arrow:after,
.post__entry .post__entry__link:hover .post__more_arrow:before {
    opacity: 1;
    background-color: var(--gray)
}

.post__entry .post-link.emit .more-arrow {
    margin-left: 30%;
    opacity: 0
}

.paginiation {
    text-align: center
}

.paginiation li {
    list-style: none;
    display: inline-block;
    margin: 0 5px
}

.paginiation li .pagi__icon,
.paginiation li .pagi__link {
    width: 40px;
    height: 40px;
    line-height: 40px;
    text-align: center;
    vertical-align: bottom;
    display: inline-block;
    position: relative
}

.paginiation li .pagi__link:after {
    content: "";
    position: absolute;
    display: inline-block;
    left: 0;
    bottom: -1px;
    width: 0;
    height: 1px;
    transition: all .35s ease-out;
    background-color: var(--gray)
}

.paginiation li .pagi__link.active {
    color: var(--gray);
    border-color: var(--gray)
}

.paginiation li .pagi__link:hover {
    border-color: var(--gray-light)
}

.paginiation li .pagi__link:hover:after {
    width: 100%
}

.paginiation li .pagi__icon {
    border-radius: 50%
}

.paginiation li .pagi__icon .circle-progress {
    stroke: var(--gray);
    stroke-width: 1
}

.paginiation li .pagi__icon:hover .circle-progress {
    stroke-dasharray: 120 120
}

.paginiation li .pagi__icon .pagi__icon_arrow {
    position: absolute;
    width: 60%;
    height: 1px;
    top: calc(50% - 1px);
    left: 20%;
    background-color: var(--gray);
    transition: all .25s ease-in
}

.paginiation li .pagi__icon .pagi__icon_arrow:after,
.paginiation li .pagi__icon .pagi__icon_arrow:before {
    content: "";
    position: absolute;
    display: inline-block;
    width: 50%;
    height: 1px;
    background-color: var(--gray)
}

.paginiation li .pagi__icon.next .pagi__icon_arrow:after,
.paginiation li .pagi__icon.next .pagi__icon_arrow:before {
    right: 0;
    top: 0
}

.paginiation li .pagi__icon.next .pagi__icon_arrow:before {
    transform-origin: bottom right;
    transform: rotate(45deg)
}

.paginiation li .pagi__icon.next .pagi__icon_arrow:after {
    transform-origin: top right;
    transform: rotate(-45deg)
}

.paginiation li .pagi__icon.prev .pagi__icon_arrow:after,
.paginiation li .pagi__icon.prev .pagi__icon_arrow:before {
    left: 0;
    top: 0
}

.paginiation li .pagi__icon.prev .pagi__icon_arrow:before {
    transform-origin: bottom left;
    transform: rotate(45deg)
}

.paginiation li .pagi__icon.prev .pagi__icon_arrow:after {
    transform-origin: top left;
    transform: rotate(-45deg)
}

.post__archive {
    max-width: var(--content-width);
    width: 100%;
    margin: 3rem auto;
    padding: 1.5rem 1rem
}

.blog__categories {
    margin: 1rem 0 .75rem
}

.blog__categories a {
    margin: 0 2.75rem .75rem 0
}

.post__list_title {
    margin: 2.75rem 0 1.25rem
}

.post__list_item {
    list-style: none;
    padding: 0;
    width: 100%;
    margin: .875rem 0;
    position: relative
}

.post__list_item a {
    display: block;
    width: 100%;
    padding: .5rem 0
}

.post__list_item .archive__arrow {
    display: inline-block;
    position: absolute;
    width: 0;
    height: 1px;
    left: 0;
    top: 50%;
    background-color: var(--light-gray);
    transition: width .25s ease-in
}

.post__list_item .archive__arrow:after,
.post__list_item .archive__arrow:before {
    content: "";
    position: absolute;
    width: 9px;
    height: 1px;
    background-color: var(--light-gray);
    right: -2.5px;
    opacity: 0;
    transition: all .25s ease-in
}

.post__list_item .archive__arrow:after {
    transform: rotate(45deg);
    top: -3px
}

.post__list_item .archive__arrow:before {
    transform: rotate(-45deg);
    top: 3px
}

.post__list_item .archive__time {
    display: inline-block;
    width: 135px;
    font-size: .9rem;
    color: var(--gray)
}

.post__list_item .archive__time,
.post__list_item a {
    transition: color .125s ease-in
}

.post__list_item.fade .archive__time,
.post__list_item.fade a {
    color: var(--light-gray)
}

@media screen and (max-width:700px) {
    .post__list_item .archive__time {
        display: block;
        margin-bottom: .35rem
    }
}

.hover-reveal {
    position: fixed;
    width: 250px;
    height: 175px;
    top: 0;
    left: 0;
    pointer-events: none;
    opacity: 0
}

.hover-reveal__img,
.hover-reveal__inner {
    width: 100%;
    height: 100%;
    position: relative
}

.hover-reveal__deco {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: #181314
}

.hover-reveal__img {
    background-size: cover;
    background-position: 50% 50%
}

.blog-status {
    margin: 1.5rem 0 2.5rem;
    padding: 15px 1rem;
    background-color: var(--lighter)
}

.blog-status svg {
    float: left;
    margin-right: 15px
}

.post__wrapper {
    max-width: var(--content-width);
    width: 100%;
    margin: 3rem auto 1.5rem;
    padding: 1.5rem 1rem
}

.post__wrapper:after {
    content: "";
    display: block;
    clear: both
}

.post__archive_path {
    float: left
}

.post__archive_path .post__archive_icon {
    display: inline-block;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    float: left;
    margin-right: 10px;
    position: relative
}

.post__archive_path .post__archive_icon .circle-progress {
    stroke: var(--gray);
    fill: none;
    stroke-width: 1;
    stroke-dasharray: 0 120;
    transition: all .45s ease-in
}

.post__archive_path .post__archive_icon .post__archive_icon {
    position: absolute;
    width: 60%;
    left: 20%;
    top: 50%;
    height: 1px;
    background-color: var(--gray);
    transition: all .25s ease-in
}

.post__archive_path .post__archive_icon .post__archive_icon:after,
.post__archive_path .post__archive_icon .post__archive_icon:before {
    content: "";
    position: absolute;
    display: inline-block;
    height: 1px;
    width: 50%;
    background-color: var(--gray);
    top: 0;
    left: 0
}

.post__archive_path .post__archive_icon .post__archive_icon:before {
    transform-origin: left bottom;
    transform: rotate(-45deg)
}

.post__archive_path .post__archive_icon .post__archive_icon:after {
    transform-origin: left top;
    transform: rotate(45deg)
}

.post__archive_path .post__archive_icon .post__archive_icon.emit {
    left: -110%
}

.post__archive_path a {
    display: block;
    font-size: 1.2rem;
    line-height: 40px;
    text-transform: capitalize
}

.post__archive_path a:hover .circle-progress {
    stroke-dasharray: 120 120
}

.post__archive_path a.emit .post__archive_icon {
    left: -150%;
    opacity: 0
}

.post__langs {
    float: right;
    line-height: 40px
}

.post__header {
    margin-bottom: 1rem
}

.post__header .post__title {
    margin: 3rem 0 1.3rem
}

.post__header .page__title {
    margin-top: 1rem
}

.post__header .post__meta {
    color: var(--gray);
    font-size: .935rem
}

.post__relative ul {
    padding: 0
}

.post__relative ul li {
    list-style: none
}

.post__content {
    padding: 1.5rem 0;
    margin-bottom: 4rem
}

.post__contact {
    margin: 0;
    padding: 1.5rem 0;
    position: relative;
    color: var(--gray);
    width: 100%;
    text-align: left
}

.post__contact:before {
    content: "";
    position: absolute;
    display: inline-block;
    left: 0;
    background-color: var(--light);
    width: 30%;
    height: 1px;
    top: 0
}

.post__contact h4 {
    color: var(--grayer);
    font-size: 1.15rem;
    font-weight: 400;
    margin-bottom: .5rem
}

.post__contact p {
    font-size: .875rem;
    margin: 0 0 1rem
}

.post__contact .icon__list {
    text-align: left
}

.post__content.content>.section-nav {
    position: fixed;
    left: 50%;
    top: 8rem;
    margin-left: calc(var(--content-width)/2 + 30px);
    list-style: none;
    max-width: calc(50vw - 60px)
}

.post__content.content>.section-nav li {
    margin: 10px 0;
    line-height: 1.35rem
}

.post__content.content>.section-nav li>a {
    color: var(--gray);
    border-bottom: none;
    position: relative
}

.post__content.content>.section-nav li>a:hover {
    color: var(--dark)
}

.post__content.content>.section-nav li>a:after {
    content: "";
    position: absolute;
    display: inline-block;
    height: 1px;
    width: 0;
    background-color: var(--gray);
    bottom: -5px;
    left: 0;
    transition: all .25s ease
}

.post__content.content>.section-nav li.active>a {
    color: var(--dark)
}

.post__content.content>.section-nav li.active>a:after {
    width: 100%
}

@media screen and (max-width:1200px) {
    .post__content.content>.section-nav {
        position: inherit;
        left: auto;
        top: auto;
        margin-left: 0;
        list-style: inherit;
        max-width: 100%
    }
}

@media screen and (max-width:600px) {

    .contact,
    .post__archive_path {
        width: 100%
    }

    .contact {
        text-align: left
    }

    .contact:after {
        left: 0;
        right: auto
    }
}

.comment-container {
    padding: 1.5rem 0
}

.comment-left {
    float: left;
    width: 60px
}

.comment__avatar img {
    border-radius: 50%
}

.comment-right {
    float: right;
    width: calc(100% - 60px)
}

.new-comment-right {
    padding-left: 1rem
}

.comment__box {
    position: relative;
    border: 1px solid var(--lighter);
    display: flex !important;
    display: -webkit-box;
    display: -ms-flexbox;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    border-radius: .35rem
}

.comment__box:after,
.comment__box:before {
    content: "";
    position: absolute;
    display: inline-block;
    width: 0;
    height: 0;
    right: 100%;
    border-style: solid solid outset;
    pointer-events: none
}

.comment__box:after {
    border-width: 8px;
    border-left-color: transparent;
    border-bottom-color: transparent;
    border-right-color: var(--lighter);
    border-top-color: transparent;
    left: -16px;
    top: 11px;
    z-index: 4
}

.comment__box:before {
    border-width: 7px;
    border-left-color: transparent;
    border-bottom-color: transparent;
    border-right-color: var(--bg-color);
    border-top-color: transparent;
    left: -14px;
    top: 12px;
    z-index: 5
}

.comment__box_bottom,
.comment__box_top {
    width: 100%;
    display: flex !important;
    display: -webkit-box;
    display: -ms-flexbox
}

.comment__box_top {
    border-bottom: 1px solid var(--lighter)
}

@media screen and (max-width:500px) {
    .comment__box_top {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column
    }
}

.comment__box_bottom {
    border-top: 1px solid var(--lighter);
    justify-content: flex-end
}

.comment__hint {
    font-size: .875rem;
    color: var(--gray);
    flex: 1;
    line-height: 40px;
    padding: 0 10px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis
}

.comment__smileys_box {
    padding: 4px 10px;
    border-top: 1px solid var(--lighter);
    position: absolute;
    bottom: 40px;
    left: 0;
    width: 100%;
    display: none
}

.comment__smileys_box img {
    width: 34px;
    height: auto
}

.comment__smileys_toggler {
    width: 48px;
    text-align: center;
    padding: 9px 0 0;
    border-right: 1px solid var(--lighter);
    cursor: pointer
}

.comment__smileys_toggler svg {
    stroke: var(--light-gray)
}

.comment__error {
    color: var(--red)
}

.input-group {
    position: relative;
    padding-left: 35px
}

.input-label {
    position: absolute;
    left: 10px;
    top: 8px;
    width: 24px;
    height: 24px;
    z-index: 33;
    transition: all .25s linear
}

.input-label svg {
    stroke: var(--light-gray);
    stroke-width: 2
}

.form__inputs__group.hide {
    display: none
}

.form__inputs__group .input-group {
    width: 48%;
    float: left;
    margin-right: 2%
}

.form-control {
    width: 100%;
    padding: .375rem .75rem;
    color: var(--gray);
    font-size: .9rem;
    line-height: 1.5;
    background-color: transparent;
    font-family: "Times New Roman", TimesNewRoman, Times, "宋体", SimSun, apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, Verdana, sans-serif;
}

.form-control:focus {
    outline: none
}

.form-control::placeholder {
    font-size: .875rem;
    color: var(--gray-light)
}

.form-control-name {
    max-width: 180px
}

textarea.form-control {
    height: 7em;
    padding-top: .5rem;
    padding-bottom: .5rem;
    resize: vertical
}

.submit-btn {
    width: 120px;
    display: inline-block;
    background: none;
    color: var(--gray);
    border-left: 1px solid var(--lighter);
    cursor: pointer;
    position: relative;
    height: 40px;
    line-height: 40px;
    transition: all .45s ease-in
}

.submit-btn:disabled {
    cursor: not-allowed;
    opacity: .5
}

.comment__list {
    margin: 3rem 0
}

.comment {
    margin: 1rem 0;
    border-radius: .35rem
}

.comment__list>.comment {
    padding: .5rem 0 .5rem .5rem
}

.comment__list>.comment>.comment {
    margin-left: 2.5rem
}

.comment_new {
    background-color: var(--lighter);
    padding: .75rem
}

.comment__author {
    font-size: 1.05rem;
    line-height: 2.5rem;
    margin-right: 10px
}

.comment__reply_to {
    color: var(--gray);
    margin-right: 10px;
    font-size: .875rem
}

.comment__date {
    color: var(--light-gray);
    font-size: .875rem
}

.comment__content {
    padding: .5rem 0
}

.comment__content p {
    color: var(--gray);
    font-size: .9rem;
    white-space: pre-line;
    line-height: 1.5rem
}

.comment__content p img {
    width: 35px
}

.comment__reply {
    float: right;
    font-size: .8rem;
    border-bottom: 1px dashed var(--gray)
}

.comment__reply:hover {
    border-style: solid
}