/* Self-hosted fonts and section accents for the cinematic portfolio homepage. */
@font-face {
  font-family: 'Sephorizon Open Sans';
  src: url("../fonts/open-sans/latin.52a2be616016.woff2") format('woff2');
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0300-036F, U+1E9E, U+2000-206F, U+20A0-20CF, U+2190-22FF, U+FFFD;
}
/* Actual remaining glyph ranges avoid downloads for unsupported menu symbols. */
@font-face {
  font-family: 'Sephorizon Open Sans';
  src: url("../fonts/open-sans/variable.e51eefd099fd.woff2") format('woff2');
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  unicode-range: U+0100-017F, U+0192, U+01A0-01A1, U+01AF-01B0, U+01EA-01ED, U+01F0,
    U+01FA-01FF, U+0218-021B, U+0237, U+0259, U+02BC, U+02C6-02C7, U+02C9,
    U+02D8-02DD, U+02F3, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03CE,
    U+03D1-03D2, U+03D6, U+0400-0486, U+0488-0513, U+05B0-05BE, U+05C1-05C2,
    U+05C7, U+05D0-05EA, U+1E00-1E01, U+1E3E-1E3F, U+1E80-1E85, U+1EA0-1EF9,
    U+1F4D, U+1FDE, U+2070, U+2074-207A, U+207C-208A, U+208C-208E, U+2095-209C,
    U+2105, U+2113, U+2116, U+2120, U+2122, U+2126, U+212E, U+215B-215E, U+25CA,
    U+A7B3-A7B5, U+AB53, U+FB00-FB04, U+FB2A-FB36, U+FB38-FB3C, U+FB3E,
    U+FB40-FB41, U+FB43-FB44, U+FB46-FB4B, U+FEFF, U+FFFC;
}
@font-face {
  font-family: 'Sephorizon Vazirmatn';
  src: url("../fonts/vazirmatn/variable.f6d31671339d.woff2") format('woff2');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+200C-200D, U+FB50-FDFF, U+FE70-FEFF;
}
html:has(.portfolio-films-page--cinematic) { color-scheme: dark; background: #24362f; }
body:has(.portfolio-films-page--cinematic) {
  --film-page-bg: #24362f;
  --film-card-bg: #2e4539;
  --film-card-raised: #365440;
  --film-card-gradient: linear-gradient(135deg, #344d3f, #2a4035);
  --film-page-ink: #f5f7ef;
  --film-page-muted: #d0dcd2;
  --film-page-line: #526d5d;
  --film-page-accent: #d0e5ad;
  --film-page-soft: #3a5542;
  --film-content-max: 1440px;
  --film-card-gap: 24px;
  --film-card-padding: clamp(26px, 2.3vw, 34px);
  --film-card-radius: 20px;
  --paper: var(--film-page-bg);
  --white: var(--film-card-bg);
  --ink: var(--film-page-ink);
  --muted: var(--film-page-muted);
  --line: var(--film-page-line);
  --soft: var(--film-page-soft);
  --green: var(--film-page-accent);
  --film-display-font: 'Sephorizon Open Sans', 'Helvetica Neue', Arial, sans-serif;
  --film-body-font: 'Sephorizon Open Sans', 'Helvetica Neue', Arial, sans-serif;
  font-family: var(--film-body-font);
}
body:has(.portfolio-films-page--cinematic) ::selection { color: #101615; background: #bddcba; }
body:has(.portfolio-films-page--cinematic) :focus-visible { outline-color: #bddcba; }
body:has(.portfolio-films-page--cinematic) .skip-link { color: #101615; background: #bddcba; }
body:has(.portfolio-films-page--cinematic) .portfolio-header .language-switcher option { color: #f1f4ee; background: #19221e; }
body:has(.portfolio-films-page--cinematic) .personal-owner-empty p { color: var(--film-page-muted); }
.portfolio-films-page--cinematic .tag { color: #d8e8cc; background: #293b29; border-color: #52684b; }
.film-work-heading > a:hover, .film-work-links .portfolio-text-link:hover { color: var(--film-page-ink); text-decoration-color: var(--film-page-accent); }
/* Let the profile heading breathe at wide sizes while wrapping naturally on phones. */
.film-carousel-work { background: radial-gradient(ellipse at 8% 8%, #edd59114, transparent 52%), radial-gradient(ellipse at 90% 85%, #b6d99918, transparent 55%), var(--film-page-bg); }
/* Keep project actions compact; shared sizing for all card sections is below. */
@media (min-width: 761px) {
  .film-carousel-work .film-work-card {
    display: flex;
    flex-direction: column;
    border-block-start: 2px solid #d0e5ad75;
    background: radial-gradient(ellipse at top right, #d0e5ad0b, transparent 65%), var(--film-card-gradient);
  }
  .film-carousel-work .film-work-symbol {
    margin-block-end: 20px;
    transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
  }
  .film-carousel-work .film-work-meta { font-size: 13px; }
  .portfolio-site .film-carousel-work .film-work-card h3 { margin-block-end: 12px; }
  .film-carousel-work .film-work-summary { margin-block: 0; }
  .film-carousel-work .film-work-card > .tag { align-self: flex-start; margin-block-end: 8px; }
  .film-carousel-work .film-work-detail { margin-block: 12px 0; }
  .film-carousel-work .film-work-detail > summary { display: list-item; min-height: 44px; padding-block: 9px; }
  .film-carousel-work .film-work-links { margin-block-start: auto; padding-block-start: 16px; }
  .film-carousel-work .film-work-links .portfolio-text-link { min-height: 44px; font-size: 14px; }
  .film-carousel-work .film-work-card:focus-within { border-color: var(--film-page-accent); box-shadow: 0 12px 32px #102a2140; }
}
@media (min-width: 761px) and (hover: hover) and (pointer: fine) {
  .film-carousel-work .film-work-card:hover { transform: translateY(-4px); border-color: var(--film-page-accent); box-shadow: 0 16px 36px #102a2145, 0 0 20px #d0e5ad0d; }
  .film-carousel-work .film-work-card:hover h3 { color: var(--film-page-accent); }
  .film-carousel-work .film-work-card:hover .film-work-symbol { transform: translate(2px, -2px); background: var(--film-card-raised); box-shadow: 0 0 20px #d0e5ad20; }
}
@media (prefers-reduced-motion: reduce) {
  .film-carousel-work :is(.film-work-card, .film-work-symbol, h3),
  .portfolio-site .film-carousel-work .film-work-card h3 { transition: none; }
  .film-carousel-work .film-work-card:hover, .film-carousel-work .film-work-card:hover .film-work-symbol { transform: none; }
}
.film-profile-background { background: radial-gradient(ellipse at 12% 25%, #f4d09c17, transparent 55%), var(--film-page-bg); }
.film-profile-background .film-work-heading > div { flex: 1; max-width: none; }
.film-profile-background .film-work-heading .portfolio-eyebrow { font-size: clamp(16px, 1.1vw, 20px); font-weight: 700; line-height: 1.5; }
.portfolio-site .film-profile-background .film-work-heading h2 { width: fit-content; max-width: 100%; font-size: clamp(1.7rem, 2.75vw, 2.75rem); line-height: 1.25; letter-spacing: -.025em; text-wrap: pretty; transition: color .25s ease, text-shadow .25s ease; }
.portfolio-site .film-feature-copy h2 { max-width: 24ch; margin-block: 0 20px; font-size: clamp(1.7rem, 2.75vw, 2.75rem); line-height: 1.3; text-wrap: pretty; }
.film-feature-copy > p { max-width: 52ch; margin-block: 0 24px; color: var(--film-page-muted); font-size: clamp(16px, .9vw, 20px); line-height: 1.8; overflow-wrap: anywhere; }
.film-background-card {
  --background-accent: #d0e5ad;
  --background-glow: #d0e5ad24;
  --background-soft: #3a5542;
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  gap: 28px 20px;
  border-radius: 24px;
  border-block-start: 2px solid var(--background-accent);
  background: var(--film-card-gradient);
  box-shadow: 0 12px 35px #102a211c;
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.film-background-grid { align-items: stretch; }
.film-background-prose, .film-background-skills { align-self: start; }
.film-background-card#education { --background-accent: #b9dcf5; --background-glow: #b9dcf524; --background-soft: #344f5a; }
.film-background-card#skills { --background-accent: #f2d397; --background-glow: #f2d39724; --background-soft: #514935; }
.film-background-card::before { content: ''; position: absolute; z-index: -1; inset: 0; border-radius: inherit; background: radial-gradient(ellipse at top right, var(--background-glow), transparent 70%); opacity: .45; transition: opacity .3s ease; pointer-events: none; }
.film-background-icon { width: 58px; height: 58px; margin: 0; color: var(--background-accent); background: var(--background-soft); border-color: var(--background-accent); box-shadow: inset 0 0 0 1px #ffffff06; transition: transform .3s ease, box-shadow .3s ease; }
.portfolio-site .film-background-card h3 { position: relative; width: fit-content; max-width: 100%; align-self: center; margin: 0; font-size: clamp(1.6rem, 2.15vw, 2.2rem); font-weight: 600; letter-spacing: -.025em; transition: color .25s ease; }
.film-background-card h3::after { content: ''; position: absolute; inset-inline: 0; inset-block-end: -9px; height: 2px; border-radius: 2px; background: var(--background-accent); transform: scaleX(.2); transform-origin: left; opacity: .6; transition: transform .3s ease, opacity .3s ease; }
.film-background-prose, .film-background-skills { grid-column: 1 / -1; }
.film-background-prose > p { position: relative; padding-inline-start: 20px; border-inline-start: 2px solid var(--film-page-line); transition: color .25s ease, border-color .25s ease; }
.film-background-prose > p::before { content: ''; position: absolute; inset-inline-start: -5px; inset-block-start: .65em; width: 8px; height: 8px; border-radius: 50%; background: var(--background-accent); box-shadow: 0 0 0 4px var(--film-card-bg); }
.film-background-prose > p + p { padding-block-start: 0; border-block-start: 0; }
.film-background-skills > li { color: #fff0d0; background: var(--background-soft); border-color: #8a7953; border-radius: 12px; transition: transform .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease; }
[dir='rtl'] .film-background-card h3::after { transform-origin: right; }
[dir='rtl'] .film-profile-background .film-work-heading h2, [dir='rtl'] .film-background-card h3 { letter-spacing: normal; }
@media (hover: hover) and (pointer: fine) {
  .film-profile-background .film-work-heading h2:hover { color: #d6edcf; text-shadow: 0 0 30px #bddcba40; }
  .film-background-card:hover { transform: translateY(-5px); border-color: var(--background-accent); box-shadow: 0 18px 40px #00000038, 0 0 32px var(--background-glow); }
  .film-background-card:hover::before { opacity: 1; }
  .film-background-card:hover .film-background-icon { transform: translateY(-2px) rotate(-4deg); box-shadow: 0 0 24px var(--background-glow); }
  .film-background-card:hover h3 { color: var(--background-accent); }
  .film-background-card:hover h3::after { transform: scaleX(1); opacity: 1; }
  .film-background-prose > p:hover { color: var(--film-page-ink); border-inline-start-color: var(--background-accent); }
  .film-background-skills > li:hover { transform: translateY(-3px); color: #fff5dd; border-color: var(--background-accent); box-shadow: 0 6px 20px var(--background-glow); }
}
@media (max-width: 760px) {
  .film-background-card { gap: 25px 15px; }
  .film-background-icon { width: 50px; height: 50px; border-radius: 15px; }
  .film-background-icon svg { width: 30px; height: 30px; }
  .film-background-prose > p { padding-inline-start: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .film-profile-background .film-work-heading h2, .film-background-card, .film-background-card::before, .film-background-icon, .film-background-card h3, .film-background-card h3::after, .film-background-prose > p, .film-background-skills > li { transition: none; }
  .film-background-card:hover, .film-background-card:hover .film-background-icon, .film-background-skills > li:hover { transform: none; }
  .film-background-card h3::after { transform: none; }
}
/* Shared privacy controls retain their behaviour and match this page's palette. */
.film-research { padding-block: clamp(64px, 6vw, 110px); border-block-start: 1px solid var(--film-page-line); background: radial-gradient(ellipse at 85% 15%, #b9dcf51c, transparent 55%), var(--film-page-bg); }
.film-research .film-work-heading > div { flex: 1; max-width: none; }
.film-research .portfolio-eyebrow { font-size: clamp(16px, 1.1vw, 20px); font-weight: 700; }
.portfolio-site .film-research .film-work-heading h2 { max-width: 100%; font-size: clamp(1.7rem, 2.4vw, 2.75rem); line-height: 1.3; letter-spacing: -.025em; text-wrap: pretty; }
.film-research-navigation { display: flex; flex-wrap: wrap; gap: 12px; margin-block: 0 32px; }
.film-research-navigation a { display: inline-flex; align-items: center; gap: 20px; min-height: 48px; padding: 10px 20px; border: 1px solid var(--film-page-line); border-radius: 999px; color: var(--film-page-ink); background: var(--film-card-bg); font-size: 16px; font-weight: 600; text-decoration: none; transition: border-color .25s, background .25s; }
.film-research-navigation a span { color: var(--film-page-accent); }
.film-research-navigation a:is(:hover, :focus-visible) { border-color: var(--film-page-accent); background: var(--film-page-soft); }
.film-research-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.film-research-category { --research-accent: #d0e5ad; --research-glow: #d0e5ad20; min-width: 0; padding: clamp(24px, 2.4vw, 44px); border: 1px solid var(--film-page-line); border-block-start: 2px solid var(--research-accent); border-radius: 24px; background: radial-gradient(ellipse at top right, var(--research-glow), transparent 70%), var(--film-card-gradient); transition: transform .3s, box-shadow .3s, border-color .3s; }
.film-research-category#papers { --research-accent: #b9dcf5; --research-glow: #b9dcf520; }
.film-research-category#posters { --research-accent: #f2d397; --research-glow: #f2d39720; }
.film-research-category#presentations { --research-accent: #d7bdf5; --research-glow: #d7bdf520; }
.film-research-category-heading { display: flex; align-items: center; gap: 20px; margin-block-end: 28px; }
.film-research-icon { display: grid; place-items: center; flex: 0 0 54px; width: 54px; height: 54px; border: 1px solid var(--film-page-line); border-radius: 16px; color: var(--research-accent); background: #ffffff05; }
.film-research-icon svg { width: 30px; height: 30px; stroke: currentColor; stroke-width: 1.5; stroke-linejoin: round; stroke-linecap: round; }
.portfolio-site .film-research-category-heading h3 { margin: 0; font-size: clamp(1.4rem, 1.8vw, 2rem); font-weight: 600; letter-spacing: -.025em; }
.film-research-item + .film-research-item { margin-block-start: 28px; padding-block-start: 28px; border-block-start: 1px solid var(--film-page-line); }
.film-research-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; color: var(--film-page-muted); font-size: 14px; margin-block-end: 14px; }
.film-research-state { color: var(--research-accent); padding: 4px 12px; border: 1px solid var(--film-page-line); border-radius: 999px; background: #ffffff04; }
.portfolio-site .film-research-item h4 { margin: 0 0 16px; max-width: 55ch; color: var(--film-page-ink); font-family: var(--film-display-font); font-size: clamp(1.2rem, 1.45vw, 1.7rem); line-height: 1.4; font-weight: 600; letter-spacing: -.015em; overflow-wrap: anywhere; }
.film-research-authors { margin: 0 0 12px; max-width: 75ch; color: var(--film-page-muted); font-size: clamp(14px, .75vw, 17px); line-height: 1.75; }
.film-research-venue { margin: 0 0 16px; color: var(--research-accent); font-size: clamp(15px, .8vw, 18px); line-height: 1.6; font-weight: 600; }
.film-research-detail { max-width: 75ch; color: var(--film-page-muted); font-size: clamp(15px, .8vw, 18px); line-height: 1.75; }
.film-research-detail summary { width: fit-content; min-height: 44px; padding-block: 10px; color: var(--research-accent); cursor: pointer; }
.film-research-detail summary:hover { color: var(--film-page-ink); }
.film-research-detail p { margin-block: 10px 18px; }
.film-research-links { display: flex; flex-wrap: wrap; gap: 8px 28px; margin-block-start: 10px; }
.film-research-links .portfolio-text-link { min-height: 44px; font-size: 16px; }
.film-research .portfolio-text-link { color: var(--film-page-accent); }
.film-research .portfolio-text-link:is(:hover, :focus-visible) { color: var(--film-page-ink); }
.film-research-empty { margin: 0; min-height: 80px; color: var(--film-page-muted); font-size: 16px; line-height: 1.7; }
.film-research-profiles { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; margin-block-start: 36px; padding-block-start: 26px; border-block-start: 1px solid var(--film-page-line); color: var(--film-page-muted); font-size: 16px; }
.film-research-profiles .portfolio-text-link { min-height: 44px; }
[dir='rtl'] .film-research :is(h2, h3, h4) { letter-spacing: normal; }
@media (hover: hover) and (pointer: fine) {
  .film-research-category:hover { transform: translateY(-3px); border-color: var(--research-accent); box-shadow: 0 14px 35px #00000028, 0 0 25px var(--research-glow); }
}
@media (max-width: 760px) {
  .film-research-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .film-research-navigation { gap: 8px; }
  .film-research-navigation a { padding-inline: 15px; gap: 14px; font-size: 14px; }
  .film-research-category-heading { gap: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .film-research-category, .film-research-navigation a { transition: none; }
  .film-research-category:hover { transform: none; }
}
/* One content width and card scale across work, scholarship and background. */
.portfolio-site :is(.film-work-card, .film-research-category, .film-background-card) {
  padding: var(--film-card-padding);
  border-radius: var(--film-card-radius);
  box-shadow: 0 8px 28px #102a211c;
}
.portfolio-site :is(.film-work-grid, .film-research-grid, .film-background-grid) {
  gap: var(--film-card-gap);
  align-items: stretch;
}
.portfolio-site :is(.film-work-card, .film-research-category-heading, .film-background-card) h3 {
  min-width: 0;
  font-size: clamp(1.35rem, 1.6vw, 1.8rem);
  line-height: 1.35;
  font-weight: 600;
  overflow-wrap: anywhere;
  transition: color .25s ease;
}
.portfolio-site :is(.film-work-symbol, .film-research-icon, .film-background-icon) {
  width: 48px;
  height: 48px;
  border-radius: 14px;
}
.portfolio-site .film-research-icon { flex-basis: 48px; }
.portfolio-site :is(.film-work-symbol, .film-research-icon, .film-background-icon) svg {
  width: 30px;
  height: 30px;
}
@media (min-width: 761px) {
  body:has(.portfolio-films-page--cinematic) :is(.film-carousel-work, .film-research, .film-profile-background, .film-feature-section) > .portfolio-container,
  body:has(.portfolio-films-page--cinematic) .film-carousel-contact > .personal-contact.portfolio-container {
    width: min(var(--film-content-max), calc(100% - 2 * clamp(36px, 4.5vw, 64px)));
    max-width: var(--film-content-max);
    margin-inline: auto;
  }
  .portfolio-site :is(.film-work-grid, .film-research-grid, .film-background-grid) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .portfolio-site .film-background-card:is(:only-child, .film-background-card--skills) { grid-column: auto; }
  .portfolio-site .film-background-card { gap: 24px 18px; }
  .film-research-category-heading { gap: 18px; margin-block-end: 24px; }
  .portfolio-site :is(.film-work-summary, .film-work-detail, .film-background-prose, .film-research-authors, .film-research-venue, .film-research-detail) {
    max-width: 62ch;
    font-size: clamp(14px, 1vw, 17px);
    line-height: 1.8;
  }
  .portfolio-site .film-research-item h4 { font-size: clamp(1.1rem, 1.35vw, 1.4rem); }
  .portfolio-site :is(.film-work-links, .film-research-links) .portfolio-text-link { font-size: 14px; }
  .portfolio-site .film-carousel-contact .personal-contact-card { border-radius: var(--film-card-radius); }
  .portfolio-site :is(.film-work-card, .film-research-category, .film-background-card):focus-within {
    border-color: var(--research-accent, var(--background-accent, var(--film-page-accent)));
    box-shadow: 0 12px 32px #102a2140;
  }
}
@media (max-width: 760px) {
  body:has(.portfolio-films-page--cinematic) { --film-card-gap: 18px; }
}
@media (min-width: 761px) and (hover: hover) and (pointer: fine) {
  .portfolio-site :is(.film-work-card, .film-research-category, .film-background-card):hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 36px #102a2145;
  }
}
@media (prefers-reduced-motion: reduce) {
  .portfolio-site :is(.film-work-card, .film-research-category, .film-background-card),
  .portfolio-site :is(.film-work-card, .film-research-category-heading, .film-background-card) h3 { transition: none; }
  .portfolio-site :is(.film-work-card, .film-research-category, .film-background-card):hover { transform: none; }
}
body:has(.portfolio-films-page--cinematic) .privacy-controls { color: var(--film-page-muted); background: #203128; border-block-start: 1px solid var(--film-page-line); }
body:has(.portfolio-films-page--cinematic) .privacy-choice { color: var(--film-page-ink); background: var(--film-card-bg); border-color: var(--film-page-line); box-shadow: 0 -12px 50px #00000059; }
body:has(.portfolio-films-page--cinematic) .privacy-choice h2 { color: var(--film-page-ink); }
body:has(.portfolio-films-page--cinematic) .privacy-choice :is(p, .privacy-choice-label, .privacy-account) { color: var(--film-page-muted); }
body:has(.portfolio-films-page--cinematic) .privacy-choice :is(a, .privacy-signal) { color: var(--film-page-accent); }
body:has(.portfolio-films-page--cinematic) .privacy-actions button { color: var(--film-page-ink); background: var(--film-page-soft); border-color: #657d5f; }
body:has(.portfolio-films-page--cinematic) .privacy-actions button:hover { background: #314631; }
body:has(.portfolio-films-page--cinematic) .privacy-actions .privacy-close { background: transparent; }
body:has(.portfolio-films-page--cinematic) .privacy-account input { accent-color: var(--film-page-accent); }
body:has(.portfolio-films-page--cinematic) .alert.error { background: #392820; border-color: #8b6556; color: #f6c6b5; }
[lang='fa'] body:has(.portfolio-films-page--cinematic) {
  --film-display-font: 'Sephorizon Vazirmatn', 'Sephorizon Open Sans', var(--sans);
  --film-body-font: 'Sephorizon Vazirmatn', 'Sephorizon Open Sans', var(--sans);
}
body:has(.portfolio-films-page--cinematic) :is(h1, h2, h3) { font-family: var(--film-display-font); }
body:has(.portfolio-films-page--cinematic) .portfolio-navigation .film-header-connect {
  min-height: 48px;
  padding: 8px 18px;
  border: 1px solid #ffffff80;
  border-radius: 999px;
  color: #fff;
  background: #071d25a6;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 4px 20px #0002;
}
body:has(.portfolio-films-page--cinematic) .portfolio-navigation .film-header-connect:is(:hover, :focus-visible) {
  background: #eaf3eb;
  color: #163326;
  border-color: #fff;
}
/* Let the cinematic header follow the viewport, with aligned desktop controls. */
@media (min-width: 1201px) {
  /* One fluid grid aligns the header, content panels, slide copy and footer. */
  body:has(.portfolio-films-page--cinematic) .portfolio-container {
    width: calc(100% - 2 * clamp(48px, 4.5vw, 128px));
    max-width: none;
  }
  body:has(.portfolio-films-page--cinematic) .portfolio-header-inner {
    min-height: 104px;
    padding-block: 20px;
    gap: clamp(24px, 1.3vw, 42px);
    flex-wrap: wrap;
    justify-content: flex-end;
  }
  body:has(.portfolio-films-page--cinematic) .portfolio-brand {
    flex-shrink: 0;
    font-size: clamp(24px, 1vw, 30px);
  }
  body:has(.portfolio-films-page--cinematic) .portfolio-navigation {
    flex-shrink: 0;
    gap: clamp(24px, 1.4vw, 44px);
  }
  body:has(.portfolio-films-page--cinematic) .portfolio-navigation > a {
    min-height: 48px;
    font-size: clamp(14px, .7vw, 18px);
    line-height: 1.3;
  }
  body:has(.portfolio-films-page--cinematic) .portfolio-navigation .film-header-connect {
    font-size: clamp(16px, .75vw, 20px);
  }
  body:has(.portfolio-films-page--cinematic) .portfolio-header-tools {
    flex-wrap: nowrap;
    margin-inline-start: 0;
    gap: clamp(10px, .55vw, 18px);
  }
  body:has(.portfolio-films-page--cinematic) .portfolio-header :is(.language-switcher, .portfolio-account-link) {
    min-height: 48px;
    font-size: clamp(12px, .6vw, 16px);
    line-height: 1.3;
  }
  body:has(.portfolio-films-page--cinematic) .portfolio-header .language-switcher {
    height: 48px;
    padding-block: 0;
  }
  body:has(.portfolio-films-page--cinematic) .portfolio-header .language-switcher select {
    max-width: none;
    line-height: 1.3;
  }
  .film-background-prose { max-width: 74ch; font-size: clamp(16px, .8vw, 20px); }
  .film-work-summary, .film-work-detail { max-width: 74ch; font-size: clamp(14px, .8vw, 18px); }
  body:has(.portfolio-films-page--cinematic) .portfolio-footer-bottom > .portfolio-footer-profiles { gap: 12px clamp(24px, 2vw, 64px); font-size: clamp(13px, .65vw, 17px); }
}
.film-carousel-contact .personal-contact-heading .portfolio-eyebrow {
  display: inline-flex;
  padding: 8px 17px;
  border: 1px solid var(--film-page-line);
  border-radius: 999px;
  color: var(--film-page-accent);
  background: var(--film-page-soft);
  font-size: clamp(18px, 2vw, 25px);
  font-weight: 700;
  letter-spacing: -.025em;
}
.film-carousel-contact .personal-contact-card {
  --contact-brand: #b1e9da;
  --contact-soft: #34534a;
  --contact-glow: #b1e9da26;
  position: relative;
  padding: 24px 21px;
  gap: 17px;
  background: linear-gradient(125deg, var(--film-card-bg), var(--contact-soft));
  border-color: var(--film-page-line);
  box-shadow: 0 3px 12px #00000014;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.film-carousel-contact .personal-contact-copy strong { font-size: 16px; font-weight: 750; }
.film-carousel-contact .personal-contact-copy > span { font-size: 13px; color: var(--film-page-muted); }
.film-carousel-contact .personal-contact-arrow { color: var(--contact-brand); font-size: 25px; }
.film-carousel-contact .personal-contact-mark {
  position: relative;
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  border-radius: 17px;
  color: var(--contact-brand);
  background: var(--contact-soft);
  border-color: var(--film-page-line);
  box-shadow: inset 0 0 0 1px #ffffff08;
  transition: transform .25s ease, box-shadow .25s ease;
}
.film-carousel-contact [data-contact-kind='linkedin'] { --contact-brand: #9ccdfb; --contact-soft: #2d485c; --contact-glow: #9ccdfb2e; --contact-icon: url("../images/profile-links/linkedin.fe1e7815832e.svg"); }
.film-carousel-contact [data-contact-kind='instagram'] { --contact-brand: #f8b6d5; --contact-soft: #513a49; --contact-glow: #f8b6d52e; --contact-icon: url("../images/profile-links/instagram.05cd2feba9b6.svg"); }
.film-carousel-contact [data-contact-kind='orcid'] { --contact-brand: #c9e891; --contact-soft: #435239; --contact-glow: #c9e8912e; --contact-icon: url("../images/profile-links/orcid.b9fcbde0a7d4.svg"); }
.film-carousel-contact [data-contact-kind='google_scholar'] { --contact-brand: #adcfff; --contact-soft: #34475d; --contact-glow: #adcfff2e; --contact-icon: url("../images/profile-links/google_scholar.90114d8ecc19.svg"); }
.film-carousel-contact [data-contact-kind='github'] { --contact-brand: #d3b3fa; --contact-soft: #463c55; --contact-glow: #d3b3fa2e; --contact-icon: url("../images/profile-links/github.5e4653250949.svg"); }
.film-carousel-contact [data-contact-kind='gitlab'] { --contact-brand: #ffc49f; --contact-soft: #51463a; --contact-glow: #ffc49f2e; --contact-icon: url("../images/profile-links/gitlab.0da728a612af.svg"); }
.film-carousel-contact [data-contact-kind='researchgate'] { --contact-brand: #a3eade; --contact-soft: #34534b; --contact-glow: #a3eade2e; --contact-icon: url("../images/profile-links/researchgate.b415eb8913de.svg"); }
.film-carousel-contact [data-contact-kind='dblp'] { --contact-brand: #b2d4f6; --contact-soft: #354b58; --contact-glow: #b2d4f62e; --contact-icon: url("../images/profile-links/dblp.37a80b37e9f9.svg"); }
.film-carousel-contact [data-contact-kind='hps'] { --contact-brand: #afd4f6; --contact-soft: #354b5b; --contact-glow: #afd4f62e; --contact-icon: url("../images/profile-links/hps.347301f6b3e4.svg"); }
.film-carousel-contact [data-contact-kind='email'] { --contact-brand: #ffc4a8; --contact-soft: #51453c; --contact-glow: #ffc4a82e; }
.film-carousel-contact .personal-contact-mark img { filter: brightness(0) invert(1); }
/* An alpha mask gives the existing vector logos colour without changing shared assets. */
@supports (mask-image: url('')) {
  .film-carousel-contact [data-contact-kind] .personal-contact-mark:has(img)::after {
    content: '';
    position: absolute;
    width: 28px;
    height: 28px;
    background: var(--contact-brand);
    -webkit-mask: var(--contact-icon) center / contain no-repeat;
    mask: var(--contact-icon) center / contain no-repeat;
  }
  .film-carousel-contact [data-contact-kind] .personal-contact-mark img { opacity: 0; }
  .film-carousel-contact [data-contact-kind='instagram'] .personal-contact-mark:has(img)::after { background: linear-gradient(35deg, #f6ad45, #e1306c 45%, #833ab4); }
}
.film-carousel-contact .personal-contact-card:focus-visible {
  outline: 3px solid var(--contact-brand);
  border-color: var(--contact-brand);
  box-shadow: 0 10px 28px var(--contact-glow);
}
.film-carousel-contact .personal-contact-card:focus-visible .personal-contact-mark {
  transform: scale(1.12);
  box-shadow: 0 0 24px var(--contact-glow);
}
@media (hover: hover) and (pointer: fine) {
  .film-carousel-contact .personal-contact-card:hover {
    transform: translateY(-4px);
    border-color: var(--contact-brand);
    box-shadow: 0 12px 30px var(--contact-glow);
  }
  .film-carousel-contact .personal-contact-card:hover .personal-contact-mark {
    transform: scale(1.14) rotate(-4deg);
    box-shadow: 0 0 25px var(--contact-glow);
  }
  .film-carousel-contact .personal-contact-card:hover .personal-contact-arrow { transform: translate(2px, -2px); }
}
@media (max-width: 760px) {
  .film-carousel-contact .personal-contact-card { padding: 22px 18px; }
  .film-carousel-contact .personal-contact-mark { flex-basis: 52px; width: 52px; height: 52px; }
  .film-carousel-contact .personal-contact-copy strong { font-size: 16px; }
  .film-carousel-contact .personal-contact-copy > span { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .film-carousel-contact .personal-contact-card, .film-carousel-contact .personal-contact-mark { transition: none; }
  .film-carousel-contact .personal-contact-card:is(:hover, :focus-visible), .film-carousel-contact .personal-contact-card:is(:hover, :focus-visible) .personal-contact-mark { transform: none; }
}

/* Configurable presentation for additional media slides. */
.film-carousel-extra-image{width:100%;height:100%;display:block;object-fit:cover;object-position:center;background:#16231d}
.film-carousel-nhr{font-size:clamp(13px,1.1vw,19px);line-height:1.6;max-width:60ch;color:#f0f5e5;margin-top:12px}.film-carousel-nhr a{text-decoration:underline;text-underline-offset:5px;text-decoration-color:#c7d8a58a}
@media(min-width:761px){.film-carousel-slide[data-text-side=right] .film-carousel-film-layout{justify-content:flex-end}.film-carousel-slide[data-text-side=left] .film-carousel-film-layout{justify-content:flex-start}.film-carousel-slide[data-text-side=right] .film-carousel-shade{background:linear-gradient(270deg,#071615aa 0%,#07161533 62%,transparent 100%)}.film-carousel-slide[data-text-side=left] .film-carousel-portrait-layout{justify-content:flex-start}.film-carousel-slide[data-text-side=left] .film-carousel-introduction{margin-inline:0}.film-carousel-slide[data-text-side=left] .film-carousel-portrait-shade{background:linear-gradient(90deg,#07161599,transparent 70%)}}
@media(max-width:760px){.film-carousel-nhr{font-size:12px;margin-top:7px}.film-carousel-introduction .film-carousel-nhr{max-width:44ch}.film-carousel-slide--extra .film-carousel-film-copy{background:transparent;border:0;box-shadow:none;backdrop-filter:none}}

.film-carousel-extra-image[data-image-fit=contain]{object-fit:contain}
