html {
    -webkit-box-sizing: border-box;
            box-sizing: border-box
}

body {
    font-size: 25px;
    font-family: Times New Roman, Times, serif
}

*,
::after,
::before {
    margin: 0;
    -webkit-box-sizing: inherit;
            box-sizing: inherit
}

@-webkit-keyframes fade-in {
    from {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

@keyframes fade-in {
    from {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

@-webkit-keyframes fly-in {
    0% {
        opacity: 0;
        -webkit-transform: translateY(-40px);
                transform: translateY(-40px)
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
                transform: translateY(0)
    }
}

@keyframes fly-in {
    0% {
        opacity: 0;
        -webkit-transform: translateY(-40px);
                transform: translateY(-40px)
    }

    100% {
        opacity: 1;
        -webkit-transform: translateY(0);
                transform: translateY(0)
    }
}

a {
    color: teal
}

.sub-text {
    font-style: italic;
    color: #999;
    font-size: .75em
}

.heading {
    font-size: 2em
}

h1.big {
    font-weight: 100;
    font-size: 6rem
}

.container {
    margin: 1rem
}

.center {
    text-align: center
}

.inline-children > * {
        display: inline-block;
        vertical-align: middle
}

.hidden {
    display: none !important
}

/*/Main style for all pages */

html {
    height: auto
}

body {
    height: inherit
}

.main {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column
}

/*/Page content */

.page-content {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    margin: 1em auto;
    text-align: center
}

.page-content--wide {
    width: 100%
}

/*/Make page article like */

.article {
    padding-left: .5em;
    padding-right: .5em;
    max-width: 800px;
    text-align: left
}

/*/Navigation panel */

.nav {
    display: inline-block;
    color: white;
    background: #333;
    -webkit-box-shadow: 3px 3px 3px 4px rgba(0, 0, 0, 0.4);
            box-shadow: 3px 3px 3px 4px rgba(0, 0, 0, 0.4);
    text-align: center;
    font-size: 1.25em
}

@media print {

.nav {
        display: none
    }
}

.nav__link {
    display: inline-block;
    font-size: inherit;
    padding: .6em;
    text-decoration: none;
    cursor: pointer;
    color: white
}

.nav__link:hover {
        background: #444
}

.nav__link--selected {
    background: teal !important
}

/*/Background image */

.bk-image {
    background-size: contain;
    background-repeat: no-repeat;
    margin: .5em
}

.bk-image__link {
    display: inline-block;
    min-height: 48px;
    width: 48px
}

.bk-image__link:hover {
        opacity: 0.4
}

@media print {

.bk-image__link--print-hide {
        display: none
    }
}

@media print {

.bk-image__link--print {
        font-size: .85em;
        color: black;
        text-decoration: none;
        width: auto;
        height: 0;
        margin: 0;
        margin-right: 0.5em
    }
        .bk-image__link--print::after {
            content: attr(title)
    }
}

.bk-image__link--wide {
    width: 192px
}

/*.contact-links */

/*/Link to external resource for flex containers */

.flex-link {
    font-size: 1.25rem;
    padding: .5em;
    width: 25%;
    text-decoration: none;
    text-align: left;
    line-height: 1em
}

.flex-link:hover {
        -webkit-box-shadow: 3px 3px 3px 4px rgba(0, 0, 0, 0.1);
                box-shadow: 3px 3px 3px 4px rgba(0, 0, 0, 0.1)
}

.flex-link--img {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 20%;
            flex: 1 0 20%;
    height: 20vmin;
    max-width: 25%;
    background-position: center
}

/*/Link's title */

.flex-link__title {
    color: teal;
    font-size: 1.5em;
    font-weight: 900;
    word-wrap: break-word;
    margin-bottom: .5em
}

/*/Link's description */

.flex-link__desc {
    color: black;
    word-wrap: break-word
}

/*Default target should come after all possible targets. */

.target-sub-page {
    -webkit-animation: fade-in 1s;
            animation: fade-in 1s;
    display: none /*By default all elements are hidden. */
}

.target-sub-page.default {
        display: block /*Default element is always shown. */
}

.target-sub-page:target {
        display: block /*Target element is shown */
}

.target-sub-page:target ~ div.default {
            display: none /*Default is hidden when target element is preceding. */
}

.target-sub-page--flex.default {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex
}

.target-sub-page--flex:target {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex
}

.target-sub-page--title {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap
}

.target-sub-page--title::before {
        content: attr(page_title);
        -webkit-box-flex: 1;
            -ms-flex: 1 1 100%;
                flex: 1 1 100%;
        text-align: center;
        font-size: 2em;
        font-weight: 900;
        margin-bottom: .5em
}

/*Page with multiple links */

.page-links {
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: distribute;
        justify-content: space-around;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    padding: 1em
}

.blog-entry {
    margin-bottom: .75em;
    line-height: 1em
}

.blog-entry > a {
        text-decoration: none
}

.blog-entry > a:hover {
            text-decoration: underline
}

.blog-entry > * {
        display: block
}

/*/Container for blog posts that has fixed width. */

.blog-post {
    padding-left: 0;
    padding-right: 0;
    width: 80%
}

/*/Style Adjustment for markdown content */

.blog-post--md span[title] {
        cursor: help;
        color: teal;
        text-decoration: underline;
        -webkit-text-decoration-style: dashed;
                text-decoration-style: dashed
}

.blog-post--md > h3 {
        border-bottom: 1px solid #eaecef
}

.blog-post--md > h2 {
        border-bottom: 1px solid #eaecef
}

.blog-post--md > h1 {
        margin-bottom: .5em;
        border-bottom: 2px solid #eaecef
}

.blog-post--md > blockquote {
        padding: 0 1em;
        color: #6a737d;
        border-left: 0.25em solid #dfe2e5
}

.blog-post--md > * {
        line-height: 1.25em;
        margin-bottom: .75em
}

input.spoiler-input {
    display: none
}

input.spoiler-input:checked ~ .spoiler-element {
        display: none
}

.spoiler_link {
    cursor: pointer
}

/*Image gallery page. */

/*Should be main page. */

.im-g {
    height: 100%;
    margin: 1em
}

/*Image gallery navigation links */

.im-g__nav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-flex: 4;
        -ms-flex: 4;
            flex: 4;
    font-size: 6vw;
    margin: .2em;
    text-align: center;
    text-decoration: none;
    opacity: 0.5;
    -webkit-transition: all .2s ease-in-out;
    transition: all .2s ease-in-out;
    color: black
}

.im-g__nav:visited {
        color: black
}

.im-g__nav:hover {
        opacity: 1;
        -webkit-transform: scale(1.175);
                transform: scale(1.175)
}

/*Image gallery flex container for image with description */

.im-g__wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-flow: column;
            flex-flow: column;
    -webkit-box-flex: 5;
        -ms-flex: 5 0 50%;
            flex: 5 0 50%;
    background: #333;
    -webkit-box-shadow: 3px 3px 3px 4px rgba(0, 0, 0, 0.4);
            box-shadow: 3px 3px 3px 4px rgba(0, 0, 0, 0.4)
}

/*Image gallery image to auto-adjust height by viewport */

.im-g__wrap__img {
    height: 57.5vmin;
    margin-top: 20px;
    background-position: center
}

/*Image gallery image description container */

.im-g__wrap__desc {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    text-align: center;
    color: white;
    padding: 1rem;
    -ms-flex-item-align: center;
        align-self: center;
    font-size: 3vmin
}

/*Header of .im-g__wrap__desc */

.im-g__wrap__desc__h {
    font-weight: 900;
    font-size: 120%
}

/*Details of .im-g__wrap__desc */

.im-g__wrap__desc__d {
    line-height: 1.25em;
    text-align: center;
    font-weight: 100;
    font-size: 90%;
    word-wrap: break-word
}

.cv {
    font-size: 20px;
    line-height: 25px;
    margin: auto;
    padding-bottom: 1em
}

@media print {

.cv {
        font-size: 75%
    }
}

.cv-header {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin: 1em;
    margin-left: 0;
    padding-bottom: 1rem;
    border-bottom: 1px solid #000
}

/*When non-en target is selected hide en lang */

/*When non-en target is not selected hide its lang */

#ru:target ~ .lang-switch *[lang]:lang(en) {
    display: none
}

#ru:not(:target) ~ .lang-switch *[lang]:lang(ru) {
    display: none
}

#jp:target ~ .lang-switch *[lang]:lang(en) {
    display: none
}

#jp:not(:target) ~ .lang-switch *[lang]:lang(jp) {
    display: none
}

nav.lang-switcher {
    height: 32px
}

nav.lang-switcher > a {
        display: inline-block;
        margin-right: .5em;
        width: 35px;
        height: 35px;
        padding: 0;
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center
}

@media print {

nav.lang-switcher {
        display: none
    }
}

.lang-anchor {
    position: absolute;
    top: 0
}

.cv-body__basic {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: wrap;
        flex-flow: wrap;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    text-align: left
}

@media print {

.bk-image__link--print {
        padding-top: 0.75em
    }
}

.cv-body__section {
    margin-top: 1em;
    text-align: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap
}

.cv-body__section__title {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 20%;
            flex: 1 0 20%;
    font-weight: 600;
    font-style: italic
}

.cv-body__section__content {
    text-align: left;
    -webkit-box-flex: 1;
        -ms-flex: 1 0 70%;
            flex: 1 0 70%;
    padding-left: 1em;
    border-left: 1px solid #000
}

.cv-body__section__content__title {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between
}

.cv-body__section__content__title > .spoiler_link {
        -ms-flex-preferred-size: 50%;
            flex-basis: 50%
}

.cv-body__section__content__sub {
    font-style: italic;
    color: #999
}


/*# sourceMappingURL=app.css.map*/