@import "https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=Inter:wght@400;500;600;700&display=swap";*{box-sizing:border-box}html,body{touch-action:manipulation}body{color:#fff7e8;background:#182a30;margin:0;font-family:Inter,Arial,sans-serif;overflow:hidden}#game{touch-action:none;width:100vw;height:100vh;display:block}#hud{pointer-events:none;position:fixed;inset:0}header{letter-spacing:2px;background:linear-gradient(#17252d66,#0000);justify-content:flex-end;align-items:center;padding:28px 38px;font-size:10px;display:flex;position:relative}.mode{text-align:center;white-space:nowrap;padding-top:6px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mode b{margin-top:8px;font-size:12px;display:block}#map{text-align:center;background:#1f363766;border:1px solid #ffffff25;padding:8px;position:absolute;top:18px;left:16px}.site{text-align:right;position:absolute;top:66px;right:38px}#crosshair{text-shadow:0 1px 2px #123;font-size:23px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}footer{background:linear-gradient(#0000,#14262b99);justify-content:space-between;align-items:end;width:100%;padding:30px 45px;display:flex;position:absolute;bottom:0}small{letter-spacing:2px;margin-bottom:5px;font-size:9px;display:block}strong{font-family:Barlow Condensed,Arial,sans-serif;font-size:40px}.health strong span{color:#bfe0ca;margin-left:15px;font-size:22px}.ammo{text-align:right;align-items:baseline;gap:14px;display:flex}.ammo small{margin-bottom:0;display:inline}.ammo em{color:#c2c5bc;font-size:23px;font-style:normal}.controls{word-spacing:4px;font-size:10px}.controls span{color:#cad0c9;margin-right:20px;font-size:8px}.site span{letter-spacing:3px;font-size:9px;display:block}.site strong{letter-spacing:2px;font-size:23px}#notice{text-align:center;letter-spacing:3px;color:#fff2bf;width:100%;font-size:12px;position:absolute;top:22%}#menu{background:linear-gradient(90deg,#172c30ed 0%,#172c30b5 32%,#0000 73%);padding:40px 6vw;position:fixed;inset:0}.menu-top{letter-spacing:7px;font-size:20px;font-weight:700}.intro{position:absolute;top:28%}.eyebrow{color:#e7bb77;letter-spacing:4px;font-size:10px}h1{letter-spacing:-1px;margin:26px 0;font-family:Barlow Condensed,Impact,sans-serif;font-size:clamp(65px,7.5vw,115px);font-weight:600;line-height:.95}h1 i{color:#eac790;font-style:normal}p{color:#cbd1c8;font-size:12px;line-height:1.9}button{color:#223a3a;text-align:left;letter-spacing:2px;cursor:pointer;background:#eac790;border:1px solid #f5dbac;width:275px;margin-top:25px;padding:19px 24px;font-size:11px;font-weight:700}button:hover{background:#ffe2ad}button span{float:right;font-size:18px}.hint{color:#b7c7be;margin-top:17px;font-size:9px}.menu-bottom{letter-spacing:2px;color:#cad3c6;justify-content:space-between;font-size:9px;display:flex;position:absolute;bottom:35px;left:6vw;right:6vw}.hidden{display:none!important}@media (width<=700px){.controls,.status,.menu-top span{display:none}.intro{top:34%}.site{top:20px;right:20px}.mode{top:26px;transform:translate(-50%)}}#stage{position:fixed;inset:0}html.mobile-rotate #stage{transform-origin:0 0;width:100vh;height:100vw;transform:rotate(90deg)translateY(-100%)}#rotate-overlay{z-index:60;text-align:center;color:#fff7e8;letter-spacing:2px;background:#0b171cf2;justify-content:center;align-items:center;font-size:14px;line-height:1.9;display:none;position:fixed;inset:0}#rotate-overlay.show{display:flex}#rotate-overlay small{color:#b7c7be;letter-spacing:1px;font-size:9px;display:block}#touch-controls{z-index:20;touch-action:none;position:fixed;inset:0}#joyZone{touch-action:none;width:50%;height:100%;position:absolute;top:0;left:0}#lookZone{touch-action:none;width:50%;height:100%;position:absolute;top:0;right:0}#joyBase{background:#0002;border:2px solid #fff5;border-radius:50%;width:112px;height:112px;margin:-56px 0 0 -56px;display:none;position:absolute}#joyBase.active{display:block}#joyKnob{background:#fff5;border:1px solid #fff7e8aa;border-radius:50%;width:46px;height:46px;margin:-23px 0 0 -23px;position:absolute;top:50%;left:50%}#laserBtn,#reloadBtn,#fireBtn{text-align:center;color:#fff7e8;letter-spacing:1px;border-radius:50%;justify-content:center;align-items:center;margin:0;padding:0;font-family:Barlow Condensed,Arial,sans-serif;font-weight:700;display:flex;position:absolute}#laserBtn{background:#17252d99;border:1px solid #ffffff45;width:56px;height:56px;font-size:12px;bottom:44px;right:210px}#reloadBtn{background:#17252d99;border:1px solid #ffffff45;width:64px;height:64px;font-size:13px;bottom:44px;right:140px}#fireBtn{color:#223a3a;background:#eac790cc;border:2px solid #f5dbac;width:92px;height:92px;font-size:14px;bottom:34px;right:30px}@media (height<=430px){header{padding:14px 20px}footer{padding:16px 26px}strong{font-size:26px}.controls{display:none}.site{top:36px;right:20px}#map{top:12px;left:10px}.mode{top:16px;transform:translate(-50%)}.intro{top:20%}h1{margin:8px 0;font-size:clamp(30px,8vw,52px)}p{display:none}button{width:210px;margin-top:10px;padding:12px 16px}.menu-top{font-size:13px}.menu-bottom{bottom:12px}}#hud:after{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 150px #070d1845}#menu{background:linear-gradient(90deg,#0b171ce8,#0b171c70 40%,#0000 80%)}#map{transform-origin:0 0;background:#0e202450;transform:scale(.64)}#crosshair{color:#b5fff1;font-size:19px}h1 i,.eyebrow{color:#85d8cc}button{background:#9be0cf;border-color:#b5f2de}.status{color:#95e3d1}#crosshair.hit{color:#ffba79;transform:translate(-50%,-50%)rotate(45deg)scale(1.4)}.health b{font-weight:600}#hud.damaged{box-shadow:inset 0 0 100px #ff433d99}#dash-status{letter-spacing:1px}#touch-controls button{color:#e2fff5;touch-action:none;-webkit-user-select:none;user-select:none;background:#17252daa;border:1px solid #a9ead077;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin:0;padding:0;font-size:10px;display:flex;position:absolute}#touch-controls #fireBtn{color:#173638;background:#9be0cfcc;width:78px;height:78px;bottom:80px;right:24px}#touch-controls #reloadBtn{bottom:80px;right:112px}#touch-controls #jumpBtn{bottom:172px;right:24px}#touch-controls #dashBtn{bottom:152px;right:90px}#touch-controls #laserBtn{bottom:80px;right:174px}#touch-controls #cameraBtn{border-radius:8px;width:48px;height:38px;top:90px;right:20px}#touch-controls #pauseBtn{border-radius:8px;width:38px;height:38px;top:20px;left:125px}.touch .controls{display:none}.touch footer{padding:12px 20px}.touch .ammo{display:block}.touch .site{top:48px;right:20px}.touch .mode{display:none}.touch #map{transform:scale(.52)}.touch .hint{line-height:1.8}.touch #notice{font-size:10px;top:17%}.touch #menu{z-index:30}.touch .intro{top:20%}@media (width<=500px){.touch h1{font-size:60px}.touch .intro{top:27%}.touch .site strong{font-size:17px}.touch #touch-controls #laserBtn{bottom:65px;right:150px}.touch #touch-controls #reloadBtn{bottom:65px;right:88px}.touch #touch-controls #fireBtn{width:70px;height:70px;bottom:65px;right:8px}.touch #touch-controls #dashBtn{bottom:132px;right:75px}.touch #touch-controls #jumpBtn{bottom:147px;right:12px}}.touch .ammo small{margin-bottom:2px;font-size:8px;display:block}#mission-hud{background:linear-gradient(90deg,#10232cdd,#0000);border-left:2px solid #d8b16c;max-width:250px;padding:12px 15px;font-size:12px;line-height:1.6;position:absolute;top:140px;left:28px}#mission-hud small{color:#d8b16c;letter-spacing:1.5px;font-size:8px}#ticket-count,#objective-distance{color:#9fcbc5;margin-top:4px;font-size:9px;display:block}#interact-prompt{text-align:center;color:#d2ffed;text-shadow:0 2px 4px #000;width:100%;font-size:12px;position:absolute;top:62%}#district-map{z-index:45;background:#08131cea;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow:auto}.district-panel{background:#13272e;border:1px solid #74948e55;width:min(850px,100%);padding:24px}.district-heading{justify-content:space-between;align-items:center;gap:15px;display:flex}h2{margin:4px 0;font-size:26px;font-weight:500}.district-heading small{color:#8dd4c3}.district-heading button{white-space:nowrap;width:auto;margin:0;padding:12px}.district-columns{grid-template-columns:1.15fr 1fr;gap:25px;display:grid}#district-canvas{object-fit:contain;background:#0c1b22;width:100%;height:auto;max-height:52vh}#beacon-list button{letter-spacing:.5px;width:100%;margin:10px 0;padding:14px;font-size:10px;display:block}#beacon-list button:disabled{color:#7f979b;cursor:default;background:#30444a;border-color:#546c7155}#transit-message{color:#e9c892;min-height:44px}.map-legend{color:#92b0b0;font-size:10px}h3{color:#a9ead7;font-size:14px}#touch-controls #mapBtn{border-radius:8px;width:42px;height:38px;top:20px;left:172px}#touch-controls #interactBtn{border-radius:8px;width:52px;height:42px;bottom:235px;right:24px}.touch #mission-hud{max-width:190px;padding:6px 9px;font-size:10px;top:103px;left:18px}.touch #objective-distance{font-size:8px}.touch #interact-prompt{font-size:10px;top:58%}.touch .district-panel p{display:block}.touch .district-panel{padding:15px}.touch #district-map{padding:10px}.touch .district-heading small{font-size:8px}.touch h2{font-size:20px}.touch #map-objective{margin:4px 0 10px;font-size:10px}.touch #beacon-list button{margin:6px 0;padding:10px}.touch #transit-message{min-height:20px;font-size:10px;line-height:1.4}.touch .map-legend{line-height:1.4}.touch h3{margin:4px 0}.touch .transit-panel>p{margin:7px 0}@media (width<=550px){.district-columns{grid-template-columns:1fr;gap:8px}#district-canvas{max-height:32vh}.district-panel{padding:15px}#mission-hud{max-width:185px;top:120px}.touch #mission-hud{max-width:175px;top:105px}.touch #touch-controls #interactBtn{bottom:209px;right:12px}.district-heading button{padding:10px;font-size:9px}.map-legend{display:none!important}}@media (height<=430px){.touch #mission-hud{max-width:170px;top:104px}.district-panel{padding:12px}.district-heading h2{font-size:20px}.district-panel>p{margin:5px 0}#district-canvas{max-height:56vh}.district-columns{gap:16px}}#reset-run{color:#d1e5db;letter-spacing:1px;background:#162c32c9;border-color:#a9c7c555;width:275px;margin-top:9px;padding:12px 16px;font-size:9px;display:block}#reset-run:hover{background:#37534d}#hover-status{letter-spacing:.6px;color:#9ae5d9;margin-top:6px;font-size:8px;display:block}#touch-controls #hoverBtn{border-radius:8px;width:52px;height:42px;bottom:152px;right:150px}.touch #reset-run{width:210px;padding:9px}.touch .hint{max-width:310px}@media (width<=500px){.touch #touch-controls #hoverBtn{bottom:132px;right:140px}}@media (height<=430px){#reset-run{width:210px;margin-top:6px;padding:8px}.intro .hint{margin-top:8px}}
