:root{--aqua:#48e8cc;--gold:#ffd17d;--navy:#071626;--ink:#e9f8ff}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#071626;color:var(--ink);font-family:Outfit,system-ui,sans-serif}button,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}#app{height:100vh;display:flex;flex-direction:column}.top{height:79px;display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(95deg,#07172a 10%,#123450 64%,#09172d);border-bottom:1px solid #3b7187;z-index:4;padding:0 28px;box-shadow:0 10px 25px #03121d99}.brand{display:flex;align-items:center;gap:12px;min-width:285px}.brand-icon{font-size:38px;color:#55ecde;text-shadow:0 0 22px #1ad7d9}.brand b{font-family:'Baloo 2';font-size:23px;letter-spacing:.4px;display:block;line-height:1}.brand em{color:var(--aqua);font-style:normal}.brand small{color:#9db8ce;font-size:11px;letter-spacing:2px;font-weight:800}.brand small span{color:var(--gold)}.player-stat{display:flex;align-items:center;gap:12px;background:#0a2139;border:1px solid #315a74;border-radius:17px;padding:7px 17px;min-width:360px}.player-stat img{width:40px;height:48px;object-fit:none;object-position:0 0;image-rendering:pixelated;border-radius:50%;background:#1d5572}.player-stat strong{font-size:13px}.player-stat strong span{color:#9cc2d3;font-weight:400}.player-stat b{font-size:12px;color:var(--gold);white-space:nowrap}.xp-track{height:9px;background:#132e4b;border-radius:10px;border:1px solid #315d78;margin-top:7px;overflow:hidden;width:190px}.xp-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#28c8c1,#ffcf75);transition:width .5s}.top-right{display:flex;align-items:center;gap:10px}.chip{padding:10px 15px;border-radius:12px;background:#0b2c45;border:1px solid #2e6981;font-size:14px;color:#7dece1}.chip.gold{color:var(--gold)}.icon-button{background:#1a3851;border:1px solid #4e8194;border-radius:12px;color:white;font-weight:900;padding:9px 14px}main{position:relative;flex:1;min-height:0;overflow:hidden;background:#11263a}#game{position:absolute;inset:0}#game canvas{display:block}.top-overlay{position:absolute;top:18px;left:22px;right:22px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none;gap:15px}.location{background:linear-gradient(90deg,#091b30ed,#0a2743bd);border:1px solid #327b89;border-left:4px solid var(--aqua);padding:13px 21px;border-radius:13px;box-shadow:0 12px 35px #0007;max-width:420px}.location span{display:block;font-size:10px;letter-spacing:2px;color:var(--aqua);font-weight:800}.location strong{display:block;font-family:'Baloo 2';font-size:23px;line-height:1.25}.location small{color:#a5b8c8}.quest{width:295px;background:#071a2ae8;border:1px solid #468ba3;border-radius:17px;padding:15px 19px;box-shadow:0 12px 40px #0008}.quest-title{font-size:11px;letter-spacing:1.5px;color:var(--aqua);font-weight:800;display:flex;justify-content:space-between}.quest h3{font-family:'Baloo 2';font-size:19px;margin:7px 0}.task{font-size:12px;color:#c4d8e5;line-height:1.9}.task.done{color:#61e9c1}.bottom{position:absolute;bottom:20px;left:24px;right:24px;display:flex;align-items:end;justify-content:space-between;pointer-events:none;gap:20px}.bottom>*{pointer-events:auto}.control-hint,.actions{display:flex;align-items:center;gap:9px;background:#07172ce8;border:1px solid #3b6a83;border-radius:14px;padding:10px 14px;font-size:12px}.keys,kbd{background:#142f48;border:1px solid #5e8aa2;border-bottom:3px solid #27536e;border-radius:6px;padding:4px 7px;color:#f0fbff;font-weight:800;font-family:Outfit}.inventory-bar{display:flex;gap:7px;background:#071b32e9;border:1px solid #4c90a6;padding:9px;border-radius:17px;box-shadow:0 0 24px #0bdac729}.slot{width:53px;height:52px;display:grid;place-items:center;font-size:24px;position:relative;border:1px solid #476b89;background:#16304c;border-radius:10px}.slot.active{border:2px solid #5ef1d8;box-shadow:0 0 14px #34e4c78a}.slot.locked{opacity:.45}.slot small{position:absolute;right:4px;bottom:2px;font-size:10px}.actions button{border:0;background:none;color:#dceff7}.near-hint{position:absolute;left:50%;bottom:110px;transform:translateX(-50%);background:#08233aee;border:1px solid #61e6d0;border-radius:11px;padding:11px 18px;box-shadow:0 0 30px #1fe6cb44;font-size:15px;z-index:3}.dialog-back{position:absolute;inset:0;background:#030e1ba1;z-index:10;display:flex;align-items:end;justify-content:center;padding:0 22px 75px;backdrop-filter:blur(3px)}.dialog{width:min(1050px,100%);min-height:250px;background:linear-gradient(130deg,#0b213a,#123650 70%,#0a1d35);border:2px solid #5ab4c6;border-radius:23px;box-shadow:0 0 60px #000a,0 0 30px #13c9c535;display:flex;position:relative;overflow:hidden}.portrait{width:240px;flex-shrink:0;display:flex;align-items:end;justify-content:center;background:radial-gradient(circle at 50% 55%,#317f8c88,transparent 70%)}.portrait img{width:210px;height:230px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 6px 7px #0008)}.dialog-content{padding:25px 35px;flex:1}.eyebrow{color:var(--aqua);font-size:11px;font-weight:900;letter-spacing:2px}.dialog h2{font-family:'Baloo 2';font-size:29px;margin:4px 0}.dialog p{font-size:16px;line-height:1.55;color:#cfe6f2;margin:0 0 14px}.dialog-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.dialog-buttons button{border:1px solid #5a92a6;background:#183a57;color:#e9faff;padding:10px 17px;border-radius:11px;font-weight:700}.dialog-buttons button.primary{background:linear-gradient(90deg,#38d9b2,#66bce7);color:#06283a;border-color:#72f9dc}.close{position:absolute;right:16px;top:12px;background:#153550;color:white;border:1px solid #56809a;border-radius:9px;padding:5px 10px}.toast{position:absolute;top:105px;left:50%;transform:translateX(-50%);z-index:12;background:#092a3ff5;border:1px solid #70e7ce;border-radius:13px;padding:14px 24px;box-shadow:0 0 35px #27c6bc65;font-weight:700}.prompt-input{width:100%;height:105px;resize:vertical;background:#061b2e;border:1px solid #417b94;border-radius:10px;color:white;padding:13px;outline:none}.feedback{font-size:13px;color:#ffdc94;margin-top:8px}.mobile{display:none}#loading{position:absolute;inset:0;background:#06182a;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center}#loading .loading-mark{font-size:80px;color:#47e6cc;animation:pulse 1.5s infinite}#loading h1{font-family:'Baloo 2';font-size:40px;margin:0}#loading h1 span{color:#47e6cc}#loading p{color:#a9d3dc}@keyframes pulse{50%{transform:scale(1.15);opacity:.5}}#confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden;z-index:15}.confetti{position:absolute;top:-30px;width:9px;height:18px;animation:fall 2.4s linear forwards}@keyframes fall{to{transform:translateY(105vh) rotate(850deg)}}@media(max-width:1050px){.player-stat{min-width:0}.player-stat b{display:none}.quest{width:230px}.location{max-width:300px}.location strong{font-size:18px}.control-hint{display:none}}@media(max-width:700px){.top{height:65px;padding:0 12px}.brand{min-width:0}.brand b{font-size:17px}.brand small{font-size:9px}.player-stat{display:none}.chip{padding:6px}.top-right .chip:first-child{display:none}.top-overlay{left:9px;right:9px;top:10px}.location{padding:8px;max-width:200px}.location strong{font-size:15px}.location small{display:none}.quest{width:165px;padding:8px}.quest h3{font-size:14px}.task{font-size:10px}.bottom{bottom:8px;left:8px;right:8px;justify-content:center}.inventory-bar{transform:scale(.75);transform-origin:bottom}.actions{display:none}.mobile{display:flex;position:absolute;bottom:12px;left:10px;right:10px;justify-content:space-between;align-items:end;pointer-events:none}.mobile button{pointer-events:auto;border:1px solid #63c6d5;background:#082d48d9;color:white;border-radius:9px;padding:11px;font-weight:900}.dpad{text-align:center}.dpad button{width:45px;height:42px}.dpad>div{display:flex;gap:4px}.dialog-back{padding:0 10px 45px}.portrait{width:95px}.portrait img{width:100px}.dialog-content{padding:18px}.dialog h2{font-size:22px}.dialog p{font-size:13px}.dialog-buttons button{font-size:12px;padding:8px}}

/* Nexus 2.5D: atmospheric HUD and smooth rendered characters */
#game canvas{image-rendering:auto!important;outline:none;}
.top{backdrop-filter:blur(16px);background:linear-gradient(90deg,#061a2de8,#102e46e8)!important;}
.quest,.location,.inventory-bar{box-shadow:0 15px 45px #0007, inset 0 1px 0 #ffffff1a!important;backdrop-filter:blur(12px)}
.dialog{box-shadow:0 30px 90px #000c,0 0 40px #3ddbc91a!important;}
