:root{font-family:Arial,Segoe UI,sans-serif;color:#fff;font-synthesis:none;--shadow:0 2px 6px #233b3055}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#7b9c57}button{font:inherit;cursor:pointer}button:focus-visible{outline:3px solid #f6d454;outline-offset:4px}#game,canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}
.mission{position:absolute;left:30px;top:20px;pointer-events:none;text-shadow:var(--shadow)}.mission h1{font-size:30px;line-height:1.3;font-weight:750;display:flex;align-items:center;gap:15px;margin:0}.mission h1 svg{width:32px;height:36px;fill:white;stroke:white;stroke-width:3;stroke-linecap:round}.distance{font-size:21px;margin:5px 0 0 47px}.distance span{font-size:20px;margin-right:10px}.distance strong{font-weight:650}.mission p{font-size:14px;margin:9px 0 0 47px;font-weight:600}.status{position:absolute;right:27px;top:22px;width:232px;filter:drop-shadow(0 2px 3px #29412550)}.status-row{display:flex;gap:12px;align-items:center;height:42px;margin-bottom:9px}.status-row svg{width:39px;height:37px;fill:#fff;stroke:#fff;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;flex-shrink:0}.meter{height:21px;flex:1;background:#53594fcc;border:3px solid white;border-radius:7px;overflow:hidden}.meter i{display:block;height:100%;width:45%;background:#54d137;transition:width .15s linear}.meter.stability i{background:#25bde7;width:100%}
.utility{position:absolute;left:28px;bottom:26px;display:flex;gap:10px;align-items:center}.utility button{background:#243b294a;border:1px solid #ffffff65;color:#fff;border-radius:6px;min-width:28px;height:29px;padding:4px 8px;font-size:11px;text-shadow:var(--shadow)}.utility button:hover{background:#243b2980}.utility kbd{font-size:10px;background:transparent;color:white;border:0;padding:0 0 0 6px}.prototype-note{position:absolute;left:29px;bottom:61px;font-size:10px;color:#fff9;text-shadow:var(--shadow);pointer-events:none}.interaction{position:absolute;right:29px;bottom:27px;display:flex;align-items:center;gap:15px;font-size:25px;font-weight:750;text-shadow:var(--shadow);pointer-events:none}.interaction kbd{font-family:Arial,sans-serif;min-width:37px;padding:6px 9px;border-radius:7px;box-shadow:0 3px 0 #37513b45;background:#fff;color:#263a2b;text-shadow:none;font-size:25px;text-align:center}#player-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.player-label{position:absolute;left:0;top:0;transform:translate(-50%,-100%);padding:3px 8px 4px;border-radius:10px;font-size:22px;font-weight:750;line-height:1.1;color:white;box-shadow:0 2px 3px #25432b18;background:#e7352b}.player-label:after{content:'';position:absolute;bottom:-5px;left:calc(50% - 5px);border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--marker)}.p1{--marker:#e7352b;background:var(--marker)}.p2{--marker:#078cef;background:var(--marker)}.p3{--marker:#9b2bd0;background:var(--marker)}.p4{--marker:#e8b000;background:var(--marker)}
#toast{position:absolute;left:50%;bottom:27px;transform:translateX(-50%) translateY(8px);background:#243c2dd9;max-width:500px;border:1px solid #ffffff40;color:white;border-radius:9px;font-size:13px;line-height:1.45;padding:12px 20px;text-align:center;opacity:0;transition:.2s;pointer-events:none}#toast.visible{opacity:1;transform:translateX(-50%)}.overlay{position:absolute;inset:0;background:#23362140;backdrop-filter:blur(2px);display:grid;place-items:center}.welcome-card{background:#f8f5eaf2;border:1px solid #fff;border-radius:16px;padding:32px 38px;width:435px;max-width:calc(100% - 30px);box-shadow:0 20px 80px #15281730;color:#304b35}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:750}.welcome-card h2{font-size:39px;line-height:1.12;font-weight:800;letter-spacing:-1.3px;margin:22px 0 18px}.welcome-card h2 em{color:#668151;font-style:normal}.welcome-card p{font-size:13px;line-height:1.8;color:#72816b;max-width:330px}.intro-controls{display:grid;grid-template-columns:1fr 1fr;gap:13px 8px;margin:23px 0;font-size:11px}.intro-controls kbd,dialog kbd{font:11px Arial,sans-serif;border:1px solid #b7c2ac;border-bottom-width:2px;border-radius:4px;background:#fffdf7;color:#48603f;padding:3px 6px;margin-right:3px}.primary{background:#3f6743;border:0;color:#fff;border-radius:8px;padding:14px 18px;width:100%;font-size:14px;font-weight:650;display:flex;justify-content:space-between;align-items:center}.primary:hover{background:#507c4f}.primary span{font-size:22px;line-height:15px}.welcome-card>small{font-size:10px;color:#8a9682;line-height:1.7;display:block;margin-top:15px}dialog{border:1px solid #fff;background:#f8f5ed;color:#304b35;border-radius:16px;max-width:480px;padding:28px;font-size:13px;line-height:1.7}dialog::backdrop{background:#263c3b66;backdrop-filter:blur(4px)}dialog h2{font-weight:750;margin-top:0}.muted{font-size:11px;color:#8b927f}#fatal{position:absolute;inset:20%;background:#f8f5ed;color:#304b35;padding:35px;z-index:20;border-radius:16px}
@media(max-width:850px){.mission{left:20px;top:18px}.mission h1{font-size:23px;gap:10px}.mission h1 svg{width:25px;height:28px}.distance{font-size:17px;margin-left:35px}.mission p{font-size:12px;margin-left:35px}.status{width:175px;right:18px;top:18px}.status-row{height:32px;gap:9px}.status-row svg{width:29px;height:30px}.meter{height:18px;border-width:2.5px}.player-label{font-size:17px;border-radius:7px;padding:3px 6px}.interaction{font-size:20px;right:20px;bottom:22px;gap:10px}.interaction kbd{font-size:20px;padding:5px 7px}.utility{left:18px;bottom:23px;gap:6px}.prototype-note{left:20px;bottom:55px;font-size:9px}#toast{bottom:92px;max-width:85%;font-size:12px}.welcome-card{padding:26px}.welcome-card h2{font-size:34px}}@media(max-width:520px){.mission h1{font-size:18px}.mission p{font-size:10px;max-width:170px}.status{width:115px;right:12px}.status-row svg{width:23px}.status-row{gap:5px}.meter{height:15px}.distance{font-size:15px}.interaction{font-size:16px;bottom:68px}.interaction kbd{font-size:17px}.prototype-note{display:none}.utility{bottom:17px}.welcome-card h2{font-size:30px}.intro-controls{font-size:10px;gap:10px 5px}}
canvas{touch-action:none;cursor:grab}canvas.rotating{cursor:grabbing}
.mission .resource-stock{margin-top:15px;font-size:16px}.mission .mode-label{font-size:11px;font-weight:500;opacity:.88;margin-top:7px}.leg-health-row{display:flex;gap:5px;margin-top:9px}.leg-health{--health:100%;flex:1;padding:5px 2px;background:linear-gradient(to right,#58aa60b3 var(--health),#493a31a6 var(--health));border:1px solid #fff9;border-radius:4px;text-align:center;font-size:10px;font-weight:700}.leg-health.broken{background:#bc4134}.repair-hint{font-size:10px;text-align:right;opacity:.9;text-shadow:var(--shadow);margin:6px 0}#world-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.resource-label,.part-label{position:absolute;transform:translate(-50%,-100%);padding:5px 8px;border-radius:5px;white-space:nowrap;font-size:12px;font-weight:700;box-shadow:0 2px 5px #233a3530}.resource-label{color:#fff;background:#4e613be6;border:1px solid #ffffff90}.part-label{color:#fff;background:#d66d33ee}.part-label.broken{background:#b83f34}.secondary{margin-top:10px;width:100%;padding:10px;border:1px solid #98aa8f;border-radius:8px;color:#476440;background:transparent;font-size:12px}.secondary:hover{background:#e4eadb}dialog{max-height:85vh;overflow:auto}@media(max-width:850px){.mission .resource-stock{font-size:13px;margin-top:12px}.mission .mode-label{font-size:10px;max-width:235px}.leg-health-row{gap:3px}.leg-health{font-size:8px;padding:4px 1px}.repair-hint{font-size:9px}.resource-label,.part-label{font-size:10px;padding:4px 6px}.welcome-card{max-height:94vh;overflow:auto}}@media(max-width:520px){.mission .resource-stock{font-size:11px}.mission .mode-label{font-size:9px;max-width:170px}.leg-health-row{flex-wrap:wrap}.leg-health{flex:0 0 calc(50% - 2px)}.repair-hint{font-size:8px}}
.mission .driver-label{font-size:10px;font-weight:700;letter-spacing:.35px;opacity:.9;margin-top:8px}#touch-controls{display:none}.touch-enabled #touch-controls{display:block}.touch-enabled .interaction,.touch-enabled .prototype-note{display:none}#joystick{position:absolute;left:24px;bottom:95px;width:112px;height:112px;border:3px solid #fff9;border-radius:50%;background:#2a42295c;box-shadow:inset 0 0 20px #29452940;touch-action:none;display:grid;place-items:center;user-select:none}#joystick-knob{display:block;width:46px;height:46px;border:2px solid #fffd;border-radius:50%;background:#ffffffad;box-shadow:0 2px 9px #20382760;pointer-events:none}.touch-actions{position:absolute;right:24px;bottom:85px;display:grid;grid-template-columns:repeat(3,57px);gap:7px}.touch-actions button{padding:6px 3px;min-height:40px;color:white;background:#304d37b8;border:1.5px solid #fffb;border-radius:8px;touch-action:manipulation;font-weight:700;font-size:10px;box-shadow:0 2px 5px #243b3430}.touch-actions #touch-use{grid-column:1/-1;font-size:13px;min-height:48px;background:#eff5e7e8;color:#2c4732}.touch-enabled #toast{bottom:245px;max-width:65%}.touch-enabled .utility{gap:5px}.touch-enabled .utility kbd{display:none}@media(max-width:520px){#joystick{left:18px;bottom:100px;width:102px;height:102px}.touch-actions{right:15px;bottom:80px;grid-template-columns:repeat(3,49px);gap:5px}.touch-actions button{font-size:9px}.touch-actions #touch-use{font-size:11px}.touch-enabled #toast{bottom:240px;max-width:85%;width:85%}.touch-enabled .utility{left:12px}.mission .driver-label{font-size:8px;max-width:175px}.touch-enabled .mission p{max-width:190px}}@media(max-height:520px){#joystick{bottom:55px;width:90px;height:90px}.touch-actions{bottom:50px;grid-template-columns:repeat(3,52px);gap:4px}.touch-actions button{min-height:30px}.touch-actions #touch-use{min-height:35px}.touch-enabled #toast{bottom:180px}}
canvas:focus{outline:none}.mission,.status{z-index:3;pointer-events:none}#player-labels,#world-labels{z-index:1}.utility{z-index:6}#touch-controls{position:absolute;inset:0;pointer-events:none;z-index:4}#joystick,.touch-actions{pointer-events:auto}.overlay{z-index:20}#fatal{z-index:30}#toast{z-index:8}#menu-toggle{display:none}.touch-enabled #menu-toggle{display:block}.touch-enabled .utility{bottom:max(12px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));max-width:calc(100vw - 24px);flex-wrap:wrap;align-items:center}.touch-enabled .utility button:not(#menu-toggle){display:none}.touch-enabled .utility.open{padding:8px;background:#293f2aeb;backdrop-filter:blur(8px);border:1px solid #ffffff80;border-radius:9px;max-width:340px}.touch-enabled .utility.open button:not(#menu-toggle){display:block}.touch-enabled .utility button{min-height:40px;min-width:40px;font-size:12px}.touch-actions{display:block;right:max(20px,env(safe-area-inset-right));bottom:max(70px,calc(env(safe-area-inset-bottom) + 55px));width:174px}.touch-main{display:grid;grid-template-columns:1fr 1fr;gap:7px}.touch-actions .touch-main button{min-height:44px;font-size:12px}.touch-actions #touch-use{grid-column:1/-1;font-size:13px;line-height:1.2;min-height:48px;padding:8px}.touch-actions #touch-extra{position:absolute;right:0;bottom:calc(100% + 8px);width:210px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:#293f2aeb;padding:8px;border-radius:9px;border:1px solid #fff9}.touch-actions #touch-extra button{font-size:11px;min-height:44px}#joystick{bottom:max(90px,calc(env(safe-area-inset-bottom) + 75px));left:max(20px,env(safe-area-inset-left))}.touch-enabled .leg-health{font-size:0;min-height:18px}.touch-enabled .leg-health:before{content:attr(data-leg);font-size:10px}.touch-enabled .repair-hint{display:none}.touch-enabled .prototype-note{display:none}
@media(max-width:600px){.touch-enabled .mission{left:max(12px,env(safe-area-inset-left));top:max(12px,env(safe-area-inset-top));max-width:calc(100vw - 135px)}.touch-enabled .mission h1{font-size:18px;gap:8px;white-space:nowrap}.touch-enabled .mission h1 svg{width:22px;height:27px;flex-shrink:0}.touch-enabled .distance{font-size:14px;margin-left:30px;margin-top:2px}.touch-enabled .distance span{font-size:13px;margin-right:6px}.touch-enabled .mission p{margin-left:0;max-width:100%;font-size:10px;line-height:1.4;margin-top:7px}.touch-enabled .mission .resource-stock{font-size:12px;margin-top:10px}.touch-enabled .mission .mode-label,.touch-enabled .mission .driver-label{font-size:9px;line-height:1.35}.touch-enabled .status{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:105px}.touch-enabled .status-row{height:24px;margin-bottom:6px;gap:6px}.touch-enabled .status-row svg{width:23px;height:23px}.touch-enabled .meter{height:14px;border-width:2px}.touch-enabled .leg-health-row{flex-wrap:nowrap;gap:3px}.touch-enabled .leg-health{flex:1;padding:3px 0}.touch-actions{right:max(14px,env(safe-area-inset-right));width:153px}#joystick{width:102px;height:102px;left:max(17px,env(safe-area-inset-left))}.touch-enabled #toast{bottom:190px;max-width:80%;font-size:11px;padding:9px 12px}}
@media(max-height:500px) and (min-aspect-ratio:1/1){.mission{left:max(14px,env(safe-area-inset-left));top:max(9px,env(safe-area-inset-top));max-width:32vw}.mission h1{font-size:18px;gap:8px;white-space:nowrap}.mission h1 svg{width:23px;height:27px;flex-shrink:0}.distance{font-size:13px;margin:2px 0 0 31px}.distance span{font-size:12px;margin-right:5px}.mission p{font-size:10px;line-height:1.3;margin:4px 0 0 31px;max-width:240px}.mission .resource-stock{font-size:12px;margin-top:8px}.mission .mode-label,.mission .driver-label{font-size:8px;margin-top:4px}.status{right:max(14px,env(safe-area-inset-right));top:max(10px,env(safe-area-inset-top));width:152px}.status-row{height:24px;gap:8px;margin-bottom:6px}.status-row svg{width:25px;height:25px}.meter{height:15px;border-width:2px}.leg-health-row{margin-top:5px;gap:4px;flex-wrap:nowrap}.leg-health{flex:1}.repair-hint{display:none}.player-label{font-size:13px;padding:2px 5px;border-radius:6px}.player-label:after{bottom:-4px;border-left-width:4px;border-right-width:4px;border-top-width:5px}.resource-label,.part-label{font-size:9px;padding:3px 5px}.touch-actions{right:max(16px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));width:162px}.touch-main{gap:5px}.touch-actions .touch-main button{min-height:40px;font-size:11px}.touch-actions #touch-use{min-height:44px;font-size:12px}.touch-actions #touch-extra button{min-height:38px;font-size:10px}#joystick{width:90px;height:90px;bottom:max(70px,calc(env(safe-area-inset-bottom) + 55px));left:max(23px,env(safe-area-inset-left))}#joystick-knob{width:40px;height:40px}.touch-enabled #toast{top:10px;bottom:auto;width:32vw;max-width:340px;font-size:10px;padding:7px 10px}.welcome-card{max-height:94dvh;overflow:auto;width:430px;padding:20px 26px}.welcome-card h2{font-size:27px;margin:12px 0 10px}.welcome-card p{font-size:11px;line-height:1.5}.intro-controls{font-size:10px;margin:14px 0;gap:10px 6px}.welcome-card>small{font-size:9px;margin-top:10px}}
@media(max-height:500px) and (min-aspect-ratio:1/1){.welcome-card{width:min(650px,90vw);display:grid;grid-template-columns:1fr 1fr;column-gap:24px;padding:18px 24px;align-items:start}.welcome-card .eyebrow{grid-column:1;grid-row:1;font-size:8px}.welcome-card h2{grid-column:1;grid-row:2;font-size:28px;margin:10px 0}.welcome-card>p{grid-column:1;grid-row:3;margin:0 0 12px;font-size:11px;line-height:1.5}.welcome-card .intro-controls{grid-column:2;grid-row:1/span 3;margin:8px 0;gap:12px 7px;align-self:center;max-width:100%}.welcome-card #start{grid-column:1;grid-row:4;min-height:42px;padding:10px 14px}.welcome-card #start-defense{grid-column:2;grid-row:4;margin:0;min-height:42px;font-size:11px;padding:8px}.welcome-card>small{grid-column:1/-1;grid-row:5;font-size:8px;margin-top:9px}}
.equipment-hint{position:absolute;right:30px;bottom:85px;display:flex;align-items:center;gap:8px;color:white;font-size:12px;font-weight:600;text-shadow:var(--shadow)}.equipment-hint kbd{background:#fff;color:#304a36;padding:3px 6px;border-radius:4px;font:700 12px Arial;text-shadow:none}.touch-enabled .equipment-hint{display:none}.touch-main #touch-equip{grid-column:1/-1;min-height:44px;background:#304d37b8;color:#fff}.touch-main button:disabled{opacity:.65;cursor:default}.interaction{max-width:55%;font-size:20px}.interaction span{line-height:1.2}.equipment-hint{max-width:55%}@media(max-width:850px){.equipment-hint{right:20px;bottom:75px;font-size:10px}.interaction{font-size:16px}}@media(max-width:520px){.interaction{max-width:60%;font-size:14px}}
