/* Home page only — loaded after styles.css */

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.t-org main { position: relative; }

/* ---- Hero: torch spotlight over hidden quotes ---- */
.org-hero { --r: 270px; padding-top: clamp(120px, 15.5vw, 210px); padding-bottom: clamp(150px, 16vw, 230px); }
.quotes, .spot { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.quotes {
  -webkit-mask-image: radial-gradient(circle var(--r) at var(--x, 82%) var(--y, 12%), #000 0, #000 30%, transparent 72%);
  mask-image: radial-gradient(circle var(--r) at var(--x, 82%) var(--y, 12%), #000 0, #000 30%, transparent 72%);
}
.spot { background: radial-gradient(circle calc(var(--r) * 1.2) at var(--x, 82%) var(--y, 12%), rgba(246, 184, 26, 0.14), transparent 70%); }
.q { position: absolute; margin: 0; max-width: 340px; font-size: clamp(14px, 1.35vw, 19px); font-style: italic; font-weight: 500; line-height: 1.5; color: var(--gold); }
.q cite { display: block; margin-top: 10px; font-style: normal; font-size: 11px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255, 255, 255, 0.75); }
.q1 { top: 6%; right: 4%; }
.q2 { bottom: 4%; right: 4%; max-width: 380px; }
.q3 { bottom: 4%; left: 3%; max-width: 360px; }
.q4 { top: 6%; left: 3%; }
@media (max-width: 899px) {
  .org-hero { --r: 190px; padding-top: 130px; }
  .q1, .q2 { display: none; }
  .q4 { top: 28px; left: 16px; right: 16px; }
  .q3 { left: 16px; right: 16px; bottom: 24px; }
}

/* Rotating last word of the headline */
/* Each word box is taller than the visible window, so the next word's accents never peek in. */
.flip { display: inline-block; vertical-align: top; height: 1.3em; overflow: hidden; }
.flip-track { display: block; }
.flip-track > span { display: block; height: 1.7em; line-height: 1.3em; }

/* ---- World map ---- */
.world { margin: clamp(56px, 7vw, 96px) 0 0; }
.world-map { position: relative; } /* pin % positions are relative to the map image only, not the caption */
.world img { display: block; width: 100%; height: auto; opacity: 0.3; }
.ba { position: absolute; width: 14px; height: 14px; transform: translate(-50%, -50%); }
.ba::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--gold); box-shadow: 0 0 18px 5px rgba(246, 184, 26, 0.7); }
.ba::after { content: ""; position: absolute; left: 50%; top: 50%; width: 260px; height: 260px; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(closest-side, rgba(246, 184, 26, 0.16), transparent); pointer-events: none; }
.ba i { position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--gold); opacity: 0; }
.ba b { position: absolute; left: 24px; top: 50%; transform: translateY(-50%); padding: 5px 9px; border-radius: 6px; background: rgba(7, 8, 11, 0.75); font-size: 12px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; white-space: nowrap; color: var(--white); }
.world figcaption { max-width: 560px; margin-top: 22px; font-size: 15px; color: var(--muted); }
@media (max-width: 640px) { .ba { width: 10px; height: 10px; } .ba b { left: 16px; font-size: 11px; letter-spacing: 0.12em; } .ba::after { width: 140px; height: 140px; } }

/* ---- Scroll manifesto ---- */
.manifesto { padding: 0; }
.manifesto-text { max-width: 1060px; margin: 0; font-size: clamp(30px, 4.4vw, 60px); font-weight: 700; line-height: 1.22; letter-spacing: -0.01em; color: var(--white); }
.manifesto-text em { font-style: normal; color: var(--gold); }
.manifesto.is-scrub { height: 260vh; padding: 0; }
.manifesto.is-scrub .manifesto-pin { position: sticky; top: 0; display: flex; align-items: center; height: 100vh; height: 100svh; padding-top: 70px; }
.manifesto.is-scrub .w { color: rgba(255, 255, 255, 0.13); transition: color 0.25s ease; }
.manifesto.is-scrub .w.on { color: var(--white); }
.manifesto.is-scrub em .w.on { color: var(--gold); }

/* ---- Burning fuse ---- */
.fuse { display: none; }
.js .fuse {
  display: block; position: absolute; z-index: 4; pointer-events: none;
  left: max(7px, calc((100% - var(--wrap)) / 2 - 26px)); top: var(--fuse-top, 0); width: 2px; height: var(--fuse-len, 0);
  background: repeating-linear-gradient(180deg, rgba(246, 184, 26, 0.26) 0 6px, transparent 6px 12px);
}
.fuse-burn { position: absolute; left: 0; top: 0; width: 2px; height: var(--burn, 0px); background: linear-gradient(180deg, rgba(246, 184, 26, 0.35), var(--gold)); box-shadow: 0 0 8px rgba(246, 184, 26, 0.7); }
.spark {
  position: absolute; left: 1px; top: var(--burn, 0px); width: 10px; height: 10px; border-radius: 50%; transform: translate(-50%, -50%);
  background: #fff6d6; box-shadow: 0 0 0 3px rgba(246, 184, 26, 0.45), 0 0 18px 6px rgba(246, 184, 26, 0.75), 0 0 40px 12px rgba(255, 140, 0, 0.3);
  transition: opacity 0.4s;
}
.fuse.done .spark { opacity: 0; }
.fuse-stub { position: absolute; left: 0; bottom: -1px; width: var(--stub, 0px); height: 2px; background: var(--gold); box-shadow: 0 0 8px rgba(246, 184, 26, 0.7); transform: scaleX(0); transform-origin: left; transition: transform 0.35s ease; }
.fuse.done .fuse-stub { transform: scaleX(1); }
.btn.lit { box-shadow: 0 0 40px 6px rgba(246, 184, 26, 0.55); }

/* ---- Motion (only when the visitor allows it) ---- */
@media (prefers-reduced-motion: no-preference) {
  .flip-track { animation: flip 10s cubic-bezier(0.7, 0, 0.2, 1) infinite; }
  .ba i { animation: ping 2.6s cubic-bezier(0, 0, 0.2, 1) infinite; }
  .ba i + i { animation-delay: 1.3s; }
  .spark { animation: crackle 0.14s ease-in-out infinite alternate; }
  .btn.lit { animation: ignite 1.4s ease-out 1; }
}
@keyframes flip {
  0%, 20% { transform: translateY(0); }
  25%, 45% { transform: translateY(-1.7em); }
  50%, 70% { transform: translateY(-3.4em); }
  75%, 95% { transform: translateY(-5.1em); }
  100% { transform: translateY(-6.8em); }
}
@keyframes ping { 0% { transform: scale(1); opacity: 0.9; } 100% { transform: scale(5); opacity: 0; } }
@keyframes crackle { to { transform: translate(-50%, -50%) scale(1.3); opacity: 0.85; } }
@keyframes ignite {
  0% { box-shadow: 0 0 0 0 rgba(246, 184, 26, 0.9), 0 0 0 0 rgba(246, 184, 26, 0); }
  40% { box-shadow: 0 0 0 18px rgba(246, 184, 26, 0), 0 0 60px 14px rgba(246, 184, 26, 0.7); }
  100% { box-shadow: 0 0 0 0 rgba(246, 184, 26, 0), 0 0 40px 6px rgba(246, 184, 26, 0.55); }
}
