/* Shared layout rules for the published site and the visual editor. */
.page-blocks,.page-intro,.project-intro{width:min(calc(100% - 2 * var(--page-gutter,6vw)),var(--custom-page-width,var(--page-width)));}
.page-blocks .content-block{width:var(--section-size,100%);padding:var(--pad-top,0px) var(--pad-right,0px) var(--pad-bottom,0px) var(--pad-left,0px);border-radius:var(--section-radius,0px);min-height:var(--section-min-height,0px);box-sizing:border-box;position:relative;overflow-wrap:anywhere;}
.page-blocks .content-block[data-anchor=left]{margin-left:0;margin-right:auto}.page-blocks .content-block[data-anchor=center]{margin-left:auto;margin-right:auto}.page-blocks .content-block[data-anchor=right]{margin-left:auto;margin-right:0}
.content-block[data-shadow=soft]{box-shadow:0 10px 32px #0003}.content-block[data-shadow=strong]{box-shadow:0 20px 65px #0007}
.content-block[data-font=serif],.content-block[data-font=serif] .prose{font-family:Georgia,serif}.content-block[data-font=mono],.content-block[data-font=mono] .prose{font-family:Consolas,monospace}.content-block[data-font=sans],.content-block[data-font=sans] .prose{font-family:Arial,sans-serif}
.content-block>.source-columns{display:grid;grid-template-columns:var(--columns);gap:var(--column-gap,48px);align-items:var(--column-align,start)}.source-column{min-width:0}.source-column>.content-block:last-child{margin-bottom:0}
.content-block>.source-photo-grid{display:grid;grid-template-columns:repeat(var(--gallery-columns,3),minmax(0,1fr));gap:var(--gallery-gap,20px)}
.source-photo-grid .slide{display:flex;flex-direction:column;align-items:stretch;height:auto;min-width:0;text-decoration:none;border-radius:var(--image-radius,0px);overflow:hidden;background:transparent;color:inherit}
.source-photo-grid .slide img{width:100%;height:auto;max-height:none;aspect-ratio:var(--image-ratio,auto);object-fit:var(--media-fit,contain);object-position:var(--focus-x,50%) var(--focus-y,50%);border-radius:var(--image-radius,0px)}
.block-images .slide img{object-position:var(--focus-x,50%) var(--focus-y,50%)}.block-images .single-photo,.block-images .slideshow{border-radius:var(--image-radius,var(--radius))}
.content-block>.gallery-masonry{display:block;columns:var(--gallery-columns,3);column-gap:var(--gallery-gap,20px)}.gallery-masonry .slide{break-inside:avoid;margin-bottom:var(--gallery-gap,20px)}
.content-block>.gallery-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:var(--gallery-gap,20px);padding-bottom:12px}.gallery-strip>.slide{flex:0 0 calc((100% - (var(--gallery-columns,3) - 1) * var(--gallery-gap,20px))/var(--gallery-columns,3));scroll-snap-align:start}.gallery-strip .slide img{height:var(--media-height,500px);object-fit:var(--media-fit,contain)}
.photo-caption{display:block;padding:12px 6px;font-size:14px;line-height:1.5;color:inherit}.slideshow .slide,.single-photo .slide{position:relative}.slideshow .photo-caption,.single-photo .photo-caption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#000b);color:#fff;padding:30px 20px 18px}
.slideshow-fade .slideshow-track{display:grid!important;transform:none!important}.slideshow-fade .slide{grid-area:1/1;opacity:0;pointer-events:none;min-width:0}.slideshow-fade .slide.fade-current{opacity:1;pointer-events:auto}.slideshow-fade .slide:not([data-slide-item]){display:none}
.custom-heading{font-size:clamp(24px,calc(var(--heading-size,48px) * .6 + 2vw),var(--heading-size,48px));line-height:1.1;margin:0;letter-spacing:-.025em;color:inherit}.studio-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:13px 25px;border:1px solid transparent;border-radius:var(--radius);text-decoration:none;font-size:16px;font-weight:600;transition:transform .2s,filter .2s}.studio-button:hover{transform:translateY(-2px);filter:brightness(1.1)}.button-solid{background:var(--accent);color:var(--on-accent)}.button-outline{border-color:currentColor;color:var(--ink)}.button-text{color:var(--accent);padding-left:0;padding-right:0}.button-stretch{display:flex;width:100%}
.studio-accordion details{border-bottom:1px solid var(--line);padding:18px 0}.studio-accordion summary{cursor:pointer;font-size:20px;list-style:none;display:flex;gap:20px;justify-content:space-between}.studio-accordion summary:after{content:'+'}.studio-accordion details[open] summary:after{content:'−'}.studio-accordion .prose{padding-top:18px}
.visual-motion-pending[data-animation=fade]{opacity:0}.visual-motion-pending[data-animation=rise]{opacity:0;translate:0 35px}.visual-motion-pending[data-animation=zoom]{opacity:0;scale:.94}.content-block[data-animation]:not([data-animation=inherit]):not([data-animation=none]){transition:opacity .7s,translate .7s,scale .7s}.content-block[data-animation=none]{opacity:1!important;transform:none!important;transition:none!important}
.empty-media{min-height:120px}.photo-dialog-navigation{display:flex;gap:12px;justify-content:center;margin:12px}.photo-dialog-navigation button{background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:10px 20px;border-radius:6px;cursor:pointer}
@media(max-width:900px){.content-block>.source-columns{grid-template-columns:repeat(var(--mobile-columns,1),minmax(0,1fr))}.source-columns.reverse-mobile>.source-column{order:calc(10 - var(--column-index))}.source-columns.reverse-mobile{display:flex;flex-direction:column-reverse}.source-columns.reverse-mobile>.source-column{width:100%}}
@media(max-width:700px){.page-blocks .content-block{width:var(--section-mobile-size,100%);padding-top:min(var(--pad-top,0px),80px);padding-bottom:min(var(--pad-bottom,0px),80px);padding-left:min(var(--pad-left,0px),32px);padding-right:min(var(--pad-right,0px),32px)}.content-block>.source-photo-grid{grid-template-columns:repeat(var(--gallery-mobile,1),minmax(0,1fr))}.content-block>.gallery-masonry{columns:var(--gallery-mobile,1)}.gallery-strip>.slide{flex-basis:85%}.page-blocks,.page-intro,.project-intro{width:min(calc(100% - 2 * min(var(--page-gutter,6vw),32px)),var(--custom-page-width,var(--page-width)))}}
@media(prefers-reduced-motion:reduce){.visual-motion-pending{opacity:1!important;translate:none!important;scale:1!important}.content-block,.studio-button{transition:none!important}}
