@media (min-width:671px) {

    /* common ---------------------------------------------------- */
    * {
        box-sizing: border-box;
    }

    body {
        overscroll-behavior: none;
        font-family: "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
        letter-spacing: 0.5px;
        background: #323237;
    }

    .bold {
        font-family: "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
        font-weight: 700;
    }

    .bold-medium {
        font-family: "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
        font-weight: 500;
    }

    ul {
        list-style: none;
        font-size: 0;
    }

    a {
        text-decoration: none;
    }

    /* splash ---------------------------------------------------- */
    #splash-wrap {
        z-index: 102;
        position: absolute;
        width: 100%;
        height: 100vh;
        background: url(../images/other/splash-0.jpg);
        background-size: cover;
    }

    .cutting-line {
        display: none;
        opacity: 0.5;
    }

    #cutting-line-left-top {
        position: absolute;
        left: 0px;
        top: 0px;
        width: 60px;
        height: 60px;
    }

    #cutting-line-middle-top {
        position: absolute;
        left: 50%;
        top: 0px;
        width: 60px;
        height: 60px;
        transform: translateX(-50%);
    }

    #cutting-line-right-top {
        position: absolute;
        right: 0px;
        top: 0px;
        width: 60px;
        height: 60px;
    }

    #cutting-line-right-middle {
        position: absolute;
        right: 0px;
        top: 50%;
        width: 60px;
        height: 60px;
        transform: translateY(-50%);
    }

    #cutting-line-right-bottom {
        position: absolute;
        right: 0px;
        bottom: 0px;
        width: 60px;
        height: 60px;
    }

    #cutting-line-middle-bottom {
        position: absolute;
        left: 50%;
        bottom: 0px;
        width: 60px;
        height: 60px;
        transform: translateX(-50%);
    }

    #cutting-line-left-bottom {
        position: absolute;
        left: 0px;
        bottom: 0px;
        width: 60px;
        height: 60px;
    }

    #cutting-line-left-middle {
        position: absolute;
        left: 0px;
        top: 50%;
        width: 60px;
        height: 60px;
        transform: translateY(-50%);
    }

    #splash-inner {
        display: none;
        text-align: center;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }

    #splash-title {
        white-space: nowrap;
        font-size: 48px;
        letter-spacing: 4px;
        color: #ffffff;
    }

    #author {
        margin-top: 18px;
        font-size: 20px;
        letter-spacing: 3.5px;
        color: #ffffff;
    }

    /* SP用ハンバーガーメニュー ---------------------------------------------------- */
    #panel-btn {
        display: none;
    }

    /* navigation ---------------------------------------------------- */
    .navi-wrap {
        z-index: 101;
        position: fixed;
        width: 120px;
        height: 100vh;
        padding: 30px;
        background :#fff;
        border-right: 1px #e6e6e6 solid;
    }

    #pf-logo {
        display: block;
        width: 60px;
        height: 60px;
        margin-bottom: 90px;
        transition: 150ms;
    }

    #pf-logo:hover {
        opacity: 0.9;
    }

    .nav-item {
        margin-bottom: 32px;
        font-size: 14px;
        color: rgba(50, 50, 55, 0.54);
        cursor: pointer;
        transition: 300ms;
    }

    .nav-item:hover {
        color: rgba(50, 50, 55, 1);
    }

    #nav-footer {
        position: absolute;
        bottom: 30px;
    }

    #update {
        position: absolute;
        bottom: 110px;
        left: -25px;
        font-size: 10px;
        color: rgba(50, 50, 55, 0.54);
        letter-spacing: 1.75px;
        transform: rotate(-90deg);
    }

    .note-logo-wrap {
        display: block;
        width:16px;
        height:16px;
        margin-bottom: 24px;
        border-radius: 2px;
    }

    .note-logo-wrap:hover #note-logo {
        fill: rgba(50, 50, 55, 1);
    }

    #note-logo {
        fill: rgba(50, 50, 55, 0.54);
        transition: 300ms;
    }

    .fa-twitter{
        font-size: 16px;
        line-height: 16px;
        color: rgba(50, 50, 55, 0.54);
        transition: 300ms;
    }

    .fa-twitter:hover {
        color: rgba(50, 50, 55, 1);
    }

    /* gallery-contents ---------------------------------------------------- */
    .main-gallery-container {
        display: none;
    }

    .main-gallery-container-show {
        display: flex;
    }

    .contents-wrap {
        width: 100%;
        min-width: 380px;
        height: 100vh;
        padding: 45px 120px 0 240px;
        background: #f5f5f5;
        overflow-y: scroll;
    }

    @keyframes wrapDisplayAnim {
        0% { width: 100%; }
        100% { padding: 15px 15px 0 135px; width: 380px; }
    }

    .contents-wrap-display{
        display: inline-block;
        animation: wrapDisplayAnim 300ms linear forwards;
    }

    .contents-title {
        font-size: 36px;
        letter-spacing: 3px;
        color: #323237;
    }

    .tab-lst {
        border-bottom: 1px #e6e6e6 solid;
    }

    .tab-item {
        display: inline-block;
        width: 80px;
        margin-top: 35px;
        padding: 2px 0px 8px;
        text-align: center;
        font-size: 14px;
        color: rgba(50, 50, 55, 0.54);
        cursor: pointer;
        transition: 300ms;
    }

    .tab-item:hover {
        color: rgba(50, 50, 55, 1);
    }

    .tab-item.active:after {
        position: relative;
        display: block;
        content: "";
        width: 100%;
        top: 9px;
        height: 1px;
        background: #323237;
    }

    .work-lst {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        column-fill: auto;
        grid-column-gap: 100px;
        grid-row-gap: 80px;
        margin-top: 60px;
        margin-bottom: 120px;
        transition: 300ms;
    }

    .work-item {
        cursor: pointer;
    }

    .image-wrap {
        width: 100%;
        height: 240px;
        overflow: hidden;
        border-radius: 2px;
    }

    .work-img {
        display: block;
        width: 100%;
        height: 240px;
        object-fit: cover;
        background: #d8d8d8;
        -moz-box-shadow: 0 0 2px 0 rgba(0,0,0,0.12);
        -webkit-box-shadow: 0 0 2px 0 rgba(0,0,0,0.12);
        -o-box-shadow: 0 0 2px 0 rgba(0,0,0,0.12);
        -ms-box-shadow: 0 0 2px 0 rgba(0,0,0,0.12);
        transition: 300ms;
    }

    .work-item:hover .work-img {
        transform: scale(1.1);
    }

    .work-desc {
        display:-webkit-box;
        display:-ms-flexbox;
        display:flex;
        -webkit-box-pack:justify;
        -ms-flex-pack:justify;
        justify-content:space-between;
        width: 100%;
        margin-top: 16px;
        margin-bottom: 4px;
        padding: 0 8px;
    }
    .work-title {
        margin-right: 16px;
        font-size: 12px;
        line-height: 21px;
        color: #323237;
    }

    .work-category {
        font-size: 12px;
        line-height: 21px;
        color: rgba(50, 50, 55, 0.54);
    }

    .work-sentence {
        display: none;
    }

    @keyframes scrollIconAnim {
        0%{ transform: translateY(-5px); }
        50%{ transform: translateY(5px); }
        100%{ transform: translateY(-5px); }
    }

    #ic-more {
        display: block;
        width: 12px;
        height: 28px;
        margin: 30px auto 0;
        animation: scrollIconAnim 1.8s ease infinite;
    }

    footer {
        width: 100%;
        margin-bottom: 30px;
        text-align: center;
    }

    #copy-right {
        font-size: 10px;
        letter-spacing: 1.75px;
        color: rgba(50, 50, 55, 0.54);
    }

    /* gallery-display ----------------------------------------------------*/
    .display-wrap {
        display: none;
        width: 100%;
        height: 100vh;
        overflow-y: scroll;
    }

    .display-wrap-show {
        display: inline-block;
    }

    @keyframes showDisplayInner {
        100% {opacity: 1;}
    }

    .display-inner {
        opacity: 0;
        width: 100%;
        padding: 58px 120px 120px;
        animation: showDisplayInner 300ms linear forwards;
        animation-delay: 350ms;
    }

    .work-lst-display {
        margin-top: 0;
        gap: 0;
        grid-template-columns: 230px;
    }

    .work-item-display {
        padding:15px; 
    }

    .active-work-desc {
        position: relative;
        display:-webkit-box;
        display:-ms-flexbox;
        display:flex;
        -webkit-box-pack:justify;
        -ms-flex-pack:justify;
        justify-content:space-between;
        width: 100%;
        height: 56px;
        margin-top: 65px;
        margin-bottom: 20px;
    }

    .active-work-title {
        font-size: 24px;
        line-height: 56px;
        color: #fff;
    }

    .active-work-category {
        position: absolute;
        top: 0px;
        right: 0px;
        font-size: 72px;
        line-height: 56px;
        font-weight: 100;
        opacity: 0.1;
        color: #fff;
    }

    .detail-top-img {
        width: 100%;
        border-radius: 2px;
    }

    .active-work-sentence {
        width: 60%;
        line-height: 28px;
        font-size: 14px;
        text-align: justify;
        color: #fff;
    }

    .back-btn {
        position: fixed;
        width: 56px;
        height: 56px;
        top: 30px;
        left: 410px;
        padding: 20px 14px;
        border-radius: 50% 50%;
        transition: 300ms;
        cursor: pointer;
        z-index: 100;
    }

    .back-btn:hover {
        opacity: 0.8;
        background: rgba(255, 255, 255, 0.12);
    }

    .back-btn img {
        width: 28px;
        height: 12px;
    }

    #before-page {
        position: fixed;
        left: 406px;
        top: 120px;
        font-size: 12px;
        opacity: 0.2;
        color: #fff;
        letter-spacing: 1.75px;
        transform: rotate(-90deg);
    }

    .top-btn {
        position: fixed;
        right: 30px;
        bottom: 30px;
        width:56px;
        height:56px;
        border-radius: 50%;
        background: rgba(50, 50, 55, 0.26);
        cursor: pointer;
        text-align: center;
        transition: 150ms;
        display: none;
    }

    .top-btn:hover {
        opacity: 0.8;
    }

    .top-btn img {
        width: 12px;
        height: 28px;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%);
    }

    .active {
        color: rgba(50, 50, 55, 1);
    }

    .active-display {
        background: rgba(255,255,255,0.9);
        border-radius: 2px;
        -moz-box-shadow: 0 0 8px 0 rgba(0,0,0,0.12);
        -webkit-box-shadow: 0 0 8px 0 rgba(0,0,0,0.12);
        -o-box-shadow: 0 0 8px 0 rgba(0,0,0,0.12);
        -ms-box-shadow: 0 0 8px 0 rgba(0,0,0,0.12);
        transition: 300ms;
    }

    /* profile-contents ---------------------------------------------------- */
    .main-profile-container {
        display: none;
        overflow-y: hidden;
    }

    .main-profile-container-show {
        display: flex;
    }

    .contents-wrap-profile {
        width: 70%;
        display: inline-block;
    }

    .profile-image-wrap {
        display: inline-block;
        width: 30%;
        height: 100vh;
        background: #323237;
    }

    .profile-image-wrap img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .profile-name {
        width:80%;
        margin-top: 80px;
        font-size: 18px;
        letter-spacing: 1.5px;
        color: #323237;
    }

    .profile-data {
        margin-top: 12px;
        font-size: 12px;
        color: rgba(50, 50, 55, 0.54);
    }

    .profile-sentence {
        width:80%;
        margin-top: 16px;
        font-size: 14px;
        line-height: 28px;
        text-align: justify;
        color: #323237;
    }

    .skill-lst {
        margin-top: 120px;
        margin-bottom: 120px;
        padding-left: 60px;
        border-left: 1px #e6e6e6 solid;
    }

    .skill-item {
        margin-top: 48px;
    }

    .skill-title {
        font-size: 18px;
        color: #323237;
    }

    .skill-detail {
        margin-top: 12px;
        font-size: 14px;
        line-height: 24px;
        color: #323237;
    }

    /* article-contents ---------------------------------------------------- */
    .main-article-container {
        display: none;
        overflow-y: hidden;
    }

    .main-article-container-show {
        display: block;
    }

    .contents-wrap-article{
        width: 100%;
    }

    .article-lst {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        column-fill: auto;
        grid-column-gap: 100px;
        grid-row-gap: 80px;
        margin-top: 80px;
        margin-bottom: 120px;
    }

    .article-item a{
        display: inline-block;
    }

    .article-image-wrap {
        width: 100%;
        overflow: hidden;
        border-radius: 2px;
    }

    .article-image {
        width: 100%;
        object-fit: cover;
        background: #323237;
        -moz-box-shadow: 0 0 2px 0 rgba(0,0,0,0.12);
        -webkit-box-shadow: 0 0 2px 0 rgba(0,0,0,0.12);
        -o-box-shadow: 0 0 2px 0 rgba(0,0,0,0.12);
        -ms-box-shadow: 0 0 2px 0 rgba(0,0,0,0.12);
        transition: 300ms;
    }

    .article-item:hover .article-image {
        transform: scale(1.1);
    }

    .article-title {
        margin-top: 16px;
        font-size: 14px;
        line-height: 24px;
        color: #323237;
    }

    .article-platform {
        margin-top: 12px;
        width: 54px;
    }
}

