html.is-filmology-standalone,
body.is-filmology-standalone,
body.is-filmology-android-app {
    overscroll-behavior-y: none;
    -webkit-tap-highlight-color: transparent;
}
body.is-filmology-standalone,
body.is-filmology-android-app,
body.is-filmology-ios-app {
    min-height: calc(var(--filmology-vh, 1vh) * 100);
}
body.is-filmology-standalone,
body.is-filmology-ios-app {
    padding-top: 0 !important;
    padding-bottom: env(safe-area-inset-bottom);
}
@supports (padding: max(0px)) {
    body.is-filmology-standalone .site,
    body.is-filmology-ios-app .site,
    body.is-filmology-android-app .site {
        padding-left: max(0px, env(safe-area-inset-left));
        padding-right: max(0px, env(safe-area-inset-right));
    }
}
.filmology-app-progress {
    position: fixed;
    inset: 0 0 auto 0;
    height: 3px;
    z-index: 2147483646;
    pointer-events: none;
    opacity: 0;
    transform: translateZ(0);
    padding-top: env(safe-area-inset-top);
}
.filmology-app-progress span {
    display: block;
    height: 3px;
    width: 100%;
    transform-origin: 0 50%;
    transform: scaleX(0);
    background: linear-gradient(90deg, #25D366, #7CFFB0);
    box-shadow: 0 0 18px rgba(37,211,102,.42);
    transition: transform .2s ease, opacity .2s ease;
}
html[dir="rtl"] .filmology-app-progress span { transform-origin: 100% 50%; }
.filmology-app-progress.is-active { opacity: 1; }
.filmology-app-splash {
    position: fixed;
    inset: 0;
    z-index: 2147483645;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(circle at 50% 43%, rgba(85,190,149,.11) 0, rgba(85,190,149,.055) 18%, transparent 38%), linear-gradient(180deg,var(--bg,#1e3229) 0,#030303 100%);
    opacity: 1;
    transition: opacity .42s ease, visibility .42s ease;
    visibility: visible;
    padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}
.filmology-app-splash__logo {
    width: min(168px, 34vw);
    height: min(168px, 34vw);
    object-fit: contain;
    display: block;
    filter: drop-shadow(0 18px 42px rgba(0,0,0,.35));
}
.filmology-app-splash__footer {
    position: absolute;
    left: 24px;
    right: 24px;
    bottom: calc(42px + env(safe-area-inset-bottom));
    text-align: center;
    color: #fff;
    pointer-events: none;
}
.filmology-app-splash__title {
    font-family: inherit;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.4;
    letter-spacing: -.01em;
}
.filmology-app-splash__version {
    margin-top: 7px;
    font-size: 12px;
    line-height: 1.3;
    color: rgba(255,255,255,.68);
    direction: ltr;
}
.filmology-app-splash.is-hidden { opacity: 0; visibility: hidden; }
.filmology-app-offline-note {
    position: fixed;
    inset-inline: 16px;
    bottom: calc(16px + env(safe-area-inset-bottom));
    z-index: 999999;
    display: none;
    padding: 12px 14px;
    border-radius: 16px;
    background: rgba(20,20,20,.92);
    color: #fff;
    font-size: 13px;
    line-height: 1.7;
    box-shadow: 0 18px 50px rgba(0,0,0,.35);
    backdrop-filter: blur(18px);
}
body.is-filmology-offline .filmology-app-offline-note { display: block; }


/* Filmology App Bridge 1.1.2: make PWA hero pages start exactly like single hero pages.
   Home and taxonomy hero sliders are the first child of .site-main; the default theme padding-top
   is useful on normal pages but creates a visible empty band above the hero in iOS/Android app mode. */
body.is-filmology-app-active .site-main:has(> .sfx-hero:first-child),
body.is-filmology-standalone .site-main:has(> .sfx-hero:first-child),
body.is-filmology-ios-app .site-main:has(> .sfx-hero:first-child),
body.is-filmology-android-app .site-main:has(> .sfx-hero:first-child) {
    padding-top: 0 !important;
}

body.is-filmology-app-active .site-main:has(> .sfx-hero:first-child) > .sfx-hero:first-child,
body.is-filmology-standalone .site-main:has(> .sfx-hero:first-child) > .sfx-hero:first-child,
body.is-filmology-ios-app .site-main:has(> .sfx-hero:first-child) > .sfx-hero:first-child,
body.is-filmology-android-app .site-main:has(> .sfx-hero:first-child) > .sfx-hero:first-child {
    margin-top: 0 !important;
}

/* Conservative fallback for browsers/app shells without :has support. */
@supports not selector(.site-main:has(> .sfx-hero:first-child)) {
    body.is-filmology-app-active.has-home-hero .site-main,
    body.is-filmology-standalone.has-home-hero .site-main,
    body.is-filmology-ios-app.has-home-hero .site-main,
    body.is-filmology-android-app.has-home-hero .site-main {
        padding-top: 0 !important;
    }
}

/* Filmology App Bridge 1.2.0 - mobile browser install CTA */
.filmology-install-cta,
.filmology-install-sheet { box-sizing: border-box; }
.filmology-install-cta *,
.filmology-install-sheet * { box-sizing: border-box; }
.filmology-install-cta {
    position: fixed;
    z-index: 2147483600;
    left: 12px;
    right: 12px;
    bottom: calc(88px + env(safe-area-inset-bottom));
    min-height: 66px;
    display: none;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(16,30,24,.82), rgba(28,18,12,.72));
    color: #fff;
    box-shadow: 0 20px 70px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.08);
    -webkit-backdrop-filter: blur(26px) saturate(145%);
    backdrop-filter: blur(26px) saturate(145%);
    transform: translateY(18px) scale(.98);
    opacity: 0;
    transition: transform .32s cubic-bezier(.2,.8,.2,1), opacity .32s ease;
    direction: rtl;
}
@media (max-width: 782px) {
    body:not(.is-filmology-standalone):not(.is-filmology-android-app) .filmology-install-cta { display: flex; }
}
.filmology-install-cta.is-visible { transform: translateY(0) scale(1); opacity: 1; }
.filmology-install-cta__close,
.filmology-install-sheet__close {
    width: 34px;
    height: 34px;
    display: inline-grid;
    place-items: center;
    border: 0;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    color: rgba(255,255,255,.9);
    padding: 0;
    flex: 0 0 auto;
}
.filmology-install-cta__close svg,
.filmology-install-sheet__close svg { width: 18px; height: 18px; display: block; }
.filmology-install-cta__icon {
    width: 44px;
    height: 44px;
    border-radius: 13px;
    object-fit: cover;
    flex: 0 0 auto;
    box-shadow: 0 8px 22px rgba(0,0,0,.28);
}
.filmology-install-cta__copy {
    min-width: 0;
    flex: 1 1 auto;
    display: grid;
    gap: 3px;
    text-align: right;
    line-height: 1.35;
}
.filmology-install-cta__copy strong {
    font-size: 13.5px;
    font-weight: 900;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.filmology-install-cta__copy span {
    font-size: 11.5px;
    color: rgba(255,255,255,.68);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.filmology-install-cta__button,
.filmology-install-sheet__download {
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, #08e09c, #17c878);
    color: #03110c;
    font-size: 13px;
    font-weight: 950;
    padding: 10px 16px;
    text-decoration: none;
    white-space: nowrap;
    flex: 0 0 auto;
    box-shadow: 0 10px 28px rgba(8,224,156,.2);
}
.filmology-install-sheet {
    position: fixed;
    inset: 0;
    z-index: 2147483601;
    display: grid;
    align-items: end;
    pointer-events: none;
    direction: rtl;
}
.filmology-install-sheet__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.48);
    opacity: 0;
    transition: opacity .28s ease;
}
.filmology-install-sheet__panel {
    position: relative;
    width: min(100%, 760px);
    margin-inline: auto;
    max-height: min(82vh, 760px);
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    padding: 18px 16px calc(18px + env(safe-area-inset-bottom));
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 28px 28px 0 0;
    background: linear-gradient(150deg, rgba(18,21,20,.94), rgba(16,14,13,.88));
    color: #fff;
    box-shadow: 0 -28px 88px rgba(0,0,0,.52), inset 0 1px 0 rgba(255,255,255,.08);
    -webkit-backdrop-filter: blur(28px) saturate(140%);
    backdrop-filter: blur(28px) saturate(140%);
    transform: translateY(110%);
    transition: transform .36s cubic-bezier(.2,.8,.2,1);
}
.filmology-install-sheet.is-open { pointer-events: auto; }
.filmology-install-sheet.is-open .filmology-install-sheet__backdrop { opacity: 1; }
.filmology-install-sheet.is-open .filmology-install-sheet__panel { transform: translateY(0); }
.filmology-install-sheet__head {
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}
.filmology-install-sheet__head h3 {
    margin: 0;
    font-size: clamp(17px, 4.5vw, 22px);
    line-height: 1.45;
    font-weight: 950;
    letter-spacing: -.02em;
    text-align: right;
}
.filmology-install-sheet__text {
    margin: 0 0 16px;
    color: rgba(255,255,255,.76);
    font-size: 13.5px;
    line-height: 2.05;
    text-align: right;
}
.filmology-install-sheet__images {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 12px 0 18px;
}
.filmology-install-sheet__images figure {
    margin: 0;
    min-width: 0;
    overflow: hidden;
    border-radius: 18px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.08);
}
.filmology-install-sheet__images img {
    width: 100%;
    height: auto;
    display: block;
}
.filmology-install-sheet__download {
    display: block;
    width: 100%;
    text-align: center;
    padding: 15px 18px;
    border-radius: 18px;
    font-size: 15px;
}
html.filmology-install-sheet-open { overflow: hidden; }
@media (max-width: 390px) {
    .filmology-install-cta { left: 10px; right: 10px; gap: 8px; padding: 9px 10px; }
    .filmology-install-cta__icon { width: 40px; height: 40px; border-radius: 12px; }
    .filmology-install-cta__button { padding-inline: 13px; }
    .filmology-install-sheet__images { gap: 7px; }
}
