*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#111315;color:#eee;font-family:Arial,Helvetica,sans-serif;touch-action:none;user-select:none}canvas{display:block;width:100%;height:100%}button{font:700 12px Arial;letter-spacing:1px;color:#f2f0e9;background:#22282b;border:1px solid #ffffff25;cursor:pointer;touch-action:none}button:hover{filter:brightness(1.2)}button:active{transform:scale(.95)}button:focus-visible{outline:2px solid #d9f077;outline-offset:4px}[hidden]{display:none!important}header{position:absolute;top:max(20px,env(safe-area-inset-top));left:28px;right:28px;display:flex;justify-content:space-between;align-items:start;pointer-events:none}.brand{font-weight:1000;font-size:24px;letter-spacing:-1px}.brand span{color:#ff5346}.brand small{display:block;font:9px monospace;letter-spacing:2px;color:#a2a7a3;margin-top:5px}.topright{display:flex;gap:8px;pointer-events:auto}.topright button{height:35px;padding:0 12px;background:#111b}#hud{position:absolute;top:92px;left:28px;right:28px;display:flex;justify-content:space-between;pointer-events:none}.vitals{width:190px}.tiny{font:10px monospace;letter-spacing:1.5px;color:#b8bab3}.tiny span{float:right}.bar{height:8px;background:#ffffff15;margin-top:6px;transform:skew(-12deg);overflow:hidden}.bar i{display:block;background:#ed5149;width:100%;height:100%;transition:width .12s}.focuslabel{margin-top:10px}.focus{height:3px}.focus i{background:#d4ea83}.wave{text-align:center;margin-left:-80px}.wave strong{font-size:26px;font-weight:900;display:block;letter-spacing:1px;margin-top:4px}.wave>span{font:10px monospace;color:#929a95;letter-spacing:2px}.score{text-align:right}.score strong{font-size:32px;color:#d8ed8c}#menu{position:absolute;inset:0;background:linear-gradient(90deg,#101416fa 8%,#101416b0 48%,#10141600 100%);display:flex;align-items:center;padding:80px 8% 30px}.menucard{width:500px}.eyebrow{font:11px monospace;letter-spacing:2px;color:#bdd778}h1{font-size:clamp(60px,9vw,115px);letter-spacing:-7px;line-height:.79;margin:28px 0 22px;font-weight:1000;transform:skew(-5deg);position:relative}h1>span{color:#ff5247}h1 em{display:block;font:700 12px monospace;letter-spacing:3px;color:#f2e8d5;margin-top:23px}p{line-height:1.6;color:#b5bcb5;font-size:16px}.primary{display:flex;justify-content:space-between;align-items:center;width:280px;background:#e6f099;color:#171c18;border:0;padding:20px 24px;font-size:14px;margin:25px 0 20px;box-shadow:5px 5px 0 #626a37}.primary span{font-size:23px}.instructions{display:flex;flex-wrap:wrap;gap:10px 16px;font-size:11px;color:#a3aaa6;max-width:440px}.instructions b{font:10px monospace;color:#d4d7ce}.mobilehint{font:11px monospace;color:#919b95;margin-top:18px}.warning{font:9px monospace;letter-spacing:2px;color:#6d7670;margin-top:25px}.stamp{position:absolute;right:9%;bottom:19%;font:12px monospace;line-height:1.7;border:2px solid #e3f09366;padding:15px 20px;transform:rotate(-9deg);color:#dae58d99;letter-spacing:3px}.stamp b{font-size:16px}#weapon{position:absolute;left:28px;bottom:52px;pointer-events:none}#weapon b{display:block;font-size:18px;margin-top:7px;letter-spacing:1px}#pickup{display:block;color:#d8ec95;font:11px monospace;margin-top:8px}footer{position:absolute;bottom:18px;left:28px;color:#747e79;font:10px monospace;letter-spacing:1px;pointer-events:none}footer b{color:#b5bfb5}#toast{position:absolute;top:29%;left:0;width:100%;text-align:center;font:900 28px Arial;letter-spacing:2px;pointer-events:none;color:#dceb9b;text-shadow:3px 3px #151b19}#combo{position:absolute;right:30px;top:38%;font:900 italic 38px Arial;color:#ff5c46;pointer-events:none;text-shadow:3px 3px #000}#overlay{position:absolute;inset:0;background:#0b0f12d9;display:grid;place-items:center;backdrop-filter:blur(7px);z-index:9}.overlaycard{text-align:center;padding:24px}h2{font-size:45px;letter-spacing:-2px;margin:16px 0}.overlaycard .primary{margin:25px auto 14px}.secondary{padding:14px 25px;background:transparent}#touch{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));left:20px;right:20px;display:flex;justify-content:space-between;align-items:end;pointer-events:none}#touch button{pointer-events:auto;width:60px;height:57px;border-radius:12px;background:#1c252ad9;border:1px solid #aabbb94d;box-shadow:0 3px 0 #0008;backdrop-filter:blur(3px);font-size:11px}.movement{display:flex;gap:12px}.movement button{font-size:22px!important;height:68px!important}.actions{display:grid;grid-template-columns:repeat(3,60px);gap:9px}.actions .hit{background:#d54a3ce6!important;font-size:17px!important}.actions .slow{color:#e5f697}.touchmode #desktophelp{display:none}.touchmode #weapon{bottom:169px}.touchmode .instructions{display:none}@media(max-height:540px){header{top:12px;left:20px;right:20px}.brand{font-size:19px}.brand small{display:none}#hud{top:58px;left:20px;right:20px}.vitals{width:150px}.wave strong{font-size:20px}.score strong{font-size:23px}#menu{padding:55px 7% 14px}.menucard{width:440px}h1{font-size:74px;margin:17px 0;letter-spacing:-5px}h1 em{font-size:10px;margin-top:15px}p{margin:10px 0;font-size:14px}.primary{padding:14px 20px;margin:15px 0}.warning{margin-top:12px}.stamp{right:12%;bottom:22%}.mobilehint{margin-top:12px}#weapon{bottom:40px}.touchmode #weapon{bottom:155px}#touch{bottom:12px}#toast{top:32%;font-size:23px}}@media(max-width:600px) and (min-height:541px){header{left:18px;right:18px}#hud{left:18px;right:18px}.vitals{width:115px}.wave{margin-left:0}.wave .tiny{font-size:8px;letter-spacing:0}.wave strong{font-size:19px}.score .tiny{font-size:8px;letter-spacing:0}.score strong{font-size:26px}#menu{padding:85px 8% 40px;align-items:center}h1{font-size:88px;letter-spacing:-6px}.eyebrow{font-size:9px}.stamp{display:none}.primary{width:100%}#touch{left:12px;right:12px}.movement{gap:7px}#touch button{width:53px}.actions{grid-template-columns:repeat(3,53px);gap:7px}#weapon{left:18px}#combo{top:32%;font-size:30px}h2{font-size:36px}}

/* Thumb-first controls: movement on the left, four physical actions on the right. */
#touch{align-items:flex-end;left:max(22px,env(safe-area-inset-left));right:max(22px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));gap:12px}
.stickwrap{width:126px;flex-shrink:0;text-align:center;pointer-events:auto}.touchcaption{display:block;font:10px monospace;letter-spacing:2px;color:#c0cfbd99;margin-top:9px}#joystick{position:relative;width:126px;height:112px;border-radius:50%;border:1px solid #c3d0c43d;background:radial-gradient(ellipse,#28362f7a,#13211eaa);box-shadow:inset 0 0 25px #0005;touch-action:none;display:grid;place-items:center}.stickarrows{color:#c2d1ba70;font:28px Arial;pointer-events:none}#sticknub{position:absolute;width:54px;height:54px;border-radius:50%;background:linear-gradient(145deg,#627062,#303d36);border:2px solid #d9e7bf66;box-shadow:0 5px 14px #0008;pointer-events:none;will-change:transform}.fightpad{width:215px;height:184px;position:relative;pointer-events:none}#touch .fightpad button{position:absolute;border-radius:50%;background:#25322dec;border:1px solid #b4c7b26e;font-size:12px;letter-spacing:.7px;box-shadow:0 4px 0 #0008;touch-action:none}#touch .fightpad button span{display:block;font-size:20px;color:#c3d1ad;margin-top:2px}#touch #fightbutton{width:94px;height:94px;right:0;top:70px;background:linear-gradient(135deg,#f56c4f,#b93029);border:2px solid #ffb58a88;font-size:19px;box-shadow:0 5px 0 #5e211f,0 0 24px #eb513a17}#fightbutton small{display:block;font:8px monospace;letter-spacing:.3px;margin-top:5px;color:#ffded1}#touch #context{left:9px;top:0;width:92px;height:44px;border-radius:22px;font-size:12px;background:#baca81;color:#1b281d;border-color:#eaf9aa80}#touch #context:disabled{opacity:.4;background:#28382f;color:#c1cbbb}#touch #jumpbutton{width:64px;height:64px;left:120px;top:0}#touch #kickbutton{width:65px;height:65px;left:25px;top:64px}#touch #slowbutton{width:89px;height:38px;left:0;bottom:0;border-radius:20px;font-size:10px;color:#d9e9a4}#touch #slowbutton.active{background:#d5e991;color:#1c291c;border-color:#f0ffd2}.touchmode #weapon{bottom:225px}.touchmode #pickup{font-size:10px;max-width:260px}.touchmode #weapon b{font-size:14px}.touchmode #weapon .tiny{font-size:9px}
@media(max-height:540px){#touch{bottom:max(10px,env(safe-area-inset-bottom));left:max(22px,env(safe-area-inset-left));right:max(22px,env(safe-area-inset-right))}.fightpad{height:158px;width:225px}#touch #fightbutton{top:53px;width:89px;height:89px}#touch #context{top:0;left:0;width:94px;height:40px}#touch #kickbutton{left:28px;top:48px;width:59px;height:59px}#touch #jumpbutton{left:114px;top:0;width:57px;height:57px}#touch #slowbutton{left:6px;bottom:0;width:78px;height:34px}.stickwrap{width:116px}#joystick{width:116px;height:100px}.touchcaption{margin-top:6px;font-size:9px}.touchmode #weapon{left:22px;top:139px;bottom:auto}.touchmode #pickup{display:none}.touchmode #weapon b{font-size:12px;margin-top:4px}.touchmode #weapon .tiny{font-size:8px}#toast{font-size:20px;top:31%}}
@media(max-width:600px) and (min-height:541px){#touch{left:14px;right:14px;gap:6px}.fightpad{width:202px}.stickwrap{width:116px}#joystick{width:116px;height:108px}#touch #fightbutton{width:87px;height:87px;top:73px}#touch #jumpbutton{left:111px}#touch #context{left:2px;width:92px}#touch #kickbutton{left:15px}.touchmode #weapon{top:178px;left:18px;bottom:auto}.touchmode #weapon b{font-size:13px}.touchmode #pickup{font-size:10px;max-width:260px}#toast{font-size:21px;top:30%}}
@media(max-width:360px){.stickwrap,#joystick{width:98px}.fightpad{width:193px}#touch{left:8px;right:8px}}

.guardlabel{margin-top:8px}.guardbar{height:3px}.guardbar i{background:#91d5db}.touchmode #weapon{top:195px;bottom:auto}#touch #guardbutton{width:98px;height:48px;left:0;bottom:0;border-radius:24px;background:#274248;color:#dcf7f7;border-color:#81b9c0;font-size:12px}#guardbutton small{display:block;font:8px monospace;letter-spacing:.4px;margin-top:4px;color:#a7d4db}#touch #guardbutton.active{background:#608c8d;box-shadow:0 0 16px #a9edf040;border-color:#c6ffff}#touch #guardbutton.broken{background:#543c36;border-color:#d29c79}#touch .stickwrap #slowbutton{position:absolute;left:14px;bottom:154px;width:92px;height:34px;border-radius:18px;font-size:10px;background:#233529dc;box-shadow:none}#touch .stickwrap #slowbutton.active{background:#d5e991;color:#1c291c}
@media(max-height:540px){#touch #guardbutton{height:44px;width:99px;left:0;bottom:0}.touchmode #weapon{top:159px;bottom:auto}.guardlabel{margin-top:6px}#touch .stickwrap #slowbutton{bottom:133px;left:10px;width:94px;height:32px}}
@media(max-width:360px){#touch #guardbutton{width:89px}#touch .stickwrap #slowbutton{left:0;width:90px}}

#touch #guardbutton #counterlabel{display:block;font-size:11px;color:inherit;margin:0}#touch #guardbutton.counterready{background:#92e4ee;color:#11272c;border-color:#e0fcff;box-shadow:0 0 20px #92e4ee66,0 3px 0 #20454a}#touch #guardbutton.counterready small{color:#22474c}

#touch #guardbutton.recovering:not(.counterready){border-color:#bd926d}#touch #guardbutton.recovering small{color:#efc4a2}
/* Campaign hub: industrial job board with a loadout locker. */
#menu{z-index:8;display:block;padding:0;background:linear-gradient(120deg,#0c1217fa,#171e21f5);overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}#menu *{touch-action:pan-y}.hub{max-width:1180px;margin:auto;padding:35px 34px 24px}.hubtop{display:flex;align-items:center;justify-content:space-between;gap:20px}.hubtop h1{font-size:clamp(36px,6vw,64px);letter-spacing:-3px;margin:14px 0 20px;line-height:1;transform:skew(-4deg)}.hubtop h1 span{display:inline}.hub .eyebrow{font-size:12px;letter-spacing:2px}.wallet{min-width:112px;border:1px solid #d6e99255;padding:13px 20px;background:#d6e9920a;text-align:right}.wallet span{display:block;font:12px monospace;color:#b3c48b;letter-spacing:2px}.wallet strong{font-size:28px;color:#e5f4a1;display:block;margin-top:5px}.hubnav{display:flex;border-bottom:1px solid #ffffff20;gap:5px}.hubnav button{padding:17px 23px;font-size:14px;background:none;border:0;border-bottom:3px solid transparent;color:#9aa7ad;letter-spacing:.7px}.hubnav button.selected{color:#e3f297;border-color:#e3f297}.hub button:disabled{cursor:default;filter:none;opacity:.5;transform:none}#savestatus{font-size:13px;color:#82978e;min-height:36px;padding:12px 0 5px}#savestatus.error{color:#ffb4a1}#savestatus a{color:#e4f394;font-weight:bold}#savestatus button{padding:8px 13px;margin-left:10px}.levelintro{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:19px}.hub h2{font-size:30px;letter-spacing:-1px;margin:16px 0 10px}.levelintro>span{font:12px monospace;color:#9ba9a8;white-space:nowrap}.campaign-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}#levelgrid{display:grid;gap:9px}.level-card{width:100%;display:flex;align-items:center;text-align:left;gap:17px;padding:17px 19px;border:1px solid #ffffff15;background:#1d272c;color:#e5eaeb;border-left:3px solid #4d6069;letter-spacing:0;min-height:78px}.level-card.selected{border-color:#d7e79988;border-left-color:#d7e799;background:#d7e7990d}.level-card.locked{background:#141d22;color:#87949a}.level-number{font:24px monospace;color:#74908a}.selected .level-number{color:#dbe99d}.level-name{font-size:18px;flex:1}.level-name small{display:block;font-size:12px;color:#96a5aa;font-weight:normal;margin-top:7px}.level-rank{font:700 24px monospace;color:#bdd1d6}.level-rank.gold{color:#f6d87d}.locked .level-rank{font:10px monospace;letter-spacing:1px}#leveldetail{position:relative;padding:30px;background:linear-gradient(160deg,#283433,#152029);border:1px solid #ffffff24;border-top:3px solid #ff6653}#leveldetail .eyebrow{font-size:11px;line-height:1.7}#leveldetail h2{font-size:47px;margin:20px 0 14px}#leveldetail p{font-size:16px;line-height:1.6}.mission-facts{display:flex;gap:28px;padding:22px 0;border-bottom:1px solid #ffffff20}.mission-facts strong{font:700 27px monospace;display:block}.mission-facts span{font:11px monospace;color:#91a29c;display:block;margin-top:6px}.best-record{padding:21px 0}.best-record span{font:12px monospace;color:#93a5a3;display:block;margin-bottom:8px}.best-record strong{font:700 19px monospace;color:#e0efa4}#leveldetail .reward-line{font-size:13px;color:#c1d58a}#leveldetail .primary{width:100%;justify-content:center;margin-bottom:10px;font-size:15px}.boss-note{font:12px monospace;color:#f0b0b9;text-align:center;margin-top:22px}.rank-guide{border-top:1px solid #ffffff17;margin-top:25px;padding:20px 0;font-size:14px;color:#95a5a8}.rank-guide summary{cursor:pointer;color:#c6d1cb}.rank-guide p{font-size:14px}.hubfoot{font:11px monospace;color:#748581;display:flex;justify-content:space-between;gap:15px;margin-top:20px;letter-spacing:1px}.shopheading{display:flex;align-items:center;justify-content:space-between;gap:15px}.shopheading p{font-size:15px}#loadout-preview{display:flex;align-items:center;gap:12px;color:#bac891;font:11px monospace}#loadout-preview canvas{width:90px;height:93px;border:1px solid #ffffff20;border-radius:4px}.shopfilters{display:flex;gap:7px;flex-wrap:wrap;margin:13px 0}.shopfilters button{padding:10px 13px;font-size:12px}.shopfilters .selected{color:#152018;background:#d9ea96}#shopstatus{font-size:14px;min-height:24px}#shopgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.shop-card{background:#18242a;border:1px solid #ffffff1c;padding:13px;display:flex;flex-direction:column}.shop-card.equipped{border-color:#cce18b80}.shop-card.signature-skin{border-color:#b592ee70;background:linear-gradient(150deg,#272139,#15242d)}.item-art{position:relative}.item-art canvas{width:100%;height:170px;object-fit:contain;background:#0c1418}.item-tag{position:absolute;top:8px;left:8px;font:10px monospace;letter-spacing:1px;color:#cddc99;background:#172322c9;padding:5px 7px}.signature-skin .item-tag{color:#d0a3ff}.shop-card h3{font-size:17px;margin:15px 0 5px}.shop-card p{font-size:13px;line-height:1.5;min-height:40px;margin:5px 0 15px}.shop-card button{width:100%;padding:13px 8px;margin-top:auto;color:#d9ed9c}.endless-card{padding:25px 0;max-width:550px}.endless-card h2{font-size:48px}.endless-card .muted{font-size:14px;color:#899c9b}.endless-card .primary{justify-content:center}.hub .primary{touch-action:manipulation}#results{position:absolute;inset:0;z-index:10;display:grid;place-items:center;background:#0c1217ed;backdrop-filter:blur(8px);overflow-y:auto;touch-action:pan-y;padding:28px 15px}.resultcard{max-width:650px;width:100%;text-align:center;margin:auto;padding:20px}.resultcard .eyebrow{font-size:12px;line-height:1.6}.resultcard h2{font-size:36px;margin:12px 0}.result-rank{font:900 italic 100px Arial;color:#dfee9d;line-height:1.1;text-shadow:5px 5px 0 #54613a}#resultrecord{font:14px monospace;color:#dcc87e;margin:10px 0 22px}#resultstats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;padding:18px 0;border-block:1px solid #ffffff20}#resultstats strong{display:block;font:700 23px monospace}#resultstats span{display:block;font:10px monospace;color:#98aaa5;margin-top:9px}#resultstats p{grid-column:1/-1;font-size:13px;margin:10px 0 0}#resultreward{font:700 18px monospace;color:#e7eea3;margin-top:25px;line-height:1.6}#resultsave{font-size:13px;margin:12px 0}.resultactions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.resultactions button{min-height:46px;margin:0;font-size:12px}.resultactions .primary{width:auto;box-shadow:none}.resultactions button:disabled{opacity:.4}#overlay .secondary{margin:5px}body:has(#menu:not([hidden])) header{z-index:9;left:auto;right:34px;top:12px}body:has(#menu:not([hidden])) header .brand{display:none}body:has(#menu:not([hidden])) #sound{height:25px;font-size:10px;border:0;background:none}
@media(max-width:850px){#shopgrid{grid-template-columns:repeat(3,1fr)}.hub{padding:42px 22px 22px}.campaign-layout{gap:15px}#leveldetail{padding:23px}.mission-facts{gap:20px}.hubnav button{padding:15px 17px}}
@media(max-width:600px){.hub{padding:42px 17px 22px}.hubtop h1{font-size:39px;letter-spacing:-2px}.hubtop .eyebrow{font-size:10px;letter-spacing:1px}.wallet{min-width:84px;padding:10px}.wallet strong{font-size:23px}.wallet span{font-size:10px}.hubnav button{font-size:11px;padding:14px 10px;flex:1;white-space:nowrap}.hub h2{font-size:25px}.levelintro{align-items:start;flex-direction:column;gap:3px}.levelintro h2{margin-bottom:0}.campaign-layout{grid-template-columns:1fr}.level-card{min-height:67px;padding:12px 15px}.level-name{font-size:16px}.level-name small{font-size:12px}#leveldetail h2{font-size:36px}#leveldetail .eyebrow{font-size:11px}.hubfoot{font-size:9px;flex-direction:column;gap:9px}#shopgrid{grid-template-columns:repeat(2,1fr);gap:10px}.shop-card{padding:9px}.item-art canvas{height:150px}.shop-card h3{font-size:15px}.shop-card p{font-size:12px;min-height:54px}.shopheading h2{font-size:25px}.shopheading p{font-size:13px}#loadout-preview{display:block}#loadout-preview span{display:block;text-align:center;margin-top:5px}.shopfilters{gap:5px}.shopfilters button{font-size:10px;padding:10px}.resultcard{padding:10px 2px}.resultcard h2{font-size:28px}.result-rank{font-size:85px}#resultstats strong{font-size:20px}#resultstats span{font-size:9px}.resultactions .primary{width:100%}}
@media(max-height:540px) and (min-width:601px){.hub{padding-top:30px}.hubtop h1{font-size:40px;margin:8px 0 14px}.hubtop .eyebrow{font-size:10px}.hubnav button{padding:12px 18px}.level-card{padding:12px;min-height:68px}#leveldetail h2{font-size:36px}.resultcard{padding:5px}.result-rank{font-size:65px}.resultcard h2{font-size:28px;margin:5px 0}#resultrecord{margin:5px 0 12px}#resultstats{padding:12px 0}#resultreward{margin-top:12px}.resultactions button{padding:12px 17px}}
.chapternav{display:flex;gap:8px;margin:0 0 18px}.chapternav button{padding:12px 16px;font-size:12px;letter-spacing:.8px;background:#19262c;color:#a7b5b9}.chapternav button.selected{color:#e1edac;border-color:#c7dc8570;background:#324035}@media(max-width:600px){.chapternav button{font-size:10px;padding:12px 9px;flex:1}}
#touch #dodgebutton{right:0;left:auto;top:-57px;width:100px;height:45px;border-radius:14px;border-color:#bbc6cf;background:#3d4d5ae8;color:#f0f5f0;font-size:13px}#dodgebutton small{display:block;font:9px monospace;margin-top:4px;color:#c5dbe3}#touch #dodgebutton.danger:not(:disabled){background:#983e37;border-color:#ff8b79;box-shadow:0 0 18px #ff5b454d}#touch #dodgebutton.danger small{color:#ffe3ca}#touch #dodgebutton:disabled{opacity:.55;box-shadow:none}@media(max-height:540px){#touch #dodgebutton{top:-49px;height:40px;width:96px;font-size:12px}}@media(max-width:360px){#touch #dodgebutton{width:88px}}
.hubtools{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:16px 0 0}.hubtools button{padding:12px 14px;font-size:11px}.hubtools #training-start{border-color:#c4d88970;color:#dfeeac}#networkstatus{font-size:12px;color:#efc69b}dialog{color:#edf1e9;background:#142127;border:1px solid #8ca29b;border-radius:10px;max-width:520px;width:calc(100% - 28px);max-height:90dvh;overflow:auto;padding:0;touch-action:pan-y;z-index:30}dialog::backdrop{background:#080e13dd;backdrop-filter:blur(5px)}.settingscard{padding:28px}.settingscard h2{font-size:29px;letter-spacing:-1px}.settingscard label{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:22px 0;font-size:16px}.settingscard input[type=range]{width:45%;accent-color:#dfea9f}.settingscard .checkrow{justify-content:start;gap:12px}.settingscard input[type=checkbox]{width:22px;height:22px;accent-color:#dfea9f}.settingscard select{padding:10px;background:#22363e;color:#eef1e7;border:1px solid #607570;border-radius:4px;font-size:14px;max-width:60%}.settingscard p{font-size:13px}.settingscard .primary{width:auto;justify-content:center;margin:0;box-shadow:none;padding:14px 24px}.settingsactions{display:flex;justify-content:space-between;gap:10px;margin-top:28px}.settingsactions>button{padding:12px 18px}#trainingbar{position:absolute;top:24%;left:50%;transform:translateX(-50%);z-index:6;width:min(520px,calc(100% - 28px));background:#12262feb;border:1px solid #b8d18b70;padding:14px 16px;display:flex;align-items:center;gap:10px;touch-action:manipulation}#trainingbar>div{flex:1}#trainingbar strong{font:700 12px monospace;color:#e3eea9}#trainingbar p{font-size:13px;line-height:1.4;margin:6px 0 0;color:#c2d1d2}#trainingbar button{font-size:10px;padding:10px;min-height:40px}body.left-handed #touch{flex-direction:row-reverse}body.left-handed #touch .stickwrap #slowbutton{left:auto;right:14px}body.left-handed #weapon{left:auto;right:24px;text-align:right}#rankadvice{color:#b8c9c4;font-size:13px;line-height:1.5}.low-effects #overlay{backdrop-filter:none}.low-effects dialog::backdrop{backdrop-filter:none}#settings-open{font-size:10px!important}@media(max-height:540px){#trainingbar{top:12px;width:min(410px,calc(100% - 330px));padding:10px}#trainingbar p{font-size:11px}#trainingbar{flex-wrap:wrap}#trainingbar>div{flex-basis:100%}#trainingbar button{min-height:28px;padding:6px 10px}#trainingbar strong{font-size:10px}}@media(max-width:600px){.settingscard{padding:22px}.settingscard label{font-size:14px}.settingscard h2{font-size:25px}#trainingbar{top:25%;flex-wrap:wrap}#trainingbar>div{flex-basis:100%}.topright{gap:4px}.topright button{padding:0 8px}.hubtools button{font-size:10px;padding:11px}body.left-handed #touch .stickwrap #slowbutton{right:0}}
@media(max-width:480px){header{left:14px;right:14px;gap:8px}.brand{font-size:19px}.brand small{font-size:7px;letter-spacing:1px}.topright{gap:3px}.topright button{font-size:9px;padding:0 6px;height:34px}.settingscard input[type=range]{min-width:100px}#trainingbar{width:calc(100% - 28px)}}

.chapternav{flex-wrap:wrap}.chapternav button{flex:1;min-width:130px}.item-art{overflow:hidden}@media(max-width:600px){.chapternav button{font-size:11px;padding:12px 8px;min-width:90px}.shopfilters{flex-wrap:wrap}}
.skillheading{display:flex;align-items:center;justify-content:space-between;gap:18px}.skillheading h2{font-size:32px;margin-bottom:10px}.skillheading>strong{font:12px monospace;color:#c7db93}.skillintro{max-width:900px;font-size:14px;line-height:1.7}#skillstatus{color:#e5d4a0;font-size:14px;min-height:23px}#skilltree{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:15px 0 35px}.skillbranch{--branch:#edb081;background:#121e24;border:1px solid #52625c44;border-top:3px solid var(--branch);padding:16px}.skillbranch.grit{--branch:#a6d99b}.skillbranch.flow{--branch:#97c8ea}.branchhead h3{font:700 20px monospace;letter-spacing:3px;color:var(--branch);margin:5px 0}.branchhead p{font-size:14px;margin:5px 0 20px}.branchgrid{display:grid;grid-template-columns:1fr 1fr;gap:28px 10px}.skillnode{position:relative;min-width:0;border:1px solid #71807866;background:#1b2930;padding:13px 10px;display:flex;flex-direction:column}.skillnode:not(:first-child):before{content:'';height:28px;width:1px;background:var(--branch);position:absolute;top:-29px;left:50%;opacity:.55}.skillnode.wide{grid-column:1/-1}.skillnode.learned{border-color:var(--branch)}.skillnode.locked{background:#111b21}.skillnode h4{font-size:16px;line-height:1.3;margin:12px 0 0}.skilltier{font:10px monospace;color:var(--branch);display:flex;justify-content:space-between;gap:5px}.skillnode p{font-size:14px;margin:10px 0}.skillnode strong{color:#e7efd7;font-size:15px}.skillrequires{font-size:12px;line-height:1.5;color:#9baeb0;margin:0 0 12px;flex:1}.skillnode button{padding:12px 7px;font-size:11px;letter-spacing:.3px;line-height:1.5;min-height:46px;border-color:var(--branch);color:var(--branch)}.skillnode button:disabled{opacity:.42;cursor:default}.hubnav{flex-wrap:wrap}@media(max-width:1000px){#skilltree{grid-template-columns:1fr}.skillbranch{padding:20px}.branchgrid{gap:28px 18px}.skillnode h4{font-size:18px}.skilltier{font-size:12px}.skillnode button{font-size:13px}.skillheading{align-items:start;flex-direction:column;gap:0}}@media(max-width:600px){.hubnav button{flex:1 1 40%;font-size:12px}.skillheading h2{font-size:27px}.skillbranch{padding:13px}.skilltier{font-size:10px}.skillnode h4{font-size:16px}.skillnode button{font-size:11px}}
.levelmedals{border-top:1px solid #ffffff20;margin-top:24px;padding-top:16px}.levelmedals h3{font:12px monospace;letter-spacing:1px;color:#dfd2ab}.medalrow{display:flex;gap:12px;margin:16px 0;color:#7f959a}.medalrow>span{font-size:24px}.medalrow strong{font-size:14px;display:block}.medalrow small{font-size:12px;line-height:1.5;display:block;margin-top:5px;color:#a2b3b6}.medalrow.earned{color:#d9e995}.levelmedals p{font-size:12px}.masteryheading h2{font-size:36px;margin:12px 0}.masteryheading>strong{font:700 21px monospace;color:#e5db9d}.masterybar{height:8px;background:#273a3d;margin-top:16px;max-width:600px}.masterybar i{display:block;height:100%;background:#d8e99b}.masteryintro{font-size:14px;max-width:880px}#masterynext{color:#bcdcbf;font-size:14px}#masteryrewards{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:25px 0 35px}.masteryreward{padding:12px;background:#17232c;border:1px solid #5d6f7355;display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center}.masteryreward.earned{border-color:#cfe196}.masteryreward canvas{width:100%;height:auto;max-width:180px}.masteryreward strong{font-size:15px}.masteryreward>span{font:11px monospace;color:#bdd0b4}.masteryreward button{min-height:40px;padding:10px;width:100%;margin-top:auto}.masteryreward button:disabled{opacity:.35}#masterygrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding-bottom:30px}.masterylevel{text-align:left;display:flex;flex-direction:column;gap:10px;padding:17px;background:#17262c;min-height:120px}.masterylevel span{font-size:14px;line-height:1.4}.masterylevel strong{font-size:22px;letter-spacing:6px;color:#aab992}.masterylevel small{font-size:12px;line-height:1.5;font-weight:400;letter-spacing:0;color:#acb9b9}.masterylevel.complete{border-color:#d9e997}.masterylevel.complete strong{color:#e5efa9}.masterylevel:disabled{opacity:.4}#resultmastery{color:#dce99b;font-size:14px;line-height:1.6}@media(max-width:850px){#masteryrewards{grid-template-columns:repeat(3,1fr)}#masterygrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:500px){#masteryrewards{grid-template-columns:repeat(2,1fr)}.masteryheading h2{font-size:28px}.masterylevel{padding:12px}#masterygrid{gap:8px}.masterylevel span{font-size:13px}}
/* Keep the scene attached to the visible phone viewport; one compact combat HUD. */
#game{position:fixed;inset:0;width:100%;height:100%;height:100dvh}body{height:100dvh}.touchmode.combat-ui header{top:max(10px,env(safe-area-inset-top));left:auto;right:max(12px,env(safe-area-inset-right));z-index:7}.touchmode.combat-ui .brand,.touchmode.combat-ui #sound,.touchmode.combat-ui #settings-open,.touchmode.combat-ui .score,.touchmode.combat-ui #zone,.touchmode.combat-ui .focuslabel,.touchmode.combat-ui .guardlabel,.touchmode.combat-ui #weapon,.touchmode.combat-ui #desktophelp{display:none!important}.touchmode.combat-ui #pause{width:44px;height:44px;font-size:18px;border-radius:12px;background:#15232bbe}.touchmode.combat-ui #hud{top:max(12px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));right:72px;align-items:flex-start;gap:16px}.touchmode.combat-ui .vitals{width:118px;flex-shrink:0}.touchmode.combat-ui .vitals>.tiny:first-child{font-size:10px;letter-spacing:1px}.touchmode.combat-ui .bar{height:6px;margin-top:4px}.touchmode.combat-ui .bar.focus,.touchmode.combat-ui .bar.guardbar{height:3px;margin-top:4px}.touchmode.combat-ui .wave{margin:0;text-align:right}.touchmode.combat-ui .wave strong{font-size:15px;margin:0 0 5px;letter-spacing:0}.touchmode.combat-ui #remaining{font-size:10px;letter-spacing:0}.touchmode.combat-ui #toast{top:20%;max-width:70%;left:50%;transform:translateX(-50%);font-size:16px;text-align:center;letter-spacing:1px}.touchmode.combat-ui #combo{top:26%;right:16px;font-size:24px}.touchmode #touch{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));gap:10px}.touchmode .touchcaption,.touchmode #fightbutton small,.touchmode #guardbutton small,.touchmode #dodgebutton small,.touchmode #jumpbutton>span,.touchmode #kickbutton>span{display:none!important}.touchmode .stickwrap{width:100px}.touchmode #joystick{width:100px;height:96px}.touchmode #sticknub{width:44px;height:44px}.touchmode .fightpad{width:196px;height:158px;flex-shrink:0}.touchmode #touch .fightpad button{font-size:12px;letter-spacing:0;backdrop-filter:none;box-shadow:0 2px 0 #0006}.touchmode #touch #fightbutton{width:72px;height:72px;right:0;left:auto;top:47px;font-size:15px}.touchmode #touch #kickbutton{width:54px;height:54px;left:58px;top:56px}.touchmode #touch #jumpbutton{width:54px;height:44px;left:134px;top:0;border-radius:14px}.touchmode #touch #context{width:78px;height:40px;left:45px;top:4;border-radius:14px;font-size:11px}.touchmode #touch #guardbutton{width:88px;height:44px;left:13px;bottom:0;top:auto;border-radius:14px}.touchmode #touch #dodgebutton{width:82px;height:44px;left:auto;right:0;bottom:0;top:auto;border-radius:14px}.touchmode #touch .stickwrap #slowbutton{left:7px;bottom:108px;width:86px;height:36px;font-size:10px;border-radius:12px;backdrop-filter:none}.touchmode.left-handed #touch .stickwrap #slowbutton{left:auto;right:7px}.touchmode #trainingbar{top:90px}.touchmode #trainingbar p{font-size:12px}.touchmode #trainingbar strong{font-size:11px}@media(max-width:350px){.touchmode #touch{left:8px;right:8px;gap:6px}.touchmode .stickwrap,.touchmode #joystick{width:90px}.touchmode .fightpad{width:190px}.touchmode #touch .stickwrap #slowbutton{left:0}.touchmode .vitals{width:105px}}@media(orientation:landscape) and (max-height:540px){.touchmode.combat-ui #hud{right:80px}.touchmode.combat-ui .wave{margin-right:0}.touchmode #trainingbar{top:74px;width:min(400px,calc(100% - 310px));padding:8px}.touchmode #trainingbar p{font-size:11px}.touchmode #trainingbar button{padding:7px;min-height:30px}}
@media(max-width:600px){.hubtop h1{font-size:48px;letter-spacing:-3px;margin:14px 0}.hubtop .eyebrow{display:none}.hubnav{flex-wrap:nowrap;overflow-x:auto;touch-action:pan-x;gap:0;padding-bottom:3px}.hubnav button{flex:0 0 auto;padding:13px 15px;min-height:44px}.chapternav{flex-wrap:nowrap;overflow-x:auto;touch-action:pan-x}.chapternav button{flex:0 0 auto;padding:12px;min-width:120px}.levelintro h2{font-size:22px}.levelintro{flex-wrap:wrap;gap:4px}.hubtools{gap:6px}.hubfoot{display:none}}

.combat-highlights{color:#a8e0dc;font-size:.9rem;line-height:1.5;margin:12px 0;padding:10px 12px;border:1px solid #a8e0dc25;background:#a8e0dc08;border-radius:8px}.combat-highlights[hidden]{display:none}

#nightchoice{position:fixed;inset:0;z-index:80;background:#0b1217ed;display:grid;place-items:center;overflow:auto;padding:20px}#nightchoice[hidden]{display:none}.night-card{padding:24px;border:1px solid #9f8abc55;background:linear-gradient(135deg,#30253a,#172b32);border-radius:16px;margin-bottom:24px}.night-card p{max-width:660px;line-height:1.5;color:#c5d1d0}#night-perks{display:grid;gap:10px;margin:18px 0}.night-perk{display:grid;text-align:left;gap:6px;padding:16px;background:#283944;border:1px solid #8baeb4;color:#eff5e9;border-radius:10px;min-height:70px}.night-perk span{font-size:14px;color:#beced1}.breakpoint-ready{box-shadow:0 0 22px #f8c78c99!important;border-color:#ffdc9a!important}.breakpoint-ready small{color:#fff1c5!important}@media(max-height:550px){#nightchoice{padding:10px}#night-perks{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}#nightchoice h2{font-size:24px;margin:8px 0}.night-perk{padding:10px}}

#fightbutton{overflow:hidden}#fightbutton::after{content:'';position:absolute;left:12%;bottom:5px;width:var(--breakpoint,0%);height:3px;transform:scaleX(.76);transform-origin:left;background:#ffd492;border-radius:3px;pointer-events:none}#nightchoice .overlaycard{width:min(520px,100%);max-height:calc(100dvh - 40px);overflow:auto;touch-action:pan-y}#nightchoice p{line-height:1.45}

/* Mobile combat pad: utility / attacks / defense. Grid cells never overlap. */
body.touchmode #touch .fightpad{
 width:clamp(184px,28vw,216px);height:170px;display:grid;
 grid-template-columns:1fr 1.12fr;grid-template-rows:44px 62px 48px;
 grid-template-areas:"grab jump" "kick fight" "guard dodge";gap:8px;
 isolation:isolate;
}
body.touchmode #touch :is(#context,#jumpbutton,#kickbutton,#fightbutton,#guardbutton,#dodgebutton){
 position:relative;inset:auto;width:100%;height:100%;min-width:0;margin:0;padding:0 6px;
 display:flex;align-items:center;justify-content:center;border-radius:14px;
 font:700 14px Arial,Helvetica,sans-serif;letter-spacing:.25px;
 color:#edf4ef;background:#1a2c33f2;border:1px solid #8ca5ae8c;
 box-shadow:inset 0 1px 0 #ffffff12,0 3px 0 #081319a6;
 text-shadow:0 1px 2px #0005;backdrop-filter:none;transition:background .1s,border-color .1s;
 -webkit-tap-highlight-color:transparent;
}
body.touchmode #touch #context{grid-area:grab;font-size:12px;color:#e0edb7;border-color:#a6b57599;background:#2c3c2cf2}
body.touchmode #touch #jumpbutton{grid-area:jump;font-size:13px;color:#dae5e9}
body.touchmode #touch #kickbutton{grid-area:kick;font-size:16px;background:#3a3430f5;border-color:#b6a28c}
body.touchmode #touch #fightbutton{grid-area:fight;font-size:20px;background:linear-gradient(145deg,#f36f51,#bd392f);border:2px solid #ffb28d;border-radius:17px;color:#fff5dc;box-shadow:inset 0 1px 0 #ffe7c540,0 3px 0 #681f1d}
body.touchmode #touch #fightbutton #fightlabel{font:inherit;color:inherit;margin:0;letter-spacing:0}
body.touchmode #touch #guardbutton{grid-area:guard;background:#213e4cf5;border-color:#7cb3c7;color:#d7f4ff}
body.touchmode #touch #guardbutton #counterlabel{font:700 13px Arial,Helvetica,sans-serif;margin:0;letter-spacing:.15px;color:inherit}
body.touchmode #touch #dodgebutton{grid-area:dodge;background:#353448f5;border-color:#a39bbd;color:#eee7ff}
body.touchmode #touch #context:disabled{opacity:1;color:#82918b;background:#1b2829eb;border-color:#5669666b;box-shadow:inset 0 1px 0 #ffffff08;text-shadow:none}
body.touchmode #touch #dodgebutton:disabled{opacity:1;color:#93909f;background:#232734eb;border-color:#666a8066;box-shadow:none;text-shadow:none}
body.touchmode #touch #guardbutton.counterready{background:#a5eff4;color:#102932;border-color:#e4ffff;box-shadow:0 0 16px #8ceeff70,0 3px 0 #244b59;text-shadow:none}
body.touchmode #touch #guardbutton.active:not(.counterready){background:#477584;border-color:#c4f4fa}
body.touchmode #touch #guardbutton.broken{background:#55372f;border-color:#e5a081;color:#ffe0c2}
body.touchmode #touch #guardbutton.recovering:not(.counterready){border-color:#ba987d}
body.touchmode #touch #dodgebutton.danger:not(:disabled){background:#913b35;border-color:#ffad95;color:#fff0dd;box-shadow:0 0 14px #ff74554d,0 3px 0 #4a2022}
body.touchmode #touch .fightpad button:active:not(:disabled){transform:translateY(2px);filter:brightness(1.16)}
@media(hover:none){body.touchmode #touch .fightpad button:hover{filter:none}}
@media(max-height:380px) and (orientation:landscape){body.touchmode #touch .fightpad{height:160px;grid-template-rows:44px 56px 48px;gap:6px}}

.launch-feedback{font-size:14px;color:#e8c998;line-height:1.5}.launch-feedback:empty{display:none}#play-without-signin{width:100%;min-height:48px;margin-top:8px}

/* Fight-club menu system. Combat colors and thumb controls stay independent. */
:root{--menu-ink:#f5eee5;--menu-muted:#b4aaa8;--menu-panel:#201d23;--menu-line:#ffffff16;--menu-red:#ff684f;--menu-gold:#efc780}
#menu{background:radial-gradient(ellipse at 90% 0%,#792f353b,transparent 52%),repeating-linear-gradient(135deg,#ffffff02 0 1px,transparent 1px 18px),#131216;color:var(--menu-ink);scrollbar-color:#655059 #19171d;scrollbar-width:thin;scroll-padding-top:90px}
.hub{max-width:1240px;padding:58px 40px 32px}.hubtop{padding:0 0 20px;border-bottom:1px solid var(--menu-line);align-items:center}.hubtop h1{font-family:Impact,'Arial Narrow',Arial,sans-serif;font-size:clamp(54px,7vw,86px);font-weight:900;letter-spacing:-2px;transform:none;line-height:.95;margin:12px 0}.hubtop h1 span{color:var(--menu-red)}.hub .eyebrow{color:var(--menu-gold);font-size:10px;letter-spacing:2px}.hubtagline{font-size:13px;color:var(--menu-muted);margin:12px 0 0;letter-spacing:.3px}.wallet{background:#efc78009;border:1px solid #efc7803d;border-radius:12px;padding:15px 20px;min-width:115px}.wallet span{font-size:10px;letter-spacing:2px;color:#c8b48e}.wallet strong{font:700 30px monospace;color:var(--menu-gold)}
.hubnav{position:sticky;top:0;z-index:8;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:12px 0;background:#131216f7;border-bottom:1px solid var(--menu-line);overflow:visible}.hubnav button{position:relative;min-height:52px;padding:14px 8px;background:transparent;border:1px solid transparent;border-radius:8px;font-size:12px;letter-spacing:1.2px;color:var(--menu-muted)}.hubnav button.selected{color:#fff3e8;background:#ff684f16;border-color:#ff684f55}.hubnav button.selected:after{content:'';position:absolute;bottom:5px;left:calc(50% - 8px);width:16px;height:2px;background:var(--menu-red);border-radius:2px}.hub button:focus-visible,dialog button:focus-visible{outline:2px solid var(--menu-gold);outline-offset:3px}.hubtools{margin:14px 0 0;gap:8px}.hubtools button{border-radius:6px;min-height:40px;border-color:#ffffff22;background:#ffffff04;color:#c1b8b2;font-size:10px;letter-spacing:.8px}.hubtools #training-start{color:var(--menu-gold);border-color:#efc78040}#savestatus{font:11px monospace;color:#9e969e;padding:12px 0;min-height:38px}#savestatus.error{color:#ffb09a}.hub h2{font-size:30px;letter-spacing:-.8px;color:var(--menu-ink)}.hub p{color:var(--menu-muted)}.levelintro{margin:6px 0 14px}.levelintro h2{margin:8px 0}.levelintro>span{color:#b4a8a3;font-size:11px}
.campaign-quick{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #ff684f40;border-radius:12px;padding:18px 20px;margin:0 0 22px;background:linear-gradient(110deg,#4a2529,#251d24 70%)}.campaign-quick>div{min-width:0}.campaign-quick .eyebrow{display:block;color:#eea18b;font-size:9px;margin-bottom:7px}.campaign-quick strong{display:block;font-size:18px;line-height:1.35}.hub .primary,.resultactions .primary,#overlay .primary,.settingscard .primary{background:var(--menu-red);color:#201415;border:1px solid #ff9f7e;box-shadow:none;border-radius:8px;min-height:48px;justify-content:center;font-size:12px;font-weight:800;letter-spacing:1px}.campaign-quick .primary{width:auto;min-width:145px;flex-shrink:0;padding:14px 20px;margin:0}.chapternav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin:0 0 18px;overflow:visible}.chapternav button{min-width:0;min-height:50px;padding:10px 8px;font:10px monospace;line-height:1.5;letter-spacing:0;color:#a9a0a5;background:#211d24;border:1px solid var(--menu-line);border-radius:7px}.chapternav button.selected{color:#f7d3af;border-color:#c1916766;background:#392b2c}
.campaign-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start}#levelgrid{gap:8px}.level-card{min-height:76px;border-radius:9px;background:#211e25;border:1px solid var(--menu-line);padding:15px 16px;gap:15px}.level-card.selected{background:#37252a;border-color:#ff684f88;box-shadow:inset 3px 0 var(--menu-red)}.level-card.locked{background:#1a181e;color:#aca1a7}.level-card .level-number{color:#847580;font:22px monospace}.level-card.selected .level-number{color:#ff9b80}.level-name{font-size:16px;line-height:1.35}.level-name small{color:#a99da5;line-height:1.4;margin-top:4px;font-size:11px}.level-rank{color:#d0bcb9}.level-rank.gold{color:var(--menu-gold)}#leveldetail{overflow:hidden;border-radius:12px;border:1px solid #ffffff20;border-top:3px solid var(--menu-red);padding:26px;background:radial-gradient(ellipse at 100% 0,#76374444,transparent 70%),#211d25;scroll-margin-top:90px}#leveldetail h2{font-family:Impact,'Arial Narrow',Arial,sans-serif;font-size:42px;letter-spacing:.1px;font-weight:500;line-height:1.1;margin:16px 0}#leveldetail p{font-size:14px;line-height:1.65}.mission-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:18px 0;border-color:var(--menu-line)}.mission-facts strong{font:700 24px monospace;color:#eee2d6}.mission-facts span{color:#af9ca6;font-size:9px;letter-spacing:1px}.best-record{padding:18px 0 8px}.best-record span{font-size:10px;color:#ad9ca6}.best-record strong{color:var(--menu-gold);font-size:15px;line-height:1.5}#leveldetail .reward-line{color:#d3b891;font-size:12px}#leveldetail .primary{margin:18px 0 8px}.levelmedals{margin-top:20px;border-color:var(--menu-line)}.levelmedals h3{color:#ccb7ad}.medalrow{margin:12px 0;color:#a595a0}.medalrow small{color:#b6a8b0;font-size:11px}.medalrow.earned{color:var(--menu-gold)}
.field-guide{margin-top:26px;border:1px solid var(--menu-line);border-radius:10px;overflow:hidden;background:#1b181f}.field-guide .rank-guide{margin:0;padding:0;border:0;border-bottom:1px solid var(--menu-line)}.field-guide .rank-guide:last-child{border:0}.rank-guide summary{padding:18px 20px;color:#d9c8c0;font:12px monospace;line-height:1.5;min-height:50px}.rank-guide[open] summary{color:var(--menu-gold);background:#ffffff03}.rank-guide p{padding:0 20px;font-size:13px;line-height:1.7}.control-guide,.reward-guide{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#ffffff10;margin:16px 20px;border:1px solid #ffffff10;border-radius:6px;overflow:hidden}.control-guide span,.reward-guide span{background:#221e27;padding:12px;font-size:11px;color:#b7a9b0}.control-guide b,.reward-guide b{display:block;margin-top:7px;font-size:12px;color:#efcfac}
.shopheading{margin-top:8px}.shopheading h2{margin-top:12px}.shopheading p{margin:8px 0;font-size:13px}#loadout-preview{color:var(--menu-gold)}#loadout-preview canvas{border-radius:10px;border-color:#efc78030}.shopfilters{gap:6px;margin:18px 0}.shopfilters button{border-radius:6px;border-color:var(--menu-line);background:#211e25;color:#bfb1b9;font-size:10px;letter-spacing:.6px;min-height:40px}.shopfilters button.selected{background:#f0c68b;color:#2a1c22;border-color:#f0c68b}.shop-search{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.shop-search label{color:#c3adb3;font:10px monospace;letter-spacing:1px}.shop-search>div{display:flex;gap:6px;flex:1;min-width:160px}.shop-search input{width:100%;min-width:0;min-height:44px;background:#151218;color:#f4ece5;border:1px solid #ffffff25;border-radius:7px;padding:10px 13px;font:16px Arial;user-select:text;touch-action:manipulation}.shop-search input::placeholder{color:#978b96}.shop-search input:focus{outline:2px solid var(--menu-gold);outline-offset:1px}.shop-search button{border-radius:6px;font-size:10px;padding:0 12px}.shop-search>span{font:10px monospace;color:#b9a3ae;min-width:60px}#shopstatus{font-size:12px;color:#c6ad9c;margin:12px 0 18px}.shop-card{border-radius:12px;padding:12px;background:#211e26;border-color:var(--menu-line);overflow:hidden}.shop-card.equipped{border-color:#efc78088}.shop-card.signature-skin{background:linear-gradient(145deg,#3a2945,#211e26);border-color:#bd8ace66}.item-art{border-radius:8px}.item-tag{color:#efcf9b;background:#241a23df;border-radius:4px;font-size:9px}.shop-card p{font-size:12px;color:#b6a7b1}.shop-card h3{font-size:16px;color:#f1e2d9}.shop-card button{color:var(--menu-gold);border-color:#efc78030;background:#efc78008;border-radius:7px;min-height:44px;font-size:11px}.shop-empty{grid-column:1/-1;padding:50px 20px;text-align:center;border:1px dashed #ffffff28;border-radius:10px}.shop-empty strong{font-size:20px}.shop-empty p{font-size:14px}
.skillbranch{background:#211d26;border-color:#ffffff18;border-radius:12px}.skillnode{background:#2b2530;border-color:#ffffff24;border-radius:7px}.skillnode.locked{background:#19161e}.skillnode h4{color:#f4e9df}.skillnode p,.skillrequires{color:#bdacb5}.skillnode button{border-radius:6px;background:#ffffff05}.skillheading>strong{color:var(--menu-gold)}.masteryreward,.masterylevel{background:#211d26;border-color:#ffffff20;border-radius:10px}.masteryreward.earned,.masterylevel.complete{border-color:#efc78077}.masteryreward>span,.masterylevel small{color:#b8a6b2}.masteryreward button{border-radius:6px}.masteryheading>strong,.masterylevel.complete strong{color:var(--menu-gold)}.masterybar{background:#392c35;border-radius:4px;overflow:hidden}.masterybar i{background:var(--menu-gold)}#masterynext{color:#cbb5a8}.night-card,.endless-card{padding:28px;border-radius:12px;border:1px solid #ffffff20;background:radial-gradient(ellipse at 100% 0%,#67415d44,transparent 70%),#211d26;max-width:none}.endless-card{background:radial-gradient(ellipse at 100% 0%,#8a39283b,transparent 70%),#211d26}.night-card .primary,.endless-card .primary{width:100%;margin-bottom:0}.endless-card h2{font-size:32px}#endlessview{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px;align-items:start}.night-card{margin-bottom:0}.night-card p,.endless-card p{font-size:14px}.hubfoot{color:#9a8792;font-size:9px;padding-top:22px;border-top:1px solid var(--menu-line);line-height:1.6}
#overlay,#results,#nightchoice{background:#100e15ed}#overlay{overflow:auto;touch-action:pan-y;padding:18px;align-items:safe center}.overlaycard,.resultcard{background:#211b25;border:1px solid #ffffff20;border-radius:16px;padding:28px;width:min(620px,100%);margin:auto}.overlaycard h2{font-size:36px;line-height:1.1}.overlaycard .eyebrow,.resultcard .eyebrow{color:var(--menu-gold)}.overlaycard p{font-size:14px;color:#c5afb8}.overlaycard .secondary,.resultactions .secondary{border-radius:8px;background:#ffffff04;border-color:#ffffff24;color:#dfcdd3;min-height:44px}.result-rank{color:var(--menu-gold);text-shadow:4px 4px #714431}#resultreward{color:var(--menu-gold)}#resultstats span{color:#c0a8b6}dialog{background:#211b25;border-color:#7f616f;border-radius:14px}.settingscard p{color:#c1abb7}.settingscard label{color:#ecdedb}.settingscard select{background:#342a38;border-color:#866d80}.settingscard input[type=range],.settingscard input[type=checkbox]{accent-color:var(--menu-red)}.settingsactions>button{border-radius:7px}.settingscard .eyebrow{color:var(--menu-gold)}
@media(max-width:850px){.hub{padding:55px 22px 25px}.chapternav{grid-template-columns:repeat(3,minmax(0,1fr))}.hubtop h1{font-size:64px}.campaign-layout{gap:14px}#leveldetail{padding:20px}#leveldetail h2{font-size:35px}}
@media(max-width:700px){.campaign-layout{grid-template-columns:1fr}.campaign-quick{padding:16px}.campaign-quick strong{font-size:16px}#endlessview{grid-template-columns:1fr}.control-guide,.reward-guide{grid-template-columns:repeat(2,minmax(0,1fr))}.level-card{min-height:68px}.levelintro{flex-direction:row;align-items:center}.levelintro h2{font-size:22px}.levelintro>span{font-size:10px}#leveldetail{scroll-margin-top:82px}.hubnav button{font-size:10px;letter-spacing:.4px;min-height:48px;padding:12px 2px}.hubnav{gap:3px;padding:8px 0}.shop-search{gap:8px}.shop-search label{width:100%}.shopheading h2{font-size:24px}.shopheading p{max-width:200px}.hubfoot{display:flex;flex-direction:column;gap:4px}}
@media(max-width:480px){.hub{padding:52px max(14px,env(safe-area-inset-right)) 24px max(14px,env(safe-area-inset-left))}.hubtop{gap:10px;padding-bottom:18px}.hubtop h1{font-size:clamp(38px,11vw,52px);letter-spacing:-1px;margin:12px 0}.hubtop .eyebrow{display:block;font-size:8px;letter-spacing:1px}.hubtagline{font-size:11px;max-width:190px;line-height:1.5;margin-top:8px}.wallet{min-width:74px;padding:12px}.wallet strong{font-size:23px}.wallet span{font-size:8px}.campaign-quick{gap:10px}.campaign-quick strong{font-size:14px}.campaign-quick .primary{min-width:100px;padding:12px 10px;font-size:10px}.chapternav button{font-size:9px;min-height:44px;padding:8px 5px}.levelintro{gap:8px}.levelintro h2{font-size:20px}.hubtools button{padding:10px;font-size:9px}.hubnav button{font-size:9px}.shop-card{padding:9px}.shop-card h3{font-size:14px}.item-art canvas{height:148px}.shopfilters button{padding:10px;font-size:9px}.overlaycard,.resultcard{padding:20px 15px}.overlaycard h2{font-size:30px}.settingscard label{gap:10px;flex-wrap:wrap}.settingscard select{max-width:100%}.hubfoot{font-size:8px}}
@media(max-height:540px) and (orientation:landscape){.hub{padding-top:45px}.hubtop{padding-bottom:12px}.hubtop h1{font-size:48px;margin:6px 0}.hubtagline{margin-top:5px}.hubnav button{min-height:42px;padding:10px 4px}.hubnav{padding:6px 0}.campaign-quick{padding:12px 16px}.overlaycard{padding:18px}.overlaycard h2{font-size:28px;margin:10px 0}.overlaycard .primary{margin:16px auto 10px}.resultcard{padding:16px}.chapternav{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.hub *{scroll-behavior:auto!important;transition:none!important}}
/* Menu fit and safe-area rules; keep these separate from combat controls. */
:root{--menu-utility-height:calc(56px + env(safe-area-inset-top,0px))}
body:has(#menu:not([hidden])) header{
 position:fixed;top:0;left:0;right:0;height:var(--menu-utility-height);
 padding:calc(6px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right)) 6px max(16px,env(safe-area-inset-left));
 background:#131216;justify-content:flex-end;align-items:center;border-bottom:1px solid #ffffff0a;
}
body:has(#menu:not([hidden])) header .topright{align-items:center;gap:8px}
body:has(#menu:not([hidden])) header .topright :is(#sound,#settings-open,#pause){height:44px;min-width:44px;padding:0 12px;background:transparent;border:1px solid #ffffff18;border-radius:7px;font-size:10px}
.hub{padding-top:calc(var(--menu-utility-height) + 14px);padding-bottom:max(28px,env(safe-area-inset-bottom));padding-left:max(22px,env(safe-area-inset-left));padding-right:max(22px,env(safe-area-inset-right))}
.hubnav{top:var(--menu-utility-height)}
#menu{scroll-padding-top:calc(var(--menu-utility-height) + 84px);scrollbar-gutter:stable}
#leveldetail{scroll-margin-top:calc(var(--menu-utility-height) + 84px)}
.hubtop{flex-wrap:wrap}.hubtop>div:first-child{min-width:0;flex:1 1 190px}.wallet{flex:0 1 auto;max-width:100%}.wallet strong{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.hub :is(h2,h3,h4,p,strong,small),.overlaycard,.resultcard{overflow-wrap:anywhere}
.hub :is(.campaign-layout,.level-name,.shopheading>div,.skillheading>*,.masterylevel,.masteryreward,.shop-card,.night-card,.endless-card){min-width:0}
.level-rank{flex-shrink:0}.level-card{align-items:center}.levelintro{flex-wrap:wrap}.levelintro>span{white-space:normal;line-height:1.5}
#shopgrid{grid-template-columns:repeat(4,minmax(0,1fr))}
#masteryrewards{grid-template-columns:repeat(6,minmax(0,1fr))}
#masterygrid{grid-template-columns:repeat(3,minmax(0,1fr))}
.branchgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
.hub button{white-space:normal;line-height:1.4}.hubnav button{min-width:0}
.hubtools button,.shopfilters button{min-height:44px}
.shop-search>div{min-width:0;flex-basis:180px}.shop-search>span{line-height:1.5}
.shop-card h3{line-height:1.35}.item-tag{max-width:calc(100% - 16px);line-height:1.4;overflow-wrap:anywhere}
.shopheading>div:first-child{flex:1}#loadout-preview{flex-shrink:0}
.overlaycard .primary{width:min(280px,100%)}
#overlay,#results,#nightchoice{padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom));padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));overscroll-behavior:contain}
#results,#nightchoice{align-items:safe center}
.resultactions button{max-width:100%;overflow-wrap:anywhere}.resultactions{gap:8px}
.settingsactions{flex-wrap:wrap}.settingsactions>button{flex:1 1 120px;min-height:44px}.settingscard label{min-width:0}.settingscard input[type=range]{min-width:0}.settingscard input[type=checkbox]{flex-shrink:0}
dialog{max-height:calc(100dvh - max(16px,env(safe-area-inset-top)) - max(16px,env(safe-area-inset-bottom)));overscroll-behavior:contain}
@media(max-width:900px){#masteryrewards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){#shopgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){
 .hub{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
 #shopgrid,#masterygrid,#masteryrewards{grid-template-columns:repeat(2,minmax(0,1fr))}
 .hubnav button{font-size:10px;letter-spacing:0;min-height:48px}
 .campaign-quick{flex-wrap:wrap}.campaign-quick>div{flex:1 1 130px}.campaign-quick .primary{flex:1 0 110px;max-width:100%}
 .settingscard label:not(.checkrow){display:grid;grid-template-columns:1fr;gap:10px}
 .settingscard input[type=range],.settingscard select{width:100%;max-width:100%}
 #resultstats{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 10px}
 .resultactions>button{flex:1 1 140px}.resultactions>.primary{flex-basis:100%}
 .skilltier{flex-wrap:wrap;gap:4px}.shop-card button{letter-spacing:0}
}
@media(max-width:360px){
 .hubtop{gap:12px}.hubtop>div:first-child{flex-basis:100%}.hubtop h1{font-size:44px}.hubtagline{max-width:none}
 .wallet{display:flex;align-items:center;gap:12px;padding:8px 12px}.wallet strong{font-size:20px;margin:0}
 .hubnav button{font-size:9px}.level-card{gap:10px;padding:12px}.level-name{font-size:14px}
 .level-rank{font-size:21px}.shopheading h2{font-size:21px}.shopheading{gap:10px}
 #loadout-preview canvas{width:70px;height:72px}.shop-search>div{flex-basis:100%}
 .control-guide,.reward-guide{margin:12px}.rank-guide summary{padding:16px 12px}.rank-guide p{padding:0 12px}
}
@media(max-height:440px) and (orientation:landscape){
 .hubnav{position:relative;top:auto}#menu{scroll-padding-top:calc(var(--menu-utility-height) + 12px)}#leveldetail{scroll-margin-top:calc(var(--menu-utility-height) + 12px)}
 .chapternav{grid-template-columns:repeat(3,minmax(0,1fr))}
}
