:root{--ink:#f4f1e6;--muted:#c7c2b0;--panel:#121c14b8;--border:#ffffff24;--accent:#8bd17c;--accent-dark:#3f7d35;--danger:#e2574c;--purple:#c58cff;--gap:16px}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);background:#0c140e;margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;overflow:hidden}#app canvas{display:block}.hidden{display:none!important}#hud{pointer-events:none;position:fixed;inset:0}.panel{background:var(--panel);border:1px solid var(--border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:12px;flex-direction:column;gap:8px;padding:12px 16px;display:flex;position:absolute}.top-left{width:300px;top:16px;left:16px}.top-right{width:240px;top:16px;right:16px}.row{align-items:center;gap:12px;display:flex}.tag{color:var(--muted);width:48px;font-size:12px}.title{font-size:14px;font-weight:600}.small{color:var(--muted);font-size:12px}.bar{background:#ffffff1f;border-radius:6px;flex:1;height:10px;overflow:hidden}.bar.wide{flex:none;width:100%}#hp-fill{background:linear-gradient(90deg,#d9483b,#f07a4a);width:100%;height:100%;transition:width .2s}#clean-fill{background:linear-gradient(90deg, var(--accent-dark), var(--accent));width:0;height:100%;transition:width .3s}.objective{border-top:1px solid var(--border);color:#e8dcff;padding-top:8px;font-size:13px;line-height:1.4}.objective:empty{display:none}.compass{background:var(--panel);border:1px solid var(--border);border-radius:20px;align-items:center;gap:12px;padding:6px 16px;font-size:13px;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}#compass-arrow{color:var(--purple);font-size:16px;transition:transform .1s linear}#crosshair{background:#ffffffd9;border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 2px #00000059}.prompt{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:6px 14px;font-size:14px;position:absolute;top:calc(50% + 40px);left:50%;transform:translate(-50%)}.prompt:empty{display:none}#toasts{flex-direction:column;gap:8px;max-width:420px;display:flex;position:absolute;bottom:120px;left:16px}.toast{background:var(--panel);border-left:3px solid var(--accent);border-radius:6px;padding:8px 12px;font-size:13px;animation:.25s ease-out fadein}.toast.warn{border-left-color:var(--danger)}.toast.story{border-left-color:var(--purple)}@keyframes fadein{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.bottom{flex-direction:column;align-items:center;gap:12px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.hotbar{gap:8px;display:flex}.slot{background:var(--panel);border:2px solid var(--border);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:84px;height:56px;font-size:13px;display:flex}.slot .key{color:var(--muted);font-size:11px}.slot.active{border-color:var(--accent);box-shadow:0 0 12px #8bd17c66}.slot.locked{opacity:.4}.inventory{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:center;gap:4px 16px;max-width:980px;padding:6px 16px;font-size:13px;display:flex}.inventory b{color:var(--accent)}.hint{color:var(--muted);background:var(--panel);border-radius:8px;padding:6px 12px;font-size:12px;position:absolute;top:132px;right:16px}.damage{pointer-events:none;transition:box-shadow .3s;position:fixed;inset:0;box-shadow:inset 0 0 160px #c8141400}.fade{opacity:0;pointer-events:none;background:#000;transition:opacity .8s;position:fixed;inset:0}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#050c0799;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}#start{background:radial-gradient(circle at 50% 30%,#285a32cc,#050c07f2)}.card{border:1px solid var(--border);background:#142016f2;border-radius:16px;flex-direction:column;gap:16px;width:100%;max-width:640px;max-height:90vh;padding:24px 32px;display:flex;overflow:auto}.small-card{text-align:center;align-items:center;max-width:380px}.card h1{color:var(--accent);letter-spacing:1px;margin:0;font-size:44px}.card h2{margin:0;font-size:24px}.card p{color:var(--muted);margin:0;line-height:1.55}.card p.lead{color:var(--ink);font-size:16px}.controls{color:var(--muted);grid-template-columns:1fr 1fr;gap:8px 16px;font-size:14px;display:grid}.controls b{color:var(--ink);min-width:72px;display:inline-block}.btn{pointer-events:auto;cursor:pointer;border:1px solid var(--border);color:var(--ink);background:#ffffff14;border-radius:10px;padding:10px 20px;font-family:inherit;font-size:15px}.btn:hover{background:#ffffff29}.btn.primary{background:var(--accent-dark);border-color:var(--accent)}.btn.primary:hover{background:#4c9441}.btn:disabled{opacity:.4;cursor:not-allowed}.close-btn{align-self:center}.craft-list{flex-direction:column;gap:12px;display:flex}.recipe{border:1px solid var(--border);background:#ffffff0d;border-radius:10px;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.recipe .name{font-weight:600}.recipe .desc{color:var(--muted);margin-top:4px;font-size:13px}.recipe .cost{color:var(--muted);margin-top:4px;font-size:12px}.recipe .cost .miss{color:var(--danger)}.quest{border:1px solid var(--border);border-radius:10px;margin-bottom:12px;padding:12px 16px}.quest.done{opacity:.65}.quest .qt{margin-bottom:4px;font-weight:600}.quest .qd{color:var(--muted);font-size:13px;line-height:1.5}.fragments{gap:12px;margin-top:8px;display:flex}.frag{border:1px dashed var(--border);width:48px;height:56px;color:var(--purple);border-radius:8px;justify-content:center;align-items:center;font-size:24px;font-weight:700;display:flex}.paper{color:#3a2c17;background:#efe3c4;border-radius:6px;flex-direction:column;gap:16px;width:100%;max-width:520px;padding:32px;font-family:Georgia,Times New Roman,serif;display:flex;transform:rotate(-1deg);box-shadow:0 20px 60px #0009}.paper h2{margin:0}.paper p{margin:0;line-height:1.6}.paper .btn{color:#fff}.keypad-display{letter-spacing:6px;color:var(--purple);font-family:monospace;font-size:36px;font-weight:700}.keypad-keys{grid-template-columns:repeat(3,64px);gap:12px;display:grid}.keypad-keys .btn{padding:12px 0}.keypad-msg{min-height:20px;font-size:13px}@media (width<=720px){.top-left{width:220px}.top-right{width:180px}.slot{width:60px;font-size:11px}.hint{display:none}}
