html:has(#app),body:has(#app),#app{height:100%;min-height:0}body:has(#app){height:100dvh;overflow:hidden;overscroll-behavior:none}#app canvas{display:block}.combat-hud{user-select:none;-webkit-user-select:none}.combat-hud button{touch-action:manipulation}.combat-hud .interact-action{position:fixed;right:max(202px,env(safe-area-inset-right));bottom:244px;min-width:64px;min-height:44px;border-radius:6px;font-size:12px}.touch-joystick{display:none;position:fixed;left:max(16px,env(safe-area-inset-left));bottom:max(28px,calc(env(safe-area-inset-bottom) + 16px));width:124px;height:124px;border:2px solid #d0bf8599;border-radius:50%;background:#122b2177;box-shadow:inset 0 0 0 12px #07191033;pointer-events:auto;touch-action:none;align-items:center;justify-content:center}.joystick-knob{width:48px;height:48px;border-radius:50%;border:2px solid #dfca8d;background:#47624bdc;pointer-events:none}.combat-hud.map-view .touch-joystick,.combat-hud.map-view .interact-action{visibility:hidden}.combat-hud .combat-status{max-width:calc(100vw - 24px);overflow-wrap:anywhere}@media(pointer:coarse),(max-width:900px){.touch-joystick{display:flex}.combat-hud .hero-card{top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));width:190px;padding:7px 9px}.combat-hud .hud-utilities{top:max(174px,calc(env(safe-area-inset-top) + 168px));right:max(8px,env(safe-area-inset-right));gap:3px}.combat-hud .hud-utilities :is(button,#sound-settings){width:44px;min-width:44px;height:44px;min-height:44px}.combat-hud .hud-utilities :is(button,#sound-settings) .utility-icon{width:38px;height:38px}.combat-hud .combat-actions{width:174px;height:158px;right:max(8px,env(safe-area-inset-right));bottom:max(24px,calc(env(safe-area-inset-bottom) + 12px));transform:none}.combat-actions .basic-action{width:78px;height:78px;right:0;bottom:0}.combat-actions .special-action{width:58px;height:58px;right:86px;bottom:0}.combat-actions .mobility-action{width:58px;height:58px;right:26px;bottom:86px}.combat-actions small{font-size:7px}.combat-hud .class-options{top:auto;left:auto;right:max(8px,env(safe-area-inset-right));bottom:calc(190px + env(safe-area-inset-bottom));flex-direction:row;gap:5px;translate:none}.combat-hud .class-options>button,.combat-hud.big-classes .class-options>button{width:48px;height:48px;min-height:44px}.combat-hud .combat-actions button{translate:none}.combat-hud .interact-action{right:max(8px,env(safe-area-inset-right));bottom:calc(248px + env(safe-area-inset-bottom))}.combat-hud .class-options .quick-weapons{bottom:calc(100% + 8px);right:0;top:auto;max-height:32dvh}.combat-hud .combat-status{top:auto;bottom:-22px;width:174px;font-size:9px;line-height:1.2;margin:0}}@media(max-width:359px){.touch-joystick{width:108px;height:108px;left:max(10px,env(safe-area-inset-left))}}@media(max-height:500px)and (min-width:501px){.combat-hud .hero-card{width:180px}.combat-hud .hud-utilities{top:max(8px,env(safe-area-inset-top))}.touch-joystick{width:100px;height:100px;bottom:max(16px,env(safe-area-inset-bottom))}.combat-hud .class-options{top:auto;left:calc(50% - 77px);right:auto;bottom:max(16px,env(safe-area-inset-bottom));flex-direction:row}.combat-hud .interact-action{right:calc(50% - 32px);bottom:76px}.combat-hud .combat-actions{bottom:max(16px,env(safe-area-inset-bottom))}}body dialog.game-modal{box-sizing:border-box;overscroll-behavior:contain;scroll-padding-top:70px;overflow-x:hidden;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}body dialog.game-modal:not(.supplies-merchant){overflow-y:auto}body dialog.game-modal :is(button,input,select){max-width:100%}body dialog.game-modal :is(button,input[type=number],input[type=text],select){min-height:44px}body dialog.game-modal :is(input,select){font-size:16px}body dialog.game-modal :is(.config-layout,.inventory-layout,.merchant-layout,.gear-confirm,.supply-confirm)>*{min-width:0}body dialog.game-modal :is(header,.supply-header){position:sticky!important;top:-1px;z-index:5;background:#14271ff5;margin-top:0}body dialog.game-modal :is(header>button,.supply-back){min-width:44px;min-height:44px}.item-actions{max-height:calc(100dvh - 16px);overflow-y:auto}@media(max-width:600px){body dialog.game-modal.character-panel{width:calc(100vw - 16px);padding:10px}body dialog.game-modal.character-panel>nav{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:10px;gap:3px}body dialog.game-modal.character-panel>nav button[data-tab]{min-height:52px;font-size:10px;padding:4px 2px;gap:2px}body dialog.game-modal.character-panel .menu-tab-icon{width:24px;height:24px}body dialog.game-modal.character-panel .inventory-layout{grid-template-columns:1fr}.character-panel .inventory-equipment{max-width:240px;width:100%;margin:auto}body dialog.game-modal.character-panel .inventory-equipment button{min-width:44px;min-height:44px;aspect-ratio:auto;height:54px}body dialog.game-modal.character-panel .inventory-grid{grid-template-columns:repeat(4,minmax(0,1fr))}body dialog.game-modal.character-panel .config-layout{grid-template-columns:1fr}body dialog.game-modal.character-panel .outfit-palette{grid-template-columns:repeat(6,minmax(0,1fr))}body dialog.game-modal.character-panel .outfit-palette button[data-color]{min-height:36px}body dialog.game-modal .gear-grid,body dialog.game-modal .supply-grid,body dialog.game-modal .treasury-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}body dialog.game-modal :is(.gear-slot,.supply-tile,.treasury-slot){min-height:44px}body dialog.game-modal .gear-confirm,body dialog.game-modal .supply-confirm{grid-template-columns:1fr;gap:12px;min-height:0}.gear-checkout,.supply-checkout{width:100%}.treasury-digits{gap:1px}body dialog.game-modal.treasury-panel .treasury-digits button{min-width:0;padding:0;font-size:16px}.gear-merchant .merchant-items{grid-template-columns:repeat(3,minmax(0,1fr))}.merchant-filter{flex-wrap:wrap}.merchant-detail dl>div{gap:8px}body dialog.game-modal.world-map-panel.friendly-map{height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);padding:10px}.map-guide-layout{grid-template-rows:minmax(120px,1fr) auto}.friendly-map aside{max-height:100px}}@media(max-height:500px){body dialog.game-modal.character-panel>nav{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}body dialog.game-modal.character-panel>nav button[data-tab]{min-height:44px;padding:3px;font-size:9px}body dialog.game-modal.character-panel .menu-tab-icon{width:20px;height:20px}.map-guide-layout{grid-template-columns:minmax(0,1fr) 160px;grid-template-rows:1fr}body dialog.game-modal.world-map-panel.friendly-map{height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);gap:6px;padding:8px}.friendly-map aside{max-height:none}.friendly-map ol{grid-template-columns:1fr}}@media(max-width:359px)and (min-height:501px){.combat-hud .hud-utilities{top:max(170px,calc(env(safe-area-inset-top) + 164px))}.combat-hud .hero-card{width:190px}}@media(max-width:600px){body dialog.game-modal.character-panel .outfit-palette{grid-template-columns:repeat(5,minmax(0,1fr))}body dialog.game-modal.character-panel .outfit-palette button[data-color]{min-height:44px}}body dialog.game-modal label:has(input[type=checkbox]){min-height:44px;display:flex;align-items:center;gap:8px}body dialog.game-modal input[type=range]{min-height:44px;height:44px!important;cursor:pointer}.audio-dialog input[type=range]{border:0;background:transparent;box-shadow:none}.audio-dialog input[type=range]::-webkit-slider-runnable-track{height:8px;border:1px solid #8a8052;background:#183022}.audio-dialog input[type=range]::-webkit-slider-thumb{margin-top:-7px}.audio-dialog input[type=range]::-moz-range-track{height:8px;border:1px solid #8a8052;background:#183022}@media(max-height:500px)and (max-width:500px){.combat-hud .hud-utilities{top:max(8px,env(safe-area-inset-top));flex-direction:column;gap:2px}.combat-hud .interact-action{bottom:calc(240px + env(safe-area-inset-bottom))}.combat-hud .hero-card{width:180px}}body dialog.game-modal:is(.gear-trader,.supplies-merchant,.treasury-panel,.audio-dialog,.shop-dialog){background:#102219f7}@media(max-width:600px){body dialog.game-modal .treasury-bank .treasury-digits{display:block;min-height:48px}body dialog.game-modal .treasury-bank .treasury-place,body dialog.game-modal .treasury-bank .treasury-overflow{display:none!important}body dialog.game-modal.treasury-panel .treasury-digits input{position:relative;inset:auto;display:block;opacity:1;width:100%;height:48px;padding:6px;font-size:24px}}@media(min-width:601px){body dialog.game-modal.supplies-merchant .supply-grid{grid-template-columns:repeat(10,minmax(44px,var(--tile)))}}@media(pointer:coarse),(max-width:900px){body dialog.game-modal.character-panel .config-layout label[for=config-horizontal],body dialog.game-modal.character-panel .config-layout label[for=config-vertical],body dialog.game-modal.character-panel .config-layout input[data-inset],body dialog.game-modal.character-panel .config-layout label:has([data-control=large]){display:none}}body:has(#app),#app,.combat-hud,.combat-hud button{touch-action:none}body dialog.game-modal{touch-action:pan-y}body dialog.game-modal input[type=range]{touch-action:none}.combat-hud button.interact-action{width:56px;height:56px;min-width:48px;min-height:48px;padding:0;border:0;border-image:none;background:transparent;box-shadow:none;filter:drop-shadow(0 2px 2px #07170c)}.combat-hud .interact-action[hidden]{display:none}.interact-action img{width:100%;height:100%;object-fit:contain;pointer-events:none;image-rendering:pixelated}@media(max-height:500px)and (max-width:500px){.combat-hud .class-options{top:184px;bottom:auto;left:max(8px,env(safe-area-inset-left));right:auto}.combat-hud button.interact-action{top:176px;bottom:auto;right:max(64px,calc(env(safe-area-inset-right) + 64px))}}body .combat-hud button.hero-card{background:transparent;border:0;border-image:none;border-radius:0;box-shadow:none;padding:4px 6px;text-shadow:1px 1px 2px #000,0 0 4px #000}body .combat-hud button.interact-action{display:flex;align-items:center;justify-content:center;gap:8px;width:124px;height:auto;min-height:52px;padding:6px;border:0;border-radius:0;background:transparent;box-shadow:none;filter:none;color:#fff0bb;text-shadow:1px 1px 2px #000,0 0 4px #000}body .combat-hud .interact-action[hidden]{display:none}.interact-action kbd{display:grid;place-items:center;flex:none;width:24px;height:24px;border:1px solid #c7b77a;font:700 13px monospace;background:#0b140dcc}.interaction-copy{display:flex;flex-direction:column;gap:3px;min-width:0;text-align:left}.interaction-copy strong{font:700 14px/1.2 monospace}.interaction-copy small{font:10px/1.2 monospace;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body .combat-hud .class-options>button,body .combat-hud.no-class-borders .class-options>button,body .combat-hud .class-options>button[aria-pressed=true]{background:transparent;border:0;border-image:none;border-radius:0;box-shadow:none;text-shadow:1px 1px 2px #000,0 0 4px #000}body .combat-hud .class-options>button[aria-pressed=true]{box-shadow:inset 0 -2px #e2c477}body .combat-hud .class-options>button[aria-pressed=true]:after{content:none}body .combat-hud .class-options>button:hover{background:transparent;filter:brightness(1.2)}@media(pointer:coarse){body .combat-hud .interact-action kbd{display:none}body .combat-hud button.interact-action{width:112px;min-height:52px}body .combat-hud .interaction-copy{text-align:center}body .combat-hud .class-options>button kbd{display:none}}@media(max-height:500px)and (max-width:500px){body .combat-hud button.interact-action{right:12px;top:170px}}
