301 response code means that the requested resource has been permanently moved to a new URL. All future requests should use the new address.
The browser will automatically redirect the user to the new address, and search engines will update their indexes.
200 response code is a standard successful HTTP server response. It means that the client’s request (e.g., from a browser) was successfully processed, and the server is delivering the requested data.
The user receives content without errors, and the page or application functions properly. If Code 200 is accompanied by data, the browser or program processes and displays it to the user.
GET / HTTP/1.1 Host: lumtw.com Accept: */* User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
<!DOCTYPE html><html lang="en" class="light"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/me.jpg"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-2f7b9ded6775055f.js"/><script src="/_next/static/chunks/4bd1b696-5de23d17831ad3c5.js" async=""></script><script src="/_next/static/chunks/684-1ba1f24ef32bf4ef.js" async=""></script><script src="/_next/static/chunks/main-app-626e18d909b59eba.js" async=""></script><script src="/_next/static/chunks/53c13509-0adbff1cd861efc2.js" async=""></script><script src="/_next/static/chunks/735-bb4ccfa723309bc3.js" async=""></script><script src="/_next/static/chunks/625-b18dc6260265e84f.js" async=""></script><script src="/_next/static/chunks/27-6d7df2376273f20d.js" async=""></script><script src="/_next/static/chunks/app/layout-7681d62c2965a6b9.js" async=""></script><script src="/_next/static/chunks/730-ccd0cbad6f45f8db.js" async=""></script><script src="/_next/static/chunks/app/not-found-a6bcf7d6b6744406.js" async=""></script><script src="/_next/static/chunks/874-f4087fbafda4d63b.js" async=""></script><script src="/_next/static/chunks/app/page-b9d0691f78724103.js" async=""></script><title>Joe Lum</title><meta name="description" content="A website written in React to introduce myself to the world."/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="16x16"/><script>document.querySelectorAll('body link[rel="icon"], body link[rel="apple-touch-icon"]').forEach(el => document.head.appendChild(el))</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><style data-emotion="css-global ad1llf">@layer reset,base,tokens,recipes;</style><style data-emotion="css-global z7poc8">@layer reset{html{line-height:1.5;--font-fallback:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans',sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol','Noto Color Emoji';-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;touch-action:manipulation;-moz-tab-size:4;tab-size:4;font-family:var(--global-font-body, var(--font-fallback));}*{margin:0px;padding:0px;font:inherit;word-wrap:break-word;-webkit-tap-highlight-color:transparent;}*,*::before,*::after,*::backdrop{box-sizing:border-box;border-width:0px;border-style:solid;border-color:var(--global-color-border, currentColor);}hr{height:0px;color:inherit;border-top-width:1px;}body{min-height:100dvh;position:relative;}img{border-style:none;}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle;}iframe{border:none;}img,video{max-width:100%;height:auto;}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;}ol,ul{list-style:none;}code,kbd,pre,samp{font-size:1em;}button,[type='button'],[type='reset'],[type='submit']{-webkit-appearance:button;background-color:transparent;background-image:none;}button,input,optgroup,select,textarea{color:inherit;}button,select{text-transform:none;}table{text-indent:0px;border-color:inherit;border-collapse:collapse;}*::-webkit-input-placeholder{opacity:unset;color:#9ca3af;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}*::-moz-placeholder{opacity:unset;color:#9ca3af;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}*:-ms-input-placeholder{opacity:unset;color:#9ca3af;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}*::placeholder{opacity:unset;color:#9ca3af;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}textarea{resize:vertical;}summary{display:-webkit-box;display:-webkit-list-item;display:-ms-list-itembox;display:list-item;}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sub{bottom:-0.25em;}sup{top:-0.5em;}dialog{padding:0px;}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder;}code,kbd,samp,pre{font-size:1em;--font-mono-fallback:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New';font-family:var(--global-font-mono, var(--font-mono-fallback));}input[type="text"],input[type="email"],input[type="search"],input[type="password"]{-webkit-appearance:none;-moz-appearance:none;}input[type='search']{-webkit-appearance:textfield;outline-offset:-2px;}::-webkit-search-decoration,::-webkit-search-cancel-button{-webkit-appearance:none;}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto;}input[type='number']{-moz-appearance:textfield;}:-moz-ui-invalid{box-shadow:none;}:-moz-focusring{outline:auto;}[hidden]:where(:not([hidden='until-found'])){display:none!important;}}@layer base{@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}@keyframes spin{0%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}@-webkit-keyframes pulse{50%{opacity:0.5;}}@keyframes pulse{50%{opacity:0.5;}}@-webkit-keyframes ping{75%,100%{-webkit-transform:scale(2);-moz-transform:scale(2);-ms-transform:scale(2);transform:scale(2);opacity:0;}}@keyframes ping{75%,100%{-webkit-transform:scale(2);-moz-transform:scale(2);-ms-transform:scale(2);transform:scale(2);opacity:0;}}@-webkit-keyframes bounce{0%,100%{-webkit-transform:translateY(-25%);-moz-transform:translateY(-25%);-ms-transform:translateY(-25%);transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(0.8,0,1,1);animation-timing-function:cubic-bezier(0.8,0,1,1);}50%{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1);}}@keyframes bounce{0%,100%{-webkit-transform:translateY(-25%);-moz-transform:translateY(-25%);-ms-transform:translateY(-25%);transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(0.8,0,1,1);animation-timing-function:cubic-bezier(0.8,0,1,1);}50%{-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1);}}@-webkit-keyframes bg-position{from{-webkit-background-position:var(--animate-from, 1rem) 0;background-position:var(--animate-from, 1rem) 0;}to{-webkit-background-position:var(--animate-to, 0) 0;background-position:var(--animate-to, 0) 0;}}@keyframes bg-position{from{-webkit-background-position:var(--animate-from, 1rem) 0;background-position:var(--animate-from, 1rem) 0;}to{-webkit-background-position:var(--animate-to, 0) 0;background-position:var(--animate-to, 0) 0;}}@-webkit-keyframes position{from{inset-inline-start:var(--animate-from-x);inset-block-start:var(--animate-from-y);}to{inset-inline-start:var(--animate-to-x);inset-block-start:var(--animate-to-y);}}@keyframes position{from{inset-inline-start:var(--animate-from-x);inset-block-start:var(--animate-from-y);}to{inset-inline-start:var(--animate-to-x);inset-block-start:var(--animate-to-y);}}@-webkit-keyframes circular-progress{0%{stroke-dasharray:1,400;stroke-dashoffset:0;}50%{stroke-dasharray:400,400;stroke-dashoffset:-100%;}100%{stroke-dasharray:400,400;stroke-dashoffset:-260%;}}@keyframes circular-progress{0%{stroke-dasharray:1,400;stroke-dashoffset:0;}50%{stroke-dasharray:400,400;stroke-dashoffset:-100%;}100%{stroke-dasharray:400,400;stroke-dashoffset:-260%;}}@-webkit-keyframes expand-height{from{height:0;}to{height:var(--height);}}@keyframes expand-height{from{height:0;}to{height:var(--height);}}@-webkit-keyframes collapse-height{from{height:var(--height);}to{height:0;}}@keyframes collapse-height{from{height:var(--height);}to{height:0;}}@-webkit-keyframes expand-width{from{width:0;}to{width:var(--width);}}@keyframes expand-width{from{width:0;}to{width:var(--width);}}@-webkit-keyframes collapse-width{from{height:var(--width);}to{height:0;}}@keyframes collapse-width{from{height:var(--width);}to{height:0;}}@-webkit-keyframes fade-in{from{opacity:0;}to{opacity:1;}}@keyframes fade-in{from{opacity:0;}to{opacity:1;}}@-webkit-keyframes fade-out{from{opacity:1;}to{opacity:0;}}@keyframes fade-out{from{opacity:1;}to{opacity:0;}}@-webkit-keyframes slide-from-left-full{from{-webkit-translate:-100% 0;-moz-translate:-100% 0;-ms-translate:-100% 0;translate:-100% 0;}to{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}}@keyframes slide-from-left-full{from{-webkit-translate:-100% 0;-moz-translate:-100% 0;-ms-translate:-100% 0;translate:-100% 0;}to{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}}@-webkit-keyframes slide-from-right-full{from{-webkit-translate:100% 0;-moz-translate:100% 0;-ms-translate:100% 0;translate:100% 0;}to{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}}@keyframes slide-from-right-full{from{-webkit-translate:100% 0;-moz-translate:100% 0;-ms-translate:100% 0;translate:100% 0;}to{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}}@-webkit-keyframes slide-from-top-full{from{-webkit-translate:0 -100%;-moz-translate:0 -100%;-ms-translate:0 -100%;translate:0 -100%;}to{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}}@keyframes slide-from-top-full{from{-webkit-translate:0 -100%;-moz-translate:0 -100%;-ms-translate:0 -100%;translate:0 -100%;}to{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}}@-webkit-keyframes slide-from-bottom-full{from{-webkit-translate:0 100%;-moz-translate:0 100%;-ms-translate:0 100%;translate:0 100%;}to{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}}@keyframes slide-from-bottom-full{from{-webkit-translate:0 100%;-moz-translate:0 100%;-ms-translate:0 100%;translate:0 100%;}to{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}}@-webkit-keyframes slide-to-left-full{from{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}to{-webkit-translate:-100% 0;-moz-translate:-100% 0;-ms-translate:-100% 0;translate:-100% 0;}}@keyframes slide-to-left-full{from{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}to{-webkit-translate:-100% 0;-moz-translate:-100% 0;-ms-translate:-100% 0;translate:-100% 0;}}@-webkit-keyframes slide-to-right-full{from{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}to{-webkit-translate:100% 0;-moz-translate:100% 0;-ms-translate:100% 0;translate:100% 0;}}@keyframes slide-to-right-full{from{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}to{-webkit-translate:100% 0;-moz-translate:100% 0;-ms-translate:100% 0;translate:100% 0;}}@-webkit-keyframes slide-to-top-full{from{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}to{-webkit-translate:0 -100%;-moz-translate:0 -100%;-ms-translate:0 -100%;translate:0 -100%;}}@keyframes slide-to-top-full{from{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}to{-webkit-translate:0 -100%;-moz-translate:0 -100%;-ms-translate:0 -100%;translate:0 -100%;}}@-webkit-keyframes slide-to-bottom-full{from{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}to{-webkit-translate:0 100%;-moz-translate:0 100%;-ms-translate:0 100%;translate:0 100%;}}@keyframes slide-to-bottom-full{from{-webkit-translate:0 0;-moz-translate:0 0;-ms-translate:0 0;translate:0 0;}to{-webkit-translate:0 100%;-moz-translate:0 100%;-ms-translate:0 100%;translate:0 100%;}}@-webkit-keyframes slide-from-top{0%{-webkit-translate:0 -0.5rem;-moz-translate:0 -0.5rem;-ms-translate:0 -0.5rem;translate:0 -0.5rem;}to{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}}@keyframes slide-from-top{0%{-webkit-translate:0 -0.5rem;-moz-translate:0 -0.5rem;-ms-translate:0 -0.5rem;translate:0 -0.5rem;}to{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}}@-webkit-keyframes slide-from-bottom{0%{-webkit-translate:0 0.5rem;-moz-translate:0 0.5rem;-ms-translate:0 0.5rem;translate:0 0.5rem;}to{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}}@keyframes slide-from-bottom{0%{-webkit-translate:0 0.5rem;-moz-translate:0 0.5rem;-ms-translate:0 0.5rem;translate:0 0.5rem;}to{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}}@-webkit-keyframes slide-from-left{0%{-webkit-translate:-0.5rem 0;-moz-translate:-0.5rem 0;-ms-translate:-0.5rem 0;translate:-0.5rem 0;}to{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}}@keyframes slide-from-left{0%{-webkit-translate:-0.5rem 0;-moz-translate:-0.5rem 0;-ms-translate:-0.5rem 0;translate:-0.5rem 0;}to{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}}@-webkit-keyframes slide-from-right{0%{-webkit-translate:0.5rem 0;-moz-translate:0.5rem 0;-ms-translate:0.5rem 0;translate:0.5rem 0;}to{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}}@keyframes slide-from-right{0%{-webkit-translate:0.5rem 0;-moz-translate:0.5rem 0;-ms-translate:0.5rem 0;translate:0.5rem 0;}to{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}}@-webkit-keyframes slide-to-top{0%{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}to{-webkit-translate:0 -0.5rem;-moz-translate:0 -0.5rem;-ms-translate:0 -0.5rem;translate:0 -0.5rem;}}@keyframes slide-to-top{0%{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}to{-webkit-translate:0 -0.5rem;-moz-translate:0 -0.5rem;-ms-translate:0 -0.5rem;translate:0 -0.5rem;}}@-webkit-keyframes slide-to-bottom{0%{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}to{-webkit-translate:0 0.5rem;-moz-translate:0 0.5rem;-ms-translate:0 0.5rem;translate:0 0.5rem;}}@keyframes slide-to-bottom{0%{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}to{-webkit-translate:0 0.5rem;-moz-translate:0 0.5rem;-ms-translate:0 0.5rem;translate:0 0.5rem;}}@-webkit-keyframes slide-to-left{0%{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}to{-webkit-translate:-0.5rem 0;-moz-translate:-0.5rem 0;-ms-translate:-0.5rem 0;translate:-0.5rem 0;}}@keyframes slide-to-left{0%{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}to{-webkit-translate:-0.5rem 0;-moz-translate:-0.5rem 0;-ms-translate:-0.5rem 0;translate:-0.5rem 0;}}@-webkit-keyframes slide-to-right{0%{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}to{-webkit-translate:0.5rem 0;-moz-translate:0.5rem 0;-ms-translate:0.5rem 0;translate:0.5rem 0;}}@keyframes slide-to-right{0%{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0;}to{-webkit-translate:0.5rem 0;-moz-translate:0.5rem 0;-ms-translate:0.5rem 0;translate:0.5rem 0;}}@-webkit-keyframes scale-in{from{scale:0.95;}to{scale:1;}}@keyframes scale-in{from{scale:0.95;}to{scale:1;}}@-webkit-keyframes scale-out{from{scale:1;}to{scale:0.95;}}@keyframes scale-out{from{scale:1;}to{scale:0.95;}}*{font-feature-settings:"cv11";--ring-inset:var(--chakra-empty,/**/ /*!*/)!important;--ring-offset-width:0px;--ring-offset-color:#fff;--ring-color:rgba(66, 153, 225, 0.6);--ring-offset-shadow:0 0 #0000;--ring-shadow:0 0 #0000;--brightness:var(--chakra-empty,/**/ /*!*/)!important;--contrast:var(--chakra-empty,/**/ /*!*/)!important;--grayscale:var(--chakra-empty,/**/ /*!*/)!important;--hue-rotate:var(--chakra-empty,/**/ /*!*/)!important;--invert:var(--chakra-empty,/**/ /*!*/)!important;--saturate:var(--chakra-empty,/**/ /*!*/)!important;--sepia:var(--chakra-empty,/**/ /*!*/)!important;--drop-shadow:var(--chakra-empty,/**/ /*!*/)!important;--backdrop-blur:var(--chakra-empty,/**/ /*!*/)!important;--backdrop-brightness:var(--chakra-empty,/**/ /*!*/)!important;--backdrop-contrast:var(--chakra-empty,/**/ /*!*/)!important;--backdrop-grayscale:var(--chakra-empty,/**/ /*!*/)!important;--backdrop-hue-rotate:var(--chakra-empty,/**/ /*!*/)!important;--backdrop-invert:var(--chakra-empty,/**/ /*!*/)!important;--backdrop-opacity:var(--chakra-empty,/**/ /*!*/)!important;--backdrop-saturate:var(--chakra-empty,/**/ /*!*/)!important;--backdrop-sepia:var(--chakra-empty,/**/ /*!*/)!important;--global-font-mono:var(--chakra-fonts-mono);--global-font-body:var(--chakra-fonts-body);--global-color-border:var(--chakra-colors-border);}html{color:var(--chakra-colors-fg);background:var(--chakra-colors-bg);--bg-currentcolor:var(--chakra-colors-bg);line-height:1.5;--chakra-colors-color-palette-50:var(--chakra-colors-gray-50);--chakra-colors-color-palette-100:var(--chakra-colors-gray-100);--chakra-colors-color-palette-200:var(--chakra-colors-gray-200);--chakra-colors-color-palette-300:var(--chakra-colors-gray-300);--chakra-colors-color-palette-400:var(--chakra-colors-gray-400);--chakra-colors-color-palette-500:var(--chakra-colors-gray-500);--chakra-colors-color-palette-600:var(--chakra-colors-gray-600);--chakra-colors-color-palette-700:var(--chakra-colors-gray-700);--chakra-colors-color-palette-800:var(--chakra-colors-gray-800);--chakra-colors-color-palette-900:var(--chakra-colors-gray-900);--chakra-colors-color-palette-950:var(--chakra-colors-gray-950);--chakra-colors-color-palette-contrast:var(--chakra-colors-gray-contrast);--chakra-colors-color-palette-fg:var(--chakra-colors-gray-fg);--chakra-colors-color-palette-subtle:var(--chakra-colors-gray-subtle);--chakra-colors-color-palette-muted:var(--chakra-colors-gray-muted);--chakra-colors-color-palette-emphasized:var(--chakra-colors-gray-emphasized);--chakra-colors-color-palette-solid:var(--chakra-colors-gray-solid);--chakra-colors-color-palette-focus-ring:var(--chakra-colors-gray-focus-ring);}*::-webkit-input-placeholder{--mix-color:color-mix(in srgb, var(--chakra-colors-fg-muted) 80%, transparent);color:var(--mix-color, var(--chakra-colors-fg-muted));}*::-moz-placeholder{--mix-color:color-mix(in srgb, var(--chakra-colors-fg-muted) 80%, transparent);color:var(--mix-color, var(--chakra-colors-fg-muted));}*:-ms-input-placeholder{--mix-color:color-mix(in srgb, var(--chakra-colors-fg-muted) 80%, transparent);color:var(--mix-color, var(--chakra-colors-fg-muted));}*::placeholder,*[data-placeholder]{--mix-color:color-mix(in srgb, var(--chakra-colors-fg-muted) 80%, transparent);color:var(--mix-color, var(--chakra-colors-fg-muted));}*::selection{--mix-background:color-mix(in srgb, var(--chakra-colors-color-palette-emphasized) 80%, transparent);background:var(--mix-background, var(--chakra-colors-color-palette-emphasized));--bg-currentcolor:var(--mix-background, var(--chakra-colors-color-palette-emphasized));}}@layer tokens{:where(html, .chakra-theme){--chakra-aspect-ratios-square:1/1;--chakra-aspect-ratios-landscape:4/3;--chakra-aspect-ratios-portrait:3/4;--chakra-aspect-ratios-wide:16/9;--chakra-aspect-ratios-ultrawide:18/5;--chakra-aspect-ratios-golden:1.618/1;--chakra-animations-spin:spin 1s linear infinite;--chakra-animations-ping:ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;--chakra-animations-pulse:pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;--chakra-animations-bounce:bounce 1s infinite;--chakra-blurs-sm:4px;--chakra-blurs-md:8px;--chakra-blurs-lg:12px;--chakra-blurs-xl:16px;--chakra-blurs-2xl:24px;--chakra-blurs-3xl:40px;--chakra-blurs-4xl:64px;--chakra-borders-xs:0.5px solid;--chakra-borders-sm:1px solid;--chakra-borders-md:2px solid;--chakra-borders-lg:4px solid;--chakra-borders-xl:8px solid;--chakra-colors-transparent:transparent;--chakra-colors-current:currentColor;--chakra-colors-black:#09090B;--chakra-colors-white:#FFFFFF;--chakra-colors-white-alpha-50:rgba(255, 255, 255, 0.04);--chakra-colors-white-alpha-100:rgba(255, 255, 255, 0.06);--chakra-colors-white-alpha-200:rgba(255, 255, 255, 0.08);--chakra-colors-white-alpha-300:rgba(255, 255, 255, 0.16);--chakra-colors-white-alpha-400:rgba(255, 255, 255, 0.24);--chakra-colors-white-alpha-500:rgba(255, 255, 255, 0.36);--chakra-colors-white-alpha-600:rgba(255, 255, 255, 0.48);--chakra-colors-white-alpha-700:rgba(255, 255, 255, 0.64);--chakra-colors-white-alpha-800:rgba(255, 255, 255, 0.80);--chakra-colors-white-alpha-900:rgba(255, 255, 255, 0.92);--chakra-colors-white-alpha-950:rgba(255, 255, 255, 0.95);--chakra-colors-black-alpha-50:rgba(0, 0, 0, 0.04);--chakra-colors-black-alpha-100:rgba(0, 0, 0, 0.06);--chakra-colors-black-alpha-200:rgba(0, 0, 0, 0.08);--chakra-colors-black-alpha-300:rgba(0, 0, 0, 0.16);--chakra-colors-black-alpha-400:rgba(0, 0, 0, 0.24);--chakra-colors-black-alpha-500:rgba(0, 0, 0, 0.36);--chakra-colors-black-alpha-600:rgba(0, 0, 0, 0.48);--chakra-colors-black-alpha-700:rgba(0, 0, 0, 0.64);--chakra-colors-black-alpha-800:rgba(0, 0, 0, 0.80);--chakra-colors-black-alpha-900:rgba(0, 0, 0, 0.92);--chakra-colors-black-alpha-950:rgba(0, 0, 0, 0.95);--chakra-colors-gray-50:#fafafa;--chakra-colors-gray-100:#f4f4f5;--chakra-colors-gray-200:#e4e4e7;--chakra-colors-gray-300:#d4d4d8;--chakra-colors-gray-400:#a1a1aa;--chakra-colors-gray-500:#71717a;--chakra-colors-gray-600:#52525b;--chakra-colors-gray-700:#3f3f46;--chakra-colors-gray-800:#27272a;--chakra-colors-gray-900:#18181b;--chakra-colors-gray-950:#111111;--chakra-colors-red-50:#fef2f2;--chakra-colors-red-100:#fee2e2;--chakra-colors-red-200:#fecaca;--chakra-colors-red-300:#fca5a5;--chakra-colors-red-400:#f87171;--chakra-colors-red-500:#ef4444;--chakra-colors-red-600:#dc2626;--chakra-colors-red-700:#991919;--chakra-colors-red-800:#511111;--chakra-colors-red-900:#300c0c;--chakra-colors-red-950:#1f0808;--chakra-colors-orange-50:#fff7ed;--chakra-colors-orange-100:#ffedd5;--chakra-colors-orange-200:#fed7aa;--chakra-colors-orange-300:#fdba74;--chakra-colors-orange-400:#fb923c;--chakra-colors-orange-500:#f97316;--chakra-colors-orange-600:#ea580c;--chakra-colors-orange-700:#92310a;--chakra-colors-orange-800:#6c2710;--chakra-colors-orange-900:#3b1106;--chakra-colors-orange-950:#220a04;--chakra-colors-yellow-50:#fefce8;--chakra-colors-yellow-100:#fef9c3;--chakra-colors-yellow-200:#fef08a;--chakra-colors-yellow-300:#fde047;--chakra-colors-yellow-400:#facc15;--chakra-colors-yellow-500:#eab308;--chakra-colors-yellow-600:#ca8a04;--chakra-colors-yellow-700:#845209;--chakra-colors-yellow-800:#713f12;--chakra-colors-yellow-900:#422006;--chakra-colors-yellow-950:#281304;--chakra-colors-green-50:#f0fdf4;--chakra-colors-green-100:#dcfce7;--chakra-colors-green-200:#bbf7d0;--chakra-colors-green-300:#86efac;--chakra-colors-green-400:#4ade80;--chakra-colors-green-500:#22c55e;--chakra-colors-green-600:#16a34a;--chakra-colors-green-700:#116932;--chakra-colors-green-800:#124a28;--chakra-colors-green-900:#042713;--chakra-colors-green-950:#03190c;--chakra-colors-teal-50:#f0fdfa;--chakra-colors-teal-100:#ccfbf1;--chakra-colors-teal-200:#99f6e4;--chakra-colors-teal-300:#5eead4;--chakra-colors-teal-400:#2dd4bf;--chakra-colors-teal-500:#14b8a6;--chakra-colors-teal-600:#0d9488;--chakra-colors-teal-700:#0c5d56;--chakra-colors-teal-800:#114240;--chakra-colors-teal-900:#032726;--chakra-colors-teal-950:#021716;--chakra-colors-blue-50:#eff6ff;--chakra-colors-blue-100:#dbeafe;--chakra-colors-blue-200:#bfdbfe;--chakra-colors-blue-300:#a3cfff;--chakra-colors-blue-400:#60a5fa;--chakra-colors-blue-500:#3b82f6;--chakra-colors-blue-600:#2563eb;--chakra-colors-blue-700:#173da6;--chakra-colors-blue-800:#1a3478;--chakra-colors-blue-900:#14204a;--chakra-colors-blue-950:#0c142e;--chakra-colors-cyan-50:#ecfeff;--chakra-colors-cyan-100:#cffafe;--chakra-colors-cyan-200:#a5f3fc;--chakra-colors-cyan-300:#67e8f9;--chakra-colors-cyan-400:#22d3ee;--chakra-colors-cyan-500:#06b6d4;--chakra-colors-cyan-600:#0891b2;--chakra-colors-cyan-700:#0c5c72;--chakra-colors-cyan-800:#134152;--chakra-colors-cyan-900:#072a38;--chakra-colors-cyan-950:#051b24;--chakra-colors-purple-50:#faf5ff;--chakra-colors-purple-100:#f3e8ff;--chakra-colors-purple-200:#e9d5ff;--chakra-colors-purple-300:#d8b4fe;--chakra-colors-purple-400:#c084fc;--chakra-colors-purple-500:#a855f7;--chakra-colors-purple-600:#9333ea;--chakra-colors-purple-700:#641ba3;--chakra-colors-purple-800:#4a1772;--chakra-colors-purple-900:#2f0553;--chakra-colors-purple-950:#1a032e;--chakra-colors-pink-50:#fdf2f8;--chakra-colors-pink-100:#fce7f3;--chakra-colors-pink-200:#fbcfe8;--chakra-colors-pink-300:#f9a8d4;--chakra-colors-pink-400:#f472b6;--chakra-colors-pink-500:#ec4899;--chakra-colors-pink-600:#db2777;--chakra-colors-pink-700:#a41752;--chakra-colors-pink-800:#6d0e34;--chakra-colors-pink-900:#45061f;--chakra-colors-pink-950:#2c0514;--chakra-durations-fastest:50ms;--chakra-durations-faster:100ms;--chakra-durations-fast:150ms;--chakra-durations-moderate:200ms;--chakra-durations-slow:300ms;--chakra-durations-slower:400ms;--chakra-durations-slowest:500ms;--chakra-easings-ease-in:cubic-bezier(0.42, 0, 1, 1);--chakra-easings-ease-out:cubic-bezier(0, 0, 0.58, 1);--chakra-easings-ease-in-out:cubic-bezier(0.42, 0, 0.58, 1);--chakra-easings-ease-in-smooth:cubic-bezier(0.32, 0.72, 0, 1);--chakra-fonts-heading:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--chakra-fonts-body:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--chakra-fonts-mono:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--chakra-font-sizes-2xs:0.625rem;--chakra-font-sizes-xs:0.75rem;--chakra-font-sizes-sm:0.875rem;--chakra-font-sizes-md:1rem;--chakra-font-sizes-lg:1.125rem;--chakra-font-sizes-xl:1.25rem;--chakra-font-sizes-2xl:1.5rem;--chakra-font-sizes-3xl:1.875rem;--chakra-font-sizes-4xl:2.25rem;--chakra-font-sizes-5xl:3rem;--chakra-font-sizes-6xl:3.75rem;--chakra-font-sizes-7xl:4.5rem;--chakra-font-sizes-8xl:6rem;--chakra-font-sizes-9xl:8rem;--chakra-font-weights-thin:100;--chakra-font-weights-extralight:200;--chakra-font-weights-light:300;--chakra-font-weights-normal:400;--chakra-font-weights-medium:500;--chakra-font-weights-semibold:600;--chakra-font-weights-bold:700;--chakra-font-weights-extrabold:800;--chakra-font-weights-black:900;--chakra-letter-spacings-tighter:-0.05em;--chakra-letter-spacings-tight:-0.025em;--chakra-letter-spacings-wide:0.025em;--chakra-letter-spacings-wider:0.05em;--chakra-letter-spacings-widest:0.1em;--chakra-line-heights-shorter:1.25;--chakra-line-heights-short:1.375;--chakra-line-heights-moderate:1.5;--chakra-line-heights-tall:1.625;--chakra-line-heights-taller:2;--chakra-radii-none:0;--chakra-radii-2xs:0.0625rem;--chakra-radii-xs:0.125rem;--chakra-radii-sm:0.25rem;--chakra-radii-md:0.375rem;--chakra-radii-lg:0.5rem;--chakra-radii-xl:0.75rem;--chakra-radii-2xl:1rem;--chakra-radii-3xl:1.5rem;--chakra-radii-4xl:2rem;--chakra-radii-full:9999px;--chakra-spacing-1:0.25rem;--chakra-spacing-2:0.5rem;--chakra-spacing-3:0.75rem;--chakra-spacing-4:1rem;--chakra-spacing-5:1.25rem;--chakra-spacing-6:1.5rem;--chakra-spacing-7:1.75rem;--chakra-spacing-8:2rem;--chakra-spacing-9:2.25rem;--chakra-spacing-10:2.5rem;--chakra-spacing-11:2.75rem;--chakra-spacing-12:3rem;--chakra-spacing-14:3.5rem;--chakra-spacing-16:4rem;--chakra-spacing-20:5rem;--chakra-spacing-24:6rem;--chakra-spacing-28:7rem;--chakra-spacing-32:8rem;--chakra-spacing-36:9rem;--chakra-spacing-40:10rem;--chakra-spacing-44:11rem;--chakra-spacing-48:12rem;--chakra-spacing-52:13rem;--chakra-spacing-56:14rem;--chakra-spacing-60:15rem;--chakra-spacing-64:16rem;--chakra-spacing-72:18rem;--chakra-spacing-80:20rem;--chakra-spacing-96:24rem;--chakra-spacing-0\.5:0.125rem;--chakra-spacing-1\.5:0.375rem;--chakra-spacing-2\.5:0.625rem;--chakra-spacing-3\.5:0.875rem;--chakra-spacing-4\.5:1.125rem;--chakra-sizes-1:0.25rem;--chakra-sizes-2:0.5rem;--chakra-sizes-3:0.75rem;--chakra-sizes-4:1rem;--chakra-sizes-5:1.25rem;--chakra-sizes-6:1.5rem;--chakra-sizes-7:1.75rem;--chakra-sizes-8:2rem;--chakra-sizes-9:2.25rem;--chakra-sizes-10:2.5rem;--chakra-sizes-11:2.75rem;--chakra-sizes-12:3rem;--chakra-sizes-14:3.5rem;--chakra-sizes-16:4rem;--chakra-sizes-20:5rem;--chakra-sizes-24:6rem;--chakra-sizes-28:7rem;--chakra-sizes-32:8rem;--chakra-sizes-36:9rem;--chakra-sizes-40:10rem;--chakra-sizes-44:11rem;--chakra-sizes-48:12rem;--chakra-sizes-52:13rem;--chakra-sizes-56:14rem;--chakra-sizes-60:15rem;--chakra-sizes-64:16rem;--chakra-sizes-72:18rem;--chakra-sizes-80:20rem;--chakra-sizes-96:24rem;--chakra-sizes-3xs:14rem;--chakra-sizes-2xs:16rem;--chakra-sizes-xs:20rem;--chakra-sizes-sm:24rem;--chakra-sizes-md:28rem;--chakra-sizes-lg:32rem;--chakra-sizes-xl:36rem;--chakra-sizes-2xl:42rem;--chakra-sizes-3xl:48rem;--chakra-sizes-4xl:56rem;--chakra-sizes-5xl:64rem;--chakra-sizes-6xl:72rem;--chakra-sizes-7xl:80rem;--chakra-sizes-8xl:90rem;--chakra-sizes-0\.5:0.125rem;--chakra-sizes-1\.5:0.375rem;--chakra-sizes-2\.5:0.625rem;--chakra-sizes-3\.5:0.875rem;--chakra-sizes-4\.5:1.125rem;--chakra-sizes-1\/2:50%;--chakra-sizes-1\/3:33.333333%;--chakra-sizes-2\/3:66.666667%;--chakra-sizes-1\/4:25%;--chakra-sizes-3\/4:75%;--chakra-sizes-1\/5:20%;--chakra-sizes-2\/5:40%;--chakra-sizes-3\/5:60%;--chakra-sizes-4\/5:80%;--chakra-sizes-1\/6:16.666667%;--chakra-sizes-2\/6:33.333333%;--chakra-sizes-3\/6:50%;--chakra-sizes-4\/6:66.666667%;--chakra-sizes-5\/6:83.333333%;--chakra-sizes-1\/12:8.333333%;--chakra-sizes-2\/12:16.666667%;--chakra-sizes-3\/12:25%;--chakra-sizes-4\/12:33.333333%;--chakra-sizes-5\/12:41.666667%;--chakra-sizes-6\/12:50%;--chakra-sizes-7\/12:58.333333%;--chakra-sizes-8\/12:66.666667%;--chakra-sizes-9\/12:75%;--chakra-sizes-10\/12:83.333333%;--chakra-sizes-11\/12:91.666667%;--chakra-sizes-max:max-content;--chakra-sizes-min:min-content;--chakra-sizes-fit:fit-content;--chakra-sizes-prose:60ch;--chakra-sizes-full:100%;--chakra-sizes-dvh:100dvh;--chakra-sizes-svh:100svh;--chakra-sizes-lvh:100lvh;--chakra-sizes-dvw:100dvw;--chakra-sizes-svw:100svw;--chakra-sizes-lvw:100lvw;--chakra-sizes-vw:100vw;--chakra-sizes-vh:100vh;--chakra-sizes-breakpoint-sm:480px;--chakra-sizes-breakpoint-md:768px;--chakra-sizes-breakpoint-lg:1024px;--chakra-sizes-breakpoint-xl:1280px;--chakra-sizes-breakpoint-2xl:1536px;--chakra-z-index-hide:-1;--chakra-z-index-base:0;--chakra-z-index-docked:10;--chakra-z-index-dropdown:1000;--chakra-z-index-sticky:1100;--chakra-z-index-banner:1200;--chakra-z-index-overlay:1300;--chakra-z-index-modal:1400;--chakra-z-index-popover:1500;--chakra-z-index-skip-nav:1600;--chakra-z-index-toast:1700;--chakra-z-index-tooltip:1800;--chakra-z-index-max:2147483647;--chakra-cursor-button:pointer;--chakra-cursor-checkbox:default;--chakra-cursor-disabled:not-allowed;--chakra-cursor-menuitem:default;--chakra-cursor-option:default;--chakra-cursor-radio:default;--chakra-cursor-slider:default;--chakra-cursor-switch:pointer;--chakra-breakpoints-sm:480px;--chakra-breakpoints-md:768px;--chakra-breakpoints-lg:1024px;--chakra-breakpoints-xl:1280px;--chakra-breakpoints-2xl:1536px;--chakra-radii-l1:var(--chakra-radii-xs);--chakra-radii-l2:var(--chakra-radii-sm);--chakra-radii-l3:var(--chakra-radii-md);}:root,.light{--chakra-colors-bg:var(--chakra-colors-white);--chakra-colors-bg-subtle:var(--chakra-colors-gray-50);--chakra-colors-bg-muted:var(--chakra-colors-gray-100);--chakra-colors-bg-emphasized:var(--chakra-colors-gray-200);--chakra-colors-bg-inverted:var(--chakra-colors-black);--chakra-colors-bg-panel:var(--chakra-colors-white);--chakra-colors-bg-error:var(--chakra-colors-red-50);--chakra-colors-bg-warning:var(--chakra-colors-orange-50);--chakra-colors-bg-success:var(--chakra-colors-green-50);--chakra-colors-bg-info:var(--chakra-colors-blue-50);--chakra-colors-fg:var(--chakra-colors-black);--chakra-colors-fg-muted:var(--chakra-colors-gray-600);--chakra-colors-fg-subtle:var(--chakra-colors-gray-400);--chakra-colors-fg-inverted:var(--chakra-colors-gray-50);--chakra-colors-fg-error:var(--chakra-colors-red-500);--chakra-colors-fg-warning:var(--chakra-colors-orange-600);--chakra-colors-fg-success:var(--chakra-colors-green-600);--chakra-colors-fg-info:var(--chakra-colors-blue-600);--chakra-colors-border:var(--chakra-colors-gray-200);--chakra-colors-border-muted:var(--chakra-colors-gray-100);--chakra-colors-border-subtle:var(--chakra-colors-gray-50);--chakra-colors-border-emphasized:var(--chakra-colors-gray-300);--chakra-colors-border-inverted:var(--chakra-colors-gray-800);--chakra-colors-border-error:var(--chakra-colors-red-500);--chakra-colors-border-warning:var(--chakra-colors-orange-500);--chakra-colors-border-success:var(--chakra-colors-green-500);--chakra-colors-border-info:var(--chakra-colors-blue-500);--chakra-colors-gray-contrast:var(--chakra-colors-white);--chakra-colors-gray-fg:var(--chakra-colors-gray-800);--chakra-colors-gray-subtle:var(--chakra-colors-gray-100);--chakra-colors-gray-muted:var(--chakra-colors-gray-200);--chakra-colors-gray-emphasized:var(--chakra-colors-gray-300);--chakra-colors-gray-solid:var(--chakra-colors-gray-900);--chakra-colors-gray-focus-ring:var(--chakra-colors-gray-400);--chakra-colors-red-contrast:white;--chakra-colors-red-fg:var(--chakra-colors-red-700);--chakra-colors-red-subtle:var(--chakra-colors-red-100);--chakra-colors-red-muted:var(--chakra-colors-red-200);--chakra-colors-red-emphasized:var(--chakra-colors-red-300);--chakra-colors-red-solid:var(--chakra-colors-red-600);--chakra-colors-red-focus-ring:var(--chakra-colors-red-400);--chakra-colors-orange-contrast:white;--chakra-colors-orange-fg:var(--chakra-colors-orange-700);--chakra-colors-orange-subtle:var(--chakra-colors-orange-100);--chakra-colors-orange-muted:var(--chakra-colors-orange-200);--chakra-colors-orange-emphasized:var(--chakra-colors-orange-300);--chakra-colors-orange-solid:var(--chakra-colors-orange-600);--chakra-colors-orange-focus-ring:var(--chakra-colors-orange-400);--chakra-colors-green-contrast:white;--chakra-colors-green-fg:var(--chakra-colors-green-700);--chakra-colors-green-subtle:var(--chakra-colors-green-100);--chakra-colors-green-muted:var(--chakra-colors-green-200);--chakra-colors-green-emphasized:var(--chakra-colors-green-300);--chakra-colors-green-solid:var(--chakra-colors-green-600);--chakra-colors-green-focus-ring:var(--chakra-colors-green-400);--chakra-colors-blue-contrast:white;--chakra-colors-blue-fg:var(--chakra-colors-blue-700);--chakra-colors-blue-subtle:var(--chakra-colors-blue-100);--chakra-colors-blue-muted:var(--chakra-colors-blue-200);--chakra-colors-blue-emphasized:var(--chakra-colors-blue-300);--chakra-colors-blue-solid:var(--chakra-colors-blue-600);--chakra-colors-blue-focus-ring:var(--chakra-colors-blue-400);--chakra-colors-yellow-contrast:black;--chakra-colors-yellow-fg:var(--chakra-colors-yellow-800);--chakra-colors-yellow-subtle:var(--chakra-colors-yellow-100);--chakra-colors-yellow-muted:var(--chakra-colors-yellow-200);--chakra-colors-yellow-emphasized:var(--chakra-colors-yellow-300);--chakra-colors-yellow-solid:var(--chakra-colors-yellow-300);--chakra-colors-yellow-focus-ring:var(--chakra-colors-yellow-400);--chakra-colors-teal-contrast:white;--chakra-colors-teal-fg:var(--chakra-colors-teal-700);--chakra-colors-teal-subtle:var(--chakra-colors-teal-100);--chakra-colors-teal-muted:var(--chakra-colors-teal-200);--chakra-colors-teal-emphasized:var(--chakra-colors-teal-300);--chakra-colors-teal-solid:var(--chakra-colors-teal-600);--chakra-colors-teal-focus-ring:var(--chakra-colors-teal-400);--chakra-colors-purple-contrast:white;--chakra-colors-purple-fg:var(--chakra-colors-purple-700);--chakra-colors-purple-subtle:var(--chakra-colors-purple-100);--chakra-colors-purple-muted:var(--chakra-colors-purple-200);--chakra-colors-purple-emphasized:var(--chakra-colors-purple-300);--chakra-colors-purple-solid:var(--chakra-colors-purple-600);--chakra-colors-purple-focus-ring:var(--chakra-colors-purple-400);--chakra-colors-pink-contrast:white;--chakra-colors-pink-fg:var(--chakra-colors-pink-700);--chakra-colors-pink-subtle:var(--chakra-colors-pink-100);--chakra-colors-pink-muted:var(--chakra-colors-pink-200);--chakra-colors-pink-emphasized:var(--chakra-colors-pink-300);--chakra-colors-pink-solid:var(--chakra-colors-pink-600);--chakra-colors-pink-focus-ring:var(--chakra-colors-pink-400);--chakra-colors-cyan-contrast:white;--chakra-colors-cyan-fg:var(--chakra-colors-cyan-700);--chakra-colors-cyan-subtle:var(--chakra-colors-cyan-100);--chakra-colors-cyan-muted:var(--chakra-colors-cyan-200);--chakra-colors-cyan-emphasized:var(--chakra-colors-cyan-300);--chakra-colors-cyan-solid:var(--chakra-colors-cyan-600);--chakra-colors-cyan-focus-ring:var(--chakra-colors-cyan-400);--chakra-shadows-xs:0px 1px 2px color-mix(in srgb, var(--chakra-colors-gray-900) 10%, transparent),0px 0px 1px color-mix(in srgb, var(--chakra-colors-gray-900) 20%, transparent);--chakra-shadows-sm:0px 2px 4px color-mix(in srgb, var(--chakra-colors-gray-900) 10%, transparent),0px 0px 1px color-mix(in srgb, var(--chakra-colors-gray-900) 30%, transparent);--chakra-shadows-md:0px 4px 8px color-mix(in srgb, var(--chakra-colors-gray-900) 10%, transparent),0px 0px 1px color-mix(in srgb, var(--chakra-colors-gray-900) 30%, transparent);--chakra-shadows-lg:0px 8px 16px color-mix(in srgb, var(--chakra-colors-gray-900) 10%, transparent),0px 0px 1px color-mix(in srgb, var(--chakra-colors-gray-900) 30%, transparent);--chakra-shadows-xl:0px 16px 24px color-mix(in srgb, var(--chakra-colors-gray-900) 10%, transparent),0px 0px 1px color-mix(in srgb, var(--chakra-colors-gray-900) 30%, transparent);--chakra-shadows-2xl:0px 24px 40px color-mix(in srgb, var(--chakra-colors-gray-900) 16%, transparent),0px 0px 1px color-mix(in srgb, var(--chakra-colors-gray-900) 30%, transparent);--chakra-shadows-inner:inset 0 2px 4px 0 color-mix(in srgb, black 5%, transparent);--chakra-shadows-inset:inset 0 0 0 1px color-mix(in srgb, black 5%, transparent);}.dark,.dark .chakra-theme:not(.light){--chakra-colors-bg:var(--chakra-colors-black);--chakra-colors-bg-subtle:var(--chakra-colors-gray-950);--chakra-colors-bg-muted:var(--chakra-colors-gray-900);--chakra-colors-bg-emphasized:var(--chakra-colors-gray-800);--chakra-colors-bg-inverted:var(--chakra-colors-white);--chakra-colors-bg-panel:var(--chakra-colors-gray-950);--chakra-colors-bg-error:var(--chakra-colors-red-950);--chakra-colors-bg-warning:var(--chakra-colors-orange-950);--chakra-colors-bg-success:var(--chakra-colors-green-950);--chakra-colors-bg-info:var(--chakra-colors-blue-950);--chakra-colors-fg:var(--chakra-colors-gray-50);--chakra-colors-fg-muted:var(--chakra-colors-gray-400);--chakra-colors-fg-subtle:var(--chakra-colors-gray-500);--chakra-colors-fg-inverted:var(--chakra-colors-black);--chakra-colors-fg-error:var(--chakra-colors-red-400);--chakra-colors-fg-warning:var(--chakra-colors-orange-300);--chakra-colors-fg-success:var(--chakra-colors-green-300);--chakra-colors-fg-info:var(--chakra-colors-blue-300);--chakra-colors-border:var(--chakra-colors-gray-800);--chakra-colors-border-muted:var(--chakra-colors-gray-900);--chakra-colors-border-subtle:var(--chakra-colors-gray-950);--chakra-colors-border-emphasized:var(--chakra-colors-gray-700);--chakra-colors-border-inverted:var(--chakra-colors-gray-200);--chakra-colors-border-error:var(--chakra-colors-red-400);--chakra-colors-border-warning:var(--chakra-colors-orange-400);--chakra-colors-border-success:var(--chakra-colors-green-400);--chakra-colors-border-info:var(--chakra-colors-blue-400);--chakra-colors-gray-contrast:var(--chakra-colors-black);--chakra-colors-gray-fg:var(--chakra-colors-gray-200);--chakra-colors-gray-subtle:var(--chakra-colors-gray-900);--chakra-colors-gray-muted:var(--chakra-colors-gray-800);--chakra-colors-gray-emphasized:var(--chakra-colors-gray-700);--chakra-colors-gray-solid:var(--chakra-colors-white);--chakra-colors-gray-focus-ring:var(--chakra-colors-gray-400);--chakra-colors-red-contrast:white;--chakra-colors-red-fg:var(--chakra-colors-red-300);--chakra-colors-red-subtle:var(--chakra-colors-red-900);--chakra-colors-red-muted:var(--chakra-colors-red-800);--chakra-colors-red-emphasized:var(--chakra-colors-red-700);--chakra-colors-red-solid:var(--chakra-colors-red-600);--chakra-colors-red-focus-ring:var(--chakra-colors-red-400);--chakra-colors-orange-contrast:black;--chakra-colors-orange-fg:var(--chakra-colors-orange-300);--chakra-colors-orange-subtle:var(--chakra-colors-orange-900);--chakra-colors-orange-muted:var(--chakra-colors-orange-800);--chakra-colors-orange-emphasized:var(--chakra-colors-orange-700);--chakra-colors-orange-solid:var(--chakra-colors-orange-500);--chakra-colors-orange-focus-ring:var(--chakra-colors-orange-400);--chakra-colors-green-contrast:white;--chakra-colors-green-fg:var(--chakra-colors-green-300);--chakra-colors-green-subtle:var(--chakra-colors-green-900);--chakra-colors-green-muted:var(--chakra-colors-green-800);--chakra-colors-green-emphasized:var(--chakra-colors-green-700);--chakra-colors-green-solid:var(--chakra-colors-green-600);--chakra-colors-green-focus-ring:var(--chakra-colors-green-400);--chakra-colors-blue-contrast:white;--chakra-colors-blue-fg:var(--chakra-colors-blue-300);--chakra-colors-blue-subtle:var(--chakra-colors-blue-900);--chakra-colors-blue-muted:var(--chakra-colors-blue-800);--chakra-colors-blue-emphasized:var(--chakra-colors-blue-700);--chakra-colors-blue-solid:var(--chakra-colors-blue-600);--chakra-colors-blue-focus-ring:var(--chakra-colors-blue-400);--chakra-colors-yellow-contrast:black;--chakra-colors-yellow-fg:var(--chakra-colors-yellow-300);--chakra-colors-yellow-subtle:var(--chakra-colors-yellow-900);--chakra-colors-yellow-muted:var(--chakra-colors-yellow-800);--chakra-colors-yellow-emphasized:var(--chakra-colors-yellow-700);--chakra-colors-yellow-solid:var(--chakra-colors-yellow-300);--chakra-colors-yellow-focus-ring:var(--chakra-colors-yellow-400);--chakra-colors-teal-contrast:white;--chakra-colors-teal-fg:var(--chakra-colors-teal-300);--chakra-colors-teal-subtle:var(--chakra-colors-teal-900);--chakra-colors-teal-muted:var(--chakra-colors-teal-800);--chakra-colors-teal-emphasized:var(--chakra-colors-teal-700);--chakra-colors-teal-solid:var(--chakra-colors-teal-600);--chakra-colors-teal-focus-ring:var(--chakra-colors-teal-400);--chakra-colors-purple-contrast:white;--chakra-colors-purple-fg:var(--chakra-colors-purple-300);--chakra-colors-purple-subtle:var(--chakra-colors-purple-900);--chakra-colors-purple-muted:var(--chakra-colors-purple-800);--chakra-colors-purple-emphasized:var(--chakra-colors-purple-700);--chakra-colors-purple-solid:var(--chakra-colors-purple-600);--chakra-colors-purple-focus-ring:var(--chakra-colors-purple-400);--chakra-colors-pink-contrast:white;--chakra-colors-pink-fg:var(--chakra-colors-pink-300);--chakra-colors-pink-subtle:var(--chakra-colors-pink-900);--chakra-colors-pink-muted:var(--chakra-colors-pink-800);--chakra-colors-pink-emphasized:var(--chakra-colors-pink-700);--chakra-colors-pink-solid:var(--chakra-colors-pink-600);--chakra-colors-pink-focus-ring:var(--chakra-colors-pink-400);--chakra-colors-cyan-contrast:white;--chakra-colors-cyan-fg:var(--chakra-colors-cyan-300);--chakra-colors-cyan-subtle:var(--chakra-colors-cyan-900);--chakra-colors-cyan-muted:var(--chakra-colors-cyan-800);--chakra-colors-cyan-emphasized:var(--chakra-colors-cyan-700);--chakra-colors-cyan-solid:var(--chakra-colors-cyan-600);--chakra-colors-cyan-focus-ring:var(--chakra-colors-cyan-400);--chakra-shadows-xs:0px 1px 1px color-mix(in srgb, black 64%, transparent),0px 0px 1px inset color-mix(in srgb, var(--chakra-colors-gray-300) 20%, transparent);--chakra-shadows-sm:0px 2px 4px color-mix(in srgb, black 64%, transparent),0px 0px 1px inset color-mix(in srgb, var(--chakra-colors-gray-300) 30%, transparent);--chakra-shadows-md:0px 4px 8px color-mix(in srgb, black 64%, transparent),0px 0px 1px inset color-mix(in srgb, var(--chakra-colors-gray-300) 30%, transparent);--chakra-shadows-lg:0px 8px 16px color-mix(in srgb, black 64%, transparent),0px 0px 1px inset color-mix(in srgb, var(--chakra-colors-gray-300) 30%, transparent);--chakra-shadows-xl:0px 16px 24px color-mix(in srgb, black 64%, transparent),0px 0px 1px inset color-mix(in srgb, var(--chakra-colors-gray-300) 30%, transparent);--chakra-shadows-2xl:0px 24px 40px color-mix(in srgb, black 64%, transparent),0px 0px 1px inset color-mix(in srgb, var(--chakra-colors-gray-300) 30%, transparent);--chakra-shadows-inner:inset 0 2px 4px 0 black;--chakra-shadows-inset:inset 0 0 0 1px color-mix(in srgb, var(--chakra-colors-gray-300) 5%, transparent);}}</style><script>((e,t,r,o,n,i,s,a)=>{let l=document.documentElement,c=["light","dark"];function d(t){var r;(Array.isArray(e)?e:[e]).forEach(e=>{let r="class"===e,o=r&&i?n.map(e=>i[e]||e):n;r?(l.classList.remove(...o),l.classList.add(i&&i[t]?i[t]:t)):l.setAttribute(e,t)}),r=t,a&&c.includes(r)&&(l.style.colorScheme=r)}if(o)d(o);else try{let e=localStorage.getItem(t)||r,o=s&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;d(o)}catch(e){}})("class","theme","light",null,["light","dark"],null,false,true)</script><!--$--><style data-emotion="css ibsd3p">.css-ibsd3p{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:0.5rem;}@media screen and (min-width: 30rem){.css-ibsd3p{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}@media screen and (min-width: 48rem){.css-ibsd3p{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}}</style><div class="chakra-stack css-ibsd3p"><style data-emotion="css zqv6oa">.css-zqv6oa{width:100%;}@layer recipes{.css-zqv6oa{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}}@media screen and (min-width: 30rem){.css-zqv6oa{width:100%;}}@media screen and (min-width: 48rem){.css-zqv6oa{height:100vh;width:40%;}}</style><div class="css-zqv6oa"><style data-emotion="css dzqec7">.css-dzqec7{-webkit-animation-duration:var(--chakra-durations-moderate);animation-duration:var(--chakra-durations-moderate);}.css-dzqec7:is([open], [data-open], [data-state=open]){transform-origin:var(--transform-origin);-webkit-animation-name:scale-in,fade-in;animation-name:scale-in,fade-in;}.css-dzqec7:is([closed], [data-closed], [data-state=closed]){transform-origin:var(--transform-origin);-webkit-animation-name:scale-out,fade-out;animation-name:scale-out,fade-out;}</style><div class="css-dzqec7" data-state="closed" hidden="" data-scope="presence" data-part="root"><style data-emotion="css 8pcgwv">.css-8pcgwv{padding-inline:var(--chakra-spacing-12);padding-block:var(--chakra-spacing-10);}</style><div class="css-8pcgwv"><style data-emotion="css wh3fqs">.css-wh3fqs{object-fit:cover;width:130px;height:130px;border-radius:var(--chakra-radii-full);}</style><img class="chakra-image css-wh3fqs" src="/me.jpg" alt="Joe Lum"/><style data-emotion="css 174vbuo">.css-174vbuo{font-weight:var(--chakra-font-weights-bold);padding-top:var(--chakra-spacing-10);padding-bottom:var(--chakra-spacing-5);}@layer recipes{.css-174vbuo{font-family:var(--chakra-fonts-heading);font-weight:var(--chakra-font-weights-semibold);font-size:var(--chakra-font-sizes-4xl);line-height:2.75rem;letter-spacing:-0.025em;}}</style><h2 class="chakra-heading css-174vbuo">HEY WORLD, I'M <style data-emotion="css mddw1f">.css-mddw1f{padding-inline:var(--chakra-spacing-3);}@layer recipes{.css-mddw1f{background:var(--chakra-colors-color-palette-subtle);--bg-currentcolor:var(--chakra-colors-color-palette-subtle);color:inherit;white-space:nowrap;}}</style><mark class="chakra-mark css-mddw1f">JOE LUM</mark></h2><style data-emotion="css 1o0pmsz">.css-1o0pmsz{font-size:var(--chakra-font-sizes-md);line-height:1.5rem;padding-bottom:var(--chakra-spacing-10);}</style><p class="css-1o0pmsz">I’m a software developer living in Singapore who loves creating apps that make life easier by automating repetitive tasks and improving everyday experiences.</p><style data-emotion="css 1pmy2mg">.css-1pmy2mg{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;gap:0.5rem;-webkit-column-gap:20px;column-gap:20px;}</style><div class="chakra-stack css-1pmy2mg"><button class="css-0"><style data-emotion="css hrlnfo">.css-hrlnfo{width:2em;height:2em;color:var(--chakra-colors-black);}@layer recipes{.css-hrlnfo{display:inline-block;line-height:1em;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;color:currentcolor;vertical-align:middle;}}</style><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 320 512" focusable="false" aria-hidden="true" class="chakra-icon css-hrlnfo" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M80 299.3V512H196V299.3h86.5l18-97.8H196V166.9c0-51.7 20.3-71.5 72.7-71.5c16.3 0 29.4 .4 37 1.2V7.9C291.4 4 256.4 0 236.2 0C129.3 0 80 50.5 80 159.4v42.1H14v97.8H80z"></path></svg></button><button class="css-0"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 496 512" focusable="false" aria-hidden="true" class="chakra-icon css-hrlnfo" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></button><button class="css-0"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" focusable="false" aria-hidden="true" class="chakra-icon css-hrlnfo" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"></path></svg></button><button class="css-0"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" focusable="false" aria-hidden="true" class="chakra-icon css-hrlnfo" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"></path></svg></button><button class="css-0"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" focusable="false" aria-hidden="true" class="chakra-icon css-hrlnfo" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"></path></svg></button></div><style data-emotion="css 15t42vc">.css-15t42vc{--chakra-colors-color-palette-50:var(--chakra-colors-blue-50);--chakra-colors-color-palette-100:var(--chakra-colors-blue-100);--chakra-colors-color-palette-200:var(--chakra-colors-blue-200);--chakra-colors-color-palette-300:var(--chakra-colors-blue-300);--chakra-colors-color-palette-400:var(--chakra-colors-blue-400);--chakra-colors-color-palette-500:var(--chakra-colors-blue-500);--chakra-colors-color-palette-600:var(--chakra-colors-blue-600);--chakra-colors-color-palette-700:var(--chakra-colors-blue-700);--chakra-colors-color-palette-800:var(--chakra-colors-blue-800);--chakra-colors-color-palette-900:var(--chakra-colors-blue-900);--chakra-colors-color-palette-950:var(--chakra-colors-blue-950);--chakra-colors-color-palette-contrast:var(--chakra-colors-blue-contrast);--chakra-colors-color-palette-fg:var(--chakra-colors-blue-fg);--chakra-colors-color-palette-subtle:var(--chakra-colors-blue-subtle);--chakra-colors-color-palette-muted:var(--chakra-colors-blue-muted);--chakra-colors-color-palette-emphasized:var(--chakra-colors-blue-emphasized);--chakra-colors-color-palette-solid:var(--chakra-colors-blue-solid);--chakra-colors-color-palette-focus-ring:var(--chakra-colors-blue-focus-ring);margin-top:var(--chakra-spacing-10);}@layer recipes{.css-15t42vc{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;border-radius:var(--chakra-radii-l2);white-space:nowrap;vertical-align:middle;border-width:1px;border-color:var(--chakra-colors-transparent);cursor:var(--chakra-cursor-button);-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;outline:0;line-height:1.5rem;isolation:isolate;font-weight:var(--chakra-font-weights-medium);transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,translate,transform;transition-duration:var(--chakra-durations-moderate);--focus-ring-color:var(--chakra-colors-color-palette-focus-ring);height:var(--chakra-sizes-11);min-width:var(--chakra-sizes-11);font-size:var(--chakra-font-sizes-md);padding-inline:var(--chakra-spacing-5);gap:var(--chakra-spacing-3);background:var(--chakra-colors-color-palette-solid);--bg-currentcolor:var(--chakra-colors-color-palette-solid);color:var(--chakra-colors-color-palette-contrast);}.css-15t42vc:is(:focus-visible, [data-focus-visible]){outline-width:var(--focus-ring-width, 2px);outline-offset:var(--focus-ring-offset, 2px);outline-style:var(--focus-ring-style, solid);outline-color:var(--focus-ring-color);}.css-15t42vc:is(:disabled, [disabled], [data-disabled], [aria-disabled=true]){opacity:0.5;cursor:not-allowed;}.css-15t42vc :where(svg){-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:var(--chakra-sizes-5);height:var(--chakra-sizes-5);}.css-15t42vc:is([aria-expanded=true], [data-expanded], [data-state=expanded]){--mix-background:color-mix(in srgb, var(--chakra-colors-color-palette-solid) 90%, transparent);background:var(--mix-background, var(--chakra-colors-color-palette-solid));--bg-currentcolor:var(--mix-background, var(--chakra-colors-color-palette-solid));}@media (hover: hover){.css-15t42vc:is(:hover, [data-hover]):not(:disabled, [data-disabled]){--mix-background:color-mix(in srgb, var(--chakra-colors-color-palette-solid) 90%, transparent);background:var(--mix-background, var(--chakra-colors-color-palette-solid));--bg-currentcolor:var(--mix-background, var(--chakra-colors-color-palette-solid));}}}</style><button type="button" class="chakra-button css-15t42vc">Contact</button></div></div></div><style data-emotion="css ubw371">.css-ubw371{width:100%;overflow-y:auto;}@media screen and (min-width: 30rem){.css-ubw371{width:100%;}}@media screen and (min-width: 48rem){.css-ubw371{height:100vh;width:60%;}}</style><div class="css-ubw371"><div class="css-dzqec7" data-state="closed" hidden="" data-scope="presence" data-part="root"><div class="css-0"><style data-emotion="css 11cu50d">.css-11cu50d{background:var(--chakra-colors-teal-100);--bg-currentcolor:var(--chakra-colors-teal-100);padding:var(--chakra-spacing-12);}@media screen and (min-width: 30rem){.css-11cu50d{padding:15px;}}@media screen and (min-width: 48rem){.css-11cu50d{padding:var(--chakra-spacing-20);}}</style><div class="css-11cu50d"><style data-emotion="css k2did5">.css-k2did5{padding-bottom:var(--chakra-spacing-4);}@layer recipes{.css-k2did5{font-family:var(--chakra-fonts-heading);font-weight:var(--chakra-font-weights-semibold);font-size:var(--chakra-font-sizes-4xl);line-height:2.75rem;letter-spacing:-0.025em;}}</style><h2 class="chakra-heading css-k2did5">Skills</h2><div class="css-0"><style data-emotion="css 1j6wgl">.css-1j6wgl{font-weight:var(--chakra-font-weights-bold);padding-top:var(--chakra-spacing-3);padding-bottom:var(--chakra-spacing-3);}@layer recipes{.css-1j6wgl{font-family:var(--chakra-fonts-heading);font-weight:var(--chakra-font-weights-semibold);font-size:var(--chakra-font-sizes-xl);line-height:1.875rem;}}</style><h2 class="chakra-heading css-1j6wgl">Languages</h2><style data-emotion="css sosu67">.css-sosu67{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:0.5rem;}</style><div class="chakra-wrap css-sosu67"><style data-emotion="css 1yp4ln">.css-1yp4ln{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}</style><div class="chakra-wrap__listitem css-1yp4ln"><style data-emotion="css bakv9d">@layer recipes{.css-bakv9d{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;vertical-align:top;max-width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:var(--chakra-radii-l2);--focus-ring-color:var(--chakra-colors-color-palette-focus-ring);padding-inline:var(--chakra-spacing-2);min-height:var(--chakra-sizes-6);gap:var(--chakra-spacing-1\.5);--tag-avatar-size:var(--chakra-spacing-4\.5);--tag-element-size:var(--chakra-spacing-4);--tag-element-offset:-3px;background:var(--chakra-colors-color-palette-subtle);--bg-currentcolor:var(--chakra-colors-color-palette-subtle);color:var(--chakra-colors-color-palette-fg);box-shadow:inset 0 0 0px 1px var(--shadow-color);--shadow-color:var(--chakra-colors-color-palette-muted);}.css-bakv9d:is(:focus-visible, [data-focus-visible]){outline-width:var(--focus-ring-width, 2px);outline-offset:var(--focus-ring-offset, 2px);outline-style:var(--focus-ring-style, solid);outline-color:var(--focus-ring-color);}}</style><div class="chakra-tag__root css-bakv9d"><style data-emotion="css 11xj8pr">@layer recipes{.css-11xj8pr{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;text-wrap:wrap;font-size:var(--chakra-font-sizes-sm);line-height:1.25rem;}}</style><span class="chakra-tag__label css-11xj8pr">Dart</span></div></div><div class="chakra-wrap__listitem css-1yp4ln"><div class="chakra-tag__root css-bakv9d"><span class="chakra-tag__label css-11xj8pr">Go</span></div></div><div class="chakra-wrap__listitem css-1yp4ln"><div class="chakra-tag__root css-bakv9d"><span class="chakra-tag__label css-11xj8pr">Java</span></div></div><div class="chakra-wrap__listitem css-1yp4ln"><div class="chakra-tag__root css-bakv9d"><span class="chakra-tag__label css-11xj8pr">JavaScript</span></div></div><div class="chakra-wrap__listitem css-1yp4ln"><div class="chakra-tag__root css-bakv9d"><span class="chakra-tag__label css-11xj8pr">Python</span></div></div></div></div><div class="css-0"><h2 class="chakra-heading css-1j6wgl">Framework</h2><div class="chakra-wrap css-sosu67"><div class="chakra-wrap__listitem css-1yp4ln"><div class="chakra-tag__root css-bakv9d"><span class="chakra-tag__label css-11xj8pr">Django</span></div></div><div class="chakra-wrap__listitem css-1yp4ln"><div class="chakra-tag__root css-bakv9d"><span class="chakra-tag__label css-11xj8pr">Flutter</span></div></div><div class="chakra-wrap__listitem css-1yp4ln"><div class="chakra-tag__root css-bakv9d"><span class="chakra-tag__label css-11xj8pr">React</span></div></div><div class="chakra-wrap__listitem css-1yp4ln"><div class="chakra-tag__root css-bakv9d"><span class="chakra-tag__label css-11xj8pr">React Native</span></div></div><div class="chakra-wrap__listitem css-1yp4ln"><div class="chakra-tag__root css-bakv9d"><span class="chakra-tag__label css-11xj8pr">Serverless</span></div></div></div></div><div class="css-0"><h2 class="chakra-heading css-1j6wgl">Databases</h2><div class="chakra-wrap css-sosu67"><div class="chakra-wrap__listitem css-1yp4ln"><div class="chakra-tag__root css-bakv9d"><span class="chakra-tag__label css-11xj8pr">Firestore</span></div></div><div class="chakra-wrap__listitem css-1yp4ln"><div class="chakra-tag__root css-bakv9d"><span class="chakra-tag__label css-11xj8pr">MongoDB</span></div></div><div class="chakra-wrap__listitem css-1yp4ln"><div class="chakra-tag__root css-bakv9d"><span class="chakra-tag__label css-11xj8pr">MSSQL</span></div></div><div class="chakra-wrap__listitem css-1yp4ln"><div class="chakra-tag__root css-bakv9d"><span class="chakra-tag__label css-11xj8pr">MySQL</span></div></div><div class="chakra-wrap__listitem css-1yp4ln"><div class="chakra-tag__root css-bakv9d"><span class="chakra-tag__label css-11xj8pr">Neo4J</span></div></div><div class="chakra-wrap__listitem css-1yp4ln"><div class="chakra-tag__root css-bakv9d"><span class="chakra-tag__label css-11xj8pr">PostgreSQL</span></div></div></div></div><div class="css-0"><h2 class="chakra-heading css-1j6wgl">Cloud Services</h2><div class="chakra-wrap css-sosu67"><div class="chakra-wrap__listitem css-1yp4ln"><div class="chakra-tag__root css-bakv9d"><span class="chakra-tag__label css-11xj8pr">Amazon Web Service (AWS)</span></div></div><div class="chakra-wrap__listitem css-1yp4ln"><div class="chakra-tag__root css-bakv9d"><span class="chakra-tag__label css-11xj8pr">Google Cloud Platform (GCP)</span></div></div><div class="chakra-wrap__listitem css-1yp4ln"><div class="chakra-tag__root css-bakv9d"><span class="chakra-tag__label css-11xj8pr">Microsoft Azure</span></div></div></div></div></div><style data-emotion="css wkrexs">.css-wkrexs{background:var(--chakra-colors-yellow-100);--bg-currentcolor:var(--chakra-colors-yellow-100);padding:var(--chakra-spacing-12);}@media screen and (min-width: 30rem){.css-wkrexs{padding:15px;}}@media screen and (min-width: 48rem){.css-wkrexs{padding:var(--chakra-spacing-20);}}</style><div class="css-wkrexs"><style data-emotion="css hmxlb9">.css-hmxlb9{padding-bottom:var(--chakra-spacing-7);}@layer recipes{.css-hmxlb9{font-family:var(--chakra-fonts-heading);font-weight:var(--chakra-font-weights-semibold);font-size:var(--chakra-font-sizes-4xl);line-height:2.75rem;letter-spacing:-0.025em;}}</style><h2 class="chakra-heading css-hmxlb9">Projects</h2><style data-emotion="css 1lckwa8">.css-1lckwa8{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:0.5rem;row-gap:var(--chakra-spacing-10);-webkit-column-gap:var(--chakra-spacing-10);column-gap:var(--chakra-spacing-10);}</style><div class="chakra-wrap css-1lckwa8"><div class="chakra-wrap__listitem css-1yp4ln"><style data-emotion="css 17qg5z3">.css-17qg5z3{max-width:320px;border-width:1px;border-radius:var(--chakra-radii-lg);overflow:hidden;background:var(--chakra-colors-white);--bg-currentcolor:var(--chakra-colors-white);}</style><div class="css-17qg5z3"><style data-emotion="css 1buarqu">.css-1buarqu{max-width:320px;padding:var(--chakra-spacing-6);}</style><div class="css-1buarqu"><style data-emotion="css dwvv0u">.css-dwvv0u{margin-top:var(--chakra-spacing-1);font-weight:var(--chakra-font-weights-semibold);line-height:tight;}</style><h4 class="css-dwvv0u">LUMTW.COM</h4><div class="css-0">React-powered personal site crafted to share my story with the world, inspired by the sleek design of the Hugo Uilite theme I once used.</div><style data-emotion="css qoxr2e">.css-qoxr2e{padding-top:var(--chakra-spacing-5);}</style><div class="css-qoxr2e"><style data-emotion="css gcl6wj">.css-gcl6wj{--chakra-colors-color-palette-50:var(--chakra-colors-green-50);--chakra-colors-color-palette-100:var(--chakra-colors-green-100);--chakra-colors-color-palette-200:var(--chakra-colors-green-200);--chakra-colors-color-palette-300:var(--chakra-colors-green-300);--chakra-colors-color-palette-400:var(--chakra-colors-green-400);--chakra-colors-color-palette-500:var(--chakra-colors-green-500);--chakra-colors-color-palette-600:var(--chakra-colors-green-600);--chakra-colors-color-palette-700:var(--chakra-colors-green-700);--chakra-colors-color-palette-800:var(--chakra-colors-green-800);--chakra-colors-color-palette-900:var(--chakra-colors-green-900);--chakra-colors-color-palette-950:var(--chakra-colors-green-950);--chakra-colors-color-palette-contrast:var(--chakra-colors-green-contrast);--chakra-colors-color-palette-fg:var(--chakra-colors-green-fg);--chakra-colors-color-palette-subtle:var(--chakra-colors-green-subtle);--chakra-colors-color-palette-muted:var(--chakra-colors-green-muted);--chakra-colors-color-palette-emphasized:var(--chakra-colors-green-emphasized);--chakra-colors-color-palette-solid:var(--chakra-colors-green-solid);--chakra-colors-color-palette-focus-ring:var(--chakra-colors-green-focus-ring);}@layer recipes{.css-gcl6wj{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;outline:none;gap:var(--chakra-spacing-1\.5);cursor:pointer;border-radius:var(--chakra-radii-l1);--focus-ring-color:var(--chakra-colors-color-palette-focus-ring);color:var(--chakra-colors-color-palette-fg);}.css-gcl6wj:is(:focus, [data-focus]){outline-width:var(--focus-ring-width, 2px);outline-offset:var(--focus-ring-offset, 2px);outline-style:var(--focus-ring-style, solid);outline-color:var(--focus-ring-color);}@media (hover: hover){.css-gcl6wj:is(:hover, [data-hover]):not(:disabled, [data-disabled]){-webkit-text-decoration:underline;text-decoration:underline;text-underline-offset:3px;--mix-textDecorationColor:color-mix(in srgb, currentColor 20%, transparent);text-decoration-color:var(--mix-textDecorationColor, currentColor);}}}</style><a class="chakra-link css-gcl6wj" href="/projects?id=0">MORE DETAILS</a></div></div></div></div><div class="chakra-wrap__listitem css-1yp4ln"><div class="css-17qg5z3"><div class="css-1buarqu"><h4 class="css-dwvv0u">CRYPTO-PI</h4><div class="css-0">Python script designed to pull live cryptocurrency charts and showcase them on a minimalist e-ink display powered by a Raspberry Pi.</div><div class="css-qoxr2e"><a class="chakra-link css-gcl6wj" href="/projects?id=1">MORE DETAILS</a></div></div></div></div><div class="chakra-wrap__listitem css-1yp4ln"><div class="css-17qg5z3"><div class="css-1buarqu"><h4 class="css-dwvv0u">PARKAR</h4><div class="css-0">An application developed to help motorists in Singapore find the nearest electric vehicle charging stations and available parking lots.</div><div class="css-qoxr2e"><a class="chakra-link css-gcl6wj" href="/projects?id=2">MORE DETAILS</a></div></div></div></div><div class="chakra-wrap__listitem css-1yp4ln"><div class="css-17qg5z3"><div class="css-1buarqu"><h4 class="css-dwvv0u">WHERE GOT TIME?</h4><div class="css-0">A countdown app built to keep NSFs motivated, tracking their National Service progress all the way to that sweet ORD moment.</div><div class="css-qoxr2e"><a class="chakra-link css-gcl6wj" href="/projects?id=3">MORE DETAILS</a></div></div></div></div></div></div></div><!--$--><!--/$--><!--$--><!--/$--></div><div class="css-dzqec7" data-state="closed" hidden="" data-scope="presence" data-part="root"><style data-emotion="css 1yp867d">.css-1yp867d{background:var(--chakra-colors-bg-subtle);--bg-currentcolor:var(--chakra-colors-bg-subtle);padding:var(--chakra-spacing-12);}@media screen and (min-width: 30rem){.css-1yp867d{padding:15px;}}@media screen and (min-width: 48rem){.css-1yp867d{padding:var(--chakra-spacing-20);}}</style><div class="css-1yp867d"><h2 class="chakra-heading css-hmxlb9">Contact</h2><style data-emotion="css 1bxarir">.css-1bxarir{max-width:800px;}</style><div class="css-1bxarir"><style data-emotion="css oxxg2u">@layer recipes{.css-oxxg2u{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:var(--chakra-sizes-full);}.css-oxxg2u>:not(style, [hidden])~:not(style, [hidden]){--space-y-reverse:0;margin-top:calc(var(--chakra-spacing-4) * calc(1 - var(--space-y-reverse)));margin-bottom:calc(var(--chakra-spacing-4) * var(--space-y-reverse));}}</style><fieldset data-scope="fieldset" data-part="root" class="fieldset__root css-oxxg2u"><style data-emotion="css 1cyv60y">.css-1cyv60y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:0.5rem;}@media screen and (min-width: 48rem){.css-1cyv60y{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}}</style><div class="chakra-stack css-1cyv60y"><style data-emotion="css 9rk9ka">.css-9rk9ka{width:100%;}@media screen and (min-width: 48rem){.css-9rk9ka{width:50%;}}</style><div class="css-9rk9ka"><style data-emotion="css 13f87cb">@layer recipes{.css-13f87cb{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;position:relative;gap:var(--chakra-spacing-1\.5);-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}}</style><div data-scope="field" data-part="root" id="field::«Ractalanb»" role="group" class="chakra-field__root css-13f87cb"><style data-emotion="css 1c5my72">.css-1c5my72{margin-bottom:8px;}@layer recipes{.css-1c5my72{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:start;font-size:var(--chakra-font-sizes-sm);line-height:1.25rem;font-weight:var(--chakra-font-weights-medium);gap:var(--chakra-spacing-1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.css-1c5my72:is(:disabled, [disabled], [data-disabled], [aria-disabled=true]){opacity:0.5;}}</style><label data-scope="field" data-part="label" id="field::«Ractalanb»::label" for="«Ractalanb»" class="chakra-field__label css-1c5my72">Name</label><style data-emotion="css 15xrkq9">@layer recipes{.css-15xrkq9{width:100%;min-width:var(--input-height);outline:0;position:relative;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;text-align:start;border-radius:var(--chakra-radii-l2);height:var(--input-height);--focus-color:var(--chakra-colors-color-palette-focus-ring);--error-color:var(--chakra-colors-border-error);font-size:var(--chakra-font-sizes-sm);line-height:1.25rem;padding-inline:var(--chakra-spacing-2\.5);--input-height:var(--chakra-sizes-9);border-width:1px;border-color:var(--chakra-colors-transparent);background:var(--chakra-colors-bg-muted);--bg-currentcolor:var(--chakra-colors-bg-muted);--focus-ring-color:var(--focus-color);}.css-15xrkq9:is(:disabled, [disabled], [data-disabled], [aria-disabled=true]){opacity:0.5;cursor:not-allowed;}.css-15xrkq9:is([data-invalid], [aria-invalid=true], [data-state=invalid]){--focus-ring-color:var(--error-color);border-color:var(--error-color);}.css-15xrkq9:is(:focus-visible, [data-focus-visible]){outline-offset:0px;outline-width:var(--focus-ring-width, 1px);outline-color:var(--focus-ring-color);outline-style:var(--focus-ring-style, solid);border-color:var(--focus-ring-color);}}</style><input id="«Ractalanb»" data-scope="field" data-part="input" placeholder="Name" class="chakra-input css-15xrkq9" value=""/></div></div><div class="css-9rk9ka"><div data-scope="field" data-part="root" id="field::«Raktalanb»" role="group" class="chakra-field__root css-13f87cb"><label data-scope="field" data-part="label" id="field::«Raktalanb»::label" for="«Raktalanb»" class="chakra-field__label css-1c5my72">Email</label><input id="«Raktalanb»" data-scope="field" data-part="input" placeholder="Email" class="chakra-input css-15xrkq9" value=""/></div></div></div><div data-scope="field" data-part="root" id="field::«R5dalanb»" role="group" class="chakra-field__root css-13f87cb"><label data-scope="field" data-part="label" id="field::«R5dalanb»::label" for="«R5dalanb»" class="chakra-field__label css-1c5my72">Message</label><style data-emotion="css 19eyioz">.css-19eyioz{margin-bottom:var(--chakra-spacing-5);}@layer recipes{.css-19eyioz{width:100%;min-width:0;outline:0;position:relative;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;text-align:start;border-radius:var(--chakra-radii-l2);--focus-color:var(--chakra-colors-color-palette-focus-ring);--error-color:var(--chakra-colors-border-error);font-size:var(--chakra-font-sizes-sm);line-height:1.25rem;padding-inline:var(--chakra-spacing-3);padding-block:var(--chakra-spacing-2);scroll-padding-bottom:var(--chakra-spacing-2);border-width:1px;border-color:var(--chakra-colors-transparent);background:var(--chakra-colors-bg-muted);--bg-currentcolor:var(--chakra-colors-bg-muted);--focus-ring-color:var(--chakra-colors-color-palette-focus-ring);}.css-19eyioz:is(:disabled, [disabled], [data-disabled], [aria-disabled=true]){opacity:0.5;cursor:not-allowed;}.css-19eyioz:is([data-invalid], [aria-invalid=true], [data-state=invalid]){--focus-ring-color:var(--error-color);border-color:var(--error-color);}.css-19eyioz:is(:focus-visible, [data-focus-visible]){outline-offset:0px;outline-width:var(--focus-ring-width, 1px);outline-color:var(--focus-ring-color);outline-style:var(--focus-ring-style, solid);border-color:var(--focus-ring-color);}}</style><textarea id="«R5dalanb»" data-scope="field" data-part="textarea" placeholder="Message" class="chakra-textarea css-19eyioz"></textarea></div><div class="css-0"><style data-emotion="css 4hnymn">.css-4hnymn{--chakra-colors-color-palette-50:var(--chakra-colors-blue-50);--chakra-colors-color-palette-100:var(--chakra-colors-blue-100);--chakra-colors-color-palette-200:var(--chakra-colors-blue-200);--chakra-colors-color-palette-300:var(--chakra-colors-blue-300);--chakra-colors-color-palette-400:var(--chakra-colors-blue-400);--chakra-colors-color-palette-500:var(--chakra-colors-blue-500);--chakra-colors-color-palette-600:var(--chakra-colors-blue-600);--chakra-colors-color-palette-700:var(--chakra-colors-blue-700);--chakra-colors-color-palette-800:var(--chakra-colors-blue-800);--chakra-colors-color-palette-900:var(--chakra-colors-blue-900);--chakra-colors-color-palette-950:var(--chakra-colors-blue-950);--chakra-colors-color-palette-contrast:var(--chakra-colors-blue-contrast);--chakra-colors-color-palette-fg:var(--chakra-colors-blue-fg);--chakra-colors-color-palette-subtle:var(--chakra-colors-blue-subtle);--chakra-colors-color-palette-muted:var(--chakra-colors-blue-muted);--chakra-colors-color-palette-emphasized:var(--chakra-colors-blue-emphasized);--chakra-colors-color-palette-solid:var(--chakra-colors-blue-solid);--chakra-colors-color-palette-focus-ring:var(--chakra-colors-blue-focus-ring);}@layer recipes{.css-4hnymn{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;border-radius:var(--chakra-radii-l2);white-space:nowrap;vertical-align:middle;border-width:1px;border-color:var(--chakra-colors-transparent);cursor:var(--chakra-cursor-button);-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;outline:0;line-height:1.25rem;isolation:isolate;font-weight:var(--chakra-font-weights-medium);transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,translate,transform;transition-duration:var(--chakra-durations-moderate);--focus-ring-color:var(--chakra-colors-color-palette-focus-ring);height:var(--chakra-sizes-10);min-width:var(--chakra-sizes-10);font-size:var(--chakra-font-sizes-sm);padding-inline:var(--chakra-spacing-4);gap:var(--chakra-spacing-2);background:var(--chakra-colors-color-palette-solid);--bg-currentcolor:var(--chakra-colors-color-palette-solid);color:var(--chakra-colors-color-palette-contrast);}.css-4hnymn:is(:focus-visible, [data-focus-visible]){outline-width:var(--focus-ring-width, 2px);outline-offset:var(--focus-ring-offset, 2px);outline-style:var(--focus-ring-style, solid);outline-color:var(--focus-ring-color);}.css-4hnymn:is(:disabled, [disabled], [data-disabled], [aria-disabled=true]){opacity:0.5;cursor:not-allowed;}.css-4hnymn :where(svg){-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:var(--chakra-sizes-5);height:var(--chakra-sizes-5);}.css-4hnymn:is([aria-expanded=true], [data-expanded], [data-state=expanded]){--mix-background:color-mix(in srgb, var(--chakra-colors-color-palette-solid) 90%, transparent);background:var(--mix-background, var(--chakra-colors-color-palette-solid));--bg-currentcolor:var(--mix-background, var(--chakra-colors-color-palette-solid));}@media (hover: hover){.css-4hnymn:is(:hover, [data-hover]):not(:disabled, [data-disabled]){--mix-background:color-mix(in srgb, var(--chakra-colors-color-palette-solid) 90%, transparent);background:var(--mix-background, var(--chakra-colors-color-palette-solid));--bg-currentcolor:var(--mix-background, var(--chakra-colors-color-palette-solid));}}}</style><button type="button" disabled="" class="chakra-button css-4hnymn">Submit</button></div></fieldset></div></div></div></div><style data-emotion="css 1l30axn">@media screen and (max-width: 47.9975rem){.css-1l30axn{inset-inline:var(--chakra-spacing-4);}}</style><div data-scope="toast" data-part="group" dir="ltr" tabindex="-1" aria-label="bottom-end Notifications alt+T" id="toast-group:bottom-end" data-placement="bottom-end" data-side="bottom" data-align="end" aria-live="polite" role="region" style="position:fixed;pointer-events:none;display:flex;flex-direction:column;--gap:16px;--first-height:0px;z-index:2147483647;align-items:flex-end;bottom:max(env(safe-area-inset-bottom, 0px), 1rem);inset-inline-end:calc(env(safe-area-inset-right, 0px) + 1rem)" class="css-1l30axn"></div></div><!--/$--><script src="/_next/static/chunks/webpack-2f7b9ded6775055f.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[22198,[\"446\",\"static/chunks/53c13509-0adbff1cd861efc2.js\",\"735\",\"static/chunks/735-bb4ccfa723309bc3.js\",\"625\",\"static/chunks/625-b18dc6260265e84f.js\",\"27\",\"static/chunks/27-6d7df2376273f20d.js\",\"177\",\"static/chunks/app/layout-7681d62c2965a6b9.js\"],\"Provider\"]\n3:\"$Sreact.suspense\"\n4:I[95479,[\"446\",\"static/chunks/53c13509-0adbff1cd861efc2.js\",\"735\",\"static/chunks/735-bb4ccfa723309bc3.js\",\"625\",\"static/chunks/625-b18dc6260265e84f.js\",\"27\",\"static/chunks/27-6d7df2376273f20d.js\",\"177\",\"static/chunks/app/layout-7681d62c2965a6b9.js\"],\"default\"]\n5:I[87555,[],\"\"]\n6:I[31295,[],\"\"]\n7:I[81068,[\"735\",\"static/chunks/735-bb4ccfa723309bc3.js\",\"625\",\"static/chunks/625-b18dc6260265e84f.js\",\"730\",\"static/chunks/730-ccd0cbad6f45f8db.js\",\"345\",\"static/chunks/app/not-found-a6bcf7d6b6744406.js\"],\"Box\"]\n8:I[96252,[\"735\",\"static/chunks/735-bb4ccfa723309bc3.js\",\"625\",\"static/chunks/625-b18dc6260265e84f.js\",\"730\",\"static/chunks/730-ccd0cbad6f45f8db.js\",\"345\",\"static/chunks/app/not-found-a6bcf7d6b6744406.js\"],\"Center\"]\n9:I[97377,[\"735\",\"static/chunks/735-bb4ccfa723309bc3.js\",\"625\",\"static/chunks/625-b18dc6260265e84f.js\",\"730\",\"static/chunks/730-ccd0cbad6f45f8db.js\",\"345\",\"static/chunks/app/not-found-a6bcf7d6b6744406.js\"],\"HStack\"]\na:I[17921,[\"735\",\"static/chunks/735-bb4ccfa723309bc3.js\",\"625\",\"static/chunks/625-b18dc6260265e84f.js\",\"730\",\"static/chunks/730-ccd0cbad6f45f8db.js\",\"345\",\"static/chunks/app/not-found-a6bcf7d6b6744406.js\"],\"Heading\"]\nb:I[91548,[\"735\",\"static/chunks/735-bb4ccfa723309bc3.js\",\"625\",\"static/chunks/625-b18dc6260265e84f.js\",\"730\",\"static/chunks/730-ccd0cbad6f45f8db.js\",\"345\",\"static/chunks/app/not-found-a6bcf7d6b6744406.js\"],\"Separator\"]\nc:I[90310,[\"735\",\"static/chunks/735-bb4ccfa723309bc3.js\",\"625\",\"static/chunks/625-b18dc6260265e84f.js\",\"730\",\"static/chunks/730-ccd0cbad6f45f8db.js\",\"345\",\"static/chunks/app/not-found-a6bcf7d6b6744406.js\"],\"Text\"]\nd:I[90894,[],\"ClientPageRoot\"]\ne:I[4112,[\"735\",\"static/chunks/735-bb4ccfa723309bc3.js\",\"874\",\"static/chunks/874-f4087fbafda4d63b.js\",\"974\",\"static/chu"])</script><script>self.__next_f.push([1,"nks/app/page-b9d0691f78724103.js\"],\"default\"]\n11:I[59665,[],\"MetadataBoundary\"]\n13:I[59665,[],\"OutletBoundary\"]\n16:I[74911,[],\"AsyncMetadataOutlet\"]\n18:I[59665,[],\"ViewportBoundary\"]\n1a:I[26614,[],\"\"]\n0:{\"P\":null,\"b\":\"7km4pdrwPmNSpA8vGmwxy\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"light\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"enableSystem\":false,\"children\":[\"$\",\"$3\",null,{\"children\":[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L7\",null,{\"bg\":\"red.50\",\"p\":[12,15,20],\"children\":[\"$\",\"$L8\",null,{\"h\":\"4xl\",\"children\":[\"$\",\"$L9\",null,{\"children\":[[\"$\",\"$La\",null,{\"size\":\"4xl\",\"pr\":5,\"children\":\"404\"}],[\"$\",\"$Lb\",null,{\"orientation\":\"vertical\",\"height\":\"50px\",\"size\":\"md\",\"colorPalette\":\"gray\"}],[\"$\",\"$Lc\",null,{\"pl\":5,\"children\":\"This page could not be found.\"}]]}]}]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]}]}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$Ld\",null,{\"Component\":\"$e\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@f\",\"$@10\"]}],[\"$\",\"$L11\",null,{\"children\":\"$L12\"}],null,[\"$\",\"$L13\",null,{\"children\":[\"$L14\",\"$L15\",[\"$\",\"$L16\",null,{\"promise\":\"$@17\"}]]}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$1\",\"wC8dDTEuBt4WTNAwAAokq\",{\"children\":[[\"$\",\"$L18\",null,{\"children\":\"$L19\"}],null]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$1a\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"1b:I[74911,[],\"AsyncMetadata\"]\nf:{}\n10:{}\n12:[\"$\",\"$3\",null,{\"fallback\":null,\"children\":[\"$\",\"$L1b\",null,{\"promise\":\"$@1c\"}]}]\n"])</script><script>self.__next_f.push([1,"15:null\n"])</script><script>self.__next_f.push([1,"19:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n14:null\n"])</script><script>self.__next_f.push([1,"1c:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Joe Lum\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"A website written in React to introduce myself to the world.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}]],\"error\":null,\"digest\":\"$undefined\"}\n17:{\"metadata\":\"$1c:metadata\",\"error\":null,\"digest\":\"$undefined\"}\n"])</script></body></html>