:root{--bronze:#a08a63;--metal:#77796e;--client-ink:#ece6d3;--client-panel:#282b26;--line:#706653;--paper:#ebe4c9;--font:"Microsoft JhengHei",system-ui,sans-serif}
body.desktop-client{margin:0;overflow:hidden;background:#171b17;color:var(--client-ink);font-size:12px}body.desktop-client button{color:inherit}body.desktop-client button:hover{background-color:#95826044}body.desktop-client button:focus-visible{outline:2px solid #f0cf6e;outline-offset:-2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.game-layout{position:fixed;inset:0;padding:0;display:block;max-width:none}.play-area{border:0;background:transparent;box-shadow:none}.scene{position:absolute;inset:0;height:auto;overflow:hidden}.scene:after{box-shadow:none}#world{width:100%;height:100%}.client-network{position:fixed;top:3px;right:64px;z-index:12;display:flex;gap:5px;align-items:center;font-size:10px}.client-network button{padding:1px 7px;border:1px solid #72674f;background:#262822cc}.client-network #network{font-size:9px;color:#c6d8aa}.scene-top{inset:0;display:block}.player-card{position:absolute;left:0;top:0;width:auto;height:25px;display:flex;align-items:center;gap:4px;background:#1b211de8 url('/assets/ui/top-0-0.png') repeat-x bottom;border:0;padding:3px 7px 5px;box-shadow:none}.portrait-mark{width:22px;height:22px;padding:0;border-radius:50%;border:2px ridge #a79a76;background:radial-gradient(circle at 35% 25%,#bfd6e5,#385d7c 45%,#181d24);font-size:12px;pointer-events:auto}.identity{min-width:98px;display:flex;gap:7px;font-size:10px}.identity span{font-size:9px}.meter.hp,.meter.mp{width:155px;height:11px;border:1px solid #968775;background:#111;box-shadow:inset 0 0 0 1px #222}.meter b{font-size:9px;line-height:10px;color:white;text-shadow:1px 1px #000;letter-spacing:0}.meter.hp span{background:linear-gradient(#f7b5c1,#ad354c 55%,#552839)}.meter.mp span{background:linear-gradient(#d6f1ff,#5486a8 55%,#274263)}
.map-card{position:absolute;left:12px;top:42px;right:auto;width:150px;background:#111c;padding:3px;border:2px ridge #7a7560;box-shadow:0 2px 8px #0008;text-align:center}.map-card canvas{width:140px;height:96px;display:block;margin:0}.map-card strong{font-size:10px;display:block;margin:2px 0;color:#e9e4c9}.map-card small{display:none}.scene-bottom{bottom:109px;left:12px;right:auto}.scene-label{font-size:10px;background:#141d17a6;border:1px solid #776b49;padding:5px 9px}.location-dot{width:4px;height:4px}#toast{position:fixed;bottom:150px;left:50%;transform:translateX(-50%);max-width:min(540px,90vw);background:#242b20eb;border:1px solid #a58a54;color:#f0e4b4;padding:9px 16px;font-size:12px;z-index:60;pointer-events:none}#target-card{top:40px;left:50%;right:auto;transform:translateX(-50%);width:190px;background:#1d231ddd;color:#edddaf;border:1px solid #a18b5d}.map-loading{z-index:8;background:#20271bed;color:#e5dfc8}.death-overlay{z-index:45}
.function-rail{position:fixed;right:7px;top:0;bottom:144px;z-index:13;display:flex;align-items:center;flex-direction:column;width:43px;background:url('/assets/ui/rail-1-0.png') repeat-y center;gap:3px;padding-top:55px}.rail-orb{position:absolute;top:6px;right:0;width:42px;height:42px;border:5px ridge #98846b;box-shadow:0 2px 7px #000;border-radius:50%;background:radial-gradient(circle at 32% 25%,#cbd9e7,#477799 45%,#142a37 75%)}.function-rail>button{position:relative;flex:0 0 31px;width:31px;height:31px;border:3px ridge #a68e67;border-radius:50%;background:radial-gradient(#485453,#151e1b);box-shadow:0 2px 3px #0007;padding:0;font:bold 19px Georgia;color:#d5c793}.function-rail>button span{position:absolute;right:35px;top:0;padding:6px 9px;border:1px solid #8d805c;background:#181d19ed;white-space:nowrap;display:none;font:12px var(--font)}.function-rail>button:hover span,.function-rail>button:focus-visible span{display:block}
.actionbar{position:fixed;bottom:0;left:12px;width:740px;height:98px;padding:0;border:0;display:block;background:url('/assets/ui/shortcut-0-0.png') left bottom no-repeat;z-index:14;box-shadow:none}.action-group{position:absolute;bottom:9px;left:135px;gap:4px;display:flex;align-items:center}.actionbar button.action{flex:0 0 34px;width:34px;height:34px;min-width:34px;padding:0;border:0;background:#14191360;color:#e7d69f;display:grid;place-items:center;position:relative;box-shadow:inset 0 0 4px #0008;border-radius:2px}.actionbar button.action:hover{background:#aa8e484d}.actionbar .action-icon{font-size:23px;line-height:30px;display:block}.actionbar .action b{position:absolute;left:0;bottom:41px;background:#161b17e8;border:1px solid #837147;padding:4px 7px;font-size:11px;font-weight:400;white-space:nowrap;display:none}.actionbar .action:hover b,.actionbar .action:focus-visible b{display:block}.actionbar .action kbd{position:absolute;left:2px;top:0;font-size:8px;color:#d7d9ba;background:none;line-height:9px}.actionbar .action small{position:absolute;bottom:0;right:2px;font-size:9px;color:#fff}.actionbar .action.bound-icon .action-icon{font-size:0}.actionbar .action.bound-icon canvas{width:28px;height:28px;image-rendering:pixelated}.actionbar .experience{position:absolute;left:135px;bottom:49px;width:367px;padding:0;min-width:0}.experience>div{font-size:9px;color:#e8dcbb;line-height:11px}.xp-track{height:4px;background:#221e17;border:1px solid #63553c}.xp-track span{display:block;height:100%;background:linear-gradient(90deg,#a07434,#e1c76e)}.bottom-nav{position:absolute;left:8px;bottom:12px;width:115px;padding:0;border:0;display:block;background:none}.gold{gap:3px;font-size:9px;color:#d7bd6e}.gold b{font-size:11px}.gold span{font-size:13px}#save-state{font-size:8px;color:#ccc6ab;display:block;margin-top:3px}.hud-orb{position:absolute;left:584px;bottom:17px;width:40px;height:40px;border-radius:50%;border:5px ridge #998875;background:radial-gradient(circle at 35% 20%,#c2ddfb,#3a708a 50%,#102c44);box-shadow:0 1px 4px #000}.actionbar #coordinates{position:absolute;left:631px;bottom:22px;width:92px;line-height:18px;font:10px monospace;color:#d8d4c9;text-align:center;background:#1d211add;border:2px ridge #8c8264}
.quest-tracker{position:fixed;top:46px;right:62px;z-index:10;width:200px;background:#182017ad;border:1px solid #797149;padding:8px 10px;font-size:10px;color:#e2dabf}.quest-tracker>button:first-child{font-size:12px;color:#e2c984;padding:0}.quest-tracker p{margin:5px 0}.quest-tracker>button:last-child{font-size:10px;padding:2px 0;color:#bfc9a3}.chat-box{position:fixed;left:12px;bottom:99px;width:425px;z-index:12;background:#121912a8;border:1px ridge #807453;color:#eee6ce}.chat-tabs{display:flex;border-bottom:1px solid #655d47;background:#171d18bd;gap:2px}.chat-tabs button{font-size:10px;padding:3px 10px;color:#aeb698}.chat-tabs button.active{color:#e6cf87;background:#77714238}.chat-tabs button:last-child{margin-left:auto}.chat-messages{height:72px;overflow:auto;font-size:10px;line-height:1.55;padding:4px 7px;scrollbar-width:thin}.chat-row{overflow-wrap:anywhere}.chat-row .chat-name{color:#e8d598}.chat-row time{color:#7f8975;font-size:9px}.chat-row.system{color:#b3c69c}.chat-box form{display:flex;border-top:1px solid #655d47;gap:4px;padding:4px}.chat-box input{flex:1;min-width:0;background:#121713ae;color:#ece6d0;border:1px solid #4e5944;border-radius:0;font-size:11px;padding:3px 5px}.chat-box form button{background:#373e2b;border:1px solid #796a44;padding:2px 8px;font-size:10px}.chat-box.collapsed .chat-messages,.chat-box.collapsed form{display:none}.chat-box[hidden]{display:none}.system-box{position:fixed;right:55px;bottom:3px;width:235px;height:110px;z-index:12;background:#060907ca;border:2px ridge #817c6b;font-size:9px;padding:0;color:#d0d7c0}.system-box header{height:14px;font:8px Georgia;background:#363930;border-bottom:1px solid #6d705a;padding-left:3px}.system-box header button{float:right;padding:0 4px;line-height:11px}.system-box>div{height:92px;overflow:auto;padding:3px;line-height:1.6;overflow-wrap:anywhere;scrollbar-width:thin}.system-box p{margin:0}.client-windows{position:fixed;inset:30px 0 106px;z-index:30;pointer-events:none}
.client-window{position:absolute;pointer-events:auto;min-width:250px;width:350px;max-width:calc(100vw - 18px);max-height:calc(100dvh - 147px);border:3px ridge #9b8969;background:#24291ff5;box-shadow:5px 10px 20px #0007;color:#ded5b3;display:flex;flex-direction:column}.window-header{display:flex;align-items:center;gap:6px;min-height:29px;padding:0 5px 0 10px;background:linear-gradient(#5a5037,#282e23);border-bottom:1px solid #8b7b51;cursor:move;touch-action:none;user-select:none}.window-header h2{margin:0;font-size:12px;font-weight:400;flex:1;color:#f0d89c;letter-spacing:1px}.window-header button{width:23px;height:21px;border:1px solid #8e7f57;background:#22281e99;font-size:14px;padding:0;cursor:pointer}.window-body{overflow:auto;padding:12px;scrollbar-width:thin;overscroll-behavior:contain;font-size:12px}.client-window.minimized .window-body{display:none}.client-window.minimized{max-height:36px}.window-body p{line-height:1.8}.window-body button,.window-body select{background:#434b32;color:#efe3b9;border:1px solid #938056;padding:6px 9px;cursor:pointer;font-size:11px}.window-body button:disabled{opacity:.45;cursor:default}.window-body .panel-note{color:#a8b298;font-size:10px;margin:9px 0}.client-window.native-window{width:399px;min-width:300px;background:#161b17ed}.native-window .window-body{padding:6px 12px}.native-board-wrap{position:relative;width:100%;height:500px}.native-board{position:absolute;left:0;top:0;width:369px;height:500px;background:url('/assets/ui/inventory-0-0.png') no-repeat;transform-origin:top left;font-size:10px}.native-board .paperdoll{position:absolute;left:217px;top:76px;width:50px;height:115px;pointer-events:none;image-rendering:pixelated}.gear-slot{position:absolute;padding:0!important;border:0!important;background:transparent!important;display:grid;place-items:center;cursor:pointer}.gear-slot:hover,.gear-slot:focus-visible{box-shadow:inset 0 0 0 2px #e6c981}.gear-slot canvas{width:32px;height:32px;image-rendering:pixelated}.gear-slot.paperdoll-slot canvas{opacity:0}.gear-slot .gear-caption{position:absolute;left:0;right:0;bottom:2px;font-size:8px;color:#d3c8a5;text-shadow:1px 1px #000;text-align:center}.gear-slot.empty .gear-caption{color:#8d8876}.inv-stat{position:absolute;left:88px;width:36px;line-height:12px;font-size:10px;color:#dedcc0;text-align:right;text-shadow:1px 1px #000}.native-gold{position:absolute;left:212px;top:284px;width:85px;text-align:right;color:#e7d9ad;font-size:10px}.native-bag{position:absolute;left:69px;top:326px;display:grid;grid-template-columns:repeat(8,35px);grid-template-rows:repeat(4,33px)}.native-bag .inventory-cell{position:relative;width:35px;height:33px;padding:0;border:0;background:transparent;display:grid;place-items:center}.inventory-cell canvas{width:30px;height:30px;image-rendering:pixelated}.inventory-cell b{position:absolute;bottom:0;right:2px;font-size:9px;font-weight:400;color:#fff;text-shadow:1px 1px #000}.inventory-cell:hover,.inventory-cell.selected{box-shadow:inset 0 0 0 1px #eed088;background:#a3892e33}.native-bag .inventory-cell:disabled{opacity:1}.bag-selection{position:absolute;left:77px;top:467px;width:270px;font-size:9px;color:#dbd0a9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-detail{background:#1a2217;border:1px solid #6c664a;padding:9px;min-height:62px;margin-top:7px;line-height:1.7;font-size:11px}.item-detail b{color:#ecd194}.item-detail button{float:right;margin-left:6px}.character-sheet{display:grid;grid-template-columns:100px 1fr;gap:8px}.character-portrait{background:#151d16;border:1px solid #7b7151;text-align:center;padding-top:20px;position:relative}.character-portrait canvas{width:96px;height:130px;image-rendering:pixelated}.character-portrait>strong{display:block;font-size:11px;color:#e0c78e}.stat-list{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#5f6548;border:1px solid #797951}.stat-list div{background:#222b1e;padding:7px 9px;display:flex;justify-content:space-between;gap:12px;font-size:11px}.stat-list b{color:#e5d398;font-weight:400}.window-body .item-list{gap:4px}.window-body .item-row{background:#253022;border:1px solid #737751;color:#d9d6b6;padding:7px}.window-body .item-row canvas{background:#161b14;border-color:#727450}.window-body .item-row small{color:#a4ad93}.window-body .map-route{background:#263223;border-color:#677454;color:#d9d7b7}.window-body .map-route em,.window-body .map-route small{color:#a8b89a}.window-body .skill-card{background:#2a3323;border-color:#8d7b4a;color:#d8d1ac;padding:14px}.window-body .skill-card p,.window-body .skill-tags{color:#bac0a6}.window-body .journal-row{border-color:#586449;color:#cbd1b4;font-size:11px}.title-card{display:flex;align-items:center;gap:9px;padding:9px;border:1px solid #736b45;margin:7px 0;background:#2b311f}.title-card>div{flex:1}.title-card b{color:#dac78a;font-size:13px}.title-card small{display:block;font-size:10px;color:#99a585;margin-top:5px}.title-card.locked{opacity:.5}.title-card.current{background:#524723;border-color:#b0984e}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid #566044;gap:10px}.settings-row select{max-width:170px}.client-window .npc-actions{flex-wrap:wrap}.client-window .resident{background:#263223;color:#ddd6b9;border-color:#637149;margin-top:6px;width:100%}.shortcut-choice{display:grid;gap:5px}.hotbar-hint{font-size:10px;color:#a8b497}.ui-coordinates{font:10px monospace;color:#b0b898}.desktop-client #panel{background:#222b1ff5;border:3px ridge #9b8c64;color:#e8dec5;max-width:min(610px,94vw)}.desktop-client .dialog-head{background:#4a4932;color:#e1c68e;border-bottom:1px solid #817655}.desktop-client #panel .item-row,.desktop-client #panel .quest-paper{background:#2e3724;color:#ddd1ab;border-color:#817951}.desktop-client #panel .item-text small,.desktop-client #panel .npc-quote,.desktop-client #panel .panel-note{color:#abb897}.desktop-client #panel .item-row button,.desktop-client #panel .npc-actions button{color:#e3d5ae;background:#424c31;border-color:#8d7d49}.desktop-client .welcome{color:#25362d}.desktop-client .welcome button{color:#eee2c5}.desktop-client #offline-banner{font-size:11px;background:#6e472a}.legacy-mount,.sidebar,.footer{display:none!important}
@media(max-width:1000px){.actionbar{left:3px}.system-box{width:190px;right:55px;height:95px}.quest-tracker{width:172px}.chat-box{width:350px}}
@media(max-width:760px){.client-network{right:43px;top:28px;font-size:8px}.client-network button{font-size:9px;padding:1px 3px}.player-card{width:100%;height:27px;padding:2px 5px;gap:4px}.identity{display:none}.portrait-mark{width:21px;height:21px}.meter.hp,.meter.mp{width:calc((100vw - 45px)/2);height:11px}.scene-top{left:0;right:0;top:0}.map-card{left:6px;top:40px;width:108px;padding:2px}.map-card canvas{width:100px;height:69px}.map-card strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scene-bottom{bottom:122px;left:5px;max-width:calc(100vw - 18px)}.scene-label{font-size:9px;padding:3px 7px}.function-rail{right:3px;top:48px;bottom:118px;width:32px;gap:4px;padding-top:0;background:#161e1499;border:1px solid #81724d}.rail-orb{display:none}.function-rail>button{width:27px;height:27px;flex-basis:27px;font-size:17px;border-width:2px}.function-rail>button span{right:30px}.actionbar{left:0;bottom:0;width:100%;height:111px;background:linear-gradient(#414331,#151d16);border-top:3px ridge #94866b}.action-group{left:5px;right:5px;bottom:41px;gap:3px;justify-content:space-between}.actionbar button.action{width:calc((100vw - 38px)/10);height:34px;min-width:0;flex:0 0 calc((100vw - 38px)/10);background:#131b14;border:1px solid #8b7a51}.actionbar .action-icon{font-size:19px}.actionbar .action kbd{font-size:7px}.actionbar .action small{font-size:8px}.actionbar .action.bound-icon canvas{width:24px;height:24px}.actionbar .experience{left:9px;right:9px;bottom:82px;width:auto}.experience>div{font-size:8px}.actionbar .bottom-nav{left:9px;bottom:6px;width:auto;display:flex;align-items:center;gap:10px}.gold b{font-size:10px}#save-state{font-size:8px;margin:0}.actionbar .hud-orb{display:none}.actionbar #coordinates{left:auto;right:9px;bottom:7px;width:92px;font-size:9px;line-height:17px;border-width:1px}.quest-tracker,.system-box{display:none}.touch-pad{display:grid;left:7px;bottom:149px;width:98px;height:98px;gap:4px}.touch-pad button,.touch-pad span{width:30px;height:30px;font-size:15px;background:#1e331d99;border:1px solid #9c8b5d;color:#dacc9b}.chat-box{left:5px;right:40px;width:auto;bottom:122px}.chat-box .chat-messages{height:90px}.chat-box .chat-tabs button{font-size:10px;padding:4px 7px}.client-windows{inset:37px 0 117px}.client-window{max-width:calc(100vw - 14px);max-height:calc(100dvh - 165px);min-width:250px}.window-body{padding:9px}.native-window .window-body{padding:5px}.window-header{min-height:30px}.window-header button{width:25px;height:25px}.window-body button{min-height:30px;padding:6px 9px}.native-board .gear-slot{min-height:0}.native-bag .inventory-cell{min-height:0}.character-sheet{grid-template-columns:82px 1fr}.character-portrait canvas{width:80px;height:120px}.stat-list div{padding:7px 5px;font-size:10px}.client-window .resident{font-size:12px}.chat-box:not(.mobile-open){display:none}#toast{bottom:230px;width:86vw;max-width:340px;white-space:normal}.client-window.native-window{min-width:280px}.window-header h2{font-size:12px}#target-card{top:150px;width:145px;font-size:10px}.death-overlay{padding-bottom:112px}}
@media(max-height:540px){.function-rail{gap:1px;top:30px;padding-top:0;bottom:105px;overflow:auto}.rail-orb{display:none}.function-rail>button{flex-basis:27px;width:27px;height:27px;font-size:15px}.client-window{max-height:calc(100dvh - 142px)}.map-card{width:109px;top:32px}.map-card canvas{width:100px;height:69px}.chat-box{bottom:101px}.chat-messages{height:45px}.quest-tracker{display:none}}
/* The functional rail uses only enabled controls, with source icons for the three core windows. */
.desktop-client .scene{min-height:0;max-height:none}
@media(max-width:760px){.desktop-client .touch-pad{grid-template-columns:repeat(3,30px);grid-template-rows:repeat(3,30px)}}
.function-rail{background-image:none;background-color:#18201870;border-right:2px ridge #8d7c5d}
.function-rail button[data-panel="character"],.function-rail button[data-panel="bag"],.function-rail button[data-panel="skills"]{font-size:0;border:0;background-position:center;background-repeat:no-repeat;background-size:contain}
.function-rail button[data-panel="character"]{background-image:url('/assets/ui/rail-2-0-full.png')}
.function-rail button[data-panel="bag"]{background-image:url('/assets/ui/rail-3-0-full.png')}
.function-rail button[data-panel="skills"]{background-image:url('/assets/ui/rail-4-0-full.png')}
.item-glyph{display:inline-grid;place-items:center;min-width:26px;min-height:26px;font:24px Georgia,serif;color:#ebd7a0;text-shadow:1px 1px #000}.inventory-cell .item-glyph,.gear-slot .item-glyph{font-size:24px}.progression-skill{margin:10px 0}.progression-skill h3 small{float:right;font-size:10px;font-weight:400;color:#bec8ab}.quest-entry{border-bottom:1px solid #65724e;padding-bottom:12px;margin-bottom:12px}.sp-readout{position:absolute;left:171px;top:28px;z-index:3;padding:2px 8px;color:#ebcb86;background:#263326bf;border:1px solid #85764e;font-size:10px}.client-window:has(#codex-kind){width:540px}.codex-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:9px}.codex-toolbar label{font-size:11px;display:flex;flex-direction:column;gap:4px}.codex-toolbar input,.codex-toolbar select{width:100%;padding:7px;border:1px solid #817b56;background:#192319;color:#e2d5ad;font:12px var(--font);min-width:0}.codex-toolbar .codex-checkbox{flex-direction:row;align-items:center;grid-column:1/-1}.codex-checkbox input{width:auto}.codex-card{border:1px solid #687451;padding:10px;margin:9px 0;background:#1f291d}.codex-card header{display:flex;align-items:center;justify-content:space-between;gap:10px}.codex-card h3{font-size:14px;color:#edd49c;margin:0}.codex-status{font-size:10px;color:#b3bda3;border:1px solid #737d5b;padding:2px 5px;white-space:nowrap}.codex-status.live{color:#eee09c;background:#4b5430}.codex-card dl{margin:9px 0;font-size:11px}.codex-card dl>div{display:flex;gap:10px;margin:4px 0}.codex-card dt{flex:0 0 70px;color:#9bab8b}.codex-card dd{margin:0;overflow-wrap:anywhere;color:#d1d8bd}.codex-card .npc-actions{gap:6px}.codex-card small{color:#a3b597}.codex-card button{font-size:10px}.window-body a{color:#d2c188}.actionbar .action-icon .item-glyph{font-size:23px}.gear-slot[data-gear="shoes"] .item-glyph{font-size:22px}
@media(max-width:760px){.sp-readout{left:120px;top:51px;font-size:9px}.client-window:has(#codex-kind){width:calc(100vw - 14px)}.codex-toolbar{gap:8px}.codex-toolbar input,.codex-toolbar select{font-size:14px;min-height:35px}.codex-card dt{flex-basis:62px}.codex-card button{font-size:12px}.function-rail{gap:3px}.actionbar .action-icon .item-glyph{font-size:21px}}

.native-item-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;flex-shrink:0;overflow:hidden;image-rendering:pixelated}.native-item-icon>span{display:block;flex-shrink:0;background-repeat:no-repeat;image-rendering:pixelated}
.desktop-client #panel .npc-actions{display:flex;flex-wrap:wrap;gap:7px}.desktop-client .bag-tools{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:8px 0}.desktop-client .bag-tools label{min-width:0;flex:1 1 160px}.desktop-client .bag-tools input{max-width:100%;width:100%;min-width:0}.desktop-client #panel .item-text{min-width:0}.desktop-client #panel .item-text small{overflow-wrap:anywhere}
