@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Oranienbaum&display=swap");
/* ------------------------------------------------
 vars
------------------------------------------------ */
:root {
  --scrollbar: 18px; /* スクロールバー幅 */
  --nvw: 1vw; /* スクロールバー幅を除いたvw */
  --easeOutCubic: cubic-bezier(0.33, 1, 0.68, 1);
}

/* ------------------------------------------------
 reset
------------------------------------------------ */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

body, h1, h2, h3, h4, p,
figure, blockquote, dl, dd {
  font-size: 1em;
  margin: 0;
}

ul, ol {
  list-style: none;
}

picture {
  max-width: 100%;
  display: block;
}

input, button,
textarea, select {
  font: inherit;
}

textarea:not([rows]) {
  min-height: 10em;
}

:target {
  scroll-margin-block: 5ex;
}

img {
  display: block;
}

/* -------------------------------------------------------
 base
---------------------------------------------------------- */
html {
  scroll-behavior: smooth;
  position: relative;
}

body {
  color: #7d839b;
  font-family: "dnp-shuei-mincho-pr6", sans-serif;
  line-height: 1.8;
  letter-spacing: 0.05em;
  background-color: #000;
  -webkit-text-size-adjust: 100%;
  font-feature-settings: "palt";
  position: relative;
  background: url(../img/common/bg.webp) 50% 50%;
  background-size: cover;
}

.ff_en {
  font-family: "Oranienbaum", serif;
  font-style: italic;
  font-weight: normal;
}

a {
  color: #7d839b;
  text-decoration: none;
}
@media screen and (min-width: 768.1px) {
  a:hover {
    text-decoration: underline;
  }
}

img {
  width: 100%;
  height: auto;
}

sup {
  font-size: 0.5em;
}

.list {
  margin: 0;
  padding: 0;
}

@media screen and (min-width: 768.1px) {
  .sp_show {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  html {
    height: 100%;
  }
  body {
    letter-spacing: 0.03em;
    height: 100%;
  }
  .pc_show {
    display: none;
  }
  sup {
    font-size: 8px;
  }
}
/* ------------------------------------------------
 font-size
------------------------------------------------ */
body {
  font-size: min(1.320754717vw, 14px);
}
@media screen and (max-width: 768px) {
  body {
    font-size: 2.9333333333vw;
  }
}
@media screen and (min-width: 430.1px) and (max-width: 768px) {
  body {
    font-size: 1.8229166667vw;
  }
}

/* ------------------------------------------------
 utility
------------------------------------------------ */
.note {
  font-size: 0.8571428571em;
}
.note > li {
  list-style-type: none;
  text-indent: -1em;
  padding-left: 1em;
}

/*
 *  Remodal - v1.1.1
 *  Responsive, lightweight, fast, synchronized with CSS animations, fully customizable modal window plugin with declarative configuration and hash tracking.
 *  http://vodkabears.github.io/remodal/
 *
 *  Made by Ilya Makarov
 *  Under MIT License
 */
/* ==========================================================================
   Remodal's necessary styles
   ========================================================================== */
.remodal,
[data-remodal-id] {
  display: none;
}

.remodal-overlay {
  position: fixed;
  z-index: 999;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: none;
}

.remodal-wrapper {
  position: fixed;
  z-index: 1000;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: none;
  overflow: hidden;
  text-align: center;
}

.remodal-wrapper:after {
  content: "";
  width: 0.05em;
  margin-left: -0.05em;
  height: 100%;
  display: inline-block;
}

.remodal-overlay,
.remodal-wrapper {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.remodal {
  position: relative;
  outline: none;
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
          text-size-adjust: 100%;
}

.remodal-is-initialized {
  display: inline-block;
}

/* ==========================================================================
Remodal's default mobile first theme
========================================================================== */
.remodal-bg.remodal-is-opening, .remodal-bg.remodal-is-opened {
  filter: blur(3px);
}

.remodal-overlay.remodal-is-opening, .remodal-overlay.remodal-is-closing {
  animation-duration: 0.3s;
  animation-fill-mode: forwards;
}
.remodal-overlay.remodal-is-opening {
  animation-name: remodal-overlay-opening-keyframes;
}
.remodal-overlay.remodal-is-closing {
  animation-name: remodal-overlay-closing-keyframes;
}

.remodal {
  box-sizing: border-box;
  width: 100%;
}
.remodal.remodal-is-opening, .remodal.remodal-is-closing {
  animation-duration: 0.3s;
  animation-fill-mode: forwards;
}
.remodal.remodal-is-opening {
  animation-name: remodal-opening-keyframes;
}
.remodal.remodal-is-closing {
  animation-name: remodal-closing-keyframes;
}

.remodal,
.remodal-wrapper:after {
  vertical-align: middle;
}

.remodal-confirm::-moz-focus-inner,
.remodal-cancel::-moz-focus-inner,
.remodal-close::-moz-focus-inner {
  padding: 0;
  border: 0;
}

/* Keyframes
   ========================================================================== */
@keyframes remodal-opening-keyframes {
  from {
    opacity: 0;
  }
  to {
    transform: none;
    opacity: 1;
  }
}
@keyframes remodal-closing-keyframes {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes remodal-overlay-opening-keyframes {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes remodal-overlay-closing-keyframes {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
/* ------------------------------------------------
 Theme
------------------------------------------------ */
body {
  padding-right: 0 !important;
}

.remodal.remodal-is-opening, .remodal.remodal-is-closing {
  animation-duration: 0.6s;
  animation-timing-function: ease;
}
.remodal-overlay {
  background-color: rgba(204, 204, 204, 0.9);
  cursor: pointer;
  display: none;
  z-index: 0;
}
.remodal-wrapper {
  height: 100%;
  z-index: 10;
}
.remodal .btn_close {
  font-size: 1em;
  border-width: 0;
  background-color: transparent;
  margin: 0;
  padding: 0;
  cursor: pointer;
}

@media screen and (min-width: 1530px) {
  .remodal-overlay {
    display: none !important;
  }
  .remodal-wrapper {
    width: 68.5714285714em;
    left: unset;
  }
}
@media screen and (min-width: 1920.1px) {
  .remodal-wrapper {
    width: 50%;
  }
}
@media screen and (max-width: 768px) {
  html.remodal-is-locked {
    overflow: hidden;
    touch-action: none;
  }
}
/* ------------------------------------------------
 remodal
------------------------------------------------ */
.section.remodal {
  background: url(../img/common/bg2.webp) 0 0;
  background-size: contain;
  height: 100%;
}
.section.remodal::after {
  content: "";
  background: url(../img/common/menu_light.png) no-repeat;
  background-size: contain;
  width: 81.4285714286em;
  height: 77.1428571429em;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 0;
}
.section.remodal::before {
  border-top: 1px solid #f00;
  width: 100vw;
  position: absolute;
  left: 0;
  top: 33.3333%;
  top: 50%;
  z-index: 1000;
}
.section.remodal > .inner {
  background: url(../img/common/menu_shadow.png) 100% 100% no-repeat;
  background-size: 48.7857142857em auto;
  padding: 0;
  height: 100%;
  display: flex;
  flex-direction: row-reverse;
}
.section.remodal > .inner > .sbody {
  width: calc(100% - 4.2857142857em);
  height: 100%;
  box-sizing: border-box;
}
.section.remodal .works_content img {
  visibility: hidden;
  transition-duration: 0.4s;
  transition-property: visibility;
  transition-timing-function: ease;
}
.section.remodal .works_content.swiper-slide-prev img,
.section.remodal .works_content.swiper-slide-active img,
.section.remodal .works_content.swiper-slide-next img {
  visibility: visible;
}
.section.remodal .works_content > .wrapper {
  padding: 6.4285714286em 2.8571428571em;
  height: 100vh;
  overscroll-behavior-y: contain;
  overflow-y: auto;
}
.section.remodal .works_content > .wrapper::-webkit-scrollbar {
  display: none;
}
.section.remodal .works_content .sheader {
  font-style: italic;
  text-align: left;
  line-height: 1.4;
  margin-bottom: 1.7857142857em;
}
.section.remodal .works_content .sheader .client {
  font-size: 1.2857142857em;
}
.section.remodal .works_content .sheader .title {
  font-size: 2.5714285714em;
  font-weight: normal;
  margin-top: 0.0555555556em;
}
.section.remodal .works_content .sheader .link {
  font-size: 0.8571428571em;
  margin-top: 1.6666666667em;
}
.section.remodal .works_content .sheader .link a {
  text-decoration: underline;
}
.section.remodal .works_content .sheader .link a:hover {
  text-decoration: none;
}
.section.remodal .works_content .sheader .summary {
  font-style: normal;
  margin-top: 2.5em;
  line-height: 1.6;
}
.section.remodal .works_content .sheader .summary p + p {
  margin-top: 1em;
}
.section.remodal .works_content .sheader .nav {
  margin-top: 2.2727272727em;
}
.section.remodal .works_content .nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.section.remodal .works_content .nav > * {
  font-size: 0.8571428571em;
  font-style: italic;
  line-height: 1;
}
.section.remodal .works_content .nav .ctrl {
  color: #7d839b;
  border-width: 0;
  background-color: transparent;
  padding: 0.7142857143em 0;
  display: flex;
  align-items: center;
  -moz-column-gap: 0.8571428571em;
       column-gap: 0.8571428571em;
  cursor: pointer;
}
.section.remodal .works_content .nav .ctrl:hover {
  opacity: 0.8;
}
.section.remodal .works_content .nav .ctrl::before {
  content: "";
  border-bottom: 1px solid #7d839b;
  background-size: contain;
  margin-top: 0.1428571429em;
  width: 2.1428571429em;
  height: 0.3571428571em;
  display: block;
}
.section.remodal .works_content .nav .ctrl.prev::before {
  border-left: 1px solid #7d839b;
  transform: skewX(-60deg) translateX(0.5714285714em);
}
.section.remodal .works_content .nav .ctrl.next {
  flex-direction: row-reverse;
}
.section.remodal .works_content .nav .ctrl.next::before {
  border-right: 1px solid #7d839b;
  transform: skewX(60deg) translateX(-0.5714285714em);
}
.section.remodal .works_content aside {
  margin-top: 5em;
}
.section.remodal .btn_close {
  background: url(../img/common/btn_modal_close.svg) no-repeat;
  background-size: contain;
  width: 3.2857142857em;
  height: 2.6428571429em;
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  position: fixed;
  right: 2.8571428571em;
  top: 2.8571428571em;
  z-index: 2;
}
@media screen and (min-width: 1530px) {
  .section.remodal > .inner > .sbody {
    width: 100%;
  }
  .section.remodal > .inner .works_content > .wrapper::-webkit-scrollbar {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  .section.remodal > .inner {
    width: auto;
  }
  .section.remodal .works_content > .wrapper {
    height: 100dvh;
  }
}
@media screen and (max-width: 430px) {
  .section.remodal {
    background-size: 72.7272727273em auto;
  }
  .section.remodal::after {
    background-image: url(../img/common/menu_light-sp.png);
    width: 100%;
    height: 100%;
  }
  .section.remodal > .inner {
    background-size: 27.5909090909em auto;
    width: auto;
  }
  .section.remodal > .inner > .sbody {
    width: calc(100% - 4.0909090909em);
  }
  .section.remodal .works_content > .wrapper {
    padding: 5.4545454545em 0;
  }
  .section.remodal .works_content .sheader {
    margin-bottom: 1.3636363636em;
  }
  .section.remodal .works_content .sheader .client, .section.remodal .works_content .sheader .title, .section.remodal .works_content .sheader .link, .section.remodal .works_content .sheader .summary {
    padding-right: 1.8181818182em;
  }
  .section.remodal .works_content .sheader .client {
    font-size: 1.1818181818em;
  }
  .section.remodal .works_content .sheader .title {
    font-size: 2em;
    letter-spacing: 0.05em;
    margin-top: 0.2727272727em;
  }
  .section.remodal .works_content .sheader .link {
    font-size: 0.9090909091em;
    margin-top: 1em;
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .section.remodal .works_content .sheader .summary {
    margin-top: 1.5909090909em;
  }
  .section.remodal .works_content .nav {
    margin-top: 2.7272727273em;
  }
  .section.remodal .works_content .nav > * {
    font-size: 0.9090909091em;
  }
  .section.remodal .works_content .nav .ctrl {
    padding: 0.4545454545em 0;
    -moz-column-gap: 0.9090909091em;
         column-gap: 0.9090909091em;
  }
  .section.remodal .works_content .nav .ctrl:hover {
    opacity: 1;
  }
  .section.remodal .works_content .nav .ctrl::before {
    width: 1.3636363636em;
    height: 0.2272727273em;
  }
  .section.remodal .works_content .nav .ctrl.prev::before {
    transform: skewX(-60deg) translateX(0.3636363636em);
  }
  .section.remodal .works_content .nav .ctrl.next::before {
    transform: skewX(60deg) translateX(-0.3636363636em);
  }
  .section.remodal .works_content aside {
    margin-top: 2.7272727273em;
  }
  .section.remodal .btn_close {
    width: 4.0909090909em;
    height: 3.1818181818em;
    right: 0;
    top: 0;
  }
}

/* ----------------------------
 画像size
------------------------------*/
.margin_bottom4{
  margin-bottom: 4em;
}
.margin_bottom2{
  margin-bottom: 2em;
}
@media screen and (min-width: 768.1px) {
  .remodal .works_content .rayout {
    display: grid;
    justify-content: center;
    gap: 1.4285714286em;
  }
  .remodal .works_content .rayout.gap2em {
    gap: 2em;
  }
  .remodal .works_content .rayout.gap3em {
    gap: 3em;
  }

  .remodal .works_content .rayout.stick {
    /* 分割カンプ以上を0マージンで連結 */
    gap: 0em;
  }
  .remodal .works_content .rayout.columns_2 {
    /* 横2列x */
    display: flex;
  }
  .remodal .works_content .rayout.grid_2 {
    grid-template-columns: repeat(2, auto);
  }
  .remodal .works_content .rayout.grid_2 .grit_item.span2 {
    grid-column: span 2;
  }

  
  .remodal .works_content .rayout .size_pc_small {
    /* 幅600px */
    flex-basis: 70%;
  }
  .remodal .works_content .rayout .size_sp_small {
    /* 幅260px */
    flex-basis: 30%;
  }
  .remodal .works_content .rayout.columns_3 {
    /* 横3列 */
    display: grid;
    justify-content: center;
    gap: 1.4285714286em;
    grid-template-columns: repeat(3, auto);
  }
  .remodal .works_content .rayout .size_sp_large {
    /* 幅375px */
    justify-content: center;
    width: 26.7857142857em;
  }
  .remodal .works_content .rayout .size_banner {
    /* 幅280px */
    width: 20em;
  }
  .remodal .works_content .rayout .size_banner400 {
    width: 24em;
  }
  .remodal .works_content .rayout .size_banner450 {
    width: 26em;
  }
  .remodal .works_content .rayout .size_banner500 {
    width: 30em;
  }
  .remodal .works_content .rayout .size_banner600 {
    width: 500px;
  }
  .size_62 {
    width: 62em;
  }

  .remodal .works_content .rayout .size_dtp_horizontal {
    /* dtp 横長 */
    justify-content: center;
    width: 100%;
  }
  .remodal .works_content .rayout .size_dtp_vertical {
    /* dtp 縦長 */
    justify-content: center;
    width: 42.8571428571em;
  }
}
@media screen and (max-width: 768px) {
  .remodal .works_content .rayout {
    display: grid;
    justify-content: center;
    gap: 1.4285714286em;
  }
  .remodal .works_content .rayout {
    row-gap: 2.7272727273em;
  }
  .remodal .works_content .rayout.stick {
    /* 2カンプ以上を0マージンで連結 */
    gap: 0em;
  }
  .remodal .works_content .rayout .img {
    width: 100%;
  }
}
@media screen and (min-width: 430.1px) and (max-width: 768px) {
  .remodal .works_content .rayout {
    display: grid;
    justify-content: center;
    gap: 1.4285714286em;
  }
  .remodal .works_content .rayout .size_sp_large {
    width: 26.7857142857em;
  }
  .remodal .works_content .rayout .size_pc_small {
    width: 42.8571428571em;
  }
  .remodal .works_content .rayout .size_sp_small {
    width:336px ;
  }
  .remodal .works_content .rayout .size_banner {
    /* 幅280px */
    max-width: 300px;
  }
  .remodal .works_content .rayout.columns_3 {
    /* 横2列 */
    display: grid;
    justify-content: center;
    gap: 1.4285714286em;
    grid-template-columns: repeat(2, auto);
  }
}

/* ----------------------------
 modal_works_index
------------------------------*/
#modal_works_index {
  width: 4.2857142857em;
  height: 100vh;
  transition: 0.2s ease;
  position: relative;
  overscroll-behavior-y: contain;
  overflow-y: auto;
  z-index: 1;
}
#modal_works_index::-webkit-scrollbar {
  display: none;
}
#modal_works_index .list {
  padding-top: 50vh;
  padding-bottom: 25vh;
  display: flex;
  flex-direction: column;
  row-gap: 0.3571428571em;
  box-sizing: border-box;
}
#modal_works_index .list li {
  transition: padding 0.2s ease;
}
#modal_works_index .list li.current {
  padding: 3.2142857143em 0;
}
@media screen and (min-width: 1530px) {
  #modal_works_index {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  #modal_works_index {
    height: 100dvh;
  }
  #modal_works_index .list {
    padding: 50dvh 1.3em 25dvh 0;
    row-gap: 0.4545454545em;
  }
  #modal_works_index .list li.current {
    padding: 2em 0;
  }
}

/* ------------------------------------------------
 basic_btn
------------------------------------------------ */
button.basic_btn {
  font-size: 1em;
  border-width: 0;
  background-color: transparent;
  cursor: pointer;
}
button.basic_btn[disabled] {
  cursor: default;
}

.basic_btn {
  text-decoration: none !important;
  line-height: 1;
  margin: 0;
  padding: 0;
  display: inline-block;
  vertical-align: top;
}

/* ------------------------------------------------
  contents
------------------------------------------------ */
#contents > * {
  position: relative;
}
#contents #index {
  overflow-y: hidden;
}
@media screen and (min-width: 1530px) {
  #contents {
    width: calc(100% - 68.5714285714em - var(--scrollbar));
  }
}
@media screen and (min-width: 1920.1px) {
  #contents {
    width: 50%;
  }
}

/* ------------------------------------------------
 rayout etc
------------------------------------------------ */
.section > .inner {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  box-sizing: border-box;
}
@media screen and (min-width: 768.1px) {
  .section > .inner {
    padding-left: 2.8571428571em;
    padding-right: 2.8571428571em;
  }
}
@media screen and (max-width: 768px) {
  .section > .inner {
    width: 31.3636363636em;
  }
}
@media screen and (min-width: 430.1px) and (max-width: 768px) {
  .section > .inner {
    width: 49.1428571429em;
  }
}

/* ------------------------------------------------
 header
------------------------------------------------ */
#header {
  height: 30.7142857143em;
  width: 100%;
}
#header > .inner {
  padding: 6.4285714286em 2.8571428571em 1.7857142857em;
  box-sizing: border-box;
}
#header .title {
  width: 38.2142857143em;
}
#header .name {
  margin-top: 1.2857142857em;
  width: 17.5714285714em;
}
#header .txt {
  font-size: 1.1428571429em;
  line-height: 1;
}
#header .profile {
  margin-top: 2.1875em;
  margin-bottom: 0.5em;
}
#header .link a::after {
  content: "";
  background: url(../img/common/mail.png) no-repeat;
  background-size: contain;
  margin-left: 0.375em;
  width: 1.4375em;
  aspect-ratio: 38/23;
  display: inline-block;
  vertical-align: middle;
}
@media screen and (min-width: 1530px) {
  #header {
    min-height: 30em;
    height: auto;
  }
  #header .title {
    width: 31.7647058824vw;
  }
  #header .name {
    width: 15.0326797386vw;
  }
}

@media screen and (max-width: 768px) {
  #header {
    background: url(../img/common/bg.webp) 50% 50%;
    background-size: 72.7272727273em auto;
    height: auto;
    height: 25em;
  }
  #header > .inner {
    padding: 6.4285714286em 0.8571428571em 1.7857142857em;
}
}

@media screen and (min-width: 430.1px) and (max-width: 768px) {
  #header {
    background-size: 114.2857142857em auto;
    height: 30.6428571429em;
  }
}

@media screen and (max-width: 430px) {
  #header > .inner {
   padding: 5.4545454545em 0.2571428571em 1.1363636364em;
  }
  #header .title {
    width: 28.9090909091em;
  }
  #header .name {
    margin-top: 0.8181818182em;
    width: 13.2727272727em;
  }
  #header .txt {
    font-size: 1.0909090909em;
  }
  #header .profile {
    margin-top: 1.6666666667em;
    margin-bottom: 0.5em;
  }
  #header .link a::after {
    margin-left: 0.4166666667em;
    width: 1.5833333333em;
  }
}

/* ----------------------------
 index header
------------------------------*/
#header .nav {
  font-style: italic;
  line-height: 1;
  padding-top: 2px;
  margin-top: 6.4285714286em;
  width: 100%;
  display: flex;
  align-items: center;
  -moz-column-gap: 0.7142857143em;
       column-gap: 0.7142857143em;
}
#header .nav .title {
  flex-grow: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  -moz-column-gap: 0.7142857143em;
       column-gap: 0.7142857143em;
}
#header .nav .title .en {
  font-size: 1.4285714286em;
  font-weight: normal;
}
#header .nav .title .ja {
  font-size: 0.8571428571em;
  font-weight: 500;
}
#header .nav .title::before, #header .nav .title::after {
  content: "";
  border-bottom: 1px solid #bfc2d0;
  height: 0.3571428571em;
  display: block;
  flex-grow: 1;
}
#header .nav .line {
  border-top: 1px solid #bfc2d0;
  width: auto;
  height: 1px;
  display: block;
  flex-grow: 1;
}
#header .nav .link {
  display: flex;
  align-items: center;
  -moz-column-gap: 1.1428571429em;
       column-gap: 1.1428571429em;
}
#header .nav .link .txt {
  font-size: 0.8571428571em;
  white-space: nowrap;
}
#header .nav .link.prev::before, #header .nav .link.next::after {
  content: "";
  border-bottom: 1px solid #bfc2d0;
  background-size: contain;
  width: 2.1428571429em;
  height: 0.3571428571em;
  display: block;
}
#header .nav .link.prev::before {
  border-left: 1px solid #7d839b;
  transform: skewX(-60deg) translateX(0.5714285714em);
}
#header .nav .link.next::after {
  border-right: 1px solid #7d839b;
  transform: skewX(60deg) translateX(-0.5714285714em);
}
@media screen and (max-width: 430px) {
  #header .nav {
    margin-top: 5.4545454545em;
    -moz-column-gap: 0.7272727273em;
         column-gap: 0.7272727273em;
  }
  #header .nav .title {
    -moz-column-gap: 0.7272727273em;
         column-gap: 0.7272727273em;
  }
  #header .nav .title .en {
    font-size: 1.4545454545em;
  }
  #header .nav .title .ja {
    font-size: 0.8181818182em;
  }
  #header .nav .title::before, #header .nav .title::after {
    height: 0.2727272727em;
  }
  #header .nav .link .txt {
    font-size: 1em;
    border-radius: 100%;
    background-color: #7d839b;
    margin-top: 0.1818181818em;
    width: 0.3636363636em;
    height: 0.3636363636em;
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
    display: block;
  }
  #header .nav .link.prev::before, #header .nav .link.next::after {
    width: 1.0909090909em;
    height: 0.2727272727em;
  }
  #header .nav .link.prev::before {
    transform: skewX(-60deg) translateX(0.2727272727em);
  }
  #header .nav .link.next::after {
    transform: skewX(60deg) translateX(-0.2727272727em);
  }
}

/* ----------------------------
 header 張り付き
 and  メニュー展開時（SPのみ）
------------------------------*/
#header .title,
#header .name {
  transition: 0.2s ease;
}
#header .profile,
#header .link .line {
  transition: 0.1s ease;
}
#header.sticky {
  position: sticky;
  left: 0;
  top: 0;
}
#header.sticky > .inner {
  padding-top: 2.8571428571em;
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
}
#header.sticky .title {
  width: 13.5714285714em;
}
#header.sticky .name {
  margin-top: 0;
  margin-left: 1.0714285714em;
  width: 6.5714285714em;
}
#header.sticky .profile,
#header.sticky .link .line {
  margin: 0;
  width: 0;
  display: none;
  opacity: 0;
}
#header.sticky .link {
  margin-left: auto;
}
@media screen and (max-width: 768px) {
  #header {
    left: 0;
    top: 0;
    z-index: 2;
  }
}
@media screen and (max-width: 430px) {
  #header {
    left: 0;
    top: 0;
    z-index: 2;
  }
  #header.sticky {
    height: 10.7272727273em;
    position: fixed;
  }
  #header.sticky > .inner {
    padding-top: 1.8181818182em;
  }
  #header.sticky .title,
  #header.sticky .name {
    transition: none;
  }
  #header.sticky .title {
    width: 12.8181818182em;
  }
  #header.sticky .name {
    margin-left: 0.9090909091em;
    width: 6.5454545455em;
  }
  #header.sticky .profile,
  #header.sticky .link .line {
    margin: 0;
    width: 0;
    display: none;
    opacity: 0;
  }
  #header.sticky .link {
    margin-left: auto;
  }
  #header.sticky .nav {
    margin-top: 4.5454545455em;
  }
}
@media screen and (min-width: 430.1px) and (max-width: 768px) {
  #header.sticky, #header.menuopen {
    height: 14.2857142857em;
  }
}

/* ----------------------------
 #menu_overlay
------------------------------*/
#menu_overlay {
  background-color: rgba(0, 0, 0, 0.5);
  width: 100vw;
  height: 100vh;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}

/* ------------------------------------------------
 btn_menu
------------------------------------------------ */
.btn_menu {
  background-repeat: no-repeat;
  background-size: contain;
  width: 6em;
  height: 4.8571428571em;
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  position: fixed;
  right: 0;
  bottom: 0;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .btn_menu {
    width: 5.8181818182em;
    height: 4.6363636364em;
  }
}

#btn_menu {
  background-image: url(../img/common/btn_menu.svg);
  z-index: 11;
}

#btn_menu_close {
  background-image: url(../img/common/btn_menu_close.svg);
  z-index: 3;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}
#btn_menu_close.hide {
  opacity: 0;
  visibility: hidden;
}

/* ------------------------------------------------
 menu
------------------------------------------------ */
#menu {
  text-align: left;
  overscroll-behavior: contain;
  background: url(../img/common/bg2.webp) 0 0 no-repeat;
  background-size: cover;
  width: 68.5714285714em;
  height: 100dvh;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 20;
  opacity: 0;
  transform: translateX(100%);
  transition: opacity 0.4s var(--easeOutCubic), transform 0.4s var(--easeOutCubic);
  box-sizing: border-box;
}
#menu::before, #menu::after {
  content: "";
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  pointer-events: none;
}
#menu::before {
  background-image: url(../img/common/menu_shadow.png);
  width: 48.7857142857em;
  aspect-ratio: 683/578;
  right: 0;
  bottom: 0;
}
#menu::after {
  background-image: url(../img/common/menu_light.png);
  width: 81.4285714286em;
  aspect-ratio: 1140/1080;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}
#menu > .inner {
  padding-top: 9.375%;
  padding-bottom: 9.375%;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  overscroll-behavior-y: contain;
  overflow-y: auto;
}
#menu > .inner::-webkit-scrollbar {
  display: none;
}
#menu .menu {
  overflow-y: auto;
  overflow-x: hidden;
  width: 100%;
}
#menu .menu li {
  line-height: 1;
  position: relative;
}
#menu .menu li + li {
  margin-top: 2.6041666667%;
}
#menu .menu li a {
  width: 100%;
  display: block;
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
}
#menu .menu li a::before, #menu .menu li a::after,
#menu .menu li a .txt::before,
#menu .menu li a .txt::after {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
#menu .menu li a::after {
  background-color: #7d839b;
  height: 1px;
  top: 54% !important;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: transform 0.4s ease;
}
#menu .menu li a .txt {
  display: block;
  padding-top: 15.625%;
  width: 100%;
  height: 0;
  position: relative;
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
}
#menu .menu li a .txt::before, #menu .menu li a .txt::after {
  background-position: 0 0;
  background-repeat: no-repeat;
  background-size: contain;
}
#menu .menu li a .txt::after {
  opacity: 0;
  transition: opacity 0.2s ease;
}
#menu .menu li.current a::after,
#menu .menu li a:hover::after {
  transform: scale(1, 1);
  transform-origin: right top;
}
#menu .menu li.current a .txt::after,
#menu .menu li a:hover .txt::after {
  opacity: 1;
}
#menu .menu li.lp a .txt {
  width: 73.2291666667%;
  left: 4.1666666667%;
}
#menu .menu li.lp a .txt::before {
  background-image: url(../img/common/menu_lp.png);
}
#menu .menu li.lp a .txt::after {
  background-image: url(../img/common/menu_lp_f2.png);
}
#menu .menu li.web a .txt {
  width: 59.6875%;
  left: 26.0416666667%;
}
#menu .menu li.web a .txt::before {
  background-image: url(../img/common/menu_web.png);
}
#menu .menu li.web a .txt::after {
  background-image: url(../img/common/menu_web_f2.png);
}
#menu .menu li.banner a .txt {
  width: 52.0833333333%;
  left: 43.9583333333%;
}
#menu .menu li.banner a .txt::before {
  background-image: url(../img/common/menu_banner.png);
}
#menu .menu li.banner a .txt::after {
  background-image: url(../img/common/menu_banner_f2.png);
}
#menu .menu li.graphic a .txt {
  width: 72.7083333333%;
  left: 22.9166666667%;
}
#menu .menu li.graphic a .txt::before {
  background-image: url(../img/common/menu_graphic.png);
}
#menu .menu li.graphic a .txt::after {
  background-image: url(../img/common/menu_graphic_f2.png);
}
#menu .menu li.illust a .txt {
  width: 97.5%;
  left: -1.7142857143em;
}
#menu .menu li.illust a .txt::before {
  background-image: url(../img/common/menu_illust.png);
}
#menu .menu li.illust a .txt::after {
  background-image: url(../img/common/menu_illust_f2.png);
}
#menu .menu li.dtp a .txt {
  width: 30.4166666667%;
  left: 10.9375%;
}
#menu .menu li.dtp a .txt::before {
  background-image: url(../img/common/menu_dtp.png);
}
#menu .menu li.dtp a .txt::after {
  background-image: url(../img/common/menu_dtp_f2.png);
}
@media screen and (min-width: 768.1px) {
  #menu .heading {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  #menu {
    width: 100%;
  }
  #menu::before {
    width: 27.5909090909em;
  }
  #menu::after {
    background-image: url(../img/common/menu_light-sp.png);
    width: 100%;
    height: 100%;
  }
  #menu > .inner {
    padding-top: 13.6363636364em;
  }
  #menu .heading {
    padding: 1.8181818182em 1.3636363636em 0;
    width: 100%;
    display: flex;
    align-items: flex-end;
    position: absolute;
    left: 0;
    top: 0;
  }
  #menu .heading .title {
    width: 12.8181818182em;
  }
  #menu .heading .name {
    margin-left: 0.9090909091em;
    width: 6.5454545455em;
  }
  #menu .heading .link {
    line-height: 1;
    margin-left: auto;
  }
  #menu .heading .link a::after {
    content: "";
    background: url(../img/common/mail.png) no-repeat;
    background-size: contain;
    margin-left: 0.4166666667em;
    width: 1.5833333333em;
    aspect-ratio: 38/23;
    display: inline-block;
    vertical-align: middle;
  }
  #menu .menu {
    padding-bottom: 5.4545454545em;
    padding-bottom: 4.0909090909em;
    min-height: 100%;
  }
  #menu .menu li + li {
    margin-top: 1.8181818182em;
  }
  #menu .menu li a .txt {
    padding-top: 5.8181818182em;
  }
  #menu .menu li.lp a .txt {
    width: 26.4545454545em;
    left: -0.9090909091em;
  }
  #menu .menu li.web a .txt {
    width: 22.3181818182em;
    left: 3.9545454545em;
  }
  #menu .menu li.banner a .txt {
    width: 19.4545454545em;
    left: 13.9090909091em;
  }
  #menu .menu li.graphic a .txt {
    width: 26.8181818182em;
    left: 4.0909090909em;
  }
  #menu .menu li.illust a .txt {
    width: 36.5em;
    left: -1em;
  }
  #menu .menu li.dtp a .txt {
    width: 11.3636363636em;
    left: 0.9090909091em;
  }
}
@media screen and (min-width: 430.1px) and (max-width: 768px) {
  #menu > .inner {
    padding-top: 6.4285714286em;
  }
  #menu .menu {
    background-size: 43.3571428571em auto;
    padding-bottom: 8.5714285714em;
  }
  #menu .menu li + li {
    margin-top: 1.4285714286em;
  }
  #menu .menu li a .txt {
    height: 8.5714285714em;
  }
  #menu .menu li.lp a .txt {
    width: 40.1428571429em;
    left: 2.1428571429em;
  }
  #menu .menu li.web a .txt {
    width: 36.8571428571em;
    left: 6.2142857143em;
  }
  #menu .menu li.banner a .txt {
    width: 30.5714285714em;
    left: 21.8571428571em;
  }
  #menu .menu li.graphic a .txt {
    width: 42.1428571429em;
    left: 6.4285714286em;
  }
  #menu .menu li.illust a .txt {
    width: 57.3571428571em;
    left: -1.5714285714em;
  }
  #menu .menu li.dtp a .txt {
    width: 17.8571428571em;
    left: 1.4285714286em;
  }
}
@media screen and (min-width: 1920.1px) {
  #menu {
    width: 50%;
  }
  #menu .menu__ li.lp a .txt {
    width: 50.2142857143em;
    left: 2.8571428571em;
  }
  #menu .menu__ li.web a .txt {
    width: 40.9285714286em;
    left: 17.8571428571em;
  }
  #menu .menu__ li.banner a .txt {
    width: 35.7142857143em;
    left: 30.1428571429em;
  }
  #menu .menu__ li.graphic a .txt {
    width: 49.8571428571em;
    left: 15.7142857143em;
  }
  #menu .menu__ li.illust a .txt {
    width: 66.8571428571em;
    left: -1.7142857143em;
  }
  #menu .menu__ li.dtp a .txt {
    width: 20.8571428571em;
    left: 7.5em;
  }
}

/* ----------------------------
 menu展開時
------------------------------*/
#menu.open {
  opacity: 1;
  transform: translateX(0);
}
#menu.open + .overlay {
  opacity: 1;
  visibility: visible;
  z-index: 19;
}

/* ----------------------------
 menu常時展開 w1530以上
------------------------------*/
@media screen and (min-width: 1530px) {
  #menu + .overlay {
    display: none;
  }
}
/* ------------------------------------------------
  index
------------------------------------------------ */
#index {
  z-index: 1;
}

/* ----------------------------
 index list（モーダル内と共通）
------------------------------*/
.works_index li a {
  display: block;
  position: relative;
}
.works_index li a img {
  transition: opacity 0.4s ease;
  position: relative;
}
.works_index li a::before {
  content: "";
  background-color: #a2aed3;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.works_index li.current img {
  opacity: 0.5;
}
@media screen and (min-width: 768.1px) {
  .works_index li a:hover img {
    opacity: 0.5;
  }
}

/* ----------------------------
 メイン作品リスト
------------------------------*/
#index .list {
  height: 100%;
  margin: 0 -0.4827586207%;
}
#index li {
  padding: 0 0.4781420765% 0.956284153%;
  width: 14.2759562842%;
}
#index li > * {
  display: block;
}
@media screen and (min-width: 1530px) {
  #index .list {
    margin: 0 -1.4285714286%;
  }
  #index li {
    padding: 0 1.3888888889% 2.7777777778%;
    width: 33.3333333333%;
  }
}
@media screen and (min-width: 1760px) {
  #index .list {
    margin: 0 -0.9722222222%;
  }
  #index li {
    padding: 0 0.9536784741% 1.9073569482%;
    width: 24.931880109%;
  }
}
@media screen and (min-width: 1920.1px) {
  #index .list {
    margin: 0 -0.7423117709%;
  }
  #index li {
    padding: 0 0.7314524556% 1.4629049112%;
    width: 19.9582027168%;
  }
}
@media screen and (max-width: 1242px) {
  #index .list {
    margin: 0 -0.6113537118%;
  }
  #index li {
    padding: 0 0.6039689387% 1.2079378775%;
    width: 16.6522864538%;
  }
}
@media screen and (max-width: 1082px) {
  #index .list {
    margin: 0 -0.7121057986%;
  }
  #index li {
    padding: 0 0.702106319% 1.4042126379%;
    width: 19.9598796389%;
  }
}
@media screen and (max-width: 904px) {
  #index .list {
    margin: 0 -0.8557457213%;
  }
  #index li {
    padding: 0 0.8413461538% 1.6826923077%;
    width: 25%;
  }
}
@media screen and (max-width: 430px) {
  #index .list {
    margin: 0 -1.884057971%;
  }
  #index li {
    padding: 0 1.8156424581% 3.6312849162%;
    width: 50%;
  }
}
@media screen and (min-width: 430.1px) and (max-width: 768px) {
  #index .list {
    margin: 0 -1.1627906977%;
  }
  #index li {
    padding: 0 1.1363636364% 2.2727272727%;
    width: 50%;
  }
}

/* ----------------------------
 header張り付き時
------------------------------*/
@media screen and (min-width: 768.1px) {
  #header.sticky + #index .sbody {
    height: calc(100dvh - 13.5714285714em);
    overflow-y: auto;
    overflow-x: hidden;
  }
  #header.sticky + #index .sbody::-webkit-scrollbar {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  #header.sticky + #index {
    margin-top: 25em;
  }
}
@media screen and (min-width: 430.1px) and (max-width: 768px) {
  #header.sticky + #index {
    margin-top: 14.2857142857em;
  }
}