/* 1.0.15: Android/mobile fixes and independently configurable footer. */
.theme-toggle{font-size:32.4px;line-height:1}
.viewer-info-toggle{background-size:min(72%,var(--ib-control-icon-size))}
.footer-copy-mobile{display:none}
.site-footer{font-size:var(--ib-footer-desktop-size);padding-top:var(--ib-footer-desktop-padding);padding-bottom:var(--ib-footer-desktop-padding)}
body.ib-footer-desktop-end{padding-bottom:0}.ib-footer-desktop-end .site-footer{position:static;margin-top:32px}
body.ib-footer-desktop-hidden{padding-bottom:0}.ib-footer-desktop-hidden .site-footer{display:none}
.viewer-info a,.viewer-info button{pointer-events:auto}
.viewer-slide.is-zoomed{touch-action:pan-x pan-y pinch-zoom;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.project-viewer.is-text-width .viewer-cover-thumbs{display:flex;grid-template-columns:none}.project-viewer.is-text-width .viewer-cover-thumb{width:var(--ib-cover-thumb-size)}

@media(max-width:760px){
  body[class*=ib-header-design-] .main-navigation a{font-size:18px;line-height:1.25;font-weight:400;padding:8px 0}
  .viewer-cover-thumbs,.project-viewer.is-text-width .viewer-cover-thumbs{display:grid;grid-template-columns:repeat(var(--ib-slider-columns),minmax(0,1fr));width:100%}.viewer-cover-thumb,.project-viewer.is-text-width .viewer-cover-thumb{width:100%}
  .hero-mode-desktop{display:none!important}.hero-mode-mobile{display:block!important;background:var(--hero-mobile-bg)}
  .footer-copy-desktop{display:none}.footer-copy-mobile{display:block}
  .site-footer{font-size:var(--ib-footer-mobile-size);padding-top:var(--ib-footer-mobile-padding);padding-bottom:var(--ib-footer-mobile-padding)}
  body.ib-footer-mobile-fixed{padding-bottom:calc(2 * var(--ib-footer-mobile-padding) + 22px)}.ib-footer-mobile-fixed .site-footer{display:flex;position:fixed;margin:0}
  body.ib-footer-mobile-end{padding-bottom:0}.ib-footer-mobile-end .site-footer{display:flex;position:static;margin-top:0;white-space:normal;overflow:visible}
  body.ib-footer-mobile-hidden{padding-bottom:0}.ib-footer-mobile-hidden .site-footer{display:none}
}

/* Optional tablet mode: use mobile data/layout from 761 through 1024 px. */
@media(min-width:761px) and (max-width:1024px){
  html.ib-tablet-mobile .portfolio-grid{grid-template-columns:repeat(var(--ib-mobile-cols),minmax(0,1fr))}
  html.ib-tablet-mobile .hero-mode-desktop{display:none!important}
  html.ib-tablet-mobile .hero-mode-mobile{display:block!important;background:var(--hero-mobile-bg)}
  html.ib-tablet-mobile .project-tile.is-hero,html.ib-tablet-mobile .project-tile.is-category-header{aspect-ratio:calc(var(--ib-mobile-cols) * 1.6 / var(--hero-mobile-height))}
  html.ib-tablet-mobile .tile-title{font-family:var(--ib-mobile-tile-font);font-weight:var(--ib-mobile-tile-weight);font-size:var(--ib-mobile-tile-font-size)}
  html.ib-tablet-mobile .tile-categories{font-size:var(--ib-mobile-tile-category-size)}
}

/* 1.0.19: stable hero width and clean tile placeholders while lazy images load. */
.project-tile.is-hero{width:100%}
.project-tile .tile-view{background:var(--hover,#111)}
.project-tile .tile-view>img{opacity:0}
.project-tile .tile-view>img.is-loaded{opacity:1}
/* Tile text is never painted with fallback typography. It is revealed only after the active local fonts are ready. */
.project-tile:not(.is-hero):not(.is-category-header) .tile-overlay>*{visibility:hidden!important}
html.ib-tile-type-ready body.ib-tile-text-hover .project-tile:not(.is-hero):not(.is-category-header) .tile-overlay>*{visibility:visible!important}
html.ib-tile-type-ready body.ib-tile-text-loaded .project-tile:not(.is-hero):not(.is-category-header).has-loaded-image .tile-overlay>*{visibility:visible!important}
.viewer-links-after-description{margin-top:24px}
