:root{color-scheme:dark;--ink:#090d10;--paper:#e9e3d5;--muted:#a6acaf;--line:#54564e;--gold:#b89c61;--red:#9f2424;--blue:#4ac7e5;--green:#65c66b}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden}body{background:var(--ink);color:var(--paper);font:16px/1.45 system-ui,sans-serif}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--blue);outline-offset:4px}.title-screen{position:relative;width:100%;height:100%;background:#080c10;overflow:hidden}.title-art{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center}.start-button{position:absolute;left:50%;top:31.4%;transform:translateX(-50%);width:19.4vw;min-width:180px;height:7.1vh;min-height:42px;background:#090b0b;color:#eee9de;border:2px solid #d4c4a0;border-radius:5px;font-size:clamp(18px,2vw,35px);font-weight:800;box-shadow:0 2px 18px #000}.start-button:hover{background:#1d201b;box-shadow:0 0 30px #d7b86744}.start-button:active{transform:translateX(-50%) scale(.97)}
:root{font-synthesis:none}button{touch-action:manipulation}svg{width:24px;height:24px;flex-shrink:0}button:disabled{cursor:default;opacity:.36}input[type=checkbox]{accent-color:#c3a36b;width:21px;height:21px;flex:none;cursor:pointer}input[type=range]{accent-color:#b89762;width:180px;max-width:48%}select,input:not([type=checkbox]):not([type=range]){color:var(--paper);background:#10191e;border:1px solid #736959;border-radius:2px;padding:10px 14px}p{margin:0 0 1em;color:#b9bcb8}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;margin:0;color:var(--paper);line-height:1.15}h1{font-size:clamp(28px,3.3vw,48px);font-weight:700}h2{font-size:24px}h3{font-size:20px}button h2,button h3{color:inherit}button{transition:background-color .16s,border-color .16s,box-shadow .16s,transform .16s}button:focus-visible{z-index:2}dialog::backdrop{background:#02070b91;backdrop-filter:blur(5px)}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.title-stage{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100vw,177.68vh);height:max(100vh,56.28vw)}.title-stage .title-art{position:relative;display:block;width:100%;height:100%;object-fit:fill}.title-stage .start-button{top:31.3%;width:19.4%;height:7.2%;min-height:0;min-width:0;font-size:clamp(22px,2.05vw,38px)}.title-stage::after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 130px #0004}.title-stage .start-button{z-index:1}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:45px;padding:11px 28px;border:1px solid #8a7b5d;border-radius:2px;background:linear-gradient(135deg,#252b29,#131b20);box-shadow:inset 0 0 0 2px #12191c,0 4px 8px #0003;font-weight:650;letter-spacing:.01em}.button:hover:not(:disabled){border-color:#d1b782;background:#343c37}.button.primary{background:linear-gradient(135deg,#c3a675,#a58757);border-color:#deca9a;color:#10171a;text-shadow:0 1px #e6d1a355;box-shadow:inset 0 0 0 2px #8e754c,0 4px 15px #0006}.button.primary:hover:not(:disabled){background:#d0b581}.button.quiet{background:#0b1419bb;border-color:#576064;box-shadow:none;color:#cad0ce}.button.danger{color:#f4cbc1;border-color:#955347;background:#6e35283f}.eyebrow{text-transform:uppercase;font-size:12px;letter-spacing:.18em;font-weight:700;color:#b69e73;display:block}.secondary-copy{font-size:14px;color:#a6adaf;margin:14px 0}.icon-button{background:#10191bc9;border:1px solid #717770;border-radius:50%;width:46px;height:46px;display:grid;place-items:center;color:#b8bdbb}.icon-button:hover{color:#e9ece8;background:#323b3d}.gear{position:absolute;right:clamp(14px,2.3vw,40px);top:clamp(12px,2.5vh,24px);z-index:12}.menu-screen{position:relative;height:100%;width:100%;isolation:isolate;overflow:auto}.menu-art{position:fixed;inset:-20px;background:linear-gradient(90deg,#06101788,#06101788),url('/assets/home.png') center 62%/cover;filter:blur(14px);opacity:.4;z-index:-3;transform:scale(1.04)}.menu-vignette{position:fixed;inset:0;background:radial-gradient(ellipse at 50% 30%,#1d292633,transparent 55%),linear-gradient(0deg,#080e13f0,#080f13a6);z-index:-2}.menu-content{min-height:100%;padding:52px 5vw 36px;display:flex;flex-direction:column;align-items:center;justify-content:center}.menu-content::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,#8a382c55,transparent);pointer-events:none}.setup-panel{width:min(780px,100%);padding:38px 42px;background:linear-gradient(135deg,#202a2cce,#0e171dda);border:1px solid #726b59;box-shadow:0 25px 100px #0008,inset 0 0 0 4px #070e13;position:relative}.setup-panel::after,.lobby-wrap::after{content:'';position:absolute;left:18px;right:18px;bottom:0;height:3px;background:#853c2e88}.setup-panel h1{margin-bottom:30px}.terms-copy{background:#060e1480;border:1px solid #46514e;padding:26px;max-height:45vh;overflow:auto}.terms-copy h2{font-size:22px;margin-bottom:20px}.terms-copy p:last-child{margin:0}.terms-footer{display:flex;gap:30px;align-items:center;justify-content:space-between;margin-top:28px}.check-label{display:flex;gap:12px;align-items:center;font-size:14px;color:#d2d4cb}.game-title-small{font-family:Impact,'Arial Narrow',sans-serif;font-size:clamp(36px,6vw,88px);line-height:1.1;text-align:center;letter-spacing:.01em;text-shadow:3px 6px 0 #060c12;position:relative;padding-bottom:16px;margin-bottom:60px}.game-title-small::after{content:'';position:absolute;bottom:0;left:20%;right:20%;height:4px;background:#8e3229;transform:rotate(-1deg)}.choice-pair{display:flex;align-items:stretch;justify-content:center;gap:26px}.choice-tile{width:260px;min-height:150px;border:1px solid #655e4f;background:linear-gradient(150deg,#263033ee,#10191bd9);box-shadow:inset 0 0 0 4px #080f13,0 12px 30px #0004;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:24px;color:#ddd7c8;font:700 26px Georgia}.choice-tile svg{width:62px;height:62px;color:#ac9c7d}.choice-tile:hover{border-color:#c2a66a;background:#35403cf0;transform:translateY(-3px)}.mode-choices .choice-tile{min-height:130px}.center-footer{margin-top:60px}.compact-panel{max-width:450px;text-align:center}.compact-panel .button{width:100%;margin:8px 0}.compact-panel h1{font-size:36px}.stack-actions{display:flex;flex-direction:column;margin-bottom:28px;gap:12px}.friend-code{width:100%;height:66px;text-align:center;font-size:28px!important;letter-spacing:.26em;text-transform:uppercase}.lobby-wrap{position:relative;max-width:1100px;width:100%;background:linear-gradient(135deg,#192327db,#0b1419dc);border:1px solid #5a6056;padding:28px 36px;box-shadow:inset 0 0 0 4px #071116,0 25px 80px #0006}.lobby-header{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;margin-bottom:30px;gap:24px}.lobby-header h1{text-align:center;font-size:32px}.lobby-header>.button{justify-self:start}.code-label{text-align:right;font-size:12px;text-transform:uppercase;letter-spacing:.13em;color:#a9aaa2}.code-label strong{display:block;font-family:monospace;font-size:22px;letter-spacing:.22em;color:#cfbd95;margin-top:4px}.lobby-main{display:flex;align-items:center;justify-content:center;gap:30px}.player-panel{display:flex;flex:1;max-width:740px;min-height:360px;background:#0d181c;border:1px solid #4e594f;box-shadow:inset 0 0 60px #0004}.portrait{background-image:url('/assets/characters.png');background-size:300% 200%;background-position:var(--portrait-x) var(--portrait-y);background-repeat:no-repeat}.lobby-portrait{width:46%;min-width:230px;min-height:360px;background-size:310% 204%;mask-image:linear-gradient(90deg,black 82%,transparent 100%)}.empty-portrait{width:40%;min-width:200px;display:grid;place-items:center;background:radial-gradient(ellipse at center,#263a3780,#101a1e);color:#788783;font:24px Georgia;letter-spacing:.05em}.player-summary{padding:38px 26px;display:flex;flex-direction:column;justify-content:center;gap:12px}.player-summary h2{font-size:30px}.player-summary>p{font-size:14px;margin-bottom:14px}.player-summary .button{font-size:14px;padding:12px 20px;white-space:nowrap}.player-summary .eyebrow{color:#8d9b94}.player-slots{width:28%;min-width:190px}.player-slot{padding:25px 22px;margin-bottom:12px;border:1px solid #455450;display:flex;flex-direction:column;gap:14px;background:#1622278c}.player-slot>span{font-family:Georgia;font-size:22px}.lobby-footer{display:flex;justify-content:space-between;align-items:center;margin-top:32px}.difficulty-toggle{display:flex;align-items:center;gap:12px;border:0;color:#bcbeb5;background:none;font-size:14px}.difficulty-toggle strong{font-size:17px;text-transform:capitalize;color:#ddc59b;border:1px solid #7c765e;min-width:88px;padding:8px 18px;background:#34433135}.character-screen .menu-content{padding-top:36px;padding-bottom:26px}.character-select{width:min(1160px,100%)}.character-select>h1{text-align:center;margin-bottom:25px}.character-grid{display:flex;flex-direction:column;gap:14px}.roster-row{display:grid;grid-template-columns:86px 1fr 1fr;gap:16px;align-items:stretch}.role-label{font-size:12px;text-transform:uppercase;letter-spacing:.18em;font-weight:750;display:flex;align-items:center;color:#929e9d;writing-mode:vertical-rl;transform:rotate(180deg);justify-content:center;margin:auto;width:28px;border-left:1px solid #79807044}.character-card{height:clamp(130px,18vh,190px);padding:0;display:flex;align-items:stretch;text-align:left;border:1px solid #525c56;background:linear-gradient(100deg,#162024,#1b272b);overflow:hidden;position:relative;box-shadow:inset 0 0 0 3px #070f1444}.character-card::after{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--character-color);opacity:.65}.character-card .portrait{width:41%;flex:none;opacity:.93;mask-image:linear-gradient(90deg,#000 78%,transparent);background-size:305% 208%}.character-card .card-copy{display:flex;flex-direction:column;justify-content:center;padding:18px 20px 18px 8px;gap:7px}.character-card h2{font-size:clamp(18px,1.55vw,26px);line-height:1.12}.character-card span{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--character-color)}.character-card p{font-size:13px;line-height:1.4;margin:3px 0 0;color:#99a6a6;max-width:270px}.character-card:hover,.character-card.selected{border-color:var(--character-color);background:#27332f;box-shadow:0 0 28px #0005}.character-card:hover .portrait{opacity:1}.selection-footer{display:flex;justify-content:space-between;margin-top:28px}.difficulty-screen{max-width:1060px;width:100%}.difficulty-screen>h1{text-align:center;margin-bottom:40px}.difficulty-options{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.difficulty-card{border:1px solid #555f59;background:#192629b5;text-align:left;padding:40px 30px;min-height:220px}.difficulty-card h2{font-size:32px;margin-bottom:22px}.difficulty-card p{line-height:1.7}.difficulty-card.selected{border-color:#c1aa77;background:linear-gradient(135deg,#464639aa,#202a2b);box-shadow:inset 0 3px #b69962}.game-dialog{padding:34px 38px;width:min(680px,calc(100vw - 40px));max-height:calc(100dvh - 48px);border:1px solid #837254;color:#e3dfd2;background:linear-gradient(135deg,#202b2de8,#10191eea);box-shadow:0 20px 120px #000c,inset 0 0 0 3px #050d1399;overflow:auto}.game-dialog h1{margin-bottom:25px}.game-dialog h2{margin-bottom:16px}.game-dialog p{line-height:1.6}.game-dialog .button.quiet{margin-top:22px}.game-dialog.wide{width:min(1030px,calc(100vw - 60px));padding:0}.character-detail{display:grid;grid-template-columns:35% 65%;max-height:80vh;overflow:hidden}.detail-portrait-wrap{background:radial-gradient(ellipse at bottom,#78745366,#101b22);position:relative;overflow:hidden;border-right:1px solid #7a766033}.detail-portrait{height:100%;width:100%;background-size:360% 210%;opacity:.84;mask-image:linear-gradient(0deg,transparent,#000 20%,#000 85%,transparent);position:sticky;top:0}.detail-main{padding:35px 34px;overflow:auto}.detail-main>.eyebrow{color:var(--character-color);margin-bottom:10px}.detail-main>h1{font-size:34px;margin:0 0 16px}.detail-main>p{font-size:14px}.passive{border-left:2px solid var(--character-color);padding:12px 18px;margin:24px 0;background:#354b4229}.passive h3{margin-top:4px;color:var(--character-color)}.passive p{margin:8px 0 0;font-size:14px}.kit-list{display:grid;grid-template-columns:1fr 1fr;gap:20px 25px}.kit-list>div:last-child{grid-column:1/-1;padding-top:15px;border-top:1px solid #74746455}.kit-list h3{font-size:20px;margin-top:5px}.kit-list p{font-size:13px;margin:8px 0 0;line-height:1.5}.kit-list .eyebrow{color:#889e9c;font-size:11px;letter-spacing:.13em}.detail-main footer{display:flex;justify-content:space-between;align-items:center;margin-top:22px}.detail-main footer .button{margin:0}.pause-dialog{background:rgba(15,22,26,.5);width:380px;padding:34px}.pause-menu{display:flex;flex-direction:column;gap:12px}.pause-menu h1{text-align:center;margin:0 0 16px}.pause-menu .button.quiet{margin-top:8px}.settings-panel{display:flex;flex-direction:column;gap:13px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #73847733;min-height:50px}.setting-row span{font-size:15px}.settings-panel h1{margin-bottom:10px}.settings-panel>.button.quiet{align-self:flex-start;margin-top:20px}.bindings-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.key-bind{font-family:monospace;min-width:55px;background:#0c151d;color:#decca6;padding:8px 10px;border:1px solid #746d5a;text-transform:uppercase}.dialog-actions{display:flex;align-items:center;justify-content:space-between}.dialog-actions .button.quiet{margin:0}.help-panel>h1{margin:8px 0 26px}.help-body{min-height:230px}.help-lead{font-family:Georgia;font-size:28px;color:#d3c8ac}.role-explanations{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;border-top:1px solid #59665b;margin-top:30px;padding-top:22px}.role-explanations h3{color:#c5af83}.role-explanations p{font-size:14px;margin-top:8px}.help-pages{display:flex;justify-content:center;gap:10px;margin-top:20px}.page-dot{width:28px;height:28px;border:1px solid #5c6761;background:#1c292b;color:#9eaaa4;font:12px system-ui;border-radius:50%}.page-dot.selected{background:#bea16b;border-color:#debd82;color:#10191d}.control-tabs{display:flex;gap:10px;margin-bottom:25px}.control-tabs .button{padding:10px 20px;font-size:14px}.control-tabs .active{border-color:#ccb07b;background:#9d844744}.control-list p{display:flex;align-items:center;gap:15px;font-size:15px;margin:0 0 12px}kbd{font-family:system-ui;font-size:11px;font-weight:700;background:#111b22b3;color:#d6c597;border:1px solid #71756180;border-bottom-width:2px;border-radius:2px;padding:3px 5px;min-width:21px;text-align:center;display:inline-block}.control-list kbd{min-width:55px;font-size:13px}.stat-names{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin-bottom:25px}.stat-names span{font-size:14px;border-bottom:1px solid #5d6c5b40;padding:5px 0}.results-panel{width:min(660px,100%);text-align:center}.results-panel>h1{font-size:clamp(60px,9vw,108px);color:#dbc597;text-shadow:2px 5px #060a0d;letter-spacing:.09em}.results-panel>h2{margin:20px 0 25px;color:#c2c2b3}.run-stats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #78786680;margin-bottom:30px}.run-stats>div{display:flex;align-items:center;justify-content:space-between;text-align:left;padding:16px 20px;border-bottom:1px solid #5d665f55;gap:20px}.run-stats span{font-size:14px;color:#9eaba7}.run-stats strong{font-family:Georgia;font-size:23px;color:#d6c79f}.game-surface{position:relative;width:100%;height:100%;overflow:hidden;touch-action:none;user-select:none}.game-surface canvas{display:block;width:100%;height:100%;cursor:crosshair}.hud{position:absolute;inset:0;pointer-events:none}.hud button{pointer-events:auto}.timer{position:absolute;top:22px;left:50%;transform:translateX(-50%);font:600 35px/1.15 Georgia;letter-spacing:.035em;color:#e6e0cf;text-shadow:0 3px 4px #000b;background:linear-gradient(90deg,#0a111800,#0a1118cb 15%,#0a1118cb 85%,#0a111800);padding:6px 32px;border-bottom:1px solid #ac977260;min-width:158px;text-align:center}.health{position:absolute;bottom:109px;left:50%;transform:translateX(-50%);height:23px;width:340px;display:flex;border:1px solid #889380;background:#0b171deb;padding:3px;box-shadow:0 0 0 2px #080e12,0 5px 16px #0008}.health-fill{height:100%;background:linear-gradient(#6e9e57,#457c48)}.shield-fill{height:100%;background:linear-gradient(#58b2c3,#307d9b)}.health strong{position:absolute;inset:0;text-align:center;color:#f0eddf;font:650 13px/22px system-ui;text-shadow:0 1px 3px black}.ability-hud{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);display:flex;gap:14px;align-items:center}.ability{width:58px;height:58px;border-radius:50%;background:radial-gradient(circle at 40% 25%,#53684f,#1c372c 65%);color:#b6d699;border:2px solid #657b57;box-shadow:0 0 0 3px #0c1419,0 0 0 4px #56615088,0 5px 18px #0008;position:relative;display:grid;place-items:center}.ability svg{width:30px;height:30px}.ability kbd{position:absolute;bottom:-17px;left:50%;transform:translateX(-50%)}.ability.ultimate{width:67px;height:67px;background:radial-gradient(circle at 30% 20%,#8d7643,#534523 70%);color:#eac585;border-color:#bca16a;box-shadow:0 0 0 3px #111718,0 0 0 4px #6d633eaa,0 5px 18px #0008}.ability.unavailable{filter:grayscale(1);color:#777f7d;background:#233135}.ability.unavailable svg{opacity:.24}.ability .cooldown{position:absolute;font:bold 20px Georgia;color:#ece5d4}.ability.unavailable .cooldown{color:#dbdfd9}.ability:hover:not(.unavailable){filter:brightness(1.2)}.utility{position:absolute;left:30px;bottom:30px;width:68px;height:48px;background:linear-gradient(130deg,#56335f,#241c35);border:1px solid #a16fb6;box-shadow:0 0 0 3px #0b131a,0 5px 20px #0009;color:#c9a2df;display:grid;place-items:center}.utility svg{width:28px;height:28px}.utility.empty{opacity:.45}.utility kbd{position:absolute;bottom:-10px;right:-10px}.utility>span{position:absolute;left:78px;bottom:10px;font-size:12px;white-space:nowrap;color:#c3afd0;text-shadow:0 2px #000}.ammo{position:absolute;right:30px;bottom:26px;min-width:180px;background:#080f17b9;border:1px solid #6d706050;padding:10px 16px 8px;text-align:right;box-shadow:0 4px 15px #0004;color:#e2dccb}.ammo strong{font-family:Georgia;font-size:27px;line-height:1.1;display:block;letter-spacing:.03em}.ammo>span{display:block;font-size:12px;color:#b3b6a6;margin-top:5px}.ammo>small{display:block;font-size:12px;color:#d6b575;min-height:16px;margin-top:4px}.notifications{position:absolute;left:28px;top:25px;width:300px;max-width:26vw;display:flex;flex-direction:column;gap:14px}.notice{padding:9px 14px 11px;border-left:2px solid #ae8e4d;background:linear-gradient(90deg,#0b171fde,#0b171f00);text-shadow:0 1px 3px #0009}.notice strong{font-size:14px;font-weight:650;display:block;color:#d7c69c}.notice span{font-size:12px;color:#abb5ae;display:block;margin-top:3px}.xp-feedback{position:absolute;top:39%;left:50%;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;gap:6px;font-family:Georgia;color:#c2dcd0;text-shadow:0 2px 3px #000}.xp-feedback small{display:block;text-align:center;letter-spacing:.16em;font:9px system-ui;margin-top:3px}.encounter{position:absolute;top:83px;left:50%;transform:translateX(-50%);font:14px Georgia;color:#ceb995;text-shadow:1px 2px 3px black;display:flex;gap:15px}.encounter span{color:#e0dac8;font-family:system-ui;font-size:12px}.downed{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);text-align:center;color:#dbcaa6}.downed strong{font:28px Georgia;display:block}.downed span{font:54px Georgia;display:block}.rotate-gate{display:none}.upgrade-dialog{width:min(870px,calc(100vw - 30px));border-color:#908465;text-align:center;background:linear-gradient(150deg,#1b272af9,#0e191ef9);overflow:auto}.upgrade-panel>.eyebrow{color:#9bb7a5}.upgrade-panel>h1{margin-top:12px}.upgrade-panel.premium>.eyebrow{color:#dfb85f}.upgrade-panel.premium>h1{color:#e4c891}.upgrade-choices{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:25px}.upgrade-card{display:flex;flex-direction:column;border:1px solid #637869;background:#1d312c33;min-height:275px}.premium .upgrade-card{border-color:#a78c55;background:#b1904614}.upgrade-pick{border:0;flex:1;width:100%;background:none;display:flex;flex-direction:column;align-items:center;padding:24px 26px 15px}.upgrade-pick:hover{background:#638a5733}.upgrade-mark{font:38px Georgia;color:#bdd295;display:flex;align-items:center;justify-content:center;width:60px;height:60px;border:1px solid #798b67;background:#64875e22;transform:rotate(-4deg);margin-bottom:24px}.premium .upgrade-mark{color:#d5b778;border-color:#a9905a}.upgrade-card h2{font-size:26px;margin:0 0 16px}.upgrade-card p{font-size:14px;line-height:1.6;margin:0;color:#a8b9ae}.upgrade-card .reroll{align-self:center;margin:14px 0 22px;font-size:13px;min-height:34px;padding:7px 30px;border-color:#557064;box-shadow:none}.objective-list>div{display:flex;gap:20px;justify-content:space-between;padding:12px 0;border-bottom:1px solid #627b5c44;font-size:14px}.objective-list span{color:#c6b97b}.notification-list{max-height:33vh;overflow:auto;margin-top:25px}.notification-list p{font-size:14px}.notification-list strong{color:#b6bd9c}.dev-bar{position:absolute;bottom:140px;left:50%;transform:translateX(-50%);width:min(680px,90vw);display:flex;align-items:center;gap:12px;padding:13px 17px;background:#061015f2;border:1px solid #537762;box-shadow:0 10px 50px #0009;flex-wrap:wrap}.dev-bar label{font:12px monospace;color:#a3b4a1;text-transform:uppercase}.dev-bar input{flex:1;min-width:120px;font:14px monospace!important;border:0!important;background:#1a2927!important}.dev-bar button{background:none;border:0;font-size:24px;color:#b2bfb5}.dev-bar pre{width:100%;margin:0;max-height:32vh;overflow:auto;color:#a8c3b2;font:12px/1.7 monospace;white-space:pre-wrap}.joystick{position:absolute;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,#1b527e50 20%,#09293dd9 65%,#54799560 68%,#0b192ce8 72%);border:2px solid #708491aa;box-shadow:0 0 0 4px #07131baa,0 10px 20px #0005;pointer-events:auto;touch-action:none;display:grid;place-items:center}.stick-knob{height:60px;width:60px;border-radius:50%;background:linear-gradient(145deg,#446987,#1c3b50);border:2px solid #83949b88;box-shadow:0 2px 12px #000a;pointer-events:none}.move-stick{bottom:32px;left:34px}.swap-control{position:absolute;right:202px;bottom:35px;width:49px;height:49px;border-radius:50%;background:#17262ae8;border:1px solid #8d979080;color:#d4d8c7;box-shadow:0 0 0 3px #06121988;display:grid;place-items:center}.notification-button{position:absolute;left:26px;top:18px;color:#e2b857;background:#1d201cb8;border:1px solid #938450;border-radius:9px;width:50px;height:50px;display:grid;place-items:center;box-shadow:0 3px 20px #0005}.notification-button>svg{width:34px;height:34px}.notification-button b{position:absolute;right:-7px;top:-8px;min-width:21px;height:21px;padding:1px 5px;background:#ba3831;border:1px solid #f2aba0;border-radius:50%;font:bold 12px/18px system-ui;color:#fff}.notification-button.has-new{animation:notify-shake .5s 1}@keyframes notify-shake{0%,100%{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}.mobile-game .ability-hud{position:static;transform:none}.mobile-game .ability{position:absolute;width:57px;height:57px}.mobile-game .ability-one{right:195px;bottom:155px}.mobile-game .ability-two{right:127px;bottom:212px}.mobile-game .ultimate{right:44px;bottom:214px;width:67px;height:67px}.mobile-game .ability kbd,.mobile-game .utility kbd{display:none}.mobile-game .utility{left:auto;right:28px;bottom:auto;top:93px;width:56px;height:46px}.mobile-game .utility>span{display:none}.mobile-game .health{bottom:76px;width:30%;max-width:340px;min-width:190px;height:22px}.mobile-game .health strong{font-size:12px;line-height:21px}.mobile-game .ammo{right:auto;left:50%;transform:translateX(-50%);bottom:20px;min-width:190px;width:30%;max-width:340px;padding:7px 12px;line-height:1;text-align:center}.mobile-game .ammo strong{font-size:24px}.mobile-game .ammo>span{display:none}.mobile-game .ammo small{font-size:11px;line-height:1.3;min-height:13px}.mobile-game .timer{top:14px;font-size:28px;padding:7px 26px;min-width:142px}.mobile-game .gear{top:19px;right:28px}.mobile-game .encounter{top:67px;font-size:12px}.mobile-game .xp-feedback{top:36%}.mobile-game .xp-feedback>div{font-size:15px!important}
@media(min-width:1800px){.title-stage .start-button{font-size:2vw}}@media(max-width:1000px){.roster-row{grid-template-columns:35px 1fr 1fr;gap:12px}.character-card .card-copy{padding:14px 12px 14px 4px}.character-card p{font-size:12px}.character-card span{font-size:11px}.lobby-wrap{padding:25px}.lobby-header{gap:15px}.lobby-header h1{font-size:27px}.player-summary{padding:25px 16px}.lobby-portrait{min-width:180px}.player-summary h2{font-size:25px}.lobby-header .button{font-size:13px;padding:10px 15px}.lobby-main{gap:18px}.kit-list{gap:17px}.game-title-small{margin-bottom:45px}}
@media(max-height:680px){.menu-content{padding:30px 4vw 22px}.setup-panel{padding:27px 32px}.setup-panel h1{margin-bottom:20px}.terms-copy{padding:20px;max-height:43vh}.terms-footer{margin-top:20px}.game-title-small{font-size:50px;margin-bottom:35px}.choice-tile{min-height:130px;width:220px;gap:17px}.choice-tile svg{width:46px;height:46px}.center-footer{margin-top:30px}.lobby-header{margin-bottom:22px}.player-panel{min-height:260px}.lobby-portrait{min-height:260px}.lobby-footer{margin-top:24px}.character-screen .menu-content{padding:25px 3vw 18px}.character-select>h1{font-size:28px;margin-bottom:18px}.character-grid{gap:10px}.character-card{height:clamp(84px,17vh,135px)}.character-card p{display:none}.selection-footer{margin-top:18px}.character-detail{max-height:85vh}.detail-main{padding:24px}.difficulty-card{min-height:170px;padding:28px 24px}.difficulty-screen>h1{margin-bottom:25px}.difficulty-card p{font-size:14px}.game-dialog{padding:25px 30px}.game-dialog h1{font-size:30px}.upgrade-card{min-height:235px}.upgrade-mark{margin-bottom:15px;width:45px;height:45px;font-size:29px}.upgrade-card h2{font-size:23px}.upgrade-pick{padding:18px 20px 12px}.help-body{min-height:170px}.help-body p{font-size:14px}.help-lead{font-size:24px!important}.mobile-game .ability-two{right:115px;bottom:184px}.mobile-game .ultimate{bottom:170px}.mobile-game .ability-one{right:178px;bottom:125px}.mobile-game .joystick{width:125px;height:125px}.mobile-game .stick-knob{width:52px;height:52px}.mobile-game .swap-control{right:176px}.mobile-game .utility{top:79px}}
@media(max-height:460px) and (orientation:landscape){.menu-content{padding:22px 5vw 16px}.menu-screen>.gear{width:34px;height:34px;top:12px;right:14px}.menu-screen>.gear svg{width:20px}.button{min-height:36px;padding:7px 22px;font-size:14px}.setup-panel{padding:20px 26px}.setup-panel h1{font-size:28px;margin-bottom:15px}.terms-copy{max-height:42vh;padding:17px}.terms-copy h2{font-size:20px;margin-bottom:15px}.terms-copy p{font-size:13px}.terms-footer{margin-top:16px}.check-label{font-size:12px;gap:8px}.game-title-small{font-size:42px;margin-bottom:28px}.choice-tile{min-height:103px;width:205px;padding:18px;gap:10px;font-size:23px}.choice-tile svg{width:40px;height:40px}.mode-choices .choice-tile{min-height:95px}.center-footer{margin-top:23px}.lobby-wrap{max-width:870px;padding:16px 24px}.lobby-header{margin-bottom:15px}.lobby-header h1{font-size:25px}.player-panel{min-height:175px;max-height:190px}.lobby-portrait{min-height:175px;min-width:160px;width:35%}.empty-portrait{min-width:140px;font-size:22px}.player-summary{padding:15px;gap:6px}.player-summary h2{font-size:22px}.player-summary>p{font-size:12px;margin-bottom:6px}.player-summary .button{font-size:12px;padding:7px 16px}.lobby-footer{margin-top:16px}.code-label{font-size:10px}.code-label strong{font-size:17px}.player-slot{padding:9px 15px;margin-bottom:6px;gap:5px;flex-direction:row;align-items:center;justify-content:space-between}.player-slot>span{font-size:16px}.player-slots .secondary-copy{font-size:11px;margin:10px 0 0}.character-screen .menu-content{padding:19px 4vw 15px}.character-select>h1{font-size:24px;margin-bottom:15px}.roster-row{grid-template-columns:28px 1fr 1fr;gap:12px}.character-grid{gap:8px}.character-card{height:66px}.character-card .portrait{width:30%;background-size:305% 202%}.character-card .card-copy{padding:6px 12px 6px 3px;gap:3px}.character-card h2{font-size:18px}.character-card span{font-size:10px}.role-label{font-size:10px;letter-spacing:.1em}.selection-footer{margin-top:15px}.detail-main>h1{font-size:26px}.detail-main{padding:20px}.detail-main>p{font-size:13px}.detail-main>h1{margin-bottom:12px}.kit-list h3{font-size:18px}.game-dialog{padding:21px 26px;max-height:calc(100dvh - 24px)}.game-dialog h1{font-size:28px;margin-bottom:16px}.pause-dialog{width:340px}.pause-menu{gap:8px}.pause-menu .button{min-height:35px}.pause-menu h1{font-size:27px;margin:0 0 7px}.pause-menu .button.quiet{margin-top:8px}.settings-panel{gap:4px}.setting-row{padding:7px 0;min-height:37px}.settings-panel h1{margin-bottom:9px}.settings-panel>.button.quiet{margin-top:10px}.game-dialog p{font-size:14px}.help-body{min-height:150px}.help-panel>h1{margin:7px 0 18px}.role-explanations{margin-top:18px;padding-top:17px}.help-pages{margin-top:14px}.help-panel>.button.quiet{margin-top:14px}.difficulty-card{min-height:155px;padding:24px 22px}.difficulty-screen>h1{font-size:28px;margin-bottom:20px}.difficulty-card h2{font-size:26px;margin-bottom:12px}.difficulty-card p{font-size:13px;margin:0}.upgrade-panel>h1{font-size:28px;margin-top:6px;margin-bottom:15px}.upgrade-choices{margin-top:10px;gap:16px}.upgrade-card{min-height:190px}.upgrade-pick{padding:15px 16px 5px}.upgrade-card h2{font-size:22px;margin-bottom:11px}.upgrade-mark{display:none}.upgrade-card p{font-size:13px;line-height:1.5}.upgrade-card .reroll{margin:10px 0 12px;min-height:28px;padding:4px 24px}.mobile-game .joystick{width:112px;height:112px;bottom:27px}.mobile-game .move-stick{left:29px}.mobile-game .stick-knob{width:46px;height:46px}.mobile-game .ability{width:47px;height:47px}.mobile-game .ability svg{width:25px;height:25px}.mobile-game .ability-one{right:152px;bottom:115px}.mobile-game .ability-two{right:110px;bottom:174px}.mobile-game .ultimate{right:37px;bottom:169px;width:58px;height:58px}.mobile-game .swap-control{right:153px;bottom:29px;width:39px;height:39px}.mobile-game .utility{right:24px;top:69px;height:40px;width:50px}.mobile-game .gear{width:39px;height:39px;right:30px;top:16px}.mobile-game .notification-button{width:42px;height:42px;left:23px;top:14px}.mobile-game .notification-button>svg{width:29px;height:29px}.mobile-game .timer{top:11px;font-size:26px;min-width:130px;padding:5px 23px}.mobile-game .health{bottom:69px;width:29%;min-width:175px}.mobile-game .ammo{bottom:18px;width:29%;min-width:175px;padding:6px 12px}.mobile-game .ammo strong{font-size:22px}.mobile-game .encounter{top:56px;font-size:11px}.mobile-game .ability .cooldown{font-size:16px}.results-panel>h1{font-size:55px}.results-panel>h2{font-size:20px;margin:13px 0}.run-stats{margin-bottom:15px}.run-stats>div{padding:9px 20px}.run-stats strong{font-size:18px}.run-stats span{font-size:12px}}
@media(orientation:portrait){body[data-platform=mobile] .rotate-gate{display:flex;position:fixed;inset:0;z-index:1000;background:#0b1318;align-items:center;justify-content:center;padding:30px;text-align:center;font:26px/1.5 Georgia;color:#e4d2ae}.title-stage{width:177.68vh;height:100vh}.title-stage .start-button{font-size:clamp(22px,4vw,36px)}.menu-content{padding:80px 6vw 35px}.choice-pair{flex-direction:column;width:100%;max-width:350px;gap:18px}.choice-tile{width:100%;min-height:130px}.game-title-small{font-size:38px}.terms-footer{flex-direction:column;align-items:stretch;gap:20px}.setup-panel{padding:28px 24px}.terms-copy{max-height:42vh;padding:18px}.lobby-header{grid-template-columns:1fr 1fr}.lobby-header h1{grid-column:1/-1;grid-row:1}.lobby-header>span{grid-column:2}.lobby-main{flex-direction:column}.player-panel{width:100%;min-height:270px}.lobby-portrait{min-height:270px;min-width:120px;width:40%}.player-summary h2{font-size:22px}.player-summary .button{white-space:normal}.lobby-wrap{padding:24px 19px}.lobby-footer{gap:15px;flex-wrap:wrap}.difficulty-toggle{order:-1;width:100%;justify-content:center;margin-bottom:8px}.player-slots{width:100%}.player-slot{flex-direction:row;align-items:center;padding:12px 16px}.roster-row{grid-template-columns:1fr 1fr;gap:10px}.role-label{display:none}.character-card{height:150px;flex-direction:column}.character-card .portrait{height:87px;width:100%;mask-image:linear-gradient(0deg,transparent,#000 30%);background-size:300% 420%;background-position:var(--portrait-x) calc(var(--portrait-y)*.91)}.character-card .card-copy{padding:5px 9px;gap:3px}.character-card h2{font-size:17px}.character-card span{font-size:9px;letter-spacing:.04em}.character-card p{display:none}.character-select>h1{font-size:26px;margin-bottom:20px}.character-select{padding-top:50px}.character-detail{grid-template-columns:1fr;max-height:85vh;overflow:auto}.detail-portrait-wrap{display:none}.detail-main{padding:27px}.kit-list{grid-template-columns:1fr}.game-dialog.wide{width:calc(100vw - 30px)}.difficulty-options{grid-template-columns:1fr;gap:12px}.difficulty-card{min-height:125px;padding:20px 24px}.difficulty-card h2{font-size:25px;margin-bottom:12px}.difficulty-card p{font-size:14px;margin:0}.game-dialog{padding:26px 24px}.bindings-grid{grid-template-columns:1fr}.role-explanations{gap:15px}.role-explanations h3{font-size:18px}.role-explanations p{font-size:12px}.control-tabs .button{font-size:12px;padding:9px 14px}.upgrade-choices{gap:13px}.upgrade-pick{padding:17px 13px 12px}.upgrade-card h2{font-size:21px}.upgrade-card p{font-size:12px}.upgrade-mark{width:44px;height:44px;font-size:30px;margin-bottom:20px}.run-stats>div{padding:13px 10px;gap:10px}.run-stats span{font-size:12px}.run-stats strong{font-size:21px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
#perf-overlay{position:absolute;right:24px;top:18px;z-index:9;pointer-events:none;padding:8px 10px;background:#050b0ed9;border:1px solid #557260;color:#a9c5b1;font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre;box-shadow:0 5px 18px #0008}
.ability,.ability *{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.ability.holding::after{content:'';position:absolute;inset:-7px;border-radius:50%;background:conic-gradient(#f0d58b var(--hold,0%),#f0d58b20 0);mask:radial-gradient(transparent 62%,#000 64%);pointer-events:none}
.mobile-game #perf-overlay{right:14px;top:58px;font-size:10px;padding:6px 8px}
.multiplayer-status{position:absolute;left:24px;top:150px;max-width:245px;pointer-events:none;color:#e9e3d5;font-size:14px;text-shadow:0 2px 3px #000}.multiplayer-status>span{color:#b89c61}#team-status{display:grid;gap:3px;margin-top:8px;background:#090d1077;padding:8px 10px;border-radius:3px}.lobby-screen .player-slot{display:grid;grid-template-columns:1fr 1fr;gap:5px 14px;min-height:72px}.lobby-screen .player-slot>span{font-size:14px}.multiplayer-results{max-width:1100px!important;width:95vw}.results-scroll{overflow:auto;max-height:62vh;margin:24px 0}.results-scroll table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}.results-scroll th,.results-scroll td{padding:12px;border-bottom:1px solid #54564e;white-space:nowrap}.results-scroll thead{color:#b89c61}#upgrade-countdown{color:#d7c19a;text-align:center}.mobile-game .multiplayer-status{left:18px;top:64px;font-size:12px;max-width:170px}.mobile-game #team-status{padding:4px 6px;font-size:12px}@media(max-height:550px) and (orientation:landscape){.lobby-screen .player-slot{min-height:44px;padding:5px 10px;margin-bottom:5px;gap:1px 8px}.lobby-screen .player-slot>span{font-size:12px}.lobby-screen .player-slot>strong{font-size:13px}.lobby-wrap>p{margin:0 0 8px}.lobby-screen .lobby-header{margin-bottom:8px}}

.world-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.hud{z-index:2}

.hit-flash{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,transparent 36%,#a51b1b8c 100%),linear-gradient(#8e111122,#8e111122)}.multiplayer-status{z-index:2}.team-row{display:flex;align-items:center;gap:8px;min-height:37px}.team-row .team-portrait{flex:none;width:30px;height:36px;border:1px solid #665f4d;border-radius:3px}.team-summary{flex:1;min-width:0}.team-name{display:block;line-height:1.2}.team-summary small{display:block;color:#cdbf9f}.team-health{display:block;width:100%;height:9px;margin-top:5px;border:1px solid #779077;border-radius:3px;background:#1a2923;overflow:hidden}.team-health i{display:block;height:100%;background:linear-gradient(#73c76b,#3f9c50);transition:width .15s linear}.mobile-game .team-row .team-portrait{width:25px;height:30px}.mobile-game .team-health{height:7px}
#minimap,.minimap{display:none!important}
