@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(./cormorant-garamond-cyrillic-ext-600-normal-BMhMHfrj.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-ext-600-normal-CsIYWmWK.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(./cormorant-garamond-cyrillic-600-normal-C2atO-64.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-600-normal-FNmA3REe.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(./cormorant-garamond-vietnamese-600-normal-BoXdMtcr.woff2)format("woff2"),url(./cormorant-garamond-vietnamese-600-normal-C4HEjEaf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(./cormorant-garamond-latin-ext-600-normal-DaBc-lu7.woff2)format("woff2"),url(./cormorant-garamond-latin-ext-600-normal-Dk3-quAP.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(./cormorant-garamond-latin-600-normal-Co1r35X9.woff2)format("woff2"),url(./cormorant-garamond-latin-600-normal-2CBVLo0M.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:700;src:url(./cormorant-garamond-cyrillic-ext-700-normal-Do0rx6yy.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-ext-700-normal-BaW-xaxb.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:700;src:url(./cormorant-garamond-cyrillic-700-normal-SLG_-a_c.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-700-normal-D3uyJ5DH.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:700;src:url(./cormorant-garamond-vietnamese-700-normal--OtHbi1I.woff2)format("woff2"),url(./cormorant-garamond-vietnamese-700-normal-GOTdnRS1.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:700;src:url(./cormorant-garamond-latin-ext-700-normal-CNjt5vTB.woff2)format("woff2"),url(./cormorant-garamond-latin-ext-700-normal-qRbaVVD7.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:700;src:url(./cormorant-garamond-latin-700-normal-DajfzrDU.woff2)format("woff2"),url(./cormorant-garamond-latin-700-normal-O25Qpphb.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Alegreya Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./alegreya-sans-cyrillic-ext-400-normal-CBouUAPx.woff2)format("woff2"),url(./alegreya-sans-cyrillic-ext-400-normal-ClLgPhqT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Alegreya Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./alegreya-sans-cyrillic-400-normal-CFUoBDld.woff2)format("woff2"),url(./alegreya-sans-cyrillic-400-normal-C2XSGevv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Alegreya Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./alegreya-sans-greek-ext-400-normal-CaUEPd_u.woff2)format("woff2"),url(./alegreya-sans-greek-ext-400-normal-D6j-TQLM.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Alegreya Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./alegreya-sans-greek-400-normal-B87Md6o9.woff2)format("woff2"),url(./alegreya-sans-greek-400-normal-8U5NAP_q.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Alegreya Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./alegreya-sans-vietnamese-400-normal-D7fwYHgb.woff2)format("woff2"),url(./alegreya-sans-vietnamese-400-normal-BFvpiE3j.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Alegreya Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./alegreya-sans-latin-ext-400-normal-D7N6b6bd.woff2)format("woff2"),url(./alegreya-sans-latin-ext-400-normal-DpBVrRWA.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Alegreya Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./alegreya-sans-latin-400-normal-DtLlO8BS.woff2)format("woff2"),url(./alegreya-sans-latin-400-normal-DmA8jeke.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Alegreya Sans;font-style:normal;font-display:swap;font-weight:700;src:url(./alegreya-sans-cyrillic-ext-700-normal-Cpzx2u2L.woff2)format("woff2"),url(./alegreya-sans-cyrillic-ext-700-normal-YOec_wOb.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Alegreya Sans;font-style:normal;font-display:swap;font-weight:700;src:url(./alegreya-sans-cyrillic-700-normal-BMO00Gdb.woff2)format("woff2"),url(./alegreya-sans-cyrillic-700-normal-qSextXl4.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Alegreya Sans;font-style:normal;font-display:swap;font-weight:700;src:url(./alegreya-sans-greek-ext-700-normal-ChNZoGr1.woff2)format("woff2"),url(./alegreya-sans-greek-ext-700-normal-BVJ8GoGc.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Alegreya Sans;font-style:normal;font-display:swap;font-weight:700;src:url(./alegreya-sans-greek-700-normal-CTof9pYC.woff2)format("woff2"),url(./alegreya-sans-greek-700-normal-BZuMtSJ5.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Alegreya Sans;font-style:normal;font-display:swap;font-weight:700;src:url(./alegreya-sans-vietnamese-700-normal-CHYTK2w7.woff2)format("woff2"),url(./alegreya-sans-vietnamese-700-normal-D0056cUE.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Alegreya Sans;font-style:normal;font-display:swap;font-weight:700;src:url(./alegreya-sans-latin-ext-700-normal-HuHd3-Mg.woff2)format("woff2"),url(./alegreya-sans-latin-ext-700-normal-CkNjzB9Y.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Alegreya Sans;font-style:normal;font-display:swap;font-weight:700;src:url(./alegreya-sans-latin-700-normal-DEbcy2sF.woff2)format("woff2"),url(./alegreya-sans-latin-700-normal-BnzUNlma.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-title:"Cormorant Garamond", Georgia, serif;--font-text:"Alegreya Sans", "Segoe UI", sans-serif;--gold:#ffc66e;--gold-deep:#c4802e;--ink:#f1e8d6;--ink-dim:#a9a597;--panel:#0c1018d6;--panel-edge:#ffc66e52;--ui-scale:1}html,body{width:100%;height:100%;color:var(--ink);font-family:var(--font-text);-webkit-user-select:none;user-select:none;background:#0b0d12;margin:0;overflow:hidden}#game{touch-action:none;outline:none;width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;font-size:calc(16px * var(--ui-scale));position:fixed;inset:0}.loading{z-index:10;background:radial-gradient(at 50% 55%,#ffaa5029,#0000 45%),radial-gradient(at 50% 120%,#78aab42e,#0000 60%),linear-gradient(#05070d 0%,#0b1119 55%,#121c24 100%);place-items:center;transition:opacity .9s;display:grid;position:fixed;inset:0}.loading--done{opacity:0;pointer-events:none}.loading__glow{background:radial-gradient(circle,#ffbe6e2e,#0000 65%);border-radius:50%;width:60vmin;height:60vmin;animation:4s ease-in-out infinite loading-pulse;position:absolute}@keyframes loading-pulse{0%,to{opacity:.7;transform:scale(.95)}50%{opacity:1;transform:scale(1.06)}}.loading__content{text-align:center;width:min(760px,92vw);position:relative}.logo{font-family:var(--font-title);white-space:nowrap;letter-spacing:.04em;background:linear-gradient(180deg, #fff6e0 0%, var(--gold) 50%, var(--gold-deep) 100%);color:#0000;filter:drop-shadow(0 4px 18px #ffaa5059);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(44px,7vw,96px);font-weight:700}.loading__subtitle{font-family:var(--font-title);letter-spacing:.35em;text-transform:uppercase;color:var(--ink-dim);margin:.2em 0 2.4em;font-size:14px}.loading__bar{height:8px;box-shadow:inset 0 1px 3px #0009, 0 0 0 1px var(--panel-edge);background:#ffffff14;border-radius:8px;overflow:hidden}.loading__fill{background:linear-gradient(90deg, var(--gold-deep), #ffd98a);border-radius:8px;width:0%;height:100%;transition:width .25s;box-shadow:0 0 12px #ffc86eb3}.loading__status{color:var(--ink-dim);margin:.9em 0 0;font-size:14px}.loading__tip{max-width:440px;color:var(--ink);opacity:.85;min-height:3em;margin:2.2em auto 0;font-size:15px;line-height:1.5;transition:opacity .5s}.debug{background:var(--panel);box-shadow:0 0 0 1px var(--panel-edge), 0 6px 20px #0006;font:13px/1.5 var(--font-text);font-variant-numeric:tabular-nums;border-radius:10px;grid-template-columns:auto auto;column-gap:14px;padding:10px 14px;display:grid;position:absolute;top:12px;left:12px}.debug[hidden]{display:none}.debug dt{color:var(--ink-dim)}.debug dd{text-align:right;color:var(--ink);margin:0}.hint{background:var(--panel);box-shadow:0 0 0 1px var(--panel-edge);color:var(--ink-dim);white-space:nowrap;border-radius:999px;padding:8px 16px;font-size:13px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.hint b{color:var(--gold);font-weight:700}.btn{pointer-events:auto;font:700 15px/1 var(--font-title);letter-spacing:.08em;color:var(--ink);border:1px solid var(--panel-edge);cursor:pointer;background:linear-gradient(#3c303ce6,#1e1820eb);border-radius:10px;padding:13px 26px;transition:transform .12s,box-shadow .12s,filter .12s;box-shadow:0 4px 14px #00000073,inset 0 1px #ffffff14}.btn:hover:not(:disabled){filter:brightness(1.15);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default}.btn--primary{color:#2a1a08;background:linear-gradient(180deg, #ffe3a2, var(--gold) 55%, var(--gold-deep));border-color:#f5d48e;box-shadow:0 6px 20px #e8a85059,inset 0 1px #ffffff80}.window-layer{pointer-events:none;position:absolute;inset:0}.window{pointer-events:auto;font-size:calc(15px * var(--ui-scale));background:linear-gradient(#261e28f7,#120e14f7);border:1px solid #e8c47a73;border-radius:.9em;flex-direction:column;display:flex;position:absolute;box-shadow:0 .8em 2.4em #000000a6,inset 0 1px #ffe6b414}.window.opening{animation:.16s ease-out win-in}@keyframes win-in{0%{opacity:0;transform:translateY(6px)scale(.985)}}.window-bar{cursor:grab;background:linear-gradient(#e8c47a24,#e8c47a05);border-bottom:1px solid #e8c47a40;border-radius:.9em .9em 0 0;flex:none;align-items:center;gap:.5em;padding:.55em .6em .5em 1em;display:flex}.window-bar:active{cursor:grabbing}.window-title{font:700 1.05em var(--font-title);color:var(--gold);letter-spacing:.06em;flex:1}.window-close{width:1.7em;height:1.7em;color:var(--ink);font:700 1em/1 var(--font-text);cursor:pointer;background:#00000059;border:1px solid #e8c47a66;border-radius:50%;padding:0}.window-close:hover{color:#fff;background:#8a2a1a}.window-body{flex:1;min-height:0;padding:.8em 1em 1em;overflow:auto}.window-grip{cursor:nwse-resize;background:linear-gradient(135deg,#0000 50%,#e8c47a80 50%);border-radius:0 0 .8em;width:14px;height:14px;position:absolute;bottom:2px;right:2px}.dialog-window .window-bar{display:none}.btn--danger{background:linear-gradient(#7a2a20,#4a1610);border-color:#b0503a}.btn__sub{font:600 .62em var(--font-text);letter-spacing:.02em;text-transform:none;color:var(--ink-dim);margin-top:.15em;display:block}.icon-btn{place-items:center;width:2.2em;height:2.2em;padding:0;display:inline-grid}.icon-btn .icon{width:1.3em;height:1.3em}kbd{min-width:1.4em;font:700 .82em var(--font-text);color:#f3e2b8;text-align:center;background:#241c26;border:1px solid #e8c47a73;border-radius:.3em;margin:0 .1em;padding:.05em .4em;display:inline-block}.modal{z-index:100;pointer-events:auto;background:#00000080;place-items:center;display:grid;position:fixed;inset:0}.modal__box{background:linear-gradient(#2a2030,#16101a);border:1px solid #e8c47a80;border-radius:.9em;min-width:22em;max-width:30em;padding:1.2em 1.4em;box-shadow:0 1em 3em #000000b3}.modal__title{font:700 1.2em var(--font-title);color:var(--gold);margin-bottom:.4em}.modal__text{color:var(--ink);margin-bottom:1em;line-height:1.45}.modal__row{justify-content:flex-end;gap:.6em;display:flex}.tooltip{z-index:50;pointer-events:none;background:linear-gradient(#1e1822f7,#0e0a12f7);border:1px solid #e8c47a80;border-radius:.6em;max-width:22em;padding:.7em .85em;font-size:.86em;line-height:1.4;display:none;position:fixed;top:0;left:0;box-shadow:0 .5em 1.6em #0009}.gear-preview{pointer-events:auto;z-index:40;background:#0a141eeb;border:1px solid #7ad0ff;border-radius:.7em;width:22em;max-height:70vh;padding:.8em;font-size:.8em;position:absolute;top:16em;right:1em;overflow:auto}.gear-preview h3{color:#7ad0ff;font-family:var(--font-title);margin:0 0 .4em}.gp-row{grid-template-columns:5.5em 1fr auto;align-items:center;gap:.4em;margin:.15em 0;display:grid}.gp-row select{color:var(--ink);background:#1e1822;border:1px solid #7ad0ff66;border-radius:.3em}.gp-sub{color:#ffd870;margin:.6em 0 .2em}.fe{pointer-events:auto;background:radial-gradient(#0000 30%,#04060a99 100%);flex-wrap:wrap;justify-content:center;align-items:center;gap:28px;padding:32px;display:flex;position:fixed;inset:0}.fe[hidden]{display:none}.fe-logo{text-align:center;font:700 clamp(48px, 8vw, 92px) var(--font-title);letter-spacing:.04em;background:linear-gradient(#ffe2a8,#e8a050 70%,#b06a28);color:#0000;text-shadow:0 0 40px #ffa04640;-webkit-background-clip:text;background-clip:text;margin:0;position:absolute;top:9vh;left:0;right:0}.fe-panel{background:var(--panel);border:1px solid var(--panel-edge);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px;flex-direction:column;gap:12px;max-width:92vw;padding:20px 22px;display:flex;box-shadow:0 18px 50px #0000008c,inset 0 1px #ffdca014}.fe-login{width:340px;margin-top:18vh}.fe-side{width:300px;max-height:80vh;overflow:auto}.fe-modal{width:380px}.fe-title{font:600 26px var(--font-title);color:var(--gold);letter-spacing:.03em;margin:0 0 4px}.fe-text{color:var(--ink);margin:0;font-size:15px;line-height:1.4}.fe-dim{color:var(--ink-dim);font-size:13px}.fe-error{color:#ff9a84;min-height:1.2em;margin:0;font-size:14px}.fe-form{flex-direction:column;gap:10px;display:flex}.fe-row{flex-wrap:wrap;gap:10px;display:flex}.fe-input{font:16px var(--font-text);color:var(--ink);-webkit-user-select:text;user-select:text;background:#00000059;border:1px solid #ffc66e40;border-radius:6px;outline:none;padding:9px 12px}.fe-input:focus{border-color:#ffc66eb3;box-shadow:0 0 0 2px #ffaa5026}.fe-btn{font:700 15px var(--font-text);color:var(--ink);cursor:pointer;letter-spacing:.02em;background:linear-gradient(#3c342ce6,#201c1ae6);border:1px solid #ffc66e4d;border-radius:6px;padding:9px 16px}.fe-btn:hover:not(:disabled){color:#fff;border-color:#ffc66ebf}.fe-btn:disabled{opacity:.45;cursor:default}.fe-btn--primary{color:#fff6e6;background:linear-gradient(#d48a3a,#8a4e1c);border-color:#f0b060}.fe-btn--danger{background:linear-gradient(#8a3028,#5a1a16);border-color:#d06050}.fe-btn--big{font-size:19px;font-family:var(--font-title);padding:12px 32px}.fe-chars{flex-direction:column;gap:8px;display:flex}.fe-char{text-align:left;border:1px solid #ffffff14;border-left:3px solid var(--accent);color:var(--ink);cursor:pointer;font-family:var(--font-text);background:#0000004d;border-radius:6px;gap:2px;padding:10px 12px;display:grid}.fe-char--on{border-color:#ffc66e8c;border-left-color:var(--accent);background:#ffbe6e1f}.fe-char-name{font:600 21px var(--font-title)}.fe-char-sub{color:var(--accent);font-size:14px}.fe-char-zone{color:var(--ink-dim);font-size:13px}.fe-center{flex-direction:column;align-items:center;gap:16px;display:flex}.fe-preview{border:1px solid var(--panel-edge);border-radius:10px;width:min(380px,40vw);height:min(520px,62vh);box-shadow:0 18px 50px #00000080}.fe-preview--tall{height:min(600px,72vh)}.fe-classes{flex-direction:column;gap:6px;display:flex}.fe-class{text-align:left;border:1px solid #ffffff14;border-left:3px solid var(--accent);color:var(--ink);cursor:pointer;font-family:var(--font-text);background:#0000004d;border-radius:6px;padding:8px 12px;display:grid}.fe-class--on{border-color:#ffc66e99;border-left-color:var(--accent);background:#ffbe6e21}.fe-class-name{font:600 20px var(--font-title)}.fe-class-role{color:var(--accent);font-size:13px}.fe-blurb{color:var(--ink-dim);min-height:3.6em;font-size:14px}.fe-options{flex-direction:column;gap:10px;display:flex}.fe-opt{flex-direction:column;gap:5px;display:flex}.fe-opt-label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-dim);font-size:12px}.fe-chips{flex-wrap:wrap;gap:5px;display:flex}.fe-chip{font:13px var(--font-text);color:var(--ink);cursor:pointer;background:#00000059;border:1px solid #ffffff1f;border-radius:5px;padding:4px 9px}.fe-chip--swatch{border-radius:50%;width:26px;height:26px;padding:0}.fe-chip--on{border-color:var(--gold);box-shadow:0 0 0 2px #ffc66e59}.chat{pointer-events:none;flex-direction:column;gap:4px;width:min(440px,46vw);font-size:14.5px;display:flex;position:absolute;bottom:14px;left:14px}.chat[hidden]{display:none}.chat-log{opacity:.55;scrollbar-width:thin;background:0 0;border-radius:6px;max-height:200px;padding:6px 8px;transition:background .3s,opacity .6s;overflow-y:auto}.chat--recent .chat-log,.chat--open .chat-log{opacity:1}.chat--open .chat-log{pointer-events:auto;background:#080a1099}.chat-msg{color:#f2ead8;text-shadow:0 1px 2px #000,0 0 6px #000;-webkit-user-select:text;user-select:text;line-height:1.35}.chat-from{color:#ffd9a0}.chat-msg--world{color:#f0d0a8}.chat-msg--world .chat-from{color:#ffb070}.chat-msg--whisper{color:#e4b8ff}.chat-msg--whisper .chat-from{color:#d49aff}.chat-msg--system{color:#f4e08a;font-style:italic}.chat-msg--party{color:#a8d8ff}.chat-msg--guild{color:#9aff9a}.chat-msg--guild .chat-from,.chat[data-channel=guild] .chat-label{color:#6ae06a}.chat-msg--party .chat-from,.chat[data-channel=party] .chat-label{color:#7ac0ff}.chat-line{border:1px solid var(--panel-edge);pointer-events:auto;background:#080a10d1;border-radius:6px;align-items:center;gap:6px;padding:4px 8px;display:none}.chat--open .chat-line{display:flex}.chat-label{color:var(--gold);white-space:nowrap;font-weight:700}.chat[data-channel=world] .chat-label{color:#ffb070}.chat[data-channel=whisper] .chat-label{color:#d49aff}.chat-input{font:15px var(--font-text);color:var(--ink);-webkit-user-select:text;user-select:text;background:0 0;border:none;outline:none;flex:1}.plates{pointer-events:none;position:absolute;inset:0;overflow:hidden}.plate{will-change:transform;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;top:0;left:0}.plate-name{font:600 16px var(--font-title);text-shadow:0 1px 2px #000,0 0 8px #000;white-space:nowrap}.plate-bubble{color:#2a2018;text-align:center;background:#faf4e6eb;border-radius:10px;max-width:240px;padding:6px 10px;font-size:14px;line-height:1.3;box-shadow:0 4px 12px #0006}.plate-bubble[hidden],.plate-name[hidden]{display:none}.game-menu{pointer-events:auto;background:#04060a73;place-items:center;display:grid;position:fixed;inset:0}.game-menu[hidden]{display:none}.game-menu-box{text-align:center;width:280px}.icon{width:1em;height:1em;-webkit-mask:var(--icon) center / contain no-repeat;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat;background:currentColor;display:inline-block}.hud{pointer-events:none;position:absolute;inset:0}.hud[hidden]{display:none}.frame{background:var(--panel);border:1px solid var(--panel-edge);border-radius:8px;flex-direction:column;gap:4px;width:250px;padding:8px 10px 9px;display:flex;position:absolute;top:14px;box-shadow:0 6px 18px #00000080}.frame--player{left:14px}.frame[hidden]{display:none}.frame-name{font:600 18px var(--font-title);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.frame-name--hostile{color:#ff9a7a}.bar{background:#0000008c;border-radius:4px;height:16px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff12}.bar[hidden]{display:none}.bar-fill{width:0;transition:width .12s linear;position:absolute;inset:0 auto 0 0}.bar-text{font:700 12px var(--font-text);color:#fff;text-shadow:0 1px 2px #000;place-items:center;display:grid;position:absolute;inset:0}.bar--hp .bar-fill{background:linear-gradient(#d24a3a,#8a2418)}.bar--res{height:11px}.bar--res .bar-text{font-size:10px}.bar--chill{flex:1;height:7px}.bar--chill .bar-fill{background:linear-gradient(90deg,#8ac8ff,#d8f0ff)}.bar--chill .bar-text{display:none}.bar--cold{box-shadow:0 0 8px #8cc8ffcc}.bar--shroud{height:9px}.bar--shroud .bar-fill{background:linear-gradient(90deg,#7a8a9a,#c8d6e2)}.bar--shroud .bar-text{letter-spacing:.08em;text-transform:uppercase;font-size:9px}.bar--cast{height:12px}.bar--cast .bar-fill{background:linear-gradient(90deg,#c4802e,#ffd27a);transition:none}.bar--cast .bar-text{font-size:10px}.bar--xp{width:100%;height:7px;margin-top:6px}.bar--xp .bar-fill{background:linear-gradient(90deg,#8a5ac8,#c8a0ff)}.bar--xp .bar-text{opacity:0;font-size:9px}.bar--xp:hover .bar-text{opacity:1}.chill-row{pointer-events:auto;align-items:center;gap:5px;display:flex}.chill-icon{color:#9ad0ff;width:12px;height:12px}.buffs{flex-wrap:wrap;gap:3px;min-height:0;display:flex}.buff{color:#e8ffe0;pointer-events:auto;background:#283c28d9;border:1px solid #7ac07a;border-radius:4px;place-items:center;width:24px;height:24px;display:grid;position:relative}.buff .icon{width:17px;height:17px}.buff--bad{color:#ffd8d0;background:#461e1ed9;border-color:#d06050}.buff-time{font:700 9px var(--font-text);text-shadow:0 1px 2px #000;position:absolute;bottom:-2px;right:0}.buff-stacks{font:700 10px var(--font-text);color:#fff;text-shadow:0 1px 2px #000;position:absolute;top:-3px;left:1px}.hud-bottom{flex-direction:column;align-items:center;width:min(520px,90vw);display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.action-bar{background:var(--panel);border:1px solid var(--panel-edge);pointer-events:auto;border-radius:10px;gap:6px;padding:6px;display:flex}.slot{color:#ffd9a0;cursor:pointer;background:radial-gradient(circle at 50% 35%,#3a3028,#18141a);border:1px solid #ffc66e59;border-radius:7px;place-items:center;width:52px;height:52px;display:grid;position:relative}.slot:hover{border-color:#ffc66ee6}.slot--ult{background:radial-gradient(circle at 50% 35%,#4a2a1c,#1a1012);border-color:#ff8c46b3;margin-left:10px}.slot-icon{width:36px;height:36px}.slot-cd{font:700 18px var(--font-text);color:#fff;text-shadow:0 1px 3px #000;border-radius:7px;place-items:center;display:grid;position:absolute;inset:0}.slot-key{font:700 11px var(--font-text);color:#fff;text-shadow:0 1px 2px #000;position:absolute;top:2px;left:4px}.slot--locked{opacity:.32}.slot--poor .slot-icon{color:#8a8aa8}.slot--auto{box-shadow:0 0 0 2px #ffcf6a,0 0 12px #ffbe5a99}.slot--empty .slot-icon{opacity:0}.hud-cast{width:280px;height:16px;position:absolute;bottom:120px;left:50%;transform:translate(-50%)}.hud-msg{font:700 18px var(--font-text);color:#ffe3a8;text-shadow:0 1px 3px #000,0 0 10px #000;opacity:0;transition:opacity .3s;position:absolute;top:22%;left:50%;transform:translate(-50%)}.hud-msg--on{opacity:1}.hud-msg--error{color:#ff9a84}.hud-prompt{background:var(--panel);border:1px solid var(--panel-edge);border-radius:6px;padding:6px 14px;font-size:15px;position:absolute;bottom:150px;left:50%;transform:translate(-50%)}.hud-prompt[hidden]{display:none}.hud-death{text-align:center;pointer-events:auto;background:#0a0e16e0;border:1px solid #a0c8e666;border-radius:10px;flex-direction:column;gap:10px;width:380px;padding:18px 22px;display:flex;position:absolute;top:30%;left:50%;transform:translate(-50%)}.hud-death[hidden]{display:none}.hud-death-title{font:700 26px var(--font-title);color:#bcd8f0}.hud-death-text{color:var(--ink-dim);font-size:14px}.hud-banner{text-align:center;opacity:0;transition:opacity .8s;position:absolute;top:16%;left:0;right:0}.hud-banner--on{opacity:1}.hud-banner-title{font:700 44px var(--font-title);color:#ffe0a8;text-shadow:0 2px 12px #000,0 0 30px #ffa04659}.hud-banner-sub{font:16px var(--font-text);color:var(--ink-dim);letter-spacing:.15em;text-transform:uppercase;text-shadow:0 1px 4px #000}.floaters{position:absolute;inset:0;overflow:hidden}.ft{font:700 20px var(--font-text);text-shadow:0 1px 3px #000,0 0 6px #000;white-space:nowrap;will-change:transform;position:absolute;top:0;left:0}.ft--dealt{color:#fff3d6}.ft--crit{color:#ffd04a;font-size:26px}.ft--shrouded{color:#9aa8b4;font-size:16px}.ft--taken{color:#ff6a5a}.ft--heal{color:#8aff8a}.ft--strip{color:#fff8c0;font-size:15px;font-style:italic}.ft--xp{color:#c8a0ff;font-size:15px}.tip-dim{color:var(--ink-dim);font-size:.9em}.tip-warn{color:#ff9a84}.party{pointer-events:auto;flex-direction:column;gap:6px;display:flex;position:absolute;top:150px;left:14px}.party-frame{background:var(--panel);border:1px solid var(--panel-edge);cursor:pointer;border-radius:6px;flex-direction:column;gap:3px;width:190px;padding:5px 8px 6px;display:flex}.party-frame:hover{border-color:#ffc66ecc}.party-frame--dead{opacity:.55}.party-name{font:600 15px var(--font-title);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.party-hp{height:12px}.party-invite{pointer-events:auto;width:320px;position:absolute;top:28%;left:50%;transform:translate(-50%)}.party-invite[hidden]{display:none}.book{grid-template-columns:1.3fr 1fr;gap:16px;display:grid}.book-h{font:600 18px var(--font-title);color:var(--gold);margin:0 0 6px}.book-note{color:var(--ink-dim);margin:0 0 8px;font-size:13px}.book-skill{background:#00000040;border-radius:6px;grid-template-columns:38px 1fr;gap:8px;margin-bottom:4px;padding:6px;display:grid}.book-skill--locked{opacity:.45}.book-icon{color:#ffd9a0;width:34px;height:34px}.book-name{color:var(--ink);font-weight:700}.book-desc{color:var(--ink-dim);font-size:13px;line-height:1.3}.book-meta{color:#c8a870;margin-top:2px;font-size:12px}.book-slots{grid-column:2;gap:3px;margin-top:4px;display:flex}.book-slot{width:24px;height:22px;font:700 12px var(--font-text);color:var(--ink);cursor:pointer;background:#0006;border:1px solid #ffc66e40;border-radius:4px;padding:0}.book-slot--on{background:#8a5a20;border-color:#ffc66e}.book-tier{margin-bottom:8px}.book-tier--locked{opacity:.5}.book-tier-level{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-dim);margin-bottom:3px;font-size:12px}.book-facet{text-align:left;width:100%;color:var(--ink);cursor:pointer;font-family:var(--font-text);background:#0000004d;border:1px solid #ffffff1a;border-radius:6px;margin-bottom:3px;padding:6px 8px;display:block}.book-facet:disabled{cursor:default}.book-facet--on{background:#ffbe6e26;border-color:#ffc66e}.book-facet-name{font-weight:700;display:block}.book-facet-desc{color:var(--ink-dim);font-size:12px;display:block}.islot{cursor:pointer;background:#00000073;border:1px solid #ffffff1a;border-radius:6px;place-items:center;width:44px;height:44px;display:grid;position:relative}.islot--full{border-color:var(--rar);box-shadow:inset 0 0 10px color-mix(in srgb, var(--rar) 35%, transparent)}.islot-icon{width:32px;height:32px;color:var(--rar,#ccc)}.islot-count{font:700 12px var(--font-text);text-shadow:0 1px 2px #000;position:absolute;bottom:1px;right:3px}.islot-ph{color:var(--ink-dim);text-align:center;font-size:9px;line-height:1.1}.islot--picked{outline:2px solid #ffd27a}.islot--offered{outline:2px dashed #7ac0ff}.bags-grid{grid-template-columns:repeat(6,44px);gap:5px;display:grid}.bank-grid{grid-template-columns:repeat(8,44px)}.bags-bagrow{align-items:center;gap:5px;margin-top:10px;display:flex}.bags-marks{color:#ffe0a0;align-items:center;gap:5px;margin-left:auto;font-weight:700;display:flex}.marks-icon{color:#ffd060;width:16px;height:16px}.char{grid-template-columns:1.6fr 1fr;gap:14px;display:grid}.char-doll{grid-template-columns:44px 1fr 44px;gap:8px;display:grid}.char-col{flex-direction:column;gap:6px;display:flex}.char-preview{border:1px solid var(--panel-edge);border-radius:8px;min-height:300px}.char-title{font:600 22px var(--font-title);color:var(--gold)}.char-sub{color:var(--ink-dim);margin-bottom:8px}.char-stat{border-bottom:1px solid #ffffff0d;justify-content:space-between;padding:2px 0;font-size:14px;display:flex}.char-stat b{color:#ffe0a0}.vendor-list{flex-direction:column;gap:4px;max-height:360px;margin:8px 0;display:flex;overflow:auto}.vendor-row{background:#00000040;border-radius:6px;align-items:center;gap:8px;padding:4px 6px;display:flex}.vendor-icon{color:#e8d0a0;width:26px;height:26px}.vendor-name{flex:1}.vendor-row .fe-btn{align-items:center;gap:4px;padding:4px 9px;display:flex}.vendor-hint{font-size:12px}.trade-sides{grid-template-columns:1fr 1fr;gap:10px;margin:8px 0;display:grid}.trade-side{background:#0000004d;border:1px solid #ffffff14;border-radius:8px;min-height:120px;padding:8px}.trade-side .bags-grid{grid-template-columns:repeat(4,44px)}.trade-side--ok{border-color:#7ad870}.trade-title{margin-bottom:6px;font-weight:700}.trade-marks{color:#ffe0a0;margin-top:6px}.trade-input{width:80px;padding:5px 8px}.tip-desc{color:#d8d0c0;font-style:italic}.tip-hint{color:#9ac8e8;font-size:.85em}.plate--npc .plate-name{font-size:15px}.dialog-text{color:var(--ink);margin:0 0 10px;line-height:1.45}.dialog-prompt{color:#ffe0a0;font-style:italic}.dialog-list{flex-direction:column;gap:5px;display:flex}.dialog-opt{text-align:left;color:var(--ink);font:15px var(--font-text);cursor:pointer;background:#0000004d;border:1px solid #ffffff1a;border-radius:6px;width:100%;margin-bottom:4px;padding:7px 10px}.dialog-opt:hover{border-color:#ffc66eb3}.dialog-opt--new{color:#ffd84a}.dialog-opt--ready{color:#ffd84a;font-weight:700}.dialog-opt--wait,.dialog-opt--bye{color:var(--ink-dim)}.dialog-qname{font:600 22px var(--font-title);color:var(--gold);margin-bottom:6px}.dialog-obj{color:#e8d8b8;margin:0 0 8px;padding-left:18px;font-size:14px}.dialog-reward{color:#c8a870;margin-bottom:10px;font-size:13px}.tracker{pointer-events:none;flex-direction:column;gap:8px;width:250px;display:flex;position:absolute;top:250px;right:14px}.tq{background:#080a1080;border-radius:6px;padding:6px 8px}.tq-name{font:600 16px var(--font-title);color:#ffd27a;text-shadow:0 1px 2px #000}.tq--done .tq-name{color:#8aff8a}.tq-obj{color:#e8e0d0;text-shadow:0 1px 2px #000;font-size:13px}.tq-obj--done{color:#9ab89a;text-decoration:line-through}.qlog{grid-template-columns:200px 1fr;gap:12px;height:100%;display:grid}.qlog-list{flex-direction:column;gap:4px;display:flex;overflow:auto}.qlog-item{text-align:left;color:var(--ink);cursor:pointer;font-family:var(--font-text);background:#0000004d;border:1px solid #0000;border-radius:6px;padding:6px 8px}.qlog-item--on{border-color:#ffc66e}.qlog-detail{overflow:auto}.qlog-rep{margin-top:14px}.plate-name--quest{color:#ffd84a!important}.minimap{flex-direction:column;align-items:center;gap:4px;width:180px;display:flex;position:absolute;top:12px;right:14px}.minimap[hidden]{display:none}.minimap canvas{border:2px solid #ffc66e8c;border-radius:50%;box-shadow:0 4px 16px #0009}.minimap-label{font:600 15px var(--font-title);color:#ffe0a8;text-shadow:0 1px 3px #000}.bigmap-wrap{width:100%;height:100%;overflow:auto}.bigmap{width:100%;height:auto;image-rendering:pixelated;border-radius:6px;display:block}.frame--target{left:280px}.job-row{background:#0000004d;border-radius:8px;margin-top:8px;padding:10px}.job-head{justify-content:space-between;align-items:baseline;display:flex}.job-name{font:600 20px var(--font-title);color:var(--gold)}.job-level{color:var(--ink-dim);font-size:13px}.tide-clock{text-align:right;width:220px;font:600 14px var(--font-text);color:#b8c8d8;text-shadow:0 1px 3px #000;pointer-events:none;position:absolute;top:222px;right:14px}.tide-clock[hidden]{display:none}.tide-clock--alert{color:#ffd27a;animation:1.4s ease-in-out infinite tide-pulse}@keyframes tide-pulse{50%{opacity:.6}}.craft-prof{border-bottom:1px solid #ffffff0f;padding:5px 0}.craft-skill{color:#ffd27a}.craft-small{margin-left:6px;padding:3px 9px;font-size:13px}.craft-row{background:#00000040;border-radius:6px;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;margin-top:4px;padding:5px 6px;display:grid}.craft-row--locked{opacity:.5}.craft-name{font-weight:700}.craft-mats{flex-wrap:wrap;gap:6px;font-size:12px;display:flex}.craft-mat{color:#b8d8a8}.craft-mat--missing{color:#ff9a84}.roster{flex-direction:column;gap:3px;margin:6px 0 10px;display:flex}.roster-row{align-items:center;gap:6px;font-size:14px;display:flex}.roster-dot{background:#555;border-radius:50%;width:8px;height:8px}.roster-row--on .roster-dot{background:#6ae06a}.ledger-post{align-items:center;margin-bottom:8px}.ledger-list{max-height:360px}.plate-guild{font:13px var(--font-text);color:#9ae09a;text-shadow:0 1px 2px #000}.opt-row{grid-template-columns:120px 1fr;align-items:center;gap:10px;margin:4px 0;display:grid}.opt-keys{flex-direction:column;gap:3px;display:flex}.opt-key{justify-content:space-between;align-items:center;font-size:14px;display:flex}.help p{margin:0 0 8px;line-height:1.5}.help kbd{text-align:center;background:#241c26;border:1px solid #ffc66e66;border-radius:4px;min-width:1.4em;padding:0 .35em;font-size:.85em;display:inline-block}
