:root{--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#e9e3d2;background:#101619;font-synthesis:none}*{box-sizing:border-box}html,body{overscroll-behavior:none}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;overflow:hidden;background:radial-gradient(ellipse at 50% 32%,#263334,#101619 70%)}button{font:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}#app{height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center}.shell{position:relative;--party-panel-width: 200px;width:calc(960px + var(--party-panel-width));height:var(--screen-height, 640px);flex-shrink:0;transform-origin:center;box-shadow:0 30px 100px #0009,0 0 0 1px #65706444}.game-surface{position:absolute;inset:0 0 0 var(--party-panel-width);outline:none}.game-surface canvas{display:block;touch-action:none;image-rendering:pixelated}.hud{position:absolute;inset:0 0 0 var(--party-panel-width);pointer-events:none}.topbar{height:80px;display:flex;align-items:center;gap:24px;padding:12px 20px;background:linear-gradient(#202b2e,#182125);border-bottom:1px solid #c8a56155;box-shadow:0 3px 10px #0008}.unit{display:flex;align-items:center;gap:10px;width:240px}.portrait{width:48px;height:48px;flex-shrink:0;border:1px solid #b99d5d88;background-color:#121b20;background-size:192px 48px;background-repeat:no-repeat;image-rendering:pixelated;box-shadow:inset 0 0 12px #0009}.foe{border-color:#ad7365}.player-frame .portrait.devil_pker,.party-portrait.devil_pker{background-size:contain;background-position:center}.player-frame .portrait.cyber_nun{background-size:192px 48px;background-position:left center;background-image:url(/assets/cyber-nun/nun-idle-sheet.png)!important}.unit-info{flex:1}.unit-title{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:4px;gap:8px}.unit-title b{font-size:12px;font-weight:600}.unit-title span{font-size:8px;letter-spacing:1.3px;color:#94a399}.bar{height:15px;margin-top:3px;background:#0c1114;border:1px solid #05090c;position:relative;overflow:hidden}.bar i{display:block;height:100%;transition:width .1s linear;background:linear-gradient(90deg,#49785b,#78a86d)}.bar span{position:absolute;inset:0;text-align:center;font:10px/13px ui-monospace,monospace;color:#fff;text-shadow:1px 1px #000}.mana{height:11px}.mana i{background:linear-gradient(90deg,#305878,#5a91ab)}.mana.spec i{background:linear-gradient(90deg,#4ba9cf,#a0e6fa)}.player-frame.devil-spec .mana span{color:#e6faff}.mana span{font-size:8px;line-height:9px}.target-hp i{background:linear-gradient(90deg,#8c423c,#c87560)}.unit-info small{font-size:9px;color:#778a8d}.target-frame.empty{opacity:.4}.run-info{margin-left:auto;text-align:right;display:flex;flex-direction:column;gap:3px}.eyebrow{font-size:9px;color:#c4a56b;letter-spacing:3px;font-weight:700}.run-info b{font-size:14px;font-weight:500}.run-info>span:last-child{font:9px ui-monospace,monospace;color:#7e9395;letter-spacing:2px}.party-panel{position:absolute;right:100%;top:0;bottom:0;width:var(--party-panel-width);background:linear-gradient(#202b2e,#141d21);border-right:1px solid #c8a56155}.party-heading{height:80px;display:flex;align-items:center;padding:20px;border-bottom:1px solid #c8a56155}.party-area{padding:10px;max-height:calc(100% - 145px);overflow-y:auto}.party-area:empty:after{content:"No other party members";display:block;padding:10px;color:#94a399;font-size:11px;line-height:1.5}.bottom-bar{position:absolute;bottom:0;width:100%;height:80px;background:linear-gradient(#1b2629,#141d21);border-top:1px solid #c8a56155;display:flex;align-items:center;justify-content:space-between;padding:8px 24px}.combat-state{display:flex;gap:10px;align-items:center;width:220px}.combat-state b{display:block;font-size:12px;font-weight:500;color:#b3c5b0}.combat-state small,.connection small{display:block;color:#758a8d;font-size:10px;margin-top:5px}.state-dot{width:6px;height:6px;background:#89a477;box-shadow:0 0 8px #89a47788;border-radius:50%}.fighting .state-dot{background:#d8775d;box-shadow:0 0 8px #d8775d88}.fighting b{color:#d79881}.connection{width:220px;text-align:right;font-size:10px;color:#9da99e}.actionbar{display:flex;gap:8px;pointer-events:auto}.raid-actions{display:contents}.raid-item{border-color:#a65bd0;box-shadow:0 0 12px #7b319966}.raid-item.sarmish-blood{border-color:#d9a42d;box-shadow:0 0 14px #d9972c77}.ability{position:relative;width:66px;height:62px;padding:0;background:linear-gradient(145deg,#344247,#1d292e);color:#d7bd83;border:1px solid #8a7854;box-shadow:inset 0 0 0 3px #141d2199,0 2px 4px #0008;overflow:hidden}.ability:hover{border-color:#e3c58a;background:linear-gradient(145deg,#435257,#263238)}.taunt-control{border-color:#a9b77e}.roll-control .key{font-size:8px}.taunt-control:hover{border-color:#d9e39b}.ability:active{transform:translateY(1px)}.key{position:absolute;top:3px;left:5px;font:11px ui-monospace,monospace;color:#ddd2b9;z-index:3}.ability-icon{position:absolute;top:2px;left:0;right:0;text-align:center;font-size:28px}.ability-name{position:absolute;left:0;right:0;bottom:12px;font-size:9px;letter-spacing:.4px;text-transform:capitalize;z-index:3}.cost{position:absolute;bottom:2px;left:0;right:0;color:#8eafbc;font:8px ui-monospace,monospace;z-index:3}.cooldown{position:absolute;top:12px;left:0;right:0;font:700 16px ui-monospace,monospace;color:#fff;text-shadow:0 1px 3px #000;z-index:4}.sweep{position:absolute;inset:0;background:conic-gradient(#02090cbb var(--sweep, 0deg),transparent 0);z-index:2}.unavailable .ability-icon{opacity:.4}.ability.spec-unavailable,.ability.mana-unavailable{filter:grayscale(1);opacity:.48;background:linear-gradient(145deg,#303538,#1c2022);border-color:#73797b;color:#aeb3b4}.ability.spec-unavailable .cost,.ability.mana-unavailable .cost{color:#d0d3d4}.guard-active{border-color:#8fd0dc;box-shadow:0 0 12px #5ba4bb66}.feedback{position:absolute;left:200px;right:200px;bottom:98px;text-align:center;color:#f2ba87;font-size:12px;text-shadow:0 2px 3px #000;opacity:0;transition:opacity .15s}.feedback.visible{opacity:1}.modal{position:absolute;z-index:4;inset:80px 0;background:#080f14b8;display:grid;place-items:center;pointer-events:auto;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.party-frame .party-portrait{float:left;width:36px;height:36px;background-size:144px 36px}.party-frame>b,.party-frame>.bar,.party-frame>small,.party-frame>.unit-buffs{margin-left:44px}.dps-meter{position:absolute;right:8px;bottom:88px;width:64px;height:96px;background:transparent;overflow:hidden;pointer-events:none;z-index:25}.dps-meter[hidden]{display:none}.dps-row{position:relative;height:16px;text-align:center;color:#fff;font:700 11px/16px monospace;text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000;isolation:isolate}.dps-row:before{content:"";position:absolute;inset:0;background:var(--party-color);opacity:.4;z-index:-1}.options-menu button[aria-pressed=true]{outline:2px solid #8fc96d}.bar.special i{background:#77dcff}.cyber-transform-prompt{position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);z-index:20;display:flex;flex-direction:column;align-items:center;gap:4px;color:#d8f7ff;background:#102c39dd;border:2px solid #81e3ff;border-radius:12px;padding:12px 22px;box-shadow:0 0 24px #55dfff88;pointer-events:auto}.cyber-transform-prompt[hidden]{display:none}.cyber-transform-prompt strong{font-size:42px;line-height:1}.cyber-transform-prompt span{font-size:11px;letter-spacing:2px}.game-surface.cyber-teleport-targeting{cursor:crosshair}.cyber-teleport-marker{position:absolute;width:40px;height:40px;margin:-20px 0 0 -20px;border:2px solid #63ff83;border-radius:50%;box-shadow:0 0 12px #42ff70aa,inset 0 0 8px #42ff7055;pointer-events:none;z-index:30}.cyber-teleport-marker:before,.cyber-teleport-marker:after{content:"";position:absolute;background:#8dffa2;opacity:.85}.cyber-teleport-marker:before{width:1px;height:50px;left:17px;top:-7px}.cyber-teleport-marker:after{height:1px;width:50px;top:17px;left:-7px}.fat-screen-exit{position:absolute;z-index:5;top:88px;right:12px;pointer-events:auto;padding:7px 14px;border:1px solid #b99b61;background:#162126ef;color:#ead7b2;cursor:pointer}.fat-screen-exit:hover{background:#b99b6144}[hidden]{display:none!important}.modal-card{max-height:calc(100% - 24px);overflow-y:auto;text-align:center;padding:32px 48px;width:450px;background:linear-gradient(145deg,#293436,#162126);border:1px solid #ad935b66;box-shadow:0 20px 50px #0008}.modal-symbol{font-size:42px;color:#c7a96d;margin:14px}.modal h1{font-family:Georgia,serif;font-weight:400;font-size:32px;margin:8px 0}.modal p{font-size:12px;line-height:1.7;color:#9caeb0;margin:12px 0 24px}.modal button{padding:10px 28px;border:1px solid #b99b61;background:#b99b6122;color:#ead7b2;font-size:12px}.modal button:hover{background:#b99b6144}.modal button:disabled{opacity:.4}button:focus-visible{outline:2px solid #f0ce87;outline-offset:3px}.player-frame{pointer-events:auto;border:0;background:transparent;color:inherit;padding:0;text-align:left}.friendly .target-hp i{background:linear-gradient(90deg,#49785b,#78a86d)}.party-frame{display:block;pointer-events:auto;width:100%;padding:7px;margin-bottom:5px;background:#132024dc;color:#d3ddcf;border:1px solid #65786466;text-align:left}.party-frame b{display:block;line-height:14px;font-size:10px}.party-frame small{display:block;font-size:9px;color:#c3bca4;min-height:10px}.party-frame.selected{border-color:#90d6a0}.castbar{position:absolute;left:310px;right:310px;bottom:140px;height:24px;background:#101820;border:1px solid #bca571}.castbar i{display:block;height:100%;background:#977640}.castbar span{position:absolute;inset:0;text-align:center;font-size:11px;line-height:22px;text-shadow:1px 1px #000}.door-status{position:absolute;right:32px;top:390px;font-size:10px;color:#c6d9a8;text-shadow:1px 1px #000}.feedback{z-index:5}.modal-card.wide{width:min(880px,calc(100vw - 28px));max-height:100%;overflow-y:auto;padding:16px 22px}.class-groups{display:grid;gap:10px;max-height:min(49vh,430px);overflow-y:auto;margin-top:12px;padding:2px 4px}.class-group h2{display:flex;align-items:center;gap:8px;margin:0 0 6px;color:#e2c07b;font:14px Georgia,serif;text-align:left}.class-group h2:after{content:"";flex:1;height:1px;background:#b99b6144}.class-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:8px}.modal .class-card{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:start;gap:2px 8px;width:100%;min-width:0;text-align:left;padding:7px;border-color:#586c6670;background:#111d2166}.class-card.selected{border-color:#e2c07b;box-shadow:0 0 0 1px #e2c07b}.class-card .portrait{grid-column:1;grid-row:1;width:34px;height:34px;margin:0;background-size:136px 34px}.class-card[data-class=devil_pker] .portrait{background-size:contain;background-position:center}.class-card[data-class=cyber_nun] .portrait{background-size:136px 34px;background-position:left center;background-image:url(/assets/cyber-nun/nun-idle-sheet.png)!important}.class-card-info{grid-column:2;min-width:0}.class-card strong,.class-card span,.class-card small{display:block}.class-card strong{font:16px Georgia,serif;margin-bottom:2px}.class-card .class-selected{display:inline-block;margin-left:6px;padding:0 5px;border-radius:3px;background:#e2c07b;color:#1b1a14;font:700 10px system-ui,sans-serif;vertical-align:middle}.class-card span{font-size:9px;color:#b3c5af;min-height:20px}.class-card .class-count{min-height:0;margin:2px 0 0;font-size:9px;line-height:1.3}.class-card .class-abilities{grid-column:1 / -1;overflow:hidden;min-height:26px;color:#abbab9;font-size:8px;line-height:1.45;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.modal .class-hint{margin:10px 0;font-size:11px}.join-controls{display:flex;justify-content:center;gap:10px}.join-controls input{width:160px;padding:10px;background:#111c21;border:1px solid #6d8175;color:#ead7b2;text-transform:uppercase;font:14px monospace}.lobby-code{font-size:10px;letter-spacing:2px;color:#a8b3a6}.lobby-code strong{display:inline-block;font:700 20px monospace;color:#e7c98b;padding:0 10px;-webkit-user-select:all;user-select:all}.lobby-roster{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 20px;margin:10px 0;font-size:11px}.leave-run{pointer-events:auto;margin-top:4px;padding:0;border:0;background:transparent;color:#aa9980;font-size:9px}.lobby-invite{display:flex;align-items:center;justify-content:center;gap:18px}.invite-link{display:flex;align-items:center;justify-content:center;gap:10px;font-size:10px;color:#a8b3a6}.invite-link input{width:310px;padding:6px 8px;background:#111c21;border:1px solid #6d8175;color:#ead7b2;font:11px monospace}.staging{position:absolute;top:145px;left:210px;right:30px;pointer-events:auto;background:#182326ee;border:1px solid #59614e;padding:8px 14px}.staging .lobby-invite{margin:0;gap:16px}.staging .lobby-code{font-size:9px}.staging .lobby-code strong{font-size:18px}.staging button{white-space:nowrap;cursor:pointer;color:#ebd4a0;background:#333a36;border:1px solid #59614e;padding:8px}.modal .join-controls{margin-top:22px}.staging .invite-link input{width:240px}.door-status.gathering{left:210px;right:210px;top:430px;text-align:center;font-size:12px}.encounter-info{position:absolute;left:25px;right:25px;top:88px;text-align:center;font-size:11px;color:#e8d9b6;text-shadow:1px 1px #000}.encounter-timers{color:#ffc76d;margin-top:5px;font-weight:600}.options-controls{position:absolute;right:100%;bottom:18px;width:var(--party-panel-width);padding:10px;pointer-events:auto;color:#bcc6bd;font-size:11px}.options-controls button,.options-menu button{color:inherit;background:#253537;border:1px solid #6e806b;padding:6px}.options-controls button:hover,.options-menu button:hover{background:#35494a}.options-menu{width:min(380px,calc(100vw - 32px));padding:28px;color:#e9e3d2;background:linear-gradient(145deg,#293436,#162126);border:1px solid #ad935b99;box-shadow:0 20px 50px #0008}.options-menu::backdrop{background:#080f14b8}.options-menu h1{margin:0 0 24px;font:28px Georgia,serif;color:#ead7b2}.volume-setting{display:grid;grid-template-columns:1fr auto;gap:12px;margin-bottom:24px;font-size:14px}.volume-setting output{color:#c7a96d}.volume-setting input{grid-column:1 / -1;width:100%;margin:0;accent-color:#c7a96d}.options-menu form{margin-top:24px;text-align:right}.options-menu button{padding:8px 16px}.wipe-counts{color:#ebd4a0;font-size:13px}.wipe-roster{list-style:none;padding:0;margin:20px 0;text-align:left}.wipe-roster li{display:flex;justify-content:space-between;gap:24px;padding:8px 0;border-bottom:1px solid #46534b}.wipe-roster b{color:#bcc6bd}.modal.wipe{inset:0;z-index:6}.party-heading [data-testid=party-size]{color:#c4a56b;font-size:11px;margin-left:8px}.modal.wipe .modal-card{max-height:calc(100% - 24px);overflow-y:auto}.unit-buffs{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}.unit-buffs:empty{display:none}.unit-buff{border:1px solid #847452;background:#3d3526;color:#ffe09c;border-radius:2px;padding:1px 3px;font:8px/11px monospace;white-space:nowrap}.unit-buff.haste{color:#e3c7ff;background:#3a2947;border-color:#8d6da4}.unit-buff.lifesteal{color:#a0e3af;border-color:#81b68b77}.unit-buff.shield{color:#b7e6ff;background:#223b49;border-color:#58849a}.unit-buff.expiring{border-color:#f4ba77}.party-composition{margin-top:14px;color:#e4c790;font-size:13px}.party-composition small{display:block;margin-top:5px;font-size:10px;color:#a9babb}.class-count{margin:6px 0;color:#e4c790;font-size:10px;min-height:24px}.unit-buff.burn{color:#ffb76d;border-color:#a55232;background:#54291c}.fight-picker{display:flex;align-items:center;gap:14px;margin-top:8px;padding-top:8px;border-top:1px solid #59614e}.fight-picker label{display:flex;align-items:center;gap:10px;white-space:nowrap;font-size:11px;color:#a8b3a6}.fight-picker select{max-width:250px;padding:6px 8px;background:#111c21;border:1px solid #6d8175;color:#ead7b2;font:inherit}.fight-picker select:disabled{opacity:.8}.fight-picker small{font-size:10px;color:#a8b3a6}.fat-typist-panel{position:absolute;z-index:30;left:50%;top:26%;transform:translate(-50%);width:min(760px,86vw);max-height:44vh;overflow:auto;padding:16px 20px;border:1px solid rgba(118,255,154,.7);border-radius:10px;background:#080f0df0;color:#d5d8d5;box-shadow:0 8px 32px #000b;text-align:center;pointer-events:auto}.fat-typist-panel[hidden]{display:none}.fat-typist-panel.fat-round-entry{background:transparent;border-color:transparent;box-shadow:none}.fat-title{display:block;margin-bottom:10px;color:#ffe34d;font-size:1.1rem}.fat-prompt{white-space:pre-wrap;text-align:left;line-height:1.7;font-family:ui-monospace,monospace}.fat-prompt .typed{color:#62ef8d}.fat-prompt .typo{color:#ff5b5b}.fat-input{width:min(100%,640px);margin:12px 0 8px;padding:9px;background:#111a17;border:1px solid #598365;color:#fff;font:inherit}.fat-input[hidden]{display:none}.fat-choices{display:flex;justify-content:center;gap:12px}.fat-choices[hidden]{display:none}.fat-choices button,.fat-submit{padding:7px 18px;color:#ecf5ec;background:#26392d;border:1px solid #6ad987;cursor:pointer}.fat-words{margin:10px auto;color:#a8ffbf;font:700 1.1rem ui-monospace,monospace}.fat-time-banner{position:absolute;z-index:40;left:50%;top:48%;width:min(960px,100%);transform:translate(-50%,-50%);pointer-events:none}.fat-time-banner[hidden]{display:none}.fat-word-input{position:fixed;left:-10000px;top:0;width:1px;height:1px;opacity:0;caret-color:transparent}.fat-quiz-controls{position:absolute;z-index:31;left:50%;top:12%;transform:translate(-50%);display:grid;grid-template-columns:minmax(0,1fr);gap:8px;width:min(620px,90vw);max-height:62vh;overflow-y:auto;box-sizing:border-box;padding:14px;color:#fff2c6;font-weight:700;pointer-events:auto;text-shadow:0 2px 4px #000;border:1px solid rgba(118,255,154,.7);border-radius:10px;background:#080f0df5}.fat-quiz-controls[hidden],.fat-duel-prompt[hidden]{display:none}.fat-quiz-question{display:block;padding:2px 4px 8px;color:#fff2c6;font-size:1rem;line-height:1.4;overflow-wrap:anywhere}.fat-quiz-controls button{width:100%;min-height:42px;padding:9px 12px;color:#ecf5ec;background:#26392d;border:1px solid #6ad987;cursor:pointer;text-align:left;white-space:normal;overflow-wrap:anywhere;line-height:1.35;font:inherit}.fat-duel-prompt{position:absolute;z-index:31;left:50%;top:14%;transform:translate(-50%);width:min(760px,84vw);max-height:110px;overflow:auto;color:#e4e8e4;font:14px/1.6 ui-monospace,monospace;text-shadow:0 2px 4px #000;pointer-events:none}.party-toggle,.fullscreen-toggle,.safe-area-probe,.rotate-overlay{display:none}.safe-area-probe{position:fixed;inset:0;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);visibility:hidden;pointer-events:none}html.touch,html.touch body{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}html.touch body{height:100vh;height:100dvh}html.touch input{-webkit-user-select:text;user-select:text}html.touch .shell{--party-panel-width: 0px;--safe-top: 0px;--safe-right: 0px;--safe-bottom: 0px;--safe-left: 0px;--thumb-left: 240px;--thumb-right: 300px;position:fixed;left:0;top:0;width:960px;height:calc(var(--screen-height, 640px) - 160px);overflow:clip;transform-origin:0 0;box-shadow:none}html.touch .game-surface,html.touch .hud{inset:-80px 0}html.touch .topbar{position:absolute;z-index:3;top:80px;left:0;right:0;height:56px;gap:14px;padding:4px 12px 4px 64px;background:linear-gradient(#182125ee,#18212500);border-bottom:0;box-shadow:none}html.touch .unit{width:220px}html.touch .portrait{width:40px;height:40px;background-size:160px 40px}html.touch .target-frame small{display:none}html.touch .options-controls{z-index:6;right:auto;left:0;bottom:80px;width:200px;transform:translate(-100%);transition:transform .15s ease-out}html.touch .party-panel.open~.options-controls{transform:none}html.touch .encounter-info,html.touch .fat-screen-exit{top:140px}html.touch .castbar{bottom:180px}html.touch .bottom-bar{bottom:80px;background:none;border-top:0;pointer-events:none}html.touch .combat-state,html.touch .connection>:not(.leave-run){visibility:hidden}html.touch .connection{pointer-events:auto}html.touch .party-panel{z-index:6;inset:80px auto 80px 0;width:200px;transform:translate(-100%);transition:transform .15s ease-out;pointer-events:auto;box-shadow:4px 0 16px #0009}html.touch .party-panel.open{transform:none}html.touch .party-heading{height:56px;padding:12px 20px}html.touch .party-area{max-height:calc(100% - 56px)}html.touch .party-toggle{display:block;position:absolute;left:100%;top:8px;width:52px;height:40px;padding:0;color:#e9e3d2;font-size:11px;letter-spacing:1px;background:#202b2eee;border:1px solid #c8a56177;border-left:0}html.touch .party-panel.open .party-toggle{background:#2c3a3e}html.touch .modal{z-index:7}@media(orientation:portrait){html.touch .rotate-overlay{position:fixed;z-index:100;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);background:#101619f2;text-align:center}}.rotate-icon{font-size:48px;color:#c4a56b}.rotate-overlay small{color:#94a399}.rotate-overlay .home-screen-hint{max-width:280px}.fullscreen-play{margin-top:8px;padding:12px 22px;color:#10171a;font-weight:700;background:#c4a56b;border:0}html.touch:not([data-fullscreen]) .fullscreen-toggle{display:block;position:fixed;z-index:55;left:var(--safe-left);top:calc(var(--safe-top) + 48px);width:40px;height:36px;padding:0;color:#e9e3d2;font-size:18px;background:#202b2eee;border:1px solid #c8a56177;border-left:0}.fullscreen-tip{position:fixed;z-index:60;left:calc(var(--safe-left) + 48px);top:calc(var(--safe-top) + 48px);max-width:min(280px,calc(100vw - 64px));padding:8px 10px;color:#e9e3d2;font-size:13px;line-height:1.4;background:#202b2ef2;border:1px solid #c8a56177}.fullscreen-tip[hidden]{display:none}.portrait.dark-elf-huntress,[data-class=dark_elf_huntress] .portrait{background-size:contain;background-position:center;background-repeat:no-repeat}.hud.test-area .door-status.gathering{top:auto;bottom:86px}.portrait.man-of-war,.portrait.terrorist,[data-class=terrorist] .portrait,[data-class=man_of_war] .portrait{background-size:contain;background-position:center;background-repeat:no-repeat}.gun-ammo{position:absolute;left:16px;bottom:94px;z-index:20;white-space:pre-line;padding:8px 12px;background:#111b20d9;border:1px solid #b4ae79;color:#fff1c6;font:700 16px/1.5 monospace;pointer-events:none;text-shadow:1px 1px 2px #000}.gun-ammo[hidden]{display:none}.ability.weapon-equipped{border-color:#a2ff78;box-shadow:inset 0 0 8px #8ff56866}.modal.character-picker{inset:0;background:#080c10ed;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.character-picker .modal-card.wide{position:relative;width:100%;height:100%;max-height:none;padding:0;overflow:hidden;border:0;background:radial-gradient(ellipse at 50% 45%,#3b4035,#182225 48%,#0b1118 85%)}.picker-heading{position:absolute;bottom:calc(75% + 12px);width:100%}.picker-heading h1{margin:5px 0;font-size:27px;color:#eddbad}.picker-heading small{color:#a9b6b1;font-size:11px}.lineup-stage{position:absolute;top:25%;height:50%;width:100%;border-top:1px solid #c0a46777;border-bottom:1px solid #c0a46777;background:linear-gradient(#17202180,#2b353370 60%,#42463b 83%,#182020)}.lineup-floor{position:absolute;inset:68% 0 0;background:repeating-linear-gradient(0deg,transparent 0 24px,#a5916322 25px 26px),linear-gradient(#625c4330,#0a1118);pointer-events:none}.class-lineup{position:absolute;inset:0;display:flex;align-items:end;gap:12px;padding:10px 42px 14px;overflow-x:auto;overflow-y:hidden;overscroll-behavior:contain;touch-action:pan-x;scrollbar-width:thin;scrollbar-color:#bc9b57 #111b20}.character-picker .class-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:end;flex:0 0 198px;width:198px;height:100%;max-height:296px;padding:0 0 10px;margin:0;gap:0;text-align:center;background:transparent;border:1px solid transparent;border-radius:3px;box-shadow:none;transition:background .15s,border-color .15s}.character-picker .class-card:before{content:"";position:absolute;bottom:79px;left:24px;right:24px;height:15px;border-radius:50%;background:#040908a0;box-shadow:0 0 14px #0008}.character-picker .class-card:hover,.character-picker .class-card:focus-visible{background:linear-gradient(transparent,#c5a7651f);border-color:#b8a06a77;outline:2px solid #d7bf8088;outline-offset:-3px}.character-picker .class-card.selected{border-color:#e6c87c;background:linear-gradient(#c3a4630a,#c3a46333);box-shadow:inset 0 -2px #e6c87c,0 0 18px #dfba5922}.character-picker .class-card.selected:before{background:#d2b46b55;box-shadow:0 0 20px #d2b46b88}.class-card canvas{display:block;width:194px;height:216px;position:relative;image-rendering:pixelated;flex-shrink:0;pointer-events:none}.character-picker .class-card-info{width:100%;min-height:62px;padding:0 5px}.character-picker .class-card strong{font-size:18px;color:#f0e0b8}.character-picker .class-card span{font-size:10px;line-height:14px;min-height:28px;color:#c0cbc3}.character-picker .class-card .class-count{font-size:10px;color:#9eafa8}.character-picker .lineup-prev,.character-picker .lineup-next{position:absolute;top:42%;z-index:2;width:32px;height:50px;padding:0;margin:0;font:32px Georgia,serif;color:#efd899;background:#111a20dc;border-color:#ad935b88}.lineup-prev{left:4px}.lineup-next{right:4px}.picker-actions{position:absolute;top:calc(75% + 14px);width:100%;display:flex;justify-content:center;gap:12px}.picker-actions [data-testid=enter-dungeon]{min-width:230px;background:linear-gradient(#695636,#3d3324);border-color:#d2b16c;color:#fff0c9}.character-picker .party-composition{position:absolute;top:calc(75% + 72px);width:100%;margin:0;padding:0 16px;border:0;background:transparent;font-size:11px;color:#aab6ad}.character-picker .party-composition small{display:block;margin-top:4px;font-size:10px}.player-frame .portrait.wizard,.party-frame .party-portrait.wizard{background-size:contain;background-position:center;background-repeat:no-repeat}.raid-dialogue{position:fixed;left:calc(50% + 100px);top:50%;transform:translate(-50%,-50%);z-index:2300;width:min(720px,82vw);padding:14px 18px;background:#120e1833;border:2px solid #8d6db2;color:#f4eaff;text-align:center;box-shadow:0 8px 35px #0008;text-shadow:0 1px 3px #000}.raid-dialogue b{color:#e0b8ff}.raid-dialogue p{margin:8px}.raid-dialogue button{display:block;width:100%;margin:5px 0;padding:8px;background:#31223d;color:#fff;border:1px solid #936fb2;text-shadow:none}.raid-dialogue button:hover:not(:disabled){background:#543568}.raid-dialogue small{color:#b9adc2}.raid-loot{position:fixed;right:18px;top:110px;z-index:2300;width:260px;padding:12px;background:#111820ee;border:2px solid #8c7a54;color:#eee}.raid-loot>b,.raid-loot>small{display:block;margin-bottom:8px}.raid-loot button{display:block;width:100%;margin:5px 0;padding:8px;color:#fff;background:#26303a;border:1px solid #75808a}.raid-loot button.common{border-color:#64c878}.raid-loot button.rare{border-color:#568eff}.raid-loot button.epic{border-color:#b767ee}.raid-loot button.godly{border-color:#ffd23e;color:#ffe58a}.raid-loot em{float:right}.raid-dialogue,.raid-loot{pointer-events:auto}.vampire-raid-frame{position:absolute;left:130px;top:86px;z-index:2200;width:700px;height:92px;padding:12px 16px;display:flex;justify-content:space-between;background:#11151acc;border:2px solid #8b6a42;pointer-events:auto}.vampire-raid-frame>div{width:470px}.vampire-raid-frame aside{display:flex;flex-direction:column;font:12px monospace;color:#e6d8bd}.raid-boss-health{position:relative;height:24px;margin-top:8px;background:#160b0b;border:1px solid #8c4b40}.raid-boss-health i{display:block;height:100%;background:linear-gradient(90deg,#71312b,#c45b45)}.raid-boss-health span{position:absolute;inset:0;text-align:center;font:12px/22px monospace}.raid-revive{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2400;padding:18px 28px;background:#180f22e8;border:2px solid #cf9cff;color:#fff;font:700 22px monospace;pointer-events:none}.player-frame.raid-leader:after{content:"♛";position:absolute;color:#f6d56a;font-size:22px;opacity:.72}.ai-party-panel{position:absolute;top:180px;right:16px;z-index:25;width:min(330px,calc(100% - 32px));max-height:280px;overflow-y:auto;padding:14px;border:1px solid #8972bb;border-radius:10px;background:#191524;color:#eee6ff;pointer-events:auto;box-shadow:0 8px 24px #0008}.ai-party-panel[hidden],.ai-warning[hidden]{display:none}.ai-party-panel label{display:inline-flex;align-items:center;gap:8px}.ai-party-panel select{padding:8px;background:#29223b;color:#fff}.ai-party-panel small{display:block;margin:10px 0}.ai-member{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:8px}.ai-party-panel button{min-height:36px;padding:6px 12px}.ai-party-panel button:disabled{opacity:.5}.ai-warning{position:absolute;left:22%;right:22%;top:118px;z-index:6;font-size:11px;text-align:center;color:#f5d391;pointer-events:none}html.touch .ai-party-panel{top:100px;right:12px;max-height:calc(100% - 150px)}html.touch .ai-party-panel button,html.touch .ai-party-panel select{min-height:44px}html.touch .ai-warning{left:16%;right:16%;top:72px;font-size:10px}.ai-party-panel button{background:#343b30;border:1px solid #66705e;color:#f3d38c;cursor:pointer}.ai-party-panel button:focus-visible,.ai-party-panel select:focus-visible{outline:2px solid #e4c790;outline-offset:2px}html.touch .game-surface{touch-action:none}html.touch .joystick-zone{position:absolute;inset:0 auto 0 0;width:var(--thumb-left, 50%);z-index:1;touch-action:none}html.touch .joystick{position:fixed;z-index:20;width:112px;height:112px;margin:-56px 0 0 -56px;border:2px solid #c8a56166;border-radius:50%;background:#0b121466;pointer-events:none;visibility:hidden}html.touch .joystick.active{visibility:visible}html.touch .joystick-knob{position:absolute;left:50%;top:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:#c8a561aa;box-shadow:0 2px 8px #0008}html:not(.touch) .touch-target{display:none}html.touch .actionbar{--arc-r: 118px;position:fixed;right:calc(10px + var(--safe-right, 0px));bottom:calc(10px + var(--safe-bottom, 0px));width:260px;height:260px;display:block;pointer-events:none;z-index:3;-webkit-user-select:none;user-select:none}html.touch .actionbar>button{position:absolute;pointer-events:auto;opacity:.82;transition:opacity .15s;touch-action:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}html.touch .actionbar.occluded>.ability:not(:active){opacity:.35}html.touch .actionbar>button:active{opacity:1}html.touch .actionbar .ability{width:60px;height:60px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#435257ee,#1d292eee)}html.touch .actionbar .ability .key,html.touch .actionbar .ability .ability-name{display:none}html.touch .actionbar .ability .ability-icon{top:50%;transform:translateY(-62%);font-size:26px}html.touch .actionbar .ability .cost{bottom:5px;font-size:9px}html.touch .actionbar .ability .cooldown{top:50%;transform:translateY(-50%)}html.touch .actionbar [data-slot="1"]{right:0;bottom:0;width:112px;height:112px;border-width:2px}html.touch .actionbar [data-slot="1"] .ability-icon{font-size:44px}html.touch .actionbar [data-slot="1"] .ability-name{display:block;bottom:22px;font-size:11px}html.touch .actionbar [data-slot="1"] .cost{bottom:10px}html.touch .actionbar [data-slot="2"]{left:56px;top:174px}html.touch .actionbar [data-slot="3"]{left:72px;top:115px}html.touch .actionbar [data-slot="4"]{left:115px;top:72px}html.touch .actionbar [data-slot="5"],html.touch .actionbar:has([data-slot="5"][hidden]) .taunt-control,html.touch .actionbar:has([data-slot="5"][hidden]) .roll-control{left:174px;top:56px}html.touch .actionbar .taunt-control,html.touch .actionbar .roll-control{left:40px;top:40px}html.touch .topbar .target-frame{margin-left:52px;pointer-events:auto}html.touch .actionbar .touch-target{position:fixed;top:8px;left:298px;width:44px;height:40px;opacity:.9;border:1px solid #8a7854;border-radius:0;background:#1d292edd;color:#d7bd83;font-size:20px;line-height:1}html.touch .actionbar [data-touch-action=clear-target]{left:576px}html.touch:has(.target-frame.empty) [data-touch-action=clear-target]{display:none}html.touch .actionbar .touch-target:active{border-color:#e3c58a;background:#435257}.ability-info{position:absolute;right:0;bottom:calc(100% + 8px);width:240px;padding:8px 10px;background:#0d1417f2;border:1px solid #c8a561aa;border-radius:6px;color:#e4dcc6;font-size:11px;line-height:1.45;pointer-events:none}.ability-info[hidden]{display:none}html.touch .target-frame.empty{visibility:hidden}html.touch .run-info .eyebrow,html.touch .room-code{display:none}html.touch .run-info{justify-content:center}html.touch .run-info b{font-size:16px}html.touch .topbar .bar{height:17px}html.touch .topbar .bar span{font-size:13px;line-height:15px}html.touch .topbar .mana{height:14px}html.touch .topbar .mana span{font-size:11px;line-height:12px}html.touch .staging{top:142px;left:50%;right:auto;transform:translate(-50%);display:flex;align-items:stretch;gap:8px;padding:6px;white-space:nowrap}html.touch .staging .lobby-invite{gap:8px}html.touch .staging .invite-link,html.touch .staging .fight-picker small{display:none}html.touch .staging .lobby-code{display:flex;align-items:center;padding:0 4px 0 6px;font-size:10px}html.touch .staging .lobby-code strong{padding:0 0 0 8px;font-size:20px}html.touch .staging button,html.touch .staging select{min-height:40px;padding:0 12px;font-size:14px}html.touch .staging .share-invite{min-height:40px}html.touch .staging .fight-picker{margin:0;padding:0 0 0 8px;border-top:0;border-left:1px solid #59614e}html.touch .staging .fight-picker label{gap:0;font-size:0}html.touch .staging .fight-picker select{max-width:230px}html.touch .joystick.rest{visibility:visible;opacity:.45;border-style:dashed;background:#0b121433}html.touch:has(.party-panel.open) .joystick.rest{visibility:hidden}html.touch .joystick.rest .joystick-knob{background:#c8a56155;box-shadow:none}html.touch .options-controls{display:flex;gap:8px}html.touch:not([data-fullscreen]) .options-controls .fullscreen-toggle{position:static;width:auto;height:auto;padding:6px;font-size:inherit;color:inherit;border:1px solid #6e806b}html.touch .fullscreen-tip{left:calc(var(--safe-left) + 12px);top:auto;bottom:calc(var(--safe-bottom) + 12px)}.hit-edge{display:none}html.touch .hit-edge{display:block;position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;box-shadow:inset 0 0 60px 16px #d0201acc}html.touch .hit-edge.low{animation:low-health 1.1s ease-in-out infinite}html.touch .hit-edge.hit{animation:hit-flash .35s ease-out}@keyframes hit-flash{0%{opacity:var(--hit, .6)}to{opacity:0}}@keyframes low-health{0%,to{opacity:.15}50%{opacity:.55}}html.touch .actionbar .ability.denied{animation:denied-shake .28s linear}html.touch .actionbar .ability.denied .cost{color:#ff6b5b}@keyframes denied-shake{20%{translate:-5px 0}40%{translate:5px 0}60%{translate:-3px 0}80%{translate:3px 0}}html.touch .actionbar .ability.ready-flash{animation:ready-flash .45s ease-out}@keyframes ready-flash{0%{opacity:1;box-shadow:0 0 #f3d88fee}to{box-shadow:0 0 0 14px #f3d88f00}}@media(prefers-reduced-motion:reduce){html.touch .actionbar .ability.denied{animation:none}html.touch .hit-edge.low{animation:none;opacity:.35}}html.touch .actionbar .battle-rez-control{left:0;top:110px}html.gamepad .actionbar .key[data-pad]:not([data-pad=""]),html.gamepad .cyber-transform-prompt strong[data-pad]:not([data-pad=""]){color:transparent}html.gamepad .cyber-transform-prompt strong[data-pad]{position:relative}html.gamepad .actionbar .key[data-pad]:not([data-pad=""]):after,html.gamepad .cyber-transform-prompt strong[data-pad]:not([data-pad=""]):after{content:attr(data-pad);position:absolute;inset:0;color:#9fe7a8;text-align:center}.share-invite,.fat-keyboard{display:none}html.touch body>.modal{position:fixed;z-index:50;inset:0;padding:calc(8px + var(--safe-top)) calc(8px + var(--safe-right)) calc(8px + var(--safe-bottom)) calc(8px + var(--safe-left));-webkit-user-select:none;user-select:none}html.touch body>.modal .modal-card{width:min(450px,100%);max-height:calc(100dvh - 16px - var(--safe-top) - var(--safe-bottom));padding:20px 18px}html.touch body>.modal .modal-card.wide{display:flex;flex-direction:column;width:min(880px,100%);padding:12px 14px}html.touch body>.modal .modal-card.wide h1{font-size:24px;margin:4px 0}html.touch body>.modal .modal-card.wide .party-composition{margin-top:4px}html.touch body>.modal button{min-height:44px}html.touch body>.modal .join-controls{flex-wrap:wrap}html.touch body>.modal .join-controls input{min-height:44px;font-size:16px}@media(orientation:landscape)and (max-height:500px){html.touch body>.modal .modal-card.wide .eyebrow,html.touch body>.modal .modal-card.wide .party-composition small{display:none}html.touch body>.modal .modal-card.wide h1{font-size:20px;margin:0}}html.touch .share-invite{display:inline-block;min-height:36px}html.touch .fat-input,html.touch .fat-word-input{font-size:16px}html.touch .fat-typist-panel{transition:translate .1s ease-out}html.touch .fat-word-input{left:50%;top:50%;pointer-events:none}html.touch .fat-keyboard{display:block;position:absolute;z-index:32;left:50%;top:460px;transform:translate(-50%);min-height:44px;padding:8px 22px;pointer-events:auto;color:#ecf5ec;background:#26392dee;border:1px solid #6ad987;border-radius:22px}html.touch .unit-buff{position:relative;pointer-events:auto}html.touch .unit-buff:before{content:"";position:absolute;inset:-8px -3px}.inspect-popover{position:fixed;z-index:60;max-width:min(280px,calc(100vw - 16px));padding:8px 10px;color:#ffe09c;background:#182326f2;border:1px solid #b99b61;box-shadow:0 6px 18px #000a;font-size:13px;line-height:1.4;pointer-events:none}.class-detail{display:none}html.touch body>.modal.character-picker{--detail-width: min(300px, 34%)}html.touch body>.modal.character-picker .modal-card.wide{display:block;width:100%;height:100%;max-height:none;padding:0}html.touch .character-picker .picker-heading,html.touch .character-picker .lineup-stage,html.touch .character-picker .picker-actions,html.touch .character-picker .party-composition{left:0;right:var(--detail-width);width:auto}html.touch .character-picker .class-detail{position:absolute;top:10px;right:10px;bottom:10px;display:block;width:calc(var(--detail-width) - 20px);overflow-y:auto;padding:8px 10px;text-align:left;background:#111d21cc;border:1px solid #586c6670}.class-detail h2{margin:0;color:#e2c07b;font:18px Georgia,serif}.class-detail>span{display:block;margin-bottom:6px;color:#b3c5af;font-size:11px}.class-detail>p{margin:12px 0;color:#abbab9;font-size:13px}.class-detail ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}.class-detail li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:6px;align-items:start}.class-detail-icon{font-size:16px;line-height:1.2}.class-detail b{display:block;color:#e9e3d2;font-size:12px}.class-detail small{display:block;color:#abbab9;font-size:11px;line-height:1.35}@media(orientation:landscape)and (max-height:500px){html.touch .character-picker .picker-heading{top:6px;bottom:auto}html.touch .character-picker .picker-heading .eyebrow,html.touch .character-picker .picker-heading small,html.touch .character-picker .party-composition{display:none}html.touch .character-picker .picker-heading h1{margin:0;font-size:20px}html.touch .character-picker .lineup-stage{top:40px;bottom:62px;height:auto}html.touch .character-picker .class-lineup{gap:6px;padding:6px 36px 4px}html.touch .character-picker .class-card{flex:0 0 132px;width:132px;max-height:none;padding-bottom:4px}html.touch .character-picker .class-card:before{bottom:50px}html.touch .character-picker .class-card canvas{width:128px;height:min(143px,calc(100% - 52px));object-fit:contain}html.touch .character-picker .class-card-info{min-height:0}html.touch .character-picker .class-card strong{font-size:14px}html.touch .character-picker .class-card span{display:-webkit-box;min-height:0;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}html.touch .character-picker .picker-actions{top:auto;bottom:8px}html.touch .character-picker .picker-actions [data-testid=enter-dungeon]{min-width:0}}
