*{margin:0;padding:0;box-sizing:border-box}body{overflow:hidden;background:#87ceeb;font-family:Segoe UI,sans-serif;cursor:crosshair}#game-canvas{display:block;width:100vw;height:100vh}#ui-overlay{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}#boss-bar-container{position:absolute;top:20px;left:50%;transform:translate(-50%);width:400px;text-align:center}#boss-name{color:#fff;font-size:14px;font-weight:700;letter-spacing:2px;text-shadow:0 2px 4px rgba(0,0,0,.5);margin-bottom:4px}#boss-bar-bg{width:100%;height:14px;background:#00000080;border-radius:7px;border:2px solid rgba(255,255,255,.3);overflow:hidden}#boss-bar{height:100%;width:100%;background:linear-gradient(90deg,#f20,#f60);border-radius:5px;transition:width .3s}#coin-display{position:absolute;top:20px;left:20px;color:gold;font-size:16px;font-weight:700;background:#00000080;padding:6px 12px;border-radius:6px;border:1px solid rgba(255,215,0,.3)}#player-health{position:absolute;bottom:30px;left:30px;font-size:28px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.4))}#dash-cooldown-container{position:absolute;bottom:30px;left:50%;transform:translate(-50%);width:120px;height:6px;background:#0006;border-radius:3px;overflow:hidden}#dash-cooldown-bar{width:100%;height:100%;background:#6df;border-radius:3px;transition:width .05s linear}#rock-charge{position:absolute;bottom:50px;left:50%;transform:translate(-50%);width:120px;height:6px;background:#0006;border-radius:3px;overflow:hidden;border:1px solid rgba(200,180,100,.4)}#rock-bar{width:0%;height:100%;background:linear-gradient(90deg,#a84,#642);border-radius:3px;transition:width .05s linear}#instructions{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#fff;background:#000000b3;padding:24px 36px;border-radius:12px;font-size:15px;line-height:2;pointer-events:all;animation:fadeIn .5s}#instructions b{font-size:28px;display:block;margin-bottom:8px}#end-screen{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000000d9;pointer-events:all;animation:fadeIn .4s}#end-screen h1{color:#fff;font-size:52px;margin-bottom:20px;text-shadow:0 0 20px rgba(255,200,0,.6)}.restart-hint{color:#888;font-size:18px;animation:pulse 2s infinite}#journal-btn{position:absolute;top:20px;right:20px;color:#f5e6c8;font-size:14px;background:linear-gradient(135deg,#3d2b1f,#5c3a1e);padding:8px 14px;border-radius:4px;border:2px solid #8b6832;pointer-events:all;cursor:pointer;font-family:Georgia,serif}#journal-panel{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:520px;max-height:75vh;overflow-y:auto;background:linear-gradient(170deg,#f5e6c8,#e8d5a8 30%,#dcc89a);border:none;border-radius:4px;padding:32px 40px;color:#2a1a08;pointer-events:all;box-shadow:inset 0 0 40px #643c1426,8px 0 20px #0006,-2px 0 8px #0003;border-left:14px solid #5c3a1e;font-family:Georgia,serif}#journal-panel:before{content:"";position:absolute;top:0;left:14px;width:4px;height:100%;background:linear-gradient(180deg,transparent,rgba(100,60,20,.2),transparent)}#journal-panel h2{text-align:center;margin-bottom:20px;color:#3d2b1f;font-size:24px;font-family:Georgia,serif;border-bottom:2px solid #8b6832;padding-bottom:12px}.journal-entry{background:#ffffff4d;border:1px solid rgba(139,104,50,.3);border-radius:4px;padding:12px 16px;margin-bottom:10px}.journal-entry .name{font-weight:700;color:#5c3a1e;font-size:15px;font-family:Georgia,serif}.journal-entry .desc{color:#4a3520;font-size:13px;margin-top:4px;font-style:italic}.journal-entry.undiscovered{opacity:.5;background:#0000000a}.journal-entry.undiscovered .name{color:#8b7355}.journal-entry.undiscovered .desc{color:#987}.journal-close{text-align:center;color:#8b6832;font-size:13px;margin-top:16px;font-family:Georgia,serif}#debug-panel{position:absolute;top:60px;left:10px;background:#000c;color:#0f0;font-family:monospace;font-size:11px;padding:10px;border-radius:6px;max-width:280px;white-space:pre-wrap}.hidden{display:none!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}
