.feed-refresh-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:4px 0 12px;color:#7c89a1;font-size:calc(11px * var(--font-scale));flex-wrap:wrap}.feed-refresh-button{display:flex;align-items:center;gap:4px;padding:0 10px;min-height:48px;border:0;background:transparent;color:#2864ff;font-size:calc(12px * var(--font-scale))}.feed-refresh-button svg{width:16px;height:16px}.pull-refresh-status{display:flex;align-items:center;justify-content:center;gap:8px;overflow:hidden;height:0;color:#6377a6;font-size:calc(12px * var(--font-scale));transition:height .15s;pointer-events:none}.pull-refresh-status svg{width:17px;height:17px}.headline-list{display:grid;gap:12px}.headline-card{padding:0;overflow:hidden;border:0;text-align:left;width:100%;color:inherit;background:white}.headline-card img{width:100%;aspect-ratio:16/9;object-fit:cover}.headline-copy{padding:18px}.headline-copy h2{font-size:calc(20px * var(--font-scale));line-height:1.5;margin:8px 0}.headline-copy p{font-size:calc(13px * var(--font-scale));color:#74839c;line-height:1.8;margin:8px 0}.headline-kicker{font-size:calc(11px * var(--font-scale));color:#2864ff}.headline-meta{font-size:calc(11px * var(--font-scale));color:#93a0b4}.feed-demo-note{font-size:calc(11px * var(--font-scale));color:#91a0b4;text-align:center;padding:20px 0}

.home-banner-carousel{position:relative;margin-top:16px;min-width:0;isolation:isolate;border-radius:24px;overflow:hidden}
.home-banner-viewport{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;border-radius:24px;touch-action:pan-x pan-y;outline-offset:-3px}
.home-banner-viewport::-webkit-scrollbar{display:none}
.home-banner-viewport:focus-visible{outline:2px solid #2864ff}
.feed-refresh-button:focus-visible{outline:2px solid #2864ff;outline-offset:-3px;border-radius:8px}
.home-banner-slide{position:relative;isolation:isolate;flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden;min-height:260px;padding:18px 18px 52px;background:linear-gradient(115deg,#ddf4ff,#eaefff 57%,#dfd6ff)}
.home-banner-slide.banner-live{background:linear-gradient(115deg,#e2f2ff,#e7eaff 58%,#e7d6fa)}
.home-banner-slide.banner-news{background:linear-gradient(115deg,#e7f4ff,#e5eaff 55%,#dcdcff)}
.home-banner-copy{position:relative;z-index:2;max-width:68%;pointer-events:none}
.home-banner-copy .eyebrow{font-size:calc(11px * var(--font-scale));letter-spacing:0;gap:4px;white-space:normal;line-height:1.5}
.home-banner-copy .eyebrow svg{width:15px;height:15px;flex-shrink:0}
.home-banner-copy h1{font-size:calc(24px * var(--font-scale));line-height:1.4;font-weight:800;letter-spacing:-.7px;margin:9px 0 6px;color:#101a30}
.home-banner-copy h1 em{color:#2864ff;font-style:normal}
.home-banner-copy p{font-size:calc(12px * var(--font-scale));line-height:1.8;color:#607190;max-width:180px}
.banner-news .home-banner-copy p{max-width:152px}
.home-banner-copy .home-banner-action{pointer-events:auto;min-height:48px;font-size:calc(12px * var(--font-scale));padding:10px 14px;margin-top:14px;max-width:100%}
.home-banner-art{position:absolute;z-index:1;right:-9px;bottom:22px;width:56%;max-height:220px;aspect-ratio:1;object-fit:contain;pointer-events:none;user-select:none;filter:drop-shadow(0 8px 12px #7073c521)}
.home-banner-decoration{position:absolute;z-index:0;width:165px;height:165px;border:1px solid #ffffff80;border-radius:50%;right:-15px;top:40px;box-shadow:0 0 0 15px #ffffff15,0 0 0 30px #ffffff15;pointer-events:none}
.home-banner-pagination{position:absolute;bottom:0;left:12px;z-index:3;display:flex;gap:0}
.home-banner-pagination button{min-width:48px;min-height:48px;display:grid;place-items:center;background:transparent;border:0;border-radius:12px}
.home-banner-pagination button span{width:5px;height:5px;border-radius:5px;background:#fff;box-shadow:0 0 0 1px #96a6d23a;transition:width .18s,background .18s}
.home-banner-pagination button.active span{width:18px;background:#2864ff;box-shadow:none}
.home-banner-pagination button:focus-visible{outline:2px solid #2864ff;outline-offset:-6px}
.home-banner-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.home-banner-viewport.is-dragging{scroll-snap-type:none;user-select:none;cursor:grabbing}
.font-large .home-banner-copy{max-width:100%}
.font-large .home-banner-copy p{max-width:none}
.font-large .banner-news .home-banner-copy p{max-width:none}
.font-large .home-banner-art{position:relative;right:auto;bottom:auto;width:180px;max-height:none;height:180px;display:block;margin:16px auto 0}
.font-large .home-banner-copy .home-banner-action{font-size:calc(12px * var(--font-scale));min-height:56px}
@media(prefers-reduced-motion:reduce){.home-banner-pagination button span{transition:none}}
.news-swipe-viewport{touch-action:pan-x pan-y;overscroll-behavior-x:contain;cursor:grab;scroll-snap-type:x proximity;scroll-padding-inline:16px}
.news-swipe-viewport:focus-visible{outline:2px solid #2864ff;outline-offset:-3px;border-radius:14px}
.news-swipe-viewport.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.news-swipe-viewport .news-card{align-self:stretch}
.news-swipe-hint{font-size:calc(11px * var(--font-scale));line-height:1.6;color:#99a7bd;margin-top:9px;padding-left:2px}
.news-preview .section-head{margin-bottom:12px}
.font-large .news-swipe-viewport .news-card{width:calc(100% - 48px);flex-basis:calc(100% - 48px)}

/* The homepage shows four articles in two rows; the separate preview keeps swiping. */
.home-news-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}
.home-news-grid .news-card{width:auto;min-width:0;flex-basis:auto;align-self:stretch}
.home-news-grid .news-card-body{padding:10px}
.home-news-grid .inline-meta{flex-wrap:wrap;gap:4px 8px;overflow-wrap:anywhere}
.news-view-toolbar{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 14px;padding:4px 0;background:#f5f7fff2;backdrop-filter:blur(8px);color:#74839c;font-size:calc(12px * var(--font-scale))}
.news-view-switch{display:flex;gap:4px;padding:3px;border-radius:14px;background:#eaf0fb}
.news-view-switch button{display:flex;align-items:center;justify-content:center;gap:6px;min-width:76px;min-height:48px;padding:8px 12px;border-radius:11px;color:#64728e;font-size:calc(13px * var(--font-scale))}
.news-view-switch button.active{background:#fff;color:#2864ff;box-shadow:0 2px 8px #284b8520;font-weight:650}
.news-view-switch button:focus-visible{outline:2px solid #2864ff;outline-offset:1px}
.news-view-switch .icon{width:17px;height:17px;flex-shrink:0}
.headline-text-list{gap:10px}
.headline-text-card .headline-copy{padding:16px}
.headline-text-card h2{font-size:calc(17px * var(--font-scale));line-height:1.5;margin:7px 0}
.headline-text-card p{margin:0 0 10px;line-height:1.7}
.headline-card:focus-visible{outline:2px solid #2864ff;outline-offset:2px}

/* Compact app banners put the action and carousel controls on the same row. */
.home-banner-compact,.home-banner-compact .home-banner-viewport{border-radius:20px}
.home-banner-compact .home-banner-slide{min-height:144px;padding:12px 16px 10px}
.home-banner-compact .home-banner-copy{max-width:70%}
.home-banner-compact .home-banner-copy .eyebrow{padding:2px 6px;font-size:calc(10px * var(--font-scale));line-height:1.5;border-radius:6px}
.home-banner-compact .home-banner-copy .eyebrow svg{width:12px;height:12px}
.home-banner-compact .home-banner-copy h1{font-size:calc(18px * var(--font-scale));line-height:1.25;letter-spacing:-.4px;margin:4px 0 0}
.home-banner-compact .home-banner-copy p{display:none}
.home-banner-compact .home-banner-copy .home-banner-action{min-height:48px;margin-top:4px;padding:8px 10px;border-radius:12px;font-size:calc(12px * var(--font-scale));gap:6px}
.home-banner-compact .home-banner-art{width:43%;height:122px;max-height:122px;right:-4px;top:0;bottom:auto}
.home-banner-compact .home-banner-decoration{width:104px;height:104px;top:7px;right:0}
.home-banner-compact .home-banner-pagination{left:auto;right:4px;bottom:4px}
.font-large .home-banner-compact .home-banner-slide{padding:16px 16px 56px}
.font-large .home-banner-compact .home-banner-copy{max-width:100%}
.font-large .home-banner-compact .home-banner-copy p{display:block;margin-top:8px}
.font-large .home-banner-compact .home-banner-copy .home-banner-action{margin-top:12px;min-height:56px}
.font-large .home-banner-compact .home-banner-art{display:none}
