*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#1a1a1a;color:#fff}#canvas-container{width:100%;height:100%;display:block}canvas{display:block;width:100%;height:100%}.panel{position:absolute;background:#000000d9;border:2px solid rgba(100,200,255,.5);border-radius:10px;padding:30px;max-width:400px;color:#fff;opacity:0;transform:translateY(20px);transition:opacity .5s ease,transform .5s ease;pointer-events:none;z-index:100}.panel.visible{opacity:1;transform:translateY(0);pointer-events:auto}.panel h2{font-size:28px;margin-bottom:15px;color:#64c8ff;text-transform:uppercase;letter-spacing:2px}.panel p{font-size:14px;line-height:1.6;margin-bottom:20px;color:#ddd}.panel-enter{font-size:12px;color:#a8e0ff;margin-bottom:10px;display:inline-block;background:#64c8ff0f;padding:6px 8px;border-radius:6px;border:1px solid rgba(100,200,255,.12)}.panel a{display:inline-block;background:linear-gradient(135deg,#64c8ff,#4a9dd4);color:#000;padding:10px 20px;border-radius:5px;text-decoration:none;font-weight:700;transition:all .3s ease;cursor:pointer}.panel a:hover{transform:scale(1.05);box-shadow:0 0 20px #64c8ff99}#panel-projects{bottom:40px;right:40px}#panel-about{bottom:40px;left:40px}#panel-contact{bottom:120px;right:40px;left:auto;transform:translateY(0)}#panel-contact.visible{transform:translateY(0)}.hud{position:absolute;top:20px;left:20px;background:#000000b3;border:1px solid rgba(100,200,255,.3);padding:15px 20px;border-radius:5px;font-size:12px;z-index:50;font-family:Courier New,monospace}.hud-item{margin:5px 0;color:#64c8ff}.loading-screen{position:fixed;inset:0;background:#0a0e27;display:flex;align-items:center;justify-content:center;z-index:1000;pointer-events:all;clip-path:circle(150% at 50% 50%);transition:clip-path 1.1s cubic-bezier(.7,0,.3,1);overflow:hidden}.loading-screen:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(100,200,255,.025) 2px,rgba(100,200,255,.025) 4px);pointer-events:none;z-index:1}.loading-screen.reveal{clip-path:circle(0% at 50% 50%);pointer-events:none}.loading-screen-inner{position:relative;z-index:2;text-align:center;display:flex;flex-direction:column;align-items:center;gap:28px;animation:ls-fadein .6s ease forwards}@keyframes ls-fadein{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.loading-title{font-size:clamp(28px,5vw,52px);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#fff;position:relative;animation:glitch-idle 3s infinite;background:linear-gradient(90deg,#fff,#bfeeff,#fff,#ffd8e0,#fff,#bfeeff);background-size:200% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;will-change:background-position}.loading-title:before,.loading-title:after{content:attr(data-text);position:absolute;inset:0;clip-path:inset(0 0 0 0)}.loading-title:before{color:#64c8ff;animation:glitch-top 3s infinite}.loading-title:after{color:#f46;animation:glitch-bot 3s infinite}@keyframes glitch-idle{0%,90%,to{transform:none}92%{transform:skew(-2deg)}94%{transform:skew(2deg)}96%{transform:none}}@keyframes shimmer{0%{background-position:0% 50%}to{background-position:200% 50%}}.loading-title.shimmering{animation:glitch-idle 3s infinite,shimmer 1.6s linear infinite}.loading-title .spark{position:absolute;width:6px;height:6px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff,#ffffffe6 30%,#64c8ff99 60%,#64c8ff00);pointer-events:none;transform:translate(-50%,-50%) scale(.6);opacity:0;filter:drop-shadow(0 6px 12px rgba(80,180,255,.18));animation:spark-pop .7s forwards ease-out}@keyframes spark-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}30%{opacity:1;transform:translate(-50%,-120%) scale(1.1)}to{opacity:0;transform:translate(-50%,-220%) scale(.6)}}@keyframes glitch-top{0%,90%,to{transform:none;opacity:0}92%{transform:translate(-3px,-2px);opacity:.8}94%{transform:translate(3px,2px);opacity:.6}96%{transform:none;opacity:0}}@keyframes glitch-bot{0%,90%,to{transform:none;opacity:0}93%{transform:translate(3px,1px);opacity:.7}95%{transform:translate(-2px,-1px);opacity:.5}96%{transform:none;opacity:0}}.loading-subtitle{font-size:clamp(11px,1.5vw,14px);letter-spacing:.35em;text-transform:uppercase;color:#64c8ff;opacity:.8}.loading-bar-track{width:min(280px,60vw);height:2px;background:#64c8ff26;border-radius:2px;overflow:hidden}.loading-bar-fill{height:100%;width:0%;background:linear-gradient(90deg,#64c8ff,#a8e8ff);border-radius:2px;box-shadow:0 0 8px #64c8ff;transition:width .4s ease}.loading-status{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#64c8ff80}.enter-world-btn{margin-top:8px;padding:10px 18px;background:linear-gradient(90deg,#64c8ff,#86e0ff);color:#012233;border:none;border-radius:6px;font-weight:700;letter-spacing:.08em;cursor:pointer;box-shadow:0 6px 18px #0a283c59;transition:transform .12s ease,box-shadow .12s ease,opacity .18s ease}.enter-world-btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px #0a283c73}.enter-world-btn:active{transform:translateY(0)}.loading-corner{position:absolute;width:18px;height:18px;border-color:#64c8ff66;border-style:solid;z-index:2}.loading-corner.tl{top:28px;left:28px;border-width:2px 0 0 2px}.loading-corner.tr{top:28px;right:28px;border-width:2px 2px 0 0}.loading-corner.bl{bottom:28px;left:28px;border-width:0 0 2px 2px}.loading-corner.br{bottom:28px;right:28px;border-width:0 2px 2px 0}.crosshair{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:20px;height:20px;pointer-events:none;z-index:200}.crosshair:before,.crosshair:after{content:"";position:absolute;background:#64c8ff80}.crosshair:before{width:2px;height:10px;left:50%;top:50%;transform:translate(-50%,-50%)}.crosshair:after{width:10px;height:2px;left:50%;top:50%;transform:translate(-50%,-50%)}#interact-prompt{position:fixed;bottom:90px;left:50%;transform:translate(-50%);background:#000000c7;color:#64c8ff;padding:10px 24px;border-radius:8px;border:1px solid rgba(100,200,255,.4);font-size:14px;font-family:Courier New,monospace;letter-spacing:1.5px;pointer-events:none;z-index:40;opacity:0;transition:opacity .25s ease;white-space:nowrap}#interact-prompt.visible{opacity:1}.crosshair.zone-nearby:before,.crosshair.zone-nearby:after{background:#64c8ff!important;box-shadow:0 0 8px #64c8ff,0 0 2px #fff;transition:background .2s ease,box-shadow .2s ease}.hud-zones{margin-top:6px;display:flex;gap:5px;flex-wrap:wrap}.zone-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:10px;background:#64c8ff0d;border:1px solid rgba(100,200,255,.15);color:#6a8fa0;transition:all .3s ease}.zone-badge.visited{background:#64c8ff2e;color:#64c8ff;border-color:#64c8ff73}.zone-world-label{font-family:Courier New,monospace;font-size:13px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;padding:6px 16px;border:1px solid;border-radius:4px;background:#0000008c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);pointer-events:none;white-space:nowrap;text-shadow:0 0 12px var(--label-glow, #64c8ff);box-shadow:0 0 14px -4px var(--label-glow, #64c8ff);transition:opacity .25s ease;transform:translate(-50%)}.orb-label{font-family:Courier New,monospace;font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:3px 10px;border:1px solid currentColor;border-radius:3px;background:#0000009e;pointer-events:none;white-space:nowrap;text-shadow:0 0 8px var(--orb-glow, #fff);box-shadow:0 0 8px -2px var(--orb-glow, #fff);transition:opacity .2s ease;transform:translate(-50%)}.skill-toast{position:fixed;bottom:90px;left:50%;transform:translate(-50%) translateY(18px);background:#00050fd1;border:1px solid rgba(180,220,255,.3);color:#def;font-family:Courier New,monospace;font-size:13px;letter-spacing:.1em;padding:9px 22px;border-radius:24px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity .35s ease,transform .35s ease;pointer-events:none;z-index:9999}.skill-toast.visible{opacity:1;transform:translate(-50%) translateY(0)}.skill-toast-icon{color:#fd4;margin-right:5px}.hud-skills{color:#9cf;font-size:11px;letter-spacing:.08em;margin-top:3px;opacity:.85}@media(max-width:768px){html,body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.panel{max-width:85vw;padding:15px;font-size:14px;max-height:50vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.panel h2{font-size:18px;margin-bottom:10px}.panel p{font-size:13px;margin-bottom:10px}.panel a{padding:8px 12px;font-size:12px}.hud{font-size:12px;bottom:140px;right:10px}#panel-projects{bottom:20px;right:20px}#panel-about{bottom:20px;left:20px}.panel h2{font-size:20px}.panel p{font-size:12px}}@keyframes menuFadeIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.main-menu{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#00000073;backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);z-index:1200;animation:menuFadeIn .25s ease}.main-menu .menu-card{position:relative;width:min(520px,92vw);background:#080810b8;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:12px;border:1px solid rgba(100,200,255,.22);box-shadow:0 0 0 1px #64c8ff0f,0 24px 60px #0000008c;overflow:hidden;display:flex;flex-direction:column}.menu-header{padding:28px 28px 20px;border-bottom:1px solid rgba(100,200,255,.12);display:flex;align-items:baseline;justify-content:space-between}.menu-header h2{font-size:22px;font-weight:700;color:#64c8ff;text-transform:uppercase;letter-spacing:3px;margin:0}.menu-close{background:transparent;border:1px solid rgba(255,255,255,.12);color:#ffffff8c;font-size:14px;line-height:1;width:28px;height:28px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s,border-color .2s}.menu-close:hover{color:#fff;border-color:#64c8ff80}.menu-body{padding:24px 28px;display:flex;flex-direction:column;gap:24px}.menu-section-label{font-size:9px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:#64c8ff8c;margin-bottom:10px}.menu-keybinds{display:flex;flex-direction:column;gap:8px}.menu-keybind-row{display:flex;align-items:center;gap:10px}.menu-keybind-row .label{font-size:13px;color:#c8d8e8;flex:1}.keys{display:flex;gap:4px}.key{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:26px;padding:0 6px;background:#ffffff0f;border:1px solid rgba(255,255,255,.18);border-bottom:2px solid rgba(255,255,255,.28);border-radius:5px;font-size:11px;font-family:Courier New,monospace;color:#e0e8f0;letter-spacing:.5px}.menu-settings{display:flex;flex-direction:column;gap:14px}.menu-setting-row{display:flex;align-items:center;gap:12px}.menu-setting-row .setting-label{font-size:13px;color:#c8d8e8;width:60px;flex-shrink:0}.menu-toggle{position:relative;width:40px;height:22px;flex-shrink:0}.menu-toggle input{display:none}.menu-toggle .slider{position:absolute;inset:0;background:#ffffff1f;border-radius:11px;cursor:pointer;border:1px solid rgba(100,200,255,.2);transition:background .25s}.menu-toggle .slider:after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:#ffffff8c;top:2px;left:2px;transition:transform .25s,background .25s}.menu-toggle input:checked+.slider{background:#64c8ff59}.menu-toggle input:checked+.slider:after{transform:translate(18px);background:#64c8ff}.menu-volume{flex:1;-webkit-appearance:none;appearance:none;height:4px;border-radius:2px;background:#ffffff1f;outline:none;cursor:pointer}.menu-volume::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#64c8ff;border:2px solid rgba(0,0,0,.5);cursor:pointer}.menu-volume::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#64c8ff;border:2px solid rgba(0,0,0,.5);cursor:pointer}.menu-volume-val{font-size:11px;color:#64c8ffb3;min-width:30px;text-align:right;font-family:Courier New,monospace}.menu-divider{height:1px;background:#64c8ff1a;margin:0}.menu-footer{padding:18px 28px 24px;display:flex;justify-content:flex-end}.menu-resume-btn{background:linear-gradient(135deg,#64c8ff,#4a9dd4);color:#000;padding:10px 28px;border:none;border-radius:6px;font-size:14px;font-weight:700;letter-spacing:1px;cursor:pointer;text-transform:uppercase;transition:all .2s}.menu-resume-btn:hover{transform:scale(1.04);box-shadow:0 0 20px #64c8ff80}@media(max-width:560px){.main-menu .menu-card{width:96vw}.menu-header h2{font-size:17px}.menu-body{padding:18px}.menu-footer{padding:14px 18px 18px}}.mobile-overlay{position:fixed;inset:0;background:#06080ed9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2000;color:#fff}.mobile-card{width:min(720px,92%);background:#0c0c14c7;border:1px solid rgba(100,200,255,.12);padding:28px;border-radius:10px;text-align:center}.mobile-card h2{font-size:22px;margin-bottom:8px;color:#64c8ff}.mobile-card p{color:#dfeffc;line-height:1.5;margin-bottom:18px}.mobile-actions{display:flex;gap:12px;justify-content:center}.mobile-actions .menu-btn{padding:10px 14px}.mobile-actions .menu-btn.secondary{background:transparent;color:#64c8ff;border:1px solid rgba(100,200,255,.15)}
