/* Kandeel Series — cinematic treatment site
   Brand system: OFFICIAL Kandeel Developments brand book (2024).
   Palette (exact): Cod Gray #151515 · Kumera #935726 · Soft Amber #CFC4B1
                    (primaries) · Tango #F27A21 · Dawn Pink #F2E8E5 (secondaries).
   No other hues. Episode accents below are mixes of these five only.
   Type: Larken (primary serif) -> Fraunces stand-in; Nohemi (secondary sans)
         -> Plus Jakarta Sans stand-in. Neither licensed face is on a free CDN;
         swap --serif / --sans when Kandeel supplies the font files. */

:root {
  /* Official palette */
  --cod: #151515;     /* Cod Gray — primary */
  --kumera: #935726;  /* Kumera — primary */
  --amber: #CFC4B1;   /* Soft Amber — primary */
  --tango: #F27A21;   /* Tango — secondary, "hot" highlight only (EP 108) */
  --dawn: #F2E8E5;    /* Dawn Pink — secondary */

  /* Derived tones (mixes of the official palette, no new hues) */
  --k-gold: color-mix(in srgb, var(--kumera) 45%, var(--amber));      /* warm gold */
  --k-bronze: color-mix(in srgb, var(--kumera) 70%, var(--amber));    /* deeper bronze */
  --k-sand: color-mix(in srgb, var(--kumera) 20%, var(--amber));      /* light sand */
  --k-graphite: color-mix(in srgb, var(--amber) 55%, var(--cod));     /* warm graphite */
  --k-slate: color-mix(in srgb, var(--dawn) 48%, var(--cod));         /* neutral graphite */

  --ink: var(--cod);
  --ink-2: color-mix(in srgb, var(--cod) 96%, var(--amber));
  --ink-3: color-mix(in srgb, var(--cod) 92%, var(--amber));
  --cream: var(--amber);
  --cream-dim: rgba(207, 196, 177, .62);
  --cream-faint: rgba(207, 196, 177, .14);
  --accent: var(--amber);
  --serif: "Fraunces", "Larken", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --sans: "Plus Jakarta Sans", "Nohemi", "Helvetica Neue", sans-serif;
  /* Brand uses two typefaces only — UI "slate" labels are tracked sans caps. */
  --mono: var(--sans);
  --arabic: "Readex Pro", "Geeza Pro", "Segoe UI", Tahoma, sans-serif; /* stand-in for GE Dinar Two / Forma DJR Arabic, per MFZ */
  --gutter: clamp(1.25rem, 5vw, 5.5rem);
  --ease: cubic-bezier(.2, .7, .1, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--ink);
  color: var(--cream);
  font-family: var(--sans);
  font-size: clamp(1rem, .35vw + .9rem, 1.15rem);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
em { font-style: italic; }
::selection { background: var(--cream); color: var(--ink); }

.mono {
  font-family: var(--mono);
  font-weight: 500;
  font-size: .7rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
}

/* ---------- Wordmark (KANDEEL / DEVELOPMENTS) ---------- */
.wordmark { display: inline-flex; flex-direction: column; align-items: center; gap: .45em; text-decoration: none; color: var(--cream); line-height: 1; }
.wordmark__logo { display: block; height: 1.05rem; width: auto; }
.wordmark--lg .wordmark__logo { height: clamp(1.8rem, 3.4vw, 2.7rem); }
.wordmark__name {
  font-family: var(--serif); font-weight: 400; font-variation-settings: "opsz" 144;
  font-size: 1.05rem; letter-spacing: .42em; margin-right: -.42em; text-transform: uppercase;
}
.wordmark__sub {
  font-family: var(--sans); font-weight: 500; font-size: .44rem; letter-spacing: .58em;
  margin-right: -.58em; text-transform: uppercase; color: var(--cream-dim);
}
.wordmark--lg .wordmark__name { font-size: clamp(1.6rem, 3vw, 2.4rem); }
.wordmark--lg .wordmark__sub { font-size: clamp(.55rem, .8vw, .68rem); }

/* ---------- Barcode — Kandeel's signature graphic element ----------
   Vertical bars of varying width/height, derived from the letters of KANDEEL.
   Inherits currentColor (section accent or Soft Amber). Decorative only. */
.barcode { display: inline-flex; align-items: flex-end; gap: 2px; height: .95rem; color: var(--accent); flex: none; }
.barcode i { display: block; width: 2px; height: 100%; background: currentColor; }
.barcode i:nth-child(1) { width: 4px; }                 /* K */
.barcode i:nth-child(2) { width: 1px; height: 72%; }    /* A */
.barcode i:nth-child(3) { width: 3px; }                 /* N */
.barcode i:nth-child(4) { width: 5px; height: 86%; }    /* D */
.barcode i:nth-child(5) { width: 1px; height: 58%; }    /* E */
.barcode i:nth-child(6) { width: 2px; height: 58%; }    /* E */
.barcode i:nth-child(7) { width: 3px; height: 40%; }    /* L */
.barcode--lg { height: 1.6rem; gap: 3px; }
.barcode--lg i { transform: scaleX(1.4); transform-origin: left; margin-right: 1px; }
.label { color: var(--cream-dim); margin: 0 0 1.75rem; }
.label::before { content: ""; display: inline-block; width: 2.5rem; height: 1px; background: currentColor; vertical-align: middle; margin-right: 1rem; opacity: .6; }

/* Film grain */
.grain {
  position: fixed; inset: -50%; z-index: 90; pointer-events: none; opacity: .07;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: grain 1.2s steps(6) infinite;
}
@keyframes grain {
  0% { transform: translate(0, 0); } 20% { transform: translate(-3%, 2%); } 40% { transform: translate(2%, -3%); }
  60% { transform: translate(-2%, -1%); } 80% { transform: translate(3%, 3%); } 100% { transform: translate(0, 0); }
}

/* ---------- Slate bar ---------- */
.slate {
  position: fixed; top: 0; left: 0; right: 0; z-index: 80;
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.1rem var(--gutter);
  background: linear-gradient(to bottom, rgba(21,21,21,.85), rgba(21,21,21,0));
  transform: translateY(-110%); transition: transform .6s var(--ease);
}
.slate.is-on { transform: none; }
.slate__brand { display: flex; align-items: center; gap: 1.1rem; }
.slate__series { font-family: var(--sans); font-weight: 500; font-size: .6rem; letter-spacing: .32em; text-transform: uppercase; color: var(--cream-dim); padding-left: 1.1rem; border-left: 1px solid var(--cream-faint); line-height: 2; }
.slate__now { font-family: var(--mono); font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; color: var(--cream-dim); }
.slate__now b { color: var(--accent); font-weight: 500; }
.slate__bar { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--cream-faint); }
.slate__bar i { display: block; height: 100%; width: 0; background: var(--accent); transition: background .6s; }

/* ---------- Hero ---------- */
.hero {
  position: relative; min-height: 100vh; min-height: 100svh;
  display: grid; place-items: center; overflow: hidden; isolation: isolate;
  text-align: center;
}
.hero__media { position: absolute; inset: 0; z-index: -1; }
.hero__media img {
  width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%;
  filter: grayscale(1) contrast(1.1) brightness(.42);
  transform: scale(1.12); animation: heroPush 14s var(--ease) forwards;
}
.hero__media::after {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 45%, rgba(21,21,21,.15) 0%, rgba(21,21,21,.85) 75%), linear-gradient(to bottom, transparent 60%, var(--ink));
}
@keyframes heroPush { to { transform: scale(1); } }

.letterbox { position: absolute; left: 0; right: 0; height: 9vh; background: var(--ink); z-index: 2; transition: transform 1.6s var(--ease) .2s; }
.letterbox--top { top: 0; transform: translateY(-100%); animation: lbIn 1.6s var(--ease) .2s forwards; }
.letterbox--bottom { bottom: 0; transform: translateY(100%); animation: lbIn 1.6s var(--ease) .2s forwards; }
@keyframes lbIn { to { transform: none; } }

.hero__inner { padding: 0 var(--gutter); }
.hero__mark { display: flex; justify-content: center; margin: 0 0 1.6rem; color: var(--amber); opacity: 0; animation: fadeIn 1.4s ease .8s forwards; }
.hero__kicker { color: var(--cream-dim); margin: 0 0 2.5rem; opacity: 0; animation: fadeUp 1.4s var(--ease) 1s forwards; }
.hero__kicker span { color: var(--cream); }
.hero__title { margin: 0; font-weight: 200; line-height: .9; }
.hero__word {
  /* Real Kandeel wordmark (official logo file, cropped to "KANDEEL"), not a font approximation —
     the brand's "A" has no crossbar and standard fonts can't replicate it. */
  display: block; margin: 0 auto; width: clamp(16rem, 78vw, 62rem); height: auto;
  opacity: 0; filter: blur(14px);
  animation: wordIn 2.6s var(--ease) .5s forwards;
}
@keyframes wordIn { to { opacity: 1; filter: blur(0); letter-spacing: .14em; } }
.hero__sub { display: block; margin-top: 1.6rem; font-size: clamp(.7rem, 1vw, .85rem); letter-spacing: .6em; color: var(--cream-dim); opacity: 0; animation: fadeUp 1.4s var(--ease) 1.8s forwards; }
.hero__premise {
  font-family: var(--serif); font-weight: 300; font-size: clamp(1.15rem, 2vw, 1.6rem); line-height: 1.45;
  margin: 2.4rem auto 0; max-width: 32ch; color: var(--cream);
  opacity: 0; animation: fadeUp 1.4s var(--ease) 2.3s forwards;
}
.hero__premise em { color: var(--cream-dim); }
.hero__premise-ar {
  font-family: var(--arabic); font-weight: 300; font-size: clamp(.9rem, 1.1vw, 1.05rem); line-height: 1.7; letter-spacing: 0;
  margin: .8rem auto 0; color: var(--cream-dim); text-align: center;
  opacity: 0; animation: fadeUp 1.4s var(--ease) 2.6s forwards;
}
.hero__cue {
  position: absolute; bottom: calc(9vh + 1.5rem); left: 50%; transform: translateX(-50%); z-index: 3;
  display: flex; flex-direction: column; align-items: center; gap: .9rem; text-decoration: none; color: var(--cream-dim);
  opacity: 0; animation: fadeIn 1.2s ease 3s forwards; font-size: .62rem;
}
.hero__cue i { width: 1px; height: 3.2rem; background: linear-gradient(var(--cream), transparent); transform-origin: top; animation: cue 2.4s var(--ease) infinite; }
@keyframes cue { 0% { transform: scaleY(0); } 50% { transform: scaleY(1); } 100% { transform: scaleY(1); opacity: 0; } }
.hero__tc { position: absolute; z-index: 3; bottom: calc(9vh + 1.6rem); right: var(--gutter); color: rgba(207,196,177,.35); font-size: .6rem; opacity: 0; animation: fadeIn 1.2s ease 3.2s forwards; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes fadeIn { to { opacity: 1; } }

/* ---------- Concept ---------- */
.concept { padding: clamp(7rem, 18vh, 12rem) var(--gutter); }
.concept__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.4fr); gap: 3rem; max-width: 1400px; margin: 0 auto; }
.concept__lead {
  font-family: var(--serif); font-weight: 300; font-variation-settings: "opsz" 96;
  font-size: clamp(1.7rem, 3.6vw, 3.3rem); line-height: 1.16; margin: 0 0 2.5rem; letter-spacing: -.01em;
}
.concept__lead em { color: var(--k-gold); font-weight: 300; }
.concept__text { max-width: 58ch; color: var(--cream-dim); margin: 0; }

/* ---------- Snapshot ---------- */
.snapshot { padding: clamp(5rem, 12vh, 8rem) var(--gutter); background: var(--ink-2); border-top: 1px solid var(--cream-faint); border-bottom: 1px solid var(--cream-faint); }
.snapshot__head { max-width: 1400px; margin: 0 auto 4rem; }
.snapshot__title { font-family: var(--serif); font-weight: 300; font-size: clamp(1.8rem, 3.4vw, 3rem); margin: 0; line-height: 1.1; }
.snapshot__title em { color: var(--cream-dim); }
.stats { list-style: none; margin: 0 auto; padding: 0; max-width: 1400px; display: grid; grid-template-columns: repeat(3, 1fr); }
.stat { padding: 2.2rem 2rem 2.4rem 0; border-top: 1px solid var(--cream-faint); display: flex; flex-direction: column; gap: .8rem; }
.stat:nth-child(3n+2), .stat:nth-child(3n+3) { padding-left: 2rem; border-left: 1px solid var(--cream-faint); }
.stat__num {
  font-family: var(--serif); font-weight: 250; font-variation-settings: "opsz" 144;
  font-size: clamp(3rem, 6vw, 5.4rem); line-height: .95; letter-spacing: -.02em; font-variant-numeric: lining-nums tabular-nums;
}
.stat__num small { font-family: var(--mono); font-size: .9rem; letter-spacing: .15em; color: var(--k-gold); margin: 0 .35rem; vertical-align: .9em; }
.stat__num small:first-child { margin-left: 0; }
.stat__lbl { font-family: var(--mono); font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--cream-dim); max-width: 26ch; line-height: 1.6; }

/* ---------- Index ---------- */
.index { padding: clamp(7rem, 16vh, 11rem) var(--gutter) clamp(4rem, 10vh, 7rem); max-width: calc(1400px + 2 * var(--gutter)); margin: 0 auto; }
.index__title {
  font-family: var(--serif); font-weight: 250; font-variation-settings: "opsz" 144;
  font-size: clamp(2.8rem, 9vw, 8.5rem); line-height: .92; margin: 0 0 3.5rem; letter-spacing: -.02em;
}
.index__list { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--cream-faint); }
.index__list a {
  --a: var(--cream);
  display: flex; align-items: baseline; gap: 1.1rem; padding: 1.2rem 0; border-bottom: 1px solid var(--cream-faint);
  text-decoration: none; font-family: var(--serif); font-size: clamp(1.05rem, 1.5vw, 1.35rem); font-weight: 300;
  position: relative; transition: color .4s, padding .5s var(--ease);
}
.index__list a b { font-family: var(--mono); font-weight: 400; font-size: .7rem; letter-spacing: .14em; color: var(--a); }
.index__list a::after { content: ""; position: absolute; left: 0; bottom: -1px; height: 1px; width: 0; background: var(--a); transition: width .6s var(--ease); }
.index__list a:hover, .index__list a:focus-visible { padding-left: .8rem; color: var(--dawn); }
.index__list a:hover::after, .index__list a:focus-visible::after { width: 100%; }

/* ---------- Episode base ---------- */
.ep {
  position: relative; min-height: 100vh; min-height: 100svh;
  padding: clamp(5rem, 11vh, 8rem) var(--gutter);
  display: grid; align-items: center; overflow: hidden; isolation: isolate;
  border-top: 1px solid var(--cream-faint);
}
.ep__num {
  position: absolute; z-index: -1; top: 50%; transform: translateY(-50%);
  right: calc(var(--gutter) * -.4);
  font-family: var(--serif); font-weight: 200; font-variation-settings: "opsz" 144;
  font-size: clamp(10rem, 34vw, 34rem); line-height: .8; letter-spacing: -.04em;
  color: transparent; -webkit-text-stroke: 1px color-mix(in srgb, var(--accent) 30%, transparent);
  user-select: none; pointer-events: none;
}
.ep__slate { display: flex; align-items: center; gap: 1rem; color: var(--cream-dim); margin: 0 0 2rem; }
.ep__badge {
  display: inline-flex; padding: .45rem .7rem .4rem; border: 1px solid var(--accent); color: var(--accent);
  letter-spacing: .2em;
}
.ep__q {
  font-family: var(--serif); font-weight: 300; font-variation-settings: "opsz" 120;
  font-size: clamp(2rem, 4.4vw, 4.4rem); line-height: 1.04; letter-spacing: -.015em;
  margin: 0 0 2rem; max-width: 16ch; text-wrap: balance;
}
.ep__q::before { content: "\201C"; color: var(--accent); margin-left: -.42em; padding-right: .04em; }
.ep__q::after { content: "\201D"; color: var(--accent); }
.ep__q--xl { font-size: clamp(2.4rem, 6vw, 6.4rem); max-width: 18ch; }
.ep__cast { color: var(--cream); margin: 0 0 1.6rem; padding-top: 1.6rem; border-top: 1px solid var(--accent); width: fit-content; min-width: 14rem; }
.ep__cast span { color: var(--cream-dim); }
.ep__desc { color: var(--cream-dim); max-width: 46ch; margin: 0; font-size: clamp(1rem, .4vw + .92rem, 1.18rem); }

/* Arabic gist layer: a quiet companion line, never a translation */
.ep__q-ar, .ep__desc-ar { font-family: var(--arabic); letter-spacing: 0; text-align: right; color: var(--cream-dim); }
.ep__q-ar { font-weight: 300; font-size: clamp(1.15rem, 2.2vw, 2.1rem); line-height: 1.55; margin: -1.1rem 0 2rem; max-width: 30rem; text-wrap: balance; }
.ep__desc-ar { font-weight: 300; font-size: clamp(.86rem, .25vw + .8rem, .98rem); line-height: 1.8; margin: 1rem 0 0; max-width: calc(clamp(1rem, .4vw + .92rem, 1.18rem) * 33); color: rgba(207, 196, 177, .5); }

/* Portrait layout */
.ep--portrait { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2.5rem, 6vw, 7rem); }
.ep--flip .ep__media { order: 2; }
.ep--flip .ep__num { right: auto; left: calc(var(--gutter) * -.4); }
.ep--flip { background: radial-gradient(ellipse at 80% 50%, color-mix(in srgb, var(--tint, var(--ink-3)) 70%, transparent), transparent 65%); }
.ep__media { margin: 0; position: relative; aspect-ratio: 3 / 4; overflow: hidden; height: min(76vh, 820px); width: auto; max-width: 100%; justify-self: center; }
.ep__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); transition: transform 2.8s var(--ease); }
.ep__media.is-in img { transform: scale(1); }
.ep__media::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(207,196,177,.08); background: linear-gradient(to top, rgba(21,21,21,.35), transparent 35%); pointer-events: none; }
.ep__media::before {
  content: ""; position: absolute; z-index: 2; left: 0; top: 0; width: 3px; height: 0; background: var(--accent);
  transition: height 1.6s var(--ease) .3s;
}
.ep__media.is-in::before { height: 34%; }
.ep--flip .ep__media::before { left: auto; right: 0; top: auto; bottom: 0; }

.cities { list-style: none; padding: 0; margin: 2.4rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem; color: var(--cream-dim); font-size: .62rem; }
.cities li { padding: .4rem .65rem; border: 1px solid var(--cream-faint); }
.cities li:first-child { border-color: var(--accent); color: var(--cream); }

/* Backdrop layout (103, 104) */
.ep__bg { position: absolute; inset: 0; z-index: -2; }
.ep__bg img { width: 100%; height: 100%; object-fit: cover; }
.ep--voice .ep__bg img { filter: grayscale(1) brightness(.55) contrast(1.08); object-position: 75% 35%; }
.ep--voice .ep__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--ink) 12%, rgba(21,21,21,.78) 45%, rgba(21,21,21,.35) 75%, rgba(21,21,21,.2)); }
.ep--voice .ep__num { right: auto; left: 50%; transform: translate(-50%, -50%); -webkit-text-stroke-color: rgba(207,196,177,.08); }
.ep__copy--center { text-align: left; max-width: 1100px; }
.ep--voice .ep__copy { position: relative; }
.ep--voice .ep__q { color: var(--cream); }

.ep--evo { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); }
.ep__bg--side { left: auto; width: 46%; }
.ep__bg--side img { filter: grayscale(.55) sepia(.2) brightness(.62) contrast(1.06); object-position: 46% 50%; }
.ep__bg--side::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--ink) 0%, rgba(21,21,21,.35) 45%, rgba(21,21,21,.1)); }
.ep--evo .ep__num { right: auto; left: calc(var(--gutter) * -.4); }
.handover { display: flex; align-items: center; gap: 1rem; margin-top: 2.6rem; font-family: var(--serif); font-weight: 300; font-size: clamp(.95rem, 1.3vw, 1.15rem); letter-spacing: .14em; text-transform: uppercase; }
.handover span:first-child { color: var(--cream-dim); text-decoration: line-through; text-decoration-color: rgba(207,196,177,.35); text-decoration-thickness: 1px; }
.handover i { flex: 0 0 3rem; height: 1px; background: var(--accent); position: relative; }
.handover i::after { content: ""; position: absolute; right: 0; top: -3px; border: 3.5px solid transparent; border-left: 6px solid var(--accent); border-right: 0; }

/* Real-render credit tag (103, 104, 107): small, bottom corner, labels only */
.ep__credit { position: absolute; z-index: 1; right: var(--gutter); bottom: clamp(1.4rem, 4vh, 2.4rem); margin: 0; font-size: .58rem; letter-spacing: .24em; color: rgba(207,196,177,.5); padding-left: .8rem; border-left: 1px solid var(--accent); }
.ep__credit span { color: rgba(207,196,177,.32); }
.ep--community .ep__credit { right: auto; left: var(--gutter); }

/* 107 — real community plaza as a muted background layer behind the portrait */
.ep--community { background: none; }
.ep__bg--community img { filter: grayscale(.6) sepia(.22) brightness(.5) contrast(1.05); object-position: 50% 78%; transform: scale(1.05); transition: transform 6s var(--ease); }
.ep--community.is-active .ep__bg--community img { transform: scale(1); }
.ep__bg--community::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(to bottom, var(--ink) 0%, rgba(21,21,21,.25) 22%, rgba(21,21,21,.25) 72%, var(--ink) 100%),
    linear-gradient(90deg, var(--ink) 0%, rgba(21,21,21,.86) 38%, rgba(21,21,21,.45) 72%, rgba(21,21,21,.6) 100%);
}

/* Pair layout (105) */
.ep--pair { grid-template-columns: 1fr; gap: clamp(2.5rem, 6vh, 4.5rem); justify-items: center; }
.ep--pair .ep__num { top: 18%; }
.ep__copy--wide { justify-self: stretch; max-width: 1400px; width: 100%; margin: 0 auto; }
.ep__copy--wide .ep__q { max-width: 22ch; }
.pair { display: grid; grid-template-columns: 1fr auto 1fr; gap: clamp(1.25rem, 3vw, 3rem); width: 100%; max-width: 820px; align-items: start; }
.pair__item { margin: 0; position: relative; }
.pair__item img { aspect-ratio: 3 / 4; object-fit: cover; width: 100%; filter: saturate(.9); }
.pair__item--low { margin-top: clamp(2.5rem, 7vw, 5.5rem); }
.pair__item figcaption { margin-top: 1.1rem; display: flex; flex-direction: column; gap: .35rem; color: var(--cream); padding-left: .9rem; border-left: 1px solid var(--accent); }
.pair__item figcaption span { color: var(--cream-dim); font-size: .62rem; }
.pair__rule { width: 1px; align-self: stretch; background: linear-gradient(transparent, var(--accent), transparent); opacity: .7; }
.ep__desc--center { text-align: center; margin: 0 auto; max-width: 52ch; font-family: var(--serif); font-weight: 300; font-size: clamp(1.15rem, 1.7vw, 1.5rem); line-height: 1.5; color: var(--cream); }

/* 108 — the one hot episode */
.ep--hot { background: radial-gradient(ellipse at 15% 60%, color-mix(in srgb, var(--tango) 10%, transparent), transparent 60%); }
.ep--hot .ep__q { color: var(--dawn); }

/* Finale (109) */
.ep--finale { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: clamp(2.5rem, 6vh, 4rem); padding-bottom: clamp(8rem, 18vh, 12rem); }
.ep__bg--finale img { filter: grayscale(.35) brightness(.5) contrast(1.05); object-position: 50% 55%; transform: scale(1.06); transition: transform 6s var(--ease); }
.ep--finale.is-active .ep__bg--finale img { transform: scale(1); }
.ep__bg--finale::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, var(--ink) 0%, rgba(21,21,21,.4) 30%, rgba(21,21,21,.55) 65%, var(--ink) 100%); }
.ep--finale .ep__copy--center { text-align: center; }
.ep--finale .ep__q { margin-left: auto; margin-right: auto; }
.ep--finale .ep__q-ar { margin-left: auto; margin-right: auto; text-align: center; }
.finale__desc { display: flex; flex-direction: column; align-items: center; }
.ep__desc-ar--center { text-align: center; margin: 1.2rem auto 0; max-width: 40rem; font-size: clamp(.95rem, .6vw + .8rem, 1.15rem); color: var(--cream-dim); }
.ep--finale .ep__q::before, .ep--finale .ep__q::after { content: none; }
.ep--finale .ep__slate { justify-content: center; }
.ep--finale .ep__cast { margin-left: auto; margin-right: auto; text-align: center; }
.reel { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(7, 1fr); gap: clamp(.35rem, .8vw, .75rem); width: 100%; max-width: 1200px; }
.reel li { aspect-ratio: 3 / 4; overflow: hidden; position: relative; }
.reel img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) brightness(.75); transition: filter .8s var(--ease), transform .8s var(--ease); }
.reel li:hover img { filter: grayscale(0) brightness(1); transform: scale(1.04); }
.reel.is-in li { animation: reelIn 1.2s var(--ease) both; }
.reel.is-in li:nth-child(2) { animation-delay: .08s; } .reel.is-in li:nth-child(3) { animation-delay: .16s; }
.reel.is-in li:nth-child(4) { animation-delay: .24s; } .reel.is-in li:nth-child(5) { animation-delay: .32s; }
.reel.is-in li:nth-child(6) { animation-delay: .40s; } .reel.is-in li:nth-child(7) { animation-delay: .48s; }
@keyframes reelIn { from { opacity: 0; transform: translateY(30px); clip-path: inset(100% 0 0 0); } to { opacity: 1; transform: none; clip-path: inset(0 0 0 0); } }
.finale__name {
  margin: 1rem 0 0; font-family: var(--serif); font-weight: 250; font-variation-settings: "opsz" 144;
  font-size: clamp(3.6rem, 13vw, 12rem); line-height: 1; letter-spacing: .12em; text-transform: uppercase; margin-right: -.12em;
}
.finale__name.reveal { transform: none; filter: blur(12px); letter-spacing: .35em; transition: opacity 2s var(--ease), filter 2s var(--ease), letter-spacing 2.4s var(--ease); }
.finale__name.reveal.is-in { filter: blur(0); letter-spacing: .12em; }

/* ---------- Atelier (production bible) ---------- */
.atelier { padding: clamp(7rem, 16vh, 11rem) var(--gutter); background: var(--ink-2); border-top: 1px solid var(--cream-faint); }
.atelier__inner { max-width: 1400px; margin: 0 auto; }
.atelier__head { margin: 0 0 clamp(3.5rem, 8vh, 5.5rem); }
.atelier__title { font-family: var(--serif); font-weight: 250; font-variation-settings: "opsz" 144; font-size: clamp(2.4rem, 6vw, 5.6rem); line-height: 1; margin: 0; letter-spacing: -.02em; max-width: 18ch; }
.atelier__title em { color: var(--k-gold); font-weight: 250; }
.atelier__block { margin: 0 0 clamp(4rem, 9vh, 6rem); }
.atelier__block:last-child { margin-bottom: 0; }
.atelier__sub { color: var(--cream); margin: 0 0 1.6rem; padding-bottom: 1rem; border-bottom: 1px solid var(--cream-faint); }
.atelier__sub span { color: var(--cream-dim); }
.atelier__footnote { color: var(--cream-dim); font-size: .6rem; margin: 1.4rem 0 0; }

.palette { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(.6rem, 1.4vw, 1.25rem); }
.palette__chip { display: flex; flex-direction: column; gap: .35rem; }
.palette__chip i { display: block; aspect-ratio: 4 / 3; background: var(--sw); box-shadow: inset 0 0 0 1px rgba(207,196,177,.14); margin-bottom: .7rem; }
.palette__chip b { font-family: var(--serif); font-weight: 300; font-size: clamp(1rem, 1.4vw, 1.25rem); }
.palette__chip span { font-family: var(--mono); font-size: .6rem; letter-spacing: .16em; text-transform: uppercase; color: var(--cream-dim); font-variant-numeric: tabular-nums; }
.palette .reveal:nth-child(2) { transition-delay: .08s; } .palette .reveal:nth-child(3) { transition-delay: .16s; }
.palette .reveal:nth-child(4) { transition-delay: .24s; } .palette .reveal:nth-child(5) { transition-delay: .32s; }

.atelier__look { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.4fr); gap: 0 3rem; }
.atelier__look .atelier__sub { border-bottom: 0; padding-bottom: 0; }
.atelier__note { font-family: var(--serif); font-weight: 300; font-size: clamp(1.15rem, 1.7vw, 1.5rem); line-height: 1.5; margin: 0 0 2rem; max-width: 52ch; }
.atelier__note em { color: var(--k-gold); }
.spec { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; color: var(--cream-dim); font-size: .6rem; }
.spec li { padding: .4rem .65rem; border: 1px solid var(--cream-faint); }
.spec li:first-child { border-color: var(--k-gold); color: var(--cream); }

.bible { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.75rem); }
.bible__card { position: relative; display: flex; flex-direction: column; padding: 0 0 1.5rem; background: var(--ink); border: 1px solid var(--cream-faint); border-top: 2px solid var(--accent); overflow: hidden; }
.bible__thumb { position: relative; aspect-ratio: 3 / 4; overflow: hidden; margin: 0 0 1.4rem; background: var(--ink-2); }
.bible__thumb img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; filter: saturate(.85) contrast(1.05); transition: transform 2.2s var(--ease); }
.bible__card:hover .bible__thumb img { transform: scale(1.04); }
.bible__thumb::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(207,196,177,.1); background: linear-gradient(to top, rgba(21,21,21,.6), transparent 42%), linear-gradient(0deg, color-mix(in srgb, var(--accent) 30%, transparent), transparent 55%); mix-blend-mode: normal; pointer-events: none; }
.bible__thumb::before { content: ""; position: absolute; inset: 0; z-index: 1; background: color-mix(in srgb, var(--accent) 16%, transparent); mix-blend-mode: color; pointer-events: none; }
.bible__body { padding: 0 1.5rem; display: flex; flex-direction: column; flex: 1; }
.bible__ep { display: flex; align-items: center; gap: .8rem; color: var(--cream-dim); margin: 0 0 1.2rem; font-size: .62rem; }
.bible__ep .ep__badge { padding: .35rem .55rem .3rem; }
.bible__who { font-family: var(--serif); font-weight: 300; font-size: clamp(1.1rem, 1.4vw, 1.3rem); line-height: 1.3; margin: 0 0 1.3rem; }
.bible__who span { display: block; font-family: var(--mono); font-size: .6rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--cream-dim); margin-top: .35rem; }
.bible__card dl { margin: 0; display: flex; flex-direction: column; gap: 1rem; }
.bible__card dt { color: var(--accent); font-size: .58rem; margin-bottom: .3rem; }
.bible__card dd { margin: 0; color: var(--cream-dim); font-size: .92rem; line-height: 1.6; }
.bible__card dd.bible__na { font-style: italic; color: rgba(207,196,177,.42); }
.bible__dir { margin: auto 0 0; padding-top: 1.3rem; font-family: var(--serif); font-style: italic; font-weight: 300; font-size: 1.05rem; color: var(--cream); }
.bible__dir::before { content: ""; display: block; width: 2rem; height: 1px; background: var(--accent); margin: 0 0 1rem; }
.bible .reveal:nth-child(3n+2) { transition-delay: .1s; }
.bible .reveal:nth-child(3n+3) { transition-delay: .2s; }

/* ---------- Close ---------- */
.close { position: relative; min-height: 100vh; padding: clamp(7rem, 16vh, 11rem) var(--gutter) 3rem; display: flex; flex-direction: column; justify-content: center; overflow: hidden; isolation: isolate; border-top: 1px solid var(--cream-faint); }
.close__bg { position: absolute; z-index: -1; top: 0; bottom: 0; right: 0; width: 38%; }
.close__bg img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) brightness(.5); }
.close__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--ink), rgba(21,21,21,.2) 60%); }
.close__inner { max-width: 1400px; width: 100%; margin: 0 auto; }
.close__title { font-family: var(--serif); font-weight: 250; font-variation-settings: "opsz" 144; font-size: clamp(2.6rem, 7vw, 7rem); line-height: 1; margin: 0 0 2.5rem; letter-spacing: -.02em; }
.close__title em { color: var(--k-gold); }
.close__text { color: var(--cream-dim); max-width: 50ch; margin: 0 0 4rem; }
.credits dl { display: grid; grid-template-columns: repeat(3, minmax(0, 14rem)); gap: 2rem; margin: 0 0 4rem; }
.credits dt { color: var(--cream-dim); font-size: .62rem; margin-bottom: .5rem; }
.credits dd { margin: 0; font-family: var(--serif); font-weight: 300; font-size: 1.35rem; }
.close__back { text-decoration: none; color: var(--cream-dim); border-bottom: 1px solid var(--cream-faint); padding-bottom: .3rem; transition: color .3s, border-color .3s; }
.close__back:hover { color: var(--cream); border-color: var(--cream); }
/* ---------- Footer ---------- */
.foot { background: var(--ink-2); border-top: 1px solid var(--cream-faint); padding: clamp(4rem, 10vh, 6rem) var(--gutter) 2.5rem; }
.foot__inner { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 2fr); gap: 3rem; align-items: start; }
.foot__brand { display: flex; flex-direction: column; align-items: flex-start; gap: 1.6rem; }
.foot__brand .barcode { color: var(--amber); }
.foot__tag { margin: 0; font-family: var(--serif); font-weight: 300; font-size: clamp(1.1rem, 1.6vw, 1.4rem); color: var(--cream); }
.foot__tags { display: flex; flex-direction: column; gap: .35rem; }
.foot__tag-ar { margin: 0; font-family: var(--arabic); font-weight: 300; font-size: clamp(.82rem, 1vw, .95rem); letter-spacing: 0; color: var(--cream-dim); text-align: right; }

/* ---------- Arabic gloss layer, section headings/paragraphs (extends the hero/episode/footer glosses) ---------- */
.gloss-h-ar {
  display: block; font-family: var(--arabic); font-weight: 300; letter-spacing: 0; text-align: right;
  font-size: clamp(1rem, 1.6vw, 1.5rem); line-height: 1.5; color: var(--cream-dim); margin: .6rem 0 0;
}
.gloss-p-ar {
  display: block; font-family: var(--arabic); font-weight: 300; letter-spacing: 0; text-align: right;
  font-size: clamp(.84rem, .3vw + .78rem, .96rem); line-height: 1.85; color: rgba(207, 196, 177, .5); margin: .9rem 0 0; max-width: 46rem;
}
.snapshot__title-ar, .index__title-ar, .atelier__title-ar, .close__title-ar { text-align: inherit; }
.close .gloss-h-ar, .close .gloss-p-ar { text-align: right; margin-left: auto; }
.atelier__title-ar, .close__title-ar {
  display: block; font-family: var(--arabic); font-weight: 300; letter-spacing: 0; text-align: right;
  font-size: clamp(1rem, 1.6vw, 1.5rem); line-height: 1.5; color: var(--cream-dim); margin: .6rem 0 0;
}
.atelier__note-ar, .close__text-ar {
  display: block; font-family: var(--arabic); font-weight: 300; letter-spacing: 0; text-align: right;
  font-size: clamp(.84rem, .3vw + .78rem, .96rem); line-height: 1.85; color: rgba(207, 196, 177, .5); margin: .9rem 0 0; max-width: 46rem;
}
.stat__lbl-ar {
  display: block; font-family: var(--arabic); font-weight: 300; letter-spacing: 0; text-transform: none;
  font-size: .72rem; line-height: 1.6; color: rgba(207, 196, 177, .55); max-width: 22ch; margin-top: .3rem;
}
.atelier__sub-ar {
  font-family: var(--arabic); font-weight: 400; letter-spacing: 0; text-transform: none;
  font-size: .68rem; color: var(--cream-dim); margin-left: .7em;
}
.index__ar {
  font-family: var(--arabic); font-weight: 400; letter-spacing: 0; text-transform: none;
  font-size: .72em; color: var(--cream-dim); margin-left: .6em; opacity: .85;
}
.bible__ar {
  font-family: var(--arabic); font-weight: 300; letter-spacing: 0; text-align: right;
  font-size: .76rem; line-height: 1.6; color: rgba(207, 196, 177, .55); margin: .6rem 0 0;
}
.credits__ar {
  font-family: var(--arabic); font-weight: 400; letter-spacing: 0; text-transform: none;
  font-size: .85em; color: var(--cream-dim); margin-left: .5em;
}
.foot__contact { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; margin: 0; }
.foot__contact dt { color: var(--cream-dim); font-size: .6rem; margin-bottom: .6rem; }
.foot__contact dd { margin: 0; font-size: .95rem; line-height: 1.6; }
.foot__contact a { text-decoration: none; border-bottom: 1px solid var(--cream-faint); transition: border-color .3s, color .3s; }
.foot__contact a:hover { color: var(--dawn); border-color: var(--k-gold); }
.foot__contact .hot { font-family: var(--serif); font-weight: 400; font-size: 1.6rem; letter-spacing: .04em; border: 0; }
.fine { margin: 4.5rem auto 0; max-width: 1400px; width: 100%; color: rgba(207,196,177,.32); font-size: .56rem; line-height: 1.9; letter-spacing: .14em; padding-top: 1.6rem; border-top: 1px solid var(--cream-faint); }

/* ---------- Reveal system ---------- */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity 1.2s var(--ease), transform 1.2s var(--ease); }
.reveal.is-in { opacity: 1; transform: none; }
.reveal--img { transform: none; clip-path: inset(12% 0 0 0); transition: opacity 1.4s var(--ease), clip-path 1.6s var(--ease); }
.reveal--img.is-in { clip-path: inset(0 0 0 0); }
.ep__copy .reveal:nth-child(2) { transition-delay: .1s; }
.ep__copy .reveal:nth-child(3) { transition-delay: .2s; }
.ep__copy .reveal:nth-child(4) { transition-delay: .3s; }
.ep__copy .reveal:nth-child(5) { transition-delay: .4s; }
.ep__copy .reveal:nth-child(6) { transition-delay: .5s; }
.ep__copy .reveal:nth-child(7) { transition-delay: .6s; }
.stats .reveal:nth-child(2), .stats .reveal:nth-child(5) { transition-delay: .1s; }
.stats .reveal:nth-child(3), .stats .reveal:nth-child(6) { transition-delay: .2s; }
.no-js .reveal { opacity: 1; transform: none; clip-path: none; filter: none; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .concept__grid { grid-template-columns: 1fr; gap: 1rem; }
  .stats { grid-template-columns: 1fr 1fr; }
  .stat, .stat:nth-child(3n+2), .stat:nth-child(3n+3) { padding: 1.8rem 1.2rem 1.8rem 0; border-left: 0; }
  .stat:nth-child(even) { padding-left: 1.2rem; border-left: 1px solid var(--cream-faint); }
  .index__list { grid-template-columns: 1fr; }
  .ep--portrait, .ep--evo { grid-template-columns: 1fr; gap: 2.5rem; align-content: center; }
  .ep--flip .ep__media { order: 0; }
  .ep__media { height: auto; max-height: 70vh; width: min(100%, 52.5vh); }
  .ep__num { top: 2rem; transform: none; font-size: 9rem; right: -.5rem; }
  .ep--flip .ep__num, .ep--evo .ep__num { left: auto; right: -.5rem; }
  .ep--voice .ep__num { left: auto; right: -.5rem; transform: none; }
  .ep__bg--side { width: 100%; }
  .ep__bg--side::after { background: linear-gradient(180deg, rgba(21,21,21,.55), var(--ink) 75%); }
  .ep__bg--community::after { background: linear-gradient(180deg, rgba(21,21,21,.5), rgba(21,21,21,.7) 45%, var(--ink) 85%); }
  .ep__credit, .ep--community .ep__credit { left: auto; right: var(--gutter); bottom: 1.2rem; }
  .ep__q::before { margin-left: 0; }
  .pair { grid-template-columns: 1fr 1fr; }
  .pair__rule { display: none; }
  .reel { grid-template-columns: repeat(4, 1fr); }
  .reel li:nth-child(n+5) { display: none; }
  .palette { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 1.6rem; }
  .atelier__look { grid-template-columns: 1fr; }
  .bible { grid-template-columns: 1fr 1fr; }
  .bible .reveal:nth-child(n) { transition-delay: 0s; }
  .credits dl { grid-template-columns: 1fr; gap: 1.2rem; }
  .close__bg { width: 100%; opacity: .35; }
  .hero__tc { display: none; }
  .foot__inner { grid-template-columns: 1fr; }
  .foot__contact { grid-template-columns: 1fr; gap: 1.4rem; }
  .slate__series { display: none; }
  .slate__now { max-width: 50%; text-align: right; }
}
@media (max-width: 520px) {
  .stats { grid-template-columns: 1fr; }
  .stat:nth-child(even) { padding-left: 0; border-left: 0; }
  .hero__word { letter-spacing: .08em; margin-right: -.08em; }
  @keyframes wordIn { to { opacity: 1; filter: blur(0); letter-spacing: .08em; } }
  .pair__item--low { margin-top: 3rem; }
  .palette { grid-template-columns: 1fr 1fr; }
  .bible { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0s !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  .grain { animation: none; }
  html { scroll-behavior: auto; }
}
