@charset "UTF-8";

*,:before,:after {
    box-sizing: border-box;
    border-style: solid;
    border-width: 0;
    min-width: 0
}

html {
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: transparent;
    line-height: 1.15
}

body {
    margin: 0
}

main {
    display: block
}

p,table,blockquote,address,pre,iframe,form,figure,dl {
    margin: 0
}

h1,h2,h3,h4,h5,h6 {
    font-size: inherit;
    font-weight: inherit;
    margin: 0
}

ul,ol {
    margin: 0;
    padding: 0;
    list-style: none
}

dt {
    font-weight: 700
}

dd {
    margin-left: 0
}

hr {
    box-sizing: content-box;
    clear: both;
    color: inherit;
    border-top-width: 1px;
    height: 0;
    margin: 0;
    overflow: visible
}

pre {
    font-family: monospace;
    font-size: inherit
}

address {
    font-style: inherit
}

a {
    color: inherit;
    background-color: #0000;
    text-decoration: none
}

abbr[title] {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted
}

b,strong {
    font-weight: bolder
}

code,kbd,samp {
    font-family: monospace;
    font-size: inherit
}

small {
    font-size: 80%
}

sub,sup {
    vertical-align: baseline;
    font-size: 75%;
    line-height: 0;
    position: relative
}

sub {
    bottom: -.25em
}

sup {
    top: -.5em
}

svg,img,embed,object,iframe {
    vertical-align: bottom
}

button,input,optgroup,select,textarea {
    appearance: none;
    vertical-align: middle;
    color: inherit;
    font: inherit;
    text-align: inherit;
    text-transform: inherit;
    background: 0 0;
    border-radius: 0;
    margin: 0;
    padding: 0
}

button,[type=button],[type=reset],[type=submit] {
    cursor: pointer
}

button:disabled,[type=button]:disabled,[type=reset]:disabled,[type=submit]:disabled {
    cursor: default
}

:-moz-focusring {
    outline: auto
}

select:disabled {
    opacity: inherit
}

option {
    padding: 0
}

fieldset {
    min-width: 0;
    margin: 0;
    padding: 0
}

legend {
    padding: 0
}

progress {
    vertical-align: baseline
}

textarea {
    overflow: auto
}

[type=number]::-webkit-inner-spin-button {
    height: auto
}

[type=number]::-webkit-outer-spin-button {
    height: auto
}

[type=search] {
    outline-offset: -2px
}

[type=search]::-webkit-search-decoration {
    -webkit-appearance: none
}

::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit
}

[type=number] {
    -moz-appearance: textfield
}

label[for] {
    cursor: pointer
}

details {
    display: block
}

summary {
    display: list-item
}

[contenteditable]:focus {
    outline: auto
}

table {
    border-color: inherit;
    border-collapse: collapse
}

caption {
    text-align: left
}

td,th {
    vertical-align: top;
    padding: 0
}

th {
    text-align: left;
    font-weight: 700
}

html {
    -webkit-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
    text-size-adjust: 100%;
    font-size: 62.5%
}

@media screen and (min-width: 1920px) {
    html {
        font-size:75%
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    html {
        font-size:62.5%
    }
}

body {
    background-color: var(--color-bg-base);
    color: var(--color-text-base);
    font-family: aktiv-grotesk,Gothic Medium BBB,Gothic Medium BBB JIS2004,sans-serif;
    font-size: var(--fontSize-base);
    line-height: var(--lh-base);
    letter-spacing: var(--ls-base);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overscroll-behavior: none;
    -ms-scroll-chaining: none;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%
}

body._loading {
    cursor: progress
}

::selection {
    color: var(--color-text-base);
    background: var(--color-accent)
}

img,svg {
    width: 100%;
    height: auto;
    display: block
}

dt,b,strong,h1,h2,h3,h4,h5,h6 {
    font-weight: 400
}

.u-txtJustify {
    display: block
}

html:lang(ja) .u-txtJustify {
    line-break: strict;
    text-align: justify
}

@media (hover: hover) and (pointer:fine) {
    .u-hoverIcon:hover .c-iconCircle_svg {
        animation:.15s 2 hoverIcon-down
    }

    .u-hoverIcon.u-hoverIcon-right:hover .c-iconCircle_svg {
        animation: .1s 2 hoverIcon-right
    }

    .u-hoverIcon.u-hoverIcon-left:hover .c-iconCircle_svg {
        animation: .1s 2 hoverIcon-left
    }

    .u-hoverIcon.u-hoverIcon-up:hover .c-iconCircle_svg {
        animation: .1s 2 hoverIcon-up
    }

    .u-hoverIcon.u-hoverIcon-exlink:hover .c-iconCircle_svg {
        animation: .1s 2 hoverIcon-exlink
    }
}

:root {
    --hoverIcon-move: .15em
}

@keyframes hoverIcon-down {
    0% {
        transform: translateY(0)
    }

    50% {
        transform: translateY(var(--hoverIcon-move))
    }

    to {
        transform: translateY(0)
    }
}

@keyframes hoverIcon-up {
    0% {
        transform: translateY(0)
    }

    50% {
        transform: translateY(calc(-1*var(--hoverIcon-move)))
    }

    to {
        transform: translateY(0)
    }
}

@keyframes hoverIcon-right {
    0% {
        transform: translate(0)
    }

    50% {
        transform: translate(var(--hoverIcon-move))
    }

    to {
        transform: translate(0)
    }
}

@keyframes hoverIcon-left {
    0% {
        transform: translate(0)
    }

    50% {
        transform: translate(calc(-1*var(--hoverIcon-move)))
    }

    to {
        transform: translate(0)
    }
}

@keyframes hoverIcon-exlink {
    0% {
        transform: translate(0)
    }

    50% {
        transform: translate(calc(var(--hoverIcon-move)*.6),calc(-1*var(--hoverIcon-move)*.6))
    }

    to {
        transform: translate(0)
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .u-pc {
        display:none
    }
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .u-sp {
        display:none
    }
}

.u-pen {
    font-weight: 400;
    display: inline-block;
    position: relative
}

.u-pen_svg {
    display: block;
    position: absolute
}

.u-pen_svg svg {
    display: block;
    width: 100%!important;
    height: 100%!important
}

.u-indentTxt p:nth-of-type(n+2) {
    text-indent: 2em
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .u-indentTxt p:nth-of-type(n+2) {
        text-indent:1em
    }
}

.u-inlineLink {
    color: var(--color-text-base--);
    text-decoration: underline
}

@media (hover: hover) and (pointer:fine) {
    .u-inlineLink:hover {
        text-decoration:none
    }
}

.u-sctStickyWrapper {
    clip-path: inset(0 0 40rem);
    height: calc(100vh + 40rem);
    margin-bottom: -40rem
}

.u-sctStickyItem {
    position: sticky;
    top: -450px
}

@media (hover: hover) and (pointer:fine) {
    .c-inlineLink:hover {
        opacity:.5
    }
}

.c-siteName_target {
    align-items: center;
    gap: 1.6rem;
    display: flex
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .c-siteName_target {
        gap:.7rem
    }
}

.c-siteName_img {
    --size: 4rem;
    width: var(--size);
    height: var(--size);
    -webkit-mask-image: url(../asset/imgMask_square-s.svg);
    mask-image: url(../asset/imgMask_square-s.svg);
    -webkit-mask-size: 100%;
    mask-size: 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .c-siteName_img {
        --size:2.8rem
    }
}

.c-siteName_txt {
    letter-spacing: .04em;
    margin-top: -.08em;
    font-size: 1.5rem;
    line-height: 1.25
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .c-siteName_txt {
        margin-top:-.05em;
        font-size: 1.1rem;
        line-height: 1.15
    }
}

.c-nav_list {
    gap: 2rem;
    display: flex
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .c-nav_list {
        gap:1.2rem
    }
}

.c-nav_item {
    font-size: 1.6rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .c-nav_item {
        font-size:1.3rem
    }
}

.c-nav_item_target {
    align-items: center;
    gap: .2rem;
    display: flex
}

.sct {
    z-index: 2;
    clip-path: inset(0);
    --sctPadTB: 19.2rem;
    padding: var(--sctPadTB)0 calc(var(--sctPadTB) + var(--radius));
    z-index: 10;
    --radius: 7rem;
    border-radius: var(--radius) var(--radius)0 0;
    margin-top: calc(-1*var(--radius));
    position: relative
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .sct {
        --radius:.8rem;
        --sctPadTB: 10.4rem
    }
}

.sct .header {
    z-index: 10
}

.sct_inner {
    z-index: 5;
    position: relative
}

.sct_head {
    width: calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*12 + 4rem*(12 - 1) + 0px);
    margin: 0 auto
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .sct_head {
        width:calc(100vw - 4.8rem)
    }
}

.sct_ttl {
    line-height: 1.4;
    position: relative
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .sct_ttl {
        margin-bottom:4rem
    }
}

.sct_ttl_num {
    font-size: 1.7rem;
    display: block;
    position: absolute;
    top: -2.2em;
    left: -.1em
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .sct_ttl_num {
        margin-bottom:.6rem;
        font-size: 1.1rem
    }
}

.sct_ttl_txt {
    font-feature-settings: "palt";
    letter-spacing: .1em;
    margin-left: -.1em;
    font-size: 3.2rem;
    line-height: 1.5;
    display: block
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .sct_ttl_txt {
        font-size:2.4rem
    }
}

.sct_body {
    width: calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*12 + 4rem*(12 - 1) + 0px);
    margin: 0 auto
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .sct_body {
        width:calc(100vw - 4.8rem)
    }
}

astro-dev-toolbar {
    display: none
}

.loading {
    background: var(--color-bg-base);
    z-index: 2000;
    width: 100%;
    height: 100dvh;
    transition: all .1s;
    position: fixed
}

._loaded .loading {
    opacity: 0;
    visibility: hidden
}

.loading_siteName {
    width: fit-content;
    height: fit-content;
    margin: auto;
    position: absolute;
    inset: -2rem 0 0
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .loading_siteName {
        top:-4rem
    }
}

.loading_siteName .c-siteName_target {
    transform: scale(1.2)
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .loading_siteName .c-siteName_target {
        transform:scale(1.4)
    }
}

.c-iconCircle {
    --size: round(1em,1px);
    height: var(--size);
    width: var(--size);
    justify-content: center;
    align-items: center;
    display: flex;
    position: relative
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .c-iconCircle {
        --size:round(.9em,1px)
    }
}

.c-iconCircle-pc-L {
    --size: 3.2em
}

.c-iconCircle-sp-L {
    --size: 2.4em
}

.c-iconCircle:before {
    content: "";
    opacity: .8;
    border: 1px solid;
    border-radius: 50%;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0
}

.c-iconCircle_svg {
    --svgSize: 95%;
    height: var(--svgSize);
    width: var(--svgSize);
    margin: 0 auto;
    display: block
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .c-iconCircle_svg {
        --svgSize:100%;
        padding: 10%
    }
}

.c-iconCircle_svg path {
    fill: currentColor
}

.c-iconCircle-pc-L .c-iconCircle_svg {
    --svgSize: 36%
}

.c-iconCircle-sp-L .c-iconCircle_svg {
    --svgSize: 40%
}

.header {
    height: var(--headerHeight);
    padding: 0 var(--column-outer-right)0 var(--column-outer-left);
    z-index: 100;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    display: flex;
    position: fixed;
    top: 0;
    left: 0
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .header {
        padding:0 var(--column-margin-right)0 var(--column-margin-left)
    }

    .header_siteName {
        display: none
    }

    .header_nav {
        width: 100%
    }

    .header_nav .c-nav_list {
        gap: unset;
        justify-content: space-between;
        width: 100%
    }
}

.fv_copy_pen .u-pen_svg {
    z-index: 10;
    pointer-events: none;
    width: 110%;
    height: 130%;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%)
}

.fv {
    --fvTxt-btm: 9.2rem;
    padding: 0 var(--column-margin-right);
    z-index: 2;
    clip-path: inset(0);
    width: 100%;
    margin: 0 auto;
    position: relative;
    overflow: hidden
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .fv {
        height:100svh;
        min-height: 45vw;
        max-height: 60vw
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv {
        --fvTxt-btm:7.2rem;
        padding-top: var(--headerHeight);
        padding-bottom: var(--fvTxt-btm)
    }

    .fv .header {
        position: absolute;
        top: 1.3rem
    }
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .fv .header_siteName {
        opacity:0;
        visibility: hidden
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv .header_siteName {
        display:block
    }

    .fv .header_nav {
        opacity: 0;
        visibility: hidden
    }
}

.fv_txt {
    left: auto;
    bottom: var(--fvTxt-btm);
    width: calc(100% - var(--column-margin-right) - var(--column-margin-left));
    z-index: 30;
    position: absolute
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_txt {
        width:100%;
        position: static
    }

    .fv_siteName {
        display: none
    }
}

.fv_copy {
    font-feature-settings: "palt";
    letter-spacing: .1em;
    margin-top: 4rem;
    margin-left: -.08em;
    font-size: 3.4rem;
    line-height: 1.5;
    position: relative
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_copy {
        letter-spacing:0;
        white-space: nowrap;
        margin-top: 0;
        font-size: 2.4rem
    }
}

.fv_copy .punc_end {
    width: 0;
    display: inline-block
}

.fv_point {
    margin-top: 3rem;
    display: flex
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_point {
        flex-direction:column;
        justify-content: flex-start;
        gap: .6rem;
        margin-top: 2rem
    }
}

.fv_point_item {
    background: var(--color-bg-base);
    border: 1px dashed var(--color-border-black);
    border-radius: 5rem;
    align-items: center;
    gap: .2rem;
    margin-right: -2.4rem;
    padding: .3rem 3.4rem .3rem 1.4rem;
    font-size: 1.6rem;
    line-height: 1.6;
    display: flex
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .fv_point_item:last-child {
        padding-right:1.4rem
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_point_item {
        gap:.25rem;
        width: fit-content;
        margin-right: 0;
        padding: .1rem 1rem;
        font-size: 1.4rem
    }
}

.fv_point_item_icon {
    --size: 1.4em;
    width: var(--size);
    height: var(--size);
    margin-left: -.3em
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_point_item_icon {
        --size:1.1em
    }
}

.fv_imgs {
    z-index: 10;
    width: 100%;
    height: 100%;
    position: relative
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_imgs {
        height:68vw
    }
}

.fv_imgs_group .fv_imgs_item {
    --animeRange: 3.2rem;
    --animeRangeL: 5.6rem;
    opacity: 0;
    transition: transform .26s cubic-bezier(.3,.09,0,1.24),opacity .15s;
    transform: scale(.25)
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_imgs_group .fv_imgs_item {
        --animeRange:1.2rem;
        --animeRangeL: 2.4rem
    }
}

.fv_imgs_group .fv_imgs_img {
    width: calc(100% + var(--animeRange));
    height: 100%;
    transition: transform 0s linear 1s;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    transform: translate(0)
}

.fv_imgs_group.is_active .fv_imgs_item {
    opacity: 1;
    transform: scale(1)
}

.fv_imgs_group.is_active .fv_imgs_img {
    transform: translate(calc(-1*var(--animeRange)));
    transition-duration: 5s;
    transition-delay: 0s
}

.fv_imgs_group .fv_imgs_item {
    position: absolute
}

.fv_imgs_group:first-child .fv_imgs_item:first-child {
    aspect-ratio: 290/174;
    transition-delay: .1s;
    display: block;
    -webkit-mask-image: url(../asset/imgMask_horizontal.svg);
    mask-image: url(../asset/imgMask_horizontal.svg);
    -webkit-mask-position: 50%;
    mask-position: 50%;
    -webkit-mask-size: 100%;
    mask-size: 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat
}

.fv_imgs_group:first-child .fv_imgs_item:first-child img {
    object-fit: cover;
    width: 100%;
    height: 100%
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .fv_imgs_group:first-child .fv_imgs_item:first-child {
        width:calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*3 + 4rem*(3 - 1) + 0px);
        top: 10%;
        left: -1rem
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_imgs_group:first-child .fv_imgs_item:first-child {
        display:none
    }
}

.fv_imgs_group:first-child .fv_imgs_item:nth-child(2) {
    aspect-ratio: 1;
    transition-delay: .2s;
    display: block;
    -webkit-mask-image: url(../asset/imgMask_square.svg);
    mask-image: url(../asset/imgMask_square.svg);
    -webkit-mask-position: 50%;
    mask-position: 50%;
    -webkit-mask-size: 100%;
    mask-size: 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat
}

.fv_imgs_group:first-child .fv_imgs_item:nth-child(2) img {
    object-fit: cover;
    width: 100%;
    height: 100%
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .fv_imgs_group:first-child .fv_imgs_item:nth-child(2) {
        width:calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*1.8 + 4rem*(1.8 - 1) + 0px);
        top: 24%;
        left: calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*3 + 4rem*(3 - 1) + 0px + var(--column-gap))
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_imgs_group:first-child .fv_imgs_item:nth-child(2) {
        z-index:10;
        width: calc(33.3333vw - 2.66667rem);
        top: -2rem;
        right: 0
    }
}

.fv_imgs_group:first-child .fv_imgs_item:nth-child(3) {
    --animeRange: var(--animeRangeL);
    aspect-ratio: 290/174;
    transition-delay: 0s;
    display: block;
    -webkit-mask-image: url(../asset/imgMask_horizontal.svg);
    mask-image: url(../asset/imgMask_horizontal.svg);
    -webkit-mask-position: 50%;
    mask-position: 50%;
    -webkit-mask-size: 100%;
    mask-size: 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat
}

.fv_imgs_group:first-child .fv_imgs_item:nth-child(3) img {
    object-fit: cover;
    width: 100%;
    height: 100%
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .fv_imgs_group:first-child .fv_imgs_item:nth-child(3) {
        width:calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*6 + 4rem*(6 - 1) + 0px + var(--column-gap)/2);
        top: 20%;
        right: 0
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_imgs_group:first-child .fv_imgs_item:nth-child(3) {
        width:calc(91.6667vw - 4.53333rem);
        top: 4rem;
        left: 0
    }
}

.fv_imgs_group:nth-child(2) .fv_imgs_item:first-child {
    --animeRange: var(--animeRangeL);
    aspect-ratio: 360/533;
    transition-delay: .1s;
    display: block;
    -webkit-mask-image: url(../asset/imgMask_vertical.svg);
    mask-image: url(../asset/imgMask_vertical.svg);
    -webkit-mask-position: 50%;
    mask-position: 50%;
    -webkit-mask-size: 100%;
    mask-size: 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat
}

.fv_imgs_group:nth-child(2) .fv_imgs_item:first-child img {
    object-fit: cover;
    width: 100%;
    height: 100%
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .fv_imgs_group:nth-child(2) .fv_imgs_item:first-child {
        width:calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*4 + 4rem*(4 - 1) + 0px);
        top: 4%;
        left: calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*2 + 4rem*(2 - 1) + 0px + var(--column-gap))
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_imgs_group:nth-child(2) .fv_imgs_item:first-child {
        top:-12%;
        left: calc((100vw - 2.4rem - 2.4rem - 1.6rem*(12 - 1))/12*1 + 1.6rem*(1 - 1) + 0px + var(--column-gap));
        width: calc(58.3333vw - 3.46667rem)
    }
}

.fv_imgs_group:nth-child(2) .fv_imgs_item:nth-child(2) {
    aspect-ratio: 1;
    transition-delay: 0s;
    display: block;
    -webkit-mask-image: url(../asset/imgMask_square.svg);
    mask-image: url(../asset/imgMask_square.svg);
    -webkit-mask-position: 50%;
    mask-position: 50%;
    -webkit-mask-size: 100%;
    mask-size: 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat
}

.fv_imgs_group:nth-child(2) .fv_imgs_item:nth-child(2) img {
    object-fit: cover;
    width: 100%;
    height: 100%
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .fv_imgs_group:nth-child(2) .fv_imgs_item:nth-child(2) {
        width:calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*2 + 4rem*(2 - 1) + 0px);
        top: 61%;
        right: calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*3 + 4rem*(3 - 1) + 0px + var(--column-gap))
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_imgs_group:nth-child(2) .fv_imgs_item:nth-child(2) {
        width:calc((100vw - 2.4rem - 2.4rem - 1.6rem*(12 - 1))/12*3 + 1.6rem*(3 - 1) + 0px + var(--column-gap));
        z-index: 10;
        top: 76%;
        right: 0
    }
}

.fv_imgs_group:nth-child(2) .fv_imgs_item:nth-child(3) {
    aspect-ratio: 290/174;
    transition-delay: .2s;
    display: block;
    -webkit-mask-image: url(../asset/imgMask_horizontal.svg);
    mask-image: url(../asset/imgMask_horizontal.svg);
    -webkit-mask-position: 50%;
    mask-position: 50%;
    -webkit-mask-size: 100%;
    mask-size: 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat
}

.fv_imgs_group:nth-child(2) .fv_imgs_item:nth-child(3) img {
    object-fit: cover;
    width: 100%;
    height: 100%
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .fv_imgs_group:nth-child(2) .fv_imgs_item:nth-child(3) {
        width:calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*3 + 4rem*(3 - 1) + 0px);
        top: 26%;
        right: 0
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_imgs_group:nth-child(2) .fv_imgs_item:nth-child(3) {
        display:none
    }
}

.fv_imgs_group:nth-child(3) .fv_imgs_item:first-child {
    aspect-ratio: 290/174;
    transition-delay: .1s;
    display: block;
    -webkit-mask-image: url(../asset/imgMask_horizontal.svg);
    mask-image: url(../asset/imgMask_horizontal.svg);
    -webkit-mask-position: 50%;
    mask-position: 50%;
    -webkit-mask-size: 100%;
    mask-size: 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat
}

.fv_imgs_group:nth-child(3) .fv_imgs_item:first-child img {
    object-fit: cover;
    width: 100%;
    height: 100%
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .fv_imgs_group:nth-child(3) .fv_imgs_item:first-child {
        width:calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*3 + 4rem*(3 - 1) + 0px);
        top: 20%;
        right: 0
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_imgs_group:nth-child(3) .fv_imgs_item:first-child {
        z-index:10;
        width: calc(41.6667vw - 2.93333rem);
        top: 15%;
        left: 0
    }
}

.fv_imgs_group:nth-child(3) .fv_imgs_item:nth-child(2) {
    --animeRange: var(--animeRangeL);
    aspect-ratio: 290/174;
    transition-delay: 0s;
    display: block;
    -webkit-mask-image: url(../asset/imgMask_horizontal.svg);
    mask-image: url(../asset/imgMask_horizontal.svg);
    -webkit-mask-position: 50%;
    mask-position: 50%;
    -webkit-mask-size: 100%;
    mask-size: 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat
}

.fv_imgs_group:nth-child(3) .fv_imgs_item:nth-child(2) img {
    object-fit: cover;
    width: 100%;
    height: 100%
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .fv_imgs_group:nth-child(3) .fv_imgs_item:nth-child(2) {
        width:calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*6 + 4rem*(6 - 1) + 0px);
        top: 28%;
        left: calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*3 + 4rem*(3 - 1) + 0px)
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_imgs_group:nth-child(3) .fv_imgs_item:nth-child(2) {
        width:calc(83.3333vw - 4.26667rem);
        top: 32%;
        right: 0
    }
}

.fv_imgs_group:nth-child(3) .fv_imgs_item:nth-child(3) {
    aspect-ratio: 1;
    transition-delay: .2s;
    display: block;
    -webkit-mask-image: url(../asset/imgMask_square.svg);
    mask-image: url(../asset/imgMask_square.svg);
    -webkit-mask-position: 50%;
    mask-position: 50%;
    -webkit-mask-size: 100%;
    mask-size: 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat
}

.fv_imgs_group:nth-child(3) .fv_imgs_item:nth-child(3) img {
    object-fit: cover;
    width: 100%;
    height: 100%
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .fv_imgs_group:nth-child(3) .fv_imgs_item:nth-child(3) {
        width:calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*2 + 4rem*(2 - 1) + 0px);
        top: 12%;
        left: calc(1*var(--column-gap))
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_imgs_group:nth-child(3) .fv_imgs_item:nth-child(3) {
        display:none
    }
}

.fv_grid {
    width: calc(100% - var(--column-margin-right) - var(--column-margin-left));
    border: 1px solid var(--color-border-base);
    z-index: -1;
    border-width: 0 1px;
    height: 100%;
    margin: auto;
    position: absolute;
    top: 0;
    left: 0;
    right: 0
}

.fv_grid:before,.fv_grid:after {
    content: "";
    background: var(--color-border-base);
    position: absolute
}

.fv_grid:before {
    top: var(--headerHeight);
    width: 100%;
    height: 1px;
    display: none;
    left: 0
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_grid:before {
        display:block
    }
}

.fv_grid:after {
    width: 1px;
    height: 100%;
    margin: auto;
    top: 0;
    left: 0;
    right: 0
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_grid:after {
        opacity:.6
    }
}

.fv_grid_txtBox {
    bottom: var(--fvTxt-btm);
    border: 1px solid var(--color-border-base);
    border-width: 1px 0;
    width: 100%;
    display: none;
    position: absolute
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .fv_grid_txtBox {
        border-width:0 0 1px;
        display: block
    }
}

.ctaBtn {
    width: calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*3 + 4rem*(3 - 1) + 0px);
    right: var(--column-outer-right);
    z-index: 1000;
    transition: all .4s var(--ts-ease-base);
    position: fixed;
    bottom: 0
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .ctaBtn {
        width:calc(100vw - var(--column-outer-right) - var(--column-outer-left));
        bottom: var(--column-outer-right)
    }
}

.is_contact .ctaBtn {
    opacity: 0;
    visibility: hidden;
    transform: translateY(100%)
}

.ctaBtn_target {
    --radius: .8rem;
    color: var(--color-text-nega);
    background: var(--color-bg-cta);
    border-radius: var(--radius) var(--radius)0 0;
    padding: 6.4rem 4rem 1px;
    font-size: 1.8rem;
    line-height: 1.65;
    display: block
}

@media (hover: hover) and (pointer:fine) {
    .ctaBtn_target:hover {
        background-color:var(--color-bg-cta-hover)
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .ctaBtn_target {
        --radius:.5rem;
        border-radius: var(--radius);
        padding: 2rem 2.4rem 2px;
        font-size: 1.5rem
    }
}

.ctaBtn_inner {
    border-bottom: 3px solid var(--color-border-white);
    justify-content: space-between;
    padding-bottom: 2.8rem;
    display: flex
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .ctaBtn_inner {
        border-bottom-width:2px;
        padding-bottom: 1.8rem
    }
}

.ctaBtn_icon {
    --size: 1.1em;
    border-color: var(--color-border-white);
    margin-top: .3em
}

.problem {
    background: var(--color-bg-nega);
    color: var(--color-text-nega);
    padding-bottom: calc(var(--sctPadTB) + var(--radius) - 4rem);
    margin-top: 0
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .problem {
        overflow:hidden
    }
}

.problem .header {
    color: var(--color-text-nega)
}

.problem .sct_head {
    padding-left: calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*7 + 4rem*(7 - 1) + 0px + var(--column-gap))
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .problem .sct_head {
        padding-left:calc((100vw - 2.4rem - 2.4rem - 1.6rem*(12 - 1))/12*3 + 1.6rem*(3 - 1) + 0px + var(--column-gap));
        padding-left: 0
    }
}

.problem .sct_body {
    position: relative
}

.problem_ttl_pen .u-pen_svg {
    aspect-ratio: 61/34;
    width: 7.2rem;
    bottom: 1.5em;
    right: -1.2em
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .problem_ttl_pen .u-pen_svg {
        width:5.6rem;
        right: -1em
    }
}

.problem_guide {
    color: var(--color-text-base);
    background: var(--color-bg-base);
    line-height: 1.6;
    position: absolute
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .problem_guide {
        border-radius:3.6rem;
        padding: 1rem 2.4rem;
        font-size: 1.5rem;
        top: 9rem;
        left: -2rem
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .problem_guide {
        border-radius:2.4rem;
        padding: .8rem 1.6rem;
        font-size: 1.1rem;
        top: 0;
        right: -1rem
    }
}

.problem_guide:after {
    content: "";
    border-top: 1px solid var(--color-border-white);
    z-index: -1;
    height: 1px;
    position: absolute
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .problem_guide:after {
        width:10.6rem;
        bottom: -1rem;
        right: -4rem;
        transform: rotate(24deg)
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .problem_guide:after {
        width:10rem;
        bottom: -1rem;
        left: 2rem;
        transform: rotate(-40deg)
    }
}

.problem_list {
    margin: 0 auto;
    position: relative
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .problem_list {
        width:calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*10 + 4rem*(10 - 1) + 0px);
        width: 104rem;
        height: 72.4rem
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .problem_list {
        margin-top:2.4rem;
        padding-top: 8rem
    }
}

.problem_item {
    border-radius: 50%
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .problem_item {
        aspect-ratio:48/17;
        width: 48rem;
        padding-top: 1rem;
        position: absolute
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .problem_item {
        width:90%;
        height: 18rem;
        padding-top: 1%;
        position: relative
    }

    .problem_item:nth-child(2n) {
        margin-left: auto;
        transform: translate(4rem)
    }

    .problem_item:nth-child(odd) {
        transform: translate(-4rem)
    }

    .problem_item:not(:last-child) {
        margin-bottom: -5rem
    }
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .problem_item-circle {
        aspect-ratio:1;
        width: 30rem
    }

    .problem_item:first-child {
        top: 0;
        left: 18%
    }

    .problem_item:nth-child(2) {
        top: 19%;
        left: 38%
    }

    .problem_item:nth-child(3) {
        top: 31%;
        left: -7%
    }

    .problem_item:nth-child(4) {
        top: 37%;
        left: 26%
    }

    .problem_item:nth-child(5) {
        top: 44%;
        right: -4%
    }

    .problem_item:nth-child(6) {
        top: 56%;
        left: 13%
    }

    .problem_item:nth-child(7) {
        top: 57%;
        right: 24%
    }
}

.problem_item_target {
    text-align: center;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    line-height: 1.6;
    display: flex
}

@media (hover: hover) and (pointer:fine) {
    .problem_item_target:hover .problem_item_main {
        text-decoration:none
    }

    .problem_item_target:hover .problem_item_icon {
        opacity: 1
    }

    .problem_item_target:hover:before {
        border-color: var(--color-border-white)
    }
}

.problem_item_target:before {
    content: "";
    border: 1px dashed var(--color-border-nega);
    pointer-events: none;
    border-radius: 50%;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .problem_item_target:before {
        opacity:.8
    }
}

.problem_item_sub {
    color: var(--color-text-nega--);
    margin-bottom: .2rem;
    font-size: 1.3rem;
    display: block
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .problem_item_sub {
        font-size:1.1rem
    }
}

.problem_item_main {
    text-decoration: underline;
    display: block
}

.problem_item_icon {
    margin: .8rem auto 0
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .problem_item_icon {
        opacity:0
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .problem_item_icon {
        margin-top:1.2rem
    }
}

.feature {
    background: var(--color-bg-gray);
    border-radius: var(--radius);
    --radius: 7rem;
    border-radius: var(--radius) var(--radius)0 0;
    margin-top: calc(-1*var(--radius));
    padding-bottom: 0;
    overflow: hidden
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .feature {
        --radius:.8rem
    }
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .feature {
        padding-top:12.8rem
    }

    .feature .sct_head {
        justify-content: space-between;
        align-items: center;
        gap: var(--column-gap);
        display: flex
    }
}

.feature .sct_ttl {
    flex: 1
}

.feature .sct_body {
    width: 100%
}

.feature_ttl_pen .u-pen_svg {
    width: 120%;
    height: 120%;
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    left: -10%
}

.feature_mainImg {
    width: calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*5 + 4rem*(5 - 1) + 0px);
    aspect-ratio: 290/174;
    display: block;
    -webkit-mask-image: url(../asset/imgMask_horizontal.svg);
    mask-image: url(../asset/imgMask_horizontal.svg);
    -webkit-mask-position: 50%;
    mask-position: 50%;
    -webkit-mask-size: 100%;
    mask-size: 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat
}

.feature_mainImg img {
    object-fit: cover;
    width: 100%;
    height: 100%
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .feature_mainImg {
        width:calc(100vw - 4.8rem);
        margin-left: auto
    }
}

.feature_list {
    margin-top: 8.8rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .feature_list {
        margin-top:5.6rem
    }
}

.feature_item {
    transition: height .2s var(--ts-ease-base);
    pointer-events: none;
    position: relative;
    overflow: hidden
}

.feature_item:not(:last-child) {
    margin-bottom: -12.4rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .feature_item:not(:last-child) {
        margin-bottom:-3rem
    }
}

.feature_item.is_open {
    cursor: default
}

.feature_item_a,.feature_item_q {
    cursor: pointer;
    pointer-events: auto
}

@media (hover: hover) and (pointer:fine) {
    .feature_item:not(.is_open):has(.feature_item_a:hover,.feature_item_q:hover) .feature_item_copy {
        opacity:.5
    }

    .feature_item:not(.is_open):has(.feature_item_a:hover,.feature_item_q:hover) .feature_item_copy_arrow {
        animation: .1s 2 hoverIcon-right
    }
}

.feature_item_q {
    --qH: 3.4rem;
    height: var(--qH);
    align-items: center;
    width: fit-content;
    margin-bottom: -1px;
    display: flex
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .feature_item_q {
        --qH:2.6rem
    }
}

.feature_item_q_txt {
    font-feature-settings: "palt";
    letter-spacing: .04em;
    height: var(--qH);
    background: var(--color-bg-gray);
    padding-top: 1.2rem;
    padding-left: var(--column-margin-left);
    z-index: 1;
    border-top: 1px solid var(--color-border-white);
    transition: all .2s var(--ts-ease-base);
    font-size: 1.3rem;
    position: relative
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .feature_item_q_txt {
        color:var(--color-text-base--);
        padding-top: .8rem;
        font-size: 1.1rem
    }
}

.feature_item_q_txt:before {
    content: "●";
    margin-right: .1em
}

.is_open .feature_item_q_txt {
    border-color: var(--color-border-base);
    background: var(--color-bg-base)
}

.feature_item_q_radius {
    z-index: 0;
    width: auto;
    height: 100%;
    margin-left: -1rem;
    position: relative
}

.feature_item_q_radius .fill {
    fill: var(--color-bg-gray);
    transition: all .2s var(--ts-ease-base)
}

.is_open .feature_item_q_radius .fill {
    fill: var(--color-bg-base)
}

.feature_item_q_radius .border {
    fill: var(--color-border-white);
    transition: all .2s var(--ts-ease-base)
}

.is_open .feature_item_q_radius .border {
    fill: var(--color-border-base)
}

.feature_item_a {
    background: var(--color-bg-gray);
    padding: 4.8rem var(--column-margin-left) 16.8rem calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*3 + 4rem*(3 - 1) + 0px + var(--column-margin-left) + var(--column-gap));
    gap: calc(var(--column-gap) + var(--column-gap)/2);
    border-top: 1px solid var(--color-border-white);
    transition: all .2s var(--ts-ease-base),padding-top .8s var(--ts-ease-base);
    align-items: flex-start;
    display: flex
}

.feature_item:last-child .feature_item_a {
    padding-bottom: 9.6rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .feature_item:last-child .feature_item_a {
        padding-bottom:5.6rem
    }

    .feature_item_a {
        padding: 3rem var(--column-margin-right) 12.8rem calc(var(--column-margin-left) + (100vw - 2.4rem - 2.4rem - 1.6rem*(12 - 1))/12*2 + 1.6rem*(2 - 1) + 0px + var(--column-gap));
        display: block
    }
}

.is_open .feature_item_a {
    border-color: var(--color-border-base);
    background: var(--color-bg-base)
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .feature_item_txt {
        padding-right:calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*3 + 4rem*(3 - 1) + 0px + var(--column-gap));
        position: relative
    }
}

.feature_item_copy {
    font-feature-settings: "palt";
    letter-spacing: .1em;
    transition: all .2s var(--ts-ease-base);
    margin-bottom: 5.6rem;
    margin-left: -.08em;
    font-size: 2.4rem;
    line-height: 1.5;
    position: relative
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .feature_item_copy {
        margin-bottom:2rem;
        font-size: 1.8rem
    }
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .is_open .feature_item_copy {
        transform:translateY(2.4rem)
    }
}

.feature_item_copy_arrow {
    width: 1.5rem;
    position: absolute;
    top: .45em;
    left: -2.4rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .feature_item_copy_arrow {
        width:1.2rem;
        left: -2rem
    }
}

.feature_item_imgWrap {
    mix-blend-mode: luminosity;
    opacity: .7
}

.is_open .feature_item_imgWrap {
    mix-blend-mode: unset;
    opacity: 1
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .feature_item_imgWrap {
        width:calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*3 + 4rem*(3 - 1) + 0px);
        position: absolute;
        top: 0;
        right: 0
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .feature_item_imgWrap {
        margin-bottom:2.4rem;
        padding: 0 2rem
    }
}

.feature_item_img {
    aspect-ratio: 290/174;
    display: block;
    -webkit-mask-image: url(../asset/imgMask_horizontal.svg);
    mask-image: url(../asset/imgMask_horizontal.svg);
    -webkit-mask-position: 50%;
    mask-position: 50%;
    -webkit-mask-size: 100%;
    mask-size: 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat
}

.feature_item_img img {
    object-fit: cover;
    width: 100%;
    height: 100%
}

.feature_item_body,.feature_item_close_target {
    opacity: 0;
    visibility: hidden;
    transition: all .3s var(--ts-ease-base) 0s
}

.is_open .feature_item_body,.is_open .feature_item_close_target {
    visibility: visible;
    opacity: 1;
    transition-delay: .1s
}

.feature_item_body {
    cursor: text
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .feature_item_body {
        font-size:1.4rem
    }
}

.feature_item_close {
    margin-top: 3.2rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .feature_item_close {
        margin-top:1.6rem
    }
}

.feature_item_close_target {
    color: var(--color-text-base--);
    cursor: pointer;
    align-items: center;
    gap: .6rem;
    font-size: 1.6rem;
    display: flex
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .feature_item_close_target {
        justify-content:flex-end;
        font-size: 1.4rem
    }
}

.works {
    color: var(--color-text-nega);
    clip-path: inset(0);
    z-index: 0;
    padding-top: 100vh;
    padding-bottom: 0;
    position: relative
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .works {
        padding-top:80vh
    }
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .works .sct_head {
        margin-bottom:10.4rem
    }
}

.works .sct_body {
    padding-bottom: 26rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .works .sct_body {
        padding-bottom:12rem
    }
}

.works_ttl_pen .u-pen_svg {
    width: 105%;
    height: 1.8rem;
    bottom: -.28em;
    left: -.2em
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .works_ttl_pen .u-pen_svg {
        height:1.2rem;
        bottom: -.2em
    }
}

.works_bg {
    --blurNum: 2rem;
    z-index: -1;
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    overflow: hidden
}

.works_bg_img {
    width: calc(100% + var(--blurNum)*4);
    height: calc(100% + var(--blurNum)*4);
    margin: calc(-1*(var(--blurNum)))0 0 calc(-1*(var(--blurNum)));
    object-fit: cover;
    filter: blur(var(--blur,0));
    transition: filter .1s linear;
    display: block
}

.works_bg_img img {
    object-fit: cover;
    height: 100%
}

.works_bg:after {
    content: "";
    background: rgba(17,17,17,var(--overlay,0));
    pointer-events: none;
    position: absolute;
    inset: 0
}

.worksItem {
    width: calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*8 + 4rem*(8 - 1) + 0px);
    border-top: 1px solid var(--color-border-nega);
    margin-left: auto
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .worksItem {
        width:calc(100vw - 4.8rem)
    }
}

.worksItem + .worksItem {
    margin-top: 11.2rem;
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .worksItem + .worksItem {
        margin-top: 4rem;
    }
}

.worksItem_head {
    margin: 2rem 0 5.6rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .worksItem_head {
        margin:2.8rem 0
    }
}

.worksItem_ttl {
    font-feature-settings: "palt";
    letter-spacing: .1em;
    font-size: 2.4rem;
    line-height: 1.5
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .worksItem_ttl {
        text-align:center;
        font-size: 1.7rem
    }
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .worksItem_body {
        width:calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*6 + 4rem*(6 - 1) + 0px);
        margin: 0 auto
    }
}

.workSlide {
    position: relative
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .workSlide {
        margin:0 calc(-1*var(--column-margin-left))
    }
}

.worksItem_txt {
    margin-top: 4rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .worksItem_txt {
        margin-top:3rem
    }
}

.worksItem_data {
    flex-wrap: wrap;
    gap: 2.4rem;
    margin-top: 3.2rem;
    font-size: 1.4rem;
    line-height: 1.6;
    display: flex
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .worksItem_data {
        gap:2rem;
        font-size: 1.2rem
    }
}

.worksItem_data_item {
    opacity: 1
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .worksItem_data_item {
        opacity:1
    }
}

.worksItem_data_item_head {
    color: var(--color-text-nega--)
}

.worksItem_data_item_body {
    margin-top: .4rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .worksItem_data_item_body {
        opacity:1
    }
}

.slide {
    --captionBtm: 1.2rem
}

.slide_viewport {
    padding-bottom: var(--captionBtm);
    overflow: hidden
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .slide_viewport {
        --captionBtm:1rem;
        padding: 0 calc(var(--column-margin-left) + 1rem) var(--captionBtm)
    }
}

.slide_container {
    --slideGap: 2rem;
    margin: 0 calc(-1*var(--slideGap));
    display: flex
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .slide_container {
        --slideGap:.6rem
    }
}

.slide_slide {
    padding: 0 var(--slideGap);
    opacity: 0;
    transition: opacity .3s var(--ts-ease-base);
    flex: 0 0 100%;
    min-width: 0;
    position: relative
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .slide_slide {
        opacity:1
    }
}

.slide_slide.is_active {
    opacity: 1
}

.slide_slide_img {
    aspect-ratio: 290/174;
    width: 100%;
    display: block;
    -webkit-mask-image: url(../asset/imgMask_horizontal.svg);
    mask-image: url(../asset/imgMask_horizontal.svg);
    -webkit-mask-position: 50%;
    mask-position: 50%;
    -webkit-mask-size: 100%;
    mask-size: 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat
}

.slide_slide_img img {
    object-fit: cover;
    width: 100%;
    height: 100%
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .slide_slide_img {
        opacity:1
    }
}

.slide-caption {
    color: var(--color-text-base);
    background: var(--color-bg-base);
    text-align: center;
    bottom: calc(-1*var(--captionBtm));
    border-radius: .4rem;
    width: fit-content;
    max-width: 70%;
    margin: 0 auto;
    padding: .3rem .8rem;
    font-size: 1.2rem;
    line-height: 1.55;
    position: absolute;
    left: 0;
    right: 0
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .slide-caption {
        bottom:calc(-1*var(--captionBtm));
        max-width: 76%;
        padding: .2rem .6rem;
        font-size: 1.1rem
    }
}

.slide_arrow {
    cursor: pointer;
    top: calc(50% - var(--captionBtm)/2);
    position: absolute;
    transform: translateY(-50%)
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .slide_arrow {
        display:none
    }
}

.slide_arrow-prev {
    left: -2rem;
    transform: translate(-100%,-50%)
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .slide_arrow-prev {
        opacity:1
    }
}

.slide_arrow-next {
    right: -2rem;
    transform: translate(100%,-50%)
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .slide_arrow-next {
        opacity:1
    }
}

.profile {
    background: var(--color-bg-base);
    --radius: 7rem;
    border-radius: var(--radius) var(--radius)0 0;
    margin-top: calc(-1*var(--radius));
    padding-bottom: 14rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .profile {
        --radius:.8rem;
        padding-bottom: 7.2rem
    }
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .profile .sct_body {
        align-items:flex-start;
        gap: calc(var(--column-gap) + (100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*1 + 4rem*(1 - 1) + 0px);
        margin-top: 8rem;
        display: flex
    }
}

@media screen and (orientation: landscape) and (max-width:767px) and (orientation:portrait) and (max-width:767px),screen and (min-width:768px) and (orientation:portrait) and (max-width:767px) {
    .profile .sct_body {
        margin-top:0;
        display: block
    }
}

.profile_ttl_pen .u-pen_svg {
    width: 105%;
    height: 1.8rem;
    bottom: -.28em;
    left: -.2em
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .profile_ttl_pen .u-pen_svg {
        height:1.2rem;
        bottom: -.2em
    }
}

.profile_img {
    flex: 1
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .profile_img {
        opacity:1
    }
}

.profile_mainImg {
    aspect-ratio: 290/174;
    display: block;
    -webkit-mask-image: url(../asset/imgMask_horizontal.svg);
    mask-image: url(../asset/imgMask_horizontal.svg);
    -webkit-mask-position: 50%;
    mask-position: 50%;
    -webkit-mask-size: 100%;
    mask-size: 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat
}

.profile_mainImg img {
    object-fit: cover;
    width: 100%;
    height: 100%
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .profile_mainImg {
        opacity:1
    }
}

.profile_txt {
    width: calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*7 + 4rem*(7 - 1) + 0px)
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .profile_txt {
        width:100%;
        margin-top: 3.2rem
    }

    .profile_txtInner {
        opacity: 1
    }
}

.profile_name {
    font-feature-settings: "palt";
    letter-spacing: .1em;
    letter-spacing: .04em;
    margin-bottom: 2rem;
    font-size: 2.4rem;
    line-height: 1.6
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .profile_name {
        margin-bottom:1.4rem;
        font-size: 1.9rem
    }
}

.profile_data {
    margin-top: 4rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .profile_data {
        margin-top:4rem
    }
}

.profile_data_item {
    border: 1px solid var(--color-border-base);
    border-width: 1px 0 0;
    padding: 1rem 0;
    font-size: 1.4rem;
    line-height: 1.6;
    display: flex
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .profile_data_item {
        padding:.8rem 0 2.4rem;
        font-size: 1.4rem;
        display: block
    }
}

.profile_data_item:last-child {
    border-bottom-width: 1px
}

.profile_data_item_ttl {
    width: calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*1 + 4rem*(1 - 1) + 0px + var(--column-gap));
    color: var(--color-text-base--)
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .profile_data_item_ttl {
        width:100%;
        margin-bottom: .4rem;
        font-size: 1.2rem
    }
}

.profile_data_item_body {
    flex: 1
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .profile_data_item_body {
        opacity:1
    }
}

.bio {
    flex-direction: column;
    gap: 2.4rem;
    padding-bottom: 4rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .bio {
        padding-bottom:3.2rem
    }
}

.bio_list {
    gap: var(--column-gap);
    grid-template-columns: 1fr 1fr;
    display: grid
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .bio_list {
        grid-template-columns:1fr;
        gap: 2.4rem;
        margin-top: 2.8rem
    }
}

.bio_item {
    opacity: 1
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .bio_item {
        opacity:1
    }
}

.bio_item_name {
    font-size: 1.7rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .bio_item_name {
        font-size:1.6rem
    }
}

.bio_item_pos {
    margin-top: .2rem;
    font-size: 1.2rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .bio_item_pos {
        margin-top:.4rem
    }
}

.bio_item_content {
    margin-top: 1.6rem;
    line-height: 1.75
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .bio_item_content {
        margin-top:1.4rem
    }
}

.contact {
    z-index: 2;
    clip-path: inset(0);
    position: relative
}

.contact_inner {
    width: calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*12 + 4rem*(12 - 1) + 0px);
    border: 3px solid var(--color-border-black);
    border-radius: 3.2rem;
    margin: 0 auto;
    padding: 12.8rem 8rem 9.6rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_inner {
        border-width:2px;
        border-radius: .8rem;
        width: calc(100vw - 4.8rem);
        padding: 4.6rem 2.8rem 3rem
    }
}

.contact_head {
    opacity: 1;
    border-bottom: 1px solid var(--color-border-base);
    padding-bottom: 3.2rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_head {
        padding-bottom:1.6rem
    }
}

.contact_ttl_en {
    margin-bottom: 1.2rem;
    font-size: 1.4rem;
    display: block
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_ttl_en {
        margin-bottom:.8rem;
        font-size: 1.1rem
    }
}

.contact_ttl_txt {
    font-feature-settings: "palt";
    letter-spacing: .1em;
    margin-left: -.05em;
    font-size: 3.2rem;
    line-height: 1.5;
    display: block
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_ttl_txt {
        font-size:2.2rem
    }
}

.contact_ttl_pen .u-pen_svg {
    z-index: 10;
    pointer-events: none;
    width: 110%;
    height: 130%;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%)
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .contact_body {
        gap:var(--column-gap);
        margin-top: 5.6rem;
        display: flex
    }
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_body {
        margin-top:2.8rem;
        display: block
    }
}

.contact_txt {
    flex: 1
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_txt {
        opacity:1
    }
}

.contact_lead {
    line-height: 1.8
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_lead {
        opacity:1
    }
}

.contact_legend {
    margin-top: 1.2rem;
    font-size: 1.2rem;
    display: block
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_legend {
        margin-top:.6rem;
        font-size: 1rem
    }
}

.contact_note {
    color: var(--color-text-base--);
    margin-top: 2.4rem;
    font-size: 1.2rem;
    line-height: 1.8;
    display: block
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_note {
        margin-top:1.6rem;
        font-size: 1.1rem
    }
}

.contact_require {
    color: var(--color-form-require);
    font-size: 120%;
    line-height: 1
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_require {
        opacity:1
    }
}

.contact_form {
    width: calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*6.3 + 4rem*(6.3 - 1) + 0px)
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_form {
        width:100%
    }
}

.contact_form_list {
    flex-direction: column;
    gap: 2.2rem;
    display: flex
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_form_list {
        gap:0;
        margin-top: 3.2rem
    }
}

@media screen and (orientation: landscape) and (max-width:767px),screen and (min-width:768px) {
    .contact_form_row {
        gap:1.2rem;
        display: flex
    }
}

.contact_form_item {
    width: 100%
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_form_item {
        margin-bottom:1.6rem
    }
}

.contact_form_item_ttl {
    margin-bottom: .8rem;
    font-size: 1.3rem;
    line-height: 1.4
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_form_item_ttl {
        margin-bottom:.6rem;
        font-size: 1.2rem
    }
}

.contact_form_item_ttl .contact_require {
    margin-left: .15em
}

.contact_form_item_body .wpcf7-form-control-wrap {
    display: block
}

.contact_form_item_body input,.contact_form_item_body textarea,.contact_form_item_body select {
    background: var(--color-bg-gray);
    border: 1px solid #0000;
    border-radius: .4rem;
    width: 100%;
    padding: .6rem 1.2rem;
    font-size: 1.4rem;
    display: block
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_form_item_body input,.contact_form_item_body textarea,.contact_form_item_body select {
        padding:.4rem .8rem;
        font-size: 1.6rem
    }
}

.contact_form_item_body input:focus,.contact_form_item_body textarea:focus,.contact_form_item_body select:focus {
    background: var(--color-bg-base);
    border-color: var(--color-border-black)
}

.contact_form_item_body input {
    opacity: 1
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_form_item_body input {
        opacity:1
    }

    .contact_form_item_body textarea {
        height: 20rem
    }
}

.contact_form_btnArea {
    margin-top: 3.2rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_form_btnArea {
        margin-top:1rem
    }
}

.contact_form_btn {
    width: 100%
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_form_btn {
        opacity:1
    }
}

.contact_form_btn_target {
    text-align: center;
    color: var(--color-text-nega);
    background: var(--color-bg-cta);
    border-radius: .6rem;
    padding-bottom: 2px
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_form_btn_target {
        font-size:1.4rem
    }
}

@media (hover: hover) and (pointer:fine) {
    .contact_form_btn_target:hover {
        background-color:var(--color-bg-cta-hover)
    }
}

.contact_form_btn_inner {
    border-bottom: 3px solid #fff;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    width: fit-content;
    margin: 0 auto;
    padding: 4rem 0;
    display: flex
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_form_btn_inner {
        border-bottom-width:2px;
        padding: 2rem 0
    }
}

.contact_form_btn_txt {
    opacity: 1
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_form_btn_txt {
        opacity:1
    }
}

.contact_form_btn_icon {
    display: inline-flex
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_form_btn_icon {
        opacity:1
    }
}

.contact .wpcf7-not-valid-tip {
    color: var(--color-form-require);
    font-size: 1.4rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact .wpcf7-not-valid-tip {
        font-size:1.3rem
    }
}

.contact .wpcf7 form .wpcf7-response-output {
    text-align: center;
    width: 100%;
    margin: 2.4rem 0 0;
    font-size: 1.5rem;
    line-height: 1.5
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .contact .wpcf7 form .wpcf7-response-output {
        margin-top:2rem;
        padding: 1.2rem;
        font-size: 1.4rem
    }
}
.contact .wpcf7 form .wpcf7-spinner {
    display: none;
}
.contact_rct {
    color: var(--color-text-base--);
    margin-top: 3.2rem;
    font-size: 1.1rem;
    line-height: 1.5;
    display: block;
}
@media screen and (orientation: portrait) and (max-width:767px) {
    .contact_rct {
        font-size: 1.0rem;
    }
}
.contact_rct a{
    text-decoration: underline;
    text-decoration-color: #bfbfbf;
    text-decoration-thickness: 1px;
}
.contact_rct a:hover{
    text-decoration: none;
}
.grecaptcha-badge { visibility: hidden; }

.footer {
    width: calc((100vw - var(--scrollbar) - 11.2rem - 11.2rem - 4rem*(12 - 1))/12*12 + 4rem*(12 - 1) + 0px);
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    margin: 0 auto;
    padding: 6.4rem 0 2.4rem;
    display: flex
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .footer {
        width:calc(100vw - 4.8rem);
        padding: 4rem 0 1.4rem
    }
}

.footer_copyright {
    font-size: 1.6rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    .footer_copyright {
        font-size:1.4rem
    }
}

:root {
    --bp-sp-num: 767;
    --bp-sp: calc(var(--bp-sp-num)*1px);
    --featureItemH: 29.4rem;
    --color-accent: #efd44b;
    --color-text-base: #000;
    --color-text-base-: #000c;
    --color-text-base--: #00000080;
    --color-text-nega: #fff;
    --color-text-nega-: #fffc;
    --color-text-nega--: #ffffff80;
    --color-form-require: #ce0909;
    --color-form-error: #ce0909;
    --color-border-base: #ececec;
    --color-border-black: #323232;
    --color-border-nega: #ffffff26;
    --color-border-white: #fff;
    --color-bg-base: #fff;
    --color-bg-gray: #ececec;
    --color-bg-nega: #616161;
    --color-bg-cta: #111;
    --color-bg-cta-hover: #464646;
    --fontSize-base: 1.7rem;
    --fontSize-en: 104%;
    --lh-base: 1.9;
    --ls-base: 0em;
    --ts-ease-base: cubic-bezier(.33,.12,.2,1);
    --ts-duration-base: .1s;
    --headerHeight: 8rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    :root {
        --fontSize-base:1.5rem;
        --featureItemH: 20rem;
        --headerHeight: 5.6rem
    }
}

:root {
    --column-margin-left: 11.2rem;
    --column-margin-right: 11.2rem;
    --column-outer-left: 4rem;
    --column-outer-right: 4rem;
    --column-gap: 4rem
}

@media screen and (orientation: portrait) and (max-width:767px) {
    :root {
        --column-margin-left:2.4rem;
        --column-margin-right: 2.4rem;
        --column-outer-left: 1.2rem;
        --column-outer-right: 1.2rem;
        --column-gap: 1.6rem
    }
}

._loading .wrapper {
    opacity: 0
}

._loaded .wrapper {
    opacity: 1
}
