@import url(https://fonts.googleapis.com/css2?family=Doto:wght@100..900&family=Exo:ital,wght@0,100..900;1,100..900&family=Noto+Sans+JP:wght@100..900&display=swap);@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;700&family=JetBrains+Mono&display=swap);@import url(https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap);/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }
@charset "UTF-8";
.txt_white {
  color: #F8F7F2 !important; }

.txt_black {
  color: #101010 !important; }

.txt_pink {
  color: #F5B3BB !important; }

.txt_green {
  color: #00A33D !important; }

.txt_sky {
  color: #00A3D9 !important; }

.txt_red {
  color: #E83817 !important; }

.txt_blue {
  color: #0072BD !important; }

.txt_cha {
  color: #824221 !important; }

.txt_orange {
  color: #EC6700 !important; }

.txt_l-green {
  color: #08D836 !important; }

.txt_purple {
  color: #A300BD !important; }

.txt_mizuiro {
  color: #7ACAE5 !important; }

.txt_midori {
  color: #4BE6CA !important; }

.txt_l-red {
  color: #FF0000 !important; }

@-webkit-keyframes flowing {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  100% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%); } }

@keyframes flowing {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  100% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%); } }

@-webkit-keyframes flowing2 {
  0% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%); }
  100% {
    -webkit-transform: translateX(0%);
            transform: translateX(0%); } }

@keyframes flowing2 {
  0% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%); }
  100% {
    -webkit-transform: translateX(0%);
            transform: translateX(0%); } }

@-webkit-keyframes kashi {
  0% {
    left: 100%;
    -webkit-transform: translateX(0%) translateY(-50%);
            transform: translateX(0%) translateY(-50%); }
  100% {
    left: 0%;
    -webkit-transform: translateX(-100%) translateY(-50%);
            transform: translateX(-100%) translateY(-50%); } }

@keyframes kashi {
  0% {
    left: 100%;
    -webkit-transform: translateX(0%) translateY(-50%);
            transform: translateX(0%) translateY(-50%); }
  100% {
    left: 0%;
    -webkit-transform: translateX(-100%) translateY(-50%);
            transform: translateX(-100%) translateY(-50%); } }

.bbs {
  align-items: center;
  display: flex;
  overflow: hidden;
  width: 100%;
  white-space: nowrap;
  z-index: 1;
  position: fixed;
  top: 12px; }
  .bbs ul {
    -webkit-animation: flowing 40s linear infinite;
            animation: flowing 40s linear infinite;
    -webkit-animation-timing-function: steps(90, jump-start);
            animation-timing-function: steps(90, jump-start);
    font-size: 13px;
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
    margin: 0;
    padding: 0;
    font-family: "Zen Kaku Gothic New", "Inter", sans-serif;
    letter-spacing: 2px; }
    .bbs ul li {
      display: inline-block;
      padding-right: 10px; }

.bbs2 {
  display: flex;
  overflow: hidden;
  margin-top: 40px;
  width: 100%;
  position: fixed;
  bottom: 12px;
  white-space: nowrap; }
  .bbs2 ul {
    display: flex;
    list-style: none;
    padding: 0;
    -webkit-animation: flowing2 40s linear infinite;
            animation: flowing2 40s linear infinite;
    -webkit-animation-timing-function: steps(90, jump-start);
            animation-timing-function: steps(90, jump-start);
    font-size: 13px; }
    .bbs2 ul li {
      margin-right: 20px;
      display: inline-block;
      width: -webkit-max-content;
      width: max-content;
      display: flex;
      align-items: center; }
      .bbs2 ul li p {
        font-weight: 500; }
      .bbs2 ul li img {
        width: 20px;
        border-radius: 5px;
        margin-right: 6px; }

.bbs3 {
  align-items: center;
  display: flex;
  overflow: hidden;
  width: calc(100% - 88px);
  white-space: nowrap;
  z-index: 1;
  position: fixed;
  bottom: 40px;
  background-color: #232323;
  box-sizing: border-box;
  border: solid 1px #8f8f8f;
  height: 30px; }
  .bbs3 ul {
    -webkit-animation: flowing 40s linear infinite;
            animation: flowing 40s linear infinite;
    -webkit-animation-timing-function: steps(90, jump-start);
            animation-timing-function: steps(90, jump-start);
    font-size: 13px;
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
    margin: 0;
    padding: 0;
    font-family: "Doto", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    font-variation-settings: "ROND" 100;
    color: #ffffff; }
    .bbs3 ul li {
      display: inline-block;
      padding-right: 10px; }

@-webkit-keyframes noise {
  0% {
    background-position: 0 0; }
  10% {
    background-position: -10% -10%; }
  20% {
    background-position: 10% 10%; }
  30% {
    background-position: -2% -2%; }
  40% {
    background-position: 3% 3%; }
  50% {
    background-position: -3% -3%; }
  60% {
    background-position: 40% 40%; }
  70% {
    background-position: -40% -40%; }
  80% {
    background-position: 2% 2%; }
  90% {
    background-position: -3% -3%; } }

@keyframes noise {
  0% {
    background-position: 0 0; }
  10% {
    background-position: -10% -10%; }
  20% {
    background-position: 10% 10%; }
  30% {
    background-position: -2% -2%; }
  40% {
    background-position: 3% 3%; }
  50% {
    background-position: -3% -3%; }
  60% {
    background-position: 40% 40%; }
  70% {
    background-position: -40% -40%; }
  80% {
    background-position: 2% 2%; }
  90% {
    background-position: -3% -3%; } }

::selection {
  color: #F8F7F2;
  background-color: #101010; }

body {
  -webkit-text-size-adjust: 100%;
          text-size-adjust: 100%;
  font-family: Helvetica, sans-serif;
  font-weight: 800;
  font-style: normal;
  color: #101010;
  font-size: 12px;
  overflow-x: hidden;
  background-color: #000; }

html {
  /* ページ訪問中の遷移期間 */
  /* unloadされたページのスタイル */ }
  html.is-changing .transition-fade {
    transition: opacity 0.3s ease, translate 0.3s ease; }
  html.is-animating .transition-fade {
    opacity: 0;
    translate: 0 5px; }

.sp-only {
  display: none !important; }

a {
  text-decoration: none;
  color: #101010; }

.noise {
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  background: url("/img/noise.png") center repeat;
  background-size: 166.5px 110.5px;
  z-index: 30;
  z-index: 1000;
  pointer-events: none;
  -webkit-animation: noise 0.3s steps(1) infinite;
          animation: noise 0.3s steps(1) infinite; }
  .noise::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: url("/img/noise.png") center repeat;
    background-size: 166.5px 110.5px;
    z-index: 30;
    pointer-events: none;
    -webkit-animation: noise 0.3s steps(1) infinite;
            animation: noise 0.3s steps(1) infinite; }

/* Import fonts in CSS */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box; }

.white-space1 {
  padding: 0px 50px; }

.white-space2 {
  padding: 0px 30px; }

.white-space3 {
  padding: 0px 20px; }

body {
  overflow-x: hidden;
  background-color: #000;
  color: #000;
  font-family: Helvetica, sans-serif;
  font-style: normal;
  line-height: 1.4;
  font-size: 14px; }

.bg_top {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  z-index: -2; }

.content-container {
  position: relative;
  width: 100%;
  height: 500vh;
  z-index: 1; }

.section {
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  position: relative;
  z-index: 2; }

.section-content {
  margin: 0 auto;
  background: transparent; }

h1 {
  font-family: "Inter", sans-serif;
  font-weight: 500;
  margin-bottom: 1rem;
  line-height: 0.85;
  letter-spacing: -0.03em; }

h2 {
  font-family: "Inter", sans-serif;
  font-weight: 500;
  letter-spacing: -0.03em; }

p {
  opacity: 1;
  text-transform: uppercase; }

.label {
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.25; }

.meta-type {
  color: #64f4ac; }

.scroll-indicator {
  position: fixed;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  z-index: 2;
  color: white;
  letter-spacing: 0.1em;
  text-transform: uppercase; }

.scroll-indicator.hide {
  opacity: 0; }

/* Section-specific styles */
#section1 .meta-type {
  color: #64f4ac; }

#section2 .meta-type {
  color: #23a6d5; }

#section3 .meta-type {
  color: #ee7752; }

#section4 .meta-type {
  color: #e73c7e; }

#section5 .meta-type {
  color: #ff9a8b; }

/* Style for dat.gui - position it so it doesn't overlap content */
.dg.ac {
  z-index: 10 !important;
  top: 0 !important;
  right: 0 !important; }

header {
  position: fixed;
  top: 0;
  z-index: 100;
  left: 0;
  width: 100%;
  box-sizing: border-box;
  padding: 32px;
  display: flex;
  justify-content: space-between; }
  header .left img {
    width: 150px; }
  header .right ul {
    display: flex; }
    header .right ul .dropdown {
      position: relative;
      display: inline-block;
      font-weight: 500; }
      header .right ul .dropdown:hover .dropdown-content {
        display: block; }
        header .right ul .dropdown:hover .dropdown-content a {
          margin-bottom: 2px;
          font-size: 15px; }
          header .right ul .dropdown:hover .dropdown-content a:hover {
            opacity: 0.5; }
      header .right ul .dropdown .dropdown-content {
        display: none;
        position: absolute;
        min-width: 160px;
        z-index: 1;
        padding-top: 6px; }
    header .right ul li {
      display: block;
      margin-right: 20px;
      font-size: 12px;
      letter-spacing: 1px; }
      header .right ul li:last-child {
        margin-right: 0; }
      header .right ul li a {
        display: inline-block;
        font-weight: 500;
        letter-spacing: 1px;
        width: 100%; }
        header .right ul li a:hover {
          border-bottom: 1px solid #000; }
        header .right ul li a img {
          width: 14px; }
  header .hamburger-menu {
    display: none;
    flex-direction: column;
    cursor: pointer;
    padding: 8px; }
    header .hamburger-menu .hamburger-line {
      width: 25px;
      height: 2px;
      background-color: #fff;
      margin: 3px 0;
      transition: 0.3s; }
    header .hamburger-menu.active .hamburger-line:nth-child(1) {
      -webkit-transform: rotate(-45deg) translate(-5px, 6px);
              transform: rotate(-45deg) translate(-5px, 6px); }
    header .hamburger-menu.active .hamburger-line:nth-child(2) {
      opacity: 0; }
    header .hamburger-menu.active .hamburger-line:nth-child(3) {
      -webkit-transform: rotate(45deg) translate(-5px, -6px);
              transform: rotate(45deg) translate(-5px, -6px); }

.mobile-header-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: rgba(0, 0, 0, 0.9);
  z-index: 1000;
  display: none;
  opacity: 0;
  transition: opacity 0.3s ease; }
  .mobile-header-modal.active {
    display: flex;
    opacity: 1; }
  .mobile-header-modal .mobile-header-content {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative; }
  .mobile-header-modal .mobile-header-close {
    position: absolute;
    top: 20px;
    right: 30px;
    color: #fff;
    font-size: 30px;
    cursor: pointer;
    z-index: 1001;
    font-weight: 300; }
    .mobile-header-modal .mobile-header-close:hover {
      opacity: 0.7; }
  .mobile-header-modal .mobile-header-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: center; }
    .mobile-header-modal .mobile-header-nav ul li {
      margin: 30px 0; }
      .mobile-header-modal .mobile-header-nav ul li a {
        color: #fff;
        text-decoration: none;
        font-size: 24px;
        font-weight: 500;
        letter-spacing: 2px;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        transition: opacity 0.3s ease; }
        .mobile-header-modal .mobile-header-nav ul li a:hover {
          opacity: 0.7; }
        .mobile-header-modal .mobile-header-nav ul li a img {
          width: 24px;
          height: 24px; }

#section1 .section-content {
  display: flex;
  font-weight: 500;
  font-style: normal;
  color: #ffffff;
  position: fixed;
  bottom: 50%;
  left: 30px;
  height: auto;
  width: calc(100% - 60px);
  -webkit-transform: translateY(50%);
          transform: translateY(50%);
  flex-direction: column;
  align-items: flex-start;
  mix-blend-mode: difference;
  font-size: 1.5vw;
  line-height: 0.9; }
  #section1 .section-content h2 {
    font-size: 7vw;
    font-family: Helvetica, sans-serif;
    font-weight: 700;
    color: #ffffff;
    line-height: 0.95;
    -webkit-font-feature-settings: "palt";
            font-feature-settings: "palt"; }

#section1 h3 {
  font-size: 21px;
  font-family: Helvetica, sans-serif;
  letter-spacing: 1px;
  font-style: italic;
  font-weight: 400;
  color: #ffffff; }

#section2 {
  width: 800px;
  margin: 0 auto; }
  #section2 h2 {
    font-size: 21px; }
  #section2 p {
    font-size: 14px;
    line-height: 2;
    margin-top: 20px; }
  #section2 .section-content {
    display: flex; }
    #section2 .section-content img {
      width: 400px; }

.clients {
  background-color: #fafafa !important; }
  .clients .clients-grid {
    padding-top: 120px;
    width: 80%;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
    gap: 24px; }
    .clients .clients-grid img {
      width: 100%; }

.contact {
  background-color: #fafafa !important;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column; }
  .contact .section-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center; }
  .contact a {
    width: 100%;
    display: inline-block;
    text-align: center; }
    .contact a img {
      width: 40px !important;
      margin-bottom: 4px; }
    .contact a h3 {
      color: #000 !important;
      font-size: 16px !important; }
  .contact .footer {
    font-size: 11px;
    color: #000 !important;
    margin-top: 20px;
    text-align: center;
    position: absolute;
    bottom: 0;
    width: 100%;
    padding: 20px;
    font-weight: 300; }

.works {
  width: 100%;
  height: 100vh;
  position: relative; }
  .works .works_video {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1; }
    .works .works_video .works-video-item {
      position: absolute;
      top: 0;
      left: 0;
      width: 100vw !important;
      height: 100vh !important;
      border: none;
      opacity: 0;
      transition: opacity 0.6s ease-in-out;
      z-index: 1;
      -webkit-transform: scale(1.1);
              transform: scale(1.1); }
      .works .works_video .works-video-item.active {
        opacity: 1 !important;
        z-index: 2 !important; }
    .works .works_video .works-image-group {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      opacity: 0;
      transition: opacity 0.6s ease-in-out;
      z-index: 1; }
      .works .works_video .works-image-group.active {
        opacity: 1 !important;
        z-index: 2 !important; }
      .works .works_video .works-image-group .pan-image {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        opacity: 0;
        -webkit-transform: scale(1);
                transform: scale(1); }
        .works .works_video .works-image-group .pan-image.active {
          opacity: 1;
          -webkit-animation: zoomUp 10s linear 0s normal both;
                  animation: zoomUp 10s linear 0s normal both; }
        .works .works_video .works-image-group .pan-image.fade-out {
          opacity: 0;
          -webkit-animation: none;
                  animation: none; }
  .works .works_inner {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    height: 100%;
    mix-blend-mode: difference !important; }
    .works .works_inner ul {
      width: 100%;
      height: calc(100% - 80px);
      margin-top: 80px;
      overflow: scroll;
      display: flex;
      flex-direction: column;
      justify-content: center; }
      .works .works_inner ul li {
        height: 80px;
        text-align: right;
        padding-right: 24px;
        width: 100%;
        font-size: 1.5vw;
        letter-spacing: 1px;
        color: #ffffff;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.1s ease;
        font-family: Helvetica, sans-serif;
        font-weight: 500;
        letter-spacing: 1px;
        opacity: 0.3;
        -webkit-transform-origin: right center;
                transform-origin: right center;
        -webkit-font-feature-settings: "palt";
                font-feature-settings: "palt"; }
        .works .works_inner ul li:hover {
          opacity: 1;
          scale: 1.05; }

@-webkit-keyframes zoomUp {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1); }
  100% {
    -webkit-transform: scale(1.15);
            transform: scale(1.15); } }

@keyframes zoomUp {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1); }
  100% {
    -webkit-transform: scale(1.15);
            transform: scale(1.15); } }

.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: #000;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
  color: #fff; }
  .modal.active {
    opacity: 1;
    visibility: visible; }
  .modal .modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 40px;
    height: 40px;
    background: rgba(0, 0, 0, 0.7);
    color: #fff;
    border: none;
    border-radius: 50%;
    font-size: 24px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1001;
    transition: all 0.3s ease;
    font-weight: 300; }
    .modal .modal-close:hover {
      background: rgba(0, 0, 0, 0.9);
      -webkit-transform: scale(1.1);
              transform: scale(1.1); }
  .modal .modal-nav {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 20px;
    pointer-events: none;
    z-index: 1001; }
    .modal .modal-nav .modal-prev,
    .modal .modal-nav .modal-next {
      width: 60px;
      height: 60px;
      background: rgba(0, 0, 0, 0.7);
      color: #fff;
      border: none;
      border-radius: 50%;
      font-size: 32px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      pointer-events: auto;
      transition: all 0.3s ease; }
      .modal .modal-nav .modal-prev:hover,
      .modal .modal-nav .modal-next:hover {
        background: rgba(0, 0, 0, 0.9);
        -webkit-transform: scale(1.1);
                transform: scale(1.1); }
  .modal .modal-content {
    height: calc(100vh - 80px);
    background: #fff;
    box-sizing: border-box; }
    .modal .modal-content .works_main {
      margin-bottom: 12px;
      background-color: #000;
      width: 100vw;
      height: calc(100% - 80px);
      height: 100%;
      background: #000;
      box-sizing: border-box;
      aspect-ratio: 16/9; }
      .modal .modal-content .works_main iframe {
        width: 100%;
        height: 100%;
        border: none; }
  .modal .works_desc {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center; }
    .modal .works_desc .works_name {
      font-size: 24px;
      font-weight: 600;
      margin-bottom: 4px;
      text-align: center; }
    .modal .works_desc .works_credit {
      font-size: 13px;
      line-height: 1.6;
      margin-bottom: 2px;
      text-align: center;
      white-space: pre-line; }

.about-accordion {
  width: 100%;
  margin: 0 auto;
  height: 100vh;
  display: flex;
  overflow: hidden;
  position: relative; }
  .about-accordion .set {
    width: calc(100% / 7);
    position: relative;
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    mix-blend-mode: difference;
    -webkit-font-feature-settings: "palt";
            font-feature-settings: "palt"; }
    .about-accordion .set::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 70%;
      background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 20%, rgba(0, 0, 0, 0) 100%);
      z-index: 1;
      pointer-events: none; }
    .about-accordion .set.dis-active {
      width: calc(100% / 20);
      opacity: 1;
      pointer-events: none; }
    .about-accordion .set.active {
      width: 80%; }
      .about-accordion .set.active .content {
        opacity: 1; }
      .about-accordion .set.active .title {
        width: 100px; }
        .about-accordion .set.active .title h4 {
          opacity: 0; }
    .about-accordion .set:hover {
      box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
      background-color: rgba(255, 0, 0, 0.1); }
      .about-accordion .set:hover .title {
        opacity: 1;
        transition: 0.2s; }
      .about-accordion .set:hover .content {
        opacity: 1;
        transition-delay: 0.3s;
        /* hover に入った時だけ遅延 */ }
    .about-accordion:hover .about-accordion .set:not(:hover) {
      width: calc(60% / 6) !important; }
    .about-accordion .set .title {
      flex-shrink: 0;
      width: 100%;
      color: #fff;
      font-size: 100px;
      font-weight: bold;
      text-align: center;
      padding: 20px;
      -webkit-writing-mode: vertical-rl;
          -ms-writing-mode: tb-rl;
              writing-mode: vertical-rl;
      display: flex;
      justify-content: space-between;
      align-items: center;
      height: 100%;
      box-sizing: border-box;
      padding-bottom: 120px;
      rotate: 180deg;
      position: relative;
      z-index: 2;
      mix-blend-mode: difference;
      -webkit-font-feature-settings: "palt";
              font-feature-settings: "palt"; }
      .about-accordion .set .title h3 {
        margin: 0 0 10px 0;
        font-size: 28px;
        mix-blend-mode: difference;
        -webkit-font-feature-settings: "palt";
                font-feature-settings: "palt"; }
      .about-accordion .set .title h4 {
        margin: 0;
        font-size: 20px; }
    .about-accordion .set .content {
      display: block;
      flex: 1;
      color: #fff;
      padding: 10px;
      box-sizing: border-box;
      overflow-y: auto;
      margin-top: 100px;
      position: relative;
      z-index: 2;
      opacity: 0;
      transition: opacity 0.1s ease-out 0s; }
      .about-accordion .set .content h3 {
        margin: 0 0 20px 0;
        font-size: 1.5vw;
        line-height: 0.9;
        font-weight: 500;
        mix-blend-mode: difference;
        width: 95%; }
      .about-accordion .set .content h5 {
        margin: 0 0 20px 0;
        font-size: 1.5vw;
        line-height: 0.9;
        font-weight: 300;
        mix-blend-mode: difference;
        width: 95%; }
      .about-accordion .set .content .content_title {
        font-weight: 700;
        font-size: 28px; }
      .about-accordion .set .content h4 {
        margin: 0 0 30px 0;
        font-size: 13px;
        opacity: 0.8; }
      .about-accordion .set .content p {
        margin-top: 40px;
        line-height: 1.2;
        font-size: 1.1vw;
        letter-spacing: 0.2px;
        width: 95%;
        font-family: a-otf-gothic-mb101-pr6n, sans-serif; }
  .about-accordion .set:nth-child(1) {
    background-image: url("/img/bg_philosophy.jpg"); }
  .about-accordion .set:nth-child(2) {
    background-image: url("/img/bg_film.jpg"); }
  .about-accordion .set:nth-child(3) {
    background-image: url("/img/bg_design.jpg"); }
  .about-accordion .set:nth-child(4) {
    background-image: url("/img/bg_event.jpg"); }
  .about-accordion .set:nth-child(5) {
    background-image: url("/img/bg_space.jpg"); }
  .about-accordion .set:nth-child(6) {
    background-image: url("/img/bg_web.jpg"); }
  .about-accordion .set:nth-child(7) {
    background-image: url("/img/bg_consulting.jpg"); }

.solutions {
  padding-top: 100px;
  padding-bottom: 240px;
  background-color: #ffffff; }

.solutions_inner {
  max-width: 1800px;
  width: 100%;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center; }

.solution-item {
  cursor: pointer;
  transition: opacity 0.3s ease;
  background: transparent;
  position: relative;
  padding: 40px 32px;
  gap: 10px;
  box-sizing: border-box; }

.solution-item:hover {
  opacity: 0.8; }

.solution-item.solution-hidden {
  opacity: 0;
  pointer-events: none;
  visibility: hidden; }

.solution-item.solution-active {
  opacity: 1; }

.solution-item.solution-dimmed {
  opacity: 0.5; }

.solution-item.col-1 {
  width: 8.333333%; }

.solution-item.col-2 {
  width: 16.666667%; }

.solution-item.col-3 {
  width: 25%; }

.solution-item.col-4 {
  width: 33.333333%; }

.solution-item.col-5 {
  width: 41.666667%; }

.solution-item.col-6 {
  width: 50%; }

.solution-item.col-7 {
  width: 58.333333%; }

.solution-item.col-8 {
  width: 66.666667%; }

.solution-item.col-9 {
  width: 75%; }

.solution-item.col-10 {
  width: 83.333333%; }

.solution-item.col-11 {
  width: 91.666667%; }

.solution-item.col-12 {
  width: 100%; }

.solution-image {
  position: relative;
  width: 100%;
  display: block; }
  .solution-image .solution-image-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    z-index: 10;
    mix-blend-mode: difference;
    color: #000; }
    .solution-image .solution-image-overlay .solution-image-title {
      font-family: Helvetica, sans-serif;
      color: #fff;
      padding: 8px 16px;
      font-size: 1.5vw;
      text-align: center;
      font-weight: 400;
      opacity: 0;
      transition: opacity 0.1s ease;
      white-space: nowrap; }
  .solution-image:hover .solution-image-overlay .solution-image-title {
    opacity: 1; }

.solution-image img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease; }

.solution-placeholder {
  padding: 60px 20px;
  text-align: center;
  color: #999;
  background: #f8f8f8;
  min-height: 200px;
  display: flex;
  flex-direction: column;
  justify-content: center; }

.solution-placeholder h3 {
  margin: 0 0 10px 0;
  font-size: 16px;
  font-weight: 400; }

.solution-placeholder p {
  margin: 0;
  font-size: 14px;
  opacity: 0.6; }

.tag-container {
  width: 100%;
  display: flex;
  position: fixed;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 50px 16px 10px 12px;
  bottom: 0;
  right: 0;
  z-index: 100;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 10%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.4) 100%); }

.tag-button {
  padding: 4px 16px;
  cursor: pointer;
  font-size: 16px;
  transition: all 0.3s ease;
  border: none;
  border-bottom: 1px solid transparent;
  background-color: rgba(0, 0, 0, 0);
  color: #000000; }
  .tag-button.active {
    border-bottom: 1px solid #000; }

.solution-dimmed {
  opacity: 0.5 !important;
  pointer-events: none; }

.solution-active {
  opacity: 1 !important; }

.solution-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: white;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease; }
  .solution-modal.active {
    opacity: 1;
    visibility: visible; }
  .solution-modal .solution-modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 40px;
    height: 40px;
    color: #000000;
    border: none;
    font-size: 24px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1001;
    transition: all 0.3s ease; }
    .solution-modal .solution-modal-close:hover {
      background: rgba(255, 255, 255, 0.3);
      -webkit-transform: scale(1.1);
              transform: scale(1.1); }
  .solution-modal .solution-modal-content {
    display: flex;
    flex-direction: column;
    height: 90vh;
    width: 100vw;
    overflow: hidden; }
  .solution-modal .solution-modal-images {
    flex: 1;
    overflow: hidden;
    position: relative; }
  .solution-modal .solution-swiper {
    height: 100%;
    width: 100%; }
    .solution-modal .solution-swiper .swiper-wrapper {
      height: 100%; }
    .solution-modal .solution-swiper .swiper-slide {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 20px; }
    .solution-modal .solution-swiper .solution-modal-image {
      max-height: 100%;
      max-width: 100%;
      object-fit: contain; }
    .solution-modal .solution-swiper .swiper-pagination {
      bottom: 0px;
      z-index: 100; }
      .solution-modal .solution-swiper .swiper-pagination .swiper-pagination-bullet {
        background: rgba(0, 0, 0, 0.5);
        opacity: 1; }
        .solution-modal .solution-swiper .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
          background: #000000; }
    .solution-modal .solution-swiper .swiper-button-next,
    .solution-modal .solution-swiper .swiper-button-prev {
      color: #000000;
      border-radius: 50%;
      width: 50px;
      height: 50px;
      margin-top: -25px; }
      .solution-modal .solution-swiper .swiper-button-next:after,
      .solution-modal .solution-swiper .swiper-button-prev:after {
        font-size: 20px;
        font-weight: bold; }
      .solution-modal .solution-swiper .swiper-button-next:hover,
      .solution-modal .solution-swiper .swiper-button-prev:hover {
        background: rgba(0, 0, 0, 0.5); }
    .solution-modal .solution-swiper .swiper-button-next {
      right: 20px; }
    .solution-modal .solution-swiper .swiper-button-prev {
      left: 20px; }
  .solution-modal .solution-modal-info {
    padding: 20px; }
  .solution-modal .solution_tags {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px; }
    .solution-modal .solution_tags .solution-tag {
      color: #000;
      padding: 4px 12px;
      border-radius: 20px;
      font-size: 13px;
      font-weight: 500;
      font-family: Helvetica, sans-serif; }
  .solution-modal .solution_title {
    font-size: 24px;
    font-weight: 600;
    color: #000000;
    margin-bottom: 8px;
    text-align: center;
    font-family: Helvetica, sans-serif; }
  .solution-modal .solution_credit {
    font-size: 16px;
    color: rgba(255, 255, 255, 0.8);
    font-family: Helvetica, sans-serif;
    line-height: 1.4; }

.footer {
  font-size: 11px;
  color: #000 !important;
  margin-top: 20px;
  text-align: center;
  width: 100%;
  padding: 20px;
  padding-bottom: 60px;
  font-weight: 500;
  letter-spacing: 1px; }

.mouse {
  pointer-events: none;
  z-index: 999; }
  .mouse.hov_ {
    transition: .5s; }
    .mouse.hov_ svg {
      -webkit-animation-iteration-count: infinite;
              animation-iteration-count: infinite; }
    @media (max-width: 1023px) {
    .bbs3 {
      display: none; }
    .sp-only {
      display: block !important; }
  .pc-only {
    display: none !important; }
    .section-content .lottie-container {
      width: 100%; }
    header {
      padding: 20px;
      align-items: center; }
      header .left img {
        width: 100px; }
      header .right ul {
        display: none; }
      header .hamburger-menu {
        display: flex; }
    #section1 .section-content {
      left: 20px;
      bottom: 20px;
      width: 70%; }
      #section1 .section-content h2 {
        font-size: 16vw;
        margin-bottom: 20px; }
      .clients .clients-grid {
        grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)) !important;
        padding-bottom: 80px; }
    .works {
      height: 100vh;
      height: 100dvh; }
      .works .works_video {
        width: 100%;
        height: 100vh; }
        .works .works_video iframe {
          position: absolute;
          top: 50%;
          left: 50%;
          height: 100vw !important;
          /* 16:9の比率 (100/16*9=56.25) */
          min-height: 100vh;
          /* 高さ足りないとき拡大 */
          -webkit-transform: translate(-50%, -50%);
                  transform: translate(-50%, -50%);
          scale: 3.2; }
        .works .works_video .works-video-item {
          height: 100vh !important;
          height: 100dvh !important;
          object-fit: cover;
          -webkit-transform: scale(1.2);
                  transform: scale(1.2); }
        .works .works_video .works-image-group {
          height: 100vh;
          height: 100dvh; }
          .works .works_video .works-image-group .pan-image {
            height: 100vh;
            height: 100dvh;
            object-fit: cover; }
          .works .works_inner ul li {
            font-size: 18px;
            padding-right: 0;
            height: 60px;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            width: 90%;
            margin: 0 auto;
            opacity: 0.7; }
      .modal .modal-content {
        pointer-events: none; }
        .modal .works_desc .works_name {
          font-size: 17px; }
        .modal .works_desc .works_credit {
          font-size: 16px;
          line-height: 1;
          color: #000000; }
    .about-accordion {
      flex-direction: column;
      position: relative;
      top: 80px;
      height: auto; }
      .about-accordion .set {
        width: 100%;
        height: 150px; }
        .about-accordion .set::before {
          display: none; }
        .about-accordion .set.dis-active {
          width: 100%;
          height: calc(100% / 10); }
        .about-accordion .set.active {
          width: 100%;
          height: 50vh; }
          .about-accordion .set.active .title {
            width: 100%; }
        .about-accordion .set .title {
          rotate: 0deg;
          -webkit-writing-mode: initial;
              -ms-writing-mode: initial;
                  writing-mode: initial;
          justify-content: flex-start;
          padding: 0px;
          padding-left: 12px;
          align-items: normal; }
          .about-accordion .set .title h3 {
            font-size: 18px;
            display: none; }
          .about-accordion .set .title h4 {
            font-size: 24px;
            padding-left: 12px;
            line-height: 150px; }
    .solutions {
      padding-top: 60px;
      padding-bottom: 120px; }
    .solution-item {
      padding: 24px 8px 48px; }
    .solution-item.solution-hidden {
      display: none; }
        .solution-image .solution-image-overlay .solution-image-title {
          mix-blend-mode: normal;
          opacity: 1;
          position: absolute;
          bottom: -30px;
          left: 0;
          padding: 0;
          top: initial;
          font-size: 14px; }
    .tag-container {
      padding: 40px 20px 10px;
      background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 10%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.8) 100%); }
    .tag-button {
      font-size: 15px;
      padding: 2px; } }
    @media (max-width: 1200px) {
  .solutions_inner {
    padding: 0 30px; } }
    @media (max-width: 768px) {
  .solutions_inner {
    padding: 0 20px; }
  .solution-item.col-1,
  .solution-item.col-2,
  .solution-item.col-3,
  .solution-item.col-4,
  .solution-item.col-5,
  .solution-item.col-6 {
    width: 50%; }
  .solution-item.col-7,
  .solution-item.col-8,
  .solution-item.col-9,
  .solution-item.col-10,
  .solution-item.col-11,
  .solution-item.col-12 {
    width: 100%; } }
    @media (max-width: 480px) {
  .solutions_inner {
    padding: 0 15px; }
  .solution-item {
    width: 100% !important; } }
