:root{--bg-color:#030712;--bg-gradient-start:#080c18;--bg-gradient-end:#030408;--text-primary:#fff;--text-secondary:#ffffff9e;--accent-color:#fff;--panel-bg:#fff6;--panel-border:#fff9;--panel-shadow:#0000000a;--border-radius:12px;--font-family:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--bg-color);width:100%;height:100%;font-family:var(--font-family);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}body:before{content:"";background:radial-gradient(circle at center, var(--bg-gradient-start) 0%, var(--bg-gradient-end) 100%);z-index:-1;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}#webgl{z-index:1;outline:none;width:100%;height:100%;position:absolute;top:0;left:0}.loader-container{background-color:var(--bg-color);z-index:9999;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .8s cubic-bezier(.25,1,.5,1),visibility .8s;display:flex;position:fixed;top:0;left:0}.loader-container.fade-out{opacity:0;visibility:hidden}.loader-spinner{border:2px solid #ffffff1a;border-top-color:var(--accent-color);border-radius:50%;width:40px;height:40px;margin-bottom:20px;animation:1s cubic-bezier(.5,.1,.5,.9) infinite spin}.loader-text{letter-spacing:2px;color:var(--text-secondary);text-transform:uppercase;font-size:12px;font-weight:400}@keyframes spin{to{transform:rotate(360deg)}}.header-hud{z-index:10;pointer-events:none;font-family:var(--font-family);text-transform:uppercase;justify-content:space-between;display:flex;position:absolute;top:40px;left:40px;right:40px}.branding{letter-spacing:2px;color:var(--text-primary);font-size:13px;font-weight:600}.subtitle{letter-spacing:3px;color:var(--text-secondary);font-size:11px;font-weight:400}.portfolio-nav{z-index:12;font-family:var(--font-family);align-items:center;gap:18px;display:flex;position:absolute;bottom:42px;right:48px}.portfolio-nav button{appearance:none;color:#ffffff8a;cursor:pointer;font:600 12px/1 var(--font-family);letter-spacing:2.4px;text-transform:uppercase;background:0 0;border:0;padding:8px 0;transition:color .18s,opacity .18s,transform .18s}.portfolio-nav button:hover,.portfolio-nav button:focus-visible,.portfolio-nav button.is-active{color:#fffffff5;transform:translateY(-1px)}.portfolio-nav button:hover~.target-cursor,.portfolio-nav button:focus-visible~.target-cursor{transform:translate(-50%,-50%)scale(1.18)}.portfolio-nav button:focus-visible{outline-offset:6px;outline:1px solid #ffffff47}.portfolio-nav button.is-active{cursor:default}.target-cursor{z-index:50;pointer-events:none;mix-blend-mode:screen;width:34px;height:34px;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.target-cursor__corner{opacity:.82;border-color:#ffffffd9;width:8px;height:8px;position:absolute}.target-cursor__corner--tl{border-top:1px solid;border-left:1px solid;top:0;left:0}.target-cursor__corner--tr{border-top:1px solid;border-right:1px solid;top:0;right:0}.target-cursor__corner--br{border-bottom:1px solid;border-right:1px solid;bottom:0;right:0}.target-cursor__corner--bl{border-bottom:1px solid;border-left:1px solid;bottom:0;left:0}canvas{cursor:grab;touch-action:none}canvas:active{cursor:grabbing}@media (width<=768px){.header-hud{flex-direction:column;gap:6px;top:24px;left:24px;right:24px}.branding{font-size:11px}.subtitle{font-size:9px}.portfolio-nav{justify-content:space-between;gap:8px;bottom:24px;left:24px;right:24px}.portfolio-nav button{letter-spacing:1.4px;font-size:10px}}.hud-container{opacity:0;visibility:hidden;transition:opacity 1.5s cubic-bezier(.25,1,.5,1),visibility 1.5s}.hud-container--visible{opacity:1;visibility:visible}.mobile-portfolio-card{white-space:nowrap;text-overflow:ellipsis;-webkit-backdrop-filter:blur(8px);color:#fff;letter-spacing:.5px;text-align:center;z-index:50;pointer-events:none;background:#0b0e177a;border:1px solid #ffffff1f;border-radius:20px;width:auto;max-width:90%;padding:8px 18px;font-family:Outfit,sans-serif;font-size:13px;font-weight:600;transition:opacity .3s;position:absolute;bottom:84px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 6px 20px #0006}@media (width<=768px){.mobile-portfolio-card{padding:6px 14px;font-size:12px;bottom:80px}}
