
:root{--navy:#0a1c31;--navy2:#123255;--blue:#55b7ff;--gold:#ffd66b;--text:#f8fbff}
*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;background:#071321;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial;color:var(--text)}
#scene{position:absolute;inset:0;width:100%;height:100%;display:block;background:linear-gradient(#b9d7ef 0 16%,#7fb966 16% 100%);touch-action:none}
.panel{position:fixed;z-index:20;background:linear-gradient(180deg,rgba(11,29,50,.96),rgba(7,20,36,.94));border:1px solid rgba(121,187,244,.5);box-shadow:0 12px 30px #0008,inset 0 1px 0 #ffffff12;border-radius:16px;backdrop-filter:blur(8px)}
#mission{top:18px;left:18px;width:360px;padding:16px 18px}.panel-title{font-weight:900;color:var(--gold);font-size:17px;letter-spacing:.4px}.mission-title{font-weight:900;font-size:21px;margin:6px 0 12px}.task{font-size:14px;line-height:1.55;color:#d9ecff}.task.done{color:#77e79f;font-weight:800}
#hud{top:18px;left:50%;transform:translateX(-50%);width:250px;padding:10px 14px;text-align:center}.clock{font-size:20px;font-weight:900}.world-name{font-size:13px;color:#b9d9f6}.xp{height:7px;border-radius:8px;background:#ffffff1b;margin:8px 0 4px;overflow:hidden}.xp span{display:block;height:100%;width:0;background:linear-gradient(90deg,#51df86,#9cf06d);box-shadow:0 0 10px #64ea91}.xp+div{font-size:11px;color:#c9e3f7}
.zone-badge{top:18px;right:18px;padding:10px 14px;font-size:12px;font-weight:900;color:#d8ecff;letter-spacing:.5px}.objective{top:115px;left:50%;transform:translateX(-50%);padding:10px 16px;max-width:540px;text-align:center;font-size:14px;color:#fff5c1}
#inventory{left:50%;bottom:18px;transform:translateX(-50%);padding:10px 12px;min-width:250px}.inv-title{font-size:12px;font-weight:900;text-align:center;color:#cbe8ff}.slots{display:flex;gap:7px;margin-top:7px;justify-content:center}.slots div{width:66px;height:48px;border:1px solid #78aee04d;background:#04101d99;border-radius:10px;display:grid;place-items:center;font-size:12px}
#actions{position:fixed;right:16px;bottom:18px;display:flex;flex-direction:column;gap:9px;z-index:25}#actions button,#touchInteract{width:66px;height:66px;border-radius:17px;border:1px solid #62b7ff88;background:linear-gradient(#153b65,#0b2441);color:white;font-size:24px;box-shadow:0 8px 20px #0008}button{cursor:pointer}button small{display:block;font-size:9px;font-weight:900;margin-top:2px}.interact{position:fixed;z-index:26;left:50%;bottom:115px;transform:translateX(-50%);background:#07192eee;border:1px solid #73bfff99;border-radius:11px;padding:9px 14px;box-shadow:0 8px 24px #0008}.interact kbd{background:#dceeff;color:#10243d;border-radius:5px;padding:4px 7px;margin-right:7px;font-weight:900}
.dialog{position:fixed;z-index:40;left:50%;bottom:20px;transform:translateX(-50%);width:min(880px,calc(100vw - 36px));background:linear-gradient(180deg,#14385ff8,#081b31f8);border:1px solid #63bbff;border-radius:18px;display:flex;gap:16px;padding:16px;box-shadow:0 20px 60px #000c}.portrait{width:118px;min-width:118px;height:118px;border-radius:16px;background:linear-gradient(145deg,#e6f3ff,#a8cae8);border:2px solid #5db9ff;overflow:hidden}.dialog-main{flex:1}.speaker{font-weight:900;font-size:20px;color:#79c9ff}.speech{font-size:17px;line-height:1.45;margin:6px 0 12px}.choices{display:grid;gap:7px}.choices button{padding:10px 12px;text-align:left;color:#fff;background:#153b63;border:1px solid #4d8cc5;border-radius:10px;font-size:14px}.choices button:hover{background:#215486}.toast{position:fixed;z-index:60;left:50%;top:48%;transform:translate(-50%,-50%);background:#081a30f7;border:1px solid #6fc2ff;border-radius:15px;padding:15px 20px;box-shadow:0 18px 55px #000b;text-align:center;max-width:min(520px,90vw)}.hidden{display:none!important}
.map-panel{position:fixed;z-index:70;left:50%;top:50%;transform:translate(-50%,-50%);width:min(620px,92vw);background:linear-gradient(180deg,#15375df8,#07192df8);border:1px solid #62b7ff;border-radius:18px;padding:18px;box-shadow:0 24px 70px #000c}.map-title{font-size:20px;font-weight:900;color:#ffd66b;margin-bottom:14px}.map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.map-grid div{background:#ffffff0d;border:1px solid #7fafe044;border-radius:12px;padding:16px 10px;text-align:center;font-weight:800}.map-panel button{margin-top:14px;width:100%;padding:10px;border-radius:10px;border:1px solid #62b7ff;background:#12385f;color:#fff;font-weight:900}
#mobileControls{display:none;position:fixed;inset:0;z-index:30;pointer-events:none}#joystick{position:absolute;left:20px;bottom:22px;width:126px;height:126px;border-radius:50%;background:#0d2d4f66;border:2px solid #d5ecff66;box-shadow:inset 0 0 30px #0005;pointer-events:auto;touch-action:none}#joystickNub{position:absolute;left:35px;top:35px;width:54px;height:54px;border-radius:50%;background:#dbeeffb8;border:1px solid #fff8;box-shadow:0 5px 18px #0007}#touchInteract{position:absolute;right:18px;bottom:190px;pointer-events:auto}
@media(max-width:820px),(pointer:coarse){
html,body,#app{width:100dvw;height:100dvh}.panel{backdrop-filter:none}#mobileControls{display:block}
#mission{top:10px;left:10px;width:calc(100vw - 20px);padding:9px 11px;max-height:136px;overflow:hidden}.panel-title{font-size:13px}.mission-title{font-size:15px;margin:2px 0 6px}.task{font-size:10.5px;line-height:1.3}
.objective{top:151px;left:10px;width:calc(100vw - 20px);transform:none;font-size:10.5px;padding:7px 9px}.zone-badge{display:none}
#hud{top:194px;left:auto;right:10px;transform:none;width:132px;padding:7px 9px}.clock{font-size:16px}.world-name{font-size:9.5px}
#actions{flex-direction:row;right:10px;bottom:10px;gap:5px}#actions button{width:50px;height:50px;font-size:17px;border-radius:13px}
#inventory{top:260px;bottom:auto;left:10px;transform:none;min-width:0;width:180px;padding:7px 8px}.slots{gap:4px}.slots div{width:48px;height:37px}.inv-title{font-size:9.5px}
#touchInteract{right:12px;bottom:69px;width:56px;height:56px;border-radius:15px}#joystick{left:14px;bottom:14px;width:116px;height:116px}#joystickNub{left:31px;top:31px;width:50px;height:50px}
.dialog{bottom:72px;padding:10px;gap:8px}.portrait{width:60px;min-width:60px;height:60px}.speech{font-size:12.5px}.speaker{font-size:15px}.choices button{font-size:11.5px;padding:7px}.map-grid{grid-template-columns:repeat(2,1fr)}
}
