.hcaptcha-container iframe{border-radius:.5rem}.form-group.svelte-fq8g2m{position:relative;z-index:10}.contact-details.svelte-11ejy8i{margin:2rem 0 2.5rem}.contact-details--compact.svelte-11ejy8i{margin:1.5rem 0 1.25rem}.contact-details__heading.svelte-11ejy8i{margin:0 0 1.25rem;font-family:var(--font-heading);font-size:clamp(1.5rem,2.5vw,1.85rem);font-weight:400;line-height:1.2;letter-spacing:-.01em}.contact-details__grid.svelte-11ejy8i{display:block}.contact-details__business-card.svelte-11ejy8i{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;padding:clamp(1rem,3vw,1.35rem);border:1px solid color-mix(in srgb,currentColor 16%,transparent);border-radius:1rem;background:color-mix(in srgb,currentColor 4%,transparent)}@media(min-width:760px){.contact-details__business-card.svelte-11ejy8i{grid-template-columns:minmax(0,1fr) minmax(18rem,.85fr);align-items:center}}.contact-details__intro.svelte-11ejy8i{min-width:0}.contact-details__summary.svelte-11ejy8i{margin:.25rem 0 0;font-family:var(--font-heading);font-size:clamp(1.35rem,3vw,1.85rem);font-weight:400;line-height:1.15}.contact-details__location.svelte-11ejy8i{margin:.45rem 0 0;font-size:.95rem;color:color-mix(in srgb,currentColor 68%,transparent)}.contact-details__primary.svelte-11ejy8i{display:flex;align-items:center;gap:.85rem;min-width:0;padding:.95rem 1rem;border-radius:.8rem;border:1px solid color-mix(in srgb,currentColor 14%,transparent);background:color-mix(in srgb,var(--accent, currentColor) 7%,transparent);color:inherit;text-decoration:none}.contact-details__quick-links.svelte-11ejy8i{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.55rem;margin:0;padding:0;list-style:none}.contact-details__quick-link.svelte-11ejy8i{display:inline-flex;align-items:center;gap:.45rem;min-height:2.25rem;padding:.45rem .7rem;border-radius:9999px;border:1px solid color-mix(in srgb,currentColor 14%,transparent);background:color-mix(in srgb,currentColor 3%,transparent);color:inherit;font-size:.9rem;font-weight:600;text-decoration:none;transition:border-color .2s ease,background-color .2s ease,transform .2s ease}.contact-details__quick-link.svelte-11ejy8i:hover,.contact-details__primary.svelte-11ejy8i:hover{border-color:color-mix(in srgb,var(--accent, currentColor) 45%,transparent);background:color-mix(in srgb,var(--accent, currentColor) 10%,transparent);transform:translateY(-1px)}.contact-details__group.svelte-11ejy8i{display:grid;gap:.45rem;min-width:0;padding:1rem 0;border-top:1px solid color-mix(in srgb,currentColor 13%,transparent)}.contact-details__group.svelte-11ejy8i:last-child{border-bottom:1px solid color-mix(in srgb,currentColor 13%,transparent)}@media(min-width:700px){.contact-details__group.svelte-11ejy8i{grid-template-columns:minmax(8rem,10rem) minmax(0,1fr);gap:1.15rem;padding:.65rem 0}}.contact-details__group-head.svelte-11ejy8i{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:0;padding:0 .15rem}@media(min-width:700px){.contact-details__group-head.svelte-11ejy8i{display:block;padding-top:.8rem}}.contact-details__eyebrow.svelte-11ejy8i{margin:0;font-family:var(--font-sans);font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb,currentColor 55%,transparent)}.contact-details__group-note.svelte-11ejy8i{margin:.2rem 0 0;font-size:.9rem;color:color-mix(in srgb,currentColor 68%,transparent)}.contact-details__items.svelte-11ejy8i{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:0}.contact-details__items.svelte-11ejy8i>li:where(.svelte-11ejy8i)+li:where(.svelte-11ejy8i){border-top:1px solid color-mix(in srgb,currentColor 10%,transparent)}.contact-details__card.svelte-11ejy8i{display:flex;align-items:center;gap:.85rem;min-height:3.45rem;padding:.6rem .25rem;border-radius:.35rem;border:0;background:transparent;text-decoration:none;color:inherit;transition:background-color .2s ease,color .2s ease}.contact-details__card.svelte-11ejy8i:hover{background:color-mix(in srgb,var(--accent, currentColor) 8%,transparent)}.dark .contact-details__card.svelte-11ejy8i{background:transparent}.dark .contact-details__card.svelte-11ejy8i:hover{background:color-mix(in srgb,white 8%,transparent)}.contact-details__icon.svelte-11ejy8i{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:2.25rem;height:2.25rem;border-radius:9999px;background:color-mix(in srgb,currentColor 8%,transparent);color:color-mix(in srgb,currentColor 75%,transparent)}.contact-details.svelte-11ejy8i:not(.contact-details--compact) .contact-details__icon:where(.svelte-11ejy8i){width:1.85rem;height:1.85rem;border-radius:0;background:transparent;color:color-mix(in srgb,currentColor 70%,transparent)}.contact-details__text.svelte-11ejy8i{display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1}.contact-details__label.svelte-11ejy8i{font-size:1rem;font-weight:600;line-height:1.3}.contact-details__handle.svelte-11ejy8i{font-size:.875rem;line-height:1.35;color:color-mix(in srgb,currentColor 65%,transparent)}.contact-details__external.svelte-11ejy8i{flex-shrink:0;font-size:.85rem;opacity:.45}.lightbox-enter{animation:svelte-lnsl0r-fadeIn .2s ease-out}@keyframes svelte-lnsl0r-fadeIn{0%{opacity:0}to{opacity:1}}.main-carousel .splide__slide{display:flex;align-items:center;justify-content:center;background:transparent;min-height:300px;max-height:60vh}@media(min-width:768px){.main-carousel .splide__slide{min-height:400px;max-height:70vh}}.main-carousel .splide__slide button{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.main-carousel .splide__slide img{background:transparent;max-width:100%;max-height:60vh;width:auto;height:auto}@media(min-width:768px){.main-carousel .splide__slide img{max-height:70vh}}.thumbnail-carousel .splide__slide{opacity:.6;transition:opacity .2s ease;width:100px!important;height:60px!important;max-width:100px!important;max-height:60px!important;margin:0!important;padding:0!important}.thumbnail-carousel .splide__slide.is-active{opacity:1;border-color:#14b8a6!important}.thumbnail-carousel .splide__slide button{margin:0!important;padding:0!important}.thumbnail-carousel .splide__slide img{max-width:100%;max-height:100%;object-fit:cover;margin:0!important;padding:0!important;display:block}.thumbnail-carousel .splide__arrow{width:2.5rem!important;height:2.5rem!important;border:2px solid rgb(24 24 27)!important;background:#ffffffe6!important;-webkit-backdrop-filter:blur(12px)!important;backdrop-filter:blur(12px)!important;border-radius:9999px!important;transition:all .3s ease-in-out!important;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a!important;opacity:1!important}.dark .thumbnail-carousel .splide__arrow{border-color:#f4f4f5!important;background:#27272ae6!important}.thumbnail-carousel .splide__arrow:disabled{opacity:.3!important;cursor:not-allowed!important}.thumbnail-carousel .splide__arrow:focus-visible{outline:2px solid rgb(20 184 166)!important;outline-offset:2px!important}.thumbnail-carousel .splide__arrow svg{fill:#18181b!important;width:1rem!important;height:1rem!important;stroke-width:2.5!important}.dark .thumbnail-carousel .splide__arrow svg{fill:#f4f4f5!important}@media(max-width:768px){.thumbnail-carousel .splide__slide{width:80px!important;height:48px!important;max-width:80px!important;max-height:48px!important;margin:0!important;padding:0!important}.thumbnail-carousel .splide__track{mask-image:linear-gradient(to right,transparent 0%,black 15%,black 85%,transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0%,black 15%,black 85%,transparent 100%)}.thumbnail-carousel .splide__list{overflow:visible}}.portfolio-project.svelte-jb492r{padding:1.5rem 0;border-bottom:1px solid color-mix(in srgb,currentColor 12%,transparent)}.portfolio-project.svelte-jb492r:first-of-type{padding-top:.5rem}.portfolio-project.svelte-jb492r:last-of-type{border-bottom:none;padding-bottom:0}.dark .portfolio-project.svelte-jb492r{border-bottom-color:color-mix(in srgb,white 14%,transparent)}.portfolio-project__title.svelte-jb492r{margin:0 0 .5rem;font-family:var(--font-heading);font-size:1.35rem;font-weight:400;line-height:1.3}.portfolio-project__title.svelte-jb492r a:where(.svelte-jb492r){text-decoration:underline;text-underline-offset:.2em}.portfolio-project__description.svelte-jb492r{margin:0 0 .85rem;font-size:1.05rem;line-height:1.65;color:color-mix(in srgb,currentColor 82%,transparent)}.portfolio-project__labels.svelte-jb492r{margin-top:0;margin-bottom:0}.portfolio-project__link.svelte-jb492r{display:inline-flex;align-items:center;margin-top:.35rem;font-size:.95rem;font-weight:500;text-decoration:underline;text-underline-offset:.2em}.portfolio-project__link.svelte-jb492r:hover{opacity:.85}.sr-only.svelte-jb492r{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}div.svelte-clyidt{position:relative;width:100%;height:100%}canvas.svelte-clyidt{display:block;position:relative;width:100%;height:100%}@keyframes svelte-oqas9y-pulse-subtle{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}kbd.svelte-oqas9y{animation:svelte-oqas9y-pulse-subtle 2s ease-in-out infinite}.animated-dash{animation:svelte-fgejj-dash-animation .5s linear infinite}@keyframes svelte-fgejj-dash-animation{0%{stroke-dashoffset:0}to{stroke-dashoffset:10}}.rotating-border.svelte-fgejj{position:absolute;inset:-4px;border-radius:50%;border:2px dashed transparent;pointer-events:none;opacity:0;transition:opacity .3s ease-in-out;z-index:49}@media(hover:hover){.theme-selector-container.svelte-fgejj:hover .rotating-border:where(.svelte-fgejj){opacity:1;border-color:var(--accent-color);animation:svelte-fgejj-spin 8s linear infinite}}@keyframes svelte-fgejj-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.push-hold-icon.svelte-fgejj{animation:svelte-fgejj-fadeInScale .3s ease-in-out}.push-hold-icon.svelte-fgejj svg{width:24px;height:24px;color:inherit}.icon-transition{animation:svelte-fgejj-fadeInScale .3s ease-in-out}.quick-click-icon{animation:svelte-fgejj-popInOut .8s ease-in-out}@keyframes svelte-fgejj-fadeInScale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes svelte-fgejj-popInOut{0%{opacity:0;transform:scale(.5)}30%{opacity:1;transform:scale(1.2)}60%{transform:scale(.95)}80%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.menu-item.active-item.svelte-fgejj{box-shadow:0 0 0 2px var(--accent-color)}button.svelte-12vo1u7{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;touch-action:none}nav.svelte-12vo1u7{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.hamburger-container.svelte-12vo1u7{position:relative}.rotating-border.svelte-12vo1u7{position:absolute;top:-4px;left:-4px;width:calc(100% + 8px);height:calc(100% + 8px);border-radius:50%;border:2px dashed transparent;opacity:0;transition:opacity .3s ease-in-out;pointer-events:none;z-index:45}@media(hover:hover)and (pointer:fine){.hamburger-container.svelte-12vo1u7:hover .rotating-border:where(.svelte-12vo1u7){opacity:1;border-color:var(--accent-color);animation:svelte-12vo1u7-rotateBorder 8s linear infinite}}@keyframes svelte-12vo1u7-rotateBorder{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.push-hold-icon.svelte-12vo1u7{animation:svelte-12vo1u7-fadeInScale .3s ease-in-out}.push-hold-icon.svelte-12vo1u7 svg{width:24px;height:24px;color:inherit}.icon-transition{animation:svelte-12vo1u7-fadeInScale .3s ease-in-out}@keyframes svelte-12vo1u7-fadeInScale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes svelte-12vo1u7-gentlePulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.pulse-rings-container.svelte-12vo1u7{transition:opacity 2s ease-out}.pulse-ring.svelte-12vo1u7{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;border:2px solid rgb(24 24 27);border-radius:50%;opacity:0;pointer-events:none;z-index:45}.dark .pulse-ring.svelte-12vo1u7{border-color:#f4f4f5}.pulse-ring-1.svelte-12vo1u7{animation:svelte-12vo1u7-pulseExpandBlur 2s ease-out infinite}.pulse-ring-2.svelte-12vo1u7{animation:svelte-12vo1u7-pulseExpandBlur 2s ease-out .6s infinite}.pulse-ring-3.svelte-12vo1u7{animation:svelte-12vo1u7-pulseExpandBlur 2s ease-out 1.2s infinite}@keyframes svelte-12vo1u7-pulseExpandBlur{0%{width:48px;height:48px;opacity:.8;filter:blur(0px)}50%{opacity:.6;filter:blur(1px)}to{width:80px;height:80px;opacity:0;filter:blur(3px)}}@keyframes svelte-1v3rvxa-fadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-fade-in.svelte-1v3rvxa{animation:svelte-1v3rvxa-fadeIn .2s ease-out forwards}.view-toggle-button.svelte-1iklx48{overflow:visible}.view-toggle-button.svelte-1iklx48:before{content:"";position:absolute;inset:-4px;z-index:0;border-radius:9999px;padding:2px;opacity:0;pointer-events:none;background:conic-gradient(from 0deg,#f36b7f,#f6c65b,#68d884,#55c7e8,#8f7cff,#f36b7f);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;transition:opacity .25s ease}.view-toggle-button--particle-prompt.svelte-1iklx48:before{opacity:.78;animation:svelte-1iklx48-particle-toggle-rainbow 7s linear infinite}.view-toggle-button.svelte-1iklx48 svg{position:relative;z-index:1}.hero-title-card.svelte-1iklx48{box-sizing:border-box;min-inline-size:min(calc(100vw - 2rem),clamp(21rem,34vw,30rem));min-block-size:clamp(6.25rem,12vw,7.9rem)}.hero-title-heading.svelte-1iklx48{line-height:1;min-block-size:clamp(2rem,5vw,3.5rem);text-wrap:balance}.hero-title-subtitle.svelte-1iklx48{line-height:1;min-block-size:.875rem}@keyframes svelte-1iklx48-particle-toggle-rainbow{to{transform:rotate(1turn)}}@media(prefers-reduced-motion:reduce){.view-toggle-button--particle-prompt.svelte-1iklx48:before{animation:none}}.blur-image-container.svelte-m8sahu{position:relative;display:block;width:100%;height:100%;overflow:hidden}.blur-image-img.svelte-m8sahu{position:absolute;inset:0;width:100%;height:100%;display:block}@media(max-width:767px){.hero-mobile-height.svelte-1q37ri0,.hero-sticky-height.svelte-1q37ri0{height:100svh!important}section canvas{height:100svh!important}}@supports (-webkit-touch-callout: none){.hero-mobile-height.svelte-1q37ri0,.hero-sticky-height.svelte-1q37ri0{height:100svh!important}section canvas{height:100svh!important}}section canvas{width:100%;height:100%;display:block;position:absolute;top:0;left:0}.particle-loading-layer.svelte-1q37ri0{position:absolute;inset:0;z-index:0;background-color:var(--hero-bg);background-image:radial-gradient(circle at 16% 22%,color-mix(in srgb,var(--hero-bg),white 38%) 0 7px,transparent 8px),radial-gradient(circle at 78% 18%,color-mix(in srgb,var(--hero-bg),white 28%) 0 5px,transparent 6px),radial-gradient(circle at 55% 64%,color-mix(in srgb,var(--hero-bg),black 18%) 0 8px,transparent 9px),radial-gradient(circle at 30% 82%,color-mix(in srgb,var(--hero-bg),white 20%) 0 5px,transparent 6px);background-size:132px 132px,164px 164px,196px 196px,148px 148px;filter:blur(10px);opacity:.42;pointer-events:none;transform:scale(1.04)}@keyframes svelte-fex32q-pulse-subtle{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}kbd.svelte-fex32q{animation:svelte-fex32q-pulse-subtle 2s ease-in-out infinite}.label-prose p:has(+.label-container){margin-bottom:1em!important}.label-container{margin-top:-.75rem;margin-bottom:1.25rem}.label-prose .label-container{margin-top:-.75em;margin-bottom:1em}.label-prose .gallery-container{margin-top:-1rem;margin-bottom:1.5rem}@media(min-width:768px){.label-prose .gallery-container{margin-top:0;margin-bottom:3rem}}.label-prose p:has(+.gallery-container){margin-bottom:1.5rem!important}.label-prose .gallery-container+p,.label-prose .gallery-container+hr{margin-top:1.5rem!important}.label-prose .portfolio-list{margin-top:1.5rem;margin-bottom:.5rem}.label-prose .portfolio-list+hr,.label-prose hr+.portfolio-list{margin-top:2rem!important}.label-prose .contact-page{margin-top:.5rem}.label-prose .contact-page__lede{margin:0 0 .25rem!important;max-width:42rem;font-size:clamp(1.125rem,2vw,1.3rem)!important;line-height:1.65!important;color:color-mix(in srgb,currentColor 78%,transparent)}.label-prose .contact-page__form{margin-top:2.5rem;padding-top:2rem;border-top:1px solid color-mix(in srgb,currentColor 12%,transparent)}.dark .label-prose .contact-page__form{border-top-color:color-mix(in srgb,white 14%,transparent)}.label-prose .contact-page__form-heading{margin:0 0 1.25rem!important;font-family:var(--font-heading);font-size:clamp(1.5rem,2.5vw,1.85rem)!important;font-weight:400!important;line-height:1.2!important}@media(min-width:768px){.label-prose p:has(+.gallery-container){margin-bottom:2rem!important}.label-prose .gallery-container+p,.label-prose .gallery-container+hr{margin-top:2rem!important}}
