:root{--u: clamp(.8px, min(100vw / 873, 100dvh / 393), 1.7px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px);--font: "Segoe UI", "Noto Sans Thai", "Leelawadee UI", Tahoma, Roboto, system-ui, sans-serif;--frame: linear-gradient(180deg, #fbfcff, #c7cfde);--track: #0a1020;--exp: #58b8ff}[hidden]{display:none!important}html,body{margin:0;height:100%;overflow:hidden;background:#0a0f1e;overscroll-behavior:none;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;font-family:var(--font)}#app{position:fixed;inset:0;overflow:hidden}#game{display:block;width:100%;height:100%}button{font-family:var(--font);cursor:pointer}#world-ui{position:absolute;inset:0;pointer-events:none;overflow:hidden}.np{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;gap:calc(2 * var(--u));will-change:transform}.np-cursor{width:calc(9 * var(--u));height:calc(11 * var(--u));background:linear-gradient(180deg,#ff7070,#e01818);clip-path:polygon(0 0,100% 0,50% 100%);animation:np-bob 1.2s ease-in-out infinite}.np-name{font:700 calc(9.5 * var(--u)) / 1 var(--font);color:#fff;white-space:nowrap;text-shadow:0 1px 2px #000,0 0 3px #000}.np.elite .np-cursor{background:linear-gradient(180deg,#fff394,#ffbf1f);filter:drop-shadow(0 0 calc(4 * var(--u)) rgba(255,215,106,.8))}.np.elite .np-name{color:#ffd76a;font-weight:800;text-shadow:0 0 calc(8 * var(--u)) rgba(255,215,106,.85),0 1px 3px #000,0 0 4px #000}.np-bar{width:calc(54 * var(--u));height:calc(5 * var(--u));background:#050810bf;border:1px solid rgba(255,255,255,.8);transform:skew(-24deg);overflow:hidden}.np-fill{height:100%;background:#7ce35a;transform-origin:0 50%}.np-fill.mid{background:#f2d64b}.np-fill.low{background:#ff4d4d}.dmg{position:absolute;left:0;top:0;font:900 italic calc(15 * var(--u)) / 1 var(--font);letter-spacing:.02em;color:#fff6e6;-webkit-text-stroke:calc(3 * var(--u)) #3a1406;paint-order:stroke fill;text-shadow:0 0 calc(6 * var(--u)) rgba(255,110,50,.85),0 calc(1.5 * var(--u)) 0 #1a0802;white-space:nowrap;will-change:transform,opacity}.dmg.crit{font-size:calc(22 * var(--u));color:#fff1a8;-webkit-text-stroke-color:#5a2a00;text-shadow:0 0 calc(10 * var(--u)) rgba(255,200,40,.95),0 0 calc(20 * var(--u)) rgba(255,120,20,.6),0 calc(2 * var(--u)) 0 #2a1000}.dmg.crit:before{content:"CRITICAL";position:absolute;left:50%;bottom:92%;transform:translate(-50%);font:900 italic calc(8 * var(--u)) / 1 var(--font);letter-spacing:.14em;color:#ffe27a;-webkit-text-stroke:calc(2 * var(--u)) #3a1a00;paint-order:stroke fill}.dmg.crit:after{content:"";position:absolute;left:50%;top:50%;z-index:-1;width:calc(56 * var(--u));height:calc(56 * var(--u));transform:translate(-50%,-50%);background:conic-gradient(transparent 0 40deg,rgba(255,232,150,.8) 45deg,transparent 50deg 130deg,rgba(255,232,150,.8) 135deg,transparent 140deg 220deg,rgba(255,232,150,.8) 225deg,transparent 230deg 310deg,rgba(255,232,150,.8) 315deg,transparent 320deg);-webkit-mask:radial-gradient(circle,#000 10%,transparent 68%);mask:radial-gradient(circle,#000 10%,transparent 68%)}.dmg.hurt{color:#ffd6d6;-webkit-text-stroke-color:#4a0000;text-shadow:0 0 calc(6 * var(--u)) rgba(255,40,40,.9),0 calc(1.5 * var(--u)) 0 #200000}@keyframes np-bob{0%,to{transform:translateY(0)}50%{transform:translateY(calc(-3 * var(--u)))}}#hud{position:absolute;inset:0;pointer-events:none;color:#fff}.status{position:absolute;left:calc(10 * var(--u) + var(--safe-l));top:calc(8 * var(--u));display:flex;align-items:center;filter:drop-shadow(0 calc(2 * var(--u)) calc(3 * var(--u)) rgba(0,0,0,.5))}.portrait{position:relative;z-index:1;flex:none;width:calc(54 * var(--u));height:calc(54 * var(--u));border-radius:50%}.status-body{width:calc(206 * var(--u));margin-left:calc(-14 * var(--u))}.status-frame{display:flex;height:calc(22 * var(--u));padding:calc(3 * var(--u)) calc(3 * var(--u)) calc(3 * var(--u)) calc(14 * var(--u));box-sizing:border-box;background:linear-gradient(180deg,#fff1c4,#d9a94c 45%,#8a5a1c);clip-path:polygon(0 0,100% 0,calc(100% - 16 * var(--u)) 100%,0 100%)}.status-name{width:calc(46 * var(--u));display:flex;align-items:center;justify-content:center;color:#2a1a06;font:900 calc(11 * var(--u)) / 1 var(--font);letter-spacing:.08em;text-shadow:0 1px 0 rgba(255,240,200,.6)}.status-bar{position:relative;flex:1;background:linear-gradient(180deg,#050814,#111a30);clip-path:polygon(0 0,100% 0,calc(100% - 14 * var(--u)) 100%,0 100%)}.status-bar:after,.boss-bar:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#ffffff59,#fff0 55%);pointer-events:none}.hp-fill,.hp-lag,.boss-fill,.boss-lag{position:absolute;inset:0;transform-origin:0 50%}.hp-lag,.boss-lag{background:#f0f4fb;opacity:.7}.hp-fill{background:linear-gradient(180deg,#c2ff96,#72dd46 45%,#3aa827)}.hp-fill.mid{background:linear-gradient(180deg,#fff3a0,#f2d33b 45%,#c49c10)}.hp-fill.low{background:linear-gradient(180deg,#ffa3a3,#ff4a4a 45%,#c21c1c)}.status-sub{display:flex;justify-content:flex-end;align-items:center;gap:calc(8 * var(--u));margin-top:calc(3 * var(--u));padding-right:calc(22 * var(--u));font:700 calc(10 * var(--u)) / 1 var(--font);font-variant-numeric:tabular-nums;text-shadow:0 1px 2px rgba(0,0,0,.95)}.lv-text{padding:calc(2 * var(--u)) calc(6 * var(--u));border-radius:999px;background:linear-gradient(180deg,#fff1c4,#c99a45);box-shadow:0 0 0 calc(1 * var(--u)) #281806cc;color:#2a1a06;font-weight:900;text-shadow:none}.exp-bar{width:calc(150 * var(--u));height:calc(4 * var(--u));margin:calc(4 * var(--u)) 0 0 calc(16 * var(--u));background:#0009;border:1px solid rgba(233,207,143,.6);border-radius:3px;overflow:hidden}.exp-fill{height:100%;background:linear-gradient(90deg,#58c8ff,#bfeaff);box-shadow:0 0 calc(4 * var(--u)) #58c8ff;transform-origin:0 50%;transform:scaleX(0)}.boss{position:absolute;top:calc(8 * var(--u));left:50%;transform:translate(-50%);display:flex;align-items:center;filter:drop-shadow(0 calc(2 * var(--u)) calc(3 * var(--u)) rgba(0,0,0,.55))}.boss-portrait{width:calc(50 * var(--u));height:calc(50 * var(--u))}.boss-body{width:calc(262 * var(--u));margin-left:calc(-8 * var(--u));display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:calc(8 * var(--u));row-gap:calc(3 * var(--u))}.boss-name{position:relative;grid-column:1 / -1;padding-bottom:calc(8 * var(--u));text-align:center;font:900 calc(12 * var(--u)) / 1 var(--font);letter-spacing:.1em;background:linear-gradient(180deg,#fff 20%,#ffe2a0,#e0a040);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 calc(4 * var(--u)) rgba(255,80,50,.8)) drop-shadow(0 calc(1 * var(--u)) calc(1 * var(--u)) #000)}.boss-name:after{content:"";position:absolute;left:50%;bottom:0;width:calc(210 * var(--u));height:calc(10 * var(--u));transform:translate(-50%);background:var(--ornament) center / 100% 100% no-repeat}.boss-bar{position:relative;height:calc(12 * var(--u));background:linear-gradient(180deg,#0a0610,#1a0c14);border:calc(1.5 * var(--u)) solid #e6c47a;box-shadow:0 0 0 calc(1 * var(--u)) #281406e6,0 0 0 calc(2.5 * var(--u)) #c99a4599,inset 0 0 calc(4 * var(--u)) #000c;transform:skew(-24deg);overflow:hidden}.boss-fill{background:linear-gradient(180deg,#ffb49a,#ff4a3a 48%,#9a1414)}.boss-pips{display:flex;gap:calc(5 * var(--u))}.boss-pip{width:calc(9 * var(--u));height:calc(9 * var(--u));transform:rotate(45deg);box-sizing:border-box;background:radial-gradient(circle at 35% 35%,#ffd0c8 0 15%,#ff3a3a 45%,#6a0808);border:calc(1.5 * var(--u)) solid #e6c47a;box-shadow:0 0 calc(4 * var(--u)) #ff3c3ccc}.boss-pip.gone{background:#140a0ed9;box-shadow:none;opacity:.7}.menu-btn{position:absolute;top:calc(10 * var(--u));right:calc(14 * var(--u) + var(--safe-r));width:calc(38 * var(--u));height:calc(38 * var(--u));border-radius:50%;border:calc(2 * var(--u)) solid rgba(255,255,255,.85);background:#0a0e1ab3;pointer-events:auto;display:grid;place-items:center;padding:0}.menu-btn svg{width:50%;height:50%;fill:#fff}.auto-btn{position:absolute;top:calc(12 * var(--u));right:calc(62 * var(--u) + var(--safe-r));height:calc(34 * var(--u));padding:0 calc(12 * var(--u)) 0 calc(9 * var(--u));display:flex;align-items:center;gap:calc(5 * var(--u));border-radius:999px;border:calc(2 * var(--u)) solid rgba(255,255,255,.6);background:#0a0e1ab3;color:#ffffffb8;font:800 calc(11 * var(--u)) / 1 var(--font);letter-spacing:.12em;pointer-events:auto;touch-action:none;transition:color .2s,border-color .2s,box-shadow .2s}.auto-btn svg{width:calc(17 * var(--u));height:calc(17 * var(--u));fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.auto-btn.on{color:#86f7e2;border-color:#6ff2d8;background:#08282cc7;text-shadow:0 0 calc(6 * var(--u)) rgba(80,240,210,.9);box-shadow:0 0 calc(12 * var(--u)) #50f0d28c,inset 0 0 calc(8 * var(--u)) #50f0d24d}.auto-btn.on svg{animation:auto-spin 1.6s linear infinite}.zoom{position:absolute;top:calc(56 * var(--u));right:calc(14 * var(--u) + var(--safe-r));display:flex;flex-direction:column;gap:calc(6 * var(--u));pointer-events:auto}.zoom-btn{width:calc(38 * var(--u));height:calc(38 * var(--u));padding:0;display:grid;place-items:center;border-radius:50%;border:calc(2 * var(--u)) solid rgba(255,255,255,.6);background:#0a0e1a99;color:#fff;touch-action:none;transition:transform .06s,filter .06s}.zoom-btn svg{width:58%;height:58%;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}.zoom-btn:active{transform:scale(.9);filter:brightness(1.35)}@keyframes auto-spin{to{transform:rotate(360deg)}}.area-banner{position:absolute;top:24%;left:50%;transform:translate(-50%);text-align:center;opacity:0;transition:opacity .6s;white-space:nowrap}.area-banner.show{opacity:1}.area-floor{font:700 calc(9 * var(--u)) / 1 var(--font);letter-spacing:.5em;margin-right:-.5em;color:#f3dca0;text-shadow:0 0 calc(6 * var(--u)) rgba(255,200,100,.7),0 1px 2px #000}.area-name{position:relative;margin-top:calc(8 * var(--u));padding:calc(9 * var(--u)) calc(60 * var(--u));font:600 calc(21 * var(--u)) / 1.2 var(--font);letter-spacing:.14em;color:#fffaf0;text-shadow:0 0 calc(10 * var(--u)) rgba(255,210,130,.75),0 calc(1 * var(--u)) calc(3 * var(--u)) #000;background:radial-gradient(ellipse 55% 100% at 50% 50%,rgba(10,12,26,.72),transparent 100%)}.area-name:before,.area-name:after{content:"";position:absolute;left:50%;width:calc(340 * var(--u));height:calc(18 * var(--u));background:var(--ornament) center / 100% 100% no-repeat;transform:translate(-50%) scaleX(0);transition:transform .9s cubic-bezier(.2,.8,.2,1)}.area-name:before{top:calc(-9 * var(--u))}.area-name:after{bottom:calc(-9 * var(--u))}.area-banner.show .area-name:before,.area-banner.show .area-name:after{transform:translate(-50%) scaleX(1)}.skill-toast{position:absolute;top:calc(56 * var(--u));left:50%;transform:translate(-50%);padding:calc(4 * var(--u)) calc(18 * var(--u));font:700 calc(12 * var(--u)) / 1 var(--font);letter-spacing:.1em;color:var(--c, #fff);background:linear-gradient(90deg,transparent,rgba(6,10,22,.75) 20%,rgba(6,10,22,.75) 80%,transparent);text-shadow:0 0 8px var(--c, #fff);opacity:0;transition:opacity .15s;white-space:nowrap}.skill-toast.show{opacity:1}.center-banner{position:absolute;top:34%;left:50%;transform:translate(-50%,-50%);padding:calc(14 * var(--u)) calc(30 * var(--u));font:900 calc(30 * var(--u)) / 1.1 var(--font);letter-spacing:.12em;white-space:nowrap;opacity:0;color:#fff;background:linear-gradient(180deg,#ffffff 12%,#fff0c4 48%,var(--c, #ffd76a) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 calc(8 * var(--u)) color-mix(in srgb,var(--c, #ffd76a) 70%,transparent)) drop-shadow(0 calc(2 * var(--u)) calc(2 * var(--u)) rgba(0,0,0,.85))}.center-banner:before,.center-banner:after{content:"";position:absolute;left:50%;width:calc(300 * var(--u));height:calc(18 * var(--u));background:var(--ornament) center / 100% 100% no-repeat;transform:translate(-50%)}.center-banner:before{top:calc(-6 * var(--u))}.center-banner:after{bottom:calc(-6 * var(--u))}.center-banner.show{animation:banner-pop 2.4s ease-out forwards}@keyframes banner-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(1.6)}12%{opacity:1;transform:translate(-50%,-50%) scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-62%) scale(1)}}#touch{position:absolute;inset:0;pointer-events:none}.stick-zone{position:absolute;left:0;bottom:0;width:46%;height:80%;pointer-events:auto;touch-action:none}.stick-base{position:absolute;left:calc(100 * var(--u) + var(--safe-l));top:calc(100% - 96 * var(--u));width:calc(112 * var(--u));height:calc(112 * var(--u));margin:calc(-56 * var(--u)) 0 0 calc(-56 * var(--u));border-radius:50%;border:calc(2 * var(--u)) solid rgba(255,255,255,.5);background:radial-gradient(circle,#0a101e33,#0a101e80);opacity:.5;transition:opacity .15s}.stick-base.active{opacity:1}.stick-knob{position:absolute;left:50%;top:50%;width:calc(46 * var(--u));height:calc(46 * var(--u));margin:calc(-23 * var(--u)) 0 0 calc(-23 * var(--u));border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,#c9d4ea);box-shadow:0 0 calc(10 * var(--u)) #78c8ff99;will-change:transform}.actions{position:absolute;right:calc(58 * var(--u) + var(--safe-r));bottom:calc(58 * var(--u));width:0;height:0}.act{position:absolute;left:calc((var(--x) - var(--s) / 2) * var(--u));top:calc((var(--y) - var(--s) / 2) * var(--u));width:calc(var(--s) * var(--u));height:calc(var(--s) * var(--u));padding:0;border-radius:50%;border:calc(1.5 * var(--u)) solid rgba(7,8,15,.9);background:#07080f;box-shadow:0 0 calc(12 * var(--u)) color-mix(in srgb,var(--c, #fff) 45%,transparent);color:#fff;display:grid;place-items:center;pointer-events:auto;touch-action:none;overflow:hidden;transition:transform .06s,filter .06s}.act .icon{position:absolute;inset:0;width:100%;height:100%}.act:after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(ellipse 60% 38% at 40% 14%,rgba(255,255,255,.18),transparent 70%);pointer-events:none}.act.attack{box-shadow:0 0 calc(16 * var(--u)) color-mix(in srgb,var(--c) 55%,transparent)}.act.pressed{transform:scale(.9);filter:brightness(1.35)}.act.skill.cooling{box-shadow:none}.act.skill.cooling .icon{filter:grayscale(.85) brightness(.55)}.act .cd{position:absolute;inset:0;z-index:1;border-radius:50%;background:conic-gradient(rgba(0,0,0,.7) calc(var(--p, 0) * 360deg),transparent 0)}.act .cd-text{position:absolute;inset:0;display:grid;place-items:center;font:800 calc(15 * var(--u)) / 1 var(--font);color:#fff;text-shadow:0 1px 2px #000;z-index:2}.screen{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(14 * var(--u));color:#fff;overflow:hidden}#screen-start{background:#050817;justify-content:flex-start;padding-top:calc(52 * var(--u));box-sizing:border-box}.start-art{position:absolute;inset:0;width:100%;height:100%}.start-photo{object-fit:cover;object-position:64% 18%}.start-logo-icon{position:relative;width:calc(68 * var(--u));height:calc(68 * var(--u));border-radius:calc(18 * var(--u));filter:drop-shadow(0 0 calc(16 * var(--u)) rgba(245,206,98,.65)) drop-shadow(0 calc(6 * var(--u)) calc(12 * var(--u)) rgba(0,0,0,.85));margin-bottom:calc(8 * var(--u));border:2px solid rgba(255,224,138,.8);z-index:2;animation:lanna-emblem-float 4s ease-in-out infinite alternate}@keyframes lanna-emblem-float{0%{transform:translateY(0)}to{transform:translateY(calc(-4 * var(--u)))}}.logo{position:relative;display:flex;flex-direction:column;align-items:center;gap:calc(2 * var(--u))}.logo-top{font:700 calc(12 * var(--u)) / 1 var(--font);letter-spacing:.9em;margin-right:-.9em;color:#f3dca0;text-shadow:0 0 calc(8 * var(--u)) rgba(255,200,110,.8),0 calc(1 * var(--u)) calc(2 * var(--u)) rgba(0,0,0,.95),0 0 calc(10 * var(--u)) rgba(5,8,23,.9)}.logo-main{font:900 calc(44 * var(--u)) / 1 var(--font);letter-spacing:.16em;margin-right:-.16em;background:linear-gradient(180deg,#fff,#fff4d6 40%,#f0c46a 62%,#a86f1e);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 calc(10 * var(--u)) rgba(120,190,255,.7)) drop-shadow(0 calc(3 * var(--u)) calc(3 * var(--u)) rgba(0,0,0,.8))}.logo-rule{position:relative;width:calc(360 * var(--u));height:calc(22 * var(--u));margin-top:calc(-8 * var(--u));background:var(--ornament) center / 100% 100% no-repeat}.logo-sub{position:relative;padding:calc(5 * var(--u)) calc(26 * var(--u));font:600 calc(11 * var(--u)) / 1 var(--font);letter-spacing:.22em;color:#f1e6c8;text-shadow:0 1px 3px #000;background:radial-gradient(ellipse 60% 100% at 50% 50%,rgba(5,8,23,.75),transparent 100%)}.loading{position:relative;width:calc(220 * var(--u));height:calc(3 * var(--u));background:#ffffff26;border-radius:2px;overflow:hidden}.loading-fill{width:100%;height:100%;background:linear-gradient(90deg,#58c8ff,#fff);transform-origin:0 50%;transform:scaleX(0);transition:transform .2s}.start-btn{position:relative;padding:calc(10 * var(--u)) calc(32 * var(--u));font:700 calc(13 * var(--u)) / 1 var(--font);letter-spacing:.12em;color:#fff4d6;text-shadow:0 0 calc(6 * var(--u)) rgba(255,210,120,.7);background:linear-gradient(180deg,#18203cd9,#080c18e6);border:calc(1.5 * var(--u)) solid #d9b25e;border-radius:999px;box-shadow:0 0 0 calc(1 * var(--u)) #0009,inset 0 0 calc(10 * var(--u)) #ffd2782e;animation:breathe 2s ease-in-out infinite}@keyframes breathe{50%{box-shadow:0 0 0 calc(1 * var(--u)) #0009,inset 0 0 calc(10 * var(--u)) #ffd27840,0 0 calc(18 * var(--u)) #ffc86e99}}.credits-link{position:absolute;right:calc(16 * var(--u));bottom:calc(12 * var(--u));padding:calc(4 * var(--u)) calc(12 * var(--u));font:600 calc(10 * var(--u)) / 1 var(--font);letter-spacing:.12em;color:#f1e6c8;text-decoration:none;text-shadow:0 1px 3px #000;background:#0508178c;border:1px solid rgba(217,178,94,.6);border-radius:999px}.problem{position:fixed;left:50%;top:50%;z-index:100;box-sizing:border-box;width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;padding:16px 18px;transform:translate(-50%,-50%);font:14px / 1.5 var(--font, sans-serif);color:#f1e6c8;background:#080c1cf2;border:1px solid #d9b25e;border-radius:12px}.problem-title{margin-bottom:8px;font-size:16px;font-weight:700;color:#ffcf7a}.problem-detail{margin:0 0 12px;white-space:pre-wrap;word-break:break-word;font:12px/1.4 ui-monospace,Menlo,Consolas,monospace;color:#c9d2ee}.problem-actions{display:flex;flex-wrap:wrap;gap:10px}.problem-actions a{padding:8px 16px;color:#fff4d6;text-decoration:none;background:#18203ce6;border:1px solid #d9b25e;border-radius:999px}.debug-info{position:fixed;left:50%;top:8px;z-index:99;padding:6px 8px;transform:translate(-50%);white-space:pre;pointer-events:none;font:11px/1.35 ui-monospace,Menlo,Consolas,monospace;color:#d8e4ff;background:#0009;border-radius:6px}.graphics-btn{font-size:calc(11 * var(--u));animation:none}.reset-btn{font-size:calc(11 * var(--u));animation:none;border-color:#dc5a5a99;color:#ffb8b8;background:#280a0fbf;transition:all .2s ease}.reset-btn.confirming{border-color:#ff4d4d;color:#fff;background:#b4141eeb;box-shadow:0 0 calc(12 * var(--u)) #ff3c3c99}.dmg.exp{font-size:.62em;letter-spacing:.06em;color:#ffe7a0}.pause-row{position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:calc(10 * var(--u))}.offer{position:fixed;left:50%;top:calc(64 * var(--u));z-index:90;box-sizing:border-box;width:min(460px,calc(100vw - 32px));padding:12px 14px;transform:translate(-50%);font:600 14px / 1.45 var(--font, sans-serif);text-align:center;color:#f1e6c8;background:#080c1ceb;border:1px solid #d9b25e;border-radius:12px}.offer-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:10px}.offer-actions button{padding:8px 16px;font:600 13px / 1 var(--font, sans-serif);color:#fff4d6;background:#18203ce6;border:1px solid #d9b25e;border-radius:999px}.screen.dead{background:radial-gradient(ellipse at center,#46000080,#000000d9)}.dead-title{position:relative;padding-bottom:calc(16 * var(--u));font:800 calc(30 * var(--u)) / 1 var(--font);letter-spacing:.3em;margin-right:-.3em;color:#ff5b5b;text-shadow:0 0 calc(16 * var(--u)) rgba(255,0,0,.7),0 calc(2 * var(--u)) calc(3 * var(--u)) #000}.dead-title:after{content:"";position:absolute;left:50%;bottom:0;width:calc(300 * var(--u));height:calc(16 * var(--u));transform:translate(-50%);background:var(--ornament) center / 100% 100% no-repeat}.screen.pause{background:#060a14a6}.pause-title{color:#fff;text-shadow:0 0 calc(16 * var(--u)) rgba(120,190,255,.8)}.screen.rotate{display:none;z-index:50;background:#0a0f1e;font-size:16px}.rotate svg{width:64px;height:64px;fill:none;stroke:#fff;stroke-width:3}@media(orientation:portrait)and (pointer:coarse){.screen.rotate{display:flex}}.bag-btn{position:absolute;top:calc(10 * var(--u));right:calc(142 * var(--u) + var(--safe-r));width:calc(38 * var(--u));height:calc(38 * var(--u));border-radius:50%;border:calc(2 * var(--u)) solid rgba(255,215,106,.7);background:#0e1220bf;box-shadow:0 0 calc(8 * var(--u)) #ffd76a59;pointer-events:auto;display:grid;place-items:center;padding:0;cursor:pointer;touch-action:none;transition:transform .15s,border-color .2s,box-shadow .2s}.bag-btn:active{transform:scale(.92)}.bag-btn canvas{width:78%;height:78%;border-radius:50%}.bag-screen{background:#040712e0;backdrop-filter:blur(4px);z-index:35;padding:calc(10 * var(--u));box-sizing:border-box}.bag-container{width:min(740px,calc(100vw - 28px));max-height:min(360px,calc(100vh - 20px));background:linear-gradient(180deg,#161c34f5,#0a0e1cfa);border:calc(1.5 * var(--u)) solid #d9b25e;border-radius:calc(12 * var(--u));box-shadow:0 0 calc(24 * var(--u)) #000000d9,inset 0 0 calc(16 * var(--u)) #d9b25e26;display:flex;flex-direction:column;padding:calc(10 * var(--u)) calc(14 * var(--u));box-sizing:border-box;gap:calc(8 * var(--u))}.bag-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(217,178,94,.35);padding-bottom:calc(6 * var(--u))}.bag-title{font:800 calc(13 * var(--u)) / 1.2 var(--font);letter-spacing:.08em;color:#ffe2a0;text-shadow:0 0 calc(8 * var(--u)) rgba(255,210,110,.5)}.bag-coins{display:flex;align-items:center;gap:calc(4 * var(--u));font:700 calc(11 * var(--u)) / 1 var(--font);color:#ffd76a}.coin-icon{font-size:calc(12 * var(--u))}.bag-close-btn{background:#1e141899;border:1px solid rgba(255,120,120,.5);color:#ff9090;width:calc(24 * var(--u));height:calc(24 * var(--u));border-radius:50%;display:grid;place-items:center;font-size:calc(12 * var(--u));cursor:pointer;padding:0}.bag-close-btn:active{transform:scale(.9)}.bag-content{display:flex;gap:calc(10 * var(--u));flex:1;min-height:0;overflow:hidden}.bag-grid{flex:1;display:grid;grid-template-columns:repeat(8,1fr);gap:calc(5 * var(--u));overflow-y:auto;max-height:calc(260 * var(--u));padding-right:calc(4 * var(--u));box-sizing:border-box}.bag-slot{aspect-ratio:1;min-width:28px;min-height:28px;background:#0e1426b3;border:calc(1.5 * var(--u)) solid rgba(255,255,255,.12);border-radius:calc(6 * var(--u));position:relative;display:grid;place-items:center;cursor:pointer;transition:transform .1s,border-color .15s,box-shadow .15s}.bag-slot:active{transform:scale(.94)}.bag-slot.empty{opacity:.35;cursor:default}.bag-slot.rarity-common{border-color:#e8eef8}.bag-slot.rarity-rare{border-color:#58c8ff;box-shadow:0 0 calc(4 * var(--u)) #58c8ff59}.bag-slot.rarity-epic{border-color:#b9a4ff;box-shadow:0 0 calc(6 * var(--u)) #b9a4ff73}.bag-slot.rarity-legendary{border-color:#ffd76a;box-shadow:0 0 calc(8 * var(--u)) #ffd76a8c}.bag-slot.selected{outline:calc(2 * var(--u)) solid #ffffff;outline-offset:1px}.bag-slot.equipped:after{content:"ใส่";position:absolute;top:1px;right:1px;background:#ffd76a;color:#1a0f02;font:900 calc(7.5 * var(--u)) / 1 var(--font);padding:1px 3px;border-radius:2px}.slot-canvas{width:90%;height:90%;display:block}.bag-details{width:calc(200 * var(--u));background:#0c1020d9;border:1px solid rgba(217,178,94,.35);border-radius:calc(8 * var(--u));padding:calc(8 * var(--u)) calc(10 * var(--u));box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between}.details-empty{margin:auto;font:600 calc(10 * var(--u)) / 1.4 var(--font);color:#ffffff73;text-align:center}.details-body{display:flex;flex-direction:column;height:100%;justify-content:space-between}.item-name{font:800 calc(12 * var(--u)) / 1.2 var(--font);letter-spacing:.04em;margin-bottom:calc(3 * var(--u))}.item-rarity-badge{align-self:flex-start;font:700 calc(9 * var(--u)) / 1 var(--font);border:1px solid currentColor;border-radius:999px;padding:calc(2 * var(--u)) calc(6 * var(--u));margin-bottom:calc(6 * var(--u))}.item-stats{display:flex;flex-direction:column;gap:calc(4 * var(--u));margin-bottom:calc(8 * var(--u))}.stat-line{display:flex;justify-content:space-between;font:600 calc(10.5 * var(--u)) / 1 var(--font);color:#d0d8ea}.stat-val{color:#86f7e2;font-weight:700}.item-actions{display:flex;gap:calc(6 * var(--u))}.item-btn{flex:1;padding:calc(6 * var(--u)) calc(8 * var(--u));font-size:calc(10 * var(--u));animation:none}.item-btn.unequip{border-color:#b4bed299;color:#d0d8e8;background:#1e2438cc}.item-sell-btn{border-color:#ffbe5099;color:#ffd76a;background:#2d1c0cd9}.combo-hud{position:absolute;right:calc(16 * var(--u) + var(--safe-r));top:calc(72 * var(--u));display:flex;flex-direction:column;align-items:flex-end;gap:calc(2 * var(--u));pointer-events:none;z-index:20;transform-origin:right center;transition:transform .08s cubic-bezier(.18,.89,.32,1.28)}.combo-hud.pop{transform:scale(1.18)}.combo-count-row{display:flex;align-items:baseline;gap:calc(4 * var(--u))}.combo-num{font:900 calc(28 * var(--u)) / 1 var(--font);color:#fff;letter-spacing:-.02em;background:linear-gradient(180deg,#fff 30%,#ffd76a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 4px rgba(0,0,0,.8)) drop-shadow(0 0 10px rgba(255,215,106,.45))}.combo-label{font:800 calc(11 * var(--u)) / 1 var(--font);color:#ffd76a;letter-spacing:.12em;text-shadow:0 1px 3px rgba(0,0,0,.9)}.combo-sub-row{display:flex;align-items:center;gap:calc(5 * var(--u))}.combo-rank{font:900 calc(13 * var(--u)) / 1 var(--font);padding:calc(1 * var(--u)) calc(5 * var(--u));border-radius:calc(3 * var(--u));letter-spacing:.04em;text-align:center;min-width:calc(18 * var(--u));box-shadow:0 2px 6px #0009}.combo-rank[data-rank=C]{color:#cbd5e1;background:#475569bf;border:1px solid #94a3b8}.combo-rank[data-rank=B]{color:#7dd3fc;background:#0c4a6ecc;border:1px solid #38bdf8;box-shadow:0 0 8px #38bdf880}.combo-rank[data-rank=A]{color:#fde047;background:#713f12cc;border:1px solid #eab308;box-shadow:0 0 10px #eab30899}.combo-rank[data-rank=S]{color:#fda4af;background:#881337d9;border:1px solid #f43f5e;box-shadow:0 0 12px #f43f5eb3}.combo-rank[data-rank=SS]{color:#e9d5ff;background:linear-gradient(135deg,#581c87e6,#be185de6);border:1px solid #d8b4fe;box-shadow:0 0 16px #c084fcd9;animation:rank-pulse .8s ease-in-out infinite alternate}@keyframes rank-pulse{0%{transform:scale(1);filter:drop-shadow(0 0 4px #c084fc)}to{transform:scale(1.1);filter:drop-shadow(0 0 10px #f472b6)}}.combo-decay{width:calc(64 * var(--u));height:calc(4.5 * var(--u));background:#0f172acc;border:1px solid rgba(255,255,255,.25);border-radius:999px;overflow:hidden}.combo-decay-fill{height:100%;width:100%;background:linear-gradient(90deg,#38bdf8,#ffd76a);transform-origin:0 50%;transition:width .05s linear}.screen-moonlit{position:absolute;inset:0;pointer-events:none;z-index:15;box-shadow:inset 0 0 calc(30 * var(--u)) #e0f2fe80,inset 0 0 calc(60 * var(--u)) #bae6fd4d,inset 0 0 calc(100 * var(--u)) #93c5fd26;animation:moonlit-pulse 1s ease-in-out infinite alternate}@keyframes moonlit-pulse{0%{opacity:.75}to{opacity:1}}.quest-btn-hud{position:absolute;top:calc(10 * var(--u));right:calc(186 * var(--u) + var(--safe-r));width:calc(38 * var(--u));height:calc(38 * var(--u));border-radius:50%;border:calc(2 * var(--u)) solid rgba(255,215,106,.7);background:#0e1220bf;box-shadow:0 0 calc(8 * var(--u)) #ffd76a59;pointer-events:auto;display:grid;place-items:center;padding:0;cursor:pointer;touch-action:none;transition:transform .15s,border-color .2s,box-shadow .2s;z-index:10}.quest-btn-hud:active{transform:scale(.92)}.quest-btn-hud.near{border-color:#ffd76a;box-shadow:0 0 calc(16 * var(--u)) #ffd76ad9;animation:quest-btn-pulse 1.2s ease-in-out infinite alternate}@keyframes quest-btn-pulse{0%{transform:scale(1);box-shadow:0 0 calc(10 * var(--u)) #ffd76a99}to{transform:scale(1.08);box-shadow:0 0 calc(20 * var(--u)) #ffd76a}}.quest-btn-hud canvas{width:78%;height:78%;border-radius:50%}.skills-btn-hud{position:absolute;top:calc(10 * var(--u));right:calc(230 * var(--u) + var(--safe-r));width:calc(38 * var(--u));height:calc(38 * var(--u));border-radius:50%;border:calc(2 * var(--u)) solid rgba(255,215,106,.7);background:#0e1220bf;box-shadow:0 0 calc(8 * var(--u)) #ffd76a59;pointer-events:auto;display:grid;place-items:center;padding:0;cursor:pointer;touch-action:none;transition:transform .15s,border-color .2s,box-shadow .2s;z-index:10}.skills-btn-hud:active{transform:scale(.92)}.skills-btn-hud canvas{width:78%;height:78%;border-radius:50%}.badge-notify{position:absolute;top:calc(-3 * var(--u));right:calc(-3 * var(--u));width:calc(14 * var(--u));height:calc(14 * var(--u));background:#ef4444;color:#fff;border:1px solid #fff;border-radius:50%;font:900 calc(9 * var(--u)) / calc(14 * var(--u)) var(--font);text-align:center;box-shadow:0 0 calc(6 * var(--u)) #ef4444}.quest-tracker{position:absolute;left:calc(14 * var(--u) + var(--safe-l));top:calc(52 * var(--u));display:flex;align-items:center;gap:calc(5 * var(--u));background:#080e1cb8;border:1px solid rgba(255,215,106,.35);border-radius:calc(4 * var(--u));padding:calc(3 * var(--u)) calc(8 * var(--u));pointer-events:none;z-index:10;backdrop-filter:blur(4px);max-width:calc(170 * var(--u))}.quest-tracker.completed{border-color:#ffd76a;box-shadow:0 0 calc(10 * var(--u)) #ffd76a80;animation:tracker-glow 1.5s ease-in-out infinite alternate}@keyframes tracker-glow{0%{background:#080e1cb8}to{background:#1e180cd9}}.quest-tracker-icon{font-size:calc(11 * var(--u))}.quest-tracker-content{display:flex;flex-direction:column}.quest-tracker-title{font:700 calc(9.5 * var(--u)) / 1.2 var(--font);color:#f8fafc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quest-tracker.completed .quest-tracker-title{color:#ffd76a}.quest-tracker-prog{font:600 calc(8.5 * var(--u)) / 1.1 var(--font);color:#93c5fd}.quest-tracker.completed .quest-tracker-prog{color:#86efac}.quests-container{max-width:calc(460 * var(--u))}.quests-notice{font:600 calc(9.5 * var(--u)) / 1.3 var(--font);padding:calc(4 * var(--u)) calc(10 * var(--u));border-radius:calc(4 * var(--u));margin-bottom:calc(8 * var(--u));text-align:center}.quests-notice.near{color:#86efac;background:#16653459;border:1px solid rgba(134,239,172,.4)}.quests-notice.far{color:#fcd34d;background:#713f1266;border:1px solid rgba(252,211,77,.4)}.quests-list{display:flex;flex-direction:column;gap:calc(8 * var(--u));max-height:calc(230 * var(--u));overflow-y:auto;padding-right:calc(4 * var(--u))}.quest-card{background:#12182cd9;border:1px solid rgba(255,255,255,.15);border-radius:calc(6 * var(--u));padding:calc(8 * var(--u)) calc(10 * var(--u));display:flex;flex-direction:column;gap:calc(4 * var(--u))}.quest-card.quest-done{border-color:#ffd76a99;background:#1c1e30e6;box-shadow:0 0 calc(10 * var(--u)) #ffd76a33}.quest-card-header{display:flex;justify-content:space-between;align-items:center}.quest-title{font:800 calc(11 * var(--u)) / 1.2 var(--font);color:#fff}.quest-card.quest-done .quest-title{color:#ffd76a}.quest-badge{font:700 calc(8 * var(--u)) / 1 var(--font);padding:calc(2 * var(--u)) calc(6 * var(--u));border-radius:999px;border:1px solid currentColor}.quest-badge.active{color:#93c5fd;border-color:#3b82f6;background:#1e3a8a66}.quest-badge.done{color:#86efac;border-color:#22c55e;background:#14532d66}.quest-desc{font:500 calc(9 * var(--u)) / 1.3 var(--font);color:#94a3b8}.quest-prog-row{display:flex;align-items:center;justify-content:space-between;gap:calc(8 * var(--u));margin-top:calc(2 * var(--u))}.quest-prog-text{font:600 calc(9 * var(--u)) / 1 var(--font);color:#e2e8f0}.quest-bar{flex:1;height:calc(5 * var(--u));background:#0f172acc;border:1px solid rgba(255,255,255,.2);border-radius:999px;overflow:hidden}.quest-fill{height:100%;background:linear-gradient(90deg,#38bdf8,#86efac);transition:width .2s ease}.quest-reward-row{display:flex;align-items:center;gap:calc(5 * var(--u));flex-wrap:wrap;margin-top:calc(2 * var(--u))}.quest-reward-label{font:600 calc(8.5 * var(--u)) / 1 var(--font);color:#cbd5e1}.quest-reward-pill{font:700 calc(8.5 * var(--u)) / 1 var(--font);padding:calc(1.5 * var(--u)) calc(6 * var(--u));border-radius:calc(3 * var(--u));border:1px solid transparent}.quest-reward-pill.gold{color:#ffd76a;background:#713f1280;border-color:#ffd76a}.quest-reward-pill.exp{color:#67e8f9;background:#0e749066;border-color:#06b6d4}.quest-reward-pill.weapon{background:#1e293bb3}.quest-action-row{display:flex;justify-content:flex-end;margin-top:calc(3 * var(--u))}.quest-btn{padding:calc(5 * var(--u)) calc(12 * var(--u));font-size:calc(9.5 * var(--u));animation:none}.quest-btn.claimable{background:linear-gradient(180deg,#ffd76a,#d97706);color:#1e1b10;border-color:#fff;box-shadow:0 0 calc(10 * var(--u)) #ffd76a99;cursor:pointer}.quest-btn.disabled{background:#1e263899;color:#64748b;border-color:#ffffff26;cursor:not-allowed}.skills-card{max-width:calc(460 * var(--u))}.skills-points-badge{font:700 calc(9.5 * var(--u)) / 1 var(--font);color:#ffd76a;background:#d9770640;border:1px solid rgba(255,215,106,.6);padding:calc(3 * var(--u)) calc(8 * var(--u));border-radius:calc(12 * var(--u));box-shadow:0 0 calc(8 * var(--u)) #ffd76a33}.skills-list{display:flex;flex-direction:column;gap:calc(7 * var(--u));margin-top:calc(8 * var(--u));max-height:calc(230 * var(--u));overflow-y:auto;padding-right:calc(4 * var(--u))}.skill-card{display:flex;align-items:center;gap:calc(8 * var(--u));background:#0e121ed9;border:1px solid rgba(255,215,106,.25);border-radius:calc(6 * var(--u));padding:calc(6 * var(--u)) calc(8 * var(--u));position:relative;transition:border-color .2s,box-shadow .2s}.skill-card:hover{border-color:#ffd76a80;box-shadow:0 0 calc(10 * var(--u)) #ffd76a26}.skill-card.skill-max{border-color:#ffd76ab3;background:linear-gradient(135deg,#141a2ae6,#261e12b3)}.skill-icon-col{width:calc(38 * var(--u));height:calc(38 * var(--u));flex-shrink:0;display:flex;align-items:center;justify-content:center}.skill-icon-col canvas.icon{width:100%;height:100%;border-radius:50%;border:1.5px solid #ffd76a;box-shadow:0 0 calc(6 * var(--u)) #ffd76a66}.skill-details-col{flex:1;display:flex;flex-direction:column;gap:calc(2.5 * var(--u));min-width:0}.skill-title-row{display:flex;align-items:center;justify-content:space-between;gap:calc(6 * var(--u))}.skill-name{font:700 calc(11 * var(--u)) / 1.2 var(--font);letter-spacing:.02em}.skill-rank-badge{font:700 calc(8.5 * var(--u)) / 1 var(--font);color:#e2e8f0;background:#1e293bcc;border:1px solid rgba(255,255,255,.2);padding:calc(2 * var(--u)) calc(6 * var(--u));border-radius:calc(4 * var(--u))}.skill-rank-badge.max{color:#ffd76a;background:#b4530966;border-color:#ffd76a;box-shadow:0 0 calc(6 * var(--u)) #ffd76a66}.skill-stats-row{display:flex;gap:calc(10 * var(--u));font:500 calc(8.5 * var(--u)) / 1.2 var(--font);color:#cbd5e1}.skill-stats-row b{color:#5eead4}.skill-perk-box{display:flex;align-items:center;gap:calc(4 * var(--u));font:500 calc(8 * var(--u)) / 1.2 var(--font);border-radius:calc(3 * var(--u));padding:calc(2 * var(--u)) calc(4 * var(--u))}.skill-perk-box.locked{background:#0f172a99;color:#94a3b8;border-left:2px solid #64748b}.skill-perk-box.unlocked{background:#b4530940;color:#fef08a;border-left:2px solid #ffd76a;box-shadow:inset 0 0 calc(8 * var(--u)) #ffd76a26}.perk-tag{font-weight:700;flex-shrink:0}.skill-perk-box.unlocked .perk-tag{color:#ffd76a}.skill-action-col{flex-shrink:0}.btn-skill-upgrade{font:700 calc(9.5 * var(--u)) / 1 var(--font);padding:calc(6 * var(--u)) calc(10 * var(--u));border-radius:calc(4 * var(--u));border:1px solid transparent;cursor:pointer;transition:transform .1s,box-shadow .2s}.btn-skill-upgrade.active{background:linear-gradient(180deg,#ffd76a,#d97706);color:#1a1205;border-color:#fff;box-shadow:0 0 calc(8 * var(--u)) #ffd76a99}.btn-skill-upgrade.active:hover{transform:translateY(-1px);box-shadow:0 0 calc(12 * var(--u)) #ffd76ae6}.btn-skill-upgrade.disabled{background:#1e293b99;color:#64748b;border-color:#ffffff1a;cursor:not-allowed}.skills-btn{background:linear-gradient(180deg,#38bdf8,#0284c7)!important;color:#fff!important;border-color:#7dd3fc!important;box-shadow:0 0 calc(10 * var(--u)) #38bdf866!important}.skills-screen{background:#040712e0;backdrop-filter:blur(4px);z-index:36;padding:calc(10 * var(--u));box-sizing:border-box}.skills-container{max-width:min(540px,calc(100vw - 28px));max-height:min(420px,calc(100vh - 24px))}.skills-footer{display:flex;align-items:center;justify-content:flex-end;gap:calc(8 * var(--u));margin-top:calc(8 * var(--u));padding-top:calc(6 * var(--u));border-top:1px solid rgba(217,178,94,.25)}.skills-resume-btn{background:linear-gradient(180deg,#ffd76a,#d97706);color:#1e1b10;font-weight:800;font-size:calc(11 * var(--u));padding:calc(7 * var(--u)) calc(16 * var(--u));border-radius:calc(8 * var(--u));border:calc(1.5 * var(--u)) solid #fff;box-shadow:0 0 calc(14 * var(--u)) #ffd76aa6;cursor:pointer;transition:transform .15s,box-shadow .2s}.skills-resume-btn:hover{transform:translateY(-1px) scale(1.02);box-shadow:0 0 calc(20 * var(--u)) #ffd76ae6}.skills-resume-btn:active{transform:scale(.96)}.skills-back-btn{background:#1e293bcc;color:#cbd5e1;font-size:calc(10 * var(--u));padding:calc(7 * var(--u)) calc(14 * var(--u));border:1px solid rgba(255,255,255,.2);border-radius:calc(8 * var(--u));cursor:pointer;transition:background .15s,color .15s}.skills-back-btn:hover{background:#2d3c55e6;color:#fff}
