body {
    margin: 0;
    font-family: var(--font-body);
    font-size: var(--hc-text-base);
    line-height: var(--hc-line-body);
    color: var(--hc-black);
    background: var(--hc-white);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: clip;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-heading);
    font-weight: 700;
    line-height: var(--hc-line-heading);
}

img:not(.hc-navbar__logo):not(.hc-gallery__img):not(.hc-gallery-lightbox__img):not(.hc-speaker__photo):not(.hc-image-text__img),
svg {
    max-width: 100%;
    height: auto;
}

.hc-main {
    min-height: 50vh;
}

.hc-section {
    padding: 4rem 0;
}

.hc-section--white {
    background: var(--hc-white);
}

.hc-container {
    max-width: var(--hc-container-max);
    margin: 0 auto;
    padding: 0 1.25rem;
}

.hc-container-fluid {
    width: 100%;
    max-width: none;
    margin: 0 auto;
    padding: 0 1.25rem;
}

@media (min-width: 768px) {
    .hc-container,
    .hc-container-fluid {
        padding: 0 2rem;
    }
}

@media (min-width: 1200px) {
    .hc-container-fluid {
        padding: 0 2.5rem;
    }
}

.hc-page-messages {
    padding-top: 1rem;
}

/* Progressive image reveal */
.hc-media-blur {
    filter: blur(18px);
    opacity: 0.55;
    transform: scale(1.04);
    transition:
        filter 0.65s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.5s ease,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: filter, opacity, transform;
}

.hc-media-blur.is-loaded {
    filter: blur(0);
    opacity: 1;
    transform: scale(1);
    will-change: auto;
}

.hc-gallery__img.hc-media-blur {
    transform: scale(1.06);
}

.hc-gallery__img.hc-media-blur.is-loaded {
    transform: scale(1.001);
}

.hc-gallery__item:hover .hc-gallery__img.hc-media-blur.is-loaded,
.hc-gallery__item:focus-visible .hc-gallery__img.hc-media-blur.is-loaded {
    transform: scale(1.04);
}

.hc-gallery-lightbox__img.hc-media-blur {
    transform: none;
}

.hc-speaker__photo.hc-media-blur {
    transform: scale(1.05);
    transform-origin: center 22%;
}

.hc-speaker__photo.hc-media-blur.is-loaded {
    transform: scale(1);
    transform-origin: center 22%;
}

.hc-speaker:hover .hc-speaker__photo.hc-media-blur.is-loaded {
    transform: scale(1.04);
    transform-origin: center 22%;
}
    .hc-media-blur,
    .hc-media-blur.is-loaded {
        filter: none;
        opacity: 1;
        transform: none;
        transition: none;
    }
}
