.roboto-regular {
    font-family: "Roboto", sans-serif;
    font-weight: 400;
    font-style: normal;
}

.roboto-medium {
    font-family: "Roboto", sans-serif;
    font-weight: 500;
    font-style: normal;
}

.roboto-bold {
    font-family: "Roboto", sans-serif;
    font-weight: 700;
    font-style: normal;
}

.roboto-black {
    font-family: "Roboto", sans-serif;
    font-weight: 900;
    font-style: normal;
}
.lato-thin {
    font-family: "Lato", serif;
    font-weight: 100;
    font-style: normal;
}
.lato-light {
    font-family: "Lato", serif;
    font-weight: 300;
    font-style: normal;
}
.lato-regular {
    font-family: "Lato", serif;
    font-weight: 400;
    font-style: normal;
}
.lato-bold {
    font-family: "Lato", serif;
    font-weight: 700;
    font-style: normal;
}
.lato-black {
    font-family: "Lato", serif;
    font-weight: 900;
    font-style: normal;
}

*,
*:before,
*:after {
    box-sizing: border-box;
}
html {
    scroll-behavior: smooth;
}

body {
    height: 100%;
}

.alpha a:hover img {
    opacity: 0.7;
    filter: alpha(opacity=50);
    -ms-filter: "alpha(opacity=70)";
}
a {
display: block;
width: 100%;
/*height: 100%;*/
color: unset;
text-decoration: none;
}
img {
    width: 100%;
}


/* animate  */
.animation {
    opacity : 0.0;
    transform : translate(0, 50px);
    transition : all 1000ms;
    }

.animation.scrollin {
    opacity : 1;
    transform : translate(0, 0);
    }
.animation.scrollin:nth-of-type(2) {
	transition-delay: 0.3s;
}
.animation.scrollin:nth-of-type(3) {
	transition-delay: 0.5s;
}
.animation.scrollin:nth-of-type(4) {
	transition-delay: 0.8s;
}


.animate {
    opacity : 0.0;
    transform : translate(0, 0);
    transition : all 1200ms 1.2s;
}
.animate.scrollin {
    opacity : 1;
    transform : translate(0, 0);
	transition-delay: 0.2s;
}
.animate.scrollin:nth-of-type(2)  {
	transition-delay: 0.4s;
}
.animate.scrollin:nth-of-type(3)  {
	transition-delay: 0.8s;
}
.animate.scrollin:nth-of-type(4)  {
	transition-delay: 1.1s;
}
.animate.scrollin:nth-of-type(5)  {
	transition-delay: 1.5s;
}


.anim .fadein {
    opacity: 0;
    animation: fadeIn 1.0s cubic-bezier(0.33, 1, 0.68, 1) forwards;
} 
.anim .fadein:nth-of-type(1)  {
	animation:fadeIn 1.0s  forwards 0.1s;
}
.anim .fadein:nth-of-type(2)  {
	animation:fadeIn 1.0s  forwards 0.4s;
}
.anim .fadein:nth-of-type(3)  {
	animation:fadeIn 1.0s  forwards 0.8s;
}
.anim .fadein:nth-of-type(4)  {
	animation:fadeIn 1.0s  forwards 1.1s;
}
.anim .fadein:nth-of-type(5)  {
	animation:fadeIn 1.0s  forwards 1.5s;
}

@keyframes fadeIn {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

.mg-top30 {
    margin-top: 30px !important;
}
.mg-top50 {
    margin-top: 50px !important;
}
.mg-top100 {
    margin-top: 100px !important;
}


#loading {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #fff; /* or rgba(255,255,255,0.8); */
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

/* シンプルな円形スピナー */
.spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #ccc;
    border-top: 4px solid #3498db;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}
