Check server response of

Server response
NS records
Whois domain
Response headers
Request headers
Raw HTML code
301 Moved Permanently - lumtw.com
HTTP Status: 301
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
Connection: keep-alive
Content-Length: 162
Server: GitHub.com
Content-Type: text/html
Location: https://lumtw.com/
X-GitHub-Request-Id: 5EC7:10B9C9:33BF74E:345C783:68138291
Accept-Ranges: bytes
Age: 0
Date: Thu, 01 May 2025 14:17:53 GMT
Via: 1.1 varnish
X-Served-By: cache-hel1410021-HEL
X-Cache: MISS
X-Cache-Hits: 0
X-Timer: S1746109074.500527,VS0,VE135
Vary: Accept-Encoding
X-Fastly-Request-ID: eec7814674755c54f04091c8abe14d333f1fc8d2

HTTP Code 301 Moved Permanently

301 response code means that the requested resource has been permanently moved to a new URL. All future requests should use the new address.

When is Code 301 used?

  • When changing a website domain
  • When modifying URL structures
  • When setting up redirects for SEO

What does Code 301 mean for the user?

The browser will automatically redirect the user to the new address, and search engines will update their indexes.

200 OK - https://lumtw.com/
HTTP Status: 200
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
Connection: keep-alive
Content-Length: 86161
Server: GitHub.com
Content-Type: text/html; charset=utf-8
Last-Modified: Sun, 20 Apr 2025 15:04:23 GMT
Access-Control-Allow-Origin: *
ETag: "68050cf7-15091"
expires: Thu, 01 May 2025 14:27:53 GMT
Cache-Control: max-age=600
x-proxy-cache: MISS
X-GitHub-Request-Id: 778E:359F70:223A924:2283704:68138291
Accept-Ranges: bytes
Age: 0
Date: Thu, 01 May 2025 14:17:53 GMT
Via: 1.1 varnish
X-Served-By: cache-hel1410020-HEL
X-Cache: MISS
X-Cache-Hits: 0
X-Timer: S1746109074.653925,VS0,VE171
Vary: Accept-Encoding
X-Fastly-Request-ID: 832590c5650f0a60d5881381c1e1c5b749d03cbe

HTTP Code 200 OK

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.

When is Code 200 used?

  • When loading a web page
  • When successfully receiving an API response
  • When processing a form or another HTTP request

What does Code 200 mean for the user?

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&#x27;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>                               

Whois info of domain

Domain Name: LUMTW.COM
Registry Domain ID: 1774636417_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.namecheap.com
Registrar URL: http://www.namecheap.com
Updated Date: 2025-01-04T15:27:51Z
Creation Date: 2013-01-19T15:46:41Z
Registry Expiry Date: 2026-01-19T15:46:41Z
Registrar: NameCheap, Inc.
Registrar IANA ID: 1068
Registrar Abuse Contact Email: [email protected]
Registrar Abuse Contact Phone: +1.6613102107
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Name Server: DNS1.REGISTRAR-SERVERS.COM
Name Server: DNS2.REGISTRAR-SERVERS.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2025-05-01T14:17:37Z <<<
For more information on Whois status codes, please visit https://icann.org/epp
NOTICE: The expiration date displayed in this record is the date the
TERMS OF USE: You are not authorized to access or query our Whois
by the following terms of use: You agree that you may use this Data only
to: (1) allow, enable, or otherwise support the transmission of mass