@charset "UTF-8";

abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:0 0}body{line-height:1}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}nav ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:0 0}ins{background-color:#ff9;color:#000;text-decoration:none}mark{background-color:#ff9;color:#000;font-style:italic;font-weight:700}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-collapse:collapse;border-spacing:0}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}input,select{vertical-align:middle}li{list-style:none}img{vertical-align:bottom;flex-shrink:0;margin:0;padding:0;line-height:1}ul{list-style-type:none;margin-block-start:0;margin-block-end:0;margin-inline-start:0;margin-inline-end:0;padding-inline-start:0}
a:focus {
outline: none;
}

a:focus-visible {
outline: none;
}

html{
margin: 0;
padding: 0;
}

* {
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
margin: 0;
padding: 0;
}

a{
  -webkit-touch-callout: none;
}

h1, h2, h3, h4, h5{

}

#swup {
position: relative;
z-index: 3;
margin: 0;
padding: 0;
}


#swup {
    /* 1. 基本（＝現れる時）のフェードインアニメーション */
    transition: opacity 0.6s cubic-bezier(0.25, 1, 0.5, 1);
    will-change: opacity;
}

/* Swupが次のページを探しに行って、画面を隠そうとしている瞬間 */
html.is-changing #swup {
    /* 2. 消える時だけ、あえて少し早め（0.12秒）にしてキレを出す */
    transition: opacity 0.3s ease-out;
}


.loader {
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  display: flex;
  justify-content: center;
  align-items: center;
}

.loader.is-active {
  opacity: 1;
}

.loader_in{
  width: 50px;
  padding: 2px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #ccc;
  --_m:
    conic-gradient(#0000 10%,#000),
    linear-gradient(#000 0 0) content-box;
  -webkit-mask: var(--_m);
          mask: var(--_m);
  -webkit-mask-composite: source-out;
          mask-composite: subtract;
  animation: l3 1s infinite linear;
}
@keyframes l3 {to{transform: rotate(1turn)}}



/*GSAP*/
.fadein_up {

}

.fadein_fix{
opacity: 0;
}


/* ===========================================================
   cookieconsent v3.1.0 カスタマイズ上書き
   =========================================================== */
/* スライド（上下移動）を消してフェードのみ */
#cc-main .cm--box {
  transform: translateY(0) !important;
}

@media screen and (max-width: 640px) {
  #cc-main .cm__btns {
    border-top: none !important;
  }
}
#cc-main {
  --cc-font-size: 11px;/* 基準サイズ */
  /* --- 角丸を消す（モーダル・ボタン両方の変数を 0 に） --- */
  --cc-modal-border-radius: 0;
  --cc-btn-border-radius: 0;
  --cc-btn-primary-hover-bg: #666;        /* ボタンhover時の背景色 */
  --cc-modal-transition-duration: 1s;   /* フェードの速さ */
}

/*レイアウト*/
#cc-main .cm--bottom {
  bottom: 10px;   /* 下端からの距離 */
}

#cc-main .cm--right {
  right: 8px;    /* 右端からの距離 */
}

/*全体の左右の余白*/
  #cc-main .cm__title,
  #cc-main .cm__desc,
  #cc-main .cm__btns {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }



/* 横幅：土台ではなく中のモーダルに指定する */
#cc-main .cm {
max-width: 300px;
border: solid 1px #eee;
}

/* ドロップシャドウを消す */
#cc-main .cm,
#cc-main .pm {
box-shadow: none;
}


#cc-main .cm__texts {
padding: 10px 0 0 0;
}


/* タイトル */
#cc-main .cm__title {
font-size: 11px !important;
font-weight: 400;
padding: 0 6px 6px 6px;
margin: 0;
color: #333;
}

/*タイトルと本文の間の隙間*/
#cc-main .cm__title+.cm__desc {
  margin-top:0px;
}

/*本文*/
#cc-main .cm__desc{
font-size: 11px !important;
font-weight: 400;
color: #333;
margin: 0;
padding: 0 6px 0px 6px;
}
/* 本文中のリンク（Cookieポリシー）の太字を解除（既定は 600） */
#cc-main .cm__desc a {
font-size: 11px !important;
font-weight: 400;
}

/*ボタン全体*/
#cc-main .cm__btns {
border-top: none;
}

#cc-main .cm__btn,
#cc-main .pm__btn {
  transition: background 0.45s ease, color 0.45s ease, border-color 0.45s ease !important;
}

/* ボタンを小さく（ベースは .82em / 太字600 / min-height:40px） */
#cc-main .cm__btn,
#cc-main .pm__btn {
  padding: 6px;
  font-size: 11px !important;
  font-weight: 400;
  min-height: 0;
}

/* ボタン同士の間隔（既定は margin-top .375rem） */
#cc-main .cm__btn + .cm__btn {
  margin-top: 5px;
}





body{
width: 100%;
margin: 0;
padding: 0;
background: #fff;
position: relative;

text-align: left;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;

font-family: "swiss-721-bt", sans-serif;
font-weight: 700;
font-style: normal;

-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;

text-size-adjust: 100%;/*スマホ回転*/
-webkit-text-size-adjust: 100%;

overscroll-behavior-y: none;
overflow-x: hidden;
}




/*スクロールバー非表示*/
html,
body {
-ms-overflow-style: none;  /* IE, Edge */
scrollbar-width: none;     /* Firefox */
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
  display: none;             /* Chrome, Safari */
}

::selection{
background: #FF9D1C;
color: #fff;
}

a{
text-decoration:none;
color:#fff;
touch-action: manipulation; /* スマホのタップ遅延を解除 */
}


.sp_show{
display: inline-block;
}
.pc_show{
display: none;
}

.common_bg_white{
position: absolute;
z-index: 0;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
background-color: #fff;
}


/*three.jsノイズ*/
#bg-noise {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 0;
opacity: 0.04;
}

#bg-noise canvas {
display: block;
width: 100% !important;
height: 100% !important;
}
/*three.jsノイズ*/


/* ===== コンテンツ領域 WebGLキャンバス（全画面） ===== */
#fx_canvas,
#bow_canvas {
position: fixed;
z-index: 5;

top: 0;
left: 0;

pointer-events: none;
}

/* パーティクル生成後はキャプチャ元のDOMを隠す（全ページ共通） */
.fx-active #capture_target{ visibility: hidden; }



.text_area {
margin: 0;
padding: 0;
position: relative;
}

.text_area_layout {
margin: 0;
padding: 0;
position: relative;
width: 100%;
margin: 0;
padding: 60px 12px 60px 12px;
box-sizing: border-box;
}





/*wp-pagenavi base*/
.wp-pagenavi{
padding: 0 0 200px 0;

clear: both;
text-align:center;

font-size: 14px;

-moz-font-feature-settings: "palt" 1;
-webkit-font-feature-settings: "palt" 1;
font-feature-settings: "palt" 1;
letter-spacing: 0.0em;
}

.wp-pagenavi a, .wp-pagenavi span {
display: inline-block;
color: #333;
border-radius: 2px;
padding: 10px 10px;
width: 35px;
height: 35px;
line-height: 35px;
margin: 0 0;
text-align: center;

white-space: nowrap;
-webkit-transition: 0.2s ease-in-out;
-moz-transition: 0.2s ease-in-out;
-o-transition: 0.2s ease-in-out;
transition: 0.2s ease-in-out;
text-decoration:none;
}

.wp-pagenavi a:hover{
color: #333;
background-color:#eee;
}

.wp-pagenavi span.current{
color: #000;
text-decoration: underline;
}

.wp-pagenavi .pages{
display: none;
}




/*グロナビPC*/
ul.pc_only{
visibility: hidden;
display: none;
}



/*言語選択 コピーライト　SP*/
.english_or{
display: none;
position: fixed;

margin: 0;
padding:0;
width: auto;
text-align: left;
-webkit-user-select: none;
user-select: none;

mix-blend-mode: difference;
}


.english_or ul{
/*FONT 375px計算*/
font-size: 12px;
font-size: 3.2vw;
font-size: clamp(11px, 3.2vw, 13px);

line-height: 1.0;
color: #fff;

font-feature-settings: "liga" 1, "pnum" 1;
letter-spacing: 0.0em;
}

.english_or a.english{
width: 2ch;
display: inline-block;
touch-action: manipulation; /* スマホのタップ遅延を解除 */
}

.english_or a.japanese{
width: 2ch;
display: inline-block;
touch-action: manipulation; /* スマホのタップ遅延を解除 */
}

.english_or a.japanese{
width: 2ch;
display: inline-block;
}

.slash{
margin: 0 4px;
}




/*Copy Only*/
.copy_only{
display: none;

position: fixed;
z-index: 2;

top: auto;
bottom: 1.9vw;
left: 1.7vw;

margin: 0;
padding:0;

width: auto;
text-align: left;

-webkit-user-select: none;
user-select: none;

mix-blend-mode: difference;

margin: 0;
padding:0;

font-size: 2vw;
line-height: 1.2;

color: #fff;
letter-spacing: 0.03em;
}




.page_top .copy_only{
display: block;
}




/*フッター*/
.for_footer{
position: relative;
width: 100%;
height: auto;
margin: 0 0 8px 0;
padding: 0;

display: flex;
align-items: flex-end;
}

/*トップページ表示しない*/
.page_top .for_footer{
visibility: hidden;
display: none;
}

.for_footer .prohibited{
position: relative;
padding: 0 0 0 10px;
box-sizing: border-box;
flex: 0 0 70%;
min-width: 0;


font-family: "swiss-721-bt", sans-serif;
font-weight: 700;
font-style: normal;

/*FONT 375px計算*/
font-size: 7px;
font-size: 1.8666666vw;
font-size: clamp(6px, 1.8666666vw, 8px);

/*FONT 375px計算*/
font-size: 6px;
font-size: 1.6vw;
font-size: clamp(5px, 1.6vw, 7px);

line-height: 1.4;
font-feature-settings: "liga" 1, "pnum" 1;
letter-spacing: 0.0em;
text-transform: uppercase;
}


.for_footer .copy_footer{
position: relative;
padding: 0 10px 0 0;
box-sizing: border-box;
flex: 0 0 30%;
min-width: 0;
text-align: right;

font-family: "swiss-721-bt", sans-serif;
font-weight: 700;
font-style: normal;

/*FONT 375px計算*/
font-size: 7px;
font-size: 1.8666666vw;
font-size: clamp(6px, 1.8666666vw, 8px);

/*FONT 375px計算*/
font-size: 6px;
font-size: 1.6vw;
font-size: clamp(5px, 1.6vw, 7px);

line-height: 1.4;


font-feature-settings: "liga" 1, "pnum" 1;
letter-spacing: 0.0em;
}




/* parallax-frame　画像の移動　JSのアニメ用　biography*/
.parallax-frame {
position: relative;
overflow: hidden;
}

.parallax-frame.landscape { aspect-ratio: 4 / 3; }  /* 横長の窓 */
.parallax-frame.portrait  { aspect-ratio: 3 / 4; }  /* 縦長の窓 */

.parallax-frame img {
width: 100%;
height: 115% !important;
object-fit: cover;
display: block;
}



/*.japaneseの句読点の詰め、JSで操作*/
.punct {
  letter-spacing: -0.15em; /* 詰め具合をここで調整 */
}

/* スマホ終了
------------------------------------------------------------------------------------------- */
@media screen and (min-width: 768px) {

html, body {
scrollbar-width: none;
-ms-overflow-style: none;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
display: none;
}


.sp_show{
display: none;
}

.pc_show{
display: inline-block;
}


/*wp-pagenavi base*/
.wp-pagenavi{
clear: both;
text-align:center;

font-size: 14px;

-moz-font-feature-settings: "palt" 1;
-webkit-font-feature-settings: "palt" 1;
font-feature-settings: "palt" 1;
letter-spacing: 0.0em;
padding: 0 0 0 0;
}







/*PC専 グロナビ
-----------------------------------------------*/
ul.pc_only{
visibility: visible;

position: fixed;
z-index: 999;
top: 7px;
left: 10px;

margin: 0;
padding: 0;

width: calc( 100% - 20px );

display: flex;
justify-content: space-between;
flex-wrap: nowrap;

mix-blend-mode: difference;

user-select: none;
-webkit-user-select: none; /* Safari */
-moz-user-select: none;
-ms-user-select: none;
}



.project ul.pc_only, .bio ul.pc_only, .contact ul.pc_only{
visibility: visible;
display: flex;
}

/*Project 詳細　非表示*/
.project_single ul.pc_only{
/*
visibility: hidden;
display: none;
*/
}


ul.pc_only li {
position: relative;

white-space: nowrap;
display: flex;

margin:0;
padding: 0;

font-family: "swiss-721-bt", sans-serif;
font-weight: 700;
font-style: normal;

font-size: 16px;
line-height: 1.3;
text-transform: uppercase;

font-feature-settings: "liga" 1, "pnum" 1;
letter-spacing: -0.02em;

color: #fff;
overflow: visible;
}


ul.pc_only li:nth-last-child{
margin:0 0 0 0;
}
ul.pc_only li:nth-child(1){
width: 18ch;
}


ul.pc_only li:nth-child(2){
width: 11ch;
}

ul.pc_only li:nth-child(3){
width: 8.5ch;
}

ul.pc_only li:nth-child(4){
width: 8.2ch;
}

ul.pc_only li:nth-child(5){
width: 1.9ch;
}


/* 変更: relative → absolute でヒットエリアをspanに重ねる */
ul.pc_only li a {
position: relative;
display: block;
inset: -3px 0 -3px 0;   /* 上下だけ10px広げ、左右は0のまま */

-webkit-tap-highlight-color: none;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
color: #fff;
overflow: hidden;
touch-action: manipulation; /* スマホのタップ遅延を解除 */
}



/* 追加: アニメスパンはレイアウト担当、クリック無効 */
ul.pc_only li .hover_shffule {
display: inline-block;
position: relative;
z-index: 0;
pointer-events: none;
white-space: nowrap; /* ← 追加 */
}


/* 現在ページのナビボタン */
li.pc_nav_active a {
    pointer-events: none;
    cursor: default;
}

/**/
li.pc_nav_active .hover_shffule {
    text-decoration: line-through;
    pointer-events: none; /* ホバー演出も無効化 */
}

/*遷移した時押せなくする*/
.pc_only a.current,
.nav_sp a.current {
pointer-events: none;
}

/*最初のliは打ち消し線は無視*/
li:not(:first-child) > a.current .hover_shffule {
  text-decoration: line-through;
}




/*言語選択とコピーライト 右下*/
.english_or{
display: block;
visibility: visible;

position: fixed;
z-index: 999;

right: 10px;
left: auto;
bottom: 10px;

margin: 0;
padding: 0;

width: auto;
text-align: left;

color: #fff;
mix-blend-mode: difference;
}


.english_or ul{
margin: 0;
padding: 0;

font-family: "swiss-721-bt", sans-serif;
font-weight: 700;
font-style: normal;

font-size: 9px;
line-height: 1.1;

text-transform: uppercase;
font-feature-settings: "liga" 1, "pnum" 1;
letter-spacing: -0.02em;
}

.english_or ul li{
display:flex;
align-items:center;
gap:3px;
}

/*英語*/
.english_or .english{
position: relative;
width: auto;
display: inline-block;
margin: 0;
padding: 0;
}

.english_or .english a{
position: absolute;
z-index: 2;
top: -10px;
left: 0;
width: 100%;
height: 100%;
padding: 0 0 10px 0;
}

.english_or .english a:visited{

}

/*日本語*/
.english_or .japanese{
position: relative;
width: auto;
display: inline-block;
margin: 0;
padding: 0;
}

.english_or .japanese a{
position: absolute;
z-index: 2;
top: -10px;
left: 0;
width: 100%;
height: 100%;
padding: 0 0 10px 0;
color: #fff;
}

.english_or .slash{
display: inline-block;
margin: 0;
padding: 0;
}

.english_or .privacy_policy_ui_pc{
position: relative;
width: 16ch;
display: inline-block;
}


.english_or .privacy_policy_ui_pc a{
position: absolute;
z-index: 2;
top: -10px;
left: 0;
width: 100%;
height: 100%;
padding: 0 0 10px 0;
color: #fff;
}



/* lang_switcher.jsの言語選択のCSSをJSで設定 */
.english_or .lang_switcher_jp.is_active + span{
text-decoration-line: line-through;
margin: 0;
padding: 0;
}

.english_or .lang_switcher_en.is_active + span{
text-decoration-line: line-through;
margin: 0;
padding: 0;
}





.copy_footer2026{
display: block;
position: fixed;
z-index: 9;

left: 20px;
bottom: 10px;

width: fit-content;


font-family: "swiss-721-bt", sans-serif;
font-weight: 700;
font-style: normal;

font-size: 9px;

line-height: 1.1;
color: #fff;
mix-blend-mode: difference;
}



.copy_only{
display: block;
position: fixed;
z-index: 2;

left: 1.0vw;
right: 10px;
bottom: 10px;

width: fit-content;

font-size: 10px;
line-height: 1.1;
color: #fff;
}





/* ===== コンテンツ領域 WebGLキャンバス（全画面） ===== */
#fx_canvas,
#bow_canvas {
position: fixed;
z-index: 5;
top: 0;
left: 0;

margin: 0;
padding: 0;
pointer-events: none;
}



.text_area {
position: relative;
width: 100%;
margin: 0;
padding: 0;
}

.text_area_layout {
width: 100%;
max-width: 1500px;
margin: 0;
padding: 100px 50px 50px 50px;
box-sizing: border-box;
}






/*.japaneseの句読点の詰め、JSで操作*/
.punct {
  letter-spacing: -0.21em; /* 詰め具合をここで調整 */
}






/* ===========================================================
   cookieconsent v3.1.0 カスタマイズ上書き　PC
   =========================================================== */
/* スライド（上下移動）を消してフェードのみ */
#cc-main .cm--box {
  transform: translateY(0) !important;
}

#cc-main {
  --cc-font-size: 12px;/* 基準サイズ */
  /* --- 角丸を消す（モーダル・ボタン両方の変数を 0 に） --- */
  --cc-modal-border-radius: 0;
  --cc-btn-border-radius: 0;
  --cc-btn-primary-hover-bg: #666;        /* ボタンhover時の背景色 */
  --cc-modal-transition-duration: 1s;   /* フェードの速さ。大きいほどゆっくり */
}

/*レイアウト*/
#cc-main .cm--bottom {
  bottom: 30px;   /* 下端からの距離 */
}

#cc-main .cm--right {
  right: 10px;    /* 右端からの距離 */
}


/*全体の左右の余白*/
  #cc-main .cm__title,
  #cc-main .cm__desc,
  #cc-main .cm__btns {
    padding-left: 15px !important;
    padding-right: 15px !important;
  }

/* 横幅：土台ではなく中のモーダルに指定する */
#cc-main .cm {
max-width: 290px;
border: solid 1px #eee;
}

/* ドロップシャドウを消す */
#cc-main .cm,
#cc-main .pm {
  box-shadow: none;
}

#cc-main .cm__texts {
padding: 15px 0 0 0;
}

/* タイトルを本文と同じ 12px・通常の太さに（既定は 1.05em / 太字600） */
#cc-main .cm__title {
font-size: 12px !important;
font-weight: 400;
padding: 0 15px 10px 15px;
margin-bottom: 0;
color: #333;

letter-spacing: 0.0em;
font-feature-settings: "liga" 1, "pnum" 1;
}

/*タイトルと本文の間の隙間*/
#cc-main .cm__title+.cm__desc {
  margin-top:0px;
}

/*本文*/
#cc-main .cm__desc{
padding: 0 15px 0px 15px;

font-size: 12px !important;
font-weight: 400;
color: #333;
letter-spacing: 0.0em;
font-feature-settings: "liga" 1, "pnum" 1;
}

/* 本文中のリンク（Cookieポリシー）の太字を解除（既定は 600） */
#cc-main .cm__desc a {
  font-size: 12px !important;
  font-weight: 400;
}

/*ボタン全体*/
#cc-main .cm__btns {
  border-top: none;
padding: 10px 15px 10px 15px;
}

#cc-main .cm__btn,
#cc-main .pm__btn {
  transition: background 0.45s ease, color 0.45s ease, border-color 0.45s ease !important;
}

/* ボタンを小さく（ベースは .82em / 太字600 / min-height:40px） */
#cc-main .cm__btn,
#cc-main .pm__btn {
  padding: 7px;
  font-size: 11px !important;
  font-weight: 400;
  min-height: 0;
}

/* ボタン同士の間隔（既定は margin-top .375rem） */
#cc-main .cm__btn + .cm__btn {
  margin-top: 5px;
}


}/*end PC*/
