*{box-sizing:border-box}html,body{margin:0;height:100%;background:#120a2a;overflow:hidden;overscroll-behavior:none;touch-action:none;font-family:'Fredoka','Jua',system-ui,sans-serif;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
#c{position:fixed;left:0;top:0;display:block;touch-action:none}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;padding:0;touch-action:manipulation}
svg{display:block;width:1em;height:1em;flex:none}
.pbtn{position:fixed;left:8px;top:calc(8px + env(safe-area-inset-top,0px));z-index:5;width:40px;height:40px;border-radius:14px;background:rgba(255,255,255,.92);box-shadow:0 3px 0 rgba(7,19,29,.3);color:#07131d;display:grid;place-items:center;font-size:20px}
.pbtn[hidden]{display:none}
#ovl{position:fixed;inset:0;z-index:8;pointer-events:none}#ovl.on{pointer-events:auto}
.scr{position:absolute;inset:0;display:flex;flex-direction:column;background:linear-gradient(180deg,#2a1a5a,#150d33);color:#fff;touch-action:pan-y}
.bar{display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px;background:rgba(10,8,40,.6)}
.rb{width:46px;height:46px;border-radius:15px;background:#fff;color:#07131d;display:grid;place-items:center;font-size:22px;box-shadow:0 4px 0 rgba(7,19,29,.25)}
.wal{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.14);font-weight:700;font-size:18px;margin-left:auto}.wal+.wal{margin-left:0}.wal svg{width:22px;height:22px}
.list{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:10px 12px 30px;-webkit-overflow-scrolling:touch}
/* 지도 */
.wd{position:relative;border-radius:22px;margin:0 0 14px;padding:12px 10px 14px;background:linear-gradient(rgba(14,10,46,.68),rgba(14,10,46,.82)),var(--bg) center/cover;box-shadow:0 5px 0 rgba(0,0,0,.35);border:2px solid rgba(255,255,255,.25)}
.wd.lk{filter:saturate(.35) brightness(.8)}
.wd header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.wd header img{width:54px;height:54px;object-fit:contain;filter:drop-shadow(0 3px 0 rgba(0,0,0,.4))}
.wd small{opacity:.8;font-weight:600;letter-spacing:1px}.wd h2{margin:0;font:700 24px 'Jua','Fredoka',sans-serif;text-shadow:0 2px 0 #1b2b63}
.ws{margin-left:auto;display:flex;align-items:center;gap:4px;font-weight:700;background:rgba(0,0,0,.35);padding:4px 10px;border-radius:999px}.ws svg{width:18px;height:18px}
.nodes{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 6px;justify-items:center}
.nd{position:relative;width:70px;height:68px;border-radius:50%;background:linear-gradient(180deg,#ffb13b,#ff7a1a);box-shadow:0 5px 0 #c4520a;display:flex;flex-direction:column;align-items:center;justify-content:center;font:700 24px 'Fredoka',sans-serif;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.25)}
.nd b{font-weight:700;line-height:1}.nd.lk{background:#59607a;box-shadow:0 5px 0 #353a50}.nd.lk svg{width:24px;height:24px}
.nd.cur{animation:pul 1.2s ease-in-out infinite;outline:4px solid #fff}
.nd.boss{grid-column:span 2;width:100%;border-radius:36px;background:linear-gradient(180deg,#ff5d6e,#c4203a);box-shadow:0 5px 0 #7a1226;height:76px;flex-direction:row;gap:8px}.nd.boss img{height:70px;width:auto;margin:-10px 0}
.nd.boss.lk{background:#59607a;box-shadow:0 5px 0 #353a50}
.st{display:flex;gap:1px;position:absolute;bottom:-9px}.nd.boss .st{bottom:-10px}.st i{width:17px;height:17px}.st svg{width:17px;height:17px}
@keyframes pul{50%{transform:scale(1.08)}}
/* 컷 */
.cut{align-items:center;justify-content:flex-start;padding:calc(24px + env(safe-area-inset-top,0px)) 18px calc(20px + env(safe-area-inset-bottom,0px));background:radial-gradient(#3a2a7a,#120a2a)}
.ci{width:min(100%,380px);aspect-ratio:1;object-fit:cover;border-radius:26px;border:5px solid #fff;box-shadow:0 10px 0 rgba(0,0,0,.35);animation:cin .6s cubic-bezier(.2,1.4,.4,1) both}
.cl{margin-top:22px;text-align:center;flex:1;display:flex;flex-direction:column;gap:6px}.cl p{margin:0;font:400 clamp(28px,8.4vw,38px)/1.2 'Jua','Fredoka',sans-serif;color:#fffaee;-webkit-text-stroke:7px #1b2b63;paint-order:stroke fill;opacity:0;animation:pin .5s ease-out forwards;text-shadow:0 5px 0 #1b2b63}
.go{width:84px;height:84px;border-radius:50%;background:linear-gradient(180deg,#ffb13b,#ff7a1a);box-shadow:0 7px 0 #c4520a;color:#fff;font-size:38px;display:grid;place-items:center;animation:pul 1.4s infinite;opacity:0;animation:pin .4s 2.6s forwards,pul 1.4s 3s infinite}
@keyframes cin{from{transform:scale(.8) rotate(-3deg);opacity:0}}@keyframes pin{from{transform:translateY(14px) scale(.9);opacity:0}to{transform:none;opacity:1}}
/* 상점 */
.tabs{display:flex;gap:6px}.tabs button{padding:8px 14px;border-radius:14px;background:rgba(255,255,255,.14);font-weight:700;font-size:16px}.tabs .on{background:#fff;color:#07131d}
.row{display:flex;align-items:center;gap:12px;padding:12px;margin-bottom:10px;border-radius:20px;background:rgba(255,255,255,.1);border:2px solid rgba(255,255,255,.18)}
.ri{width:52px;height:52px;border-radius:16px;background:#fff;display:grid;place-items:center;font-size:34px;color:#07131d}.ri .pw{display:block;width:34px;height:10px;border-radius:5px;background:linear-gradient(#e0a060,#9a5a22);border:2px solid #5a3010}
.rn{flex:1}.rn b{display:block;font-size:20px;margin-bottom:6px}.pips{display:flex;gap:5px}.pips i{width:20px;height:10px;border-radius:5px;background:rgba(255,255,255,.2)}.pips i.on{background:#ffd23f}
.buy{display:flex;align-items:center;gap:6px;min-width:96px;justify-content:center;height:48px;padding:0 14px;border-radius:16px;background:linear-gradient(180deg,#4fd36c,#1fa24a);box-shadow:0 5px 0 #136a30;font:700 20px 'Fredoka',sans-serif;color:#fff}.buy svg{width:22px;height:22px}.buy:disabled{background:#59607a;box-shadow:0 5px 0 #353a50}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.sk{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border-radius:18px;background:rgba(255,255,255,.1);border:2px solid rgba(255,255,255,.18);font-size:15px}.sk canvas{width:64px;height:64px}.sk b{font-size:15px}.sk span{display:flex;align-items:center;gap:3px;font-weight:700;font-size:16px;color:#ffd23f}.sk span svg{width:18px;height:18px}
.sk.eq{border-color:#ffd23f;background:rgba(255,210,63,.2)}.sk.no canvas{filter:brightness(.55)}
/* 도감 */
.codex h3{margin:14px 4px 8px;font:700 18px 'Fredoka',sans-serif;opacity:.85}.cg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.cx{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:16px;background:rgba(255,255,255,.1);border:2px solid rgba(255,255,255,.18);text-align:center}.cx .ic{height:56px;display:grid;place-items:center;font-size:36px}.cx canvas{max-width:60px;max-height:56px}.cx b{font-size:14px;line-height:1.1}.cx span{font-weight:700;color:#ffd23f;font-size:15px}.cx.un{opacity:.5}
/* 3택 1 */
.perk{align-items:center;padding:calc(20px + env(safe-area-inset-top,0px)) 16px 24px;background:radial-gradient(#3a2a7a,#120a2a)}
.ph{display:flex;align-items:center;gap:10px;margin-bottom:16px}.fl{font:700 32px 'Jua',sans-serif;-webkit-text-stroke:6px #1b2b63;paint-order:stroke fill;color:#fffaee}.ok{font-size:34px}
.pc{display:flex;flex-direction:column;gap:12px;width:100%;max-width:380px;flex:1;justify-content:center}
.pk{display:grid;grid-template-columns:70px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:14px;padding:12px 16px;border-radius:22px;background:linear-gradient(180deg,#fff,#e8e2ff);color:#1b1b3a;box-shadow:0 6px 0 rgba(0,0,0,.35);text-align:left;min-height:92px}
.pk .ic{grid-row:span 2;display:grid;place-items:center}.pk .ic canvas,.pk .ic .pi{width:64px;height:64px;font-size:60px}.pk b{font:700 26px 'Jua',sans-serif}.pk small{font-weight:700;color:#7a4a00;font-size:16px}.pk:active{transform:translateY(4px)}
.pf{display:flex;gap:18px;margin-top:10px;font:700 22px 'Fredoka',sans-serif}.pf span{display:flex;gap:6px;align-items:center}.pf svg{width:26px;height:26px}
/* 타이틀 모드 칩 */
.modes{display:flex;gap:10px;justify-content:center}.chip{display:flex;align-items:center;gap:8px;height:50px;padding:0 16px;border-radius:18px;background:linear-gradient(180deg,#8a5bff,#5a2fd0);box-shadow:0 5px 0 #321a8a;color:#fff;font:700 18px 'Fredoka',sans-serif;position:relative;pointer-events:auto}
.chip svg{width:26px;height:26px}.chip b{font-size:14px;opacity:.9}#btnDaily{background:linear-gradient(180deg,#ff6fa8,#e0306e);box-shadow:0 5px 0 #8a1440}.chip .dot{position:absolute;right:-4px;top:-4px;width:16px;height:16px;border-radius:50%;background:#ff2b2b;border:2px solid #fff}.chip .dot[hidden]{display:none}
body[data-s=play] .kk-screen:not(.kk-pause):not(.kk-result){display:none}
.fxb{position:absolute;right:14px;top:calc(16px + env(safe-area-inset-top,0px));font-size:24px;color:#07131d}.fxb svg{width:26px;height:26px}
