/* BASIC */

:root {
    font-family: -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

*, *:before, *:after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    outline: none;
}

nav {
    position: fixed;
    top: 0;
    right: 0;
    padding: .2em .5em;
    z-index: 9;
    opacity: .5;
    transition: opacity .3s;
}

nav:hover {
    opacity: 1;
}

nav .meta {
    display: inline-block;
    padding: 0 .2em;
    font-size: .8em;
    cursor: pointer;
}

nav .meta.active {
    color: #0070e0;
}

.cover {
    position: fixed;
    width: 100vw;
    height: 100vh;
    background-color: #FFF;
    z-index: 10;
    top: 0;
    left: 0;
    text-align: center;
    padding-top: 30vh;
    transition: all .3s;
}

.cover.done {
    opacity: 0;
    z-index: -1;
}

.cover blockquote {
    color: #637282;
    font-style: italic;
}

/* 
 * EN
 */


/* LAYOUT */

.en body {
    margin: 0;
    padding: 0;
}

.en main {
    width: 825px;
    max-width: 100%;
    margin: 2em auto;
    padding: 40px;
}

/* Typography */

.en a {
    color: #0070e0;
    text-decoration: none;
}

/* TIMELINE */

.en .social-link + .social-link {
    margin-left: 1em;
}

.en .timeline {

}

.en .stories {
    list-style: none;
    padding-left: 0;
}

.en .stories .story {
    position: relative;
    margin: 3em 0;
}

.en .story.highlight:after {
    content: "⊙";
    position: absolute;
    left: -1.5em;
    top: -.25em;
    transition: all .3s;
}

.en .story.highlight:hover:after {
    color: #0070e0;
    transform: scale(1.5);
}

.en .story .date {
    font-size: .8em;
    color: #637282;
}

.en .story .content {
    color: #1b2733;
}

/* CONTENT */

.en .content {
    font-size: 16px;
    line-height: 1.5em;
}

.en .content strong {
    font-weight: bold;
}

.en .content img {
    max-width: 50%;
}

.en .content ul {
    list-style-type: disc;
    padding-left: 2em;
}

.en .content blockquote {
    position: relative;
    margin: 1em 0;
    padding-left: 1em;
    border-left: 2px solid #637282;
}

/* 
 * CN
 */

/* LAYOUT */

html.cn {
    height: 100%;
}

.cn body {
    margin: 0;
    padding: 0;
    height: 100%;
}

.cn main {
    position: relative;
    margin: 0;
    min-width: 100vw;
    padding-top: 5vh;
    height: 80vh;
    writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
}

.cn main a {
    border: 2px solid #ddd;
    padding: .2rem 0;
    margin: .2rem 0;
}

/* Typography */

.cn a {
    text-decoration: none;
    color: #000;
    transition: color .3s, border .3s;
}

.cn a:visited {
    color: #666;
}

.cn a:hover, .cn a:active {
    color: #007FFF;
    border-color: #007FFF;
}

/* TIMELINE */

.cn .timeline {

}

.cn .stories {
    margin: 0;
    padding: 0;
    list-style: none;
}

.cn .stories .story {
    position: relative;
    margin: 1rem 1rem 0 3rem;
    padding-left: 1rem;
}

.cn .story.highlight:after {
    content: " ";
    position: absolute;
    top: -2rem;
    right: -1rem;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background-color: #EAEAEA;
    transition: background-color .3s, transform .3s;
    transform-origin: center center;
}

.cn .story.highlight:hover:after {
    background-color: #007FFF;
    transform: scale(1.3);
}

.cn .story .date {
    position: absolute;
    top: 0;
    right: -1.5rem;
    font-size: .6rem;
    font-weight: bold;
}

.cn .story .content {
    color: #333;
}

/* CONTENT */

.cn .content::first-letter {
    color: #007FFF;
}

.cn .content p {
    line-height: 1.5rem;
}

.cn .content strong {
    font-weight: bold;
}

.cn .content img {
    max-height: 50%;
}

.cn .content ul {
    list-style: none;
    padding-left: 0;
    padding-top: 0;
}

.cn .content ul li {
    position: relative;
    margin: 0 .5rem;
    padding-top: 1rem;
}

.cn .content ul li:after {
    content: " ";
    position: absolute;
    top: 0;
    left: 0; right: 0;
    border-top: 2px solid #EAEAEA;
    transition: border .3s;
}

.cn .content ul li:hover:after {
    border-top-color: #007FFF;
}

.cn .content blockquote {
    position: relative;
    margin: 0;
    padding: 1.5rem .5rem;
    font-style: italic;
    background-image: linear-gradient(to bottom, #EAEAEA, rgba(255, 255, 255, 0) 20%);
}

/* COMMENTS */

.comments {
    display: block;
    position: fixed;
    cursor: pointer;
    bottom: 5vh;
    right: 10vw;
    animation: boat 10s infinite alternate;
}

@keyframes boat {
    0% {
        transform: translate3d(0, 0, 0);
    }
    30% {
        transform: translate3d(.3rem, -.5rem, 0);
    }
    70% {
        transform: translate3d(-.4rem, .2rem, 0);
    }
    100% {
        transform: translate3d(.2rem, -.7rem, 0);
    }
}

.comments .popup {
    position: absolute;
    transition: opacity .3s, color .3s, transform .3s;
    opacity: 0;
}

.comments:hover .popup, .comments:active .popup {
    opacity: 1;
}

.cn .comments .popup {
    top: -.5rem;
    left: -.5rem;
    writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    transform: scale(.9);
    border: 2px solid #ddd;
    font-size: .8rem;
    padding: .2rem 0;
    margin: .2rem 0;
}

.cn .comments:hover .popup {
    color: #666;
    transform: translate3d(-.5rem, 0, 0) scale(1);
}

.en .comments .popup {
    width: 5.2rem;
    text-align: center;
    top: -2rem;
    background-color: #0070e0;
    color: #FFF;
    padding: .3rem 0;
    border-radius: 5px;
}

/* RESUME */

.resume {
    width: 825px;
    max-width: 100%;
    margin: 1em auto;
    padding: 40px;
    color: #333;
}

.resume a {
    color: #0070e0;
    text-decoration: none;
}

.resume blockquote {
    font-family: serif;
    margin: 1em 0;
    padding-left: 1em;
    border-left: 2px solid #637282;
    font-style: italic;
}

.resume > section {
    margin: 3em 0;
}

.resume > section > article {
    margin: 1em 0;
}
.resume .row {
    display: flex;
}
.resume .row-item {
    flex: 1;
}
.resume .row-3 {
    flex: 3;
}
.resume .row-1 {
    flex: 1;
}
.resume .align-right {
    display: flex;
    justify-content: flex-end;
}
.resume .title {
    font-weight: bold;
    color: #000;
    margin-bottom: 0;
    border-bottom: 1px solid #000;
}

.resume .sub {
    font-size: 1em;
    color: #637282;
}

.resume .time {
    font-size: 1em;
    color: #637282;
}

.resume .title + .sub, .resume .sub + .time {
    margin-top: .5em;
}
.resume .bold {
    font-weight: bold;
}
.resume .description {
    padding: .5em 0;
    font-size: .9em;
    line-height: 1.5em;
    display: flex;
}
.resume .description .description-item{
    flex: 1;
}
/* RESUME SECTIONS */

.resume-self {
    
}

.resume-self .contact-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.resume-self .contact-list-item {
    display: inline-block;
    margin-right: .5em;
}

/* COMMENTS BOX */

.comments-box {
    height: 100%;
    overflow-y: scroll;
    padding-top: 2em;
}

.comments-box .close {
    position: absolute;
    top: 2em;
    right: 2em;
    cursor: pointer;
}