/* Original site styles are vendored locally. These rules replace runtime-only behavior. */
html{scroll-behavior:smooth}
/* Reserve the logo/header space before media and font downloads finish. */
:root{--header-height:calc(65px + 2.2vw)}
@media(max-width:767px){:root{--header-height:calc(53px + 12vw)}}
/* Both logo variants must scale their intrinsic width with the capped height. */
.maestro-standalone .header-title-logo img,.maestro-standalone .header-mobile-logo img{width:auto;max-width:100%;object-fit:contain;aspect-ratio:1500/1462}
/* Fit unstretched circular photos inside their grid cells, as Squarespace's
   image runtime did. CSS sizes them before first paint and on every resize. */
.maestro-standalone .fluid-image-component-root[data-is-image-stretched="false"][data-shape-mask="circle"]>.fluid-image-animation-wrapper{container-type:size}
.maestro-standalone .fluid-image-component-root[data-is-image-stretched="false"][data-shape-mask="circle"] .fluid-image-container{--image-component-container-width:min(100cqw,100cqh);--image-component-container-height:min(100cqw,100cqh);--image-component-native-aspect-ratio:1}
/* Fade the complete page together; the video never appears on its own. */
@keyframes maestro-page-enter{from{opacity:0}to{opacity:1}}
.maestro-standalone #siteWrapper{animation:maestro-page-enter .6s ease-out backwards}
/* Let the mobile header track document scrolling natively. The original page
   already reserves its height, so cancel only the new sticky element's flow
   space. Keep the long scrolling wrapper out of the header's animation layer. */
@media(max-width:767px){
  .maestro-standalone.tweak-fixed-header #header{position:sticky;top:0;bottom:auto;margin-bottom:calc(-1 * var(--header-height));transform:none;transition:none}
  .maestro-standalone #siteWrapper{animation:none}
  .maestro-standalone #header,.maestro-standalone #page,.maestro-standalone #footer-sections{animation:maestro-page-enter .6s ease-out backwards}
}
.maestro-standalone .preFade,.maestro-standalone .preSlide{opacity:1!important;transform:none!important}
.maestro-standalone .background-image-fx{visibility:visible}
.maestro-standalone .portfolio-hover{visibility:visible}
.maestro-standalone .portfolio-hover-bg img{display:block!important;opacity:1!important}
.maestro-standalone .portfolio-hover-bg{opacity:0!important}
.maestro-standalone .portfolio-hover-bg.maestro-active{opacity:1!important}
.maestro-standalone .gallery-masonry-wrapper{display:block!important;columns:2;column-gap:100px;height:auto!important}
.maestro-standalone .gallery-masonry-item{break-inside:avoid;position:relative!important;top:auto!important;left:auto!important;transform:none!important;width:100%!important;margin:0 0 100px;opacity:1!important}
.maestro-standalone .gallery-masonry-item img{width:100%;height:auto!important;display:block;opacity:1!important}
@media(max-width:767px){.maestro-standalone .gallery-masonry-wrapper{columns:1}.maestro-standalone .gallery-masonry-item{margin-bottom:24px}}
.maestro-standalone .sqs-shape-block-container[data-stretched-to-fill]>.sqs-shape{width:100%;height:100%}
.maestro-standalone .sqsrte-scaled-text-container:not(.loaded)>.sqsrte-scaled-text{position:relative;left:auto;font-size:clamp(32px,7vw,110px)}
.maestro-standalone .sqsrte-scaled-text,.maestro-standalone .sqsrte-scaled-text *{transition:none!important}
.maestro-background-video{width:100%;height:100%;object-fit:cover;display:block}
.sqs-video-background{overflow:hidden}
.sqs-video-background-native,.sqs-video-background-native__video-player{width:100%;height:100%;position:absolute;inset:0}
.maestro-standalone .maestro-contact-form .field-list .form-item{margin:0 0 20px;display:flex;flex-direction:column;gap:6px;min-width:0}
.maestro-contact-form .title{font-size:1rem;font-weight:500}
/* Squarespace makes inputs transparent and draws their borders in a runtime
   effects layer. Our native forms have no such layer. Override those important
   declarations here, with enough specificity for both legacy form stylesheets. */
:root .maestro-standalone .maestro-contact-form .field-list .form-item.field .field-element{box-sizing:border-box;display:block;width:100%;max-width:100%;min-width:0;margin:0;padding:8px 15px;border:1px solid rgba(0,0,0,.55)!important;border-radius:.4rem;background:rgba(255,255,255,.8)!important;color:#111;font:inherit;min-height:48px;height:auto;box-shadow:none}
:root .maestro-standalone .maestro-contact-form .field-list .form-item.field textarea.field-element{resize:vertical;min-height:100px;height:100px}
:root .maestro-standalone .maestro-contact-form .field-list .form-item.field :is(.field-element,.maestro-choice input):focus-visible{outline:2px solid #432083!important;outline-offset:2px}
.maestro-contact-form .required-marker{font-size:.875rem;font-weight:400}
.maestro-contact-form .maestro-choice{display:flex;align-items:center;gap:10px}
.maestro-contact-form .form-button-wrapper{text-align:center;margin-top:24px}
.maestro-contact-form .maestro-choice input{width:20px;height:20px;accent-color:#432083}
.maestro-contact-form small{font-size:.875rem}
.maestro-youtube-background{position:absolute;inset:-15%;width:130%;height:130%;border:0;pointer-events:none}
.maestro-standalone .header-nav-item--folder:focus-within .header-nav-folder-content,.maestro-standalone .header-nav-item--folder.maestro-open .header-nav-folder-content{opacity:1;pointer-events:auto;visibility:visible}
.maestro-image-dialog{padding:0;border:0;background:transparent;max-width:94vw;max-height:94vh;overflow:visible}
.maestro-image-dialog::backdrop{background:#000c}
.maestro-image-dialog img{max-width:90vw;max-height:86vh;object-fit:contain;display:block}
.maestro-image-dialog button{position:absolute;right:0;top:-42px;border:0;background:white;color:black;border-radius:50%;width:36px;height:36px;font-size:24px;cursor:pointer}
.maestro-standalone .user-items-list-banner-slideshow .slide{visibility:hidden;opacity:0}
.maestro-standalone .user-items-list-banner-slideshow .slides{opacity:1}
.maestro-standalone .user-items-list-banner-slideshow .slide.maestro-active{visibility:visible!important;opacity:1!important;transform:none!important;z-index:1}
.maestro-standalone .accordion-item__dropdown{height:auto;max-height:none;display:none}
.maestro-standalone .accordion-item.is-open .accordion-item__dropdown{display:block}
.maestro-standalone .accordion-item.is-open .plus__vertical-line{transform:rotate(90deg)}
.maestro-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.maestro-form-status{font-size:1rem;min-height:1.5em}
.maestro-form-status:empty{display:none}
.maestro-standalone .newsletter-form-spinner{display:none}
.maestro-standalone [hidden]{display:none!important}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid currentColor;outline-offset:4px}
.maestro-standalone .header-menu{visibility:hidden}
.maestro-standalone.header--menu-open .header-menu{visibility:visible;opacity:1}
.maestro-standalone .header-menu-nav-folder{display:none!important;transform:none!important}
.maestro-standalone .header-menu-nav-folder.maestro-active-folder{display:flex!important;opacity:1!important;visibility:inherit}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media(prefers-reduced-motion:reduce){.maestro-standalone #siteWrapper,.maestro-standalone #header,.maestro-standalone #page,.maestro-standalone #footer-sections{animation:none}}
