/* ==========================================================================
   FABRICATED CRIME — "one-sheet" homepage
   Scoped under body.fc-film. White paper, black ink, one red gun.
   ========================================================================== */

:root {
    --fc-ink: #0a0a0a;
    --fc-paper: #ffffff;
    --fc-mute: #6d6d6d;
    --fc-line: rgba(10, 10, 10, 0.16);
    --fc-line-light: rgba(255, 255, 255, 0.22);
    --fc-display: 'Bebas Neue', 'Arial Narrow', Impact, sans-serif;
    --fc-text: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --fc-pad: clamp(1.25rem, 4vw, 3.5rem);
    --fc-ease: cubic-bezier(0.22, 0.7, 0.18, 1);
}

html { scroll-behavior: auto; -webkit-text-size-adjust: 100%; }
html.menu-open { overflow: hidden; }

body.fc-film {
    margin: 0;
    background: var(--fc-ink);
    color: var(--fc-ink);
    font-family: var(--fc-text);
    font-size: 16px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.fc-film *,
.fc-film *::before,
.fc-film *::after { box-sizing: border-box; }

.fc-film img { display: block; max-width: 100%; height: auto; }
.fc-film :where(a) { color: inherit; text-decoration: none; }
.fc-film h1, .fc-film h2, .fc-film h3, .fc-film p, .fc-film ul, .fc-film figure { margin: 0; padding: 0; }
.fc-film ul { list-style: none; }

.fc-film :focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
}

.fc-film :where(button) { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }

.fc-vh {
    position: absolute !important;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.fc-skip {
    position: fixed;
    top: 0.75rem; left: 0.75rem;
    z-index: 3000;
    padding: 0.6rem 1rem;
    background: #fff; color: #000;
    font-family: var(--fc-display);
    font-size: 1.1rem; letter-spacing: 0.08em;
    transform: translateY(-200%);
}
.fc-skip:focus { transform: none; }

/* ---------- Shared display type ---------- */
.fc-eyebrow {
    font-family: var(--fc-text);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.fc-h2 {
    font-family: var(--fc-display);
    font-weight: 400;
    font-size: clamp(4rem, 15vw, 15rem);
    line-height: 0.82;
    letter-spacing: 0.005em;
    text-transform: uppercase;
}

/* ---------- Header ---------- */
.fc-header {
    position: fixed;
    top: 0; left: 0;
    z-index: 1200;
    padding: 1.1rem var(--fc-pad);
}
.fc-logo { display: block; line-height: 0; }
.fc-logo img { height: clamp(38px, 5vw, 52px); width: auto; }

/* Menu button: difference blend keeps it legible over video, paper and posters. */
.fc-menu-btn {
    position: fixed;
    top: 1.1rem;
    right: var(--fc-pad);
    z-index: 1200;
    mix-blend-mode: difference;
    color: #fff;
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.5rem 0;
    font-family: var(--fc-display);
    font-size: 1.5rem;
    letter-spacing: 0.14em;
    line-height: 1;
}
.fc-menu-btn .fc-menu-icon {
    position: relative;
    width: 28px; height: 10px;
}
.fc-menu-btn .fc-menu-icon::before,
.fc-menu-btn .fc-menu-icon::after {
    content: '';
    position: absolute;
    left: 0; right: 0;
    height: 2px;
    background: currentColor;
    transition: transform 0.4s var(--fc-ease), top 0.4s var(--fc-ease);
}
.fc-menu-btn .fc-menu-icon::before { top: 0; }
.fc-menu-btn .fc-menu-icon::after { top: 8px; }
html.menu-open .fc-menu-btn .fc-menu-icon::before { top: 4px; transform: rotate(45deg); }
html.menu-open .fc-menu-btn .fc-menu-icon::after { top: 4px; transform: rotate(-45deg); }

/* ---------- Menu overlay ---------- */
.fc-menu {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 6.5rem var(--fc-pad) 2rem;
    background: var(--fc-ink);
    color: #fff;
    clip-path: inset(0 0 100% 0);
    visibility: hidden;
    transition: clip-path 0.7s var(--fc-ease), visibility 0s linear 0.7s;
    overflow-y: auto;
}
html.menu-open .fc-menu {
    clip-path: inset(0 0 0 0);
    visibility: visible;
    transition: clip-path 0.7s var(--fc-ease), visibility 0s;
}
.fc-menu-list { display: flex; flex-direction: column; }
.fc-menu-list a {
    display: flex;
    align-items: baseline;
    gap: 1.25rem;
    padding: 0.1em 0;
    font-family: var(--fc-display);
    font-size: clamp(3.6rem, 13vh, 9.5rem);
    line-height: 0.95;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.3s ease, transform 0.7s var(--fc-ease);
}
html.menu-open .fc-menu-list a { opacity: 1; transform: none; }
html.menu-open .fc-menu-list li:nth-child(1) a { transition-delay: 0.12s, 0.12s; }
html.menu-open .fc-menu-list li:nth-child(2) a { transition-delay: 0.18s, 0.18s; }
html.menu-open .fc-menu-list li:nth-child(3) a { transition-delay: 0.24s, 0.24s; }
html.menu-open .fc-menu-list li:nth-child(4) a { transition-delay: 0.30s, 0.30s; }
.fc-menu-list a small {
    font-family: var(--fc-text);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    color: rgba(255, 255, 255, 0.5);
}
.fc-menu-list:hover a { opacity: 0.35; transition-delay: 0s; }
.fc-menu-list:hover a:hover { opacity: 1; }

.fc-menu-foot {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 2.5rem;
    justify-content: space-between;
    align-items: flex-end;
    padding-top: 2rem;
    border-top: 1px solid var(--fc-line-light);
    margin-top: 2rem;
}
.fc-menu-links { display: flex; flex-wrap: wrap; gap: 0.5rem 1.75rem; }
.fc-menu-links a,
.fc-menu-social a {
    font-family: var(--fc-display);
    font-size: 1.35rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    opacity: 0.8;
    transition: opacity 0.2s ease;
}
.fc-menu-links a:hover,
.fc-menu-social a:hover { opacity: 1; text-decoration: underline; text-underline-offset: 5px; }
.fc-menu-social { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }

/* ---------- Layering: hero is pinned, everything else slides over it ---------- */
.fc-main { position: relative; }
.fc-section { position: relative; z-index: 1; }
.fc-light { background: var(--fc-paper); color: var(--fc-ink); }
.fc-dark { background: var(--fc-ink); color: #fff; }

/* ---------- Hero ---------- */
.fc-hero {
    position: sticky;
    top: 0;
    z-index: 0;
    height: 100vh;
    height: 100svh;
    min-height: 480px;
    overflow: hidden;
    background: #111 center / cover no-repeat url('/img/hero/stranger-poster.jpg');
    color: #fff;
    --p: 0;
}
@media (max-aspect-ratio: 1/1) {
    .fc-hero { background-image: url('/img/hero/stranger-poster-vert.jpg'); }
}
.fc-hero-video {
    position: absolute;
    inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    opacity: 0;
    transform: scale(calc(1 + var(--p) * 0.1));
    transition: opacity 1.2s ease;
    will-change: transform;
}
.fc-hero-video.is-playing { opacity: 1; }
.fc-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(to top, rgba(0, 0, 0, 0.72), rgba(0, 0, 0, 0.28) 30%, rgba(0, 0, 0, 0) 55%),
        rgba(0, 0, 0, calc(var(--p) * 0.75));
    pointer-events: none;
}
.fc-hero-ui {
    position: absolute;
    inset: auto 0 0 0;
    z-index: 2;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    padding: var(--fc-pad);
    padding-bottom: clamp(1.5rem, 4vh, 3rem);
    opacity: calc(1 - var(--p) * 2.2);
}
.fc-hero-caption { animation: fc-rise 1.2s var(--fc-ease) 0.4s both; }
.fc-hero-caption .fc-eyebrow { display: block; margin-bottom: 0.6rem; }
.fc-hero-feature {
    display: inline-block;
    white-space: nowrap;
    font-family: var(--fc-display);
    font-size: clamp(3rem, 9vw, 8rem);
    line-height: 0.86;
    letter-spacing: 0.01em;
    text-transform: uppercase;
}
.fc-hero-feature span {
    display: inline-block;
    margin-left: 0.15em;
    font-size: 0.7em;
    transition: transform 0.5s var(--fc-ease);
}
.fc-hero-feature:hover span { transform: translateX(0.18em); }

.fc-hero-tools {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    animation: fc-rise 1.2s var(--fc-ease) 0.7s both;
}
.fc-hero-toggle,
.fc-hero-scroll {
    font-family: var(--fc-text);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #fff;
}
.fc-hero-toggle { padding: 0.5rem 0; border-bottom: 1px solid rgba(255, 255, 255, 0.5); }
.fc-hero-scroll { display: inline-flex; align-items: center; gap: 0.75rem; }
.fc-hero-scroll::after {
    content: '';
    width: 1px; height: 44px;
    background: linear-gradient(to bottom, #fff, rgba(255, 255, 255, 0));
    transform-origin: top;
    animation: fc-scroll-cue 2.2s ease-in-out infinite;
}
@keyframes fc-scroll-cue {
    0% { transform: scaleY(0); }
    50% { transform: scaleY(1); }
    100% { transform: scaleY(1); opacity: 0; }
}
@keyframes fc-rise {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: none; }
}

/* ---------- Statement ---------- */
.fc-statement { padding: clamp(6rem, 16vw, 14rem) var(--fc-pad) clamp(4rem, 9vw, 8rem); }
.fc-statement-text {
    max-width: 22ch;
    font-family: var(--fc-display);
    font-size: clamp(3.4rem, 10.5vw, 12rem);
    line-height: 0.88;
    letter-spacing: 0.005em;
    text-transform: uppercase;
}
.fc-statement-meta {
    display: grid;
    grid-template-columns: repeat(3, auto);
    justify-content: space-between;
    gap: 1rem;
    margin-top: clamp(3rem, 8vw, 7rem);
    padding-top: 1.25rem;
    border-top: 1px solid var(--fc-ink);
}

/* Word-by-word reveal */
.js [data-split] .w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: 0.06em; margin-bottom: -0.06em; }
.js [data-split] .w > span {
    display: inline-block;
    transform: translateY(105%);
    transition: transform 1s var(--fc-ease);
    transition-delay: calc(var(--i, 0) * 55ms);
}
.js [data-split].in .w > span { transform: none; }

.js .fc-reveal { opacity: 0; transform: translateY(32px); transition: opacity 1s ease, transform 1s var(--fc-ease); }
.js .fc-reveal.in { opacity: 1; transform: none; }

/* ---------- Lineup ---------- */
.fc-lineup { padding: clamp(3rem, 6vw, 6rem) var(--fc-pad) clamp(6rem, 12vw, 12rem); overflow: hidden; }
.fc-lineup-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: clamp(3rem, 8vw, 7rem);
}
.fc-lineup-head .fc-h2 sup {
    font-family: var(--fc-text);
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.15em;
    vertical-align: top;
    position: relative; top: 0.6em;
    margin-left: 0.5em;
}
.fc-lineup-head p { max-width: 20rem; font-size: 0.9rem; color: var(--fc-mute); }

.fc-wall {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: clamp(1rem, 2.4vw, 2.5rem);
    row-gap: clamp(3rem, 7vw, 7rem);
    align-items: start;
}
.fc-film-item { position: relative; grid-column: var(--col, 1 / -1); margin-top: var(--mt, 0); }
.fc-film-item:nth-child(1) { --col: 1 / 7;  --mt: 0; }
.fc-film-item:nth-child(2) { --col: 8 / 12; --mt: clamp(4rem, 14vw, 14rem); }
.fc-film-item:nth-child(3) { --col: 2 / 6;  --mt: 0; }
.fc-film-item:nth-child(4) { --col: 7 / 13; --mt: clamp(3rem, 9vw, 9rem); }
.fc-film-item:nth-child(5) { --col: 4 / 9;  --mt: 0; }

.fc-film-par { will-change: transform; }

.fc-film-poster {
    position: relative;
    overflow: hidden;
    background: #e9e9e9;
}
.fc-film-poster img {
    width: 100%;
    transition: transform 1.2s var(--fc-ease);
}
.js .fc-film-poster { clip-path: inset(100% 0 0 0); transition: clip-path 1.3s var(--fc-ease); }
.js .fc-film-item.in .fc-film-poster { clip-path: inset(0 0 0 0); }
.fc-film-item:hover .fc-film-poster img { transform: scale(1.045); }

.fc-film-meta {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 1rem;
    align-items: baseline;
    margin-top: 1rem;
}
.fc-film-no {
    font-family: var(--fc-text);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    color: var(--fc-mute);
}
.fc-film-title {
    font-family: var(--fc-display);
    font-weight: 400;
    font-size: clamp(2.4rem, 4.6vw, 4.6rem);
    line-height: 0.9;
    letter-spacing: 0.01em;
    text-transform: uppercase;
}
.fc-film-link::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.fc-film-link span {
    background: linear-gradient(currentColor, currentColor) 0 100% / 0 2px no-repeat;
    transition: background-size 0.6s var(--fc-ease);
    padding-bottom: 0.04em;
}
.fc-film-item:hover .fc-film-link span { background-size: 100% 2px; }
.fc-film-note {
    grid-column: 2;
    max-width: 28rem;
    margin-top: 0.6rem;
    font-size: 0.88rem;
    color: var(--fc-mute);
}
.fc-film-extra {
    grid-column: 2;
    position: relative;
    z-index: 2;
    justify-self: start;
    margin-top: 0.8rem;
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    border-bottom: 1px solid currentColor;
    padding-bottom: 2px;
}
.fc-film-extra:hover { opacity: 0.6; }

/* ---------- Syndicate ---------- */
.fc-syndicate { padding: clamp(5rem, 10vw, 10rem) var(--fc-pad) clamp(5rem, 10vw, 9rem); }
.fc-syndicate-head {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: 2rem;
    align-items: end;
    margin-bottom: clamp(3rem, 7vw, 6rem);
}
.fc-syndicate-head p { max-width: 30rem; font-size: 0.95rem; color: rgba(255, 255, 255, 0.7); }
.fc-roster { border-top: 1px solid var(--fc-line-light); }
.fc-roster li { border-bottom: 1px solid var(--fc-line-light); }
.fc-roster a {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 2.5rem;
    align-items: center;
    gap: 1.5rem;
    padding: clamp(0.7rem, 1.6vw, 1.3rem) 0;
    transition: background 0.35s ease, color 0.35s ease, padding 0.5s var(--fc-ease);
}
.fc-roster-name {
    font-family: var(--fc-display);
    font-size: clamp(2.8rem, 8.5vw, 8rem);
    line-height: 0.95;
    letter-spacing: 0.005em;
    text-transform: uppercase;
}
.fc-roster-role {
    font-family: var(--fc-text);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    opacity: 0.7;
}
.fc-roster-arrow {
    font-family: var(--fc-display);
    font-size: 2rem;
    justify-self: end;
    transform: translateX(-8px) rotate(0deg);
    opacity: 0;
    transition: transform 0.5s var(--fc-ease), opacity 0.3s ease;
}
.fc-roster a:hover,
.fc-roster a:focus-visible { background: #fff; color: var(--fc-ink); padding-left: clamp(0.5rem, 2vw, 1.75rem); outline: none; }
.fc-roster a:hover .fc-roster-arrow,
.fc-roster a:focus-visible .fc-roster-arrow { opacity: 1; transform: none; }
.fc-roster a:hover .fc-roster-role { opacity: 1; }

/* ---------- Store ---------- */
.fc-store { padding: clamp(5rem, 10vw, 9rem) var(--fc-pad); }
.fc-store-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: clamp(2rem, 5vw, 4rem);
}
.fc-store-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(0.5rem, 2vw, 2rem);
}
.fc-store-grid a { display: block; background: #f3f1ec; overflow: hidden; }
.fc-store-grid img { width: 100%; transition: transform 1s var(--fc-ease), filter 0.6s ease; }
.fc-store-grid a:hover img { transform: scale(1.06); }
/* Keep the page monochrome until you reach for a product (touch devices show true color). */
@media (hover: hover) {
    .fc-store-grid img { filter: grayscale(1) contrast(1.05); }
    .fc-store-grid a:hover img,
    .fc-store-grid a:focus-visible img { filter: none; }
}

.fc-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1.05rem 2.2rem;
    background: var(--fc-ink);
    color: #fff;
    border: 1px solid var(--fc-ink);
    font-family: var(--fc-display);
    font-size: 1.5rem;
    letter-spacing: 0.14em;
    line-height: 1;
    text-transform: uppercase;
    transition: background 0.3s ease, color 0.3s ease;
    cursor: pointer;
}
.fc-btn:hover { background: #fff; color: var(--fc-ink); }
.fc-btn[disabled] { opacity: 0.5; cursor: wait; }

/* ---------- Contact ---------- */
.fc-contact {
    padding: clamp(5rem, 10vw, 9rem) var(--fc-pad);
    border-top: 1px solid var(--fc-ink);
}
.fc-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(2rem, 6vw, 7rem);
    align-items: start;
}
.fc-contact-copy p { margin-top: 2rem; max-width: 30rem; color: var(--fc-mute); font-size: 0.95rem; }
.fc-contact-copy .fc-legal { margin-top: 1.5rem; font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--fc-ink); }

.fc-form { display: grid; gap: 1.75rem; }
.fc-field label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}
.fc-field input,
.fc-field textarea {
    width: 100%;
    padding: 0.6rem 0;
    background: transparent;
    color: var(--fc-ink);
    border: 0;
    border-bottom: 1px solid var(--fc-ink);
    border-radius: 0;
    font-family: var(--fc-text);
    font-size: 1.1rem;
    resize: vertical;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.fc-field input::placeholder,
.fc-field textarea::placeholder { color: #a5a5a5; }
.fc-field input:focus,
.fc-field textarea:focus { outline: none; box-shadow: 0 1px 0 0 var(--fc-ink); }
.fc-form .fc-btn { justify-self: start; }
.fc-form-message { margin-top: 1rem; font-size: 0.95rem; padding: 0.9rem 1rem; border: 1px solid var(--fc-ink); }
.fc-form-message.success { background: var(--fc-ink); color: #fff; }

/* ---------- Footer ---------- */
.fc-footer { padding: clamp(4rem, 8vw, 7rem) var(--fc-pad) 2rem; overflow: hidden; }
.fc-footer-top {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}
.fc-footer-gun { display: block; line-height: 0; }
.fc-footer-gun img { height: clamp(80px, 11vw, 150px); width: auto; }
.fc-footer-top .fc-eyebrow { text-align: right; opacity: 0.6; }
.fc-footer-word {
    font-family: var(--fc-display);
    font-weight: 400;
    font-size: 14.4vw;
    line-height: 0.8;
    letter-spacing: 0;
    text-transform: uppercase;
    margin: 0;
    white-space: nowrap;
}
.fc-footer-cols {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2rem;
    margin-top: clamp(3rem, 6vw, 5rem);
    padding-top: 1.75rem;
    border-top: 1px solid var(--fc-line-light);
}
.fc-footer-cols h2 { margin-bottom: 0.9rem; color: rgba(255, 255, 255, 0.5); }
.fc-footer-cols li { margin-bottom: 0.35rem; }
.fc-footer-cols a,
.fc-footer-cols button {
    font-family: var(--fc-display);
    font-size: 1.4rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-align: left;
    opacity: 0.85;
    transition: opacity 0.2s ease;
}
.fc-footer-cols a:hover,
.fc-footer-cols button:hover { opacity: 1; text-decoration: underline; text-underline-offset: 5px; }
.fc-footer-copy {
    margin-top: 3rem;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    color: rgba(255, 255, 255, 0.5);
}

/* ---------- Cookie banner ---------- */
.fc-film .cookie-consent {
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 2000;
    padding: 0.75rem var(--fc-pad);
    background: #fff;
    color: var(--fc-ink);
    border-top: 1px solid var(--fc-ink);
    font-size: 0.82rem;
    line-height: 1.45;
}
.fc-film .cookie-consent-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 2rem;
    flex-wrap: wrap;
}
.fc-film .cookie-consent-content p { margin: 0; }
.fc-film .cookie-consent-content a { text-decoration: underline; text-underline-offset: 3px; }
.fc-film .cookie-consent-buttons { display: flex; gap: 0.6rem; }
.fc-film .cookie-btn {
    min-width: 7rem;
    padding: 0.5rem 0.9rem;
    border: 1px solid var(--fc-ink);
    background: #fff;
    color: var(--fc-ink);
    font-family: var(--fc-display);
    font-size: 1.1rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease;
}
.fc-film .cookie-btn-accept { background: var(--fc-ink); color: #fff; }
.fc-film .cookie-btn:hover { background: var(--fc-ink); color: #fff; }
.fc-film .cookie-btn-accept:hover { background: #fff; color: var(--fc-ink); }

/* ---------- Modals (poster pack + campaign), re-skinned ---------- */
.fc-film .fc-modal-backdrop { background: rgba(0, 0, 0, 0.72); }
.fc-film .fc-modal-dialog {
    background: #fff;
    color: var(--fc-ink);
    border: 1px solid var(--fc-ink);
    border-radius: 0;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.4);
    text-align: left;
}
.fc-film .fc-modal-close { color: var(--fc-ink); border-radius: 0; }
.fc-film .fc-modal-close:hover { color: #fff; background: var(--fc-ink); }
.fc-film .fc-modal-eyebrow { color: var(--fc-mute); }
.fc-film .fc-modal-title { color: var(--fc-ink); font-weight: 400; }
.fc-film .fc-modal-body { color: #333; }
.fc-film .fc-modal-body strong { color: var(--fc-ink); }
.fc-film .fc-modal-legal { color: var(--fc-mute); }
.fc-film .fc-modal-cta,
.fc-film .fc-modal-cta:visited {
    background: var(--fc-ink) !important;
    color: #fff !important;
    border: 1px solid var(--fc-ink);
    border-radius: 0;
}
.fc-film .fc-modal-cta:hover { background: #fff !important; color: var(--fc-ink) !important; }
.fc-film .fc-modal-dismiss {
    border: 1px solid var(--fc-line);
    color: var(--fc-ink);
    border-radius: 0;
}
.fc-film .fc-modal-dismiss:hover { border-color: var(--fc-ink); color: var(--fc-ink); }
.fc-film .fc-poster-form label { color: var(--fc-mute); }
.fc-film .fc-poster-form input[type="email"],
.fc-film .fc-poster-form input[type="text"] {
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--fc-ink);
    border-radius: 0;
    color: var(--fc-ink);
    padding-left: 0;
}
.fc-film .fc-poster-form input:focus { border-color: var(--fc-ink); box-shadow: 0 1px 0 0 var(--fc-ink); }
.fc-film .fc-poster-form .fc-poster-consent { color: var(--fc-mute); }
.fc-film .fc-poster-form .fc-poster-consent a,
.fc-film .fc-poster-unlocked a { color: var(--fc-ink); text-decoration: underline; }
.fc-film .fc-poster-form .fc-poster-submit {
    background: var(--fc-ink);
    color: #fff;
    border: 1px solid var(--fc-ink);
    border-radius: 0;
}
.fc-film .fc-poster-form .fc-poster-submit:hover { background: #fff; color: var(--fc-ink); }
.fc-film .fc-poster-form .fc-poster-config-notice { color: var(--fc-ink); background: #f3f3f3; border-color: var(--fc-line); border-radius: 0; }
.fc-film .fc-poster-form-status.is-error { color: var(--fc-ink); text-decoration: underline; }
.fc-film .fc-poster-form-status.is-success { color: var(--fc-mute); }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
    .fc-wall { grid-template-columns: repeat(6, minmax(0, 1fr)); row-gap: 3.5rem; }
    .fc-film-item:nth-child(1) { --col: 1 / 6; --mt: 0; }
    .fc-film-item:nth-child(2) { --col: 2 / 7; --mt: 0; }
    .fc-film-item:nth-child(3) { --col: 1 / 5; --mt: 0; }
    .fc-film-item:nth-child(4) { --col: 1 / 7; --mt: 0; }
    .fc-film-item:nth-child(5) { --col: 2 / 7; --mt: 0; }
    .fc-syndicate-head,
    .fc-contact-grid { grid-template-columns: 1fr; }
    .fc-footer-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .fc-hero-ui { flex-direction: column; align-items: flex-start; }
    .fc-hero-tools { width: 100%; justify-content: space-between; }
    .fc-hero-scroll::after { height: 28px; }
    .fc-statement-meta { grid-template-columns: 1fr; }
    .fc-lineup-head { flex-direction: column; align-items: flex-start; }
    .fc-roster a { grid-template-columns: minmax(0, 1fr); gap: 0.1rem; }
    .fc-roster-arrow { display: none; }
    .fc-store-head { flex-direction: column; align-items: flex-start; }
    .fc-store-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .fc-wall { row-gap: 3rem; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
    .fc-hero-video { transform: none; }
    .fc-hero-caption, .fc-hero-tools { animation: none; }
    .fc-hero-scroll::after { animation: none; }
    .js [data-split] .w > span,
    .js .fc-reveal,
    .js .fc-film-poster { transition: none; transform: none; opacity: 1; clip-path: none; }
    .fc-menu, .fc-menu-list a { transition-duration: 0.01s; transition-delay: 0s !important; }
    .fc-film-poster img, .fc-store-grid img { transition: none; }
}

/* ---------- Investors page ---------- */
.fc-inv-hero {
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 1.5rem;
    padding: 8rem var(--fc-pad) clamp(2.5rem, 6vw, 5rem);
}
.fc-inv-hero .fc-h2 { font-size: clamp(5rem, 19vw, 19rem); }
.fc-inv-hero-foot {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    margin-top: clamp(1.5rem, 4vw, 3rem);
    padding-top: 1.75rem;
    border-top: 1px solid var(--fc-line-light);
}
.fc-inv-hero-foot p { max-width: 36rem; font-size: 0.95rem; color: rgba(255, 255, 255, 0.72); }
.fc-dark .fc-btn { background: #fff; color: var(--fc-ink); border-color: #fff; white-space: nowrap; }
.fc-dark .fc-btn:hover { background: transparent; color: #fff; }

.fc-inv-model,
.fc-inv-team { padding: clamp(5rem, 10vw, 9rem) var(--fc-pad); }
.fc-inv-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(2rem, 5vw, 4.5rem) clamp(2rem, 6vw, 7rem);
    margin-top: clamp(3rem, 7vw, 6rem);
}
.fc-inv-grid article { padding-top: 1.25rem; border-top: 1px solid var(--fc-ink); }
.fc-inv-no {
    display: block;
    margin-bottom: 0.9rem;
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.22em;
    color: var(--fc-mute);
}
.fc-inv-grid h3 {
    font-family: var(--fc-display);
    font-weight: 400;
    font-size: clamp(2.2rem, 4.2vw, 4rem);
    line-height: 0.95;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    margin-bottom: 1rem;
}
.fc-inv-grid p { max-width: 28rem; font-size: 0.95rem; color: var(--fc-mute); }
.fc-inv-grid p a { color: var(--fc-ink); text-decoration: underline; text-underline-offset: 3px; }
.fc-inv-grid--team .fc-eyebrow { display: block; margin-bottom: 0.9rem; color: var(--fc-mute); }
.fc-inv-grid--team h3 { margin-bottom: 0.5rem; }

.fc-inv-slate .fc-roster-role { text-align: right; }
.fc-inv-disclaimer { margin-top: 2.5rem; max-width: 34rem; font-size: 0.72rem; line-height: 1.6; color: var(--fc-mute); }

@media (max-width: 800px) {
    .fc-inv-hero-foot { flex-direction: column; align-items: flex-start; }
    .fc-inv-grid { grid-template-columns: minmax(0, 1fr); }
}
