/* ============================================================
   BajoZone — Main Stylesheet
   Black & White Editorial Aesthetic
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400&family=Tajawal:wght@300;400;500;700;900&family=Space+Mono:ital,wght@0,400;0,700;1,400&display=swap');

/* ── Variables ─────────────────────────────── */
:root {
  --ink:       #0a0a0a;
  --paper:     #f2f1ed;
  --off-white: #e8e7e3;
  --warm-mid:  #b0a99a;
  --warm-dark: #5a5550;
  --gold:      #c8a86e;
  --gold-dim:  rgba(200,168,110,0.18);
  --line:      rgba(255,255,255,0.07);
  --line-s:    rgba(255,255,255,0.04);
  --t: 0.38s cubic-bezier(.25,.46,.45,.94);
  --ff-display: 'Playfair Display', 'Tajawal', Georgia, serif;
  --ff-body:    'Tajawal', 'Segoe UI', sans-serif;
  --ff-mono:    'Space Mono', 'Courier New', monospace;
  --r: 0px; /* sharp corners throughout */
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; -webkit-text-size-adjust: 100%; }

body {
  background: var(--ink);
  color: var(--paper);
  font-family: var(--ff-body);
  line-height: 1.75;
  overflow-x: hidden;
  min-height: 100vh;
}

body[dir="rtl"] { font-family: 'Tajawal', sans-serif; }
body[dir="ltr"] { font-family: 'Playfair Display', 'Tajawal', sans-serif; }
html[lang="ar"] {
  --ff-display: 'Tajawal', 'Segoe UI', sans-serif;
  --ff-body: 'Tajawal', 'Segoe UI', sans-serif;
  --ff-mono: 'Tajawal', 'Segoe UI', sans-serif;
}

/* Subtle grain */
body::after {
  content: '';
  position: fixed; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events: none; z-index: 9999; opacity: .5;
}

::-webkit-scrollbar { width: 3px; }
::-webkit-scrollbar-track { background: var(--ink); }
::-webkit-scrollbar-thumb { background: var(--gold); }

/* ── Typography ─────────────────────────────── */
a { color: inherit; text-decoration: none; }

/* ── Utility ────────────────────────────────── */
.container { max-width: 1180px; margin: 0 auto; width: 100%; padding: 0 40px; }
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: none; }

/* ── NAV ─────────────────────────────────────── */
.nav {
  position: fixed; top: 0; inset-inline: 0;
  height: 68px; z-index: 900;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 40px;
  background: linear-gradient(180deg, rgba(10,10,10,.88), rgba(10,10,10,.58));
  transition: background var(--t), box-shadow var(--t), backdrop-filter var(--t);
  box-shadow: none;
  backdrop-filter: blur(14px) saturate(1.2);
}
.nav.scrolled {
  background: rgba(10,10,10,.95);
  backdrop-filter: blur(18px) saturate(1.4);
  box-shadow: 0 16px 34px rgba(0,0,0,.26);
}
.nav-brand { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.nav-brand img { height: 42px; width: auto; filter: brightness(0) invert(1); display: block; }
.nav.scrolled .nav-brand img,
.nav.dark-logo .nav-brand img { filter: brightness(0) invert(1); }
.nav-brand-name {
  font-family: var(--ff-mono);
  font-size: .95rem; letter-spacing: .18em;
  color: var(--paper); text-transform: uppercase;
}
.nav-links { display: flex; align-items: center; gap: 32px; list-style: none; }
.nav-links a {
  font-size: .82rem; letter-spacing: .1em; color: var(--warm-mid);
  transition: color var(--t); position: relative; padding-bottom: 2px;
}
.nav-links a::after {
  content: ''; position: absolute; bottom: -2px; inset-inline: 0;
  height: 1px; background: var(--gold);
  transform: scaleX(0); transform-origin: inline-end;
  transition: transform var(--t);
}
.nav-links a:hover, .nav-links a.active { color: var(--paper); }
.nav-links a:hover::after, .nav-links a.active::after { transform: scaleX(1); transform-origin: inline-start; }

.nav-right { display: flex; align-items: center; gap: 10px; }
.lang-btn {
  background: transparent; border: 1px solid var(--warm-dark);
  color: var(--warm-mid); padding: 5px 14px;
  font-family: var(--ff-mono); font-size: .72rem; letter-spacing: .12em;
  cursor: pointer; transition: all var(--t);
}
.lang-btn:hover { border-color: var(--paper); color: var(--paper); }

.hamburger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 4px; }
.hamburger span { display: block; width: 22px; height: 1px; background: var(--paper); transition: all var(--t); }

/* Mobile nav drawer */
.mobile-nav {
  position: fixed; top: 68px; inset-inline: 0;
  background: rgba(10,10,10,.98); border-bottom: 1px solid var(--line);
  z-index: 850; padding: 28px 40px 32px;
  transform: translateY(-110%); transition: transform var(--t);
  backdrop-filter: blur(20px);
}
.mobile-nav.open { transform: translateY(0); }
.mobile-nav ul { list-style: none; display: flex; flex-direction: column; gap: 20px; }
.mobile-nav a { font-size: 1.1rem; color: var(--paper); }
.new-article-bar {
  position: fixed; top: 0; inset-inline: 0; height: 38px; z-index: 960;
  display: flex; align-items: center; justify-content: center; gap: 12px;
  background: var(--paper); color: var(--ink);
  border-bottom: 1px solid rgba(0,0,0,.12);
}
.new-bar-link {
  border: none; background: transparent; color: inherit; cursor: pointer;
  display: inline-flex; align-items: center; gap: 10px; max-width: min(760px, calc(100vw - 96px));
  font-family: var(--ff-body); overflow: hidden;
}
.new-bar-link span {
  color: var(--ink); font-size: .72rem; font-weight: 800; white-space: nowrap;
}
.new-bar-link strong {
  font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.new-bar-close {
  position: absolute; inset-inline-end: 14px; top: 6px;
  width: 26px; height: 26px; border: 1px solid rgba(0,0,0,.16);
  background: transparent; color: var(--ink); cursor: pointer; font-size: 1rem; line-height: 1;
}
body.has-new-bar .nav { top: 38px; }
body.has-new-bar .mobile-nav { top: 38px; }
body.has-new-bar .hero { padding-top: 148px; }
body.focus-reading .new-article-bar { display: none; }
body.focus-reading.has-new-bar .nav { top: 0; }


.btn { display: inline-flex; align-items: center; gap: 9px; cursor: pointer; font-family: var(--ff-body); font-weight: 700; font-size: .88rem; letter-spacing: .06em; border: none; padding: 13px 32px; transition: all var(--t); text-decoration: none; }
.btn-fill { background: var(--paper); color: var(--ink); }
.btn-fill:hover { background: var(--gold); box-shadow: 0 18px 40px rgba(200,168,110,.25); transform: translateY(-2px); }
.btn-ghost { background: transparent; color: var(--paper); border: 1px solid rgba(255,255,255,.2); }
.btn-ghost:hover { border-color: var(--paper); background: rgba(255,255,255,.04); }


/* ── TICKER ──────────────────────────────────── */
.ticker {
  border-block: 1px solid var(--line);
  background: rgba(255,255,255,.018);
  padding: 13px 0; overflow: hidden; white-space: nowrap;
}
.ticker-track { display: inline-flex; animation: scroll-x 28s linear infinite; }
.ticker-track:hover { animation-play-state: paused; }
.ticker-item {
  display: inline-block; padding: 0 44px;
  font-family: var(--ff-mono); font-size: .7rem;
  letter-spacing: .22em; color: var(--warm-dark); text-transform: uppercase;
}
.ticker-item .dot { color: var(--gold); margin: 0 6px; }

/* ── HOME EDITORIAL GRIDS ───────────────────── */
.story-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.story-feature .card { height: 100%; }
@media (max-width: 900px) {
  .story-feature-grid { grid-template-columns: 1fr; }
}
.portfolio-hero .hero-bg {
  background:
    radial-gradient(ellipse 80% 70% at 18% 62%, rgba(54,91,72,.18), transparent 65%),
    radial-gradient(ellipse 52% 48% at 82% 18%, rgba(200,168,110,.08), transparent 58%),
    linear-gradient(180deg, rgba(255,255,255,.018), transparent 48%);
}
.portfolio-hero .hero-h1 {
  font-size: clamp(3.8rem, 11vw, 9rem);
  max-width: 960px;
}
.portfolio-hero .hero-h1 em {
  -webkit-text-stroke: 1px rgba(200,168,110,.82);
  color: rgba(200,168,110,.06);
  font-size: .62em;
  display: inline-block;
}
.hero-thesis {
  max-width: 560px; margin-top: 16px;
  color: var(--warm-dark); line-height: 1.85; font-size: .96rem;
  opacity: 0; animation: fadeu .9s .72s forwards;
}
.hero-proof {
  display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px;
  opacity: 0; animation: fadeu .9s .95s forwards;
}
.hero-proof span {
  border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.025);
  color: var(--warm-mid); padding: 10px 13px; font-family: var(--ff-mono);
  font-size: .65rem; letter-spacing: .08em;
}
.hero-proof b { color: var(--gold); margin-inline-end: 8px; }
.editorial-band {
  background:
    linear-gradient(180deg, rgba(255,255,255,.018), rgba(255,255,255,.008)),
    rgba(255,255,255,.006);
  border-block: 1px solid var(--line);
}
.story-reveal,
.editorial-card,
.expertise-node,
.project-panel {
  opacity: 0; transform: translateY(34px);
  transition: opacity .75s ease var(--delay, 0ms), transform .75s ease var(--delay, 0ms), border-color var(--t), background var(--t), box-shadow var(--t);
}
.story-reveal.in-view,
.editorial-card.in-view,
.expertise-node.in-view,
.project-panel.in-view { opacity: 1; transform: none; }
.identity-grid {
  display: grid; grid-template-columns: minmax(0,.92fr) minmax(380px,1.08fr);
  gap: clamp(42px, 7vw, 96px); align-items: center;
}
.identity-lead {
  color: var(--warm-mid); font-size: 1.06rem; line-height: 2;
  max-width: 660px; margin-bottom: 24px;
}
.text-link {
  display: inline-flex; align-items: center; gap: 8px; color: var(--gold);
  font-family: var(--ff-mono); font-size: .74rem; letter-spacing: .12em;
  border-bottom: 1px solid rgba(200,168,110,.32); padding-bottom: 5px;
}
.research-board {
  --mx: 0px; --my: 0px; --rx: 0deg; --ry: 0deg; --spot-x: 50%; --spot-y: 50%;
  position: relative; min-height: 520px; overflow: hidden;
  border: 1px solid rgba(255,255,255,.08);
  background:
    radial-gradient(circle at var(--spot-x) var(--spot-y), rgba(54,91,72,.26), transparent 30%),
    linear-gradient(135deg, rgba(255,255,255,.05), rgba(255,255,255,.014));
  box-shadow: 0 28px 70px rgba(0,0,0,.35);
  transform: perspective(900px) rotateX(var(--rx)) rotateY(var(--ry)) translate3d(var(--mx), var(--my), 0);
}
.board-grid {
  position: absolute; inset: 0; opacity: .38;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 42px 42px;
}
.board-note {
  position: absolute; padding: 18px; width: min(250px, 48%);
  background: rgba(10,10,10,.68); border: 1px solid rgba(255,255,255,.1);
  color: var(--warm-mid); font-size: .82rem; backdrop-filter: blur(12px);
}
.board-note b { display: block; color: var(--paper); font-family: var(--ff-display); font-size: 1.25rem; margin-top: 6px; }
.note-a { top: 44px; inset-inline-start: 44px; }
.note-b { bottom: 44px; inset-inline-end: 44px; }
.board-chart {
  position: absolute; inset-inline-start: 14%; bottom: 18%; width: 44%; height: 34%;
  display: flex; align-items: end; gap: 12px; padding: 16px;
  border: 1px solid rgba(255,255,255,.08);
}
.board-chart span { flex: 1; background: linear-gradient(180deg, var(--gold), rgba(54,91,72,.42)); }
.board-chart span:nth-child(1) { height: 46%; }
.board-chart span:nth-child(2) { height: 68%; }
.board-chart span:nth-child(3) { height: 54%; }
.board-chart span:nth-child(4) { height: 86%; }
.board-path { position: absolute; inset: 20%; border: 1px solid rgba(255,255,255,.08); }
.board-path i {
  position: absolute; width: 13px; height: 13px; border-radius: 50%;
  background: var(--paper); box-shadow: 0 0 0 7px rgba(255,255,255,.07);
}
.board-path i:nth-child(1) { top: 20%; inset-inline-start: 24%; }
.board-path i:nth-child(2) { top: 48%; inset-inline-start: 58%; background: var(--gold); }
.board-path i:nth-child(3) { top: 70%; inset-inline-start: 38%; }
.featured-editorial { background: var(--ink); }
.editorial-grid {
  display: grid; grid-template-columns: 1.2fr .9fr .9fr; gap: 14px;
}
.editorial-card {
  position: relative; min-height: 390px; padding: 28px;
  border: 1px solid var(--line); background: rgba(255,255,255,.024);
  display: flex; flex-direction: column; cursor: pointer; overflow: hidden;
}
.editorial-card:first-child { min-height: 470px; }
.editorial-card::after {
  content: ''; position: absolute; inset-inline: 28px; bottom: 28px; height: 1px;
  background: linear-gradient(90deg, var(--gold), transparent);
  transform: scaleX(.3); transform-origin: inline-start; transition: transform var(--t);
}
.editorial-card:hover { border-color: rgba(200,168,110,.32); background: rgba(255,255,255,.038); box-shadow: 0 28px 60px rgba(0,0,0,.34); }
.editorial-card:hover::after { transform: scaleX(1); }
.editorial-card-index { color: rgba(200,168,110,.54); font-family: var(--ff-mono); font-size: .74rem; margin-bottom: 30px; }
.editorial-card h3 { color: var(--paper); font-family: var(--ff-display); font-size: clamp(1.35rem, 2.4vw, 2.15rem); line-height: 1.18; margin: 18px 0; }
.editorial-card p { color: var(--warm-mid); line-height: 1.85; }
.editorial-card-meta { margin-top: auto; padding-top: 28px; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; color: var(--warm-dark); font-family: var(--ff-mono); font-size: .68rem; }
.editorial-card-meta b { color: var(--gold); margin-inline-start: auto; }
.expertise-map {
  display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px;
  border: 1px solid var(--line); background: var(--line);
}
.expertise-node {
  min-height: 260px; padding: 22px; background: #0d0d0c;
  display: flex; flex-direction: column; justify-content: space-between;
}
.expertise-node:nth-child(2n) { background: #10110f; }
.expertise-node span { color: var(--gold); font-family: var(--ff-mono); font-size: .65rem; }
.expertise-node h3 { color: var(--paper); font-family: var(--ff-display); font-size: 1.12rem; line-height: 1.22; margin: 28px 0 12px; }
.expertise-node p { color: var(--warm-mid); font-size: .88rem; line-height: 1.72; }
.expertise-node:hover { background: rgba(54,91,72,.13); border-color: rgba(54,91,72,.35); }
.projects-grid { display: grid; gap: 18px; }
.project-panel {
  display: grid; grid-template-columns: minmax(220px,.46fr) 1fr; gap: 28px; align-items: center;
  padding: 24px; border: 1px solid var(--line); background: rgba(255,255,255,.018);
}
.project-panel:hover { border-color: rgba(200,168,110,.28); background: rgba(255,255,255,.03); }
.project-visual {
  position: relative; min-height: 190px; border: 1px solid rgba(255,255,255,.08);
  background:
    linear-gradient(90deg, transparent 49%, rgba(255,255,255,.12) 50%, transparent 51%),
    radial-gradient(circle at 50% 50%, transparent 0 26%, rgba(255,255,255,.11) 27% 28%, transparent 29%),
    rgba(54,91,72,.1);
}
.project-visual span { position: absolute; width: 10px; height: 10px; border-radius: 50%; background: var(--paper); }
.project-visual span:nth-child(1) { top: 28%; inset-inline-start: 24%; }
.project-visual span:nth-child(2) { top: 58%; inset-inline-start: 58%; background: var(--gold); }
.project-visual span:nth-child(3) { top: 38%; inset-inline-start: 76%; }
.project-panel small { color: var(--gold); font-family: var(--ff-mono); font-size: .65rem; letter-spacing: .16em; }
.project-panel h3 { color: var(--paper); font-family: var(--ff-display); font-size: clamp(1.6rem, 3vw, 2.6rem); margin: 12px 0; }
.project-panel p { color: var(--warm-mid); line-height: 1.9; max-width: 720px; }
.refined-grid { gap: 14px; }
.books-showcase { background: rgba(255,255,255,.01); }
.contact-finale { padding-top: 0; }
.contact-finale-inner {
  display: flex; justify-content: space-between; align-items: center; gap: 28px;
  padding: clamp(28px, 5vw, 58px); border: 1px solid rgba(200,168,110,.22);
  background: linear-gradient(135deg, rgba(54,91,72,.14), rgba(255,255,255,.018));
}
.contact-finale h2 { color: var(--paper); font-family: var(--ff-display); font-size: clamp(2rem, 4.5vw, 4rem); line-height: 1.05; margin-bottom: 16px; }
.contact-finale p { color: var(--warm-mid); max-width: 720px; line-height: 1.85; }

/* ── SECTION ANATOMY ─────────────────────────── */
section { padding: 96px 0; }
.section-label {
  font-family: var(--ff-mono); font-size: .68rem;
  letter-spacing: .32em; color: var(--gold); text-transform: uppercase;
  display: flex; align-items: center; gap: 12px; margin-bottom: 14px;
}
.section-label::before { content: ''; width: 28px; height: 1px; background: var(--gold); }
.section-title {
  font-family: var(--ff-display); font-size: clamp(2rem, 4.5vw, 3.4rem);
  font-weight: 700; color: var(--paper); line-height: 1.1; margin-bottom: 18px;
}
.section-sub { color: var(--warm-mid); font-size: 1.02rem; max-width: 580px; line-height: 1.85; margin-bottom: 56px; }
.section-header { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 20px; margin-bottom: 52px; }
.section-header .section-sub { margin-bottom: 0; }

.home-talent-panel {
  --mx: 0px; --my: 0px; --rx: 0deg; --ry: 0deg; --spot-x: 50%; --spot-y: 50%;
  width: 100%; height: 460px; position: relative; z-index: 1; overflow: hidden;
  border: 1px solid rgba(200,168,110,.28);
  background:
    radial-gradient(circle at var(--spot-x) var(--spot-y), rgba(200,168,110,.2), transparent 28%),
    linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.014));
  box-shadow: 0 26px 56px rgba(0,0,0,.28);
  transform: perspective(900px) rotateX(var(--rx)) rotateY(var(--ry));
  transition: transform .16s ease, background .12s ease;
}
.talent-panel-grid {
  position: absolute; inset: 0; opacity: .42;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 38px 38px;
}
.home-talent-panel::before {
  content: ''; position: absolute; inset: 10%; border: 1px solid rgba(255,255,255,.13);
  background:
    linear-gradient(90deg, transparent 49.5%, rgba(255,255,255,.16) 50%, transparent 50.5%),
    radial-gradient(circle at 50% 50%, transparent 0 18%, rgba(255,255,255,.14) 18.5% 19%, transparent 19.5%);
}
.home-talent-panel::after {
  content: ''; position: absolute; inset-block: 0; width: 38%;
  inset-inline-start: calc(var(--spot-x) - 19%);
  background: linear-gradient(90deg, transparent, rgba(200,168,110,.18), transparent);
  transition: inset-inline-start .14s ease;
}
.talent-panel-mark {
  position: absolute; top: 24px; inset-inline-start: 24px;
  font-family: var(--ff-mono); font-size: .68rem; letter-spacing: .24em; color: var(--gold);
}
.talent-player-card {
  position: absolute; inset-inline: 24px; bottom: 24px; padding: 20px;
  background: rgba(10,10,10,.72); border: 1px solid rgba(255,255,255,.1);
  backdrop-filter: blur(14px);
}
.talent-player-card span { display: block; color: var(--gold); font-family: var(--ff-mono); font-size: .66rem; letter-spacing: .16em; margin-bottom: 8px; }
.talent-player-card strong { color: var(--paper); font-family: var(--ff-display); font-size: 1.55rem; }
.talent-player-card p { color: var(--warm-mid); line-height: 1.7; margin-top: 9px; font-size: .95rem; }
.talent-map {
  position: absolute; inset: 72px 52px 130px; border: 1px solid rgba(255,255,255,.08);
}
.map-dot {
  position: absolute; width: 12px; height: 12px; border-radius: 50%; background: var(--paper);
  box-shadow: 0 0 0 5px rgba(255,255,255,.08), 0 0 24px rgba(200,168,110,.45);
  animation: player-float 5s ease-in-out infinite;
}
.d1 { top: 28%; inset-inline-start: 22%; }
.d2 { top: 54%; inset-inline-start: 60%; animation-delay: -1s; background: var(--gold); }
.d3 { top: 36%; inset-inline-start: 78%; animation-delay: -1.8s; }
.map-ring {
  position: absolute; width: 96px; height: 96px; top: 48%; inset-inline-start: 58%;
  transform: translate(-50%, -50%); border-radius: 50%; border: 1px solid rgba(200,168,110,.82);
  animation: ring-pulse 2.4s ease-in-out infinite;
}
.talent-panel-stats {
  position: absolute; top: 24px; inset-inline-end: 24px; display: flex; gap: 7px; flex-wrap: wrap; justify-content: flex-end;
}
.talent-panel-stats span {
  background: rgba(10,10,10,.58); border: 1px solid rgba(200,168,110,.22);
  color: var(--gold); font-family: var(--ff-mono); font-size: .62rem; padding: 7px 8px;
}

/* ── ABOUT: PERSONAL PORTFOLIO REDESIGN ─────── */
.portfolio-about-page {
  background:
    radial-gradient(ellipse 70% 42% at 18% 8%, rgba(54,91,72,.16), transparent 60%),
    radial-gradient(ellipse 54% 38% at 88% 18%, rgba(200,168,110,.1), transparent 64%),
    var(--ink);
}
.portfolio-hero-section {
  position: relative; min-height: 100svh; display: flex; align-items: center;
  padding: 140px 0 72px; overflow: hidden; border-bottom: 1px solid var(--line);
}
.portfolio-hero-grid-bg {
  position: absolute; inset: 0; opacity: .18; pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 58px 58px;
  mask-image: linear-gradient(180deg, #000, transparent 86%);
}
.portfolio-hero-layout {
  position: relative; z-index: 1; display: grid;
  grid-template-columns: minmax(0, 1.03fr) minmax(320px, .82fr);
  gap: clamp(36px, 7vw, 92px); align-items: center;
}
.portfolio-eyebrow, .portfolio-card-kicker {
  display: inline-flex; color: var(--gold); font-family: var(--ff-mono);
  font-size: .68rem; letter-spacing: .22em; text-transform: uppercase;
}
.portfolio-hero-copy h1 {
  color: var(--paper); font-family: var(--ff-display); font-weight: 900;
  font-size: clamp(3.5rem, 9vw, 8.8rem); line-height: .88; margin: 18px 0 18px;
}
.portfolio-title-line {
  color: var(--gold); font-size: clamp(1.15rem, 2.2vw, 2rem);
  font-weight: 800; margin-bottom: 20px;
}
.portfolio-lead {
  color: var(--warm-mid); font-size: 1.07rem; line-height: 2; max-width: 720px;
}
.portfolio-hero-actions, .portfolio-chip-row {
  display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px;
}
.portfolio-chip-row span, .portfolio-interest-cloud span {
  border: 1px solid rgba(255,255,255,.09); background: rgba(255,255,255,.026);
  color: var(--warm-mid); padding: 9px 12px; font-family: var(--ff-mono);
  font-size: .66rem; letter-spacing: .1em;
}
.portfolio-visual { min-width: 0; }
.portfolio-portrait-panel {
  position: relative; min-height: min(640px, 72vh);
  border: 1px solid rgba(200,168,110,.28); background: rgba(255,255,255,.026);
  overflow: hidden; box-shadow: 0 34px 80px rgba(0,0,0,.44);
}
.portfolio-portrait-panel::before {
  content: ''; position: absolute; inset: 18px; z-index: 2;
  border: 1px solid rgba(255,255,255,.08); pointer-events: none;
}
.portfolio-portrait-panel img {
  width: 100%; height: min(640px, 72vh); min-height: 520px;
  object-fit: cover; display: block; filter: grayscale(.34) contrast(1.08);
  transition: transform var(--t), filter var(--t);
}
.portfolio-portrait-panel:hover img { transform: scale(1.025); filter: grayscale(.08) contrast(1.04); }
.portfolio-portrait-empty {
  min-height: 560px; display: grid; place-items: center; text-align: center;
  color: var(--warm-mid); background: linear-gradient(145deg, rgba(200,168,110,.14), rgba(255,255,255,.02));
}
.portfolio-portrait-empty b { display: block; color: var(--gold); font-family: var(--ff-mono); letter-spacing: .3em; margin-bottom: 14px; }
.portfolio-orbit {
  position: absolute; z-index: 4; display: flex; align-items: center; gap: 10px;
  padding: 11px 13px; border: 1px solid rgba(255,255,255,.12);
  background: rgba(10,10,10,.66); backdrop-filter: blur(12px);
  color: var(--paper); font-size: .78rem; animation: portfolio-float 5.5s ease-in-out infinite;
}
.portfolio-orbit span { color: var(--gold); font-family: var(--ff-mono); font-size: .64rem; }
.portfolio-orbit.p1 { top: 10%; inset-inline-start: -18px; }
.portfolio-orbit.p2 { top: 45%; inset-inline-end: -16px; animation-delay: -1.3s; }
.portfolio-orbit.p3 { bottom: 12%; inset-inline-start: 9%; animation-delay: -2.4s; }
@keyframes portfolio-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}
.portfolio-nav-band { padding: 0; position: sticky; top: 68px; z-index: 20; background: rgba(10,10,10,.84); backdrop-filter: blur(16px); border-bottom: 1px solid var(--line); }
.portfolio-mini-nav { display: flex; gap: 1px; overflow-x: auto; }
.portfolio-mini-nav a {
  flex: 1 0 auto; min-width: 130px; text-align: center; padding: 15px 18px;
  color: var(--warm-mid); border-inline-start: 1px solid var(--line-s);
  font-family: var(--ff-mono); font-size: .68rem; letter-spacing: .12em;
  transition: color var(--t), background var(--t);
}
.portfolio-mini-nav a:hover { color: var(--gold); background: rgba(200,168,110,.055); }
.portfolio-snapshot-section { padding: 34px 0; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.012); }
.portfolio-snapshot-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.portfolio-snapshot-card {
  min-height: 168px; padding: 22px; background: #0d0d0c;
  transition: background var(--t), transform var(--t);
}
.portfolio-snapshot-card:hover { background: rgba(54,91,72,.12); transform: translateY(-3px); }
.portfolio-snapshot-card span, .portfolio-story-node button, .portfolio-lens-card span, .portfolio-project-card span {
  color: rgba(200,168,110,.7); font-family: var(--ff-mono); font-size: .72rem;
}
.portfolio-snapshot-card h3 { color: var(--paper); font-family: var(--ff-display); font-size: 1.35rem; margin: 30px 0 10px; }
.portfolio-snapshot-card p { color: var(--warm-mid); line-height: 1.72; font-size: .9rem; }
.portfolio-story-layout, .portfolio-thinking-grid, .portfolio-work-grid {
  display: grid; grid-template-columns: minmax(280px, .72fr) minmax(0, 1.1fr);
  gap: clamp(28px, 6vw, 76px); align-items: start;
}
.portfolio-section-head h2 {
  color: var(--paper); font-family: var(--ff-display); font-size: clamp(2rem, 4.5vw, 4rem);
  line-height: 1.08; margin: 12px 0 16px;
}
.portfolio-section-head p { color: var(--warm-mid); line-height: 1.9; max-width: 680px; }
.portfolio-story-map { display: grid; gap: 13px; }
.portfolio-story-node {
  display: grid; grid-template-columns: 54px 1fr; gap: 16px; align-items: start;
  padding: 18px; border: 1px solid var(--line); background: rgba(255,255,255,.02);
  transition: border-color var(--t), background var(--t), transform var(--t);
}
.portfolio-story-node:hover { border-color: rgba(200,168,110,.32); background: rgba(200,168,110,.045); transform: translateX(-4px); }
.portfolio-story-node button {
  width: 54px; height: 54px; border: 1px solid rgba(200,168,110,.38);
  background: transparent; cursor: default;
}
.portfolio-story-node h3, .portfolio-lens-card h3, .portfolio-project-card h3, .portfolio-book-feature h3 {
  color: var(--paper); font-family: var(--ff-display); font-size: 1.3rem; margin-bottom: 8px;
}
.portfolio-story-node p, .portfolio-lens-card p, .portfolio-project-card p, .portfolio-book-feature p {
  color: var(--warm-mid); line-height: 1.78;
}
.portfolio-note-section { padding-top: 0; }
.portfolio-note-copy {
  max-width: 940px; margin-inline: auto; padding: clamp(28px, 5vw, 54px);
  border: 1px solid rgba(200,168,110,.2); background: rgba(255,255,255,.02);
  color: var(--warm-mid); line-height: 2;
}
.portfolio-note-copy h2, .portfolio-note-copy h3 { color: var(--paper); font-family: var(--ff-display); margin: 18px 0 10px; }
.portfolio-stations-section { overflow: hidden; border-block: 1px solid var(--line); background: rgba(255,255,255,.012); }
.portfolio-stations-slider {
  margin-top: 24px; overflow: hidden; position: relative;
}
.portfolio-stations-slider::before, .portfolio-stations-slider::after {
  content: ''; position: absolute; top: 0; bottom: 0; width: min(14vw, 150px); z-index: 2; pointer-events: none;
}
.portfolio-stations-slider::before { inset-inline-start: 0; background: linear-gradient(90deg, var(--ink), transparent); }
.portfolio-stations-slider::after { inset-inline-end: 0; background: linear-gradient(270deg, var(--ink), transparent); }
.portfolio-stations-track {
  display: flex; gap: 18px; width: max-content;
  animation: portfolio-station-roll calc(var(--station-count, 6) * 4.5s) linear infinite;
}
.portfolio-stations-slider:hover .portfolio-stations-track { animation-play-state: paused; }
@keyframes portfolio-station-roll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.portfolio-station-card {
  width: clamp(280px, 31vw, 430px); flex: 0 0 auto; overflow: hidden;
  border: 1px solid var(--line); background: rgba(255,255,255,.024);
}
.portfolio-station-card img, .portfolio-station-empty {
  width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: grid; place-items: center;
  background: linear-gradient(135deg, rgba(200,168,110,.16), rgba(54,91,72,.14));
  color: var(--gold); font-family: var(--ff-mono); font-size: 2rem; filter: grayscale(.24);
  transition: filter var(--t), transform var(--t);
}
.portfolio-station-card:hover img { filter: grayscale(0); transform: scale(1.025); }
.portfolio-station-caption { min-height: 188px; padding: 18px; }
.portfolio-station-caption span { color: rgba(200,168,110,.64); font-family: var(--ff-mono); font-size: .68rem; }
.portfolio-station-caption h3 { color: var(--paper); font-family: var(--ff-display); font-size: 1.22rem; margin: 11px 0 8px; }
.portfolio-station-caption p { color: var(--warm-mid); line-height: 1.75; font-size: .92rem; }
.portfolio-lens-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.portfolio-lens-card {
  min-height: 220px; border: 1px solid var(--line); background: rgba(255,255,255,.024);
  padding: 24px; transition: border-color var(--t), background var(--t), transform var(--t);
}
.portfolio-lens-card:hover { border-color: rgba(200,168,110,.3); background: rgba(200,168,110,.05); transform: translateY(-3px); }
.portfolio-lens-card h3 { margin-top: 32px; }
.portfolio-interest-cloud { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.portfolio-quotes-section { padding-top: 0; }
.portfolio-quote-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.portfolio-quote-strip blockquote {
  min-height: 210px; padding: 26px; border: 1px solid rgba(200,168,110,.18);
  background: linear-gradient(135deg, rgba(200,168,110,.08), rgba(255,255,255,.018));
}
.portfolio-quote-strip span { color: var(--gold); font-family: var(--ff-mono); font-size: .72rem; }
.portfolio-quote-strip p { color: var(--paper); font-family: var(--ff-display); font-size: clamp(1.1rem, 1.8vw, 1.5rem); line-height: 1.72; margin-top: 26px; }
.portfolio-book-feature {
  display: grid; grid-template-columns: minmax(150px, 240px) 1fr; gap: 24px; align-items: center;
  border: 1px solid rgba(200,168,110,.22); background: rgba(255,255,255,.024);
  padding: 22px; cursor: pointer; transition: transform var(--t), border-color var(--t), background var(--t);
}
.portfolio-book-feature:hover { transform: translateY(-4px); border-color: rgba(200,168,110,.45); background: rgba(200,168,110,.045); }
.portfolio-book-cover {
  aspect-ratio: 2 / 3; border: 1px solid var(--line); background: rgba(200,168,110,.12);
  display: grid; place-items: center; color: var(--gold); font-family: var(--ff-mono);
}
.portfolio-book-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.portfolio-project-stack { display: grid; gap: 12px; }
.portfolio-project-card {
  padding: 22px; border: 1px solid var(--line); background: rgba(255,255,255,.02);
  transition: transform var(--t), background var(--t);
}
.portfolio-project-card:hover { transform: translateX(-4px); background: rgba(54,91,72,.1); }
.portfolio-services-section { padding-top: 0; }
.portfolio-services-panel {
  display: flex; justify-content: space-between; align-items: center; gap: 28px;
  padding: clamp(30px, 5vw, 62px); border: 1px solid rgba(200,168,110,.28);
  background: linear-gradient(135deg, rgba(54,91,72,.14), rgba(200,168,110,.06));
}
  .portfolio-services-panel h2 {
  color: var(--paper); font-family: var(--ff-display); font-size: clamp(1.8rem, 3.8vw, 3.3rem);
  line-height: 1.1; margin: 12px 0;
}
.portfolio-services-panel p { color: var(--warm-mid); line-height: 1.85; max-width: 760px; }
/* ── ARTICLE CARDS ───────────────────────────── */
.cards-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 2px; }
.card {
  background: var(--ink); border: 1px solid var(--line);
  overflow: hidden; cursor: pointer; display: flex; flex-direction: column;
  transition: transform var(--t), box-shadow var(--t), border-color var(--t);
  position: relative;
}
.card::after {
  content: ''; position: absolute; bottom: 0; inset-inline: 0;
  height: 2px; background: var(--gold);
  transform: scaleX(0); transform-origin: inline-end;
  transition: transform var(--t);
}
.card:hover { transform: translateY(-5px); box-shadow: 0 28px 56px rgba(0,0,0,.65); border-color: rgba(200,168,110,.2); }
.card:hover::after { transform: scaleX(1); transform-origin: inline-start; }

.card-thumb { width: 100%; height: 196px; object-fit: cover; display: block; filter: grayscale(.75); transition: filter var(--t); }
.card:hover .card-thumb { filter: grayscale(.1); }
.card-thumb-ph {
  width: 100%; height: 196px; background: linear-gradient(135deg, rgba(255,255,255,.04), rgba(255,255,255,.015));
  display: flex; align-items: center; justify-content: center;
  font-size: 2.2rem; opacity: .3; color: var(--warm-mid);
}
.card-body { padding: 22px 24px 24px; flex: 1; display: flex; flex-direction: column; }
.card-title { font-family: var(--ff-display); font-size: 1.15rem; font-weight: 700; color: var(--paper); line-height: 1.4; margin-bottom: 10px; }
.card-meta-line { display: flex; flex-wrap: wrap; gap: 8px; color: var(--warm-dark); font-size: .76rem; margin-bottom: 10px; }
.card-meta-line span { border-inline-start: 1px solid rgba(255,255,255,.09); padding-inline-start: 8px; }
.card-meta-line span:first-child { border-inline-start: 0; padding-inline-start: 0; }
.card-excerpt { font-size: .86rem; color: var(--warm-mid); line-height: 1.75; flex: 1; margin-bottom: 18px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.card-foot { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line-s); padding-top: 14px; }
.card-date { font-family: var(--ff-mono); font-size: .68rem; color: var(--warm-dark); }
.art-author-chip { color: var(--warm-mid); display: inline-flex; align-items: center; gap: 4px; }
.art-author-chip svg { vertical-align: middle; opacity: .7; }
.card-arrow { width: 30px; height: 30px; border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; color: var(--warm-dark); font-size: .85rem; transition: all var(--t); flex-shrink: 0; }
.card:hover .card-arrow { background: var(--paper); color: var(--ink); border-color: var(--paper); }

/* ── BOOK CARDS ──────────────────────────────── */
.books-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 36px; }
.book-card { border: 1px solid var(--line); overflow: hidden; transition: all var(--t); display: flex; flex-direction: column; }
.book-card:hover { border-color: rgba(200,168,110,.35); transform: translateY(-6px); box-shadow: 0 36px 72px rgba(0,0,0,.7); }
.book-cover-wrap { position: relative; overflow: hidden; }
.book-cover { width: 100%; height: 360px; object-fit: cover; display: block; filter: grayscale(.5); transition: filter var(--t); }
.book-card:hover .book-cover { filter: grayscale(0); }
.book-cover-ph {
  width: 100%; height: 360px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 14px;
  background: linear-gradient(160deg, var(--gold-dim), rgba(255,255,255,.02));
}
.book-cover-ph .icon { font-size: 3.5rem; opacity: .3; }
.book-cover-ph .name { font-family: var(--ff-display); font-size: 1.1rem; color: var(--gold); text-align: center; padding: 0 20px; line-height: 1.3; }

.amazon-tag {
  position: absolute; top: 12px; inset-inline-end: 12px;
  background: #FF9900; color: #111; font-size: .62rem; font-weight: 900;
  padding: 4px 9px; letter-spacing: .05em; display: flex; align-items: center; gap: 4px;
}
.book-info { padding: 22px 24px 24px; flex: 1; display: flex; flex-direction: column; }
.book-title { font-family: var(--ff-display); font-size: 1.25rem; font-weight: 700; color: var(--paper); margin-bottom: 5px; }
.book-sub { font-size: .83rem; color: var(--warm-mid); margin-bottom: 14px; line-height: 1.5; }
.book-desc { font-size: .86rem; color: var(--warm-mid); line-height: 1.75; flex: 1; margin-bottom: 22px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; }
.book-buy {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--paper); color: var(--ink); padding: 12px 20px;
  font-weight: 700; font-size: .88rem; transition: all var(--t);
}
.book-buy:hover { background: #FF9900; }
.amz-pill { background: #FF9900; color: #111; font-family: var(--ff-mono); font-size: .65rem; font-weight: 900; padding: 2px 7px; }

/* ══════════════════════════════════════════════
   DIGITAL LIBRARY PAGE
══════════════════════════════════════════════ */
.library-page .page-header { padding: 100px 40px 36px; }
.lib-hero-sub { color: var(--warm-mid); font-size: .9rem; max-width: 640px; margin: 10px auto 0; line-height: 1.7; text-align: center; }
.lib-stats { display: flex; align-items: center; justify-content: center; gap: 0; margin-top: 28px; flex-wrap: wrap; }
.lib-stat { text-align: center; padding: 0 24px; }
.lib-stat-n { display: block; font-family: var(--ff-mono); font-size: 1.6rem; font-weight: 700; color: var(--gold); line-height: 1; }
.lib-stat-l { display: block; font-size: .7rem; color: var(--warm-dark); margin-top: 4px; letter-spacing: .08em; }
.lib-stat-sep { width: 1px; height: 36px; background: var(--line); }

/* Filters bar */
.lib-filters-bar { position: sticky; top: 64px; z-index: 20; background: rgba(10,10,10,.95); backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); padding: 14px 0 12px; }
.lib-search-row { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.lib-search-wrap { flex: 1; position: relative; }
.lib-search-icon { position: absolute; inset-inline-start: 13px; top: 50%; transform: translateY(-50%); color: var(--warm-dark); pointer-events: none; }
.lib-search-input { width: 100%; padding: 9px 14px 9px 40px; background: var(--surface); border: 1px solid var(--line); color: var(--paper); font-family: var(--ff-body); font-size: .84rem; outline: none; transition: border-color var(--t); }
[dir="rtl"] .lib-search-input { padding: 9px 40px 9px 14px; }
.lib-search-input:focus { border-color: var(--gold); }
.lib-search-input::placeholder { color: var(--warm-dark); }
.lib-select { background: var(--surface); border: 1px solid var(--line); color: var(--warm-mid); font-family: var(--ff-mono); font-size: .7rem; padding: 9px 12px; cursor: pointer; outline: none; transition: border-color var(--t); flex-shrink: 0; }
.lib-select:focus { border-color: var(--gold); }
.lib-type-tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.lib-tab { background: none; border: 1px solid var(--line); color: var(--warm-mid); font-family: var(--ff-mono); font-size: .65rem; letter-spacing: .08em; padding: 5px 14px; cursor: pointer; transition: all var(--t); white-space: nowrap; }
.lib-tab:hover { border-color: var(--gold); color: var(--gold); }
.lib-tab.lib-tab-active { background: var(--gold); color: var(--ink); border-color: var(--gold); font-weight: 700; }

/* Featured section */
.lib-featured-section { padding: 44px 0 32px; background: rgba(200,168,110,.03); border-bottom: 1px solid var(--line); }
.lib-featured-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 20px; }

/* Resources section */
.lib-resources-section { padding: 32px 0 80px; }
.lib-results-header { margin-bottom: 20px; }
.lib-results-count { font-family: var(--ff-mono); font-size: .7rem; color: var(--warm-dark); letter-spacing: .08em; }
.lib-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.lib-empty { grid-column: 1/-1; text-align: center; padding: 60px 20px; color: var(--warm-dark); font-size: .9rem; }

/* Resource card */
.resource-card {
  --rc-color: var(--gold);
  background: var(--surface);
  border: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  transition: border-color var(--t), box-shadow var(--t), transform var(--t);
  position: relative;
  overflow: hidden;
}
.resource-card::before {
  content: '';
  position: absolute;
  inset-block: 0; inset-inline-start: 0;
  width: 3px;
  background: var(--rc-color);
  opacity: 0;
  transition: opacity var(--t);
}
.resource-card:hover { border-color: var(--rc-color); box-shadow: 0 6px 28px rgba(0,0,0,.3); transform: translateY(-2px); }
.resource-card:hover::before { opacity: 1; }
.resource-card-featured { border-color: rgba(200,168,110,.25); }

.rc-type-badge {
  display: inline-flex; align-items: center; gap: 5px;
  font-family: var(--ff-mono); font-size: .58rem; letter-spacing: .1em; text-transform: uppercase;
  padding: 4px 9px; border: 1px solid; margin: 14px 14px 0;
  align-self: flex-start;
}
.rc-type-badge svg { flex-shrink: 0; }
.rc-cover { width: 100%; height: 140px; object-fit: cover; display: block; margin-top: 10px; }
.rc-body { padding: 12px 16px 0; flex: 1; }
.rc-title { font-size: .95rem; font-weight: 700; color: var(--paper); line-height: 1.35; margin: 0 0 8px; }
.rc-desc { font-size: .8rem; color: var(--warm-mid); line-height: 1.6; margin: 0 0 12px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.rc-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.rc-meta-item { font-family: var(--ff-mono); font-size: .6rem; color: var(--warm-dark); background: rgba(255,255,255,.04); border: 1px solid var(--line-s); padding: 2px 7px; }
.rc-lang { color: var(--gold); border-color: rgba(200,168,110,.3); background: rgba(200,168,110,.06); }
.rc-audience { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.rc-aud-chip { font-family: var(--ff-mono); font-size: .58rem; color: var(--warm-mid); border: 1px solid var(--line-s); padding: 2px 7px; }
.rc-actions { display: flex; gap: 8px; padding: 12px 16px 16px; border-top: 1px solid var(--line-s); margin-top: auto; flex-wrap: wrap; }

/* Library buttons */
.lib-btn { font-family: var(--ff-mono); font-size: .68rem; letter-spacing: .08em; padding: 7px 14px; cursor: pointer; border: none; transition: all var(--t); text-decoration: none; display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.lib-btn-primary { background: var(--gold); color: var(--ink); font-weight: 700; }
.lib-btn-primary:hover { background: var(--paper); }
.lib-btn-ghost { background: none; border: 1px solid var(--line); color: var(--warm-mid); }
.lib-btn-ghost:hover { border-color: var(--gold); color: var(--gold); }
.lib-btn-disabled { background: var(--surface); color: var(--warm-dark); border: 1px solid var(--line); cursor: not-allowed; opacity: .5; }
.lib-btn-lg { padding: 11px 22px; font-size: .76rem; }

/* Resource detail modal */
.lib-modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.75); z-index: 900; backdrop-filter: blur(4px); }
.lib-modal {
  position: fixed; inset-inline-end: 0; top: 0; bottom: 0;
  width: min(560px, 100vw);
  background: #111;
  border-inline-start: 1px solid var(--line);
  z-index: 901;
  overflow-y: auto;
  flex-direction: column;
  animation: slideInModal .25s ease;
}
@keyframes slideInModal { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
[dir="rtl"] .lib-modal { inset-inline-end: 0; }
@keyframes slideInModalRtl { from { transform: translateX(-100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
.lib-modal-close { position: sticky; top: 0; z-index: 2; width: 100%; background: rgba(17,17,17,.95); border: none; border-bottom: 1px solid var(--line); color: var(--warm-mid); font-size: .8rem; padding: 12px 20px; cursor: pointer; text-align: start; transition: color var(--t); display: block; }
.lib-modal-close:hover { color: var(--paper); }
.lib-modal-inner { padding: 24px 24px 60px; }
.lib-modal-head { margin-bottom: 20px; }
.lib-modal-title { font-size: clamp(1.1rem, 2.5vw, 1.5rem); font-weight: 900; color: var(--paper); margin: 12px 0 14px; line-height: 1.25; }
.lib-modal-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.lib-modal-meta span { font-family: var(--ff-mono); font-size: .62rem; color: var(--warm-dark); background: var(--surface); border: 1px solid var(--line-s); padding: 3px 9px; }
.lib-modal-cover { width: 100%; max-height: 200px; object-fit: cover; display: block; margin-bottom: 20px; }
.lib-modal-section { margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px solid var(--line-s); }
.lib-modal-section:last-of-type { border-bottom: none; }
.lib-modal-section-title { font-family: var(--ff-mono); font-size: .65rem; letter-spacing: .14em; color: var(--gold); text-transform: uppercase; margin-bottom: 12px; }
.lib-modal-full-desc { font-size: .88rem; color: var(--warm-mid); line-height: 1.75; margin: 0; }
.lib-modal-list { padding-inline-start: 18px; margin: 0; }
.lib-modal-list li { font-size: .86rem; color: var(--warm-mid); line-height: 1.65; margin-bottom: 8px; }
.lib-modal-list li::marker { color: var(--gold); }
.lib-modal-cta { padding: 20px 0; display: flex; gap: 10px; flex-wrap: wrap; }
.lib-similar-grid { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
.lib-similar-item { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: var(--surface); border: 1px solid var(--line); cursor: pointer; transition: border-color var(--t); }
.lib-similar-item:hover { border-color: var(--gold); }
.lib-similar-title { font-size: .82rem; color: var(--warm-mid); }
.lib-modal-rights { font-family: var(--ff-mono); font-size: .6rem; color: var(--warm-dark); padding: 12px; background: var(--surface); border: 1px solid var(--line-s); text-align: center; margin-top: 20px; }

/* Copyright notice */
.lib-copyright { padding: 28px 0; border-top: 1px solid var(--line); }
.lib-copyright p { font-size: .78rem; color: var(--warm-dark); line-height: 1.7; text-align: center; max-width: 680px; margin: 0 auto; }
.lib-copyright b { color: var(--warm-mid); }

/* Responsive */
@media (max-width: 900px) {
  .lib-featured-grid { grid-template-columns: 1fr 1fr; }
  .lib-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .library-page .page-header { padding: 88px 18px 24px; }
  .lib-featured-grid, .lib-grid { grid-template-columns: 1fr; }
  .lib-modal { width: 100vw; }
  .lib-stats { gap: 12px; }
  .lib-stat { padding: 0 16px; }
}

/* ── ARTICLE SINGLE ──────────────────────────── */
.article-page { max-width: 740px; margin: 0 auto; padding: 140px 40px 100px; }
.art-eyebrow { font-family: var(--ff-mono); font-size: .68rem; letter-spacing: .25em; color: var(--gold); text-transform: uppercase; margin-bottom: 18px; }
.art-h1 { font-family: var(--ff-display); font-size: clamp(2rem, 5vw, 3.4rem); font-weight: 900; color: var(--paper); line-height: 1.12; margin-bottom: 22px; }
.article-detail-panel {
  border: 1px solid rgba(255,255,255,.075);
  background: rgba(255,255,255,.018);
  padding: 14px;
  margin-bottom: 18px;
}
.article-detail-grid { display: flex; flex-wrap: wrap; gap: 10px 18px; color: var(--warm-dark); font-size: .78rem; margin-bottom: 12px; }
.art-meta { display: flex; align-items: center; justify-content: space-between; gap: 18px; font-family: var(--ff-mono); font-size: .72rem; color: var(--warm-dark); padding-bottom: 24px; border-bottom: 1px solid var(--line); margin-bottom: 44px; }
.art-meta-info { display: flex; align-items: center; gap: 18px; min-width: 0; }
.art-hero-frame {
  width: 100%;
  min-height: 220px;
  max-height: min(68vh, 540px);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.018);
  margin: 0 0 44px;
}
.art-hero {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: min(68vh, 540px);
  object-fit: contain;
  filter: grayscale(.35);
}
.art-body {
  color: var(--off-white);
  font-family: var(--ff-body);
  font-size: .96rem;
  font-weight: 400;
  line-height: 1.95;
}
.art-body :where(p, li, blockquote, aside, span, div, strong, em, b, i, u, a, font) {
  font-family: inherit !important;
  font-size: inherit !important;
}
.art-body h2 {
  font-family: var(--ff-display);
  font-size: clamp(1.35rem, 2.15vw, 1.7rem);
  color: var(--paper);
  line-height: 1.35;
  margin: 44px 0 18px;
}
.art-body h3 {
  font-family: var(--ff-display);
  font-size: clamp(1.12rem, 1.55vw, 1.28rem);
  color: var(--paper);
  line-height: 1.45;
  margin: 32px 0 14px;
}
.art-body p {
  font-size: .96rem !important;
  font-weight: 400;
  line-height: 1.95;
  margin-bottom: 18px;
}
.art-body p > :where(strong, b, font):only-child {
  font-weight: 400;
}
.art-body ul, .art-body ol { padding-inline-start: 22px; margin-bottom: 18px; }
.art-body li { margin-bottom: 7px; }
.art-body blockquote { border-inline-start: 3px solid var(--gold); padding: 16px 22px; margin: 28px 0; background: var(--gold-dim); font-style: italic; }
.article-callout {
  border: 1px solid rgba(200,168,110,.28);
  border-inline-start: 4px solid var(--gold);
  background: linear-gradient(135deg, rgba(200,168,110,.16), rgba(255,255,255,.025));
  color: var(--paper);
  padding: 18px 20px;
  margin: 30px 0;
  line-height: 1.85;
}
.article-callout p:last-child { margin-bottom: 0; }
.art-body img { max-width: 100%; margin: 28px 0; filter: grayscale(.3); }
.art-body a { color: var(--gold); text-decoration: underline; text-decoration-color: rgba(200,168,110,.4); }
.art-back { display: inline-flex; align-items: center; gap: 8px; font-family: var(--ff-mono); font-size: .72rem; letter-spacing: .12em; color: var(--warm-mid); margin-bottom: 24px; cursor: pointer; transition: color var(--t); }
.art-back:hover { color: var(--paper); }
.focus-toggle, .focus-exit {
  border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.02);
  color: var(--warm-mid); padding: 8px 12px; font-family: var(--ff-body);
  font-size: .78rem; cursor: pointer; transition: all var(--t);
}
.focus-toggle { margin-bottom: 18px; }
.focus-toggle:hover, .focus-exit:hover { border-color: var(--gold); color: var(--gold); background: rgba(200,168,110,.08); }
.focus-exit { display: none; }
.meta-share { display: flex; align-items: center; justify-content: flex-end; gap: 6px; flex: 0 0 auto; }
.meta-share-label { color: var(--warm-dark); margin-inline-end: 4px; }
.share-btn {
  width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid rgba(255,255,255,.075); background: rgba(255,255,255,.018);
  color: var(--warm-mid); padding: 0; font-family: var(--ff-mono); font-size: .64rem;
  line-height: 1; cursor: pointer; transition: color var(--t), border-color var(--t), background var(--t), transform var(--t);
}
.share-btn svg { width: 13px; height: 13px; display: block; }
.share-btn:hover { border-color: rgba(200,168,110,.55); color: var(--gold); background: rgba(200,168,110,.08); transform: translateY(-1px); }
.share-btn.linkedin { font-weight: 800; letter-spacing: 0; }
.share-btn.pdf { width: 34px; font-size: .58rem; letter-spacing: .03em; }
.related-articles { margin-top: 70px; padding-top: 34px; border-top: 1px solid var(--line); }
.related-title { font-family: var(--ff-display); color: var(--paper); font-size: 1.45rem; margin-bottom: 18px; }
.related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.related-grid .card-thumb, .related-grid .card-thumb-ph { height: 120px; }
.related-grid .card-body { padding: 16px; }
.related-grid .card-title { font-size: .95rem; }
.related-grid .card-excerpt { display: none; }
.bz-toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(20px); background: rgba(20,20,20,.95); color: #fff; padding: 12px 20px; border-radius: 999px; font-family: var(--ff-mono); font-size: .9rem; opacity: 0; pointer-events: none; transition: all .3s ease; z-index: 9999; }
.bz-toast.visible { opacity: 1; transform: translateX(-50%) translateY(0); }

body.focus-reading { background: #0c0c0c; }
body.focus-reading .nav,
body.focus-reading #site-footer,
body.focus-reading .art-back,
body.focus-reading .art-eyebrow,
body.focus-reading .art-meta,
body.focus-reading .art-hero-frame,
body.focus-reading .focus-toggle,
body.focus-reading .article-detail-panel,
body.focus-reading .related-articles {
  display: none !important;
}
body.focus-reading .article-page {
  max-width: 780px;
  padding-top: 56px;
}
body.focus-reading .art-h1 {
  font-size: clamp(2rem, 4vw, 3.1rem);
  margin-bottom: 34px;
}
body.focus-reading .art-body {
  font-size: 1.12rem;
  line-height: 2.05;
  color: #efeee9;
}
body.focus-reading .focus-exit {
  display: inline-flex;
  position: fixed;
  top: 18px;
  inset-inline-end: 22px;
  z-index: 950;
  background: rgba(12,12,12,.92);
  backdrop-filter: blur(12px);
}

/* ── PAGE HEADER ─────────────────────────────── */
.page-header {
  padding: 150px 40px 72px; text-align: center; position: relative;
  border-bottom: 1px solid var(--line);
}
.page-header::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse 70% 60% at 50% 100%, rgba(200,168,110,.055) 0%, transparent 70%);
}
.page-header > * { position: relative; z-index: 1; }
.page-header .section-label { justify-content: center; }
.page-header .section-title { text-align: center; }

/* ── FOOTER ──────────────────────────────────── */
footer { background: rgba(255,255,255,.018); border-top: 1px solid rgba(200,168,110,.18); padding: 64px 0 28px; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 56px; margin-bottom: 52px; }
.footer-brand-logo { height: 34px; filter: brightness(0) invert(1); display: block; margin-bottom: 14px; }
.footer-brand-name { font-family: var(--ff-mono); font-size: 1rem; letter-spacing: .18em; color: var(--paper); margin-bottom: 12px; }
.footer-brand-desc { font-size: .85rem; color: var(--warm-dark); line-height: 1.8; max-width: 260px; }
.footer-col-title { font-family: var(--ff-mono); font-size: .65rem; letter-spacing: .25em; color: var(--gold); text-transform: uppercase; margin-bottom: 18px; }
.footer-nav { list-style: none; display: flex; flex-direction: column; gap: 9px; }
.footer-nav a { font-size: .88rem; color: var(--warm-dark); transition: color var(--t); }
.footer-nav a:hover { color: var(--paper); }
.social-bar { display: flex; flex-wrap: wrap; gap: 8px; }
.social-btn {
  width: 38px; height: 38px; border: 1px solid var(--line);
  display: flex; align-items: center; justify-content: center;
  color: var(--warm-mid); transition: all var(--t); font-size: .95rem;
}
.social-btn:hover { border-color: var(--paper); color: var(--paper); background: rgba(255,255,255,.04); }
.footer-bottom { border-top: 1px solid var(--line); padding-top: 22px; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.footer-copy { font-family: var(--ff-mono); font-size: .68rem; color: var(--warm-dark); letter-spacing: .1em; }
.footer-mark { font-family: var(--ff-mono); font-size: .7rem; color: var(--gold); letter-spacing: .15em; }

/* ── CATEGORY FILTER ─────────────────────────── */
.article-search-wrap { max-width: 760px; margin: 0 auto 18px; }
.article-search {
  width: 100%; height: 52px;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.025);
  color: var(--paper);
  padding: 0 18px;
  font-family: var(--ff-body);
  font-size: .96rem;
  outline: none;
  transition: border-color var(--t), background var(--t), box-shadow var(--t);
}
.article-search::placeholder { color: var(--warm-dark); }
.article-search:focus {
  border-color: rgba(200,168,110,.65);
  background: rgba(255,255,255,.04);
  box-shadow: 0 0 0 3px rgba(200,168,110,.08);
}
.filter-bar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 44px; }
.filter-btn {
  background: transparent; border: 1px solid var(--line);
  color: var(--warm-mid); padding: 7px 18px;
  font-family: var(--ff-body); font-size: .82rem; cursor: pointer;
  transition: all var(--t);
}
.filter-btn:hover { border-color: var(--warm-mid); color: var(--paper); }
.filter-btn.on { background: var(--paper); color: var(--ink); border-color: var(--paper); }

/* ── EMPTY STATE ─────────────────────────────── */
.empty-state {
  grid-column: 1 / -1; text-align: center; padding: 80px 20px;
  color: var(--warm-dark); font-family: var(--ff-mono); font-size: .8rem;
  letter-spacing: .15em; text-transform: uppercase;
}

/* ── TOAST ───────────────────────────────────── */
.toast {
  position: fixed; bottom: 24px; left: 50%;
  transform: translateX(-50%) translateY(80px);
  background: var(--paper); color: var(--ink);
  padding: 11px 24px; font-weight: 700; font-size: .88rem;
  z-index: 9998; transition: transform .3s ease;
  min-width: 200px; text-align: center; pointer-events: none;
}
.toast.up { transform: translateX(-50%) translateY(0); }
.toast.ok { background: #52e09b; }
.toast.err { background: #ff6b6b; color: #fff; }

/* ── ANIMATIONS ──────────────────────────────── */
@keyframes fadeu { from { opacity:0; transform:translateY(26px); } to { opacity:1; transform:none; } }
@keyframes fadein { from { opacity:0; } to { opacity:1; } }
@keyframes scroll-x { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes pulse-v { 0%,100%{opacity:.4;transform:scaleY(1)} 50%{opacity:1;transform:scaleY(1.1)} }

/* ── ADMIN ───────────────────────────────────── */
.admin-body { background: #0e0e0e; min-height: 100vh; }

/* Login */
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 40px; }
.login-box { width: 100%; max-width: 400px; border: 1px solid rgba(255,255,255,.1); padding: 44px; }
.login-logo { text-align: center; margin-bottom: 36px; }
.login-logo img { height: 46px; filter: invert(1); margin-bottom: 10px; display: block; margin-inline: auto; }
.login-logo h2 { font-family: var(--ff-mono); font-size: .72rem; letter-spacing: .28em; color: var(--warm-mid); text-transform: uppercase; }

/* Forms */
.fg { margin-bottom: 18px; }
.fl { display: block; font-family: var(--ff-mono); font-size: .66rem; letter-spacing: .16em; color: var(--warm-mid); text-transform: uppercase; margin-bottom: 7px; }
.fi {
  width: 100%; background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.08);
  color: var(--paper); padding: 11px 14px;
  font-family: var(--ff-body); font-size: .95rem; outline: none; transition: border-color var(--t);
}
.fi:focus { border-color: var(--gold); }
select.fi { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M5 6L0 0h10z' fill='%23888'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: left 12px center; }
textarea.fi { resize: vertical; min-height: 80px; }
.fr { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

/* Admin layout */
.a-layout { display: flex; min-height: 100vh; }
.a-sidebar {
  width: 250px; background: rgba(255,255,255,.018); border-inline-end: 1px solid rgba(255,255,255,.06);
  padding: 0; position: fixed; height: 100vh; overflow-y: auto; z-index: 200;
  display: flex; flex-direction: column;
}
.a-sidebar-logo { padding: 20px 20px 18px; border-bottom: 1px solid rgba(255,255,255,.06); }
.a-sidebar-logo img { height: 30px; filter: invert(1); margin-bottom: 6px; display: block; }
.a-sidebar-logo span { font-family: var(--ff-mono); font-size: .6rem; letter-spacing: .22em; color: var(--warm-dark); display: block; }
.a-nav-group { padding: 16px 12px 4px; }
.a-nav-group-lbl { font-family: var(--ff-mono); font-size: .58rem; letter-spacing: .28em; color: var(--warm-dark); text-transform: uppercase; padding: 0 8px; margin-bottom: 4px; }
.a-nav-btn {
  display: flex; align-items: center; gap: 9px; padding: 9px 10px;
  color: var(--warm-mid); background: none; border: none;
  font-family: var(--ff-body); font-size: .85rem; cursor: pointer; width: 100%;
  text-align: start; transition: all var(--t); border-radius: 2px;
}
.a-nav-btn:hover { color: var(--paper); background: rgba(255,255,255,.04); }
.a-nav-btn.on { color: var(--paper); background: var(--gold-dim); border-inline-end: 2px solid var(--gold); }
.a-sidebar-spacer { flex: 1; }
.a-sidebar-bottom { padding: 12px; border-top: 1px solid rgba(255,255,255,.06); }

.a-main { flex: 1; margin-inline-start: 250px; padding: 28px 32px; min-width: 0; }
.a-topbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 28px; padding-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,.06); }
.a-page-title { font-family: var(--ff-display); font-size: 1.7rem; color: var(--paper); }
.a-actions { display: flex; gap: 10px; }

.a-card { background: rgba(255,255,255,.02); border: 1px solid rgba(255,255,255,.06); padding: 22px; margin-bottom: 22px; }
.a-card-title { font-family: var(--ff-mono); font-size: .68rem; letter-spacing: .2em; color: var(--gold); text-transform: uppercase; margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,.06); display: flex; align-items: center; justify-content: space-between; }
.dash-hero {
  display: flex; align-items: end; justify-content: space-between; gap: 18px;
  padding: 24px; margin-bottom: 18px;
  border: 1px solid rgba(255,255,255,.07);
  background:
    linear-gradient(135deg, rgba(200,168,110,.14), rgba(255,255,255,.018) 48%),
    rgba(255,255,255,.02);
}
.dash-kicker { font-family: var(--ff-mono); font-size: .68rem; letter-spacing: .22em; color: var(--gold); text-transform: uppercase; margin-bottom: 8px; }
.dash-hero h2 { font-family: var(--ff-display); color: var(--paper); font-size: clamp(1.5rem, 3vw, 2.35rem); margin-bottom: 8px; }
.dash-hero p { color: var(--warm-mid); max-width: 620px; line-height: 1.7; font-size: .92rem; }
.dash-range { display: flex; gap: 7px; flex-wrap: wrap; justify-content: flex-end; }
.dash-range button {
  border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.035);
  color: var(--warm-mid); padding: 8px 11px; cursor: pointer;
  font-family: var(--ff-mono); font-size: .72rem; transition: all var(--t);
}
.dash-range button:hover, .dash-range button.on { color: var(--ink); border-color: var(--gold); background: var(--gold); }
.stats-row-admin { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; margin-bottom: 28px; }
.stat-box-admin { border: 1px solid rgba(255,255,255,.06); padding: 18px 20px; background: rgba(255,255,255,.015); }
.stat-box-num { font-family: var(--ff-mono); font-size: 2rem; color: var(--gold); font-weight: 700; line-height: 1; }
.stat-box-lbl { font-size: .78rem; color: var(--warm-dark); margin-top: 4px; }
.dash-insights { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 22px; }
.dash-insights div { border: 1px solid rgba(255,255,255,.06); background: rgba(255,255,255,.016); padding: 16px; min-width: 0; }
.dash-insights span { display: block; color: var(--warm-dark); font-size: .72rem; margin-bottom: 8px; }
.dash-insights strong { color: var(--paper); font-size: .95rem; line-height: 1.45; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dash-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.bar-chart { display: grid; gap: 12px; }
.bar-row { display: grid; grid-template-columns: minmax(86px, 140px) 1fr 34px; align-items: center; gap: 10px; }
.bar-row span { color: var(--warm-mid); font-size: .78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bar-row div { height: 10px; background: rgba(255,255,255,.055); overflow: hidden; border: 1px solid rgba(255,255,255,.05); }
.bar-row i { display: block; height: 100%; background: linear-gradient(90deg, var(--gold), rgba(255,255,255,.62)); }
.bar-row b { font-family: var(--ff-mono); color: var(--paper); font-size: .8rem; text-align: end; }
.dash-empty { color: var(--warm-dark); padding: 20px 0; font-size: .86rem; }
.share-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.mini-pill { border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.025); color: var(--warm-mid); padding: 9px 12px; font-family: var(--ff-mono); font-size: .72rem; }
.mini-pill b { color: var(--gold); margin-inline-start: 6px; }
.rank-list { display: grid; gap: 10px; }
.rank-item { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 12px; padding: 12px; border: 1px solid rgba(255,255,255,.055); background: rgba(255,255,255,.015); }
.rank-num { width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(200,168,110,.35); color: var(--gold); font-family: var(--ff-mono); font-size: .78rem; }
.rank-item strong { display: block; color: var(--paper); font-size: .9rem; line-height: 1.45; }
.rank-item small { display: block; color: var(--warm-dark); margin-top: 3px; font-size: .76rem; }
.rank-item b { color: var(--gold); font-family: var(--ff-mono); font-size: .95rem; }
.gallery-admin-list { display: grid; gap: 14px; }
.gallery-admin-item { display: grid; grid-template-columns: 190px 1fr; gap: 16px; border: 1px solid rgba(255,255,255,.07); background: rgba(255,255,255,.015); padding: 14px; }
.gallery-admin-media { position: relative; min-height: 150px; border: 1px dashed rgba(255,255,255,.12); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.gallery-admin-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gallery-admin-media input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; z-index: 2; }
.gallery-admin-ph { color: var(--warm-dark); font-family: var(--ff-mono); font-size: .78rem; }
.gallery-admin-fields { min-width: 0; }

/* Table */
.a-table { width: 100%; border-collapse: collapse; font-size: .87rem; }
.a-table th { padding: 10px 14px; font-family: var(--ff-mono); font-size: .64rem; letter-spacing: .15em; color: var(--warm-dark); text-transform: uppercase; border-bottom: 1px solid rgba(255,255,255,.06); text-align: start; }
.a-table td { padding: 13px 14px; color: var(--off-white); border-bottom: 1px solid rgba(255,255,255,.035); vertical-align: middle; }
.a-table tr:hover td { background: rgba(255,255,255,.02); }
.a-table .actions { display: flex; gap: 6px; }

/* Icon buttons */
.ibtn { background: none; border: 1px solid rgba(255,255,255,.1); color: var(--warm-mid); padding: 5px 11px; cursor: pointer; font-size: .8rem; transition: all var(--t); }
.ibtn:hover { border-color: var(--paper); color: var(--paper); }
.ibtn.red:hover { border-color: #ff6b6b; color: #ff6b6b; }

/* Badge */
.badge { display: inline-block; padding: 2px 9px; font-family: var(--ff-mono); font-size: .66rem; letter-spacing: .08em; }
.badge.g { background: rgba(0,255,120,.1); color: #3dffaa; }
.badge.d { background: rgba(255,255,255,.06); color: var(--warm-mid); }

/* Modal */
.overlay { position: fixed; inset: 0; background: rgba(0,0,0,.88); z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px; opacity: 0; pointer-events: none; transition: opacity var(--t); backdrop-filter: blur(10px); }
.overlay.open { opacity: 1; pointer-events: all; }
.modal { background: #141414; border: 1px solid rgba(255,255,255,.1); width: 100%; max-width: 820px; max-height: 92vh; overflow-y: auto; transform: translateY(18px); transition: transform var(--t); }
.overlay.open .modal { transform: none; }
.modal.sm { max-width: 460px; }
.modal-hd { padding: 18px 22px; border-bottom: 1px solid rgba(255,255,255,.07); display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; background: #141414; z-index: 2; }
.modal-hd-title { font-family: var(--ff-mono); font-size: .75rem; letter-spacing: .2em; color: var(--paper); text-transform: uppercase; }
.modal-x { background: none; border: none; color: var(--warm-mid); font-size: 1.4rem; cursor: pointer; line-height: 1; transition: color var(--t); }
.modal-x:hover { color: var(--paper); }
.modal-bd { padding: 22px; }
.modal-ft { padding: 14px 22px; border-top: 1px solid rgba(255,255,255,.07); display: flex; gap: 10px; justify-content: flex-end; }

/* Tabs */
.tabs { display: flex; border-bottom: 1px solid rgba(255,255,255,.07); margin-bottom: 22px; }
.tab-btn { background: none; border: none; border-bottom: 2px solid transparent; color: var(--warm-mid); padding: 9px 18px; cursor: pointer; font-family: var(--ff-mono); font-size: .72rem; letter-spacing: .1em; transition: all .2s; margin-bottom: -1px; }
.tab-btn.on { color: var(--gold); border-bottom-color: var(--gold); }
.tc { display: none; }
.tc.on { display: block; }

/* Rich editor */
.rte-bar { display: flex; flex-wrap: wrap; gap: 3px; padding: 9px; background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.07); border-bottom: none; }
.rte-btn { background: none; border: 1px solid transparent; color: var(--warm-mid); padding: 4px 8px; cursor: pointer; font-size: .8rem; border-radius: 2px; transition: all .15s; }
.rte-btn:hover { background: rgba(255,255,255,.06); color: var(--paper); }
.rte-callout-btn { border-color: rgba(200,168,110,.28); color: var(--gold); }
.rte-sep { width: 1px; background: rgba(255,255,255,.07); margin: 3px 2px; }
.rte-body { min-height: 280px; border: 1px solid rgba(255,255,255,.07); padding: 18px; outline: none; color: var(--paper); font-family: var(--ff-body); font-size: .97rem; line-height: 1.85; background: rgba(255,255,255,.015); }
.rte-body :where(p, li, blockquote, aside, span, div, strong, em, b, i, u, a, font) { font-family: inherit !important; }
.rte-body p,
.rte-body div {
  font-size: .97rem;
  font-weight: 400;
  line-height: 1.85;
  margin: 0 0 14px;
}
.rte-body h2 {
  font-family: var(--ff-display);
  font-size: 1.55rem;
  font-weight: 900;
  line-height: 1.3;
  margin: 24px 0 12px;
}
.rte-body h3 {
  font-family: var(--ff-display);
  font-size: 1.22rem;
  font-weight: 800;
  line-height: 1.35;
  margin: 20px 0 10px;
}
.rte-body:focus { border-color: var(--gold); }

/* Upload zone */
.upload-zone {
  border: 2px dashed rgba(255,255,255,.12); padding: 28px;
  text-align: center; cursor: pointer; position: relative; transition: border-color var(--t);
}
.upload-zone:hover { border-color: var(--gold); }
.upload-zone input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.upload-zone-txt { color: var(--warm-mid); font-size: .85rem; }
.upload-preview { max-width: 180px; max-height: 140px; object-fit: cover; display: none; margin: 10px auto 0; }

/* Toggle */
.tog-wrap { display: flex; align-items: center; gap: 10px; }
.tog { position: relative; width: 38px; height: 20px; cursor: pointer; flex-shrink: 0; }
.tog input { opacity: 0; width: 0; height: 0; }
.tog-sl { position: absolute; inset: 0; background: rgba(255,255,255,.1); transition: .3s; }
.tog-sl::before { content: ''; position: absolute; height: 14px; width: 14px; left: 3px; bottom: 3px; background: var(--warm-mid); transition: .3s; }
input:checked + .tog-sl { background: var(--gold); }
input:checked + .tog-sl::before { transform: translateX(18px); background: var(--ink); }
.tog-lbl { font-size: .78rem; color: var(--warm-dark); width: 36px; }

/* Social row */
.social-row { display: flex; align-items: center; gap: 12px; padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,.04); }
.social-row:last-child { border: none; }
.social-icon-box { width: 34px; height: 34px; border: 1px solid rgba(255,255,255,.08); display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 1rem; }
.social-row-name { width: 110px; font-size: .84rem; color: var(--warm-mid); flex-shrink: 0; }
.social-row .fi { flex: 1; padding: 8px 12px; font-size: .88rem; }

/* visits counter pulse */
.visits-counter .stat-num {
  color: var(--gold);
  position: relative;
}
.visits-counter .stat-num::after {
  content: '';
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  background: rgba(200,168,110,.12);
  animation: vis-pulse 3s ease-in-out infinite;
}
@keyframes vis-pulse {
  0%,100% { transform: scale(1); opacity: .7; }
  50%      { transform: scale(1.18); opacity: 0; }
}

/* ── RESPONSIVE ──────────────────────────────── */
@media (max-width: 900px) {
  .container { padding: 0 22px; }
  section { padding: 68px 0; }
  .nav { padding: 0 22px; }
  .nav-links { display: none; }
  .hamburger { display: flex; }
  .about-wrap { grid-template-columns: 1fr; gap: 40px; }
  .about-stations-slider { margin-inline: -22px; }
  .about-quotes-grid, .about-services-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; gap: 36px; }
  .cards-grid { grid-template-columns: 1fr; }
  .hero { padding: 100px 22px 70px; }
  .hero-layout { grid-template-columns: 1fr; gap: 28px; }
  .hero-visual { min-height: 300px; order: -1; opacity: .72; }
  .hero-visual::before, .hero-video, .hero-film { inset: 0; }
  .portfolio-hero .hero-h1 { font-size: clamp(3rem, 17vw, 5.6rem); }
  .hero-proof { gap: 7px; }
  .identity-grid { grid-template-columns: 1fr; gap: 34px; }
  .research-board { min-height: 390px; }
  .editorial-grid { grid-template-columns: 1fr; }
  .editorial-card, .editorial-card:first-child { min-height: 320px; }
  .expertise-map { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .expertise-node { min-height: 210px; }
  .project-panel { grid-template-columns: 1fr; }
  .contact-finale-inner { align-items: stretch; flex-direction: column; }
  .bajo-about-hero { min-height: auto; padding: 126px 0 70px; }
  .bajo-about-hero-grid { grid-template-columns: 1fr; gap: 36px; }
  .bajo-about-copy h1 { font-size: clamp(3rem, 17vw, 5.2rem); }
  .portrait-card, .portrait-card img, .portrait-placeholder { min-height: 420px; height: auto; }
  .portfolio-hero-section { min-height: auto; padding: 126px 0 64px; }
  .portfolio-hero-layout,
  .portfolio-story-layout,
  .portfolio-thinking-grid,
  .portfolio-work-grid { grid-template-columns: 1fr; }
  .portfolio-hero-copy h1 { font-size: clamp(3rem, 17vw, 5.4rem); }
  .portfolio-portrait-panel, .portfolio-portrait-panel img, .portfolio-portrait-empty { min-height: 420px; height: auto; }
  .portfolio-snapshot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portfolio-lens-grid, .portfolio-quote-strip { grid-template-columns: 1fr; }
  .portfolio-book-feature { grid-template-columns: minmax(120px, 170px) 1fr; }
  .portfolio-services-panel { align-items: stretch; flex-direction: column; }
  .about-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-lenses { grid-template-columns: 1fr 1fr; }
  .about-cta { align-items: stretch; flex-direction: column; }
  .page-header { padding: 120px 22px 60px; }
  .article-page { padding: 120px 22px 80px; }
  .art-meta { align-items: flex-start; flex-direction: column; }
  .meta-share { justify-content: flex-start; }
  .related-grid { grid-template-columns: 1fr; }
  .a-sidebar { transform: translateX(100%); transition: transform var(--t); }
  .a-sidebar.open { transform: translateX(0); }
  .a-main { margin-inline-start: 0; padding: 20px; }
  .fr { grid-template-columns: 1fr; }
  .dash-hero { align-items: start; flex-direction: column; }
  .dash-range { justify-content: flex-start; }
  .dash-insights { grid-template-columns: 1fr; }
  .dash-grid { grid-template-columns: 1fr; }
  .bar-row { grid-template-columns: 88px 1fr 28px; }
  .gallery-admin-item { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .hero-h1 { font-size: 2.9rem; }
  .story-h1 { font-size: 2.55rem; line-height: 1.12; }
  .story-lead { font-size: .95rem; }
  .portfolio-hero .hero-h1 { font-size: 3.25rem; }
  .hero-proof span { flex: 1 1 100%; }
  .research-board { min-height: 320px; }
  .note-a { top: 20px; inset-inline-start: 20px; }
  .note-b { bottom: 20px; inset-inline-end: 20px; }
  .board-chart { display: none; }
  .expertise-map { grid-template-columns: 1fr; }
  .project-visual { min-height: 150px; }
  .scout-card, .radar-widget { display: none; }
  .talent-tag { font-size: .5rem; }
  .books-grid { grid-template-columns: 1fr; }
  .stats-row { grid-template-columns: 1fr; }
  .about-stat-grid, .about-lenses { grid-template-columns: 1fr; }
  .about-memory { width: 220px; }
  .about-memory-body { min-height: 160px; }
  .portfolio-snapshot-grid { grid-template-columns: 1fr; }
  .portfolio-mini-nav a { min-width: 116px; padding: 13px 14px; }
  .portfolio-station-card { width: 220px; }
  .portfolio-station-caption { min-height: 160px; }
  .portfolio-book-feature { grid-template-columns: 1fr; }
  .portfolio-book-cover { max-width: 220px; }
  .portfolio-orbit { font-size: .68rem; padding: 9px 10px; }
  .portfolio-orbit.p1 { inset-inline-start: 8px; }
  .portfolio-orbit.p2 { inset-inline-end: 8px; }
  .about-stat-card { min-height: auto; }
  .journey-node { grid-template-columns: 48px minmax(0, 1fr); gap: 16px; padding: 18px; }
  .journey-index { width: 48px; height: 48px; }
  .about-journey::before { inset-inline-start: 24px; }
  .about-cta { padding: 24px; }
  .footer-bottom { flex-direction: column; text-align: center; }
  .section-title { font-size: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
  html, html:focus-within { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .about-stations-track { animation: none !important; }
  .portfolio-stations-track { animation: none !important; }
  .reveal,
  .story-reveal,
  .story-step,
  .story-panel,
  .story-card,
  .story-feature,
  .editorial-card,
  .expertise-node,
  .project-panel {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ── HOME HERO: STATIC BACKGROUND TYPEWRITER ─────────────────────────── */
.hero-typewriter {
  position: relative;
  --ht-header: 68px;
  min-height: calc(100svh - var(--ht-header));
  margin-top: var(--ht-header);
  overflow: hidden;
  isolation: isolate;
  display: flex;
  align-items: center;
  padding: 0 clamp(18px, 3.2vw, 46px);
  background: #000;
  color: #fff;
  font-family: var(--ff-body, 'Tajawal', system-ui, sans-serif);
}
body.has-new-bar .hero-typewriter {
  --ht-header: 106px;
}
.ht-bg,
.ht-overlay,
.ht-grain {
  position: absolute;
  inset: 0;
}
.ht-bg {
  z-index: 1;
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  filter: saturate(.9) contrast(1.06) brightness(.68);
}
.ht-overlay {
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(ellipse 54% 46% at 18% 52%, rgba(200,168,110,.11), transparent 62%),
    linear-gradient(90deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.34) 36%, rgba(0,0,0,.18) 68%, rgba(0,0,0,.62) 100%),
    linear-gradient(180deg, rgba(0,0,0,.48) 0%, rgba(0,0,0,.08) 42%, rgba(0,0,0,.72) 100%);
}
.ht-grain {
  z-index: 3;
  pointer-events: none;
  opacity: .11;
  mix-blend-mode: screen;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 3px 3px;
}
.ht-brand {
  position: absolute;
  z-index: 4;
  inset-inline-start: clamp(24px, 4vw, 70px);
  top: clamp(88px, 12vh, 132px);
  color: rgba(255,255,255,.7);
  font-family: var(--ff-mono, monospace);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .32em;
}
.ht-copy {
  position: absolute;
  z-index: 4;
  inset-inline-start: clamp(24px, 4vw, 70px);
  top: clamp(136px, 18vh, 188px);
  width: min(560px, 92vw);
  margin: 0;
  text-align: right;
  transform: none;
}
[dir="ltr"] .ht-copy {
  text-align: right;
}
.ht-label {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  direction: ltr;
  unicode-bidi: isolate;
  color: #c8a86e;
  font-family: var(--ff-mono, monospace);
  font-size: clamp(.62rem, .72vw, .76rem);
  font-weight: 700;
  letter-spacing: .18em;
  margin-bottom: 12px;
}
.ht-label::before {
  content: '';
  width: 48px;
  height: 2px;
  background: #c8a86e;
  box-shadow: 0 0 24px rgba(200,168,110,.55);
}
.ht-title {
  min-height: 2.35em;
  margin: 0;
  color: #fff;
  font-family: 'Tajawal', var(--ff-body, system-ui), sans-serif;
  font-size: clamp(1.72rem, 3.35vw, 3.85rem);
  font-weight: 900;
  line-height: 1.14;
  letter-spacing: 0;
  text-wrap: balance;
  text-shadow: 0 18px 46px rgba(0,0,0,.85), 0 2px 10px rgba(0,0,0,.72);
}
.ht-sub {
  min-height: 6.2em;
  max-width: 520px;
  margin: 14px 0 0;
  margin-inline-start: auto;
  margin-inline-end: 0;
  color: rgba(242,241,237,.84);
  font-size: clamp(.78rem, .98vw, .96rem);
  font-weight: 500;
  line-height: 1.78;
  text-shadow: 0 14px 34px rgba(0,0,0,.82);
}
[dir="ltr"] .ht-sub {
  margin-inline-start: auto;
  margin-inline-end: 0;
}
.ht-caret {
  display: inline-block;
  width: 2px;
  height: .82em;
  margin-inline-start: 8px;
  vertical-align: -.08em;
  background: #c8a86e;
  box-shadow: 0 0 18px rgba(200,168,110,.7);
  animation: htCaretBlink 1s steps(1) infinite;
}
@keyframes htCaretBlink {
  0%, 48% { opacity: 1; }
  49%, 100% { opacity: 0; }
}
.ht-scroll-hint {
  position: absolute;
  z-index: 4;
  inset-inline-start: clamp(24px, 4vw, 70px);
  bottom: clamp(28px, 5vh, 48px);
  display: flex;
  align-items: center;
  gap: 13px;
  color: rgba(255,255,255,.62);
  font-family: var(--ff-mono, monospace);
  font-size: .68rem;
  letter-spacing: .22em;
}
.ht-scroll-line {
  width: 64px;
  height: 1px;
  background: linear-gradient(90deg, #c8a86e, transparent);
  animation: hcScrollPulse 1.65s ease-in-out infinite;
}

@media (max-width: 900px) {
  .hero-typewriter {
    padding: 0 18px;
  }
  .ht-copy {
    inset-inline-start: 22px;
    top: 138px;
    width: min(500px, 100%);
  }
  .ht-title {
    min-height: 2.45em;
    font-size: clamp(1.55rem, 6.6vw, 2.7rem);
    line-height: 1.14;
  }
  .ht-sub {
    min-height: 7.2em;
    font-size: .84rem;
    line-height: 1.72;
  }
  .ht-brand {
    top: 92px;
    inset-inline-start: 22px;
  }
}

@media (max-width: 600px) {
  .hero-typewriter {
    --ht-mobile-visual: min(56svh, 360px);
    min-height: var(--ht-mobile-visual);
    padding: 0 16px;
  }
  body.has-new-bar .hero-typewriter {
    min-height: var(--ht-mobile-visual);
  }
  .ht-copy {
    left: auto;
    right: 16px;
    top: 72px;
    bottom: auto;
    width: min(43vw, 170px);
    max-width: 170px;
    text-align: right;
  }
  .ht-bg {
    background-size: auto var(--ht-mobile-visual);
    background-position: 45% top;
    filter: saturate(.86) contrast(1.05) brightness(.78);
  }
  .ht-overlay {
    background:
      linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.08) 34%, rgba(0,0,0,.82) 66%, rgba(0,0,0,.96) 100%),
      linear-gradient(90deg, rgba(0,0,0,.38), rgba(0,0,0,.16), rgba(0,0,0,.38));
  }
  .ht-brand {
    top: 22px;
    inset-inline-start: 16px;
    font-size: .58rem;
    letter-spacing: .22em;
  }
  .ht-title {
    min-height: 2.35em;
    font-size: clamp(.98rem, 4.8vw, 1.18rem);
    line-height: 1.16;
    text-wrap: normal;
  }
  .ht-sub {
    min-height: 7em;
    max-width: 100%;
    font-size: clamp(.56rem, 2.75vw, .66rem);
    line-height: 1.5;
    margin-top: 7px;
  }
  .ht-label {
    gap: 7px;
    font-size: .48rem;
    margin-bottom: 7px;
    letter-spacing: .14em;
  }
  .ht-label::before {
    width: 24px;
  }
  .ht-scroll-hint {
    display: none;
  }
}

@media (max-width: 380px) {
  .ht-copy {
    right: 14px;
    top: 68px;
    width: min(43vw, 154px);
    max-width: 154px;
  }
  .ht-bg {
    background-position: 44% top;
  }
  .ht-title {
    min-height: 2.3em;
    font-size: .94rem;
  }
  .ht-sub {
    min-height: 6.6em;
    font-size: .54rem;
    line-height: 1.46;
  }
}

@media (max-height: 640px) and (max-width: 600px) {
  .hero-typewriter {
    --ht-mobile-visual: min(50svh, 300px);
  }
  .ht-copy {
    top: 62px;
  }
  .ht-bg {
    background-position: 44% top;
  }
  .ht-title {
    min-height: 2.2em;
    font-size: .9rem;
  }
  .ht-sub {
    min-height: 5.9em;
    font-size: .52rem;
    line-height: 1.42;
  }
  .ht-label {
    margin-bottom: 7px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ht-caret,
  .ht-scroll-line {
    animation: none !important;
  }
}

/* ── HERO CINEMA: VIDEO SCRUB REBUILD ─────────────────────────────────── */
#hc-wrapper {
  height: 520vh;
  position: relative;
  background: #000000;
}
#hero-cinema {
  --hc-mx: 0;
  --hc-my: 0;
  --hc-pointer-x: 50%;
  --hc-pointer-y: 50%;
  position: sticky;
  top: 0;
  width: 100%;
  height: 100svh;
  overflow: hidden;
  isolation: isolate;
  background: #000000;
  color: #ffffff;
  font-family: var(--ff-body, 'Tajawal', system-ui, sans-serif);
}
.hc-video-stack,
.hc-video,
.hc-vignette,
.hc-grain {
  position: absolute;
  inset: 0;
}
.hc-video-stack {
  z-index: 1;
  background: #000000;
  transform:
    translate3d(calc(var(--hc-mx) * -34px), calc(var(--hc-my) * -24px), 0)
    scale(1.045);
  transition: transform .18s ease-out;
  will-change: transform;
}
.hc-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  will-change: opacity;
  filter: saturate(.92) contrast(1.08) brightness(.72);
  transition: opacity .24s linear;
}
.hc-video:first-child { opacity: 1; }
.hc-vignette {
  z-index: 4;
  pointer-events: none;
  background:
    radial-gradient(circle at var(--hc-pointer-x) var(--hc-pointer-y), rgba(200,168,110,.12), transparent 22%),
    radial-gradient(ellipse at center, rgba(0,0,0,.05) 0%, rgba(0,0,0,.38) 58%, rgba(0,0,0,.88) 100%),
    linear-gradient(90deg, rgba(0,0,0,.86) 0%, rgba(0,0,0,.46) 34%, rgba(0,0,0,.22) 58%, rgba(0,0,0,.78) 100%),
    linear-gradient(180deg, rgba(0,0,0,.52), transparent 36%, rgba(0,0,0,.78));
}
.hc-vignette::after {
  content: '';
  position: absolute;
  width: 28vmin;
  aspect-ratio: 1;
  left: var(--hc-pointer-x);
  top: var(--hc-pointer-y);
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,.14), rgba(200,168,110,.08) 34%, transparent 68%);
  mix-blend-mode: screen;
  opacity: .78;
}
.hc-grain {
  z-index: 5;
  pointer-events: none;
  opacity: .13;
  mix-blend-mode: screen;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 3px 3px;
}
.hc-brand-mark {
  position: absolute;
  z-index: 6;
  inset-inline-start: clamp(22px, 4vw, 70px);
  top: clamp(88px, 12vh, 132px);
  color: rgba(255,255,255,.72);
  font-family: var(--ff-mono, monospace);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .32em;
  transform: translate3d(calc(var(--hc-mx) * 18px), calc(var(--hc-my) * 10px), 0);
  transition: transform .18s ease-out;
}
.hc-copy-wrap {
  position: absolute;
  z-index: 7;
  right: clamp(24px, 7vw, 110px);
  left: auto;
  width: min(520px, 44vw);
  bottom: clamp(78px, 12vh, 126px);
  text-align: right;
  transform: translate3d(calc(var(--hc-mx) * 8px), calc(var(--hc-my) * 6px), 0);
  transition: transform .18s ease-out;
}
.hc-copy {
  position: absolute;
  inset-inline-start: 0;
  bottom: 0;
  width: 100%;
  opacity: 0;
  transform: translate3d(0, 34px, 0);
  filter: blur(10px);
  pointer-events: none;
  transition: opacity .55s ease, transform .55s ease, filter .55s ease;
}
.hc-copy.is-active {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  filter: blur(0);
}
.hc-label {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #c8a86e;
  font-family: var(--ff-mono, monospace);
  font-size: clamp(.62rem, .72vw, .76rem);
  font-weight: 700;
  letter-spacing: .18em;
  margin-bottom: 14px;
}
.hc-label::before {
  content: '';
  width: 58px;
  height: 2px;
  background: #c8a86e;
  box-shadow: 0 0 24px rgba(200,168,110,.55);
}
.hc-h1 {
  margin: 0;
  max-width: 760px;
  color: #ffffff;
  font-family: 'Tajawal', var(--ff-body, system-ui), sans-serif;
  font-size: clamp(2.1rem, 4.6vw, 4.95rem);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: 0;
  text-wrap: balance;
  text-shadow: 0 24px 60px rgba(0,0,0,.82), 0 2px 12px rgba(0,0,0,.72);
}
.hc-sub {
  max-width: 580px;
  margin: 18px 0 0;
  color: rgba(242,241,237,.82);
  font-size: clamp(.95rem, 1.25vw, 1.18rem);
  font-weight: 500;
  line-height: 1.85;
  text-shadow: 0 14px 34px rgba(0,0,0,.82);
}
.hc-hud {
  position: absolute;
  z-index: 8;
  inset-inline-end: clamp(18px, 3vw, 46px);
  top: clamp(92px, 13vh, 140px);
  display: grid;
  gap: 8px;
  justify-items: end;
  color: rgba(255,255,255,.74);
  font-family: var(--ff-mono, monospace);
  font-size: .74rem;
  letter-spacing: .16em;
}
.hc-progress-bar {
  position: absolute;
  z-index: 9;
  inset-inline: clamp(18px, 3vw, 46px);
  bottom: clamp(24px, 4vh, 42px);
  height: 2px;
  background: rgba(255,255,255,.18);
  overflow: hidden;
}
#hc-progress-fill {
  width: 100%;
  height: 100%;
  transform: scaleX(0);
  transform-origin: left center;
  background: linear-gradient(90deg, #c8a86e, #ffffff, #c8a86e);
  box-shadow: 0 0 24px rgba(200,168,110,.55);
}
.hc-scroll-hint {
  position: absolute;
  z-index: 8;
  inset-inline-start: clamp(18px, 3vw, 46px);
  bottom: clamp(44px, 8vh, 86px);
  display: flex;
  align-items: center;
  gap: 13px;
  color: rgba(255,255,255,.66);
  font-family: var(--ff-mono, monospace);
  font-size: .68rem;
  letter-spacing: .22em;
  transition: opacity .35s ease;
}
.hc-scroll-line {
  width: 64px;
  height: 1px;
  background: linear-gradient(90deg, #c8a86e, transparent);
  animation: hcScrollPulse 1.65s ease-in-out infinite;
}
@keyframes hcScrollPulse {
  0%, 100% { transform: scaleX(.4); opacity: .35; }
  50% { transform: scaleX(1); opacity: 1; }
}

/* ── MOBILE HERO (portrait only) ──────────────────────────────────────── */
#hero-mobile {
  display: none;
  position: relative;
  width: 100%;
  height: 100svh;
  overflow: hidden;
  isolation: isolate;
  background: #000;
  color: #fff;
  font-family: var(--ff-body, 'Tajawal', system-ui, sans-serif);
}
.hm-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center top;
  filter: saturate(.85) contrast(1.1) brightness(.52);
}
.hm-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,.12) 38%, rgba(0,0,0,.88) 100%);
  z-index: 1;
}
.hm-brand {
  position: absolute;
  top: clamp(90px, 14vh, 120px);
  inset-inline-start: clamp(22px, 6vw, 38px);
  z-index: 2;
  color: rgba(255,255,255,.72);
  font-family: var(--ff-mono, monospace);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .32em;
}
.hm-content {
  position: absolute;
  z-index: 2;
  inset-inline: clamp(22px, 6vw, 38px);
  bottom: clamp(86px, 14vh, 124px);
  text-align: start;
}
.hm-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #c8a86e;
  font-family: var(--ff-mono, monospace);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .18em;
  margin-bottom: 14px;
}
.hm-label::before {
  content: '';
  width: 38px;
  height: 2px;
  background: #c8a86e;
  box-shadow: 0 0 16px rgba(200,168,110,.55);
}
.hm-h1 {
  margin: 0;
  color: #fff;
  font-family: 'Tajawal', var(--ff-body, system-ui), sans-serif;
  font-size: clamp(1.9rem, 8.5vw, 2.7rem);
  font-weight: 900;
  line-height: 1.1;
  text-shadow: 0 16px 44px rgba(0,0,0,.9);
  text-wrap: balance;
}
.hm-sub {
  margin: 13px 0 0;
  color: rgba(242,241,237,.8);
  font-size: clamp(.86rem, 3.6vw, .98rem);
  font-weight: 400;
  line-height: 1.9;
  text-shadow: 0 8px 24px rgba(0,0,0,.82);
}
.hm-scroll-hint {
  position: absolute;
  z-index: 2;
  inset-inline-start: clamp(22px, 6vw, 38px);
  bottom: clamp(28px, 5vh, 46px);
  display: flex;
  align-items: center;
  gap: 12px;
  color: rgba(255,255,255,.58);
  font-family: var(--ff-mono, monospace);
  font-size: .64rem;
  letter-spacing: .22em;
}
.hm-scroll-line {
  width: 50px;
  height: 1px;
  background: linear-gradient(90deg, #c8a86e, transparent);
  animation: hcScrollPulse 1.65s ease-in-out infinite;
}
#hero-mobile .hm-bg,
#hero-mobile .hm-h1,
#hero-mobile .hm-sub,
#hero-mobile .hm-label {
  transition: opacity .38s ease;
}
#hero-mobile.hm-transitioning .hm-bg,
#hero-mobile.hm-transitioning .hm-h1,
#hero-mobile.hm-transitioning .hm-sub,
#hero-mobile.hm-transitioning .hm-label {
  opacity: 0;
}
@media (orientation: portrait) {
  #hc-wrapper { display: none !important; }
  #hero-mobile { display: block; }
  .portfolio-stations-track,
  .about-stations-track { animation: none !important; }
}

.home-editorial-after {
  position: relative;
  z-index: 3;
  margin-top: -8vh;
  padding-top: clamp(118px, 13vw, 190px);
  padding-bottom: clamp(62px, 8vw, 104px);
  background: #090a09;
}
.home-editorial-after.compact {
  margin-top: -7vh;
  padding-top: clamp(100px, 11vw, 160px);
}
.video-divider {
  min-height: 120svh;
  position: relative;
  z-index: 2;
  margin-block: 0;
  background: #000000;
  isolation: isolate;
  pointer-events: none;
}
.vd-sticky {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
  background: #000000;
  opacity: var(--vd-opacity, 0);
  transform: translateZ(0);
  border-block: 1px solid rgba(200,168,110,.06);
  transition: opacity .15s linear;
}
.vd-video,
.vd-vignette {
  position: absolute;
  inset: 0;
}
.vd-video {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #000000;
  opacity: var(--vd-opacity, 0);
  filter: saturate(.96) contrast(1.04) brightness(.9);
  will-change: opacity, transform;
  transform: translateZ(0);
}
.video-divider.missing-video {
  display: none;
}
.vd-vignette {
  pointer-events: none;
  background:
    radial-gradient(ellipse at center, rgba(0,0,0,0), rgba(0,0,0,.12) 70%, rgba(0,0,0,.48)),
    linear-gradient(180deg, #000 0%, rgba(0,0,0,.02) 18%, rgba(0,0,0,.02) 82%, #000 100%),
    linear-gradient(90deg, rgba(0,0,0,.28), rgba(0,0,0,.02) 48%, rgba(0,0,0,.28));
}
.vd-sticky::before,
.vd-sticky::after {
  content: '';
  position: absolute;
  z-index: 3;
  inset-inline: 0;
  height: 24%;
  pointer-events: none;
}
.vd-sticky::before {
  top: 0;
  background: linear-gradient(180deg, #090a09, rgba(9,10,9,0));
}
.vd-sticky::after {
  bottom: 0;
  background: linear-gradient(0deg, #090a09, rgba(9,10,9,0));
}
.vd-copy {
  position: absolute;
  z-index: 2;
  inset-inline: clamp(24px, 7vw, 110px);
  bottom: clamp(86px, 16vh, 170px);
  max-width: 780px;
  color: #ffffff;
  text-align: right;
  display: none;
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  will-change: opacity, transform;
}
.vd-copy span {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #c8a86e;
  font-family: var(--ff-mono, monospace);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .18em;
  margin-bottom: 16px;
}
.vd-copy span::before {
  content: '';
  width: 52px;
  height: 2px;
  background: #c8a86e;
  box-shadow: 0 0 24px rgba(200,168,110,.5);
}
.vd-copy strong {
  display: block;
  font-family: 'Tajawal', var(--ff-body, system-ui), sans-serif;
  font-size: clamp(2rem, 4.8vw, 5.4rem);
  font-weight: 900;
  line-height: 1.04;
  text-shadow: 0 24px 58px rgba(0,0,0,.82);
}
@media (max-width: 900px) {
  .hc-copy-wrap {
    right: 20px;
    left: auto;
    width: min(480px, calc(100vw - 40px));
    bottom: clamp(82px, 12vh, 118px);
  }
  .hc-h1 {
    font-size: clamp(2rem, 8.8vw, 3.7rem);
    line-height: 1.08;
  }
  .hc-brand-mark { top: 92px; inset-inline-start: 20px; }
  .hc-hud { top: 92px; inset-inline-end: 20px; }
  .vd-copy {
    inset-inline: 22px;
    bottom: 104px;
  }
}
@media (max-width: 600px) {
  #hc-wrapper { height: 490vh; }
  .hc-copy-wrap { bottom: 96px; right: 18px; left: 18px; width: auto; }
  .hc-h1 { font-size: 2.05rem; line-height: 1.12; }
  .hc-sub { font-size: .92rem; line-height: 1.7; margin-top: 12px; }
  .hc-label { font-size: .62rem; margin-bottom: 13px; }
  .hc-label::before { width: 38px; }
  .hc-scroll-hint { display: none; }
  .video-divider { min-height: 112svh; margin-block: 0; }
  .vd-sticky { top: 0; height: 100svh; }
  .vd-copy strong { font-size: 2.15rem; line-height: 1.12; }
}
@media (prefers-reduced-motion: reduce) {
  #hc-wrapper { height: auto; }
  #hero-cinema { position: relative; min-height: 100svh; }
  .hc-video { transition: none; }
  .hc-copy { transition: none; filter: none; }
  .video-divider { height: auto; min-height: 100svh; }
  .vd-sticky { position: relative; min-height: 100svh; }
}

/* ── HС RIGHT GRADIENT (text protection on right side) ── */
.hc-right-gradient {
  position: absolute;
  top: 0; bottom: 0; right: 0;
  width: 52%;
  z-index: 6;
  pointer-events: none;
  background: linear-gradient(
    to left,
    rgba(0,0,0,.88) 0%,
    rgba(0,0,0,.60) 22%,
    rgba(0,0,0,.20) 52%,
    transparent 100%
  );
}
@media (max-width: 600px) {
  .hc-right-gradient { width: 100%; background: linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.35) 50%, rgba(0,0,0,.15) 100%); }
}

/* ── GOLD TRANSITION LINE after hero ── */
.home-transition-line {
  position: relative;
  z-index: 3;
  background: var(--ink);
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.htl-inner {
  width: 1px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold) 15%, var(--gold) 85%, transparent);
  opacity: 0;
  transition: width 1.4s cubic-bezier(.25,.46,.45,.94), opacity .6s ease;
}
.htl-inner.htl-visible,
.htl-inner.in {
  width: min(280px, 55vw);
  opacity: 1;
}

/* ── HOME INTRO SECTION ── */
.home-intro-section {
  position: relative;
  z-index: 3;
  background: var(--ink);
  padding: 80px 0 72px;
  border-top: 1px solid rgba(200,168,110,.12);
}
.home-intro-content { max-width: 860px; }
.home-intro-title {
  font-family: var(--ff-display);
  font-size: clamp(1.85rem, 4vw, 3.2rem);
  font-weight: 700;
  color: var(--paper);
  line-height: 1.2;
  margin-bottom: 22px;
}
.home-intro-text {
  color: var(--warm-mid);
  font-size: 1.05rem;
  line-height: 2;
  max-width: 680px;
}
.gold-text { color: var(--gold); }

/* ── HOME FEATURED SECTION ── */
/* ── HOME TOPICS SPLIT ── */
.home-topics-split {
  position: relative;
  z-index: 3;
  background: rgba(255,255,255,.012);
  border-top: 1px solid var(--line);
  padding: 72px 0 80px;
}
.topics-split-wrap {
  display: grid;
  grid-template-columns: 1fr 1px 1fr;
  gap: 0 52px;
  align-items: start;
}
.topics-split-divider {
  background: var(--line);
  align-self: stretch;
  min-height: 460px;
}
.topics-col-head { margin-bottom: 28px; }
.topics-col-title {
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 900;
  color: var(--paper);
  margin: 5px 0 0;
  line-height: 1.2;
}

/* Featured cycling */
.featured-cycle-wrap {
  position: relative;
  min-height: 400px;
  cursor: grab;
  user-select: none;
}
.featured-cycle-wrap:active { cursor: grabbing; }
.featured-cycle-item {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .55s ease, transform .55s ease;
  cursor: pointer;
  pointer-events: none;
}
.featured-cycle-item.fci-active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.fci-img {
  width: 100%;
  aspect-ratio: 16/7;
  object-fit: cover;
  display: block;
  margin-bottom: 18px;
}
.fci-img-ph {
  width: 100%;
  aspect-ratio: 16/7;
  background: linear-gradient(135deg, var(--surface), rgba(200,168,110,.04));
  border: 1px solid var(--line);
  margin-bottom: 18px;
}
.fci-title {
  font-size: clamp(.95rem, 1.6vw, 1.2rem);
  font-weight: 700;
  color: var(--paper);
  line-height: 1.35;
  margin: 8px 0 10px;
}
.fci-excerpt {
  font-size: .86rem;
  color: var(--warm-mid);
  line-height: 1.7;
  margin: 0 0 14px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.fci-foot { display: flex; flex-direction: column; gap: 3px; }

/* Program identity in featured card */
.fci-prog-id {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  padding: 5px 10px 5px 6px;
  background: rgba(200,168,110,.07);
  border: 1px solid rgba(200,168,110,.18);
  max-width: 100%;
}
.fci-prog-logo {
  width: 24px; height: 24px;
  object-fit: contain; border-radius: 3px; flex-shrink: 0;
}
.fci-prog-initial {
  width: 24px; height: 24px;
  background: rgba(200,168,110,.15);
  border-radius: 3px;
  display: flex; align-items: center; justify-content: center;
  font-size: .65rem; font-weight: 900; color: var(--gold); flex-shrink: 0;
}
.fci-prog-name {
  font-family: var(--ff-mono);
  font-size: .62rem;
  letter-spacing: .1em;
  color: var(--gold);
  text-transform: uppercase;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Featured nav (arrows + dots) */
.featured-nav {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 20px;
  padding-top: 14px;
  border-top: 1px solid var(--line-s);
}
.fci-arrow-btn {
  width: 34px; height: 34px;
  background: var(--surface);
  border: 1px solid var(--line);
  color: var(--warm-mid);
  font-size: .9rem;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; flex-shrink: 0;
  transition: border-color var(--t), color var(--t), background var(--t);
}
.fci-arrow-btn:hover { border-color: var(--gold); color: var(--gold); background: rgba(200,168,110,.07); }
.featured-dots {
  display: flex;
  gap: 6px;
  flex: 1;
}
.fdot {
  font-family: var(--ff-mono);
  font-size: .6rem;
  letter-spacing: .06em;
  color: var(--warm-dark);
  padding: 5px 10px;
  background: var(--surface);
  border: 1px solid var(--line);
  cursor: pointer;
  transition: background var(--t), color var(--t), border-color var(--t);
  white-space: nowrap;
}
.fdot.fdot-active {
  background: var(--gold);
  color: var(--ink);
  border-color: var(--gold);
  font-weight: 700;
}
.fdot:not(.fdot-active):hover { border-color: var(--gold); color: var(--gold); }

/* Latest list */
.latest-list { display: flex; flex-direction: column; }
.latest-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 13px 14px;
  cursor: pointer;
  border-inline-start: 2px solid transparent;
  transition: border-color var(--t), background var(--t);
}
.latest-item:hover,
.latest-item.li-active {
  border-inline-start-color: var(--gold);
  background: rgba(200,168,110,.05);
}
.li-prog-logo { width: 34px; height: 34px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.li-prog-logo img { width: 34px; height: 34px; object-fit: contain; border-radius: 3px; }
.li-prog-initial {
  width: 34px; height: 34px;
  background: rgba(200,168,110,.1);
  border-radius: 3px;
  display: flex; align-items: center; justify-content: center;
  font-size: .8rem; font-weight: 900; color: var(--gold);
}
.li-body { flex: 1; min-width: 0; }
.li-title {
  font-size: .86rem;
  font-weight: 600;
  color: var(--warm-paper, var(--paper));
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color var(--t);
}
.latest-item.li-active .li-title { color: var(--gold); }
.li-meta { margin-top: 3px; }
.li-arrow {
  font-size: .78rem;
  color: var(--gold);
  flex-shrink: 0;
  opacity: 0;
  transition: opacity var(--t);
}
.latest-item:hover .li-arrow,
.latest-item.li-active .li-arrow { opacity: 1; }

.topics-split-footer { text-align: center; margin-top: 48px; }

/* ── HOME CTA SECTION ── */
.home-cta-section {
  position: relative;
  z-index: 3;
  background: var(--ink);
  border-top: 1px solid var(--line);
  padding: 80px 0 100px;
}
.home-cta-card {
  position: relative;
  border: 1px solid rgba(200,168,110,.22);
  background: linear-gradient(135deg, rgba(200,168,110,.08), rgba(255,255,255,.015));
  padding: clamp(36px, 6vw, 72px);
  overflow: hidden;
}
.home-cta-bg {
  position: absolute;
  top: 0; bottom: 0;
  inset-inline-start: 0;
  width: 38%;
  background: radial-gradient(ellipse at 0% 50%, rgba(200,168,110,.13), transparent 65%);
  pointer-events: none;
}
.home-cta-content {
  position: relative;
  z-index: 1;
  max-width: 680px;
}
.home-cta-title {
  font-family: var(--ff-display);
  font-size: clamp(1.8rem, 3.8vw, 3rem);
  font-weight: 700;
  color: var(--paper);
  line-height: 1.15;
  margin-bottom: 18px;
}
.home-cta-text {
  color: var(--warm-mid);
  font-size: 1.03rem;
  line-height: 1.9;
  margin-bottom: 30px;
  max-width: 580px;
}
@media (max-width: 900px) {
  .topics-split-wrap { grid-template-columns: 1fr; gap: 40px 0; }
  .topics-split-divider { display: none; }
  .featured-cycle-wrap { min-height: 320px; }
}
@media (max-width: 600px) {
  .home-intro-section,
  .home-topics-split,
  .home-cta-section { padding: 56px 0; }
  .featured-cycle-wrap { min-height: 280px; }
  .home-cta-card { padding: 30px 22px; }
  .home-cta-title { font-size: 1.7rem; }
  .home-intro-title { font-size: 1.7rem; }
  .home-transition-line { padding-top: 0; }
}

/* ══════════════════════════════════════════════
   PROGRAMS PAGE
══════════════════════════════════════════════ */
.programs-page .page-header { padding: 96px 40px 28px; }
.programs-page-sub {
  color: var(--warm-mid);
  font-size: .88rem;
  max-width: 480px;
  margin: 8px auto 0;
  line-height: 1.65;
}

/* ── Topics Ticker ─────────────────────────── */
.topics-ticker {
  background: rgba(255,255,255,.022);
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  height: 44px;
  overflow: hidden;
}
.ticker-label {
  flex-shrink: 0;
  padding: 0 16px;
  font-family: var(--ff-mono);
  font-size: .6rem;
  letter-spacing: .14em;
  color: var(--gold);
  text-transform: uppercase;
  border-inline-end: 1px solid var(--line);
  height: 100%;
  display: flex;
  align-items: center;
  white-space: nowrap;
  background: rgba(200,168,110,.055);
}
.ticker-track-wrap {
  flex: 1;
  overflow: hidden;
  position: relative;
}
.ticker-track-wrap::before,
.ticker-track-wrap::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 36px;
  z-index: 1;
  pointer-events: none;
}
[dir="rtl"] .ticker-track-wrap::before { right: auto; left: 0;  background: linear-gradient(to left,  transparent, var(--ink)); }
[dir="rtl"] .ticker-track-wrap::after  { left: auto;  right: 0; background: linear-gradient(to right, transparent, var(--ink)); }
[dir="ltr"] .ticker-track-wrap::before { left: auto;  right: 0; background: linear-gradient(to right, transparent, var(--ink)); }
[dir="ltr"] .ticker-track-wrap::after  { right: auto; left: 0;  background: linear-gradient(to left,  transparent, var(--ink)); }
.topics-ticker .ticker-track {
  display: flex;
  align-items: center;
  width: max-content;
  animation: topicsTickerScroll 40s linear infinite;
}
.topics-ticker .ticker-track:hover { animation-play-state: paused; }
@keyframes topicsTickerScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.topics-ticker .ticker-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 22px;
  cursor: pointer;
  white-space: nowrap;
  font-family: inherit;
  font-size: inherit;
  letter-spacing: normal;
  color: inherit;
  text-transform: none;
}
.topics-ticker .ticker-item:hover .ticker-title { color: var(--gold); }
.ticker-dot {
  width: 3px; height: 3px;
  border-radius: 50%;
  background: rgba(200,168,110,.35);
  flex-shrink: 0;
}
.ticker-prog-logo { width: 16px; height: 16px; object-fit: contain; border-radius: 2px; flex-shrink: 0; }
.ticker-prog-initial {
  width: 16px; height: 16px;
  background: rgba(200,168,110,.12);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: .52rem; font-weight: 900; color: var(--gold);
  border-radius: 2px; flex-shrink: 0;
}
.ticker-title {
  font-size: .76rem;
  color: var(--warm-mid);
  transition: color var(--t);
}

/* ── Compact Programs Grid ─────────────────── */
.programs-grid-section { padding: 24px 0 0; }
.programs-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}

.program-card {
  --prog-accent: var(--gold);
  position: relative;
  height: 152px;
  background: var(--surface);
  border: 1px solid var(--line);
  overflow: hidden;
  cursor: pointer;
  transition: border-color var(--t), box-shadow var(--t);
}
.program-card::before {
  content: '';
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  width: 3px;
  background: var(--prog-accent);
  opacity: 0;
  transition: opacity var(--t);
  z-index: 3;
}
.program-card:hover::before,
.program-card.active::before { opacity: 1; }
.program-card.active {
  border-color: var(--prog-accent);
  box-shadow: 0 0 0 1px var(--prog-accent);
}

/* Normal state */
.prog-card-base {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 14px;
  text-align: center;
  transition: opacity .2s ease;
}
.program-card:hover .prog-card-base { opacity: 0; }
.prog-card-logo { width: 72px; height: 72px; flex-shrink: 0; }
.prog-card-logo img { width: 72px; height: 72px; object-fit: contain; border-radius: 5px; }
.prog-card-initial {
  width: 72px; height: 72px;
  background: linear-gradient(135deg, var(--prog-accent, var(--gold)), rgba(200,168,110,.12));
  border-radius: 5px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.7rem; font-weight: 900; color: var(--ink);
}
.prog-card-name {
  font-family: var(--ff-body);
  font-size: .78rem;
  font-weight: 700;
  color: var(--paper);
  line-height: 1.3;
}
.prog-card-count {
  font-family: var(--ff-mono);
  font-size: .58rem;
  color: var(--warm-dark);
  letter-spacing: .08em;
}

/* Hover overlay */
.prog-card-overlay {
  position: absolute;
  inset: 0;
  background: rgba(10,10,10,.95);
  border: 1px solid var(--prog-accent, var(--gold));
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 13px 14px;
  transform: translateY(105%);
  transition: transform .24s cubic-bezier(.4,0,.2,1);
  z-index: 2;
}
.program-card:hover .prog-card-overlay { transform: translateY(0); }
.prog-overlay-name {
  font-size: .76rem; font-weight: 700;
  color: var(--prog-accent, var(--gold));
  font-family: var(--ff-body);
  line-height: 1.25;
  flex-shrink: 0;
}
.prog-overlay-desc {
  font-size: .71rem;
  color: var(--warm-mid);
  line-height: 1.5;
  flex: 1;
  margin: 6px 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.prog-overlay-cta {
  font-family: var(--ff-mono);
  font-size: .6rem;
  color: var(--prog-accent, var(--gold));
  letter-spacing: .1em;
  flex-shrink: 0;
}

/* Program Topics Section */
.program-topics-section { padding: 28px 0 80px; border-top: 1px solid var(--line); margin-top: 24px; }
.program-selected-info {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 28px;
  align-items: center;
  padding: 28px 28px 24px;
  background: var(--surface);
  border: 1px solid var(--line);
  margin-bottom: 32px;
}
.program-selected-logo { display: flex; align-items: center; justify-content: center; }
.program-selected-logo img { width: 88px; height: 88px; object-fit: contain; border-radius: 8px; }
.program-logo-ph {
  width: 88px; height: 88px;
  background: linear-gradient(135deg, var(--prog-accent, var(--gold)), rgba(200,168,110,.2));
  display: flex; align-items: center; justify-content: center;
  border-radius: 8px; font-size: 2rem; font-weight: 900; color: var(--ink);
}
.program-logo-ph.lg { width: 88px; height: 88px; font-size: 2rem; border-radius: 8px; }
.program-selected-name {
  font-size: clamp(1.3rem, 2.6vw, 2rem); font-weight: 900;
  color: var(--paper); margin: 4px 0 10px; line-height: 1.2;
}
.program-selected-desc { font-size: .92rem; color: var(--warm-mid); line-height: 1.75; margin: 0; }
.program-topics-title-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; margin-bottom: 24px; flex-wrap: wrap;
}
.program-topics-title-row h3 { font-size: 1.05rem; font-weight: 700; color: var(--paper); margin: 0; }
.program-clear-btn {
  background: none; border: 1px solid var(--line); color: var(--warm-mid);
  font-family: var(--ff-mono); font-size: .7rem; letter-spacing: .1em;
  padding: 6px 16px; cursor: pointer; transition: border-color var(--t), color var(--t);
}
.program-clear-btn:hover { border-color: var(--gold); color: var(--gold); }

/* ══════════════════════════════════════════════
   PROGRAM BADGE (on article cards & topic page)
══════════════════════════════════════════════ */
.prog-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(200,168,110,.08);
  border: 1px solid rgba(200,168,110,.18);
  padding: 3px 9px 3px 6px;
  margin-bottom: 8px;
  max-width: 100%;
}
.prog-badge-logo {
  width: 16px;
  height: 16px;
  object-fit: contain;
  border-radius: 2px;
  flex-shrink: 0;
}
.prog-badge-initial {
  width: 16px;
  height: 16px;
  background: var(--gold-dim);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .62rem;
  font-weight: 900;
  color: var(--gold);
  border-radius: 2px;
  flex-shrink: 0;
}
.prog-badge span:last-child {
  font-family: var(--ff-mono);
  font-size: .63rem;
  letter-spacing: .1em;
  color: var(--gold);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ══════════════════════════════════════════════
   TAG CHIPS
══════════════════════════════════════════════ */
.tag-chip {
  display: inline-flex;
  align-items: center;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1);
  color: var(--warm-mid);
  font-family: var(--ff-mono);
  font-size: .62rem;
  letter-spacing: .08em;
  padding: 2px 8px;
  cursor: default;
  transition: border-color var(--t), color var(--t);
  white-space: nowrap;
}
.tag-chip:hover { border-color: var(--gold); color: var(--gold); }
.card-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 8px; }
.article-detail-tags { display: flex; flex-wrap: wrap; gap: 5px; margin: 6px 0 12px; }

/* ══════════════════════════════════════════════
   PROGRAM IDENTITY (article/topic page)
══════════════════════════════════════════════ */
.art-program-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  background: rgba(200,168,110,.06);
  border: 1px solid rgba(200,168,110,.15);
  border-inline-start: 3px solid var(--gold);
  margin-bottom: 24px;
  transition: background var(--t);
}
.art-program-banner:hover { background: rgba(200,168,110,.1); }
.art-prog-logo {
  width: 36px;
  height: 36px;
  object-fit: contain;
  border-radius: 4px;
  flex-shrink: 0;
}
.art-prog-logo-ph {
  width: 36px;
  height: 36px;
  background: var(--gold-dim);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .9rem;
  font-weight: 900;
  color: var(--gold);
  border-radius: 4px;
  flex-shrink: 0;
}
.art-prog-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}
.art-prog-label {
  font-family: var(--ff-mono);
  font-size: .6rem;
  letter-spacing: .18em;
  color: var(--warm-dark);
  text-transform: uppercase;
}
.art-prog-name {
  font-size: .88rem;
  font-weight: 700;
  color: var(--gold);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.art-prog-arrow {
  font-size: .8rem;
  color: var(--warm-dark);
  flex-shrink: 0;
}

/* ══════════════════════════════════════════════
   SOURCES ACCORDION
══════════════════════════════════════════════ */
.sources-box {
  border: 1px solid var(--line);
  margin: 40px 0 28px;
}
.sources-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  background: var(--surface);
  border: none;
  cursor: pointer;
  font-family: var(--ff-body);
  font-size: .88rem;
  font-weight: 600;
  color: var(--off-white);
  text-align: start;
  transition: background var(--t);
}
.sources-toggle:hover { background: rgba(255,255,255,.04); }
.sources-arrow {
  font-size: .72rem;
  color: var(--warm-dark);
  transition: transform .3s ease;
  flex-shrink: 0;
}
.sources-content { padding: 0 20px 20px; }
.sources-list {
  list-style: none;
  padding: 0;
  margin: 12px 0 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.sources-item {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
  font-size: .84rem;
  color: var(--warm-mid);
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line-s);
}
.sources-item:last-child { border-bottom: none; padding-bottom: 0; }
.source-type-badge {
  font-family: var(--ff-mono);
  font-size: .6rem;
  letter-spacing: .12em;
  background: rgba(200,168,110,.1);
  color: var(--gold);
  padding: 2px 7px;
  border: 1px solid rgba(200,168,110,.2);
  white-space: nowrap;
  flex-shrink: 0;
}
.source-link {
  color: var(--gold);
  text-decoration: underline;
  text-underline-offset: 3px;
  word-break: break-word;
  flex: 1;
}
.source-link:hover { color: var(--paper); }
.source-title { flex: 1; word-break: break-word; }
.source-date {
  font-family: var(--ff-mono);
  font-size: .65rem;
  color: var(--warm-dark);
  width: 100%;
  margin-top: 2px;
}

/* YouTube embed inside article */
.art-video-wrap {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  margin: 24px 0;
  background: #000;
}
.art-video-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ══════════════════════════════════════════════
   RESPONSIVE — PROGRAMS
══════════════════════════════════════════════ */
@media (max-width: 1100px) {
  .programs-grid { grid-template-columns: repeat(5, 1fr); }
}
@media (max-width: 900px) {
  .programs-page .page-header { padding: 88px 22px 22px; }
  .programs-grid { grid-template-columns: repeat(4, 1fr); gap: 7px; }
  .program-card { height: 140px; }
  .program-selected-info { grid-template-columns: 90px 1fr; gap: 20px; }
  .program-selected-logo img { width: 80px; height: 80px; }
  .program-logo-ph { width: 80px; height: 80px; font-size: 1.8rem; }
}
@media (max-width: 600px) {
  .programs-page .page-header { padding: 80px 18px 18px; }
  .programs-grid { grid-template-columns: repeat(3, 1fr); gap: 6px; }
  .program-card { height: 128px; }
  .prog-card-name { font-size: .72rem; }
  .prog-card-initial { width: 54px; height: 54px; font-size: 1.3rem; }
  .prog-card-logo { width: 54px; height: 54px; }
  .prog-card-logo img { width: 54px; height: 54px; }
  .program-selected-info { grid-template-columns: 1fr; gap: 12px; padding: 20px; }
  .program-selected-logo { justify-content: flex-start; }
  .art-program-banner { padding: 8px 12px; }
  .topics-ticker { height: 40px; }
  .ticker-label { font-size: .55rem; padding: 0 12px; }
}
@media (max-width: 400px) {
  .programs-grid { grid-template-columns: repeat(2, 1fr); }
  .program-card { height: 120px; }
}



/* ══════════════════════════════════════════════
   ABOUT PAGE — EDITORIAL REDESIGN (.ap-*)
══════════════════════════════════════════════ */

/* kept for any legacy references that may still be rendered during transition */
.about-page {
  position: relative;
  width: 100%;
  min-height: 100vh;
  background: #0a0a0a;
  padding-top: 72px;
  box-sizing: border-box;
}

/* ══════════════════════════════════════════════
   ABOUT PAGE — NEW EDITORIAL SYSTEM (.ap-*)
══════════════════════════════════════════════ */

/* ── Root ── */
.ap {
  position: relative;
  width: 100%;
  min-height: 100vh;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(200,168,110,.07) 0%, transparent 52%),
    #0a0a0a;
  padding-top: 72px;
  color: #e8e0d0;
  overflow-x: hidden;
}

/* ── Section wrapper ── */
.ap-section {
  position: relative;
  padding: 80px 0;
  overflow: hidden;
}
.ap-section + .ap-section::before {
  content: '';
  display: block;
  position: absolute;
  inset-inline: 40px;
  top: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(200,168,110,.16), transparent);
}
.ap-section-inner {
  position: relative;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 40px;
  z-index: 2;
}

/* ── Watermark number ── */
.ap-watermark {
  position: absolute;
  top: -10px;
  font-family: 'Space Mono', monospace;
  font-size: clamp(90px, 15vw, 210px);
  font-weight: 700;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px rgba(200,168,110,.055);
  pointer-events: none;
  user-select: none;
  z-index: 1;
  letter-spacing: -.03em;
}
[dir="rtl"] .ap-watermark { right: 20px; }
[dir="ltr"] .ap-watermark { left: 20px; }

/* ── Eyebrow ── */
.ap-eyebrow {
  font-family: 'Space Mono', monospace;
  font-size: .6rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #c8a86e;
  margin: 0 0 14px;
  opacity: .82;
}

/* ── Divider ── */
.ap-divider {
  width: 44px;
  height: 1px;
  background: #c8a86e;
  margin: 14px 0 22px;
  opacity: .55;
}

/* ── Section heading ── */
.ap-heading {
  font-family: 'Tajawal', 'Playfair Display', serif;
  font-size: clamp(1.65rem, 3.6vw, 2.9rem);
  font-weight: 700;
  line-height: 1.2;
  color: #f0e8d8;
  margin: 0 0 8px;
}
.ap-intro {
  font-size: clamp(.86rem, 1.35vw, .98rem);
  line-height: 1.88;
  color: rgba(232,224,208,.55);
  max-width: 680px;
  margin: 0 0 34px;
}

/* ══════════════════════════════════════════════
   01 — HERO
══════════════════════════════════════════════ */
.ap-hero {
  padding: 52px 0 76px;
  position: relative;
  overflow: hidden;
}
.ap-hero .ap-watermark { top: 0; }
.ap-hero-inner {
  display: flex;
  align-items: flex-start;
  gap: 52px;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 40px;
  position: relative;
  z-index: 2;
}
.ap-hero-text {
  flex: 1 1 0;
  min-width: 0;
  padding-top: 14px;
}
.ap-hero-name {
  font-family: 'Playfair Display', 'Tajawal', serif;
  font-size: clamp(2rem, 4.2vw, 4rem);
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: -.02em;
  color: #f5ede0;
  margin: 0 0 12px;
}
.ap-hero-tagline {
  font-size: clamp(.9rem, 1.45vw, 1.08rem);
  line-height: 1.75;
  color: rgba(200,168,110,.86);
  margin: 0 0 16px;
}
.ap-hero-bio {
  font-size: clamp(.84rem, 1.25vw, .96rem);
  line-height: 1.9;
  color: rgba(232,224,208,.52);
  margin: 0 0 26px;
  max-width: 560px;
}
.ap-hero-kw-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0 0 30px;
}
.ap-hero-kw {
  font-family: 'Space Mono', monospace;
  font-size: .58rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(200,168,110,.62);
  border: 1px solid rgba(200,168,110,.16);
  border-radius: 2px;
  padding: 3px 9px;
  background: rgba(200,168,110,.03);
  white-space: nowrap;
  transition: border-color .2s, color .2s;
}
.ap-hero-kw:hover { border-color: rgba(200,168,110,.42); color: #c8a86e; }
.ap-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.ap-btn-fill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 26px;
  background: #c8a86e;
  color: #0a0a0a;
  font-family: 'Space Mono', monospace;
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  border: none;
  border-radius: 2px;
  text-decoration: none;
  cursor: pointer;
  font-weight: 700;
  transition: background .2s, transform .15s;
}
.ap-btn-fill:hover { background: #d4b87e; transform: translateY(-1px); }
.ap-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 26px;
  background: transparent;
  color: #c8a86e;
  font-family: 'Space Mono', monospace;
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  border: 1px solid rgba(200,168,110,.32);
  border-radius: 2px;
  text-decoration: none;
  cursor: pointer;
  transition: border-color .2s, color .2s, transform .15s;
}
.ap-btn-ghost:hover { border-color: #c8a86e; color: #d4b87e; transform: translateY(-1px); }

/* Hero photo frame */
.ap-hero-photo-wrap {
  flex: 0 0 auto;
  width: min(300px, 33vw);
  position: relative;
}
.ap-hero-photo-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 3/4;
  overflow: hidden;
  background: rgba(200,168,110,.05);
  border: 1px solid rgba(200,168,110,.11);
}
.ap-hero-photo-frame::before {
  content: '';
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(200,168,110,.065);
  pointer-events: none;
  z-index: 2;
}
.ap-hero-photo-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}
.ap-hero-photo-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Playfair Display', serif;
  font-size: 2.6rem;
  color: rgba(200,168,110,.22);
  font-style: italic;
}

/* ══════════════════════════════════════════════
   02 — JOURNEY
══════════════════════════════════════════════ */
.ap-journey {
  background: linear-gradient(180deg, rgba(200,168,110,.022) 0%, transparent 55%);
}
.ap-journey-text {
  max-width: 740px;
  margin-bottom: 48px;
}
.ap-journey-para {
  font-size: clamp(.84rem, 1.25vw, .96rem);
  line-height: 1.9;
  color: rgba(232,224,208,.52);
  margin: 0 0 14px;
}
.ap-journey-para:last-child { margin-bottom: 0; }

/* Journey grid timeline */
.ap-timeline-wrap {
  padding: 0 var(--ap-pad);
  max-width: var(--ap-max);
  margin: 48px auto 0;
}

.ap-timeline {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: rgba(200,168,110,.08);
  border: 1px solid rgba(200,168,110,.08);
  position: relative;
}

.ap-tl-item {
  padding: 32px 28px 28px;
  position: relative;
  background: #0c0c0c;
  transition: background .25s;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ap-tl-item:hover { background: rgba(200,168,110,.025); }

.ap-tl-dot {
  display: none;
}

.ap-tl-num {
  font-family: 'Space Mono', monospace;
  font-size: 2rem;
  font-weight: 700;
  color: rgba(200,168,110,.1);
  line-height: 1;
  letter-spacing: -.02em;
  display: block;
  margin: 0;
}
.ap-tl-title {
  font-size: 1rem;
  font-weight: 700;
  color: #f0e8d8;
  margin: 0;
  line-height: 1.35;
}
.ap-tl-text {
  font-size: .84rem;
  line-height: 1.78;
  color: rgba(232,224,208,.52);
  margin: 0;
  flex: 1;
}

/* ══════════════════════════════════════════════
   03 — FOCUS AREAS
══════════════════════════════════════════════ */
.ap-focus-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(200,168,110,.08);
  border: 1px solid rgba(200,168,110,.08);
  margin-top: 34px;
}
.ap-fc {
  background: #0e0d0c;
  padding: 30px 24px;
  position: relative;
  overflow: hidden;
  transition: background .25s;
}
.ap-fc::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(200,168,110,.04), transparent 60%);
  opacity: 0;
  transition: opacity .25s;
}
.ap-fc:hover { background: #121110; }
.ap-fc:hover::before { opacity: 1; }
.ap-fc::after {
  content: '';
  position: absolute;
  top: 0;
  height: 2px;
  width: 0;
  background: #c8a86e;
  transition: width .3s;
}
[dir="rtl"] .ap-fc::after { right: 0; }
[dir="ltr"] .ap-fc::after { left: 0; }
.ap-fc:hover::after { width: 100%; }
.ap-fc-num {
  font-family: 'Space Mono', monospace;
  font-size: .56rem;
  color: rgba(200,168,110,.28);
  letter-spacing: .16em;
  display: block;
  margin-bottom: 16px;
}
.ap-fc-title {
  font-size: .92rem;
  font-weight: 700;
  color: #f0e8d8;
  margin: 0 0 9px;
  line-height: 1.35;
}
.ap-fc-body {
  font-size: .78rem;
  line-height: 1.72;
  color: rgba(232,224,208,.42);
  margin: 0;
}

/* ══════════════════════════════════════════════
   04 — MOMENTS (Dome Gallery)
══════════════════════════════════════════════ */
.dg-root {
  margin-top: 34px;
  position: relative;
  user-select: none;
  -webkit-user-select: none;
}
.dg-empty {
  min-height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(200,168,110,.28);
  font-size: .78rem;
  font-family: 'Space Mono', monospace;
  letter-spacing: .1em;
}
.dg-main {
  position: relative;
  height: 560px;
  display: flex;
  align-items: center;
  justify-content: center;
  /* clip-path clips the 3D sphere output WITHOUT flattening preserve-3d */
  clip-path: inset(0);
}
/* Top / bottom vignette */
.dg-main::before,
.dg-main::after {
  content: '';
  position: absolute;
  left: 0; right: 0;
  height: 90px;
  pointer-events: none;
  z-index: 2;
}
.dg-main::before { top: 0;    background: linear-gradient(to bottom, #0a0a0a 0%, transparent 100%); }
.dg-main::after  { bottom: 0; background: linear-gradient(to top,    #0a0a0a 0%, transparent 100%); }
/* Stage — perspective container */
.dg-stage {
  perspective: 1200px;
  perspective-origin: 50% 50%;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: grab;
  touch-action: none;
  -webkit-touch-callout: none;
}
.dg-stage:active { cursor: grabbing; }
/* Sphere — 0×0 origin node */
.dg-sphere {
  position: relative;
  width: 0;
  height: 0;
  transform-style: preserve-3d;
  transform: rotateX(0deg) rotateY(0deg);
  will-change: transform;
}
/* Each image tile */
.dg-item {
  position: absolute;
  width: 106px;
  height: 106px;
  top: -53px;
  left: -53px;
  overflow: hidden;
  border: 1px solid rgba(200,168,110,0);
  border-radius: 12px;
  transition: border-color .25s;
  cursor: pointer;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.dg-item:hover { border-color: rgba(200,168,110,.52); }
.dg-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: grayscale(1) brightness(.68);
  transition: filter .32s;
  pointer-events: none;
}
.dg-item:hover img { filter: grayscale(0) brightness(1); }
/* Side edge fades */
.dg-edge {
  position: absolute;
  top: 0; bottom: 0;
  width: 88px;
  pointer-events: none;
  z-index: 2;
}
.dg-edge-s { left: 0;  background: linear-gradient(to right, #0a0a0a 10%, transparent 100%); }
.dg-edge-e { right: 0; background: linear-gradient(to left,  #0a0a0a 10%, transparent 100%); }
/* Drag hint */
.dg-hint {
  text-align: center;
  font-size: .58rem;
  font-family: 'Space Mono', monospace;
  color: rgba(200,168,110,.22);
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-top: 10px;
}
/* Lightbox viewer */
.dg-viewer {
  position: fixed;
  inset: 0;
  z-index: 8000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease;
}
.dg-viewer.is-open { opacity: 1; pointer-events: auto; }
.dg-scrim {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.9);
  cursor: pointer;
}
.dg-frame {
  position: relative;
  z-index: 1;
  max-width: min(90vw, 940px);
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.dg-frame img {
  max-width: 100%;
  max-height: calc(88vh - 64px);
  object-fit: contain;
  display: block;
}
.dg-caption {
  font-size: .76rem;
  color: rgba(255,255,255,.48);
  text-align: center;
  font-family: 'Space Mono', monospace;
  letter-spacing: .05em;
  margin: 0;
}
.dg-close {
  position: fixed;
  top: 20px;
  right: 20px;
  width: 40px;
  height: 40px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.11);
  color: rgba(255,255,255,.65);
  font-size: .9rem;
  cursor: pointer;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s, color .2s, border-color .2s;
  border-radius: 2px;
  line-height: 1;
}
.dg-close:hover {
  background: rgba(200,168,110,.18);
  border-color: rgba(200,168,110,.35);
  color: #c8a86e;
}

/* ══════════════════════════════════════════════
   04 — GALLERY (Static masonry pages)
══════════════════════════════════════════════ */
.ap-gallery {
  margin-top: 34px;
  position: relative;
}
.ap-gallery-grid {
  columns: 3;
  column-gap: 5px;
  opacity: 1;
  transition: opacity .28s ease;
}
.ap-gallery-grid.is-switching {
  opacity: 0;
}
.ap-gp {
  break-inside: avoid;
  page-break-inside: avoid;
  display: block;
  margin-bottom: 5px;
  position: relative;
  overflow: hidden;
  background: rgba(200,168,110,.04);
  cursor: default;
  transform: translateZ(0);
}
.ap-gp img {
  width: 100%;
  height: auto;
  display: block;
  filter: brightness(.88) saturate(.82);
}
.ap-gp:hover img { filter: brightness(1) saturate(1); }
.ap-gp-cap {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 20px 12px 10px;
  background: linear-gradient(transparent, rgba(0,0,0,.72));
  font-size: .68rem;
  color: rgba(255,255,255,.7);
  transform: translateY(4px);
  opacity: 0;
  transition: opacity .25s, transform .25s;
}
.ap-gp:hover .ap-gp-cap { opacity: 1; transform: translateY(0); }
.ap-gp-empty {
  min-height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(200,168,110,.28);
  font-size: .78rem;
  font-family: 'Space Mono', monospace;
  letter-spacing: .1em;
}
/* Gallery navigation */
.ap-gallery-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(200,168,110,.09);
}
.ap-gallery-counter {
  font-family: 'Space Mono', monospace;
  font-size: .62rem;
  color: rgba(200,168,110,.42);
  letter-spacing: .1em;
}
.ap-gallery-btns {
  display: flex;
  gap: 8px;
}
.ap-gallery-btn {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid rgba(200,168,110,.16);
  color: rgba(200,168,110,.52);
  cursor: pointer;
  transition: border-color .2s, color .2s;
  font-size: .88rem;
  border-radius: 2px;
}
.ap-gallery-btn:hover { border-color: rgba(200,168,110,.5); color: #c8a86e; }
.ap-gallery-btn:disabled { opacity: .28; cursor: not-allowed; }

/* ══════════════════════════════════════════════
   05 — LOGOS BAND (Static grid rows)
══════════════════════════════════════════════ */
.ap-logos-band {
  padding: 48px 0;
  background: linear-gradient(180deg, rgba(200,168,110,.018) 0%, rgba(200,168,110,.032) 50%, rgba(200,168,110,.018) 100%);
}
.ap-logos-label {
  font-family: 'Space Mono', monospace;
  font-size: .56rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(200,168,110,.32);
  text-align: center;
  margin: 0 0 28px;
}
.ap-logos-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  width: min(1080px, calc(100% - 80px));
  margin: 0 auto;
}
.ap-logo-item {
  position: relative;
  width: 100%;
  height: 68px;
  overflow: hidden;
  border: 1px solid rgba(200,168,110,.09);
  background: rgba(200,168,110,.022);
  cursor: default;
  transition: border-color .22s;
}
.ap-logo-item:hover,
.ap-logo-item:focus,
.ap-logo-item:focus-within { border-color: rgba(200,168,110,.24); }
.ap-logo-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  position: absolute;
  inset: 0;
  padding: 10px 12px;
}
.ap-logo-abbr {
  font-family: 'Space Mono', monospace;
  font-size: .72rem;
  font-weight: 700;
  color: #c8a86e;
  letter-spacing: .04em;
}
.ap-logo-name {
  font-size: .56rem;
  color: rgba(232,224,208,.38);
  line-height: 1.3;
  text-align: center;
  max-width: 132px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ap-logo-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 8px 12px;
  box-sizing: border-box;
  opacity: .82;
  z-index: 1;
}
.ap-logo-hover-name {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  background: rgba(10,10,10,.9);
  color: #c8a86e;
  font-size: .58rem;
  font-family: 'Space Mono', monospace;
  letter-spacing: .04em;
  text-align: center;
  line-height: 1.4;
  opacity: 0;
  transition: opacity .22s;
  pointer-events: none;
  z-index: 2;
}
.ap-logo-item:hover .ap-logo-hover-name,
.ap-logo-item:focus .ap-logo-hover-name,
.ap-logo-item:focus-within .ap-logo-hover-name { opacity: 1; }

/* ══════════════════════════════════════════════
   06 — VAR CHECK (Easter Egg)
══════════════════════════════════════════════ */
.ap-var {
  text-align: center;
  background: radial-gradient(ellipse at 50% 60%, rgba(200,168,110,.05) 0%, transparent 62%);
}
.ap-var .ap-heading { text-align: center; }
.ap-var .ap-eyebrow { text-align: center; }
.ap-var .ap-divider { margin-inline: auto; }
.ap-var .ap-intro { text-align: center; margin-inline: auto; }
.ap-var-area {
  max-width: 520px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
}
.ap-var-eyebrow-text {
  font-size: .86rem;
  color: rgba(232,224,208,.45);
  line-height: 1.7;
  letter-spacing: .02em;
  text-align: center;
}
#about-var-btn {
  font-family: 'Space Mono', monospace;
  font-size: 1.08rem;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: #c8a86e;
  background: transparent;
  border: 1px solid rgba(200,168,110,.28);
  padding: 15px 42px;
  cursor: pointer;
  border-radius: 2px;
  transition: background .2s, border-color .2s, transform .15s, box-shadow .2s;
}
#about-var-btn:hover:not(.is-reviewing) {
  border-color: #c8a86e;
  transform: translateY(-1px);
  box-shadow: 0 0 28px rgba(200,168,110,.12);
}
#about-var-btn.is-reviewing {
  opacity: .4;
  pointer-events: none;
}
#about-var-status {
  font-family: 'Space Mono', monospace;
  font-size: .76rem;
  color: rgba(200,168,110,.62);
  min-height: 22px;
  letter-spacing: .06em;
  transition: opacity .3s, color .3s;
}
#about-var-status.is-result {
  color: #c8a86e;
  opacity: .9;
}

/* ══════════════════════════════════════════════
   07 — CLOSING / CONTACT
══════════════════════════════════════════════ */
.ap-contact-card {
  background: rgba(200,168,110,.022);
  border: 1px solid rgba(200,168,110,.09);
  padding: 40px 34px;
  margin-top: 30px;
  position: relative;
  overflow: hidden;
}
.ap-contact-card::before {
  content: '';
  position: absolute;
  top: 0;
  height: 2px;
  width: 52px;
  background: #c8a86e;
}
[dir="rtl"] .ap-contact-card::before { right: 0; }
[dir="ltr"] .ap-contact-card::before { left: 0; }
.ap-contact-para {
  font-size: .9rem;
  line-height: 1.85;
  color: rgba(232,224,208,.52);
  margin: 0 0 16px;
  max-width: 640px;
}
.ap-contact-invite {
  font-size: .92rem;
  color: rgba(200,168,110,.72);
  margin: 0 0 22px;
  line-height: 1.7;
}
.ap-social-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}
.ap-social-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 15px;
  border: 1px solid rgba(200,168,110,.16);
  color: rgba(232,224,208,.58);
  text-decoration: none;
  font-size: .74rem;
  letter-spacing: .04em;
  border-radius: 2px;
  transition: border-color .2s, color .2s, background .2s;
}
.ap-social-link svg { width: 14px; height: 14px; flex-shrink: 0; }
.ap-social-link:hover { border-color: rgba(200,168,110,.42); color: #c8a86e; background: rgba(200,168,110,.032); }
.ap-contact-disclaimer {
  font-size: .7rem;
  color: rgba(232,224,208,.26);
  line-height: 1.72;
  margin-top: 34px;
  max-width: 680px;
}

/* ══════════════════════════════════════════════
   REVEAL ANIMATIONS
══════════════════════════════════════════════ */
.ap-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .55s ease, transform .55s ease;
}
.ap-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.ap-reveal-delay-1 { transition-delay: .1s; }
.ap-reveal-delay-2 { transition-delay: .2s; }
.ap-reveal-delay-3 { transition-delay: .3s; }
.ap-reveal-delay-4 { transition-delay: .4s; }

/* ══════════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════════ */

/* ── Tablet landscape (≤1024px) ── */
@media (max-width: 1024px) {
  .ap-section-inner { padding: 0 28px; }
  .ap-hero-inner { padding: 0 28px; gap: 38px; }
  .ap-hero-photo-wrap { width: min(252px, 31vw); }
  .ap-focus-grid { grid-template-columns: repeat(2, 1fr); }
  .ap-logos-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: min(680px, calc(100% - 56px));
    gap: 6px;
  }
  .ap-logo-item { height: 62px; }
}

/* ── Tablet portrait + large mobile (≤768px) ── */
@media (max-width: 768px) {
  .ap-section { padding: 52px 0; }
  .ap-section-inner { padding: 0 20px; }
  .ap-section + .ap-section::before { inset-inline: 20px; }

  /* Hero */
  .ap-hero { padding: 30px 0 50px; }
  .ap-hero-inner { flex-direction: column !important; padding: 0 20px; gap: 24px; }
  .ap-hero-photo-wrap { width: 100%; max-width: 240px; margin: 0 auto; }
  .ap-hero-photo-frame { aspect-ratio: 1/1; }
  .ap-hero-name { font-size: 1.9rem; }
  .ap-hero-tagline { font-size: .9rem; }
  .ap-hero-bio { font-size: .84rem; max-width: 100%; }
  .ap-hero-kw-cloud { gap: 5px; }

  /* Focus grid */
  .ap-focus-grid { grid-template-columns: 1fr; gap: 0; }
  .ap-fc { padding: 24px 18px; }

  /* Gallery — 2 columns on tablet */
  .ap-gallery-grid { columns: 2; column-gap: 4px; }
  .ap-gp { margin-bottom: 4px; }
  .ap-gallery-nav { gap: 10px; flex-wrap: wrap; justify-content: center; }

  /* Timeline */
  .ap-tl-item { padding: 24px 20px 20px; }
  .ap-tl-num { font-size: 1.5rem; }
  .ap-tl-title { font-size: .92rem; }

  /* Logos grid — tablet */
  .ap-logos-band { padding: 36px 0; }
  .ap-logos-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: min(560px, calc(100% - 40px));
    gap: 6px;
  }
  .ap-logo-item { height: 62px; }
  .ap-logo-abbr { font-size: .66rem; }
  .ap-logo-name { font-size: .52rem; }

  /* Contact */
  .ap-contact-card { padding: 26px 18px; }
  .ap-social-row { gap: 8px; }
  .ap-social-link { padding: 8px 13px; font-size: .7rem; }

  /* Watermark */
  .ap-watermark { font-size: 22vw; }
}

/* ── Mobile (≤480px) ── */
@media (max-width: 480px) {
  .ap-section { padding: 44px 0; }
  .ap-section-inner { padding: 0 16px; }
  .ap-section + .ap-section::before { inset-inline: 16px; }

  .ap-hero { padding: 24px 0 44px; }
  .ap-hero-inner { padding: 0 16px; gap: 20px; }
  .ap-hero-photo-wrap { max-width: 200px; }
  .ap-hero-name { font-size: 1.65rem; }
  .ap-hero-actions { flex-direction: column; align-items: flex-start; }
  .ap-btn-fill, .ap-btn-ghost { justify-content: center; text-align: center; width: 100%; box-sizing: border-box; }

  /* Gallery — 1 column on mobile */
  .ap-gallery-grid { columns: 1; }
  .ap-gp { margin-bottom: 3px; }

  /* Timeline — single column on mobile */
  .ap-timeline { grid-template-columns: 1fr; }
  .ap-timeline-wrap { margin-top: 28px; }
  .ap-tl-item { padding: 20px 16px 18px; }
  .ap-tl-num { font-size: 1.2rem; }

  /* Logos grid — mobile */
  .ap-logos-label {
    max-width: 300px;
    margin-inline: auto;
    line-height: 1.8;
    padding: 0 16px;
  }
  .ap-logos-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: calc(100% - 32px);
    gap: 5px;
  }
  .ap-logo-item { height: 58px; }
  .ap-logo-abbr { font-size: .62rem; }
  .ap-logo-name { font-size: .48rem; }
  .ap-logo-hover-name { font-size: .52rem; }

  /* Contact */
  .ap-contact-card { padding: 22px 16px; }
  .ap-social-row { gap: 6px; }
  .ap-social-link { padding: 8px 12px; font-size: .68rem; }
  .ap-contact-para { font-size: .85rem; }
  .ap-contact-invite { font-size: .85rem; }

  /* Focus */
  .ap-fc { padding: 22px 16px; }
}

/* ── Very small phones (≤360px) ── */
@media (max-width: 360px) {
  .ap-section-inner { padding: 0 14px; }
  .ap-hero-inner { padding: 0 14px; }
  .ap-hero-name { font-size: 1.45rem; }
  .ap-heading { font-size: 1.45rem; }
  .ap-hero-photo-wrap { max-width: 180px; }
  .ap-contact-card { padding: 18px 14px; }
  .ap-watermark { font-size: 24vw; }
}

@media (prefers-reduced-motion: reduce) {
  .ap-reveal { transition: none !important; opacity: 1 !important; transform: none !important; }
  .ap-btn-fill, .ap-btn-ghost, .ap-fc, .ap-gp img, .ap-logo-hover-name { transition: none !important; transform: none !important; }
}

/* ══════════════════════════════════════════════════
   HOME BOOK TEASER — COMPACT STRIP
══════════════════════════════════════════════════ */
/* ══ HOME BOOK TEASER ══════════════════════════════ */
.hbt-strip {
  position: relative;
  padding: 72px 0 80px;
  background:
    linear-gradient(105deg, rgba(118,118,64,.13) 0%, transparent 55%),
    linear-gradient(180deg, rgba(10,10,10,0) 0%, rgba(118,118,64,.05) 100%);
  border-block: 1px solid rgba(118,118,64,.2);
  overflow: hidden;
}
.hbt-strip::before {
  content: '';
  position: absolute; inset-inline-start: 0; top: 0; bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, transparent, #767640 30%, #a0a060 70%, transparent);
}
.hbt-glow {
  position: absolute;
  width: 700px; height: 700px; border-radius: 50%;
  background: radial-gradient(circle, rgba(118,118,64,.12) 0%, transparent 65%);
  top: -280px; inset-inline-end: -180px;
  pointer-events: none;
}
.hbt-body {
  display: grid;
  grid-template-columns: 1fr 220px;
  gap: 64px;
  align-items: center;
}
.hbt-eyebrow {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 22px;
}
.hbt-badge {
  font-family: var(--ff-mono); font-size: .62rem;
  letter-spacing: .24em; text-transform: uppercase;
  color: #a0a060;
  background: rgba(118,118,64,.15);
  border: 1px solid rgba(118,118,64,.45);
  padding: 5px 14px;
}
.hbt-cat {
  font-family: var(--ff-mono); font-size: .6rem;
  letter-spacing: .18em; text-transform: uppercase;
  color: rgba(255,255,255,.3);
}
.hbt-pipe { color: rgba(255,255,255,.15); }
.hbt-title {
  font-family: var(--ff-body);
  font-size: clamp(1.8rem, 3.2vw, 3rem);
  font-weight: 900; line-height: 1.15;
  color: var(--paper);
  margin-bottom: 18px;
}
.hbt-title em {
  font-style: normal;
  color: #a0a060;
  display: block;
}
.hbt-tagline {
  font-size: .92rem; color: var(--warm-mid);
  line-height: 1.75; max-width: 540px;
  margin-bottom: 24px;
}
.hbt-meta {
  display: flex; align-items: center; gap: 12px;
  font-size: .8rem; margin-bottom: 32px;
}
.hbt-author {
  color: rgba(255,255,255,.75); font-weight: 600;
}
.hbt-dot { color: rgba(255,255,255,.18); }
.hbt-avail {
  font-family: var(--ff-mono); font-size: .62rem;
  letter-spacing: .14em; text-transform: uppercase;
  color: #a0a060;
  background: rgba(118,118,64,.1);
  border: 1px solid rgba(118,118,64,.3);
  padding: 3px 10px;
}
.hbt-cta-row {
  display: flex; align-items: center; gap: 22px;
}
.hbt-btn {
  display: inline-flex; align-items: center; gap: 10px;
  background: #767640;
  color: #fff;
  font-family: var(--ff-body); font-size: .92rem; font-weight: 700;
  padding: 15px 36px;
  text-decoration: none;
  transition: background .25s, transform .22s, box-shadow .25s;
  box-shadow: 0 8px 24px rgba(118,118,64,.3);
}
.hbt-btn:hover {
  background: #8a8a4a;
  transform: translateY(-3px);
  box-shadow: 0 14px 32px rgba(118,118,64,.4);
}
.hbt-btn-arrow {
  font-size: 1.1rem; line-height: 1;
  transition: transform .22s;
}
.hbt-btn:hover .hbt-btn-arrow { transform: translateX(-4px); }
.hbt-hint {
  font-size: .78rem; color: rgba(255,255,255,.28);
  font-family: var(--ff-mono);
}
/* visual / book cover */
.hbt-visual {
  position: relative;
  display: flex; align-items: center; justify-content: center;
}
.hbt-cover-shadow {
  position: absolute;
  bottom: -18px; left: 12%; right: 12%; height: 36px;
  background: radial-gradient(ellipse, rgba(0,0,0,.55) 0%, transparent 70%);
  filter: blur(12px);
}
.hbt-cover-img {
  width: 100%; display: block;
  box-shadow:
    28px 32px 64px rgba(0,0,0,.75),
    -6px -6px 24px rgba(118,118,64,.18);
  transform: rotate(-4deg);
  transition: transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s;
}
.hbt-strip:hover .hbt-cover-img {
  transform: rotate(0deg) translateY(-8px);
  box-shadow:
    32px 40px 80px rgba(0,0,0,.8),
    -8px -8px 30px rgba(118,118,64,.25);
}

@media (max-width: 860px) {
  .hbt-body {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .hbt-eyebrow { justify-content: center; }
  .hbt-tagline { margin-inline: auto; }
  .hbt-meta { justify-content: center; }
  .hbt-cta-row { justify-content: center; }
  .hbt-visual { max-width: 180px; margin: 0 auto; }
  .hbt-btn:hover .hbt-btn-arrow { transform: translateX(0) rotate(90deg); }
}
@media (max-width: 480px) {
  .hbt-strip { padding: 48px 0 56px; }
  .hbt-title { font-size: 1.75rem; }
  .hbt-hint { display: none; }
}

/* ══════════════════════════════════════════════════
   MYBOOK1 — LANDING PAGE
══════════════════════════════════════════════════ */
:root { --olive: #767640; --olive-light: #a0a060; --olive-dim: rgba(118,118,64,.18); }

.book-lp { background: var(--ink); min-height: 100vh; padding-top: 68px; }

/* ── HERO ── */
.blp-hero {
  min-height: 92vh;
  display: flex; align-items: center;
  position: relative;
  padding: 80px 0 60px;
}
.blp-hero::after {
  content: '';
  position: absolute; inset-inline-end: 0; top: 0; bottom: 0;
  width: 6px; background: var(--olive);
}
.blp-hero-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 80% 70% at 70% 50%, rgba(118,118,64,.08) 0%, transparent 65%);
  pointer-events: none;
}
.blp-hero-inner {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 80px; align-items: center;
}
.blp-hero-cover {
  position: relative; flex-shrink: 0;
}
.blp-hero-cover img {
  width: 100%; display: block;
  box-shadow: 32px 32px 80px rgba(0,0,0,.7), -8px -8px 30px rgba(118,118,64,.12);
  animation: blp-float 6s ease-in-out infinite;
}
.blp-hero-cover.no-img {
  aspect-ratio: 2/3;
  background: linear-gradient(145deg, #767640 0%, #3a3a20 60%, #2a2a15 100%);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 32px; gap: 16px;
  box-shadow: 32px 32px 80px rgba(0,0,0,.7);
  animation: blp-float 6s ease-in-out infinite;
}
.blp-hero-cover.no-img .ph-title {
  font-family: var(--ff-body); font-size: 1.1rem; font-weight: 900;
  color: rgba(255,255,255,.9); text-align: center; line-height: 1.5;
}
@keyframes blp-float {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-10px) rotate(.5deg); }
}
.blp-hero-text { display: flex; flex-direction: column; gap: 22px; }
.blp-eyebrow {
  font-family: var(--ff-mono); font-size: .62rem;
  letter-spacing: .32em; color: var(--olive-light);
  text-transform: uppercase;
  display: flex; align-items: center; gap: 12px;
}
.blp-eyebrow::before {
  content: ''; display: inline-block;
  width: 32px; height: 1px; background: var(--olive);
}
.blp-hero-title {
  font-family: var(--ff-body);
  font-size: clamp(2rem, 4vw, 3.6rem);
  font-weight: 900; line-height: 1.18; color: var(--paper);
}
.blp-hero-title .ol { color: var(--olive-light); }
.blp-hero-subtitle {
  font-size: .92rem; color: var(--warm-mid);
  line-height: 1.75; max-width: 480px;
}
.blp-hero-hook {
  font-size: 1.05rem; font-style: italic;
  color: rgba(255,255,255,.6); line-height: 1.75;
  border-inline-start: 3px solid var(--olive);
  padding-inline-start: 20px;
}
.blp-hero-author {
  font-family: var(--ff-mono); font-size: .72rem;
  letter-spacing: .2em; color: var(--warm-dark);
  text-transform: uppercase;
}
.blp-hero-btn {
  display: inline-flex; align-items: center; gap: 10px;
  background: var(--olive); color: #fff;
  padding: 16px 40px;
  font-family: var(--ff-body); font-weight: 700; font-size: .95rem;
  letter-spacing: .04em; cursor: pointer;
  border: none; text-decoration: none; align-self: flex-start;
  transition: background .3s, transform .3s, box-shadow .3s;
}
.blp-hero-btn:hover {
  background: #8a8a4a;
  transform: translateY(-3px);
  box-shadow: 0 20px 50px rgba(118,118,64,.4);
}

/* ── WHY SECTION ── */
.blp-why {
  padding: 100px 0;
  background: rgba(255,255,255,.018);
  border-block: 1px solid var(--line);
}
.blp-section-label {
  font-family: var(--ff-mono); font-size: .62rem;
  letter-spacing: .32em; color: var(--olive-light);
  text-transform: uppercase; margin-bottom: 16px;
  display: flex; align-items: center; gap: 10px;
}
.blp-section-label::before {
  content: ''; width: 24px; height: 1px; background: var(--olive);
}
.blp-section-title {
  font-family: var(--ff-body); font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 900; color: var(--paper); line-height: 1.25;
  margin-bottom: 24px;
}
.blp-why-body {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 60px; align-items: center;
}
.blp-why-text p {
  font-size: .95rem; line-height: 1.9; color: rgba(255,255,255,.72);
  margin-bottom: 16px;
}
.blp-why-text p:last-child { margin-bottom: 0; }
.blp-why-stat {
  display: flex; flex-direction: column;
  border: 1px solid rgba(118,118,64,.3);
  background: rgba(118,118,64,.06);
  padding: 36px;
  gap: 24px;
}
.blp-why-stat-item { display: flex; flex-direction: column; gap: 6px; }
.blp-why-stat-num {
  font-family: var(--ff-mono); font-size: 2.2rem;
  font-weight: 700; color: var(--olive-light); line-height: 1;
}
.blp-why-stat-desc {
  font-size: .82rem; color: var(--warm-mid); line-height: 1.5;
}
.blp-why-stat-divider {
  height: 1px; background: rgba(118,118,64,.2);
}

/* ── IDEAS SECTION ── */
.blp-ideas { padding: 100px 0; }
.blp-ideas-grid {
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: 2px; margin-top: 48px;
}
.blp-idea-card {
  padding: 40px;
  background: rgba(255,255,255,.02);
  border: 1px solid var(--line);
  display: flex; flex-direction: column; gap: 14px;
  transition: background .3s, border-color .3s;
  cursor: default;
}
.blp-idea-card:hover {
  background: rgba(118,118,64,.07);
  border-color: rgba(118,118,64,.3);
}
.blp-idea-icon {
  width: 44px; height: 44px;
  background: var(--olive-dim);
  border: 1px solid rgba(118,118,64,.3);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.2rem;
}
.blp-idea-title {
  font-family: var(--ff-body); font-size: 1rem; font-weight: 700;
  color: var(--paper); line-height: 1.35;
}
.blp-idea-desc {
  font-size: .84rem; color: var(--warm-mid); line-height: 1.75;
}

/* ── AUDIENCE SECTION ── */
.blp-audience {
  padding: 80px 0;
  background: rgba(255,255,255,.018);
  border-block: 1px solid var(--line);
}
.blp-audience-chips {
  display: flex; flex-wrap: wrap; gap: 12px;
  margin-top: 36px;
}
.blp-chip {
  padding: 10px 22px;
  border: 1px solid rgba(118,118,64,.4);
  background: rgba(118,118,64,.08);
  color: rgba(255,255,255,.75);
  font-family: var(--ff-body); font-size: .84rem;
  transition: background .3s, border-color .3s, color .3s;
}
.blp-chip:hover {
  background: rgba(118,118,64,.2);
  border-color: var(--olive-light);
  color: var(--paper);
}

/* ── AUTHOR SECTION ── */
.blp-author { padding: 100px 0; }
.blp-author-inner {
  display: grid; grid-template-columns: auto 1fr;
  gap: 56px; align-items: center;
}
.blp-author-badge {
  width: 120px; height: 120px;
  background: var(--olive-dim);
  border: 1px solid rgba(118,118,64,.4);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.blp-author-badge svg {
  width: 52px; height: 52px; fill: var(--olive-light); opacity: .8;
}
.blp-author-name {
  font-family: var(--ff-body); font-size: 1.4rem; font-weight: 900;
  color: var(--paper); margin-bottom: 6px;
}
.blp-author-role {
  font-family: var(--ff-mono); font-size: .65rem;
  letter-spacing: .2em; color: var(--olive-light);
  text-transform: uppercase; margin-bottom: 18px;
}
.blp-author-bio {
  font-size: .9rem; color: rgba(255,255,255,.65); line-height: 1.85;
  max-width: 600px;
}
.blp-author-logo {
  margin-top: 20px;
  display: flex; align-items: center; gap: 8px;
}
.blp-author-logo img {
  height: 32px; filter: brightness(0) invert(1); opacity: .5;
}

/* ── FINAL CTA ── */
.blp-final-cta {
  padding: 120px 0;
  background: linear-gradient(135deg, rgba(118,118,64,.12) 0%, transparent 60%);
  border-top: 1px solid var(--line);
  text-align: center;
}
.blp-final-cta-label {
  font-family: var(--ff-mono); font-size: .6rem;
  letter-spacing: .35em; color: var(--olive-light);
  text-transform: uppercase; margin-bottom: 20px;
}
.blp-final-cta-title {
  font-family: var(--ff-body); font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 900; color: var(--paper); line-height: 1.25;
  margin-bottom: 16px;
}
.blp-final-cta-sub {
  font-size: .9rem; color: var(--warm-mid);
  margin-bottom: 44px; line-height: 1.7;
}
.blp-final-btn {
  display: inline-flex; align-items: center; gap: 12px;
  background: var(--olive); color: #fff;
  padding: 20px 56px;
  font-family: var(--ff-body); font-weight: 700; font-size: 1.05rem;
  letter-spacing: .04em; cursor: pointer;
  border: none; text-decoration: none;
  transition: background .3s, transform .3s, box-shadow .3s;
}
.blp-final-btn:hover {
  background: #8a8a4a;
  transform: translateY(-3px);
  box-shadow: 0 24px 60px rgba(118,118,64,.45);
}

/* ── RESPONSIVE ── */
@media (max-width: 900px) {
  .blp-hero-inner { grid-template-columns: 1fr; gap: 48px; padding-top: 20px; }
  .blp-hero-cover { max-width: 240px; margin: 0 auto; }
  .blp-hero-text { align-items: center; text-align: center; }
  .blp-eyebrow { justify-content: center; }
  .blp-hero-hook { text-align: start; }
  .blp-hero-btn { align-self: center; }
  .blp-why-body { grid-template-columns: 1fr; gap: 36px; }
  .blp-author-inner { grid-template-columns: 1fr; gap: 28px; }
  .blp-author-badge { width: 80px; height: 80px; }
}
@media (max-width: 640px) {
  .blp-ideas-grid { grid-template-columns: 1fr; }
  .blp-idea-card { padding: 28px; }
  .blp-final-cta { padding: 80px 0; }
  .blp-final-btn { padding: 16px 40px; }
}

/* ══════════════════════════════════════════════════
   HOME HERO STATIC (Blog hero with new image)
══════════════════════════════════════════════════ */
.home-hero-static {
  position: relative;
  margin-top: 68px;
  padding: 0;
  background: #0a0a0a;
}
body.has-new-bar .home-hero-static { margin-top: 106px; }

.hhs-bg-img {
  width: 100%;
  height: auto;
  display: block;
  filter: brightness(.60) saturate(.88) contrast(1.06);
}
.hhs-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(to left, rgba(0,0,0,.90) 0%, rgba(0,0,0,.65) 26%, rgba(0,0,0,.22) 55%, rgba(0,0,0,.04) 100%),
    linear-gradient(180deg, rgba(0,0,0,.48) 0%, rgba(0,0,0,.05) 46%, rgba(0,0,0,.62) 100%);
}
.hhs-copy {
  position: absolute;
  right: clamp(32px, 6vw, 96px);
  top: 50%;
  transform: translateY(-50%);
  text-align: right;
  width: min(500px, 50vw);
  z-index: 2;
}
.hhs-pre {
  font-size: clamp(.96rem, 1.5vw, 1.12rem);
  color: rgba(255,255,255,.80);
  margin: 0 0 5px;
  font-weight: 400;
}
.hhs-title {
  font-family: var(--ff-body);
  font-size: clamp(2rem, 4.8vw, 3.8rem);
  font-weight: 900;
  color: var(--gold);
  line-height: 1.1;
  margin: 0 0 14px;
  text-shadow: 0 6px 28px rgba(0,0,0,.75);
}
.hhs-sub {
  color: rgba(255,255,255,.76);
  font-size: clamp(.88rem, 1.3vw, 1rem);
  line-height: 1.72;
  margin: 0 0 28px;
}
.hhs-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: rgba(8,8,8,.90);
  color: #fff;
  padding: 12px 28px;
  font-weight: 700;
  font-size: .92rem;
  text-decoration: none;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  cursor: pointer;
  transition: background .28s, transform .22s, box-shadow .22s;
}
.hhs-btn:hover {
  background: #111;
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(0,0,0,.5);
}
.hhs-arrow { font-size: 1rem; line-height: 1; }

@media (max-width: 900px) {
  .hhs-copy { width: min(420px, 56vw); right: clamp(20px, 4vw, 48px); }
}
@media (max-width: 600px) {
  .hhs-bg-img { filter: brightness(.48) saturate(.84) contrast(1.06); }
  .hhs-overlay {
    background:
      linear-gradient(180deg, rgba(0,0,0,.28) 0%, rgba(0,0,0,.06) 34%, rgba(0,0,0,.84) 64%, rgba(0,0,0,.97) 100%);
  }
  .hhs-copy {
    right: 0; left: 0;
    width: 100%;
    top: auto;
    bottom: 0;
    transform: none;
    padding: 0 22px 32px;
    text-align: center;
  }
  .hhs-btn { margin: 0 auto; }
}

/* ══════════════════════════════════════════════════
   HOME PRINCIPLES (5-card section)
══════════════════════════════════════════════════ */
.home-principles {
  position: relative;
  background: #0a0a0a;
  padding: 72px 0 84px;
  overflow: hidden;
  border-top: 1px solid var(--line);
  --hp-mx: 50%;
  --hp-my: 50%;
}
.home-principles::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at var(--hp-mx) var(--hp-my), rgba(200,168,110,.07), transparent 38%);
  pointer-events: none;
  z-index: 0;
  opacity: 0;
  transition: opacity .35s;
}
.home-principles:hover::after { opacity: 1; }

.hp-header {
  position: relative;
  z-index: 1;
  text-align: center;
  margin-bottom: 48px;
}
.hp-title {
  font-family: var(--ff-body);
  font-size: clamp(1.7rem, 3.2vw, 2.8rem);
  font-weight: 900;
  color: var(--paper);
  line-height: 1.15;
  margin: 10px 0 0;
}
.hp-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(255,255,255,.055);
  position: relative;
  z-index: 1;
}
.hp-card {
  background: #0d0d0c;
  padding: 28px 20px 32px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  cursor: default;
  transition: background .30s;
  position: relative;
  overflow: hidden;
}
.hp-card::before {
  content: '';
  position: absolute;
  top: 0;
  inset-inline-start: 0;
  height: 2px;
  width: 0;
  background: var(--gold);
  transition: width .38s ease;
}
.hp-card:hover::before,
.hp-card.hp-card-active::before { width: 100%; }
.hp-card.hp-card-active { background: #121110; }
.hp-card:hover { background: #111110; }

.hp-card-num {
  font-family: var(--ff-mono);
  font-size: .68rem;
  font-weight: 700;
  color: rgba(200,168,110,.35);
  letter-spacing: .18em;
}
.hp-card-icon {
  width: 46px;
  height: 46px;
  color: rgba(200,168,110,.45);
  transition: color .30s;
  margin: 6px 0 2px;
  flex-shrink: 0;
  align-self: center;
}
.hp-card-icon svg { width: 100%; height: 100%; display: block; }
.hp-card:hover .hp-card-icon,
.hp-card.hp-card-active .hp-card-icon { color: var(--gold); }

.hp-card-title {
  font-size: .9rem;
  font-weight: 700;
  color: var(--paper);
  line-height: 1.38;
  margin: 0;
}
.hp-card-desc {
  font-size: .76rem;
  color: var(--warm-mid);
  line-height: 1.72;
  margin: 0;
  flex: 1;
}
.hp-dots {
  display: flex;
  justify-content: center;
  gap: 7px;
  margin-top: 22px;
  position: relative;
  z-index: 1;
}
.hp-dot {
  width: 26px;
  height: 4px;
  background: rgba(200,168,110,.2);
  cursor: pointer;
  transition: background .25s, transform .25s;
  border: none;
  padding: 0;
  display: block;
}
.hp-dot.hp-dot-active { background: var(--gold); }
.hp-dot:hover { background: rgba(200,168,110,.52); }

@media (max-width: 1000px) {
  .hp-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-principles { padding: 60px 0 72px; }
}
@media (max-width: 680px) {
  .hp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-principles { padding: 52px 0 64px; }
}
@media (max-width: 440px) {
  .hp-grid { grid-template-columns: 1fr; }
  .hp-card { padding: 22px 16px 26px; }
}
@media (prefers-reduced-motion: reduce) {
  .hp-card, .hp-card::before, .hp-card-icon { transition: none !important; }
  .home-principles::after { transition: none !important; }
}
