@font-face{font-family:NanumSquare;src:url(/fonts/NanumSquareL.woff2) format("woff2");font-weight:300}@font-face{font-family:NanumSquare;src:url(/fonts/NanumSquareR.woff2) format("woff2");font-weight:400}@font-face{font-family:NanumSquare;src:url(/fonts/NanumSquareB.woff2) format("woff2");font-weight:700}@font-face{font-family:OptimusPrinceps;src:url(/fonts/OptimusPrinceps.woff2) format("woff2");font-weight:400}*{box-sizing:border-box}#root canvas,body,html{height:calc(var(--vh, 1vh)*100);overflow:hidden;touch-action:none}body{margin:0;padding:0;height:100vh;font-family:NanumSquare;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}button,h1,h2,h3,h4,h5,input,p,span,ul{margin:0;word-break:keep-all;white-space:pre-wrap}ul{padding:0}img,svg{vertical-align:bottom}button{padding:0;border:0;cursor:pointer;background:rgba(0,0,0,0)}button,input,select,textarea{font-family:Nanum}.prevent_click{pointer-events:none}.mobile{display:none}@media screen and (max-width:768px){.mobile{display:block}}.loading_overlay{position:absolute;top:0;left:0;width:100%;height:100%;inset:0;z-index:1}.fish_color_picker{position:absolute;bottom:20px;left:20px;display:inline-block}.fish_color_picker .color_wrapper{display:inline-block;width:2.5rem;height:2.5rem;border:2px solid #fff;border-radius:50%;cursor:pointer;transition:box-shadow .3s ease-out}.fish_color_picker .color_wrapper:hover{box-shadow:0 0 10px #fff}.fish_color_picker input{opacity:0;width:0;height:0;position:absolute;pointer-events:none}.fish_config{position:absolute;bottom:20px;right:20px;display:flex;flex-direction:column;gap:5px;padding:10px;border-radius:10px;background:#fff;color:#222}.fish_config button{width:100%;min-height:1.5rem;border:1px solid #222;color:#222}.guide_overlay{position:absolute;top:0;left:0;width:100%;height:100%;will-change:opacity;opacity:0;transition:opacity .5s ease-out;cursor:pointer;z-index:1}.guide_overlay.show{opacity:1}.guide_overlay svg{width:10%;height:auto}@media screen and (max-width:768px){.guide_overlay svg{width:30%}}.guide_overlay p{color:#fff;font-size:1.5em;font-weight:700;pointer-events:none}@media screen and (max-width:768px){.guide_overlay p{font-size:1.25em}}.move_gallery_overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(white,#a0cfff);opacity:0;transition:opacity 1s ease;z-index:1}.move_gallery_overlay.show{opacity:1}.speech_bubble{position:relative;padding:1.5rem 2rem;min-width:39rem;min-height:12rem;border-radius:1.5rem;background:#fff;font-size:3.5rem;line-height:130%;transform-origin:bottom center;animation:scaleYUp .3s ease-out;will-change:transform;word-break:keep-all}@media screen and (max-width:768px){.speech_bubble{padding:1rem 1.5rem;min-width:44rem;min-height:10rem;font-size:5rem;line-height:140%}}.speech_bubble:after{content:"";position:absolute;left:2.25rem;bottom:-1.25rem;border-color:hsla(0,0%,100%,.95) rgba(0,0,0,0) rgba(0,0,0,0);border-style:solid;border-width:1.25rem 1.25rem 0}.game_overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2;pointer-events:none}.game_overlay .clear,.game_overlay .countdown,.game_overlay .start{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0) scale(.7);color:#fff;font-size:6rem;font-weight:700;opacity:0}.game_overlay .score{position:absolute;top:20px;right:30px;font-size:1.5rem;color:#fff}.gameover_overlay{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:rgba(0,0,0,.5);animation:fadeIn 1s ease-out forwards;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;opacity:0;z-index:1}.gameover_overlay h1{position:relative;padding:0 1rem;width:100%;background:rgba(0,0,0,.7);color:#80221d;font-family:OptimusPrinceps;font-size:3.5rem;letter-spacing:.05em;transform:scaleY(1.4)}.gameover_overlay h1:after,.gameover_overlay h1:before{content:"";position:absolute;left:0;right:0;height:1.5rem;pointer-events:none}.gameover_overlay h1:before{top:-1.5rem;background:linear-gradient(0deg,rgba(0,0,0,.7),transparent)}.gameover_overlay h1:after{bottom:-1.5rem;background:linear-gradient(180deg,rgba(0,0,0,.7),transparent)}.gameover_overlay p{position:absolute;transform:translate3d(0,10rem,0);color:#fff;text-shadow:0 0 10px hsla(0,0%,100%,.5);font-size:1rem;opacity:0;transition:opacity .3s ease-out}.gameover_overlay p.show{opacity:1}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes scaleBounce{0%{transform:scale(2.5);opacity:0}10%{opacity:1}to{transform:scale(1);opacity:1}}@keyframes scaleYUp{0%{transform:scaleY(0)}to{transform:scaleY(1)}}