.testimonial.svelte-1h4db02{--dark-bg-rgb: var(--clr-main);--light-bg-rgb: var(--clr-invert);background-color:hsla(var(--light-bg-rgb),.25);border-radius:var(--radius);padding:2rem;position:relative;box-shadow:0 0 12px var(--clr-main);margin-top:-6rem;margin-bottom:2rem;max-inline-size:50em;width:95%;margin-inline:auto;padding-bottom:5em;opacity:0;animation:svelte-1h4db02-fadeIn .8s ease-out forwards;animation-delay:var(--stagger-delay, 0s);will-change:opacity,transform;scale:.75;transition:transform .2s,box-shadow .2s}@media (width <= 500px){.testimonial.svelte-1h4db02{scale:.95;margin-top:-2rem}}.testimonial.svelte-1h4db02:hover{transform:translateY(-5px)}.testimonial.svelte-1h4db02 .author-info:where(.svelte-1h4db02){display:flex;flex-direction:column;border-radius:var(--radius);padding:.75rem}.testimonial.svelte-1h4db02 .author-info:where(.svelte-1h4db02) strong:where(.svelte-1h4db02){font-size:clamp(var(--sm),1.75vw,var(--h5));font-weight:600;color:var(--clr-main);letter-spacing:0px}.testimonial.svelte-1h4db02 .author-info:where(.svelte-1h4db02) span:where(.svelte-1h4db02){color:var(--clr-main);font-size:clamp(var(--xs),1.25vw,var(--h6));font-weight:400;opacity:.5;letter-spacing:-1px}.testimonial.svelte-1h4db02 .quote-mark:where(.svelte-1h4db02){position:absolute;top:1rem;left:1.5rem;font-size:4rem;color:var(--clr-main);font-family:Georgia,serif;line-height:1}.testimonial.svelte-1h4db02 blockquote:where(.svelte-1h4db02){margin:0;padding-left:1rem;font-size:clamp(var(--h6),1.5vw,var(--h3));font-style:italic;color:var(--clr-main);line-height:1.5;border-left:none}.testimonial.svelte-1h4db02 .testimonial-footer:where(.svelte-1h4db02){background-color:transparent;border-top:1px solid var(--clr-main);margin-top:1.5rem;justify-content:center;gap:1rem;max-inline-size:55em;padding:1rem 0;display:flex;align-items:center}.testimonial.svelte-1h4db02 .testimonial-footer:where(.svelte-1h4db02) .avatar:where(.svelte-1h4db02){width:clamp(6em,5vw,6em);height:clamp(6em,5vw,6em);border-radius:50%;overflow:hidden;flex-shrink:0;margin-bottom:1em}.testimonial.svelte-1h4db02 .testimonial-footer:where(.svelte-1h4db02) .avatar:where(.svelte-1h4db02) img:where(.svelte-1h4db02){width:100%;height:100%;object-fit:contain;object-position:top}body.light .testimonial.svelte-1h4db02{background-color:rgba(var(--dark-bg-rgb),.25)}.highlighted.svelte-1h4db02{border-left:3px solid hsl(0,0%,16%)}@media (max-inline-size: 640px){.testimonial.svelte-1h4db02{padding:1.5rem;width:90%;margin-inline:auto}}@keyframes svelte-1h4db02-fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.github-contributions.svelte-1f6ok0x{max-inline-size:900px;margin:0;margin-inline:auto;padding:2rem 1rem;font-family:var(--bronova);display:flex;flex-direction:column;align-items:center;container-type:inline-size;container-name:github-contributions}.github-contributions.svelte-1f6ok0x .contributions-header:where(.svelte-1f6ok0x){margin-bottom:2rem}.github-contributions.svelte-1f6ok0x .contributions-header:where(.svelte-1f6ok0x) h2:where(.svelte-1f6ok0x){font-family:var(--bronova-bold);font-size:clamp(var(--sm),2vw,var(--h4));font-weight:700;color:var(--clr-main);margin-bottom:.5rem;text-transform:lowercase;letter-spacing:.5px}.github-contributions.svelte-1f6ok0x .total-contributions:where(.svelte-1f6ok0x){font-size:clamp(var(--xs),2vw,var(--sm));color:var(--clr-main);opacity:.7;margin:0;font-weight:400}.github-contributions.svelte-1f6ok0x .total-contributions:where(.svelte-1f6ok0x).loading{opacity:.5}.github-contributions.svelte-1f6ok0x .total-contributions:where(.svelte-1f6ok0x).error{color:#ff6b6b;opacity:.8}.github-contributions.svelte-1f6ok0x .loading-container:where(.svelte-1f6ok0x){display:flex;justify-content:center;align-items:center;min-height:200px;width:100%}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x){min-width:50vw;width:100%;display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem;border-radius:8px;position:relative}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .mobile-tooltip:where(.svelte-1f6ok0x){position:absolute;background:var(--clr-main);color:var(--clr-bg);padding:.5rem .75rem;border-radius:6px;font-size:.75rem;font-family:var(--bronova);pointer-events:none;z-index:1000;transform:translate(-50%);box-shadow:0 4px 12px #00000026;animation:svelte-1f6ok0x-tooltipFadeIn .2s ease-out}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .mobile-tooltip:where(.svelte-1f6ok0x) .tooltip-content:where(.svelte-1f6ok0x){font-weight:600;margin-bottom:.125rem}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .mobile-tooltip:where(.svelte-1f6ok0x) .tooltip-date:where(.svelte-1f6ok0x){font-size:.65rem;opacity:.9;font-weight:400}@container github-contributions (width <= 767px){.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x){padding:1rem;gap:.75rem}}@container github-contributions (width <= 500px){.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x){min-width:99%;padding:.5rem}}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x){overflow-x:auto;overflow-y:visible;width:100%;display:flex;justify-content:flex-start;scroll-behavior:smooth}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x)::-webkit-scrollbar{height:6px}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x)::-webkit-scrollbar-track{background:transparent}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x)::-webkit-scrollbar-thumb{background:var(--clr-main);opacity:.3;border-radius:3px}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x){min-width:max-content;font-family:var(--bronova);max-inline-size:100%;height:auto}@container github-contributions (width <= 800px){.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x){transform:scale(.9);transform-origin:center}}@container github-contributions (width <= 700px){.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x){transform:scale(.8);transform-origin:center}}@container github-contributions (width <= 600px){.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x){transform:scale(.7);transform-origin:center}}@container github-contributions (width <= 500px){.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x){transform:scale(.6);transform-origin:center}}@container github-contributions (width <= 400px){.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x){transform:scale(.5);transform-origin:center}}@container github-contributions (width <= 320px){.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x){transform:scale(.45);transform-origin:center}}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x) .month-label:where(.svelte-1f6ok0x){font-size:1.1rem;fill:var(--clr-main);opacity:.7;font-weight:400}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x) .day-label:where(.svelte-1f6ok0x){font-size:.9rem;fill:var(--clr-main);opacity:.7;font-weight:400}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x) .contribution-day:where(.svelte-1f6ok0x){transition:all .2s ease;cursor:pointer}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x) .contribution-day:where(.svelte-1f6ok0x):hover{stroke:var(--clr-main);stroke-width:1px;opacity:.8}@container github-contributions (width <= 600px){.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x) .contribution-day:where(.svelte-1f6ok0x) title:where(.svelte-1f6ok0x){display:none}}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x) .contribution-day:where(.svelte-1f6ok0x).none{fill:var(--clr-gray)}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x) .contribution-day:where(.svelte-1f6ok0x).low{fill:#0e4429}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x) .contribution-day:where(.svelte-1f6ok0x).medium{fill:#006d32}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x) .contribution-day:where(.svelte-1f6ok0x).high{fill:#26a641}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x) .contribution-day:where(.svelte-1f6ok0x).very-high{fill:#39d353}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x) .contribution-day:where(.svelte-1f6ok0x):focus{outline:3px solid var(--clr-main);outline-offset:2px;stroke:var(--clr-main);stroke-width:2px}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x) .contribution-day:where(.svelte-1f6ok0x):focus-visible{outline:3px solid var(--clr-main);outline-offset:2px}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .legend:where(.svelte-1f6ok0x){display:flex;align-items:center;justify-content:flex-end;gap:.5rem;font-size:clamp(var(--xs),2vw,var(--sm));color:var(--clr-main);opacity:.6;margin-top:1rem;font-weight:400}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .legend:where(.svelte-1f6ok0x) .legend-squares:where(.svelte-1f6ok0x){display:flex;gap:2px;margin:0 .5rem}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .legend:where(.svelte-1f6ok0x) .legend-squares:where(.svelte-1f6ok0x) .legend-square:where(.svelte-1f6ok0x){width:.75rem;height:.75rem;border-radius:2px;border:none}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .legend:where(.svelte-1f6ok0x) .legend-squares:where(.svelte-1f6ok0x) .legend-square:where(.svelte-1f6ok0x).none{background-color:var(--clr-gray)}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .legend:where(.svelte-1f6ok0x) .legend-squares:where(.svelte-1f6ok0x) .legend-square:where(.svelte-1f6ok0x).low{background-color:#0e4429}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .legend:where(.svelte-1f6ok0x) .legend-squares:where(.svelte-1f6ok0x) .legend-square:where(.svelte-1f6ok0x).medium{background-color:#006d32}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .legend:where(.svelte-1f6ok0x) .legend-squares:where(.svelte-1f6ok0x) .legend-square:where(.svelte-1f6ok0x).high{background-color:#26a641}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .legend:where(.svelte-1f6ok0x) .legend-squares:where(.svelte-1f6ok0x) .legend-square:where(.svelte-1f6ok0x).very-high{background-color:#39d353}body.dark .contribution-day.none.svelte-1f6ok0x{fill:var(--clr-invert)}body.dark .legend-square.none.svelte-1f6ok0x{background-color:var(--clr-invert)}@container github-contributions (width >= 600px){.contribution-day.svelte-1f6ok0x:hover{stroke-width:2px}}@keyframes svelte-1f6ok0x-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes svelte-1f6ok0x-tooltipFadeIn{0%{opacity:0;transform:translate(-50%) translateY(-5px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@container github-contributions (width <= 600px){.github-contributions.svelte-1f6ok0x{padding:1rem .5rem}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x){transform:none!important}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x) .month-label:where(.svelte-1f6ok0x){font-size:1rem}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x) .day-label:where(.svelte-1f6ok0x){font-size:.8rem}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x) .contribution-day:where(.svelte-1f6ok0x):hover{stroke-width:1px}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .legend:where(.svelte-1f6ok0x){font-size:.75rem;gap:.375rem;margin-top:.75rem}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .legend:where(.svelte-1f6ok0x) .legend-squares:where(.svelte-1f6ok0x){gap:2px}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .legend:where(.svelte-1f6ok0x) .legend-squares:where(.svelte-1f6ok0x) .legend-square:where(.svelte-1f6ok0x){width:.65rem;height:.65rem;border-radius:1px}}@container github-contributions (width <= 400px){.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x){min-width:100vw}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .legend:where(.svelte-1f6ok0x){font-size:.65rem}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .legend:where(.svelte-1f6ok0x) .legend-squares:where(.svelte-1f6ok0x) .legend-square:where(.svelte-1f6ok0x){width:.6rem;height:.6rem}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x) .month-label:where(.svelte-1f6ok0x){font-size:.9rem}.github-contributions.svelte-1f6ok0x .calendar-container:where(.svelte-1f6ok0x) .calendar-svg-wrapper:where(.svelte-1f6ok0x) .contributions-svg:where(.svelte-1f6ok0x) .day-label:where(.svelte-1f6ok0x){font-size:.7rem}}:root{--100: 100%}.github-section.svelte-rqn88j{padding:2rem 1rem;margin:2rem 0;background:transparent;border-radius:12px;min-height:300px}@media (width <= 768px){.github-section.svelte-rqn88j{margin:1rem;padding:1rem;min-height:250px}}.github-section.svelte-rqn88j .project-container:where(.svelte-rqn88j){max-inline-size:1200px;margin:0 auto;text-align:center}.github-section.svelte-rqn88j .github-skeleton:where(.svelte-rqn88j){opacity:.6;animation:svelte-rqn88j-pulse 2s ease-out infinite alternate}.github-section.svelte-rqn88j .github-skeleton:where(.svelte-rqn88j) .skeleton-header:where(.svelte-rqn88j){margin-bottom:2rem}.github-section.svelte-rqn88j .github-skeleton:where(.svelte-rqn88j) .skeleton-header:where(.svelte-rqn88j) .skeleton-title:where(.svelte-rqn88j){height:2rem;width:200px;background:var(--clr-main);opacity:.3;border-radius:4px;margin:0 auto .5rem}.github-section.svelte-rqn88j .github-skeleton:where(.svelte-rqn88j) .skeleton-header:where(.svelte-rqn88j) .skeleton-subtitle:where(.svelte-rqn88j){height:1rem;width:150px;background:var(--clr-main);opacity:.2;border-radius:4px;margin:0 auto}.github-section.svelte-rqn88j .github-skeleton:where(.svelte-rqn88j) .skeleton-chart:where(.svelte-rqn88j){height:150px;background:var(--clr-main);opacity:.1;border-radius:8px;margin-bottom:1rem}.github-section.svelte-rqn88j .github-skeleton:where(.svelte-rqn88j) .skeleton-legend:where(.svelte-rqn88j){height:20px;width:200px;background:var(--clr-main);opacity:.1;border-radius:4px;margin:0 auto}.projects.svelte-rqn88j{background:linear-gradient(to bottom,var(--clr-gray) 0%,var(--clr-invert) 12%,var(--clr-invert) 100%)}.projects.svelte-rqn88j .header-icons:where(.svelte-rqn88j){display:flex;justify-content:center;align-items:center;gap:5em}@media (width <= 768px){.projects.svelte-rqn88j .header-icons:where(.svelte-rqn88j){gap:1rem}}.projects.svelte-rqn88j .header-icons:where(.svelte-rqn88j) .popover:where(.svelte-rqn88j){display:inline-flex;justify-content:center;align-items:center;margin-top:5em}@media (width <= 768px){.projects.svelte-rqn88j .header-icons:where(.svelte-rqn88j) .popover:where(.svelte-rqn88j){margin-right:.75rem}}.projects.svelte-rqn88j .bevel:where(.svelte-rqn88j){position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));place-items:center}@media (width <= 768px){.projects.svelte-rqn88j .bevel:where(.svelte-rqn88j){margin:0}}@media (width <= 500px){.projects.svelte-rqn88j .bevel:where(.svelte-rqn88j){padding:4em 0;grid-template-columns:1fr}}.projects.svelte-rqn88j .bevel:where(.svelte-rqn88j) .wholeProject:where(.svelte-rqn88j){display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;border:2px solid var(--clr-gray);border-radius:1em 1em var(--radius) var(--radius);padding-top:2em;will-change:opacity,transform;margin-bottom:1em}@media (width <= 768px){.projects.svelte-rqn88j .bevel:where(.svelte-rqn88j) .wholeProject:where(.svelte-rqn88j){margin:.5rem;margin-bottom:2em}}.projects.svelte-rqn88j .bevel:where(.svelte-rqn88j):before{content:"";position:absolute;inset:0;background:var(--clr-gray);clip-path:polygon(0 40px,40px 0,calc(100% - 40px) 0,100% 40px,100% calc(100% - 40px),calc(100% - 40px) 100%,40px 100%,0 calc(100% - 40px),0 40px,5px 41.03px,5px calc(100% - 41.03px),41.03px calc(100% - 5px),calc(100% - 41.03px) calc(100% - 5px),calc(100% - 5px) calc(100% - 41.03px),calc(100% - 5px) 41.03px,calc(100% - 41.03px) 5px,41.03px 5px,5px 41.03px)}section.svelte-rqn88j{padding-top:2rem}@media screen and (width >= 740px){section.svelte-rqn88j{padding:2rem}}@media screen and (width >= 990px){section.svelte-rqn88j{margin-bottom:-5%;padding-top:5rem}}@keyframes svelte-rqn88j-pulse{0%{opacity:.4}to{opacity:.6}}@keyframes svelte-rqn88j-slide-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100px)}}@keyframes svelte-rqn88j-slide-in{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}::view-transition-old(build-heading){opacity:0}::view-transition-group(build-heading){animation-duration:var(--link-transition-duration);animation-timing-function:cubic-bezier(.4,0,.2,1)}@media (width <= 768px){::view-transition-old(build-heading){animation:svelte-rqn88j-slide-out var(--title-transition-duration) ease-out forwards;opacity:1}::view-transition-new(build-heading){animation:svelte-rqn88j-slide-in var(--title-transition-duration) ease-out forwards}}
