-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
1 lines (1 loc) · 21 KB
/
index.html
1
<!DOCTYPE html><html class=2xl:text-[20px] dir=ltr lang=en><head><meta charset=UTF-8><meta content="width=device-width,initial-scale=1" name=viewport><title>Michael Toohig — Personal Blog and Portfolio</title><meta content="I showcase my work and hobby projects and write posts about things I learn." name=description><meta content=index,follow name=robots><link href=https://michaeltoohig.com rel=canonical><meta content="Michael Toohig — Personal Blog and Portfolio" property=og:title><meta content="I showcase my work and hobby projects and write posts about things I learn." property=og:description><meta content=https://michaeltoohig.com property=og:url><meta content=website property=og:type><meta content=https://michaeltoohig.com/_astro/melebay.DaYtN0xv_Z1sXHbW.webp property=og:image><meta content="Michael Toohig — Personal Blog and Portfolio" property=og:image:alt><meta content=summary_large_image name=twitter:card><style is:global>:root{--aw-font-sans:'InterVariable';--aw-font-serif:var(--aw-font-sans);--aw-font-heading:var(--aw-font-sans);--aw-color-primary:#E37D3A;--aw-color-secondary:rgb(30 58 138);--aw-color-accent:rgb(109 40 217);--aw-color-text-page:rgb(17 24 39);--aw-color-text-muted:rgb(75 85 99);--aw-color-bg-page:rgb(255 255 255)}</style><meta content=orcPxI47GSa-cRvY11tUe6iGg2IO_RPvnA1q95iEM3M name=google-site-verification><link href=/icons/apple-touch-icon.png rel=apple-touch-icon sizes=180x180><link href=/icons/favicon-32x32.png rel=icon sizes=32x32 type=image/png><link href=/icons/favicon-16x16.png rel=icon sizes=16x16 type=image/png><link href=/sitemap-index.xml rel=sitemap><link href=/_astro/about.DalL60B6.css rel=stylesheet></head><body class="dark:bg-dark antialiased bg-light dark:text-slate-300 text-page tracking-tight"><div class=block></div><header class="w-full mx-auto duration-100 ease-in flex-none relative top-0 transition-all z-40" id=header><div class="w-full mx-auto max-w-7xl md:flex md:justify-between md:px-4 md:py-3.5 px-3 py-3"><div class="flex justify-between"><a href=/ class="flex items-center"><span class="font-bold dark:text-white md:text-xl ml-2 self-center text-2xl text-gray-900 whitespace-nowrap">Michael Toohig</span></a><div class="flex items-center md:hidden"><button aria-label="Toggle between Dark and Light mode" class="text-muted dark:focus:ring-gray-700 dark:hover:bg-gray-700 dark:text-gray-400 focus:outline-none focus:ring-4 focus:ring-gray-200 hover:bg-gray-100 inline-flex items-center p-2.5 rounded-lg text-sm" type=button data-aw-toggle-color-scheme><svg class="h-6 w-6" data-icon=ph:sun height=1em width=1em><symbol id=ai:ph:sun viewBox="0 0 256 256"><path d="M120 40V16a8 8 0 0 1 16 0v24a8 8 0 0 1-16 0m72 88a64 64 0 1 1-64-64a64.07 64.07 0 0 1 64 64m-16 0a48 48 0 1 0-48 48a48.05 48.05 0 0 0 48-48M58.34 69.66a8 8 0 0 0 11.32-11.32l-16-16a8 8 0 0 0-11.32 11.32Zm0 116.68l-16 16a8 8 0 0 0 11.32 11.32l16-16a8 8 0 0 0-11.32-11.32M192 72a8 8 0 0 0 5.66-2.34l16-16a8 8 0 0 0-11.32-11.32l-16 16A8 8 0 0 0 192 72m5.66 114.34a8 8 0 0 0-11.32 11.32l16 16a8 8 0 0 0 11.32-11.32ZM48 128a8 8 0 0 0-8-8H16a8 8 0 0 0 0 16h24a8 8 0 0 0 8-8m80 80a8 8 0 0 0-8 8v24a8 8 0 0 0 16 0v-24a8 8 0 0 0-8-8m112-88h-24a8 8 0 0 0 0 16h24a8 8 0 0 0 0-16" fill=currentColor /></symbol><use href=#ai:ph:sun></use></svg></button> <button aria-label="Toggle Menu" class="transition items-center dark:focus:ring-gray-700 dark:hover:bg-gray-800 dark:text-gray-400 focus:outline-none focus:ring-4 focus:ring-gray-200 hover:bg-gray-100 inline-flex ml-1.5 p-2.5 rounded-lg text-gray-500 text-sm" type=button data-aw-toggle-menu><svg class="h-6 w-6" data-icon=ph:dots-three-vertical height=1em width=1em><symbol id=ai:ph:dots-three-vertical viewBox="0 0 256 256"><path d="M140 128a12 12 0 1 1-12-12a12 12 0 0 1 12 12m-12-56a12 12 0 1 0-12-12a12 12 0 0 0 12 12m0 112a12 12 0 1 0 12 12a12 12 0 0 0-12-12" fill=currentColor /></symbol><use href=#ai:ph:dots-three-vertical></use></svg></button></div></div><nav aria-label="Main navigation" class="w-full md:w-auto dark:text-slate-200 h-[calc(100vh-72px)] hidden items-center md:flex md:h-auto md:mx-5 md:overflow-visible overflow-y-auto"><ul class="flex flex-col md:flex-row md:pt-0 md:self-center md:text-base md:w-auto pt-8 text-xl w-full"><li class=""><a href=/about class="transition hover:text-primary dark:hover:text-white duration-150 ease-in-out flex font-medium items-center px-4 py-3">About</a></li><li class=""><a href=/projects class="transition hover:text-primary dark:hover:text-white duration-150 ease-in-out flex font-medium items-center px-4 py-3">Projects</a></li><li class=""><a href=/blog class="transition hover:text-primary dark:hover:text-white duration-150 ease-in-out flex font-medium items-center px-4 py-3">Blog</a></li><li class=""><a href=/blurbs class="transition hover:text-primary dark:hover:text-white duration-150 ease-in-out flex font-medium items-center px-4 py-3">Blurbs</a></li><li class=""><a href=/links class="transition hover:text-primary dark:hover:text-white duration-150 ease-in-out flex font-medium items-center px-4 py-3">Links</a></li></ul></nav><div class="flex items-center md:mb-0 md:self-center"><div class="hidden items-center md:flex"><button aria-label="Toggle between Dark and Light mode" class="text-muted dark:focus:ring-gray-700 dark:hover:bg-gray-700 dark:text-gray-400 focus:outline-none focus:ring-4 focus:ring-gray-200 hover:bg-gray-100 inline-flex items-center p-2.5 rounded-lg text-sm" type=button data-aw-toggle-color-scheme><svg class="h-5 w-5" data-icon=ph:sun height=1em width=1em viewBox="0 0 256 256"><use href=#ai:ph:sun></use></svg></button></div></div></div></header><main><div class=""><img alt=Profile class="mx-auto border-2 border-orange-500 dark:border-slate-500 mb-4 mt-6 object-cover rounded-full shadow-md" decoding=async height=200 loading=eager sizes="(max-width: 767px) 400px, (max-width: 1023px) 768px" src=/_astro/profile.DCOh-CdR_Z1nS9j2.webp srcset="/_astro/profile.DCOh-CdR_Z1nS9j2.webp 400w, /_astro/profile.DCOh-CdR_Z1nS9j2.webp 768w" width=200></div><section class="md:-mt-[76px] relative"><div class="pointer-events-none absolute inset-0" aria-hidden=true></div><div class="mx-auto max-w-7xl px-4 relative sm:px-6"><div class="pointer-events-none md:pt-[76px] pt-0"></div><div class="md:pb-20 pb-12"><div class="mx-auto max-w-screen-lg md:pb-16 pb-10 text-center"><h1 class="font-bold font-heading dark:text-gray-200 leading-tighter mb-4 md:text-6xl text-5xl tracking-tighter">Hi, I am<br class=sm:hidden> Michael <span class="highlight text-primary">Toohig</span></h1><div class="mx-auto max-w-3xl"><p class="mb-6 text-muted dark:text-slate-300 text-xl"><span class="hidden sm:inline">I lived and worked for the past 10 years in <span class=font-semibold>Vanuatu</span> 🇻🇺 where I was a software development contractor and helped manage an ISP. During this time, I honed my skills as a Full-Stack developer (but I prefer back-end work) using Python and Vue.js/TypeScript. Now, I've moved back to the <span class=font-semibold>USA</span> 🇺🇸 in 2024. </span><span class="hidden md:inline"><br><br>I write to share some of my work and to help give back to those who wrote before me and allowed me learn what I have now.</span></p><div class="flex flex-col flex-nowrap gap-4 m-auto max-w-xs sm:flex-row sm:justify-center sm:max-w-md"><div class="flex w-full sm:w-auto"><a href=/about class="w-full btn">Learn more</a></div></div></div></div><div><div class="m-auto max-w-5xl relative"><img alt="Port Vila Bay" class="w-full mx-auto rounded-md" decoding=async height=576 loading=eager sizes="(max-width: 767px) 400px, (max-width: 1023px) 768px, (max-width: 2039px) 1024px, 2040px" src=/_astro/portvila.BU3lf2sO_1DKLix.webp srcset="/_astro/portvila.BU3lf2sO_1DKLix.webp 400w, /_astro/portvila.BU3lf2sO_1DKLix.webp 768w, /_astro/portvila.BU3lf2sO_1DKLix.webp 1024w, /_astro/portvila.BU3lf2sO_1DKLix.webp 2040w" width=1024 aspectRatio=1.7777777777777777></div></div></div></div></section><section class="mx-auto max-w-7xl px-4 lg:py-20 py-16"><div class="flex flex-col lg:flex-row lg:justify-between mb-8"><div class=md:max-w-sm><h2 class="font-bold font-heading mb-2 group sm:leading-none sm:text-4xl text-3xl tracking-tight">Featured Projects</h2><a href=/projects class="transition hover:text-primary dark:hover:text-primary duration-200 ease-in block dark:text-slate-400 lg:mb-0 mb-6 text-muted">View all projects »</a></div><p class="text-muted dark:text-slate-400 lg:max-w-md lg:text-sm">Some of my professional and hobby projects are here.</p></div><div class="grid -mb-6 gap-6 lg:grid-cols-2 md:grid-cols-2 row-gap-5"><article class="transition mb-6"><div class="mb-6 bg-gray-400 dark:bg-slate-700 md:h-88 relative rounded shadow-lg"><a href=/projects/ssc-drivers><img alt="South Sea Cargo Driver's App" class="bg-gray-400 dark:bg-slate-700 rounded shadow-lg md:h-full md:object-cover md:w-auto w-full" decoding=async height=224 loading=lazy sizes="(max-width: 900px) 400px, 900px" src=/_astro/cover.BiItD24z_9rTuw.webp srcset="/_astro/cover.BiItD24z_9rTuw.webp 400w, /_astro/cover.BiItD24z_9rTuw.webp 900w" width=400 aspectRatio=16:9></a></div><h3 class="font-bold font-heading mb-2 leading-tight sm:text-2xl text-xl"><a href=/projects/ssc-drivers class="transition hover:text-primary dark:hover:text-primary duration-200 ease-in">South Sea Cargo Driver's App</a></h3><p class="text-muted dark:text-slate-400 text-lg">Offline-First PWA for delivery drivers in remote areas</p></article><article class="transition mb-6"><div class="mb-6 bg-gray-400 dark:bg-slate-700 md:h-88 relative rounded shadow-lg"><a href=/projects/ssc-container-tracker><img alt="South Sea Cargo Container Tracker" class="bg-gray-400 dark:bg-slate-700 rounded shadow-lg md:h-full md:object-cover md:w-auto w-full" decoding=async height=224 loading=lazy sizes="(max-width: 900px) 400px, 900px" src=/_astro/cover.BcvUT9If_bujQh.webp srcset="/_astro/cover.BcvUT9If_bujQh.webp 400w, /_astro/cover.BcvUT9If_bujQh.webp 900w" width=400 aspectRatio=16:9></a></div><h3 class="font-bold font-heading mb-2 leading-tight sm:text-2xl text-xl"><a href=/projects/ssc-container-tracker class="transition hover:text-primary dark:hover:text-primary duration-200 ease-in">South Sea Cargo Container Tracker</a></h3><p class="text-muted dark:text-slate-400 text-lg">Replacing the foundation on a local shipping business's information system.</p></article><article class="transition mb-6"><div class="mb-6 bg-gray-400 dark:bg-slate-700 md:h-88 relative rounded shadow-lg"><a href=/projects/sabdivisen><img alt=Sabdivisen.com class="bg-gray-400 dark:bg-slate-700 rounded shadow-lg md:h-full md:object-cover md:w-auto w-full" decoding=async height=224 loading=lazy sizes="(max-width: 900px) 400px, 900px" src=/_astro/sabdivisen.Ch0k0FnW_1FMYGB.webp srcset="/_astro/sabdivisen.Ch0k0FnW_1FMYGB.webp 400w, /_astro/sabdivisen.Ch0k0FnW_1FMYGB.webp 900w" width=400 aspectRatio=16:9></a></div><h3 class="font-bold font-heading mb-2 leading-tight sm:text-2xl text-xl"><a href=/projects/sabdivisen class="transition hover:text-primary dark:hover:text-primary duration-200 ease-in">Sabdivisen.com</a></h3><p class="text-muted dark:text-slate-400 text-lg">Vanuatu's map for subdivisions.</p></article><article class="transition mb-6"><div class="mb-6 bg-gray-400 dark:bg-slate-700 md:h-88 relative rounded shadow-lg"><a href=/projects/1nomo><img alt=1NOMO class="bg-gray-400 dark:bg-slate-700 rounded shadow-lg md:h-full md:object-cover md:w-auto w-full" decoding=async height=224 loading=lazy sizes="(max-width: 900px) 400px, 900px" src=/_astro/cover.CkmLCfUm_Z17ub5p.webp srcset="/_astro/cover.CkmLCfUm_Z17ub5p.webp 400w, /_astro/cover.CkmLCfUm_Z17ub5p.webp 900w" width=400 aspectRatio=16:9></a></div><h3 class="font-bold font-heading mb-2 leading-tight sm:text-2xl text-xl"><a href=/projects/1nomo class="transition hover:text-primary dark:hover:text-primary duration-200 ease-in">1NOMO</a></h3><p class="text-muted dark:text-slate-400 text-lg">A comprehensive linear TV station platform. Broadcast free-to-air in Port Vila, Vanuatu.</p></article></div></section><section class="mx-auto max-w-7xl px-4 lg:py-20 py-16"><div class="flex flex-col lg:flex-row lg:justify-between mb-8"><div class=md:max-w-sm><h2 class="font-bold font-heading mb-2 group sm:leading-none sm:text-4xl text-3xl tracking-tight">Featured Posts</h2><a href=/blog class="transition hover:text-primary dark:hover:text-primary duration-200 ease-in block dark:text-slate-400 lg:mb-0 mb-6 text-muted">View all posts »</a></div><p class="text-muted dark:text-slate-400 lg:max-w-md lg:text-sm">I try to write technical posts on things I've learned, but I go off-topic sometimes.</p></div><div class="grid -mb-6 gap-6 lg:grid-cols-2 md:grid-cols-2 row-gap-5"><article class="transition mb-6"><div class="mb-6 bg-gray-400 dark:bg-slate-700 md:h-88 relative rounded shadow-lg"><a href=/blog/on-learning-opentofu><img alt="Notes On Learning OpenTofu" class="bg-gray-400 dark:bg-slate-700 rounded shadow-lg md:h-full md:object-cover md:w-auto w-full" decoding=async height=224 loading=lazy sizes="(max-width: 900px) 400px, 900px" src=/_astro/opentofu.DoCz7-M__Z1Hic1G.webp srcset="/_astro/opentofu.DoCz7-M__Z1Hic1G.webp 400w, /_astro/opentofu.DoCz7-M__Z1Hic1G.webp 900w" width=400 aspectRatio=16:9></a></div><h3 class="font-bold font-heading mb-2 leading-tight sm:text-2xl text-xl"><a href=/blog/on-learning-opentofu class="transition hover:text-primary dark:hover:text-primary duration-200 ease-in">Notes On Learning OpenTofu</a></h3><p class="text-muted dark:text-slate-400 text-lg">Provisioning & Deploying my personal projects.</p></article><article class="transition mb-6"><div class="mb-6 bg-gray-400 dark:bg-slate-700 md:h-88 relative rounded shadow-lg"><a href=/blog/pwa-outbox><img alt="Building a PWA Outbox Feature" class="bg-gray-400 dark:bg-slate-700 rounded shadow-lg md:h-full md:object-cover md:w-auto w-full" decoding=async height=224 loading=lazy sizes="(max-width: 900px) 400px, 900px" src=/_astro/pwa-outbox.BpkfmpV__Z1cMdif.webp srcset="/_astro/pwa-outbox.BpkfmpV__Z1cMdif.webp 400w, /_astro/pwa-outbox.BpkfmpV__Z1cMdif.webp 900w" width=400 aspectRatio=16:9></a></div><h3 class="font-bold font-heading mb-2 leading-tight sm:text-2xl text-xl"><a href=/blog/pwa-outbox class="transition hover:text-primary dark:hover:text-primary duration-200 ease-in">Building a PWA Outbox Feature</a></h3><p class="text-muted dark:text-slate-400 text-lg">Recording failed POST requests and retrying on demand.</p></article><article class="transition mb-6"><div class="mb-6 bg-gray-400 dark:bg-slate-700 md:h-88 relative rounded shadow-lg"><a href=/blog/scraping-pdfs-with-opencv><img alt="Scraping PDFs With Computer Vision" class="bg-gray-400 dark:bg-slate-700 rounded shadow-lg md:h-full md:object-cover md:w-auto w-full" decoding=async height=224 loading=lazy sizes="(max-width: 900px) 400px, 900px" src=/_astro/cover.BCtk6ut4_Z2gVTNu.webp srcset="/_astro/cover.BCtk6ut4_Z2gVTNu.webp 400w, /_astro/cover.BCtk6ut4_Z2gVTNu.webp 900w" width=400 aspectRatio=16:9></a></div><h3 class="font-bold font-heading mb-2 leading-tight sm:text-2xl text-xl"><a href=/blog/scraping-pdfs-with-opencv class="transition hover:text-primary dark:hover:text-primary duration-200 ease-in">Scraping PDFs With Computer Vision</a></h3><p class="text-muted dark:text-slate-400 text-lg">Using OpenCV to scrape figures from PDF files.</p></article><article class="transition mb-6"><div class="mb-6 bg-gray-400 dark:bg-slate-700 md:h-88 relative rounded shadow-lg"><a href=/blog/tus-and-uppy><img alt="Uppy and Tus" class="bg-gray-400 dark:bg-slate-700 rounded shadow-lg md:h-full md:object-cover md:w-auto w-full" decoding=async height=224 loading=lazy sizes="(max-width: 900px) 400px, 900px" src=/_astro/tus-and-uppy.DUi7CoK-_1e73eW.webp srcset="/_astro/tus-and-uppy.DUi7CoK-_1e73eW.webp 400w, /_astro/tus-and-uppy.DUi7CoK-_1e73eW.webp 900w" width=400 aspectRatio=16:9></a></div><h3 class="font-bold font-heading mb-2 leading-tight sm:text-2xl text-xl"><a href=/blog/tus-and-uppy class="transition hover:text-primary dark:hover:text-primary duration-200 ease-in">Uppy and Tus</a></h3><p class="text-muted dark:text-slate-400 text-lg">Integrating resumable uploads into Bilolok.</p></article></div></section></main><footer class="border-gray-200 border-t dark:border-slate-800 relative"><div class="pointer-events-none absolute inset-0 dark:bg-dark" aria-hidden=true></div><div class="mx-auto max-w-7xl px-4 relative sm:px-6 dark:text-slate-300"><div class="grid gap-4 gap-y-8 grid-cols-12 md:py-12 py-8 sm:gap-8"><div class="col-span-12 lg:col-span-4"><div class=mb-2><a href=/ class="font-bold text-xl inline-block">Michael Toohig</a></div></div></div><div class="md:items-center md:flex md:justify-between md:py-8 py-6"><ul class="flex md:mb-0 -ml-2 mb-4 md:ml-4 md:order-1"><li><a href=/rss.xml class="text-muted dark:focus:ring-gray-700 dark:hover:bg-gray-700 dark:text-gray-400 focus:outline-none focus:ring-4 focus:ring-gray-200 hover:bg-gray-100 inline-flex items-center p-2.5 rounded-lg text-sm" aria-label=RSS><svg class="h-5 w-5" data-icon=ph:rss height=1em width=1em><symbol id=ai:ph:rss viewBox="0 0 256 256"><path d="M106.91 149.09A71.53 71.53 0 0 1 128 200a8 8 0 0 1-16 0a56 56 0 0 0-56-56a8 8 0 0 1 0-16a71.53 71.53 0 0 1 50.91 21.09M56 80a8 8 0 0 0 0 16a104 104 0 0 1 104 104a8 8 0 0 0 16 0A120 120 0 0 0 56 80m118.79 1.21A166.9 166.9 0 0 0 56 32a8 8 0 0 0 0 16a151 151 0 0 1 107.48 44.52A151 151 0 0 1 208 200a8 8 0 0 0 16 0a166.9 166.9 0 0 0-49.21-118.79M60 184a12 12 0 1 0 12 12a12 12 0 0 0-12-12" fill=currentColor /></symbol><use href=#ai:ph:rss></use></svg></a></li><li><a href=https://github.com/michaeltoohig class="text-muted dark:focus:ring-gray-700 dark:hover:bg-gray-700 dark:text-gray-400 focus:outline-none focus:ring-4 focus:ring-gray-200 hover:bg-gray-100 inline-flex items-center p-2.5 rounded-lg text-sm" aria-label=Github><svg class="h-5 w-5" data-icon=ph:github-logo height=1em width=1em><symbol id=ai:ph:github-logo viewBox="0 0 256 256"><path d="M208.31 75.68A59.78 59.78 0 0 0 202.93 28a8 8 0 0 0-6.93-4a59.75 59.75 0 0 0-48 24h-24a59.75 59.75 0 0 0-48-24a8 8 0 0 0-6.93 4a59.78 59.78 0 0 0-5.38 47.68A58.14 58.14 0 0 0 56 104v8a56.06 56.06 0 0 0 48.44 55.47A39.8 39.8 0 0 0 96 192v8H72a24 24 0 0 1-24-24a40 40 0 0 0-40-40a8 8 0 0 0 0 16a24 24 0 0 1 24 24a40 40 0 0 0 40 40h24v16a8 8 0 0 0 16 0v-40a24 24 0 0 1 48 0v40a8 8 0 0 0 16 0v-40a39.8 39.8 0 0 0-8.44-24.53A56.06 56.06 0 0 0 216 112v-8a58.14 58.14 0 0 0-7.69-28.32M200 112a40 40 0 0 1-40 40h-48a40 40 0 0 1-40-40v-8a41.74 41.74 0 0 1 6.9-22.48a8 8 0 0 0 1.1-7.69a43.8 43.8 0 0 1 .79-33.58a43.88 43.88 0 0 1 32.32 20.06a8 8 0 0 0 6.71 3.69h32.35a8 8 0 0 0 6.74-3.69a43.87 43.87 0 0 1 32.32-20.06a43.8 43.8 0 0 1 .77 33.58a8.09 8.09 0 0 0 1 7.65a41.7 41.7 0 0 1 7 22.52Z" fill=currentColor /></symbol><use href=#ai:ph:github-logo></use></svg></a></li></ul><div class="text-sm dark:text-slate-400 mr-4">Made in Vanuatu 🇻🇺 · All rights reserved.</div></div></div></footer><script>!function(){const e="system";function t(e){"dark"===e?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}function o(e,t,o){const n="string"==typeof e?document.querySelectorAll(e):e;n&&n.length&&n.forEach((e=>{e.addEventListener(t,(t=>o(t,e)),!1)}))}e&&e.endsWith(":only")||(localStorage.theme,0)?t(e.replace(":only","")):"dark"===localStorage.theme||!("theme"in localStorage)&&window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):t("light"),window.onload=function(){let t=window.scrollY,n=!0;function a(){const e=document.getElementById("header");t>60&&!e.classList.contains("scroll")?document.getElementById("header").classList.add("scroll"):t<=60&&e.classList.contains("scroll")&&document.getElementById("header").classList.remove("scroll"),n=!1}o("[data-aw-toggle-menu]","click",(function(e,t){t.classList.toggle("expanded"),document.body.classList.toggle("overflow-hidden"),document.getElementById("header")?.classList.toggle("h-screen"),document.querySelector("#header nav")?.classList.toggle("hidden")})),o("[data-aw-toggle-color-scheme]","click",(function(){e.endsWith(":only")||(document.documentElement.classList.toggle("dark"),localStorage.theme=document.documentElement.classList.contains("dark")?"dark":"light")})),o("[data-aw-social-share]","click",(function(e,t){const o=t.getAttribute("data-aw-social-share"),n=encodeURIComponent(t.getAttribute("data-aw-url")),a=encodeURIComponent(t.getAttribute("data-aw-text"));let c;switch(o){case"facebook":c=`https://www.facebook.com/sharer.php?u=${n}`;break;case"twitter":c=`https://twitter.com/intent/tweet?url=${n}&text=${a}`;break;case"linkedin":c=`https://www.linkedin.com/shareArticle?mini=true&url=${n}&title=${a}`;break;case"whatsapp":c=`https://wa.me/?text=${a}%20${n}`;break;case"mail":c=`mailto:?subject=%22${a}%22&body=${a}%20${n}`;break;default:return}const s=document.createElement("a");s.target="_blank",s.href=c,s.click()})),a(),o([document],"scroll",(function(){t=window.scrollY,n||(window.requestAnimationFrame((()=>{a()})),n=!0)}))},window.onpageshow=function(){document.documentElement.classList.add("motion-safe:scroll-smooth");const e=document.querySelector("[data-aw-toggle-menu]");e&&e.classList.remove("expanded"),document.body.classList.remove("overflow-hidden"),document.getElementById("header")?.classList.remove("h-screen"),document.querySelector("#header nav")?.classList.add("hidden")}}()</script></body></html>