@font-face{font-family:Mali;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/mali-thai-600-normal-DlTx3OsB.woff2)format("woff2"),url(/assets/mali-thai-600-normal-DPgXT6rZ.woff)format("woff")}@font-face{font-family:Jua;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jua-latin-400-normal-B0wF3VKp.woff2)format("woff2"),url(/assets/jua-latin-400-normal-DW1ANaNr.woff)format("woff")}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#eee7ec;--border:#3a3f4d;background:#07080c;font-family:system-ui,sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior:none;width:100%;height:100%;margin:0;overflow:hidden}#app{background:#07080c;position:fixed;inset:0;overflow:hidden}#game{position:absolute;inset:0;overflow:hidden}#game canvas{touch-action:none;display:block}button,select{font:inherit;color:#ebe5d6;border:1px solid var(--border);background:linear-gradient(#232a37,#0d1016);border-radius:9px}button{cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none}button:focus-visible,select:focus-visible{outline-offset:3px;outline:2px solid #d9a441}button:disabled{cursor:default}:root{--gold:#d9a441;--gold-hi:#ffe2a0;--gold-lo:#6e4f18;--bg0:#06080c;--panel-a:#181e2a;--panel-b:#0a0d13;--text:#ebe5d6;--muted:#8d90a0;--crimson:#e0334f;--crimson-lo:#6b1426;--teal:#2fd6c4;--teal-lo:#0f5f66;--violet:#a98bff;--ui-font:"Trebuchet MS", "Segoe UI", system-ui, sans-serif;--serif:"Cinzel", "Trajan Pro", "Palatino Linotype", Georgia, "Noto Serif Thai", serif;--corners:linear-gradient(var(--gold-hi), var(--gold-hi)) 0 0 / 12px 2px no-repeat, linear-gradient(var(--gold-hi), var(--gold-hi)) 0 0 / 2px 12px no-repeat, linear-gradient(var(--gold-hi), var(--gold-hi)) 100% 0 / 12px 2px no-repeat, linear-gradient(var(--gold-hi), var(--gold-hi)) 100% 0 / 2px 12px no-repeat, linear-gradient(var(--gold-hi), var(--gold-hi)) 0 100% / 12px 2px no-repeat, linear-gradient(var(--gold-hi), var(--gold-hi)) 0 100% / 2px 12px no-repeat, linear-gradient(var(--gold-hi), var(--gold-hi)) 100% 100% / 12px 2px no-repeat, linear-gradient(var(--gold-hi), var(--gold-hi)) 100% 100% / 2px 12px no-repeat}#hud,#toolbar,#auto,#chatDock,#combat,#toast,#minimapWrap{font-family:var(--ui-font);color:var(--text)}.panel,.hud-body,.pop,#chatBtn,#minimapWrap,#toast{background:var(--corners), linear-gradient(180deg, var(--panel-a), var(--panel-b));border:1px solid var(--gold-lo);box-shadow:inset 0 0 0 1px #000,inset 0 0 18px #0009,0 4px 14px #000b}.orb,#auto,#attack,.slot,.pop button,.pop select{color:var(--text);border:2px solid var(--gold);background:radial-gradient(circle at 50% 28%,#2a3243,#0c1017 72%);transition:filter .12s,box-shadow .12s;box-shadow:inset 0 0 0 2px #000,inset 0 0 14px #000a,0 3px 10px #000b}button:active{filter:brightness(1.25);transform:translateY(1px)}#hud{top:calc(8px + env(safe-area-inset-top,0px));left:calc(12px + env(safe-area-inset-left,0px));pointer-events:none;align-items:center;gap:0;width:clamp(210px,28vw,300px);display:flex;position:absolute}.badge{z-index:1;text-align:center;clip-path:polygon(50% 0,100% 24%,100% 76%,50% 100%,0 76%,0 24%);background:linear-gradient(160deg, var(--gold-hi), var(--gold) 45%, var(--gold-lo));filter:drop-shadow(0 3px 5px #000c);flex:none;place-content:center;width:58px;height:64px;margin-right:-10px;display:grid;position:relative}.badge:before{content:"";clip-path:inherit;background:radial-gradient(circle at 50% 30%,#2a3040,#090b10 75%);position:absolute;inset:3px}.badge strong,.badge small{position:relative}.badge strong{font:700 21px/1 var(--serif);color:var(--gold-hi);text-shadow:0 0 8px #d9a44199}.badge small{font:700 8px var(--serif);letter-spacing:2px;color:var(--gold);margin-top:1px}.hud-body{flex:1;min-width:0;padding:6px 10px 7px 18px}.nick{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font:700 12px var(--serif);letter-spacing:1px;color:var(--gold-hi);box-shadow:none;text-shadow:0 1px 2px #000;pointer-events:auto;touch-action:manipulation;background:0 0;border:0;margin:0 0 3px;padding:0;display:block;overflow:hidden}.meter{clip-path:polygon(0 0,calc(100% - 7px) 0,100% 100%,7px 100%);background:#05070a;border:1px solid #000;outline:1px solid #3a2c12;height:15px;margin:3px 0;position:relative;overflow:hidden}.meter i{transform-origin:0;width:100%;height:100%;transition:transform .1s linear;display:block;box-shadow:inset 0 1px #fff5,inset 0 -3px 5px #0006}.meter span{text-align:right;font:700 10px/15px var(--ui-font);letter-spacing:.5px;color:#fff;text-shadow:0 1px 2px #000,0 0 3px #000;padding-right:11px;position:absolute;inset:0}.hp i{background:linear-gradient(#ff7b8e, var(--crimson) 45%, var(--crimson-lo))}.meter.xp{clip-path:none;outline-width:1px;height:5px;margin:5px 0 3px}.xp i{background:linear-gradient(90deg, #7a5cff, var(--violet), var(--gold-hi));box-shadow:0 0 6px #a98bff99}.chips{font:700 9px var(--serif);letter-spacing:1.2px;text-transform:uppercase;color:var(--gold);justify-content:space-between;gap:6px;display:flex}#toolbar{z-index:6;top:calc(8px + env(safe-area-inset-top,0px));right:calc(12px + env(safe-area-inset-right,0px));gap:8px;display:flex;position:absolute}.orb{border-radius:10px;place-items:center;width:44px;height:44px;padding:0;display:grid;position:relative;transform:rotate(45deg)scale(.82)}.orb svg{fill:none;width:26px;height:26px;stroke:var(--gold-hi);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 3px #d9a44166);transform:rotate(-45deg)}.orb[aria-expanded=true]{background:radial-gradient(circle at 50% 28%,#5a4116,#1b1308 75%);box-shadow:inset 0 0 0 2px #000,0 0 14px #d9a441aa}.orb b{min-width:19px;font:700 10px/15px var(--ui-font);color:#fff;background:var(--crimson);border:1px solid #000;border-radius:99px;padding:1px 4px;position:absolute;top:-6px;right:-6px;transform:rotate(-45deg);box-shadow:0 0 8px #e0334faa}.pop{gap:8px;width:236px;padding:12px 14px 14px;display:grid;position:absolute;top:58px;right:0}.pop h3{font:700 13px var(--serif);letter-spacing:3px;text-transform:uppercase;text-align:center;color:var(--gold-hi);border-bottom:1px solid var(--gold-lo);margin:0;padding-bottom:6px}.pop button,.pop select{min-height:38px;font:700 13px var(--ui-font);border-width:1px;border-radius:4px;padding:4px 10px}.pop label{color:var(--text);align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}#logout{background:linear-gradient(#5c1626,#2a0a12);border-color:#a02640}#stats{font:600 10px var(--ui-font);color:var(--muted);pointer-events:none}#inventory{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.slot{height:54px;font:700 11px var(--ui-font);background:linear-gradient(#10141c,#07090d);border-width:1px;border-radius:4px;padding:3px}.slot strong,.slot small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.slot small{color:var(--teal);margin-top:3px;font-size:10px}.slot:disabled{opacity:.5;border-color:#3a3f4d}#mailList{gap:5px;max-height:190px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}#mailList li{color:var(--text);border-left:3px solid var(--gold);background:#0c1017;padding:6px 9px;font-size:12px}#mailList li.empty{color:var(--muted);text-align:center;border-left-color:#3a3f4d;font-style:italic}#minimapWrap{z-index:1;top:calc(60px + env(safe-area-inset-top,0px));right:calc(12px + env(safe-area-inset-right,0px));pointer-events:none;padding:6px;position:absolute}#minimapWrap canvas{outline:1px solid var(--gold-lo);border:1px solid #000;width:156px;height:117px;display:block}#minimapWrap small{font:700 8px var(--serif);letter-spacing:3px;color:var(--gold);background:var(--panel-b);border:1px solid var(--gold-lo);padding:0 7px;position:absolute;top:-7px;left:50%;transform:translate(-50%)}#auto{left:calc(150px + env(safe-area-inset-left,0px));bottom:calc(24px + env(safe-area-inset-bottom,0px));width:54px;height:54px;font:700 10px/1.1 var(--serif);letter-spacing:.5px;border-radius:12px;padding:0;position:absolute;transform:rotate(45deg)scale(.86)}#auto[aria-pressed=true]{color:#04201d;border-color:var(--teal);background:radial-gradient(circle at 50% 28%, #7ff3e4, var(--teal) 55%, var(--teal-lo));box-shadow:inset 0 0 0 2px #00201c,0 0 14px #2fd6c488}#chatDock{left:50%;bottom:calc(10px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:5px;width:clamp(180px,100vw - 520px,340px);display:flex;position:absolute;transform:translate(-50%)}#chatLog{pointer-events:none;flex-direction:column;justify-content:flex-end;gap:2px;max-height:64px;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}#chatDock.open #chatLog{border:1px solid var(--gold-lo);pointer-events:auto;background:linear-gradient(#12161fee,#080a0fee);max-height:150px;padding:6px 9px;overflow-y:auto}#chatLog li{font:600 12px/1.35 var(--ui-font);color:var(--text);text-shadow:0 1px 2px #000,0 0 4px #000;word-break:break-word}#chatBtn{height:34px;font:600 12px var(--ui-font);color:var(--muted);justify-content:space-between;align-items:center;gap:8px;padding:0 12px;display:flex}#chatLast{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#chatBtn i{color:var(--gold);font-size:10px;font-style:normal;transition:transform .12s}#chatDock.open #chatBtn i{transform:rotate(180deg)}#chatForm{gap:6px;display:flex}#chatInput{min-width:0;font:14px var(--ui-font);color:var(--text);border:1px solid var(--gold-lo);background:#07090d;border-radius:0;flex:1;padding:8px 11px}#chatForm button{font:700 12px var(--serif);letter-spacing:1px;color:#1a1205;background:linear-gradient(var(--gold-hi), var(--gold) 55%, var(--gold-lo));border:1px solid #000;border-radius:0;padding:0 16px}#toast{max-width:70%;font:700 12px var(--serif);letter-spacing:2px;text-transform:uppercase;text-align:center;color:var(--gold-hi);text-shadow:0 0 8px #d9a44199;background:linear-gradient(90deg, transparent, var(--gold) 20%, var(--gold) 80%, transparent) top / 100% 1px no-repeat, linear-gradient(90deg, transparent, var(--gold) 20%, var(--gold) 80%, transparent) bottom / 100% 1px no-repeat, linear-gradient(90deg, transparent, #080a0fdd 18%, #080a0fdd 82%, transparent);box-shadow:none;opacity:0;pointer-events:none;border:0;padding:8px 30px;position:absolute;top:20%;left:50%;transform:translate(-50%)}#joystick{left:calc(25px + env(safe-area-inset-left,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));border:2px solid var(--gold-lo);background:repeating-conic-gradient(from -2deg, #d9a44155 0 4deg, transparent 4deg 45deg) content-box, radial-gradient(circle, #0d111899 40%, #05070aaa 100%);touch-action:none;border-radius:50%;width:112px;height:112px;padding:6px;position:absolute;box-shadow:inset 0 0 18px #000c,0 0 0 1px #000,0 4px 12px #000a}#stick{border:2px solid var(--gold-hi);pointer-events:none;background:radial-gradient(circle at 35% 28%,#5d6680,#14181f 70%);border-radius:50%;width:44px;height:44px;position:absolute;top:calc(50% - 22px);left:calc(50% - 22px);box-shadow:inset 0 0 8px #000,0 2px 8px #000c,0 0 8px #d9a44166}#combat{right:calc(10px + env(safe-area-inset-right,0px));bottom:calc(10px + env(safe-area-inset-bottom,0px));transform-origin:100% 100%;width:230px;height:200px;position:absolute}#attack{border-color:var(--crimson);width:92px;height:92px;font:700 13px var(--serif);letter-spacing:1px;background:radial-gradient(circle at 50% 30%,#6b1a2c,#1a0710 75%);border-radius:50%;padding:0;position:absolute;bottom:10px;right:14px;box-shadow:inset 0 0 0 3px #000,inset 0 0 20px #e0334f66,0 0 16px #e0334f66,0 4px 12px #000b}#attack small{font:700 8px var(--serif);letter-spacing:2px;color:var(--gold);margin-top:3px;display:block}#vignette{pointer-events:none;background:radial-gradient(85% 80%,#0000 52%,#000a 100%),linear-gradient(#0008,#0000 14% 80%,#0009);position:absolute;inset:0}@media (max-height:440px){#combat{transform:scale(.8)}#joystick{width:96px;height:96px;left:calc(18px + env(safe-area-inset-left,0px));bottom:calc(12px + env(safe-area-inset-bottom,0px))}#auto{left:calc(130px + env(safe-area-inset-left,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));width:46px;height:46px;font-size:9px}.orb{width:38px;height:38px}.pop{top:50px}.badge{width:50px;height:56px}#minimapWrap{top:calc(52px + env(safe-area-inset-top,0px))}#minimapWrap canvas{width:120px;height:90px}#chatDock.open #chatLog{max-height:90px}}@media (prefers-reduced-motion:reduce){.meter i,#chatBtn i{transition:none}}.overlay{z-index:100;text-align:center;background:radial-gradient(80% 60% at 50% 40%,#151b27,#05080a);flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.overlay h1{letter-spacing:7px;color:#ffe2a0;text-shadow:0 0 14px #d9a44188,0 3px #000;font-family:Georgia,serif}.overlay h2{font-size:20px}.overlay p{color:#cfc9b8;line-height:1.7}#fatal{z-index:900}#fatal button{padding:12px 22px}[hidden]{display:none!important}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#auth{z-index:200;text-align:center;--gold:#ffd75e;--gold-dk:#8a5a12;background:#080a10;flex-direction:column;justify-content:center;align-items:center;padding:0;display:flex;overflow:hidden}#auth[data-step=authNick]{overflow-y:auto}.auth-art{contain:strict;pointer-events:none;background:#080a10;position:fixed;inset:0;overflow:hidden}.auth-art canvas{image-rendering:pixelated;image-rendering:crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:pixelated;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes logoFloat{0%{transform:translateY(-3px)}to{transform:translateY(4px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes btnGlow{0%{opacity:.35}to{opacity:1}}.auth-wrap{z-index:1;width:100%;min-height:100%;padding:calc(12px + env(safe-area-inset-top,0px)) calc(20px + env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) calc(20px + env(safe-area-inset-left,0px));flex-direction:column;justify-content:center;align-items:center;gap:clamp(8px,4vh,34px);margin:auto;display:flex;position:relative}.logo{letter-spacing:0;width:min(440px,66vw,78vh);text-shadow:none;margin:0}.logo svg{filter:drop-shadow(0 0 16px #d9a44166)drop-shadow(0 6px 6px #02000dcc);width:100%;height:auto;animation:4.5s ease-in-out infinite alternate logoFloat;display:block;overflow:visible}.auth-card{width:100%;max-width:340px;position:relative}.auth-step{display:block}#auth[data-step=authLogin] .auth-card,#auth[data-step=authLoading] .auth-card{max-width:none}#auth[data-step=authNick] .auth-card{color:#e8dcff;box-shadow:0 -4px 0 0 var(--gold), 0 4px 0 0 var(--gold), -4px 0 0 0 var(--gold), 4px 0 0 0 var(--gold), 0 0 40px 6px #6a3cff66;background:linear-gradient(#24115a,#150a3a);padding:20px 22px 16px}#auth .auth-card h2{color:var(--gold);margin:0 0 6px;font:800 20px/1.25 system-ui,sans-serif}.auth-card .sr-only{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}#auth .auth-note,#auth .auth-hint{color:#cbb9ff;margin:0 0 12px;font-size:13px;line-height:1.55}#auth .auth-hint{color:#a592e0;margin:6px 0 0;font-size:11px}#auth .auth-error{color:#ff8f9c;min-height:1.3em;margin:10px 0 0;font-size:12px;font-weight:700;line-height:1.5}#authLoading{flex-direction:column;align-items:center;gap:12px;padding:6px 0;display:flex}#authLoading p{letter-spacing:1px;color:#e8dcff;text-shadow:0 2px 6px #02000d;margin:0;font:700 13px/1.4 system-ui,sans-serif}.spinner{border:4px solid #fff2;border-top-color:var(--gold);width:30px;height:30px;animation:.9s steps(8,end) infinite spin}#auth button{padding:0}.px-text{shape-rendering:crispedges;width:auto;height:14px;display:block}#auth .google-btn{--btn-shadow:0 -4px 0 0 var(--gold), 0 4px 0 0 var(--gold), -4px 0 0 0 var(--gold), 4px 0 0 0 var(--gold), 0 8px 0 0 var(--gold-dk), -4px 4px 0 0 var(--gold-dk), 4px 4px 0 0 var(--gold-dk);color:#fff;width:min(300px,76vw);min-height:48px;box-shadow:var(--btn-shadow), inset 0 4px 0 #8a64f0, inset 0 -4px 0 #25106a, 0 0 14px 2px #8a5cff66;cursor:pointer;touch-action:manipulation;background:linear-gradient(#5a2fc0,#35188a);border:0;border-radius:0;justify-content:center;align-items:center;gap:12px;margin:0 auto;padding:8px 16px;display:flex;position:relative}#auth .google-btn:after{content:"";pointer-events:none;opacity:.35;will-change:opacity;animation:2.4s ease-in-out infinite alternate btnGlow;position:absolute;inset:0;box-shadow:0 0 28px 6px #b98cffaa}#googleLabel{align-items:center;display:flex}#auth .google-btn>svg{box-sizing:border-box;background:#fff;flex:none;width:26px;height:26px;padding:4px}#auth .google-btn .px-text{filter:drop-shadow(0 2px #1a0a4a);height:13px}#auth .google-btn:hover:not(:disabled){background:linear-gradient(#6a3ee0,#4220a8)}#auth .google-btn:active:not(:disabled){transform:translateY(4px)}#auth .google-btn:active:not(:disabled):after,#auth .google-btn:disabled:after{opacity:0;animation:none}#auth .google-btn:disabled{opacity:.55}#auth .google-btn.busy{opacity:.7}#auth .primary-btn{color:#3a1a00;touch-action:manipulation;background:linear-gradient(#ffe27a,#ffa91c);border:0;border-radius:0;min-height:44px;padding:8px 24px;font:800 15px system-ui,sans-serif;box-shadow:0 -3px #7a4a08,0 3px #7a4a08,-3px 0 #7a4a08,3px 0 #7a4a08,0 6px #4a2a04}#auth .primary-btn:active:not(:disabled){transform:translateY(3px)}#auth .primary-btn:disabled{opacity:.6}#auth .link-btn{color:#cbb9ff;text-underline-offset:3px;touch-action:manipulation;background:0 0;border:0;padding:8px 10px;font:700 13px system-ui,sans-serif;text-decoration:underline}#auth .link-btn.small{margin:8px auto 0;font-size:12px;display:block}#auth .link-btn[hidden]{display:none}.auth-actions{justify-content:center;align-items:center;gap:10px;margin-top:14px;display:flex}#auth .auth-card input{color:#fff;background:#0d0630;border:3px solid #5a3fb0;border-radius:0;width:100%;min-width:0;padding:10px 14px;font:600 15px system-ui,sans-serif}#auth .auth-card input::placeholder{color:#7d6cc0}#auth .auth-card input:focus-visible{outline:3px solid var(--gold);outline-offset:1px}#auth button:focus-visible{outline-offset:5px;outline:3px solid #fff}.display-mode{justify-content:center;gap:8px;margin-top:18px;display:flex}#auth .display-mode button{color:#a592e0;touch-action:manipulation;background:#150a3acc;border:0;justify-content:center;align-items:center;min-height:28px;padding:0 10px;display:flex;box-shadow:0 -2px #4a3a96,0 2px #4a3a96,-2px 0 #4a3a96,2px 0 #4a3a96}#auth .display-mode .px-text{height:8px}.display-hint{color:#ffd75e;opacity:.85;justify-content:center;margin-top:8px;display:flex}.display-hint .px-text{height:6px}#auth .display-mode button[aria-checked=true]{color:#3a1a00;background:var(--gold);box-shadow:0 -2px #8a5a12,0 2px #8a5a12,-2px 0 #8a5a12,2px 0 #8a5a12}#auth .music-btn{z-index:3;top:max(10px, env(safe-area-inset-top,0px));right:max(10px, env(safe-area-inset-right,0px));width:38px;height:38px;color:var(--gold);cursor:pointer;touch-action:manipulation;background:#150a3acc;border:0;justify-content:center;align-items:center;padding:0;display:flex;position:fixed;box-shadow:0 -2px #4a3a96,0 2px #4a3a96,-2px 0 #4a3a96,2px 0 #4a3a96}#auth .music-btn svg{width:22px;height:18px}#auth .music-btn[data-state=off]{color:#a592e0}#auth .music-btn[data-state=on] .mute,#auth .music-btn[data-state=off] .waves{display:none}#auth .music-btn:active{transform:translateY(1px)}@media (max-height:420px){.auth-wrap{gap:8px}.logo{width:min(340px,58vw,96vh)}#auth .google-btn{gap:8px;width:min(230px,44vw);min-height:40px;padding:5px 12px}#auth .google-btn .px-text{height:11px}.display-mode{margin-top:10px}#auth .auth-note,#auth .auth-hint{display:none}}@media (max-height:300px){.logo{width:min(250px,50vw,90vh)}#auth .google-btn{width:min(200px,44vw)}}#rotate{z-index:1000;background:radial-gradient(70% 40% at 50% 38%,#4a2a9a88,#0000 70%),linear-gradient(#05021a,#1a0c4a 70%,#3a1673);display:none;overflow:hidden}html[data-orient=portrait] #rotate{display:flex}@media (orientation:portrait){html:not([data-orient]) #rotate{display:flex}}.rot-card{flex-direction:column;align-items:center;gap:22px;display:flex}.rot-phone{place-items:center;width:120px;height:120px;display:grid}.rot-phone svg{filter:drop-shadow(0 0 14px #8a5cffaa);animation:2.8s ease-in-out infinite rotPhone}.rot-text{color:var(--gold,#ffd75e)}.rot-text .px-text{filter:drop-shadow(0 2px #1a0a4a);max-width:86vw;height:14px}@keyframes rotPhone{0%,14%{transform:rotate(0)}50%,80%{transform:rotate(-90deg)}to{transform:rotate(0)}}@media (prefers-reduced-motion:reduce){.logo svg,.spinner,#auth .google-btn:after{animation:none}.rot-phone svg{animation:none;transform:rotate(-45deg)}}#hud,#toolbar,#inventory{contain:layout style}html[data-perf=low] .logo svg,html[data-perf=low] #auth .google-btn:after{animation:none}html[data-perf=low] .logo svg{filter:drop-shadow(0 0 8px #d9a44199)}html[data-perf=low] #auth .google-btn:after{opacity:.7}#auth[hidden] *,#auth[hidden] :after{animation:none!important}html[data-perf=low] .badge,html[data-perf=low] .orb svg{filter:none}#hud,#toolbar,#auto,#chatDock,#combat,#toast,#minimapWrap{--ink:#ece7f2;--text:#ece7f2;--muted:#8b889b;--bronze:#c8a15a;--bronze-hi:#f1dba3;--bronze-lo:#5b4526;--crimson:#e0334f;--ember:#ff7a45;--teal:#2fd6c4;--violet:#a98bff;--surface:linear-gradient(180deg, #181923a8, #08080db8);--surface-solid:linear-gradient(180deg, #181923eb, #08080df2);--edge:inset 0 1px 0 #ffffff12, inset 0 0 0 1px #000000b3;--brackets:linear-gradient(var(--bronze), var(--bronze)) 0 0 / 11px 1px no-repeat, linear-gradient(var(--bronze), var(--bronze)) 0 0 / 1px 11px no-repeat, linear-gradient(var(--bronze), var(--bronze)) 100% 0 / 11px 1px no-repeat, linear-gradient(var(--bronze), var(--bronze)) 100% 0 / 1px 11px no-repeat, linear-gradient(var(--bronze), var(--bronze)) 0 100% / 11px 1px no-repeat, linear-gradient(var(--bronze), var(--bronze)) 0 100% / 1px 11px no-repeat, linear-gradient(var(--bronze), var(--bronze)) 100% 100% / 11px 1px no-repeat, linear-gradient(var(--bronze), var(--bronze)) 100% 100% / 1px 11px no-repeat;font-family:var(--ui-font);color:var(--ink)}.hud-body,.pop,#chatBtn,#minimapWrap{background:var(--brackets), var(--surface);box-shadow:var(--edge), 0 4px 14px #0006;border:1px solid #c8a15a59;border-radius:5px}.pop{background:var(--brackets), var(--surface-solid)}.orb,#auto,.slot,.pop button,.pop select{color:var(--ink);border:1px solid var(--bronze-lo);box-shadow:var(--edge), 0 3px 8px #00000073;background:radial-gradient(circle at 50% 22%,#2b2c3bc7,#0b0b11cc 76%)}button:hover:not(:disabled){box-shadow:var(--edge), 0 3px 8px #00000073}button:active{filter:brightness(1.3)}#hud{width:clamp(236px,31vw,340px)}.medal{z-index:1;background:conic-gradient(var(--ember) calc(var(--xp,0) * 1%), #2a2833 0);width:68px;height:68px;box-shadow:0 0 0 2px #000, 0 0 0 3px var(--bronze-lo), 0 5px 14px #000000bf;border-radius:50%;flex:none;margin-right:-16px;padding:5px;position:relative}.medal-core{text-align:center;background:radial-gradient(circle at 50% 28%,#34364a,#090a10 78%);border-radius:50%;place-content:center;width:100%;height:100%;display:grid;box-shadow:inset 0 0 0 2px #000,inset 0 0 0 3px #c8a15a99,inset 0 -8px 14px #00000080}.medal strong{font:700 26px/1 var(--serif);color:var(--bronze-hi);text-shadow:0 0 10px #ff7a458c,0 2px #000}.medal small{font:700 8px var(--serif);letter-spacing:3px;color:var(--bronze);text-indent:3px;margin-top:1px}.hud-body{padding:8px 12px 9px 24px}.nick{font:700 15px/1.2 var(--ui-font);letter-spacing:.6px;color:var(--bronze-hi);text-shadow:0 1px #000,0 0 6px #000000e6;margin:0 0 4px}.nick:disabled{color:var(--muted)}.meter{clip-path:polygon(0 0,calc(100% - 9px) 0,100% 100%,9px 100%);background:#040407b3;border:0;outline:0;height:20px;margin:4px 0;box-shadow:inset 0 0 0 1px #c8a15a66}.meter.stamina{height:15px}.meter i{width:auto;height:auto;transition:transform .12s linear;position:absolute;inset:0;box-shadow:inset 0 1px #ffffff61,inset 0 -4px 6px #00000059}.meter:after{content:"";pointer-events:none;background:repeating-linear-gradient(90deg,#0000 0 calc(10% - 1px),#0009 calc(10% - 1px) 10%);position:absolute;inset:0}.meter .ghost{box-shadow:none;opacity:.55;background:linear-gradient(#fffc,#fff7);transition:transform .42s ease-out .28s}.hp i:not(.ghost){background:linear-gradient(#ff8294 0%,#e0334f 48%,#7a1126 100%)}.stamina i{background:linear-gradient(#98f7ea 0%,#2fd6c4 48%,#0f6a70 100%)}.meter span{z-index:2;font:700 12px/20px var(--ui-font);letter-spacing:.4px;text-shadow:0 1px 2px #000,0 0 4px #000,0 0 2px #000;padding-right:14px}.meter.stamina span{font-size:10px;line-height:15px}.chips{font:700 10px var(--ui-font);letter-spacing:1.2px;margin-top:5px}#passive{color:#ff6b81;text-shadow:0 0 8px #e0334f8c}#gold{color:var(--bronze-hi);text-shadow:0 1px #000}.orb{border-width:2px;border-color:var(--bronze);border-radius:50%;width:46px;height:46px;transform:none}.orb:active{transform:scale(.92)}.orb svg{width:25px;height:25px;stroke:var(--bronze-hi);filter:none;transform:none}.orb[aria-expanded=true]{border-color:var(--ember);box-shadow:var(--edge), 0 0 14px #ff7a458c;background:radial-gradient(circle at 50% 24%,#5d3a1c,#1c0f08 78%)}.orb b{background:var(--crimson);border:1px solid #000;top:-5px;right:-5px;transform:none;box-shadow:0 0 8px #e0334fb3}.pop{padding:12px 14px 14px;top:60px}.pop h3{font:700 12px var(--serif);letter-spacing:4px;color:var(--bronze-hi);border-bottom:1px solid #c8a15a4d}.pop button,.pop select{border-radius:4px}#logout{color:#ffd0d8;background:linear-gradient(#4d1220,#200610);border-color:#8f2238}#stats{text-align:center}.slot{background:linear-gradient(#141621,#08080d);border-radius:4px}.slot strong{color:var(--bronze-hi)}.slot small{color:var(--teal)}#mailList li{border-left:3px solid var(--bronze);background:#0d0e15;border-radius:0 4px 4px 0}#minimapWrap{padding:6px}#minimapWrap canvas{outline:1px solid var(--bronze-lo);opacity:.88;border:1px solid #000;border-radius:2px;display:block}#minimapWrap small{font:700 8px var(--serif);letter-spacing:3px;color:var(--bronze);border:1px solid var(--bronze-lo);background:#0a0a10e6;border-radius:2px;padding:0 9px;top:-8px}#auto{width:58px;height:58px;font:700 10px/1.15 var(--serif);letter-spacing:.8px;color:var(--muted);border-width:2px;border-radius:50%;transform:none}#auto:active{transform:scale(.93)}#auto[aria-pressed=true]{color:#d9fff9;border-color:var(--teal);box-shadow:var(--edge), 0 0 12px #2fd6c480;background:radial-gradient(circle at 50% 24%,#14595ad9,#04171ad9 78%)}#chatDock.open #chatLog{background:linear-gradient(#14151ebd,#08080dcc);border:1px solid #c8a15a4d;border-radius:5px}#chatLog li b{color:var(--bronze)}#chatBtn{height:36px;color:var(--muted)}#chatBtn i{color:var(--bronze)}#chatInput{color:var(--ink);border:1px solid var(--bronze-lo);background:#07070bd9;border-radius:4px}#chatInput:focus-visible{outline:1px solid var(--bronze)}#chatForm button{color:#1a1205;background:linear-gradient(var(--bronze-hi), var(--bronze) 55%, var(--bronze-lo));border:1px solid #000;border-radius:4px;font-weight:700}#toast{font:700 13px var(--serif);letter-spacing:3px;color:var(--bronze-hi);text-shadow:0 0 10px #ff7a458c}#combat{width:120px;height:110px}#attack{width:100px;height:100px;font:700 16px var(--ui-font);letter-spacing:1px;color:#ffe4ea;text-shadow:0 1px #000,0 0 8px #e0334fcc;background:radial-gradient(circle at 50% 26%,#7e1e35d1,#1b0710db 74%);border:3px solid #d63e5af2;bottom:4px;right:8px;box-shadow:inset 0 0 0 2px #000c,inset 0 0 0 4px #ff829633,0 0 16px #e0334f73,0 4px 10px #0000008c}#attack small{color:var(--bronze);font:700 8px var(--serif);letter-spacing:3px}#attack:active{transform:scale(.95)}@media (pointer:coarse){#attack small{display:none}}#joystick{background:repeating-conic-gradient(from -2deg, #c8a15a59 0 4deg, transparent 4deg 45deg) content-box, radial-gradient(circle, #0d111847 40%, #05070a66 100%);border:2px solid #c8a15a80;box-shadow:inset 0 0 14px #00000073,0 3px 10px #00000059}#stick{background:radial-gradient(circle at 35% 28%,#7882a0cc,#14181fcc 70%);border:2px solid #f1dba3d9;box-shadow:inset 0 0 8px #000000b3,0 2px 6px #00000080}#vignette{background:radial-gradient(95% 90%,#0000 66%,#0000004d 100%),linear-gradient(#00000042,#0000 14% 80%,#0000004d)}@media (max-height:440px){.medal{width:56px;height:56px;margin-right:-14px;padding:4px}.medal strong{font-size:21px}.hud-body{padding:6px 10px 7px 20px}.nick{font-size:13px}.meter{height:17px}.meter.stamina{height:13px}.meter span{font-size:10px;line-height:17px}.meter.stamina span{font-size:9px;line-height:13px}.orb{width:40px;height:40px}#auto{width:48px;height:48px;font-size:9px}}@media (prefers-reduced-motion:reduce){.meter i,.meter .ghost{transition:none}}html[data-map=heaven] #combat,html[data-map=heaven] #auto,html[data-map=heaven] #chatDock{display:none!important}#story{--story-font:"Jua", "Mali", "Noto Sans Thai", system-ui, sans-serif;left:50%;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:6;opacity:0;pointer-events:none;color:#fff;width:clamp(300px,100vw - 340px,640px);font-family:var(--story-font);background:#14204880;border:2px solid #ffffff8c;border-radius:14px;padding:10px 16px;transition:opacity .3s,transform .3s;position:absolute;transform:translate(-50%,8px);box-shadow:0 4px #0a123059}#story.on{opacity:1;pointer-events:auto;transform:translate(-50%)}#story.pick,#story.summon{pointer-events:none}#storyRows p{font:600 16px/1.65 var(--story-font);letter-spacing:.3px;color:#fff;text-shadow:-1px -1px #1a2a5c,1px -1px #1a2a5c,-1px 1px #1a2a5c,1px 1px #1a2a5c,0 2px 3px #0a123099;margin:0 0 8px}#storyRows p:last-child{margin-bottom:4px}#storyRows b{font:400 13px/1.6 var(--story-font);letter-spacing:.5px;color:#3a2a08;text-shadow:none;background:#ffe08a;border-radius:999px;margin-bottom:2px;padding:0 10px;display:inline-block}#storyRows p.me b{color:#0f3550;background:#a8e6ff}#storyRows p.voice span,#storyRows p.me span,#storyRows p.goalline span{display:block}#storyRows p.goalline{text-align:center}#storyBar{justify-content:space-between;align-items:center;gap:10px;margin-top:4px;display:flex}#storyStep{text-align:center;font:400 13px var(--story-font);letter-spacing:2px;color:#dbe6ff;text-shadow:0 1px 2px #1a2a5c;flex:1}#storyBar button{min-height:34px;font:400 15px/1 var(--story-font);letter-spacing:.5px;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:999px;padding:4px 16px}#storyNext{color:#4a2a00;background:#ffd45e;border:2px solid #fff3c4;box-shadow:0 3px #c58a1e}#storyNext:after{content:" ▶";animation:.9s steps(2,end) infinite storyBlink;display:inline-block}#storyNext:active{transform:translateY(3px);box-shadow:0 0 #c58a1e}#storySkip{color:#fff;background:#14204873;border:2px solid #fff9;box-shadow:0 3px #0a123059}#storySkip:active{box-shadow:none;transform:translateY(3px)}#storyBar button:focus-visible{outline-offset:2px;outline:2px solid #fff}@keyframes storyBlink{50%{opacity:.25}}@media (prefers-reduced-motion:reduce){#story{transition:none}}.nick-row{align-items:center;gap:6px;min-width:0;display:flex}.nick-row .nick{flex:0 auto;min-width:0}.look-btn{width:20px;height:20px;font:700 11px/1 var(--ui-font);color:var(--gold-hi);text-shadow:0 0 6px #d9a441aa;border:1px solid var(--gold);pointer-events:auto;touch-action:manipulation;background:radial-gradient(circle at 50% 28%,#2a3243,#0c1017 72%);border-radius:50%;flex:none;place-items:center;margin:0 0 3px;padding:0;display:grid;box-shadow:inset 0 0 0 1px #000,0 1px 4px #000b}.look-btn:active{transform:scale(.9)}#auth[data-step=authLook] .logo{display:none}#auth[data-step=authLook] .auth-card{max-width:min(680px,94vw);box-shadow:none;background:0 0;padding:0}#authLook .look-card{--gold:#d9a441;--ink:var(--text);--pick:var(--crimson);--pick-lo:var(--crimson-lo);--glow:#e0334f55;overscroll-behavior:contain;text-align:left;max-height:96vh;color:var(--ink);background:var(--corners), linear-gradient(180deg, #181e2abd, #080a10d1);-webkit-backdrop-filter:blur(3px)saturate(.85);backdrop-filter:blur(3px)saturate(.85);border:1px solid var(--gold);box-shadow:inset 0 0 0 1px #000, inset 0 0 0 4px #0a0d1388, inset 0 0 0 5px var(--gold-lo), 0 10px 30px #000a, 0 0 32px 2px var(--glow);border-radius:4px;align-items:stretch;gap:clamp(10px,3vw,22px);padding:clamp(14px,3.4vh,24px) clamp(14px,3vw,24px);transition:box-shadow .26s;display:flex;position:relative;overflow:hidden auto}#authLook[data-gender=m] .look-card{--pick:var(--teal);--pick-lo:var(--teal-lo);--glow:#2fd6c444}@keyframes lookBob{0%{transform:translateY(0)}to{transform:translateY(-4px)}}#authLook .look-stage{flex-direction:column;flex:none;justify-content:center;align-items:center;gap:8px;display:flex;position:relative}#authLook .look-view{align-items:center;gap:6px;display:flex}#authLook .look-pedestal{isolation:isolate;place-items:end center;padding:10px 14px 6px;display:grid;position:relative}#authLook .look-blob{z-index:-1;background:radial-gradient(ellipse 62% 13% at 50% 92%, var(--pick) 0%, transparent 100%), radial-gradient(ellipse 72% 60% at 50% 48%, var(--glow), transparent 78%), linear-gradient(180deg, #141a26eb, #080a10f5);border:1px solid var(--gold-lo);border-radius:3px;transition:background .22s;position:absolute;inset:0;overflow:hidden;box-shadow:inset 0 0 0 1px #000,inset 0 0 22px #000b}#authLook .look-blob:after{content:"";border:1px dashed var(--gold);opacity:.55;border-radius:50%;height:12%;position:absolute;bottom:5%;left:14%;right:14%}#authLook .look-canvas{aspect-ratio:1;width:auto;height:clamp(110px,38vh,230px);image-rendering:pixelated;filter:drop-shadow(0 4px 6px #000d);touch-action:manipulation;cursor:pointer;animation:1.8s ease-in-out infinite alternate lookBob;position:relative}#authLook .look-turn{width:30px;min-width:0;height:44px;font:700 20px/1 var(--ui-font);color:var(--gold-hi);border:1px solid var(--gold-lo);touch-action:manipulation;background:linear-gradient(#232a37,#0d1016);border-radius:3px;flex:none;padding:0;box-shadow:inset 0 0 0 1px #000,0 2px 6px #000a}#authLook .look-turn:hover{border-color:var(--gold)}#authLook .look-turn:active{transform:scale(.92)}#authLook .look-tag{font:700 12px/1.4 var(--serif);letter-spacing:2px;color:var(--gold-hi);border:1px solid var(--gold-lo);border-bottom:2px solid var(--pick);clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 50%,calc(100% - 8px) 100%,8px 100%,0 50%);white-space:nowrap;background:linear-gradient(#181e2a,#0a0d13);margin:0;padding:3px 16px;position:relative;box-shadow:inset 0 0 0 1px #000}#authLook .look-panel{text-align:left;flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex}#authLook .look-panel h2{font:700 clamp(16px, 4.4vh, 20px)/1.25 var(--serif);letter-spacing:2px;color:var(--gold-hi);text-shadow:0 0 10px #d9a44166,0 2px #000;margin:0 0 clamp(8px,1.8vh,12px);padding-bottom:8px;position:relative}#authLook .look-panel h2:after{content:"";background:linear-gradient(90deg, var(--gold), var(--gold-lo) 55%, transparent);height:2px;position:absolute;bottom:0;left:0;right:0}#authLook .look-gender button,#authLook .look-skip{color:var(--text);border:1px solid var(--gold-lo);touch-action:manipulation;background:linear-gradient(#232a37,#0d1016);border-radius:3px;transition:filter .12s,border-color .12s,box-shadow .12s;box-shadow:inset 0 0 0 1px #000,0 2px 6px #000a}#authLook .look-gender button:hover,#authLook .look-skip:hover{border-color:var(--gold)}#authLook .look-gender{gap:8px;display:flex}#authLook .look-gender button{min-width:0;min-height:44px;font:700 15px var(--ui-font);letter-spacing:1px;flex:1;justify-content:center;align-items:center;gap:8px;padding:6px 10px;display:flex}#authLook .look-gender button b{font-size:18px;line-height:1}#authLook .look-gender button[data-key=f] b{color:var(--crimson)}#authLook .look-gender button[data-key=m] b{color:var(--teal)}#authLook .look-gender button[aria-checked=true]{color:var(--gold-hi);border-color:var(--gold);box-shadow:inset 0 0 0 1px #000, inset 0 -3px 0 var(--pick), 0 0 14px var(--glow);background:linear-gradient(#2c3446,#121722)}#authLook .look-actions{justify-content:flex-start;margin-top:clamp(8px,2.4vh,18px)}#authLook .look-go{min-width:0;min-height:46px;font:700 15px var(--serif);letter-spacing:2px;white-space:nowrap;color:#2a1a02;text-shadow:0 1px #ffe2a077;background:linear-gradient(180deg, var(--gold-hi), var(--gold) 55%, #b9822a);box-shadow:inset 0 0 0 1px var(--gold-hi), 0 0 0 1px var(--gold-lo), 0 4px 0 #4a2a04, 0 0 20px #d9a44155;touch-action:manipulation;border:1px solid #000;border-radius:3px;padding:8px 28px}#authLook .look-go:active{box-shadow:inset 0 0 0 1px var(--gold-hi), 0 0 0 1px var(--gold-lo), 0 1px 0 #4a2a04;transform:translateY(3px)}#authLook .look-skip{min-width:0;min-height:40px;font:700 13px var(--ui-font);letter-spacing:1px;white-space:nowrap;color:var(--muted);padding:6px 16px}#authLook .look-skip[hidden]{display:none}#authLook .look-card button:focus-visible{outline:2px solid var(--gold-hi);outline-offset:2px}@media (max-height:430px){#authLook .look-card{padding:10px 16px}#authLook .look-stage{gap:4px}#authLook .look-pedestal{padding:6px 10px 4px}#authLook .look-turn{width:26px;height:36px;font-size:18px}#authLook .look-canvas{height:clamp(96px,42vh,150px)}#authLook .look-tag{padding:2px 12px;font-size:11px}#authLook .look-gender button{min-height:36px;font-size:13px}#authLook .look-panel h2{display:none}#authLook .look-go{min-height:38px;padding:4px 22px;font-size:13px}#authLook .look-skip{min-height:34px}#authLook .look-actions{margin-top:6px}}@media (max-height:330px){#authLook .look-card{padding:8px 12px}#authLook .look-canvas{height:clamp(84px,44vh,120px)}}html[data-perf=low] #authLook .look-canvas{animation:none}html[data-perf=low] #authLook .look-card{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--corners), linear-gradient(180deg, #181e2ae6, #080a10f0)}@media (prefers-reduced-motion:reduce){#authLook .look-canvas{animation:none}#authLook .look-gender button,#authLook .look-card{transition:none}}.meter span{white-space:nowrap;letter-spacing:0;padding-right:9px;font-size:9px}#jobPick{z-index:50;padding:max(8px, env(safe-area-inset-top,0px)) 12px calc(76px + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:#fff;background:#0c122c47;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-family:Jua,Mali,Noto Sans Thai,system-ui,sans-serif;animation:.35s jobIn;display:flex;position:absolute;inset:0;overflow:auto}#story{z-index:60}#jobPick h2{text-shadow:0 2px 6px #0008,0 0 14px #fff6;margin:0;font-size:clamp(16px,3.4vw,24px);font-weight:400}.jobGrid{grid-template-columns:repeat(3,minmax(110px,176px));gap:8px;display:grid}.jobCard{cursor:pointer;color:#fff;font:inherit;text-align:center;border:1.5px solid color-mix(in srgb, var(--c) 80%, transparent);box-shadow:0 2px 10px #00000040, inset 0 0 14px color-mix(in srgb, var(--c) 18%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#16224a80;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:7px 7px 8px;transition:transform .15s,background .15s;display:flex}.jobCard:active,.jobCard:hover{background:#223264a6;transform:scale(1.04)}.jobCard i{font-size:22px;font-style:normal;line-height:1.1}.jobCard b{color:var(--c);text-shadow:0 1px 3px #0009;font-size:14px;font-weight:400}.jobCard span{opacity:.92;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:10.5px;line-height:1.35;display:-webkit-box;overflow:hidden}@media (max-width:480px){.jobGrid{grid-template-columns:repeat(2,minmax(110px,1fr))}}@keyframes jobIn{0%{opacity:0}to{opacity:1}}
