.project-card[data-astro-cid-mspuyifq]{outline:2px solid var(--outline-color-secondary);user-select:none;cursor:pointer;overflow:hidden;transition:outline var(--transition),box-shadow var(--transition);display:flex;flex-direction:column;justify-content:space-between}.project-card[data-astro-cid-mspuyifq]:hover{outline-color:var(--outline-color);box-shadow:0 5px 20px -2px var(--outline-color-mute)}.project-card[data-astro-cid-mspuyifq] a[data-astro-cid-mspuyifq]{display:flex;gap:.5rem;justify-content:center;text-decoration:none}.project-card[data-astro-cid-mspuyifq] img[data-astro-cid-mspuyifq]{width:100%;height:100%;object-fit:cover;aspect-ratio:16/9}.project-text[data-astro-cid-mspuyifq]{padding:1rem}.project-text[data-astro-cid-mspuyifq] h3[data-astro-cid-mspuyifq]{margin-block:0 .5rem;line-height:1.2}.project__links-container[data-astro-cid-mspuyifq]{display:flex;flex-direction:column;@media (min-width: 50rem){flex-direction:row}justify-content:center}.project__link[data-astro-cid-mspuyifq]{color:inherit;padding-block:.5rem;outline:2px solid var(--outline-color-secondary);flex:1 1 0;@media (min-width: 50rem){padding-block:1rem}text-align:center;transition:background-color .2s ease}a[data-astro-cid-mspuyifq].project__link:hover,.project__link[data-astro-cid-mspuyifq]:focus-visible{background:var(--secondary);color:var(--link-color)}a[data-astro-cid-znlbmfpr]{outline:1px solid var(--outline-color-mute);color:inherit;padding:.3rem;text-decoration:none;line-height:1.3;background:var(--secondary);border-radius:.5rem;display:inline-block;transition:outline var(--transition)}a[data-astro-cid-znlbmfpr]:hover{outline-color:var(--outline-color)}a[data-astro-cid-znlbmfpr]:focus-visible{outline:2px solid var(--outline-color)}.main-section{background:var(--background);padding-block:2.5rem}.main-section>.hidden{opacity:0;transform:translateY(5%);@media screen and (prefers-reduced-motion){transform:none}}.main-section>*{transition:opacity var(--transition-slow),transform var(--transition-slow)}.hero{padding-block:12rem;color:var(--text);background-size:120vh;background-position:center center;background-repeat:no-repeat}body[data-theme=light] .hero{background-image:url("data:image/svg+xml;utf8,%3Csvg viewBox=%220 0 2000 1400%22 xmlns=%22http:%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cmask id=%22b%22 x=%220%22 y=%220%22 width=%222000%22 height=%221400%22%3E%3Cpath fill=%22url(%23a)%22 d=%22M0 0h2000v1400H0z%22%2F%3E%3C%2Fmask%3E%3Cpath fill=%22%23eeeefa%22 d=%22M0 0h2000v1400H0z%22%2F%3E%3Cg style=%22transform-origin:center center%22 stroke=%22%23c7bed8%22 stroke-width=%222%22 mask=%22url(%23b)%22%3E%3Cpath fill=%22none%22 d=%22M0 0h100v100H0z%22%2F%3E%3Cpath fill=%22%23c7bed810%22 d=%22M100 0h100v100H100z%22%2F%3E%3Cpath fill=%22%23c7bed8a5%22 d=%22M200 0h100v100H200z%22%2F%3E%3Cpath fill=%22none%22 d=%22M300 0h100v100H300z%22%2F%3E%3Cpath fill=%22%23c7bed89c%22 d=%22M400 0h100v100H400z%22%2F%3E%3Cpath fill=%22none%22 d=%22M500 0h100v100H500z%22%2F%3E%3Cpath fill=%22%23c7bed82a%22 d=%22M600 0h100v100H600z%22%2F%3E%3Cpath fill=%22none%22 d=%22M700 0h100v100H700z%22%2F%3E%3Cpath fill=%22%23c7bed8fa%22 d=%22M800 0h100v100H800z%22%2F%3E%3Cpath fill=%22none%22 d=%22M900 0h100v100H900z%22%2F%3E%3Cpath fill=%22%23c7bed860%22 d=%22M1000 0h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1100 0h100v100h-100zM1200 0h100v100h-100zM1300 0h100v100h-100zM1400 0h100v100h-100zM1500 0h100v100h-100zM1600 0h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed819%22 d=%22M1700 0h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1800 0h100v100h-100zM1900 0h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed887%22 d=%22M0 100h100v100H0z%22%2F%3E%3Cpath fill=%22none%22 d=%22M100 100h100v100H100zM200 100h100v100H200z%22%2F%3E%3Cpath fill=%22%23c7bed8a7%22 d=%22M300 100h100v100H300z%22%2F%3E%3Cpath fill=%22none%22 d=%22M400 100h100v100H400zM500 100h100v100H500zM600 100h100v100H600zM700 100h100v100H700zM800 100h100v100H800zM900 100h100v100H900zM1000 100h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed8ce%22 d=%22M1100 100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1200 100h100v100h-100zM1300 100h100v100h-100zM1400 100h100v100h-100zM1500 100h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed829%22 d=%22M1600 100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1700 100h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed882%22 d=%22M1800 100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1900 100h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed833%22 d=%22M0 200h100v100H0z%22%2F%3E%3Cpath fill=%22none%22 d=%22M100 200h100v100H100zM200 200h100v100H200zM300 200h100v100H300zM400 200h100v100H400z%22%2F%3E%3Cpath fill=%22%23c7bed8d0%22 d=%22M500 200h100v100H500z%22%2F%3E%3Cpath fill=%22%23c7bed827%22 d=%22M600 200h100v100H600z%22%2F%3E%3Cpath fill=%22%23c7bed8e5%22 d=%22M700 200h100v100H700z%22%2F%3E%3Cpath fill=%22%23c7bed82e%22 d=%22M800 200h100v100H800z%22%2F%3E%3Cpath fill=%22%23c7bed818%22 d=%22M900 200h100v100H900z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1000 200h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed81f%22 d=%22M1100 200h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1200 200h100v100h-100zM1300 200h100v100h-100zM1400 200h100v100h-100zM1500 200h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed89d%22 d=%22M1600 200h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1700 200h100v100h-100zM1800 200h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed86f%22 d=%22M1900 200h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M0 300h100v100H0z%22%2F%3E%3Cpath fill=%22%23c7bed87c%22 d=%22M100 300h100v100H100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M200 300h100v100H200zM300 300h100v100H300zM400 300h100v100H400zM500 300h100v100H500zM600 300h100v100H600zM700 300h100v100H700zM800 300h100v100H800zM900 300h100v100H900zM1000 300h100v100h-100zM1100 300h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed82b%22 d=%22M1200 300h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed84b%22 d=%22M1300 300h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1400 300h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed86f%22 d=%22M1500 300h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1600 300h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed8a5%22 d=%22M1700 300h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1800 300h100v100h-100zM1900 300h100v100h-100zM0 400h100v100H0z%22%2F%3E%3Cpath fill=%22%23c7bed8c8%22 d=%22M100 400h100v100H100z%22%2F%3E%3Cpath fill=%22%23c7bed86e%22 d=%22M200 400h100v100H200z%22%2F%3E%3Cpath fill=%22none%22 d=%22M300 400h100v100H300z%22%2F%3E%3Cpath fill=%22%23c7bed8cd%22 d=%22M400 400h100v100H400z%22%2F%3E%3Cpath fill=%22%23c7bed83c%22 d=%22M500 400h100v100H500z%22%2F%3E%3Cpath fill=%22none%22 d=%22M600 400h100v100H600zM700 400h100v100H700z%22%2F%3E%3Cpath fill=%22%23c7bed89f%22 d=%22M800 400h100v100H800z%22%2F%3E%3Cpath fill=%22none%22 d=%22M900 400h100v100H900z%22%2F%3E%3Cpath fill=%22%23c7bed8c8%22 d=%22M1000 400h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed826%22 d=%22M1100 400h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1200 400h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed89a%22 d=%22M1300 400h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1400 400h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed854%22 d=%22M1500 400h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1600 400h100v100h-100zM1700 400h100v100h-100zM1800 400h100v100h-100zM1900 400h100v100h-100zM0 500h100v100H0zM100 500h100v100H100zM200 500h100v100H200zM300 500h100v100H300zM400 500h100v100H400zM500 500h100v100H500z%22%2F%3E%3Cpath fill=%22%23c7bed894%22 d=%22M600 500h100v100H600z%22%2F%3E%3Cpath fill=%22none%22 d=%22M700 500h100v100H700zM800 500h100v100H800z%22%2F%3E%3Cpath fill=%22%23c7bed880%22 d=%22M900 500h100v100H900z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1000 500h100v100h-100zM1100 500h100v100h-100zM1200 500h100v100h-100zM1300 500h100v100h-100zM1400 500h100v100h-100zM1500 500h100v100h-100zM1600 500h100v100h-100zM1700 500h100v100h-100zM1800 500h100v100h-100zM1900 500h100v100h-100zM0 600h100v100H0zM100 600h100v100H100zM200 600h100v100H200zM300 600h100v100H300z%22%2F%3E%3Cpath fill=%22%23c7bed8b6%22 d=%22M400 600h100v100H400z%22%2F%3E%3Cpath fill=%22none%22 d=%22M500 600h100v100H500zM600 600h100v100H600z%22%2F%3E%3Cpath fill=%22%23c7bed808%22 d=%22M700 600h100v100H700z%22%2F%3E%3Cpath fill=%22none%22 d=%22M800 600h100v100H800zM900 600h100v100H900zM1000 600h100v100h-100zM1100 600h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed895%22 d=%22M1200 600h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1300 600h100v100h-100zM1400 600h100v100h-100zM1500 600h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed826%22 d=%22M1600 600h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed815%22 d=%22M1700 600h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1800 600h100v100h-100zM1900 600h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed853%22 d=%22M0 700h100v100H0z%22%2F%3E%3Cpath fill=%22none%22 d=%22M100 700h100v100H100zM200 700h100v100H200zM300 700h100v100H300z%22%2F%3E%3Cpath fill=%22%23c7bed8bd%22 d=%22M400 700h100v100H400z%22%2F%3E%3Cpath fill=%22none%22 d=%22M500 700h100v100H500z%22%2F%3E%3Cpath fill=%22%23c7bed83d%22 d=%22M600 700h100v100H600z%22%2F%3E%3Cpath fill=%22%23c7bed890%22 d=%22M700 700h100v100H700z%22%2F%3E%3Cpath fill=%22none%22 d=%22M800 700h100v100H800zM900 700h100v100H900zM1000 700h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed8b0%22 d=%22M1100 700h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed8ad%22 d=%22M1200 700h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed82b%22 d=%22M1300 700h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed812%22 d=%22M1400 700h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1500 700h100v100h-100zM1600 700h100v100h-100zM1700 700h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed8b9%22 d=%22M1800 700h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1900 700h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed88b%22 d=%22M0 800h100v100H0z%22%2F%3E%3Cpath fill=%22none%22 d=%22M100 800h100v100H100zM200 800h100v100H200zM300 800h100v100H300zM400 800h100v100H400z%22%2F%3E%3Cpath fill=%22%23c7bed874%22 d=%22M500 800h100v100H500z%22%2F%3E%3Cpath fill=%22none%22 d=%22M600 800h100v100H600z%22%2F%3E%3Cpath fill=%22%23c7bed81b%22 d=%22M700 800h100v100H700z%22%2F%3E%3Cpath fill=%22none%22 d=%22M800 800h100v100H800z%22%2F%3E%3Cpath fill=%22%23c7bed854%22 d=%22M900 800h100v100H900z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1000 800h100v100h-100zM1100 800h100v100h-100zM1200 800h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed8fc%22 d=%22M1300 800h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1400 800h100v100h-100zM1500 800h100v100h-100zM1600 800h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed816%22 d=%22M1700 800h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed8e8%22 d=%22M1800 800h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1900 800h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed83f%22 d=%22M0 900h100v100H0z%22%2F%3E%3Cpath fill=%22none%22 d=%22M100 900h100v100H100zM200 900h100v100H200z%22%2F%3E%3Cpath fill=%22%23c7bed8cd%22 d=%22M300 900h100v100H300z%22%2F%3E%3Cpath fill=%22%23c7bed8ad%22 d=%22M400 900h100v100H400z%22%2F%3E%3Cpath fill=%22%23c7bed87b%22 d=%22M500 900h100v100H500z%22%2F%3E%3Cpath fill=%22%23c7bed8fa%22 d=%22M600 900h100v100H600z%22%2F%3E%3Cpath fill=%22%23c7bed872%22 d=%22M700 900h100v100H700z%22%2F%3E%3Cpath fill=%22none%22 d=%22M800 900h100v100H800zM900 900h100v100H900zM1000 900h100v100h-100zM1100 900h100v100h-100zM1200 900h100v100h-100zM1300 900h100v100h-100zM1400 900h100v100h-100zM1500 900h100v100h-100zM1600 900h100v100h-100zM1700 900h100v100h-100zM1800 900h100v100h-100zM1900 900h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed82b%22 d=%22M0 1000h100v100H0z%22%2F%3E%3Cpath fill=%22%23c7bed8dc%22 d=%22M100 1000h100v100H100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M200 1000h100v100H200z%22%2F%3E%3Cpath fill=%22%23c7bed875%22 d=%22M300 1000h100v100H300z%22%2F%3E%3Cpath fill=%22%23c7bed847%22 d=%22M400 1000h100v100H400z%22%2F%3E%3Cpath fill=%22none%22 d=%22M500 1000h100v100H500z%22%2F%3E%3Cpath fill=%22%23c7bed8bc%22 d=%22M600 1000h100v100H600z%22%2F%3E%3Cpath fill=%22none%22 d=%22M700 1000h100v100H700z%22%2F%3E%3Cpath fill=%22%23c7bed875%22 d=%22M800 1000h100v100H800z%22%2F%3E%3Cpath fill=%22none%22 d=%22M900 1000h100v100H900zM1000 1000h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed8c2%22 d=%22M1100 1000h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1200 1000h100v100h-100zM1300 1000h100v100h-100zM1400 1000h100v100h-100zM1500 1000h100v100h-100zM1600 1000h100v100h-100zM1700 1000h100v100h-100zM1800 1000h100v100h-100zM1900 1000h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed827%22 d=%22M0 1100h100v100H0z%22%2F%3E%3Cpath fill=%22none%22 d=%22M100 1100h100v100H100zM200 1100h100v100H200z%22%2F%3E%3Cpath fill=%22%23c7bed85c%22 d=%22M300 1100h100v100H300z%22%2F%3E%3Cpath fill=%22none%22 d=%22M400 1100h100v100H400zM500 1100h100v100H500zM600 1100h100v100H600zM700 1100h100v100H700zM800 1100h100v100H800zM900 1100h100v100H900z%22%2F%3E%3Cpath fill=%22%23c7bed82e%22 d=%22M1000 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed84b%22 d=%22M1100 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1200 1100h100v100h-100zM1300 1100h100v100h-100zM1400 1100h100v100h-100zM1500 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed881%22 d=%22M1600 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1700 1100h100v100h-100zM1800 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed858%22 d=%22M1900 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M0 1200h100v100H0zM100 1200h100v100H100zM200 1200h100v100H200z%22%2F%3E%3Cpath fill=%22%23c7bed847%22 d=%22M300 1200h100v100H300z%22%2F%3E%3Cpath fill=%22none%22 d=%22M400 1200h100v100H400zM500 1200h100v100H500zM600 1200h100v100H600zM700 1200h100v100H700zM800 1200h100v100H800zM900 1200h100v100H900z%22%2F%3E%3Cpath fill=%22%23c7bed8ca%22 d=%22M1000 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1100 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed87f%22 d=%22M1200 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1300 1200h100v100h-100zM1400 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed81a%22 d=%22M1500 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed88e%22 d=%22M1600 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1700 1200h100v100h-100zM1800 1200h100v100h-100zM1900 1200h100v100h-100zM0 1300h100v100H0z%22%2F%3E%3Cpath fill=%22%23c7bed85f%22 d=%22M100 1300h100v100H100z%22%2F%3E%3Cpath fill=%22%23c7bed85e%22 d=%22M200 1300h100v100H200z%22%2F%3E%3Cpath fill=%22%23c7bed8f8%22 d=%22M300 1300h100v100H300z%22%2F%3E%3Cpath fill=%22%23c7bed8e6%22 d=%22M400 1300h100v100H400z%22%2F%3E%3Cpath fill=%22none%22 d=%22M500 1300h100v100H500zM600 1300h100v100H600zM700 1300h100v100H700zM800 1300h100v100H800zM900 1300h100v100H900z%22%2F%3E%3Cpath fill=%22%23c7bed867%22 d=%22M1000 1300h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed80a%22 d=%22M1100 1300h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1200 1300h100v100h-100zM1300 1300h100v100h-100zM1400 1300h100v100h-100zM1500 1300h100v100h-100zM1600 1300h100v100h-100zM1700 1300h100v100h-100z%22%2F%3E%3Cpath fill=%22%23c7bed8d1%22 d=%22M1800 1300h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1900 1300h100v100h-100z%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CradialGradient id=%22a%22%3E%3Cstop offset=%220%22 stop-color=%22%23fff%22 stop-opacity=%22.7%22%2F%3E%3Cstop offset=%2275%25%22 stop-color=%22%23fff%22 stop-opacity=%220%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E")}body[data-theme=dark] .hero{background-image:url("data:image/svg+xml;utf8,%3Csvg viewBox=%220 0 2000 1400%22 xmlns=%22http:%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cmask id=%22b%22 x=%220%22 y=%220%22 width=%222000%22 height=%221400%22%3E%3Cpath fill=%22url(%23a)%22 d=%22M0 0h2000v1400H0z%22%2F%3E%3C%2Fmask%3E%3Cpath fill=%22%230c0910%22 d=%22M0 0h2000v1400H0z%22%2F%3E%3Cg style=%22transform-origin:center center%22 stroke=%22%23453750%22 stroke-width=%222.6%22 mask=%22url(%23b)%22%3E%3Cpath fill=%22none%22 d=%22M0 0h100v100H0zM100 0h100v100H100zM200 0h100v100H200z%22%2F%3E%3Cpath fill=%22%2345375053%22 d=%22M400 0h100v100H400z%22%2F%3E%3Cpath fill=%22%2345375059%22 d=%22M500 0h100v100H500z%22%2F%3E%3Cpath fill=%22none%22 d=%22M600 0h100v100H600z%22%2F%3E%3Cpath fill=%22%2345375073%22 d=%22M800 0h100v100H800z%22%2F%3E%3Cpath fill=%22%234537506a%22 d=%22M900 0h100v100H900z%22%2F%3E%3Cpath fill=%22%2345375056%22 d=%22M1300 0h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1500 0h100v100h-100zM1600 0h100v100h-100zM1700 0h100v100h-100zM1800 0h100v100h-100z%22%2F%3E%3Cpath fill=%22%2345375054%22 d=%22M100 100h100v100H100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M200 100h100v100H200z%22%2F%3E%3Cpath fill=%22%2345375054%22 d=%22M300 100h100v100H300z%22%2F%3E%3Cpath fill=%22none%22 d=%22M400 100h100v100H400zM500 100h100v100H500zM600 100h100v100H600zM700 100h100v100H700z%22%2F%3E%3Cpath fill=%22%234537503f%22 d=%22M900 100h100v100H900z%22%2F%3E%3Cpath fill=%22%23453750da%22 d=%22M1000 100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1200 100h100v100h-100z%22%2F%3E%3Cpath fill=%22%23453750a1%22 d=%22M1400 100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1500 100h100v100h-100zM1600 100h100v100h-100zM1800 100h100v100h-100zM1900 100h100v100h-100zM100 200h100v100H100zM200 200h100v100H200zM300 200h100v100H300z%22%2F%3E%3Cpath fill=%22%23453750b5%22 d=%22M500 200h100v100H500z%22%2F%3E%3Cpath fill=%22%2345375040%22 d=%22M600 200h100v100H600z%22%2F%3E%3Cpath fill=%22none%22 d=%22M700 200h100v100H700zM900 200h100v100H900z%22%2F%3E%3Cpath fill=%22%234537509c%22 d=%22M1000 200h100v100h-100z%22%2F%3E%3Cpath fill=%22%2345375002%22 d=%22M1200 200h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1400 200h100v100h-100zM1500 200h100v100h-100zM1600 200h100v100h-100zM0 300h100v100H0z%22%2F%3E%3Cpath fill=%22%234537509d%22 d=%22M100 300h100v100H100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M200 300h100v100H200z%22%2F%3E%3Cpath fill=%22%234537501f%22 d=%22M600 300h100v100H600z%22%2F%3E%3Cpath fill=%22none%22 d=%22M800 300h100v100H800z%22%2F%3E%3Cpath fill=%22%2345375093%22 d=%22M1100 300h100v100h-100z%22%2F%3E%3Cpath fill=%22%2345375071%22 d=%22M1300 300h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1400 300h100v100h-100zM1600 300h100v100h-100zM1700 300h100v100h-100zM1800 300h100v100h-100z%22%2F%3E%3Cpath fill=%22%234537507a%22 d=%22M1900 300h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M0 400h100v100H0zM100 400h100v100H100zM300 400h100v100H300zM400 400h100v100H400zM600 400h100v100H600zM700 400h100v100H700zM900 400h100v100H900zM1100 400h100v100h-100z%22%2F%3E%3Cpath fill=%22%23453750c6%22 d=%22M1200 400h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1400 400h100v100h-100zM1500 400h100v100h-100zM1700 400h100v100h-100z%22%2F%3E%3Cpath fill=%22%23453750f2%22 d=%22M1800 400h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1900 400h100v100h-100z%22%2F%3E%3Cpath fill=%22%2345375079%22 d=%22M0 500h100v100H0z%22%2F%3E%3Cpath fill=%22none%22 d=%22M100 500h100v100H100zM300 500h100v100H300zM400 500h100v100H400z%22%2F%3E%3Cpath fill=%22%2345375054%22 d=%22M700 500h100v100H700z%22%2F%3E%3Cpath fill=%22%23453750a1%22 d=%22M900 500h100v100H900z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1000 500h100v100h-100zM1100 500h100v100h-100zM1200 500h100v100h-100zM1300 500h100v100h-100zM1400 500h100v100h-100zM1600 500h100v100h-100z%22%2F%3E%3Cpath fill=%22%2345375024%22 d=%22M1700 500h100v100h-100z%22%2F%3E%3Cpath fill=%22%23453750e0%22 d=%22M1800 500h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1900 500h100v100h-100z%22%2F%3E%3Cpath fill=%22%23453750b7%22 d=%22M100 600h100v100H100z%22%2F%3E%3Cpath fill=%22%23453750ed%22 d=%22M200 600h100v100H200z%22%2F%3E%3Cpath fill=%22none%22 d=%22M300 600h100v100H300zM400 600h100v100H400zM600 600h100v100H600zM700 600h100v100H700zM1200 600h100v100h-100zM1300 600h100v100h-100z%22%2F%3E%3Cpath fill=%22%23453750d9%22 d=%22M1400 600h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1700 600h100v100h-100zM1800 600h100v100h-100zM1900 600h100v100h-100zM0 700h100v100H0z%22%2F%3E%3Cpath fill=%22%23453750f0%22 d=%22M100 700h100v100H100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M200 700h100v100H200z%22%2F%3E%3Cpath fill=%22%23453750f9%22 d=%22M500 700h100v100H500z%22%2F%3E%3Cpath fill=%22%23453750d3%22 d=%22M700 700h100v100H700z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1300 700h100v100h-100zM1500 700h100v100h-100z%22%2F%3E%3Cpath fill=%22%234537501e%22 d=%22M1600 700h100v100h-100z%22%2F%3E%3Cpath fill=%22%2345375087%22 d=%22M1700 700h100v100h-100z%22%2F%3E%3Cpath fill=%22%2345375032%22 d=%22M1900 700h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M0 800h100v100H0zM100 800h100v100H100zM200 800h100v100H200zM300 800h100v100H300z%22%2F%3E%3Cpath fill=%22%2345375081%22 d=%22M400 800h100v100H400z%22%2F%3E%3Cpath fill=%22%2345375043%22 d=%22M500 800h100v100H500z%22%2F%3E%3Cpath fill=%22none%22 d=%22M600 800h100v100H600zM1000 800h100v100h-100z%22%2F%3E%3Cpath fill=%22%234537503f%22 d=%22M1300 800h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1800 800h100v100h-100zM1900 800h100v100h-100zM100 900h100v100H100zM200 900h100v100H200zM400 900h100v100H400zM600 900h100v100H600z%22%2F%3E%3Cpath fill=%22%2345375026%22 d=%22M700 900h100v100H700z%22%2F%3E%3Cpath fill=%22none%22 d=%22M800 900h100v100H800zM1000 900h100v100h-100zM1100 900h100v100h-100z%22%2F%3E%3Cpath fill=%22%23453750d2%22 d=%22M1200 900h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1300 900h100v100h-100zM1600 900h100v100h-100zM1700 900h100v100h-100z%22%2F%3E%3Cpath fill=%22%23453750ee%22 d=%22M1900 900h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M0 1000h100v100H0zM200 1000h100v100H200zM300 1000h100v100H300zM400 1000h100v100H400zM700 1000h100v100H700zM800 1000h100v100H800z%22%2F%3E%3Cpath fill=%22%234537509f%22 d=%22M1100 1000h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1300 1000h100v100h-100zM1400 1000h100v100h-100zM1500 1000h100v100h-100zM1600 1000h100v100h-100zM1800 1000h100v100h-100zM1900 1000h100v100h-100zM0 1100h100v100H0z%22%2F%3E%3Cpath fill=%22%2345375083%22 d=%22M100 1100h100v100H100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M200 1100h100v100H200z%22%2F%3E%3Cpath fill=%22%2345375008%22 d=%22M300 1100h100v100H300z%22%2F%3E%3Cpath fill=%22none%22 d=%22M400 1100h100v100H400zM500 1100h100v100H500z%22%2F%3E%3Cpath fill=%22%2345375068%22 d=%22M800 1100h100v100H800z%22%2F%3E%3Cpath fill=%22%23453750c8%22 d=%22M900 1100h100v100H900z%22%2F%3E%3Cpath fill=%22%234537502b%22 d=%22M1000 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22%2345375090%22 d=%22M1100 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22%23453750e3%22 d=%22M1300 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1400 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22%23453750d7%22 d=%22M1500 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22%2345375001%22 d=%22M1600 1100h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1700 1100h100v100h-100zM1800 1100h100v100h-100zM0 1200h100v100H0zM100 1200h100v100H100zM200 1200h100v100H200zM400 1200h100v100H400zM500 1200h100v100H500zM900 1200h100v100H900zM1000 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22%234537502a%22 d=%22M1100 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1200 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22%234537502d%22 d=%22M1300 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1400 1200h100v100h-100zM1500 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22%234537505c%22 d=%22M1600 1200h100v100h-100z%22%2F%3E%3Cpath fill=%22%2345375068%22 d=%22M200 1300h100v100H200z%22%2F%3E%3Cpath fill=%22%23453750ef%22 d=%22M300 1300h100v100H300z%22%2F%3E%3Cpath fill=%22none%22 d=%22M400 1300h100v100H400zM500 1300h100v100H500z%22%2F%3E%3Cpath fill=%22%2345375003%22 d=%22M700 1300h100v100H700z%22%2F%3E%3Cpath fill=%22none%22 d=%22M800 1300h100v100H800z%22%2F%3E%3Cpath fill=%22%2345375082%22 d=%22M1100 1300h100v100h-100z%22%2F%3E%3Cpath fill=%22%23453750bb%22 d=%22M1500 1300h100v100h-100z%22%2F%3E%3Cpath fill=%22none%22 d=%22M1600 1300h100v100h-100zM1800 1300h100v100h-100zM1900 1300h100v100h-100z%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CradialGradient id=%22a%22%3E%3Cstop offset=%220%22 stop-color=%22%23fff%22 stop-opacity=%22.7%22%2F%3E%3Cstop offset=%2275%25%22 stop-color=%22%23fff%22 stop-opacity=%220%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E")}.hero__text{color:var(--text);text-align:center;z-index:1;flex:1 1 0}.hero__text h1{font-size:min(2.5rem,8vmin);line-height:.9;margin-inline:auto;margin-block:0;position:relative}.hero-wave{animation:wave 1.2s cubic-bezier(.22,.61,.36,1) 1s;transform-origin:65% 75%;display:inline-block}@keyframes wave{0%{rotate:0deg}25%,75%{rotate:30deg}50%{rotate:0deg}to{rotate:0deg}}.hero__cta{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.hero__cta a{text-align:center}.projects-container{padding:0;margin:0;display:grid;grid-template-columns:subgrid;row-gap:1rem}.contact-form :is(label,input,textarea){display:block}.contact-form label{padding:1rem 0}.contact-form :is(input,textarea){width:100%;padding:1rem}.contact-form textarea{resize:vertical}
