*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;background:#03050a;color:#fff;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif}button{font:inherit}#game{position:fixed;inset:0;width:100%;height:100%;touch-action:none}.screen{position:fixed;inset:0;z-index:30;display:none}.screen.active{display:flex}.campus{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,5,12,.15),rgba(2,4,10,.35) 45%,rgba(0,0,0,.94))}.splash-copy{position:absolute;left:50%;bottom:max(32px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(92%,720px);text-align:center}.logo{width:min(620px,88vw);max-height:230px;object-fit:contain;filter:drop-shadow(0 10px 40px rgba(0,0,0,.8))}.eyebrow{font-size:11px;letter-spacing:.28em;color:#83cbff;font-weight:900}.splash-copy h1{font-size:clamp(28px,7vw,60px);margin:8px 0 2px;letter-spacing:.08em}.splash-copy p{margin:4px auto 18px;color:#c7d5e4;max-width:600px}.splash-copy small{display:block;margin-top:12px;color:#8291a2}.primary{border:1px solid #52bbff;background:linear-gradient(135deg,#0d6da4,#123965);color:#fff;font-weight:900;letter-spacing:.08em;border-radius:14px;padding:15px 25px;box-shadow:0 0 26px rgba(35,159,255,.35);cursor:pointer}.primary:active{transform:scale(.98)}#loading{align-items:center;justify-content:center;background:radial-gradient(circle at center,#102443,#03050a 70%)}.loader-card{text-align:center;width:min(88%,520px)}.loader-card img{width:100%;max-height:210px;object-fit:contain}.loader-bar{height:7px;background:#111b28;border-radius:99px;overflow:hidden;border:1px solid #29445f}.loader-bar span{display:block;width:0;height:100%;background:linear-gradient(90deg,#ef321d,#45aaff);box-shadow:0 0 18px #2c9fff;transition:width .2s}.loader-card p{color:#b9c7d5}.modal-screen{align-items:center;justify-content:center;background:rgba(0,0,0,.72);backdrop-filter:blur(8px)}.panel{width:min(91vw,560px);padding:24px;border-radius:22px;background:linear-gradient(160deg,rgba(15,27,43,.96),rgba(5,10,18,.98));border:1px solid #2d5578;box-shadow:0 22px 80px #000}.panel h2{font-size:32px;margin:8px 0}.panel p{color:#b8c4d1;line-height:1.5}.assignment{margin:18px 0;border:1px solid #263d56;border-radius:15px;overflow:hidden}.assignment div{display:flex;justify-content:space-between;padding:13px 15px;border-bottom:1px solid #263d56}.assignment div:last-child{border:0}.assignment b{color:#73c7ff}.mission-meta{display:flex;justify-content:space-between;margin:16px 2px}.mission-meta b{color:#ff744d}.results-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.results-grid div{padding:15px;border:1px solid #29455f;border-radius:13px;background:#08111e}.results-grid span{display:block;color:#8497aa;font-size:12px}.results-grid b{display:block;font-size:22px;margin-top:5px;color:#71ccff}.hud{position:fixed;z-index:12;top:max(10px,env(safe-area-inset-top));left:12px;right:12px;height:62px;display:flex;align-items:center;justify-content:space-between;padding:10px 13px;border:1px solid rgba(79,177,255,.45);border-radius:15px;background:rgba(4,8,15,.72);backdrop-filter:blur(10px);box-shadow:0 10px 30px rgba(0,0,0,.35)}.hidden{display:none!important}.brand span{display:block;color:#ef3a25;font-size:13px;font-weight:1000;letter-spacing:.1em}.brand b{display:block;color:#8dd5ff;font-size:18px;font-style:italic;text-shadow:0 0 12px #168dff}.stats{display:flex;gap:18px}.stats div{text-align:right}.stats small{display:block;color:#72869a;font-size:9px;letter-spacing:.12em}.stats strong{font-size:13px}.mission{position:fixed;z-index:12;left:12px;top:84px;width:min(300px,55vw);padding:12px;border:1px solid rgba(255,98,55,.42);border-radius:14px;background:rgba(7,10,16,.74);backdrop-filter:blur(9px)}.mission-head{color:#ff7450;font-size:10px;letter-spacing:.18em;font-weight:900;margin-bottom:7px}.check-row{font-size:11px;color:#d9e2ea;padding:4px 0;display:flex;gap:7px}.check-row:before{content:"";width:9px;height:9px;border-radius:50%;border:1px solid #6b8197;margin-top:2px}.check-row.done{color:#76efb1;text-decoration:line-through}.check-row.done:before{background:#55e89f;border-color:#55e89f}.interaction{position:fixed;z-index:15;left:50%;bottom:140px;transform:translateX(-50%);padding:10px 16px;border-radius:99px;background:rgba(6,13,23,.9);border:1px solid #70caff;font-size:11px;font-weight:900;letter-spacing:.12em;white-space:nowrap}.toast{position:fixed;z-index:45;left:50%;top:95px;transform:translate(-50%,-25px);opacity:0;padding:11px 16px;border-radius:12px;background:rgba(2,7,13,.92);border:1px solid #477493;color:#dfefff;font-size:12px;text-align:center;transition:.25s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}.mobile-controls{position:fixed;z-index:18;left:0;right:0;bottom:max(18px,env(safe-area-inset-bottom));display:flex;justify-content:space-between;align-items:flex-end;padding:0 22px;pointer-events:none}.joystick{width:116px;height:116px;border-radius:50%;border:2px solid rgba(126,203,255,.45);background:rgba(3,10,18,.36);backdrop-filter:blur(4px);pointer-events:auto;touch-action:none}.stick{width:48px;height:48px;border-radius:50%;position:absolute;margin:32px;background:radial-gradient(circle at 35% 30%,#b8e8ff,#1b76ac);box-shadow:0 0 18px #128ee0;transform:translate(0,0)}.actions{display:flex;flex-direction:column;gap:12px;pointer-events:auto}.action{width:94px;height:58px;border-radius:18px;border:1px solid #66c7ff;background:rgba(8,77,119,.72);color:#fff;font-size:11px;font-weight:900;box-shadow:0 0 18px rgba(35,158,239,.25)}.action.secondary{border-color:#ff7c52;background:rgba(122,46,24,.72)}.mute{position:fixed;z-index:16;right:15px;top:87px;border:1px solid #40576d;background:rgba(5,10,18,.7);color:#a9b9c8;border-radius:9px;padding:7px 9px;font-size:9px}.desktop-help{position:fixed;z-index:12;bottom:12px;left:50%;transform:translateX(-50%);color:#9aabba;font-size:11px}@media(min-width:800px){.mobile-controls{display:none!important}.interaction{bottom:55px}}@media(max-height:650px){.splash-copy{bottom:18px}.logo{max-height:130px}.splash-copy p{display:none}.panel{padding:18px}.panel h2{font-size:26px}}