@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');

/* メインビジュアル */
#main_visual {
    position: relative;
    width: 100vw;
    padding: 8vw 8vw 10vw 64vw;
}

#main_visual_name {
    font-weight: 300;
    font-size: 24px;
    line-height: 100%;
    margin: 0;
    color: #333333;
    transform: translateX(-38.55vw);
    animation: main_visual_text 1s 0.3s forwards;
}

.main_visual_text {
    font-weight: 300;
    font-size: 18px;
    line-height: 200%;
    margin: 41px 0 0;
    color: #333333;
    transform: translateX(-38.55vw);
    animation: main_visual_text 1s 0.6s forwards;
}

.main_visual_text+.main_visual_text {
    animation-delay: 0.9s;
}

#main_visual_icons {
    margin-top: 41px;
    transform: translateX(-38.55vw);
    animation: main_visual_text 1s 1.2s forwards;
}

@keyframes main_visual_text {
    0% {
        transform: translateX(-38.55vw);
    }

    100% {
        transform: translateX(0);
    }
}

#main_visual_icons a {
    display: inline-block;
    font-size: 20px;
    line-height: 100%;
    color: #333333;
}

#main_visual_icons a+a {
    margin-left: 37px;
}

#main_visual_black {
    position: absolute;
    top: 0;
    left: 0;
    width: 57.36vw;
    height: 100%;
    background-color: #333333;
    overflow: hidden;
}

#main_visual_amane {
    font-weight: 400;
    font-size: 1.182vw;
    line-height: 173%;
    letter-spacing: 0.2em;
    margin: 0;
    position: absolute;
    top: 6.909vw;
    left: 2.727vw;
    color: #eaeaea;
}

#main_visual_aboutMe {
    position: absolute;
    top: 50%;
    right: 50%;
    font-weight: 700;
    font-size: 220px;
    letter-spacing: -0.1em;
    color: #eaeaea;
    line-height: 100%;
    margin: 0;
    transform: translateY(-50%) translateX(50%);
    text-align: right;
}

#main_visual_aboutMe span:nth-child(1) {
    display: block;
    transform: translateX(70.59vw);
    animation: main_visual_aboutMe 1.8s 0.3s forwards;
}

#main_visual_aboutMe span:nth-child(2) {
    display: block;
    transform: translateX(70.59vw);
    animation: main_visual_aboutMe 1.8s 0.6s forwards;
}

@keyframes main_visual_aboutMe {
    0% {
        transform: translateX(70.59vw);
    }

    100% {
        transform: translateX(0);
    }
}

/* 経歴 */
#experiences {
    position: relative;
    max-width: 1100px;
    margin: 0 auto;
    padding: 80px 87px 148.05px 279px;
    overflow: hidden;
}

#experiences_bar {
    position: absolute;
    top: 92px;
    bottom: 85px;
    left: 462px;
    width: 1px;
    background-color: #333333;
}

.experiences_item {
    max-width: 734px;
    padding-left: 213px;
    position: relative;
}

.experiences_item+.experiences_item {
    margin-top: 72px;
}

.experiences_date {
    position: absolute;
    top: -6px;
    left: 0;
    font-weight: 100;
    font-size: 24px;
    line-height: 125%;
    margin: 0;
    white-space: nowrap;
    color: #333333;
}

.experiences_date span {
    vertical-align: 10%;
}

.experiences_date.experiences_date_small {
    margin-left: 73px;
}

.experiences_title {
    font-weight: 300;
    font-size: 24px;
    line-height: 125%;
    margin: 0;
    position: relative;
    color: #333333;
}

.experiences_title::before {
    content: '';
    position: absolute;
    top: 4px;
    left: -39.5px;
    width: 20px;
    height: 20px;
    background-color: #333333;
    border-radius: 50%;
}

.experiences_text {
    font-weight: 300;
    font-size: 17.9px;
    line-height: 200%;
    margin: 23.05px 0 0;
    color: #333333;
}

/* 強み */
#strengths_container {
    width: 100%;
    background-color: #333333;
}

#strengths {
    position: relative;
    max-width: 1100px;
    margin: 0 auto;
    padding: 80px 279px 85px 87px;
    overflow: hidden;
}

.strengths_item_container {
    all: unset;
    display: block;
    max-width: 734px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    padding-bottom: 25px;
}

.strengths_item_container+.strengths_item_container {
    margin-top: 40px;
}

.strengths_item_container.open {
    padding: 0;
}

.strengths_letters {
    position: absolute;
    top: 33px;
    left: 160px;
    font-weight: 100;
    font-size: 117px;
    line-height: 100%;
    margin: 0;
    color: #eaeaea;
}

.strengths_letters.animation {
    animation: strength_letters 8s linear infinite;
}

@keyframes strength_letters {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-100%);
    }
}

.strengths_letters.none {
    display: none;
}

.strengths_btn_container {
    position: absolute;
    top: 10px;
    right: 12px;
    width: 43px;
    height: 18px;
    text-align: center;
}

.strengths_btn_container.open {
    width: 44px;
}

.strengths_btn {
    position: absolute;
    top: 0;
    right: 0;
    font-weight: 400;
    font-size: 18px;
    color: #eaeaea;
    line-height: 100%;
    margin: 0;
}

.strengths_btn_bar {
    position: absolute;
    top: 100%;
    left: 0;
    width: 0;
    height: 1px;
    background-color: #eaeaea;
    transition: width 0.3s;
}

.strengths_btn_bar.wide {
    width: 100%;
}

.strengths_btn_bar.open {
    background-color: #333333;
}

.strengths_btn.open {
    color: #333333;
}

.strengths_text_container {
    width: 150px;
    height: 150px;
    background-color: #eaeaea;
    position: relative;
    overflow: hidden;
}

.strengths_text_container.wide {
    width: 100%;
    padding: 24px 36px 24px 197px;
    height: auto;
}

.strengths_number {
    position: absolute;
    top: 8px;
    left: 8px;
    font-weight: 300;
    font-size: 18px;
    line-height: 100%;
    margin: 0;
    color: #333333;
}

.strengths_c {
    position: absolute;
    top: -37px;
    left: 35px;
    font-weight: 900;
    font-size: 198px;
    line-height: 100%;
    margin: 0;
    color: #333333;
}

.strengths_contents {
    transform: translateX(150px);
    transition: transform 0.4s;
}

.strengths_contents.move {
    transform: translateX(0);
}

.strengths_contents_title {
    display: inline-block;
    font-weight: 300;
    font-size: 24px;
    line-height: 100%;
    color: #333333;
    margin: 0 8px 8px 0;
}

.strengths_contents_English {
    display: inline;
    font-weight: 100;
    font-size: 13px;
    line-height: 100%;
    color: #333333;
}

.strengths_contents_text {
    font-weight: 300;
    font-size: 17.9px;
    line-height: 200%;
    margin: 12px 0 0;
    color: #333333;
}

/* 趣味 */
#interests {
    position: relative;
    max-width: 1100px;
    margin: 0 auto;
    padding: 80px 87px 85px 279px;
    overflow: hidden;
}

#interests_items_container {
    display: flex;
    flex-wrap: wrap;
    gap: 72px 52px;
}

.interests_items {
    width: 210px;
}

.interests_number {
    position: relative;
    width: 100%;
    height: 93px;
    overflow: hidden;
}

.interests_number p {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    font-weight: 500;
    font-size: 190px;
    line-height: 65%;
    margin: 0 auto;
    transform: translateY(100%);
    color: #333333;
}

.interests_number p.move {
    animation: interests_number 1s forwards;
}

@keyframes interests_number {
    0% {
        transform: translateY(100%);
    }

    100% {
        transform: translateY(0);
    }
}

.interests_number div {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #333333;
}

.interests_title {
    font-weight: 400;
    font-size: 24px;
    text-align: center;
    line-height: 100%;
    margin: 32px 0 0;
    color: #333333;
}

.interests_text {
    font-weight: 300;
    font-size: 15.9px;
    text-align: center;
    line-height: 200%;
    margin: 24.05px 0 0;
    color: #333333;
}

.interests_img {
    display: block;
    height: 50px;
    margin: 32px auto 0;
}

/* フッター */
footer {
    padding-top: 105px;
}

/* レスポンシブ対応 */
@media (max-width: 767px) {
    /* メインビジュアル */
    #main_visual {
        width: 100vw;
        height: auto;
        padding: 0 7.301vw 96px;
    }

    #main_visual_name {
        transform: translateX(-100vw);
        margin-top: 80px;
    }

    .main_visual_text {
        transform: translateX(-100vw);
    }

    #main_visual_icons {
        transform: translateX(-100vw);
    }

    @keyframes main_visual_text {
        0% {
            transform: translateX(-100vw);
        }

        100% {
            transform: translateX(0);
        }
    }

    #main_visual_black {
        position: relative;
        width: 100vw;
        height: 88vw;
        transform: translateX(-7.301vw);
    }

    #main_visual_amane {
        font-size: 3.309vw;
        top: auto;
        bottom: 5.997vw;
        left: 5.997vw;
    }

    #main_visual_aboutMe {
        font-size: 32vw;
    }

    #main_visual_aboutMe span:nth-child(1) {
        transform: translateX(100vw);
    }

    #main_visual_aboutMe span:nth-child(2) {
        transform: translateX(100vw);
    }

    @keyframes main_visual_aboutMe {
        0% {
            transform: translateX(100vw);
        }

        100% {
            transform: translateX(0);
        }
    }

    /* 経歴 */
    #section_experiences {
        font-size: 13.23vw;
    }

    #experiences {
        padding: 45.63vw 7.301vw 37.16vw;
    }

    #experiences_bar {
        top: 45.63vw;
        bottom: 24.77vw;
        left: 7.301vw;
        margin-bottom: 20px;
        transform: translateY(20px);
    }

    .experiences_item {
        max-width: 85.40vw;
        padding: 0;
        padding-left: 32px;
    }

    .experiences_date {
        position: initial;
        top: auto;
        left: auto;
        width: auto;
        white-space: initial;
    }

    .experiences_date:before {
        content: '';
        position: absolute;
        top: 14px;
        left: -4.5px;
        width: 10px;
        height: 10px;
        background-color: #333333;
        border-radius: 50%;
    }

    .experiences_date.experiences_date_small {
        margin-left: 0;
    }

    .experiences_title {
        margin-top: 8px;
    }

    .experiences_title::before {
        display: none;
    }

    /* 強み */
    #section_strengths {
        font-size: 14.78vw;
    }

    #strengths {
        padding: 45.63vw 7.301vw 24.77vw;
    }

    .strengths_item_container {
        max-width: 85.40vw;
    }

    .strengths_letters {
        animation: strength_letters 8s linear infinite;
    }

    .strengths_letters.animation {
        animation: strength_letters 8s linear infinite;
    }

    .strengths_letters.none {
        display: block;
        color: #333333;
    }

    .strengths_btn_bar {
        display: none;
    }

    .strengths_text_container.wide {
        padding: 200px 32px 32px;
    }

    /* 趣味 */
    #section_interests {
        font-size: 16.43vw;
    }

    #interests {
        padding: 45.63vw 7.301vw 24.77vw;
    }

    .interests_items {
        width: 85.40vw;
    }

    .interests_number {
        height: 38.98vw;
    }

    .interests_number p {
        font-size: 78.23vw;
    }
}