/* Mobile game shell. Original Riftline UI; no commercial game art is used. */
:root{--control-scale:1;--control-opacity:.94;--edge-space:0px;--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
button{-webkit-tap-highlight-color:transparent}.screen,#hud{padding-left:var(--safe-left);padding-right:var(--safe-right)}
#lobby{background:linear-gradient(90deg,#0a1726dd 0%,#0d203240 35%,transparent 62%,#0b1c30ad),linear-gradient(0deg,#081728fa,transparent 45%,#10213733)}
.lobby-header{height:88px;padding:0 max(28px,var(--safe-left));gap:28px;border-bottom:1px solid #a6b7c51a;background:linear-gradient(180deg,#10243bdd,transparent)}
.brand{font-size:23px;letter-spacing:4px;gap:10px;flex-shrink:0}.brand-mark{font-size:44px}.brand small{letter-spacing:4px;font-size:8px;color:#859baa}
.lobby-account{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:12px;color:#dfd8c6}.lobby-account small{display:block;font-size:8px;color:#88a3b4;margin-top:4px}.phone-link{border:1px solid #adb9c333;padding:10px 14px;font-size:11px;background:#2a435044;border-radius:3px}.icon-btn{margin-left:0;min-width:40px;min-height:40px}
.lobby-header nav{position:absolute;left:max(25px,var(--safe-left));top:31%;width:135px;height:auto;display:flex;flex-direction:column;gap:10px;align-items:stretch;z-index:2}.lobby-header nav button{height:48px;flex-shrink:0;text-align:left;padding:0 12px;font-size:13px;border:1px solid transparent;border-left:2px solid transparent;background:linear-gradient(90deg,#142c4366,transparent)}.lobby-header nav button span{display:inline-block;font-size:20px;width:32px;color:#95a9b4}.lobby-header nav .nav-active{border-color:#b9a27d22;border-left-color:var(--gold);background:linear-gradient(90deg,#ad925e33,transparent)}.lobby-header nav .nav-active span{color:var(--gold)}
.hero-copy{left:19%;top:19%}.hero-copy h1{font-size:28px;letter-spacing:4px;margin:10px 0}.hero-copy h1 span{margin-left:5px}.hero-copy .eyebrow{font-size:8px;letter-spacing:3px}.mode-tag{font-size:9px;margin-top:12px;display:flex}.hero-caption{right:5%;top:31%;width:188px}.hero-caption h2{font-size:27px}.hero-caption>span{font-size:11px}.hero-caption p{font-size:11px;color:#adbfcb}#hero-skills{padding-left:5px}
.lobby-bottom{left:19%;right:4%;bottom:62px;gap:24px}.hero-card{width:139px;background:linear-gradient(150deg,#203c4dd9,#102438e6);padding:13px 15px;min-height:100px;border-color:#99b9cf30;box-shadow:inset 0 1px #e5eeed1a}.hero-card .sigil{font-size:25px;margin-bottom:7px}.hero-card.selected{background:linear-gradient(140deg,#657c8130,#3b4e5e);box-shadow:inset 0 0 15px #ffe9bb0a,0 6px 18px #0003}.hero-card.selected:after{content:'出战';font-size:8px;right:6px;top:6px;background:#d7bd8426;padding:3px 4px}.hero-card b{font-size:11px}.hero-card small{font-size:8px}.launch{width:240px}.launch select{background:#18314aeb}.launch .primary{border:1px solid #ffe8b59c;background:linear-gradient(120deg,#e9cc94,#bba069);box-shadow:inset 0 0 0 3px #322c4226,0 8px 25px #0005;height:55px}.lobby-footer{left:4%;right:4%;font-size:9px}
#hud{background:linear-gradient(0deg,#07132370,transparent 31%,transparent 90%,#07132366)}.top-score{top:7px;background:linear-gradient(180deg,#101e2fdd,#13273c99);border:1px solid #a3b5c330;clip-path:none;border-radius:4px;padding:5px 25px;gap:25px}.top-score small{font-size:8px;letter-spacing:2px}.top-score strong{font-size:16px}.top-score>span{font-size:26px}.top-left{left:calc(max(20px,var(--safe-left)) + 178px);top:15px;gap:6px}.square{width:31px;height:31px;border-radius:50%;background:#132a3de6;border-color:#a9c8d74d}.top-left #fps{font-size:9px;white-space:nowrap}.top-right{right:max(17px,var(--safe-right));top:16px;gap:13px}#shop-btn{background:linear-gradient(130deg,#1d3950,#14283b);border-color:#c0b08980;min-height:36px;min-width:92px;border-radius:2px}.top-right #kda{font-size:11px}#shop-btn small{font-size:9px}
.minimap-wrap{left:max(16px,var(--safe-left));top:13px;width:164px;border:1px solid #a1b4c19c;border-radius:0 0 6px 0;box-shadow:0 4px 18px #0004}.minimap-wrap canvas{height:100px}.minimap-wrap>div{padding:0 8px;height:24px;background:#112639d9}.minimap-wrap button{font-size:20px}#objective{left:max(18px,var(--safe-left));top:151px;font-size:10px}#objective span{font-size:8px}.hero-status{width:228px;left:48%;bottom:calc(17px + var(--safe-bottom));transform:translateX(-50%);gap:8px;background:linear-gradient(90deg,transparent,#12293e88,transparent);padding:4px;border-radius:5px}#portrait{width:43px;height:43px;font-size:24px;flex-shrink:0}#portrait b{font-size:10px;width:20px;height:20px}.status-heading{font-size:8px}.status-heading span{font-size:8px}#inventory{gap:3px;margin-top:6px}#inventory button{height:22px;width:25px;font-size:12px}.health-track{height:7px}#control-tip{font-size:8px;bottom:1px}
#joystick.gamepad{position:absolute;left:calc(max(30px,var(--safe-left)) + var(--edge-space));bottom:calc(31px + var(--safe-bottom));width:174px;height:174px;border:0;background:transparent;box-shadow:none;display:block;transform:scale(var(--control-scale));transform-origin:bottom left;opacity:var(--control-opacity);touch-action:none;isolation:isolate;pointer-events:auto}
.pad-rim{position:absolute;inset:0;border-radius:50%;border:1px solid #b6d5df4d;background:radial-gradient(circle at 35% 30%,#7a9bad30,#17334b66 55%,#10273d99 70%);box-shadow:inset 0 0 0 5px #769aac0a,0 8px 18px #0002;pointer-events:none}.pad-rim:after{content:'';position:absolute;inset:12%;border-radius:50%;border:1px dashed #b4ced426}.pad-cross{position:absolute;inset:12%;background:linear-gradient(150deg,#546e7b,#172d46);clip-path:polygon(34% 0,66% 0,66% 34%,100% 34%,100% 66%,66% 66%,66% 100%,34% 100%,34% 66%,0 66%,0 34%,34% 34%);filter:drop-shadow(0 4px 4px #0008);pointer-events:none}
.pad-key{position:absolute;display:flex;align-items:center;justify-content:center;border:1px solid #afcbd14d;background:linear-gradient(145deg,#4d6c7acc,#1e364dd9);color:#d6e6e8;box-shadow:inset 0 2px #e2f2ef26,0 3px 0 #081a29a6;z-index:2;font-size:14px;gap:4px;border-radius:7px;min-width:0;min-height:0;padding:0;pointer-events:auto}.pad-key i{font-size:8px;font-style:normal;color:#a8c9d9}.pad-key b{font:600 16px system-ui}.pad-key.north,.pad-key.south{left:35%;width:30%;height:35%;flex-direction:column}.pad-key.north{top:5%;border-radius:10px 10px 4px 4px}.pad-key.south{bottom:5%;border-radius:4px 4px 10px 10px}.pad-key.west,.pad-key.east{top:35%;height:30%;width:35%;flex-direction:row}.pad-key.west{left:5%;border-radius:10px 4px 4px 10px}.pad-key.east{right:5%;border-radius:4px 10px 10px 4px}.pad-key.pressed{background:linear-gradient(145deg,#abd6db,#446b86);color:#fff9dc;border-color:#d3f4f3;box-shadow:inset 0 2px 7px #17233288,0 0 17px #8ce8e780;translate:0 2px}.pad-key.pressed i{color:#fff5c5}
#joystick #stick{position:absolute;inset:38%;width:auto;height:auto;border:1px solid #adc4cb77;border-radius:9px;background:linear-gradient(140deg,#658594,#243b52);box-shadow:inset 0 1px #d8f1f333,0 2px 6px #0005;display:grid;place-items:center;z-index:3;pointer-events:none;color:#c9dce2;font-size:20px}#joystick .pad-label{position:absolute;left:0;right:0;bottom:-20px;text-align:center;letter-spacing:2px;font-size:8px;color:#cadade;pointer-events:none}body.touch #joystick>.pad-label{font-size:8px}body.touch #joystick>.pad-label:after{content:none}
.utility{left:48%;bottom:calc(101px + var(--safe-bottom));transform:translateX(-50%);gap:18px;opacity:var(--control-opacity)}.utility button{width:42px;height:42px;background:linear-gradient(135deg,#31516ac9,#172d45e0);border-color:#a0c6d57d;box-shadow:inset 0 0 0 3px #8fb8c410,0 5px 10px #0003}.utility button span{font-size:23px}.utility button small{top:46px;font-size:8px}#heal-btn{color:#a4efc5;border-color:#8bccad88}
#combat-controls{position:absolute;right:calc(max(25px,var(--safe-right)) + var(--edge-space));bottom:calc(32px + var(--safe-bottom));width:260px;height:232px;transform:scale(var(--control-scale));transform-origin:bottom right;opacity:var(--control-opacity);pointer-events:none}.combat-orbit{position:absolute;width:230px;height:230px;border-radius:50%;right:-49px;bottom:-52px;border:1px solid #bfd3d72e;box-shadow:0 0 0 17px #b0c5d006,0 0 0 18px #aec7d617;pointer-events:none}
#skills{inset:0;position:absolute;display:block;pointer-events:none}.skill{position:absolute;width:65px;height:65px;border:2px solid #b9d0dca3;background:radial-gradient(circle at 38% 30%,#356d8ae8,#16314bf2 70%);box-shadow:inset 0 0 0 3px #061c2f70,0 0 0 3px #c2d6d71c,0 7px 15px #0005;color:#bfe8f5;pointer-events:auto;overflow:visible}.skill[data-skill="0"]{left:0;bottom:0}.skill[data-skill="1"]{left:30px;bottom:100px}.skill.ultimate{width:76px;height:76px;right:17px;top:0;bottom:auto;border-color:#e5c28e;background:radial-gradient(circle at 35% 25%,#806648e0,#243048f5 78%);color:#ffe7a8}.skill span{font-size:31px;position:relative;z-index:1}.skill small{top:calc(100% + 8px);font-size:8px;letter-spacing:1px;text-shadow:0 1px 5px #000;color:#e3e7de}.skill.ultimate small{top:calc(100% + 7px)}.skill b{background:#071629d9;z-index:3;font-size:21px}.skill em{position:absolute;font:7px system-ui;font-style:normal;bottom:6px;left:0;right:0;text-align:center;color:#b5d1e2;z-index:2}.skill kbd{z-index:4;right:-2px;bottom:-4px}.skill.cooling:after{content:'';position:absolute;inset:-3px;border-radius:50%;background:conic-gradient(#b4e9ed var(--ready-angle),#1e334800 0);mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 0);pointer-events:none;z-index:4}.skill.ultimate.cooling:after{background:conic-gradient(#ffe0a4 var(--ready-angle),transparent 0)}.skill.aiming{box-shadow:0 0 0 4px #98dce23d,0 0 22px #92f5f2;border-color:#d4fff6}
#attack-btn{right:0;bottom:0;width:96px;height:96px;border:2px solid #e5d8b3;background:radial-gradient(circle at 40% 30%,#547e98ed,#193249ef 75%);box-shadow:inset 0 0 0 5px #08203166,0 0 0 5px #b8d3db20,0 7px 20px #0004;pointer-events:auto}#attack-btn>span{display:block;margin-top:-6px}#attack-btn svg{width:45px;height:45px;fill:none;stroke:#f0e6c4;stroke-width:3;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 1px 4px #a9ddf080)}#attack-btn small{bottom:10px;left:0;right:0;font-size:9px;letter-spacing:3px;color:#f0e6c4}#attack-btn kbd{position:absolute;bottom:-18px;left:0;right:0;font:8px monospace;color:#b7cdd7}.target-attack{position:absolute;width:40px;height:40px;border-radius:50%;border:1px solid #9fbcc59f;background:linear-gradient(135deg,#3a5d71ce,#162d42e6);pointer-events:auto;box-shadow:0 3px 8px #0003}.target-attack span{font-size:19px;color:#c5dce1}.target-attack small{display:block;position:absolute;top:calc(100% + 4px);left:0;right:0;font-size:8px;color:#ccdbdf}.target-attack.pressed,#attack-btn.pressed{background:#829f9ded;box-shadow:0 0 16px #ccf7f7aa;border-color:#edffff}#minion-attack{left:85px;bottom:22px}#tower-attack{right:0;bottom:112px}
#aim-hint{right:max(20px,var(--safe-right));bottom:300px;font-size:10px;padding:7px 12px;background:#142f44c9;border:1px solid #aacdd33a}#cancel-cast{position:absolute;right:28px;top:25%;width:65px;height:65px;border:2px solid #cfb2ae88;border-radius:50%;display:grid;place-items:center;font-size:28px;color:#ffb6a4;background:#4b2c3a66;pointer-events:none}#cancel-cast small{font-size:8px;position:absolute;bottom:-19px;white-space:nowrap}#cancel-cast.cancel-active{background:#bb5b62a6;border-color:#ffd4c6}#announce{top:81px;font-size:13px;letter-spacing:1px}#feed{top:61px;right:18px}#recall-progress{bottom:163px}#toast{bottom:44%;font-size:11px;padding:10px 20px}
.modal{padding:max(14px,env(safe-area-inset-top)) max(14px,var(--safe-right)) max(14px,var(--safe-bottom)) max(14px,var(--safe-left));background:#07111fd1}.panel{background:linear-gradient(135deg,#243d54,#0e2033);border-color:#8a9eaf8c;border-radius:4px;box-shadow:0 0 0 4px #4d667511,0 25px 80px #0009;padding:28px 34px;max-height:94dvh}.panel h2{font-size:23px;letter-spacing:2px}.close{width:38px;height:38px;right:5px;top:3px;border:1px solid #abc5d33a;background:#12283b90;border-radius:3px}.item-card{border-radius:3px;background:linear-gradient(135deg,#38546a66,#1b344c88);min-height:72px}.item-card .item-icon{font-size:27px}.panel .row{padding:10px 0}.row input[type="range"]{width:150px;accent-color:#d2b47d;touch-action:pan-x}.row output{color:#d1c6a8;font-size:11px;min-width:38px;text-align:right}.setting-control{display:flex;align-items:center;gap:10px}.settings-tip{font-size:10px!important}.settings-tabs{display:flex;gap:8px;align-items:center;margin:8px 0;color:#9ab9cd;font-size:10px}.settings-tabs span{background:#3050658a;padding:5px 9px;border:1px solid #7895a544}.panel .primary{min-height:42px}.phone-instructions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.phone-instructions>div{border:1px solid #acb9bc33;padding:14px}.phone-instructions h3{color:var(--gold)}.phone-instructions a{color:#c5e8ee}.phone-instructions code{font-size:10px;word-break:break-all}.profile-summary{color:#a5c5cb}
#rotate{background:radial-gradient(ellipse at 45% 40%,#27455f,#0c1b2f)}#rotate .primary{max-width:245px;margin:20px 0 10px}#rotate small{font-size:10px;color:#8fa9bd;line-height:1.8}#rotate p{margin:5px 0}
@media(max-height:650px){.lobby-header{height:66px;padding:0 max(22px,var(--safe-left));gap:20px}.brand{font-size:18px}.brand-mark{font-size:36px}.brand small{font-size:7px}.lobby-account{font-size:10px}.phone-link{font-size:10px;padding:8px 12px}.lobby-header nav{left:max(18px,var(--safe-left));width:110px;top:29%;gap:8px}.lobby-header nav button{height:41px;font-size:11px;padding:0 8px}.lobby-header nav button span{font-size:18px;width:27px}.hero-copy{left:19%;top:20%}.hero-copy h1{font-size:24px}.hero-caption{right:4%;top:28%;width:162px}.hero-caption h2{font-size:23px}.hero-caption p{font-size:10px}.hero-copy .mode-tag{font-size:8px}.lobby-bottom{bottom:44px;left:18%;right:4%;gap:16px}.hero-card{width:112px;min-height:86px;padding:11px 12px}.hero-card .sigil{font-size:22px;margin-bottom:5px}.hero-card b{font-size:10px}.hero-card small{font-size:7px}.hero-card.selected:after{font-size:6px}.launch{width:198px}.launch .primary{height:45px}.lobby-footer{bottom:14px;font-size:8px}.section-label{font-size:8px}.top-left{left:calc(max(14px,var(--safe-left)) + 137px);top:10px}.square{width:28px;height:28px}.top-left #fps{font-size:8px;margin-left:2px}.top-score{top:7px;gap:15px;padding:4px 18px}.top-score>span{font-size:23px}.top-score strong{font-size:14px}.top-score small{font-size:7px}.top-right{top:10px;gap:8px}.top-right #kda{font-size:9px}#shop-btn{min-height:30px;min-width:85px;padding:7px 9px}.minimap-wrap{left:max(12px,var(--safe-left));top:10px;width:123px}.minimap-wrap canvas{height:75px}.minimap-wrap>div{height:20px;font-size:7px}#objective{top:119px;left:max(14px,var(--safe-left));font-size:8px}#objective span{font-size:7px}#joystick.gamepad{left:calc(max(26px,var(--safe-left)) + var(--edge-space));bottom:calc(30px + var(--safe-bottom));width:151px;height:151px}.pad-key b{font-size:15px}.pad-key i{font-size:7px}#combat-controls{width:238px;height:210px;right:calc(max(22px,var(--safe-right)) + var(--edge-space));bottom:calc(24px + var(--safe-bottom))}.skill{width:59px;height:59px}.skill[data-skill="1"]{left:24px;bottom:91px}.skill.ultimate{width:69px;height:69px;right:16px}.skill>span{font-size:28px}.skill small,body.touch .skill small{font-size:8px;top:calc(100% + 7px)}#attack-btn{width:87px;height:87px}#attack-btn svg{width:41px;height:41px}.target-attack{width:36px;height:36px}#minion-attack{left:78px;bottom:21px}#tower-attack{bottom:99px;right:0}.hero-status{width:202px;bottom:calc(16px + var(--safe-bottom));transform:translateX(-50%)}#portrait{width:37px;height:37px;font-size:22px}#inventory button{width:22px;height:20px}.utility{bottom:calc(100px + var(--safe-bottom));gap:15px}.utility button{width:39px;height:39px}.utility button small{top:43px}.utility button span{font-size:21px}#aim-hint{bottom:259px;right:20px;font-size:9px}.panel{padding:23px 28px}.row{font-size:11px}.panel .row{padding:8px 0}.panel h2{font-size:21px}.settings-tip{font-size:9px!important}#announce{top:62px;font-size:11px}#feed{font-size:9px}.combat-orbit{width:211px;height:211px}}
@media(max-height:450px){.lobby-header{height:54px;gap:14px}.brand{font-size:16px}.brand-mark{font-size:29px}.brand small{font-size:6px}.lobby-account{font-size:9px}.lobby-account small{font-size:7px}.phone-link{font-size:9px;padding:7px 9px}.icon-btn{font-size:23px;min-width:32px;min-height:32px}.lobby-header nav{width:104px;left:max(15px,var(--safe-left));top:27%;gap:7px}.lobby-header nav button{font-size:10px;height:36px}.lobby-header nav button span{font-size:16px;width:25px}.hero-copy{top:19%;left:18%}.hero-copy h1{font-size:21px;margin:9px 0}.hero-copy .eyebrow{font-size:6px;letter-spacing:2px}.mode-tag{font-size:7px;margin-top:7px}.hero-caption{right:4%;top:25%;width:143px}.hero-caption h2{font-size:20px;margin:9px 0}.hero-caption>span{font-size:9px}.hero-caption p{font-size:8px}.hero-caption #hero-skills{margin-top:12px}.hero-caption #hero-skills button{height:29px;width:29px}.lobby-bottom{bottom:31px;left:18%;right:4%;gap:12px}.hero-card{min-height:74px;width:100px;padding:9px 10px}#hero-cards{gap:8px}.hero-card .sigil{font-size:20px;margin-bottom:4px}.hero-card b{font-size:9px}.hero-card small{font-size:6px}.hero-card.selected:after{padding:2px;right:4px;top:4px}.launch{width:185px}.launch .primary{height:39px;font-size:12px;padding:10px 14px}.launch select{font-size:10px;height:27px}.section-label{font-size:7px;letter-spacing:1px}.lobby-footer{bottom:10px;font-size:6px}.minimap-wrap{width:110px;left:max(10px,var(--safe-left));top:9px}.minimap-wrap canvas{height:67px}.minimap-wrap>div{height:19px;font-size:6px}.top-left{left:calc(max(10px,var(--safe-left)) + 120px);top:9px;gap:5px}.square{width:27px;height:27px}.top-score{gap:14px;padding:3px 17px}.top-score small{font-size:6px;letter-spacing:1px}.top-score strong{font-size:13px}.top-score>span{font-size:22px}.top-right #kda{font-size:8px}#shop-btn small{font-size:7px;margin-left:6px}#shop-btn{min-width:75px;min-height:29px;font-size:10px}#objective{top:106px;font-size:7px;line-height:1.8}#objective span{display:none}#joystick.gamepad{width:142px;height:142px;left:calc(max(23px,var(--safe-left)) + var(--edge-space));bottom:calc(26px + var(--safe-bottom))}.pad-key b{font-size:14px}#combat-controls{width:226px;height:204px;right:calc(max(19px,var(--safe-right)) + var(--edge-space));bottom:calc(24px + var(--safe-bottom))}.skill{width:56px;height:56px}.skill[data-skill="1"]{left:22px;bottom:88px}.skill.ultimate{width:66px;height:66px;right:15px}.skill small,body.touch .skill small{font-size:7px}.skill em{font-size:6px}#attack-btn{width:83px;height:83px}#attack-btn small{font-size:8px;bottom:9px}#attack-btn svg{width:38px;height:38px}#tower-attack{bottom:96px}#minion-attack{left:74px;bottom:20px}.target-attack{width:35px;height:35px}.hero-status{width:184px;bottom:calc(15px + var(--safe-bottom))}#portrait{width:34px;height:34px;font-size:21px}.status-heading{font-size:7px;gap:6px}.status-heading span{font-size:7px}#inventory button{height:18px;width:20px;font-size:10px}.hero-status #hp-bar{min-width:0}.utility{bottom:calc(93px + var(--safe-bottom));gap:13px}.utility button{width:36px;height:36px}.utility button small{top:40px;font-size:7px}.utility button span{font-size:20px}.utility b{font-size:14px}#announce{top:58px;font-size:10px}#feed{font-size:8px;top:49px}#aim-hint{bottom:244px;font-size:8px}#cancel-cast{width:51px;height:51px;top:22%;right:24px;font-size:24px}.panel h2{font-size:19px}.panel .eyebrow{font-size:8px;margin-bottom:9px}.panel p{font-size:10px}.panel .row{padding:7px 0}.row select{padding:5px}.settings-tabs{margin:5px 0}.item-card{min-height:59px}.item-card .item-icon{font-size:23px}.combat-orbit{width:204px;height:204px}}
@media(max-width:740px) and (orientation:landscape){.lobby-account{display:none}.phone-link{margin-left:auto}.lobby-header nav{width:93px;left:max(10px,var(--safe-left))}.lobby-header nav button{font-size:9px;padding:0 6px}.lobby-header nav button span{width:22px}.hero-copy{left:18%}.hero-caption{width:124px;right:3%;top:24%}.hero-caption p{line-height:1.7;font-size:7px}.hero-caption h2{font-size:18px}.hero-caption #hero-skills{gap:10px}.hero-caption #hero-skills button{width:24px;height:24px}.hero-card{width:83px;padding:9px 7px;min-height:73px}.hero-card b{font-size:8px}.hero-card small{font-size:6px}.launch{width:154px}.lobby-bottom{left:18%;right:3%;gap:12px}.launch .primary{font-size:11px}.top-left #fps{display:none}.top-score{gap:12px;padding:3px 13px}.top-right #kda{display:none}#joystick.gamepad{width:136px;height:136px;left:calc(max(17px,var(--safe-left)) + var(--edge-space))}#combat-controls{right:calc(max(14px,var(--safe-right)) + var(--edge-space));width:216px;height:198px}.skill{width:54px;height:54px}.skill.ultimate{width:64px;height:64px}.skill[data-skill="1"]{left:19px;bottom:87px}#attack-btn{width:79px;height:79px}.target-attack{width:33px;height:33px}#minion-attack{left:69px;bottom:20px}#tower-attack{bottom:93px}.hero-status{left:47%;width:174px}.utility{left:47%;gap:11px}#inventory button{width:18px}.status-heading span{font-size:6px}.status-heading b{font-size:6px}.hero-status #portrait{width:32px;height:32px}.minimap-wrap{width:102px}.minimap-wrap canvas{height:62px}.top-left{left:calc(max(10px,var(--safe-left)) + 111px)}.settings-tip{margin:6px 0}.row input[type="range"]{width:125px}}

/* Tactical controls 1.2 */
.wallet-mini{font-size:9px;color:#e7cf99;display:block;padding:3px 0}.lobby-header nav{gap:5px}.lobby-header nav button{height:40px}.selection{min-width:0;flex:1}#hero-cards{overflow-x:auto;max-width:100%;scroll-snap-type:x mandatory;touch-action:pan-x;padding-bottom:5px}#lobby{touch-action:pan-x}.hero-card{flex-shrink:0;scroll-snap-align:start;touch-action:pan-x}.hero-locked:before{content:'待解锁 · 可试用';font-size:7px;color:#e0c8a2;display:block;position:absolute;top:5px;left:7px}.hero-locked{border-style:dashed}.hero-card{position:relative}.hero-locked .sigil{margin-top:8px}
.wallet-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center;padding:10px 0;color:#efd2a1;font-size:12px}.wallet-row .secondary{padding:7px 10px;margin-left:auto}.collection-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid #9bb6c633;padding-bottom:9px}.collection-tabs button{font-size:11px;padding:8px 12px;background:#18374d;border:1px solid #8faabd44;border-radius:3px}.collection-tabs button.active{color:#ffdfa6;border-color:#d8b77b;background:#68583b55}.collection-note{font-size:10px!important}.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}.collection-card{background:linear-gradient(145deg,#23465a,#142b41);border:1px solid #91acbf55;border-radius:5px;padding:12px;position:relative;text-align:left;min-width:0}.collection-card.owned{border-color:#aacbc788}.collection-card h3{font-size:13px;color:#ecdfbd;margin:10px 0 5px}.collection-card p{font-size:10px;min-height:55px;line-height:1.8}.collection-art{height:80px;display:grid;place-content:center;text-align:center;font-size:42px;color:var(--swatch);background:radial-gradient(ellipse at center,color-mix(in srgb,var(--swatch) 20%,transparent),transparent 70%)}.collection-art small{display:block;font-size:8px;margin-top:2px}.collection-card .primary,.collection-card .secondary{width:100%;padding:9px 4px;font-size:10px;margin:0;min-height:33px}.preview-item{font-size:9px;color:#c6e6ec;width:100%;padding:6px}.store-toolbar{display:flex;gap:12px;justify-content:space-between;align-items:center;font-size:10px}.store-toolbar select{background:#18354c;color:#ead3aa;padding:7px;border:1px solid #a5bfca44}.store-toolbar span{color:#a4d5ca;font-size:9px}.sandbox-notice{background:#6b552a55;color:#ffe1a2;border:1px solid #d4b06d80;padding:12px 15px;font-size:12px;margin:14px 0}.recharge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.recharge-grid .collection-card{min-height:120px;text-align:center}.recharge-grid b,.recharge-grid span,.recharge-grid small{display:block;margin:10px 0}.recharge-grid b{color:#ebcf97}.recharge-grid span{font-size:11px}.recharge-grid small{font-size:9px;color:#92c5c7}.rune-page{font-size:10px;color:#b7d6d9;background:#1a334866;padding:8px;margin-top:12px}.rune-page button{padding:6px 10px;font-size:9px;margin-left:8px}.ledger-row{font-size:11px;padding:12px 0;border-bottom:1px solid #87aabb33;display:flex;align-items:center;justify-content:space-between;gap:10px}.ledger-row .secondary{padding:7px;font-size:9px}.order-id{word-break:break-all;font-size:10px!important;user-select:text}
body[data-control="jade"] #combat-controls button,body[data-control="jade"] .pad-key{background:radial-gradient(circle at 35% 30%,#6cba9ce8,#154838ee);border-color:#c2f0ce;color:#edffe0}body[data-control="jade"] #attack-btn svg{stroke:#e6ffd3}body[data-control="neon"] #combat-controls button,body[data-control="neon"] .pad-key{background:radial-gradient(circle at 35% 30%,#806bd8e8,#28294fee);border-color:#c7a6ff;box-shadow:0 0 13px #9a76fc66}body[data-control="neon"] #attack-btn svg{stroke:#e8baff}
@media(max-height:450px){.lobby-header nav button{height:31px}.lobby-header nav{gap:5px}.collection-grid{gap:8px}.collection-card{padding:9px}.collection-art{height:54px;font-size:30px}.collection-card h3{font-size:11px}.collection-card p{font-size:9px!important}.wallet-row{font-size:10px;gap:10px}.collection-tabs button{font-size:10px;padding:6px 9px}.store-toolbar{font-size:9px}.store-toolbar span{font-size:8px}}
body{touch-action:auto}#world,#hud,#lobby{touch-action:none}.panel{overflow:hidden}#modal-content{max-height:calc(94dvh - 58px);overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;padding-right:6px}
.practice-link{font-size:11px;color:#a6dce3;padding:6px 12px;align-self:flex-end;border:1px solid #8fb2c044;border-radius:3px;background:#18334acc;margin:3px 0}.launch{position:relative}.launch .practice-link{position:absolute;right:0;top:-27px;padding:4px 8px;font-size:9px}
#target-lock{position:absolute;top:65px;left:50%;transform:translateX(-50%);background:#112a3dd9;border:1px solid #9ac9d34d;color:#b9d6db;padding:5px 12px;border-radius:16px;font-size:10px;pointer-events:auto;max-width:38vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#target-lock.locked{border-color:#ffd79d;color:#ffdfaf;background:#53432ddd}#attack-meter{position:absolute;bottom:calc(157px + var(--safe-bottom));left:48%;transform:translateX(-50%);width:132px;height:3px;background:#091d2f99;pointer-events:none}#attack-meter i{display:block;height:3px;width:var(--attack-progress,100%);background:#91dfca}#attack-phase{display:block;text-align:center;font-size:8px;white-space:nowrap;color:#b2e4d3;padding-top:5px}#attack-phase[data-phase="windup"]{color:#f9cd91}#hero-lock{left:85px;bottom:77px;width:35px;height:35px}#hero-lock small{font-size:7px}#net-status{position:absolute;left:0;top:35px;white-space:nowrap;font-size:8px;color:#9ee7c4}#practice-readout{position:absolute;left:50%;top:94px;transform:translateX(-50%);font-size:10px;background:#10253cbb;color:#b7e2d8;padding:7px 12px;white-space:nowrap}#announce{top:126px}.network-input{background:#142b36;border:1px solid #a2b6b750;color:#ead3aa;padding:13px;width:65%;user-select:text;min-width:0}.room-number{letter-spacing:7px;color:#ffda9c}.room-invite{display:flex;gap:22px;align-items:center}.room-invite #room-qr{background:#fff;padding:7px;flex-shrink:0;width:142px;min-height:142px}.room-invite #room-qr img{width:128px;height:128px}.room-invite code{display:block;word-break:break-all;user-select:text;color:#badde5;font-size:11px}.room-invite h3{margin:8px 0}.room-invite .secondary{padding:8px 14px;margin-top:9px}.offline-home{position:fixed;bottom:5px;right:8px;font-size:9px;background:#183647;border:1px solid #aac3c555;padding:5px;z-index:7}body:has(#lobby.hidden) .offline-home{display:none}
@media(max-height:450px){#target-lock{top:53px;padding:4px 9px;font-size:8px}#attack-meter{bottom:calc(150px + var(--safe-bottom));width:118px}#hero-lock{left:77px;bottom:72px;width:32px;height:32px}#practice-readout{top:80px;font-size:8px}#announce{top:108px;font-size:9px}.room-invite{gap:14px}.launch .practice-link{font-size:8px;padding:3px 7px;top:-23px}}
@media(max-width:740px) and (orientation:landscape){#hero-lock{left:71px;bottom:70px}#target-lock{max-width:40vw}#attack-meter{left:47%;width:109px}#attack-phase{font-size:7px}.room-invite #room-qr{width:124px;min-height:124px}.room-invite #room-qr img,.room-invite #room-qr canvas{width:110px!important;height:110px!important}}

#lobby{touch-action:pan-x}#lobby #hero-cards,#lobby .hero-card{touch-action:pan-x}
.panel:has(.collection-tabs) h2{margin:7px 0 9px}.panel:has(.collection-tabs) .eyebrow{margin-bottom:3px}.wallet-row{padding:4px 0 8px}.wallet-row .secondary{margin-top:0;min-height:28px;padding:6px 9px}.collection-note{margin:7px 0}.collection-tabs{padding-bottom:7px}.collection-card p{margin:7px 0}.cosmetic-preview{display:flex;justify-content:center;align-items:center;gap:15px;padding:28px}.cosmetic-preview button{width:72px;height:72px;border-radius:50%;font-size:24px;border:2px solid #b4ebcf;background:#215844;color:#ddffe9}.cosmetic-preview[data-preview-theme="neon"] button{border-color:#bca2ff;background:#483579;box-shadow:0 0 16px #ad79ff66}.cosmetic-preview button:first-child{border-radius:14px;font-size:18px;width:110px;height:110px;white-space:pre-line}
