/* Preserve the reference's instant, full-width invisible gallery controls. */
.gallery-slideshow-control-btn { pointer-events: auto; cursor: pointer; }
.gallery-slideshow-control-btn:focus-visible { outline: 1px dotted #000; outline-offset: -4px; }
.gallery-slideshow-wrapper { touch-action: pan-y; }
.gallery-slideshow-item img { user-select: none; -webkit-user-drag: none; }
.gallery-slideshow-item[aria-hidden="true"] { pointer-events: none; }
.header-burger, .header-menu { display: none !important; }

.shop-nav-link { margin-top: 10px !important; }
/* Keep the reference's small typography consistent across window widths. */
html { font-size: 14.285714px !important; }

@media (max-width: 767px) {
  body, p, h1, h2, h3, h4, h5, h6, .gallery-caption-content, .shop-toolbar { font-size: 10px !important; line-height: 1.4; }
}
@media (max-width: 767px) {
  body.homepage:not(.shop-page) .gallery-slideshow { position: relative; }
  body.homepage:not(.shop-page) .gallery-slideshow-controls { position: absolute; top: 6vw; bottom: 0; left: 6vw; right: 6vw; width: auto; height: auto; }
}
@media (max-width: 767px) {
  body.homepage:not(.shop-page) .gallery-slideshow-controls { top: 0; left: 0; right: 0; }
  body.homepage:not(.shop-page) .gallery-slideshow-control-btn { margin: 0; padding: 0; }
}
@media (max-width: 767px) {
  body.homepage:not(.shop-page) .gallery-slideshow-control-btn { margin: 0 !important; }
}
/* Linked captions remain readable and clickable above the invisible slide controls. */
.gallery-caption { z-index: 3; pointer-events: auto; }
.gallery-caption a { pointer-events: auto; color: inherit; }
.gallery-caption-content { white-space: pre-wrap; }
@media (hover:hover) { .gallery-caption a:hover { opacity: .6; } }
[data-editor="footer-links"], [data-editor="footer-links"] a { color: #aaa; }
.gallery-caption button, .gallery-caption select { pointer-events: auto; }
.gallery-media-button{font:inherit;border:0;padding:0;background:none;color:#aaa;cursor:pointer}.video-actions{display:flex;justify-content:flex-end;gap:15px;margin-top:10px}.gallery-media-button:hover{color:#000}.gallery-slideshow-item video{user-select:none}.preview-banner{position:relative;z-index:200;background:#f4f4f4;padding:10px 4vw;font:10px/1.4 monospace;color:#777;display:flex;justify-content:space-between;gap:20px}.preview-banner a{color:#111;text-decoration:none}

/* Homepage text uses the same fixed size as the shop at every viewport width. */
body.homepage:not(.shop-page), body.homepage:not(.shop-page) p, body.homepage:not(.shop-page) .gallery-caption-content{font-size:10px!important;line-height:1.4}

/* A gentle logo increase preserves its proportions and the shared left margin. */
.header-title-logo a,.header-title-logo img{max-height:121px}
@media(max-width:767px){.header-title-logo a,.header-title-logo img{max-height:110px}}

/* Lift navigation without moving the gallery or changing its reserved space. */
body{--site-navigation-lift:20px}
#page{z-index:auto}
[data-editor="header-links"]{transform:translateY(calc(0px - var(--site-navigation-lift)));z-index:11!important}
.fe-block:has([data-editor="header-links"]){z-index:11!important}
@media(max-width:767px){body{--site-navigation-lift:28px}}

/* Shared columns line up the footer, gallery captions, and view controls. */
body{--site-margin:4vw;--site-gap:3.4vw;--site-column:calc((100vw - var(--site-margin) - var(--site-margin) - var(--site-gap) - var(--site-gap) - var(--site-gap))/4)}
#footer-sections .content-wrapper{padding-left:var(--site-margin)!important;padding-right:var(--site-margin)!important}
[data-editor="footer-links"]{display:grid;grid-template-columns:minmax(0,1fr) var(--site-column);gap:var(--site-gap);font:10px/1.4 'Roboto Mono',monospace}
.site-footer-column{min-width:0;text-align:left}
.site-footer-column p{margin:0 0 14.285714px!important;font-size:10px!important;line-height:1.4}
.site-footer-column p:last-child{margin-bottom:0!important}
.site-footer-column a{overflow-wrap:anywhere}
body[data-portfolio-gallery] .gallery-caption{box-sizing:border-box;width:100%;max-width:none;margin-left:0;margin-right:0;height:auto;min-height:0;align-items:flex-start}
body[data-portfolio-gallery] .gallery-caption-wrapper{box-sizing:border-box;width:var(--site-column);margin-left:calc(100% - var(--site-column));margin-right:0;height:auto;overflow:visible}
body[data-portfolio-gallery] p.gallery-caption-content{padding:0!important;text-align:left!important;font-size:10px!important;line-height:1.4}
body[data-portfolio-gallery] .video-actions{justify-content:flex-start}
body[data-portfolio-gallery] .gallery-slideshow[data-show-captions="true"][data-thumbnails="false"]{margin-bottom:calc(max(100px,var(--gallery-caption-height,100px)) + 50px)}
.portfolio-toolbar{position:absolute;right:var(--site-margin);width:var(--site-column);z-index:11;font:10px/1.4 'Roboto Mono',monospace}
.portfolio-view-switch{display:flex;gap:10px}
.portfolio-view-button{border:0;border-radius:0;background:none;padding:0;font:inherit;color:#aaa;cursor:pointer;text-decoration:none}
.portfolio-view-button[aria-pressed="true"]{color:#000}
@media(hover:hover){.portfolio-view-button:hover{color:#000}}
.portfolio-view-button:focus-visible,.portfolio-media-photo:focus-visible{outline:1px dotted #000;outline-offset:4px}
.portfolio-gallery-section[hidden],.portfolio-media-grid[hidden]{display:none!important}
.portfolio-media-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:50px var(--site-gap);padding:var(--site-margin) var(--site-margin) 0;margin-bottom:150px}
.portfolio-media-card{min-width:0;margin:0;text-align:left}
.portfolio-media-photo{display:block;width:78%;aspect-ratio:3/4;border:0;border-radius:0;padding:0;background:#fff;cursor:pointer;overflow:hidden}
.portfolio-media-photo img,.portfolio-media-photo video{display:block;width:100%;height:100%;object-fit:cover}
.portfolio-media-caption{margin-top:22px;font:10px/1.4 'Roboto Mono',monospace;white-space:pre-wrap;overflow-wrap:anywhere;color:#000}
.portfolio-media-caption p{margin:0;font:inherit}
.portfolio-media-caption a{color:inherit}
@media(max-width:767px){body{--site-margin:6vw;--site-gap:4vw;--site-column:calc((100vw - var(--site-margin) - var(--site-margin) - var(--site-gap))/2)}.portfolio-view-switch{gap:8px}.portfolio-media-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:38px}.portfolio-media-caption{margin-top:16px}}
.portfolio-toolbar{display:flex;flex-direction:column;gap:14.285714px}.portfolio-contact{margin:0!important;font:inherit;color:#000}.portfolio-contact a{color:inherit}.site-sort-button{font:10px/1.4 'Roboto Mono',monospace;text-align:left;border:0;border-radius:0;background:none;padding:0;color:#aaa;cursor:pointer;text-decoration:none;max-width:100%;overflow-wrap:anywhere}.site-sort-button:focus-visible{outline:1px dotted #000;outline-offset:4px}html body .site-sort-button{color:#aaa!important}html body .site-sort-button[data-sort-active="true"]{color:#000!important}.sort-navigation-section{margin-bottom:var(--sort-extra-space,28px)!important}.site-gallery-instruction{position:absolute;margin:0!important;color:var(--site-accent,#35579f);font:10px/1.4 'Roboto Mono',monospace;text-align:left;pointer-events:none;z-index:3;animation:site-gallery-instruction-pulse 6s ease-in-out infinite}.site-gallery-instruction span{display:block}@keyframes site-gallery-instruction-pulse{0%,100%{opacity:0}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.site-gallery-instruction{animation:none}}@media(max-width:767px){.sort-navigation-section{margin-bottom:var(--sort-extra-space,56px)!important}}

.site-gallery-instruction.instruction-dismissed{animation:none;opacity:0;transition:opacity .35s ease-out}

.portfolio-media-photo{position:relative}.portfolio-media-photo img,.portfolio-media-photo video{position:absolute;inset:0;transform-origin:center}

/* Render portfolio navigation in its final columns before scripts or media load. */
body[data-portfolio-gallery] [data-editor="header-links"]{display:grid;grid-template-columns:minmax(0,1fr) var(--site-column);column-gap:var(--site-gap);width:calc(100vw - var(--site-margin) - var(--site-margin));align-items:start}
body[data-portfolio-gallery] .portfolio-toolbar{position:static;right:auto;width:var(--site-column)}
.portfolio-header-left:has(> .shop-nav-link:first-child)+.portfolio-toolbar{margin-top:10px}
/* The initial response and interactive page use the same geometry. */
.stable-navigation{position:relative!important;display:grid!important;grid-template-columns:minmax(0,1fr) var(--site-column);column-gap:var(--site-gap);padding:140px var(--site-margin) 0!important;box-sizing:border-box;min-height:0!important;margin-bottom:80px!important}
.stable-navigation [data-editor="header-links"]{transform:none!important;width:100%!important;grid-column:1/-1}
.stable-navigation .portfolio-toolbar,.stable-navigation .shop-toolbar{position:static!important;margin-top:0!important;gap:14.285714px}
.stable-navigation .portfolio-header-left p,.stable-navigation [data-editor="header-links"]>p{margin:0 0 14.285714px!important}
.shop-page .stable-navigation [data-editor="header-links"]{grid-column:1}
.shop-page .stable-navigation .shop-toolbar{grid-column:2;grid-row:1}
.stable-navigation .shop-announcement:empty{display:none}
body:has(.stable-navigation) .gallery-slideshow{height:min(100vw,calc(50vh + 8vw))!important}
body:has(.stable-navigation) .gallery-slideshow-wrapper{height:100%!important;flex:none}
body:has(.stable-navigation) .gallery-slideshow .gallery-caption{position:absolute;top:100%!important}
body:has(.stable-navigation) .site-gallery-instruction,body:has(.stable-navigation) .shop-gallery-instruction{left:auto!important;right:0!important;top:0!important;width:var(--site-column)!important}
.touch-direction{display:none!important}
@media(max-width:767px){.stable-navigation{padding-top:180px!important;margin-bottom:80px!important}.desktop-direction{display:none!important}.touch-direction{display:inline!important}body:has(.stable-navigation) .site-gallery-instruction,body:has(.stable-navigation) .shop-gallery-instruction{top:-40px!important}}
@media(pointer:coarse){.desktop-direction{display:none!important}.touch-direction{display:inline!important}}

.gallery-direction .desktop-direction{display:inline}.gallery-direction .touch-direction{display:none!important}@media(max-width:767px),(pointer:coarse){.gallery-direction .desktop-direction{display:none}.gallery-direction .touch-direction{display:inline!important}}
body:has(.stable-navigation) .site-gallery-instruction,body:has(.stable-navigation) .shop-gallery-instruction{right:var(--site-margin)!important;top:var(--site-margin)!important}
@media(max-width:767px){body:has(.stable-navigation) .site-gallery-instruction,body:has(.stable-navigation) .shop-gallery-instruction{top:calc(var(--site-margin) - 40px)!important}}
/* Captions reserve their own space in normal flow, including before scripts run. */
body:has(.stable-navigation) .gallery-slideshow{--initial-photo-height:calc(min(100vw,50vh + 8vw) - var(--site-margin));display:block!important;box-sizing:border-box;height:auto!important;padding:var(--site-margin) var(--site-margin) 0!important;margin-bottom:150px!important}
body:has(.stable-navigation) .gallery-slideshow-wrapper{position:relative;width:100%!important;height:auto!important}
body:has(.stable-navigation) .gallery-slideshow-item[data-active="true"]{position:relative!important;height:auto!important;width:100%!important}
body:has(.stable-navigation) .gallery-slideshow-item-wrapper{position:absolute!important;top:0;left:0;width:100%;height:var(--initial-photo-height)!important}
body:has(.stable-navigation) .gallery-slideshow-item[data-active="true"] .gallery-caption{position:relative!important;top:auto!important;margin-top:calc(var(--initial-photo-height) + 25px)!important}
body:has(.stable-navigation) .gallery-slideshow-item[data-active="false"] .gallery-caption{display:none!important}
@media(min-width:768px){body:has(.stable-navigation) #shop-gallery .shop-product-summary{position:absolute;bottom:calc(100% - 14px);width:100%;margin-top:0!important}body:has(.stable-navigation) #shop-gallery .shop-buy{margin-top:24px!important}}
body:has(.stable-navigation) .gallery-slideshow-list{position:relative!important;height:auto!important}
body:has(.stable-navigation) .gallery-slideshow-item[data-active="false"]{visibility:hidden!important;pointer-events:none}
/* Keep desktop captions and purchase controls inside the opening viewport. */
@media(min-width:768px){.stable-navigation{padding-top:110px!important;margin-bottom:40px!important}body:has(.stable-navigation) .gallery-slideshow{--initial-photo-height:max(120px,min(50vh + 4vw,100vh - 330px - 4vw))}}

/* Keep the gallery purchase action fixed while variants grow upward. */
@media(min-width:768px){
 body:has(.stable-navigation) #shop-gallery .shop-buy{position:relative}
 body:has(.stable-navigation) #shop-gallery .shop-buy .shop-variant{position:absolute;bottom:100%;left:0;width:100%}
 body:has(.stable-navigation) #shop-gallery .shop-product-summary{transform:translateY(calc(-1 * var(--gallery-variant-space,0px)))}
}
@media(max-width:767px){.stable-navigation{padding-top:clamp(40px,calc(50svh - 260px),100px)!important;margin-bottom:64px!important}}

/* Use the same outer margin for the logo and page navigation. */
.header-announcement-bar-wrapper{padding-left:var(--site-margin)!important;padding-right:var(--site-margin)!important}
.header-inner{padding-left:0!important;padding-right:0!important}
/* Reserve the right text column beside the gallery at narrow desktop widths. */
@media(min-width:768px) and (max-width:1100px){
 body:has(.stable-navigation) .gallery-slideshow-item-src{width:calc(100% - 2 * var(--site-column) - 2 * var(--site-gap))!important;margin-left:auto!important;margin-right:auto!important}
}

/* The mobile hint follows the toolbar with the same row spacing. */
@media(max-width:767px){.stable-navigation{margin-bottom:calc(40px + 28.571428px - var(--site-margin))!important}}

/* Trim the blank space built into the mobile logo image. */
@media(max-width:767px){.header-title-logo{margin-top:-27.5px!important}}

/* Mobile navigation and gallery text use one line of breathing room. */
@media(max-width:767px){
 .stable-navigation{padding-top:clamp(25.714286px,calc(50svh - 274.285714px),85.714286px)!important}
 body:has(.stable-navigation) .gallery-slideshow-item[data-active="true"] .gallery-caption{margin-top:calc(var(--initial-photo-height) + 14px)!important}
 body:has(.stable-navigation) .site-gallery-instruction,body:has(.stable-navigation) .shop-gallery-instruction{top:calc(var(--site-margin) - 42px)!important}
}

/* Footer rows share the site's line rhythm, with optional inline link groups. */
.site-footer-row{display:flex;align-items:baseline;gap:1em;margin-bottom:14.285714px}
.site-footer-row:last-child{margin-bottom:0}
.site-footer-column .site-footer-row p{margin:0!important}
.site-currency-button{font:inherit!important;line-height:inherit!important;color:#b3b3b3;background:none;border:0;padding:0;cursor:pointer;white-space:nowrap}
@media(hover:hover){.site-currency-button:hover{color:#000}}

/* Opacity animations create a stacking context; keep navigation above the header background. */
.stable-navigation{z-index:11!important}

/* Navigation's blank padding must not intercept the logo link. */
.stable-navigation{pointer-events:none}
.stable-navigation :is(a,button,select){pointer-events:auto}
/* Preserve the visible logo's scale and position with the tightly cropped file. */
.header-title-logo a.cropped-header-logo{position:relative;display:block;width:121px;height:121px}
.header-title-logo a.cropped-header-logo img{position:absolute;left:.0667%;top:42.5617%;width:58.1333%!important;height:auto!important;max-height:none!important}
@media(max-width:767px){.header-title-logo a.cropped-header-logo{width:110px;height:110px}}

/* About uses the same navigation columns and page grid as the galleries. */
body[data-about-page] #siteWrapper{display:flex;flex-direction:column;min-height:100svh}
body[data-about-page] #page{flex:1}
body[data-about-page] .stable-navigation [data-editor="header-links"]{display:grid;grid-template-columns:minmax(0,1fr) var(--site-column);column-gap:var(--site-gap);align-items:start}
body[data-about-page] .stable-navigation .portfolio-toolbar{width:var(--site-column)}
body[data-about-page] .site-about-content{display:grid;grid-template-columns:minmax(0,1fr) var(--site-column);gap:var(--site-gap);padding:var(--site-margin);box-sizing:border-box;margin-bottom:80px}
body[data-about-page] [data-editor="about-text"]{grid-column:2;min-width:0;font:inherit;overflow-wrap:anywhere}
body[data-about-page] [data-editor="about-text"] p{font-size:inherit;line-height:1.4;margin:0 0 14.285714px;white-space:pre-wrap}
body[data-about-page] #footer-sections{margin-top:auto}


/* Let the hint stay on one line whenever the text column has room. */
body :is(.site-gallery-instruction,.shop-gallery-instruction)>span{display:inline!important;white-space:normal}

/* Persistent navigation uses the same selected state as gallery/grid. */
html body .site-primary-navigation a{color:#aaa!important;text-decoration:none}
html body .site-primary-navigation a[aria-current="page"]{color:#000!important}
@media(hover:hover){html body .site-primary-navigation a:hover{color:#000!important}}
.site-primary-navigation p{margin:0 0 14.285714px!important}
.site-primary-navigation p:last-child{margin-bottom:0!important}
/* Hint text wraps naturally within the shared right column on every screen. */
body :is(.site-gallery-instruction,.shop-gallery-instruction){white-space:normal!important;overflow-wrap:anywhere}
body :is(.site-gallery-instruction,.shop-gallery-instruction)>span{white-space:normal!important}

/* Preserve the action row when its optional button is hidden. */
.portfolio-action-slot{min-height:1.4em}
@media(min-width:768px){
 .site-primary-navigation[data-layout-desktop="horizontal"]{display:flex;align-items:baseline;gap:1em;flex-wrap:wrap}
 .stable-navigation .site-primary-navigation[data-layout-desktop="horizontal"] p{margin:0!important}
}
@media(max-width:767px){
 .site-primary-navigation[data-layout-mobile="horizontal"]{display:flex;align-items:baseline;gap:1em;flex-wrap:wrap}
 .stable-navigation .site-primary-navigation[data-layout-mobile="horizontal"] p{margin:0!important}
}

/* Wrap between the two instruction phrases rather than midway through them. */
body :is(.site-gallery-instruction,.shop-gallery-instruction)>span{display:inline-block!important;width:max-content;max-width:100%;white-space:normal!important;vertical-align:top}

/* Opening mode is present in the first response, before gallery scripts run. */
body[data-opening-view="grid"] .page-section:has(.gallery-slideshow),body[data-opening-view="grid"] .portfolio-gallery-section{display:none!important}
body[data-opening-view="grid"] :is(.site-gallery-instruction,.shop-gallery-instruction){display:none!important}
