@charset "utf-8";

/*
body {
    overflow: hidden;
}
.loading {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #fff;
    z-index: 9999999999;
    display: flex;
    justify-content: center;
    align-items: center;
}

body.loaded {
    overflow: auto;
}
body.loaded .loading {
    display: none; 
}*/


html.is-loading,
body.is-loading {
    overflow: hidden;
}


.loading {
	display: flex;
    position: fixed;
    z-index: 99999;
    inset: 0;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #fff;
    opacity: 1;
    visibility: visible;
    transition:
        opacity 0.45s ease,
        visibility 0.45s ease;
}

.loading.is-finished {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.loading-animation {
    max-width: 320px;
    width: 100%;
    margin: 0 auto;
    position: relative;
    padding: 0 0 3% 0;
    opacity: 1;
    transition: opacity 0.15s ease;
}

/* 先に文字と装飾だけ消す */
.loading.is-content-finished .loading-animation {
    opacity: 0;
}

.op-text {
    font-size: clamp(30px, 10.5cqw, 45px);
    font-weight: 500;
    letter-spacing: 0.085em;
    line-height: 2.2;
	visibility: hidden;
}

.op-text.is-ready {
    visibility: visible;
}

.gjs-dashed .op-text {
    visibility: visible;
}

.op-text__char {
    display: inline-block;
    color: #212529;
    opacity: 0;
    filter: blur(30px);
    -webkit-filter: blur(30px);
}

.op-text__char.is-show {
    animation: blur 1.8s ease-out forwards;
}

@keyframes blur {
    0% {
        opacity: 0;
        filter: blur(30px);
        -webkit-filter: blur(30px);
    }

    35% {
        opacity: 0.45;
        filter: blur(18px);
        -webkit-filter: blur(18px);
    }

    70% {
        opacity: 0.85;
        filter: blur(6px);
        -webkit-filter: blur(6px);
    }

    100% {
        opacity: 1;
        filter: blur(0);
        -webkit-filter: blur(0);
    }
}
.op-logo01 {
    width: 62%;
    margin: 0 auto;
  	position: absolute;
  	left: 0;
  	right: 0;
  	bottom: 0;
  	z-index: -1;
}

.op-logo02 {
    width: 16%;
    margin: 0 auto;
  	position: absolute;
  	right: 5%;
  	top: -5%;
  	z-index: 1;
}

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
@media screen and (min-width:1200px) {
  
.loading-animation {
    padding: 0 0 1% 0;
}

.op-logo01 {
  	bottom: 0;
}

.op-logo02 {
  	right: 0;
  	top: -2%;
}

  
}/* min-width: 1200px ここまで */
/* ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ */ 