*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:#1b2a55;color:#fff;font-family:Noto Sans KR,Apple SD Gothic Neo,Malgun Gothic,sans-serif;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button{font-family:inherit;cursor:pointer}.hidden{display:none!important}#game{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}#vignette{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;transition:opacity .8s;background:radial-gradient(ellipse at 50% 45%,transparent 45%,rgba(60,10,0,.55) 100%),linear-gradient(180deg,rgba(255,90,30,.18),transparent 40%,rgba(30,10,0,.35))}#vignette.on{opacity:1;animation:alarm 2.4s ease-in-out infinite}@keyframes alarm{50%{filter:brightness(1.25) saturate(1.3)}}#hud{position:fixed;top:calc(env(safe-area-inset-top) + 12px);left:16px;right:16px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;text-shadow:0 2px 0 #1b2a55,0 0 8px rgba(0,0,0,.4)}#hud .stats{font-weight:900;font-size:20px}#pause-btn{pointer-events:auto;width:40px;height:40px;border-radius:50%;border:0;background:#141c38a6;color:#fff;font-size:13px;letter-spacing:-2px}#hint{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 28px);transform:translate(-50%);padding:8px 16px;border-radius:999px;background:#1b2a5599;font-weight:700;font-size:14px;pointer-events:none;transition:opacity .6s;white-space:nowrap}#hint.hide{opacity:0}#title{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:calc(env(safe-area-inset-top) + 18px) 16px calc(env(safe-area-inset-bottom) + 24px);pointer-events:none}#title>*{pointer-events:auto}.logo-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.alert{font-size:12px;font-weight:900;padding:5px 12px;border-radius:6px;background:#c81414d9;animation:blink 1s steps(2) infinite;max-width:100%}@keyframes blink{50%{background:#780a0ad9}}.logo{font-family:Black Han Sans,sans-serif;font-size:clamp(48px,13vw,92px);line-height:1;color:#ffcb05;-webkit-text-stroke:3px #2a75bb;text-shadow:0 6px 0 #1b2a55,0 10px 24px rgba(0,0,0,.6);animation:pop .8s cubic-bezier(.2,1.6,.4,1) both}@keyframes pop{0%{transform:scale(.4);opacity:0}}.tagline{font-weight:900;font-size:clamp(14px,3.8vw,20px);text-shadow:0 2px 6px rgba(0,0,0,.8)}.menu{display:flex;flex-direction:column;gap:10px;width:min(360px,100%)}.menu .row,.card .row{display:flex;gap:8px}.menu .row button,.card .row button{flex:1}button.primary,.menu button,.card button{border:0;border-radius:14px;padding:13px 16px;font-weight:900;font-size:16px;color:#fff;background:#141c38d1;box-shadow:0 3px #00000059}button.primary{color:#1b2a55;background:#ffcb05;box-shadow:0 4px #b88c00;font-size:20px}#btn-start{padding:16px;font-size:24px;animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{transform:scale(1.04)}}button.icon{flex:0 0 52px!important}button:active{transform:translateY(2px)}.popup{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;display:none;align-items:center;justify-content:center;padding:16px;background:#0508148c}.popup.show{display:flex}.card{width:min(420px,100%);max-height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:20px;border-radius:20px;background:#182346;border:2px solid #2a75bb;box-shadow:0 12px 40px #00000080;animation:pop .35s ease-out both}.card.narrow{width:min(340px,100%)}.card h3{font-size:22px;text-align:center;color:#ffcb05}.card h3 small{font-size:12px;color:#9fb3d9;margin-left:4px}.controls{list-style:none;display:flex;flex-direction:column;gap:10px;margin:4px 0 6px}.controls li{display:flex;gap:12px;align-items:center;background:#ffffff0d;border-radius:12px;padding:10px}.controls .key{flex:0 0 54px;text-align:center;font-size:20px}.controls div{display:flex;flex-direction:column}.controls small{opacity:.75;font-size:12px}.result-dist{text-align:center;font-family:Black Han Sans,sans-serif;font-size:56px;color:#fff}.result-dist small{font-size:24px;margin-left:4px}.result-sub{text-align:center;font-size:14px;color:#c8d6f0}.result-sub.best{color:#ffcb05;font-weight:900}.name-row{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#9fb3d9}.name-row input{font:inherit;font-size:16px;font-weight:700;padding:10px 12px;border-radius:10px;border:2px solid #2a75bb;background:#0f1730;color:#fff;user-select:text;-webkit-user-select:text}#rank-list,.rank-list{list-style:none;display:flex;flex-direction:column;gap:6px;counter-reset:r}#rank-list li,.rank-list li{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;background:#ffffff0d;counter-increment:r}#rank-list li:before,.rank-list li:before{content:counter(r);width:22px;font-weight:900;color:#ffcb05}#rank-list li .n,.rank-list li .n{flex:1;font-weight:700}#rank-list li .d,.rank-list li .d{font-weight:900}#rank-list li small{opacity:.6;font-size:11px}#rank-list .empty,.rank-list .empty{justify-content:center;opacity:.7}#rank-list .empty:before,.rank-list .empty:before{content:none}#toast{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 64px);transform:translate(-50%,-20px);display:flex;gap:10px;align-items:center;padding:8px 14px 8px 8px;border-radius:14px;z-index:5;background:#141c38e0;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}#toast.show{opacity:1;transform:translate(-50%)}#toast img{width:44px;border-radius:4px}#toast div{display:flex;flex-direction:column;line-height:1.25}#toast b{color:#ffcb05;font-size:13px}#toast span{font-weight:900;font-size:16px}#toast small{opacity:.75;font-size:11px}#dex{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:none;flex-direction:column;background:#0e142af7;padding:calc(env(safe-area-inset-top) + 12px) 16px 16px}#dex.show{display:flex}.dex-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:18px}.dex-head span{color:#ffcb05;font-weight:900;margin-left:6px}#dex-close{border:0;background:#ffffff1f;color:#fff;width:36px;height:36px;border-radius:50%;font-size:18px}#dex-grid{flex:1;overflow-y:auto;display:grid;gap:10px;touch-action:pan-y;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));align-content:start}.slot{border:0;background:none;color:#fff;display:flex;flex-direction:column;gap:4px;align-items:center}.slot img,.slot .unknown{width:100%;aspect-ratio:63 / 88;border-radius:6px}.slot .unknown{display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:900;color:#ffffff4d;background:repeating-linear-gradient(45deg,#26304f 0,#26304f 8px,#2c3759 8px,#2c3759 16px)}.slot span{font-size:11px;opacity:.85}#dex-view{position:fixed;top:0;right:0;bottom:0;left:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#000000d9}#dex-view.show{display:flex}#dex-view img{max-width:min(80vw,420px);max-height:75vh;border-radius:12px}#loading{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:radial-gradient(circle at 50% 40%,#2a75bb,#1b2a55 70%);transition:opacity .5s;z-index:30}#loading.done{opacity:0;pointer-events:none}#loading .logo{font-size:44px;-webkit-text-stroke:2px #2a75bb;animation:none}#loading .bar{width:min(260px,70vw);height:10px;border-radius:5px;background:#fff3;overflow:hidden}#bar-fill{width:0;height:100%;background:#ffcb05;transition:width .2s}#loading-text{font-size:14px;opacity:.8}#hud .hp{position:relative;flex:1;max-width:220px;height:18px;margin:0 12px;border-radius:9px;background:#141c38b3;border:2px solid rgba(255,255,255,.7);overflow:hidden}#hp-fill{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;background:linear-gradient(180deg,#7ee35a,#3fa52a);transition:width .25s}#hp-fill.mid{background:linear-gradient(180deg,#ffd84a,#e0a412)}#hp-fill.low{background:linear-gradient(180deg,#ff6a5a,#c8231a)}#hp-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900}#flash{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;z-index:4;background:radial-gradient(ellipse at center,#ff000040 30%,#ff0000bf)}#flash.hit{animation:hitflash .45s ease-out}@keyframes hitflash{0%{opacity:1}to{opacity:0}}.card .tabs{display:flex;gap:6px;padding:4px;border-radius:12px;background:#ffffff0f}.card .tabs button{flex:1;padding:9px;font-size:14px;background:transparent;box-shadow:none;color:#9fb3d9}.card .tabs button.on{background:#2a75bb;color:#fff}#rank-list{min-height:120px;max-height:50vh;overflow-y:auto}#rank-list li.me,.rank-list li.me{outline:2px solid #ffcb05}#res-rank{text-align:center;font-size:13px;color:#9fb3d9;min-height:1em}#hud .stats small{font-size:12px;margin-left:2px;opacity:.85}#hud .stats .sep{margin:0 6px;opacity:.6}.card .tabs.small button{padding:6px;font-size:12px}#rank-list li .sub,.rank-list li .sub{font-size:11px;opacity:.6;min-width:64px;text-align:right}.result-sub b{color:#fff}#boss-alert{position:fixed;top:0;right:0;bottom:0;left:0;z-index:6;pointer-events:none;display:none}#boss-alert.show{display:block;animation:redpulse .5s ease-in-out 6 alternate}@keyframes redpulse{0%{box-shadow:inset 0 0 #f000}to{box-shadow:inset 0 0 120px 30px #ff0000bf}}#boss-alert .alert-card{position:absolute;top:calc(env(safe-area-inset-top) + 10px);left:50%;width:min(420px,calc(100% - 24px));transform:translate(-50%);background:#f4f4f6;color:#111;border-radius:16px;overflow:hidden;box-shadow:0 10px 30px #00000073;animation:slidedown .4s cubic-bezier(.2,1.3,.5,1) both}@keyframes slidedown{0%{transform:translate(-50%,-140%)}}#boss-alert .alert-head{display:flex;justify-content:space-between;padding:10px 14px;background:#d71e1e;color:#fff;font-weight:900}#boss-alert .alert-head small{font-weight:700;opacity:.85}#boss-alert .alert-body{padding:12px 14px;font-size:14px;line-height:1.5;font-weight:700}#boss-alert .alert-body b{color:#d71e1e}#boss-alert .warning{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);padding:14px 0;overflow:hidden;background:repeating-linear-gradient(-45deg,#ffcb05 0,#ffcb05 22px,#1b1b1b 22px,#1b1b1b 44px)}#boss-alert .warning span{display:block;margin:0 auto;width:max-content;padding:6px 18px;background:#c40000;color:#fff;font-family:Black Han Sans,sans-serif;font-size:clamp(20px,6vw,40px);letter-spacing:2px;animation:blink .4s steps(2) infinite}#boss-bar{position:fixed;top:calc(env(safe-area-inset-top) + 60px);left:50%;transform:translate(-50%);width:min(460px,calc(100% - 32px));display:none;flex-direction:column;gap:4px;pointer-events:none;z-index:3}#boss-bar.show{display:flex}#boss-bar .name{text-align:center;font-weight:900;font-size:14px;color:#ffcb05;text-shadow:0 2px 4px #000}#boss-bar .track{height:12px;border-radius:6px;background:#0000008c;border:2px solid #fff;overflow:hidden}#boss-fill{height:100%;width:100%;background:linear-gradient(90deg,#ff2b2b,#ff8a1f);transition:width .15s}#mute-btn{position:fixed;right:14px;bottom:calc(env(safe-area-inset-bottom) + 14px);z-index:8;width:42px;height:42px;border-radius:50%;border:0;background:#141c38b3;color:#fff;font-size:18px}.caption{position:fixed;left:0;top:0;z-index:4;pointer-events:none;white-space:nowrap;font-family:Black Han Sans,sans-serif;font-size:clamp(13px,3.2vw,20px);color:#ffe14d;-webkit-text-stroke:1px #1b2a55;text-shadow:0 2px 0 #1b2a55,0 0 8px rgba(0,0,0,.5);opacity:0;transition:opacity .2s;will-change:transform}.caption.show{opacity:1}.caption span{display:inline-block;animation:dance .6s ease-in-out infinite}.caption span.sp{width:.35em}.caption.red{color:#ff2b2b;-webkit-text-stroke:1px #3a0000;text-shadow:0 2px 0 #3a0000,0 0 8px rgba(0,0,0,.6)}@keyframes dance{0%,to{transform:translateY(0) rotate(-6deg) scale(1)}25%{transform:translateY(-.35em) rotate(4deg) scale(1.12)}50%{transform:translateY(0) rotate(8deg) scale(1)}75%{transform:translateY(.12em) rotate(-3deg) scale(.95)}}.opt-label{font-size:12px;color:#9fb3d9;margin-top:4px}.opt-group{display:flex;flex-direction:column;gap:6px}.card .opt-group button,.card button.toggle{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:10px 14px;border:2px solid transparent}.card .opt-group button small{font-weight:700;font-size:11px;opacity:.7}.card .opt-group button.on{border-color:#ffcb05;background:#2a75bb8c}.card button.toggle{align-items:center}.res-board{display:flex;flex-direction:column;gap:6px;margin-top:2px}.res-board-head{font-weight:900;font-size:14px;color:#ffcb05}.res-board-head small{color:#9fb3d9;font-size:11px;margin-left:4px}#res-rank-list{max-height:28vh;overflow-y:auto;gap:4px}#res-rank-list li{padding:6px 10px;font-size:13px}#rank .card{width:min(460px,100%)}#rank-list{max-height:56vh;overflow-y:auto;min-height:140px}#rank-list,.rank-list{gap:6px;padding-right:2px}#rank-list li,.rank-list li{display:grid;grid-template-columns:34px 1fr auto;grid-template-rows:auto auto;align-items:center;column-gap:10px;padding:10px 12px;border-radius:12px;background:#ffffff12}#rank-list li:nth-child(2n),.rank-list li:nth-child(2n){background:#ffffff0a}#rank-list li:before,.rank-list li:before{grid-row:1 / span 2;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#2a3a6b;color:#fff;font-size:14px;font-weight:900}#rank-list li:nth-child(1):before,.rank-list li:nth-child(1):before{background:linear-gradient(180deg,#ffe066,#e0a800);color:#3a2a00}#rank-list li:nth-child(2):before,.rank-list li:nth-child(2):before{background:linear-gradient(180deg,#f0f0f0,#a9b0b8);color:#2a2f36}#rank-list li:nth-child(3):before,.rank-list li:nth-child(3):before{background:linear-gradient(180deg,#f2b27a,#b8682f);color:#3a1c06}#rank-list li .n,.rank-list li .n{grid-column:2;grid-row:1 / span 2;font-size:16px;font-weight:900;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#rank-list li .d,.rank-list li .d{grid-column:3;grid-row:1;justify-self:end;font-size:17px;font-weight:900;color:#ffcb05}#rank-list li .sub,.rank-list li .sub{grid-column:3;grid-row:2;justify-self:end;min-width:0;font-size:12px;opacity:.7}#rank-list li.me,.rank-list li.me{outline:none;background:#ffcb052e;box-shadow:inset 0 0 0 2px #ffcb05}#rank-list li.me .n:after,.rank-list li.me .n:after{content:" (나)";color:#ffcb05;font-size:12px}#rank-list .empty,.rank-list .empty{display:flex;justify-content:center;padding:24px 12px;font-size:14px}#res-rank-list li{padding:8px 10px}#res-rank-list li .n{font-size:14px}#res-rank-list li .d{font-size:15px}
