/* Broadcast components. Layouts follow the nearest .kr-frame, so /kit can show phone and desktop side by side. */

.kr-frame { container: kr / inline-size; }

kr-extruded-numeral, kr-lower-third, kr-score-bug, kr-ticker, kr-duotone-backdrop, kr-skew-tabs { display: block; }

/* Extruded numeral */
kr-extruded-numeral {
  --kr-size: 200px;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--kr-size);
  line-height: 0.86;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  color: var(--ivory);
  text-shadow:
    1px 1px 0 var(--burgundy), 2px 2px 0 var(--burgundy), 3px 3px 0 var(--burgundy), 4px 4px 0 var(--burgundy),
    5px 5px 0 var(--burgundy-600), 6px 6px 0 var(--burgundy-600), 7px 7px 0 var(--burgundy-700), 8px 8px 0 var(--burgundy-700),
    9px 9px 0 var(--burgundy-800), 10px 10px 0 var(--burgundy-900);
}

/* Lower third */
kr-lower-third { display: flex; flex-direction: column; align-items: flex-start; }
.kr-lt-slab {
  background: var(--olive);
  color: var(--grey-black);
  padding: 6px calc(var(--space-5) + 6px) 6px var(--space-4);
  font-size: var(--text-xl);
  clip-path: polygon(0 0, 100% 0, calc(100% - var(--angle)) 100%, 0 100%);
}
.kr-lt-bar {
  align-self: stretch;
  background: var(--ivory);
  color: var(--grey-black);
  padding: 9px calc(var(--space-5) + 6px) 9px var(--space-4);
  font-weight: 600;
  clip-path: polygon(0 0, 100% 0, calc(100% - var(--angle)) 100%, 0 100%);
}

/* Score bug */
kr-score-bug { display: flex; min-height: 72px; box-shadow: var(--shadow-ledge); }
.kr-sb-label {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  max-width: 96px;
  padding: 0 var(--space-3);
  background: var(--burgundy);
  color: var(--ivory);
  font-weight: 700;
  font-size: var(--text-sm);
  line-height: 1.2;
}
.kr-sb-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--space-2) var(--space-4);
  background: var(--ivory);
  color: var(--grey-black);
}
.kr-sb-value { font-family: var(--font-display); font-weight: 800; font-size: var(--text-2xl); line-height: 1; font-variant-numeric: tabular-nums; }
.kr-sb-note { font-size: var(--text-sm); font-weight: 500; color: var(--olive-800); }
.kr-sb-action {
  flex: 0 0 auto;
  min-width: 96px;
  min-height: var(--touch);
  padding: 0 var(--space-3);
  border: 0;
  background: var(--burgundy);
  color: var(--ivory);
  font: 700 var(--text-sm) var(--font-body);
  cursor: pointer;
}

/* Ticker */
kr-ticker { display: flex; align-items: stretch; min-height: var(--touch); background: var(--olive); color: var(--grey-black); overflow: hidden; }
.kr-tk-tag {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  padding: 0 calc(var(--space-4) + 4px) 0 var(--space-4);
  background: var(--grey-black);
  color: var(--olive);
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--text-lg);
  clip-path: polygon(0 0, 100% 0, calc(100% - var(--angle)) 100%, 0 100%);
}
.kr-tk-view { flex: 1; min-width: 0; overflow: hidden; display: flex; align-items: center; }
.kr-tk-crawl { display: flex; flex: 0 0 auto; white-space: nowrap; animation: kr-crawl 30s linear infinite; }
.kr-tk-run { display: flex; flex: 0 0 auto; gap: var(--space-7); padding-right: var(--space-7); font-weight: 650; font-size: var(--text-sm); }
kr-ticker[paused] .kr-tk-crawl { animation-play-state: paused; }
.kr-tk-pause {
  flex: 0 0 auto;
  width: var(--touch);
  border: 0;
  background: var(--grey-black);
  color: var(--olive);
  cursor: pointer;
  display: grid;
  place-items: center;
}
.kr-tk-pause::before { content: ''; width: 12px; height: 14px; background: currentColor; clip-path: polygon(0 0, 35% 0, 35% 100%, 0 100%, 0 0, 65% 0, 100% 0, 100% 100%, 65% 100%, 65% 0); }
kr-ticker[paused] .kr-tk-pause::before { clip-path: polygon(0 0, 100% 50%, 0 100%); }
@keyframes kr-crawl { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .kr-tk-pause { display: none; } }

/* Duotone backdrop: wallpaper in grayscale, burgundy multiplied on top. */
kr-duotone-backdrop { position: relative; isolation: isolate; overflow: hidden; background: var(--black-900); }
.kr-db-image, .kr-db-tint { position: absolute; inset: 0; z-index: -1; }
.kr-db-image img { display: block; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.25); }
.kr-db-tint { background: var(--burgundy); mix-blend-mode: multiply; }

/* Skew tabs: phone = bottom bar. */
kr-skew-tabs nav { display: flex; gap: var(--space-1); padding: var(--space-2) var(--space-2) calc(var(--space-2) + env(safe-area-inset-bottom)); background: var(--black-900); }
kr-skew-tabs a {
  flex: 1;
  min-width: 0;
  min-height: 52px;
  display: grid;
  place-items: center;
  background: var(--black-700);
  color: var(--ivory);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.0625rem;
  text-decoration: none;
  transform: skewX(-10deg);
}
kr-skew-tabs a span { display: block; transform: skewX(10deg); }
kr-skew-tabs a[aria-current='page'] { background: var(--olive); color: var(--grey-black); }

@container kr (min-width: 900px) {
  kr-extruded-numeral { --kr-size: 210px; }
  .kr-lt-slab { padding-block: 4px; }
  .kr-sb-label { max-width: none; padding: 0 var(--space-5); font-size: var(--text-md); }
  .kr-sb-value { font-size: 2.75rem; }
  .kr-sb-note { font-size: 0.9375rem; }
  .kr-sb-main { padding: var(--space-3) var(--space-5); }
  kr-score-bug { min-height: 96px; }
  kr-ticker { min-height: 52px; }
  .kr-tk-run { font-size: var(--text-md); }

  /* Desktop = plain top nav with an underline. */
  kr-skew-tabs nav { gap: var(--space-2); padding: 0; background: none; }
  kr-skew-tabs a {
    flex: none;
    min-height: var(--touch);
    padding: 0 var(--space-3);
    background: none;
    color: var(--ivory-300);
    font-family: var(--font-body);
    font-weight: 500;
    font-size: var(--text-md);
    border-bottom: 3px solid transparent;
    transform: none;
  }
  kr-skew-tabs a span { transform: none; }
  kr-skew-tabs a[aria-current='page'] { background: none; color: var(--ivory); font-weight: 700; border-bottom-color: var(--olive); }
}
