@charset "utf-8";

/********************************************
base / common
********************************************/
body{
    background: var(--color-bg);
    color: var(--color-text);
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN",
        "Hiragino Sans", Meiryo, sans-serif;
    line-height: 1.8;
    letter-spacing: 0.04em;
}

#wrapper{
    position: relative;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
}

/********************************************
bubbles (background)
********************************************/
#bubbles{
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}
.bubble{
    position: absolute;
    bottom: -12vh;
    border-radius: 50%;
    background: rgba(255,255,255,0.07);
    filter: blur(0.5px);
    opacity: 0;
    animation-name: bubbleUp;
    animation-timing-function: linear;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}
@keyframes bubbleUp{
    0%{
        transform: translate3d(0, 0, 0) scale(0.6);
        opacity: 0;
    }
    12%{ opacity: 1; }
    88%{ opacity: 1; }
    100%{
        transform: translate3d(var(--drift, 0), -115vh, 0) scale(1);
        opacity: 0;
    }
}

/********************************************
teaser (load screen)
********************************************/
#teaser{
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    text-align: center;
}
.teaser__logo{
    margin-top: 24px;
}
.teaser__text{
    margin-top: 16px;
    color: var(--color-text);
    letter-spacing: 0.3em;
    font-size: 14px;
}
.teaser__text .dots span{
    animation: teaserDot 1.4s infinite;
}
.teaser__text .dots span:nth-child(2){ animation-delay: 0.2s; }
.teaser__text .dots span:nth-child(3){ animation-delay: 0.4s; }

@keyframes teaserDot{
    0%,100%{ opacity: 0.2; }
    50%{ opacity: 1; }
}

@media (min-width: 769px){
    .teaser__illust{ width: 180px; }
    .teaser__logo{ width: 260px; }
}
@media (max-width: 768px){
    .teaser__illust{ width: 40vw; }
    .teaser__logo{ width: 60vw; }
    .teaser__text{ font-size: 3.4vw; }
}
