:root {
    letter-spacing: 0.18px;
    color-scheme: light dark;
    color: #fff;
    font-synthesis: none;
    text-rendering: optimizelegibility;
    background: linear-gradient(#009fff 0, #ff6975);
    font:
        18px system-ui,
        Segoe UI,
        Roboto,
        sans-serif;
    --link-chain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'%3E%3C!--!Font Awesome Free v7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--%3E%3Cpath d='M451.5 160c-16.6 0-32.7 4.5-46.8 12.7-15.8-16-34.2-29.4-54.5-39.5 28.2-24 64.1-37.2 101.3-37.2C537.9 96 608 166 608 252.5c0 41.5-16.5 81.3-45.8 110.6l-71.1 71.1C461.8 463.5 422 480 380.5 480 294.1 480 224 410 224 323.5c0-1.5 0-3 .1-4.5.5-17.7 15.2-31.6 32.9-31.1s31.6 15.2 31.1 32.9v2.6c0 51.1 41.4 92.5 92.5 92.5 24.5 0 48-9.7 65.4-27.1l71.1-71.1c17.3-17.3 27.1-40.9 27.1-65.4 0-51.1-41.4-92.5-92.5-92.5zm-144.3 77.3c-1.9-.8-3.8-1.9-5.5-3.1-12.6-6.5-27-10.2-42.1-10.2-24.5 0-48 9.7-65.4 27.1l-71.1 71.1C105.8 339.5 96 363.1 96 387.6c0 51.1 41.4 92.5 92.5 92.5 16.5 0 32.6-4.4 46.7-12.6 15.8 16 34.2 29.4 54.6 39.5-28.2 23.9-64 37.2-101.3 37.2-86.4 0-156.5-70-156.5-156.5 0-41.5 16.5-81.3 45.8-110.6l71.1-71.1c29.3-29.3 69.1-45.8 110.6-45.8 86.6 0 156.5 70.6 156.5 156.9v3.9c-.4 17.7-15.1 31.6-32.8 31.2s-31.6-15.1-31.2-32.8v-2.3c0-33.7-18-63.3-44.8-79.6z'/%3E%3C/svg%3E");
    --link: var(--link-chain);
    --link-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'%3E%3C!--!Font Awesome Free v7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--%3E%3Cpath d='M384 64c-17.7 0-32 14.3-32 32s14.3 32 32 32h82.7L265.3 329.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L512 173.3V256c0 17.7 14.3 32 32 32s32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-240 96c-44.2 0-80 35.8-80 80v256c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80v-80c0-17.7-14.3-32-32-32s-32 14.3-32 32v80c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16h80c17.7 0 32-14.3 32-32s-14.3-32-32-32z'/%3E%3C/svg%3E");
    --external-link: var(--link-arrow);
}
@media (width<=1024px) {
    :root {
        font-size: 16px;
    }
}
@media (prefers-color-scheme: dark) {
    #social .button-icon {
        filter: invert() brightness(2);
    }
}
body {
    margin: 0;
}
#root {
    text-align: center;
    box-sizing: border-box;
    border-inline: 1px solid #e5e4e7;
    width: 100%;
    min-height: 100svh;
    margin: 0 auto;
}
h1,
h2 {
    color: #f3f4f6;
    font-family:
        system-ui,
        Segoe UI,
        Roboto,
        sans-serif;
    font-weight: 500;
}
h1 {
    letter-spacing: -1.68px;
    margin: 32px 0;
    font-size: 56px;
}
@media (width<=1024px) {
    h1 {
        margin: 20px 0;
        font-size: 36px;
    }
}
h2 {
    letter-spacing: -0.24px;
    margin: 0 0 8px;
    font-size: 24px;
    line-height: 118%;
}
@media (width<=1024px) {
    h2 {
        font-size: 20px;
    }
}
._header_16onm_1 {
    height: fit-content;
    margin: 60px 15px 15px;
}
._socialRow_16onm_13 ._faIconLink_16onm_13:hover {
    filter: invert();
}
._faIconLink_16onm_13 {
    margin-left: 1rem;
    margin-right: 1rem;
}
._headerFaIcon_16onm_33 {
    text-rendering: auto;
    text-align: center;
    color: #fff;
    margin: auto;
    font-size: 28px;
    line-height: 50px;
    display: inline-block;
}
._projectsHeader_xenwh_1 {
    color: #000;
    background-color: #fff;
    border: 1px solid #00000020;
    border-radius: 0.25rem;
    margin-bottom: 2rem;
    margin-left: 7vw;
    margin-right: 7vw;
    padding: 15px;
}
._header_xenwh_41 {
    justify-content: space-between;
    align-items: baseline;
    gap: 20px 30px;
    margin-block: 15px;
    padding-block: 15px;
    padding-inline: 30px;
    display: flex;
}
._header_xenwh_41 h2 {
    color: #000;
    font-size: 27px;
}
._checkboxList_xenwh_71 {
    margin: 0;
    padding: 0;
    list-style-type: none;
}
._checkboxList_xenwh_71 li {
    text-align: left;
}
._checkboxList_xenwh_71 li label:hover,
._checkboxList_xenwh_71 li label input:hover {
    cursor: pointer;
}
input[type="checkbox" i] {
    margin-right: 15px;
    transform: scale(1.2);
}
._loadingCard_xenwh_107 {
    text-align: center;
    background: #fff;
    border: 1px solid #00000020;
    border-radius: 10px;
    max-width: 280px;
    margin: 50px auto 0;
    padding: 32px 24px;
    box-shadow: 0 8px 24px #00000059;
}
._spinner_xenwh_129 {
    border: 3px solid #0006;
    border-top-color: #009fff;
    border-radius: 50%;
    width: 26px;
    height: 26px;
    margin: 0 auto 16px;
    animation: 0.8s linear infinite _spin_xenwh_129;
}
@keyframes _spin_xenwh_129 {
    to {
        transform: rotate(360deg);
    }
}
._loadingCard_xenwh_107 p {
    color: #000;
    margin: 0;
    font-size: 16px;
}
._projectTocList_plkbl_1 {
    margin: unset;
    padding-inline-start: 20px;
    list-style-type: none;
}
._projectTocList_plkbl_1 li {
    text-align: justify;
    margin-block: 7px;
}
._projectTocList_plkbl_1 a {
    color: #000;
    -webkit-text-decoration: unset;
    text-decoration: unset;
}
._projectTocList_plkbl_1 a:hover {
    color: indigo;
    text-decoration: underline;
}
._projectTocList_plkbl_1 a:hover:after {
    content: "";
    -webkit-mask-image: var(--link);
    mask-image: var(--link);
    background-color: currentColor;
    width: 16px;
    height: 16px;
    margin-left: 5px;
    display: inline-block;
    -webkit-mask-position: 50%;
    mask-position: 50%;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}
._projectCard_qy9sm_3 {
    color: #000;
    background-color: #fff;
    border: 1px solid #00000020;
    border-radius: 0.25rem;
    grid-template-rows: auto auto 1fr;
    grid-template-columns: auto 1fr;
    gap: 30px 45px;
    margin-bottom: 2rem;
    margin-left: 7vw;
    margin-right: 7vw;
    padding: 30px;
    display: grid;
}
._projectName_qy9sm_33 {
    text-align: left;
    grid-column: span 2 / span 2;
    margin-block-end: 0.5rem;
    padding-left: 25px;
    font-size: 24px;
    font-weight: 500;
}
._projectImage_qy9sm_51 {
    grid-row: 2 / span 2;
    justify-self: self-start;
}
@media (width<=768px) {
    ._projectImage_qy9sm_51 {
        display: none;
    }
}
._projectDate_qy9sm_69 {
    text-align: left;
    grid-row-start: 2;
    font-size: 15px;
}
@media (width<=768px) {
    ._projectDate_qy9sm_69 {
        grid-column: span 2 / span 2;
    }
}
._projectDesc_qy9sm_89 {
    text-align: justify;
    grid-row-start: 3;
    grid-column-start: 2;
}
@media (width<=768px) {
    ._projectDesc_qy9sm_89 {
        grid-column: span 2 / span 2;
    }
}
._projectImage_qy9sm_51 img {
    border: 2px solid gray;
    border-radius: 8px;
    max-width: 300px;
    max-height: 300px;
}
._projectCard_qy9sm_3 ._projectDesc_qy9sm_89 li a,
._projectCard_qy9sm_3 ._projectName_qy9sm_33 a {
    color: #000;
    -webkit-text-decoration: unset;
    text-decoration: unset;
}
._projectCard_qy9sm_3 ._projectDesc_qy9sm_89 li a:hover,
._projectCard_qy9sm_3 ._projectName_qy9sm_33 a:hover {
    color: indigo;
    text-decoration: underline;
}
._projectCard_qy9sm_3 ._projectDesc_qy9sm_89:hover li a:after,
._projectCard_qy9sm_3:hover ._projectName_qy9sm_33 a:after {
    content: "";
    -webkit-mask-image: var(--external-link);
    mask-image: var(--external-link);
    background-color: currentColor;
    width: 16px;
    height: 16px;
    margin-left: 5px;
    display: inline-block;
    -webkit-mask-position: 50%;
    mask-position: 50%;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}