:root{--bg: #05010f;--pink: #ff2fd6;--cyan: #00e5ff;--violet: #8a2be2;--text: #eaf0ff;--muted: #a6b0d8;--glass-bg: rgba(18, 10, 42, .45);--glass-brd: rgba(150, 120, 255, .28);font-family:Rajdhani,Segoe UI,system-ui,sans-serif;color:var(--text);color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;width:100%;overflow:hidden;background:var(--bg)}body{cursor:default}a{color:var(--cyan);text-decoration:none}a:hover{text-decoration:underline}kbd{display:inline-grid;place-items:center;min-width:1.6em;padding:.1em .45em;margin:0 .15em;font-family:Orbitron,monospace;font-size:.8em;line-height:1;color:var(--text);background:#00e5ff1f;border:1px solid rgba(0,229,255,.5);border-radius:6px;box-shadow:0 0 8px #00e5ff40}.neon-pink{color:var(--pink);text-shadow:0 0 10px rgba(255,47,214,.8),0 0 24px rgba(255,47,214,.5)}.stage{position:fixed;top:0;right:0;bottom:0;left:0}.stage canvas{display:block}.glass{background:var(--glass-bg);border:1px solid var(--glass-brd);border-radius:18px;backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);box-shadow:0 8px 40px #00000080,inset 0 1px #ffffff14}.btn-neon{font-family:Orbitron,sans-serif;font-size:1.05rem;letter-spacing:.06em;color:#fff;padding:.9rem 2rem;border:1px solid var(--pink);border-radius:12px;background:linear-gradient(135deg,#ff2fd640,#00e5ff33);box-shadow:0 0 18px #ff2fd68c,inset 0 0 14px #ff2fd64d;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease}.btn-neon:hover{transform:translateY(-2px);box-shadow:0 0 30px #ff2fd6e6,inset 0 0 20px #00e5ff59}.intro{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;gap:1rem;z-index:30;background:radial-gradient(circle at 50% 40%,#28004659,#05010fd9);animation:fade .6s ease}.intro__card{max-width:560px;padding:2.6rem;text-align:center}.intro__kicker{font-family:Orbitron,sans-serif;letter-spacing:.35em;text-transform:uppercase;color:var(--cyan);font-size:.8rem;margin:0 0 .6rem}.intro__title{font-family:Orbitron,sans-serif;font-size:2.5rem;margin:0 0 1rem;line-height:1.1}.intro__lead{color:var(--muted);font-size:1.1rem;line-height:1.6}.intro__keys{display:flex;flex-wrap:wrap;justify-content:center;gap:1.2rem;margin:1.6rem 0 2rem;color:var(--muted);font-size:.95rem}.intro__hint{color:#a6b0d899;font-size:.85rem}.prompt{position:absolute;left:50%;bottom:8%;transform:translate(-50%);display:flex;align-items:center;gap:.7rem;padding:.8rem 1.4rem;font-size:1.05rem;z-index:20;animation:fade .25s ease}.prompt__dot{width:12px;height:12px;border-radius:50%;box-shadow:0 0 12px currentColor;animation:pulse 1.2s ease-in-out infinite}.minimap{position:absolute;top:1.5rem;right:1.5rem;padding:1rem 1.1rem;width:210px;z-index:20}.minimap__title{font-family:Orbitron,sans-serif;font-size:.85rem;letter-spacing:.15em;text-transform:uppercase;color:var(--cyan);margin:0 0 .7rem}.minimap__list{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}.minimap__item{--c: var(--cyan);display:flex;align-items:center;gap:.6rem;width:100%;padding:.35rem .5rem;border:none;border-radius:8px;background:transparent;color:var(--muted);font-family:inherit;font-size:.95rem;text-align:left;cursor:pointer;transition:background .15s ease,color .15s ease}.minimap__item:hover{background:#ffffff0f;color:var(--text)}.minimap__item.is-near{color:#fff;background:#ffffff14}.minimap__pip{width:9px;height:9px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c);flex:none}.controls-hint{position:absolute;left:1.5rem;bottom:1.5rem;padding:.6rem 1rem;font-size:.9rem;color:var(--muted);z-index:20}.mobile-joy{position:absolute;left:1.4rem;bottom:1.6rem;width:132px;height:132px;z-index:24;border-radius:50%;display:grid;place-items:center;background:#120a2a66;border:1px solid var(--glass-brd);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 0 24px #00e5ff1f;touch-action:none;user-select:none;-webkit-user-select:none}.mobile-joy__ring{position:absolute;width:74%;height:74%;border-radius:50%;border:1px dashed rgba(0,229,255,.35)}.mobile-joy__knob{width:58px;height:58px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#00e5ffe6,#ff2fd6b3);box-shadow:0 0 18px #00e5ff99,inset 0 0 10px #fff6;will-change:transform}.mobile-enter{position:absolute;right:1.6rem;bottom:2.4rem;z-index:24;display:flex;flex-direction:column;align-items:center;gap:2px;width:108px;height:108px;border-radius:50%;color:#fff;font-family:Orbitron,sans-serif;background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--c) 55%,transparent),#0a0518b3);border:2px solid var(--c);box-shadow:0 0 24px color-mix(in srgb,var(--c) 60%,transparent);cursor:pointer;touch-action:none;animation:pop .2s ease}.mobile-enter:active{transform:scale(.94)}.mobile-enter__label{font-size:1rem;letter-spacing:.1em}.mobile-enter__name{font-family:Rajdhani,sans-serif;font-size:.7rem;opacity:.85;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}@media(pointer:coarse){.controls-hint,.prompt{display:none}}.panel-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:4vh 4vw;background:#04010c8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade .25s ease}.panel{--accent: var(--cyan);position:relative;width:min(760px,100%);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;border-color:color-mix(in srgb,var(--accent) 45%,transparent);box-shadow:0 0 60px color-mix(in srgb,var(--accent) 35%,transparent),0 20px 60px #0009;animation:rise .3s cubic-bezier(.2,.9,.3,1)}.panel__head{display:flex;align-items:flex-start;justify-content:space-between;padding:1.6rem 1.8rem 1rem;border-bottom:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 12%,transparent),transparent)}.panel__title{font-family:Orbitron,sans-serif;font-size:1.9rem;margin:0;text-shadow:0 0 18px color-mix(in srgb,var(--accent) 70%,transparent)}.panel__tagline{margin:.2rem 0 0;color:var(--muted);font-size:1rem}.panel__close{width:38px;height:38px;flex:none;border-radius:10px;border:1px solid var(--glass-brd);background:#ffffff0d;color:var(--text);font-size:1rem;cursor:pointer;transition:background .15s ease}.panel__close:hover{background:#ff2fd640}.panel__body{padding:1.5rem 1.8rem;overflow-y:auto}.panel__foot{padding:.9rem 1.8rem;border-top:1px solid rgba(255,255,255,.08);color:var(--muted);font-size:.85rem;text-align:center}.interior__blurb{font-size:1.12rem;line-height:1.65;margin:0 0 1.3rem}.interior__section{margin:1.5rem 0 0}.interior__section h3{font-family:Orbitron,sans-serif;font-size:.95rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 .7rem}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.skill{display:flex;align-items:center;gap:.8rem;margin-bottom:.5rem}.skill__label{font-size:.85rem;color:var(--muted);letter-spacing:.05em}.skill__bar{display:flex;gap:5px}.skill__seg{width:34px;height:8px;border-radius:4px;background:#ffffff1f}.skill__seg.is-on{box-shadow:0 0 10px currentColor}.ticks{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.ticks li{position:relative;padding-left:1.6rem;line-height:1.4;color:#d7deff}.ticks li:before{content:"▹";position:absolute;left:0;color:var(--c, var(--cyan));text-shadow:0 0 8px var(--c, var(--cyan))}.ticks--arrow li:before{content:"➜"}.cards{display:grid;gap:.9rem}.card{padding:1rem 1.1rem;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08)}.card h4{margin:0 0 .35rem;font-size:1.05rem}.card p{margin:0;color:var(--muted);line-height:1.5}.tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.7rem}.tag{font-size:.78rem;padding:.2rem .6rem;border-radius:999px;border:1px solid var(--cyan);color:#d7deff}.badges{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.badges li{padding:.5rem .8rem;border-radius:10px;border:1px solid var(--cyan);background:#ffffff08;display:flex;flex-direction:column}.badges__issuer{font-size:.8rem;color:var(--muted)}.links{display:flex;flex-wrap:wrap;gap:.6rem}.link-chip{padding:.5rem 1rem;border-radius:999px;border:1px solid var(--glass-brd);background:#00e5ff14;font-size:.9rem}.link-chip:hover{text-decoration:none;background:#00e5ff2e}.contact{position:absolute;top:1.5rem;left:1.5rem;z-index:25;display:flex;align-items:center;gap:.6rem;padding:.55rem .9rem;border-radius:14px}.contact__name{font-family:Orbitron,sans-serif;font-size:.85rem;letter-spacing:.08em;color:var(--text);white-space:nowrap}.contact__sep{width:1px;height:20px;background:var(--glass-brd)}.contact__link{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;color:var(--muted);border:1px solid transparent;transition:color .15s ease,background .15s ease,box-shadow .2s ease,transform .15s ease}.contact__link:hover{color:#fff;background:#00e5ff24;border-color:#00e5ff80;box-shadow:0 0 14px #00e5ff66;transform:translateY(-2px);text-decoration:none}.contact__resume{font-family:Orbitron,sans-serif;font-size:.75rem;letter-spacing:.05em;padding:.45rem .8rem;border-radius:9px;color:#fff;border:1px solid var(--pink);box-shadow:0 0 12px #ff2fd666}.contact__resume:hover{text-decoration:none;background:#ff2fd62e}@media(max-width:640px){.contact__name,.contact__sep{display:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.6}}@media(max-width:640px){.minimap{display:none}.two-col{grid-template-columns:1fr}.intro__title{font-size:1.9rem}}
