/* reach.css — "20M+ views worldwide": the figure over a turning world-grid globe (js/reach.js).
   Logical properties only, so the Arabic composition mirrors (globe on the left, text on the right). */
.reach {
  --reach-glow: rgba(220, 192, 138, .10);
  background:
    radial-gradient(52% 70% at 78% 50%, var(--reach-glow), transparent 70%),
    linear-gradient(180deg, var(--night) 0%, #0D0B09 50%, var(--night) 100%);
  border-block: 1px solid var(--line);
  overflow: clip;
}
html[dir="rtl"] .reach { background:
    radial-gradient(52% 70% at 22% 50%, var(--reach-glow), transparent 70%),
    linear-gradient(180deg, var(--night) 0%, #0D0B09 50%, var(--night) 100%); }

.reach__stage {
  display: grid; grid-template-columns: minmax(0, 1fr); grid-template-areas: "stage";
  align-items: center; min-height: min(92vh, 900px);
}
.reach__globe, .reach__copy { grid-area: stage; }

/* ---------------------------------------------------------------- globe */
.reach__globe {
  position: relative; justify-self: end; inline-size: min(58vw, 860px); aspect-ratio: 1;
  margin-inline-end: calc(var(--gutter) * -1.2);
  opacity: 0; transform: scale(.94); transition: opacity 2.2s var(--ease-out), transform 2.8s var(--ease-out);
}
.reach.is-live .reach__globe { opacity: 1; transform: none; }
.reach__canvas { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; cursor: grab; touch-action: pan-y; -webkit-tap-highlight-color: transparent; }
.reach__canvas.is-dragging { cursor: grabbing; }
.reach__canvas:focus-visible { outline: 1px solid var(--gold-hi); outline-offset: -12%; border-radius: 50%; }
.reach__hint {
  position: absolute; inset-block-end: 3%; inset-inline: 0; text-align: center; pointer-events: none;
  font: 500 var(--t-micro)/1.4 var(--f-mono); letter-spacing: .18em; text-transform: uppercase; color: var(--mute);
  transition: opacity var(--d-2) var(--ease-out);
}
.reach__hint::before { content: "⟷"; margin-inline-end: 10px; color: var(--gold); letter-spacing: 0; }
html:lang(ar) .reach__hint { font: 500 .9rem/1.4 var(--f-text-ar); letter-spacing: 0; text-transform: none; }
.reach__globe.is-touched .reach__hint { opacity: 0; }
.reach__halo {
  position: absolute; inset: 12%; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(220,192,138,.07), rgba(220,192,138,0) 72%);
  animation: reach-breathe 9s var(--ease-io) infinite alternate;
}
@keyframes reach-breathe { from { transform: scale(.96); opacity: .7; } to { transform: scale(1.06); opacity: 1; } }

/* ---------------------------------------------------------------- copy */
.reach__copy { position: relative; z-index: 1; pointer-events: none; justify-self: start; max-inline-size: 44rem; display: grid; gap: 22px; padding-block: 24px; }
.reach__copy > * { pointer-events: auto; }
.reach__title { display: grid; gap: 6px; font-weight: 500; }
.reach__figure {
  display: flex; align-items: baseline; gap: .02em;
  font: 500 clamp(7rem, 16.5vw, 16.5rem)/.82 var(--f-display-en);
  font-variant-numeric: lining-nums tabular-nums; letter-spacing: -.035em;
  background: var(--gold-metal); background-size: 220% 100%; background-position: 100% 0;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 0 38px rgba(220, 192, 138, .16));
  margin-inline-start: -.05em;
}
.reach__figure.is-done { animation: reach-sheen 7s var(--ease-io) .2s infinite; }
@keyframes reach-sheen { 0% { background-position: 100% 0; } 50% { background-position: 0 0; } 100% { background-position: 100% 0; } }
.reach__num { min-inline-size: 1.1em; text-align: end; }
.reach__unit { font-size: .92em; }
.reach__plus { font-size: .62em; align-self: flex-start; margin-block-start: .12em; opacity: .9; }
html:lang(ar) .reach__num { min-inline-size: 0; }
html:lang(ar) .reach__figure { align-items: center; gap: .05em; margin-inline-start: 0; letter-spacing: 0; }
html:lang(ar) .reach__unit { font: 700 .4em/1 var(--f-display-ar); letter-spacing: 0; padding-block-start: .15em; margin-inline-start: .18em; }
html:lang(ar) .reach__plus { align-self: center; margin-block-start: 0; font-size: .55em; }

.reach__line {
  font: 500 var(--t-display-2)/1.02 var(--f-display); color: var(--ivory); letter-spacing: -.01em;
}
html:lang(ar) .reach__line { font-weight: 700; line-height: 1.3; letter-spacing: 0; }
.reach__lead { font: 500 var(--t-lead)/1.5 var(--f-text); color: var(--gold-hi); max-inline-size: 34rem; }
.reach__body { font-size: var(--t-body); line-height: var(--lh-body); color: var(--ivory-2); max-inline-size: 38rem; text-wrap: pretty; }

/* the spectrum of voices — each descriptor catches the light in turn */
.reach__spectrum { display: flex; flex-wrap: wrap; gap: 6px 0; margin-block-start: 6px; }
.reach__word {
  font: 500 var(--t-micro)/1.6 var(--f-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--mute);
  animation: reach-glint 14s var(--ease-io) infinite; animation-delay: calc(var(--i) * 2s);
}
.reach__word:not(:last-child)::after { content: "·"; margin-inline: 12px; color: var(--gold-lo); }
html:lang(ar) .reach__word { font: 500 .95rem/1.6 var(--f-text-ar); letter-spacing: 0; text-transform: none; }
@keyframes reach-glint { 0%, 18%, 100% { color: var(--mute); } 6%, 11% { color: var(--gold-hi); } }

/* the international voices — arched portrait fragments */
.reach__voices { display: flex; flex-wrap: wrap; gap: 0; margin-block-start: 10px; padding-inline-start: 10px; }
.reach__voice { margin-inline-start: -10px; animation: reach-float 8s var(--ease-io) infinite alternate; animation-delay: calc(var(--i) * -1.1s); }
.reach__face {
  position: relative; display: block; inline-size: clamp(48px, 4.6vw, 66px); aspect-ratio: 3 / 4; overflow: hidden;
  border-radius: var(--r-arch); border: 1px solid var(--line-2); background: var(--char-2);
  box-shadow: 0 0 0 3px var(--night), var(--shadow-exhibit);
  transition: transform var(--d-2) var(--ease-out), border-color var(--d-2);
}
.reach__face img { inline-size: 100%; block-size: 100%; object-fit: cover; filter: grayscale(.55) sepia(.25) brightness(.85); transition: filter var(--d-2); }
.reach__face::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(115deg, transparent 30%, rgba(234,215,166,.28) 48%, transparent 64%);
  background-size: 300% 100%; background-position: 120% 0;
  animation: reach-light 11s var(--ease-io) infinite; animation-delay: calc(var(--i) * .45s);
}
.reach__face:hover, .reach__face:focus-visible { transform: translateY(-6px); border-color: var(--gold); z-index: 1; }
.reach__face:hover img, .reach__face:focus-visible img { filter: none; }
@keyframes reach-float { from { transform: translateY(0); } to { transform: translateY(-5px); } }
@keyframes reach-light { 0%, 70% { background-position: 120% 0; } 100% { background-position: -40% 0; } }

.reach__note { max-inline-size: 36rem; }
html:lang(ar) .reach__note { font-family: var(--f-text-ar); letter-spacing: 0; text-transform: none; font-size: .85rem; }

/* ---------------------------------------------------------------- tablet / phone: globe above, text over its lower edge */
@media (max-width: 960px) {
  .reach__stage { grid-template-areas: "globe" "copy"; min-height: 0; }
  .reach__globe { grid-area: globe; justify-self: center; inline-size: min(100vw, 560px); margin-inline: 0; opacity: .85; }
  .reach.is-live .reach__globe { opacity: .85; }
  .reach__copy { grid-area: copy; margin-block-start: clamp(-180px, -24vw, -90px); max-inline-size: none; }
  .reach__figure { font-size: clamp(6rem, 30vw, 11rem); }
  .reach__hint { inset-block-start: 5%; inset-block-end: auto; }
}

/* ---------------------------------------------------------------- reduced motion: final state, no loops */
html.reduce-motion .reach__globe { opacity: 1; transform: none; transition: none; }
html.reduce-motion .reach__halo, html.reduce-motion .reach__figure.is-done,
html.reduce-motion .reach__word, html.reduce-motion .reach__voice, html.reduce-motion .reach__face::after { animation: none; }
html.reduce-motion .reach__word { color: var(--ivory-2); }
