:root{--ink:#eff7e9;--navy:#163b4e;--deep:#102e40;--gold:#ffdb77;--muted:#adc7ca;--line:#8ab5b32e;--mint:#b9eaa4;--radius:18px;font-family:"Microsoft YaHei","Segoe UI",sans-serif;color:var(--ink);background:var(--deep);font-synthesis:none;color-scheme:dark}
*{box-sizing:border-box}body{margin:0}button,a,input,select{-webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation;color:inherit;border:0}button:disabled{cursor:default;filter:saturate(.2);opacity:.52}button:active:not(:disabled){transform:translateY(2px)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffe098;outline-offset:3px}button svg,svg.icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}button svg use{pointer-events:none}p,h1,h2,h3{margin:0}h1,h2,h3{font-weight:900}small{font-size:12px}a{text-decoration:none;color:inherit}[hidden]{display:none!important}.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}.eyebrow{font-size:10px;letter-spacing:2px;color:#b4d2c9;font-weight:800}
.primary,.secondary,.quiet{min-height:48px;padding:0 23px;border-radius:13px;font-weight:800;white-space:nowrap}.primary{background:linear-gradient(#ffe6a0,#ffd274);color:#3a4d43;border:2px solid #fff0b8;box-shadow:0 4px 0 #ba904e,0 8px 16px #08233344}.primary span{margin-left:18px}.secondary{background:#356273;border:1px solid #719598;box-shadow:inset 0 1px #aac7b850,0 3px 0 #123544}.quiet{background:transparent;border:1px solid #96c3bd30;color:#d5e8dc}.quiet span{display:inline-grid;place-items:center;width:21px;height:21px;margin-left:10px;border-radius:50%;background:#e2edd3;color:#315441}.brand{display:flex;align-items:center;gap:9px}.brand>b{font:italic 1000 39px "Segoe UI",sans-serif;color:#ffe298;letter-spacing:-3px;text-shadow:0 3px #7b806a}.brand>strong{font-size:24px;line-height:1}.brand strong span{display:block;font-size:7px;letter-spacing:2px;margin-top:7px;color:#bdcdb2;font-weight:700}
.home{min-height:100cqh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 5% 70%,#37755f55,transparent 45%),linear-gradient(135deg,#214a59,#102e40 70%);padding:0 max(24px,var(--safe-right)) 0 max(24px,var(--safe-left))}.home-header{height:88px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.home-header>p{color:#b4cfc7;font-size:13px;letter-spacing:3px}.home-body{width:100%;max-width:1580px;margin:auto;display:grid;grid-template-columns:1fr 1.28fr .85fr;gap:30px;padding:28px 0}.showcase{position:relative;min-width:0}.showcase-top{display:flex;justify-content:space-between;align-items:center}.showcase-top>span:last-child{font-size:11px;color:#afc3ac;letter-spacing:2px}.hero-picture{position:relative;height:clamp(190px,26cqw,330px);display:grid;place-items:center}.hero-picture>img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 20px 12px #051d3060)}.orbit{position:absolute;border:1px solid #b9d6a827;border-radius:50%;width:90%;height:85%;transform:rotate(-18deg)}.orbit-two{width:78%;height:68%;border-style:dashed}.role-label{position:absolute;z-index:2;bottom:9px;right:5px;background:#c3e6ae;color:#294e46;border:2px solid #e5f4c8;border-radius:8px;padding:6px 14px;font-weight:900;font-size:12px;transform:rotate(-4deg)}.hero-copy{display:flex;align-items:end;gap:14px;margin:0 0 18px}.hero-copy h1{font-size:36px;letter-spacing:2px}.hero-copy p{font-size:12px;color:#b7d0c5;padding-bottom:7px}.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0}.stats div+div{border-left:1px solid var(--line)}.stats div{padding-left:12px}.stats small{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}.stats strong{font:900 21px "Segoe UI",sans-serif}.stats strong em{font:normal 10px "Microsoft YaHei"}.skill-copy{display:flex;gap:10px;margin-top:17px}.skill-copy>svg{width:24px;height:24px;fill:#d4e9a4;flex-shrink:0}.skill-copy strong{font-size:14px;color:#e3edbf}.skill-copy p{font-size:11px;line-height:1.8;color:#c3d6ca;margin:5px 0}.skill-copy small{color:#8fb4b1;font-size:9px}.section-title{display:flex;align-items:center;gap:10px;min-height:30px;margin-bottom:16px}.section-title>span{font:italic 800 13px "Segoe UI";color:#acc0a6;border-bottom:2px solid #bacc9a;padding:0 2px 4px}.section-title h2{font-size:18px;letter-spacing:.5px}.section-title small{margin-left:auto;font-size:10px;color:#98bdb7}.character-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.character-card{position:relative;min-width:0;border-radius:16px;border:1px solid #8ebba638;background:radial-gradient(ellipse at 50% 80%,color-mix(in srgb,var(--character-color) 26%,transparent),transparent 70%),#234a59;padding:5px 5px 13px;box-shadow:inset 0 1px #d5e6c216;overflow:hidden}.character-card[aria-pressed="true"]{border:2px solid #ffdb83;padding:4px 4px 12px;background:radial-gradient(ellipse at 50% 80%,color-mix(in srgb,var(--character-color) 45%,transparent),transparent 90%),#3c615d;box-shadow:0 0 0 3px #ffdb8312}.character-card .number{position:absolute;left:10px;top:9px;font:800 9px "Segoe UI";color:#c6e0c57a}.character-card img{display:block;object-fit:contain;width:100%;aspect-ratio:1;filter:drop-shadow(0 8px 4px #082b4750)}.character-card strong{display:block;font-size:13px;letter-spacing:1px}.character-card small{display:block;font-size:9px;color:#b3cbbb;margin-top:4px}.character-card[aria-pressed="true"]::after{content:'已选';position:absolute;right:7px;top:7px;font-size:8px;color:#514f30;background:#ffda7a;padding:3px 5px;border-radius:4px}.character-section{border-left:1px solid var(--line);padding-left:26px}.setup-section{min-width:0}.scene-grid{display:grid;gap:10px}.scene-card{position:relative;min-height:85px;isolation:isolate;overflow:hidden;text-align:left;border-radius:13px;background:#56726b;border:2px solid transparent;padding:13px 14px;box-shadow:0 4px 8px #0a263544}.scene-card>canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-2}.scene-card:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#173f47e0,#173f4730 90%);z-index:-1}.scene-card[aria-pressed="true"]{border-color:#ffdd88}.scene-card strong{display:block;font-size:15px}.scene-card small{display:block;font-size:9px;color:#e4f1d9;letter-spacing:2px;margin-bottom:4px}.scene-card[aria-pressed="true"]:after{content:'✓';position:absolute;right:12px;top:50%;transform:translateY(-50%);background:#ffdb7b;color:#3b543d;width:23px;height:23px;border-radius:50%;text-align:center;line-height:23px;font-weight:900}fieldset{border:0;padding:0;margin:17px 0 0}legend{font-size:11px;color:#bdd1c6;margin-bottom:9px}.segmented{display:flex;border:1px solid #86aaa540;border-radius:10px;padding:3px;gap:3px;background:#133546}.segmented button{min-height:38px;background:transparent;border-radius:7px;flex:1;font-size:12px;color:#afc5c2}.segmented button[aria-pressed="true"]{background:#d3e6b8;color:#315342;font-weight:900;box-shadow:0 2px 2px #041e3933}.home-footer{min-height:92px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.home-footer>p b{display:block;font-size:14px;color:#d9e7cc}.home-footer>p span{display:block;font-size:10px;color:#8db6b2;margin-top:7px;letter-spacing:1px}.home-footer>div{display:flex;gap:12px}.orientation-note{display:none}
.battle{position:absolute;inset:0;overflow:hidden;background:#7bc9d6;touch-action:none;user-select:none}#field{width:100%;height:100%;display:block;touch-action:none}.battle-top{position:absolute;left:max(18px,var(--safe-left));right:max(18px,var(--safe-right));top:12px;display:flex;align-items:start;justify-content:space-between;pointer-events:none}.pilot{display:flex;align-items:center;gap:9px;background:#163e4eee;border:1px solid #adcabd7d;border-radius:17px;padding:6px 17px 7px 5px;min-width:180px;box-shadow:0 4px 0 #11354344}.pilot img{width:57px;height:57px;object-fit:contain}.pilot>div{min-width:96px}.pilot strong{font-size:15px;display:block}.pilot span{display:block;color:#cfe8c8;font-size:10px;margin:4px 0}.hp-track,.fuel-track{height:6px;border-radius:4px;background:#092c3e;overflow:hidden}.hp-track i,.fuel-track i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#93d878,#dded9e)}.turn{position:absolute;left:50%;transform:translateX(-50%);text-align:center;background:#fff4ceeF;color:#284d49;border:2px solid #fff9de;box-shadow:0 4px 0 #25475545;border-radius:0 0 17px 17px;padding:5px 39px 10px;min-width:220px;top:-13px}.turn small{display:block;font-size:9px;letter-spacing:2px;color:#7c8c6b}.turn strong{display:block;font-size:16px;margin-top:4px}.turn>span{position:absolute;right:9px;top:16px;font:900 21px "Segoe UI"}.battle-tools{display:flex;gap:8px;pointer-events:auto}.icon-button{background:#1b4255eb;border:1px solid #c8dbc06e;border-radius:12px;width:44px;height:44px;display:grid;place-items:center;font-size:22px;box-shadow:0 3px 0 #15374550}.turn-order{position:absolute;top:83px;left:18px;display:flex;gap:5px;max-width:calc(100% - 295px);flex-wrap:wrap;pointer-events:none}.order-chip{position:relative;background:#183f4eda;min-width:34px;border:1px solid #b7d7c669;border-radius:8px;padding:3px;text-align:center}.order-chip img{width:30px;height:27px;display:block;object-fit:contain}.order-chip span{font-size:8px;display:block}.order-chip.active{border:2px solid #ffdb79;padding:2px;background:#41625e}.order-chip.dead{opacity:.4;filter:grayscale(1)}.minimap-button{position:absolute;right:max(18px,var(--safe-right));top:67px;border:2px solid #bcd9c38c;border-radius:12px;padding:0;overflow:hidden;background:#1a4152d9;width:200px;box-shadow:0 3px 0 #13364935}.minimap-button canvas{display:block;width:100%;height:62px}.minimap-button>span{display:flex;align-items:center;gap:5px;padding:4px 7px;background:#163e4ff2}.minimap-button svg{width:12px;height:12px}.minimap-button b{font-size:9px}.minimap-button small{font-size:8px;margin-left:auto;color:#d9e8c2}.battle-controls{position:absolute;left:max(25px,var(--safe-left));right:max(25px,var(--safe-right));bottom:max(20px,var(--safe-bottom));display:flex;align-items:end;justify-content:space-between;gap:18px;pointer-events:none}.movement,.weapons{pointer-events:auto}.movement-buttons{display:flex;gap:10px}.movement-buttons button{width:67px;height:58px;border:2px solid #e2eacc;border-radius:17px;background:linear-gradient(#6d9293,#3e6572);box-shadow:inset 0 2px #ffffff40,0 5px 0 #294553;color:#fff6da;touch-action:none}.movement-buttons svg{width:34px;height:34px;stroke-width:3.4}.movement-buttons button+button svg{transform:rotate(180deg)}.fuel-track{height:5px;margin-top:13px;background:#203b4c80}.fuel-track i{background:#ffdc88}.movement>small{display:block;text-align:center;font-size:9px;color:#fff6dc;margin-top:5px;text-shadow:0 1px 2px #244758}.aim-readout{text-align:center;align-self:center;background:#193e4acc;border:1px solid #d3e2bb5e;border-radius:14px;padding:10px 19px;max-width:250px;pointer-events:none}.aim-readout strong{display:block;font:900 17px "Segoe UI","Microsoft YaHei";color:#ffdf99}.aim-readout span{display:block;font-size:10px;color:#d9e9d1;margin-top:4px}.weapons{display:flex;align-items:end;gap:12px}.skill-button{display:flex;align-items:center;justify-content:center;gap:6px;min-width:113px;height:66px;border:2px solid #d7d2fb;border-radius:19px;background:linear-gradient(#a7a5de,#636b9f);box-shadow:inset 0 2px #fff7,0 5px 0 #3f4772}.skill-button svg{fill:#f2e6ac;stroke:#ffffd8;width:25px}.skill-button strong{display:block;font-size:12px;color:#fffbe5}.skill-button small{display:block;font-size:9px;color:#e3e5f2;margin-top:4px}.fire-button{display:flex;align-items:center;justify-content:center;gap:9px;width:130px;height:83px;background:linear-gradient(#ffe9ab,#ffc965);border:3px solid #fff4c6;border-radius:24px;box-shadow:inset 0 2px #fff9,0 6px 0 #bd8e46;color:#465a44}.fire-button>svg{width:31px;height:31px}.fire-button>span{font-size:24px;font-weight:1000;letter-spacing:2px}.fire-button small{display:block;font:900 9px "Segoe UI";letter-spacing:3px}.battle-message{position:absolute;left:50%;top:22%;transform:translateX(-50%);font-size:20px;font-weight:900;pointer-events:none;color:#fff7ce;text-shadow:0 2px 0 #416056,0 3px 10px #264953;white-space:nowrap}.offline-banner{position:absolute;left:50%;top:36%;transform:translateX(-50%);padding:16px 24px;background:#233f50ee;border:1px solid #ffd98c;border-radius:15px;font-size:14px;text-align:center}
.lobby{min-height:100cqh;padding:0 max(28px,var(--safe-right)) 0 max(28px,var(--safe-left));background:radial-gradient(ellipse at 0 100%,#5a8d6845,transparent),#173a4c;display:flex;flex-direction:column}.lobby>header{height:80px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.lobby-main{display:grid;grid-template-columns:260px 1fr;gap:40px;width:100%;max-width:1180px;margin:auto;padding:32px 0}.room-summary h1{font:900 41px "Segoe UI";letter-spacing:7px;color:#ffdf99;margin:17px 0 20px}.room-summary p{font-size:14px;margin:24px 0 10px;line-height:1.8;color:#d4e4cc}.room-summary small{font-size:11px;color:#97b9b4;line-height:1.8}.room-players{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.room-slot{border:1px solid #9fbdad50;border-radius:14px;background:#244c59;text-align:center;padding:7px 6px 11px;min-height:126px;position:relative}.room-slot>img{height:75px;width:100%;object-fit:contain}.room-slot strong{font-size:13px;display:block}.room-slot small{display:block;font-size:10px;color:#b9d4c4;margin-top:4px}.room-slot.empty{display:grid;place-content:center;color:#719894;border-style:dashed;background:#153847}.room-slot.empty b{font:200 32px "Segoe UI"}.room-slot .slot-number{position:absolute;top:8px;left:10px;font:800 10px "Segoe UI";color:#a0c2b3}.room-slot[data-team="0"]{border-bottom:3px solid #79ceee}.room-slot[data-team="1"]{border-bottom:3px solid #f0a198}.lobby-settings{display:flex;align-items:end;gap:13px;margin-top:20px}.lobby-settings label{font-size:10px;color:#bfd6c8}.lobby-settings select{display:block;margin-top:7px;min-height:44px;background:#133747;border:1px solid #7baba080;border-radius:9px;padding:0 11px;color:#ebf4df}.lobby-settings>button{margin-left:auto}.lobby>footer{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;min-height:82px;gap:15px}.lobby>footer p{font-size:12px;color:#b5d0c6}.lobby>footer>div{display:flex;gap:12px}
dialog{width:min(92cqw,470px);max-height:90cqh;overflow:auto;background:#214655;color:#e9f2df;border:2px solid #96b5a9;border-radius:22px;box-shadow:0 20px 90px #071d3677;padding:32px}dialog::backdrop{background:#0a223ec9;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:12px;top:10px;background:#143546;border:1px solid #819e9260;width:40px;height:40px;border-radius:12px;font-size:25px}dialog h2{font-size:25px;margin:15px 0 19px;color:#ffe4a1}dialog p{font-size:12px;line-height:1.9;color:#c8dacc;margin:12px 0}dialog>button:not(.dialog-close){margin-top:15px;width:100%}dialog small{font-size:10px;line-height:1.8;color:#a7c4b8}form label{font-size:12px;display:block;margin:18px 0 9px}form input{width:100%;height:54px;background:#13384b;border:1px solid #8dafa399;border-radius:11px;padding:0 14px;font-size:23px;color:#fff0bc;letter-spacing:5px;text-transform:uppercase}form button{width:100%;margin-top:18px}.form-error{color:#ffbba3}.help-steps{padding-left:22px}.help-steps li{padding-left:7px;margin:14px 0;color:#e7eac4}.help-steps b{font-size:14px}.help-steps p{margin:5px 0}.map-dialog{width:min(92cqw,1050px)}#large-map{width:100%;height:auto;border-radius:13px;border:1px solid #9cb9a780}.map-players{display:flex;flex-wrap:wrap;gap:8px}.map-players span{background:#153748;border:1px solid #8db2a557;padding:7px 10px;border-radius:8px;font-size:11px}.toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:30;max-width:90cqw;padding:12px 21px;border-radius:13px;background:#ffe5a4;color:#2c4c48;box-shadow:0 8px 30px #071c4455;font-size:12px;font-weight:800;opacity:0;pointer-events:none}.toast.show{opacity:1}
@container game (min-width:1500px){.home-body{gap:50px}.character-grid{gap:17px}.character-card strong{font-size:16px}.scene-card{min-height:106px}.battle-controls{bottom:35px;left:40px;right:40px}.movement-buttons button{width:80px;height:70px}.fire-button{width:150px;height:100px}.skill-button{height:76px;min-width:135px}}
@container game (max-width:1100px){.home{padding:0 20px}.home-header{height:68px}.home-header>p{font-size:10px;letter-spacing:1px}.brand>b{font-size:31px}.brand>strong{font-size:21px}.home-body{grid-template-columns:.95fr 1.2fr .85fr;gap:20px;padding:20px 0}.character-section{padding-left:18px}.character-grid{gap:8px}.character-card{border-radius:12px}.character-card strong{font-size:11px}.character-card small{font-size:8px}.hero-copy{display:block;margin-bottom:10px}.hero-copy h1{font-size:29px}.hero-copy p{margin-top:3px;padding:0}.section-title h2{font-size:14px}.section-title small{display:none}.hero-picture{height:220px}.scene-card{min-height:76px}.home-footer>p{display:none}.home-footer{justify-content:end;min-height:80px}.skill-copy small{font-size:8px}}
@container game (max-height:600px){.home{height:100cqh;min-height:320px;overflow:hidden;padding:0 max(18px,var(--safe-left))}.home-header{height:52px;flex-shrink:0}.brand>b{font-size:27px}.brand>strong{font-size:18px}.brand strong span{font-size:5px;margin-top:5px}.home-header>p{font-size:9px}.home-header .quiet{min-height:36px;font-size:10px;padding:0 12px}.home-body{min-height:0;flex:1;padding:10px 0;gap:16px;grid-template-columns:1fr 1.28fr .8fr;overflow:auto;scrollbar-width:thin}.showcase-top{font-size:8px}.eyebrow{font-size:8px;letter-spacing:1.2px}.showcase-top>span:last-child{font-size:8px}.hero-picture{height:clamp(102px,31cqh,182px)}.role-label{font-size:8px;padding:3px 8px;bottom:3px}.hero-copy{display:flex;margin-bottom:7px;gap:7px;align-items:center}.hero-copy h1{font-size:22px;white-space:nowrap}.hero-copy p{font-size:8px}.stats{padding:6px 0}.stats div{padding-left:8px}.stats small{font-size:8px;margin:0}.stats strong{font-size:15px}.stats strong em{font-size:8px}.skill-copy{margin-top:7px;gap:5px}.skill-copy>svg{width:16px;height:16px}.skill-copy strong{font-size:10px}.skill-copy p{font-size:9px;line-height:1.6;margin:2px 0}.skill-copy small{display:none}.section-title{min-height:20px;margin-bottom:7px;gap:6px}.section-title h2{font-size:12px}.section-title>span{font-size:10px;padding-bottom:2px}.character-section{padding-left:14px}.character-grid{gap:7px}.character-card{padding:3px 3px 6px;border-radius:10px}.character-card[aria-pressed="true"]{padding:2px 2px 5px}.character-card img{max-height:calc((100cqh - 169px)/2);min-height:48px}.character-card strong{font-size:10px}.character-card small{font-size:7px;margin-top:2px}.character-card .number{font-size:7px;top:5px;left:5px}.character-card[aria-pressed="true"]:after{font-size:6px;right:3px;top:3px;padding:2px 3px}.scene-grid{gap:6px}.scene-card{min-height:46px;padding:7px 9px;border-radius:9px}.scene-card strong{font-size:11px}.scene-card small{font-size:7px;margin-bottom:1px;letter-spacing:1px}.scene-card[aria-pressed="true"]:after{width:16px;height:16px;font-size:10px;line-height:16px;right:7px}fieldset{margin-top:8px}legend{font-size:9px;margin-bottom:4px}.segmented{padding:2px}.segmented button{min-height:32px;font-size:10px}.home-footer{min-height:58px;flex-shrink:0}.home-footer>p{display:block}.home-footer>p b{font-size:10px}.home-footer>p span{font-size:8px;margin-top:3px}.home-footer>div{gap:8px}.home-footer button{min-height:39px;padding:0 14px;font-size:11px}.lobby>header{height:54px;flex-shrink:0}.lobby-main{grid-template-columns:185px 1fr;gap:24px;padding:13px 0}.room-summary h1{font-size:28px;letter-spacing:4px;margin:12px 0}.room-summary p{font-size:10px;margin:12px 0 7px}.room-summary small{font-size:9px}.lobby{height:100cqh;min-height:320px}.room-players{gap:7px}.room-slot{min-height:82px;padding:4px}.room-slot>img{height:48px}.room-slot strong{font-size:10px}.room-slot small{font-size:8px;margin-top:3px}.lobby-settings{margin-top:9px;gap:8px}.lobby-settings select{min-height:34px;font-size:10px;margin-top:3px}.lobby-settings label{font-size:9px}.lobby .primary,.lobby .secondary,.lobby .quiet{min-height:38px;font-size:11px;padding:0 13px}.lobby>footer{min-height:57px;flex-shrink:0}.lobby>footer p{font-size:10px}.lobby-main{min-height:0;overflow:auto}.lobby-settings>button{margin-left:0}.battle-top{top:8px}.pilot{min-width:155px;padding:4px 11px 5px 3px;border-radius:13px}.pilot img{width:44px;height:44px}.pilot strong{font-size:12px}.pilot span{font-size:9px;margin:2px 0}.pilot>div{min-width:85px}.turn{top:-9px;min-width:195px;padding:4px 35px 7px}.turn strong{font-size:12px}.turn small{font-size:8px}.turn>span{font-size:19px;top:11px}.icon-button{width:40px;height:40px;border-radius:10px}.turn-order{top:68px;max-width:calc(100% - 240px);gap:4px}.order-chip{min-width:29px}.order-chip img{width:25px;height:23px}.minimap-button{top:58px;width:166px}.minimap-button canvas{height:47px}.battle-controls{bottom:max(13px,var(--safe-bottom));left:max(20px,var(--safe-left));right:max(20px,var(--safe-right))}.movement-buttons button{width:59px;height:49px;border-radius:14px}.movement-buttons{gap:9px}.movement-buttons svg{width:29px;height:29px}.fuel-track{margin-top:10px}.movement>small{font-size:8px;margin-top:4px}.aim-readout{padding:7px 11px;max-width:235px;border-radius:11px}.aim-readout strong{font-size:14px}.aim-readout span{font-size:9px}.skill-button{height:56px;min-width:105px;border-radius:16px}.skill-button strong{font-size:10px}.skill-button small{font-size:8px}.skill-button svg{width:22px}.fire-button{width:110px;height:69px;border-radius:20px}.fire-button>span{font-size:21px}.fire-button>svg{width:27px}.weapons{gap:10px}.battle-message{font-size:15px;top:25%}dialog{padding:24px;max-height:92cqh}dialog h2{font-size:21px;margin:8px 0 13px}.map-dialog{width:82cqw}#large-map{max-height:50cqh}.map-dialog p{margin:7px 0;font-size:10px}.map-players span{font-size:9px;padding:5px 7px}}
.hero-picture>img{position:absolute;inset:0;width:100%;height:100%;min-height:0}
@container game (max-height:600px){.setup-section fieldset{position:relative;margin-top:6px}.setup-section legend{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.setup-section .segmented button{min-height:38px}.scene-card{min-height:42px;padding:5px 9px}.home-body{overflow:auto}.showcase{align-self:start}.skill-copy p{font-size:9px}}
@container game (max-height:420px){.home-header{height:48px}.home-footer{min-height:52px}.home-body{padding:8px 0}.section-title{margin-bottom:5px}.scene-card{min-height:40px}.hero-picture{height:clamp(92px,28cqh,118px)}.lobby-main{padding:8px 0}.room-slot{min-height:73px}.room-slot>img{height:40px}.lobby-settings{margin-top:7px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
#game-root{position:fixed;top:0;transform-origin:0 0;container-type:size;container-name:game;overflow:hidden;--safe-left:env(safe-area-inset-left);--safe-right:env(safe-area-inset-right);--safe-bottom:env(safe-area-inset-bottom)}
#game-root[data-rotated="true"]{--safe-left:env(safe-area-inset-top);--safe-right:env(safe-area-inset-bottom);--safe-bottom:env(safe-area-inset-left)}
.home,.lobby{height:100cqh;min-height:0;overflow:hidden}
dialog{position:fixed;left:50%;top:50%;right:auto;bottom:auto;margin:0;transform:translate(-50%,-50%) rotate(var(--ui-rotation));width:min(540px,calc(var(--game-width) - 48px));max-width:none;max-height:calc(var(--game-height) - 28px)}
.map-dialog{width:min(1000px,calc(var(--game-width) - 64px))}
#large-map{max-height:calc(var(--game-height) * .38)}
@container game (max-height:400px){.map-dialog{padding-block:18px}}
.battle-controls{gap:12px}.aim-controls{flex:1;min-width:180px;max-width:310px;padding:6px 9px;background:#173e4eed;border:1px solid #c7dcb180;border-radius:15px;box-shadow:0 4px 0 #19394766;pointer-events:auto}.aim-slider{display:grid;grid-template-columns:28px minmax(55px,1fr) 49px;gap:7px;align-items:center;height:34px;color:#e9f2cf;font-size:10px}.aim-slider strong{text-align:right;white-space:nowrap;font:800 12px "Segoe UI","Microsoft YaHei";color:#ffe3a1}.aim-slider input{appearance:none;-webkit-appearance:none;width:100%;min-width:0;height:32px;margin:0;background:transparent;cursor:ew-resize;touch-action:none}.aim-slider input::-webkit-slider-runnable-track{height:7px;border-radius:8px;background:linear-gradient(to right,#ffd477 var(--fill,50%),#0d2b3b var(--fill,50%));box-shadow:inset 0 1px 2px #07192699}.aim-slider input::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;margin-top:-8.5px;border:3px solid #fff1c0;border-radius:8px;background:linear-gradient(#ffe6a0,#e9ac4a);box-shadow:0 2px 0 #93682e}.aim-slider input::-moz-range-track{height:7px;border-radius:8px;background:#0d2b3b}.aim-slider input::-moz-range-progress{height:7px;background:#ffd477}.aim-slider input::-moz-range-thumb{width:19px;height:19px;border:3px solid #fff1c0;border-radius:8px;background:#efbd63}.aim-slider input:disabled{opacity:.4;cursor:default}.aim-slider input:focus-visible{outline:2px solid #fff1b4;outline-offset:2px;border-radius:8px}.aim-controls>small{display:block;text-align:center;font-size:8px;color:#c3d9ca;line-height:14px}.view-return{position:absolute;left:50%;top:70px;transform:translateX(-50%);padding:8px 13px;border:1px solid #e9ecc0;background:#244c59eb;border-radius:11px;color:#fff0b4;font-size:11px;font-weight:800;box-shadow:0 3px 0 #16364566}
.toast{position:absolute}

.aim-slider{height:44px}.aim-slider input{height:42px;user-select:none;-webkit-user-select:none}.aim-slider input::-webkit-slider-thumb{width:28px;height:28px;margin-top:-10.5px}.aim-slider input::-moz-range-thumb{box-sizing:border-box;width:28px;height:28px}.aim-slider input:active::-webkit-slider-thumb{background:#fff0a9;box-shadow:0 0 0 5px #ffd47730}

#capacity-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}#capacity-options button{padding:0;min-width:0}.segmented button:disabled{opacity:.35;cursor:not-allowed}.order-chip.active{outline:1px solid #d5ffba}.result-players span{display:inline-block;padding:7px 10px}
.home-tools{display:flex;align-items:center;gap:8px}.zoom-controls{position:absolute;top:140px;left:max(20px,var(--safe-left));display:flex;align-items:center;padding:3px;background:#173e4e78;border:1px solid #c6debf44;border-radius:12px;box-shadow:0 3px 0 #142f3b55}.zoom-controls button{width:38px;height:38px;padding:0;border:0;border-radius:8px;background:transparent;color:#ffe5a6;font-size:21px;font-weight:800;touch-action:manipulation}.zoom-controls button:disabled{opacity:.35}.zoom-controls #zoom-reset{width:49px;font-size:11px}.zoom-controls button:hover{background:#ffffff16}.sound-row{display:grid;grid-template-columns:170px 1fr;gap:16px;align-items:center;margin:14px 0}.sound-row .aim-slider{grid-template-columns:25px 1fr 40px}.sound-row button[aria-pressed="false"]{opacity:.55}.audio-dialog h2{margin-bottom:8px}.audio-dialog>p{font-size:12px;color:#c3d9ca}.audio-dialog #audio-status{min-height:18px}.sound-note{margin-bottom:0}.sound-row .aim-slider input{--fill:50%}
@container game (max-height:600px){.zoom-controls{top:117px}.home-tools{gap:4px}.home-tools .quiet{font-size:10px;padding-inline:9px}.audio-dialog{padding:20px 26px}.audio-dialog h2{font-size:20px}.sound-row{margin:7px 0;grid-template-columns:150px 1fr}.sound-row button{min-height:38px;font-size:11px}.audio-dialog>p{margin:7px 0;font-size:10px}.audio-dialog #audio-preview{min-height:32px;font-size:11px}}
.jump-button{width:100%;min-height:38px;margin-bottom:8px;background:#244c51cc;color:#fff0bd;border:1px solid #acc7a788;border-radius:12px;font-weight:800;touch-action:manipulation}.jump-button:disabled{opacity:.4}.order-chip{padding:2px;color:inherit;border:0;cursor:pointer}.order-chip:focus-visible{outline:2px solid #ffe4a0}.zoom-controls:focus-within{background:#173e4eb8}
.order-chip{pointer-events:auto}.order-chip.watching{outline:2px solid #9deaff;background:#286479}
.battle-notices{position:absolute;top:194px;left:max(20px,var(--safe-left));max-width:215px;pointer-events:none;font-size:11px;font-weight:700;line-height:1.6;color:#ffe9ac}.battle-notices>div:not(:empty){padding:4px 8px;margin-top:4px;background:#183e4ddd;border:1px solid #ffe8a755;border-radius:8px}.battle-notices #zone-notice{color:#ffd1de}.battle-notices #zone-notice.danger{background:#7d3047e8;border-color:#ff9cb5}.jump-button{font-size:11px;user-select:none;touch-action:none}#aim-hint{line-height:1.5}@container game (max-height:600px){.battle-notices{top:163px;max-width:205px;font-size:9px}.battle-notices>div:not(:empty){padding:3px 6px;margin-top:3px}}

.skill-button[aria-pressed="true"]{outline:3px solid #ffe59b;background:linear-gradient(#d09ae5,#715293);box-shadow:0 0 16px #e8b4fc66}#aim-hint{min-height:21px}

/* Blender-rendered toy shells; live labels and stable hit areas remain in the DOM. */
.battle-controls .movement-buttons button,.battle-controls .jump-button,.battle-controls .skill-button,.battle-controls .fire-button{position:relative;isolation:isolate;background:none;border-color:transparent;box-shadow:none;transform:none}
.battle-controls .movement-buttons button::before,.battle-controls .jump-button::before,.battle-controls .skill-button::before,.battle-controls .fire-button::before{content:"";position:absolute;inset:-3px -3px -6px;z-index:-1;background:var(--toy-shell) center/100% 100% no-repeat;pointer-events:none;transition:transform 170ms cubic-bezier(.2,.8,.3,1.35)}
.movement-buttons button{--toy-shell:url('/assets/toy-v1/move.webp')}
.jump-button{--toy-shell:url('/assets/toy-v1/jump.webp');min-height:44px;color:#fff6dc;text-shadow:0 1px 2px #102f3c}
.skill-button{--toy-shell:url('/assets/toy-v1/skill.webp');text-shadow:0 1px 2px #29123f}
.fire-button{--toy-shell:url('/assets/toy-v1/fire.webp');color:#273e36}
.battle-controls .skill-button[aria-pressed="true"]{outline:3px solid #ffe59b;outline-offset:4px}
.battle-controls button:active:not(:disabled){transform:none}
.battle-controls .movement-buttons button:active:not(:disabled)::before,.battle-controls .jump-button:active:not(:disabled)::before,.battle-controls .skill-button:active:not(:disabled)::before,.battle-controls .fire-button:active:not(:disabled)::before{transform:translateY(3px) scale(.97,.94)}
.battle-controls .movement-buttons button:active:not(:disabled)>svg,.battle-controls .skill-button:active:not(:disabled)>*,.battle-controls .fire-button:active:not(:disabled)>*{translate:0 2px}
.battle-controls .movement-buttons button:disabled,.battle-controls .skill-button:disabled,.battle-controls .fire-button:disabled,.battle-controls .jump-button:disabled{opacity:.6;filter:saturate(.2)}
@media(prefers-reduced-motion:reduce){.battle-controls button::before{transition:none!important;transform:none!important}.battle-controls button>*{translate:none!important}}
