/* Scroll-Reveal Word Cloud · made with Word Cloud Studio
   Everything is scoped to .wc-cloud, so it will not affect the rest of your site.
   The scroll animation is pure CSS: no JavaScript required. */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400;1,9..144,500&display=swap');
@property --wc-k { syntax: '\3c integer>'; inherits: false; initial-value: 0; }
.wc-cloud, .wc-cloud * { box-sizing: border-box; }
.wc-cloud {
  --wc-bg: #ffffff;
  --wc-ink: #000000;
  --wc-accent: #8ed1fc;
  --wc-dim: rgba(0, 0, 0, 0.14);
  --wc-font: 'Fraunces', Georgia, 'Times New Roman', serif;
  --wc-ui: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --wc-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --wc-stage: 50vh; /* estimate, refined by the optional JS */
  --wc-scroll: 80vh; /* how far readers scroll to reveal everything */
  --wc-padx: clamp(20px, 4.5vw, 56px);
  --wc-top: max(0px, calc((100vh - var(--wc-stage)) / 2));
  --wc-d0: calc((100vh - var(--wc-top)) * 0.5);
  --wc-d1: calc(100vh - var(--wc-top) + var(--wc-scroll) * 0.90);
  --wc-steps: 9.8;
  --wc-span: 1.8;
  --wc-s1: clamp(0.95rem, 0.55rem + 1.00vw, 1.35rem);
  --wc-s2: clamp(1.15rem, 0.65rem + 1.60vw, 1.90rem);
  --wc-s3: clamp(1.50rem, 0.80rem + 2.60vw, 3.00rem);
  --wc-s4: clamp(2.00rem, 1.00rem + 4.40vw, 4.75rem);
  --wc-s5: clamp(2.60rem, 1.00rem + 8.00vw, 7.50rem);
  position: relative;
  width: 100%;
  padding: 0;
  height: calc(var(--wc-stage) + var(--wc-scroll));
  color: var(--wc-ink);
  font-family: var(--wc-font);
}
.wc-cloud.wc-bleed { width: auto !important; max-width: none !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; }
.wc-cloud .wc-pin {
  position: -webkit-sticky;
  position: sticky;
  top: var(--wc-top);
  height: auto;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  margin: 0;
  padding: clamp(28px, 5vh, 52px) var(--wc-padx) clamp(56px, 9vh, 92px);
}
.wc-cloud.wc-free { height: auto !important; }
.wc-cloud.wc-free .wc-pin { position: relative !important; top: auto !important; }
.wc-cloud .wc-kicker, .wc-cloud .wc-count {
  position: absolute; top: clamp(20px, 3.2vh, 32px); margin: 0; padding: 0; line-height: 1;
  font-size: 11px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: inherit;
}
.wc-cloud .wc-kicker { left: var(--wc-padx); font-family: var(--wc-ui); opacity: .58; }
.wc-cloud .wc-count { right: var(--wc-padx); font-family: var(--wc-mono); letter-spacing: .1em; opacity: .62; font-variant-numeric: tabular-nums; }
.wc-cloud .wc-count b { font-weight: 600; }
.wc-cloud .wc-count i { font-style: normal; opacity: .7; margin-left: .35em; }
.wc-cloud .wc-line {
  position: relative; width: min(82rem, 100%); margin: 0 auto; padding: 0;
  display: flex; flex-wrap: wrap; align-items: baseline;
  justify-content: center; text-align: center;
  column-gap: clamp(22px, 2.88vw, 45px);
  row-gap: clamp(13px, 1.60vw, 22px);
  line-height: 1.06;
}
.wc-cloud .wc-w { display: inline-block; white-space: nowrap; margin: 0; padding: 0; color: var(--wc-ink); font-weight: 400; line-height: 1.05; letter-spacing: normal; text-transform: none; text-decoration: none; }
.wc-cloud .wc-s1 { font-size: var(--wc-s1); }
.wc-cloud .wc-s2 { font-size: var(--wc-s2); }
.wc-cloud .wc-s3 { font-size: var(--wc-s3); }
.wc-cloud .wc-s4 { font-size: var(--wc-s4); }
.wc-cloud .wc-s5 { font-size: var(--wc-s5); font-weight: 500; }
.wc-cloud .wc-accent { color: var(--wc-accent); }
.wc-cloud .wc-hint {
  position: absolute; bottom: clamp(26px, 3.8vh, 36px); left: 50%; transform: translateX(-50%);
  align-items: center; gap: .6rem; font-family: var(--wc-ui); white-space: nowrap;
  font-size: 11px; font-weight: 600; letter-spacing: .25em; text-transform: uppercase;
  opacity: .5; pointer-events: none; transition: opacity .4s ease;
}
.wc-cloud .wc-hint::after { content: ''; width: 7px; height: 7px; margin-top: -4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); animation: wc-nudge 1.7s ease-in-out infinite; }
.wc-cloud .wc-bar { position: absolute; left: var(--wc-padx); right: var(--wc-padx); bottom: 14px; height: 2px; border-radius: 2px; overflow: hidden; background: var(--wc-dim); }
.wc-cloud .wc-bar i { position: absolute; top: 0; right: 0; bottom: 0; left: 0; display: block; background: var(--wc-accent); transform: scaleX(0); transform-origin: 0 50%; }
/* Progress UI stays hidden unless something can animate it */
.wc-cloud .wc-count, .wc-cloud .wc-hint, .wc-cloud .wc-bar { display: none; }
.wc-cloud.wc-js .wc-count, .wc-cloud.wc-js .wc-bar { display: block; }
.wc-cloud.wc-js .wc-hint { display: flex; }
.wc-cloud.wc-js .wc-w { opacity: 0; filter: blur(8px); transform: translateY(0em); will-change: opacity, filter, transform; }
/* Reveal order */
.wc-cloud .wc-w:nth-child(1) { --i: 0; }
.wc-cloud .wc-w:nth-child(2) { --i: 1; }
.wc-cloud .wc-w:nth-child(3) { --i: 2; }
.wc-cloud .wc-w:nth-child(4) { --i: 3; }
.wc-cloud .wc-w:nth-child(5) { --i: 4; }
.wc-cloud .wc-w:nth-child(6) { --i: 5; }
.wc-cloud .wc-w:nth-child(7) { --i: 6; }
.wc-cloud .wc-w:nth-child(8) { --i: 7; }
.wc-cloud .wc-w:nth-child(9) { --i: 8; }
@keyframes wc-in { from { opacity: 0; filter: blur(8px); transform: translateY(0em); } to { opacity: 1; filter: blur(0px); transform: none; } }
@keyframes wc-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes wc-fade { from { opacity: .5; } to { opacity: 0; } }
@keyframes wc-tick { from { --wc-k: 0; } to { --wc-k: 9; } }
@keyframes wc-nudge { 0%, 100% { transform: translateY(0) rotate(45deg); } 50% { transform: translateY(3px) rotate(45deg); } }
/* Pure-CSS scroll-driven animation (Chrome, Edge, Safari 26+) */
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    .wc-cloud:not(.wc-js) { view-timeline-name: --wc; view-timeline-axis: block; }
    .wc-cloud:not(.wc-js) .wc-count, .wc-cloud:not(.wc-js) .wc-bar { display: block; }
    .wc-cloud:not(.wc-js) .wc-hint { display: flex; }
    .wc-cloud:not(.wc-js) .wc-w {
      animation: wc-in 1s ease-in-out both;
      animation-timeline: --wc;
      animation-range: cover calc(var(--wc-d0) + (var(--wc-d1) - var(--wc-d0)) * var(--i) / var(--wc-steps)) cover calc(var(--wc-d0) + (var(--wc-d1) - var(--wc-d0)) * (var(--i) + var(--wc-span)) / var(--wc-steps));
    }
    .wc-cloud:not(.wc-js) .wc-bar i { animation: wc-grow 1s linear both; animation-timeline: --wc; animation-range: cover var(--wc-d0) cover var(--wc-d1); }
    .wc-cloud:not(.wc-js) .wc-hint { animation: wc-fade 1s linear both; animation-timeline: --wc; animation-range: cover var(--wc-d0) cover calc(var(--wc-d0) + (var(--wc-d1) - var(--wc-d0)) * 0.06); }
    .wc-cloud:not(.wc-js) .wc-count b { counter-reset: wck var(--wc-k); animation: wc-tick 1s linear both; animation-timeline: --wc; animation-range: cover calc(var(--wc-d0) + (var(--wc-d1) - var(--wc-d0)) * 0.0408) cover calc(var(--wc-d0) + (var(--wc-d1) - var(--wc-d0)) * 0.9592); }
    .wc-cloud:not(.wc-js) .wc-count b::before { content: counter(wck, decimal-leading-zero); }
  }
}
/* No scroll animation available and no JS: show a calm, static cloud */
@supports not (animation-timeline: view()) {
  .wc-cloud:not(.wc-js) { height: auto; }
  .wc-cloud:not(.wc-js) .wc-pin { position: relative; top: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .wc-cloud { height: auto !important; }
  .wc-cloud .wc-pin { position: relative !important; top: auto !important; }
  .wc-cloud .wc-hint::after { animation: none; }
}
@media (max-width: 640px) { .wc-cloud { --wc-scroll: 119vh; } }