/* Insta-Bulletin issue reader — v1.4.0
   Individual issues use a distraction-free plugin template. The library remains
   part of the normal Insta-Net portal, while the magazine reader owns its screen. */

html {
    background: #fff !important;
}

body.single-ibl_issue,
body.ibl-reader-standalone-page {
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
}

/* Fallback suppression in case a UAE/Astra/Elementor header/footer is injected
   by a hook even though the standalone issue template does not call the theme
   header/footer templates. */
body.single-ibl_issue #masthead,
body.single-ibl_issue #colophon,
body.single-ibl_issue .site-header,
body.single-ibl_issue .site-footer,
body.single-ibl_issue .ast-primary-header-bar,
body.single-ibl_issue .ast-mobile-header-wrap,
body.single-ibl_issue #ast-desktop-header,
body.single-ibl_issue #ast-mobile-header,
body.single-ibl_issue .elementor-location-header,
body.single-ibl_issue .elementor-location-footer,
body.single-ibl_issue [data-elementor-type="header"],
body.single-ibl_issue [data-elementor-type="footer"],
body.single-ibl_issue .hfe-site-header,
body.single-ibl_issue .hfe-site-footer,
body.single-ibl_issue .ehf-header,
body.single-ibl_issue .ehf-footer {
    display: none !important;
}

.ibl-reader {
    --ibl-reader-navy: #022340;
    --ibl-reader-green: #6ea435;
    --ibl-reader-white: #fff;
    --ibl-reader-muted: #687d8c;
    --ibl-reader-line: #dce4e8;
    --ibl-reader-radius: 40px;
    --ibl-reader-stage-height: calc(100svh - 120px);
    /* Break out of any theme/Elementor content-width wrapper so the reader is truly full width. */
    position: relative;
    left: 50%;
    width: 100vw;
    max-width: 100vw;
    margin: 0 0 0 -50vw;
    padding: 40px clamp(16px, 2.2vw, 40px) 40px;
    color: var(--ibl-reader-navy);
    background: #fff;
    font-family: inherit;
    box-sizing: border-box;
    overflow: hidden;
}

body.ibl-reader-standalone-page .ibl-reader {
    left: auto;
    width: 100%;
    max-width: none;
    margin: 0;
}

.ibl-reader *,
.ibl-reader *::before,
.ibl-reader *::after {
    box-sizing: border-box;
}

.ibl-reader-template-main {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Remove theme spacing that can otherwise create a large blank band above issue pages.
   These selectors only apply on the Insta-Bulletin custom post type. */
body.single-ibl_issue #content,
body.single-ibl_issue .site-content,
body.single-ibl_issue .content-area,
body.single-ibl_issue .site-main {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.ibl-reader-heading-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    min-width: 0;
    margin: 0 0 clamp(12px, 1.2vw, 18px);
}

.ibl-reader-heading-left {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: clamp(14px, 1.5vw, 24px);
}

.ibl-reader-back {
    display: inline-flex;
    min-height: 38px;
    flex: 0 0 auto;
    align-items: center;
    gap: 8px;
    padding: 8px 13px;
    border: 1px solid var(--ibl-reader-line);
    border-radius: 90px;
    background: #fff;
    color: var(--ibl-reader-navy);
    font-family: inherit;
    font-size: clamp(11px, .78vw, 13px);
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}

.ibl-reader-back-arrow {
    color: var(--ibl-reader-green);
    font-size: 18px;
    line-height: 1;
}

.ibl-reader-issue-label {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    gap: 9px;
    color: var(--ibl-reader-green);
    font-size: clamp(12px, 1vw, 17px);
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: .07em;
    text-transform: uppercase;
    white-space: nowrap;
}

.ibl-reader-issue-line {
    width: clamp(20px, 2vw, 30px);
    height: 1px;
    flex: 0 0 auto;
    background: var(--ibl-reader-green);
}

.ibl-reader-tabs {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(4px, .55vw, 10px);
    min-width: 0;
    margin-left: auto;
    overflow-x: auto;
    scrollbar-width: none;
}

.ibl-reader-tabs::-webkit-scrollbar {
    display: none;
}

.ibl-reader-tab {
    min-height: 36px;
    flex: 0 0 auto;
    padding: 7px 12px;
    border: 0;
    border-radius: 90px;
    background: transparent;
    color: #607483;
    font-family: inherit;
    font-size: clamp(10px, .75vw, 13px);
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    transition: color .18s ease, background-color .18s ease;
}

.ibl-reader-tab.is-active {
    background: #e6f0dd;
    color: var(--ibl-reader-navy);
}

.ibl-reader-contents-button {
    display: none;
    min-height: 42px;
    align-items: center;
    gap: 7px;
    padding: 9px 14px;
    border: 0;
    border-radius: 90px;
    background: var(--ibl-reader-navy);
    color: #fff;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}

.ibl-reader-stage {
    position: relative;
    width: 100%;
    height: var(--ibl-reader-stage-height);
    min-height: 520px;
    perspective: 2200px;
}

.ibl-reader-book {
    position: relative;
    width: 100%;
    height: 100%;
    outline: none;
    transform-style: preserve-3d;
}

.ibl-reader-page {
    position: absolute;
    inset: 0;
    overflow: hidden;
    border-radius: var(--ibl-reader-radius);
    background: #f5f2ec;
    box-shadow: 0 20px 58px rgba(2, 35, 64, .12);
    transform: rotateY(0deg);
    transform-origin: left center;
    transform-style: preserve-3d;
    backface-visibility: hidden;
    contain: layout paint;
    transition: transform 1.75s cubic-bezier(.16, .72, .14, 1), box-shadow 1.75s ease;
}

.ibl-reader-page.is-turned {
    transform: rotateY(-180deg);
    box-shadow: 0 8px 18px rgba(2, 35, 64, .05);
}

.ibl-reader-page.is-turning {
    will-change: transform;
    box-shadow: 38px 24px 80px rgba(2, 35, 64, .25);
}

.ibl-reader-page::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 8%;
    z-index: 8;
    pointer-events: none;
    opacity: .8;
    background: linear-gradient(90deg, transparent, rgba(2, 35, 64, .045));
}

.ibl-reader-cover {
    position: absolute;
    inset: 0;
    background: var(--ibl-reader-navy);
}

.ibl-reader-cover-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.ibl-reader-cover-fallback {
    width: 100%;
    height: 100%;
    background:
        radial-gradient(circle at 76% 23%, rgba(110, 164, 53, .45), transparent 23%),
        linear-gradient(145deg, #164d70, #062c49 58%, #021d32);
}

.ibl-reader-cover-shade {
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(90deg, rgba(2, 23, 39, .55) 0%, rgba(2, 23, 39, .16) 38%, rgba(2, 23, 39, .03) 67%, rgba(2, 23, 39, .13) 100%);
    pointer-events: none;
}

.ibl-reader-cover-title {
    position: absolute;
    z-index: 4;
    top: clamp(42px, 8vh, 100px);
    left: clamp(34px, 6vw, 105px);
    color: #fff;
    line-height: .87;
    text-shadow: 0 7px 12px rgba(0, 0, 0, .5);
    pointer-events: none;
}

.ibl-reader-cover-light {
    display: block;
    margin: 0 0 8px;
    color: #79b73b;
    font-size: clamp(36px, 4.1vw, 68px);
    font-weight: 300;
    letter-spacing: -.025em;
}

.ibl-reader-cover-bold {
    display: block;
    color: #fff;
    font-size: clamp(58px, 7vw, 108px);
    font-weight: 800;
    letter-spacing: -.045em;
}

.ibl-reader-read-now {
    position: absolute;
    right: clamp(28px, 5.4vw, 92px);
    bottom: clamp(26px, 5.5vh, 68px);
    z-index: 5;
    display: inline-flex;
    min-height: 52px;
    align-items: center;
    gap: 15px;
    padding: 13px clamp(20px, 2vw, 32px);
    border: 0;
    border-radius: 90px;
    background: var(--ibl-reader-green);
    color: #fff;
    box-shadow: 0 9px 24px rgba(0, 0, 0, .16);
    font-family: inherit;
    font-size: clamp(14px, 1.2vw, 20px);
    font-weight: 700;
    line-height: 1;
    letter-spacing: .12em;
    text-transform: uppercase;
    cursor: pointer;
    transition: transform .18s ease, filter .18s ease;
}

.ibl-reader-read-arrow {
    position: relative;
    width: 24px;
    height: 14px;
    flex: 0 0 24px;
}

.ibl-reader-read-arrow::before {
    content: "";
    position: absolute;
    top: 6px;
    left: 0;
    width: 19px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
}

.ibl-reader-read-arrow::after {
    content: "";
    position: absolute;
    top: 2px;
    right: 0;
    width: 9px;
    height: 9px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(45deg);
}

.ibl-reader-arrow {
    position: absolute;
    top: 50%;
    z-index: 20;
    display: grid;
    width: clamp(42px, 3.6vw, 56px);
    height: clamp(42px, 3.6vw, 56px);
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: #88c63f;
    color: #fff;
    box-shadow: 0 7px 20px rgba(2, 35, 64, .16);
    font-family: Arial, sans-serif;
    font-size: clamp(27px, 2.3vw, 38px);
    line-height: 1;
    cursor: pointer;
    transform: translateY(-50%);
    transition: transform .18s ease, filter .18s ease;
}

.ibl-reader-arrow[hidden] {
    display: none !important;
}

.ibl-reader-arrow--prev {
    left: calc(clamp(16px, 2.6vw, 40px) * -0.72);
}

.ibl-reader-arrow--next {
    right: calc(clamp(16px, 2.6vw, 40px) * -0.72);
}

.ibl-reader-status {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Temporary page 2. It exists only to test Page 1 navigation and page turning. */
.ibl-reader-placeholder-page {
    position: relative;
    display: grid;
    height: 100%;
    grid-template-columns: minmax(0, 1fr) minmax(220px, .45fr);
    background: #fff;
}

.ibl-reader-placeholder-copy {
    display: flex;
    max-width: 760px;
    flex-direction: column;
    justify-content: center;
    padding: clamp(36px, 6vw, 90px);
}

.ibl-reader-placeholder-kicker {
    margin-bottom: 12px;
    color: var(--ibl-reader-green);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.ibl-reader-placeholder-copy h2 {
    margin: 0 0 18px;
    color: var(--ibl-reader-navy);
    font-size: clamp(42px, 5vw, 76px);
    font-weight: 700;
    line-height: .96;
    letter-spacing: -.045em;
}

.ibl-reader-placeholder-copy p {
    margin: 0;
    color: var(--ibl-reader-muted);
    font-size: clamp(16px, 1.25vw, 20px);
    line-height: 1.7;
}

.ibl-reader-placeholder-mark {
    display: grid;
    place-items: center;
    background: var(--ibl-reader-navy);
    color: rgba(255, 255, 255, .16);
    font-size: clamp(120px, 20vw, 290px);
    font-weight: 800;
    letter-spacing: -.09em;
}

.ibl-reader-drawer {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: none;
    padding: 20px;
    place-items: center;
    background: rgba(2, 35, 64, .82);
    backdrop-filter: blur(10px);
}

.ibl-reader-drawer.is-open {
    display: grid;
}

.ibl-reader-drawer-panel {
    width: min(760px, 100%);
    max-height: 85vh;
    overflow: auto;
    padding: clamp(22px, 3vw, 32px);
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 22px 70px rgba(0, 0, 0, .22);
}

.ibl-reader-drawer-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.ibl-reader-drawer-kicker {
    margin-bottom: 5px;
    color: var(--ibl-reader-green);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.ibl-reader-drawer-head h2 {
    margin: 0;
    color: var(--ibl-reader-navy);
    font-size: clamp(28px, 3vw, 40px);
    font-weight: 700;
    line-height: 1;
}

.ibl-reader-drawer-close {
    min-height: 42px;
    padding: 9px 14px;
    border: 0;
    border-radius: 90px;
    background: var(--ibl-reader-navy);
    color: #fff;
    font-family: inherit;
    font-weight: 700;
    cursor: pointer;
}

.ibl-reader-drawer-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 22px;
}

.ibl-reader-drawer-item {
    display: grid;
    min-height: 72px;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid var(--ibl-reader-line);
    border-radius: 16px;
    background: #fff;
    color: var(--ibl-reader-navy);
    font-family: inherit;
    text-align: left;
    cursor: pointer;
}

.ibl-reader-drawer-number {
    color: var(--ibl-reader-green);
    font-size: 13px;
    font-weight: 800;
}

.ibl-reader-drawer-label {
    min-width: 0;
    font-size: 15px;
    font-weight: 700;
}

@media (hover: hover) and (pointer: fine) {
    .ibl-reader-back:hover {
        border-color: #b9d79f;
        background: #f5f9f1;
        color: var(--ibl-reader-navy);
    }
    .ibl-reader-tab:hover {
        background: #f1f6ed;
        color: var(--ibl-reader-navy);
    }
    .ibl-reader-read-now:hover,
    .ibl-reader-arrow:hover {
        transform: translateY(-2px);
        filter: brightness(1.04);
    }
    .ibl-reader-arrow:hover {
        transform: translateY(-50%) scale(1.04);
    }
    .ibl-reader-drawer-item:hover {
        border-color: #b9d79f;
        background: #f7faf4;
    }
}

@media (max-width: 1180px) {
    .ibl-reader-back-text {
        display: none;
    }
    .ibl-reader-back {
        width: 38px;
        padding: 0;
        justify-content: center;
    }
}

@media (max-width: 1024px) {
    .ibl-reader {
        --ibl-reader-radius: 30px;
    }
    .ibl-reader-tabs {
        gap: 2px;
    }
    .ibl-reader-tab {
        padding-inline: 9px;
    }
    .ibl-reader-cover-title {
        left: clamp(28px, 5vw, 58px);
    }
}

@media (max-width: 760px) {
    .ibl-reader {
        --ibl-reader-radius: 22px;
        padding: 20px clamp(14px, 4vw, 20px) 40px;
    }

    .ibl-reader-heading-row {
        gap: 10px;
        margin-bottom: 12px;
    }

    .ibl-reader-heading-left {
        gap: 9px;
        min-width: 0;
    }

    .ibl-reader-back {
        width: 40px;
        min-height: 40px;
    }

    .ibl-reader-issue-label {
        min-width: 0;
        font-size: clamp(11px, 3.1vw, 14px);
        white-space: normal;
    }

    .ibl-reader-tabs {
        display: none;
    }

    .ibl-reader-contents-button {
        display: inline-flex;
        margin-left: auto;
    }

    .ibl-reader-stage {
        min-height: 480px;
    }

    .ibl-reader-cover-shade {
        background: linear-gradient(180deg, rgba(2, 25, 43, .58), rgba(2, 25, 43, .07) 48%, rgba(2, 25, 43, .38));
    }

    .ibl-reader-cover-title {
        top: 30px;
        left: 22px;
        right: 22px;
    }

    .ibl-reader-cover-light {
        font-size: clamp(34px, 10vw, 52px);
    }

    .ibl-reader-cover-bold {
        font-size: clamp(50px, 14vw, 80px);
    }

    .ibl-reader-read-now {
        right: auto;
        bottom: 24px;
        left: 22px;
        min-height: 48px;
        padding: 12px 19px;
        font-size: 13px;
    }

    .ibl-reader-arrow {
        width: 44px;
        height: 44px;
        font-size: 30px;
    }

    .ibl-reader-arrow--prev {
        left: -8px;
    }

    .ibl-reader-arrow--next {
        right: -8px;
    }

    .ibl-reader-placeholder-page {
        grid-template-columns: 1fr;
    }

    .ibl-reader-placeholder-mark {
        display: none;
    }

    .ibl-reader-placeholder-copy {
        padding: clamp(28px, 7vw, 46px);
    }

    .ibl-reader-drawer-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 420px) {
    .ibl-reader-contents-button {
        padding-inline: 12px;
    }
    .ibl-reader-contents-button span {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ibl-reader-page,
    .ibl-reader-read-now,
    .ibl-reader-arrow {
        transition: none;
    }
}

/* -------------------------------------------------------------------------
   Page 2 — A Letter From The Director
   ------------------------------------------------------------------------- */
.ibl-director-page {
    width: 100%;
    height: 100%;
    min-height: 100%;
    overflow: hidden;
    background: #fff;
}

.ibl-director-layout {
    position: relative;
    width: 100%;
    min-height: 100%;
    height: 100%;
    padding: clamp(34px, 3.2vw, 52px) clamp(34px, 4.1vw, 68px) clamp(96px, 8vw, 118px);
    background: #fff;
}

.ibl-director-heading {
    position: relative;
    z-index: 2;
    clear: none !important;
    margin: 0 0 clamp(18px, 1.55vw, 25px);
    color: var(--ibl-reader-navy);
    font-family: inherit;
    font-size: clamp(32px, 3vw, 48px);
    font-weight: 300;
    line-height: 1.08;
    letter-spacing: -.02em;
}

/*
 * The image, subheading and letter all live in ONE formatting context.
 * This is deliberate: it allows the text to wrap naturally around the
 * Director image and then continue full-width once it passes the image.
 */
.ibl-director-flow {
    position: relative;
    display: block;
    width: 100%;
    clear: none !important;
}

.ibl-director-flow::after {
    content: "";
    display: block;
    clear: both;
}

.ibl-director-subheading {
    position: relative;
    z-index: 2;
    clear: none !important;
    margin: 0 0 clamp(14px, 1.25vw, 19px);
    color: #0b456b;
    font-family: inherit;
    font-size: clamp(16px, 1.2vw, 20px);
    font-weight: 800;
    line-height: 1.35;
}

.ibl-director-photo {
    float: right !important;
    clear: none !important;
    width: clamp(225px, 20.5vw, 325px);
    margin: 0 0 clamp(18px, 1.8vw, 28px) clamp(28px, 3vw, 48px) !important;
    overflow: hidden;
    border-radius: clamp(24px, 2.5vw, 40px);
    background: #edf1f2;
}

.ibl-director-photo img,
.ibl-director-image {
    display: block;
    width: 100%;
    height: clamp(310px, 39vh, 430px);
    max-height: none;
    object-fit: cover;
    object-position: center top;
}

.ibl-director-copy-wrap {
    position: static;
    display: block;
    clear: none !important;
    overflow: visible !important;
}

.ibl-director-copy {
    display: block;
    clear: none !important;
    color: #111;
    font-family: inherit;
    font-size: clamp(14px, 1.03vw, 17.5px);
    font-weight: 400;
    line-height: 1.34;
    letter-spacing: .01em;
}

.ibl-director-copy p {
    clear: none !important;
    margin: 0 0 clamp(14px, 1.2vw, 19px);
}

.ibl-director-copy p:last-child {
    margin-bottom: 0;
}

.ibl-director-copy h1,
.ibl-director-copy h2,
.ibl-director-copy h3,
.ibl-director-copy h4,
.ibl-director-copy h5,
.ibl-director-copy h6 {
    margin: 0 0 clamp(12px, 1vw, 16px);
    color: #12345a;
    line-height: 1.12;
}

.ibl-director-copy h1 { font-size: clamp(28px, 2.35vw, 38px); }
.ibl-director-copy h2 { font-size: clamp(24px, 2.05vw, 32px); }
.ibl-director-copy h3 { font-size: clamp(21px, 1.7vw, 28px); }
.ibl-director-copy h4 { font-size: clamp(18px, 1.45vw, 23px); }
.ibl-director-copy h5,
.ibl-director-copy h6 { font-size: clamp(16px, 1.2vw, 20px); }

.ibl-director-copy ul,
.ibl-director-copy ol {
    margin: 0 0 clamp(14px, 1.2vw, 19px) 1.3em;
    padding-left: .35em;
}

.ibl-director-copy li {
    margin: 0 0 .45em;
}

.ibl-director-copy blockquote {
    margin: 0 0 clamp(14px, 1.2vw, 19px);
    padding: .4em 0 .4em 1em;
    border-left: 4px solid #89c63f;
    color: #29435f;
}

.ibl-director-copy a {
    color: #0e5e9b;
    text-decoration: underline;
}

.ibl-director-copy strong {
    font-weight: 700;
}

/*
 * Collapse the complete flow rather than the copy wrapper. This preserves
 * wrapping around the float while still allowing a long letter to be clipped.
 */
.ibl-director-page.is-collapsed .ibl-director-flow {
    overflow: hidden;
}

.ibl-director-fade {
    display: none;
    position: absolute;
    z-index: 3;
    right: 0;
    bottom: 0;
    left: 0;
    height: 78px;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(255,255,255,0), #fff 84%);
}

.ibl-director-page.is-collapsed .ibl-director-fade {
    display: block;
}

.ibl-director-read-more {
    position: relative;
    z-index: 5;
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    gap: 8px;
    clear: both;
    margin: 14px 0 0;
    padding: 9px 16px;
    border: 0;
    border-radius: 90px;
    background: var(--ibl-reader-green);
    color: #fff;
    font-family: inherit;
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
}

.ibl-director-read-more[hidden] {
    display: none !important;
}

/* Always anchor the engagement controls to the page bottom. */
.ibl-director-footer {
    position: absolute;
    z-index: 8;
    right: clamp(34px, 4.1vw, 68px);
    bottom: clamp(22px, 2.5vw, 36px);
    left: clamp(34px, 4.1vw, 68px);
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin: 0;
    pointer-events: none;
}

.ibl-director-signoff,
.ibl-director-reactions {
    pointer-events: auto;
}

/*
 * Expanded letters become genuinely taller magazine pages.
 * Move the footer into normal flow so the final paragraph, sign-off and
 * reactions can never overlap one another.
 */
.ibl-director-page.is-expanded {
    height: auto;
    min-height: 100%;
    overflow: visible;
}

.ibl-director-page.is-expanded .ibl-director-layout {
    height: auto;
    min-height: 100%;
    padding-bottom: clamp(32px, 3vw, 48px);
}

.ibl-director-page.is-expanded .ibl-director-flow {
    overflow: visible;
    max-height: none !important;
}

.ibl-director-page.is-expanded .ibl-director-fade {
    display: none !important;
}

.ibl-director-page.is-expanded .ibl-director-footer {
    position: static;
    right: auto;
    bottom: auto;
    left: auto;
    clear: both;
    width: 100%;
    margin-top: clamp(26px, 2.4vw, 38px);
    pointer-events: auto;
}

.ibl-director-page.is-expanded .ibl-director-signoff {
    visibility: visible;
}

/* When a letter is collapsed, it has not reached its real sign-off yet. */
.ibl-director-page.is-collapsed .ibl-director-signoff {
    visibility: hidden;
}

.ibl-director-kind-regards {
    margin-bottom: 2px;
    color: #222;
    font-size: clamp(14px, .95vw, 16px);
    line-height: 1.3;
}

.ibl-director-name {
    color: #173b5b;
    font-size: clamp(25px, 2.1vw, 34px);
    font-weight: 300;
    line-height: 1.05;
    letter-spacing: -.02em;
}

.ibl-director-reactions {
    display: flex;
    max-width: min(100%, 690px);
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    flex-wrap: wrap;
    margin-left: auto;
    align-self: flex-end;
}

.ibl-reaction {
    display: inline-flex;
    min-width: 50px;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 7px 10px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 90px;
    background: #25282d;
    color: #fff;
    box-shadow: 0 4px 12px rgba(2,35,64,.10);
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    transition: transform .16s ease, background-color .16s ease, border-color .16s ease;
}

.ibl-reaction.is-selected {
    border-color: var(--ibl-reader-green);
    background: var(--ibl-reader-green);
}

.ibl-reaction.is-loading {
    opacity: .62;
    pointer-events: none;
}

.ibl-reaction-emoji {
    font-size: 16px;
    line-height: 1;
}

.ibl-reaction-count {
    min-width: 1ch;
    text-align: center;
}

.ibl-reaction-message {
    flex: 0 0 100%;
    min-height: 14px;
    margin-top: 1px;
    color: var(--ibl-reader-muted);
    font-size: 10px;
    line-height: 1.2;
    text-align: right;
}

@media (hover: hover) and (pointer: fine) {
    .ibl-director-read-more:hover,
    .ibl-reaction:hover {
        transform: translateY(-1px);
        filter: brightness(1.04);
    }
}

@media (max-width: 1100px) {
    .ibl-director-photo {
        width: clamp(210px, 24vw, 285px);
        margin-left: 28px !important;
    }

    .ibl-director-photo img,
    .ibl-director-image {
        height: clamp(290px, 38vh, 390px);
    }

    .ibl-director-copy {
        line-height: 1.38;
    }
}

@media (max-width: 900px) {
    .ibl-director-layout {
        padding: 30px clamp(26px, 4vw, 42px) 112px;
    }

    .ibl-director-footer {
        right: clamp(26px, 4vw, 42px);
        bottom: 26px;
        left: clamp(26px, 4vw, 42px);
    }

    .ibl-director-photo {
        width: clamp(190px, 29vw, 255px);
        margin-left: 24px !important;
    }

    .ibl-director-copy {
        font-size: 14.5px;
        line-height: 1.4;
    }
}

@media (max-width: 760px) {
    .ibl-director-layout {
        height: auto;
        min-height: 100%;
        padding: 24px 22px 168px;
    }

    .ibl-director-heading {
        margin-bottom: 18px;
        font-size: clamp(30px, 9.5vw, 42px);
    }

    .ibl-director-flow {
        display: flex;
        flex-direction: column;
    }

    .ibl-director-photo {
        order: 1;
        float: none !important;
        width: min(100%, 340px);
        margin: 0 auto 20px !important;
        border-radius: 24px;
    }

    .ibl-director-subheading {
        order: 2;
        font-size: 16px;
    }

    .ibl-director-copy-wrap {
        order: 3;
    }

    .ibl-director-fade {
        order: 4;
    }

    .ibl-director-photo img,
    .ibl-director-image {
        height: min(58vw, 330px);
        max-height: 330px;
    }

    .ibl-director-copy {
        font-size: 15px;
        line-height: 1.48;
    }

    .ibl-director-footer {
        right: 22px;
        bottom: 22px;
        left: 22px;
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }

    .ibl-director-page.is-expanded .ibl-director-footer {
        position: static;
        width: 100%;
        margin-top: 26px;
    }

    .ibl-director-page.is-expanded .ibl-director-layout {
        padding-bottom: 28px;
    }

    .ibl-director-reactions {
        width: 100%;
        max-width: 100%;
        justify-content: flex-end;
        align-self: stretch;
    }

    .ibl-reaction {
        min-width: 44px;
        min-height: 34px;
        padding: 7px 9px;
    }

    .ibl-reaction-message {
        text-align: right;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ibl-director-read-more,
    .ibl-reaction,
    .ibl-promotion-reaction {
        transition: none;
    }

    .ibl-confetti-piece {
        display: none !important;
        animation: none !important;
    }
}



/* -------------------------------------------------------------------------
   Page 3 — Employee Updates
   Adaptive layout: Welcome / Promotions / Farewells
   ------------------------------------------------------------------------- */
.ibl-employee-page {
    width: 100%;
    height: 100%;
    min-height: 100%;
    background: #fff;
    overflow: hidden;
}

.ibl-employee-layout {
    height: 100%;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    padding: clamp(28px, 2.8vw, 46px) clamp(30px, 3.5vw, 58px) clamp(30px, 3.2vw, 52px);
    background: #fff;
}

.ibl-employee-head {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: clamp(18px, 2vh, 28px);
}

.ibl-employee-chip {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 11px;
    border-radius: 999px;
    background: #e4efd9;
    color: var(--ibl-reader-navy);
    font-size: clamp(10px, .72vw, 12px);
    font-weight: 800;
    line-height: 1;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.ibl-employee-head h2 {
    max-width: 880px;
    margin: 10px 0 0;
    color: var(--ibl-reader-navy);
    font-family: inherit;
    font-size: clamp(32px, 3.5vw, 54px);
    font-weight: 300;
    line-height: 1.04;
    letter-spacing: -.035em;
}

.ibl-employee-page-count {
    flex: 0 0 auto;
    padding-top: 4px;
    color: #8a9aa5;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
}

.ibl-employee-modules {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    gap: clamp(14px, 1.5vw, 22px);
    align-items: stretch;
}

.ibl-employee-modules--1 {
    grid-template-columns: 1fr;
}

.ibl-employee-modules--2 {
    grid-template-columns: minmax(0, 1.72fr) minmax(270px, .78fr);
}

.ibl-employee-modules--2.ibl-employee-modules--promotion-farewell {
    grid-template-columns: 1fr 1fr;
}

.ibl-employee-modules--3 {
    grid-template-columns: minmax(0, 1.45fr) minmax(245px, .7fr) minmax(245px, .7fr);
}

.ibl-employee-module {
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    border-radius: clamp(24px, 2.3vw, 36px);
}

.ibl-employee-module--welcome {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(20px, 2.4vw, 36px);
    background: #f7f7f7;
}

.ibl-employee-module--welcome h3 {
    margin: 0 0 clamp(28px, 3.3vh, 46px);
    color: var(--ibl-reader-green);
    font-size: clamp(25px, 2.4vw, 39px);
    font-weight: 300;
    line-height: 1;
    letter-spacing: .02em;
    text-align: center;
    text-transform: uppercase;
}

.ibl-employee-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
    gap: clamp(14px, 1.7vw, 25px) clamp(10px, 1.3vw, 20px);
    align-items: start;
    justify-content: center;
}

.ibl-employee-card {
    min-width: 0;
    text-align: center;
}

.ibl-employee-avatar {
    width: clamp(82px, 7.4vw, 124px);
    aspect-ratio: 1;
    margin: 0 auto 10px;
    overflow: hidden;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #dce8d3;
    color: var(--ibl-reader-navy);
    box-shadow: 0 7px 16px rgba(2,35,64,.09);
    font-size: 25px;
    font-weight: 700;
}

.ibl-employee-module--welcome[data-count="1"] .ibl-employee-avatar,
.ibl-employee-module--welcome[data-count="2"] .ibl-employee-avatar {
    width: clamp(118px, 10.4vw, 168px);
}

.ibl-employee-module--welcome[data-count="3"] .ibl-employee-avatar {
    width: clamp(108px, 9vw, 146px);
}

.ibl-employee-photo-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ibl-employee-card-name,
.ibl-promotion-name {
    color: #245475;
    font-size: clamp(12.5px, 1vw, 16.5px);
    font-weight: 400;
    line-height: 1.25;
    text-transform: uppercase;
}

.ibl-employee-card-role {
    margin-top: 3px;
    color: #131313;
    font-size: clamp(10.5px, .84vw, 13.5px);
    font-style: italic;
    line-height: 1.25;
}

.ibl-employee-card-location,
.ibl-promotion-location,
.ibl-farewell-location {
    margin-top: 2px;
    color: #6a7d8a;
    font-size: clamp(9.5px, .72vw, 12px);
    line-height: 1.2;
}

.ibl-employee-card-note {
    max-width: 180px;
    margin: 5px auto 0;
    color: #536a79;
    font-size: 10px;
    line-height: 1.25;
}

/* Promotions */
.ibl-employee-module--promotion {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: clamp(22px, 2.3vw, 34px);
    border-top: 4px solid var(--ibl-reader-green);
    background: var(--ibl-reader-navy);
    color: #fff;
}

.ibl-employee-module-kicker {
    color: #a8d47f;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.ibl-employee-module--promotion h3 {
    margin: 7px 0 clamp(22px, 2.3vh, 32px);
    color: var(--ibl-reader-green);
    font-size: clamp(25px, 2.4vw, 39px);
    font-weight: 300;
    line-height: 1;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.ibl-employee-module--farewell h3 {
    margin: 6px 0 20px;
    color: #82bd46;
    font-size: clamp(25px, 2.1vw, 34px);
    font-weight: 700;
    line-height: 1.05;
}

.ibl-promotion-list {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    gap: 12px;
    align-content: center;
}

.ibl-promotion-card {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 13px;
    align-items: center;
    min-width: 0;
}

.ibl-employee-module--promotion[data-count="1"] .ibl-promotion-card {
    grid-template-columns: clamp(138px, 10vw, 168px) minmax(0, 1fr);
    gap: clamp(18px, 1.5vw, 26px);
}

.ibl-promotion-avatar {
    width: 76px;
    aspect-ratio: 1;
    overflow: hidden;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #dbe8d2;
    color: var(--ibl-reader-navy);
    font-size: 20px;
    font-weight: 800;
}

.ibl-employee-module--promotion[data-count="1"] .ibl-promotion-avatar {
    width: clamp(138px, 10vw, 168px);
}

.ibl-promotion-copy {
    min-width: 0;
}

.ibl-promotion-name {
    color: #a8d47f;
}

.ibl-promotion-role {
    margin-top: 4px;
    color: #fff;
    font-size: clamp(11px, .82vw, 13px);
    line-height: 1.3;
}

.ibl-promotion-role strong {
    font-weight: 800;
}

.ibl-promotion-location {
    color: #b9c9d4;
}

.ibl-promotion-note {
    margin-top: 6px;
    color: #dbe5eb;
    font-size: 10.5px;
    line-height: 1.3;
}


/* Promotion engagement */
.ibl-promotion-reactions {
    position: relative;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 9px;
    flex-wrap: wrap;
    margin-top: auto;
    padding-top: clamp(18px, 2vh, 26px);
}

.ibl-promotion-reaction-prompt {
    margin-right: 3px;
    color: #b9cbd6;
    font-size: clamp(9px, .66vw, 11px);
    font-weight: 600;
    line-height: 1;
}

.ibl-promotion-reaction-buttons {
    display: flex;
    align-items: center;
    gap: 7px;
}

.ibl-promotion-reaction {
    position: relative;
    display: inline-flex;
    min-width: 54px;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 7px 11px;
    overflow: visible;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 90px;
    background: #25282d;
    color: #fff;
    box-shadow: 0 5px 14px rgba(0,0,0,.14);
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    transition: transform .16s ease, background-color .16s ease, border-color .16s ease;
}

.ibl-promotion-reaction.is-selected {
    border-color: #89c63f;
    background: #6ea435;
}

.ibl-promotion-reaction.is-loading {
    opacity: .64;
    pointer-events: none;
}

.ibl-promotion-reaction-emoji {
    font-size: 17px;
    line-height: 1;
}

.ibl-promotion-reaction-message {
    flex: 0 0 100%;
    min-height: 13px;
    color: #b9cbd6;
    font-size: 9px;
    line-height: 1.2;
    text-align: right;
}

/* Lightweight confetti burst — no external library. */
.ibl-confetti-piece {
    --ibl-confetti-x: 0px;
    --ibl-confetti-y: -80px;
    --ibl-confetti-r: 120deg;
    --ibl-confetti-bg: #89c63f;
    position: absolute;
    z-index: 20;
    left: 50%;
    top: 45%;
    width: 7px;
    height: 11px;
    border-radius: 2px;
    background: var(--ibl-confetti-bg);
    pointer-events: none;
    transform: translate(-50%, -50%) rotate(0);
    animation: ibl-promotion-confetti 760ms cubic-bezier(.18,.72,.28,1) forwards;
}

.ibl-confetti-piece.is-round {
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

@keyframes ibl-promotion-confetti {
    0% {
        opacity: 1;
        transform: translate(-50%, -50%) rotate(0deg) scale(.75);
    }
    75% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform:
            translate(
                calc(-50% + var(--ibl-confetti-x)),
                calc(-50% + var(--ibl-confetti-y))
            )
            rotate(var(--ibl-confetti-r))
            scale(1);
    }
}

@media (hover: hover) and (pointer: fine) {
    .ibl-promotion-reaction:hover {
        transform: translateY(-1px);
        filter: brightness(1.05);
    }
}


/* Farewells */
.ibl-employee-module--farewell {
    display: flex;
    flex-direction: column;
    padding: clamp(22px, 2.3vw, 34px);
    background: #0b4d72;
    color: #fff;
}

.ibl-employee-module--farewell h3 {
    margin-top: 0;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(255,255,255,.28);
}

.ibl-farewell-list {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    gap: clamp(8px, 1vh, 12px);
    align-content: center;
}

.ibl-farewell-person {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
}

.ibl-farewell-dot {
    width: 8px;
    height: 8px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #89c63f;
}

.ibl-farewell-avatar {
    width: 44px;
    aspect-ratio: 1;
    flex: 0 0 auto;
    overflow: hidden;
    border-radius: 50%;
    background: #dce8d3;
}

.ibl-farewell-name {
    color: #fff;
    font-size: clamp(11px, .85vw, 14px);
    font-weight: 500;
    line-height: 1.2;
}

.ibl-farewell-role,
.ibl-farewell-location,
.ibl-farewell-note {
    margin-top: 2px;
    color: #cbdbe4;
    font-size: 9.5px;
    line-height: 1.25;
}

.ibl-farewell-thanks {
    flex: 0 0 auto;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid rgba(255,255,255,.28);
    color: #fff;
    font-size: clamp(11px, .84vw, 14px);
    font-style: italic;
    line-height: 1.3;
    text-align: right;
}

/* A single small module gets deliberately larger, more generous styling. */
.ibl-employee-modules--1 .ibl-employee-module {
    max-width: 100%;
}

.ibl-employee-modules--1 .ibl-employee-module--welcome {
    padding-right: clamp(50px, 7vw, 110px);
    padding-left: clamp(50px, 7vw, 110px);
}

.ibl-employee-modules--1 .ibl-employee-card-grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 210px));
}

.ibl-employee-modules--1 .ibl-employee-module--promotion,
.ibl-employee-modules--1 .ibl-employee-module--farewell {
    width: min(100%, 960px);
    justify-self: center;
}


/* Larger laptop / desktop monitors */
@media (min-width: 1400px) {
    .ibl-employee-module--welcome h3 {
        margin-bottom: 46px;
        font-size: 41px;
    }

    .ibl-employee-avatar {
        width: 132px;
        margin-bottom: 13px;
    }

    .ibl-employee-module--welcome[data-count="1"] .ibl-employee-avatar,
    .ibl-employee-module--welcome[data-count="2"] .ibl-employee-avatar {
        width: 176px;
    }

    .ibl-employee-module--welcome[data-count="3"] .ibl-employee-avatar {
        width: 150px;
    }

    .ibl-employee-card-name {
        font-size: 17px;
    }

    .ibl-employee-card-role {
        margin-top: 5px;
        font-size: 14px;
    }

    .ibl-employee-card-location {
        margin-top: 4px;
        font-size: 12px;
    }

    .ibl-employee-card-note {
        max-width: 210px;
        font-size: 11px;
    }

    .ibl-employee-module--promotion h3 {
        font-size: 41px;
        margin-bottom: 34px;
    }

    .ibl-employee-module--promotion[data-count="1"] .ibl-promotion-card {
        grid-template-columns: 176px minmax(0, 1fr);
        gap: 24px;
    }

    .ibl-employee-module--promotion[data-count="1"] .ibl-promotion-avatar {
        width: 176px;
    }

    .ibl-employee-module--promotion[data-count="1"] .ibl-promotion-name {
        font-size: 17px;
    }

    .ibl-employee-module--promotion[data-count="1"] .ibl-promotion-role {
        font-size: 14px;
        line-height: 1.35;
    }

    .ibl-employee-module--promotion[data-count="1"] .ibl-promotion-location {
        font-size: 12px;
    }

    .ibl-employee-module--promotion[data-count="1"] .ibl-promotion-reactions {
        padding-top: 30px;
    }
}

/* Medium laptops: keep the editorial proportions but compact the cards. */
@media (max-width: 1180px) {
    .ibl-employee-modules--3 {
        grid-template-columns: minmax(0, 1.35fr) minmax(220px, .75fr) minmax(220px, .75fr);
    }

    .ibl-employee-avatar {
        width: clamp(72px, 7.2vw, 96px);
    }

    .ibl-employee-module--welcome[data-count="1"] .ibl-employee-avatar,
    .ibl-employee-module--welcome[data-count="2"] .ibl-employee-avatar {
        width: clamp(100px, 10vw, 132px);
    }

    .ibl-employee-card-grid {
        grid-template-columns: repeat(auto-fit, minmax(106px, 1fr));
    }

    .ibl-promotion-card {
        grid-template-columns: 62px minmax(0, 1fr);
    }

    .ibl-promotion-avatar {
        width: 62px;
    }

    .ibl-employee-module--promotion[data-count="1"] .ibl-promotion-card {
        grid-template-columns: 118px minmax(0, 1fr);
    }

    .ibl-employee-module--promotion[data-count="1"] .ibl-promotion-avatar {
        width: 118px;
    }
}

/* Tablet */
@media (max-width: 900px) {
    .ibl-employee-page {
        overflow: auto;
    }

    .ibl-employee-layout {
        height: auto;
        min-height: 100%;
        padding: 28px 28px 34px;
    }

    .ibl-employee-modules,
    .ibl-employee-modules--2,
    .ibl-employee-modules--3,
    .ibl-employee-modules--2.ibl-employee-modules--promotion-farewell {
        grid-template-columns: 1fr;
    }

    .ibl-employee-module {
        min-height: 280px;
    }

    .ibl-employee-card-grid {
        grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    }

    .ibl-promotion-list,
    .ibl-farewell-list {
        align-content: start;
    }
}

/* Phones */
@media (max-width: 620px) {
    .ibl-employee-layout {
        padding: 22px 20px 30px;
    }

    .ibl-employee-head h2 {
        font-size: clamp(30px, 9vw, 41px);
    }

    .ibl-employee-card-grid,
    .ibl-employee-modules--1 .ibl-employee-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px 12px;
    }

    .ibl-employee-avatar,
    .ibl-employee-module--welcome[data-count="1"] .ibl-employee-avatar,
    .ibl-employee-module--welcome[data-count="2"] .ibl-employee-avatar,
    .ibl-employee-module--welcome[data-count="3"] .ibl-employee-avatar {
        width: min(26vw, 104px);
    }

    .ibl-promotion-card {
        grid-template-columns: 66px minmax(0, 1fr);
    }

    .ibl-employee-module--promotion[data-count="1"] .ibl-promotion-card {
        grid-template-columns: 84px minmax(0,1fr);
    }

    .ibl-employee-module--promotion[data-count="1"] .ibl-promotion-avatar {
        width: 84px;
    }

    .ibl-promotion-reactions {
        justify-content: flex-start;
    }

    .ibl-promotion-reaction-message {
        text-align: left;
    }
}


/* -------------------------------------------------------------------------
   Page 4 — Mind Matters
   Editorial wellbeing article + anonymous company stress pulse + story form
   ------------------------------------------------------------------------- */
.ibl-mind-page {
    width: 100%;
    height: 100%;
    min-height: 100%;
    overflow: hidden;
    background: #fff;
}

.ibl-mind-layout {
    display: flex;
    height: 100%;
    min-height: 100%;
    flex-direction: column;
    gap: clamp(12px, 1.35vh, 18px);
    padding: clamp(26px, 2.5vw, 40px) clamp(34px, 4vw, 64px) clamp(24px, 2.3vw, 36px);
    background: #fff;
}

.ibl-mind-article-shell {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
}

.ibl-mind-chip {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 11px;
    border-radius: 999px;
    background: #e4efd9;
    color: var(--ibl-reader-navy);
    font-size: clamp(10px, .76vw, 12px);
    font-weight: 800;
    line-height: 1;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.ibl-mind-article-flow {
    position: relative;
    overflow: visible;
}

.ibl-mind-heading {
    max-width: none;
    margin: 12px 0 clamp(16px, 1.7vh, 24px);
    color: var(--ibl-reader-navy);
    font-family: inherit;
    font-size: clamp(30px, 3vw, 52px);
    font-weight: 300;
    line-height: 1.03;
    letter-spacing: -.038em;
}

@media (min-width: 901px) {
    .ibl-mind-heading {
        white-space: nowrap;
    }
}

.ibl-mind-copy {
    color: #141414;
    font-size: clamp(14px, 1vw, 17px);
    font-weight: 400;
    line-height: 1.48;
    letter-spacing: .01em;
}

.ibl-mind-copy p {
    margin: 0 0 clamp(14px, 1.5vh, 20px);
}

.ibl-mind-highlight {
    color: #0b456b;
    font-size: clamp(16px, 1.18vw, 20px);
    font-weight: 800;
    line-height: 1.35;
}

.ibl-mind-page.is-collapsed .ibl-mind-article-flow {
    overflow: hidden;
}

.ibl-mind-fade {
    display: none;
    position: absolute;
    z-index: 2;
    right: 0;
    bottom: 0;
    left: 0;
    height: 78px;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(255,255,255,0), #fff 82%);
}

.ibl-mind-page.is-collapsed .ibl-mind-fade {
    display: block;
}

.ibl-mind-read-more {
    position: relative;
    z-index: 4;
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    gap: 8px;
    margin: 12px 0 0;
    padding: 9px 16px;
    border: 0;
    border-radius: 90px;
    background: var(--ibl-reader-green);
    color: #fff;
    font-family: inherit;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.ibl-mind-read-more[hidden] {
    display: none !important;
}

/* Bottom interactive area */
.ibl-mind-interactive {
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1.72fr) minmax(245px, .68fr);
    gap: clamp(10px, 1vw, 16px);
    align-items: start;
}

.ibl-mind-pulse {
    min-width: 0;
    padding: clamp(13px, 1.15vw, 18px) clamp(16px, 1.45vw, 22px);
    border-radius: clamp(20px, 1.8vw, 28px);
    background: #edf5e6;
    border: 1px solid #d5e8c6;
}

.ibl-mind-pulse-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.ibl-mind-pulse-kicker,
.ibl-mind-story-kicker {
    color: var(--ibl-reader-green);
    font-size: clamp(9px, .68vw, 11px);
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.ibl-mind-pulse h3,
.ibl-mind-story-card h3 {
    margin: 3px 0 3px;
    color: var(--ibl-reader-navy);
    font-size: clamp(17px, 1.45vw, 24px);
    font-weight: 700;
    line-height: 1.08;
}

.ibl-mind-pulse p,
.ibl-mind-story-card p {
    margin: 0;
    color: #5e7483;
    font-size: clamp(10px, .78vw, 12.5px);
    line-height: 1.4;
}

.ibl-mind-response-count {
    flex: 0 0 auto;
    padding: 5px 9px;
    border-radius: 999px;
    background: #fff;
    color: #5c7180;
    font-size: 9px;
    font-weight: 750;
    white-space: nowrap;
}

.ibl-mind-levels {
    display: grid;
    grid-template-columns: repeat(5, minmax(0,1fr));
    gap: 7px;
    margin-top: 9px;
}

.ibl-mind-level {
    display: grid;
    min-height: 50px;
    place-items: center;
    gap: 2px;
    padding: 5px 4px;
    border: 1px solid #d5dfd0;
    border-radius: 14px;
    background: #fff;
    color: var(--ibl-reader-navy);
    cursor: pointer;
    transition: transform .16s ease, border-color .16s ease, background-color .16s ease;
}

.ibl-mind-level.is-selected {
    border-color: var(--ibl-reader-green);
    background: #dceccf;
    box-shadow: inset 0 0 0 1px var(--ibl-reader-green);
}

.ibl-mind-level.is-loading {
    opacity: .62;
    pointer-events: none;
}

.ibl-mind-level-emoji {
    font-size: clamp(18px, 1.35vw, 23px);
    line-height: 1;
}

.ibl-mind-level-label {
    font-size: clamp(9px, .68vw, 11px);
    font-weight: 750;
    line-height: 1;
}

.ibl-mind-company-pulse {
    margin-top: 9px;
    padding-top: 8px;
    border-top: 1px solid #d2e2c6;
}

.ibl-mind-company-pulse-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: #617583;
    font-size: 9px;
    line-height: 1.2;
}

.ibl-mind-company-pulse-label > span {
    display: flex;
    align-items: baseline;
    gap: 4px;
    min-width: 0;
    flex-wrap: wrap;
}

.ibl-mind-company-pulse-label strong {
    flex: 0 0 auto;
    color: var(--ibl-reader-navy);
    font-size: 11px;
}

.ibl-mind-results-gate {
    margin: 0;
    color: #7d8e98;
    font-size: 8.5px;
    font-style: normal;
    line-height: 1.2;
}

.ibl-mind-results-gate[hidden] {
    display: none !important;
}

.ibl-mind-meter {
    position: relative;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 3px;
    height: 8px;
    margin-top: 6px;
}

.ibl-mind-meter span {
    border-radius: 99px;
}
.ibl-mind-meter span:nth-child(1) { background:#6ea435; }
.ibl-mind-meter span:nth-child(2) { background:#9fc45f; }
.ibl-mind-meter span:nth-child(3) { background:#ddc94a; }
.ibl-mind-meter span:nth-child(4) { background:#dc8a3c; }
.ibl-mind-meter span:nth-child(5) { background:#cc5a58; }

.ibl-mind-meter i {
    display: none;
    position: absolute;
    z-index: 2;
    top: 50%;
    left: var(--ibl-mind-pulse-position);
    width: 18px;
    height: 18px;
    border: 3px solid #fff;
    border-radius: 50%;
    background: var(--ibl-reader-navy);
    box-shadow: 0 2px 8px rgba(2,35,64,.22);
    transform: translate(-50%, -50%);
}

.ibl-mind-company-pulse.has-results .ibl-mind-meter i {
    display: block;
}

.ibl-mind-breakdown-toggle {
    margin-top: 6px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #0b4d72;
    font-size: 10px;
    font-weight: 800;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.ibl-mind-breakdown-toggle[hidden] {
    display: none !important;
}

.ibl-mind-breakdown {
    display: grid;
    gap: 5px;
    margin-top: 6px;
}
.ibl-mind-breakdown[hidden] { display:none !important; }

.ibl-mind-breakdown-row {
    display: grid;
    grid-template-columns: 95px minmax(0,1fr) 35px;
    gap: 8px;
    align-items: center;
    color: #425e70;
    font-size: 9px;
}

.ibl-mind-breakdown-track {
    height: 7px;
    overflow: hidden;
    border-radius: 99px;
    background: #dbe6d5;
}

.ibl-mind-breakdown-track i {
    display: block;
    height: 100%;
    border-radius: 99px;
    background: var(--ibl-reader-green);
}

.ibl-mind-breakdown-row strong {
    text-align: right;
    font-size: 9px;
}

.ibl-mind-support {
    display: grid;
    gap: 2px;
    margin-top: 7px;
    padding: 7px 10px;
    border-radius: 12px;
    background: #fff7e9;
    border: 1px solid #f0d9ad;
    color: #5b4d33;
    font-size: 9.5px;
    line-height: 1.35;
}
.ibl-mind-support[hidden] { display:none !important; }
.ibl-mind-support strong { color:#604817; }

.ibl-mind-vote-message {
    min-height: 10px;
    margin-top: 3px;
    color: #607482;
    font-size: 9px;
    text-align: right;
}

/* Story card */
.ibl-mind-story-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: flex-start;
    gap: 8px;
    padding: clamp(14px, 1.35vw, 20px);
    border-radius: clamp(20px, 1.8vw, 28px);
    background: var(--ibl-reader-navy);
    color: #fff;
}

.ibl-mind-story-card .ibl-mind-story-kicker {
    color: #a9d67e;
}

.ibl-mind-story-card h3 {
    color: #fff;
    font-size: clamp(16px, 1.3vw, 21px);
}

.ibl-mind-story-card p {
    color: #cbd9e1;
    font-size: clamp(9px, .7vw, 11px);
    line-height: 1.3;
}

.ibl-mind-story-button,
.ibl-mind-story-submit {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 8px 14px;
    border: 0;
    border-radius: 90px;
    background: var(--ibl-reader-green);
    color: #fff;
    font-family: inherit;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
    cursor: pointer;
}

.ibl-mind-story-count {
    color: #91a9b8;
    font-size: 8px;
    line-height: 1.2;
}

/* Expanded Mind Matters article */
.ibl-mind-page.is-expanded {
    height: auto;
    min-height: 100%;
    overflow: visible;
}

.ibl-mind-page.is-expanded .ibl-mind-layout {
    height: auto;
    min-height: 100%;
}

.ibl-mind-page.is-expanded .ibl-mind-article-flow {
    max-height: none !important;
    overflow: visible;
}

.ibl-mind-page.is-expanded .ibl-mind-fade {
    display: none !important;
}

/* Story modal */
.ibl-mind-story-modal {
    position: fixed;
    z-index: 8000;
    inset: 0;
    display: none;
    place-items: center;
    padding: 20px;
    background: rgba(2,35,64,.82);
    backdrop-filter: blur(9px);
}

.ibl-mind-story-modal.is-open {
    display: grid;
}

.ibl-mind-story-dialog {
    width: min(680px, 100%);
    max-height: 90vh;
    overflow: auto;
    padding: clamp(22px, 3vw, 34px);
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 24px 80px rgba(0,0,0,.25);
}

.ibl-mind-story-dialog-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.ibl-mind-story-dialog h3 {
    margin: 6px 0 0;
    color: var(--ibl-reader-navy);
    font-size: clamp(25px, 3vw, 36px);
    line-height: 1.05;
}

.ibl-mind-story-close {
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    border: 0;
    border-radius: 50%;
    background: #f0f3f4;
    color: var(--ibl-reader-navy);
    font-size: 25px;
    cursor: pointer;
}

.ibl-mind-story-field {
    display: grid;
    gap: 7px;
    margin-top: 22px;
    color: var(--ibl-reader-navy);
    font-size: 12px;
    font-weight: 750;
}

.ibl-mind-story-field textarea {
    width: 100%;
    min-height: 160px;
    padding: 13px 14px;
    border: 1px solid #cfd9df;
    border-radius: 16px;
    color: #172c3d;
    font: inherit;
    font-size: 16px;
    line-height: 1.5;
    resize: vertical;
}

.ibl-mind-story-identity {
    display: flex;
    gap: 14px 24px;
    flex-wrap: wrap;
    margin: 18px 0 0;
    padding: 0;
    border: 0;
}

.ibl-mind-story-identity legend {
    width: 100%;
    margin-bottom: 7px;
    color: var(--ibl-reader-navy);
    font-size: 12px;
    font-weight: 750;
}

.ibl-mind-story-identity label,
.ibl-mind-story-permission {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: #4a6171;
    font-size: 12px;
    line-height: 1.35;
}

.ibl-mind-story-permission {
    margin-top: 17px;
}

.ibl-mind-story-identity input,
.ibl-mind-story-permission input {
    margin-top: 2px;
}

.ibl-mind-story-form-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 20px;
}

.ibl-mind-story-form-message {
    color: #48625a;
    font-size: 11px;
    font-weight: 700;
}

.ibl-mind-story-email-note {
    margin: 12px 0 0;
    color: #7a8a94;
    font-size: 10px;
}

@media (hover:hover) and (pointer:fine) {
    .ibl-mind-level:hover,
    .ibl-mind-read-more:hover,
    .ibl-mind-story-button:hover,
    .ibl-mind-story-submit:hover {
        transform: translateY(-1px);
        filter: brightness(1.03);
    }
}

/* Smaller laptops/tablets */
@media (max-width: 1050px) {
    .ibl-mind-layout {
        gap: 18px;
        padding: 28px 30px 32px;
    }

    .ibl-mind-interactive {
        grid-template-columns: 1fr;
    }

    .ibl-mind-story-card {
        display: grid;
        grid-template-columns: 1fr auto;
        align-items: center;
        gap: 8px 14px;
    }

    .ibl-mind-story-card > div {
        grid-column: 1;
    }

    .ibl-mind-story-button {
        grid-column: 2;
        grid-row: 1 / span 2;
    }

    .ibl-mind-story-count {
        grid-column: 1;
    }
}

/* Mobile */
@media (max-width: 760px) {
    .ibl-mind-page {
        overflow: auto;
    }

    .ibl-mind-layout {
        height: auto;
        min-height: 100%;
        padding: 24px 20px 30px;
    }

    .ibl-mind-heading {
        font-size: clamp(31px, 9vw, 43px);
        white-space: normal;
    }

    .ibl-mind-copy {
        font-size: 15px;
        line-height: 1.5;
    }

    .ibl-mind-interactive {
        grid-template-columns: 1fr;
    }

    .ibl-mind-levels {
        grid-template-columns: repeat(2, minmax(0,1fr));
    }

    .ibl-mind-level:last-child {
        grid-column: 1 / -1;
    }

    .ibl-mind-pulse-top {
        flex-direction: column;
        gap: 9px;
    }

    .ibl-mind-story-card {
        display: flex;
    }

    .ibl-mind-story-button {
        align-self: flex-start;
    }

    .ibl-mind-breakdown-row {
        grid-template-columns: 92px minmax(0,1fr) 34px;
    }

    .ibl-mind-story-modal {
        padding: 12px;
    }

    .ibl-mind-story-dialog {
        border-radius: 22px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ibl-mind-level,
    .ibl-mind-read-more,
    .ibl-mind-story-button,
    .ibl-mind-story-submit {
        transition: none;
    }
}


/* -------------------------------------------------------------------------
   Page 5 — Cyber Security Video
   ------------------------------------------------------------------------- */
.ibl-cyber-page {
    width: 100%;
    height: 100%;
    min-height: 100%;
    overflow: hidden;
    background: #fff;
}

.ibl-cyber-layout {
    display: flex;
    width: 100%;
    height: 100%;
    min-height: 100%;
    flex-direction: column;
    padding: clamp(26px, 2.6vw, 42px) clamp(34px, 4vw, 64px) clamp(24px, 2.4vw, 38px);
    background: #fff;
}

.ibl-cyber-head {
    flex: 0 0 auto;
    max-width: 1120px;
    margin: 0 auto clamp(18px, 2vh, 28px);
    text-align: center;
}

.ibl-cyber-chip {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 11px;
    border-radius: 999px;
    background: #e4efd9;
    color: var(--ibl-reader-navy);
    font-size: clamp(10px, .72vw, 12px);
    font-weight: 700;
    line-height: 1;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.ibl-cyber-head h2 {
    margin: 10px 0 12px;
    color: var(--ibl-reader-navy);
    font-family: inherit;
    font-size: clamp(34px, 3.25vw, 52px);
    font-weight: 300;
    line-height: 1.02;
    letter-spacing: -.035em;
}

.ibl-cyber-intro,
.ibl-cyber-safety {
    margin: 0;
    color: #17232d;
    font-size: clamp(13px, 1vw, 16px);
    font-weight: 400;
    line-height: 1.4;
}

.ibl-cyber-safety {
    margin-top: 5px;
}

.ibl-cyber-video-wrap {
    flex: 1 1 auto;
    min-height: 0;
    width: min(100%, 1120px);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
}

.ibl-cyber-video {
    position: relative;
    flex: 1 1 auto;
    min-height: 300px;
    overflow: hidden;
    border-radius: clamp(28px, 3vw, 46px);
    background: #d9d9d9;
}

.ibl-cyber-poster {
    position: absolute;
    inset: 0;
    overflow: hidden;
    display: grid;
    place-items: center;
    background: #d9d9d9;
}

.ibl-cyber-poster-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ibl-cyber-poster::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(2,35,64,.02), rgba(2,35,64,.08));
}

.ibl-cyber-poster-fallback {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: rgba(2,35,64,.18);
    background:
        radial-gradient(circle at 74% 20%, rgba(110,164,53,.13), transparent 30%),
        linear-gradient(145deg,#e2e2e2,#cdcdcd);
    font-size: clamp(30px, 4vw, 64px);
    font-weight: 700;
    letter-spacing: -.04em;
}

.ibl-cyber-play {
    position: relative;
    z-index: 3;
    width: clamp(66px, 5.5vw, 88px);
    height: clamp(66px, 5.5vw, 88px);
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: #000;
    color: #fff;
    box-shadow: 0 10px 28px rgba(0,0,0,.22);
    cursor: pointer;
    transition: transform .18s ease;
}

.ibl-cyber-play-triangle {
    width: 0;
    height: 0;
    margin-left: 6px;
    border-top: 13px solid transparent;
    border-bottom: 13px solid transparent;
    border-left: 21px solid #fff;
}

.ibl-cyber-no-video {
    position: relative;
    z-index: 3;
    padding: 10px 15px;
    border-radius: 999px;
    background: rgba(255,255,255,.84);
    color: #546875;
    font-size: 12px;
    font-weight: 700;
}

.ibl-cyber-iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    background: #000;
}

.ibl-cyber-engagement {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    min-height: 50px;
    padding: 12px 0 0;
}

.ibl-cyber-plays {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    color: #151515;
    font-size: clamp(12px, .9vw, 15px);
    white-space: nowrap;
}

.ibl-cyber-plays strong {
    font-weight: 500;
}

.ibl-cyber-reactions {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    flex-wrap: wrap;
}

.ibl-cyber-reaction {
    display: inline-flex;
    min-width: 48px;
    min-height: 35px;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 7px 9px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 90px;
    background: #25282d;
    color: #fff;
    box-shadow: 0 4px 12px rgba(2,35,64,.09);
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    transition: transform .16s ease, background-color .16s ease, border-color .16s ease;
}

.ibl-cyber-reaction.is-selected {
    border-color: var(--ibl-reader-green);
    background: var(--ibl-reader-green);
}

.ibl-cyber-reaction.is-loading {
    opacity: .64;
    pointer-events: none;
}

.ibl-cyber-reaction-emoji {
    font-size: 15px;
    line-height: 1;
}

.ibl-cyber-reaction-message {
    position: absolute;
    top: 100%;
    right: 0;
    min-height: 13px;
    margin-top: 3px;
    color: #71838e;
    font-size: 9px;
    line-height: 1.2;
    white-space: nowrap;
}


/* Longer Cyber copy switches to an editorial split automatically. */
.ibl-cyber-page--split .ibl-cyber-layout {
    display: grid;
    grid-template-columns: minmax(280px, .72fr) minmax(0, 1.45fr);
    grid-template-rows: minmax(0, 1fr);
    gap: clamp(24px, 3vw, 48px);
    align-items: stretch;
}

.ibl-cyber-page--split .ibl-cyber-head {
    max-width: none;
    margin: 0;
    align-self: center;
    text-align: left;
}

.ibl-cyber-page--split .ibl-cyber-head h2 {
    margin-top: 12px;
    font-size: clamp(38px, 3.55vw, 58px);
}

.ibl-cyber-page--split .ibl-cyber-intro,
.ibl-cyber-page--split .ibl-cyber-safety {
    font-size: clamp(14px, 1.05vw, 17px);
    line-height: 1.55;
}

.ibl-cyber-page--split .ibl-cyber-safety {
    margin-top: 16px;
}

.ibl-cyber-page--split .ibl-cyber-video-wrap {
    width: 100%;
    height: 100%;
    min-height: 0;
    margin: 0;
}

@media (hover:hover) and (pointer:fine) {
    .ibl-cyber-play:hover {
        transform: scale(1.05);
    }

    .ibl-cyber-reaction:hover {
        transform: translateY(-1px);
        filter: brightness(1.04);
    }
}

@media (max-width: 900px) {
    .ibl-cyber-page--split .ibl-cyber-layout {
        display: flex;
        grid-template-columns: none;
        gap: 0;
    }

    .ibl-cyber-page--split .ibl-cyber-head {
        max-width: 1120px;
        margin: 0 auto 16px;
        text-align: center;
    }

    .ibl-cyber-layout {
        padding: 24px 28px 28px;
    }

    .ibl-cyber-video {
        min-height: 280px;
    }

    .ibl-cyber-head {
        margin-bottom: 16px;
    }
}

@media (max-width: 760px) {
    .ibl-cyber-page {
        overflow: auto;
    }

    .ibl-cyber-layout {
        height: auto;
        min-height: 100%;
        padding: 22px 20px 30px;
    }

    .ibl-cyber-head h2 {
        font-size: clamp(31px, 9vw, 43px);
    }

    .ibl-cyber-video-wrap {
        width: 100%;
    }

    .ibl-cyber-video {
        flex: none;
        min-height: 0;
        aspect-ratio: 16 / 9;
        border-radius: 24px;
    }

    .ibl-cyber-engagement {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
        padding-top: 12px;
    }

    .ibl-cyber-reactions {
        width: 100%;
        justify-content: flex-start;
    }

    .ibl-cyber-reaction-message {
        position: static;
        flex: 0 0 100%;
        width: 100%;
        margin-top: 2px;
    }
}

@media (max-width: 460px) {
    .ibl-cyber-reaction {
        min-width: 43px;
        min-height: 33px;
        padding: 6px 8px;
    }

    .ibl-cyber-reaction-emoji {
        font-size: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ibl-cyber-play,
    .ibl-cyber-reaction {
        transition: none;
    }
}


/* -------------------------------------------------------------------------
   Page 6 — Get To Know The Team
   ------------------------------------------------------------------------- */
.ibl-team-page {
    width: 100%;
    height: 100%;
    min-height: 100%;
    overflow: hidden;
    background: #fff;
}

.ibl-team-layout {
    display: grid;
    grid-template-columns: minmax(320px, .8fr) minmax(0, 1.2fr);
    width: 100%;
    height: 100%;
    min-height: 100%;
    gap: clamp(24px, 3vw, 46px);
    padding: clamp(26px, 2.6vw, 42px) clamp(32px, 3.8vw, 62px) clamp(26px, 2.6vw, 42px);
    background: #fff;
}

.ibl-team-hero,
.ibl-team-content {
    min-width: 0;
    min-height: 0;
}

.ibl-team-hero {
    position: relative;
    display: flex;
    flex-direction: column;
}

.ibl-team-chip {
    display: inline-flex;
    align-self: flex-start;
    min-height: 28px;
    align-items: center;
    padding: 5px 11px;
    border-radius: 999px;
    background: #e4efd9;
    color: var(--ibl-reader-navy);
    font-size: clamp(10px, .72vw, 12px);
    font-weight: 800;
    line-height: 1;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.ibl-team-name-wrap {
    position: relative;
    z-index: 3;
    margin: clamp(13px, 1.5vh, 20px) 0 clamp(22px, 2.4vh, 32px);
}

.ibl-team-name-wrap h2 {
    margin: 0;
    color: var(--ibl-reader-green);
    font-family: inherit;
    font-size: clamp(48px, 5.6vw, 88px);
    font-weight: 800;
    line-height: .88;
    letter-spacing: -.055em;
    text-transform: uppercase;
}

.ibl-team-name-wrap p {
    margin: 8px 0 0;
    color: #617582;
    font-size: clamp(11px, .85vw, 14px);
    font-weight: 650;
}

.ibl-team-photo-card {
    position: relative;
    flex: 0 1 auto;
    height: calc(100% - 16px);
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
    border-radius: clamp(28px, 3vw, 44px);
    background: #f4f5f3;
}

.ibl-team-photo-card::before {
    content: none;
}

.ibl-team-photo-image,
.ibl-team-photo-fallback {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.ibl-team-photo-image {
    object-fit: cover;
    object-position: center top;
}

.ibl-team-photo-fallback {
    display: grid;
    place-items: center;
    color: var(--ibl-reader-navy);
    background: linear-gradient(145deg,#edf2e9,#dfe8dc);
    font-size: clamp(60px, 8vw, 110px);
    font-weight: 800;
}


.ibl-team-content {
    display: flex;
    flex-direction: column;
    gap: clamp(15px, 1.7vh, 22px);
}

.ibl-team-facts {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: clamp(10px, 1.1vw, 16px);
    align-content: center;
}

.ibl-team-fact {
    display: grid;
    grid-template-columns: 34px minmax(0,1fr);
    gap: 10px;
    align-items: flex-start;
    padding: clamp(12px, 1.15vw, 17px);
    border-bottom: 1px solid #dce5e8;
    background: #fff;
}

.ibl-team-fact:nth-child(5) {
    grid-column: 1 / -1;
}

.ibl-team-fact-icon {
    color: #d3de00;
    font-size: 24px;
    font-weight: 800;
    line-height: 1;
    text-align: center;
}

.ibl-team-fact h3 {
    margin: 0 0 5px;
    color: #0b4d72;
    font-size: clamp(11px, .84vw, 14px);
    font-weight: 800;
    line-height: 1.2;
}

.ibl-team-fact p {
    margin: 0;
    color: #273945;
    font-size: clamp(10px, .77vw, 12.5px);
    font-weight: 400;
    line-height: 1.35;
}

.ibl-team-quiz {
    position: relative;
    flex: 0 0 auto;
    min-height: clamp(250px, 31vh, 310px);
    overflow: hidden;
    padding: clamp(18px, 1.75vw, 26px);
    border-top: 4px solid var(--ibl-reader-green);
    border-radius: clamp(24px, 2.5vw, 36px);
    background: var(--ibl-reader-navy);
    color: #fff;
}

.ibl-team-quiz-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
}

.ibl-team-quiz-head h3,
.ibl-team-quiz--empty h3 {
    margin: 0;
    color: #fff;
    font-family: "Work Sans", Arial, sans-serif;
    font-size: clamp(21px, 1.85vw, 30px);
    font-weight: 300;
    line-height: 1.08;
    letter-spacing: -.02em;
}

.ibl-team-score {
    flex: 0 0 auto;
    display: flex;
    align-items: baseline;
    gap: 4px;
    padding: 7px 10px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 999px;
    background: rgba(255,255,255,.07);
    color: #fff;
    font-size: 10px;
}

.ibl-team-score strong {
    color: #d3de00;
    font-size: 17px;
}

.ibl-team-question[hidden] {
    display: none !important;
}

.ibl-team-question-progress {
    color: #9db3c0;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.ibl-team-question h4 {
    margin: 5px 0 14px;
    color: #fff;
    font-size: clamp(15px, 1.25vw, 20px);
    font-weight: 650;
    line-height: 1.2;
}

.ibl-team-quiz-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 10px;
    margin-bottom: 10px;
}

.ibl-team-quiz-option {
    position: relative;
    min-width: 0;
    min-height: 39px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    overflow: visible;
    padding: 8px 11px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 13px;
    background: rgba(255,255,255,.07);
    color: #fff;
    font-family: inherit;
    font-size: clamp(10px, .75vw, 12px);
    font-weight: 600;
    text-align: left;
    cursor: pointer;
    transition: background-color .16s ease, border-color .16s ease, transform .16s ease;
}

.ibl-team-quiz-option > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ibl-team-quiz-option > strong {
    flex: 0 0 auto;
    color: #cbd8e0;
    font-size: 9px;
}

.ibl-team-quiz-option.is-selected {
    border-color: #89c63f;
    background: #6ea435;
}

.ibl-team-quiz-option.is-correct-answer:not(.is-selected) {
    border-color: rgba(211,222,0,.72);
}

.ibl-team-quiz-result {
    min-height: 29px;
    margin-top: 10px;
    color: #cbd8e0;
    font-size: 9.5px;
    line-height: 1.25;
}

.ibl-team-quiz-result strong,
.ibl-team-quiz-result span {
    display: none;
}

.ibl-team-quiz-result.is-visible strong,
.ibl-team-quiz-result.is-visible span {
    display: block;
}

.ibl-team-quiz-result strong {
    color: #d3de00;
    font-size: 11px;
}

.ibl-team-quiz-footer {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 10px;
    align-items: center;
    margin-top: 18px;
    padding-top: 10px;
}

.ibl-team-quiz-nav {
    min-height: 32px;
    padding: 5px 9px;
    border: 0;
    border-radius: 999px;
    background: rgba(255,255,255,.1);
    color: #fff;
    font-family: inherit;
    font-size: 9px;
    font-weight: 700;
    cursor: pointer;
}

.ibl-team-quiz-nav:disabled {
    opacity: .35;
    cursor: default;
}

.ibl-team-quiz-dots {
    display: flex;
    justify-content: center;
    gap: 5px;
}

.ibl-team-quiz-dots button {
    width: 7px;
    height: 7px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255,255,255,.28);
    cursor: pointer;
}

.ibl-team-quiz-dots button.is-active {
    background: #d3de00;
}

.ibl-team-quiz-message {
    position: absolute;
    right: 22px;
    bottom: 8px;
    left: 22px;
    min-height: 11px;
    color: #9fb2be;
    font-size: 8.5px;
    line-height: 1.2;
    text-align: center;
}

.ibl-team-quiz--empty {
    display: grid;
    place-content: center;
    min-height: 220px;
    text-align: center;
}

.ibl-team-quiz--empty p {
    max-width: 520px;
    margin: 8px auto 0;
    color: #cbd8e0;
    font-size: 11px;
    line-height: 1.45;
}

.ibl-team-spark {
    --ibl-team-spark-x: 0px;
    --ibl-team-spark-y: -55px;
    --ibl-team-spark-r: 90deg;
    position: absolute;
    z-index: 20;
    left: 50%;
    top: 50%;
    width: 7px;
    height: 11px;
    border-radius: 2px;
    background: #d3de00;
    pointer-events: none;
    animation: ibl-team-spark 720ms ease-out forwards;
}

@keyframes ibl-team-spark {
    from {
        opacity: 1;
        transform: translate(-50%,-50%) rotate(0deg) scale(.7);
    }
    to {
        opacity: 0;
        transform:
            translate(
                calc(-50% + var(--ibl-team-spark-x)),
                calc(-50% + var(--ibl-team-spark-y))
            )
            rotate(var(--ibl-team-spark-r))
            scale(1);
    }
}

@media (hover:hover) and (pointer:fine) {
    .ibl-team-quiz-option:hover:not(:disabled) {
        transform: translateY(-1px);
        background: rgba(255,255,255,.12);
    }
}

@media (min-width: 1450px) {
    .ibl-team-photo-card {
        height: calc(100% - 24px);
    }

    .ibl-team-fact h3 {
        font-size: 15px;
    }

    .ibl-team-fact p {
        font-size: 13px;
    }

    .ibl-team-quiz {
        min-height: 300px;
    }
}

@media (max-width: 1050px) {
    .ibl-team-layout {
        grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr);
        gap: 24px;
        padding-right: 30px;
        padding-left: 30px;
    }

    .ibl-team-name-wrap h2 {
        font-size: clamp(44px, 6vw, 68px);
    }

    .ibl-team-facts {
        gap: 7px;
    }

    .ibl-team-fact {
        padding: 10px;
    }
}

@media (max-width: 820px) {
    .ibl-team-page {
        overflow: auto;
    }

    .ibl-team-layout {
        height: auto;
        min-height: 100%;
        grid-template-columns: 1fr;
        padding: 24px 24px 32px;
    }

    .ibl-team-photo-card {
        height: auto;
        min-height: 400px;
    }

    .ibl-team-facts {
        grid-template-columns: 1fr 1fr;
        align-content: start;
    }

    .ibl-team-quiz {
        min-height: 285px;
    }
}

@media (max-width: 560px) {
    .ibl-team-layout {
        padding: 20px 18px 28px;
    }

    .ibl-team-name-wrap h2 {
        font-size: clamp(42px, 14vw, 64px);
    }

    .ibl-team-photo-card {
        height: auto;
        min-height: 360px;
    }

    .ibl-team-facts {
        grid-template-columns: 1fr;
    }

    .ibl-team-fact:nth-child(5) {
        grid-column: auto;
    }

    .ibl-team-quiz-options {
        grid-template-columns: 1fr;
    }

    .ibl-team-quiz {
        min-height: 360px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ibl-team-quiz-option {
        transition: none;
    }

    .ibl-team-spark {
        display: none !important;
        animation: none !important;
    }
}


/* -------------------------------------------------------------------------
   Page 7 — Friday Games
   ------------------------------------------------------------------------- */
.ibl-games-page {
    width: 100%;
    height: 100%;
    min-height: 100%;
    overflow: hidden;
    background: #fff;
}

.ibl-games-layout {
    display: flex;
    width: 100%;
    height: 100%;
    min-height: 100%;
    flex-direction: column;
    gap: clamp(14px, 1.6vh, 22px);
    padding: clamp(26px, 2.6vw, 42px) clamp(34px, 4vw, 64px) clamp(26px, 2.6vw, 42px);
    background: #fff;
}

.ibl-games-head {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}

.ibl-games-chip {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    padding: 5px 11px;
    border-radius: 999px;
    background: #e4efd9;
    color: var(--ibl-reader-navy);
    font-size: clamp(10px, .72vw, 12px);
    font-weight: 800;
    line-height: 1;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.ibl-games-head h2 {
    margin: 10px 0 0;
    color: var(--ibl-reader-navy);
    font-family: inherit;
    font-size: clamp(34px, 3.5vw, 55px);
    font-weight: 300;
    line-height: 1.02;
    letter-spacing: -.04em;
}

.ibl-games-week-note {
    flex: 0 0 auto;
    padding-bottom: 4px;
    color: #6a7d89;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ibl-games-main {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(310px, .72fr);
    gap: clamp(14px, 1.4vw, 22px);
}

.ibl-games-leaderboard,
.ibl-games-prediction {
    min-width: 0;
    min-height: 0;
    border-radius: clamp(24px, 2.3vw, 34px);
}

.ibl-games-leaderboard {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(18px, 2vw, 30px);
    background: #f5f6f6;
}

.ibl-games-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: clamp(15px, 1.7vh, 22px);
}

.ibl-games-section-head span,
.ibl-games-prediction-kicker,
.ibl-games-moments-head span {
    color: var(--ibl-reader-green);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.ibl-games-section-head h3,
.ibl-games-prediction h3 {
    margin: 4px 0 0;
    color: var(--ibl-reader-navy);
    font-family: inherit;
    font-size: clamp(24px, 2.25vw, 36px);
    font-weight: 300;
    line-height: 1.05;
}

.ibl-games-scale {
    color: #83929b;
    font-size: 9px;
    white-space: nowrap;
}

.ibl-games-ranks {
    display: grid;
    gap: clamp(11px, 1.35vh, 17px);
}

.ibl-games-rank {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 74px;
    gap: 12px;
    align-items: center;
}

.ibl-games-rank-number {
    width: 35px;
    height: 35px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #fff;
    color: var(--ibl-reader-navy);
    box-shadow: 0 4px 12px rgba(2,35,64,.07);
    font-size: 14px;
    font-weight: 800;
}

.ibl-games-rank.is-leading .ibl-games-rank-number {
    background: var(--ibl-team-color);
    color: #fff;
}

.ibl-games-rank-copy {
    min-width: 0;
}

.ibl-games-rank-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 5px;
}

.ibl-games-rank-top strong {
    color: var(--ibl-reader-navy);
    font-size: clamp(12px, .95vw, 15px);
    font-weight: 750;
}

.ibl-games-rank-top span {
    padding: 4px 7px;
    border-radius: 999px;
    background: #e4efd9;
    color: #42691f;
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.ibl-games-bar {
    height: clamp(15px, 1.5vh, 20px);
    overflow: hidden;
    border-radius: 999px;
    background: #e0e5e7;
}

.ibl-games-bar-fill {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: var(--ibl-team-color);
    transition: width 1.1s cubic-bezier(.18,.72,.22,1);
}

.ibl-reader-page.is-current .ibl-games-bar-fill {
    width: var(--ibl-games-score-width);
}

.ibl-games-score {
    color: var(--ibl-reader-navy);
    font-size: clamp(18px, 1.55vw, 25px);
    font-weight: 750;
    text-align: right;
}

.ibl-games-score small {
    color: #758791;
    font-size: 9px;
    font-weight: 650;
}

.ibl-games-highlight {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 10px;
    margin-top: clamp(16px, 2vh, 24px);
    padding-top: clamp(14px, 1.6vh, 20px);
    border-top: 1px solid #d9e1e4;
}

.ibl-games-highlight > div {
    min-width: 0;
}

.ibl-games-highlight span {
    display: block;
    color: #728590;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ibl-games-highlight strong {
    display: block;
    margin-top: 4px;
    color: var(--ibl-reader-navy);
    font-size: clamp(10px, .78vw, 12.5px);
    line-height: 1.3;
}

.ibl-games-prediction {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(20px, 2.1vw, 32px);
    border-top: 4px solid var(--ibl-reader-green);
    background: var(--ibl-reader-navy);
    color: #fff;
}

.ibl-games-prediction h3 {
    color: #fff;
    font-weight: 650;
}

.ibl-games-prediction > p {
    margin: 7px 0 17px;
    color: #c3d2db;
    font-size: 11px;
    line-height: 1.35;
}

.ibl-games-vote-options {
    display: grid;
    gap: 8px;
}

.ibl-games-vote {
    display: grid;
    grid-template-columns: 12px minmax(0,1fr) auto;
    gap: 9px;
    align-items: center;
    min-height: 44px;
    padding: 9px 12px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 14px;
    background: rgba(255,255,255,.06);
    color: #fff;
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
    transition: transform .16s ease, background-color .16s ease, border-color .16s ease;
}

.ibl-games-vote-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--ibl-team-color);
}

.ibl-games-vote strong {
    color: #dce6ec;
    font-size: 10px;
}

.ibl-games-vote.is-selected {
    border-color: var(--ibl-team-color);
    background: rgba(255,255,255,.13);
    box-shadow: inset 4px 0 0 var(--ibl-team-color);
}

.ibl-games-prediction-result {
    min-height: 42px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid rgba(255,255,255,.16);
}

.ibl-games-prediction-result strong,
.ibl-games-prediction-result span {
    display: block;
}

.ibl-games-prediction-result strong {
    color: #d3de00;
    font-size: 11px;
    line-height: 1.25;
}

.ibl-games-prediction-result span {
    margin-top: 3px;
    color: #aebfca;
    font-size: 9px;
}

.ibl-games-vote-message {
    min-height: 11px;
    margin-top: 6px;
    color: #9fb2be;
    font-size: 8.5px;
    line-height: 1.2;
}

.ibl-games-moments {
    flex: 0 0 auto;
    min-height: 0;
}

.ibl-games-moments-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 8px;
}


.ibl-games-moments-head small {
    color: #7c8d97;
    font-size: 10.5px;
    font-weight: 600;
}

.ibl-games-gallery {
    display: grid;
    grid-auto-rows: clamp(82px, 11.7vh, 128px);
    gap: 6px;
}

.ibl-games-gallery--1 {
    grid-template-columns: 1fr;
}

.ibl-games-gallery--2 {
    grid-template-columns: repeat(2, 1fr);
}

.ibl-games-gallery--3,
.ibl-games-gallery--4 {
    grid-template-columns: repeat(4, 1fr);
}

.ibl-games-gallery--3 .ibl-games-photo:first-child {
    grid-column: span 2;
}

.ibl-games-gallery--5,
.ibl-games-gallery--6,
.ibl-games-gallery--7,
.ibl-games-gallery--8 {
    grid-template-columns: repeat(4, 1fr);
}

.ibl-games-photo {
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    padding: 0;
    border: 0;
    border-radius: 12px;
    background: #e4e8ea;
    cursor: pointer;
}

.ibl-games-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .2s ease;
}

.ibl-games-gallery--1 .ibl-games-photo,
.ibl-games-gallery--2 .ibl-games-photo {
    min-height: clamp(108px, 13.5vh, 148px);
}

.ibl-games-gallery-empty {
    min-height: 88px;
    display: grid;
    place-items: center;
    border: 1px dashed #d1dadf;
    border-radius: 14px;
    color: #7d8d96;
    background: #f7f8f8;
    font-size: 10px;
}

.ibl-games-lightbox[hidden] {
    display: none !important;
}

.ibl-games-lightbox {
    position: fixed;
    z-index: 99999;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 34px;
    background: rgba(2,18,31,.9);
    backdrop-filter: blur(8px);
}

.ibl-games-lightbox img {
    max-width: min(92vw, 1500px);
    max-height: 88vh;
    object-fit: contain;
    border-radius: 18px;
    box-shadow: 0 18px 70px rgba(0,0,0,.35);
}

.ibl-games-lightbox-close {
    position: fixed;
    z-index: 2;
    top: 22px;
    right: 22px;
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: var(--ibl-reader-navy);
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}

@media (hover:hover) and (pointer:fine) {
    .ibl-games-vote:hover {
        transform: translateY(-1px);
        background: rgba(255,255,255,.1);
    }

    .ibl-games-photo:hover img {
        transform: scale(1.035);
    }
}

@media (min-width: 1400px) {
    .ibl-games-gallery {
        grid-auto-rows: clamp(96px, 12.2vh, 138px);
    }

    .ibl-games-gallery--1 .ibl-games-photo,
    .ibl-games-gallery--2 .ibl-games-photo {
        min-height: clamp(122px, 14vh, 158px);
    }
}

@media (max-width: 1050px) {
    .ibl-games-main {
        grid-template-columns: minmax(0, 1.4fr) minmax(280px, .7fr);
    }

    .ibl-games-layout {
        padding-right: 30px;
        padding-left: 30px;
    }
}

@media (max-width: 820px) {
    .ibl-games-page {
        overflow: auto;
    }

    .ibl-games-layout {
        height: auto;
        min-height: 100%;
        padding: 24px;
    }

    .ibl-games-main {
        grid-template-columns: 1fr;
    }

    .ibl-games-prediction {
        min-height: 330px;
    }

    .ibl-games-gallery {
        grid-auto-rows: 115px;
    }
}

@media (max-width: 560px) {
    .ibl-games-layout {
        padding: 20px 18px 28px;
    }

    .ibl-games-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .ibl-games-week-note {
        display: none;
    }

    .ibl-games-rank {
        grid-template-columns: 32px minmax(0,1fr) 58px;
        gap: 8px;
    }

    .ibl-games-rank-number {
        width: 30px;
        height: 30px;
        font-size: 12px;
    }

    .ibl-games-score {
        font-size: 18px;
    }

    .ibl-games-highlight {
        grid-template-columns: 1fr;
    }

    .ibl-games-gallery,
    .ibl-games-gallery--3,
    .ibl-games-gallery--4,
    .ibl-games-gallery--5,
    .ibl-games-gallery--6,
    .ibl-games-gallery--7,
    .ibl-games-gallery--8 {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 105px;
    }

    .ibl-games-gallery--3 .ibl-games-photo:first-child {
        grid-column: span 2;
    }

    .ibl-games-lightbox {
        padding: 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ibl-games-bar-fill,
    .ibl-games-vote,
    .ibl-games-photo img {
        transition: none;
    }
}



/* -----------------------------------------
   Page 8 · The Funny Files
----------------------------------------- */
.ibl-funny-page {
    position: relative;
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: clamp(12px, 1.25vw, 18px);
}

.ibl-funny-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
}

.ibl-funny-kicker {
    display: inline-flex;
    align-items: center;
    padding: 6px 12px;
    border-radius: 999px;
    background: #e8f0df;
    color: var(--ibl-reader-navy);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .06em;
}

.ibl-funny-header h2 {
    margin: 10px 0 0;
    font-family: "Work Sans", inherit;
    font-size: clamp(32px, 3.35vw, 52px);
    line-height: 1;
    font-weight: 300;
    color: var(--ibl-reader-navy);
}

.ibl-funny-intro {
    max-width: 960px;
    margin-top: 10px;
}

.ibl-funny-intro p,
.ibl-funny-continuation {
    margin: 0;
    color: #455b69;
    font-size: clamp(14px, 1vw, 16px);
    line-height: 1.6;
}

.ibl-funny-page-count {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    padding: 10px 14px;
    border-radius: 999px;
    background: #f4f7f1;
    color: var(--ibl-reader-navy);
    font-size: 13px;
    font-weight: 700;
}

.ibl-funny-grid {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    gap: 14px;
    align-content: stretch;
}

.ibl-funny-layout--1 {
    grid-template-columns: minmax(0, 1fr);
}

.ibl-funny-layout--2,
.ibl-funny-layout--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ibl-funny-layout--3 {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
}

.ibl-funny-layout--3 .ibl-funny-card:first-child {
    grid-row: 1 / span 2;
}

.ibl-funny-card {
    min-height: 0;
    border: 1px solid #dde5e8;
    border-radius: 28px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbf5 100%);
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    box-shadow: 0 12px 28px rgba(2, 35, 64, 0.06);
    overflow: hidden;
}

.ibl-funny-card.is-office-favourite {
    border-color: rgba(110, 164, 53, 0.5);
    box-shadow: 0 16px 34px rgba(110, 164, 53, 0.15);
}

.ibl-funny-card-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

.ibl-funny-case,
.ibl-funny-favourite {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ibl-funny-case {
    padding: 6px 10px;
    background: #f1f6eb;
    color: #547d28;
}

.ibl-funny-favourite {
    padding: 6px 10px;
    background: rgba(110, 164, 53, 0.16);
    color: #547d28;
}

.ibl-funny-card-body {
    min-height: 0;
    flex: 1 1 auto;
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(240px, 1.05fr);
    gap: 14px;
    align-items: stretch;
}

.ibl-funny-layout--1 .ibl-funny-card-body {
    grid-template-columns: minmax(0, .8fr) minmax(260px, 1.2fr);
}

.ibl-funny-layout--2 .ibl-funny-card-body,
.ibl-funny-layout--4 .ibl-funny-card-body,
.ibl-funny-layout--3 .ibl-funny-card:not(:first-child) .ibl-funny-card-body {
    grid-template-columns: 1fr;
}

.ibl-funny-card-copy {
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ibl-funny-card-copy h3 {
    margin: 0;
    font-size: clamp(20px, 1.9vw, 32px);
    line-height: 1.05;
    color: var(--ibl-reader-navy);
}

.ibl-funny-card-copy p {
    margin: 0;
    color: #314754;
    font-size: clamp(13px, .95vw, 15px);
    line-height: 1.55;
}

.ibl-funny-caption {
    margin-top: auto !important;
    color: #6ea435 !important;
    font-weight: 700;
}

.ibl-funny-media-frame {
    position: relative;
    min-height: 0;
    border-radius: 24px;
    overflow: hidden;
    background: linear-gradient(180deg, #f1f5f7 0%, #dde8d5 100%);
    border: 1px solid rgba(2, 35, 64, 0.08);
}

.ibl-funny-layout--1 .ibl-funny-media-frame,
.ibl-funny-layout--3 .ibl-funny-card:first-child .ibl-funny-media-frame {
    min-height: clamp(230px, 34vh, 430px);
}

.ibl-funny-layout--2 .ibl-funny-media-frame,
.ibl-funny-layout--4 .ibl-funny-media-frame,
.ibl-funny-layout--3 .ibl-funny-card:not(:first-child) .ibl-funny-media-frame {
    min-height: clamp(180px, 24vh, 290px);
}

.ibl-funny-media-image,
.ibl-funny-media-launch {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    min-height: inherit;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: pointer;
}

.ibl-funny-media-image img,
.ibl-funny-media-launch img,
.ibl-funny-embedded-media {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ibl-funny-embedded-media {
    border: 0;
    min-height: inherit;
}

.ibl-funny-media-placeholder,
.ibl-funny-media-empty {
    display: grid;
    place-items: center;
    height: 100%;
    min-height: inherit;
    color: var(--ibl-reader-navy);
    text-align: center;
    padding: 18px;
}

.ibl-funny-media-placeholder {
    font-size: clamp(54px, 7vw, 86px);
    background: radial-gradient(circle at 70% 20%, rgba(110, 164, 53, 0.2) 0%, rgba(255,255,255,0) 48%), linear-gradient(180deg, #f4f7f1 0%, #e8f0df 100%);
}

.ibl-funny-media-empty {
    font-size: 15px;
    line-height: 1.5;
}

.ibl-funny-media-badge {
    position: absolute;
    left: 16px;
    bottom: 16px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(2, 35, 64, 0.82);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    box-shadow: 0 10px 26px rgba(2, 35, 64, 0.26);
}

.ibl-funny-vote {
    flex: 0 0 auto;
    border-radius: 28px;
    background: #022340;
    color: #fff;
    padding: 16px 18px;
    box-shadow: 0 16px 38px rgba(2, 35, 64, 0.14);
}

.ibl-funny-vote-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 12px;
}

.ibl-funny-vote-head span {
    display: block;
    color: #9dc65c;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.ibl-funny-vote-head h3 {
    margin: 4px 0 0;
    color: #fff;
    font-size: clamp(24px, 2vw, 32px);
    line-height: 1;
    font-weight: 800;
}

.ibl-funny-vote-head p {
    margin: 6px 0 0;
    color: rgba(255,255,255,0.78);
    font-size: 14px;
}

.ibl-funny-vote-total {
    flex: 0 0 auto;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,0.1);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
}

.ibl-funny-vote-options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.ibl-funny-vote-option {
    flex: 1 1 220px;
    min-width: min(220px, 100%);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 18px;
    background: rgba(255,255,255,0.06);
    color: #fff;
    padding: 12px 14px;
    cursor: pointer;
    transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.ibl-funny-vote-option:hover,
.ibl-funny-vote-option:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(157, 198, 92, 0.55);
    background: rgba(255,255,255,0.09);
    outline: none;
}

.ibl-funny-vote-option.is-selected {
    border-color: rgba(157, 198, 92, 0.82);
    background: rgba(157, 198, 92, 0.14);
    box-shadow: inset 0 0 0 1px rgba(157, 198, 92, 0.2);
}

.ibl-funny-vote-label {
    font-size: 14px;
    font-weight: 700;
    text-align: left;
}

.ibl-funny-vote-percent {
    color: #9dc65c;
    font-size: 13px;
    font-weight: 800;
}

.ibl-funny-vote-foot {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 12px;
    margin-top: 12px;
}

.ibl-funny-vote-result {
    display: flex;
    flex-direction: column;
    gap: 4px;
    color: rgba(255,255,255,0.84);
    font-size: 13px;
}

.ibl-funny-vote-result strong {
    color: #fff;
    font-size: 14px;
}

.ibl-funny-vote-message {
    min-height: 1em;
    color: #9dc65c;
    font-size: 12px;
    font-weight: 700;
    text-align: right;
}

.ibl-funny-empty-state {
    display: grid;
    place-items: center;
    gap: 8px;
    min-height: 280px;
    border: 1px dashed #cad7dd;
    border-radius: 24px;
    color: #617785;
    text-align: center;
    padding: 28px;
    background: #f9fbfc;
}

.ibl-funny-lightbox {
    position: fixed;
    inset: 0;
    z-index: 10010;
    display: grid;
    place-items: center;
    padding: 28px;
    background: rgba(2, 35, 64, 0.86);
}

.ibl-funny-lightbox img {
    display: block;
    max-width: min(92vw, 1200px);
    max-height: 86vh;
    border-radius: 22px;
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.35);
}

.ibl-funny-lightbox-close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 999px;
    background: rgba(255,255,255,0.18);
    color: #fff;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}

@media (max-width: 1180px) {
    .ibl-funny-layout--2,
    .ibl-funny-layout--3,
    .ibl-funny-layout--4 {
        grid-template-columns: 1fr;
        grid-template-rows: none;
    }

    .ibl-funny-layout--3 .ibl-funny-card:first-child {
        grid-row: auto;
    }

    .ibl-funny-card-body,
    .ibl-funny-layout--1 .ibl-funny-card-body {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 860px) {
    .ibl-funny-header,
    .ibl-funny-vote-head,
    .ibl-funny-vote-foot {
        flex-direction: column;
        align-items: flex-start;
    }

    .ibl-funny-vote-message {
        text-align: left;
    }

    .ibl-funny-grid {
        flex: 0 0 auto;
    }
}


.ibl-funny-native-video {
    background: #000;
}

.ibl-funny-video-error {
    min-height: inherit;
    height: 100%;
    display: grid;
    place-content: center;
    gap: 8px;
    padding: 24px;
    background: #f5f7f8;
    color: var(--ibl-reader-navy);
    text-align: center;
}

.ibl-funny-video-error strong {
    font-size: 17px;
}

.ibl-funny-video-error span {
    max-width: 560px;
    color: #657985;
    font-size: 13px;
    line-height: 1.45;
}

.ibl-funny-video-error a {
    justify-self: center;
    margin-top: 4px;
    padding: 9px 14px;
    border-radius: 999px;
    background: var(--ibl-reader-navy);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}


/* Funny Files hidden-state safeguards.
   Explicitly preserve hidden UI until JavaScript/user interaction reveals it. */
.ibl-funny-lightbox[hidden],
.ibl-funny-favourite[hidden],
.ibl-funny-vote-percent[hidden],
.ibl-funny-admin-media[hidden] {
    display: none !important;
}


/* -------------------------------------------------------------------------
   Funny Files visual alignment + per-entry reactions — v2.0.4
   ------------------------------------------------------------------------- */
.ibl-funny-page {
    width: 100%;
    height: 100%;
    min-height: 100%;
    padding: clamp(26px, 2.6vw, 42px) clamp(34px, 4vw, 64px) clamp(26px, 2.6vw, 42px);
    gap: clamp(14px, 1.5vh, 20px);
    background: #fff;
}

.ibl-funny-header {
    flex: 0 0 auto;
}

.ibl-funny-kicker {
    min-height: 28px;
    padding: 5px 11px;
    background: #e4efd9;
    font-size: clamp(10px, .72vw, 12px);
    letter-spacing: .04em;
}

.ibl-funny-header h2 {
    margin-top: 10px;
    font-size: clamp(34px, 3.5vw, 55px);
    letter-spacing: -.04em;
}

.ibl-funny-intro {
    max-width: 1050px;
    margin-top: 8px;
}

.ibl-funny-intro p,
.ibl-funny-continuation {
    color: #526a78;
    font-size: clamp(12px, .92vw, 15px);
    line-height: 1.45;
}

.ibl-funny-grid {
    gap: clamp(12px, 1.1vw, 18px);
}

.ibl-funny-card {
    padding: clamp(15px, 1.35vw, 20px);
    gap: 10px;
    border: 0;
    border-radius: clamp(24px, 2.3vw, 34px);
    background: #f5f6f6;
    box-shadow: none;
}

.ibl-funny-card-meta {
    justify-content: flex-start;
}

.ibl-funny-case {
    padding: 5px 9px;
    background: #e4efd9;
    color: #537c2d;
    font-size: 9px;
}

.ibl-funny-card-body {
    gap: clamp(12px, 1.2vw, 18px);
}

.ibl-funny-card-copy h3 {
    font-size: clamp(21px, 1.85vw, 31px);
    font-weight: 650;
}

.ibl-funny-card-copy p {
    color: #425966;
    font-size: clamp(11px, .82vw, 13.5px);
    line-height: 1.45;
}

.ibl-funny-media-frame {
    border: 0;
    border-radius: clamp(18px, 1.8vw, 26px);
    background: #e8edef;
}

.ibl-funny-media-placeholder {
    color: #fff;
    background: var(--ibl-reader-navy);
    font-size: clamp(40px, 5vw, 66px);
}

.ibl-funny-media-empty {
    color: #6b7e89;
    background: #e8edef;
    font-size: 12px;
}

.ibl-funny-reactions {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    padding-top: 10px;
    border-top: 1px solid #dce3e6;
}

.ibl-funny-react-label {
    flex: 0 0 auto;
    color: #6d808b;
    font-size: 9px;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ibl-funny-reaction-list {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.ibl-funny-reaction {
    display: inline-flex;
    min-width: 42px;
    min-height: 31px;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 5px 7px;
    border: 1px solid #d9e1e5;
    border-radius: 999px;
    background: #fff;
    color: var(--ibl-reader-navy);
    font-family: inherit;
    font-size: 13px;
    cursor: pointer;
    transition: transform .16s ease, background-color .16s ease, border-color .16s ease;
}

.ibl-funny-reaction strong {
    font-size: 9px;
    font-weight: 750;
    color: #617682;
}

.ibl-funny-reaction.is-selected {
    border-color: var(--ibl-reader-green);
    background: #e4efd9;
}

.ibl-funny-reaction-message {
    margin-left: auto;
    min-width: 70px;
    color: #71838e;
    font-size: 8.5px;
    text-align: right;
}

.ibl-funny-vote,
.ibl-funny-favourite {
    display: none !important;
}

@media (hover:hover) and (pointer:fine) {
    .ibl-funny-reaction:hover {
        transform: translateY(-1px);
        border-color: #b9c9d1;
    }
}

@media (max-width: 1180px) {
    .ibl-funny-page {
        overflow: auto;
    }
}

@media (max-width: 760px) {
    .ibl-funny-page {
        height: auto;
        min-height: 100%;
        padding: 22px 20px 30px;
    }

    .ibl-funny-reactions {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .ibl-funny-reaction-message {
        flex: 0 0 100%;
        width: 100%;
        margin-left: 0;
        text-align: left;
    }
}


/* -------------------------------------------------------------------------
   Funny Files — artwork-first adaptive magazine layout (v2.0.5)
   ------------------------------------------------------------------------- */
.ibl-funny-page--artwork {
    width: 100%;
    height: 100%;
    min-height: 100%;
    overflow: hidden;
    padding: clamp(28px, 2.8vw, 44px) clamp(38px, 4.2vw, 68px) clamp(28px, 2.8vw, 44px);
    background: #fff;
    gap: clamp(18px, 2vh, 28px);
}

.ibl-funny-art-header {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.ibl-funny-page--artwork .ibl-funny-kicker {
    min-height: 28px;
    padding: 5px 11px;
    border-radius: 999px;
    background: #dfeccf;
    color: var(--ibl-reader-navy);
    font-size: clamp(10px, .72vw, 12px);
    font-weight: 750;
    letter-spacing: .04em;
}

.ibl-funny-art-stage {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    gap: clamp(22px, 2.4vw, 38px);
    align-items: stretch;
}

.ibl-funny-art-stage.ibl-funny-layout--1 {
    grid-template-columns: 1fr;
}

.ibl-funny-art-stage.ibl-funny-layout--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ibl-funny-art-stage.ibl-funny-layout--3 {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
}

.ibl-funny-art-stage.ibl-funny-layout--3 .ibl-funny-art-entry:first-child {
    grid-row: 1 / span 2;
}

.ibl-funny-art-stage.ibl-funny-layout--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
}

.ibl-funny-page--artwork .ibl-funny-art-entry {
    min-width: 0;
    min-height: 0;
    display: grid;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
    gap: clamp(10px, 1vh, 15px);
    align-content: center;
}

/* One entry: let the media shape define the editorial composition. */
.ibl-funny-layout--1 .ibl-funny-art-entry--portrait,
.ibl-funny-layout--1 .ibl-funny-art-entry--square {
    grid-template-columns: minmax(300px, .92fr) minmax(240px, .62fr);
    grid-template-areas:
        "media copy"
        "media reactions";
    column-gap: clamp(34px, 5vw, 80px);
    justify-content: center;
}

.ibl-funny-layout--1 .ibl-funny-art-entry--landscape,
.ibl-funny-layout--1 .ibl-funny-art-entry--wide {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
        "copy"
        "media"
        "reactions";
    width: min(100%, 1380px);
    justify-self: center;
}

/* Two-entry spreads alternate text above/below like an editorial magazine page. */
.ibl-funny-layout--2 .ibl-funny-art-entry {
    grid-template-columns: 1fr;
    grid-template-areas:
        "copy"
        "media"
        "reactions";
}

.ibl-funny-layout--2 .ibl-funny-entry--copy-after {
    grid-template-areas:
        "media"
        "copy"
        "reactions";
}

.ibl-funny-layout--2 .ibl-funny-entry--portrait .ibl-funny-art-media,
.ibl-funny-layout--2 .ibl-funny-entry--square .ibl-funny-art-media {
    width: min(82%, 470px);
    justify-self: center;
}

.ibl-funny-layout--2 .ibl-funny-entry--landscape .ibl-funny-art-media,
.ibl-funny-layout--2 .ibl-funny-entry--wide .ibl-funny-art-media {
    width: 100%;
}

/* Three/four-entry pages stay compact but retain aspect-ratio-aware media. */
.ibl-funny-layout--3 .ibl-funny-art-entry,
.ibl-funny-layout--4 .ibl-funny-art-entry {
    grid-template-columns: 1fr;
    grid-template-areas:
        "copy"
        "media"
        "reactions";
}

.ibl-funny-layout--3 .ibl-funny-entry--copy-after,
.ibl-funny-layout--4 .ibl-funny-entry--copy-after {
    grid-template-areas:
        "media"
        "copy"
        "reactions";
}

.ibl-funny-art-copy {
    grid-area: copy;
    align-self: center;
    max-width: 620px;
}

.ibl-funny-art-copy:empty {
    display: none;
}

.ibl-funny-art-copy p {
    margin: 0;
    color: var(--ibl-reader-navy);
    font-family: "Work Sans", Arial, sans-serif;
    font-size: clamp(13px, 1vw, 17px);
    font-style: italic;
    font-weight: 300;
    line-height: 1.45;
}

.ibl-funny-art-copy p + p {
    margin-top: .8em;
}

.ibl-funny-layout--1 .ibl-funny-art-entry--portrait .ibl-funny-art-copy,
.ibl-funny-layout--1 .ibl-funny-art-entry--square .ibl-funny-art-copy {
    font-size: 1.05em;
}

.ibl-funny-art-media {
    grid-area: media;
    position: relative;
    width: 100%;
    max-height: 100%;
    min-height: 0;
    aspect-ratio: var(--ibl-funny-media-ratio);
    overflow: hidden;
    border: 0;
    border-radius: clamp(22px, 2.1vw, 34px);
    background: #f2f3f3;
    box-shadow: none;
}

.ibl-funny-layout--1 .ibl-funny-entry--portrait .ibl-funny-art-media {
    height: min(62vh, 660px);
    width: auto;
    max-width: 100%;
    justify-self: center;
}

.ibl-funny-layout--1 .ibl-funny-entry--square .ibl-funny-art-media {
    height: min(56vh, 590px);
    width: auto;
    justify-self: center;
}

.ibl-funny-layout--1 .ibl-funny-entry--landscape .ibl-funny-art-media {
    max-width: 1120px;
    justify-self: center;
}

.ibl-funny-layout--1 .ibl-funny-entry--wide .ibl-funny-art-media {
    max-width: 1320px;
    justify-self: center;
}

.ibl-funny-art-media .ibl-funny-media-image,
.ibl-funny-art-media .ibl-funny-media-launch,
.ibl-funny-art-media .ibl-funny-embedded-media {
    width: 100%;
    height: 100%;
    min-height: 0;
}

.ibl-funny-art-media img,
.ibl-funny-art-media video,
.ibl-funny-art-media iframe {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ibl-funny-video-placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-content: center;
    gap: 8px;
    background: #eef0f0;
    color: var(--ibl-reader-navy);
    text-align: center;
}

.ibl-funny-video-play {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    margin: 0 auto;
    border-radius: 50%;
    background: var(--ibl-reader-navy);
    color: #fff;
    font-size: 20px;
    padding-left: 3px;
}

.ibl-funny-video-placeholder small {
    font-size: 11px;
    font-weight: 650;
}

.ibl-funny-page--artwork .ibl-funny-reactions {
    grid-area: reactions;
    align-self: end;
    justify-self: start;
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 0;
    border: 0;
    background: transparent;
}

.ibl-funny-page--artwork .ibl-funny-reaction-list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
}

.ibl-funny-page--artwork .ibl-funny-reaction {
    min-width: 39px;
    min-height: 31px;
    padding: 5px 7px;
    border: 1px solid #dce3e6;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 3px 9px rgba(2,35,64,.05);
}

.ibl-funny-page--artwork .ibl-funny-reaction.is-selected {
    border-color: var(--ibl-reader-green);
    background: #e4efd9;
}

.ibl-funny-page--artwork .ibl-funny-reaction-message {
    min-width: 0;
    margin-left: 3px;
    color: #7a8d98;
    font-size: 8.5px;
    white-space: nowrap;
}

.ibl-funny-page--artwork .ibl-funny-page-count {
    padding: 7px 11px;
    background: #f4f6f2;
    font-size: 10px;
}

@media (max-width: 1120px) {
    .ibl-funny-page--artwork {
        overflow: auto;
    }

    .ibl-funny-art-stage.ibl-funny-layout--2,
    .ibl-funny-art-stage.ibl-funny-layout--3,
    .ibl-funny-art-stage.ibl-funny-layout--4 {
        grid-template-columns: 1fr;
        grid-template-rows: none;
    }

    .ibl-funny-art-stage.ibl-funny-layout--3 .ibl-funny-art-entry:first-child {
        grid-row: auto;
    }

    .ibl-funny-layout--1 .ibl-funny-art-entry--portrait,
    .ibl-funny-layout--1 .ibl-funny-art-entry--square {
        grid-template-columns: minmax(260px, .9fr) minmax(220px, .65fr);
    }
}

@media (max-width: 760px) {
    .ibl-funny-page--artwork {
        height: auto;
        padding: 22px 20px 30px;
    }

    .ibl-funny-layout--1 .ibl-funny-art-entry--portrait,
    .ibl-funny-layout--1 .ibl-funny-art-entry--square,
    .ibl-funny-layout--1 .ibl-funny-art-entry--landscape,
    .ibl-funny-layout--1 .ibl-funny-art-entry--wide,
    .ibl-funny-layout--2 .ibl-funny-art-entry,
    .ibl-funny-layout--3 .ibl-funny-art-entry,
    .ibl-funny-layout--4 .ibl-funny-art-entry {
        grid-template-columns: 1fr;
        grid-template-areas:
            "copy"
            "media"
            "reactions";
    }

    .ibl-funny-layout--1 .ibl-funny-entry--portrait .ibl-funny-art-media,
    .ibl-funny-layout--1 .ibl-funny-entry--square .ibl-funny-art-media {
        width: min(100%, 520px);
        height: auto;
    }

    .ibl-funny-page--artwork .ibl-funny-reaction-message {
        flex: 0 0 100%;
        width: 100%;
        white-space: normal;
    }
}


/* Funny Files exact-ratio media and video mode controls — v2.0.6 */
.ibl-funny-art-stage.ibl-funny-layout--3-mixed {
    grid-template-columns: minmax(0, 1.06fr) minmax(0, .78fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
}
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry--portrait,
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry--square {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: stretch;
}
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry--portrait .ibl-funny-art-media,
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry--square .ibl-funny-art-media {
    width: 100%;
    height: auto;
    max-height: calc(100vh - 300px);
}
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry:not(.ibl-funny-entry--portrait):not(.ibl-funny-entry--square),
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry.ibl-funny-entry--landscape,
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry.ibl-funny-entry--wide {
    grid-column: 1;
}
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry.ibl-funny-entry--landscape .ibl-funny-art-media,
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry.ibl-funny-entry--wide .ibl-funny-art-media {
    width: 100%;
    max-width: 100%;
}
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry {
    align-content: center;
}

.ibl-funny-art-media {
    background: transparent;
}
.ibl-funny-art-media .ibl-funny-media-image,
.ibl-funny-art-media .ibl-funny-media-launch,
.ibl-funny-art-media .ibl-funny-embedded-media {
    background: transparent;
    border: 0;
}
.ibl-funny-art-media img,
.ibl-funny-art-media video,
.ibl-funny-art-media iframe {
    object-fit: contain !important;
    background: transparent;
}
.ibl-funny-media-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain !important;
}
.ibl-funny-media-launch {
    padding: 0;
}
.ibl-funny-video-poster-wrap {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    overflow: hidden;
    background: #eef0f0;
}
.ibl-funny-video-poster {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain !important;
    background: #eef0f0;
}
.ibl-funny-video-overlay {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    background: linear-gradient(180deg, rgba(2,35,64,.05), rgba(2,35,64,.18));
}
.ibl-funny-video-overlay .ibl-funny-video-play {
    box-shadow: 0 10px 26px rgba(2,35,64,.22);
}
.ibl-funny-video-placeholder {
    background: #eef0f0;
}
.ibl-funny-layout--2 .ibl-funny-entry--portrait .ibl-funny-art-media,
.ibl-funny-layout--2 .ibl-funny-entry--square .ibl-funny-art-media {
    width: min(100%, 470px);
}
.ibl-funny-art-copy {
    max-width: none;
}
@media (max-width: 1120px) {
    .ibl-funny-art-stage.ibl-funny-layout--3-mixed {
        grid-template-columns: 1fr;
        grid-template-rows: none;
    }
    .ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry--portrait,
    .ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry--square {
        grid-column: auto;
        grid-row: auto;
    }
}


/* =========================================================================
   Funny Files intrinsic-media layout — v2.0.7
   The media itself owns its aspect ratio. No crop boxes / no overlap.
   ========================================================================= */
.ibl-funny-page--artwork .ibl-funny-art-media {
    aspect-ratio: auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-width: 100% !important;
    max-height: none !important;
    align-self: center !important;
    justify-self: stretch !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    overflow: visible !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.ibl-funny-page--artwork .ibl-funny-media-image,
.ibl-funny-page--artwork .ibl-funny-media-launch {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-width: 100% !important;
    max-height: none !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
}

.ibl-funny-page--artwork .ibl-funny-media-image img,
.ibl-funny-page--artwork .ibl-funny-video-poster,
.ibl-funny-page--artwork .ibl-funny-embedded-media {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    border-radius: clamp(18px, 1.8vw, 28px);
    background: transparent;
}

.ibl-funny-page--artwork iframe.ibl-funny-embedded-media {
    aspect-ratio: 16 / 9;
    height: auto !important;
}

.ibl-funny-page--artwork .ibl-funny-video-poster-wrap {
    position: relative;
    display: block;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden;
    border-radius: clamp(18px, 1.8vw, 28px);
    background: transparent;
}

.ibl-funny-page--artwork .ibl-funny-video-poster-wrap .ibl-funny-video-poster {
    border-radius: inherit;
}

.ibl-funny-page--artwork .ibl-funny-video-overlay {
    border-radius: inherit;
}

/* Two items can sit comfortably side-by-side, but neither media item is
   forced into a shared height. */
.ibl-funny-art-stage.ibl-funny-layout--2 {
    align-items: start;
}

.ibl-funny-art-stage.ibl-funny-layout--2 .ibl-funny-art-entry {
    align-content: start;
}

/* Precise 3-item mixed layout:
   two horizontal items stack on the left, one portrait/square fills the right.
   The explicit slot attributes beat the old "first child spans 2 rows" rule. */
.ibl-funny-art-stage.ibl-funny-layout--3-mixed {
    grid-template-columns: minmax(0, 1.08fr) minmax(280px, .62fr) !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
    align-items: stretch;
}

.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry:first-child {
    grid-row: auto !important;
}

.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot="left-top"] {
    grid-column: 1 !important;
    grid-row: 1 !important;
}

.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot="left-bottom"] {
    grid-column: 1 !important;
    grid-row: 2 !important;
}

.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot="right-full"] {
    grid-column: 2 !important;
    grid-row: 1 / span 2 !important;
}

.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot="left-top"],
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot="left-bottom"] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
        "copy"
        "media"
        "reactions";
    align-content: center;
}

.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot="right-full"] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
        "media"
        "copy"
        "reactions";
    align-content: center;
}

.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot="left-top"] .ibl-funny-art-media,
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot="left-bottom"] .ibl-funny-art-media {
    max-height: 24vh !important;
}

.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot="left-top"] .ibl-funny-media-image img,
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot="left-bottom"] .ibl-funny-media-image img,
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot="left-top"] .ibl-funny-video-poster,
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot="left-bottom"] .ibl-funny-video-poster,
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot="left-top"] .ibl-funny-embedded-media,
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot="left-bottom"] .ibl-funny-embedded-media {
    max-height: 24vh !important;
    width: auto !important;
    max-width: 100% !important;
}

.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot="right-full"] .ibl-funny-art-media {
    max-height: 58vh !important;
}

.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot="right-full"] .ibl-funny-media-image img,
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot="right-full"] .ibl-funny-video-poster,
.ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot="right-full"] .ibl-funny-embedded-media {
    max-height: 58vh !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 auto;
}

/* Keep reaction rows attached to their own entry and out of neighbouring media. */
.ibl-funny-page--artwork .ibl-funny-reactions {
    width: 100%;
    min-width: 0;
    position: static !important;
    z-index: 1;
}

@media (max-width: 1120px) {
    .ibl-funny-art-stage.ibl-funny-layout--3-mixed {
        grid-template-columns: 1fr !important;
        grid-template-rows: none !important;
    }

    .ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot] {
        grid-column: auto !important;
        grid-row: auto !important;
    }

    .ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot] .ibl-funny-art-media,
    .ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot] .ibl-funny-media-image img,
    .ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot] .ibl-funny-video-poster,
    .ibl-funny-art-stage.ibl-funny-layout--3-mixed .ibl-funny-art-entry[data-funny-slot] .ibl-funny-embedded-media {
        max-height: none !important;
        width: 100% !important;
    }
}


/* =========================================================================
   Funny Files manual layouts — v2.1.0
   ========================================================================= */
.ibl-funny-page--manual {
    width: 100%;
    height: 100%;
    min-height: 100%;
    overflow: hidden;
    padding: clamp(28px, 2.8vw, 44px) clamp(38px, 4.2vw, 68px) clamp(28px, 2.8vw, 44px);
    display: flex;
    flex-direction: column;
    gap: clamp(14px, 1.5vh, 20px);
    background: #fff;
}

.ibl-funny-page--manual .ibl-funny-art-header {
    flex: 0 0 auto;
}

.ibl-funny-manual-stage {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    gap: clamp(18px, 2vw, 30px);
    align-items: stretch;
}

.ibl-funny-manual-entry {
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: clamp(8px, .9vh, 12px);
}

.ibl-funny-manual-copy {
    flex: 0 0 auto;
}

.ibl-funny-manual-copy:empty {
    display: none;
}

.ibl-funny-manual-copy p {
    margin: 0;
    color: var(--ibl-reader-navy);
    font-family: "Work Sans", Arial, sans-serif;
    font-size: clamp(12px, .9vw, 15px);
    font-style: italic;
    font-weight: 300;
    line-height: 1.42;
}

.ibl-funny-manual-copy p + p {
    margin-top: 5px;
}

.ibl-funny-manual-media {
    flex: 0 1 auto;
    min-width: 0;
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ibl-funny-manual-image,
.ibl-funny-manual-video-launch {
    display: flex;
    width: 100%;
    height: auto;
    min-width: 0;
    min-height: 0;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.ibl-funny-manual-image img,
.ibl-funny-manual-media-el,
.ibl-funny-manual-video-launch .ibl-funny-video-poster {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain !important;
    border-radius: clamp(18px, 1.8vw, 28px);
    background: transparent;
}

iframe.ibl-funny-manual-media-el {
    width: 100%;
    aspect-ratio: 16 / 9;
    border: 0;
}

.ibl-funny-manual-video-launch .ibl-funny-video-poster-wrap {
    width: 100%;
    height: auto;
    display: block;
    position: relative;
    overflow: hidden;
    border-radius: clamp(18px, 1.8vw, 28px);
    background: #eef0f0;
}

.ibl-funny-manual-video-launch .ibl-funny-video-poster {
    width: 100%;
    max-height: none;
    border-radius: inherit;
}

.ibl-funny-page--manual .ibl-funny-reactions {
    flex: 0 0 auto;
    position: static !important;
    width: 100%;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0;
    border: 0;
}

.ibl-funny-page--manual .ibl-funny-reaction-list {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

/* 1 · Single feature */
.ibl-funny-manual--single_feature .ibl-funny-manual-stage {
    grid-template-columns: minmax(0, 1fr);
}
.ibl-funny-manual--single_feature .ibl-funny-manual-entry {
    width: min(100%, 1250px);
    justify-self: center;
}
.ibl-funny-manual--single_feature .ibl-funny-manual-media {
    max-height: 62vh;
}

/* 2 · Side by side */
.ibl-funny-manual--two_side .ibl-funny-manual-stage {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ibl-funny-manual--two_side .ibl-funny-manual-media {
    max-height: 52vh;
}

/* 2 · Top + Bottom */
.ibl-funny-manual--two_stack .ibl-funny-manual-stage {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
}
.ibl-funny-manual--two_stack .ibl-funny-manual-entry {
    display: grid;
    grid-template-columns: minmax(190px, .42fr) minmax(0, 1fr);
    grid-template-areas:
        "copy media"
        "reactions media";
    column-gap: clamp(14px, 1.5vw, 24px);
    align-items: center;
}
.ibl-funny-manual--two_stack .ibl-funny-manual-copy { grid-area: copy; }
.ibl-funny-manual--two_stack .ibl-funny-manual-media { grid-area: media; max-height: 31vh; }
.ibl-funny-manual--two_stack .ibl-funny-reactions { grid-area: reactions; align-self: start; }

/* 2 · portrait left / wide right */
.ibl-funny-manual--portrait_left_landscape_right .ibl-funny-manual-stage {
    grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
}
.ibl-funny-manual--portrait_left_landscape_right .ibl-funny-manual-entry--1 .ibl-funny-manual-media {
    max-height: 61vh;
}
.ibl-funny-manual--portrait_left_landscape_right .ibl-funny-manual-entry--2 .ibl-funny-manual-media {
    max-height: 45vh;
}

/* 2 · wide left / portrait right */
.ibl-funny-manual--landscape_left_portrait_right .ibl-funny-manual-stage {
    grid-template-columns: minmax(0, 1.28fr) minmax(260px, .72fr);
}
.ibl-funny-manual--landscape_left_portrait_right .ibl-funny-manual-entry--1 .ibl-funny-manual-media {
    max-height: 45vh;
}
.ibl-funny-manual--landscape_left_portrait_right .ibl-funny-manual-entry--2 .ibl-funny-manual-media {
    max-height: 61vh;
}

/* 3 · two stacked left + portrait right */
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-stage {
    grid-template-columns: minmax(0, 1.18fr) minmax(270px, .72fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
}
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--1 {
    grid-column: 1;
    grid-row: 1;
}
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--2 {
    grid-column: 1;
    grid-row: 2;
}
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--3 {
    grid-column: 2;
    grid-row: 1 / span 2;
}
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--1,
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--2 {
    display: grid;
    grid-template-columns: minmax(170px, .38fr) minmax(0, 1fr);
    grid-template-areas:
        "copy media"
        "reactions media";
    gap: 8px 16px;
    align-items: center;
}
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--1 .ibl-funny-manual-copy,
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--2 .ibl-funny-manual-copy { grid-area: copy; }
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--1 .ibl-funny-manual-media,
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--2 .ibl-funny-manual-media { grid-area: media; max-height: 28vh; }
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--1 .ibl-funny-reactions,
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--2 .ibl-funny-reactions { grid-area: reactions; align-self: start; }
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--3 .ibl-funny-manual-media { max-height: 60vh; }

/* 3 · portrait left + two stacked right */
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-stage {
    grid-template-columns: minmax(270px, .72fr) minmax(0, 1.18fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
}
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--1 {
    grid-column: 1;
    grid-row: 1 / span 2;
}
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--2 {
    grid-column: 2;
    grid-row: 1;
}
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--3 {
    grid-column: 2;
    grid-row: 2;
}
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--2,
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--3 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(170px, .38fr);
    grid-template-areas:
        "media copy"
        "media reactions";
    gap: 8px 16px;
    align-items: center;
}
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--2 .ibl-funny-manual-copy,
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--3 .ibl-funny-manual-copy { grid-area: copy; }
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--2 .ibl-funny-manual-media,
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--3 .ibl-funny-manual-media { grid-area: media; max-height: 28vh; }
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--2 .ibl-funny-reactions,
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--3 .ibl-funny-reactions { grid-area: reactions; align-self: start; }
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--1 .ibl-funny-manual-media { max-height: 60vh; }

/* 3 · equal */
.ibl-funny-manual--three_equal .ibl-funny-manual-stage {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.ibl-funny-manual--three_equal .ibl-funny-manual-media {
    max-height: 48vh;
}

/* Make sure natural media ratios win over all legacy Funny Files rules. */
.ibl-funny-page--manual .ibl-funny-manual-media img,
.ibl-funny-page--manual .ibl-funny-manual-media video {
    object-fit: contain !important;
}

@media (max-width: 1050px) {
    .ibl-funny-page--manual {
        height: auto;
        min-height: 100%;
        overflow: auto;
    }

    .ibl-funny-manual-stage,
    .ibl-funny-manual--two_side .ibl-funny-manual-stage,
    .ibl-funny-manual--two_stack .ibl-funny-manual-stage,
    .ibl-funny-manual--portrait_left_landscape_right .ibl-funny-manual-stage,
    .ibl-funny-manual--landscape_left_portrait_right .ibl-funny-manual-stage,
    .ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-stage,
    .ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-stage,
    .ibl-funny-manual--three_equal .ibl-funny-manual-stage {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: none;
    }

    .ibl-funny-page--manual .ibl-funny-manual-entry {
        grid-column: auto !important;
        grid-row: auto !important;
        display: flex !important;
        flex-direction: column;
    }

    .ibl-funny-page--manual .ibl-funny-manual-copy,
    .ibl-funny-page--manual .ibl-funny-manual-media,
    .ibl-funny-page--manual .ibl-funny-reactions {
        grid-area: auto !important;
        width: 100%;
        max-height: none !important;
    }

    .ibl-funny-page--manual .ibl-funny-manual-media img,
    .ibl-funny-page--manual .ibl-funny-manual-media video,
    .ibl-funny-page--manual .ibl-funny-manual-media iframe {
        max-height: 65vh !important;
    }
}


/* =========================================================================
   Funny Files slot containment fix — v2.1.1
   Every selected layout owns fixed, non-overlapping grid cells.
   Copy and reactions reserve their space; media scales inside what remains.
   ========================================================================= */

/* The page and stage must provide a real finite height on desktop. */
.ibl-funny-page--manual {
    box-sizing: border-box;
}

.ibl-funny-page--manual .ibl-funny-manual-stage {
    min-height: 0 !important;
    overflow: hidden !important;
}

.ibl-funny-page--manual .ibl-funny-manual-entry {
    box-sizing: border-box;
    min-width: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
}

/* Every media slot is bounded. Nothing inside may define the grid-row height. */
.ibl-funny-page--manual .ibl-funny-manual-media {
    box-sizing: border-box;
    min-width: 0 !important;
    min-height: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    overflow: hidden !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
}

/* Buttons/wrappers fill only the allocated media slot. */
.ibl-funny-page--manual .ibl-funny-manual-image,
.ibl-funny-page--manual .ibl-funny-manual-video-launch,
.ibl-funny-page--manual .ibl-funny-video-poster-wrap {
    box-sizing: border-box;
    min-width: 0 !important;
    min-height: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    overflow: hidden !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
}

/* Keep natural ratio. Scale DOWN when the slot is smaller. Never crop. */
.ibl-funny-page--manual .ibl-funny-manual-image img,
.ibl-funny-page--manual .ibl-funny-manual-media video,
.ibl-funny-page--manual .ibl-funny-manual-video-launch .ibl-funny-video-poster,
.ibl-funny-page--manual .ibl-funny-manual-media-el {
    box-sizing: border-box;
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    flex: 0 1 auto;
}

.ibl-funny-page--manual iframe.ibl-funny-manual-media-el {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: auto !important;
}

/* Reaction rows are always normal-flow content and cannot sit on artwork. */
.ibl-funny-page--manual .ibl-funny-reactions {
    position: static !important;
    inset: auto !important;
    z-index: auto !important;
    min-width: 0 !important;
    min-height: 31px;
    width: 100% !important;
    flex: 0 0 auto !important;
    overflow: visible !important;
    background: transparent !important;
}

.ibl-funny-page--manual .ibl-funny-reaction-list {
    flex-wrap: nowrap;
}

/* Three-item layout: 2 stacked left + tall right.
   Each grid item has its own contained internal grid. */
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-stage {
    grid-template-columns: minmax(0, 1.12fr) minmax(280px, .72fr) !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
    gap: clamp(18px, 1.7vw, 28px) !important;
}

.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--1 {
    grid-column: 1 !important;
    grid-row: 1 !important;
}

.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--2 {
    grid-column: 1 !important;
    grid-row: 2 !important;
}

.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--3 {
    grid-column: 2 !important;
    grid-row: 1 / span 2 !important;
}

/* Left entries: copy on left, media on right, reactions below copy.
   Media spans the full bounded height of that entry. */
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--1,
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--2 {
    display: grid !important;
    grid-template-columns: minmax(160px, .38fr) minmax(0, 1fr) !important;
    grid-template-rows: minmax(0, 1fr) auto !important;
    grid-template-areas:
        "copy media"
        "reactions media" !important;
    column-gap: clamp(14px, 1.3vw, 22px) !important;
    row-gap: 8px !important;
    align-items: stretch !important;
}

.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--1 .ibl-funny-manual-copy,
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--2 .ibl-funny-manual-copy {
    grid-area: copy !important;
    min-height: 0;
    align-self: center;
    overflow: hidden;
}

.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--1 .ibl-funny-manual-media,
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--2 .ibl-funny-manual-media {
    grid-area: media !important;
    max-height: none !important;
}

.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--1 .ibl-funny-reactions,
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--2 .ibl-funny-reactions {
    grid-area: reactions !important;
    align-self: end !important;
}

/* Right entry: reserve room for BOTH its copy and reactions.
   The portrait artwork gets only the remaining media row, so it can never
   push its text below the page. */
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--3 {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: minmax(0, 1fr) auto auto !important;
    grid-template-areas:
        "media"
        "copy"
        "reactions" !important;
    gap: clamp(8px, .85vh, 12px) !important;
    align-items: stretch !important;
}

.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--3 .ibl-funny-manual-media {
    grid-area: media !important;
    max-height: none !important;
}

.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--3 .ibl-funny-manual-copy {
    grid-area: copy !important;
    min-height: 0;
    max-height: 9.5em;
    overflow: hidden;
}

.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--3 .ibl-funny-reactions {
    grid-area: reactions !important;
}

/* Mirror preset receives the same containment rules. */
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-stage {
    grid-template-columns: minmax(280px, .72fr) minmax(0, 1.12fr) !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
    gap: clamp(18px, 1.7vw, 28px) !important;
}

.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--1 {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    display: grid !important;
    grid-template-rows: minmax(0, 1fr) auto auto !important;
    grid-template-areas:
        "media"
        "copy"
        "reactions" !important;
    gap: clamp(8px, .85vh, 12px) !important;
}

.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--1 .ibl-funny-manual-media {
    grid-area: media !important;
    max-height: none !important;
}

.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--1 .ibl-funny-manual-copy {
    grid-area: copy !important;
    max-height: 9.5em;
    overflow: hidden;
}

.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--1 .ibl-funny-reactions {
    grid-area: reactions !important;
}

.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--2,
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--3 {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(160px, .38fr) !important;
    grid-template-rows: minmax(0, 1fr) auto !important;
    grid-template-areas:
        "media copy"
        "media reactions" !important;
    column-gap: clamp(14px, 1.3vw, 22px) !important;
    row-gap: 8px !important;
}

.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--2 {
    grid-column: 2 !important;
    grid-row: 1 !important;
}

.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--3 {
    grid-column: 2 !important;
    grid-row: 2 !important;
}

.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--2 .ibl-funny-manual-media,
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--3 .ibl-funny-manual-media {
    grid-area: media !important;
    max-height: none !important;
}

.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--2 .ibl-funny-manual-copy,
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--3 .ibl-funny-manual-copy {
    grid-area: copy !important;
    align-self: center;
    overflow: hidden;
}

.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--2 .ibl-funny-reactions,
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--3 .ibl-funny-reactions {
    grid-area: reactions !important;
    align-self: end !important;
}

/* Top/bottom preset gets the same finite-slot treatment. */
.ibl-funny-manual--two_stack .ibl-funny-manual-stage {
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
}

.ibl-funny-manual--two_stack .ibl-funny-manual-entry {
    min-height: 0 !important;
    overflow: hidden !important;
    grid-template-rows: minmax(0, 1fr) auto !important;
}

.ibl-funny-manual--two_stack .ibl-funny-manual-media {
    max-height: none !important;
}

/* Side-by-side and portrait/wide presets also reserve media/copy/reaction rows,
   preventing very tall media from hiding the copy. */
.ibl-funny-manual--two_side .ibl-funny-manual-entry,
.ibl-funny-manual--portrait_left_landscape_right .ibl-funny-manual-entry,
.ibl-funny-manual--landscape_left_portrait_right .ibl-funny-manual-entry,
.ibl-funny-manual--three_equal .ibl-funny-manual-entry,
.ibl-funny-manual--single_feature .ibl-funny-manual-entry {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto minmax(0, 1fr) auto !important;
    grid-template-areas:
        "copy"
        "media"
        "reactions" !important;
}

.ibl-funny-manual--two_side .ibl-funny-manual-copy,
.ibl-funny-manual--portrait_left_landscape_right .ibl-funny-manual-copy,
.ibl-funny-manual--landscape_left_portrait_right .ibl-funny-manual-copy,
.ibl-funny-manual--three_equal .ibl-funny-manual-copy,
.ibl-funny-manual--single_feature .ibl-funny-manual-copy {
    grid-area: copy !important;
}

.ibl-funny-manual--two_side .ibl-funny-manual-media,
.ibl-funny-manual--portrait_left_landscape_right .ibl-funny-manual-media,
.ibl-funny-manual--landscape_left_portrait_right .ibl-funny-manual-media,
.ibl-funny-manual--three_equal .ibl-funny-manual-media,
.ibl-funny-manual--single_feature .ibl-funny-manual-media {
    grid-area: media !important;
    max-height: none !important;
}

.ibl-funny-manual--two_side .ibl-funny-reactions,
.ibl-funny-manual--portrait_left_landscape_right .ibl-funny-reactions,
.ibl-funny-manual--landscape_left_portrait_right .ibl-funny-reactions,
.ibl-funny-manual--three_equal .ibl-funny-reactions,
.ibl-funny-manual--single_feature .ibl-funny-reactions {
    grid-area: reactions !important;
}

/* Smaller screens can flow vertically; desktop remains magazine-like. */
@media (max-width: 1050px) {
    .ibl-funny-page--manual .ibl-funny-manual-stage {
        overflow: visible !important;
    }

    .ibl-funny-page--manual .ibl-funny-manual-entry {
        overflow: visible !important;
    }

    .ibl-funny-page--manual .ibl-funny-manual-media {
        height: auto !important;
        max-height: 60vh !important;
        overflow: visible !important;
    }

    .ibl-funny-page--manual .ibl-funny-manual-image,
    .ibl-funny-page--manual .ibl-funny-manual-video-launch,
    .ibl-funny-page--manual .ibl-funny-video-poster-wrap {
        height: auto !important;
        max-height: 60vh !important;
        overflow: visible !important;
    }

    .ibl-funny-page--manual .ibl-funny-manual-image img,
    .ibl-funny-page--manual .ibl-funny-manual-media video,
    .ibl-funny-page--manual .ibl-funny-manual-video-launch .ibl-funny-video-poster,
    .ibl-funny-page--manual .ibl-funny-manual-media-el {
        max-height: 60vh !important;
    }
}


/* =========================================================================
   Funny Files per-entry alignment controls — v2.1.2
   ========================================================================= */
.ibl-funny-page--manual .ibl-funny-manual-entry {
    padding: clamp(12px, 1vw, 17px) !important;
    border: 1px solid rgba(2, 35, 64, 0.075) !important;
    border-radius: clamp(18px, 1.6vw, 25px) !important;
    background: rgba(255,255,255,.72) !important;
    box-shadow: 0 7px 22px rgba(2,35,64,.055) !important;
}

/* Generic position controls deliberately come after the page-preset rules.
   The page preset owns the outer slot; this controls only the composition
   inside each entry. */
.ibl-funny-page--manual .ibl-funny-manual-entry.ibl-funny-text--top,
.ibl-funny-page--manual .ibl-funny-manual-entry.ibl-funny-text--bottom {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: clamp(8px, .8vh, 12px) !important;
}

.ibl-funny-page--manual .ibl-funny-manual-entry.ibl-funny-text--top {
    grid-template-rows: auto minmax(0, 1fr) auto !important;
    grid-template-areas:
        "copy"
        "media"
        "reactions" !important;
}

.ibl-funny-page--manual .ibl-funny-manual-entry.ibl-funny-text--bottom {
    grid-template-rows: minmax(0, 1fr) auto auto !important;
    grid-template-areas:
        "media"
        "copy"
        "reactions" !important;
}

.ibl-funny-page--manual .ibl-funny-manual-entry.ibl-funny-text--left,
.ibl-funny-page--manual .ibl-funny-manual-entry.ibl-funny-text--right {
    display: grid !important;
    grid-template-rows: minmax(0, 1fr) auto !important;
    gap: 8px clamp(12px, 1vw, 18px) !important;
    align-items: center !important;
}

.ibl-funny-page--manual .ibl-funny-manual-entry.ibl-funny-text--left {
    grid-template-columns: minmax(120px, .38fr) minmax(0, .62fr) !important;
    grid-template-areas:
        "copy media"
        "reactions reactions" !important;
}

.ibl-funny-page--manual .ibl-funny-manual-entry.ibl-funny-text--right {
    grid-template-columns: minmax(0, .62fr) minmax(120px, .38fr) !important;
    grid-template-areas:
        "media copy"
        "reactions reactions" !important;
}

.ibl-funny-page--manual .ibl-funny-manual-entry .ibl-funny-manual-copy {
    grid-area: copy !important;
    min-width: 0;
    min-height: 0;
}
.ibl-funny-page--manual .ibl-funny-manual-entry .ibl-funny-manual-media {
    grid-area: media !important;
}
.ibl-funny-page--manual .ibl-funny-manual-entry .ibl-funny-reactions {
    grid-area: reactions !important;
}

/* Horizontal alignment controls for text, artwork and reactions. */
.ibl-funny-page--manual .ibl-funny-align--left .ibl-funny-manual-copy {
    text-align: left;
}
.ibl-funny-page--manual .ibl-funny-align--center .ibl-funny-manual-copy {
    text-align: center;
}
.ibl-funny-page--manual .ibl-funny-align--right .ibl-funny-manual-copy {
    text-align: right;
}

.ibl-funny-page--manual .ibl-funny-align--left .ibl-funny-manual-media {
    justify-content: flex-start !important;
}
.ibl-funny-page--manual .ibl-funny-align--center .ibl-funny-manual-media {
    justify-content: center !important;
}
.ibl-funny-page--manual .ibl-funny-align--right .ibl-funny-manual-media {
    justify-content: flex-end !important;
}

.ibl-funny-page--manual .ibl-funny-align--left .ibl-funny-reactions {
    justify-content: flex-start !important;
}
.ibl-funny-page--manual .ibl-funny-align--center .ibl-funny-reactions {
    justify-content: center !important;
}
.ibl-funny-page--manual .ibl-funny-align--right .ibl-funny-reactions {
    justify-content: flex-end !important;
}

/* The media may shrink to fit but must keep its native ratio. */
.ibl-funny-page--manual .ibl-funny-manual-entry .ibl-funny-manual-image,
.ibl-funny-page--manual .ibl-funny-manual-entry .ibl-funny-manual-video-launch {
    width: auto !important;
    max-width: 100% !important;
}

@media (max-width: 1050px) {
    .ibl-funny-page--manual .ibl-funny-manual-entry.ibl-funny-text--left,
    .ibl-funny-page--manual .ibl-funny-manual-entry.ibl-funny-text--right {
        grid-template-columns: minmax(0,1fr) !important;
        grid-template-rows: auto minmax(0,1fr) auto !important;
        grid-template-areas:
            "copy"
            "media"
            "reactions" !important;
    }
}


/* =========================================================================
   Reader polish + Funny Files spacing — v2.1.3
   ========================================================================= */

/* Only the active magazine page carries the resting shadow.
   This prevents the stacked pages from drawing repeated lines behind the
   navigation controls at the top of the reader. */
.ibl-reader-page {
    box-shadow: none !important;
    transition:
        transform 2.6s cubic-bezier(.16, .72, .14, 1),
        box-shadow 2.6s ease !important;
}

.ibl-reader-page.is-current {
    box-shadow: 0 26px 38px -30px rgba(2, 35, 64, .34) !important;
}

.ibl-reader-page.is-turned {
    box-shadow: none !important;
}

.ibl-reader-page.is-turning {
    box-shadow: 30px 24px 56px -30px rgba(2, 35, 64, .36) !important;
}

/* Funny Files: deliberate breathing room requested for the editorial layout. */
.ibl-funny-page--manual .ibl-funny-manual-copy {
    box-sizing: border-box;
    padding-bottom: 20px !important;
}

/* Keep the full 120px on full-size desktop layouts. The media is allowed to
   scale down inside its slot, so the ratio remains correct without overlap. */
.ibl-funny-page--manual .ibl-funny-reactions {
    box-sizing: border-box;
    padding-top: 20px !important;
}

/* In stacked half-height layouts, cap the reaction gap so the media does not
   become unusably small. Full-height / column layouts retain the requested 120px. */
.ibl-funny-manual--two_stack .ibl-funny-reactions,
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--1 .ibl-funny-reactions,
.ibl-funny-manual--three_leftstack_portrait_right .ibl-funny-manual-entry--2 .ibl-funny-reactions,
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--2 .ibl-funny-reactions,
.ibl-funny-manual--three_portrait_left_rightstack .ibl-funny-manual-entry--3 .ibl-funny-reactions {
    padding-top: 20px !important;
}

/* Per-entry bold option. */
.ibl-funny-page--manual .ibl-funny-manual-entry.ibl-funny-intro--bold .ibl-funny-manual-copy p {
    font-weight: 700 !important;
}

/* Responsive readers still keep meaningful breathing room without forcing a
   phone/tablet page to become excessively tall. */
@media (max-width: 1050px) {
    .ibl-funny-page--manual .ibl-funny-manual-copy {
        padding-bottom: 20px !important;
    }

    .ibl-funny-page--manual .ibl-funny-reactions {
        padding-top: 20px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ibl-reader-page {
        transition-duration: .01ms !important;
    }
}


/* =========================================================================
   Highlights pages — v2.2.0
   ========================================================================= */
.ibl-highlights-page {
    min-height: 100%;
}

.ibl-highlights-page--navy {
    background: #032b4a;
    color: #f3f8fc;
}

.ibl-highlights-page--white {
    background: #f1f3f5;
    color: #18324a;
}

.ibl-highlights-art-header {
    align-items: flex-start;
    gap: 12px;
}

.ibl-highlights-heading {
    margin: 4px 0 0;
    font-size: clamp(1.8rem, 3vw, 3.05rem);
    line-height: 1.02;
    font-weight: 400;
    letter-spacing: -0.03em;
}

.ibl-highlights-page--navy .ibl-highlights-heading,
.ibl-highlights-page--navy .ibl-funny-manual-copy p,
.ibl-highlights-page--navy .ibl-funny-page-count {
    color: #f7fbff !important;
}

.ibl-highlights-page--navy .ibl-funny-manual-entry {
    background: rgba(255,255,255,.06) !important;
    border-color: rgba(255,255,255,.1) !important;
    box-shadow: 0 12px 28px rgba(0, 0, 0, .16) !important;
}

.ibl-highlights-page--white .ibl-funny-manual-entry {
    background: rgba(255,255,255,.82) !important;
}

.ibl-highlights-page--navy .ibl-funny-reaction {
    background: rgba(255,255,255,.08) !important;
    border-color: rgba(255,255,255,.14) !important;
    color: #f5fbff !important;
}

.ibl-highlights-page--navy .ibl-funny-reaction strong,
.ibl-highlights-page--navy .ibl-funny-reaction span,
.ibl-highlights-page--navy .ibl-funny-reaction-message {
    color: inherit !important;
}

.ibl-highlights-page .ibl-funny-manual-entry.ibl-highlights-text--overlay {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: minmax(0, 1fr) auto !important;
    grid-template-areas:
        "stack"
        "reactions" !important;
    gap: 12px !important;
}

.ibl-highlights-page .ibl-funny-manual-entry.ibl-highlights-text--overlay .ibl-funny-manual-media,
.ibl-highlights-page .ibl-funny-manual-entry.ibl-highlights-text--overlay .ibl-funny-manual-copy {
    grid-area: stack !important;
}

.ibl-highlights-page .ibl-funny-manual-entry.ibl-highlights-text--overlay .ibl-funny-manual-media {
    z-index: 1;
}

.ibl-highlights-page .ibl-funny-manual-entry.ibl-highlights-text--overlay .ibl-funny-manual-copy {
    z-index: 2;
    align-self: start;
    margin: 12px;
    max-width: min(78%, 440px);
    padding: 10px 14px;
    border-radius: 14px;
    background: rgba(255,255,255,.94);
    color: #18324a !important;
    box-shadow: 0 10px 24px rgba(2, 35, 64, .16);
}

.ibl-highlights-page .ibl-funny-manual-entry.ibl-highlights-text--overlay.ibl-funny-align--left .ibl-funny-manual-copy {
    justify-self: start;
    text-align: left;
}
.ibl-highlights-page .ibl-funny-manual-entry.ibl-highlights-text--overlay.ibl-funny-align--center .ibl-funny-manual-copy {
    justify-self: center;
    text-align: center;
}
.ibl-highlights-page .ibl-funny-manual-entry.ibl-highlights-text--overlay.ibl-funny-align--right .ibl-funny-manual-copy {
    justify-self: end;
    text-align: right;
}

.ibl-highlights-page .ibl-funny-manual-entry .ibl-funny-manual-copy {
    padding-bottom: 12px !important;
}

.ibl-highlights-page .ibl-funny-manual-entry .ibl-funny-reactions {
    padding-top: 18px !important;
}

/* =========================================================================
   Calendar / What's Happening — v2.3.0
   ========================================================================= */
.ibl-calendar-page {
    height:100%;
    min-height:100%;
    box-sizing:border-box;
    display:flex;
    flex-direction:column;
    gap:clamp(12px,1.4vh,18px);
    padding:clamp(22px,2vw,34px) clamp(24px,2.7vw,46px) clamp(22px,2vw,34px);
    background:#eef0f1;
    color:#022340;
    overflow:hidden;
}
.ibl-calendar-header {
    flex:0 0 auto;
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-areas:"kicker year" "heading year";
    gap:4px 14px;
    align-items:end;
}
.ibl-calendar-kicker {
    grid-area:kicker;
    justify-self:start;
    padding:5px 11px;
    border-radius:999px;
    background:#dfeccf;
    font-size:clamp(9px,.65vw,11px);
    font-weight:750;
    letter-spacing:.05em;
}
.ibl-calendar-header h2 {
    grid-area:heading;
    margin:0;
    font-size:clamp(27px,2.5vw,43px);
    line-height:1.04;
    font-weight:300;
    text-transform:uppercase;
    letter-spacing:.02em;
}
.ibl-calendar-year { grid-area:year; font-size:clamp(13px,1vw,17px); color:#687e8c; }
.ibl-calendar-desktop {
    flex:1 1 auto;
    min-height:0;
    display:flex;
    flex-direction:column;
    border-radius:22px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 10px 24px rgba(2,35,64,.07);
}
.ibl-calendar-weekdays {
    flex:0 0 auto;
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    min-height:34px;
    border-bottom:1px solid #d9dfc5;
    background:#fff;
}
.ibl-calendar-weekdays > div {
    display:grid;
    place-items:center;
    color:#356078;
    font-size:clamp(8px,.63vw,10px);
    letter-spacing:.16em;
}
.ibl-calendar-grid {
    flex:1 1 auto;
    min-height:0;
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    grid-auto-rows:minmax(0,1fr);
    background:#e8e7a9;
    gap:1px;
}
.ibl-calendar-cell {
    position:relative;
    min-width:0;
    min-height:0;
    padding:7px 6px 6px;
    background:#fff;
    overflow:hidden;
}
.ibl-calendar-cell.is-empty { background:#f9faf8; }
.ibl-calendar-day-number { display:block; font-size:clamp(8px,.62vw,10px); font-weight:650; margin-bottom:3px; }
.ibl-calendar-cell-events { display:flex; flex-direction:column; gap:3px; min-height:0; }
.ibl-calendar-event {
    appearance:none;
    border:0;
    margin:0;
    font-family:inherit;
    color:var(--ibl-event-text);
    background:var(--ibl-event-color);
    cursor:default;
    text-align:left;
    line-height:1.08;
    max-width:100%;
    box-sizing:border-box;
}
button.ibl-calendar-event { cursor:pointer; }
.ibl-calendar-event--badge {
    display:inline-flex;
    width:max-content;
    max-width:100%;
    align-items:center;
    gap:3px;
    padding:3px 5px;
    border-radius:7px;
    font-size:clamp(7px,.57vw,9px);
    font-weight:750;
}
.ibl-calendar-event--block {
    display:flex;
    width:100%;
    align-items:flex-start;
    gap:4px;
    padding:5px 6px;
    border-radius:8px;
    font-size:clamp(7px,.61vw,10px);
    font-weight:700;
}
.ibl-calendar-event--icon_text {
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:start;
    width:100%;
    gap:3px;
    padding:3px 4px 3px 6px;
    border-left:4px solid var(--ibl-event-color);
    color:#022340;
    background:transparent;
    font-size:clamp(7px,.61vw,10px);
    font-weight:650;
}
.ibl-calendar-event--icon_text .ibl-calendar-event-emoji { font-size:clamp(15px,1.25vw,22px); line-height:1; }
.ibl-calendar-event-title { min-width:0; overflow-wrap:anywhere; }
.ibl-calendar-agenda { display:none; }
.ibl-calendar-legend {
    flex:0 0 auto;
    display:flex;
    flex-wrap:wrap;
    gap:7px 14px;
    align-items:center;
    color:#5b7180;
    font-size:9px;
}
.ibl-calendar-legend span { display:inline-flex; align-items:center; gap:4px; }
.ibl-calendar-legend b { font-size:13px; font-weight:400; }
.ibl-calendar-modal[hidden] { display:none !important; }
.ibl-calendar-modal { position:fixed; inset:0; z-index:999999; display:grid; place-items:center; padding:20px; }
.ibl-calendar-modal-backdrop { position:absolute; inset:0; border:0; background:rgba(2,35,64,.58); cursor:pointer; }
.ibl-calendar-modal-card {
    position:relative;
    z-index:1;
    width:min(440px,calc(100vw - 40px));
    padding:26px;
    border-radius:24px;
    background:#fff;
    box-shadow:0 28px 70px rgba(2,35,64,.28);
    text-align:center;
}
.ibl-calendar-modal-close { position:absolute; top:10px; right:13px; border:0; background:transparent; font-size:28px; color:#526a78; cursor:pointer; }
.ibl-calendar-modal-emoji { font-size:38px; line-height:1; margin-bottom:10px; }
.ibl-calendar-modal-card h3 { margin:0; color:#022340; font-size:25px; line-height:1.08; }
.ibl-calendar-modal-date { margin:8px 0 0; color:#6ea435; font-weight:650; }
.ibl-calendar-modal-note { margin:15px 0 0; color:#405866; line-height:1.45; }
.ibl-calendar-modal-link { display:inline-flex; margin-top:18px; min-height:38px; align-items:center; justify-content:center; padding:0 18px; border-radius:999px; background:#6ea435; color:#fff; text-decoration:none; font-weight:700; }
@media (max-width: 820px) {
    .ibl-calendar-page { height:auto; overflow:visible; padding:22px 18px 30px; }
    .ibl-calendar-desktop { display:none; }
    .ibl-calendar-agenda { display:grid; gap:9px; }
    .ibl-calendar-agenda-row {
        display:grid;
        grid-template-columns:48px minmax(0,1fr);
        gap:11px;
        align-items:stretch;
        padding:8px;
        border-radius:16px;
        background:#fff;
        box-shadow:0 6px 18px rgba(2,35,64,.06);
    }
    .ibl-calendar-agenda-date { display:grid; place-items:center; align-content:center; border-radius:12px; background:#e8f0df; color:#022340; }
    .ibl-calendar-agenda-date strong { font-size:20px; line-height:1; }
    .ibl-calendar-agenda-date span { margin-top:3px; font-size:8px; letter-spacing:.1em; }
    .ibl-calendar-agenda-content { min-width:0; display:flex; align-items:center; }
    .ibl-calendar-event--agenda { width:100% !important; min-height:43px; border-radius:11px; padding:7px 9px; align-items:center; font-size:12px; }
    .ibl-calendar-event--agenda.ibl-calendar-event--icon_text { background:var(--ibl-event-color); color:var(--ibl-event-text); grid-template-columns:auto minmax(0,1fr); }
    .ibl-calendar-event--agenda .ibl-calendar-event-emoji { font-size:21px; }
    .ibl-calendar-legend { margin-top:8px; font-size:10px; }
}

/* =========================================================================
   Natural-height responsive reader architecture — v2.4.0
   Pages are no longer forced into the viewport. The active page defines its
   own document height, while the reader toolbar and page arrows stay available.
   ========================================================================= */
.ibl-reader--natural-flow {
    --ibl-reader-side-pad: clamp(16px, 2.2vw, 40px);
    --ibl-reader-page-min-height: clamp(560px, calc(100svh - 165px), 820px);
    overflow: visible !important;
    padding-right: var(--ibl-reader-side-pad);
    padding-left: var(--ibl-reader-side-pad);
}

/* Sticky reader chrome. It stays above page-turn layers and gives laptop
   layouts a stable navigation point while long pages scroll naturally. */
.ibl-reader--natural-flow .ibl-reader-heading-row {
    position: sticky;
    top: 0;
    z-index: 500;
    margin-right: calc(var(--ibl-reader-side-pad) * -1);
    margin-bottom: clamp(14px, 1.4vw, 20px);
    margin-left: calc(var(--ibl-reader-side-pad) * -1);
    padding: 10px var(--ibl-reader-side-pad);
    border-bottom: 1px solid rgba(2, 35, 64, .07);
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 8px 24px rgba(2, 35, 64, .045);
    -webkit-backdrop-filter: blur(12px) saturate(1.08);
    backdrop-filter: blur(12px) saturate(1.08);
}

body.admin-bar .ibl-reader--natural-flow .ibl-reader-heading-row {
    top: 32px;
}

/* Natural-flow book: only the active page participates in document flow.
   Other pages stay absolutely stacked so the existing 3D page-turn animation
   can still run without dictating the reader's height. */
.ibl-reader--natural-flow .ibl-reader-stage {
    position: relative;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    perspective: 2200px;
}

.ibl-reader--natural-flow .ibl-reader-book {
    position: relative;
    width: 100%;
    height: auto !important;
    min-height: var(--ibl-reader-page-min-height);
    overflow: visible !important;
    transform-style: preserve-3d;
    transition: min-height .28s ease;
}

.ibl-reader--natural-flow .ibl-reader-page {
    position: absolute !important;
    inset: 0 auto auto 0 !important;
    width: 100% !important;
    height: auto !important;
    min-height: var(--ibl-reader-page-min-height) !important;
    overflow: hidden !important;
    visibility: hidden;
    pointer-events: none;
    contain: layout paint;
    transform-origin: left center;
}

.ibl-reader--natural-flow .ibl-reader-page.is-current {
    position: relative !important;
    inset: auto !important;
    visibility: visible !important;
    pointer-events: auto;
}

/* The outgoing sheet (forward) or incoming sheet (backward) must stay visible
   for the duration of the page turn even though it is no longer the active page. */
.ibl-reader--natural-flow .ibl-reader-page.is-turning {
    visibility: visible !important;
    pointer-events: none !important;
}

.ibl-reader--natural-flow .ibl-reader-page.is-turned:not(.is-turning) {
    visibility: hidden !important;
}

/* Cover remains a stronger hero, but it is still a minimum rather than a hard
   height: short screens are not squeezed and tall screens can breathe. */
.ibl-reader--natural-flow .ibl-reader-page--cover {
    --ibl-reader-page-min-height: clamp(600px, calc(100svh - 125px), 980px);
}

/* Fixed viewport arrows. Their visibility is controlled by JS so they disappear
   once the reader itself is no longer in view. */
.ibl-reader--natural-flow .ibl-reader-arrow {
    position: fixed !important;
    top: 50vh !important;
    z-index: 420;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-50%);
    transition: opacity .2s ease, visibility .2s ease, transform .18s ease, filter .18s ease;
}

.ibl-reader--natural-flow.ibl-reader--controls-visible .ibl-reader-arrow:not([hidden]) {
    opacity: 1;
    visibility: visible;
}

.ibl-reader--natural-flow .ibl-reader-arrow--prev {
    left: max(6px, env(safe-area-inset-left)) !important;
}

.ibl-reader--natural-flow .ibl-reader-arrow--next {
    right: max(6px, env(safe-area-inset-right)) !important;
}

/* Natural content roots. These selectors deliberately remove only the old
   viewport-height dependency; the section-specific composition remains intact. */
.ibl-reader--natural-flow .ibl-director-page,
.ibl-reader--natural-flow .ibl-employee-page,
.ibl-reader--natural-flow .ibl-mind-page,
.ibl-reader--natural-flow .ibl-cyber-page,
.ibl-reader--natural-flow .ibl-team-page,
.ibl-reader--natural-flow .ibl-games-page,
.ibl-reader--natural-flow .ibl-funny-page,
.ibl-reader--natural-flow .ibl-funny-page--manual,
.ibl-reader--natural-flow .ibl-highlights-page,
.ibl-reader--natural-flow .ibl-calendar-page {
    height: auto !important;
    min-height: var(--ibl-reader-page-min-height) !important;
    overflow: visible !important;
}

.ibl-reader--natural-flow .ibl-director-layout,
.ibl-reader--natural-flow .ibl-employee-layout,
.ibl-reader--natural-flow .ibl-mind-layout,
.ibl-reader--natural-flow .ibl-cyber-layout,
.ibl-reader--natural-flow .ibl-team-layout,
.ibl-reader--natural-flow .ibl-games-layout {
    height: auto !important;
    min-height: var(--ibl-reader-page-min-height) !important;
}

/* Director: keep reactions/sign-off safely in flow whenever the full letter is
   open. Collapsed state still works, but its threshold is content-driven in JS. */
.ibl-reader--natural-flow .ibl-director-page.is-expanded .ibl-director-layout,
.ibl-reader--natural-flow .ibl-mind-page.is-expanded .ibl-mind-layout {
    min-height: var(--ibl-reader-page-min-height) !important;
}

/* Funny Files / Highlights keep their chosen magazine composition, but their
   stage can grow beyond the old fixed reader height. */
.ibl-reader--natural-flow .ibl-funny-page--manual .ibl-funny-manual-stage {
    flex: 1 0 auto;
    min-height: clamp(500px, 60svh, 760px) !important;
    overflow: visible !important;
}

.ibl-reader--natural-flow .ibl-funny-page--manual .ibl-funny-manual-entry {
    overflow: visible !important;
}

.ibl-reader--natural-flow .ibl-funny-page--manual .ibl-funny-manual-media {
    max-height: min(72svh, 760px) !important;
}

/* Calendar rows now expand for busy dates rather than clipping extra events. */
.ibl-reader--natural-flow .ibl-calendar-desktop {
    flex: 0 0 auto;
    min-height: clamp(590px, 68svh, 820px);
}

.ibl-reader--natural-flow .ibl-calendar-grid {
    flex: 1 0 auto;
    grid-auto-rows: minmax(96px, auto);
}

.ibl-reader--natural-flow .ibl-calendar-cell {
    min-height: 96px;
}

/* Mid-size / laptop screens get a two-line sticky toolbar instead of squeezing
   ten section tabs into a single row. */
@media (min-width: 761px) and (max-width: 1480px) {
    .ibl-reader--natural-flow .ibl-reader-heading-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 8px;
        align-items: center;
    }

    .ibl-reader--natural-flow .ibl-reader-heading-left {
        width: 100%;
        justify-content: flex-start;
    }

    .ibl-reader--natural-flow .ibl-reader-tabs {
        width: 100%;
        max-width: 100%;
        justify-content: flex-start;
        margin-left: 0;
        padding-bottom: 1px;
    }

    .ibl-reader--natural-flow .ibl-reader-tab {
        font-size: 11px;
        padding-inline: 11px;
    }
}

@media (max-width: 900px) {
    .ibl-reader--natural-flow {
        --ibl-reader-page-min-height: clamp(520px, calc(100svh - 130px), 760px);
    }

    .ibl-reader--natural-flow .ibl-funny-page--manual .ibl-funny-manual-stage {
        min-height: 0 !important;
    }

    .ibl-reader--natural-flow .ibl-funny-page--manual .ibl-funny-manual-entry,
    .ibl-reader--natural-flow .ibl-funny-page--manual .ibl-funny-manual-media {
        height: auto !important;
        max-height: none !important;
    }

    .ibl-reader--natural-flow .ibl-calendar-desktop {
        min-height: 0;
    }
}

@media (max-width: 782px) {
    body.admin-bar .ibl-reader--natural-flow .ibl-reader-heading-row {
        top: 46px;
    }
}

@media (max-width: 760px) {
    .ibl-reader--natural-flow {
        --ibl-reader-side-pad: clamp(14px, 4vw, 20px);
        --ibl-reader-page-min-height: clamp(500px, calc(100svh - 112px), 720px);
        padding-top: 12px;
    }

    .ibl-reader--natural-flow .ibl-reader-heading-row {
        margin-bottom: 12px;
        padding-top: 8px;
        padding-bottom: 8px;
    }

    .ibl-reader--natural-flow .ibl-reader-page--cover {
        --ibl-reader-page-min-height: clamp(540px, calc(100svh - 112px), 760px);
    }

    .ibl-reader--natural-flow .ibl-reader-arrow {
        width: 40px;
        height: 40px;
        font-size: 27px;
        background: rgba(136, 198, 63, .96);
        box-shadow: 0 5px 16px rgba(2, 35, 64, .18);
    }

    .ibl-reader--natural-flow .ibl-reader-arrow--prev {
        left: max(2px, env(safe-area-inset-left)) !important;
    }

    .ibl-reader--natural-flow .ibl-reader-arrow--next {
        right: max(2px, env(safe-area-inset-right)) !important;
    }

    .ibl-reader--natural-flow .ibl-director-page,
    .ibl-reader--natural-flow .ibl-employee-page,
    .ibl-reader--natural-flow .ibl-mind-page,
    .ibl-reader--natural-flow .ibl-cyber-page,
    .ibl-reader--natural-flow .ibl-team-page,
    .ibl-reader--natural-flow .ibl-games-page,
    .ibl-reader--natural-flow .ibl-funny-page--manual,
    .ibl-reader--natural-flow .ibl-highlights-page,
    .ibl-reader--natural-flow .ibl-calendar-page,
    .ibl-reader--natural-flow .ibl-director-layout,
    .ibl-reader--natural-flow .ibl-employee-layout,
    .ibl-reader--natural-flow .ibl-mind-layout,
    .ibl-reader--natural-flow .ibl-cyber-layout,
    .ibl-reader--natural-flow .ibl-team-layout,
    .ibl-reader--natural-flow .ibl-games-layout {
        min-height: 0 !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ibl-reader--natural-flow .ibl-reader-book {
        transition: none !important;
    }
}


/* =========================================================================
   Reader chrome + true content-height pages — v2.4.1
   ========================================================================= */

/* Portal/background canvas: distinguish each white magazine page clearly. */
html,
body.single-ibl_issue,
body.ibl-reader-standalone-page,
.ibl-reader--natural-flow {
    background: #f1f1f1 !important;
}

/* Start the sticky toolbar at the top immediately. The old 40px reader padding
   created a white band until the toolbar became sticky. */
.ibl-reader--natural-flow {
    --ibl-reader-side-pad: clamp(78px, 4.8vw, 88px);
    padding-top: 0 !important;
    padding-bottom: 28px;
}

.ibl-reader--natural-flow .ibl-reader-heading-row {
    top: 0;
    margin-bottom: 10px !important;
    padding-top: 10px;
    padding-bottom: 10px;
    background: rgba(255,255,255,.97);
}

/* Issue label cleanup. */
.ibl-reader--natural-flow .ibl-reader-issue-label {
    gap: 0 !important;
    font-size: clamp(14px, calc(1vw + 2px), 19px) !important;
}
.ibl-reader--natural-flow .ibl-reader-issue-line {
    display: none !important;
}

/* -------------------------------------------------------------------------
   Every non-cover page owns exactly its natural content height.
   No inherited viewport minimums, no blank magazine tail below short pages.
   During a page turn JS may temporarily hold the book to the larger of the two
   pages; it releases that inline min-height when the transition completes.
   ------------------------------------------------------------------------- */
.ibl-reader--natural-flow .ibl-reader-book {
    min-height: 0 !important;
}

.ibl-reader--natural-flow .ibl-reader-page:not(.ibl-reader-page--cover) {
    min-height: 0 !important;
}

.ibl-reader--natural-flow .ibl-director-page,
.ibl-reader--natural-flow .ibl-employee-page,
.ibl-reader--natural-flow .ibl-mind-page,
.ibl-reader--natural-flow .ibl-cyber-page,
.ibl-reader--natural-flow .ibl-team-page,
.ibl-reader--natural-flow .ibl-games-page,
.ibl-reader--natural-flow .ibl-funny-page,
.ibl-reader--natural-flow .ibl-funny-page--manual,
.ibl-reader--natural-flow .ibl-highlights-page,
.ibl-reader--natural-flow .ibl-calendar-page,
.ibl-reader--natural-flow .ibl-director-layout,
.ibl-reader--natural-flow .ibl-employee-layout,
.ibl-reader--natural-flow .ibl-mind-layout,
.ibl-reader--natural-flow .ibl-cyber-layout,
.ibl-reader--natural-flow .ibl-team-layout,
.ibl-reader--natural-flow .ibl-games-layout {
    min-height: 0 !important;
}

/* Do not reintroduce viewport height through variable-content sections. */
.ibl-reader--natural-flow .ibl-director-page.is-expanded .ibl-director-layout,
.ibl-reader--natural-flow .ibl-mind-page.is-expanded .ibl-mind-layout {
    min-height: 0 !important;
}

.ibl-reader--natural-flow .ibl-funny-page--manual .ibl-funny-manual-stage {
    min-height: 0 !important;
}

.ibl-reader--natural-flow .ibl-calendar-desktop {
    min-height: 0 !important;
}

/* Keep the cover as the intentional hero exception, but remove the large
   100svh-derived cap. Its artwork/content determines the result above this
   modest visual floor. */
.ibl-reader--natural-flow .ibl-reader-page--cover {
    --ibl-reader-page-min-height: clamp(430px, 45vw, 720px);
    min-height: var(--ibl-reader-page-min-height) !important;
}

/* -------------------------------------------------------------------------
   Fixed page controls. Reserve an outer gutter for them so they never cover
   magazine artwork, keep them visible while the reader is in view, enlarge
   them slightly and centre the chevron optically as well as geometrically.
   ------------------------------------------------------------------------- */
.ibl-reader--natural-flow .ibl-reader-arrow {
    top: 50vh !important;
    width: 64px !important;
    height: 64px !important;
    font-size: 42px !important;
    line-height: 1 !important;
    display: grid !important;
    place-items: center !important;
}

.ibl-reader--natural-flow .ibl-reader-arrow[hidden] {
    display: none !important;
}

.ibl-reader--natural-flow .ibl-reader-arrow > span {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    line-height: 1;
    transform: translateY(-1px);
}

.ibl-reader--natural-flow .ibl-reader-arrow--prev {
    left: max(8px, env(safe-area-inset-left)) !important;
}

.ibl-reader--natural-flow .ibl-reader-arrow--next {
    right: max(8px, env(safe-area-inset-right)) !important;
}

/* Six tabs no longer need the laptop-only forced second line. Keep a single,
   horizontally scrollable row if an unusually narrow width needs it. */
@media (min-width: 761px) and (max-width: 1480px) {
    .ibl-reader--natural-flow .ibl-reader-heading-row {
        display: flex !important;
        gap: 18px;
    }

    .ibl-reader--natural-flow .ibl-reader-heading-left {
        width: auto !important;
        flex: 0 0 auto;
    }

    .ibl-reader--natural-flow .ibl-reader-tabs {
        width: auto !important;
        min-width: 0;
        flex: 1 1 auto;
        justify-content: flex-end !important;
        margin-left: auto !important;
        padding-bottom: 0;
    }

    .ibl-reader--natural-flow .ibl-reader-tab {
        font-size: clamp(10px, .75vw, 13px);
        padding-inline: 12px;
    }
}

@media (max-width: 900px) {
    .ibl-reader--natural-flow {
        --ibl-reader-side-pad: 64px;
    }
}

@media (max-width: 760px) {
    .ibl-reader--natural-flow {
        --ibl-reader-side-pad: 54px;
        padding-top: 0 !important;
    }

    .ibl-reader--natural-flow .ibl-reader-heading-row {
        margin-bottom: 10px !important;
    }

    .ibl-reader--natural-flow .ibl-reader-page--cover {
        --ibl-reader-page-min-height: clamp(390px, 115vw, 620px);
    }

    .ibl-reader--natural-flow .ibl-reader-arrow {
        width: 48px !important;
        height: 48px !important;
        font-size: 33px !important;
    }

    .ibl-reader--natural-flow .ibl-reader-arrow--prev {
        left: max(3px, env(safe-area-inset-left)) !important;
    }

    .ibl-reader--natural-flow .ibl-reader-arrow--next {
        right: max(3px, env(safe-area-inset-right)) !important;
    }

    .ibl-reader--natural-flow .ibl-reader-issue-label {
        font-size: 15px !important;
    }
}


/* =========================================================================
   Sticky-bar gap, true viewport arrows and compact reader tail — v2.4.3
   ========================================================================= */

/* The document itself must not impose a viewport-sized white tail below a
   short magazine page. The reader ends exactly with its own bottom padding. */
html,
body.single-ibl_issue,
body.ibl-reader-standalone-page,
.ibl-reader-template-main,
.ibl-reader--natural-flow {
    min-height: 0 !important;
    height: auto !important;
    background: #f1f1f1 !important;
}

.ibl-reader--natural-flow {
    padding-bottom: 40px !important;
}

/* Keep a real 10px grey separation under the sticky navigation even after the
   page has started scrolling. Content can move behind the sticky chrome, but
   never visually touches it. */
.ibl-reader--natural-flow .ibl-reader-heading-row {
    position: sticky;
    margin-bottom: 10px !important;
    overflow: visible;
}

.ibl-reader--natural-flow .ibl-reader-heading-row::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -10px;
    height: 10px;
    z-index: -1;
    pointer-events: none;
    background: #f1f1f1;
}

/* IMPORTANT: perspective on the stage creates a containing block for fixed
   descendants in browsers. Move perspective onto the book so the arrows are
   genuinely fixed to the browser viewport rather than the magazine canvas. */
.ibl-reader--natural-flow .ibl-reader-stage {
    perspective: none !important;
    overflow: visible !important;
}

.ibl-reader--natural-flow .ibl-reader-book {
    perspective: 2200px;
    overflow: visible !important;
    min-height: 0 !important;
}

/* True viewport controls. The horizontal gutter is calculated from the same
   side padding as the magazine, leaving a small clear gap between button and
   page edge. */
.ibl-reader--natural-flow .ibl-reader-arrow {
    position: fixed !important;
    top: 50% !important;
    z-index: 650 !important;
    width: 64px !important;
    height: 64px !important;
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    line-height: 1 !important;
    transform: translateY(-50%) !important;
}

.ibl-reader--natural-flow .ibl-reader-arrow > span {
    display: grid !important;
    width: 100% !important;
    height: 100% !important;
    place-items: center !important;
    line-height: 1 !important;
    transform: none !important;
    font-size: 42px !important;
    padding-bottom: 4px;
}

.ibl-reader--natural-flow .ibl-reader-arrow--prev {
    left: max(6px, calc(var(--ibl-reader-side-pad) - 72px), env(safe-area-inset-left)) !important;
}

.ibl-reader--natural-flow .ibl-reader-arrow--next {
    right: max(6px, calc(var(--ibl-reader-side-pad) - 72px), env(safe-area-inset-right)) !important;
}

/* Short pages should be only as tall as their content. Explicitly remove any
   old viewport floor from the current sheet, the stage and section roots. */
.ibl-reader--natural-flow .ibl-reader-stage,
.ibl-reader--natural-flow .ibl-reader-book,
.ibl-reader--natural-flow .ibl-reader-page:not(.ibl-reader-page--cover),
.ibl-reader--natural-flow .ibl-reader-page:not(.ibl-reader-page--cover) > div {
    min-height: 0 !important;
}

@media (max-width: 900px) {
    .ibl-reader--natural-flow {
        --ibl-reader-side-pad: 72px;
    }

    .ibl-reader--natural-flow .ibl-reader-arrow {
        width: 56px !important;
        height: 56px !important;
    }

    .ibl-reader--natural-flow .ibl-reader-arrow > span {
        font-size: 38px !important;
        padding-bottom: 3px;
    }

    .ibl-reader--natural-flow .ibl-reader-arrow--prev {
        left: max(6px, calc(var(--ibl-reader-side-pad) - 64px), env(safe-area-inset-left)) !important;
    }

    .ibl-reader--natural-flow .ibl-reader-arrow--next {
        right: max(6px, calc(var(--ibl-reader-side-pad) - 64px), env(safe-area-inset-right)) !important;
    }
}

@media (max-width: 760px) {
    .ibl-reader--natural-flow {
        --ibl-reader-side-pad: 54px;
        padding-bottom: 40px !important;
    }

    .ibl-reader--natural-flow .ibl-reader-arrow {
        width: 46px !important;
        height: 46px !important;
    }

    .ibl-reader--natural-flow .ibl-reader-arrow > span {
        font-size: 32px !important;
        padding-bottom: 2px;
    }

    .ibl-reader--natural-flow .ibl-reader-arrow--prev {
        left: max(3px, calc(var(--ibl-reader-side-pad) - 50px), env(safe-area-inset-left)) !important;
    }

    .ibl-reader--natural-flow .ibl-reader-arrow--next {
        right: max(3px, calc(var(--ibl-reader-side-pad) - 50px), env(safe-area-inset-right)) !important;
    }
}


/* =========================================================================
   Reader top-position + protected arrow gutters — v2.4.4
   ========================================================================= */

/* Reserve a real desktop gutter for the viewport-fixed page controls. The
   toolbar still spans the full viewport and keeps its compact horizontal pad. */
.ibl-reader--natural-flow {
    --ibl-reader-side-pad: clamp(86px, 5.4vw, 104px) !important;
    --ibl-reader-toolbar-pad: clamp(30px, 2.2vw, 42px);
    --ibl-reader-arrow-size: 64px;
    padding-left: var(--ibl-reader-side-pad) !important;
    padding-right: var(--ibl-reader-side-pad) !important;
}

.ibl-reader--natural-flow .ibl-reader-heading-row {
    margin-left: calc(var(--ibl-reader-side-pad) * -1) !important;
    margin-right: calc(var(--ibl-reader-side-pad) * -1) !important;
    padding-left: var(--ibl-reader-toolbar-pad) !important;
    padding-right: var(--ibl-reader-toolbar-pad) !important;
    margin-bottom: 10px !important;
}

/* Page controls live completely inside the reserved outer gutters. */
.ibl-reader--natural-flow .ibl-reader-arrow {
    width: var(--ibl-reader-arrow-size) !important;
    height: var(--ibl-reader-arrow-size) !important;
}

.ibl-reader--natural-flow .ibl-reader-arrow--prev {
    left: max(
        env(safe-area-inset-left),
        calc((var(--ibl-reader-side-pad) - var(--ibl-reader-arrow-size)) / 2)
    ) !important;
}

.ibl-reader--natural-flow .ibl-reader-arrow--next {
    right: max(
        env(safe-area-inset-right),
        calc((var(--ibl-reader-side-pad) - var(--ibl-reader-arrow-size)) / 2)
    ) !important;
}

/* The active sheet must begin after the toolbar's normal-flow height and its
   10px margin. Do not use transforms/margins that visually pull it upward. */
.ibl-reader--natural-flow .ibl-reader-stage,
.ibl-reader--natural-flow .ibl-reader-book,
.ibl-reader--natural-flow .ibl-reader-page.is-current {
    margin-top: 0 !important;
}

@media (max-width: 1100px) {
    .ibl-reader--natural-flow {
        --ibl-reader-side-pad: 72px !important;
        --ibl-reader-arrow-size: 56px;
        --ibl-reader-toolbar-pad: 22px;
    }
}

@media (max-width: 760px) {
    .ibl-reader--natural-flow {
        --ibl-reader-side-pad: 52px !important;
        --ibl-reader-arrow-size: 44px;
        --ibl-reader-toolbar-pad: 14px;
    }

    .ibl-reader--natural-flow .ibl-reader-arrow > span {
        font-size: 31px !important;
        padding-bottom: 2px !important;
    }
}


/* =========================================================================
   Absolute reader-top anchoring + permanent toolbar separation — v2.4.5
   ========================================================================= */

/* Use a real stage margin for the magazine gap. This does not depend on margin
   collapsing or the sticky element's current state. */
.ibl-reader--natural-flow .ibl-reader-heading-row {
    margin-bottom: 0 !important;
    box-shadow:
        0 10px 0 #f1f1f1,
        0 18px 26px -20px rgba(2, 35, 64, .16) !important;
}

.ibl-reader--natural-flow .ibl-reader-heading-row::after {
    display: none !important;
}

.ibl-reader--natural-flow .ibl-reader-stage {
    margin-top: 10px !important;
}

/* The active page itself must never carry a negative/translated top offset
   inherited from an older reader rule. */
.ibl-reader--natural-flow .ibl-reader-page.is-current {
    top: auto !important;
    margin-top: 0 !important;
    translate: none !important;
}

/* Keep the document's scroll origin unambiguous on the standalone issue page. */
html:has(body.ibl-reader-standalone-page),
body.ibl-reader-standalone-page,
body.single-ibl_issue {
    scroll-padding-top: 0 !important;
}


/* =========================================================================
   Compact reader tail + smaller arrow circles — v2.4.6
   ========================================================================= */

/* The grey canvas belongs to the magazine reader only. Once the reader's
   40px bottom padding ends, the document background is neutral rather than
   extending #f1f1f1 through the rest of a short browser viewport. */
html,
body.single-ibl_issue,
body.ibl-reader-standalone-page,
.ibl-reader-template-main {
    min-height: 0 !important;
    height: auto !important;
    background: #ffffff !important;
}

.ibl-reader-template-main {
    margin: 0 !important;
    padding: 0 !important;
}

.ibl-reader--natural-flow {
    min-height: 0 !important;
    height: auto !important;
    margin-bottom: 0 !important;
    padding-bottom: 40px !important;
    background: #f1f1f1 !important;
}

/* Keep all natural-flow wrappers content-sized so nothing below the current
   sheet can manufacture extra document height. */
.ibl-reader--natural-flow .ibl-reader-stage,
.ibl-reader--natural-flow .ibl-reader-book,
.ibl-reader--natural-flow .ibl-reader-page.is-current {
    min-height: 0 !important;
    height: auto !important;
}

/* Smaller circles, same chevron size. */
.ibl-reader--natural-flow {
    --ibl-reader-arrow-size: 54px !important;
}

.ibl-reader--natural-flow .ibl-reader-arrow {
    width: var(--ibl-reader-arrow-size) !important;
    height: var(--ibl-reader-arrow-size) !important;
}

/* Preserve the existing desktop chevron size. */
.ibl-reader--natural-flow .ibl-reader-arrow > span {
    font-size: 42px !important;
}

@media (max-width: 1100px) {
    .ibl-reader--natural-flow {
        --ibl-reader-arrow-size: 50px !important;
    }

    .ibl-reader--natural-flow .ibl-reader-arrow > span {
        font-size: 42px !important;
    }
}

@media (max-width: 760px) {
    .ibl-reader--natural-flow {
        --ibl-reader-arrow-size: 40px !important;
    }

    /* Keep the existing mobile chevron scale; only its circle gets smaller. */
    .ibl-reader--natural-flow .ibl-reader-arrow > span {
        font-size: 31px !important;
    }
}


/* =========================================================================
   Active-page height authority — v2.4.7
   The active magazine page alone defines document height. Hidden stacked pages
   are constrained by JS to that exact height so they cannot create scrollable
   overflow underneath a shorter page.
   ========================================================================= */

/* Keep the portal canvas grey everywhere. A short page may leave unused
   viewport space visible, but it must never become a white tail. */
html,
body.single-ibl_issue,
body.ibl-reader-standalone-page,
body.single-ibl_issue #page,
body.single-ibl_issue .site,
body.single-ibl_issue #content,
body.single-ibl_issue .site-content,
body.single-ibl_issue .content-area,
body.single-ibl_issue .site-main,
.ibl-reader-template-main,
.ibl-reader--natural-flow {
    background: #f1f1f1 !important;
}

/* Theme wrappers must not manufacture extra vertical space below the reader. */
body.single-ibl_issue #page,
body.single-ibl_issue .site,
body.single-ibl_issue #content,
body.single-ibl_issue .site-content,
body.single-ibl_issue .content-area,
body.single-ibl_issue .site-main,
.ibl-reader-template-main {
    min-height: 0 !important;
    height: auto !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* The reader itself is exactly: toolbar + 10px gap + active page + 40px tail. */
.ibl-reader--natural-flow {
    min-height: 0 !important;
    height: auto !important;
    margin-bottom: 0 !important;
    padding-bottom: 40px !important;
}

.ibl-reader--natural-flow .ibl-reader-stage,
.ibl-reader--natural-flow .ibl-reader-book,
.ibl-reader--natural-flow .ibl-reader-page.is-current {
    min-height: 0 !important;
    height: auto !important;
}

/* Restore the cover hero floor that v2.4.6 accidentally removed through the
   more-specific .is-current rule. The cover's content is absolutely positioned,
   so it needs an explicit natural visual floor. */
.ibl-reader--natural-flow .ibl-reader-page--cover.is-current {
    min-height: clamp(430px, 45vw, 720px) !important;
    height: auto !important;
}

@media (max-width: 760px) {
    .ibl-reader--natural-flow .ibl-reader-page--cover.is-current {
        min-height: clamp(390px, 115vw, 620px) !important;
    }
}

/* Non-current sheets are visual animation layers only. Their exact pixel
   height/max-height is supplied by reader.js from the active page. */
.ibl-reader--natural-flow .ibl-reader-page:not(.is-current) {
    min-height: 0 !important;
    overflow: hidden !important;
}


/* =========================================================================
   Employee Updates adaptive single-page redesign — v2.4.8
   ========================================================================= */
.ibl-reader--natural-flow .ibl-employee-page,
.ibl-reader--natural-flow .ibl-employee-layout {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
}

.ibl-employee-layout {
    --ibl-employee-pad-x: clamp(18px, 3vw, 54px);
    padding: clamp(20px, 2.1vw, 34px) var(--ibl-employee-pad-x) 0 !important;
}

.ibl-employee-head {
    margin-bottom: clamp(18px, 2vw, 28px) !important;
}

.ibl-employee-head h2 {
    max-width: 980px;
    font-size: clamp(34px, 3.15vw, 56px);
}

.ibl-employee-main-modules {
    display: grid;
    grid-template-columns: minmax(0, 1.72fr) minmax(320px, .88fr);
    gap: clamp(16px, 1.65vw, 26px);
    align-items: stretch;
}

.ibl-employee-main-modules--single,
.ibl-employee-main-modules--stacked {
    grid-template-columns: minmax(0, 1fr);
}

.ibl-employee-main-modules--stacked .ibl-employee-module {
    grid-column: 1 / -1;
}

.ibl-employee-main-modules--single .ibl-employee-module {
    width: 100% !important;
    max-width: none !important;
    justify-self: stretch !important;
}

.ibl-employee-module--welcome,
.ibl-employee-module--promotion {
    min-height: clamp(340px, 31vw, 520px);
}

.ibl-employee-module--welcome {
    justify-content: center;
    padding: clamp(25px, 3vw, 48px) clamp(24px, 3.2vw, 54px) !important;
}

.ibl-employee-module--welcome h3 {
    margin-bottom: clamp(24px, 2.6vw, 42px) !important;
}

.ibl-employee-card-grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: clamp(22px, 2.4vw, 38px) clamp(16px, 2vw, 30px);
}

.ibl-employee-module--welcome:not(.is-dense)[data-count="1"] .ibl-employee-card-grid,
.ibl-employee-module--welcome:not(.is-dense)[data-count="2"] .ibl-employee-card-grid,
.ibl-employee-module--welcome:not(.is-dense)[data-count="3"] .ibl-employee-card-grid {
    grid-template-columns: repeat(var(--ibl-welcome-cols, 3), minmax(150px, 1fr));
}

.ibl-employee-module--welcome[data-count="1"] { --ibl-welcome-cols: 1; }
.ibl-employee-module--welcome[data-count="2"] { --ibl-welcome-cols: 2; }
.ibl-employee-module--welcome[data-count="3"] { --ibl-welcome-cols: 3; }

.ibl-employee-module--welcome.is-dense .ibl-employee-card-grid {
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.ibl-employee-module--welcome.is-dense .ibl-employee-avatar {
    width: clamp(96px, 8.2vw, 138px);
}

.ibl-employee-module--promotion {
    padding: clamp(26px, 2.6vw, 42px) !important;
}

.ibl-employee-module--promotion.is-dense .ibl-promotion-list {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 20px 26px;
    align-content: start;
}

.ibl-employee-module--promotion.is-dense .ibl-promotion-card {
    grid-template-columns: 92px minmax(0, 1fr);
}

.ibl-employee-module--promotion.is-dense .ibl-promotion-avatar {
    width: 92px;
}

/* Full-width continuously looping farewell band. */
.ibl-employee-farewell-ticker {
    width: calc(100% + (2 * var(--ibl-employee-pad-x)));
    margin: clamp(18px, 2vw, 28px) calc(-1 * var(--ibl-employee-pad-x)) 0;
    padding: clamp(22px, 2.3vw, 34px) 0 clamp(22px, 2.3vw, 32px);
    overflow: hidden;
    background: #0b4d72;
    color: #fff;
}

.ibl-employee-farewell-heading {
    padding: 0 var(--ibl-employee-pad-x) clamp(18px, 1.8vw, 24px);
    text-align: center;
}

.ibl-employee-farewell-heading h3 {
    margin: 0;
    color: var(--ibl-reader-green);
    font-size: clamp(22px, 2vw, 34px);
    font-weight: 700;
    line-height: 1.05;
}

.ibl-employee-farewell-heading p {
    margin: 9px 0 0;
    color: #fff;
    font-size: clamp(10px, .78vw, 13px);
    font-style: italic;
    line-height: 1.35;
}

.ibl-farewell-ticker-window {
    width: 100%;
    overflow: hidden;
    mask-image: linear-gradient(to right, transparent 0, #000 4%, #000 96%, transparent 100%);
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 4%, #000 96%, transparent 100%);
}

.ibl-farewell-ticker-track {
    display: flex;
    width: max-content;
    animation: ibl-farewell-marquee var(--ibl-farewell-duration, 36s) linear infinite;
    will-change: transform;
}

.ibl-farewell-ticker-window:hover .ibl-farewell-ticker-track {
    animation-play-state: paused;
}

.ibl-farewell-ticker-group {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: clamp(30px, 4vw, 74px);
    padding-right: clamp(30px, 4vw, 74px);
    white-space: nowrap;
}

.ibl-farewell-ticker-item {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #fff;
}

.ibl-farewell-ticker-item .ibl-farewell-dot {
    width: 9px;
    height: 9px;
}

.ibl-farewell-ticker-item .ibl-farewell-name {
    color: #fff;
    font-size: clamp(12px, 1vw, 17px);
    font-weight: 500;
    line-height: 1;
}

@keyframes ibl-farewell-marquee {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(-25%, 0, 0); }
}

@media (max-width: 1040px) {
    .ibl-employee-main-modules {
        grid-template-columns: minmax(0, 1fr);
    }

    .ibl-employee-module--welcome,
    .ibl-employee-module--promotion {
        min-height: 0;
    }

    .ibl-employee-module--welcome .ibl-employee-card-grid {
        grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important;
    }
}

@media (max-width: 650px) {
    .ibl-employee-layout {
        --ibl-employee-pad-x: 16px;
    }

    .ibl-employee-head h2 {
        font-size: clamp(29px, 8.5vw, 42px);
    }

    .ibl-employee-module--welcome,
    .ibl-employee-module--promotion {
        border-radius: 24px;
    }

    .ibl-employee-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .ibl-employee-avatar,
    .ibl-employee-module--welcome[data-count="1"] .ibl-employee-avatar,
    .ibl-employee-module--welcome[data-count="2"] .ibl-employee-avatar,
    .ibl-employee-module--welcome[data-count="3"] .ibl-employee-avatar {
        width: min(31vw, 120px);
    }

    .ibl-employee-module--promotion.is-dense .ibl-promotion-list {
        grid-template-columns: 1fr;
    }

    .ibl-farewell-ticker-group {
        gap: 30px;
        padding-right: 30px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ibl-farewell-ticker-window {
        overflow-x: auto;
        mask-image: none;
        -webkit-mask-image: none;
    }

    .ibl-farewell-ticker-track {
        animation: none !important;
    }
}

/* =========================================================================
   Classic magazine page turn — v2.4.10
   Restores the original rotateY page turn, slowed slightly so the physical
   page-turn effect is easier to see. Rapid-navigation support remains active.
   ========================================================================= */
.ibl-reader--natural-flow .ibl-reader-page {
    transition:
        transform 3s cubic-bezier(.16, .72, .14, 1),
        box-shadow 3s ease !important;
}

.ibl-reader--natural-flow .ibl-reader-page.is-turning {
    will-change: transform;
    transform-origin: left center !important;
    backface-visibility: hidden;
    transform-style: preserve-3d;
    box-shadow: 30px 24px 56px -30px rgba(2, 35, 64, .36) !important;
}

/* When another navigation request arrives mid-turn, finish the current sheet
   quickly instead of discarding the user's next click. */
.ibl-reader--natural-flow .ibl-reader-page.is-turn-finishing {
    transition:
        transform .09s linear,
        box-shadow .09s linear !important;
}

@media (prefers-reduced-motion: reduce) {
    .ibl-reader--natural-flow .ibl-reader-page,
    .ibl-reader--natural-flow .ibl-reader-page.is-turning,
    .ibl-reader--natural-flow .ibl-reader-page.is-turn-finishing {
        transition-duration: .04s !important;
    }
}


/* =========================================================================
   Employee Updates refinements — v2.4.12
   Full-bleed farewell ticker + slightly larger promotion typography.
   ========================================================================= */
.ibl-employee-farewell-ticker {
    width: auto !important;
    margin-left: calc(-1 * var(--ibl-employee-pad-x)) !important;
    margin-right: calc(-1 * var(--ibl-employee-pad-x)) !important;
}

/* Twelve identical ticker groups are rendered so even a single farewell name
   continuously fills the complete magazine width. Moving exactly one group
   width keeps the loop seamless. */
@keyframes ibl-farewell-marquee {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(-8.333333%, 0, 0); }
}

.ibl-promotion-name {
    font-size: clamp(14.5px, calc(1vw + 2px), 18.5px) !important;
}

.ibl-promotion-role {
    font-size: clamp(12px, calc(.82vw + 1px), 14px) !important;
}

.ibl-promotion-location {
    font-size: clamp(10.5px, calc(.72vw + 1px), 13px) !important;
}

@media (min-width: 1400px) {
    .ibl-employee-module--promotion[data-count="1"] .ibl-promotion-name {
        font-size: 19px !important;
    }

    .ibl-employee-module--promotion[data-count="1"] .ibl-promotion-role {
        font-size: 15px !important;
    }

    .ibl-employee-module--promotion[data-count="1"] .ibl-promotion-location {
        font-size: 13px !important;
    }
}

/* v2.4.13 — open-access interactions, Mind Matters flow, quiz spacing, Friday Games media layouts */
.ibl-mind-interactive {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: clamp(14px, 1.4vw, 22px) !important;
}

.ibl-mind-pulse,
.ibl-mind-story-card {
    width: 100%;
    box-sizing: border-box;
}

.ibl-mind-checkin-prompt {
    margin-top: 5px !important;
    color: #3f5f73 !important;
    font-size: clamp(11px, .88vw, 14px) !important;
    font-weight: 750;
}

.ibl-mind-company-pulse-label > span {
    font-size: 12px !important;
    font-weight: 800;
    color: #526b7b;
}

.ibl-mind-story-card {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px 22px !important;
}

.ibl-mind-story-card > div:first-child {
    min-width: 0;
}

.ibl-mind-story-card .ibl-mind-story-button {
    align-self: center;
    white-space: nowrap;
}

.ibl-mind-story-card .ibl-mind-story-count {
    grid-column: 1 / -1;
}

.ibl-team-quiz {
    margin-top: clamp(28px, 2.5vw, 42px) !important;
}

.ibl-games-media-layout {
    display: grid;
    gap: clamp(14px, 1.5vw, 22px);
    align-items: stretch;
}

.ibl-games-media-layout--photos-video {
    grid-template-columns: minmax(260px, .82fr) minmax(0, 1.18fr);
}

.ibl-games-media-layout--two-videos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ibl-games-photo-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.ibl-games-photo-grid .ibl-games-photo {
    min-height: 0;
    aspect-ratio: 1 / 1;
}

.ibl-games-photo-grid .ibl-games-gallery-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ibl-games-video-card {
    position: relative;
    min-width: 0;
    min-height: 260px;
    overflow: hidden;
    border-radius: clamp(18px, 1.6vw, 26px);
    background: #ececec;
}

.ibl-games-media-layout--two-videos .ibl-games-video-card {
    aspect-ratio: 16 / 9;
    min-height: 0;
}

.ibl-games-video-el,
.ibl-games-video-card iframe,
.ibl-games-video-card video {
    display: block;
    width: 100%;
    height: 100%;
    min-height: inherit;
    border: 0;
    object-fit: cover;
    background: #111;
}

.ibl-games-video-empty {
    display: grid;
    width: 100%;
    height: 100%;
    min-height: inherit;
    place-items: center;
    align-content: center;
    gap: 8px;
    color: #0b4d72;
    text-align: center;
}

.ibl-games-video-empty span {
    display: grid;
    width: 54px;
    height: 54px;
    place-items: center;
    border: 3px solid currentColor;
    border-radius: 50%;
    font-size: 22px;
}

.ibl-games-video-empty small {
    color: #627582;
    font-size: 11px;
    font-weight: 700;
}

@media (max-width: 760px) {
    .ibl-mind-story-card {
        grid-template-columns: 1fr;
    }

    .ibl-mind-story-card .ibl-mind-story-count {
        grid-column: 1;
    }

    .ibl-games-media-layout--photos-video,
    .ibl-games-media-layout--two-videos {
        grid-template-columns: 1fr;
    }

    .ibl-games-video-card {
        min-height: 220px;
        aspect-ratio: 16 / 9;
    }
}

.ibl-mind-story-field input[type="text"] {
    width: 100%;
    padding: 11px 13px;
    border: 1px solid #cfd9df;
    border-radius: 12px;
    color: #172c3d;
    font: inherit;
    font-size: 15px;
}

.ibl-mind-story-field em {
    color: #71838f;
    font-size: 10px;
    font-style: normal;
    font-weight: 500;
}

/* =========================================================================
   Funny Files natural entry sizing + editorial ordering — v2.4.14
   ========================================================================= */
.ibl-reader--natural-flow .ibl-funny-page--manual .ibl-funny-manual-stage,
.ibl-funny-page--manual .ibl-funny-manual-stage {
    align-items: start !important;
    overflow: visible !important;
}

.ibl-funny-page--manual .ibl-funny-manual-entry {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    align-self: start !important;
    justify-content: flex-start !important;
    overflow: visible !important;
}

/* Copy-first cards: title/copy, reactions, then artwork. */
.ibl-funny-page--manual .ibl-funny-manual-entry.ibl-funny-text--top {
    grid-template-rows: auto auto auto !important;
    grid-template-areas:
        "copy"
        "reactions"
        "media" !important;
}

/* Media-first cards: artwork, reactions, then title/copy. */
.ibl-funny-page--manual .ibl-funny-manual-entry.ibl-funny-text--bottom {
    grid-template-rows: auto auto auto !important;
    grid-template-areas:
        "media"
        "reactions"
        "copy" !important;
}

.ibl-funny-page--manual .ibl-funny-manual-copy {
    padding: 0 !important;
}

.ibl-funny-page--manual .ibl-funny-entry-title {
    margin: 0 0 7px !important;
    color: var(--ibl-reader-navy) !important;
    font-family: "Work Sans", Arial, sans-serif !important;
    font-size: clamp(14px, 1.04vw, 17px) !important;
    font-style: normal !important;
    font-weight: 750 !important;
    line-height: 1.25 !important;
}

.ibl-funny-page--manual .ibl-funny-manual-copy p {
    font-style: normal !important;
}

.ibl-funny-page--manual .ibl-funny-reactions {
    width: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 1px 0 !important;
    align-self: start !important;
}

/* Artwork owns its real aspect ratio. No card or neighbouring column may
   stretch the media slot vertically. */
.ibl-reader--natural-flow .ibl-funny-page--manual .ibl-funny-manual-media,
.ibl-funny-page--manual .ibl-funny-manual-media {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    align-items: flex-start !important;
}

.ibl-funny-page--manual .ibl-funny-manual-image,
.ibl-funny-page--manual .ibl-funny-manual-video-launch,
.ibl-funny-page--manual .ibl-funny-video-poster-wrap {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}

.ibl-funny-page--manual .ibl-funny-manual-image img,
.ibl-funny-page--manual .ibl-funny-manual-media video,
.ibl-funny-page--manual .ibl-funny-manual-video-launch .ibl-funny-video-poster,
.ibl-funny-page--manual .ibl-funny-manual-media-el {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: none !important;
    object-fit: contain !important;
}

.ibl-funny-page--manual iframe.ibl-funny-manual-media-el {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
}

/* Equal-column layouts must not stretch shorter cards to the tallest card. */
.ibl-funny-manual--two_side .ibl-funny-manual-stage,
.ibl-funny-manual--portrait_left_landscape_right .ibl-funny-manual-stage,
.ibl-funny-manual--landscape_left_portrait_right .ibl-funny-manual-stage,
.ibl-funny-manual--three_equal .ibl-funny-manual-stage {
    align-items: start !important;
}

.ibl-funny-manual--two_stack .ibl-funny-manual-stage {
    grid-template-rows: auto auto !important;
}

/* Keep side-by-side per-entry options natural-height as well. */
.ibl-funny-page--manual .ibl-funny-manual-entry.ibl-funny-text--left,
.ibl-funny-page--manual .ibl-funny-manual-entry.ibl-funny-text--right {
    grid-template-rows: auto auto !important;
    align-items: start !important;
}

/* =========================================================================
   Unified Insta-Bulletin hover accent — v2.4.14
   ========================================================================= */
@media (hover:hover) and (pointer:fine) {
    .ibl-reader a:hover {
        color: #6ea435;
    }

    .ibl-reader-back:hover,
    .ibl-reader-tab:hover,
    .ibl-reader-drawer-item:hover,
    .ibl-reader-read-now:hover,
    .ibl-reader-arrow:hover,
    .ibl-director-read-more:hover,
    .ibl-reaction:hover,
    .ibl-promotion-reaction:hover,
    .ibl-mind-level:hover,
    .ibl-mind-read-more:hover,
    .ibl-mind-story-button:hover,
    .ibl-mind-story-submit:hover,
    .ibl-cyber-play:hover,
    .ibl-cyber-reaction:hover,
    .ibl-team-quiz-option:hover:not(:disabled),
    .ibl-games-vote:hover,
    .ibl-funny-vote-option:hover,
    .ibl-funny-reaction:hover {
        border-color: #6ea435 !important;
        background-color: #6ea435 !important;
        color: #fff !important;
    }

    .ibl-reader-back:hover *,
    .ibl-reader-tab:hover *,
    .ibl-reader-drawer-item:hover *,
    .ibl-reader-read-now:hover *,
    .ibl-reader-arrow:hover *,
    .ibl-director-read-more:hover *,
    .ibl-reaction:hover *,
    .ibl-promotion-reaction:hover *,
    .ibl-mind-level:hover *,
    .ibl-mind-read-more:hover *,
    .ibl-mind-story-button:hover *,
    .ibl-mind-story-submit:hover *,
    .ibl-cyber-play:hover *,
    .ibl-cyber-reaction:hover *,
    .ibl-team-quiz-option:hover:not(:disabled) *,
    .ibl-games-vote:hover *,
    .ibl-funny-vote-option:hover *,
    .ibl-funny-reaction:hover * {
        color: inherit !important;
    }
}

/* =========================================================================
   v2.4.18 — Batch 1: readability, calendar, Funny Files controls + hover polish
   ========================================================================= */

/* Get To Know The Team quiz readability. */
.ibl-team-quiz-option {
    font-size: clamp(12px, calc(.75vw + 2px), 14px) !important;
}
.ibl-team-quiz-option > strong {
    font-size: 11px !important;
}
.ibl-team-quiz-result {
    font-size: 12.5px !important;
}
.ibl-team-quiz-result strong {
    font-size: 14px !important;
}
.ibl-team-quiz-nav {
    font-size: 11px !important;
}

/* Friday Games prediction panel: all user-facing copy +2px. */
.ibl-games-prediction-kicker { font-size: 11px !important; }
.ibl-games-prediction h3 { font-size: clamp(26px, 2.25vw, 38px) !important; }
.ibl-games-prediction > p { font-size: 13px !important; }
.ibl-games-vote { font-size: 13px !important; }
.ibl-games-vote strong { font-size: 12px !important; }
.ibl-games-prediction-result strong { font-size: 13px !important; }
.ibl-games-prediction-result span { font-size: 11px !important; }
.ibl-games-vote-message { font-size: 10.5px !important; }

/* Funny Files heading formatting is independent from body-copy alignment. */
.ibl-funny-page--manual .ibl-funny-entry-title {
    font-size: var(--ibl-funny-title-size, 17px) !important;
    font-weight: 500 !important;
}
.ibl-funny-page--manual .ibl-funny-title--bold .ibl-funny-entry-title { font-weight: 750 !important; }
.ibl-funny-page--manual .ibl-funny-title-align--left .ibl-funny-entry-title { text-align: left !important; }
.ibl-funny-page--manual .ibl-funny-title-align--center .ibl-funny-entry-title { text-align: center !important; }
.ibl-funny-page--manual .ibl-funny-title-align--right .ibl-funny-entry-title { text-align: right !important; }

/* Calendar entries +3px and larger event icons. */
.ibl-calendar-event--badge { font-size: clamp(10px, calc(.57vw + 3px), 12px) !important; }
.ibl-calendar-event--block,
.ibl-calendar-event--icon_text { font-size: clamp(10px, calc(.61vw + 3px), 13px) !important; }
.ibl-calendar-event:not(.ibl-calendar-event--type-birthday) .ibl-calendar-event-emoji {
    font-size: clamp(18px, 1.45vw, 25px) !important;
    line-height: 1 !important;
}
.ibl-calendar-legend { font-size: 12px !important; }
.ibl-calendar-legend b { font-size: 18px !important; }
@media (max-width: 820px) {
    .ibl-calendar-event--agenda { font-size: 15px !important; }
    .ibl-calendar-event--agenda:not(.ibl-calendar-event--type-birthday) .ibl-calendar-event-emoji { font-size: 24px !important; }
}

/* Green is the reader's hover/focus accent. */
@media (hover:hover) and (pointer:fine) {
    .ibl-team-quiz-nav:hover:not(:disabled),
    .ibl-games-lightbox-close:hover,
    .ibl-calendar-modal-close:hover,
    .ibl-calendar-modal-link:hover {
        border-color: #6ea435 !important;
        background-color: #6ea435 !important;
        color: #fff !important;
    }

    .ibl-games-photo:hover,
    .ibl-funny-manual-image:hover,
    .ibl-funny-manual-video-launch:hover {
        outline: 3px solid #6ea435 !important;
        outline-offset: 0 !important;
        border-radius: clamp(18px, 1.8vw, 28px);
    }

    .ibl-games-photo:hover img { box-shadow: 0 0 0 3px #6ea435 !important; }
    button.ibl-calendar-event:hover { box-shadow: inset 0 0 0 2px #6ea435 !important; }

    .ibl-reader button:hover,
    .ibl-reader a:hover {
        --ibl-hover-accent: #6ea435;
    }
}

.ibl-reader button:focus-visible,
.ibl-reader a:focus-visible,
.ibl-funny-manual-image:focus-visible,
.ibl-funny-manual-video-launch:focus-visible {
    outline: 3px solid #6ea435 !important;
    outline-offset: 2px !important;
}

.ibl-funny-manual-image:focus,
.ibl-funny-manual-video-launch:focus {
    border-color: #6ea435 !important;
    outline: 3px solid #6ea435 !important;
    outline-offset: 0 !important;
    border-radius: clamp(18px, 1.8vw, 28px);
}


/* Safe standalone-reader toolbar cleanup — v2.4.21.
 * Deliberately targets only WordPress' exact admin-bar element. Do not use
 * wildcard Angie/AI selectors here: third-party classes can exist on body or
 * other high-level wrappers and must never be allowed to hide the reader. */
body.ibl-reader-standalone-page #wpadminbar {
    display: none !important;
}

html:has(body.ibl-reader-standalone-page),
body.ibl-reader-standalone-page {
    margin-top: 0 !important;
}

/* ========================================================================
 * Highlights v2 — page-based dynamic layouts (Batch 4B)
 * ====================================================================== */
.ibl-highlights-v2-page {
    box-sizing: border-box;
    min-height: 0;
    padding: clamp(28px, 3.2vw, 52px);
    background: var(--ibl-hlv2-page-bg, #022340);
    color: #172c3d;
}

.ibl-highlights-v2-page.is-dark {
    color: #fff;
}

.ibl-highlights-v2-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: clamp(24px, 2.6vw, 38px);
}

.ibl-highlights-v2-kicker {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 7px 14px;
    border-radius: 999px;
    background: #d3de00;
    color: #022340;
    font-size: clamp(12px, .86vw, 14px);
    font-weight: 800;
    letter-spacing: .07em;
    line-height: 1;
}

.ibl-highlights-v2-heading {
    margin: 14px 0 0;
    color: inherit;
    font-size: clamp(28px, 3vw, 48px);
    font-weight: 650;
    line-height: 1.05;
    letter-spacing: -.025em;
}

.ibl-highlights-v2-page-count {
    flex: 0 0 auto;
    padding-top: 5px;
    color: inherit;
    font-size: 14px;
    font-weight: 700;
    opacity: .72;
}

.ibl-highlights-v2-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-auto-flow: dense;
    grid-auto-rows: 8px;
    align-items: start;
    gap: clamp(18px, 2vw, 30px);
}

.ibl-highlights-v2-entry {
    grid-column: span 8;
    align-self: start;
    min-width: 0;
    overflow: hidden;
    border-radius: clamp(16px, 1.6vw, 24px);
    background: var(--ibl-hlv2-entry-bg, transparent);
    color: #172c3d;
    box-shadow: 0 12px 34px rgba(2, 35, 64, .09);
}

.ibl-highlights-v2-entry.is-dark {
    color: #fff;
}

.ibl-highlights-v2-entry--size-small { grid-column: span 4; }
.ibl-highlights-v2-entry--size-medium { grid-column: span 6; }
.ibl-highlights-v2-entry--size-full_width { grid-column: 1 / -1; }
.ibl-highlights-v2-entry--size-large.ibl-highlights-v2-entry--shape-landscape { grid-column: span 8; }
.ibl-highlights-v2-entry--size-large.ibl-highlights-v2-entry--shape-square { grid-column: span 6; }
.ibl-highlights-v2-entry--size-large.ibl-highlights-v2-entry--shape-portrait { grid-column: span 5; }
.ibl-highlights-v2-entry--size-large.ibl-highlights-v2-entry--shape-text { grid-column: span 6; }

.ibl-highlights-v2-entry-content {
    min-width: 0;
}

.ibl-highlights-v2-copy {
    position: relative;
    z-index: 3;
    padding: clamp(18px, 1.7vw, 28px);
    color: inherit;
}

.ibl-highlights-v2-copy--left { text-align: left; }
.ibl-highlights-v2-copy--center { text-align: center; }
.ibl-highlights-v2-copy--right { text-align: right; }

.ibl-highlights-v2-caption {
    margin: 0 0 10px;
    color: inherit;
    font-size: clamp(20px, 1.55vw, 26px);
    font-weight: 500;
    line-height: 1.16;
    letter-spacing: -.015em;
}

.ibl-highlights-v2-copy.is-caption-bold .ibl-highlights-v2-caption {
    font-weight: 800;
}

.ibl-highlights-v2-copy.has-white-caption .ibl-highlights-v2-caption span {
    display: inline;
    padding: .12em .28em;
    border-radius: 5px;
    background: rgba(255, 255, 255, .96);
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    color: #022340;
}

.ibl-highlights-v2-intro {
    color: inherit;
    font-size: clamp(15px, 1.04vw, 18px);
    line-height: 1.52;
}

.ibl-highlights-v2-intro p {
    margin: 0 0 .7em;
}

.ibl-highlights-v2-intro p:last-child {
    margin-bottom: 0;
}

.ibl-highlights-v2-media-grid {
    display: grid;
    grid-auto-flow: dense;
    align-items: start;
    gap: clamp(10px, 1vw, 16px);
    padding: 0;
}

.ibl-highlights-v2-media-grid--dynamic {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.ibl-highlights-v2-media-grid--dynamic .ibl-hlv2-media-item {
    grid-column: span 3;
}

.ibl-highlights-v2-media-grid--dynamic .ibl-hlv2-media-item--landscape {
    grid-column: span 6;
}

.ibl-highlights-v2-media-grid--dynamic .ibl-hlv2-media-item--portrait {
    grid-column: span 2;
}

.ibl-highlights-v2-media-grid--dynamic .ibl-hlv2-media-item--square {
    grid-column: span 3;
}

.ibl-highlights-v2-media-grid--one_column { grid-template-columns: 1fr; }
.ibl-highlights-v2-media-grid--two_columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ibl-highlights-v2-media-grid--three_columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.ibl-highlights-v2-media-grid--featured_left,
.ibl-highlights-v2-media-grid--featured_right,
.ibl-highlights-v2-media-grid--two_left_one_right,
.ibl-highlights-v2-media-grid--one_left_two_right {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ibl-highlights-v2-media-grid--featured_left .ibl-hlv2-media-item.is-featured,
.ibl-highlights-v2-media-grid--one_left_two_right .ibl-hlv2-media-item.is-featured {
    grid-column: 1;
    grid-row: span 2;
    order: -2;
}

.ibl-highlights-v2-media-grid--featured_right .ibl-hlv2-media-item.is-featured,
.ibl-highlights-v2-media-grid--two_left_one_right .ibl-hlv2-media-item.is-featured {
    grid-column: 2;
    grid-row: span 2;
    order: -2;
}

.ibl-hlv2-media-item {
    position: relative;
    min-width: 0;
    overflow: hidden;
    border-radius: 0;
    background: rgba(255, 255, 255, .08);
}

.ibl-hlv2-image-button,
.ibl-hlv2-video-shell,
.ibl-hlv2-video {
    display: block;
    width: 100%;
}

.ibl-hlv2-image-button {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
}

.ibl-hlv2-image-button img {
    display: block;
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
}

.ibl-hlv2-image-button:hover,
.ibl-hlv2-image-button:focus-visible {
    outline: 3px solid #6ea435;
    outline-offset: -3px;
}

.ibl-hlv2-video-shell {
    position: relative;
}

.ibl-hlv2-video {
    height: auto;
    max-height: none;
    background: #000;
}

.ibl-hlv2-expand-media {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 4;
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 0;
    border-radius: 999px;
    background: rgba(2, 35, 64, .86);
    color: #fff;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
}

.ibl-hlv2-expand-media:hover,
.ibl-hlv2-expand-media:focus-visible {
    background: #6ea435;
    color: #fff;
}

.ibl-highlights-v2-side-layout {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.45fr);
    align-items: center;
    gap: 0;
}

.ibl-highlights-v2-side-layout--right {
    grid-template-columns: minmax(0, 1.45fr) minmax(0, .85fr);
}

.ibl-highlights-v2-side-layout--right > .ibl-highlights-v2-copy {
    order: 2;
}

.ibl-highlights-v2-side-layout--right > .ibl-highlights-v2-media-wrap {
    order: 1;
}

.ibl-highlights-v2-overlay-wrap {
    position: relative;
}

.ibl-highlights-v2-overlay-wrap > .ibl-highlights-v2-copy {
    position: absolute;
    right: clamp(14px, 1.8vw, 28px);
    bottom: clamp(14px, 1.8vw, 28px);
    left: clamp(14px, 1.8vw, 28px);
    z-index: 5;
    max-width: min(680px, calc(100% - 28px));
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(2,35,64,.05), rgba(2,35,64,.78));
    color: #fff;
    text-shadow: 0 1px 2px rgba(0,0,0,.22);
}

.ibl-highlights-v2-reactions {
    padding: 14px clamp(18px, 1.7vw, 28px) clamp(18px, 1.7vw, 26px);
}

.ibl-highlights-v2-swipe-hint {
    display: none;
    padding: 8px 14px 12px;
    color: inherit;
    font-size: 12px;
    font-weight: 700;
    text-align: right;
    opacity: .72;
}

.ibl-highlights-v2-empty-media,
.ibl-highlights-v2-empty-state {
    padding: 34px;
    border: 1px dashed rgba(127, 145, 157, .5);
    border-radius: 16px;
    text-align: center;
}

.ibl-highlights-v2-empty-state {
    grid-column: 1 / -1;
    display: grid;
    gap: 6px;
}

.ibl-highlights-v2-lightbox[hidden] {
    display: none !important;
}

.ibl-highlights-v2-lightbox {
    position: fixed;
    z-index: 999999;
    inset: 0;
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) 72px;
    grid-template-rows: minmax(0, 1fr) auto;
    align-items: center;
    background: rgba(2, 21, 38, .96);
    color: #fff;
}

.ibl-highlights-v2-lightbox-stage {
    grid-column: 2;
    grid-row: 1;
    display: grid;
    width: 100%;
    height: 100%;
    min-height: 0;
    place-items: center;
    padding: 48px 10px 30px;
}

.ibl-highlights-v2-lightbox-stage img,
.ibl-highlights-v2-lightbox-stage video {
    display: block;
    max-width: 100%;
    max-height: calc(100vh - 110px);
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 10px;
}

.ibl-highlights-v2-lightbox-stage video {
    width: min(1200px, 100%);
    background: #000;
}

.ibl-highlights-v2-lightbox-close {
    position: absolute;
    top: 18px;
    right: 20px;
    z-index: 5;
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: rgba(255,255,255,.12);
    color: #fff;
    font-size: 30px;
    cursor: pointer;
}

.ibl-highlights-v2-lightbox-close:hover,
.ibl-highlights-v2-lightbox-close:focus-visible,
.ibl-highlights-v2-lightbox-nav:hover,
.ibl-highlights-v2-lightbox-nav:focus-visible {
    background: #6ea435;
    color: #fff;
}

.ibl-highlights-v2-lightbox-nav {
    z-index: 4;
    display: grid;
    width: 50px;
    height: 50px;
    place-items: center;
    justify-self: center;
    border: 0;
    border-radius: 50%;
    background: rgba(255,255,255,.12);
    color: #fff;
    font-size: 34px;
    line-height: 1;
    cursor: pointer;
}

.ibl-highlights-v2-lightbox-prev { grid-column: 1; grid-row: 1; }
.ibl-highlights-v2-lightbox-next { grid-column: 3; grid-row: 1; }

.ibl-highlights-v2-lightbox-counter {
    grid-column: 1 / -1;
    grid-row: 2;
    padding: 0 20px 18px;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    opacity: .78;
}

body.ibl-hlv2-lightbox-open {
    overflow: hidden !important;
}

@media (max-width: 900px) {
    .ibl-highlights-v2-entry--size-small,
    .ibl-highlights-v2-entry--size-medium,
    .ibl-highlights-v2-entry--size-large,
    .ibl-highlights-v2-entry--size-full_width {
        grid-column: 1 / -1;
    }

    .ibl-highlights-v2-side-layout,
    .ibl-highlights-v2-side-layout--right {
        display: block;
    }

    .ibl-highlights-v2-side-layout--right > .ibl-highlights-v2-copy,
    .ibl-highlights-v2-side-layout--right > .ibl-highlights-v2-media-wrap {
        order: initial;
    }

    .ibl-highlights-v2-entry--copy-left .ibl-highlights-v2-copy,
    .ibl-highlights-v2-entry--copy-right .ibl-highlights-v2-copy {
        padding-bottom: 14px;
    }
}

@media (max-width: 760px) {
    .ibl-highlights-v2-page {
        padding: 24px 16px 30px;
    }

    .ibl-highlights-v2-header {
        gap: 14px;
        margin-bottom: 22px;
    }

    .ibl-highlights-v2-heading {
        font-size: clamp(26px, 8.5vw, 38px);
    }

    .ibl-highlights-v2-grid {
        display: block;
    }

    .ibl-highlights-v2-entry {
        width: 100%;
        margin-bottom: 18px;
        border-radius: 18px;
    }

    .ibl-highlights-v2-entry:last-child {
        margin-bottom: 0;
    }

    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid {
        display: flex !important;
        gap: 10px;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 0 14px 6px;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 14px;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid::-webkit-scrollbar {
        display: none;
    }

    .ibl-highlights-v2-entry.is-album .ibl-hlv2-media-item {
        flex: 0 0 88%;
        width: 88%;
        scroll-snap-align: start;
    }

    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-swipe-hint {
        display: block;
    }

    .ibl-highlights-v2-entry:not(.is-album) .ibl-highlights-v2-media-grid,
    .ibl-highlights-v2-entry:not(.is-album) .ibl-highlights-v2-media-grid--dynamic,
    .ibl-highlights-v2-entry:not(.is-album) .ibl-highlights-v2-media-grid--one_column,
    .ibl-highlights-v2-entry:not(.is-album) .ibl-highlights-v2-media-grid--two_columns,
    .ibl-highlights-v2-entry:not(.is-album) .ibl-highlights-v2-media-grid--three_columns,
    .ibl-highlights-v2-entry:not(.is-album) .ibl-highlights-v2-media-grid--featured_left,
    .ibl-highlights-v2-entry:not(.is-album) .ibl-highlights-v2-media-grid--featured_right,
    .ibl-highlights-v2-entry:not(.is-album) .ibl-highlights-v2-media-grid--two_left_one_right,
    .ibl-highlights-v2-entry:not(.is-album) .ibl-highlights-v2-media-grid--one_left_two_right {
        grid-template-columns: 1fr;
    }

    .ibl-highlights-v2-entry:not(.is-album) .ibl-hlv2-media-item {
        grid-column: 1 !important;
        grid-row: auto !important;
    }

    .ibl-highlights-v2-overlay-wrap > .ibl-highlights-v2-copy {
        position: relative;
        right: auto;
        bottom: auto;
        left: auto;
        max-width: none;
        margin: -70px 12px 12px;
        background: rgba(2,35,64,.88);
    }

    .ibl-highlights-v2-lightbox {
        grid-template-columns: 48px minmax(0, 1fr) 48px;
    }

    .ibl-highlights-v2-lightbox-nav {
        width: 40px;
        height: 40px;
        font-size: 28px;
    }

    .ibl-highlights-v2-lightbox-stage {
        padding-top: 60px;
    }
}

.ibl-hlv2-embed-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #000;
}

.ibl-hlv2-embed {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.ibl-highlights-v2-lightbox-stage iframe {
    display: block;
    width: min(1200px, 100%);
    aspect-ratio: 16 / 9;
    border: 0;
    border-radius: 10px;
    background: #000;
}

@media (max-width: 760px) {
    .ibl-highlights-v2-entry.is-album .ibl-hlv2-media-item {
        order: initial !important;
    }
}

/* ========================================================================
 * Highlights v2.4.24 — independent entry cards inside one section page
 * ====================================================================== */
.ibl-highlights-v2-page {
    --ibl-hlv2-card-radius: 24px;
}

.ibl-highlights-v2-grid {
    /* The page packs independent entries, not raw media. Entries keep their
       own height/proportions and the dense grid fills available gaps. */
    align-content: start;
}

.ibl-highlights-v2-entry {
    border-radius: var(--ibl-hlv2-card-radius);
    background: var(--ibl-hlv2-entry-bg, transparent);
}

.ibl-highlights-v2-entry--card-none {
    overflow: visible;
    background: transparent !important;
    box-shadow: none;
}

.ibl-highlights-v2-entry--card-dark_panel,
.ibl-highlights-v2-entry--card-white_card,
.ibl-highlights-v2-entry--card-custom {
    overflow: hidden;
    padding: clamp(10px, .85vw, 14px);
    box-shadow: 0 12px 34px rgba(2, 35, 64, .14);
}

.ibl-highlights-v2-entry--card-dark_panel {
    background: #173c59 !important;
}

.ibl-highlights-v2-entry--card-white_card {
    background: #fff !important;
}

.ibl-highlights-v2-entry--card-dark_panel .ibl-highlights-v2-copy,
.ibl-highlights-v2-entry--card-white_card .ibl-highlights-v2-copy,
.ibl-highlights-v2-entry--card-custom .ibl-highlights-v2-copy {
    padding: clamp(12px, 1.15vw, 18px) clamp(8px, .85vw, 14px);
}

.ibl-highlights-v2-entry--card-dark_panel .ibl-highlights-v2-media-grid,
.ibl-highlights-v2-entry--card-white_card .ibl-highlights-v2-media-grid,
.ibl-highlights-v2-entry--card-custom .ibl-highlights-v2-media-grid,
.ibl-highlights-v2-entry--card-dark_panel .ibl-hlv2-media-item,
.ibl-highlights-v2-entry--card-white_card .ibl-hlv2-media-item,
.ibl-highlights-v2-entry--card-custom .ibl-hlv2-media-item,
.ibl-highlights-v2-entry--card-none .ibl-hlv2-media-item {
    border-radius: calc(var(--ibl-hlv2-card-radius) - 8px);
}

.ibl-highlights-v2-entry--card-none .ibl-highlights-v2-media-grid {
    border-radius: var(--ibl-hlv2-card-radius);
    overflow: hidden;
}

/* Captions always stay fully inside the entry. Overlay copy may sit over the
   media, but it never projects beyond the card edge. */
.ibl-highlights-v2-entry .ibl-highlights-v2-caption,
.ibl-highlights-v2-entry .ibl-highlights-v2-caption span {
    max-width: 100%;
}

.ibl-highlights-v2-entry .ibl-highlights-v2-caption span {
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}

.ibl-highlights-v2-entry--card-none .ibl-highlights-v2-overlay-wrap {
    overflow: hidden;
    border-radius: var(--ibl-hlv2-card-radius);
}

@media (max-width: 760px) {
    .ibl-highlights-v2-page {
        --ibl-hlv2-card-radius: 24px;
    }

    .ibl-highlights-v2-entry--card-dark_panel,
    .ibl-highlights-v2-entry--card-white_card,
    .ibl-highlights-v2-entry--card-custom {
        padding: 10px;
    }
}

/* ========================================================================
 * Highlights v2.4.25 — editorial page composition
 * Treat media size as a layout hint, then use the whole page intentionally.
 * ====================================================================== */
.ibl-highlights-v2-page {
    padding: clamp(24px, 2.6vw, 42px);
}

.ibl-highlights-v2-header {
    margin-bottom: clamp(20px, 2vw, 30px);
}

.ibl-highlights-v2-grid {
    gap: clamp(14px, 1.35vw, 22px);
    grid-auto-flow: dense;
}

/* JavaScript writes the final editorial column span. These remain sensible
   no-JS fallbacks and make lone entries use the canvas rather than floating
   at half-width. */
.ibl-highlights-v2-grid > .ibl-highlights-v2-entry:only-child {
    grid-column: 1 / -1;
}

.ibl-highlights-v2-entry {
    width: 100%;
    max-width: none;
}

.ibl-highlights-v2-entry--card-dark_panel,
.ibl-highlights-v2-entry--card-white_card,
.ibl-highlights-v2-entry--card-custom {
    padding: clamp(10px, .75vw, 13px);
}

/* Dynamic albums are designed as one editorial entry, not a vertical list
   of unrelated images. Natural image/video ratios are still preserved. */
.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-1 {
    grid-template-columns: minmax(0, 1fr);
}

.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-1 .ibl-hlv2-media-item {
    grid-column: 1 / -1;
}

.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-2 .ibl-hlv2-media-item {
    grid-column: auto;
}

.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-3 .ibl-hlv2-media-item {
    grid-column: auto;
}

.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-3 .ibl-hlv2-media-item.is-featured {
    grid-column: 1 / -1;
}

.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-4 .ibl-hlv2-media-item {
    grid-column: auto;
}

.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-5,
.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-6 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-5 .ibl-hlv2-media-item,
.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-6 .ibl-hlv2-media-item {
    grid-column: auto;
}

.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-5 .ibl-hlv2-media-item.is-featured {
    grid-column: span 2;
}

/* Keep copy visually connected to its entry instead of reading like a loose
   web heading above an unrelated image. */
.ibl-highlights-v2-copy {
    padding: clamp(14px, 1.25vw, 20px);
}

.ibl-highlights-v2-caption {
    margin-bottom: 8px;
}

.ibl-highlights-v2-entry--card-none .ibl-highlights-v2-copy {
    padding-left: 0;
    padding-right: 0;
}

.ibl-highlights-v2-entry--card-none.ibl-highlights-v2-entry--copy-below .ibl-highlights-v2-copy {
    padding-bottom: 0;
}

.ibl-highlights-v2-entry--card-none.ibl-highlights-v2-entry--copy-above .ibl-highlights-v2-copy {
    padding-top: 0;
}

@media (max-width: 760px) {
    .ibl-highlights-v2-page {
        padding: 22px 16px;
    }

    .ibl-highlights-v2-grid {
        display: block;
    }

    .ibl-highlights-v2-entry + .ibl-highlights-v2-entry {
        margin-top: 18px;
    }

    .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-2,
    .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-3,
    .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-4,
    .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-5,
    .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-6 {
        display: flex;
        grid-template-columns: none;
        gap: 12px;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-2::-webkit-scrollbar,
    .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-3::-webkit-scrollbar,
    .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-4::-webkit-scrollbar,
    .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-5::-webkit-scrollbar,
    .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-6::-webkit-scrollbar {
        display: none;
    }

    .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-2 .ibl-hlv2-media-item,
    .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-3 .ibl-hlv2-media-item,
    .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-4 .ibl-hlv2-media-item,
    .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-5 .ibl-hlv2-media-item,
    .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-6 .ibl-hlv2-media-item {
        flex: 0 0 min(86%, 520px);
        scroll-snap-align: start;
    }
}


/* ========================================================================
 * Highlights v2.4.26 — full-width album blocks + scrollable media viewer
 * ====================================================================== */

/* Dynamic multi-media entries are one complete editorial card. Let the card
   use the whole page, then compose the album inside that width. */
.ibl-highlights-v2-entry[data-hlv2-layout="dynamic"][data-hlv2-media-count]:not([data-hlv2-media-count="0"]):not([data-hlv2-media-count="1"]) {
    grid-column: 1 / -1 !important;
}

/* Two-media cards such as event galleries should read as one wide strip. */
.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
}

.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-2 .ibl-hlv2-media-item {
    grid-column: auto !important;
}

/* Five-media galleries use the whole horizontal canvas: a strong 7/5 lead
   row followed by three evenly sized supporting images. */
.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-5 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: start;
}

.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-5 .ibl-hlv2-media-item {
    grid-column: span 4 !important;
}

.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-5 .ibl-hlv2-media-item:nth-child(1) {
    grid-column: span 7 !important;
}

.ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-5 .ibl-hlv2-media-item:nth-child(2) {
    grid-column: span 5 !important;
}

/* The page-number badge is no longer part of Highlights. Keep this defensive
   rule for previously cached markup. */
.ibl-highlights-v2-page-count,
.ibl-highlights-page .ibl-funny-page-count {
    display: none !important;
}

/* Real media viewer: the overlay itself scrolls, the media is never cropped,
   and navigation remains fixed while the user moves through a tall image. */
.ibl-highlights-v2-lightbox {
    display: block;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: clamp(70px, 7vh, 92px) clamp(72px, 7vw, 118px) 70px;
    background: rgba(2, 21, 38, .97);
    -webkit-overflow-scrolling: touch;
}

.ibl-highlights-v2-lightbox-stage {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    width: 100%;
    height: auto;
    min-height: calc(100vh - 160px);
    padding: 0;
    overflow: visible;
}

.ibl-highlights-v2-lightbox-stage img,
.ibl-highlights-v2-lightbox-stage video {
    display: block;
    width: auto;
    height: auto;
    max-width: min(1500px, 100%);
    max-height: none;
    object-fit: contain;
    border-radius: 12px;
}

.ibl-highlights-v2-lightbox-stage video {
    width: min(1400px, 100%);
    background: #000;
}

.ibl-highlights-v2-lightbox-stage iframe {
    display: block;
    width: min(1400px, 100%);
    height: auto;
    aspect-ratio: 16 / 9;
    border: 0;
    border-radius: 12px;
    background: #000;
}

.ibl-highlights-v2-lightbox-close {
    position: fixed;
    top: 22px;
    right: 24px;
}

.ibl-highlights-v2-lightbox-nav {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
}

.ibl-highlights-v2-lightbox-prev {
    left: 22px;
}

.ibl-highlights-v2-lightbox-next {
    right: 22px;
}

.ibl-highlights-v2-lightbox-counter {
    position: fixed;
    right: 0;
    bottom: 18px;
    left: 0;
    z-index: 4;
    padding: 0;
    pointer-events: none;
}

@media (max-width: 760px) {
    .ibl-highlights-v2-lightbox {
        padding: 72px 14px 68px;
    }

    .ibl-highlights-v2-lightbox-stage {
        min-height: 0;
        padding: 0;
    }

    .ibl-highlights-v2-lightbox-stage img,
    .ibl-highlights-v2-lightbox-stage video,
    .ibl-highlights-v2-lightbox-stage iframe {
        max-width: 100%;
    }

    .ibl-highlights-v2-lightbox-prev {
        left: 8px;
    }

    .ibl-highlights-v2-lightbox-next {
        right: 8px;
    }

    .ibl-highlights-v2-lightbox-close {
        top: 14px;
        right: 14px;
    }
}


/* ========================================================================
 * v2.4.27 — Highlights mosaic crop + contained gallery viewer + Mind polish
 * ====================================================================== */

/* Director Letter: make the reaction emoji row a touch more prominent. */
.ibl-director-reactions .ibl-reaction-emoji {
    font-size: 18px !important;
}

/* Mind Matters: clearer hierarchy and always-visible company breakdown. */
.ibl-mind-pulse-kicker {
    display: block;
    margin-top: 6px;
}

.ibl-mind-title-row {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 6px 14px;
    margin-top: 7px;
}

.ibl-mind-title-row h3 {
    margin: 0 !important;
}

.ibl-mind-title-row .ibl-mind-checkin-prompt {
    margin: 0 !important;
    font-size: clamp(11px, .88vw, 14px) !important;
    line-height: 1.25;
}

.ibl-mind-company-pulse {
    margin-top: 16px !important;
    padding-top: 11px !important;
}

.ibl-mind-company-pulse-label > span {
    font-size: 14px !important;
}

.ibl-mind-company-pulse-label strong {
    font-size: 13px !important;
}

.ibl-mind-breakdown-toggle {
    display: none !important;
}

.ibl-mind-breakdown,
.ibl-mind-breakdown[hidden] {
    display: grid !important;
    gap: 7px;
    margin-top: 10px;
}

.ibl-mind-breakdown-row {
    grid-template-columns: 120px minmax(0, 1fr) 44px;
    gap: 10px;
    font-size: 12px !important;
    line-height: 1.25;
}

.ibl-mind-breakdown-row strong {
    font-size: 12px !important;
}

.ibl-mind-story-card {
    row-gap: 14px !important;
}

.ibl-mind-story-card .ibl-mind-story-kicker {
    line-height: 1.4;
}

.ibl-mind-story-card h3 {
    line-height: 1.2 !important;
    margin-top: 5px;
    margin-bottom: 6px;
}

.ibl-mind-story-card p {
    line-height: 1.55 !important;
}

/* Highlights: album/mosaic thumbnails intentionally crop to their tile.
   The original media remains untouched and is shown uncropped in lightbox. */
@media (min-width: 761px) {
    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--dynamic .ibl-hlv2-media-item,
    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--two_columns .ibl-hlv2-media-item,
    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--three_columns .ibl-hlv2-media-item,
    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--featured_left .ibl-hlv2-media-item,
    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--featured_right .ibl-hlv2-media-item,
    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--two_left_one_right .ibl-hlv2-media-item,
    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--one_left_two_right .ibl-hlv2-media-item {
        min-height: 0;
        overflow: hidden;
        border-radius: 18px;
    }

    .ibl-highlights-v2-entry.is-album .ibl-hlv2-image-button,
    .ibl-highlights-v2-entry.is-album .ibl-hlv2-video-shell,
    .ibl-highlights-v2-entry.is-album .ibl-hlv2-video,
    .ibl-highlights-v2-entry.is-album .ibl-hlv2-embed-wrap {
        width: 100%;
        height: 100%;
    }

    .ibl-highlights-v2-entry.is-album .ibl-hlv2-image-button img,
    .ibl-highlights-v2-entry.is-album .ibl-hlv2-video {
        width: 100% !important;
        height: 100% !important;
        max-height: none !important;
        object-fit: cover !important;
    }

    .ibl-highlights-v2-entry.is-album .ibl-hlv2-embed-wrap {
        position: absolute;
        inset: 0;
        aspect-ratio: auto;
    }

    /* Two-up album: equal, clean editorial tiles. */
    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-2 {
        aspect-ratio: 3 / 1;
        align-items: stretch;
    }

    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-2 .ibl-hlv2-media-item {
        aspect-ratio: auto !important;
        height: 100%;
    }

    /* Three-up: three evenly balanced mosaic tiles. */
    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        aspect-ratio: 3 / 1;
        align-items: stretch;
    }

    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-3 .ibl-hlv2-media-item {
        grid-column: auto !important;
        height: 100%;
    }

    /* Four-up: true 2×2 mosaic. */
    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: repeat(2, minmax(0, 1fr));
        aspect-ratio: 2 / 1;
        align-items: stretch;
    }

    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-4 .ibl-hlv2-media-item {
        grid-column: auto !important;
        height: 100%;
    }

    /* Five-up: 7/5 lead row, then three equal tiles — all edges align. */
    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-5 {
        grid-template-columns: repeat(12, minmax(0, 1fr));
        grid-template-rows: 4fr 3fr;
        aspect-ratio: 12 / 7;
        align-items: stretch;
    }

    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-5 .ibl-hlv2-media-item {
        height: 100%;
    }

    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-5 .ibl-hlv2-media-item:nth-child(1) {
        grid-column: 1 / span 7 !important;
        grid-row: 1;
    }

    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-5 .ibl-hlv2-media-item:nth-child(2) {
        grid-column: 8 / span 5 !important;
        grid-row: 1;
    }

    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-5 .ibl-hlv2-media-item:nth-child(3) {
        grid-column: 1 / span 4 !important;
        grid-row: 2;
    }

    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-5 .ibl-hlv2-media-item:nth-child(4) {
        grid-column: 5 / span 4 !important;
        grid-row: 2;
    }

    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-5 .ibl-hlv2-media-item:nth-child(5) {
        grid-column: 9 / span 4 !important;
        grid-row: 2;
    }

    /* Six-up: balanced 3×2 mosaic. */
    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-6 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-template-rows: repeat(2, minmax(0, 1fr));
        aspect-ratio: 3 / 2;
        align-items: stretch;
    }

    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--count-6 .ibl-hlv2-media-item {
        grid-column: auto !important;
        height: 100%;
    }
}

/* Highlights lightbox: always fit within the visible browser window. */
.ibl-highlights-v2-lightbox {
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr) 72px !important;
    grid-template-rows: minmax(0, 1fr) auto !important;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    max-height: 100dvh;
    padding: 0 !important;
    overflow: hidden !important;
    align-items: center;
}

.ibl-highlights-v2-lightbox[hidden] {
    display: none !important;
}

.ibl-highlights-v2-lightbox-stage {
    grid-column: 2 !important;
    grid-row: 1 !important;
    display: grid !important;
    place-items: center;
    width: 100%;
    height: 100%;
    min-height: 0 !important;
    padding: clamp(66px, 7vh, 88px) 12px 34px !important;
    overflow: hidden !important;
}

.ibl-highlights-v2-lightbox-stage img,
.ibl-highlights-v2-lightbox-stage video {
    display: block;
    width: auto !important;
    height: auto !important;
    max-width: min(1400px, 100%) !important;
    max-height: calc(100dvh - 130px) !important;
    object-fit: contain !important;
    border-radius: 12px;
}

.ibl-highlights-v2-lightbox-stage video {
    width: min(1400px, 100%) !important;
}

.ibl-highlights-v2-lightbox-stage iframe {
    display: block;
    width: min(1400px, 100%) !important;
    max-width: 100% !important;
    max-height: calc(100dvh - 130px) !important;
    aspect-ratio: 16 / 9;
    border: 0;
    border-radius: 12px;
}

.ibl-highlights-v2-lightbox-close {
    position: fixed !important;
    top: 18px !important;
    right: 20px !important;
    z-index: 8;
}

.ibl-highlights-v2-lightbox-nav {
    position: fixed !important;
    top: 50% !important;
    z-index: 7;
    transform: translateY(-50%) !important;
}

.ibl-highlights-v2-lightbox-prev {
    left: 18px !important;
}

.ibl-highlights-v2-lightbox-next {
    right: 18px !important;
}

.ibl-highlights-v2-lightbox-counter {
    position: fixed !important;
    right: 0;
    bottom: 14px !important;
    left: 0;
    z-index: 7;
    padding: 0 !important;
}

@media (max-width: 760px) {
    .ibl-mind-title-row {
        align-items: flex-start;
        gap: 4px 10px;
    }

    .ibl-mind-company-pulse-label > span {
        font-size: 13px !important;
    }

    .ibl-mind-company-pulse-label strong {
        font-size: 12px !important;
    }

    .ibl-mind-breakdown-row {
        grid-template-columns: 105px minmax(0, 1fr) 40px;
        font-size: 11px !important;
    }

    .ibl-mind-breakdown-row strong {
        font-size: 11px !important;
    }

    /* Mobile magazine keeps swipeable albums; crop the preview tile while
       preserving the original in lightbox. */
    .ibl-highlights-v2-entry.is-album .ibl-hlv2-media-item {
        aspect-ratio: 4 / 3;
        overflow: hidden;
    }

    .ibl-highlights-v2-entry.is-album .ibl-hlv2-image-button,
    .ibl-highlights-v2-entry.is-album .ibl-hlv2-image-button img,
    .ibl-highlights-v2-entry.is-album .ibl-hlv2-video-shell,
    .ibl-highlights-v2-entry.is-album .ibl-hlv2-video {
        width: 100%;
        height: 100%;
    }

    .ibl-highlights-v2-entry.is-album .ibl-hlv2-image-button img,
    .ibl-highlights-v2-entry.is-album .ibl-hlv2-video {
        object-fit: cover !important;
    }

    .ibl-highlights-v2-lightbox {
        grid-template-columns: 48px minmax(0, 1fr) 48px !important;
    }

    .ibl-highlights-v2-lightbox-stage {
        padding: 64px 4px 44px !important;
    }

    .ibl-highlights-v2-lightbox-stage img,
    .ibl-highlights-v2-lightbox-stage video,
    .ibl-highlights-v2-lightbox-stage iframe {
        max-width: 100% !important;
        max-height: calc(100dvh - 118px) !important;
    }

    .ibl-highlights-v2-lightbox-prev {
        left: 6px !important;
    }

    .ibl-highlights-v2-lightbox-next {
        right: 6px !important;
    }
}

/* =========================================================================
   v2.4.28 — readability + reactions + leaderboard + calendar polish
   ========================================================================= */

/* Get To Know The Team: make the answer feedback two pixels more readable. */
.ibl-team-quiz-result {
    font-size: 14.5px !important;
    line-height: 1.32 !important;
}
.ibl-team-quiz-result strong {
    font-size: 16px !important;
}

/* Friday Games: let the leaderboard bars visibly sweep into place. */
.ibl-games-bar-fill {
    transition-duration: 2.2s !important;
    transition-timing-function: cubic-bezier(.18,.72,.22,1) !important;
}
.ibl-games-rank:nth-child(2) .ibl-games-bar-fill { transition-delay: .12s !important; }
.ibl-games-rank:nth-child(3) .ibl-games-bar-fill { transition-delay: .24s !important; }

/* Funny Files: reaction emoji only +2px, while retaining compact counts. */
.ibl-funny-page:not(.ibl-highlights-page) .ibl-funny-reaction > span:first-child {
    font-size: 15px !important;
    line-height: 1 !important;
}

/* Highlights: full shared reaction set with larger, easier-to-tap emoji. */
.ibl-highlights-v2-reactions .ibl-funny-reaction {
    min-width: 46px;
    min-height: 34px;
    gap: 5px;
    padding: 6px 8px;
}
.ibl-highlights-v2-reactions .ibl-funny-reaction > span:first-child {
    font-size: 17px !important;
    line-height: 1 !important;
}
.ibl-highlights-v2-reactions .ibl-funny-reaction strong {
    font-size: 10px !important;
}

/* Calendar: a true equal-cell month grid. Columns are equal and every week row
   receives the same share of the available calendar height. */
.ibl-calendar-weekdays,
.ibl-calendar-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
}
.ibl-reader--natural-flow .ibl-calendar-grid,
.ibl-calendar-grid {
    grid-template-rows: repeat(var(--ibl-calendar-weeks, 6), minmax(96px, 1fr)) !important;
    grid-auto-rows: unset !important;
}
.ibl-reader--natural-flow .ibl-calendar-cell,
.ibl-calendar-cell {
    min-height: 0 !important;
    height: 100% !important;
}

/* Event icons and labels share one horizontal centre line. */
.ibl-calendar-event--icon_text,
.ibl-calendar-event--block,
.ibl-calendar-event--badge {
    align-items: center !important;
}
.ibl-calendar-event--icon_text {
    display: flex !important;
    grid-template-columns: none !important;
}
.ibl-calendar-event-emoji {
    flex: 0 0 auto;
    align-self: center !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.ibl-calendar-event-title {
    align-self: center !important;
    line-height: 1.16 !important;
}

/* The event itself now contains all necessary context, so no footer key. */
.ibl-calendar-legend {
    display: none !important;
}

@media (prefers-reduced-motion: reduce) {
    .ibl-games-bar-fill {
        transition-duration: .01ms !important;
        transition-delay: 0ms !important;
    }
}

/* Standalone Memorial Page — v2.4.29 */
.ibl-memorial-page {
    position: relative;
    width: 100%;
    box-sizing: border-box;
    min-height: 0;
    padding: clamp(40px, 5vw, 82px);
    border-radius: clamp(28px, 3vw, 46px);
    background: var(--ibl-memorial-bg, #fff);
    color: var(--ibl-memorial-text, #0b2d4a);
    overflow: hidden;
}
.ibl-memorial-inner {
    width: min(1320px, 100%);
    margin: 0 auto;
}
.ibl-memorial-heading-block {
    max-width: 980px;
    margin: 0 auto clamp(24px, 3vw, 42px);
    text-align: center;
}
.ibl-memorial-heading {
    margin: 0;
    color: inherit;
    font-size: clamp(34px, 4vw, 64px);
    font-weight: 400;
    line-height: 1.08;
    letter-spacing: -.025em;
}
.ibl-memorial-subheading {
    margin: 12px 0 0;
    color: var(--ibl-memorial-muted, #4e6476);
    font-size: clamp(16px, 1.35vw, 21px);
    line-height: 1.45;
}
.ibl-memorial-message {
    max-width: 1040px;
    margin: 0 auto clamp(30px, 4vw, 56px);
    color: inherit;
    font-size: clamp(16px, 1.25vw, 20px);
    line-height: 1.7;
    text-align: center;
}
.ibl-memorial-message > :first-child { margin-top: 0; }
.ibl-memorial-message > :last-child { margin-bottom: 0; }
.ibl-memorial-message h1,
.ibl-memorial-message h2,
.ibl-memorial-message h3,
.ibl-memorial-message h4 { color: inherit; }
.ibl-memorial-gallery {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: clamp(12px, 1.6vw, 22px);
    align-items: start;
}
.ibl-memorial-photo {
    grid-column: span 4;
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    border-radius: clamp(18px, 1.8vw, 28px);
    background: transparent;
    overflow: hidden;
    cursor: zoom-in;
    box-shadow: 0 12px 28px rgba(2,35,64,.12);
}
.ibl-memorial-photo.is-featured {
    grid-column: 1 / -1;
}
.ibl-memorial-gallery--1 .ibl-memorial-photo,
.ibl-memorial-gallery--2 .ibl-memorial-photo {
    grid-column: span 6;
}
.ibl-memorial-gallery--1 .ibl-memorial-photo { grid-column: 2 / span 10; }
.ibl-memorial-gallery--2 .ibl-memorial-photo.is-featured { grid-column: span 6; }
.ibl-memorial-photo img {
    display: block;
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
}
.ibl-memorial-photo:hover,
.ibl-memorial-photo:focus-visible {
    outline: 3px solid #6ea435;
    outline-offset: 3px;
}
.ibl-memorial-lightbox[hidden] { display: none !important; }
.ibl-memorial-lightbox {
    position: fixed;
    z-index: 999999;
    inset: 0;
    display: grid;
    place-items: center;
    padding: clamp(54px, 6vw, 86px) clamp(70px, 7vw, 112px);
}
.ibl-memorial-lightbox-backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    background: rgba(1, 23, 42, .92);
}
.ibl-memorial-lightbox-stage {
    position: relative;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    min-height: 0;
}
.ibl-memorial-lightbox-image {
    display: block;
    max-width: min(90vw, 1500px);
    max-height: 82vh;
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 18px;
    box-shadow: 0 20px 70px rgba(0,0,0,.42);
}
.ibl-memorial-lightbox-close,
.ibl-memorial-lightbox-nav {
    position: fixed;
    z-index: 3;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 999px;
    background: #6ea435;
    color: #fff;
    box-shadow: 0 8px 24px rgba(0,0,0,.24);
    cursor: pointer;
}
.ibl-memorial-lightbox-close {
    top: 24px;
    right: 28px;
    width: 54px;
    height: 54px;
    font-size: 36px;
    line-height: 1;
}
.ibl-memorial-lightbox-nav {
    top: 50%;
    width: 52px;
    height: 52px;
    transform: translateY(-50%);
    font-size: 38px;
}
.ibl-memorial-lightbox-nav.is-prev { left: 24px; }
.ibl-memorial-lightbox-nav.is-next { right: 24px; }
.ibl-memorial-lightbox-close:hover,
.ibl-memorial-lightbox-nav:hover { background: #6ea435; filter: brightness(.93); }
@media (max-width: 760px) {
    .ibl-memorial-page { padding: 30px 20px; border-radius: 24px; }
    .ibl-memorial-heading-block { text-align: left; }
    .ibl-memorial-message { text-align: left; }
    .ibl-memorial-photo,
    .ibl-memorial-photo.is-featured,
    .ibl-memorial-gallery--1 .ibl-memorial-photo,
    .ibl-memorial-gallery--2 .ibl-memorial-photo,
    .ibl-memorial-gallery--2 .ibl-memorial-photo.is-featured { grid-column: 1 / -1; }
    .ibl-memorial-lightbox { padding: 72px 18px 72px; }
    .ibl-memorial-lightbox-image { max-width: 94vw; max-height: 78vh; }
    .ibl-memorial-lightbox-close { top: 14px; right: 14px; width: 48px; height: 48px; }
    .ibl-memorial-lightbox-nav { width: 44px; height: 44px; font-size: 30px; }
    .ibl-memorial-lightbox-nav.is-prev { left: 8px; }
    .ibl-memorial-lightbox-nav.is-next { right: 8px; }
}

/* =========================================================================
   v2.4.30 — rich media + Mind spacing + reaction cleanup
   ========================================================================= */

/* Mind Matters spacing/readability refinements. */
.ibl-mind-title-row {
    margin-bottom: 12px !important;
}

.ibl-mind-company-pulse {
    margin-top: 22px !important;
    padding-top: 14px !important;
}

.ibl-mind-company-pulse-label {
    margin-bottom: 10px !important;
}

.ibl-mind-meter {
    margin-bottom: 16px !important;
}

.ibl-mind-breakdown,
.ibl-mind-breakdown[hidden] {
    margin-top: 0 !important;
}

.ibl-mind-breakdown-row,
.ibl-mind-breakdown-row strong {
    font-size: 14px !important;
}

/* Remove divider rules above reaction rows throughout Funny Files/Highlights. */
.ibl-funny-reactions,
.ibl-highlights-v2-reactions {
    border-top: 0 !important;
}

/* Keep the lightbox close glyph optically centred inside its circle. */
.ibl-highlights-v2-lightbox-close {
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    line-height: 1 !important;
    font-family: Arial, sans-serif !important;
    text-indent: 0 !important;
}

/* Highlights albums larger than six items continue in a balanced 3-column
   mosaic instead of inheriting the six-item fixed grid and clipping later media. */
@media (min-width: 761px) {
    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--many {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        grid-auto-rows: clamp(180px, 18vw, 300px) !important;
        aspect-ratio: auto !important;
        align-items: stretch !important;
        overflow: visible !important;
    }

    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--dynamic.ibl-highlights-v2-media-grid--many .ibl-hlv2-media-item {
        grid-column: auto !important;
        grid-row: auto !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
    }
}

/* Voice-note / audio entries. */
.ibl-hlv2-media-item--audio {
    min-height: 0 !important;
    aspect-ratio: auto !important;
}

.ibl-hlv2-audio-shell {
    position: relative;
    display: grid;
    gap: 12px;
    width: 100%;
    padding: clamp(18px, 2vw, 28px);
    border-radius: 18px;
    background: rgba(255,255,255,.92);
    color: #062c4a;
    box-sizing: border-box;
}

.ibl-highlights-v2-entry.is-dark .ibl-hlv2-audio-shell {
    background: rgba(255,255,255,.96);
    color: #062c4a;
}

.ibl-hlv2-audio-label {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: clamp(14px, 1vw, 17px);
}

.ibl-hlv2-audio-label > span {
    font-size: 22px;
}

.ibl-hlv2-audio {
    display: block;
    width: 100%;
    max-width: 100%;
}

.ibl-hlv2-lightbox-audio {
    display: grid;
    gap: 18px;
    width: min(720px, calc(100vw - 160px));
    padding: clamp(24px, 4vw, 48px);
    border-radius: 22px;
    background: #fff;
    color: #062c4a;
    box-shadow: 0 24px 70px rgba(0,0,0,.28);
}

.ibl-hlv2-lightbox-audio strong {
    font-size: clamp(20px, 2vw, 30px);
}

.ibl-hlv2-lightbox-audio audio {
    width: 100%;
}

@media (max-width: 760px) {
    .ibl-mind-breakdown-row,
    .ibl-mind-breakdown-row strong {
        font-size: 13px !important;
    }

    .ibl-hlv2-lightbox-audio {
        width: min(86vw, 620px);
        padding: 24px 18px;
    }
}

/* Centre the close glyph in both Highlights and Funny Files lightboxes. */
.ibl-funny-lightbox-close,
.ibl-highlights-v2-lightbox-close {
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    line-height: 1 !important;
    font-family: Arial, sans-serif !important;
}

/* Suggestion Box closing page — v2.4.31 */
.ibl-suggestion-page {
    padding: clamp(34px, 4vw, 70px);
    border-radius: clamp(26px, 2.6vw, 42px);
    background:
        radial-gradient(circle at 86% 12%, rgba(137,198,63,.16), transparent 26%),
        linear-gradient(135deg, #ffffff 0%, #f6f8f6 100%);
    color: #062c4a;
    box-sizing: border-box;
    overflow: hidden;
}

.ibl-suggestion-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(300px, .82fr);
    gap: clamp(38px, 5vw, 88px);
    align-items: center;
}

.ibl-suggestion-copy {
    min-width: 0;
}

.ibl-suggestion-kicker {
    display: inline-flex;
    margin-bottom: 12px;
    color: #6ea435;
    font-size: clamp(12px, .9vw, 15px);
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.ibl-suggestion-copy h2 {
    margin: 0 0 14px;
    max-width: 820px;
    color: #062c4a;
    font-size: clamp(30px, 3vw, 50px);
    font-weight: 400;
    line-height: 1.05;
}

.ibl-suggestion-intro {
    max-width: 820px;
    margin: 0 0 clamp(24px, 2.6vw, 38px);
    color: #4a6278;
    font-size: clamp(15px, 1.05vw, 18px);
    line-height: 1.55;
}

.ibl-suggestion-form {
    display: grid;
    gap: 18px;
    max-width: 860px;
}

.ibl-suggestion-field {
    display: grid;
    gap: 7px;
    color: #0a3655;
    font-size: 14px;
    font-weight: 700;
}

.ibl-suggestion-field > span {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.ibl-suggestion-field small {
    color: #718496;
    font-size: 11px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.ibl-suggestion-field input,
.ibl-suggestion-field textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #d8e1e7;
    border-radius: 14px;
    background: #fff;
    color: #102f49;
    font: inherit;
    font-weight: 400;
    line-height: 1.45;
    outline: none;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.ibl-suggestion-field input {
    min-height: 52px;
    padding: 0 16px;
}

.ibl-suggestion-field textarea {
    min-height: 180px;
    padding: 15px 16px;
    resize: vertical;
}

.ibl-suggestion-field input:focus,
.ibl-suggestion-field textarea:focus {
    border-color: #6ea435;
    box-shadow: 0 0 0 3px rgba(110,164,53,.14);
}

.ibl-suggestion-honeypot {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.ibl-suggestion-submit-row {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.ibl-suggestion-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 50px;
    padding: 0 24px;
    border: 0;
    border-radius: 999px;
    background: #6ea435;
    color: #fff;
    font: inherit;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    cursor: pointer;
    transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
    box-shadow: 0 10px 26px rgba(110,164,53,.18);
}

.ibl-suggestion-submit:hover,
.ibl-suggestion-submit:focus-visible {
    background: #6ea435;
    transform: translateY(-1px);
    box-shadow: 0 14px 30px rgba(110,164,53,.28);
}

.ibl-suggestion-submit:disabled {
    opacity: .58;
    cursor: wait;
    transform: none;
}

.ibl-suggestion-form-message {
    min-height: 20px;
    color: #506679;
    font-size: 13px;
    font-weight: 600;
}

.ibl-suggestion-form-message.is-success { color: #3b7625; }
.ibl-suggestion-form-message.is-error { color: #a13e3e; }

.ibl-suggestion-box-wrap {
    position: relative;
    min-height: clamp(410px, 37vw, 570px);
    display: grid;
    align-items: end;
    justify-items: center;
    isolation: isolate;
}

.ibl-suggestion-box {
    position: relative;
    z-index: 3;
    width: min(100%, 430px);
    aspect-ratio: 1 / .92;
    filter: drop-shadow(0 28px 36px rgba(6,44,74,.18));
}

.ibl-suggestion-box-front {
    position: absolute;
    inset: 22% 0 0;
    display: grid;
    place-content: center;
    justify-items: center;
    gap: 9px;
    padding: 30px;
    border-radius: 16px 16px 34px 34px;
    background: linear-gradient(160deg, #0a3a5f 0%, #062c4a 72%);
    color: #fff;
    text-align: center;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}

.ibl-suggestion-box-front::after {
    content: '';
    position: absolute;
    inset: auto 9% -16px;
    height: 24px;
    border-radius: 50%;
    background: rgba(6,44,74,.12);
    filter: blur(10px);
    z-index: -1;
}

.ibl-suggestion-box-front strong {
    font-size: clamp(28px, 2.5vw, 42px);
    line-height: .95;
    letter-spacing: .055em;
}

.ibl-suggestion-box-front small {
    color: #c6d6e2;
    font-size: 12px;
    letter-spacing: .03em;
}

.ibl-suggestion-box-icon {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    margin-bottom: 4px;
    border-radius: 50%;
    background: #6ea435;
    color: #fff;
    font-size: 32px;
    line-height: 1;
}

.ibl-suggestion-box-lid {
    position: absolute;
    z-index: 5;
    top: 11%;
    right: -2%;
    left: -2%;
    height: 25%;
    border-radius: 22px 22px 12px 12px;
    background: linear-gradient(180deg, #0d456e, #073453);
    transform: perspective(700px) rotateX(9deg);
    transform-origin: center bottom;
    box-shadow: 0 12px 22px rgba(0,0,0,.16);
}

.ibl-suggestion-slot {
    position: absolute;
    top: 45%;
    left: 50%;
    width: 58%;
    height: 12px;
    border-radius: 999px;
    background: #021b2d;
    transform: translate(-50%, -50%);
    box-shadow: inset 0 2px 5px rgba(0,0,0,.7), 0 1px rgba(255,255,255,.08);
}

.ibl-suggestion-letter {
    position: absolute;
    z-index: 2;
    top: 2%;
    left: 50%;
    width: min(64%, 280px);
    aspect-ratio: 1.42 / 1;
    padding: 22px;
    border-radius: 9px;
    background: #fff;
    transform: translateX(-50%) rotate(-4deg);
    transform-origin: center;
    box-shadow: 0 15px 30px rgba(6,44,74,.14);
    opacity: .98;
}

.ibl-suggestion-letter::before,
.ibl-suggestion-letter::after {
    content: '';
    position: absolute;
    right: 16px;
    left: 16px;
    height: 1px;
    background: #d7e2e9;
}

.ibl-suggestion-letter::before { top: 43%; }
.ibl-suggestion-letter::after { top: 58%; }

.ibl-suggestion-letter span {
    display: block;
    width: 70%;
    height: 5px;
    margin: 0 0 10px;
    border-radius: 999px;
    background: #d7e2e9;
}

.ibl-suggestion-letter span:nth-child(2) { width: 86%; }
.ibl-suggestion-letter span:nth-child(3) { width: 56%; }

.ibl-suggestion-page.is-letter-dropping .ibl-suggestion-letter {
    animation: iblSuggestionLetterDrop 1.12s cubic-bezier(.42,0,.22,1) forwards;
}

.ibl-suggestion-page.is-letter-dropped .ibl-suggestion-letter {
    opacity: 0;
    transform: translate(-50%, 240px) scale(.72) rotate(3deg);
}

@keyframes iblSuggestionLetterDrop {
    0% { opacity: 1; transform: translateX(-50%) translateY(0) scale(1) rotate(-4deg); }
    45% { opacity: 1; transform: translateX(-50%) translateY(112px) scale(.92) rotate(2deg); }
    78% { opacity: 1; transform: translateX(-50%) translateY(205px) scale(.76) rotate(1deg); }
    100% { opacity: 0; transform: translateX(-50%) translateY(270px) scale(.58) rotate(0); }
}

.ibl-suggestion-privacy {
    margin: clamp(24px, 2.5vw, 38px) 0 0;
    color: #7a8b99;
    font-size: 12px;
    text-align: left;
}

@media (max-width: 900px) {
    .ibl-suggestion-layout {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .ibl-suggestion-box-wrap {
        min-height: 390px;
    }

    .ibl-suggestion-box {
        width: min(78vw, 410px);
    }

    .ibl-suggestion-privacy {
        text-align: center;
    }
}

@media (max-width: 560px) {
    .ibl-suggestion-page {
        padding: 28px 20px;
    }

    .ibl-suggestion-copy h2 {
        font-size: 32px;
    }

    .ibl-suggestion-submit-row {
        align-items: stretch;
    }

    .ibl-suggestion-submit {
        width: 100%;
    }

    .ibl-suggestion-form-message {
        width: 100%;
        text-align: center;
    }

    .ibl-suggestion-box-wrap {
        min-height: 340px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ibl-suggestion-page.is-letter-dropping .ibl-suggestion-letter {
        animation-duration: .01ms !important;
    }
}


/* Featured linked-video albums — v2.4.33
   When a Highlights album is made entirely of videos, give each video a
   proper 16:9 tile and use two columns across the magazine rather than
   squeezing the embeds into image-mosaic crop ratios. */
@media (min-width: 761px) {
    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--all-video {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        grid-auto-rows: auto !important;
        aspect-ratio: auto !important;
        align-items: start !important;
        overflow: visible !important;
    }

    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--all-video .ibl-hlv2-media-item--video {
        grid-column: auto !important;
        grid-row: auto !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 16 / 9 !important;
    }

    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--all-video .ibl-hlv2-video-shell,
    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--all-video .ibl-hlv2-embed-wrap,
    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--all-video .ibl-hlv2-video,
    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--all-video .ibl-hlv2-embed {
        width: 100% !important;
        height: 100% !important;
        max-height: none !important;
    }

    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--all-video .ibl-hlv2-embed-wrap {
        position: absolute !important;
        inset: 0 !important;
        aspect-ratio: auto !important;
    }

    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--all-video .ibl-hlv2-media-item--video:last-child:nth-child(odd) {
        grid-column: 1 / -1 !important;
        justify-self: stretch;
    }
}

@media (max-width: 760px) {
    .ibl-highlights-v2-entry.is-album .ibl-highlights-v2-media-grid--all-video .ibl-hlv2-media-item--video {
        aspect-ratio: 16 / 9 !important;
    }
}

/* =========================================================================
   Featured Video: optional headings + full-width 16:9 presentation — v2.4.35
   ========================================================================= */
.ibl-cyber-page--full-video .ibl-cyber-layout,
.ibl-reader--natural-flow .ibl-cyber-page--full-video .ibl-cyber-layout {
    display: flex !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
}

.ibl-cyber-page--full-video .ibl-cyber-head {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto clamp(18px, 1.8vw, 28px);
}

.ibl-cyber-page--full-video .ibl-cyber-video-wrap,
.ibl-reader--natural-flow .ibl-cyber-page--full-video .ibl-cyber-video-wrap {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
}

.ibl-cyber-page--full-video .ibl-cyber-video,
.ibl-reader--natural-flow .ibl-cyber-page--full-video .ibl-cyber-video {
    flex: none !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 9;
}

.ibl-cyber-page--full-video .ibl-cyber-engagement {
    width: 100%;
}

@media (max-width: 760px) {
    .ibl-cyber-page--full-video .ibl-cyber-layout {
        padding-inline: 16px;
    }

    .ibl-cyber-page--full-video .ibl-cyber-video {
        border-radius: 20px;
    }
}

/* =========================================================================
   Featured Video: slightly reduced centered presentation — v2.4.36
   ========================================================================= */
.ibl-cyber-page--full-video .ibl-cyber-head,
.ibl-reader--natural-flow .ibl-cyber-page--full-video .ibl-cyber-head,
.ibl-cyber-page--full-video .ibl-cyber-video-wrap,
.ibl-reader--natural-flow .ibl-cyber-page--full-video .ibl-cyber-video-wrap,
.ibl-cyber-page--full-video .ibl-cyber-engagement,
.ibl-reader--natural-flow .ibl-cyber-page--full-video .ibl-cyber-engagement {
    width: min(92%, 1480px) !important;
    max-width: 1480px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* =========================================================================
   Toolbox closing resource page — v2.4.36
   ========================================================================= */
.ibl-toolbox-page {
    width: 100%;
    padding: clamp(28px, 3.5vw, 58px);
    border-radius: clamp(28px, 2.5vw, 42px);
    background:
        radial-gradient(circle at 86% 12%, rgba(137, 198, 63, .15), transparent 30%),
        linear-gradient(135deg, #ffffff 0%, #f7faf4 100%);
    color: #082d4b;
    box-sizing: border-box;
}

.ibl-toolbox-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.03fr) minmax(300px, .97fr);
    gap: clamp(28px, 4vw, 64px);
    align-items: center;
    min-height: clamp(420px, 46vw, 650px);
}

.ibl-toolbox-copy {
    max-width: 760px;
}

.ibl-toolbox-kicker {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 5px 13px;
    border-radius: 999px;
    background: rgba(110, 164, 53, .15);
    color: #56852b;
    font-size: clamp(12px, .82vw, 15px);
    line-height: 1;
    font-weight: 800;
    letter-spacing: .08em;
}

.ibl-toolbox-copy h2 {
    margin: clamp(18px, 2vw, 30px) 0 clamp(15px, 1.5vw, 24px);
    color: #082d4b;
    font-size: clamp(34px, 4vw, 64px);
    line-height: 1.02;
    font-weight: 400;
    letter-spacing: -.025em;
}

.ibl-toolbox-description {
    margin: 0;
    max-width: 700px;
    color: #405d72;
    font-size: clamp(17px, 1.25vw, 22px);
    line-height: 1.55;
}

.ibl-toolbox-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    min-height: 52px;
    margin-top: clamp(24px, 2.4vw, 38px);
    padding: 0 25px;
    border-radius: 999px;
    background: #6ea435;
    color: #fff !important;
    text-decoration: none !important;
    font-size: clamp(14px, 1vw, 17px);
    font-weight: 800;
    letter-spacing: .02em;
    box-shadow: 0 12px 28px rgba(67, 105, 30, .18);
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.ibl-toolbox-cta:hover,
.ibl-toolbox-cta:focus-visible {
    background: #6ea435 !important;
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 16px 34px rgba(67, 105, 30, .24);
}

.ibl-toolbox-note {
    margin: 18px 0 0;
    color: #6a7d8d;
    font-size: clamp(13px, .95vw, 16px);
    line-height: 1.5;
}

.ibl-toolbox-visual {
    display: grid;
    place-items: center;
    min-height: clamp(320px, 36vw, 520px);
    overflow: hidden;
    border-radius: clamp(28px, 2.2vw, 40px);
    background: #082d4b;
    box-shadow: 0 24px 55px rgba(3, 35, 64, .18);
}

.ibl-toolbox-visual.has-image {
    background: #eef2ee;
}

.ibl-toolbox-visual > img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
}

.ibl-toolbox-illustration {
    display: grid;
    place-items: center;
    gap: 14px;
    width: 100%;
    padding: 40px;
    color: #fff;
    text-align: center;
    box-sizing: border-box;
}

.ibl-toolbox-illustration-icon {
    display: grid;
    place-items: center;
    width: clamp(96px, 9vw, 142px);
    aspect-ratio: 1;
    border-radius: 30px;
    background: rgba(255,255,255,.08);
    font-size: clamp(52px, 5vw, 78px);
}

.ibl-toolbox-illustration strong {
    font-size: clamp(22px, 1.8vw, 31px);
    line-height: 1.15;
}

.ibl-toolbox-illustration small {
    max-width: 360px;
    color: rgba(255,255,255,.72);
    font-size: clamp(13px, 1vw, 16px);
    line-height: 1.4;
}

@media (max-width: 900px) {
    .ibl-toolbox-page {
        padding: 24px;
    }

    .ibl-toolbox-shell {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .ibl-toolbox-visual {
        min-height: 300px;
    }
}

/* =========================================================================
   Toolbox recurring intro + engagement — v2.4.37
   ========================================================================= */
.ibl-toolbox-series {
    max-width: 920px;
    margin: 0 0 clamp(24px, 2.5vw, 38px);
}

.ibl-toolbox-series .ibl-toolbox-kicker {
    margin-bottom: 12px;
}

.ibl-toolbox-series p {
    margin: 0;
    color: #405d72;
    font-size: clamp(15px, 1.05vw, 18px);
    line-height: 1.55;
}

.ibl-toolbox-reactions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    margin-top: clamp(22px, 2vw, 32px);
}

.ibl-toolbox-reaction-prompt {
    color: #405d72;
    font-size: clamp(13px, .9vw, 15px);
    font-weight: 700;
}

.ibl-toolbox-reaction-buttons {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ibl-toolbox-reaction {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-width: 52px;
    min-height: 38px;
    padding: 6px 11px;
    border: 1px solid #d7e0e5;
    border-radius: 999px;
    background: #fff;
    color: #082d4b;
    font: inherit;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(3, 35, 64, .07);
    transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.ibl-toolbox-reaction:hover,
.ibl-toolbox-reaction:focus-visible {
    border-color: #6ea435;
    background: #f3f8ee;
    transform: translateY(-1px);
    box-shadow: 0 7px 16px rgba(67, 105, 30, .12);
}

.ibl-toolbox-reaction.is-selected {
    border-color: #6ea435;
    background: #6ea435;
    color: #fff;
}

.ibl-toolbox-reaction:disabled {
    cursor: wait;
    opacity: .7;
}

.ibl-toolbox-reaction-emoji {
    font-size: 19px;
    line-height: 1;
}

.ibl-toolbox-reaction strong {
    font-size: 12px;
    line-height: 1;
}

.ibl-toolbox-reaction-message {
    flex-basis: 100%;
    min-height: 1em;
    color: #65798a;
    font-size: 12px;
}

@media (max-width: 700px) {
    .ibl-toolbox-series {
        margin-bottom: 20px;
    }

    .ibl-toolbox-reactions {
        align-items: flex-start;
        flex-direction: column;
    }
}
