:root{--ink: #16213a;--muted: #5a6a85;--paper: #fff8ea;--card: #fffffff2;--line: #e3dccb;--player: #1f6dff;--player-d: #1446b8;--enemy: #f02e2e;--gold: #ffb400;--gold-d: #c98400;--ok: #1fb84a;--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--shadow: 0 6px 18px #16213a22}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:#0f1a33;color:var(--ink);font-family:Nunito,Avenir Next,system-ui,-apple-system,sans-serif;font-weight:700;user-select:none;-webkit-user-select:none}#app{position:fixed;inset:0}#stage{position:absolute;inset:0;touch-action:none}#stage canvas{display:block;width:100%!important;height:100%!important}#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.lbl{position:absolute;left:0;top:0;will-change:transform;display:flex;flex-direction:column;align-items:center;gap:1px}.lbl b{min-width:32px;padding:2px 9px;border-radius:999px;background:#7d7465;color:#fff;font-size:15px;font-weight:900;text-align:center;box-shadow:0 3px #0003,0 4px 10px #0004;font-variant-numeric:tabular-nums;border:2.5px solid #fff;letter-spacing:.3px}.lbl i{font-style:normal;font-size:7px;letter-spacing:1px;color:#fff;text-shadow:0 1px 2px #000a;line-height:1}.lbl.o1 b{background:var(--player)}.lbl.o2 b{background:var(--enemy)}.lbl.o3 b{background:var(--ok)}.lbl.o4 b{background:#9a33ff}.lbl.sur b{background:#6c6256}.lbl.sel b{transform:scale(1.18);border-color:#fff;box-shadow:0 0 0 3px #ffffff80,0 4px 10px #0004}.lbl.hov b{border-color:var(--gold);transform:scale(1.1)}.lbl b{transition:transform .12s}.lbl b.bump{transform:scale(1.25)}.lbl.full b{border-color:var(--gold);box-shadow:0 0 0 2px #ffb40088,0 4px 10px #0004}.lbl.full b:before{content:"DOLU ";font-size:9px;letter-spacing:.5px;color:#ffe08a}.lbl u{text-decoration:none;position:absolute;right:-16px;top:-10px;width:22px;height:22px;border-radius:999px;background:var(--gold);color:#fff;font-size:13px;line-height:22px;text-align:center;box-shadow:0 2px 0 var(--gold-d),0 0 0 3px #ffb40044;animation:upbounce .8s infinite}.lbl{position:absolute}@keyframes upbounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.fl{position:absolute;left:0;top:0;font-weight:900;font-size:16px;color:#fff;text-shadow:0 2px 0 #0006,0 0 6px #0004;pointer-events:none;animation:flyup 1.4s ease-out forwards;white-space:nowrap}.fl.good{color:#7dffa1}.fl.bad{color:#ff7a7a;font-size:18px}.fl.neutral{color:#ffe08a}@keyframes flyup{0%{opacity:0;margin-top:10px}15%{opacity:1;margin-top:0}to{opacity:0;margin-top:-46px}}#stage.shake{animation:shake .4s}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px,3px)}40%{transform:translate(5px,-4px)}60%{transform:translate(-4px,2px)}80%{transform:translate(3px,-2px)}}.lbl.p1 b:after{content:"■";margin-left:4px;font-size:9px}.lbl.p2 b:after{content:"▲";margin-left:4px;font-size:9px}.lbl.p3 b:after{content:"●";margin-left:4px;font-size:9px}.lbl.p4 b:after{content:"◆";margin-left:4px;font-size:9px}#hud{position:absolute;inset:0;pointer-events:none;display:none}#hud.on{display:block}.top{position:absolute;left:0;right:0;top:0;padding:calc(var(--sat) + 10px) 12px 8px;display:grid;gap:6px}.bar{height:16px;border-radius:999px;overflow:hidden;background:#ffffffd9;display:flex;box-shadow:0 2px #0002,inset 0 1px 2px #0002;border:2px solid #fff}.bar .p{background:linear-gradient(#5b9bff,var(--player));transition:width .3s}.bar .e{background:linear-gradient(#ff7a7a,var(--enemy));flex:1}.row{display:flex;justify-content:space-between;align-items:center;font-weight:900;font-size:13px;color:var(--ink);gap:8px}.row .pill{background:#ffffffe6;padding:5px 12px;border-radius:999px;font-variant-numeric:tabular-nums;box-shadow:0 2px #0002;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bottom{position:absolute;left:0;right:0;bottom:0;padding:10px 12px calc(var(--sab) + 10px);display:grid;gap:8px;pointer-events:auto;background:linear-gradient(transparent,#0f1a3326 40%,#0f1a3366)}.ratio{display:flex;gap:6px;justify-content:center;background:#ffffffd9;border-radius:999px;padding:4px;width:max-content;margin:0 auto;box-shadow:0 3px #0002}.ratio button{box-shadow:none;background:transparent;padding:8px 16px}.ratio button.on{background:var(--player);color:#fff;box-shadow:0 3px 0 var(--player-d)}button{font:inherit;font-weight:900;border:0;border-radius:999px;padding:11px 18px;background:#fff;color:var(--ink);box-shadow:0 3px #0002,0 6px 14px #0002;cursor:pointer;transition:transform .08s}button:active{transform:translateY(2px);box-shadow:0 1px #0002}.ctl{display:flex;justify-content:space-between;gap:8px;align-items:center}.abil{display:flex;gap:8px}.abil button{width:54px;height:54px;padding:0;border-radius:18px;font-size:22px;position:relative;background:#ffffffe6}.abil button.armed{background:var(--gold);box-shadow:0 3px 0 var(--gold-d),0 0 0 4px #ffb40055;animation:pulse 1s infinite}@keyframes pulse{50%{box-shadow:0 3px 0 var(--gold-d),0 0 0 8px #ffb40022}}.abil button:disabled{opacity:.5;filter:grayscale(.6)}.abil button small{position:absolute;right:-5px;top:-5px;background:var(--ink);color:#fff;border-radius:999px;font-size:10px;padding:2px 6px;border:2px solid #fff}.ctl .right{display:flex;gap:8px}.ctl .right button{width:50px;height:50px;padding:0;font-size:16px;background:#ffffffe6}.ctl .right button.on{background:var(--gold);box-shadow:0 3px 0 var(--gold-d)}#toast{position:absolute;left:50%;top:22%;transform:translate(-50%);background:#16213ad9;color:#fff;padding:9px 16px;border-radius:14px;font-weight:800;font-size:14px;opacity:0;transition:opacity .25s;pointer-events:none;max-width:80%;text-align:center;backdrop-filter:blur(6px)}#toast.show{opacity:1}.screen{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;padding:calc(var(--sat) + 22px) 18px calc(var(--sab) + 22px);overflow-y:auto;background:linear-gradient(#16213a55,#16213a99);backdrop-filter:blur(2px)}.screen.on{display:flex}.screen.overlay{justify-content:center;background:#16213aa6}.card{background:var(--card);border-radius:26px;padding:22px;width:min(100%,420px);display:grid;gap:14px;box-shadow:0 16px 40px #0006,inset 0 -4px #16213a14}h1{font-size:46px;margin:0;letter-spacing:-1.5px;line-height:1;font-weight:900;color:var(--player);text-shadow:0 3px 0 #ffffff,0 6px 0 #1446b833}h1 small{display:block;font-size:13px;letter-spacing:2.5px;color:var(--muted);margin-top:10px;text-transform:uppercase;text-shadow:none}h2{margin:0;font-size:22px;font-weight:900}.sub{color:var(--muted);font-size:14px;margin:0;font-weight:700}.big{font-size:18px;padding:15px 22px;background:linear-gradient(#4a8dff,var(--player));color:#fff;box-shadow:0 4px 0 var(--player-d),0 8px 18px #1f6dff55}.menu{display:grid;gap:10px;width:min(100%,320px)}.levels{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;width:100%}.levels button{padding:8px 0;border-radius:14px;display:grid;gap:2px;font-size:15px;box-shadow:0 3px #0002}.levels button:disabled{opacity:.45}.levels button.boss{background:linear-gradient(#ffd666,var(--gold))}.levels button .s{font-size:9px;color:var(--gold-d);letter-spacing:1px}.region{width:100%;display:grid;gap:8px}.region h3{margin:8px 0 0;font-size:13px;color:var(--muted);letter-spacing:1.5px;text-transform:uppercase;display:flex;align-items:center;gap:8px}.region h3:before{content:"";width:12px;height:12px;border-radius:4px;background:var(--rc, #b9d44a)}.region.bozkir{--rc: #b9d44a }.region.orman{--rc: #4fc24a }.region.col{--rc: #ffc857 }.region.kar{--rc: #9fc4ff }.upg{display:grid;gap:10px;width:100%}.upg .item{background:#fff;border-radius:18px;padding:12px 14px;display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:center;box-shadow:0 2px #0001}.upg .item b{font-size:16px}.upg .item span{color:var(--muted);font-size:13px}.upg .item .lv{grid-column:1;color:var(--gold);letter-spacing:2px;font-size:13px}.upg .item button{grid-row:1 / 4;grid-column:2;background:linear-gradient(#ffd666,var(--gold));box-shadow:0 3px 0 var(--gold-d)}.upg .item button:disabled{opacity:.45}.stars{font-size:44px;letter-spacing:8px;color:var(--gold);text-align:center;text-shadow:0 3px 0 var(--gold-d)}.stars .off{color:#e3dccb;text-shadow:none}.stat{display:flex;justify-content:space-between;font-size:15px}.gold{color:var(--gold-d);font-weight:900}.toggle{display:flex;justify-content:space-between;align-items:center;font-weight:800}.toggle button{padding:7px 16px}.toggle button.on{background:var(--ok);color:#fff;box-shadow:0 3px #138a34}.tip{background:#fff4d6;border-radius:16px;padding:10px 12px;font-size:13px;color:#6b4e12}.hint{position:absolute;left:50%;bottom:24%;transform:translate(-50%);background:#fff;padding:10px 16px;border-radius:16px;font-weight:800;font-size:14px;box-shadow:0 4px #0002,0 8px 20px #0003;pointer-events:none;max-width:86%;text-align:center;animation:pop .3s ease-out;border:2px solid var(--gold)}@keyframes pop{0%{transform:translate(-50%) scale(.9);opacity:0}}#rotate{display:none;position:absolute;inset:0;background:#16213a;color:#fff;align-items:center;justify-content:center;font-size:18px;font-weight:900;z-index:50;text-align:center;padding:20px}@media (orientation: landscape) and (max-height: 500px){#rotate{display:flex}}.finger{position:absolute;left:0;top:0;font-size:44px;pointer-events:none;z-index:5;filter:drop-shadow(0 4px 6px #0006);transition:opacity .2s;will-change:transform}.bossintro{position:absolute;left:50%;top:36%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;z-index:6;animation:bossin 2.6s ease-out forwards}.bossintro small{display:block;font-size:13px;letter-spacing:4px;color:#ffe08a;font-weight:900}.bossintro b{display:block;font-size:40px;color:#fff;text-shadow:0 4px 0 #b31515,0 8px 20px #0008;line-height:1.05}.bossintro span{display:block;font-size:16px;color:#fff;font-weight:800;text-shadow:0 2px 4px #0008}@keyframes bossin{0%{opacity:0;transform:translate(-50%,-50%) scale(1.6)}15%{opacity:1;transform:translate(-50%,-50%) scale(1)}80%{opacity:1}to{opacity:0}}
