"use strict";(self.webpackChunkmyportfolio=self.webpackChunkmyportfolio||[]).push([[792],{7655(n,e,t){t.d(e,{A:()=>u});var r,o,i,a=t(7528),s=t(5043),c=t(9695),l=t(1859),d=t(7020),h=t(579);const p=c.Ay.div(r||(r=(0,a.A)(["\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n pointer-events: none;\n overflow: hidden;\n \n /* Static gradient background - no animation for better performance */\n background: linear-gradient(\n -45deg,\n var(--primary) 0%,\n var(--secondary) 50%,\n var(--primary) 100%\n );\n \n /* GPU layer promotion for smooth compositing */\n transform: translateZ(0);\n will-change: transform;\n"]))),m=c.Ay.canvas(o||(o=(0,a.A)(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0.3;\n"]))),x=c.Ay.div(i||(i=(0,a.A)(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-image:\n linear-gradient(rgba(100, 255, 218, 0.03) 1px, transparent 1px),\n linear-gradient(90deg, rgba(100, 255, 218, 0.03) 1px, transparent 1px);\n background-size: 50px 50px;\n transform: perspective(500px) rotateX(60deg);\n transform-origin: center bottom;\n opacity: 0.5;\n\n /* Hide grid on mobile for cleaner look and better performance */\n @media (max-width: 768px) {\n display: none;\n }\n"]))),f=n=>{let{density:e=30,opacity:t=.7}=n;const r=(0,s.useRef)(null),{theme:o}=(0,l.DP)(),i=(0,s.useRef)([]),a=(0,s.useRef)(null),c=(0,s.useRef)(!0);return(0,s.useEffect)((()=>{const n=r.current;if(!n)return;if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;const s=navigator.connection;if((null===s||void 0===s?void 0:s.saveData)||"2g"===(null===s||void 0===s?void 0:s.effectiveType)||"slow-2g"===(null===s||void 0===s?void 0:s.effectiveType))return;const l=window.innerWidth<=768,h=l?Math.min(e,15):e,p=n.getContext("2d",{alpha:!0});if(!p)return;const m=()=>{n.width=window.innerWidth,n.height=window.innerHeight};m(),window.addEventListener("resize",m,{passive:!0});const x=Math.floor(h);i.current=Array.from({length:x},(()=>({x:Math.random()*n.width,y:Math.random()*n.height,vx:.3*(Math.random()-.5),vy:.3*(Math.random()-.5),size:2*Math.random()+1})));const f=new IntersectionObserver((n=>{n.forEach((n=>{c.current=n.isIntersecting}))}),{threshold:0});f.observe(n);let u=0;const g=1e3/(l?20:30),v=l?100:120,b=e=>{if(a.current=requestAnimationFrame(b),!c.current)return;const r=e-u;if(r{switch(o){case d.S.DARK:return"rgba(100, 255, 218, 0.6)";case d.S.LIGHT:return"rgba(10, 140, 106, 0.6)";case d.S.HACKER:return"rgba(63, 185, 80, 0.6)";case d.S.CYBERPUNK:return"rgba(233, 69, 96, 0.6)";default:return"rgba(100, 255, 218, 0.6)"}})(),h=i.current,m=h.length;p.fillStyle=s,p.globalAlpha=t;for(let t=0;tn.width&&(e.x=0),e.y<0?e.y=n.height:e.y>n.height&&(e.y=0),p.beginPath(),p.arc(e.x,e.y,e.size,0,2*Math.PI),p.fill()}if(!l&&m>1){p.strokeStyle=s.replace("0.6","0.15"),p.globalAlpha=.25*t,p.lineWidth=.5;const n=v*v;for(let e=0;eb(0);return"requestIdleCallback"in window?window.requestIdleCallback(w,{timeout:100}):setTimeout(w,50),()=>{window.removeEventListener("resize",m),f.disconnect(),a.current&&cancelAnimationFrame(a.current)}}),[o,e,t]),(0,h.jsxs)(p,{children:[(0,h.jsx)(x,{}),(0,h.jsx)(m,{ref:r})]})},u=s.memo(f)},1993(n,e,t){var r,o,i,a,s,c,l,d,h,p,m,x,f,u,g,v=t(5043),b=t(4391),w=t(7528),y=t(1859),A=t(9695),j=t(7874),k=t(579);const S=[{id:"about",label:"About",icon:"user",path:"/#about"},{id:"projects",label:"Projects",icon:"folder",path:"/#projects"},{id:"skills",label:"Skills",icon:"code",path:"/#skills"},{id:"contact",label:"Contact",icon:"envelope",path:"/#contact"}],E=A.Ay.header(r||(r=(0,w.A)(["\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n z-index: 1000;\n backdrop-filter: blur(10px);\n -webkit-backdrop-filter: blur(10px); /* Safari support */\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n background-color: ",";\n box-shadow: ",";\n"])),(n=>{let{$scrolled:e}=n;return e?"rgba(10, 25, 47, 0.9)":"transparent"}),(n=>{let{$scrolled:e}=n;return e?"0 10px 30px -10px rgba(0, 0, 0, 0.3)":"none"})),W=A.Ay.div(o||(o=(0,w.A)(["\n max-width: 1200px;\n margin: 0 auto;\n padding: 0 2rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: 70px;\n\n @media (max-width: 1048px) {\n padding: 0 1rem;\n height: 48px;\n }\n\n @media (max-width: 480px) {\n padding: 0 0.75rem;\n height: 44px;\n }\n"]))),z=(0,A.Ay)(j.N_)(i||(i=(0,w.A)(["\n font-family: var(--font-mono);\n font-size: 1.5rem;\n font-weight: 700;\n color: var(--accent);\n display: flex;\n align-items: center;\n text-decoration: none;\n letter-spacing: -0.5px;\n text-transform: none;\n transition: var(--transition);\n\n &:hover {\n color: var(--accent);\n }\n\n @media (max-width: 1048px) {\n font-size: 1.1rem;\n }\n\n @media (max-width: 480px) {\n font-size: 1rem;\n }\n"]))),C=A.Ay.div(a||(a=(0,w.A)(["\n width: 40px;\n height: 40px;\n margin-right: 10px;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n\n @media (max-width: 1048px) {\n width: 28px;\n height: 28px;\n margin-right: 6px;\n }\n\n @media (max-width: 480px) {\n width: 24px;\n height: 24px;\n margin-right: 5px;\n }\n"]))),P=(0,A.i7)(s||(s=(0,w.A)(["\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n"]))),R=A.Ay.div(c||(c=(0,w.A)(["\n position: absolute;\n width: 100%;\n height: 100%;\n border: 2px solid var(--accent);\n border-radius: 5px;\n animation: "," 10s linear infinite;\n"])),P),T=A.Ay.nav(l||(l=(0,w.A)(["\n display: flex;\n align-items: center;\n"]))),D=A.Ay.ul(d||(d=(0,w.A)(["\n display: flex;\n list-style: none;\n margin: 0;\n padding: 0;\n \n @media (max-width: 1048px) {\n display: none; /* Hide on mobile */\n }\n"]))),I=A.Ay.li(h||(h=(0,w.A)(["\n margin-left: 2rem;\n counter-increment: nav-item;\n \n @media (max-width: 1024px) {\n margin-left: 1.5rem;\n }\n"]))),M=(0,A.Ay)(j.N_)(p||(p=(0,w.A)(["\n color: ",';\n position: relative;\n padding: 0.5rem;\n font-family: var(--font-mono);\n font-size: 0.85rem;\n text-decoration: none;\n font-weight: 500;\n \n &:before {\n content: "0" counter(nav-item) ".";\n margin-right: 5px;\n color: var(--accent);\n font-family: var(--font-mono);\n }\n \n /* Desktop hover effect */\n &:after {\n content: \'\';\n position: absolute;\n width: 100%;\n transform: scaleX(',");\n height: 2px;\n bottom: 0;\n left: 0;\n background-color: var(--accent);\n transform-origin: bottom right;\n transition: transform 0.25s ease-out;\n }\n \n &:hover {\n color: var(--accent);\n \n &:after {\n transform: scaleX(1);\n transform-origin: bottom left;\n }\n }\n"])),(n=>{let{$active:e}=n;return e?"var(--accent)":"var(--text)"}),(n=>{let{$active:e}=n;return e?1:0})),N=A.Ay.nav(m||(m=(0,w.A)(["\n display: none;\n \n @media (max-width: 1048px) {\n display: flex;\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n height: calc(60px + env(safe-area-inset-bottom, 0px));\n padding-bottom: env(safe-area-inset-bottom, 0px);\n background-color: var(--secondary);\n box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\n z-index: 98;\n justify-content: space-around;\n align-items: flex-start;\n padding-top: 8px;\n padding-left: max(10px, env(safe-area-inset-left, 0px));\n padding-right: max(10px, env(safe-area-inset-right, 0px));\n backdrop-filter: blur(10px);\n -webkit-backdrop-filter: blur(10px);\n border-top: 1px solid rgba(100, 255, 218, 0.1);\n }\n"]))),H=(0,A.Ay)(j.N_)(x||(x=(0,w.A)(["\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: ",";\n text-decoration: none;\n font-family: var(--font-mono);\n font-size: 0.75rem;\n padding: 0.5rem 0.25rem;\n flex: 1;\n min-width: 0;\n height: 100%;\n transition: var(--transition);\n position: relative;\n \n /* Active indicator */\n &:after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%) scaleX(",");\n height: 2px;\n width: 20px;\n background-color: var(--accent);\n transition: transform 0.25s ease-out;\n }\n \n &:active {\n background-color: rgba(100, 255, 218, 0.05);\n\n /* Micro-interaction: scale icon on tap */\n > div:first-child {\n transform: scale(1.15);\n }\n }\n"])),(n=>n.$active?"var(--accent)":"var(--text)"),(n=>n.$active?1:0)),L=A.Ay.div(f||(f=(0,w.A)(["\n font-size: 1.2rem;\n margin-bottom: 4px;\n transition: transform 0.15s ease;\n"]))),B=A.Ay.span(u||(u=(0,w.A)(["\n font-size: 0.7rem;\n font-weight: 500;\n white-space: nowrap;\n letter-spacing: 0.2px;\n\n @media (min-width: 400px) {\n font-size: 0.75rem;\n letter-spacing: 0.3px;\n }\n"]))),O=A.Ay.div(g||(g=(0,w.A)(["\n display: none;\n \n @media (max-width: 1048px) {\n display: block;\n height: calc(60px + env(safe-area-inset-bottom, 0px));\n width: 100%;\n }\n"]))),$=()=>{"vibrate"in navigator&&navigator.vibrate(10)},K=()=>{const[n,e]=(0,v.useState)(!1),t=(0,j.zy)(),r=n=>n.startsWith("/#")?"/"===t.pathname&&(t.hash===n.substring(1)||!t.hash&&"/#home"===n):t.pathname===n;(0,v.useEffect)((()=>{const n=()=>{e(window.pageYOffset>50)};return window.addEventListener("scroll",n,{passive:!0}),n(),()=>window.removeEventListener("scroll",n)}),[]);const o=(n,e)=>{if($(),e.startsWith("/#")&&"/"===t.pathname){n.preventDefault();const t=e.substring(2),r=document.getElementById(t);if(r){const n=window.innerWidth<=480?44:window.innerWidth<=1048?48:70,e=r.getBoundingClientRect().top+window.pageYOffset-n;window.scrollTo({top:e,behavior:"smooth"})}}};return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(E,{$scrolled:n,children:(0,k.jsxs)(W,{children:[(0,k.jsxs)(z,{to:"/",children:[(0,k.jsx)(C,{children:(0,k.jsx)(R,{})}),(0,k.jsx)("span",{children:"MasonParle.com"})]}),(0,k.jsx)(T,{children:(0,k.jsx)(D,{children:S.map((n=>(0,k.jsx)(I,{children:(0,k.jsx)(M,{to:n.path,onClick:e=>o(e,n.path),$active:r(n.path),children:(0,k.jsx)("span",{children:n.label})})},n.id)))})})]})}),(0,k.jsxs)(N,{children:[(0,k.jsxs)(H,{to:"/",$active:"/"===t.pathname&&!t.hash,onClick:n=>{$(),"/"===t.pathname&&(n.preventDefault(),window.scrollTo({top:0,behavior:"smooth"}))},children:[(0,k.jsx)(L,{children:(0,k.jsx)("i",{className:"fas fa-home"})}),(0,k.jsx)(B,{children:"Home"})]}),S.map((n=>(0,k.jsxs)(H,{to:n.path,$active:r(n.path),onClick:e=>o(e,n.path),children:[(0,k.jsx)(L,{children:(0,k.jsx)("i",{className:"fas fa-".concat(n.icon)})}),(0,k.jsx)(B,{children:n.label})]},n.id)))]}),(0,k.jsx)(O,{})]})};var q,F,U,Y;const G=A.Ay.footer(q||(q=(0,w.A)(["\n padding: 2rem 0;\n text-align: center;\n color: var(--text-secondary);\n font-family: var(--font-mono);\n font-size: 0.75rem;\n min-height: 150px;\n contain: layout;\n"]))),X=A.Ay.ul(F||(F=(0,w.A)(["\n display: flex;\n justify-content: center;\n list-style: none;\n margin-bottom: 1rem;\n min-height: 30px;\n"]))),_=A.Ay.a(U||(U=(0,w.A)(["\n margin: 0 1rem;\n color: var(--text-secondary);\n font-size: 1.25rem;\n transition: color 0.2s ease, transform 0.2s ease;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 30px;\n height: 30px;\n \n &:hover {\n color: var(--accent);\n transform: translateY(-5px);\n }\n"]))),V=A.Ay.p(Y||(Y=(0,w.A)(["\n min-height: 20px;\n a {\n color: var(--accent);\n }\n"]))),Z=()=>{const n=(new Date).getFullYear();return(0,k.jsxs)(G,{children:[(0,k.jsxs)(X,{children:[(0,k.jsx)("li",{children:(0,k.jsx)(_,{href:"https://github.com/ParleSec",target:"_blank",rel:"noopener noreferrer","aria-label":"GitHub",children:(0,k.jsx)("i",{className:"fab fa-github"})})}),(0,k.jsx)("li",{children:(0,k.jsx)(_,{href:"https://www.linkedin.com/in/mason-parle/",target:"_blank",rel:"noopener noreferrer","aria-label":"LinkedIn",children:(0,k.jsx)("i",{className:"fab fa-linkedin-in"})})})]}),(0,k.jsxs)(V,{children:["\xa9 ",n," ",(0,k.jsx)("span",{children:"Mason Parle"}),"."]})]})};var J,Q,nn,en,tn=t(7020);const rn=(0,A.i7)(J||(J=(0,w.A)(["\n 0% { opacity: 0; transform: scale(0); }\n 50% { opacity: 0.3; }\n 100% { opacity: 0; transform: scale(1); }\n"]))),on=A.Ay.div(Q||(Q=(0,w.A)(["\n position: fixed;\n z-index: 99;\n background-color: var(--secondary);\n border-radius: 50%;\n width: 50px;\n height: 50px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.3);\n transition: transform 0.2s ease, box-shadow 0.2s ease;\n border: 1px solid rgba(100, 255, 218, 0.2);\n\n /* Desktop positioning - left of FAB button */\n bottom: 2rem;\n right: 6rem;\n\n /* Hover and active states - CSS only */\n &:hover {\n transform: scale(1.05) translateY(-3px);\n box-shadow: 0 20px 30px -10px rgba(0, 0, 0, 0.4);\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n /* Mobile positioning - bottom LEFT, above nav bar */\n @media (max-width: 1048px) {\n top: auto;\n right: auto;\n bottom: calc(60px + 16px + env(safe-area-inset-bottom, 0px));\n left: 16px;\n width: 44px;\n height: 44px;\n }\n\n /* Adjust for small screens */\n @media (max-width: 480px) {\n bottom: calc(60px + 12px + env(safe-area-inset-bottom, 0px));\n left: 12px;\n width: 40px;\n height: 40px;\n }\n"]))),an=A.Ay.i(nn||(nn=(0,w.A)(["\n color: var(--accent);\n font-size: 1.5rem;\n transition: transform 0.2s ease;\n \n @media (max-width: 1048px) {\n font-size: 1.3rem;\n }\n \n @media (max-width: 480px) {\n font-size: 1.2rem;\n }\n"]))),sn=A.Ay.span(en||(en=(0,w.A)(["\n position: absolute;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: var(--accent);\n opacity: 0;\n animation: "," 0.5s ease-out;\n"])),(n=>n.$animate?rn:"none")),cn=()=>{const{theme:n,nextTheme:e}=(0,y.DP)(),[t,r]=v.useState(!1);return(0,k.jsxs)(on,{onClick:()=>{r(!0),e(),setTimeout((()=>r(!1)),500)},className:"theme-toggle",children:[(0,k.jsx)(sn,{$animate:t}),(0,k.jsx)(an,{className:"fas ".concat((()=>{switch(n){case tn.S.LIGHT:return"fa-sun";case tn.S.DARK:return"fa-moon";case tn.S.HACKER:return"fa-terminal";case tn.S.CYBERPUNK:return"fa-bolt";default:return"fa-moon"}})())})]})},ln=n=>{let{children:e}=n;return(0,v.useEffect)((()=>{const n=()=>{try{{const n=()=>{};if(window.console){const e={error:console.error,warn:console.warn};console.info=n,console.log=n,console.debug=n,console.trace=n,console.table=n,console.error=e.error,console.warn=e.warn}}(()=>{try{window.self!==window.top&&console.warn("Security Alert: This page is running in an iframe");if(!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)){setInterval((()=>{try{const n=160,e=window.outerWidth-window.innerWidth>n,t=window.outerHeight-window.innerHeight>n;(e||t)&&console.warn("Security Alert: DevTools may be open")}catch(n){console.error("[SecurityHelper] DevTools check error:",n)}}),1e3)}}catch(n){console.error("[SecurityHelper] Security checks error:",n)}})();const n=n=>{try{n.target.getAttribute("data-secure-form")||(console.warn("Potentially unsecure form submission blocked"),n.preventDefault())}catch(e){console.error("[SecurityHelper] Form validation error:",e)}};return document.addEventListener("submit",n),()=>{document.removeEventListener("submit",n)}}catch(n){console.error("[SecurityHelper] Initialization error:",n)}};"requestIdleCallback"in window?requestIdleCallback(n,{timeout:2e3}):setTimeout(n,100)}),[]),(0,k.jsx)(k.Fragment,{children:e})};var dn,hn,pn,mn;const xn=A.Ay.div(dn||(dn=(0,w.A)(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n min-height: 100vh;\n padding: 2rem;\n text-align: center;\n background-color: var(--primary);\n color: var(--text);\n"]))),fn=A.Ay.h1(hn||(hn=(0,w.A)(["\n font-size: 2rem;\n margin-bottom: 1rem;\n color: var(--danger);\n"]))),un=A.Ay.p(pn||(pn=(0,w.A)(["\n font-size: 1rem;\n color: var(--text-secondary);\n margin-bottom: 2rem;\n max-width: 600px;\n"]))),gn=A.Ay.button(mn||(mn=(0,w.A)(["\n padding: 0.75rem 1.5rem;\n font-size: 1rem;\n background-color: var(--accent);\n color: var(--primary);\n border: none;\n border-radius: var(--radius-md);\n cursor: pointer;\n transition: var(--transition);\n\n &:hover {\n opacity: 0.8;\n }\n"])));class vn extends v.Component{constructor(){super(...arguments),this.state={hasError:!1,error:null},this.handleReload=()=>{window.location.reload()}}static getDerivedStateFromError(n){return{hasError:!0,error:n}}componentDidCatch(n,e){console.error("ErrorBoundary caught an error:",n,e)}render(){return this.state.hasError?this.props.fallback?this.props.fallback:(0,k.jsxs)(xn,{children:[(0,k.jsx)(fn,{children:"Oops! Something went wrong"}),(0,k.jsx)(un,{children:"We encountered an unexpected error. Please try refreshing the page."}),(0,k.jsx)(gn,{onClick:this.handleReload,children:"Reload Page"})]}):this.props.children}}const bn=vn;var wn,yn=t(7655);const An=(0,v.lazy)((()=>t.e(97).then(t.bind(t,7097)))),jn=(0,v.lazy)((()=>Promise.all([t.e(43),t.e(96),t.e(139)]).then(t.bind(t,8139)))),kn=A.Ay.main(wn||(wn=(0,w.A)(["\n position: relative;\n"])));document.querySelectorAll("script").forEach((n=>{if(!n.getAttribute("nonce")){const e="nonce-".concat(Math.random().toString(36).substring(2,15));n.setAttribute("nonce",e)}}));const Sn=()=>(0,k.jsx)(bn,{children:(0,k.jsx)(ln,{children:(0,k.jsx)(y.NP,{children:(0,k.jsxs)(j.Kd,{children:[(0,k.jsx)(yn.A,{}),(0,k.jsx)(K,{}),(0,k.jsx)(kn,{children:(0,k.jsx)(bn,{children:(0,k.jsx)(v.Suspense,{fallback:null,children:(0,k.jsxs)(j.BV,{children:[(0,k.jsx)(j.qh,{path:"/",element:(0,k.jsx)(An,{})}),(0,k.jsx)(j.qh,{path:"/404",element:(0,k.jsx)(jn,{})}),(0,k.jsx)(j.qh,{path:"*",element:(0,k.jsx)(j.C5,{to:"/404",replace:!0})})]})})})}),(0,k.jsx)(Z,{}),(0,k.jsx)(cn,{})]})})})}),En=Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||(n=>{const e=n.split(".");return 4===e.length&&("127"===e[0]&&e.every((n=>{const e=parseInt(n,10);return!isNaN(e)&&e>=0&&e<=255})))})(window.location.hostname));function Wn(n,e){navigator.serviceWorker.register(n).then((n=>{console.log("[SW] Service Worker registered successfully"),n.onupdatefound=()=>{const t=n.installing;null!=t&&(t.onstatechange=()=>{"installed"===t.state&&(navigator.serviceWorker.controller?(console.log("[SW] New content is available; please refresh."),e&&e.onUpdate&&e.onUpdate(n)):(console.log("[SW] Content is cached for offline use."),e&&e.onSuccess&&e.onSuccess(n)))})}})).catch((n=>{console.error("[SW] Error during service worker registration:",n)}))}const zn=/Edg/.test(navigator.userAgent);function Cn(){const n=document.getElementById("root");if(!n)return void console.error("Root element not found");const e=(0,b.createRoot)(n);zn?(console.log("[App] Running in Edge - StrictMode disabled for compatibility"),e.render((0,k.jsx)(Sn,{}))):e.render((0,k.jsx)(v.StrictMode,{children:(0,k.jsx)(Sn,{})}))}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",Cn):Cn(),zn?zn&&(console.log("[SW] Edge detected - unregistering service worker"),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((n=>{n.unregister(),console.log("[SW] Service Worker unregistered")})).catch((n=>{console.error("[SW] Error unregistering service worker:",n.message)}))):function(n){if("serviceWorker"in navigator){if(new URL("",window.location.href).origin!==window.location.origin)return;window.addEventListener("load",(()=>{const e="".concat("","/service-worker.js");En?(function(n,e){fetch(n,{headers:{"Service-Worker":"script"}}).then((t=>{const r=t.headers.get("content-type");404===t.status||null!=r&&-1===r.indexOf("javascript")?navigator.serviceWorker.ready.then((n=>{n.unregister().then((()=>{window.location.reload()}))})):Wn(n,e)})).catch((()=>{console.log("[SW] No internet connection found. App is running in offline mode.")}))}(e,n),navigator.serviceWorker.ready.then((()=>{console.log("[SW] This web app is being served cache-first by a service worker.")}))):Wn(e,n)}))}}({onSuccess:()=>{console.log("[SW] Content is cached for offline use.")},onUpdate:n=>{console.log("[SW] New content is available."),(n.waiting||navigator.serviceWorker.controller)&&setTimeout((()=>window.location.reload()),1e3)}})},7020(n,e,t){t.d(e,{S:()=>r});let r=function(n){return n.DARK="dark",n.LIGHT="light",n.HACKER="hacker",n.CYBERPUNK="cyberpunk",n}({})},1859(n,e,t){t.d(e,{DP:()=>c,NP:()=>s});var r=t(5043),o=t(7020),i=t(579);const a=(0,r.createContext)(void 0),s=n=>{let{children:e}=n;const[t,s]=(0,r.useState)((()=>{const n=localStorage.getItem("theme")||o.S.DARK;return document.body.setAttribute("data-theme",n),n}));(0,r.useEffect)((()=>{document.body.setAttribute("data-theme",t),localStorage.setItem("theme",t)}),[t]);return(0,i.jsx)(a.Provider,{value:{theme:t,nextTheme:()=>{const n=Object.values(o.S),e=n.indexOf(t),r=n[(e+1)%n.length];r&&s(r)},setTheme:s},children:e})},c=()=>{const n=(0,r.useContext)(a);if(void 0===n)throw new Error("useTheme must be used within a ThemeProvider");return n}}},n=>{n.O(0,[411,407,96],(()=>{return e=1993,n(n.s=e);var e}));n.O()}]); //# sourceMappingURL=main.eba25846.js.map