@charset "utf-8";

:root {
--red:#e08767;
--blue:#5287a0;
--main-bg:#4a5055;

/*meter*/
--on:rgba(255,255,255,0.7);
--off:rgba(255,255,255,0.3);
}


@font-face {
font-family:'NotoSansJP';
src:url(fonts/NotoSansJP-Regular.otf) format('opentype');
font-style:normal;
font-weight:normal;
font-display:swap;
}

@font-face {
font-family:'NotoSansJP';
src:url(fonts/NotoSansJP-Bold.otf) format('opentype');
font-style:normal;
font-weight:bold;
font-display:swap;
}

@font-face {
font-family:'outfit';
src:url(fonts/Outfit-Regular.ttf) format('truetype');
font-style:normal;
font-weight:normal;
font-display:swap;
}

@font-face {
font-family:'outfit';
src:url(fonts/Outfit-Bold.ttf) format('truetype');
font-style:normal;
font-weight:bold;
font-display:swap;
}

*,*::before,*::after{
margin:0;
padding:0;
box-sizing:border-box;
}

html{
font-size:23px;
overscroll-behavior:none;
-ms-overflow-style:none; /* IE、Edge 対応 */
scrollbar-width:none; /* Firefox 対応 */
}

html::-webkit-scrollbar {
display:none; /* chrome、Safari対応 */
}

@media screen and (max-width:3000px){
html{
font-size:18px;
}
}

@media screen and (max-width:1920px){
html{
font-size:14px;
}
}

@media screen and (max-width:600px){
html{
font-size:13px;
}
}

body{
overflow:hidden;
font-family:NotoSansJP, sans-serif;
font-weight:normal;
letter-spacing:1px;
color:#fff;
background:var(--main-bg);
}

@media screen and (max-width:600px){
body{
letter-spacing:normal;
}
}

/* loading */
#loading{
content:'';
position:fixed;
top:0;
left:0;
width:100vw;
height:100vh;
background:var(--main-bg);
z-index:99;
opacity:1;
transition:transform 2s,opacity 1s 0.5s;
}

#loading::before{
content:'';
position:fixed;
top:calc(50vh - 1rem);
left:calc(50vw - 1.5rem);
width:2rem;
aspect-ratio:1 / 1;
border-radius:100%;
background:var(--blue);
filter:blur(4px);
opacity:0.8;
transform:translate(0,0);
animation:loading-left 1.5s cubic-bezier(.4,0,.57,1) infinite;
transition:filter 2s;
}

#loading::after{
content:'';
position:fixed;
top:calc(50vh - 1rem);
left:calc(50vw - 0.5rem);
width:2rem;
aspect-ratio:1 / 1;
border-radius:100%;
background:var(--red);
filter:blur(4px);
opacity:0.8;
transform:translate(0,0);
animation:loading-right 1.5s cubic-bezier(.4,0,.57,1) infinite;
transition:filter 2s;
}

#loading.stop::before,#loading.stop::after{
animation-play-state:paused;
}

#loading.stop.spread::before,#loading.stop.spread::after{
filter:blur(50px);
}

@keyframes loading-left{
0%{
transform:translate(0,0);
opacity:0.8;
}

50%{
transform:translate(-1rem,0);
opacity:0.9;
}

100%{
transform:translate(0,0);
opacity:0.8;
}
}

@keyframes loading-right{
0%{
transform:translate(0,0);
opacity:0.8;
}

50%{
transform:translate(1rem,0);
opacity:0.9;
}

100%{
transform:translate(0,0);
opacity:0.8;
}
}
/*---------------*/

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

ul{
list-style:none;
}

h1,h2,h3,h4,h5,h6,th{
font-weight:normal;
font-size:1rem;
}

img,video{
vertical-align:bottom;
}

/*
--------------------------------
	header
--------------------------------
*/
header{
z-index:90;
position:relative;
min-height:100vh;
min-height:100svh;
display:flex;
align-items:flex-end;
padding:0 0 30px 2vw;
margin-bottom:40vh;
}

header h1{
line-height:1.1;
font-size:8vw;
font-weight:bold;
display:flex;
flex-direction:column;
}

header h1 span{
display:block;
}

header h1 span:nth-child(1){
order:1;
font-size:0.1em;
font-weight:normal;
letter-spacing:4px;
margin:1.5em 0 0;
}

header h1 span:nth-child(1)::before{
content:'CREATING EXPRESSION';
display:inline-block;
padding-right:2em;
margin-right:2em;
border-right:1px solid #fff;
}

@media screen and (max-width:900px){
header{
margin-bottom:20vh;
}

header h1{
font-size:6rem;
}

header h1 span:nth-child(1){
order:1;
font-size:0.15em;
}
}

@media screen and (max-width:600px){
header{
padding:0 0 20px 4vw;
}

header h1{
font-size:4.5rem;
}

header h1 span:nth-child(1)::before{
display:block;
padding-right:0;
margin-right:0;
border-right:none;
}
}

/*-- head-fix --*/
#fix-logo{
z-index:100;
position:fixed;
top:30px;
left:2vw;
width:220px;
}

#fix-logo a{
cursor:pointer;
}

#fix-logo img{
width:100%;
}

nav{
will-change:height,top;
z-index:90;
font-family:outfit, NotoSansJP, sans-serif;
font-size:0.9rem;
position:fixed;
top:30px;
right:2vw;
width:10.2em;
height:2.5em;
overflow:hidden;
background:var(--main-bg);
border:1px solid rgba(255,255,255,0.3);
text-shadow:none;
transition:all 0.5s;
}

nav.nav-open,nav.nav-foot{
height:17.5em;
}

#menu{
will-change:top;
z-index:90;
position:absolute;
top:0;
left:0;
transition:top 0.5s;
}

nav.top #menu{
top:0;
}

nav.mission #menu{
top:-2.5em;
}

nav.vision #menu{
top:-5em;
}

nav.value #menu{
top:-7.5em;
}

nav.service #menu{
top:-10em;
}

nav.company #menu{
top:-12.5em;
}

nav.contact #menu{
top:-15em;
}

#nav.nav-open #menu{
top:0;
}

#menu a{
display:flex;
justify-content:space-between;
align-items:center;
width:10.2em;
height:2.5em;
line-height:2.5em;
padding:0 10px;
transition:all 0.5s;
}

#menu a:hover{
background:rgba(255,255,255,0.3);
}

#menu a span{
display:inline-block;
width:7.5em;
}

#menu a::after{
font-size:0.6rem;
color:rgba(255,255,255,0.5);
opacity:0.8;
}

#nav-top::after{
content:'00';
}

#nav-mission::after{
content:'01';
}

#nav-vision::after{
content:'02';
}

#nav-value::after{
content:'03';
}

#nav-service::after{
content:'04';
}

#nav-company::after{
content:'05';
}

#nav-contact::after{
content:'06';
}

#current{
will-change:top;
position:absolute;
top:0;
left:0;
width:calc(10.2em - 2px);
height:2.5em;
cursor:pointer;
transition:all 0.5s;
}

#current:hover{
background:rgba(255,255,255,0.4);
}

nav.nav-open #current{
background:rgba(255,255,255,0.4);
}

nav.top #current{
top:0;
}

nav.mission #current{
top:2.5em;
}

nav.vision #current{
top:5em;
}

nav.value #current{
top:7.5em;
}

nav.service #current{
top:10em;
}

nav.company #current{
top:12.5em;
}

nav.contact #current{
top:15em;
}

#ruler{
position:fixed;
bottom:30px;
right:2vw;
width:15px;
height:calc(100vh - 17.5em - 90px);
border-right:1px solid rgba(255,255,255,0.4);
}

#here{
will-change:transform;
z-index:1;
position:absolute;
top:0;
right:0;
width:12px;
height:50px;
background:rgba(145,160,166,0.5);
transform:translate(0,0);
transition:transform 0.1s;
}

#here.dragging{
transition:none;
}

#lower-left-deco{
will-change:transform;
font-size:0.7rem;
position:fixed;
left:calc(2vw + 1em);
bottom:-20em;
display:flex;
align-items:center;
gap:0.4em;
opacity:0.6;
transform:rotate(-90deg) translate(0,0);
transform-origin:0 100%;
transition:transform 0.3s;
}

#lower-left-deco.in{
transform:rotate(-90deg) translate(calc(20em + 30px),0)
}

#lower-left-deco span{
will-change:background-color;
display:block;
width:0.4em;
height:1em;
background-color:var(--off);
}

@media screen and (max-width:900px){
#fix-logo{
top:20px;
width:220px;
}

nav{
top:20px;
}

#ruler{
bottom:30px;
width:10px;
height:calc(100vh - 17.5em - 150px);
border-right:1px solid rgba(255,255,255,0.4);
}

#here{
width:7px;
height:30px;
}
}

@media screen and (max-width:600px){
#fix-logo{
left:4vw;
width:150px;
}

nav{
right:4vw;
top:15px;
}

#ruler{
display:none;
}

#here{
width:5px;
height:20px;
}

#lower-left-deco{
display:none;
}
}

/*
--------------------------------
	mission-vision
--------------------------------
*/
#mission{
min-height:100vh;
display:flex;
align-items:center;
padding:0 0 0 10vw;
}

#vision{
position:relative;
min-height:100vh;
display:flex;
align-items:center;
justify-content:flex-end;
padding:0 10vw 0 0;
margin-top:40vw;
}

#mission .wrap,#vision .wrap{
position:relative;
border-left:3px solid rgba(255,255,255,0.5);
padding-left:3em;
}

#mission .wrap::before{
content:'01';
position:absolute;
top:0;
left:0;
font-family:outfit, NotoSansJP, sans-serif;
font-size:1vw;
font-weight:normal;
color:rgba(255,255,255,0.5);
transform:rotate(-90deg) translate(0,calc(-3em - 3px));
transform-origin:100% 0;
}

#vision .wrap::before{
content:'02';
position:absolute;
top:0;
left:0;
font-family:outfit, NotoSansJP, sans-serif;
font-size:1vw;
font-weight:normal;
color:rgba(255,255,255,0.5);
transform:rotate(-90deg) translate(0,calc(-3em - 3px));
transform-origin:100% 0;
}

#mission span,#vision span{
display:block;
}

#mission p span,#vision p span{
display:inline-block;
}

#mission h2,#vision h2{
font-size:4vw;
font-weight:bold;
line-height:1;
margin-bottom:0.3em;
position:relative;
top:-0.2em;
}

/*
#mission h2::after{
content:'ミッション';
display:inline-block;
margin-left:1em;
font-size:1vw;
font-weight:normal;
color:rgba(255,255,255,0.5);
}
*/
/*
#vision h2::after{
content:'ビジョン';
display:inline-block;
margin-left:1em;
font-size:1vw;
font-weight:normal;
color:rgba(255,255,255,0.5);
}
*/

#mission h3,#vision h3{
font-size:2vw;
font-weight:bold;
line-height:1.5;
margin-bottom:1em;
}

#mission p,#vision p{
font-size:1.2rem;
line-height:1.7;
position:relative;
bottom:-0.2em;
}

@media screen and (max-width:900px){
#mission,#vision{
justify-content:flex-start;
padding:0 4vw 0 10vw;
}

#vision{
margin-top:20vh;
}

#mission .wrap,#vision .wrap{
padding-left:1rem;
}

#mission .wrap::before,#vision .wrap::before{
font-size:0.8rem;
}

#mission h2,#vision h2{
font-size:3rem;
}

#mission h2::after,#vision h2::after{
font-size:0.3em;
}

#mission h3,#vision h3{
font-size:1.2rem;
}

#mission p,#vision p{
font-size:1rem;
}
}

@media screen and (max-width:600px){
#mission,#vision{
justify-content:flex-start;
padding:0 4vw 0 8vw;
}

#mission .wrap,#vision .wrap{
padding-left:1em;
}

#mission h2,#vision h2{
font-size:2.3rem;
}
}

/*-- insert image --*/
#pic1,#pic2,#pic3{
opacity:0.8;
font-size:0.6rem;
}

#pic1{
position:relative;
margin:0 auto;
width:60vw;
aspect-ratio:3 / 1;
background:url(img/pic1.jpg);
background-size:cover;
background-position:50% 50%;
}

#pic1::before{
content:'scene00-01 | StagePack Co., Ltd.';
position:absolute;
bottom:0;
left:-1em;
font-family:outfit, NotoSansJP, sans-serif;
color:rgba(255,255,255,0.5);
transform:rotate(-90deg);
transform-origin:0 100%;
}

#pic1::after{
content:'';
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
background:url(img/noise.jpg);
mix-blend-mode:multiply;
}

#pic2{
position:absolute;
top:-40vw;
left:20vw;
width:20vw;
aspect-ratio:1 / 3;
background:url(img/pic2.jpg);
background-size:cover;
background-position:100% 50%;
}

#pic2::before{
content:'scene01-02 | StagePack Co., Ltd.';
position:absolute;
display:block;
width:50vw;
text-align:right;
top:0;
right:calc(20vw + 2em);
font-family:outfit, NotoSansJP, sans-serif;
color:rgba(255,255,255,0.5);
transform:rotate(-90deg);
transform-origin:100% 0;
}

#pic2::after{
content:'';
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
background:url(img/noise.jpg);
mix-blend-mode:multiply;
}

#pic3{
position:relative;
margin:calc(50vh - 10vw) auto;
width:60vw;
aspect-ratio:3 / 1;
background:url(img/pic3.jpg);
background-size:cover;
background-position:50% 50%;
}

#pic3::before{
content:'scene02-03 | StagePack Co., Ltd.';
position:absolute;
bottom:0;
left:-1em;
font-family:outfit, NotoSansJP, sans-serif;
color:rgba(255,255,255,0.5);
transform:rotate(-90deg);
transform-origin:0 100%;
}

#pic3::after{
content:'';
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
background:url(img/noise.jpg);
mix-blend-mode:multiply;
}

@media screen and (max-width:900px){
#pic1{
background:url(img/pic1_m.jpg);
}

#pic2{
background:url(img/pic2_m.jpg);
}

#pic3{
background:url(img/pic3_m.jpg);
}

#pic1,#pic2,#pic3{
font-size:1vw;
width:70vw;
aspect-ratio:3 / 1;
background-size:cover;
background-position:50% 50%;
}

#pic2{
top:-20vh;
left:15vw;
}

#pic2::before{
width:auto;
text-align:left;
top:auto;
bottom:0;
left:-1em;
transform:rotate(-90deg);
transform-origin:0 100%;
}

#pic3{
margin:0 auto 40vh;
}
}

@media screen and (max-width:600px){
#pic1,#pic2,#pic3{
font-size:0.4rem;
}
}

/*
--------------------------------
	value
--------------------------------
*/
#value{
min-height:100vh;
padding:0 10vw;
margin-bottom:50vh;
display:flex;
flex-direction:column;
justify-content:center;
}

#value h2{
position:relative;
width:100%;
max-width:1700px;
margin:0 auto;
font-size:4vw;
font-weight:bold;
line-height:1.6;
margin-bottom:0.5em;
border-bottom:3px solid rgba(255,255,255,0.5);
}

#value h2:before{
content:'03';
position:absolute;
bottom:1em;
right:0;
font-family:outfit, NotoSansJP, sans-serif;
font-size:1vw;
font-weight:normal;
color:rgba(255,255,255,0.5);
text-shadow:none;
}

/*
#value h2::after{
content:'バリュー';
display:inline-block;
margin-left:1em;
font-size:1vw;
font-weight:normal;
color:rgba(255,255,255,0.5);
}
*/

#value ul{
width:100%;
max-width:1700px;
margin:0 auto;
display:flex;
gap:2rem;
}

#value li{
position:relative;
width:calc(100% / 3);
display:flex;
flex-direction:column;
justify-content:center;
align-content:center;
}

#passion::before,#design::before,#people::before{
content:'Passion';
display:block;
background:rgba(255,255,255,0.3);
line-height:2;
padding:0 1em 0.1em;
}

#design::before{
content:'Design';
}

#people::before{
content:'People';
}

#value ul span{
display:block;
}

#value .wrap{
position:relative;
padding:1em 0;
margin-bottom:2.5rem;
border:1px solid rgba(255,255,255,0.3);
}

#value .wrap::after{
content:'';
position:absolute;
bottom:-6.65rem;
left:calc(13rem - 1px);
width:1px;
height:4rem;
background:rgba(255,255,255,0.3);
transform:rotate(45deg);
transform-origin:100% 0;
}

#value h3{
font-size:1.5rem;
font-weight:bold;
}

#people h3{
padding-left:1rem;
}

#value .base{
display:flex;
flex-direction:column;
justify-content:center;
line-height:1.5;
width:calc(100% - 2em);
margin:1em auto 0;
padding:1em 0 0;
border-top:1px solid rgba(255,255,255,0.3);
/* js にて height 統一 */
}

#value .action{
position:relative;
display:flex;
flex-direction:column;
justify-content:center;
line-height:1.5;
padding:5rem 1rem;
/* js にて height 統一 */
}

#value .action::before{
content:'行動指針';
position:absolute;
top:-1.5rem;
left:13rem;
font-size:0.8rem;
line-height:2;
color:rgba(255,255,255,0.5);
padding:0 2rem;
border-bottom:1px solid rgba(255,255,255,0.3);
}

#value .action::after{
content:'';
position:absolute;
top:0;
left:0;
height:100%;
aspect-ratio:1 / 1;
border-radius:100%;
border:1px solid rgba(255,255,255,0.3);
}

#value .inline-block{
display:inline-block;
}

@media screen and (max-width:1160px){
#value{
max-width:700px;
margin:0 auto;
padding:100px 8vw 0;
}

#value h2{
font-size:3rem;
margin-bottom:1em;
}

#value h2::after{
font-size:0.3em;
}

#value h2:before{
font-size:0.8rem;
}

#value ul{
flex-direction:column;
align-items:center;
gap:5rem;
}

#value li{
width:100%;
}

#value h3{
font-size:1.2rem;
font-weight:bold;
}

#value .action{
align-items:flex-end;
text-align:right;
}

#value .action::before{
padding:0 1em;
left:auto;
right:17em;
}

#value .action::after{
left:auto;
right:0;
}

#value .wrap::after{
left:auto;
right:calc(13.5rem);
transform:rotate(-45deg);
transform-origin:100% 0;
}
}

@media screen and (max-width:600px){
#value{
padding:100px 4vw 0;
}

#value h2{
font-size:2.3rem;
}

#value .action{
font-size:0.9rem;
}

#value .action{
padding:3rem 1rem;
/* js にて height 統一 */
}

#value .action::before{
right:13.2em;
}

#value .wrap::after{
right:calc(10.5rem);
}
}

/*
--------------------------------
	service
--------------------------------
*/
#service{
width:80vw;
max-width:1700px;
min-height:100vh;
display:flex;
flex-direction:column;
justify-content:center;
margin:0 auto;
padding-top:80px;
}

#service h2{
position:relative;
font-size:1.5rem;
font-weight:normal;
border-bottom:3px solid rgba(255,255,255,0.5);
color:rgba(255,255,255,0.5);
margin-bottom:2vw;
text-shadow:none;
}

#service h2::before{
content:'Service';
display:inline-block;
font-size:4vw;
font-weight:bold;
line-height:1.6;
margin-right:0.5em;
color:#fff;
}

#service h2::after{
content:'04';
position:absolute;
bottom:1em;
right:0;
font-family:outfit, NotoSansJP, sans-serif;
font-size:1vw;
font-weight:normal;
color:rgba(255,255,255,0.5);
text-shadow:none;
}

.services{
cursor:pointer;
transition:all 0.8s;
}

.services:hover{
background:linear-gradient(90deg, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, 0.2) 90%);
}

.services.active{
background:linear-gradient(90deg, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, 0.2) 90%);
}

.services h3{
position:relative;
font-size:1.2rem;
padding:1em 0.5em 1em 1.2em;
display:flex;
align-items:center;
}

.services h3::before{
content:'';
display:block;
width:0.5em;
aspect-ratio:1 / 1;
border-radius:100%;
background:var(--red);
margin-right:1em;
filter:blur(0) brightness(1);
transition:filter 0.5s;
}

.services.active h3::before{
filter:blur(0.5px) brightness(1.5);
}

.services h3 span::before{
content:'+';
font-family:outfit, NotoSansJP, sans-serif;
position:absolute;
top:0.9em;
right:1em;
font-size:1.3em;
color:rgba(255,255,255,0.5);
text-shadow:none;
}

.services.active h3 span::before{
content:'-';
}

.services h3 span::after{
display:block;
font-size:0.6em;
color:rgba(255,255,255,0.5);
}

#service-1 h3 span::after{
content:'Hall Technical Management';
}

#service-2 h3 span::after{
content:'Event Production';
}

#service-3 h3 span::after{
content:'Technical Support';
}

#service-4 h3 span::after{
content:'Equipment Rental & Procurement';
}

#service-5 h3 span::after{
content:'Contents Production';
}

#service-6 h3 span::after{
content:'Digtal Marketing';
}

.services div{
position:relative;
overflow:hidden;
padding:0 1em 0 4em;
border-bottom:1px solid rgba(255,255,255,0.5);
max-height:1px;
color:rgba(255,255,255,0.8);
transition:all 0.5s;
transform: translate3d(0, 0, 0);
}

.services.active div{
max-height:250px;
padding:0 1em 2.5em 4em;
}

.services p{
font-size:1rem;
}

.services ul{
margin-top:1em;
line-height:2;
}

.services li{
display:flex;
}

.services li::before{
content:'';
display:block;
width:5px;
background:var(--red);
opacity:0.8;
margin:0.2em 1em 0 0.2em;
filter:brightness(1.3);
}

@media screen and (max-width:1160px){
#service h2{
font-size:calc(3rem * 0.3);
margin-bottom:1em;
}

#service h2::before{
font-size:3rem;
}

#service h2::after{
font-size:0.8rem;
}
}

@media screen and (max-width:900px){
#service{
width:100%;
max-width:700px;
margin:0 auto;
padding:0 8vw;
}

.services div{
padding:0 1.5em 0 3.1em;
text-align:justify;
}

.services.active div{
padding:0 1.5em 2em 3.1em;
}
}

@media screen and (max-width:600px){
#service{
padding:0 4vw;
}

#service h2{
font-size:calc(2.3rem * 0.3);
margin-bottom:1em;
}

#service h2::before{
font-size:2.3rem;
}

.services h3{
padding:1em 0;
}

.services h3::before{
margin-right:0.5em;
}

.services h3 span::before{
right:0;
}

.services div{
padding:0 1em;
text-align:justify;
}

.services.active div{
padding:0 1em 2em 1em;
}

.services li::before{
width:3px;
margin:0.2em 0.5em 0 0.2em;
}
}

/*
--------------------------------
	company
--------------------------------
*/
#company{
width:80vw;
max-width:1700px;
min-height:100vh;
margin:0 auto;
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
}

#company h2{
position:relative;
width:100%;
font-size:1.5rem;
font-weight:normal;
border-bottom:3px solid rgba(255,255,255,0.5);
color:rgba(255,255,255,0.5);
margin-bottom:2em;
}

#company h2::before{
content:'Company';
display:inline-block;
font-size:4vw;
font-weight:bold;
line-height:1.6;
margin-right:0.5em;
color:#fff;
}

#company h2::after{
content:'05';
position:absolute;
bottom:1em;
right:0;
font-family:outfit, NotoSansJP, sans-serif;
font-size:1vw;
font-weight:normal;
color:rgba(255,255,255,0.5);
text-shadow:none;
}

#company table{
width:100%;
margin:0 auto;
font-size:1rem;
line-height:2.3;
letter-spacing:3px;
text-align:left;
border-collapse:collapse;
}

#company th{
font-size:1rem;
padding-right:1em;
min-width:7.5em;
}

#company td{
line-height:1.4;
padding:1em 0 1em 2em;
border-left:1px solid rgba(255,255,255,0.3);
}

#company span{
display:inline-block;
font-size:0.8em;
}

@media screen and (max-width:1160px){
#company{
width:100%;
max-width:700px;
margin:0 auto;
padding:0 8vw;
}

#company h2{
font-size:calc(3rem * 0.3);
}

#company h2::before{
font-size:3rem;
}

#company h2::after{
font-size:0.8rem;
}
}

@media screen and (max-width:600px){
#company{
padding:0 4vw;
}

#company h2{
font-size:calc(2.3rem * 0.3);
}

#company h2::before{
font-size:2.3rem;
}
}
/*
--------------------------------
	contact
--------------------------------
*/
.grecaptcha-badge{
visibility: hidden;
}

#contact{
display:flex;
justify-content:space-between;
align-items:center;
width:80vw;
max-width:1700px;
min-height:100vh;
margin:0 auto;
}

#contact .wrap{
position:relative;
width:40%;
border-left:3px solid rgba(255,255,255,0.5);
padding-left:3em;
}

#contact .wrap::before{
content:'06';
position:absolute;
top:0;
left:-0.7em;
font-family:outfit, NotoSansJP, sans-serif;
font-size:1vw;
font-weight:normal;
color:rgba(255,255,255,0.5);
transform:rotate(-90deg);
transform-origin:0 100%;
}

#contact h2{
position:relative;
top:-0.7em;
width:100%;
font-size:1.5rem;
line-height:1;
font-weight:normal;
color:rgba(255,255,255,0.5);
margin-bottom:2vw;
}

#contact h2::before{
content:'Contact';
font-size:4vw;
font-weight:bold;
margin-right:0.5em;
color:#fff;
}

#contact h3{
font-weight:bold;
font-size:1.5rem;
margin-bottom:0.5em;
}

#contact span{
display:inline-block;
}

#contact p{
margin:1em 0;
}

#contact aside{
font-size:0.7rem;
}

#contact form{
width:55%;
}

#contact form label{
display:block;
}

#contact form span{
display:block;
}

#contact input[type=text],
#contact input[type=mail],
#contact input[type=tel],
#contact select,
#contact textarea{
appearance: none;
display:block;
font-size:1rem;
width:100%;
margin-top:0.1em;
background:transparent;
border:none;
color:#fff;
}

#contact input:focus,
#contact select:focus,
#contact textarea:focus{
appearance:none;
border:none;
box-shadow:0 0 0 transparent;
outline:none;
caret-color:rgba(255,255,255,0.5);
}

#contact input:-webkit-autofill,
#contact input:-webkit-autofill:hover,
#contact input:-webkit-autofill:focus,
#contact input:-webkit-autofill:active{
-webkit-box-shadow:0 0 0px 1000px #fff inset;
-webkit-text-fill-color:rgba(0,0,0,0.5) !important;
}

#contact textarea{
resize:vertical;
field-sizing:content;
min-height:min-content;
}

#contact input[type=checkbox]{
appearance:none;
display:flex;
justify-content:center;
align-items:center;
margin-right:0.5em;
cursor:pointer;
accent-color:#fff;
width:1rem;
height:1rem;
border:1px solid rgba(255,255,255,0.5);
}

#contact input[type=checkbox]:checked{
appearance:none;
display:flex;
justify-content:center;
align-items:center;
margin-right:0.5em;
cursor:pointer;
accent-color:#fff;
width:1rem;
height:1rem;
border:1px solid rgba(255,255,255,0.5);
}

#contact input[type=checkbox]:checked::after{
content:'✔︎';
display:block;
color:rgba(255,255,255,0.6);
}

#contact form ul{
display:flex;
flex-direction:column;
gap:10px;
}

#contact form li{
font-size:0.8rem;
color:rgba(255,255,255,0.8);
padding:8px 15px 10px;
background:rgba(255,255,255,0.1);
}

#contact #check{
color:#fff;
font-size:1rem;
margin:10px 0;
display:flex;
align-items:center;
}

#contact #submit{
padding:0;
background:transparent;
}

#contact #submit input[type=submit]{
appearance:none;
border:none;
font-size:0.8rem;
padding:10px 20px;
margin-top:10px;
color:rgba(255,255,255,0.8);
background:rgba(255,255,255,0);
border:1px solid rgba(255,255,255,0.3);
cursor:pointer;
transition:background 0.5s;
}

#contact #submit input[type=submit]:hover{
background:rgba(255,255,255,0.3);
}

@media screen and (max-width:1160px){
#contact{
flex-direction:column;
justify-content:center;
align-items:center;
width:100%;
max-width:700px;
padding:60px 8vw 0;
}

#contact .wrap{
width:100%;
border-left:none;
padding-left:0;
}

#contact .wrap::before{
display:none;
}

#contact h2{
position:relative;
font-size:calc(3rem * 0.3);
border-bottom:3px solid rgba(255,255,255,0.5);
margin-bottom:2.5em;
}

#contact h2::before{
content:'Contact';
display:inline-block;
font-size:3rem;
font-weight:bold;
line-height:1.6;
margin-right:0.5em;
color:#fff;
}

#contact h2::after{
content:'06';
position:absolute;
bottom:1em;
right:0;
font-family:outfit, NotoSansJP, sans-serif;
font-size:0.8rem;
font-weight:normal;
color:rgba(255,255,255,0.5);
text-shadow:none;
}

#contact form{
width:100%;
margin:2rem 0 20vh;
}

#contact textarea{
min-height:10rem;
}
}

@media screen and (max-width:600px){
#contact{
padding:60px 4vw 0;
}

#contact h2{
font-size:calc(2.3rem * 0.3);
}

#contact h2::before{
font-size:2.3rem;
}

#contact h3{
font-size:1.2rem;
}

#contact input[type=text],
#contact input[type=mail],
#contact input[type=tel],
#contact select,
#contact textarea{
font-size:16px;
}
}

/*
--------------------------------
	お問い合わせ送信後
--------------------------------
*/
#sub-page{
padding:70px 4vw 100px;
min-height:100vh;
display:flex;
flex-direction:column;
justify-content:center;
}

#sub-page h1{
font-size:1.4rem;
}

#error-page h1::before{
content:'Error : ';
color:rgba(255,255,255,0.5);
}

#sub-page h1 span{
display:inline-block;
}

#sub-page p{
margin-top:1em;
}

#sub-page p span{
display:inline-block;
}

#sub-page ul{
margin:2rem 0 0;
line-height:2;
}

#sub-page li{
padding:0.5em 0;
}

#complete-page #sub-page li{
font-size:0.8rem;
color:rgba(255,255,255,0.5);
padding:0.8em 0;
}

#complete-page #sub-page li span{
display:block;
font-size:1rem;
color:#fff;
}

#complete-page #sub-page li:last-child{
font-size:1rem;
color:#fff;
padding-top:2rem;
}

#sub-page a{
display:inline-block;
font-size:0.9em;
margin:0 0.3em;
padding:0 1em;
border:1px solid rgba(255,255,255,0.2);
transition:background 0.3s;
}

#sub-page a:hover{
background:rgba(255,255,255,0.3);
}

#sub-page li span{
display:inline-block;
}

#error-page small,#complete-page small{
position:absolute;
width:100%;
text-align:center;
bottom:30px;
left:0;
}

/*
--------------------------------
	footer
--------------------------------
*/
footer{
min-height:100vh;
display:flex;
justify-content:center;
align-items:center;
}

#foot-video{
position:relative;
width:60vw;
aspect-ratio:3 / 1;
}

#foot-video video{
width:100%;
height:100%;
object-fit:cover;
opacity:0.9;
}

#foot-video::before{
content:'scene footer | StagePack Co., Ltd.';
position:absolute;
bottom:0;
left:-1em;
font-family:outfit, NotoSansJP, sans-serif;
font-size:0.6rem;
color:rgba(255,255,255,0.5);
transform:rotate(-90deg);
transform-origin:0 100%;
}

footer small{
position:absolute;
bottom:30px;
left:0;
width:100%;
text-align:center;
z-index:1;
}

@media screen and (max-width:900px){
#foot-video{
width:70vw;
}

#foot-video::before{
font-size:1vw;
}
}

@media screen and (max-width:600px){
#foot-video::before{
font-size:0.4rem;
}
}

/*
--------------------------------
	page-background
--------------------------------
*/
#main-content{
position:relative;
opacity:0;
transition:opacity 1s 0.5s;
}

@media screen and (max-width:900px){
#ui-bg{
position:fixed;
z-index:99;
top:0;
left:0;
width:100%;
height:5px;
background:var(--main-bg);
}

header::after{
content:'';
position:fixed;
top:0;
left:0;
width:100%;
height:80px;
background:linear-gradient(0deg, rgba(74,80,85,0), rgba(74,80,85,1)70%);
}

#sub-page::after{
content:'';
position:fixed;
top:0;
left:0;
width:100%;
height:80px;
background:linear-gradient(0deg, rgba(74,80,85,0), rgba(74,80,85,1)70%);
}
}

#page-background{
z-index:-2;
position:fixed;
top:0;
left:0;
width:100vw;
height:100vh;
display:flex;
justify-content:center;
align-items:center;
background:var(--main-bg);
}

#key-graphics{
will-change:opacity;
height:80%;
aspect-ratio:1 / 1;
position:relative;
transition:opacity 0.8s;
}

@media screen and (max-width:900px){
#key-graphics{
height:40%;
}
}

#circle-blue{
will-change:transform;
position:absolute;
top:0;
left:0;
width:100%;
aspect-ratio:1 / 1;
border-radius:100%;
background:var(--blue);
transform:translate(0,10%) scale(0.2);
transition:transform 3s;
}

#graphics-blue{
will-change:transform;
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
transform:translate(0,10%) scale(1);
transition:transform 3s;
}

#graphics-blue path{
fill:var(--blue);
}

#circle-red{
will-change:transform;
position:absolute;
top:0;
left:0;
width:100%;
aspect-ratio:1 / 1;
border-radius:100%;
background:var(--red);
transform:translate(20%,-10%) scale(0.2);
transition:transform 6s;
}

#graphics-red{
will-change:transform;
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
transform:translate(20%,-10%) scale(1);
transition:transform 6s;
}

#graphics-red path{
fill:var(--red);
}

#filter-for-graphics{
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
-webkit-backdrop-filter:blur(30px);
backdrop-filter:blur(30px);
transition:backdrop-filter 2s;
}

#page-background::after{
content:'';
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
background:url(img/noise.jpg);
mix-blend-mode:multiply;
opacity:0.5;
}
