/* Gaston News Service 5.14.3: browser-side full-screen visual director.
   These rules do not alter the ordinary embedded dashboard. */
.gnr-fx-canvas,
.gnr-fx-vignette,
.gnr-kinetic-caption,
.gnr-scene-chip,
.gnr-audio-meter {
    display: none;
}

.gnr-symbol-panel,
.gnr-type-panel,
.gnr-data-panel,
.gnr-story-source-panel {
    color: #fff;
    overflow: hidden;
}

.gnr-symbol-panel {
    display: grid;
    place-items: center;
    padding: 10vh 7vw 21vh;
    background:
        radial-gradient(circle at 50% 38%, rgba(57, 104, 143, .72), transparent 42%),
        linear-gradient(145deg, #07131e, #102b42 48%, #071019);
}
.gnr-symbol-stage {
    width: min(1440px, 92vw);
    display: grid;
    grid-template-columns: repeat(var(--gnr-symbol-columns, 4), minmax(0, 1fr));
    align-items: end;
    justify-items: center;
    gap: clamp(18px, 3vw, 56px);
}
.gnr-symbol-actor {
    position: relative;
    display: grid;
    place-items: center;
    min-width: 0;
    transform-origin: 50% 100%;
    filter: drop-shadow(0 20px 35px rgba(0, 0, 0, .36));
}
.gnr-symbol-actor .gnr-symbol-glyph {
    font-size: clamp(80px, 10vw, 180px);
    line-height: 1;
}
.gnr-symbol-actor .gnr-symbol-role {
    margin-top: 12px;
    max-width: 19ch;
    font-size: clamp(15px, 1.35vw, 25px);
    font-weight: 850;
    line-height: 1.12;
    text-align: center;
    overflow-wrap: anywhere;
}
.gnr-symbol-panel[data-tone="light"] .gnr-symbol-actor:nth-child(odd) {
    animation: gnrSymbolFloatA 4.8s ease-in-out infinite;
}
.gnr-symbol-panel[data-tone="light"] .gnr-symbol-actor:nth-child(even) {
    animation: gnrSymbolFloatB 5.4s ease-in-out infinite;
}
.gnr-symbol-panel[data-tone="serious"] .gnr-symbol-glyph {
    filter: grayscale(1) contrast(1.12);
    opacity: .88;
}
.gnr-symbol-panel[data-tone="serious"] .gnr-symbol-stage {
    gap: clamp(22px, 4vw, 76px);
}
.gnr-symbol-panel[data-tone="serious"] .gnr-symbol-actor {
    animation: none;
}
.gnr-symbol-headline {
    position: absolute;
    left: 7vw;
    right: 7vw;
    top: 12vh;
    text-align: center;
    font-size: clamp(28px, 3.4vw, 60px);
    font-weight: 950;
    line-height: 1.05;
    text-wrap: balance;
}

.gnr-type-panel {
    display: grid;
    place-items: center;
    padding: 10vh 7vw 21vh;
    background:
        linear-gradient(115deg, rgba(181, 31, 43, .88), rgba(14, 29, 42, .96) 42%, rgba(5, 12, 19, .98)),
        repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 1px, transparent 1px 72px);
}
.gnr-type-stage {
    width: min(1500px, 92vw);
    text-align: center;
}
.gnr-type-kicker {
    font-size: clamp(13px, 1.2vw, 22px);
    font-weight: 900;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: #b7d7ed;
}
.gnr-type-line {
    margin-top: clamp(15px, 2vh, 30px);
    font-size: clamp(48px, 6.5vw, 118px);
    font-weight: 1000;
    line-height: .96;
    letter-spacing: -.035em;
    text-wrap: balance;
}
.gnr-type-line .gnr-type-word {
    display: inline-block;
    margin: 0 .08em .09em;
    opacity: .35;
    transform: translateY(.24em) scale(.96);
    transition: opacity .45s ease, transform .55s cubic-bezier(.2,.85,.2,1), color .35s ease;
}
.gnr-type-line .gnr-type-word.is-emphasized {
    opacity: 1;
    transform: translateY(0) scale(1.04);
    color: #fff;
}
.gnr-type-context {
    margin: clamp(15px, 2.2vh, 32px) auto 0;
    width: min(1050px, 82vw);
    font-size: clamp(18px, 1.6vw, 30px);
    line-height: 1.3;
    color: #c8d7e2;
}

.gnr-data-panel {
    display: grid;
    place-items: center;
    padding: 10vh 7vw 21vh;
    background:
        radial-gradient(circle at 18% 20%, rgba(37, 98, 139, .52), transparent 34%),
        linear-gradient(135deg, #061019, #0e2638 55%, #291219);
}
.gnr-data-stage {
    width: min(1500px, 92vw);
}
.gnr-data-title {
    text-align: center;
    font-size: clamp(25px, 3vw, 52px);
    font-weight: 950;
    line-height: 1.08;
}
.gnr-data-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(280px, 38vw), 1fr));
    gap: clamp(16px, 2vw, 30px);
    margin-top: clamp(24px, 4vh, 50px);
}
.gnr-data-card {
    min-width: 0;
    padding: clamp(18px, 2vw, 30px);
    border: 1px solid rgba(197, 224, 243, .25);
    border-left: 7px solid #c52a38;
    border-radius: 12px;
    background: rgba(2, 10, 16, .64);
    box-shadow: 0 18px 55px rgba(0,0,0,.28);
}
.gnr-data-value {
    font-size: clamp(42px, 5vw, 92px);
    font-weight: 1000;
    line-height: .98;
    overflow-wrap: anywhere;
}
.gnr-data-context {
    margin-top: 12px;
    font-size: clamp(16px, 1.45vw, 27px);
    line-height: 1.25;
    color: #cbd8e2;
}

.gnr-story-source-panel {
    display: grid;
    place-items: center;
    padding: 10vh 7vw 21vh;
    background:
        radial-gradient(circle at 50% 50%, rgba(30, 88, 126, .42), transparent 48%),
        linear-gradient(135deg, #061019, #0c2130 58%, #07111a);
}
.gnr-story-source-stage {
    position: relative;
    width: min(1450px, 91vw);
    height: min(540px, 54vh);
}
.gnr-story-source-svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
}
.gnr-story-source-svg line {
    stroke: rgba(154, 205, 239, .45);
    stroke-width: 2;
    stroke-dasharray: 8 10;
    animation: gnrSourceDash 12s linear infinite;
}
.gnr-story-source-center,
.gnr-story-source-node {
    position: absolute;
    display: grid;
    place-items: center;
    text-align: center;
    border-radius: 999px;
    border: 1px solid rgba(190, 224, 247, .34);
    background: rgba(4, 15, 23, .88);
    box-shadow: 0 14px 45px rgba(0,0,0,.35);
    font-weight: 900;
    overflow-wrap: anywhere;
}
.gnr-story-source-center {
    left: 50%;
    top: 50%;
    width: clamp(180px, 18vw, 310px);
    aspect-ratio: 1;
    transform: translate(-50%, -50%);
    padding: 22px;
    font-size: clamp(18px, 1.8vw, 32px);
    border-color: rgba(255, 138, 151, .7);
    background: linear-gradient(145deg, rgba(146, 25, 37, .92), rgba(24, 35, 46, .95));
}
.gnr-story-source-node {
    width: clamp(120px, 12vw, 210px);
    min-height: clamp(70px, 7vw, 118px);
    padding: 12px 16px;
    font-size: clamp(14px, 1.25vw, 23px);
}
.gnr-story-source-caption {
    position: absolute;
    left: 50%;
    bottom: -5vh;
    transform: translateX(-50%);
    width: min(1200px, 86vw);
    text-align: center;
    font-size: clamp(17px, 1.5vw, 28px);
    color: #bfd2df;
}

.gnr-visual-tile:fullscreen .gnr-fx-canvas,
.gnr-visual-tile:fullscreen .gnr-fx-vignette,
.gnr-visual-tile:fullscreen .gnr-kinetic-caption,
.gnr-visual-tile:fullscreen .gnr-scene-chip,
.gnr-visual-tile:fullscreen .gnr-audio-meter {
    display: block;
}
.gnr-visual-tile:fullscreen .gnr-fx-canvas {
    position: absolute;
    inset: 0;
    z-index: 8;
    width: 100%;
    height: 100%;
    pointer-events: none;
    opacity: .72;
}
.gnr-visual-tile:fullscreen .gnr-fx-vignette {
    position: absolute;
    inset: 0;
    z-index: 9;
    pointer-events: none;
    background:
        radial-gradient(circle at 50% 45%, transparent 44%, rgba(0,0,0,.28) 100%),
        linear-gradient(90deg, rgba(0,0,0,.22), transparent 17%, transparent 83%, rgba(0,0,0,.22));
}
.gnr-visual-tile:fullscreen .gnr-scene-chip {
    position: absolute;
    z-index: 48;
    left: var(--gnr-tv-edge, 28px);
    top: calc(var(--gnr-tv-edge, 24px) + var(--gnr-tv-top-control-height,54px) + 12px);
    max-width: min(44vw, 720px);
    padding: 7px 11px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 5px;
    background: rgba(2,8,13,.62);
    color: #bed4e3;
    font-size: clamp(10px, .9vw, 15px);
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
    opacity: .86;
}
.gnr-visual-tile:fullscreen .gnr-kinetic-caption {
    position: absolute;
    z-index: 46;
    left: 50%;
    bottom: clamp(186px, 22vh, 245px);
    transform: translateX(-50%);
    width: min(1320px, 86vw);
    padding: 11px 17px;
    border-radius: 8px;
    background: rgba(1, 7, 11, .72);
    color: #fff;
    text-align: center;
    font-size: clamp(20px, 2vw, 37px);
    font-weight: 850;
    line-height: 1.18;
    text-shadow: 0 2px 7px #000;
    opacity: 0;
    transition: opacity .2s linear, transform .28s ease;
    pointer-events: none;
}
.gnr-visual-tile:fullscreen .gnr-kinetic-caption.is-visible {
    opacity: 1;
    transform: translate(-50%, -2px);
}
.gnr-visual-tile:fullscreen .gnr-audio-meter {
    position: absolute;
    z-index: 49;
    left: var(--gnr-tv-edge, 28px);
    bottom: clamp(51px, 6vh, 66px);
    width: min(310px, 23vw);
    height: 28px;
    opacity: .72;
    pointer-events: none;
}
.gnr-audio-meter span {
    display: inline-block;
    width: calc(100% / 18 - 4px);
    margin: 0 2px;
    height: 18%;
    vertical-align: bottom;
    border-radius: 2px 2px 0 0;
    background: rgba(190, 224, 247, .85);
    transform-origin: 50% 100%;
}

.gnr-visual-tile:fullscreen[data-gnr-theme="weather"] .gnr-tv-shell { background: #071825; }
.gnr-visual-tile:fullscreen[data-gnr-theme="business"] .gnr-tv-shell { background: #071610; }
.gnr-visual-tile:fullscreen[data-gnr-theme="science"] .gnr-tv-shell { background: #081426; }
.gnr-visual-tile:fullscreen[data-gnr-theme="politics"] .gnr-tv-shell { background: #1a1014; }
.gnr-visual-tile:fullscreen[data-gnr-theme="human"] .gnr-tv-shell { background: #17130d; }
.gnr-visual-tile:fullscreen[data-gnr-camera="close"] .gnr-avatar-image { transform: scale(1.035); }
.gnr-visual-tile:fullscreen[data-gnr-camera="drift-left"] .gnr-avatar-image { transform: scale(1.045) translateX(-1.3%); }
.gnr-visual-tile:fullscreen[data-gnr-camera="drift-right"] .gnr-avatar-image { transform: scale(1.045) translateX(1.3%); }
.gnr-visual-tile:fullscreen .gnr-avatar-image {
    transition: transform 8s ease, filter .7s ease;
    will-change: transform, filter;
}
.gnr-visual-tile:fullscreen.is-speaking .gnr-lower-third {
    animation: gnrLowerThirdSettle .62s cubic-bezier(.2,.8,.2,1) both;
}
.gnr-visual-tile:fullscreen.is-speaking .gnr-report-bug {
    animation: gnrReportBugPulse 4s ease-in-out infinite;
}
.gnr-visual-tile:fullscreen[data-gnr-scene="symbols"] .gnr-lower-third,
.gnr-visual-tile:fullscreen[data-gnr-scene="type"] .gnr-lower-third,
.gnr-visual-tile:fullscreen[data-gnr-scene="data"] .gnr-lower-third,
.gnr-visual-tile:fullscreen[data-gnr-scene="story-sources"] .gnr-lower-third {
    background: linear-gradient(90deg, rgba(98,17,27,.92), rgba(9,20,29,.88) 58%, rgba(5,12,18,.84));
}

@keyframes gnrSymbolFloatA {
    0%,100% { transform: translateY(0) rotate(-1deg); }
    50% { transform: translateY(-12px) rotate(1deg); }
}
@keyframes gnrSymbolFloatB {
    0%,100% { transform: translateY(-4px) rotate(1deg); }
    50% { transform: translateY(9px) rotate(-1deg); }
}
@keyframes gnrSourceDash { to { stroke-dashoffset: -180; } }
@keyframes gnrLowerThirdSettle {
    from { transform: translateY(22px); opacity: .2; }
    to { transform: translateY(0); opacity: 1; }
}
@keyframes gnrReportBugPulse {
    0%,100% { box-shadow: 0 0 0 rgba(255,255,255,0); }
    50% { box-shadow: 0 0 22px rgba(147,207,244,.15); }
}

@media (max-width: 760px) {
    .gnr-symbol-stage { --gnr-symbol-columns: 3 !important; }
    .gnr-symbol-actor .gnr-symbol-glyph { font-size: clamp(62px, 18vw, 115px); }
    .gnr-visual-tile:fullscreen .gnr-kinetic-caption { bottom: 190px; font-size: clamp(17px, 4vw, 28px); }
    .gnr-story-source-stage { height: 46vh; }
}

@media (prefers-reduced-motion: reduce) {
    .gnr-symbol-actor,
    .gnr-story-source-svg line,
    .gnr-visual-tile:fullscreen .gnr-report-bug,
    .gnr-visual-tile:fullscreen.is-speaking .gnr-lower-third {
        animation: none !important;
    }
    .gnr-type-line .gnr-type-word,
    .gnr-visual-tile:fullscreen .gnr-avatar-image {
        transition: none !important;
    }
    .gnr-fx-canvas { display: none !important; }
}

/* 5.13.8 evidence-first additions. */
.gnr-data-kind {
    margin-top: 8px;
    font-size: clamp(10px, .85vw, 15px);
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #9fc4dc;
}
.gnr-story-source-node small {
    display: block;
    margin-top: 5px;
    font-size: .68em;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #a9c7da;
}
.gnr-map-label {
    border: 1px solid rgba(255,255,255,.5) !important;
    border-radius: 6px !important;
    background: rgba(2,8,13,.9) !important;
    color: #fff !important;
    box-shadow: 0 8px 26px rgba(0,0,0,.45) !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
    padding: 7px 9px !important;
    text-align: center !important;
}
.gnr-map-label:before { display: none !important; }
.gnr-visual-tile:fullscreen .gnr-map-label {
    font-size: clamp(13px, 1.05vw, 20px) !important;
    padding: 9px 12px !important;
}
.gnr-visual-tile:fullscreen[data-gnr-tone="sensitive"] .gnr-fx-canvas { opacity: .28; }
.gnr-visual-tile:fullscreen[data-gnr-tone="sensitive"] .gnr-report-bug { animation: none; }
.gnr-visual-tile:fullscreen[data-gnr-tone="sensitive"] .gnr-scene-chip {
    color: #d7e1e8;
    background: rgba(2,8,13,.78);
}

/* 5.13.9 text-safe full-screen layout.
   Full-screen uses four non-overlapping vertical zones:
   top controls, visual stage, caption rail, and lower information stack. */
.gnr-caption-rail,
.gnr-caption-label,
.gnr-story-source-list,
.gnr-story-source-header,
.gnr-story-source-number {
    display: none;
}

.gnr-visual-tile:fullscreen {
    --gnr-crawl-h: clamp(38px, 4.7vh, 48px);
    --gnr-progress-h: 4px;
    --gnr-lower-h: clamp(128px, 15.8vh, 168px);
    --gnr-caption-h: clamp(58px, 8.4vh, 82px);
    --gnr-zone-gap: clamp(8px, 1vh, 14px);
    --gnr-content-top: clamp(96px, 11.5vh, 126px);
    --gnr-content-bottom: calc(var(--gnr-crawl-h) + var(--gnr-progress-h) + var(--gnr-lower-h) + var(--gnr-caption-h) + var(--gnr-zone-gap) * 2);
}

/* The visual stage ends before the caption and lower-third zones begin. */
.gnr-visual-tile:fullscreen .gnr-panel {
    inset: var(--gnr-content-top) 0 var(--gnr-content-bottom) 0;
    width: auto;
    height: auto;
    max-height: none;
    overflow: hidden;
}
.gnr-visual-tile:fullscreen .gnr-source-panel,
.gnr-visual-tile:fullscreen .gnr-card-panel,
.gnr-visual-tile:fullscreen .gnr-emoji-panel,
.gnr-visual-tile:fullscreen .gnr-symbol-panel,
.gnr-visual-tile:fullscreen .gnr-type-panel,
.gnr-visual-tile:fullscreen .gnr-data-panel,
.gnr-visual-tile:fullscreen .gnr-story-source-panel {
    padding: clamp(16px, 2.2vh, 30px) var(--gnr-tv-safe-x);
}
.gnr-visual-tile:fullscreen .gnr-map-credit {
    bottom: clamp(10px, 1.4vh, 18px);
}

/* Short, single-line scene label. Long editorial reasons remain in title/audit. */
.gnr-visual-tile:fullscreen .gnr-scene-chip {
    top: calc(var(--gnr-tv-edge, 24px) + var(--gnr-tv-top-control-height, 54px) + 10px);
    max-width: min(40vw, 560px);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    padding: 6px 10px;
}

/* Dedicated caption rail: it never shares coordinates with scene text or lower thirds. */
.gnr-visual-tile:fullscreen .gnr-caption-rail {
    position: absolute;
    z-index: 52;
    left: var(--gnr-tv-safe-x);
    right: var(--gnr-tv-safe-x);
    bottom: calc(var(--gnr-crawl-h) + var(--gnr-progress-h) + var(--gnr-lower-h) + var(--gnr-zone-gap));
    height: var(--gnr-caption-h);
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    align-items: center;
    gap: clamp(10px, 1.2vw, 20px);
    padding: 0 clamp(14px, 1.5vw, 24px);
    border: 1px solid rgba(183, 213, 233, .2);
    border-left: 5px solid #d62f3e;
    border-radius: 8px;
    background: rgba(1, 7, 11, .94);
    box-shadow: 0 10px 36px rgba(0, 0, 0, .38);
    opacity: 0;
    visibility: hidden;
    transform: translateY(5px);
    transition: opacity .18s linear, transform .22s ease, visibility 0s linear .22s;
    pointer-events: none;
}
.gnr-visual-tile:fullscreen .gnr-caption-rail.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition: opacity .18s linear, transform .22s ease;
}
.gnr-visual-tile:fullscreen .gnr-caption-label {
    display: block;
    color: #ff7783;
    font-size: clamp(10px, .78vw, 14px);
    font-weight: 950;
    letter-spacing: .14em;
    white-space: nowrap;
}
.gnr-visual-tile:fullscreen .gnr-kinetic-caption {
    position: static;
    display: block;
    width: auto;
    max-width: none;
    min-width: 0;
    padding: 0;
    border-radius: 0;
    background: transparent;
    transform: none;
    opacity: 1;
    color: #fff;
    text-align: left;
    font-size: clamp(19px, 1.7vw, 31px);
    font-weight: 850;
    line-height: 1.12;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.gnr-visual-tile:fullscreen .gnr-kinetic-caption.is-visible {
    transform: none;
    opacity: 1;
}

/* Lower third is a fixed grid, not an auto-growing flex layer. */
.gnr-visual-tile:fullscreen .gnr-lower-third {
    bottom: var(--gnr-crawl-h);
    height: var(--gnr-lower-h);
    min-height: 0;
    max-height: none;
    overflow: hidden;
}
.gnr-visual-tile:fullscreen .gnr-lower-copy {
    height: 100%;
    display: grid;
    grid-template-columns: minmax(220px, 25%) minmax(0, 1fr);
    align-items: center;
    gap: clamp(20px, 2.6vw, 44px);
    padding: clamp(14px, 1.8vh, 24px) clamp(26px, 3vw, 50px);
    overflow: hidden;
}
.gnr-visual-tile:fullscreen .gnr-lower-person {
    height: 100%;
    display: flex;
    justify-content: center;
    flex-direction: column;
    flex-basis: auto;
    padding-right: clamp(16px, 2vw, 32px);
    border-right: 1px solid rgba(255, 255, 255, .22);
    overflow: hidden;
}
.gnr-visual-tile:fullscreen .gnr-lower-name {
    font-size: clamp(26px, 2.5vw, 44px);
    line-height: 1.03;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.gnr-visual-tile:fullscreen .gnr-lower-role {
    margin-top: 8px;
    font-size: clamp(12px, 1vw, 18px);
    line-height: 1.12;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.gnr-visual-tile:fullscreen .gnr-lower-headline {
    min-width: 0;
    max-height: 2.18em;
    font-size: clamp(30px, 3vw, 52px);
    line-height: 1.04;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    text-wrap: balance;
}
.gnr-visual-tile:fullscreen .gnr-lower-headline.is-long {
    font-size: clamp(27px, 2.6vw, 44px);
}
.gnr-visual-tile:fullscreen .gnr-lower-headline.is-very-long {
    font-size: clamp(23px, 2.25vw, 38px);
}

.gnr-visual-tile:fullscreen .gnr-source-crawl {
    height: var(--gnr-crawl-h);
    font-size: clamp(12px, 1vw, 17px);
}
.gnr-visual-tile:fullscreen .gnr-source-crawl-label {
    min-width: clamp(112px, 9vw, 158px);
    justify-content: center;
    padding: 0 14px;
    white-space: nowrap;
}
.gnr-visual-tile:fullscreen .gnr-source-crawl-text {
    padding: 0 14px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.gnr-visual-tile:fullscreen .gnr-progress {
    bottom: var(--gnr-crawl-h);
    height: var(--gnr-progress-h);
}
.gnr-visual-tile:fullscreen .gnr-audio-meter {
    left: var(--gnr-tv-safe-x);
    bottom: calc(var(--gnr-crawl-h) + var(--gnr-lower-h) + var(--gnr-caption-h) + var(--gnr-zone-gap) * 2 + 8px);
    width: min(260px, 19vw);
    height: 20px;
    opacity: .38;
}

/* Source scene is a contained card grid. Nothing is positioned below its panel. */
.gnr-story-source-panel {
    align-items: stretch;
}
.gnr-story-source-stage {
    position: relative;
    width: min(1380px, 92vw);
    height: 100%;
    margin: 0 auto;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: clamp(18px, 3vh, 34px);
}
.gnr-story-source-header {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    align-items: center;
    gap: clamp(18px, 2vw, 34px);
    min-height: clamp(60px, 8vh, 86px);
    padding-bottom: clamp(10px, 1.4vh, 18px);
    border-bottom: 1px solid rgba(185, 216, 236, .22);
}
.gnr-story-source-center {
    position: static;
    display: block;
    width: auto;
    min-width: 0;
    aspect-ratio: auto;
    transform: none;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    text-align: left;
    font-size: clamp(25px, 2.5vw, 44px);
    line-height: 1.05;
}
.gnr-story-source-caption {
    position: static;
    display: block;
    width: auto;
    transform: none;
    color: #b9cedc;
    text-align: right;
    font-size: clamp(14px, 1.2vw, 21px);
    line-height: 1.25;
}
.gnr-story-source-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(260px, 38vw), 1fr));
    align-content: center;
    gap: clamp(14px, 1.7vw, 26px);
    min-height: 0;
    overflow: hidden;
}
.gnr-story-source-node {
    position: relative;
    inset: auto;
    width: auto;
    min-height: clamp(88px, 11vh, 128px);
    transform: none !important;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    place-items: initial;
    align-content: center;
    column-gap: 14px;
    padding: clamp(15px, 1.7vw, 24px);
    border-radius: 10px;
    text-align: left;
    font-size: clamp(17px, 1.45vw, 25px);
}
.gnr-story-source-number {
    grid-row: 1 / span 2;
    display: grid;
    place-items: center;
    width: clamp(34px, 3vw, 48px);
    height: clamp(34px, 3vw, 48px);
    border-radius: 50%;
    background: #a91f2c;
    color: #fff;
    font-size: .72em;
    font-weight: 950;
}
.gnr-story-source-node small {
    margin-top: 5px;
}
.gnr-story-source-svg {
    display: none !important;
}

/* Text-heavy visual scenes get additional bottom clearance inside the visual stage. */
.gnr-visual-tile:fullscreen[data-gnr-scene="type"] .gnr-type-line {
    font-size: clamp(38px, 5vw, 82px);
    line-height: 1;
}
.gnr-visual-tile:fullscreen[data-gnr-scene="type"] .gnr-type-context {
    max-height: 2.6em;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.gnr-visual-tile:fullscreen[data-gnr-scene="data"] .gnr-data-title {
    font-size: clamp(22px, 2.3vw, 40px);
    max-height: 2.2em;
    overflow: hidden;
}
.gnr-visual-tile:fullscreen[data-gnr-scene="story-sources"] .gnr-source-crawl-text {
    opacity: .62;
}

@media (max-height: 760px) {
    .gnr-visual-tile:fullscreen {
        --gnr-crawl-h: 36px;
        --gnr-lower-h: 112px;
        --gnr-caption-h: 52px;
        --gnr-zone-gap: 7px;
        --gnr-content-top: 88px;
    }
    .gnr-visual-tile:fullscreen .gnr-lower-headline { font-size: clamp(25px, 2.6vw, 40px); }
    .gnr-visual-tile:fullscreen .gnr-lower-headline.is-long { font-size: clamp(22px, 2.3vw, 35px); }
    .gnr-visual-tile:fullscreen .gnr-lower-name { font-size: clamp(22px, 2.1vw, 34px); }
    .gnr-story-source-node { min-height: 72px; }
}

@media (max-width: 900px) {
    .gnr-visual-tile:fullscreen {
        --gnr-caption-h: clamp(62px, 9vh, 82px);
        --gnr-lower-h: clamp(142px, 19vh, 178px);
    }
    .gnr-visual-tile:fullscreen .gnr-lower-copy {
        grid-template-columns: minmax(160px, 31%) minmax(0, 1fr);
        gap: 18px;
        padding-left: 22px;
        padding-right: 22px;
    }
    .gnr-visual-tile:fullscreen .gnr-lower-name { font-size: clamp(21px, 3.5vw, 34px); }
    .gnr-visual-tile:fullscreen .gnr-lower-headline { font-size: clamp(23px, 3.8vw, 38px); }
    .gnr-visual-tile:fullscreen .gnr-caption-rail { left: 18px; right: 18px; }
    .gnr-story-source-header { grid-template-columns: 1fr; gap: 8px; }
    .gnr-story-source-caption { text-align: left; }
}

@media (max-width: 620px) {
    .gnr-visual-tile:fullscreen {
        --gnr-lower-h: 174px;
        --gnr-caption-h: 72px;
        --gnr-content-top: 112px;
    }
    .gnr-visual-tile:fullscreen .gnr-caption-rail {
        grid-template-columns: 1fr;
        gap: 2px;
        align-content: center;
    }
    .gnr-visual-tile:fullscreen .gnr-caption-label { display: none; }
    .gnr-visual-tile:fullscreen .gnr-lower-copy {
        grid-template-columns: 1fr;
        grid-template-rows: auto minmax(0, 1fr);
        gap: 8px;
        align-content: center;
    }
    .gnr-visual-tile:fullscreen .gnr-lower-person {
        height: auto;
        padding: 0 0 7px;
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,.2);
    }
    .gnr-visual-tile:fullscreen .gnr-lower-name { font-size: 23px; }
    .gnr-visual-tile:fullscreen .gnr-lower-role { margin-top: 3px; font-size: 11px; -webkit-line-clamp: 1; }
    .gnr-visual-tile:fullscreen .gnr-lower-headline,
    .gnr-visual-tile:fullscreen .gnr-lower-headline.is-long,
    .gnr-visual-tile:fullscreen .gnr-lower-headline.is-very-long { font-size: clamp(21px, 5.6vw, 30px); }
    .gnr-story-source-list { grid-template-columns: 1fr; align-content: start; overflow-y: auto; }
}



/* 5.14.0 program-format separation. */
.gnr-coming-up-panel,.gnr-hourly-panel{color:#fff;overflow:hidden}
.gnr-coming-up-panel{background:radial-gradient(circle at 82% 18%,rgba(95,79,180,.32),transparent 34%),linear-gradient(135deg,#080b19 0%,#17133a 52%,#071621 100%)}
.gnr-coming-up-shell{position:absolute;inset:clamp(84px,10vh,126px) clamp(46px,6vw,110px) clamp(92px,12vh,150px);display:grid;grid-template-rows:auto auto 1fr auto;gap:clamp(14px,2vh,28px)}
.gnr-coming-up-kicker{font-size:clamp(13px,1.2vw,21px);font-weight:950;letter-spacing:.22em;color:#a9e8f1}
.gnr-coming-up-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;border-bottom:2px solid rgba(150,223,235,.46);padding-bottom:14px}.gnr-coming-up-heading strong{font-size:clamp(34px,4.3vw,74px);line-height:1;font-weight:1000}.gnr-coming-up-heading span{font-size:clamp(15px,1.3vw,23px);color:#c9d3ef;font-weight:800}
.gnr-coming-up-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.5vw,24px);align-content:center}.gnr-coming-up-item{min-width:0;display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;padding:clamp(14px,1.6vw,24px);border:1px solid rgba(180,190,255,.22);border-left:7px solid rgba(122,214,227,.45);border-radius:12px;background:rgba(2,7,18,.58);opacity:.72;transform:scale(.985);transition:opacity .25s ease,transform .25s ease,border-color .25s ease,background .25s ease}.gnr-coming-up-item.is-active{opacity:1;transform:scale(1);border-left-color:#78e0ef;background:rgba(28,35,82,.88);box-shadow:0 14px 42px rgba(0,0,0,.28)}
.gnr-coming-up-number{font-size:clamp(26px,3vw,52px);font-weight:1000;color:#78e0ef;line-height:1}.gnr-coming-up-copy{min-width:0}.gnr-coming-up-copy small{display:block;margin-bottom:6px;font-size:clamp(11px,.95vw,17px);font-weight:900;letter-spacing:.13em;text-transform:uppercase;color:#b6bedf}.gnr-coming-up-copy strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:clamp(17px,1.65vw,30px);line-height:1.13;text-wrap:balance}.gnr-coming-up-footer{font-size:clamp(14px,1.15vw,21px);font-weight:850;color:#b7cadf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gnr-hourly-panel{background:radial-gradient(circle at 15% 15%,rgba(25,122,151,.35),transparent 35%),linear-gradient(145deg,#06141c,#0c2d3b 50%,#111827)}.gnr-hourly-shell{position:absolute;inset:clamp(95px,12vh,145px) clamp(55px,7vw,125px) clamp(105px,14vh,165px);display:grid;grid-template-rows:auto auto auto 1fr auto auto;align-content:center}.gnr-hourly-kicker{font-size:clamp(15px,1.4vw,25px);font-weight:1000;letter-spacing:.2em;color:#7ee4ee}.gnr-hourly-index{margin-top:10px;font-size:clamp(13px,1.05vw,19px);font-weight:900;letter-spacing:.15em;color:#b7d4df}.gnr-hourly-index strong{font-size:1.75em;color:#fff}.gnr-hourly-category{margin-top:clamp(18px,3vh,38px);font-size:clamp(13px,1.1vw,20px);font-weight:950;letter-spacing:.18em;color:#ffc861}.gnr-hourly-headline{margin-top:10px;max-width:1300px;font-size:clamp(38px,5vw,86px);font-weight:1000;line-height:1.02;letter-spacing:-.025em;text-wrap:balance;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.gnr-hourly-summary{align-self:start;margin-top:clamp(18px,2.4vh,30px);max-width:1100px;font-size:clamp(17px,1.55vw,28px);line-height:1.3;color:#c9d9e1;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.gnr-hourly-source{margin-top:16px;font-size:clamp(12px,1vw,18px);font-weight:850;letter-spacing:.08em;color:#91b9c8}.gnr-hourly-dots{display:flex;gap:10px;margin-top:22px}.gnr-hourly-dots span{width:clamp(28px,4vw,70px);height:6px;border-radius:99px;background:rgba(255,255,255,.22)}.gnr-hourly-dots span.is-active{background:#7ee4ee}
.gnr-visual-tile[data-gnr-program-format="coming_up"] .gnr-caption-rail,.gnr-visual-tile[data-gnr-program-format="coming_up"] .gnr-lower-third,.gnr-visual-tile[data-gnr-program-format="hourly_top_stories"] .gnr-caption-rail,.gnr-visual-tile[data-gnr-program-format="hourly_top_stories"] .gnr-lower-third{display:none!important}.gnr-visual-tile[data-gnr-program-format="coming_up"] .gnr-source-crawl,.gnr-visual-tile[data-gnr-program-format="hourly_top_stories"] .gnr-source-crawl{bottom:0}.gnr-visual-tile[data-gnr-program-format="coming_up"] .gnr-scene-chip,.gnr-visual-tile[data-gnr-program-format="hourly_top_stories"] .gnr-scene-chip,.gnr-visual-tile[data-gnr-program-format="coming_up"] .gnr-audio-meter,.gnr-visual-tile[data-gnr-program-format="hourly_top_stories"] .gnr-audio-meter{display:none!important}
@media(max-width:760px){.gnr-coming-up-list{grid-template-columns:1fr}.gnr-coming-up-item:nth-child(n+5){display:none}.gnr-coming-up-heading{align-items:start;flex-direction:column}.gnr-coming-up-shell,.gnr-hourly-shell{inset:82px 20px 76px}.gnr-hourly-headline{-webkit-line-clamp:4}}

/* 5.14.3 editorial figure and currency treatment. */
.gnr-data-grid {
    grid-template-columns: minmax(0, 1fr);
    max-width: min(1120px, 86vw);
    margin-left: auto;
    margin-right: auto;
}
.gnr-data-card-featured {
    text-align: center;
    padding: clamp(24px, 3vw, 48px);
}
.gnr-data-currency {
    margin-top: clamp(10px, 1.4vh, 18px);
    font-size: clamp(18px, 1.55vw, 29px);
    font-weight: 900;
    letter-spacing: .035em;
    color: #f2d7a5;
}
.gnr-data-support {
    margin-top: 8px;
    font-size: clamp(16px, 1.25vw, 23px);
    font-weight: 800;
    color: #a9c7da;
}
.gnr-data-card-featured .gnr-data-context {
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
}
