cloudflare
tcp/443 tcp/80
Open service 2606:4700:3036::6815:30f9:8443 · tuandang.dev
2026-01-04 07:43
Open service 172.67.138.249:8443 · tuandang.dev
2026-01-04 07:43
Open service 2606:4700:3036::6815:30f9:80 · tuandang.dev
2026-01-04 07:43
HTTP/1.1 301 Moved Permanently
Date: Sun, 04 Jan 2026 07:43:03 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 36
Connection: close
Location: https://tuandang.dev/
Server: cloudflare
X-Nf-Request-Id: 01KE3ZBBEGFXFF5BWE3BCJ2BZS
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=IbqOInVtry6KW2h01roJaztgJ3igx%2BVBZVis6p7Dvkk19vgr4j3QnhZE3J910kvJk%2BrwKVLkalse2kJoOskh7Vn3%2Blk97tjyMf%2FVogMXsBk0ZEqjPSc8sg%3D%3D"}]}
CF-RAY: 9b891a4ecd774436-BOM
alt-svc: h3=":443"; ma=86400
Redirecting to https://tuandang.dev/
Open service 2606:4700:3036::6815:30f9:443 · tuandang.dev
2026-01-04 07:43
HTTP/1.1 200 OK
Date: Sun, 04 Jan 2026 07:43:03 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Age: 0
Cache-Control: public,max-age=0,must-revalidate
cache-status: "Netlify Edge"; hit
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Bd6uQDUcN7D6XmVF2E6yH%2FAj2pnIX58sd5%2BXRRrd%2BXhah933m7RpSe7%2F9I5ibl2oxC%2FjNhkv5BQOwpGlYO5xkRgxYt%2BZGSUTNq0Kra%2B9HCibIsjFxu0NUQ%3D%3D"}]}
Server: cloudflare
strict-transport-security: max-age=31536000
vary: Accept-Encoding
x-nf-request-id: 01KE3ZBB3AR0KMMM5DR5QF01DJ
cf-cache-status: DYNAMIC
CF-RAY: 9b891a4d6ac0c52b-EWR
alt-svc: h3=":443"; ma=86400
Page title: Tuan's Portfolio
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Tuan's Portfolio</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@200;300;400;500;600;700&display=swap"
rel="stylesheet"
/>
<style>
:root {
font-family: 'Roboto Slab', 'serif';
font-synthesis: none;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
--primary: #18294c;
--bg: #e3e4e8;
--fg: #17181c;
--dur: 8s;
overflow-x: hidden;
}
html,
body {
margin: 0;
}
.hexagon {
margin-bottom: 1.5em;
overflow: hidden;
position: relative;
width: 15em;
height: 15em;
}
.hexagon__group,
.hexagon__sector,
.hexagon__sector:before,
.hexagon__sector:after {
position: absolute;
}
.hexagon__group {
width: 100%;
height: 100%;
}
.hexagon__group:nth-child(2) .hexagon__sector,
.hexagon__group:nth-child(2) .hexagon__sector:before,
.hexagon__group:nth-child(2) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -1 / 6);
}
.hexagon__group:nth-child(3) .hexagon__sector,
.hexagon__group:nth-child(3) .hexagon__sector:before,
.hexagon__group:nth-child(3) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -2 / 6);
}
.hexagon__group:nth-child(4) .hexagon__sector,
.hexagon__group:nth-child(4) .hexagon__sector:before,
.hexagon__group:nth-child(4) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -3 / 6);
}
.hexagon__group:nth-child(5) .hexagon__sector,
.hexagon__group:nth-child(5) .hexagon__sector:before,
.hexagon__group:nth-child(5) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -4 / 6);
}
.hexagon__group:nth-child(6) .hexagon__sector,
.hexagon__group:nth-child(6) .hexagon__sector:before,
.hexagon__group:nth-child(6) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -5 / 6);
}
.hexagon__group:nth-child(odd) {
transform: rotate(30deg);
}
.hexagon__sector,
.hexagon__sector:before,
.hexagon__sector:after {
animation-duration: var(--dur);
animation-iteration-count: infinite;
animation-timing-function: linear;
/*animation-play-state: paused;*/
width: 0.2em;
height: 0.2em;
}
.hexagon__sector {
animation-name: moveOut1;
top: calc(50% - 0.1em);
left: calc(50% - 0.1em);
}
.hexagon__sector:nth-child(2) {
animation-name: moveOut2;
}
.hexagon__sector:nth-child(3) {
animation-name: moveOut3;
}
.hexagon__sector:nth-child(4) {
animation-name: moveOut4;
}
.hexagon__sector:nth-child(5) {
animation-name: moveOut5;
}
.hexagon__sector:nth-child(6) {
animation-name: moveOut6;
}
.hexagon__sector:before,
.hexagon__sector:after {
animation-name: ripple;
background-color: currentColor;
border-radius: 0.1em;
content: '';
display: block;
top: 0;
left: 0;
transform-origin: 0.1em 0.1em;
}
.hexagon__sector:before {
transform: rotate(-30deg);
}
.hexagon__sector:after {
transform: rotate(-150deg);
}
/* Dark theme */
@media (prefers-color-scheme: dark) {
:root {
--bg: #17181c;
--fg: #e3e4e8;
}
}
/* Animations */
@keyframes moveOut1 {
from {
transform: translateY(0) scale(0);
}
3% {
transform: tr
Open service 2606:4700:3037::ac43:8af9:80 · tuandang.dev
2026-01-04 07:43
HTTP/1.1 301 Moved Permanently
Date: Sun, 04 Jan 2026 07:43:03 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 36
Connection: close
Location: https://tuandang.dev/
Server: cloudflare
X-Nf-Request-Id: 01KE3ZBAYZSS1M2HFAMT5PF44G
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=8wWlU4I%2BMhZhO2sT3ZK1I5E2ZqU7ZZqr3lneqcvvLEp8%2BP0cmF36kH55YYY89Im4nCwXEe7UJ3D94UiKVnqFLRDh%2FtqZAhHD%2Bi1fxzslA91M5WEDR8rnXA%3D%3D"}]}
CF-RAY: 9b891a4c7dc45e4b-EWR
alt-svc: h3=":443"; ma=86400
Redirecting to https://tuandang.dev/
Open service 172.67.138.249:80 · tuandang.dev
2026-01-04 07:43
HTTP/1.1 301 Moved Permanently
Date: Sun, 04 Jan 2026 07:43:03 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 36
Connection: close
Location: https://tuandang.dev/
Server: cloudflare
X-Nf-Request-Id: 01KE3ZBAYWHRNRS14XKHKD6HHH
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=q1rIqHFtJB0IBlvvdqPNTMiiuXd3WAd3IAECRIsNy3ZgHhm%2BJQNhjXfKxyiZddCQF51OkkW18JlE2LgiLEaLnb0NkE6GNPlUzB0%3D"}]}
CF-RAY: 9b891a4c6cd2ff90-EWR
alt-svc: h3=":443"; ma=86400
Redirecting to https://tuandang.dev/
Open service 104.21.48.249:80 · tuandang.dev
2026-01-04 07:43
HTTP/1.1 301 Moved Permanently
Date: Sun, 04 Jan 2026 07:43:03 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 36
Connection: close
Location: https://tuandang.dev/
Server: cloudflare
X-Nf-Request-Id: 01KE3ZBB0MFRM8MQ200090ADBH
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=nIRwKifrQaI7xkglIpVeFO7N61OnX7X52DmxgemrCQDRvyd8a2JeycdZy4Y8hTzoUtkA2lmc3Hdw%2B6P%2F%2BrA7E3wWKYA4Q6IHqgIocQ%3D%3D"}]}
CF-RAY: 9b891a4ccafe5d44-FRA
alt-svc: h3=":443"; ma=86400
Redirecting to https://tuandang.dev/
Open service 2606:4700:3037::ac43:8af9:443 · tuandang.dev
2026-01-04 07:43
HTTP/1.1 200 OK
Date: Sun, 04 Jan 2026 07:43:03 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Age: 0
Cache-Control: public,max-age=0,must-revalidate
cache-status: "Netlify Edge"; fwd=stale
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=%2BeKAaKAF1FXAZNRyzXfJLzf2dp3hLG4a9Xwa6Z4Fkxv0geYrtk%2BcwYxhhGdOCcrG1g90uRlsjrrsz6KB372jBMQCelw0Q3Dks%2BHfbvJLYsb3LEaYGIdDeA%3D%3D"}]}
Server: cloudflare
strict-transport-security: max-age=31536000
vary: Accept-Encoding
x-nf-request-id: 01KE3ZBB9TE0PRQNTE7GY680YJ
cf-cache-status: DYNAMIC
CF-RAY: 9b891a4dbe1e940b-LHR
alt-svc: h3=":443"; ma=86400
Page title: Tuan's Portfolio
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Tuan's Portfolio</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@200;300;400;500;600;700&display=swap"
rel="stylesheet"
/>
<style>
:root {
font-family: 'Roboto Slab', 'serif';
font-synthesis: none;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
--primary: #18294c;
--bg: #e3e4e8;
--fg: #17181c;
--dur: 8s;
overflow-x: hidden;
}
html,
body {
margin: 0;
}
.hexagon {
margin-bottom: 1.5em;
overflow: hidden;
position: relative;
width: 15em;
height: 15em;
}
.hexagon__group,
.hexagon__sector,
.hexagon__sector:before,
.hexagon__sector:after {
position: absolute;
}
.hexagon__group {
width: 100%;
height: 100%;
}
.hexagon__group:nth-child(2) .hexagon__sector,
.hexagon__group:nth-child(2) .hexagon__sector:before,
.hexagon__group:nth-child(2) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -1 / 6);
}
.hexagon__group:nth-child(3) .hexagon__sector,
.hexagon__group:nth-child(3) .hexagon__sector:before,
.hexagon__group:nth-child(3) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -2 / 6);
}
.hexagon__group:nth-child(4) .hexagon__sector,
.hexagon__group:nth-child(4) .hexagon__sector:before,
.hexagon__group:nth-child(4) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -3 / 6);
}
.hexagon__group:nth-child(5) .hexagon__sector,
.hexagon__group:nth-child(5) .hexagon__sector:before,
.hexagon__group:nth-child(5) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -4 / 6);
}
.hexagon__group:nth-child(6) .hexagon__sector,
.hexagon__group:nth-child(6) .hexagon__sector:before,
.hexagon__group:nth-child(6) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -5 / 6);
}
.hexagon__group:nth-child(odd) {
transform: rotate(30deg);
}
.hexagon__sector,
.hexagon__sector:before,
.hexagon__sector:after {
animation-duration: var(--dur);
animation-iteration-count: infinite;
animation-timing-function: linear;
/*animation-play-state: paused;*/
width: 0.2em;
height: 0.2em;
}
.hexagon__sector {
animation-name: moveOut1;
top: calc(50% - 0.1em);
left: calc(50% - 0.1em);
}
.hexagon__sector:nth-child(2) {
animation-name: moveOut2;
}
.hexagon__sector:nth-child(3) {
animation-name: moveOut3;
}
.hexagon__sector:nth-child(4) {
animation-name: moveOut4;
}
.hexagon__sector:nth-child(5) {
animation-name: moveOut5;
}
.hexagon__sector:nth-child(6) {
animation-name: moveOut6;
}
.hexagon__sector:before,
.hexagon__sector:after {
animation-name: ripple;
background-color: currentColor;
border-radius: 0.1em;
content: '';
display: block;
top: 0;
left: 0;
transform-origin: 0.1em 0.1em;
}
.hexagon__sector:before {
transform: rotate(-30deg);
}
.hexagon__sector:after {
transform: rotate(-150deg);
}
/* Dark theme */
@media (prefers-color-scheme: dark) {
:root {
--bg: #17181c;
--fg: #e3e4e8;
}
}
/* Animations */
@keyframes moveOut1 {
from {
transform: translateY(0) scale(0);
}
3% {
transform: tr
Open service 104.21.48.249:8443 · tuandang.dev
2026-01-04 07:43
Open service 104.21.48.249:443 · tuandang.dev
2026-01-04 07:43
HTTP/1.1 200 OK
Date: Sun, 04 Jan 2026 07:43:03 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Age: 0
Cache-Control: public,max-age=0,must-revalidate
cache-status: "Netlify Edge"; fwd=miss
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=ov%2FVx%2BoR3kV%2FnzzpQlKpAeHNxrOrdWpEO2UxucAgZJn%2BfODYqxwW7UqS0tdhfM0Pn5D8eXEVJEzHQPcOmDqqlsXK8CTRUMVnxnddRw%3D%3D"}]}
Server: cloudflare
strict-transport-security: max-age=31536000
vary: Accept-Encoding
x-nf-request-id: 01KE3ZBB4WP1T7AGYHNGCE65QK
cf-cache-status: DYNAMIC
CF-RAY: 9b891a4d7e7746dc-EWR
alt-svc: h3=":443"; ma=86400
Page title: Tuan's Portfolio
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Tuan's Portfolio</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@200;300;400;500;600;700&display=swap"
rel="stylesheet"
/>
<style>
:root {
font-family: 'Roboto Slab', 'serif';
font-synthesis: none;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
--primary: #18294c;
--bg: #e3e4e8;
--fg: #17181c;
--dur: 8s;
overflow-x: hidden;
}
html,
body {
margin: 0;
}
.hexagon {
margin-bottom: 1.5em;
overflow: hidden;
position: relative;
width: 15em;
height: 15em;
}
.hexagon__group,
.hexagon__sector,
.hexagon__sector:before,
.hexagon__sector:after {
position: absolute;
}
.hexagon__group {
width: 100%;
height: 100%;
}
.hexagon__group:nth-child(2) .hexagon__sector,
.hexagon__group:nth-child(2) .hexagon__sector:before,
.hexagon__group:nth-child(2) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -1 / 6);
}
.hexagon__group:nth-child(3) .hexagon__sector,
.hexagon__group:nth-child(3) .hexagon__sector:before,
.hexagon__group:nth-child(3) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -2 / 6);
}
.hexagon__group:nth-child(4) .hexagon__sector,
.hexagon__group:nth-child(4) .hexagon__sector:before,
.hexagon__group:nth-child(4) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -3 / 6);
}
.hexagon__group:nth-child(5) .hexagon__sector,
.hexagon__group:nth-child(5) .hexagon__sector:before,
.hexagon__group:nth-child(5) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -4 / 6);
}
.hexagon__group:nth-child(6) .hexagon__sector,
.hexagon__group:nth-child(6) .hexagon__sector:before,
.hexagon__group:nth-child(6) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -5 / 6);
}
.hexagon__group:nth-child(odd) {
transform: rotate(30deg);
}
.hexagon__sector,
.hexagon__sector:before,
.hexagon__sector:after {
animation-duration: var(--dur);
animation-iteration-count: infinite;
animation-timing-function: linear;
/*animation-play-state: paused;*/
width: 0.2em;
height: 0.2em;
}
.hexagon__sector {
animation-name: moveOut1;
top: calc(50% - 0.1em);
left: calc(50% - 0.1em);
}
.hexagon__sector:nth-child(2) {
animation-name: moveOut2;
}
.hexagon__sector:nth-child(3) {
animation-name: moveOut3;
}
.hexagon__sector:nth-child(4) {
animation-name: moveOut4;
}
.hexagon__sector:nth-child(5) {
animation-name: moveOut5;
}
.hexagon__sector:nth-child(6) {
animation-name: moveOut6;
}
.hexagon__sector:before,
.hexagon__sector:after {
animation-name: ripple;
background-color: currentColor;
border-radius: 0.1em;
content: '';
display: block;
top: 0;
left: 0;
transform-origin: 0.1em 0.1em;
}
.hexagon__sector:before {
transform: rotate(-30deg);
}
.hexagon__sector:after {
transform: rotate(-150deg);
}
/* Dark theme */
@media (prefers-color-scheme: dark) {
:root {
--bg: #17181c;
--fg: #e3e4e8;
}
}
/* Animations */
@keyframes moveOut1 {
from {
transform: translateY(0) scale(0);
}
3% {
transform: tr
Open service 2606:4700:3037::ac43:8af9:8443 · tuandang.dev
2026-01-04 07:43
Open service 172.67.138.249:443 · tuandang.dev
2026-01-04 07:43
HTTP/1.1 200 OK
Date: Sun, 04 Jan 2026 07:43:03 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Age: 0
Cache-Control: public,max-age=0,must-revalidate
cache-status: "Netlify Edge"; fwd=miss
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=iw4ybpQYeVgP4XP0qpaz8lSEKl6LMXzund0bYNolqnIAwf0Zmg%2FmrApkDfK5rWdUJFrxKSxaaBG2HtRd4jItkdF378uvUrFljFDQjQ%3D%3D"}]}
Server: cloudflare
strict-transport-security: max-age=31536000
vary: Accept-Encoding
x-nf-request-id: 01KE3ZBB6SQFAYHMQTVN4YSX3W
cf-cache-status: DYNAMIC
CF-RAY: 9b891a4d8d5adda9-YYZ
alt-svc: h3=":443"; ma=86400
Page title: Tuan's Portfolio
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Tuan's Portfolio</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@200;300;400;500;600;700&display=swap"
rel="stylesheet"
/>
<style>
:root {
font-family: 'Roboto Slab', 'serif';
font-synthesis: none;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
--primary: #18294c;
--bg: #e3e4e8;
--fg: #17181c;
--dur: 8s;
overflow-x: hidden;
}
html,
body {
margin: 0;
}
.hexagon {
margin-bottom: 1.5em;
overflow: hidden;
position: relative;
width: 15em;
height: 15em;
}
.hexagon__group,
.hexagon__sector,
.hexagon__sector:before,
.hexagon__sector:after {
position: absolute;
}
.hexagon__group {
width: 100%;
height: 100%;
}
.hexagon__group:nth-child(2) .hexagon__sector,
.hexagon__group:nth-child(2) .hexagon__sector:before,
.hexagon__group:nth-child(2) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -1 / 6);
}
.hexagon__group:nth-child(3) .hexagon__sector,
.hexagon__group:nth-child(3) .hexagon__sector:before,
.hexagon__group:nth-child(3) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -2 / 6);
}
.hexagon__group:nth-child(4) .hexagon__sector,
.hexagon__group:nth-child(4) .hexagon__sector:before,
.hexagon__group:nth-child(4) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -3 / 6);
}
.hexagon__group:nth-child(5) .hexagon__sector,
.hexagon__group:nth-child(5) .hexagon__sector:before,
.hexagon__group:nth-child(5) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -4 / 6);
}
.hexagon__group:nth-child(6) .hexagon__sector,
.hexagon__group:nth-child(6) .hexagon__sector:before,
.hexagon__group:nth-child(6) .hexagon__sector:after {
animation-delay: calc(var(--dur) * -5 / 6);
}
.hexagon__group:nth-child(odd) {
transform: rotate(30deg);
}
.hexagon__sector,
.hexagon__sector:before,
.hexagon__sector:after {
animation-duration: var(--dur);
animation-iteration-count: infinite;
animation-timing-function: linear;
/*animation-play-state: paused;*/
width: 0.2em;
height: 0.2em;
}
.hexagon__sector {
animation-name: moveOut1;
top: calc(50% - 0.1em);
left: calc(50% - 0.1em);
}
.hexagon__sector:nth-child(2) {
animation-name: moveOut2;
}
.hexagon__sector:nth-child(3) {
animation-name: moveOut3;
}
.hexagon__sector:nth-child(4) {
animation-name: moveOut4;
}
.hexagon__sector:nth-child(5) {
animation-name: moveOut5;
}
.hexagon__sector:nth-child(6) {
animation-name: moveOut6;
}
.hexagon__sector:before,
.hexagon__sector:after {
animation-name: ripple;
background-color: currentColor;
border-radius: 0.1em;
content: '';
display: block;
top: 0;
left: 0;
transform-origin: 0.1em 0.1em;
}
.hexagon__sector:before {
transform: rotate(-30deg);
}
.hexagon__sector:after {
transform: rotate(-150deg);
}
/* Dark theme */
@media (prefers-color-scheme: dark) {
:root {
--bg: #17181c;
--fg: #e3e4e8;
}
}
/* Animations */
@keyframes moveOut1 {
from {
transform: translateY(0) scale(0);
}
3% {
transform: tr