@charset "utf-8";
@import url(https://unpkg.com/@kfonts/nexon-lv2-gothic/index.css);

:root {
    --body : #111 ;
    --darknavy : #091C4E ;
    --darkgray : #2B2F36; 
    --gray : #666666;
    --blue : #4777F5;
    --orange : #F55C36 ;

    --bg-navy: #133CA8 ;
    --bd-blue: #7199F2;
}
img {-webkit-touch-callout:none;}
/* reset with bootstrap */
body{position:relative;-webkit-text-size-adjust:none;}
body,input,textarea,select,button,table{font-weight: 400;font-family: 'NEXON Lv2 Gothic',sans-serif;line-height: 1.3;color: #111}
a,input,textarea,select,button{text-decoration:none;color:#231f20;outline:0 ;-webkit-transition:color .2s,border-color .2s,background .2s,box-shadow .2s,opacity .2s;transition:color .2s,border-color .2s,background .2s,box-shadow .2s,opacity .2s}
a:hover,a:focus,a:active{color:inherit;text-decoration: none;}
[role=button]{outline:0 !important}
a:focus:not(:focus-visible),input:focus:not(:focus-visible),textarea:focus:not(:focus-visible),select:focus:not(:focus-visible),button:focus:not(:focus-visible),[role=button]:focus:not(:focus-visible){outline:0 !important}
body,p,h1,h2,h3,h4,h5,h6,ul,ol,li,dl,dt,dd,table,th,td,form,fieldset,legend,input,textarea,button,select{margin:0;padding:0}
input{background: none; border: 0;box-shadow: none;}
input::-ms-clear,input::-ms-reveal{display:none;width:0;height:0;}
input::-webkit-search-decoration,input::-webkit-search-cancel-button,input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}
li{list-style:none}
label{cursor:pointer;margin: 0;}
table{width:100%;border-collapse:collapse}
a,button{cursor:pointer}
button{display: inline-block; border:0;box-shadow:none;background:none;font-family: inherit;}
i{font-style:normal;}
img{max-width:100%}
h1, h2, h3, h4, h5, h6{font-weight: 700 !important;font-size: inherit;line-height: inherit;}
textarea{resize: none;overflow: hidden}


body{width: 700px; height: 1340px; overflow: hidden !important;margin: 0 auto;}

@font-face {
    font-family: 'ONE-Mobile-POP';
    src: url("../font/ONE\ Mobile\ POP.ttf") format("truetype");
    font-weight: normal;
    font-style: normal;
}

/*  */
.game-wrap{ width: 700px; height: 1340px;overflow: hidden !important;}
.game-wrap > section{ width: 100%; height: 100%; display: none;overflow: hidden !important;}
.game-wrap > section.active{display: block;}
.box{
    background-color: #fff; width: 540px;border-radius: 48px;margin: 0 auto; 
}
/* gate */
section.gate {
    background:url(../images/game/gate/bg.jpg) no-repeat center top / cover ;
}
section.gate h1{
    padding-top: 80px; text-align: center;
}
section.gate .gate-img{
    position: relative; 
    width: 100%; height: 100%;
    background:url(../images/game/gate/intro-bear.gif) no-repeat center top / cover ;
    font-family: 'ONE-Mobile-POP'; /* 폰트 로딩용 */
    /* animation: gateimg 1s infinite both; */
}
@keyframes gateimg {
    0%,50%{ background-image:url(../images/game/gate/bear1.png) }
    51%, 100%{ background-image:url(../images/game/gate/bear2.png) }
} 
section.gate .btn-wrap{
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 15px;
    position: absolute;
    bottom: 100px;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    z-index: 5;
}
section.gate .link-ranking{
    margin-top: 35px;
    text-align: center; 
    position: absolute;
    bottom: 80px;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    z-index: 5;
}
section.gate .link-ranking a {
    font-size: 32px; font-weight: 700; color: var(--darknavy);
}
/* game */
.game-hd {position: relative; height: 120px;z-index: 10;}
.game-hd .btn-first {
    display: inline-block;margin: 25px 24px; width: 70px;height: 70px;
    background:url(../images/game/ico-back.svg) no-repeat center top / cover ;
    font-size: 0;text-indent: -9999px;
}
/* intro */
section.intro{
    background:url(../images/game/game-bg.jpg) no-repeat center top / cover ;
}
section.intro .intro-cont{margin-top: 80px;text-align: center;}
section.intro .btn-start{
    position: relative; width: 249px; height: 123px;
    background:url(../images/game/gate/bear1.png) no-repeat center top / cover ;
    font-size: 0;text-indent: -9999px;
    animation: introbtn 1s infinite both;
}
@keyframes introbtn {
    0%,50%{ background-image:url(../images/game/intro/btn-start.png) }
    51%, 100%{ background-image:url(../images/game/intro/btn-start-on.png) }
} 
section.intro .box{
    background-color: #fff; width: 540px;border-radius: 48px;
    margin: 0 auto; margin-top: -45px;
    padding: 116px 40px 160px 40px ;
    letter-spacing: -1px;
    font-size: 34px;line-height: 1.5;font-weight: 500;
    color: var(--darkgray);
}
section.intro .box strong {
    color: var(--blue);
}
section.intro .snuggom{
    display: inline-block;
    position: relative; margin-top: -140px; 
}
section.intro .snuggom::after{
    content: "" ; position: absolute; top: 0 ; left: -55px; width: 55px; height: 76px;
    background: url(../images/game/intro/tear1.png);
    animation: tear1 2s infinite both;
}
section.intro .snuggom::before{
    content: "" ; position: absolute; top: 0 ; right: -55px; width: 55px; height: 76px;
    background: url(../images/game/intro/tear2.png);
    animation: tear2 2s infinite both;
}
@keyframes tear1 {
    0%,10%{transform: rotate(0deg);}
    10%, 20%{ transform: rotate(-15deg);}
    20%, 30%{transform: rotate(0deg);}
    30%, 40%{ transform: rotate(-15deg);}
    40%, 50%{ transform: rotate(0deg);}
    51%, 60%{transform: rotate(-15deg) translateY(-20px);}
    60%, 70%{ transform: rotate(0deg) translateY(-20px);}
    70%, 80%{transform: rotate(-15deg) translateY(-20px);}
    80%, 90%{ transform: rotate(0deg) translateY(-20px);}
    90%, 100%{ transform: rotate(-15deg) translateY(-20px);}
} 
@keyframes tear2 {
    0%,10%{transform: rotate(0deg) translateY(-20px) ;}
    10%, 20%{ transform: rotate(15deg) translateY(-20px) ;}
    20%, 30%{transform: rotate(0deg) translateY(-20px) ;}
    30%, 40%{ transform: rotate(15deg) translateY(-20px) ;}
    40%, 50%{ transform: rotate(0deg) translateY(-20px) ;}
    51%, 60%{transform: rotate(15deg)}
    60%, 70%{ transform: rotate(0deg) ;}
    70%, 80%{transform: rotate(15deg) ;}
    80%, 90%{ transform: rotate(0deg) ;}
    90%, 100%{ transform: rotate(15deg) ;}
} 
section.intro .btn-wrap{
    text-align: center; margin-top: 50px;
}
section.intro .btn-next{
    width: 428px; height: 148px;   
    background: url(../images/game/intro/btn-next.png);
    /* animation: nextbtn 1s infinite both; */
    font-size: 0;text-indent: -9999px;
}
section.intro .btn-next:active{
    background-image:url(../images/game/intro/btn-next-on.png)
}
@keyframes nextbtn {
    0%,50%{ background-image:url(../images/game/intro/btn-next.png) }
    51%, 100%{ background-image:url(../images/game/intro/btn-next-on.png) }
} 
/* ready */
section.ready{
    background:url(../images/game/game-bg.jpg) no-repeat center top / cover ;
}
section.ready .box{ 
    margin-top: 235px; height: 510px;
    display: flex; flex-direction: column; justify-content: center; align-items: center;
}
section.ready .box .text{font-size: 46px;font-weight: 700;line-height: 1.5; margin-bottom: 16px;}
section.ready .box .count{
    font-family: 'ONE-Mobile-POP'; font-size: 232px;line-height: 1; color: var(--blue);
}
section.ready .snuggom{
    position: relative; width:415px; height: 370px; margin:0 auto ; margin-top: -150px;
    background:url(../images/game/intro/bubble-bear1.png) no-repeat center top / cover ;
    animation: readygom 1s infinite both;
}
@keyframes readygom {
    0%,50%{ background-image:url(../images/game/intro/bubble-bear1.png) }
    51%, 100%{ background-image:url(../images/game/intro/bubble-bear2.png) }
} 

/* game */
section.game{
    position: relative;
    width: 100%; height: 100%; max-height: 1340px; overflow: hidden !important;
    background:url(../images/game/game-after.jpg) no-repeat center top / cover ;
}
section.game .game-hd{position: absolute; top: 0;left: 0;width: 100%;z-index: 50;}
section.game .game-hd button{filter: invert(1);}
section.game .cursor{
    position: absolute; top: 50%; left: calc(50% - 227px);
    width: 454px; height: 431px;
    background:  url(../images/game/game-cursor.png) no-repeat 0 0;
    display: none;
    pointer-events: none;
}
.game-before.start + .cursor {
    display: block;
}
.game-before.click + .cursor{
    transform: scale(0.9);
}

.game-before{
    position: relative; width: 100%; height: 100%;
    display: flex; flex-direction: column; justify-content: center;
    background:url(../images/game/game-after.jpg) no-repeat center top / cover ;
}
.game-before #canvas {position: absolute;bottom: 0; width: 700px;height: 1018px;overflow: hidden;background: transparent;}

.game-before p{
    position: absolute;
    top: 50%;left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;font-size: 32px;font-weight: 700;
    color: #fff; text-align: center;
    pointer-events: none;
}
.game-before.start p{
    animation: touchtext 1s infinite both;
}
@keyframes touchtext{
    0%,100%{opacity: 1;}
    50%{opacity: 0;}
}
.game-limit{
    position: absolute; top: 130px; left: 40px; right: 40px;
    padding: 38px; border-radius: 38px;
    background: #FFF;
    box-shadow: 0px 26.466px 47.261px 0px rgba(0, 0, 0, 0.08);
    z-index: 9; pointer-events: none;
}
.game-limit > *{display: block; text-align: center;}
.game-limit p{font-size: 25px;font-weight: 500;color: var(--gray);margin-bottom: 12px;}
.game-limit .limit-count{
     font-family: 'ONE-Mobile-POP';  font-size: 52px; line-height: 1;  font-weight: 400;
}
.game-limit .limit-count.hurry{color: var(--orange);}
.game-limit .limit-count span{display: inline-block;width: 36px;}
.game-limit .limit-count span:nth-last-child(4){width: 20px;}

section.game p.snuggom{
    position: absolute; z-index: 5;
    pointer-events: none; display: none;
}
section.game p.snuggom span{
    position: absolute; right: 60px; top: 10px;
    font-size: 28px;line-height: 1.5;font-weight: 500;
    padding: 12px 27px; white-space: nowrap; border-radius: 2em;
    background-color: #07112D; color: #fff; 
}
section.game p.snuggom span::after{
    content: "";
    position: absolute; top: calc(100% - 6px); right: 50px;
    width: 33px;height: 28px;
    background: url(../images/game/tooltip-tail.svg) no-repeat bottom right / contain;
}
section.game p.snuggom img{
    max-width: none;
}
section.game p.snuggom1{ right: 0; top: 350px; }
section.game p.snuggom2{ left: 0; top: 440px; }
section.game p.snuggom3{ right: 0; top: 550px; }
section.game p.snuggom2 span{
    right: auto; left: 60px;
}
section.game p.snuggom2 span::after{
    transform: scaleX(-1); right: auto; left: 60px;
}
section.game p.snuggom2 img{
    transform: scaleX(-1); 
}
section.game .finished{
    position: absolute; z-index: 20; display: none;
    top: 50%; left: 50%; transform: translate(-50% , -50%); white-space: nowrap;
    font-size: 46px;  font-family: 'ONE-Mobile-POP';  color: #fff ;
    padding: 54px 117px; justify-content: center; align-items: center;
    border-radius: 24px;
    background: rgba(43, 47, 54, 0.90);
    pointer-events: none;
}
section.game.finish .game-hd{display: none;;}
section.game.finish p.snuggom{opacity: 0 !important;}
section.game.finish .finished{display: inline-flex;}

.bubble {position: absolute;width: var(--radius);height: var(--radius);object-fit: contain;will-change: transform, opacity;animation: explode 0.8s linear forwards;}
.bubble img {width: 100%;}

@keyframes explode {
    0% {
        transform: translate(0, 0) scale(1);
        opacity: 0;
    }
    70% {
        transform: translate(calc(var(--x) * 0.8), calc(var(--y) * 0.8)) scale(1);
        opacity: 1;
    }
    100% {
        transform: translate(var(--x), var(--y)) scale(0.6);
        opacity: 0;
    }
}

/*  */

section.process{
    background:url(../images/game/game-after2.jpg) no-repeat center top / cover ;
}
section.process .loading{ 
    position: absolute; z-index: 50; 
    top: 0;left: 0;right: 0;bottom: 0;
    background: url(../images/game/loading-bg1.png) no-repeat center bottom / 100% auto;
    animation: processbg 1s infinite both;
}
@keyframes processbg {
    0%,50%{ background-image:url(../images/game/loading-bg1.png) }
    51%, 100%{ background-image:url(../images/game/loading-bg2.png) }
} 
section.process .loading > p{
    text-align: center;  font-family: 'ONE-Mobile-POP';  color: #fff ; font-size: 48px;
    margin:0 auto; margin-top: 305px;
    width: 587px; height: calc(415px + 102px);
    background: url(../images/game/loading-bear1.png) no-repeat center bottom / 100% auto;
    animation: processbear 1s infinite both;
}
@keyframes processbear{
    0%,50%{ background-image:url(../images/game/loading-bear1.png) }
    51%, 100%{ background-image:url(../images/game/loading-bear2.png) }
} 


/* popup */
.popup {position: fixed;z-index: 999;top: 0;left: 0;width: 100%;height: 100%;display: none;}
.popup.show {display: block;}
.popup-bg {position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: rgba(0, 0, 0, 0.5);}
.popup-content {position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);width: 600px;border-radius: 40px;overflow: hidden;}
.popup .btn-close {position: absolute;width: 54px;height: 54px;top: 24px;right: 24px;text-indent: -999px;overflow: hidden;}
.sns-wrap {position: absolute;top: 185px;left: 50%;transform: translateX(-50%);display: flex;justify-content: center;align-items: center;gap: 16px;}
.sns-wrap > * {display: block;width: 80px;height: 80px;text-indent: -999px;overflow: hidden;}
