/* Analytics — handoff page styles. */
.tc-h1,
.tc-h2,
.tc-h3 { font-family: var(--tc-font-display);
      font-weight: 500;
      letter-spacing: -0.03em;
      line-height: 1;
      color: var(--tc-ink);
      margin: 0; }
.tc-h1 { font-size: clamp(48px, 6.5vw, 96px);  font-weight: 600; letter-spacing: -0.035em; line-height: 0.98; }
.tc-h2 { font-size: clamp(36px, 5vw, 72px);    font-weight: 600; letter-spacing: -0.03em;  line-height: 1.02; }
.tc-h3 { font-size: clamp(22px, 2.4vw, 32px);  font-weight: 600; letter-spacing: -0.02em;  line-height: 1.2; }
.tc-serif { font-family: var(--tc-font-serif); font-style: italic; font-weight: 400; letter-spacing: -0.005em; }
.tc-lede { font-size: clamp(17px, 1.4vw, 21px);
      color: var(--tc-ink-2); line-height: 1.55;
      max-width: 52ch; margin: 0; }
.tc-body-p { font-size: 16px; color: var(--tc-ink-2); line-height: 1.65;
      max-width: 60ch; margin: 0; }
.tc-kicker { font-family: var(--tc-font-mono);
      font-size: 11px;
      text-transform: uppercase;
      letter-spacing: 0.2em;
      color: var(--tc-ink-3);
      font-weight: 400;
      display: inline-block; }
.tc-kicker .tc-n { color: var(--tc-accent); }
.tc-analytics-main { position: relative; z-index: 1; }
.tc-wrap-narrow { max-width: 940px;  margin: 0 auto; padding: 0 32px; }
.tc-block { padding: clamp(96px, 12vw, 160px) 0; }
.tc-block-sm { padding: clamp(64px, 8vw, 96px) 0; }
.tc-rule { border: 0; border-top: 1px solid var(--tc-line); margin: 0; }
.tc-btn .tc-arrow { transition: transform 240ms cubic-bezier(0.2,0.7,0.3,1); }
.tc-btn:hover .tc-arrow { transform: translateX(4px); }
.tc-fx { opacity: 0;
      will-change: opacity, transform, filter;
      transition:
        opacity 1400ms var(--tc-ease-out-expo),
        transform 1600ms var(--tc-ease-out-expo),
        filter 1200ms var(--tc-ease-out-expo),
        clip-path 1400ms var(--tc-ease-out-expo); }
.tc-fx-rise { transform: translateY(100px); filter: blur(6px); }
.tc-fx.tc-on { opacity: 1;
      transform: none;
      filter: blur(0);
      clip-path: inset(0 0 0 0); }
.tc-fx-stagger > * { opacity: 0;
      transform: translateY(70px) scale(0.96);
      filter: blur(6px);
      will-change: opacity, transform, filter;
      transition:
        opacity 1200ms var(--tc-ease-out-expo),
        transform 1200ms var(--tc-ease-out-expo),
        filter 900ms var(--tc-ease-out-expo); }
.tc-fx-stagger.tc-on > * { opacity: 1; transform: none; filter: blur(0); }
.tc-fx-stagger.tc-on > *:nth-child(1) { transition-delay:   0ms; }
.tc-fx-stagger.tc-on > *:nth-child(2) { transition-delay: 140ms; }
.tc-fx-stagger.tc-on > *:nth-child(3) { transition-delay: 280ms; }
.tc-fx-stagger.tc-on > *:nth-child(4) { transition-delay: 420ms; }
.tc-section-label { display: inline-block;
      position: relative;
      text-align: center;
      font-family: var(--tc-font-mono);
      font-size: 12px;
      letter-spacing: 0.32em;
      text-transform: uppercase;
      color: var(--tc-accent);
      margin: 0 auto 24px;
      padding-bottom: 10px;
      opacity: 0;
      transform: translateY(20px);
      transition: opacity 800ms var(--tc-ease-out-expo), transform 1000ms var(--tc-ease-out-expo); }
.tc-section-label::before,
.tc-section-label::after { content: "";
      position: absolute;
      bottom: 0; top: auto;
      height: 1px;
      background: linear-gradient(90deg, transparent 0%, var(--tc-accent) 50%, transparent 100%);
      opacity: 0.6;
      width: 0;
      transition: width 1200ms var(--tc-ease-out-expo) 300ms; }
.tc-section-label::before { left: 50%; transform-origin: left; }
.tc-section-label::after { right: 50%; transform-origin: right; }
.tc-section-label.tc-on { opacity: 1; transform: none; }
.tc-section-label.tc-on::before,
.tc-section-label.tc-on::after { width: 120px; }
@media (prefers-reduced-motion: reduce) {
.tc-section-label { opacity: 1; transform: none; }
.tc-section-label::before,
.tc-section-label::after { width: 120px; transition: none; }
}
.tc-grad-text { background: linear-gradient(90deg, #ff85e3 0%, #b3a0f7 55%, #6744da 100%);
      -webkit-background-clip: text; background-clip: text;
      -webkit-text-fill-color: transparent; color: transparent; }
@media (prefers-reduced-motion: reduce) {
.tc-fx,
.tc-fx-stagger > * { transition: none !important; opacity: 1 !important; transform: none !important; filter: none !important; clip-path: none !important; }
}
@media (max-width: 560px) {
.tc-wrap-narrow { padding: 0 22px; }
}
.tc-h1,
.tc-h2,
.tc-h3 { font-family: var(--tc-font-display);
      font-weight: 500;
      letter-spacing: -0.03em;
      line-height: 1;
      color: var(--tc-ink);
      margin: 0; }
.tc-h1 { font-size: clamp(48px, 6.5vw, 96px);  font-weight: 600; letter-spacing: -0.035em; line-height: 0.98; }
.tc-h2 { font-size: clamp(36px, 5vw, 72px);    font-weight: 600; letter-spacing: -0.03em;  line-height: 1.02; }
.tc-h3 { font-size: clamp(22px, 2.4vw, 32px);  font-weight: 600; letter-spacing: -0.02em;  line-height: 1.2; }
.tc-serif { font-family: var(--tc-font-serif); font-style: italic; font-weight: 400; letter-spacing: -0.005em; }
.tc-lede { font-size: clamp(17px, 1.4vw, 21px);
      color: var(--tc-ink-2); line-height: 1.55;
      max-width: 52ch; margin: 0; }
.tc-body-p { font-size: 16px; color: var(--tc-ink-2); line-height: 1.65;
      max-width: 60ch; margin: 0; }
.tc-kicker { font-family: var(--tc-font-mono);
      font-size: 11px;
      text-transform: uppercase;
      letter-spacing: 0.2em;
      color: var(--tc-ink-3);
      font-weight: 400;
      display: inline-block; }
.tc-kicker .tc-n { color: var(--tc-accent); }
.tc-analytics-main { position: relative; z-index: 1; }
.tc-wrap-narrow { max-width: 940px;  margin: 0 auto; padding: 0 32px; }
.tc-block { padding: clamp(96px, 12vw, 160px) 0; }
.tc-block-sm { padding: clamp(64px, 8vw, 96px) 0; }
.tc-rule { border: 0; border-top: 1px solid var(--tc-line); margin: 0; }
.tc-btn .tc-arrow { transition: transform 240ms cubic-bezier(0.2,0.7,0.3,1); }
.tc-btn:hover .tc-arrow { transform: translateX(4px); }
.tc-serif { font-style: normal !important; }

@media (max-width: 640px) {
.tc-wrap-narrow { padding-left: 16px !important; padding-right: 16px !important; }
:where(.tc-analytics-main) h1 { font-size: clamp(34px, 10vw, 46px); line-height: 1.02; }
:where(.tc-analytics-main) h2 { font-size: clamp(26px, 7.5vw, 34px); line-height: 1.08; }
:where(.tc-analytics-main) section { padding-top: 48px; padding-bottom: 48px; }
}

/* Page layout declarations from the handoff. */
.tc-analytics-style-1.tc-analytics-style-1 { padding-top:clamp(140px,16vw,220px) }
.tc-analytics-style-2.tc-analytics-style-2 { max-width:22ch;margin-top:20px }
.tc-analytics-style-3.tc-analytics-style-3 { margin-top:24px;max-width:60ch }
.tc-analytics-style-4.tc-analytics-style-4 { margin-top:36px;display:flex;gap:14px;flex-wrap:wrap }
.tc-analytics-style-5.tc-analytics-style-5 { text-align:center }
.tc-analytics-style-6.tc-analytics-style-6 { margin-top:8px }
.tc-analytics-style-7.tc-analytics-style-7 { display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-top:56px }
.tc-analytics-style-8.tc-analytics-style-8 { padding:28px;border:1px solid var(--tc-line);border-radius:16px;background:var(--tc-card) }
.tc-analytics-style-9.tc-analytics-style-9 { margin-top:10px }
.tc-analytics-style-10.tc-analytics-style-10 { margin-top:16px }
.tc-analytics-style-11.tc-analytics-style-11 { margin:24px auto 0 }
.tc-analytics-style-12.tc-analytics-style-12 { margin-top:36px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap }

.tc-page .page-wrapper { padding-top: 0; }
