@font-face {
    font-family: 'JspNews Telugu';
    src: url('/fonts/NotoSansTelugu.ttf') format('truetype');
    font-weight: 100 900;
    font-style: normal;
    font-display: block;
}

:root {
    --reader-ink: #20252b;
    --reader-muted: #8b939b;
    --reader-red: #dc2537;
    --top: 88px;
    --bottom: calc(62px + env(safe-area-inset-bottom));
    --reader-height: calc(100dvh - var(--top) - var(--bottom));
}

html, body { background: #f0f1f3; font-family: 'Noto Sans Telugu', sans-serif; }
.app-header { height: 52px; padding: 0 12px; gap: 8px; background: #fff; border-bottom: 1px solid #f0f0f0; box-shadow: none; }
.brand-logo { gap: 9px; color: var(--reader-ink); font: 800 20px/1 'Inter', sans-serif; letter-spacing: -.8px; }
.brand-logo small { display: block; margin-top: 5px; color: #999; font: 400 9px/1.3 'Noto Sans Telugu', sans-serif; letter-spacing: .2px; }
.brand-accent { color: var(--reader-red); }
.brand-monogram { display: grid; place-items: center; width: 30px; height: 32px; background: var(--reader-red); color: #fff; border-radius: 7px 7px 7px 1px; font-size: 24px; }
.header-actions { display: flex; align-items: center; gap: 12px; }
.reader-position { font: 500 11px/1 'Inter', sans-serif; color: #93999f; font-variant-numeric: tabular-nums; }
.reader-menu-button { width: 36px; height: 38px; background: transparent; border: 0; color: #424950; font-size: 24px; cursor: pointer; }
.feed { top: var(--top); bottom: var(--bottom); padding: 0; background: transparent; scroll-snap-type: y mandatory; scroll-padding: 0; scroll-behavior: smooth; }
.news-grid { display: flex; flex-direction: column; width: min(520px, 100%); margin: 0 auto; gap: 0; }
.news-grid > .news-card { display: grid; grid-template-columns: 1fr; grid-template-rows: min(240px, 38%) minmax(0, 1fr); width: 100%; height: var(--reader-height); min-height: 0; margin: 0; border: 0; border-radius: 0; box-shadow: none; background: #fff; scroll-snap-align: start; scroll-snap-stop: always; scroll-margin: 0; cursor: default; }
.news-grid > .feed-ad-card { display: grid; grid-template-columns: 1fr; grid-template-rows: 39% minmax(0, 1fr); position: relative; width: 100%; height: var(--reader-height); flex: 0 0 auto; background: #fff; overflow: hidden; scroll-snap-align: start; scroll-snap-stop: always; }
.news-image { grid-column: 1; grid-row: 1; width: 100%; height: 100%; min-height: 0; aspect-ratio: auto; background: #f2f3f4; }
.news-image img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center top; }
.news-body { grid-column: 1; grid-row: 2; display: flex; flex-direction: column; min-height: 0; min-width: 0; padding: 20px 20px 0; overflow: hidden; }
.news-copy { flex: 1; min-height: 0; overflow-y: auto; scrollbar-width: thin; overscroll-behavior-y: auto; }
.news-section-label { display: block; color: var(--reader-red); font: 700 9px/1.3 'Inter', sans-serif; letter-spacing: 1.6px; margin-bottom: 9px; }
.news-title { display: block; margin: 0 0 9px; overflow: visible; -webkit-line-clamp: unset; font-size: 18px; font-weight: 700; line-height: 1.55; letter-spacing: -.2px; color: var(--reader-ink); overflow-wrap: anywhere; }
.news-description { display: block; margin: 0; overflow: visible; -webkit-line-clamp: unset; white-space: normal; }
.news-pages { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; }
.news-pages::-webkit-scrollbar { display: none; }
.news-page { flex: 0 0 100%; min-width: 0; padding: 1px 1px 8px; scroll-snap-align: start; color: #444c54; font-size: 13px; font-weight: 400; line-height: 1.8; text-align: left; white-space: pre-wrap; overflow-wrap: anywhere; }
.news-page-controls { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 5px 0 10px; }
.news-page-controls button { width: 30px; height: 30px; border: 0; border-radius: 50%; color: #68727b; background: #f7f8f9; cursor: pointer; }
.news-page-controls button:disabled { opacity: .25; cursor: default; }
.news-page-count { color: #737c84; font: 600 10px/1 'Inter', sans-serif; font-variant-numeric: tabular-nums; }
.news-swipe-hint { font: 400 10px/1.4 'Inter', sans-serif; color: #a0a6ac; }
.news-footer { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 54px; padding: 8px 0; margin-top: 8px; border-top: 1px solid #f1f2f3; }
.news-meta { color: #9ba2a9; font-size: 10px; font-weight: 400; max-width: 32%; }
.action-btn { padding: 8px 12px; background: #fff; color: var(--reader-red); font-size: 12px; border: 1px solid #f5dce0; border-radius: 8px; }
.reader-next { display: flex; align-items: center; gap: 5px; border: 0; background: transparent; color: #929aa2; padding: 5px 0; cursor: pointer; font: 400 10px/1.3 'Inter', sans-serif; }
.reader-next i { display: inline-block; animation: swipeCue 1.8s ease-in-out 3; }
.bottom-nav { height: var(--bottom); padding: 0 max(12px, calc((100vw - 520px)/2)) env(safe-area-inset-bottom); border-top: 1px solid #edf0f2; background: #fff; box-shadow: none; }
.nav-item { flex: 1; color: #a1a7ae; font: 500 9px/1.3 'Inter', sans-serif; gap: 5px; }
.nav-item i { font-size: 20px; }
.nav-item.active { color: var(--reader-red); }
.nav-item.add-btn { flex: 0 0 40px; width: 40px; height: 40px; margin: 0 12px; border-radius: 13px; background: var(--reader-red); box-shadow: none; transform: none; color: #fff; }
.nav-item.add-btn i { font-size: 20px; }
.news-publisher, .app-download-tag, .read-more-tag, .ad-slider-container, .feed-composer, .feed-tabs { display: none; }
.feed-loader { display: none; width: min(520px, 100%); margin: auto; padding: 16px; background: #fff; color: #888; text-align: center; font-size: 12px; }
.reader-menu { width: min(400px, calc(100% - 32px)); border: 0; padding: 22px; border-radius: 18px; box-shadow: 0 20px 80px #0002; color: var(--reader-ink); }
.reader-menu::backdrop { background: #20252b66; backdrop-filter: blur(3px); }
.reader-menu-heading { display: flex; justify-content: space-between; align-items: center; }
.reader-menu-heading button { border: 0; padding: 10px; background: transparent; color: #888; cursor: pointer; }
.reader-menu p { font-size: 12px; color: #888; }
.reader-filters { display: grid; gap: 8px; }
.reader-filters label { font: 600 11px/1.4 'Inter', sans-serif; margin-top: 6px; }
.reader-filters .filter-select { width: 100%; max-width: none; height: 44px; padding: 8px; font-size: 13px; }
.reader-menu-links { display: grid; gap: 14px; padding-top: 22px; }
.reader-menu-links a { display: flex; gap: 10px; align-items: center; color: #555; text-decoration: none; font-size: 12px; }
.brand-monogram, .brand-logo small, .reader-position, .header-filters label, .news-card .news-section-label { display: none; }
.brand-logo { font-size: 16px; flex-shrink: 0; }
.header-actions { gap: 0; }
.header-filters { display: flex; gap: 5px; flex: 1; justify-content: flex-end; min-width: 0; }
.header-filters .filter-select { min-width: 0; width: 85px; max-width: 100%; height: 30px; font-size: 10px; padding: 3px; }
.reader-menu-button { width: 25px; }
.reader-app-line { position: fixed; z-index: 3000; top: 52px; left: 0; right: 0; height: 24px; display: flex; align-items: center; justify-content: center; gap: 5px; color: #999; background: #fff; font-size: 9px; text-decoration: none; white-space: nowrap; }
.reader-tabs { position: fixed; z-index: 3000; top: 76px; left: 0; right: 0; height: 36px; display: flex; justify-content: center; gap: 24px; border-bottom: 1px solid #eee; background: #fff; }
.reader-tabs button { border: 0; border-bottom: 2px solid transparent; color: #9299a0; background: transparent; font: 400 11px/1.4 'Noto Sans Telugu', sans-serif; cursor: pointer; }
.reader-tabs button.selected { color: var(--reader-red); border-bottom-color: var(--reader-red); font-weight: 700; }
[hidden] { display: none !important; }
.reader-empty { padding: 50px 24px; text-align: center; color: #888; font-size: 13px; }
.reader-empty button { display: block; margin: 20px auto; border: 1px solid #eee; border-radius: 8px; padding: 10px 20px; background: #fff; color: var(--reader-red); }
.nav-item span { max-width: 70px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ad-brand-art { width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 14px; background: radial-gradient(circle at center, #fff, #fff1f2); }
.ad-art-icon { display: grid; place-items: center; width: 76px; height: 76px; border-radius: 24px; color: var(--reader-red); background: #fff; box-shadow: 0 8px 30px #dc253710; font-size: 36px; }
.ad-brand-art strong { font: 800 28px/1 'Inter', sans-serif; color: var(--reader-ink); }
.ad-brand-art > span:last-child { font: 400 12px/1.5 'Inter', sans-serif; color: #899099; }
.ad-description { color: #626b74; font-size: 14px; line-height: 1.8; margin: 8px 0 20px; }
.ad-phone { display: block; font: 700 27px/1.5 'Inter', sans-serif; color: var(--reader-ink); margin-bottom: 18px; }
.ad-cta { display: inline-flex; align-items: center; gap: 20px; padding: 13px 20px; border-radius: 10px; color: #fff; background: #187d55; text-decoration: none; font: 600 13px/1.4 'Inter', sans-serif; }
a:focus-visible, button:focus-visible, .news-page:focus-visible { outline: 2px solid var(--reader-red); outline-offset: 2px; }
@keyframes swipeCue { 0%, 100% { transform: translateY(2px); opacity: .5; } 50% { transform: translateY(-2px); opacity: 1; } }
@media (min-width: 700px) {
    .app-header { padding-left: max(20px, calc((100vw - 520px)/2)); padding-right: max(20px, calc((100vw - 520px)/2)); }
    .news-card { border-left: 1px solid #e8e9eb; border-right: 1px solid #e8e9eb; }
}
@media (max-height: 700px) {
    .news-grid > .feed-ad-card { grid-template-rows: 35% minmax(0, 1fr); }
    .news-body { padding-top: 14px; }
    .news-title { margin-bottom: 8px; }
}
@media (max-width: 350px) {
    .news-body { padding-left: 16px; padding-right: 16px; }
    .reader-next { font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) {
    .feed { scroll-behavior: auto; }
    .reader-next i { animation: none; }
}

/* One 360-unit design: phone widths change scale, not text wrapping or proportions. */
:root { --reader-unit: calc(min(100vw, 520px) / 360); }
html, body { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; font-family: 'JspNews Telugu', sans-serif; }
.news-grid > .news-card, .news-grid > .feed-ad-card {
    width: calc(360 * var(--reader-unit));
    align-self: center;
    grid-template-rows: calc(244 * var(--reader-unit)) minmax(0, 1fr);
    overflow: hidden;
}
.news-body { padding: calc(14 * var(--reader-unit)) calc(14 * var(--reader-unit)) 0; }
.news-copy { overflow: hidden; scrollbar-width: none; }
.news-copy::-webkit-scrollbar { display: none; }
.news-title {
    margin: 0 0 calc(8 * var(--reader-unit));
    font-family: 'JspNews Telugu', sans-serif;
    font-size: calc(18 * var(--reader-unit));
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: 0;
}
.news-page {
    padding: 0 0 calc(8 * var(--reader-unit));
    font-family: 'JspNews Telugu', sans-serif;
    font-size: calc(15 * var(--reader-unit));
    line-height: 1.8;
    color: #626262;
}
.news-page-controls { gap: calc(8 * var(--reader-unit)); padding: calc(4 * var(--reader-unit)) 0; }
.news-page-controls button { width: calc(25 * var(--reader-unit)); height: calc(25 * var(--reader-unit)); }
.news-page-count, .news-swipe-hint { font-size: calc(10 * var(--reader-unit)); }
.news-footer { min-height: calc(48 * var(--reader-unit)); margin-top: calc(6 * var(--reader-unit)); padding: calc(7 * var(--reader-unit)) 0; }
.news-meta, .reader-next { font-size: calc(10 * var(--reader-unit)); }
.action-btn { font-family: 'JspNews Telugu', sans-serif; font-size: calc(12 * var(--reader-unit)); padding: calc(7 * var(--reader-unit)) calc(12 * var(--reader-unit)); }
.reader-tabs button { font-family: 'JspNews Telugu', sans-serif; }
.brand-logo, .header-filters .filter-select, .reader-app-line, .nav-item,
.news-meta, .reader-next, .news-page-count, .news-swipe-hint { font-family: 'JspNews Telugu', sans-serif; }
.news-category { display: none; }
.ad-description { font-size: calc(14 * var(--reader-unit)); margin: calc(8 * var(--reader-unit)) 0 calc(20 * var(--reader-unit)); }
.ad-phone { font-size: calc(27 * var(--reader-unit)); margin-bottom: calc(18 * var(--reader-unit)); }
.ad-cta { font-size: calc(13 * var(--reader-unit)); padding: calc(13 * var(--reader-unit)) calc(20 * var(--reader-unit)); gap: calc(20 * var(--reader-unit)); }
.ad-brand-art { gap: calc(14 * var(--reader-unit)); }
.ad-art-icon { width: calc(76 * var(--reader-unit)); height: calc(76 * var(--reader-unit)); border-radius: calc(24 * var(--reader-unit)); font-size: calc(36 * var(--reader-unit)); }
.ad-brand-art strong { font-size: calc(28 * var(--reader-unit)); }
.ad-brand-art > span:last-child { font-size: calc(12 * var(--reader-unit)); }
.reader-app-line { display: none; }
.reader-tabs { top: 52px; }
.app-header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 5px; padding: 0 max(8px, calc((100vw - 520px)/2)); }
.brand-logo { font-size: 14px; }
.header-filters { justify-content: flex-start; gap: 4px; }
.header-filters .filter-select { width: 100%; flex: 1 1 0; font-size: 9px; padding: 2px; }
.header-download { color: var(--reader-red); font: 700 9px/1.3 'JspNews Telugu', sans-serif; white-space: nowrap; text-decoration: none; }
.header-download i { font-size: 8px; }

/* Editorial rhythm: the photo takes spare space, not an empty text column. */
.news-grid > .news-card { grid-template-rows: var(--reader-photo-height, calc(220 * var(--reader-unit))) minmax(0, 1fr); }
.news-body { padding: calc(14 * var(--reader-unit)) calc(16 * var(--reader-unit)) 0; }
.news-image { position: relative; overflow: hidden; }
.news-image::before { content: ''; position: absolute; inset: -20px; background: var(--news-photo) center/cover; filter: blur(18px) brightness(.85); }
.news-image img { position: relative; }
.news-copy { flex: 0 0 auto; }
.news-title { font-size: calc(19 * var(--reader-unit)); line-height: 1.5; margin-bottom: calc(9 * var(--reader-unit)); letter-spacing: -.15px; }
.news-page { font-size: calc(15.5 * var(--reader-unit)); line-height: 1.72; color: #4c5157; }
.news-footer { min-height: calc(50 * var(--reader-unit)); margin-top: calc(8 * var(--reader-unit)); }
.action-btn { border-radius: 999px; border-color: #dfe9e3; background: #f3faf6; color: #167849; font-weight: 700; }
.reader-tabs { gap: 0; }
.reader-tabs button { min-width: 120px; padding: 0 16px; font-size: 12px; }
.reader-tabs button.selected { border-bottom-width: 3px; }
.brand-logo { font-size: 16px; letter-spacing: -.6px; }
.header-filters .filter-select { border: 1px solid #e8e9ed; border-radius: 8px; background: #f7f8fa; height: 31px; }
.bottom-nav { border-top-color: #e6e8eb; }
.nav-item { font-size: 10px; }

.news-grid > .feed-ad-card { display: block; width: min(520px, 100%); height: var(--reader-height); background: #ae1630; color: #fff; isolation: isolate; }
.ad-poster { position: absolute; inset: 0; background: radial-gradient(ellipse at 85% 10%, #e2414e, transparent 60%), linear-gradient(145deg, #a80d27, #521023); }
.ad-poster::after { content: ''; position: absolute; width: 350px; height: 350px; right: -180px; top: 100px; border: 1px solid #ffffff18; border-radius: 50%; pointer-events: none; }
.ad-sponsored { position: absolute; top: 18px; left: 20px; z-index: 2; font: 600 9px/1.4 'JspNews Telugu', sans-serif; letter-spacing: 1.3px; color: #ffffffb3; }
.ad-next { position: absolute; top: 12px; right: 16px; z-index: 3; width: 36px; height: 36px; justify-content: center; color: #fff; border: 1px solid #ffffff40; border-radius: 50%; background: #0002; }
.ad-poster-copy { position: absolute; top: 17%; left: 24px; right: 24px; }
.ad-poster-copy > span:first-child { font: 500 clamp(16px, 4vw, 22px)/1.5 'JspNews Telugu', sans-serif; color: #ffd3b5; }
.ad-poster-copy strong { display: block; margin: 12px 0; font: 800 clamp(30px, 8vw, 46px)/1.5 'JspNews Telugu', sans-serif; letter-spacing: -1px; }
.ad-poster-copy p { color: #ffffffb3; font: 400 12px/1.6 'JspNews Telugu', sans-serif; }
.ad-poster-brand { display: block; margin-top: 20px; font: 800 22px/1.4 'JspNews Telugu', sans-serif; }
.ad-poster-brand span { color: #ffcba8; }
.ad-poster-link { display: block; width: 100%; height: 100%; padding: 48px 0 calc(var(--ad-offer-height, 190px) + 28px); background: #111820; }
.ad-poster-link img { display: block; width: 100%; height: 100%; object-fit: contain; }
.ad-offer { position: absolute; left: 14px; right: 14px; bottom: 14px; padding: 14px 16px; background: #fff; color: #23272d; border-radius: 16px; box-shadow: 0 12px 40px #0002; z-index: 2; }
.ad-offer > p { margin: 0 0 6px; font: 500 12px/1.6 'JspNews Telugu', sans-serif; }
.ad-price-row { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.ad-price-row > strong { font: 800 40px/1.2 'JspNews Telugu', sans-serif; letter-spacing: -2px; color: #b71932; }
.ad-price-row > span { font: 400 11px/1.6 'JspNews Telugu', sans-serif; color: #797e85; }
.ad-price-row b { color: #32383e; }
.ad-partner-link { margin-left: auto; font-size: 10px; color: #b71932; }
.ad-contact { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 10px; background: #137a4d; color: #fff; text-decoration: none; }
.ad-contact > i:first-child { font-size: 25px; }
.ad-contact > span { flex: 1; font: 700 16px/1.3 'JspNews Telugu', sans-serif; letter-spacing: .3px; }
.ad-contact small { display: block; margin-top: 2px; font-size: 9px; font-weight: 400; letter-spacing: 0; }
@media (max-height: 650px) {
    .ad-poster-copy { top: 13%; }
    .ad-poster-copy strong { font-size: 28px; margin: 6px 0; line-height: 1.35; }
    .ad-poster-copy p, .ad-poster-brand { display: none; }
    .ad-offer { bottom: 10px; padding: 10px 14px; }
    .ad-price-row > strong { font-size: 32px; }
}

/* Fixed 360 x 680 editorial frame: story length never moves the photo or copy. */
.app-header { grid-template-columns: auto minmax(0, 1fr) auto; }
.brand-logo { display: flex; align-items: center; gap: 5px; font-size: 14px; }
.brand-monogram { display: grid; width: 23px; height: 25px; border-radius: 6px 6px 6px 1px; font-size: 18px; }
.reader-menu-button { display: none; }
.news-grid > .news-card { width: 100%; grid-template-rows: calc(252 * var(--reader-unit)) minmax(0, 1fr); }
.news-body { display: grid; width: 100%; min-width: 0; grid-template-rows: minmax(0, 1fr) calc(46 * var(--reader-unit)); padding: 0 calc(14 * var(--reader-unit)); }
.news-brand-strip { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; display: flex; flex-direction: column; justify-content: flex-end; gap: 3px; padding: 24px 12px 8px; color: #fff; text-decoration: none; background: linear-gradient(transparent, #0009 48%, #000b); text-shadow: 0 1px 3px #0007; }
.news-brand-line { display: flex; align-items: center; gap: calc(5 * var(--reader-unit)); }
.news-brand-line > b { display: grid; place-items: center; width: calc(21 * var(--reader-unit)); height: calc(23 * var(--reader-unit)); border-radius: 5px; color: #fff; background: var(--reader-red); font-size: calc(16 * var(--reader-unit)); }
.news-brand-line strong { font-size: calc(16 * var(--reader-unit)); font-weight: 800; }
.news-brand-line strong span { color: #ffacb5; }
.news-brand-line small { margin-left: auto; color: #fff; font-size: calc(8.5 * var(--reader-unit)); }
.news-brand-note { font-size: max(8px, calc(9 * var(--reader-unit))); color: #ffffffe6; }
.news-copy { display: grid; grid-template-rows: calc(68 * var(--reader-unit)) minmax(0, 1fr) calc(22 * var(--reader-unit)); gap: 0; min-height: 0; }
.news-title { margin: 0; padding-top: calc(6 * var(--reader-unit)); font-size: calc(var(--news-title-size, 20) * var(--reader-unit)); line-height: 1.5; height: 100%; min-height: 0; overflow: hidden; }
.news-description { min-height: 0; overflow: hidden; }
.news-pages, .news-page { height: 100%; }
.news-page { padding: 0; overflow: hidden; font-size: calc(var(--news-body-size, 16.5) * var(--reader-unit)); line-height: 1.65; }
.news-page-controls { grid-row: 3; padding: 0; }
.news-page-controls button { height: calc(20 * var(--reader-unit)); width: calc(20 * var(--reader-unit)); }
.news-footer { min-height: 0; margin: 0; padding: calc(6 * var(--reader-unit)) 0; }
.ad-actions { position: absolute; bottom: 0; left: 0; right: 0; height: 48px; padding: 6px 14px; display: flex; align-items: center; justify-content: space-between; background: #521023; z-index: 3; }
.ad-actions .reader-next { color: #fff; }
.ad-offer { bottom: 60px; }
.ad-poster-link { padding-bottom: calc(var(--ad-offer-height, 190px) + 74px); }
.share-status { position: fixed; z-index: 10000; left: 16px; right: 16px; bottom: calc(var(--bottom) + 12px); max-width: 480px; margin: auto; padding: 14px 16px; border-radius: 12px; color: #fff; background: #252a30; font: 500 13px/1.5 'JspNews Telugu', sans-serif; box-shadow: 0 8px 28px #0003; }
.share-status a { display: block; margin-top: 8px; color: #fff; text-decoration: underline; font-weight: 700; }
