/* kbTV (pages/sl-kbtv.js): the broadcast look.
   Everything on the screen is sized in cqw (1% of the screen's own width), so
   the graphics are the same picture on a phone, in the page and full screen.
   The picture is always the full 16:9; the crawl has its own strip under it. */
.kb-stage{container-type:inline-size;--kb-a:#3d7dff;--kb-a-ink:#0f4bd6;--kb-deep:#0b2a7a;--kb-blue:#1a5cff;--kb-line:rgba(255,255,255,.1);--kb-good:#22d673;--kb-bad:#ff5b38;--kb-mute:rgba(255,255,255,.62);--w:100cqw;
  background:#07070a;font-family:var(--sl-font);color:#fff;-webkit-font-smoothing:antialiased;user-select:none}
.kb-stage.is-breaking{--kb-a:#ff2a2a;--kb-a-ink:#d40000;--kb-deep:#7a0000}
.kb-stage *{box-sizing:border-box}
.kb-stage .is-good{color:var(--kb-good)}.kb-stage .is-bad{color:var(--kb-bad)}.kb-stage .is-flat{color:var(--kb-mute)}
.kb-stage em{font-style:normal}
.kb-arrow{font-size:.72em}

/* The mark: two leaning tiles, white "kb" on blue and blue "TV" on white, on a red rule.
   Its colours are fixed; they don't follow the story's accent. */
.kb-mark{position:relative;display:inline-flex;flex:none;align-items:stretch;overflow:hidden;border-radius:.1em;font-size:max(13px,1.7cqw);font-weight:800;letter-spacing:-.04em;line-height:1;transform:skewX(-9deg);box-shadow:0 0 0 .5px rgba(255,255,255,.08)}
.kb-mark::after{content:"";position:absolute;left:0;right:0;bottom:0;height:.13em;background:#e1140a}
.kb-mark .kb-m1{padding:.2em .2em .34em .32em;background:#1a5cff;color:#fff}
.kb-mark .kb-m2{padding:.2em .32em .34em .22em;background:#fff;color:#1a5cff}
.kb-av{flex:none;display:inline-grid;place-items:center;width:2.4cqw;height:2.4cqw;min-width:16px;min-height:16px;border-radius:50%;object-fit:cover;background:#111;color:#fff;font-size:max(8px,.9cqw);font-weight:750;line-height:1}

/* Regions: the picture (always 16:9), with the crawl in its own strip underneath */
.tv-stage.kb-stage{display:flex;flex-direction:column;aspect-ratio:auto}
.kb-win{position:relative;z-index:1;flex:none;width:100%;aspect-ratio:16/9;overflow:hidden;background:#000}
.kb-stage:fullscreen .kb-win{flex:1;min-height:0;aspect-ratio:auto}

/* The picture: two players stacked (on air on top, next underneath and already
   running), wrapped so the 3D studio can warp the whole thing into its video wall. */
.kb-pic{position:absolute;inset:0;z-index:0;transform-origin:0 0;will-change:transform;backface-visibility:hidden}
.kb-decks{position:absolute;inset:0;background:#000}
/* The waiting player sits on top but all but invisible, so the browser keeps
   drawing it and it is a moving picture the instant it is revealed. */
.kb-deck{position:absolute;inset:0;z-index:1;opacity:.001}
.kb-deck.is-front{z-index:0;opacity:1;background:#000}
/* The studio (pages/sl-kbtv-gl.js) is drawn here, over the picture. */
.kb-gl{position:absolute;inset:0;z-index:3;display:block;width:100%;height:100%;opacity:0;pointer-events:none}
.kb-cover{position:absolute;inset:0;z-index:2;background:#000;transition:opacity .5s var(--sl-ease),visibility 0s linear .5s}
.kb-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.kb-cover.is-gone{opacity:0;visibility:hidden}
.kb-win .tv-shield{z-index:5}

/* On the picture: the bug, the source credit, the next-up chip, the announcer's words */
.kb-tl{position:absolute;left:1.1cqw;top:1.1cqw;z-index:6;display:flex;align-items:center;gap:.8cqw;pointer-events:none}
.kb-tl > *{pointer-events:auto}
.kb-bug{display:flex;align-items:center;gap:.7cqw;padding:.4cqw .85cqw .4cqw .4cqw;border-radius:.6cqw;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.kb-live{display:inline-flex;align-items:center;gap:.42cqw;font-size:max(9px,.84cqw);font-weight:800;letter-spacing:.13em}
.kb-live i{width:.62cqw;height:.62cqw;min-width:5px;min-height:5px;border-radius:50%;background:#ff3b3b;animation:kb-pulse 1.6s ease-in-out infinite}
@keyframes kb-pulse{50%{opacity:.35}}
@keyframes kb-flash{50%{background:#8d0400}}
.kb-clock{font-size:max(10px,1.02cqw);font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}
.kb-clock small{font-size:.8em;color:var(--kb-mute)}
.kb-credit{position:absolute;right:1.1cqw;top:1.1cqw;z-index:6;display:inline-flex;align-items:center;gap:.5cqw;max-width:52%;padding:.38cqw .7cqw;border-radius:.5cqw;background:rgba(0,0,0,.58);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;font-size:max(10px,.92cqw);line-height:1.2;text-decoration:none;white-space:nowrap;transition:background .2s}
.kb-credit:hover{background:rgba(0,0,0,.82)}
.kb-credit > span{font-size:.82em;font-weight:800;letter-spacing:.12em;color:var(--kb-mute)}
.kb-credit b{overflow:hidden;font-weight:650;text-overflow:ellipsis}
.kb-credit em{color:var(--kb-mute)}
.kb-credit .kb-av{width:1.5cqw;height:1.5cqw;min-width:13px;min-height:13px}
.kb-credit svg{flex:none;opacity:.7}
.kb-stage .kb-soundchip{position:static;margin:0;animation:none}

/* The banner. In: the category tab slides in, the white panel opens from it, the
   topic's words come up one after another. Out: the panel closes, then the tab leaves.
   It never just vanishes. */
.kb-l3{position:absolute;left:1.9cqw;bottom:2.1cqw;z-index:6;display:flex;align-items:stretch;max-width:calc(100% - 3.8cqw);height:max(40px,5.9cqw);pointer-events:none;filter:drop-shadow(0 1.2cqw 2.4cqw rgba(0,0,0,.5))}
.kb-l3-tab{display:flex;flex:none;align-items:center;padding:0 1.5cqw;background:var(--kb-blue,#1a5cff);color:#fff;font-size:max(9px,1cqw);font-weight:800;letter-spacing:.14em;white-space:nowrap;transform:skewX(-9deg) translateX(-160%);opacity:0;transition:transform .5s cubic-bezier(.7,0,.3,1) .34s,opacity .01s linear .84s,background .4s}
.kb-l3-tab > span{display:inline-flex;align-items:center;gap:.5cqw;transform:skewX(9deg)}
.kb-l3-tab i{width:.6cqw;height:.6cqw;min-width:5px;min-height:5px;border-radius:50%;background:#fff;animation:kb-pulse 1s ease-in-out infinite}
.is-breaking .kb-l3-tab{background:#e1140a}
.kb-l3-main{position:relative;display:flex;align-items:center;min-width:0;margin-left:-.5cqw;padding:0 2.2cqw 0 1.9cqw;background:#f5f5f2;color:#0b0b0c;clip-path:inset(0 100% 0 0);transform:skewX(-9deg);transition:clip-path .42s cubic-bezier(.7,0,.3,1)}
.kb-l3-main::after{content:"";position:absolute;left:0;right:0;bottom:0;height:max(2px,.3cqw);background:#e1140a}
.kb-l3.is-in .kb-l3-tab{transform:skewX(-9deg);opacity:1;transition:transform .55s var(--sl-ease),opacity .01s linear,background .4s}
.kb-l3.is-in .kb-l3-main{clip-path:inset(0);transition:clip-path .6s var(--sl-ease) .22s}
.kb-l3-head{display:block;overflow:hidden;font-size:max(15px,2.5cqw);font-weight:800;letter-spacing:-.028em;line-height:1.16;white-space:nowrap;text-overflow:ellipsis;transform:skewX(9deg)}
.kb-l3-head .kb-w > span{animation-delay:calc(.42s + var(--wi,0s))}
/* A long headline takes two lines at a smaller size, the way a channel's own banner does. */
.kb-l3.is-long{height:auto;min-height:max(44px,6.4cqw)}
.kb-l3.is-long .kb-l3-main{padding-top:.7cqw;padding-bottom:.9cqw}
.kb-l3.is-long .kb-l3-head{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:60cqw;font-size:max(13px,1.9cqw);line-height:1.18;white-space:normal}
/* Words that come up from behind a mask, one after another. */
.kb-w{display:inline-block;overflow:hidden;vertical-align:bottom;white-space:pre}
.kb-w > span{display:inline-block;animation:kb-word .6s var(--sl-ease) both}
@keyframes kb-word{from{transform:translateY(105%)}}

/* The crawl */
.kb-tick{position:relative;z-index:2;display:flex;flex:none;align-items:stretch;height:max(28px,3.3cqw);min-width:0;overflow:hidden;background:#050507;box-shadow:inset 0 .22cqw 0 var(--kb-a);transition:box-shadow .4s}
.kb-tick-run{position:relative;display:flex;flex:1;align-items:center;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 2.5%,#000 97%,transparent);mask-image:linear-gradient(90deg,transparent,#000 2.5%,#000 97%,transparent)}
.kb-tick-track{display:flex;width:max-content;animation:kb-crawl 60s linear infinite;will-change:transform}
.kb-tick-track > div{display:flex;align-items:baseline;gap:2.4cqw;padding:0 2.4cqw 0 0;font-size:max(11px,1.26cqw);white-space:nowrap}
@keyframes kb-crawl{to{transform:translateX(-50%)}}
/* A category's tab: a solid block that leads its stories, with a light that passes over it. */
.kb-tick-sec{position:relative;align-self:center;display:inline-flex;align-items:center;gap:.7em;padding:.36em .8em;overflow:hidden;background:var(--kb-blue,#1a5cff);color:#fff;font-size:.74em;font-weight:800;letter-spacing:.13em;transform:skewX(-9deg)}
.kb-tick-sec::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);animation:kb-sheen 5s ease-in-out infinite}
@keyframes kb-sheen{0%,62%{transform:translateX(0)}100%{transform:translateX(520%)}}
.kb-tick-sec.is-money{background:#fff;color:#0b2a7a}
.kb-tick-sec small{font-size:.92em;font-weight:700;letter-spacing:.04em;opacity:.7}
.kb-tick-q{font-variant-numeric:tabular-nums}
.kb-tick-q b{font-weight:800;color:var(--kb-mute)}
.kb-tick-q em{font-weight:650}
.kb-tick-h{font-weight:550}
.kb-tick-h + .kb-tick-h::before{content:"";display:inline-block;width:.34em;height:.34em;margin:0 1.5em 0 -.6em;background:var(--kb-a);vertical-align:.18em;transform:rotate(45deg)}
.kb-tick-h small{margin-left:.7em;font-size:.84em;font-weight:500;color:var(--kb-mute)}
/* An urgent story: pinned at the left in red, while everything else keeps moving beside it. */
.kb-tick-urgent{display:flex;flex:none;align-items:stretch;max-width:56%;font-size:max(11px,1.26cqw);white-space:nowrap;animation:kb-urgent .6s var(--sl-ease) both}
.kb-tick-urgent b{display:grid;place-items:center;padding:0 1cqw;background:#e1140a;color:#fff;font-size:.78em;font-weight:800;letter-spacing:.13em;animation:kb-flash 1s steps(2,jump-none) infinite}
.kb-tick-urgent span{display:flex;align-items:center;min-width:0;padding:0 1.2cqw;overflow:hidden;background:#fff;color:#0b0b0c;font-weight:750;text-overflow:ellipsis}
@keyframes kb-urgent{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
.kb-tick-wait{padding:0 1.2cqw;font-size:max(10px,1.05cqw);color:var(--kb-mute)}

/* kbTV's own full-screen segments. Type scale: kicker 1cqw caps, title 5.4, lead 1.8,
   hero figure 8.6, supporting figures 3, labels 1, notes .9. Figures are always tabular. */
.kb-board{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;padding:max(48px,6.4cqw) 3.6cqw 2.2cqw;overflow:hidden;background:radial-gradient(110% 90% at 88% 12%,color-mix(in srgb,var(--kb-a) 26%,transparent),transparent 62%),linear-gradient(155deg,rgba(9,9,13,.84),rgba(3,3,5,.95));-webkit-backdrop-filter:blur(16px) saturate(.7);backdrop-filter:blur(16px) saturate(.7)}
.kb-board.is-alert{--kb-a:#ff3b30;--kb-blue:#e1140a;--kb-deep:#7a0000}
.kb-board-globe{position:absolute;right:-12%;top:-18%;z-index:0;width:66%;height:136%;opacity:.5}
.kb-board > :not(canvas){position:relative;z-index:1}
.kb-board-kick{display:inline-block;padding:.34cqw .95cqw;background:var(--kb-blue,#1a5cff);color:#fff;font-size:max(9px,1cqw);font-weight:800;letter-spacing:.15em;transform:skewX(-9deg);animation:kb-kick .55s var(--d,1.25s) var(--sl-ease) both}
.kb-board-kick > span{display:inline-block;transform:skewX(9deg)}
@keyframes kb-kick{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
.kb-board h2{margin:.9cqw 0 0;font-size:max(22px,5.4cqw);font-weight:800;letter-spacing:-.04em;line-height:1.02}
.kb-board-lead{margin:1cqw 0 0;font-size:max(12px,1.8cqw);font-weight:600;line-height:1.25}
.kb-board-lead small{display:inline-block;margin-left:1.1cqw;padding:.2cqw .7cqw;background:#fff;color:#0b2a7a;font-size:.66em;font-weight:800;letter-spacing:.06em;vertical-align:.2em;animation:kb-rise .5s calc(var(--d,1.25s) + .7s) var(--sl-ease) both}
.kb-board footer{display:flex;justify-content:space-between;gap:2cqw;margin-top:auto;padding-top:1.2cqw;font-size:max(9px,.9cqw);color:var(--kb-mute);animation:kb-rise .6s calc(var(--d,1.25s) + 1s) var(--sl-ease) both}
@keyframes kb-rise{from{opacity:0;transform:translateY(1.4cqw)}}
/* By the numbers: the leading figure and its line */
.kb-hero{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:end;gap:3.4cqw;margin-top:auto;max-width:78%}
.kb-board:not(.is-studio) .kb-hero,.is-alert .kb-hero{max-width:none}
.kb-hero-n{display:grid;gap:.3cqw;animation:kb-rise .7s calc(var(--d,1.25s) + .15s) var(--sl-ease) both}
.kb-hero-n > span{font-size:max(9.5px,1.05cqw);font-weight:750;letter-spacing:.1em;text-transform:uppercase;color:var(--kb-mute)}
.kb-hero-n b{font-size:max(34px,8.6cqw);font-weight:800;letter-spacing:-.045em;line-height:.92;font-variant-numeric:tabular-nums}
.kb-hero-n em{font-size:max(12px,1.75cqw);font-weight:750;font-variant-numeric:tabular-nums}
.kb-hero-n em small{font-size:.62em;font-weight:500;color:var(--kb-mute)}
.kb-line{position:relative;height:20cqw;margin:0;padding-top:5.2cqw;animation:kb-rise .5s calc(var(--d,1.25s) + .25s) var(--sl-ease) both}
.kb-line figcaption{position:absolute;left:0;top:0;display:flex;align-items:baseline;gap:1cqw;font-size:max(9.5px,1.05cqw);white-space:nowrap}
.kb-line figcaption b{font-weight:750}.kb-line figcaption span{color:var(--kb-mute)}.kb-line figcaption em{font-weight:700}
.kb-line svg{display:block;width:100%;height:100%;overflow:visible}
.kb-line-grid{stroke:rgba(255,255,255,.16);stroke-width:1;stroke-dasharray:3 5;vector-effect:non-scaling-stroke}
.kb-line-path{fill:none;stroke:var(--kb-a);stroke-width:max(2px,.28cqw);stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:kb-draw 1.7s calc(var(--d,1.25s) + .45s) cubic-bezier(.5,0,.2,1) forwards;filter:drop-shadow(0 0 .5cqw color-mix(in srgb,var(--kb-a) 70%,transparent))}
@keyframes kb-draw{to{stroke-dashoffset:0}}
.kb-line-area{opacity:0;animation:kb-fadein 1s calc(var(--d,1.25s) + 1.5s) ease forwards}
@keyframes kb-fadein{to{opacity:1}}
.kb-line-tag{position:absolute;padding:.12cqw .5cqw;background:rgba(8,10,16,.82);font-size:max(8.5px,.88cqw);font-weight:650;font-variant-numeric:tabular-nums;color:rgba(255,255,255,.82);white-space:nowrap;transform:translate(-50%,-135%);opacity:0;animation:kb-fadein .5s calc(var(--d,1.25s) + 1.9s) ease forwards}
.kb-line-tag.is-lo{transform:translate(-50%,35%)}
.kb-line-end{position:absolute;display:grid;gap:.1cqw;padding-left:1.1cqw;transform:translateY(-50%);opacity:0;animation:kb-fadein .4s calc(var(--d,1.25s) + 2.05s) ease forwards}
.kb-line-end i{position:absolute;left:-.45cqw;top:50%;width:.9cqw;height:.9cqw;margin-top:-.45cqw;border-radius:50%;background:#fff;box-shadow:0 0 0 .3cqw color-mix(in srgb,var(--kb-a) 55%,transparent);animation:kb-pulse 1.8s ease-in-out infinite}
.kb-line-end b{font-size:max(12px,1.7cqw);font-weight:800;font-variant-numeric:tabular-nums;line-height:1}
.kb-line-end small{font-size:max(8.5px,.85cqw);color:var(--kb-mute)}
.kb-line-x{position:absolute;left:0;right:14%;bottom:-.2cqw;display:flex;justify-content:space-between;font-size:max(8.5px,.85cqw);color:var(--kb-mute)}
/* Supporting figures */
.kb-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2cqw;margin-top:auto;perspective:120cqw}
.kb-cards[data-n="4"],.kb-cards[data-n="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.kb-cards.is-row{grid-template-columns:repeat(var(--cols,5),minmax(0,1fr));gap:0;margin-top:2.2cqw;max-width:78%;box-shadow:inset 0 1px 0 rgba(255,255,255,.2)}
.kb-cards.is-row[data-n="4"]{--cols:4}.kb-cards.is-row[data-n="3"]{--cols:3}.kb-cards.is-row[data-n="2"]{--cols:2}
.kb-card{display:grid;gap:.35cqw;padding:1.5cqw 1.6cqw 1.4cqw;background:rgba(255,255,255,.065);box-shadow:inset 0 0 0 1px rgba(255,255,255,.11),inset 0 .22cqw 0 var(--kb-a);transform-origin:50% 0;animation:kb-card .7s calc(var(--d,1.25s) + .15s + var(--i) * 90ms) var(--sl-ease) both}
.kb-cards.is-row .kb-card{padding:1.2cqw 1.4cqw .2cqw 0;background:none;box-shadow:none;animation-name:kb-rise;animation-delay:calc(var(--d,1.25s) + .55s + var(--i) * 90ms)}
.kb-cards.is-row .kb-card + .kb-card{padding-left:1.4cqw;box-shadow:inset 1px 0 0 rgba(255,255,255,.14)}
@keyframes kb-card{from{opacity:0;transform:rotateX(-82deg) translateY(1cqw)}}
.kb-card-l{font-size:max(9px,.98cqw);font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--kb-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kb-card b{font-size:max(18px,4.1cqw);font-weight:780;letter-spacing:-.03em;line-height:1.05;font-variant-numeric:tabular-nums}
.kb-cards.is-row .kb-card b{font-size:max(15px,2.9cqw)}
.kb-card em{font-size:max(10.5px,1.5cqw);font-weight:700;font-variant-numeric:tabular-nums}
.kb-cards.is-row .kb-card em{font-size:max(10px,1.2cqw)}
.kb-card small{font-size:max(9px,.9cqw);color:var(--kb-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Odds: each bar grows from zero to its own length */
.kb-bars{display:grid;gap:1.25cqw;margin-top:auto;max-width:94%;gap:1.8cqw}
.kb-board:not(.is-studio) .kb-bars{max-width:none}
.kb-barrow{display:grid;grid-template-columns:24cqw minmax(0,1fr) 8cqw;align-items:center;gap:1.3cqw;font-size:max(12px,2cqw);font-weight:650;animation:kb-rise .6s calc(var(--d,1.25s) + .15s + var(--i) * 110ms) var(--sl-ease) both}
.kb-bar{height:2.1cqw;overflow:hidden;background:rgba(255,255,255,.09)}
.kb-bar i{display:block;width:var(--w);height:100%;background:linear-gradient(90deg,var(--kb-deep),var(--kb-a));transform-origin:0 50%;animation:kb-grow 1.1s calc(var(--d,1.25s) + .3s + var(--i) * 110ms) var(--sl-ease) both}
.kb-barrow:first-child .kb-bar i{background:linear-gradient(90deg,var(--kb-blue,#1a5cff),#cfe0ff)}
.kb-barrow:first-child{font-weight:800}
@keyframes kb-grow{from{transform:scaleX(0)}}
.kb-barrow b{font-size:1.5em;font-weight:800;font-variant-numeric:tabular-nums;text-align:right}
/* Headlines: numbered, each line's words arriving in turn */
.kb-items{display:grid;gap:1.5cqw;margin:auto 0 0;padding:0;max-width:72%;list-style:none;counter-reset:kb}
.kb-board:not(.is-studio) .kb-items{max-width:none}
.kb-items li{display:grid;grid-template-columns:3.4cqw minmax(0,1fr);column-gap:1.2cqw;row-gap:.3cqw;counter-increment:kb}
.kb-items li::before{content:counter(kb);grid-row:1 / span 2;display:grid;place-items:center;align-self:start;height:3.4cqw;background:var(--kb-blue,#1a5cff);color:#fff;font-size:max(11px,1.8cqw);font-weight:800;transform:skewX(-9deg);animation:kb-kick .5s calc(var(--d,1.25s) + .1s + var(--i) * .3s) var(--sl-ease) both}
.kb-items b{font-size:max(12.5px,2.05cqw);font-weight:750;letter-spacing:-.018em;line-height:1.22}
.kb-items small{font-size:max(9.5px,1.02cqw);color:var(--kb-mute);animation:kb-rise .5s calc(var(--d,1.25s) + .55s + var(--i) * .3s) var(--sl-ease) both}
/* Timeline: the rule draws across, each date drops onto it */
.kb-time{position:relative;display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:2cqw;margin:auto 0 1cqw;padding:2.6cqw 0 0;max-width:100%;list-style:none}
.kb-board:not(.is-studio) .kb-time{max-width:none}
.kb-time::before{content:"";position:absolute;left:0;right:0;top:.55cqw;height:max(2px,.18cqw);background:linear-gradient(90deg,var(--kb-a),rgba(255,255,255,.25));transform-origin:0 50%;animation:kb-grow 1.2s calc(var(--d,1.25s) + .1s) cubic-bezier(.5,0,.2,1) both}
.kb-time li{position:relative;display:grid;align-content:start;gap:.45cqw;animation:kb-rise .6s calc(var(--d,1.25s) + .35s + var(--i) * .22s) var(--sl-ease) both}
.kb-time li i{position:absolute;left:0;top:-2.6cqw;width:1.25cqw;height:1.25cqw;border-radius:50%;background:#fff;box-shadow:0 0 0 .32cqw var(--kb-blue,#1a5cff)}
.kb-time li.is-critical i{box-shadow:0 0 0 .32cqw #e1140a}
.kb-time small{font-size:max(9.5px,1.1cqw);font-weight:750;letter-spacing:.04em;color:var(--kb-a)}
.kb-time b{font-size:max(13px,2.3cqw);font-weight:800;letter-spacing:-.02em;line-height:1.12}
.kb-time span{font-size:max(9px,.95cqw);color:var(--kb-mute)}

/* Letters with depth */
.kb-3d{position:relative;display:inline-block;transform-style:preserve-3d;font-weight:800;letter-spacing:-.05em;line-height:.9;white-space:nowrap}
.kb-3d-size{visibility:hidden}
.kb-3d > span:not(.kb-3d-size){position:absolute;left:0;top:0}
.kb-3d .is-face{color:#fff}
.kb-3d .is-side{color:#7d7d88}

/* Transitions */
.kb-fx{position:absolute;inset:0;z-index:7;overflow:hidden;pointer-events:none}
.kb-fx-fade{background:#000;animation:kb-fx-fade .6s ease both}
@keyframes kb-fx-fade{0%,100%{opacity:0}40%,60%{opacity:1}}
.kb-fx-sweep i{position:absolute;top:-25%;bottom:-25%;left:0;transform:skewX(-17deg) translateX(-125%)}
.kb-fx-sweep i:nth-child(1){width:175%;background:linear-gradient(90deg,#060608,#131318 60%,#060608);box-shadow:3.2cqw 0 0 #fff,9.5cqw 0 0 var(--kb-a),-3.2cqw 0 0 #fff,-9.5cqw 0 0 var(--kb-a);animation:kb-sweep 1.15s cubic-bezier(.7,0,.25,1) both}
.kb-fx-sweep i:nth-child(2),.kb-fx-sweep i:nth-child(3){width:5%;background:var(--kb-a);opacity:.85;animation:kb-sweep-thin 1s .16s cubic-bezier(.5,0,.3,1) both}
.kb-fx-sweep i:nth-child(3){width:1.6%;background:#fff;animation-delay:.28s}
@keyframes kb-sweep{from{transform:skewX(-17deg) translateX(-110%)}48%,54%{transform:skewX(-17deg) translateX(-21%)}to{transform:skewX(-17deg) translateX(72%)}}
@keyframes kb-sweep-thin{from{transform:skewX(-17deg) translateX(-400%)}to{transform:skewX(-17deg) translateX(2600%)}}
.kb-fx .kb-mark{position:absolute;left:50%;top:50%;font-size:7.5cqw;box-shadow:0 2cqw 6cqw rgba(0,0,0,.6);animation:kb-fx-mark 1.15s var(--sl-ease) both}
@keyframes kb-fx-mark{0%,22%{opacity:0;transform:translate(-50%,-50%) perspective(60cqw) rotateY(-80deg) scale(.6)}42%,62%{opacity:1;transform:translate(-50%,-50%) perspective(60cqw) rotateY(0) scale(1)}84%,100%{opacity:0;transform:translate(-50%,-50%) perspective(60cqw) rotateY(60deg) scale(1.25)}}
.kb-fx-slabs{perspective:110cqw}
.kb-fx-slabs i{position:absolute;top:0;bottom:0;left:calc(var(--i) * 12.5%);width:12.6%;background:linear-gradient(90deg,#0b0b0f,#191920 50%,#0b0b0f);box-shadow:inset .16cqw 0 0 var(--kb-a);backface-visibility:hidden;animation:kb-slab .95s calc(var(--i) * 45ms) cubic-bezier(.5,0,.2,1) both}
@keyframes kb-slab{from{transform:rotateY(90deg);filter:brightness(2.2)}25%,70%{transform:rotateY(0);filter:none}to{transform:rotateY(-90deg);filter:brightness(2.2)}}
.kb-fx-slabs .kb-mark{animation-duration:1.3s}

/* Whole-screen stingers: the kbTV ident and breaking news */
.kb-stage > .kb-fx{z-index:8}
.kb-fx-doors i{position:absolute;left:0;right:0;height:50.5%;background:linear-gradient(180deg,#101016,#050507)}
.kb-fx-doors i:first-child{top:0;box-shadow:inset 0 -.26cqw 0 var(--kb-a);animation:kb-door-t 2.5s cubic-bezier(.7,0,.2,1) both}
.kb-fx-doors i:last-child{bottom:0;background:linear-gradient(0deg,#101016,#050507);box-shadow:inset 0 .26cqw 0 var(--kb-a);animation:kb-door-b 2.5s cubic-bezier(.7,0,.2,1) both}
@keyframes kb-door-t{from{transform:translateY(-101%)}13%,58%{transform:none}76%,to{transform:translateY(-101%)}}
@keyframes kb-door-b{from{transform:translateY(101%)}13%,58%{transform:none}76%,to{transform:translateY(101%)}}
.kb-fx .kb-globe{position:absolute;left:50%;top:50%;width:74cqw;height:74cqw;transform:translate(-50%,-50%);animation:kb-fx-globe 2.5s ease both}
@keyframes kb-fx-globe{0%,10%{opacity:0;transform:translate(-50%,-50%) scale(.7)}26%,54%{opacity:.9}66%,to{opacity:0;transform:translate(-50%,-50%) scale(1.25)}}
.kb-fx-title{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5cqw;perspective:95cqw}
.kb-fx-spin{display:inline-flex;gap:.9cqw;transform-style:preserve-3d;animation:kb-spin 2.5s cubic-bezier(.2,.7,.2,1) both}
.kb-fx-spin .kb-3d{font-size:12.5cqw}
.kb-fx-spin .is-tv .is-face{color:#1a5cff}.kb-fx-spin .is-tv .is-side{color:#0b2a7a}
@keyframes kb-spin{0%,9%{opacity:0;transform:translateZ(-60cqw) rotateY(-130deg) rotateX(18deg)}30%{opacity:1;transform:rotateY(16deg) rotateX(-4deg)}40%,54%{opacity:1;transform:rotateY(0)}66%,to{opacity:0;transform:translateZ(40cqw) rotateY(-24deg) scale(1.3)}}
.kb-fx-rule{width:30cqw;height:.3cqw;border-radius:1cqw;background:linear-gradient(90deg,transparent,var(--kb-a),transparent);animation:kb-rule 2.5s var(--sl-ease) both}
@keyframes kb-rule{0%,24%{opacity:0;transform:scaleX(0)}40%,54%{opacity:1;transform:none}64%,to{opacity:0;transform:scaleX(1.6)}}
.kb-fx-tag{font-size:max(10px,1.35cqw);font-weight:750;letter-spacing:.34em;color:rgba(255,255,255,.85);animation:kb-tag 2.5s var(--sl-ease) both}
@keyframes kb-tag{0%,30%{opacity:0;letter-spacing:.7em}44%,54%{opacity:1;letter-spacing:.34em}62%,to{opacity:0}}

.kb-fx-breaking{--kb-a:#ff2a2a;--kb-deep:#7a0000;animation:kb-shake 3.2s linear both}
.kb-fx-breaking .kb-fx-doors i{background:linear-gradient(180deg,#2a0000,#0b0000);animation-duration:3.2s}
.kb-fx-breaking .kb-fx-doors i:first-child{animation-name:kb-bdoor-t}.kb-fx-breaking .kb-fx-doors i:last-child{background:linear-gradient(0deg,#2a0000,#0b0000);animation-name:kb-bdoor-b}
@keyframes kb-bdoor-t{from{transform:translateY(-101%)}7%,62%{transform:none}80%,to{transform:translateY(-101%)}}
@keyframes kb-bdoor-b{from{transform:translateY(101%)}7%,62%{transform:none}80%,to{transform:translateY(101%)}}
.kb-fx-rays{position:absolute;left:50%;top:50%;width:190cqw;height:190cqw;background:repeating-conic-gradient(from 0deg,rgba(255,60,60,.2) 0 5deg,transparent 5deg 15deg);-webkit-mask-image:radial-gradient(closest-side,#000 12%,transparent 72%);mask-image:radial-gradient(closest-side,#000 12%,transparent 72%);animation:kb-rays 3.2s linear both}
@keyframes kb-rays{from{opacity:0;transform:translate(-50%,-50%) rotate(0)}10%,60%{opacity:1}72%,to{opacity:0;transform:translate(-50%,-50%) rotate(70deg)}}
.kb-fx-breaking .kb-globe{animation-duration:3.2s}
.kb-fx-flash{position:absolute;inset:0;background:#fff;opacity:0;animation:kb-bflash 3.2s linear both}
@keyframes kb-bflash{0%{opacity:.9}5%{opacity:0}19.5%{opacity:0}20.5%{opacity:.75}26%{opacity:0}31.5%{opacity:0}32.5%{opacity:.6}38%,to{opacity:0}}
@keyframes kb-shake{0%,19.8%,25%,31.8%,37%,100%{transform:none}20.5%{transform:translate(.7cqw,-.5cqw)}21.5%{transform:translate(-.6cqw,.5cqw)}22.5%{transform:translate(.4cqw,.3cqw)}23.5%{transform:translate(-.3cqw,-.2cqw)}32.5%{transform:translate(-.6cqw,.4cqw)}33.5%{transform:translate(.5cqw,-.4cqw)}34.5%{transform:translate(-.3cqw,.2cqw)}}
.kb-fx-breaking .kb-fx-title{gap:.4cqw}
.kb-fx-slam{transform-style:preserve-3d}
.kb-fx-slam .kb-3d{font-size:13.5cqw;letter-spacing:-.045em}
.kb-fx-slam .is-side{color:#a80000}
.kb-fx-slam.is-b .is-face{color:#ff2a2a}.kb-fx-slam.is-b .is-side{color:#5c0000}
.kb-fx-slam.is-a{animation:kb-slam-a 3.2s cubic-bezier(.2,.8,.2,1) both}
.kb-fx-slam.is-b{animation:kb-slam-b 3.2s cubic-bezier(.2,.8,.2,1) both}
@keyframes kb-slam-a{0%,9%{opacity:0;transform:translateZ(80cqw) rotateX(55deg) rotateY(-30deg)}20%{opacity:1;transform:rotateX(-10deg) rotateY(6deg) scale(1.04)}25%,56%{opacity:1;transform:rotateX(8deg) rotateY(-7deg)}68%,to{opacity:0;transform:translateY(-16cqw) rotateX(88deg)}}
@keyframes kb-slam-b{0%,21%{opacity:0;transform:translateZ(80cqw) rotateX(-55deg) rotateY(30deg)}32%{opacity:1;transform:rotateX(10deg) rotateY(-6deg) scale(1.04)}37%,56%{opacity:1;transform:rotateX(8deg) rotateY(-7deg)}68%,to{opacity:0;transform:translateY(16cqw) rotateX(-88deg)}}
.kb-fx-strap{display:inline-flex;align-items:center;gap:1cqw;margin-top:1.6cqw;padding:.55cqw 1.4cqw .55cqw .55cqw;border-radius:.4cqw;background:#e10600;font-size:max(10px,1.4cqw);font-weight:800;letter-spacing:.24em;animation:kb-strap 3.2s var(--sl-ease) both}
.kb-fx-strap .kb-mark{position:static;font-size:1.5cqw;box-shadow:none;animation:none}
@keyframes kb-strap{0%,36%{opacity:0;transform:translateY(2cqw) scaleX(.6)}44%,56%{opacity:1;transform:none}64%,to{opacity:0}}

/* Nothing on air */
.kb-slate{position:absolute;inset:0;z-index:7;display:grid;place-items:center;overflow:hidden;background:radial-gradient(80% 90% at 50% 45%,#0c1426,#040507 70%)}
.kb-slate .kb-globe{position:absolute;left:50%;top:50%;width:84cqw;height:84cqw;opacity:.6;transform:translate(-50%,-50%)}
.kb-slate > div{position:relative;display:grid;justify-items:center;gap:1.1cqw;max-width:70%;text-align:center}
.kb-mark.is-big{font-size:max(26px,5.6cqw);box-shadow:0 2cqw 7cqw rgba(0,0,0,.7)}
.kb-slate > div > b{margin-top:1cqw;font-size:max(15px,2.1cqw);font-weight:750;letter-spacing:-.02em}
.kb-slate > div > span:not(.kb-mark){font-size:max(12px,1.25cqw);line-height:1.45;color:rgba(255,255,255,.7)}
.kb-stage.is-slate .kb-tick,.kb-stage.is-slate .kb-win > *{visibility:hidden}

.kb-stage .tv-bar{z-index:9}
.kb-stay{max-width:26cqw;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-transform:none;letter-spacing:0;font-weight:650}
.tv-stage.kb-stage.is-idle{cursor:none}

/* ── Around the screen (page colours, both themes) ─────────────────────── */
.tv-gi.kb-gi{box-shadow:inset 0 0 0 1px rgba(61,125,255,.42);background:linear-gradient(120deg,rgba(26,92,255,.14),transparent 70%)}
.tv-gi.kb-gi.is-on{background:linear-gradient(120deg,rgba(26,92,255,.2),var(--sl-panel-2) 70%)}
.kb-gi .tv-gi-art{background:radial-gradient(120% 100% at 50% 30%,#0d2256,#000)}
.kb-gi .tv-gi-img{opacity:.55}
.kb-gi-mark{position:relative;display:grid;place-items:center}
.kb-gi-mark .kb-mark{font-size:19px;box-shadow:0 6px 20px rgba(0,0,0,.6)}
.kb-gi-tag{flex:none;padding:2px 7px;border-radius:999px;background:#1a5cff;color:#fff;font-size:10.5px;font-style:normal;font-weight:700;white-space:nowrap}
.kb-gi-meter{display:block;width:64px;height:3px;margin-top:3px;border-radius:3px;overflow:hidden;background:var(--sl-panel-3)}
.kb-gi-meter u{display:block;height:100%;border-radius:inherit;background:var(--sl-text-3);transition:width .9s var(--sl-ease)}
.tv-gi.is-on .kb-gi-meter u{background:#3d7dff}
.kb-credit:focus-visible{outline:2px solid var(--sl-accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){
  .kb-tick-track{animation:none}
  .kb-w > span,.kb-card,.kb-board-kick,.kb-hero-n,.kb-line,.kb-board footer,.kb-barrow,.kb-bar i,.kb-items li::before,.kb-items small,.kb-time li,.kb-time::before,.kb-live i,.kb-tick-sec::after{animation:none}
  .kb-line-path{stroke-dashoffset:0;animation:none}.kb-line-area,.kb-line-tag,.kb-line-end{opacity:1;animation:none}
  .kb-l3-tab,.kb-l3-main{transition:none}
}

/* ── Admin → kbTV (pages/sl-kbtv-admin.js) ─────────────────────────────── */
.kba{position:relative;display:grid;gap:16px;max-width:1080px;color:var(--sl-text);font-family:var(--sl-font)}
.kba-card{display:grid;gap:14px;padding:20px 22px;border:1px solid var(--sl-line);border-radius:14px;background:var(--sl-panel)}
.kba h3{display:flex;align-items:baseline;gap:12px;margin:0;font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--sl-text)}
.kba h3 small,.kba-note{margin:0;font-size:13px;font-weight:400;line-height:1.5;color:var(--sl-text-3)}
.kba-now-h{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.kba-now-h p{max-width:70ch;margin-top:6px}
.kba-switch{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:650}
.kba-toggle{position:relative;flex:none;width:44px;height:26px;padding:0;border:0;border-radius:26px;background:var(--sl-panel-3);box-shadow:inset 0 0 0 1px var(--sl-line-2);cursor:pointer;transition:background .2s}
.kba-toggle i{position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:var(--sl-text-3);transition:transform .2s var(--sl-ease),background .2s}
.kba-toggle.is-on{background:var(--sl-accent);box-shadow:none}
.kba-toggle.is-on i{transform:translateX(18px);background:#0b0b0c}
.kba-toggle:focus-visible,.kba-btn:focus-visible,.kba-seg button:focus-visible,.kba select:focus-visible,.kba input:focus-visible{outline:2px solid var(--sl-accent);outline-offset:2px}
.kba-air{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.kba-air > div{display:grid;align-content:start;gap:3px;min-width:0;padding:14px 16px;border-radius:12px;background:var(--sl-panel-2)}
.kba-air small{font-size:12px;color:var(--sl-text-3)}
.kba-air b{overflow:hidden;font-size:17px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis}
.kba-air span{overflow:hidden;font-size:13.5px;color:var(--sl-text-2);white-space:nowrap;text-overflow:ellipsis}
.kba-air em{font-size:12px;font-style:normal;color:var(--sl-text-3)}
.kba-air-idle{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0;padding:14px 16px;border-radius:12px;background:var(--sl-panel-2);font-size:14px;color:var(--sl-text-2)}
.kba-health{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.kba-chip{display:inline-flex;align-items:center;gap:7px;padding:4px 10px;border-radius:999px;background:var(--sl-panel-2);font-size:12.5px;font-weight:550;color:var(--sl-text-2)}
.kba-chip i{width:7px;height:7px;border-radius:50%;background:var(--sl-better)}
.kba-chip.is-bad{color:var(--sl-worse)}.kba-chip.is-bad i{background:var(--sl-worse)}
.kba-chip.is-idle i{background:var(--sl-text-4)}
.kba-err{font-size:12.5px;color:var(--sl-text-3)}
.kba-btn{height:34px;padding:0 14px;border-radius:9px;border:1px solid var(--sl-line-2);background:none;color:var(--sl-text);font:inherit;font-size:13.5px;font-weight:600;white-space:nowrap;cursor:pointer;transition:background .15s}
.kba-btn:hover:not(:disabled){background:var(--sl-panel-2)}
.kba-btn:disabled{opacity:.45;cursor:default}
.kba-btn.is-main{border-color:var(--sl-accent);background:var(--sl-accent);color:#0b0b0c}
.kba-btn.is-main:hover:not(:disabled){background:var(--sl-accent);filter:brightness(1.08)}
.kba-cut{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}
.kba-cut label:not(.kba-check){display:grid;gap:6px;font-size:12.5px;color:var(--sl-text-3)}
.kba-grow{flex:1;min-width:220px}
.kba select,.kba input[type="text"]{height:34px;padding:0 10px;border-radius:9px;border:1px solid var(--sl-line-2);background:var(--sl-panel-2);color:var(--sl-text);font:inherit;font-size:13.5px}
.kba input[type="text"]{width:100%}
.kba-check{display:inline-flex;align-items:center;gap:8px;height:34px;font-size:13.5px;color:var(--sl-text);cursor:pointer}
.kba-check input{width:16px;height:16px;accent-color:var(--sl-accent)}
.kba-checks{display:flex;flex-wrap:wrap;gap:4px 18px}
.kba-acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:14px;border-top:1px solid var(--sl-line);font-size:13px;color:var(--sl-text-3)}
.kba-sep{flex:1}
.kba-seg{display:inline-flex;flex-wrap:wrap;padding:3px;border-radius:10px;background:var(--sl-panel-2)}
.kba-seg button{height:28px;padding:0 11px;border:0;border-radius:7px;background:none;color:var(--sl-text-2);font:inherit;font-size:13px;font-weight:550;white-space:nowrap;cursor:pointer}
.kba-seg button[aria-pressed="true"]{background:var(--sl-text);color:var(--sl-bg);font-weight:650}
.kba-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 24px;padding-top:14px;border-top:1px solid var(--sl-line)}
.kba-row > div:first-child{display:grid;gap:3px}
.kba-row b{font-size:14px;font-weight:650}
.kba-row small{max-width:62ch;font-size:13px;line-height:1.45;color:var(--sl-text-3)}
.kba-row-c{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px}
.kba-table{display:grid}
.kba-ch{display:grid;grid-template-columns:minmax(0,230px) minmax(0,1fr) 70px auto;align-items:center;gap:16px;padding:9px 8px;border-top:1px solid var(--sl-line)}
.kba-ch.is-on{border-radius:10px;border-top-color:transparent;background:var(--sl-accent-soft)}
.kba-ch.is-off .kba-ch-n{opacity:.55}
.kba-ch-n{display:flex;align-items:center;gap:10px;min-width:0}
.kba-ch-n img,.kba-ch-n > i{flex:none;width:28px;height:28px;border-radius:50%;object-fit:cover}
.kba-ch-n > span{display:grid;gap:1px;min-width:0}
.kba-ch-n b{overflow:hidden;font-size:14px;font-weight:650;white-space:nowrap;text-overflow:ellipsis}
.kba-ch-n small,.kba-ch-w{overflow:hidden;font-size:12.5px;color:var(--sl-text-3);white-space:nowrap;text-overflow:ellipsis}
.kba-ch-m i{display:block;height:5px;border-radius:5px;overflow:hidden;background:var(--sl-panel-3)}
.kba-ch-m u{display:block;height:100%;border-radius:inherit;background:var(--sl-text-3);transition:width .8s var(--sl-ease)}
.kba-ch.is-on .kba-ch-m u{background:var(--sl-accent)}
.kba-log{display:grid}
.kba-log > div{display:grid;grid-template-columns:76px minmax(0,190px) minmax(0,1fr) 56px minmax(0,1fr);align-items:baseline;gap:14px;padding:8px 0;border-top:1px solid var(--sl-line);font-size:13px;color:var(--sl-text-2)}
.kba-log b{overflow:hidden;font-weight:650;color:var(--sl-text);white-space:nowrap;text-overflow:ellipsis}
.kba-log b em{margin-left:8px;padding:1px 7px;border-radius:999px;background:var(--sl-worse-soft);color:var(--sl-worse);font-size:11px;font-style:normal}
.kba-log span,.kba-log small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.kba-log small{color:var(--sl-text-3)}
.kba-toast{position:fixed;right:24px;bottom:24px;z-index:400;padding:10px 16px;border-radius:10px;background:var(--sl-text);color:var(--sl-bg);font-size:13.5px;font-weight:600;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.kba-toast.is-bad{background:var(--sl-worse);color:#fff}
@media (max-width:820px){
  .kba-air{grid-template-columns:minmax(0,1fr)}
  .kba-row{grid-template-columns:minmax(0,1fr)}.kba-row-c{justify-content:flex-start}
  .kba-ch{grid-template-columns:minmax(0,1fr) auto}.kba-ch-w,.kba-ch-m{display:none}
  .kba-log > div{grid-template-columns:70px minmax(0,1fr) 50px}.kba-log > div > span:nth-child(3),.kba-log small{display:none}
  .kba-now-h{flex-direction:column;gap:12px}
}

/* During a 3D move the bug, banner and chips step aside; the source credit stays. */
.kb-tl{transition:opacity .35s var(--sl-ease),transform .45s var(--sl-ease)}
.kb-stage.is-fx .kb-tl{opacity:0;transform:translateY(-1.2cqw);pointer-events:none}
.kb-stage.is-fx .kb-l3{visibility:hidden}
/* A briefing over the studio: a scrim on the reading side, the room showing through on the other. */
.kb-board.is-studio{background:linear-gradient(96deg,rgba(3,3,5,.9) 0%,rgba(3,3,5,.74) 46%,rgba(3,3,5,.2) 82%,rgba(3,3,5,.05) 100%);-webkit-backdrop-filter:none;backdrop-filter:none;animation:kb-scrim .7s calc(var(--d,1.25s) - .35s) ease both}
@keyframes kb-scrim{from{opacity:0}}
/* On a phone the top row is tight: the credit keeps the channel's name, the sound button keeps its action. */
@container (max-width:560px){
  .kb-credit > span,.kb-credit em,.kb-credit svg{display:none}
  .kb-credit{max-width:40%}
  .kb-stage .kb-soundchip .tv-soundchip-t{display:none}
}

/* The ticker says the switch: the bar turns over (like a split-flap board) to announce it, then turns back to the crawl. */
.kb-tick{perspective:60cqw}
.kb-tick-flip{position:absolute;inset:0;z-index:3;display:flex;align-items:center;gap:1cqw;padding:0 1.4cqw 0 0;overflow:hidden;background:linear-gradient(180deg,#0e1830,#070b16);font-size:max(11px,1.26cqw);white-space:nowrap;transform-origin:50% 0;transform:rotateX(-92deg);opacity:0;transition:transform .5s cubic-bezier(.6,0,.3,1),opacity .01s linear .5s;pointer-events:none}
.kb-tick-flip.is-on{transform:none;opacity:1;transition:transform .6s var(--sl-ease),opacity .01s linear}
.kb-tick-flip > b{align-self:stretch;display:grid;place-items:center;padding:0 1.3cqw;background:var(--kb-blue,#1a5cff);color:#fff;font-size:.78em;font-weight:800;letter-spacing:.14em}
.kb-tick-flip.is-breaking > b{background:#e1140a;animation:kb-flash 1s steps(2,jump-none) infinite}
.kb-tick-flip .kb-av{width:1.9cqw;height:1.9cqw;min-width:15px;min-height:15px}
.kb-tick-flip strong{font-weight:800;letter-spacing:-.01em}
.kb-tick-flip > span{min-width:0;overflow:hidden;color:rgba(255,255,255,.78);text-overflow:ellipsis}
.kb-tick-flip > span::before{content:"";display:inline-block;width:.34em;height:.34em;margin-right:1cqw;background:var(--kb-a);vertical-align:.18em;transform:rotate(45deg)}
.kb-tick-flip em{margin-left:auto;padding-left:1cqw;font-weight:750;font-variant-numeric:tabular-nums;color:var(--kb-a)}
.kb-tick-flip.is-on > *{animation:kb-rise .5s .18s var(--sl-ease) both}
.kb-tick-flip.is-on > b{animation:none}
@media (prefers-reduced-motion:reduce){.kb-tick-flip,.kb-tick-flip.is-on{transition:opacity .2s linear;transform:none}.kb-tick-flip.is-on > *{animation:none}}

/* ── kbTV Specials ──────────────────────────────────────────────────────── */
.kb-board-label{display:inline-block;padding:.16cqw .6cqw;background:#fff;color:#0b2a7a;font-size:.92em;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.kb-quote{margin:auto 0 0;max-width:74%;padding:0 0 0 2.2cqw;box-shadow:inset .5cqw 0 0 var(--kb-blue,#1a5cff)}
.kb-quote p{margin:0;font-size:max(14px,2.5cqw);font-weight:650;letter-spacing:-.018em;line-height:1.24}
.kb-quote footer{display:block;margin-top:1.2cqw;font-size:max(10px,1.2cqw);font-weight:700;color:var(--kb-a);animation:kb-rise .5s .9s var(--sl-ease) both}
.kb-quote footer span{font-weight:500;color:var(--kb-mute)}
/* An archive clip: the picture is the recording itself; its date never leaves the screen. */
.kb-stage.is-clip .kb-gl{opacity:0 !important}
.kb-clip{position:absolute;inset:0;z-index:4;pointer-events:none}
.kb-clip-tag{position:absolute;left:1.1cqw;top:max(40px,4.8cqw);display:inline-flex;align-items:center;gap:.8cqw;padding:.35cqw .9cqw .35cqw 0;background:rgba(8,10,16,.82);font-size:max(10px,1.05cqw);font-weight:650;animation:kb-kick .5s var(--sl-ease) both}
.kb-clip-tag b{padding:.35cqw .8cqw;margin:-.35cqw 0;background:#fff;color:#0b0b0c;font-weight:800;letter-spacing:.14em}
.kb-clip-l3{position:absolute;left:1.9cqw;right:1.9cqw;bottom:2.1cqw;display:grid;gap:.7cqw;padding:1.2cqw 1.6cqw 1.3cqw;background:linear-gradient(180deg,rgba(8,10,16,.9),rgba(8,10,16,.96));box-shadow:inset .5cqw 0 0 var(--kb-blue,#1a5cff);animation:kb-rise .6s .2s var(--sl-ease) both}
.kb-clip-who{display:flex;align-items:baseline;gap:1cqw;font-size:max(10px,1.05cqw);white-space:nowrap}
.kb-clip-who b{font-size:1.15em;font-weight:800}
.kb-clip-who small{overflow:hidden;font-size:1em;color:var(--kb-mute);text-overflow:ellipsis}
.kb-clip-l3 p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0;font-size:max(12px,1.5cqw);font-weight:550;line-height:1.34}

/* Admin → kbTV → Specials */
.kba-h4{margin:22px 0 6px;font-size:13px;font-weight:700;letter-spacing:.02em;color:var(--sl-text-3);text-transform:uppercase}
.kba-sp{border-top:1px solid var(--sl-line);padding:10px 0}
.kba-sp-h{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 18px}
.kba-sp-h > div:first-child{display:grid;gap:2px;min-width:0}
.kba-sp-h b{font-size:14px;font-weight:650}
.kba-sp-h small{font-size:12.5px;color:var(--sl-text-3)}
.kba-sp-b{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}
.kba-sp-s{font-size:13px;color:var(--sl-text-2)}
.kba-sp-s.is-bad{color:#c0392b}
.kba-sp-d{display:grid;gap:8px;margin-top:12px;padding:14px 16px;border-radius:12px;background:var(--sl-panel-3)}
.kba-sp-d h5{margin:10px 0 2px;font-size:13px;font-weight:700}
.kba-sp-list{display:grid;gap:8px;margin:0;padding-left:20px;font-size:13px;line-height:1.45;color:var(--sl-text-2)}
.kba-sp-list small{display:block;font-size:12px;color:var(--sl-text-3)}
.kba-sp-list p{margin:3px 0 0}
.kba-sp-list a{color:var(--sl-accent)}
.kba-grade{display:inline-block;margin-right:8px;padding:1px 7px;border-radius:6px;background:var(--sl-panel-2,rgba(128,128,128,.15));font-size:11.5px;font-style:normal;font-weight:650}
.kba-grade.is-confirmed{background:rgba(40,160,90,.18);color:#1f8a4c}
.kba-grade.is-reported{background:rgba(220,160,30,.2);color:#9a6b00}

/* The Situation segment's map */
.kb-map{position:relative;flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 21cqw;gap:2cqw;margin-top:1.2cqw;padding:1cqw;background:rgba(6,10,20,.78);box-shadow:inset 0 0 0 1px rgba(110,160,255,.22);animation:kb-rise .6s calc(var(--d,1.25s) + .2s) var(--sl-ease) both}
.kb-map canvas{width:100%;height:100%;min-height:0;display:block}
.kb-map-key{display:grid;align-content:start;gap:1.1cqw;margin:0;padding:.6cqw 0;list-style:none}
.kb-map-key li{display:grid;grid-template-columns:1.4cqw minmax(0,1fr);gap:.8cqw;align-items:start;font-size:max(10px,1.1cqw);font-weight:650;line-height:1.3}
.kb-map-key li i{width:1.1cqw;height:1.1cqw;margin-top:.2cqw;border-radius:50%;background:#ff963c}
.kb-map-key .is-quake i{background:none;box-shadow:inset 0 0 0 .2cqw #5adcff}
.kb-map-key .is-air i{border-radius:0;width:.9cqw;height:.9cqw;background:#fff}
.kb-map-key .is-none{opacity:.55}.kb-map-key .is-none i{background:none;box-shadow:inset 0 0 0 .15cqw rgba(255,255,255,.5)}
.kb-map-key small{display:block;font-size:.84em;font-weight:500;color:var(--kb-mute)}
.kb-map-asof{margin-top:auto;padding-top:1cqw;border-top:1px solid var(--kb-line);grid-template-columns:1fr!important}

/* A special or segment keeps the studio to itself: the live picture stays out of sight (it keeps playing, silently) except when an archive clip is on. */
.kb-stage.is-special:not(.is-clip) .kb-pic{visibility:hidden!important}

.kba-log2 > div{grid-template-columns:76px minmax(0,170px) minmax(0,1fr) 56px minmax(0,240px)}
.kba-tail{grid-column:1 / -1;padding-left:76px;font-size:12px;font-style:italic;color:var(--sl-text-3);line-height:1.4}

/* Music options: eight numbers per piece */
.kba-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px 18px;margin:10px 0 4px}
.kba-opts > div{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;font-size:13px}
.kba-opts b{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:var(--sl-text);color:var(--sl-bg);font-size:12px}
.kba-opts strong{display:block;font-weight:650}
.kba-opts small{display:block;font-size:12px;color:var(--sl-text-3)}
.kba-mrow{align-items:center}
.kba-nums{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.kba-num{display:grid;grid-template-rows:30px 20px;width:34px;border-radius:9px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--sl-line)}
.kba-num button{border:0;padding:0;background:none;color:var(--sl-text);font:inherit;font-weight:700;cursor:pointer}
.kba-num-play{font-size:13px}
.kba-num-play:hover{background:var(--sl-panel-3)}
.kba-num-pick{font-size:12px;color:var(--sl-text-3);border-top:1px solid var(--sl-line)!important}
.kba-num.is-on{box-shadow:inset 0 0 0 2px var(--sl-accent)}
.kba-num.is-on .kba-num-pick{background:var(--sl-accent);color:#fff}
.kba-num.is-playing .kba-num-play{background:var(--sl-accent-soft,rgba(255,120,40,.18));color:var(--sl-accent)}
.kba-copybox{width:100%;margin-top:12px;padding:10px 12px;border-radius:10px;border:1px solid var(--sl-line);background:var(--sl-panel-3);color:var(--sl-text-2);font:12px/1.5 ui-monospace,Menlo,monospace;resize:vertical}

/* Cutting away from a briefing or a special: its board fades out as the transition starts, so it never sits on top of the next opening. */
.kb-stage.is-leaving .kb-board,.kb-stage.is-leaving .kb-clip{opacity:0;transition:opacity .28s ease-out}

/* Lineup */
.kba-now-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:8px 0 12px}
.kba-now-grid > div{display:grid;gap:3px;padding:12px 14px;border-radius:12px;background:var(--sl-panel-3)}
.kba-now-grid small{font-size:12px;color:var(--sl-text-3)}.kba-now-grid b{font-size:14px;font-weight:650}.kba-now-grid span{font-size:12.5px;color:var(--sl-text-2)}
.kba-lineup{display:grid}
.kba-lu-day{margin-top:16px;padding:6px 0;font-size:12.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--sl-text-3);border-bottom:1px solid var(--sl-line)}
.kba-lu{display:grid;grid-template-columns:88px 86px minmax(0,1fr) auto auto;align-items:center;gap:6px 14px;padding:10px 0;border-top:1px solid var(--sl-line)}
.kba-lu-t{font-variant-numeric:tabular-nums;font-size:13px;font-weight:650}
.kba-lu-k{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--sl-text-3)}
.kba-lu-n{display:grid;gap:2px;min-width:0}.kba-lu-n b{font-size:14px;font-weight:650}.kba-lu-n small{font-size:12.5px;color:var(--sl-text-3)}
.kba-lu-s{font-size:12.5px;color:var(--sl-text-2)}.kba-lu-s.is-bad{color:#c0392b;font-weight:700}
.kba-lu.k-launch .kba-lu-k{color:#e0662a}.kba-lu.k-special .kba-lu-k,.kba-lu.k-replay .kba-lu-k{color:var(--sl-accent)}.kba-lu.k-fed .kba-lu-k,.kba-lu.k-liveevent .kba-lu-k{color:#2d8a57}
.kba-lu.is-late{background:rgba(192,57,43,.08)}
.kba-lu-scenes{margin:2px 0 10px 102px}
@media (max-width:720px){.kba-lu{grid-template-columns:70px minmax(0,1fr)}.kba-lu-k,.kba-lu-s{grid-column:2}}

/* A picture behind a special's scene (public domain / CC0, credited in the footer) */
.kb-board > .kb-board-img.kb-board-img{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;opacity:.26;filter:saturate(.85) contrast(1.05);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 38%);mask-image:linear-gradient(90deg,transparent 0,#000 38%);animation:kb-kenburns 40s ease-out both}
.kb-board > .kb-board-img.is-bright{opacity:.5;-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.25) 0,#000 55%);mask-image:linear-gradient(90deg,rgba(0,0,0,.25) 0,#000 55%)}
.kb-img-credit{font-style:normal;opacity:.8}
@keyframes kb-kenburns{from{transform:scale(1.02)}to{transform:scale(1.12)}}
@media (prefers-reduced-motion:reduce){.kb-board > .kb-board-img.kb-board-img{animation:none}}

/* A portrait of the person the special is about: a tall picture on the right, not a wash across the screen */
.kb-board > .kb-board-img.kb-board-img.is-portrait{left:auto;right:3.2cqw;top:7cqw;bottom:6cqw;width:30cqw;inset:7cqw 3.2cqw 6cqw auto;background-size:cover;background-position:center 18%;opacity:.9;border-radius:.4cqw;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%),linear-gradient(0deg,transparent 0,#000 16%);-webkit-mask-composite:source-in;mask-composite:intersect;mask-image:linear-gradient(90deg,transparent 0,#000 22%),linear-gradient(0deg,transparent 0,#000 16%);box-shadow:0 0 0 1px rgba(255,255,255,.12);animation:kb-kenburns 40s ease-out both}
.kb-board.has-img .kb-board-lead,.kb-board.has-img header h2{max-width:62%}

/* ── Launch coverage ───────────────────────────────────────────────────────── */
/* The small picture in the corner of what is on air: thin border, a caption under it with the mission, no sound. */
.kb-decks.is-pip .kb-deck:not(.is-front){opacity:1;inset:auto;right:1.7cqw;bottom:4.6cqw;width:24cqw;height:13.5cqw;z-index:3;border:1px solid rgba(255,255,255,.78);border-radius:.25cqw;overflow:hidden;box-shadow:0 .5cqw 1.8cqw rgba(0,0,0,.6);background:#000;transition:right 1.05s cubic-bezier(.65,0,.2,1),bottom 1.05s cubic-bezier(.65,0,.2,1),width 1.05s cubic-bezier(.65,0,.2,1),height 1.05s cubic-bezier(.65,0,.2,1),border-color 1s,border-radius 1s,box-shadow 1s;animation:kb-pip-in .7s cubic-bezier(.2,.8,.2,1) both}
.kb-decks.is-pip-expand .kb-deck:not(.is-front){right:0;bottom:0;width:100%;height:100%;border-color:rgba(255,255,255,0);border-radius:0;box-shadow:none;animation:none}
@keyframes kb-pip-in{from{opacity:0;transform:translateY(1.4cqw) scale(.94)}to{opacity:1;transform:none}}
.kb-pip-cap{position:absolute;right:1.7cqw;bottom:1.3cqw;z-index:4;width:24cqw;display:flex;align-items:baseline;gap:.7cqw;overflow:hidden;white-space:nowrap;font-size:max(8px,.92cqw);letter-spacing:.07em;text-transform:uppercase;text-shadow:0 0 .8cqw rgba(0,0,0,.9);transition:opacity .5s;animation:kb-rise .6s .5s var(--sl-ease) both}
.kb-pip-cap.is-out{opacity:0}
.kb-pip-cap i{flex:none;width:.7cqw;height:.7cqw;border-radius:50%;background:#ff3b30;box-shadow:0 0 .8cqw #ff3b30;align-self:center}
.kb-pip-cap b{flex:none;font-weight:800}.kb-pip-cap span{overflow:hidden;text-overflow:ellipsis;font-weight:600;color:rgba(255,255,255,.82)}
/* The countdown: T-minus before liftoff, T-plus after. */
.kb-t0{position:absolute;right:1.7cqw;bottom:4.8cqw;z-index:6;display:flex;align-items:baseline;gap:.8cqw;padding:.7cqw 1.8cqw;background:rgba(5,8,16,.78);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2),0 0 2cqw rgba(0,0,0,.5);font-variant-numeric:tabular-nums;transition:opacity .4s}
.kb-t0 b{font-size:max(15px,2.9cqw);font-weight:800;letter-spacing:.04em}.kb-t0 span{font-size:max(8px,.85cqw);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.65)}
.kb-t0.is-up b{color:#6dd6ff}.kb-t0.is-hidden{opacity:0}
/* The opening: a dusk sky over the pad, the tower, a rocket lifting off while the camera pushes up with it, then LAUNCH COVERAGE on the open side. 3.5 s, swaps the picture behind it at 1.75 s. */
.kb-fx-launch{background:#02030a;overflow:hidden;animation:kb-lx-out .5s 3.0s ease-in both}
.kb-lx-cam{position:absolute;inset:-3%;animation:kb-lx-shake 3.5s linear both}
.kb-lx-sky{position:absolute;inset:0;background:linear-gradient(180deg,#01020a 0%,#050f26 46%,#0f2a55 72%,#3a5f97 90%,#7f8fae 100%);animation:kb-lx-sky 3.5s ease-in-out both}
.kb-lx-dusk{position:absolute;left:0;right:0;bottom:0;height:46%;background:radial-gradient(ellipse 60% 70% at 30% 100%,rgba(255,150,70,.55),rgba(255,110,50,.14) 55%,transparent 75%);animation:kb-lx-dusk 3.5s ease-in-out both}
.kb-lx-stars{position:absolute;inset:0;animation:kb-lx-drift 3.5s cubic-bezier(.5,0,.9,.6) both}
.kb-lx-stars i{position:absolute;border-radius:50%;background:#fff;opacity:0;animation:kb-lx-star 2.2s ease-in-out infinite both}
.kb-lx-sea{position:absolute;left:0;right:0;bottom:0;height:13%;background:linear-gradient(180deg,#0b1730 0%,#040916 100%);box-shadow:0 -.1cqw 0 rgba(150,190,255,.4);animation:kb-lx-fall 3.5s cubic-bezier(.5,0,.9,.6) both}
.kb-lx-sea::after{content:"";position:absolute;left:12%;width:26%;top:0;bottom:0;background:linear-gradient(180deg,rgba(255,160,80,.55),transparent);filter:blur(.5cqw);opacity:.7}
.kb-lx-pad{position:absolute;left:19%;width:23%;bottom:11.4%;height:2.2%;background:linear-gradient(180deg,#232a38,#0b0e16);border-radius:.3cqw;animation:kb-lx-fall 3.5s cubic-bezier(.5,0,.9,.6) both}
.kb-lx-tower{position:absolute;left:18.5%;width:4.6%;bottom:13.4%;height:56%;background:repeating-linear-gradient(180deg,rgba(70,88,120,.95) 0 .18cqw,rgba(8,12,22,.9) .18cqw 1.9cqw),linear-gradient(90deg,#0a0f1a,#1d2638);clip-path:polygon(0 100%,8% 0,92% 0,100% 100%);opacity:.96;animation:kb-lx-fall 3.5s cubic-bezier(.5,0,.9,.6) both}
.kb-lx-tower i{position:absolute;right:-.1cqw;width:.55cqw;height:.55cqw;border-radius:50%;background:#ff4d4d;box-shadow:0 0 1cqw #ff4d4d;animation:kb-lx-blink 1s steps(2) infinite}.kb-lx-tower i:nth-child(1){top:2%}.kb-lx-tower i:nth-child(2){top:34%;animation-delay:.3s}.kb-lx-tower i:nth-child(3){top:68%;animation-delay:.6s}
.kb-lx-glow{position:absolute;left:30.5%;bottom:8%;width:34%;height:42%;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(255,190,100,.85),rgba(255,120,40,.3) 55%,transparent);filter:blur(1.4cqw);opacity:0;animation:kb-lx-glow 3.5s ease-in-out both}
.kb-lx-smoke{position:absolute;left:30.5%;bottom:11%;width:10cqw;height:5cqw;border-radius:50%;transform:translateX(-50%) scale(.2);opacity:0;background:radial-gradient(closest-side,rgba(255,236,214,.9),rgba(215,205,200,.55) 55%,transparent);filter:blur(.9cqw);animation:kb-lx-smoke 2.6s .3s cubic-bezier(.2,.7,.3,1) both}
.kb-lx-smoke.is-b{animation-delay:.55s;animation-name:kb-lx-smoke-l}.kb-lx-smoke.is-c{animation-delay:.55s;animation-name:kb-lx-smoke-r}
.kb-lx-trail{position:absolute;left:30.5%;bottom:12%;width:4.6cqw;height:0;transform:translateX(-50%);transform-origin:50% 100%;background:linear-gradient(0deg,rgba(255,255,255,.9),rgba(222,230,252,.5) 35%,rgba(200,215,255,0));filter:blur(.8cqw);animation:kb-lx-trail 3s .3s cubic-bezier(.5,0,.4,1) both}
.kb-lx-rocket{position:absolute;left:30.5%;bottom:12.2%;width:6.4cqw;transform:translateX(-50%);animation:kb-lx-climb 3.2s cubic-bezier(.62,0,.9,.45) both}
.kb-lx-rocket svg{display:block;width:100%;height:auto;filter:drop-shadow(0 0 1cqw rgba(255,200,140,.35))}
.kb-lx-flame{position:absolute;left:50%;top:91%;width:70%;height:150%;transform:translateX(-50%);transform-origin:50% 0;background:linear-gradient(180deg,#fff 0%,#ffe9a8 14%,#ff9a3c 40%,rgba(255,80,20,.5) 72%,transparent);border-radius:40% 40% 50% 50%/14% 14% 86% 86%;filter:blur(.3cqw);animation:kb-lx-flame .09s linear infinite alternate,kb-lx-flame-in 3.2s both}
.kb-lx-flame.is-core{width:34%;height:95%;background:linear-gradient(180deg,#fff,#fff7d8 40%,rgba(255,235,170,.4) 80%,transparent);filter:blur(.15cqw)}
.kb-lx-flash{position:absolute;inset:0;background:radial-gradient(circle at 30% 82%,#fff,rgba(255,190,110,.55) 26%,transparent 60%);opacity:0;animation:kb-lx-flash 3.5s both}
.kb-lx-streak{position:absolute;left:-10%;right:-10%;top:73%;height:.35cqw;background:linear-gradient(90deg,transparent,rgba(190,225,255,.9) 30%,#fff 50%,rgba(190,225,255,.9) 70%,transparent);filter:blur(.15cqw);opacity:0;transform:scaleX(.1);animation:kb-lx-streak 1.5s .55s ease-out both}
.kb-lx-hud{position:absolute;left:2.4cqw;top:2.2cqw;display:flex;align-items:center;gap:.9cqw;font-size:max(9px,1cqw);font-weight:800;letter-spacing:.3em;text-transform:uppercase;color:rgba(220,235,255,.9);opacity:0;animation:kb-lx-hud 3.5s both}
.kb-lx-hud i{width:.9cqw;height:.9cqw;border-radius:50%;background:#ff4d4d;box-shadow:0 0 .8cqw #ff4d4d}
.kb-lx-hud span{padding:.2cqw .7cqw;background:#e53935;color:#fff;letter-spacing:.2em}
.kb-lx-photo{position:absolute;inset:0;background:#02030a center/cover no-repeat;transform-origin:30% 60%;animation:kb-lx-push 3.6s cubic-bezier(.3,.1,.3,1) both}
.kb-fx-launch.has-photo .kb-lx-cam{display:none}
.kb-lx-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,6,16,.05) 0%,rgba(2,6,16,.35) 36%,rgba(2,6,16,.9) 62%,rgba(2,6,16,.96) 100%),linear-gradient(0deg,rgba(2,6,16,.55),transparent 28%);opacity:0;animation:kb-lx-shade 3.5s both}
.kb-lx-title{position:absolute;left:52%;right:4%;top:0;bottom:0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;opacity:0;animation:kb-lx-title 3.5s cubic-bezier(.2,.8,.2,1) both}
.kb-lx-eyebrow{display:flex;align-items:center;gap:1cqw;margin-bottom:1.6cqw}
.kb-lx-eyebrow em{font-style:normal;padding:.35cqw 1cqw;background:#d4271f;color:#fff;font-size:max(10px,1.2cqw);font-weight:800;letter-spacing:.18em}
.kb-lx-logo{height:2.3cqw;width:auto;filter:brightness(0) invert(1);opacity:.96}
.kb-pip-logo{flex:none;height:1.05cqw;width:auto;filter:brightness(0) invert(1);align-self:center}
.kb-lx-title small{font-size:max(11px,1.35cqw);font-weight:700;letter-spacing:.32em;color:#dbe7ff;text-transform:uppercase}
.kb-lx-title>b{font-size:8.4cqw;line-height:.92;font-weight:900;letter-spacing:-.005em;color:#fff;text-transform:uppercase}
.kb-lx-title>b.is-2{font-size:5.9cqw;letter-spacing:.02em;margin-top:.9cqw}
.kb-lx-rule{display:block;height:.45cqw;width:100%;max-width:36cqw;margin:1.9cqw 0 1.7cqw;background:#fff;transform-origin:0 50%;animation:kb-lx-rule 3.5s cubic-bezier(.2,.8,.2,1) both}
.kb-lx-mission{padding:.8cqw 1.8cqw;background:#0b4fd8;color:#fff;font-size:max(13px,2cqw);font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.kb-lx-meta{margin-top:1.7cqw;font-size:max(11px,1.45cqw);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#c9d6ee}.kb-lx-meta b{color:#fff;font-weight:800}
.kb-lx-credit{position:absolute;left:2.4cqw;bottom:1.6cqw;font-size:max(8px,.8cqw);letter-spacing:.04em;color:rgba(255,255,255,.6);opacity:0;animation:kb-lx-hud 3.5s both}
.kb-lx-wipe{position:absolute;top:0;bottom:0;left:-12%;width:12%;background:linear-gradient(90deg,#0b4fd8,#0b4fd8 82%,#fff 82%);transform:skewX(-14deg);animation:kb-lx-wipe 1.1s .05s cubic-bezier(.7,0,.3,1) both;z-index:4}
@keyframes kb-lx-out{to{opacity:0}}
@keyframes kb-lx-sky{0%{filter:brightness(.45)}55%{filter:brightness(1.15)}100%{filter:brightness(1)}}
@keyframes kb-lx-dusk{0%{opacity:.6}30%{opacity:1}100%{opacity:.5}}
@keyframes kb-lx-glow{0%{opacity:0}26%{opacity:1}70%{opacity:.5}100%{opacity:0}}
@keyframes kb-lx-star{0%,100%{opacity:.15}50%{opacity:.95}}
@keyframes kb-lx-drift{from{transform:translateY(0)}to{transform:translateY(16cqw)}}
@keyframes kb-lx-fall{from{transform:translateY(0)}to{transform:translateY(30cqw)}}
@keyframes kb-lx-blink{50%{opacity:.15}}
@keyframes kb-lx-trail{0%{height:0;opacity:0}12%{opacity:1}100%{height:60cqw;opacity:.5}}
@keyframes kb-lx-smoke{0%{opacity:0;transform:translateX(-50%) scale(.2)}20%{opacity:.95}100%{opacity:0;transform:translateX(-50%) translateY(-1cqw) scale(3.6,2.2)}}
@keyframes kb-lx-smoke-l{0%{opacity:0;transform:translateX(-50%) scale(.2)}20%{opacity:.9}100%{opacity:0;transform:translateX(-130%) scale(3,1.8)}}
@keyframes kb-lx-smoke-r{0%{opacity:0;transform:translateX(-50%) scale(.2)}20%{opacity:.9}100%{opacity:0;transform:translateX(30%) scale(3,1.8)}}
@keyframes kb-lx-climb{0%{transform:translateX(-50%) translateY(0)}20%{transform:translateX(-50%) translateY(-.6cqw)}100%{transform:translateX(-50%) translateY(-62cqw) scale(.8)}}
@keyframes kb-lx-flame{from{transform:translateX(-50%) scaleY(.88) scaleX(.94)}to{transform:translateX(-50%) scaleY(1.08) scaleX(1.04)}}
@keyframes kb-lx-flame-in{0%{opacity:0}12%{opacity:1}100%{opacity:.95}}
@keyframes kb-lx-flash{0%,16%{opacity:0}24%{opacity:.7}42%{opacity:0}100%{opacity:0}}
@keyframes kb-lx-streak{0%{opacity:0;transform:scaleX(.1)}25%{opacity:1}100%{opacity:0;transform:scaleX(1)}}
@keyframes kb-lx-shake{0%,18%{transform:none}22%{transform:translate(.25cqw,.15cqw)}26%{transform:translate(-.3cqw,-.1cqw)}30%{transform:translate(.2cqw,-.2cqw)}34%{transform:translate(-.2cqw,.15cqw)}40%{transform:translate(.12cqw,.08cqw)}50%,100%{transform:none}}
@keyframes kb-lx-hud{0%,6%{opacity:0;transform:translateY(-.8cqw)}16%{opacity:1;transform:none}100%{opacity:1}}
@keyframes kb-lx-title{0%,38%{opacity:0;transform:translateX(3cqw)}58%,100%{opacity:1;transform:none}}
@keyframes kb-lx-rule{0%,48%{transform:scaleX(0)}75%,100%{transform:scaleX(1)}}
@keyframes kb-lx-shade{0%,20%{opacity:0}45%,100%{opacity:1}}
@keyframes kb-lx-push{from{transform:scale(1.02)}to{transform:scale(1.12)}}
@keyframes kb-lx-wipe{0%{left:-14%}100%{left:112%}}
@media (prefers-reduced-motion:reduce){.kb-lx-rocket,.kb-lx-trail,.kb-lx-flash,.kb-lx-smoke,.kb-lx-streak{display:none}}

/* The corner picture's frame: the picture, then a bar of the same width under it carrying the mission and the clock. */
.kb-decks.is-pip .kb-deck:not(.is-front){bottom:7.4cqw;border-bottom:0;border-radius:.25cqw .25cqw 0 0}
.kb-decks.is-pip-expand .kb-deck:not(.is-front){bottom:0;border-radius:0}
.kb-pip-cap{bottom:4.8cqw;height:2.6cqw;align-items:center;padding:0 .9cqw;background:rgba(4,7,14,.92);border:1px solid rgba(255,255,255,.78);border-top:1px solid rgba(255,255,255,.28);border-radius:0 0 .25cqw .25cqw;box-sizing:border-box;box-shadow:0 .5cqw 1.6cqw rgba(0,0,0,.5);gap:.8cqw}
.kb-pip-cap span{flex:1 1 auto;min-width:0}
.kb-pip-cap em{flex:none;margin-left:auto;font-style:normal;font-size:max(9px,1.25cqw);font-weight:800;letter-spacing:.04em;font-variant-numeric:tabular-nums;color:#fff}
.kb-pip-cap em.is-up{color:#6dd6ff}

/* (the separate thin frame element is not used: the corner picture carries its own border) */
.kb-pip-box{display:none}

/* ── Weather report (pages/sl-kbtv-weather.js) ─────────────────────────────── */
.kb-board.wx-wrap{padding:0;background:none}
.wx{position:absolute;inset:0;display:flex;flex-direction:column;padding:max(48px,6.4cqw) 3.6cqw 2.2cqw;overflow:hidden;color:#fff;background:linear-gradient(165deg,#0b1e44 0%,#15407f 48%,#2a6bb8 100%)}
.wx.k-clear{background:linear-gradient(165deg,#0a2a63 0%,#1d5fb4 52%,#4aa3e6 100%)}.wx.k-clear.is-night,.wx.is-night{background:linear-gradient(165deg,#05091d 0%,#0b1d4a 55%,#16346f 100%)}
.wx.k-cloud,.wx.k-fog{background:linear-gradient(165deg,#1a2230 0%,#3b4a63 55%,#6c7c96 100%)}.wx.k-rain{background:linear-gradient(165deg,#0d1624 0%,#233a5c 55%,#3d5f8c 100%)}
.wx.k-storm{background:linear-gradient(165deg,#0a0b17 0%,#2a2347 55%,#4a3b78 100%)}.wx.k-snow{background:linear-gradient(165deg,#1a2a43 0%,#476a99 55%,#9db9d9 100%)}.wx.k-partly{background:linear-gradient(165deg,#0b2452 0%,#2a64a6 55%,#6aa6d8 100%)}
.wx::after{content:"";position:absolute;inset:0;background:radial-gradient(80% 60% at 85% 0%,rgba(255,255,255,.12),transparent 60%);pointer-events:none}
.wx > *{position:relative;z-index:1}
.wx header{display:grid;gap:.9cqw}
.wx h2{margin:0;font-size:5.6cqw;line-height:1;font-weight:800;letter-spacing:-.01em}
.wx-sub{margin:.4cqw 0 0;font-size:1.9cqw;font-weight:550;color:rgba(255,255,255,.78)}
.wx footer{display:flex;justify-content:space-between;margin-top:auto;padding-top:1.2cqw;font-size:max(9px,.9cqw);color:rgba(255,255,255,.7)}
.wx-big{display:flex;align-items:center;gap:3cqw;margin-top:1.6cqw}
.wx-temp{display:block;font-size:17cqw;line-height:.9;font-weight:800;letter-spacing:-.03em;animation:kb-rise .8s var(--d,.2s) var(--sl-ease) both}
.wx-temp sup{font-size:.5em;vertical-align:top;margin-left:.1em}
.wx-cond{display:block;margin-top:.8cqw;font-size:3cqw;font-weight:650;color:rgba(255,255,255,.88);animation:kb-rise .8s calc(var(--d,.2s) + .15s) var(--sl-ease) both}
.wx-stats{display:flex;gap:2cqw;margin:2cqw 0 0;padding:0;list-style:none}
.wx-stats li{display:grid;gap:.3cqw;min-width:12cqw;padding:1.1cqw 1.5cqw;background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);backdrop-filter:blur(.8cqw);animation:kb-rise .7s calc(var(--d,.2s) + .35s) var(--sl-ease) both}
.wx-stats small{font-size:max(9px,1cqw);letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.66)}.wx-stats b{font-size:2.4cqw;font-weight:750}
.wx-alert{display:flex;gap:1.2cqw;align-items:center;margin-top:1.6cqw;padding:.8cqw 1.6cqw;background:#c0281c;font-size:1.9cqw;font-weight:700;width:max-content;max-width:100%}.wx-alert b{padding:.15cqw .7cqw;background:#fff;color:#c0281c;font-size:1.3cqw;letter-spacing:.14em}
.wx-days{display:grid;grid-template-columns:repeat(7,1fr);gap:1cqw;margin:1.8cqw 0 0;padding:0;list-style:none}
.wx-days li{display:grid;justify-items:center;align-content:start;gap:.5cqw;padding:1.3cqw .6cqw 1.1cqw;background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),inset 0 .22cqw 0 rgba(255,255,255,.55);backdrop-filter:blur(.8cqw);animation:kb-card .7s calc(var(--d,.2s) + var(--i) * 90ms) var(--sl-ease) both}
.wx-days b{font-size:1.7cqw;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.wx-days strong{font-size:3.2cqw;font-weight:800}.wx-days span{font-size:1.9cqw;font-weight:600;color:rgba(255,255,255,.68)}
.wx-days em{min-height:1.8cqw;font-size:1.5cqw;font-style:normal;font-weight:700;color:#8fd8ff}.wx-days small{font-size:max(9px,1.15cqw);line-height:1.25;text-align:center;color:rgba(255,255,255,.78)}
.wx-ico{display:block;overflow:visible}
.wx-sun{transform-origin:50px 50px;animation:wx-spin 24s linear infinite}.wx-cloud{animation:wx-drift 6s ease-in-out infinite alternate}
.wx-drop{animation:wx-fall .9s linear infinite}.wx-flake{animation:wx-flake 2.2s linear infinite}.wx-bolt{animation:wx-bolt 2.4s infinite}.wx-fog{animation:wx-fogm 3s ease-in-out infinite alternate}.wx-gust{stroke-dasharray:80;animation:wx-gust 1.6s ease-in-out infinite}
@keyframes wx-spin{to{transform:rotate(360deg)}}@keyframes wx-drift{to{transform:translateX(4px)}}
@keyframes wx-fall{0%{transform:translateY(-4px);opacity:0}25%{opacity:1}100%{transform:translateY(12px);opacity:0}}@keyframes wx-flake{0%{transform:translateY(-4px);opacity:0}30%{opacity:1}100%{transform:translateY(14px);opacity:0}}
@keyframes wx-bolt{0%,68%,100%{opacity:.25}72%,78%{opacity:1}75%{opacity:.4}}@keyframes wx-fogm{to{transform:translateX(7px)}}@keyframes wx-gust{0%{stroke-dashoffset:80}100%{stroke-dashoffset:-80}}
.wx-radar{position:relative;flex:1 1 auto;min-height:0;margin-top:1.4cqw;box-shadow:inset 0 0 0 1px rgba(255,255,255,.2),0 0 3cqw rgba(0,0,0,.5);overflow:hidden;animation:kb-rise .7s calc(var(--d,.2s) + .1s) var(--sl-ease) both}
.wx-radar canvas{display:block;width:100%;height:100%}
.wx-legend{position:absolute;right:1.2cqw;top:1.2cqw;display:grid;gap:.5cqw;margin:0;padding:.9cqw 1.2cqw;list-style:none;background:rgba(5,8,16,.82);font-size:max(9px,1.05cqw);font-weight:650}.wx-legend li{display:flex;align-items:center;gap:.7cqw}.wx-legend i{width:1.5cqw;height:.7cqw;border-radius:.15cqw}
.wx-credit{position:absolute;right:1.2cqw;bottom:.8cqw;font-size:max(8px,.8cqw);color:rgba(255,255,255,.75);text-shadow:0 0 .6cqw #000}
.wx-cols{display:grid;grid-template-columns:1fr 1fr;gap:2cqw;margin-top:2cqw}
.wx-col{display:grid;grid-template-columns:auto 1fr;gap:.4cqw 1.6cqw;align-items:center;padding:1.5cqw 2cqw;background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),inset 0 .22cqw 0 rgba(255,255,255,.55);animation:kb-card .7s calc(var(--d,.2s) + var(--i) * 120ms) var(--sl-ease) both}
.wx-col .wx-ico{grid-row:1 / span 2}.wx-col b{align-self:end;font-size:2.6cqw}.wx-col p{margin:0;align-self:start;font-size:1.75cqw;line-height:1.35;color:rgba(255,255,255,.88);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.wx-hours{display:flex;gap:1.2cqw;margin-top:1.8cqw}.wx-hours span{display:grid;justify-items:center;gap:.3cqw;flex:1;padding:.8cqw 0;background:rgba(255,255,255,.08)}.wx-hours small{font-size:1.2cqw;color:rgba(255,255,255,.7)}.wx-hours b{font-size:2cqw}
.wx-wait{align-items:center;justify-content:center}.wx-load{font-size:2.4cqw;font-weight:650;opacity:.85}
@media (prefers-reduced-motion:reduce){.wx-sun,.wx-cloud,.wx-drop,.wx-flake,.wx-bolt,.wx-fog,.wx-gust{animation:none}}

/* A briefing or promo keeps the studio to itself too: the studio's video wall (the live picture) never shows through behind a board; it only appears during the transitions themselves. */
.kb-stage.is-brief:not(.is-fx):not(.is-clip) .kb-pic{visibility:hidden!important}

/* weather: the current-conditions part must fit above the ticker */
.wx-big{margin-top:.4cqw;gap:2.4cqw}.wx-temp{font-size:13.5cqw}.wx-cond{font-size:2.6cqw}.wx-big .wx-ico{width:15cqw;height:15cqw}
.wx-stats{margin-top:1.2cqw}.wx-stats li{padding:.8cqw 1.3cqw;min-width:10.5cqw}.wx-stats b{font-size:2.1cqw}
.wx h2{font-size:5cqw}
.kb-board.wx-wrap > .wx.wx{position:absolute;inset:0}

/* Admin → kbTV → Tests */
.kba-test{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--sl-line);border-radius:10px;border-left:3px solid var(--sl-line)}
.kba-test.is-pass{border-left-color:#1f9d55}.kba-test.is-fail{border-left-color:#d4271f}.kba-test.is-run{border-left-color:#0b6bff}
.kba-test-h{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.kba-test-h b{display:block;font-weight:700}.kba-test-h small{display:block;margin-top:2px;max-width:60ch;color:var(--sl-muted,#667)}
.kba-test-r{display:flex;gap:10px;align-items:center}
.kba-test-steps{list-style:none;margin:0;padding:0;display:grid;gap:3px;font-size:13px}
.kba-test-steps li{display:flex;gap:8px}.kba-test-steps li span:first-child{flex:none;width:1.2em;font-weight:800}
.kba-test-steps li.is-ok span:first-child{color:#1f9d55}.kba-test-steps li.is-no{color:#b3201a;font-weight:600}.kba-test-steps li.is-no span:first-child{color:#d4271f}
.kba-test-steps em{font-style:normal;font-weight:400;opacity:.85}
.kba-test-ms{color:var(--sl-muted,#667)}

/* A short list (three headlines) fills the board in larger type instead of huddling in the left half. */
.kb-items:not(.is-many){max-width:90%;gap:2.4cqw;margin-top:auto;margin-bottom:auto}
.kb-items:not(.is-many) li{grid-template-columns:4.4cqw minmax(0,1fr);column-gap:1.8cqw}
.kb-items:not(.is-many) li::before{height:4.4cqw;font-size:max(13px,2.4cqw)}
.kb-items:not(.is-many) b{font-size:max(14px,2.9cqw);line-height:1.18}
.kb-items:not(.is-many) small{font-size:max(10px,1.25cqw)}

.kb-t0-brk{font-style:normal;font-size:max(8px,.85cqw);letter-spacing:.14em;text-transform:uppercase;color:#ffc65c;margin-left:.4cqw}

.kb-brk-chip{position:absolute;right:1.7cqw;bottom:4.8cqw;z-index:6;padding:.7cqw 1.5cqw;background:rgba(5,8,16,.82);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);font-size:max(10px,1.2cqw);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#ffc65c}
/* The "now" weather screen spans the frame: the temperature on the left, the big condition picture on the right, the four facts across the bottom. */
.wx-now .wx-big{flex-direction:row-reverse;justify-content:space-between;padding:0 6cqw 0 1cqw;margin-top:1cqw}
.wx-now .wx-big .wx-ico{width:22cqw;height:22cqw}
.wx-now .wx-temp{font-size:16cqw}.wx-now .wx-cond{font-size:3.2cqw}
.wx-now .wx-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:2cqw;margin:auto 0 1.4cqw;width:100%}
.wx-now .wx-stats li{min-width:0;padding:1.3cqw 1.8cqw}.wx-now .wx-stats b{font-size:2.8cqw}.wx-now .wx-stats small{font-size:max(10px,1.15cqw)}
/* Phone width (the screen under about 560px wide): boards stack in a column, figures wrap onto their own lines, nothing overlaps. */
@container (max-width: 560px){
  .kb-board{padding:max(60px,15cqw) 4.5cqw 3cqw}
  .kb-board h2{font-size:max(24px,8.5cqw)}
  .kb-hero{max-width:100%;grid-template-columns:1fr;gap:3cqw;margin-top:3cqw}
  .kb-hero-n b{font-size:max(38px,16cqw)}
  .kb-hero-n em{font-size:13px}
  .kb-line{height:34cqw;padding-top:11cqw}
  .kb-line figcaption{flex-wrap:wrap;white-space:normal;gap:0 2.4cqw;font-size:10.5px;line-height:1.25}
  .kb-line-tag,.kb-line-x,.kb-line-end small{font-size:9.5px}
  .kb-line-end b{font-size:14px}
  .kb-cards.is-row{max-width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:3cqw 0;margin-top:4cqw}
  .kb-cards.is-row .kb-card{padding:1.5cqw 2.2cqw .6cqw 0}.kb-cards.is-row .kb-card + .kb-card{padding-left:2.2cqw}
  .kb-cards.is-row .kb-card:nth-child(3n+1){padding-left:0;box-shadow:none}
  .kb-card-l{font-size:9.5px}.kb-cards.is-row .kb-card b{font-size:15px}.kb-cards.is-row .kb-card em{font-size:10px}.kb-card small{font-size:9px}
  .kb-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:3cqw}.kb-card b{font-size:22px}
  .kb-bars{max-width:100%;gap:3.2cqw}.kb-barrow{grid-template-columns:29cqw minmax(0,1fr) 13cqw;font-size:13px;gap:2cqw}
  .kb-time{grid-template-columns:1fr;gap:4cqw;padding:0 0 0 7cqw;max-width:100%}
  .kb-time::before{left:1.4cqw;right:auto;top:1cqw;bottom:1cqw;width:max(2px,.5cqw);height:auto;background:linear-gradient(180deg,var(--kb-a),rgba(255,255,255,.25));transform-origin:50% 0}
  .kb-time li i{left:-6.9cqw;top:.6cqw;width:3.2cqw;height:3.2cqw}
  .kb-time small{font-size:10px}.kb-time b{font-size:15px}
  .kb-items{max-width:100%;gap:3.2cqw}.kb-items:not(.is-many){max-width:100%;gap:3.6cqw}
  .kb-items b,.kb-items:not(.is-many) b{font-size:15px}.kb-items small,.kb-items:not(.is-many) small{font-size:10px}
  .kb-items li,.kb-items:not(.is-many) li{grid-template-columns:9cqw minmax(0,1fr);column-gap:3cqw}.kb-items li::before,.kb-items:not(.is-many) li::before{height:9cqw;font-size:13px}
  .wx{padding:max(60px,15cqw) 4.5cqw 3cqw}.wx-now .wx-big{padding:0}.wx-now .wx-big .wx-ico{width:30cqw;height:30cqw}.wx-now .wx-temp{font-size:24cqw}.wx-now .wx-cond{font-size:5cqw}
  .wx-now .wx-stats{grid-template-columns:repeat(2,1fr);gap:3cqw}.wx-now .wx-stats b{font-size:5cqw}
  .wx-days{overflow-x:auto}
}
/* On a phone held upright the picture area is taller than 16:9 (the boards need the room); a live video simply sits letterboxed in it. */
@media (max-width:560px){.kb-win{aspect-ratio:4/5}.kb-stage:fullscreen .kb-win{aspect-ratio:auto}}
/* A promo (a launch coming up, delayed or scrubbed; a special coming up): the time is the headline, the explanation a readable paragraph under it, not a chip. */
.kb-board[data-type="promo"] .kb-board-lead{margin-top:2cqw;font-size:max(16px,3.4cqw);font-weight:700;letter-spacing:-.01em}
.kb-board[data-type="promo"] .kb-board-lead small{display:block;max-width:64%;margin:2cqw 0 0;padding:0;background:none;color:rgba(255,255,255,.82);font-size:max(12px,2cqw);font-weight:500;letter-spacing:0;line-height:1.4;vertical-align:baseline}
@container (max-width: 560px){.kb-board[data-type="promo"] .kb-board-lead{font-size:20px}.kb-board[data-type="promo"] .kb-board-lead small{max-width:100%;font-size:14px}}

/* Captions: auto-generated from the words heard, two lines at most, above the lower third. */
.kb-cc{position:absolute;left:50%;bottom:11.5cqw;z-index:7;transform:translateX(-50%);max-width:72%;text-align:center;pointer-events:none}
.kb-cc span{display:inline-block;padding:.5cqw 1.4cqw;background:rgba(0,0,0,.74);color:#fff;font-size:max(13px,2.1cqw);line-height:1.3;font-weight:600;letter-spacing:.005em;border-radius:.3cqw}
.kb-ccbtn{font-size:11px;font-weight:800;letter-spacing:.04em;min-width:36px}.kb-ccbtn.is-on{background:#fff;color:#0b0c10}
@container (max-width:560px){.kb-cc{bottom:20cqw;max-width:92%}.kb-cc span{font-size:14px}}

/* Weather warnings for the viewer's own area. The radar fills the picture; a slanted red banner carries the warning; the ticker stays visible and keeps the warning afterwards. */
.kb-alert{position:absolute;left:0;right:0;top:0;bottom:max(28px,3.3cqw);z-index:5;overflow:hidden;color:#fff;background:#05080f;animation:kb-alert-in .7s cubic-bezier(.3,.7,.2,1) both}
.kb-alert.is-out{animation:kb-alert-out .6s cubic-bezier(.6,0,.4,1) forwards}
@keyframes kb-alert-in{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes kb-alert-out{from{clip-path:inset(0 0 0 0)}to{clip-path:inset(0 0 0 100%)}}
.kb-alert-wipe{position:absolute;top:-5%;bottom:-5%;width:34%;left:-40%;z-index:6;background:linear-gradient(100deg,transparent,#e1140a 30%,#ff3b2a 60%,transparent);transform:skewX(-16deg);animation:kb-alert-sweep .9s cubic-bezier(.4,0,.2,1) both}
.kb-alert.is-out .kb-alert-wipe{animation:kb-alert-sweep-out .65s cubic-bezier(.4,0,.2,1) both}
@keyframes kb-alert-sweep{from{left:-40%}to{left:120%}}@keyframes kb-alert-sweep-out{from{left:120%}to{left:-40%}}
.kb-alert-map{position:absolute;inset:0}.kb-alert-map .wx-radar{position:absolute;inset:0;margin:0;box-shadow:none;animation:none}.kb-alert-map .wx-legend,.kb-alert-map .wx-credit{display:none}
.kb-alert-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,5,12,.82) 0,rgba(2,5,12,.25) 30%,rgba(2,5,12,.2) 58%,rgba(2,5,12,.86) 100%),radial-gradient(ellipse at 50% 55%,transparent 45%,rgba(0,0,0,.5) 100%)}
.kb-alert-top{position:absolute;left:3cqw;right:3cqw;top:max(46px,5.4cqw);display:flex;align-items:stretch;height:8.2cqw;animation:kb-alert-drop .6s .35s cubic-bezier(.2,.8,.2,1) both}
@keyframes kb-alert-drop{from{opacity:0;transform:translateY(-1.6cqw)}}
.kb-alert-tab{display:flex;align-items:center;padding:0 3.2cqw 0 2.4cqw;background:#fff;color:#c4000d;font:800 1.7cqw/1 "Inter",sans-serif;letter-spacing:.14em;clip-path:polygon(0 0,calc(100% - 1.8cqw) 0,100% 100%,0 100%);margin-right:-1.2cqw;position:relative;z-index:2}
.kb-alert-title{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:2cqw;padding:0 3.6cqw 0 3.4cqw;background:linear-gradient(180deg,rgba(255,255,255,.2) 0,transparent 40%),linear-gradient(100deg,#7a0008,#e1140a 40%,#a8000d);clip-path:polygon(1.8cqw 0,100% 0,calc(100% - 1.8cqw) 100%,0 100%);box-shadow:0 1cqw 2.4cqw rgba(0,0,0,.5)}
.kb-alert-title b{font:800 4.6cqw/1 "Barlow Semi Condensed","Inter",sans-serif;letter-spacing:.015em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 .2cqw .6cqw rgba(0,0,0,.45)}
.kb-alert.is-long .kb-alert-title b{font-size:3.25cqw}
.kb-alert-title span{flex:none;font:500 2cqw/1 "Inter",sans-serif;color:rgba(255,255,255,.9);white-space:nowrap}.kb-alert-title strong{font-weight:800}
.kb-alert-testtag{position:absolute;right:0;top:100%;margin-top:1cqw;padding:.7cqw 1.8cqw;background:#ffb300;color:#1a1208;font:800 1.45cqw/1 "Inter",sans-serif;letter-spacing:.1em;clip-path:polygon(1cqw 0,100% 0,100% 100%,0 100%)}
.kb-alert-panel{position:absolute;left:3cqw;bottom:2.6cqw;width:46cqw;display:grid;gap:1.4cqw;animation:kb-alert-rise .6s .55s cubic-bezier(.2,.8,.2,1) both}
@keyframes kb-alert-rise{from{opacity:0;transform:translateY(2cqw)}}
.kb-alert-where,.kb-alert-instr{padding:1.4cqw 2cqw;background:rgba(8,12,22,.84);-webkit-backdrop-filter:blur(1cqw);backdrop-filter:blur(1cqw);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16),inset .4cqw 0 0 #e1140a}
.kb-alert-where small,.kb-alert-instr small{display:block;font:700 1.05cqw/1 "Inter",sans-serif;letter-spacing:.18em;color:#ff8a80;margin-bottom:.7cqw}
.kb-alert-where b{display:block;font:700 2.5cqw/1.15 "Inter",sans-serif;letter-spacing:-.01em}.kb-alert-where em{display:block;margin-top:.4cqw;font:500 1.4cqw "Inter",sans-serif;font-style:normal;color:rgba(255,255,255,.75)}
.kb-alert-instr{margin:0;font:600 2.1cqw/1.3 "Inter",sans-serif}
@container (max-width:560px){.kb-alert-top{left:3cqw;right:3cqw;height:14cqw;top:max(52px,14cqw)}.kb-alert-title b{font-size:6.4cqw}.kb-alert.is-long .kb-alert-title b{font-size:5cqw}.kb-alert-title span{display:none}.kb-alert-tab{font-size:3cqw}.kb-alert-panel{left:3cqw;right:3cqw;width:auto}.kb-alert-where b{font-size:5cqw}.kb-alert-instr{font-size:4cqw}.kb-alert-where small,.kb-alert-instr small{font-size:2.4cqw}.kb-alert-testtag{font-size:2.6cqw}}
/* the warning, kept in the ticker for as long as it lasts */
.kb-tick-warn{position:relative;z-index:4;display:flex;flex:none;align-items:center;gap:.8cqw;padding:0 1.4cqw 0 1.1cqw;background:linear-gradient(100deg,#8f0710,#e1140a);color:#fff;font-size:max(11px,1.26cqw);white-space:nowrap;animation:kb-warn-in .7s .5s cubic-bezier(.2,.8,.2,1) both}
.kb-tick-warn i{width:.8cqw;height:.8cqw;min-width:7px;min-height:7px;border-radius:50%;background:#fff;animation:kb-pulse 1s ease-in-out infinite}.kb-tick-warn b{font-weight:800;letter-spacing:.08em;text-transform:uppercase}.kb-tick-warn span{font-weight:600;opacity:.92}
.kb-tick-warn.is-test{background:repeating-linear-gradient(135deg,#c98a00 0 .9cqw,#1a1208 .9cqw 1.8cqw)}.kb-tick-warn.is-test b{background:#1a1208;padding:.2cqw .6cqw}
@keyframes kb-warn-in{from{transform:translateX(-100%)}}
.kb-alert,.kb-alert *{pointer-events:none;cursor:default}
@media (prefers-reduced-motion:reduce){.kb-alert,.kb-alert-wipe,.kb-tick-warn i,.kb-tick-warn{animation:none}.kb-alert-wipe{display:none}}
