PageSourceSearch

https://ashritai.vercel.app/

html ashritai.vercel.app collected 2026-10-03 06:07:36 UTC 26,250 bytes, 1 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/2_dqd15nuwikx.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1jq4o6yq14o4c.js"/>
1<script src="/_next/static/chunks/2ckqm4grawju5.js" async=""></script>
1<script src="/_next/static/chunks/2nykiepra7i1k.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-1l0ut4nocedlo.js" async=""></script>
1<script src="/_next/static/chunks/158myu8e_yme3.js" async=""></script>
1<script src="/_next/static/chunks/3al-9-si5-xkq.js" async=""></script>
1<meta name="next-size-adjust" content=""/><title>Ashrit — Ubuntu Portfolio</title><meta name="description" content="An immersive Ubuntu desktop experience as a personal portfolio. Interact with applications, workspaces, a functional terminal, and more."/><meta name="author" content="Ashrit"/><meta name="keywords" content="portfolio,ubuntu,desktop,frontend,react,nextjs,framer motion"/><meta property="og:title" content="Ashrit — Ubuntu Portfolio"/><meta property="og:description" content="An immersive Ubuntu desktop experience as a personal portfolio."/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="Ashrit — Ubuntu Portfolio"/><meta name="twitter:description" content="An immersive Ubuntu desktop experience as a personal portfolio."/><link rel="icon" href="/favicon.ico?favicon.2vob68tjqpejf.ico" sizes="256x256" type="image/x-icon"/>
1<script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script>
1</head><body class="h-full w-full overflow-hidden bg-black text-white"><div hidden=""><!--$--><!--/$--></div><div class="fixed inset-0 z-[20000] bg-[#1e1e1e] flex flex-col items-center justify-center text-white" style="opacity:1"><div class="text-6xl mb-6">🐧</div><div class="text-2xl font-light tracking-widest mb-8">ubuntu</div><div class="w-64 h-1.5 bg-white/10 rounded-full overflow-hidden"><div class="h-full bg-[#e95420]" style="width:0px"></div></div><div class="mt-4 text-sm text-white/50 font-mono">Loading portfolio... <!-- -->0<!-- -->%</div></div><div class="fixed inset-0 ubuntu-wallpaper overflow-hidden"><div class="fixed top-0 left-0 right-0 z-[9999] h-8 glass-panel text-white text-sm flex items-center justify-between px-3 select-none"><div class="flex items-center gap-4"><button class="font-semibold tracking-wide hover:text-white/80 transition-colors">Activities</button></div><div class="flex items-center gap-3 sm:gap-5"><button class="hover:opacity-70 transition-opacity" aria-label="Mute sound"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-volume2 lucide-volume-2 w-4 h-4" aria-hidden="true"><path d="M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z"></path><path d="M16 9a5 5 0 0 1 0 6"></path><path d="M19.364 18.364a9 9 0 0 0 0-12.728"></path></svg></button><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wifi w-4 h-4" aria-hidden="true"><path d="M12 20h.01"></path><path d="M2 8.82a15 15 0 0 1 20 0"></path><path d="M5 12.859a10 10 0 0 1 14 0"></path><path d="M8.5 16.429a5 5 0 0 1 7 0"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-battery w-4 h-4" aria-hidden="true"><path d="M 22 14 L 22 10"></path><rect x="2" y="6" width="16" height="12" rx="2"></rect></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4" aria-hidden="true"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg><button class="flex flex-col items-end leading-none hover:opacity-80 transition-opacity"><span class="font-medium">04:22 PM</span><span class="text-[10px] text-white/70 hidden sm:inline">Thu, Aug 27</span></button></div></div><div class="absolute inset-0" style="overflow:hidden"><div class="fixed top-10 left-0 bottom-20 w-28 z-[100]"><div class="flex flex-col p-2"><button class="flex flex-col items-center gap-1 group py-2" aria-label="Open About Me" tabindex="0"><div class="w-14 h-14 rounded-lg bg-white/10 backdrop-blur-sm flex items-center justify-center shadow-sm group-hover:bg-white/20 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text w-7 h-7 text-white" aria-hidden="true"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg></div><span class="text-xs text-white text-center drop-shadow-md px-1 rounded group-hover:bg-black/30 transition-colors">About Me</span></button><button class="flex flex-col items-center gap-1 group py-2" aria-label="Open Projects" tabindex="0"><div class="w-14 h-14 rounded-lg bg-white/10 backdrop-blur-sm flex items-center justify-center shadow-sm group-hover:bg-white/20 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-open w-7 h-7 text-white" aria-hidden="true"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"></path></svg></div><span class="text-xs text-white text-center drop-shadow-md px-1 rounded group-hover:bg-black/30 transition-colors">Projects</span></button><button class="flex flex-col items-center gap-1 group py-2" aria-label="Open Resume.pdf" tabindex="0">
1<div class="w-14 h-14 rounded-lg bg-white/10 backdrop-blur-sm flex items-center justify-center shadow-sm group-hover:bg-white/20 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file w-7 h-7 text-white" aria-hidden="true"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path></svg></div><span class="text-xs text-white text-center drop-shadow-md px-1 rounded group-hover:bg-black/30 transition-colors">Resume.pdf</span></button><button class="flex flex-col items-center gap-1 group py-2" aria-label="Open Contact" tabindex="0"><div class="w-14 h-14 rounded-lg bg-white/10 backdrop-blur-sm flex items-center justify-center shadow-sm group-hover:bg-white/20 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal w-7 h-7 text-white" aria-hidden="true"><path d="M12 19h8"></path><path d="m4 17 6-6-6-6"></path></svg></div><span class="text-xs text-white text-center drop-shadow-md px-1 rounded group-hover:bg-black/30 transition-colors">Contact</span></button><button class="flex flex-col items-center gap-1 group py-2" aria-label="Open GitHub" tabindex="0"><div class="w-14 h-14 rounded-lg bg-white/10 backdrop-blur-sm flex items-center justify-center shadow-sm group-hover:bg-white/20 transition-colors"><svg class="w-7 h-7 text-white" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"></path></svg></div><span class="text-xs text-white text-center drop-shadow-md px-1 rounded group-hover:bg-black/30 transition-colors">GitHub</span></button><button class="flex flex-col items-center gap-1 group py-2" aria-label="Open LinkedIn" tabindex="0"><div class="w-14 h-14 rounded-lg bg-white/10 backdrop-blur-sm flex items-center justify-center shadow-sm group-hover:bg-white/20 transition-colors"><svg class="w-7 h-7 text-white" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"></path></svg></div><span class="text-xs text-white text-center drop-shadow-md px-1 rounded group-hover:bg-black/30 transition-colors">LinkedIn</span></button><button class="flex flex-col items-center gap-1 group py-2" aria-label="Open Trash" tabindex="0"><div class="w-14 h-14 rounded-lg bg-white/10 backdrop-blur-sm flex items-center justify-center shadow-sm group-hover:bg-white/20 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-trash2 lucide-trash-2 w-7 h-7 text-white" aria-hidden="true"><path d="M10 11v6"></path><path d="M14 11v6"></path><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"></path><path d="M3 6h18"></path><path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path></svg></div><span class="text-xs text-white text-center drop-shadow-md px-1 rounded group-hover:bg-black/30 transition-colors">Trash</span></button></div></div><div class="absolute top-10 right-4 flex gap-1.5 z-[150]"><button class="w-2 h-2 rounded-full transition-all bg-white w-4" aria-label="Workspace 1"></button><button class="w-2 h-2 rounded-full transition-all bg-white/40 hover:bg-white/70" aria-label="Workspace 2"></button></div></div><div class="fixed bottom-3 left-1/2 -translate-x-1/2 z-[9998]"><div class="glass-dock rounded-2xl px-3 py-2 flex items-end gap-2 sm:gap-3"><div class="relative flex flex-col items-center"><button class="relative p-2 rounded-xl transition-shadow " aria-label="Open files" tabindex="0"><div class="w-10 h-10 sm:w-11 sm:h-11 rounded-xl bg-gradient-to-br from-white/20 to-white/5 flex items-center justify-center shadow-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-open w-6 h-6 sm:w-7 sm:h-7 text-white" aria-hidden="true"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"></path></svg></div></button></div><div class="relative flex flex-col items-center"><button class="relative p-2 rounded-xl transition-shadow " aria-label="Open browser" tabindex="0"><div class="w-10 h-10 sm:w-11 sm:h-11 rounded-xl bg-gradient-to-br from-white/20 to-white/5 flex items-center justify-center shadow-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe w-6 h-6 sm:w-7 sm:h-7 text-white" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg></div></button></div><div class="relative flex flex-col items-center"><button class="relative p-2 rounded-xl transition-shadow " aria-label="Open vscode" tabindex="0"><div class="w-10 h-10 sm:w-11 sm:h-11 rounded-xl bg-gradient-to-br from-white/20 to-white/5 flex items-center justify-center shadow-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-code-xml w-6 h-6 sm:w-7 sm:h-7 text-white" aria-hidden="true"><path d="m18 16 4-4-4-4"></path><path d="m6 8-4 4 4 4"></path><path d="m14.5 4-5 16"></path></svg></div></button></div><div class="relative flex flex-col items-center"><button class="relative p-2 rounded-xl transition-shadow " aria-label="Open terminal" tabindex="0"><div class="w-10 h-10 sm:w-11 sm:h-11 rounded-xl bg-gradient-to-br from-white/20 to-white/5 flex items-center justify-center shadow-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal w-6 h-6 sm:w-7 sm:h-7 text-white" aria-hidden="true"><path d="M12 19h8"></path><path d="m4 17 6-6-6-6"></path></svg></div></button></div><div class="relative flex flex-col items-center"><button class="relative p-2 rounded-xl transition-shadow " aria-label="Open about" tabindex="0"><div class="w-10 h-10 sm:w-11 sm:h-11 rounded-xl bg-gradient-to-br from-white/20 to-white/5 flex items-center justify-center shadow-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text w-6 h-6 sm:w-7 sm:h-7 text-white" aria-hidden="true"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg></div></button></div><div class="relative flex flex-col items-center"><button class="relative p-2 rounded-xl transition-shadow " aria-label="Open skills" tabindex="0"><div class="w-10 h-10 sm:w-11 sm:h-11 rounded-xl bg-gradient-to-br from-white/20 to-white/5 flex items-center justify-center shadow-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity w-6 h-6 sm:w-7 sm:h-7 text-white" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l
1-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg></div></button></div><div class="relative flex flex-col items-center"><button class="relative p-2 rounded-xl transition-shadow " aria-label="Open projects" tabindex="0"><div class="w-10 h-10 sm:w-11 sm:h-11 rounded-xl bg-gradient-to-br from-white/20 to-white/5 flex items-center justify-center shadow-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-open w-6 h-6 sm:w-7 sm:h-7 text-white" aria-hidden="true"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"></path></svg></div></button></div><div class="relative flex flex-col items-center"><button class="relative p-2 rounded-xl transition-shadow " aria-label="Open resume" tabindex="0"><div class="w-10 h-10 sm:w-11 sm:h-11 rounded-xl bg-gradient-to-br from-white/20 to-white/5 flex items-center justify-center shadow-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file w-6 h-6 sm:w-7 sm:h-7 text-white" aria-hidden="true"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path></svg></div></button></div><div class="relative flex flex-col items-center"><button class="relative p-2 rounded-xl transition-shadow " aria-label="Open contact" tabindex="0"><div class="w-10 h-10 sm:w-11 sm:h-11 rounded-xl bg-gradient-to-br from-white/20 to-white/5 flex items-center justify-center shadow-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal w-6 h-6 sm:w-7 sm:h-7 text-white" aria-hidden="true"><path d="M12 19h8"></path><path d="m4 17 6-6-6-6"></path></svg></div></button></div><div class="relative flex flex-col items-center"><button class="relative p-2 rounded-xl transition-shadow " aria-label="Open settings" tabindex="0"><div class="w-10 h-10 sm:w-11 sm:h-11 rounded-xl bg-gradient-to-br from-white/20 to-white/5 flex items-center justify-center shadow-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings w-6 h-6 sm:w-7 sm:h-7 text-white" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg></div></button></div><div class="relative flex flex-col items-center"><button class="relative p-2 rounded-xl transition-shadow " aria-label="Open trash" tabindex="0"><div class="w-10 h-10 sm:w-11 sm:h-11 rounded-xl bg-gradient-to-br from-white/20 to-white/5 flex items-center justify-center shadow-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-trash2 lucide-trash-2 w-6 h-6 sm:w-7 sm:h-7 text-white" aria-hidden="true"><path d="M10 11v6"></path><path d="M14 11v6"></path><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"></path><path d="M3 6h18"></path><path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path></svg></div></button></div></div></div></div><!--$--><!--/$-->
1<script src="/_next/static/chunks/1jq4o6yq14o4c.js" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\"]\n4:I[47257,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"ClientPageRoot\"]\n5:I[52683,[\"/_next/static/chunks/158myu8e_yme3.js\",\"/_next/static/chunks/3al-9-si5-xkq.js\"],\"default\"]\n8:I[97367,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"OutletBoundary\"]\n9:\"$Sreact.suspense\"\nb:I[97367,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"ViewportBoundary\"]\nd:I[97367,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"MetadataBoundary\"]\nf:I[68027,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/2_dqd15nuwikx.css\",\"style\"]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script>
1<script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2_dqd15nuwikx.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/158myu8e_yme3.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased dark\",\"children\":[\"$\",\"body\",null,{\"className\":\"h-full w-full overflow-hidden bg-black text-white\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L4\",null,{\"Component\":\"$5\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@6\",\"$@7\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/3al-9-si5-xkq.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@a\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2_dqd15nuwikx.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"fjtgJOBxzN1VGXhlSlnGB\"}\n"])</script>
1<script>self.__next_f.push([1,"6:{}\n7:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script>
1<script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script>
1<script>self.__next_f.push([1,"10:I[27201,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"IconMark\"]\na:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"Ashrit — Ubuntu Portfolio\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"An immersive Ubuntu desktop experience as a personal portfolio. Interact with applications, workspaces, a functional terminal, and more.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"author\",\"content\":\"Ashrit\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"portfolio,ubuntu,desktop,frontend,react,nextjs,framer motion\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:title\",\"content\":\"Ashrit — Ubuntu Portfolio\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:description\",\"content\":\"An immersive Ubuntu desktop experience as a personal portfolio.\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"7\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"8\",{\"name\":\"twitter:title\",\"content\":\"Ashrit — Ubuntu Portfolio\"}],[\"$\",\"meta\",\"9\",{\"name\":\"twitter:description\",\"content\":\"An immersive Ubuntu desktop experience as a personal portfolio.\"}],[\"$\",\"link\",\"10\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.2vob68tjqpejf.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L10\",\"11\",{}]]\n"])</script>
1</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.