
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#080f1a;--surface:#0d1829;--surface2:#111e30;
  --card:rgba(255,255,255,0.04);--border:rgba(255,255,255,0.08);--border-b:rgba(255,255,255,0.15);
  --accent:#527EFF;--cyan:#00d4ff;
  --left:#4a9eff;--center:#a0aec0;--right:#ff6b6b;--intl:#48bb78;
  --vg:#48bb78;--vw:#ed8936;--vd:#fc8181;
  --prop:#f6ad55;--cens:#b794f4;
  --text:#e2e8f0;--dim:#718096;--muted:#4a5568;
  --font:'Inter',sans-serif;--serif:'Fraunces',serif;--mono:'JetBrains Mono',monospace;
  --accent-orange:#e85d2a;--cream:#f7f3eb;--rose:#3d0a14;--midnight:#050810;--deep-indigo:#1a1a2e;--terminal-green:#00ff41;
}
html{font-size:14px;scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--font);min-height:100vh;overflow-x:hidden}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.12);border-radius:3px}

/* === HEADER === */
.hdr{position:fixed;top:0;left:0;right:0;z-index:200;background:rgba(8,15,26,0.97);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);height:56px;display:flex;align-items:center;padding:0 20px;gap:16px}

.hdr-brand{display:flex;flex-direction:column;flex-shrink:0;border-right:1px solid var(--border);padding-right:16px}
.brand-name{font-weight:900;font-size:14px;letter-spacing:3px;color:#fff;line-height:1}
.brand-tag{font-size:8px;letter-spacing:1.8px;color:var(--muted);font-family:var(--mono);margin-top:3px;text-transform:uppercase}
.hdr-nav{display:flex;gap:2px;flex:1}
.nav-btn{background:none;border:none;color:var(--dim);font-family:var(--font);font-size:12.5px;font-weight:600;letter-spacing:.5px;padding:6px 12px;border-radius:4px;cursor:pointer;transition:all .2s;text-transform:uppercase}
.nav-btn:hover{color:var(--text);background:var(--card)}
.nav-btn.active{color:var(--cyan);background:rgba(0,212,255,0.08);border-bottom:2px solid var(--cyan)}
.hdr-right{display:flex;align-items:center;gap:14px;margin-left:auto;flex-shrink:0}
.live-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px #22c55e;animation:pulse-live 2s infinite}
@keyframes pulse-live{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.8)}}
.live-label{font-family:var(--mono);font-size:11px;color:#22c55e;letter-spacing:1px;font-weight:700}
.last-updated{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.5px}

/* === STATS BAR === */
.stats-bar{position:fixed;top:0;left:0;right:0;z-index:10;background:rgba(13,24,41,0.98);border-bottom:1px solid var(--border);height:46px;display:none;align-items:center;padding:0 20px;gap:0}
.stat-item{display:flex;align-items:center;gap:10px;padding:0 24px;border-right:1px solid var(--border)}
.stat-item:first-child{padding-left:0}
.stat-item:last-child{border-right:none}
.stat-val{font-family:var(--mono);font-size:18px;font-weight:700;color:var(--cyan);letter-spacing:-0.5px;line-height:1}
.stat-label{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;line-height:1}

/* === MAIN LAYOUT === */
.main{padding-top:0;padding-bottom:40px}

/* === VIZ DASHBOARD === */
.scatter-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;padding:14px 20px 12px}
.timeline-row{padding:0 20px 16px}
.timeline-row .viz-panel{width:100%}
.charts-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:0 20px 16px}
.charts-row .viz-panel{min-width:0}
@media (max-width:880px){.charts-row{grid-template-columns:1fr}}
#timeline-chart{width:100%;height:140px}
#credibility-map,#propaganda-map,#censorship-map{width:100%;height:220px}
.scatter-legend{display:flex;gap:10px;padding:4px 14px 8px;flex-wrap:wrap}
.scatter-legend-item{display:flex;align-items:center;gap:4px;font-family:var(--mono);font-size:9px;color:var(--muted)}
.scatter-legend-dot{width:8px;height:8px;border-radius:50%}
.viz-panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}
.viz-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);background:rgba(0,0,0,0.2)}
.viz-title{font-family:var(--mono);font-size:11px;letter-spacing:1.5px;color:var(--cyan);text-transform:uppercase;font-weight:700}
.viz-sub{font-size:10px;color:var(--muted)}
.viz-body{padding:4px;height:220px;position:relative}

/* === STORY FEED === */
.feed-section{padding:0 20px}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.section-title{font-family:var(--mono);font-size:11px;letter-spacing:2px;color:var(--cyan);text-transform:uppercase;font-weight:700}
.feed-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* === STORY CARD === */
.story-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}
.story-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:transparent;transition:background .2s}
.story-card:hover{border-color:var(--border-b);background:var(--surface2);transform:translateY(-1px);box-shadow:0 4px 24px rgba(0,0,0,0.4)}
.story-card:hover::before{background:linear-gradient(90deg,var(--left),var(--accent),var(--right))}
.card-meta{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex-wrap:wrap}
.badge{font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.8px;padding:2px 7px;border-radius:3px;text-transform:uppercase}
.badge-cat-us_politics{background:rgba(82,126,255,0.18);color:var(--accent);border:1px solid rgba(82,126,255,0.3)}
.badge-cat-us_news{background:rgba(0,212,255,0.12);color:var(--cyan);border:1px solid rgba(0,212,255,0.25)}
.badge-cat-international{background:rgba(72,187,120,0.15);color:var(--intl);border:1px solid rgba(72,187,120,0.3)}
.badge-analyzed{background:rgba(72,187,120,0.12);color:var(--vg);border:1px solid rgba(72,187,120,0.25)}
.badge-pending{background:rgba(237,137,54,0.12);color:var(--vw);border:1px solid rgba(237,137,54,0.25)}
.time-ago{font-family:var(--mono);font-size:9.5px;color:var(--muted);margin-left:auto}
.card-headline{font-weight:700;font-size:14.5px;line-height:1.35;color:#fff;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.source-chips{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}
.src-chip{font-size:10px;color:var(--dim);background:rgba(255,255,255,0.05);border:1px solid var(--border);border-radius:3px;padding:1px 6px;font-family:var(--mono)}
.src-more{font-size:10px;color:var(--muted);background:rgba(255,255,255,0.02);border:1px solid var(--border);border-radius:3px;padding:1px 6px;font-family:var(--mono)}
.bias-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;margin-bottom:10px;background:rgba(255,255,255,0.04)}
.bias-seg{transition:width .4s;display:flex;align-items:center;justify-content:center}
.bias-seg-left{background:var(--left)}
.bias-seg-center{background:var(--center)}
.bias-seg-right{background:var(--right)}
.bias-seg-intl{background:var(--intl)}
.bias-labels{display:flex;gap:8px;margin-bottom:10px}
.bias-lbl{font-size:9.5px;color:var(--dim);display:flex;align-items:center;gap:3px}
.bias-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.card-footer{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.badge-prop-none{background:rgba(72,187,120,0.1);color:var(--vg);border:1px solid rgba(72,187,120,0.2)}
.badge-prop-low{background:rgba(246,173,85,0.1);color:var(--prop);border:1px solid rgba(246,173,85,0.2)}
.badge-prop-medium{background:rgba(252,129,129,0.1);color:var(--vd);border:1px solid rgba(252,129,129,0.2)}
.badge-prop-high{background:rgba(252,129,129,0.15);color:#ff4444;border:1px solid rgba(255,68,68,0.3)}
.validity-score{font-family:var(--mono);font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:3px}
.validity-good{color:var(--vg);background:rgba(72,187,120,0.1);border:1px solid rgba(72,187,120,0.2)}
.validity-warn{color:var(--vw);background:rgba(237,137,54,0.1);border:1px solid rgba(237,137,54,0.2)}
.validity-bad{color:var(--vd);background:rgba(252,129,129,0.1);border:1px solid rgba(252,129,129,0.2)}
.badge-cens{background:rgba(183,148,244,0.1);color:var(--cens);border:1px solid rgba(183,148,244,0.2)}
.analyze-btn{margin-left:auto;background:rgba(82,126,255,0.1);border:1px solid rgba(82,126,255,0.3);color:var(--accent);font-family:var(--mono);font-size:10px;font-weight:700;padding:4px 10px;border-radius:4px;cursor:pointer;letter-spacing:.5px;transition:all .2s}
.analyze-btn:hover{background:rgba(82,126,255,0.2);border-color:var(--accent)}

/* === DETAIL PANEL === */
.detail-overlay{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,0);pointer-events:none;transition:background .3s}
.detail-overlay.open{background:rgba(0,0,0,0.6);pointer-events:all}
.detail-panel{position:fixed;inset:0;z-index:301;background:var(--surface);overflow-y:scroll;-webkit-overflow-scrolling:touch;transform:translateY(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);display:block}
.detail-panel.open{transform:translateY(0)}
.dp-header{position:sticky;top:0;z-index:10;background:rgba(13,24,41,0.98);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:16px 28px;display:flex;align-items:flex-start;gap:14px;flex-shrink:0}
.dp-close{background:rgba(255,255,255,0.06);border:1px solid var(--border);color:var(--dim);width:30px;height:30px;border-radius:6px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}
.dp-close:hover{background:rgba(255,255,255,0.12);color:#fff}
.dp-headline{font-weight:800;font-size:17px;line-height:1.3;color:#fff;flex:1}
.dp-body{padding:18px 24px 80px;display:flex;flex-direction:column;gap:12px}
.dp-section{background:var(--card);border:1px solid var(--border);border-radius:8px}
.dp-sec-hdr{display:flex;align-items:center;gap:10px;padding:11px 16px;background:rgba(0,0,0,0.25);cursor:pointer;user-select:none;transition:background .15s}
.dp-sec-hdr:hover{background:rgba(255,255,255,0.04)}
.dp-sec-hdr.no-toggle{cursor:default}
.dp-sec-hdr.no-toggle:hover{background:rgba(0,0,0,0.25)}
.dp-sec-summary{flex:1;display:flex;align-items:center;gap:10px}
.dp-sec-icon{font-size:14px}
.dp-sec-title{font-family:var(--mono);font-size:10.5px;letter-spacing:1.5px;font-weight:700;text-transform:uppercase}
.dp-sec-stat{font-family:var(--mono);font-size:10px;color:var(--muted)}
.dp-sec-toggle{font-size:11px;color:var(--dim);margin-left:auto;flex-shrink:0;transition:transform .2s}
.dp-sec-toggle.open{transform:rotate(180deg)}
.dp-sec-body{padding:0 16px;max-height:0;overflow:hidden;transition:max-height .35s ease}
.dp-sec-body.open{padding:16px;max-height:100000px}

/* Ground truth box */
.gt-box{border:1px solid rgba(0,212,255,0.35);background:rgba(0,212,255,0.05);border-radius:6px;padding:14px;box-shadow:0 0 20px rgba(0,212,255,0.08)}
.gt-box-title{font-family:var(--mono);font-size:9.5px;letter-spacing:1.5px;color:var(--cyan);font-weight:700;margin-bottom:10px;text-transform:uppercase}
.gt-fact{display:flex;align-items:flex-start;gap:8px;padding:5px 0;border-bottom:1px solid rgba(0,212,255,0.1);font-size:13.5px;line-height:1.4;color:var(--text)}
.gt-fact:last-child{border-bottom:none}
.gt-check{color:var(--cyan);font-size:12px;flex-shrink:0;margin-top:2px}

/* Poles */
.poles-row{display:flex;gap:10px;overflow-x:scroll;overflow-y:visible;-webkit-overflow-scrolling:touch;padding:14px 14px 18px;width:100%}
.poles-row::-webkit-scrollbar{height:5px}
.poles-row::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.15);border-radius:2px}
.pole-card{flex:0 0 230px;min-width:230px;background:rgba(0,0,0,0.3);border-radius:6px;border:1px solid var(--border);display:flex;flex-direction:column}
.pole-card-body-scroll{display:flex;flex-direction:column}
.pole-card-body-scroll::-webkit-scrollbar{width:3px}
.pole-card-body-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.12)}
.pole-subsec{border-top:1px solid rgba(255,255,255,0.06)}
.pole-subsec-hdr{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;cursor:pointer;font-family:var(--mono);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);user-select:none;transition:background .15s}
.pole-subsec-hdr:hover{background:rgba(255,255,255,0.04)}
.pole-subsec-arrow{font-size:9px;transition:transform .2s}
.pole-subsec-body{padding:0 12px 0;max-height:0;overflow:hidden;transition:max-height .2s ease}
.pole-subsec-body.open{max-height:9999px;padding-bottom:10px}
.pole-summary{padding:8px 12px;font-size:12px;color:var(--text);line-height:1.5;border-top:1px solid rgba(255,255,255,0.06)}
.pole-hdr{padding:8px 12px;font-weight:700;font-size:12px;letter-spacing:.3px}
.pole-body{padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.pole-sources{display:flex;flex-wrap:wrap;gap:3px}
.pole-src{font-size:9.5px;font-family:var(--mono);background:rgba(255,255,255,0.06);border:1px solid var(--border);border-radius:3px;padding:1px 5px;color:var(--dim)}
.pole-claims{display:flex;flex-direction:column;gap:3px}
.pole-claim{font-size:12px;color:var(--text);padding-left:10px;position:relative;line-height:1.35}
.pole-claim::before{content:'›';position:absolute;left:0;color:var(--accent)}
.pole-framing{font-size:12px;color:var(--dim);font-style:italic;line-height:1.4;padding:6px 8px;background:rgba(255,255,255,0.03);border-radius:4px;border-left:2px solid var(--border-b)}
.pole-omissions{display:flex;flex-direction:column;gap:3px}
.pole-omission{font-size:11.5px;color:var(--prop);display:flex;align-items:flex-start;gap:5px;line-height:1.35}
.pole-sub{font-family:var(--mono);font-size:9px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);margin-bottom:3px}

/* Mini graph */
#mini-graph{width:100%;height:280px}

/* Validity */
.validity-bar-wrap{margin-bottom:12px}
.validity-bar-bg{height:10px;background:rgba(255,255,255,0.05);border-radius:5px;overflow:hidden;position:relative}
.validity-bar-fill{height:100%;border-radius:5px;transition:width .6s}
.validity-score-big{font-family:var(--mono);font-size:28px;font-weight:700;margin-bottom:4px}
.issues-list{display:flex;flex-direction:column;gap:8px}
.issue-item{background:rgba(0,0,0,0.3);border:1px solid var(--border);border-radius:6px;padding:10px 12px}
.issue-meta{display:flex;align-items:center;gap:6px;margin-bottom:5px;flex-wrap:wrap}
.badge-sev-low{background:rgba(246,173,85,0.1);color:var(--prop);border:1px solid rgba(246,173,85,0.2)}
.badge-sev-medium{background:rgba(252,129,129,0.1);color:var(--vd);border:1px solid rgba(252,129,129,0.2)}
.badge-sev-high{background:rgba(255,68,68,0.15);color:#ff4444;border:1px solid rgba(255,68,68,0.3)}
.issue-desc{font-size:12.5px;color:var(--dim);line-height:1.4}
.claims-list{display:flex;flex-direction:column;gap:5px}
.claim-item{display:flex;align-items:flex-start;gap:7px;font-size:12.5px;line-height:1.4;padding:5px 0;border-bottom:1px solid var(--border)}
.claim-item:last-child{border-bottom:none}
.claim-icon{flex-shrink:0;margin-top:1px;font-size:12px}

/* Propaganda */
.prop-sev-badge{display:inline-block;font-family:var(--mono);font-size:14px;font-weight:700;letter-spacing:1px;padding:6px 16px;border-radius:6px;text-transform:uppercase;margin-bottom:10px}
.prop-assess{font-size:13.5px;color:var(--text);line-height:1.5;margin-bottom:14px;padding:10px 12px;background:rgba(255,255,255,0.03);border-radius:6px;border-left:2px solid var(--prop)}
.tech-cards{display:flex;flex-direction:column;gap:8px}
.tech-card{background:rgba(0,0,0,0.3);border:1px solid var(--border);border-radius:6px;padding:10px 12px}
.tech-meta{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.tech-src{font-family:var(--mono);font-size:9.5px;background:rgba(246,173,85,0.1);color:var(--prop);border:1px solid rgba(246,173,85,0.25);border-radius:3px;padding:1px 6px}
.tech-label{font-weight:700;font-size:12.5px;color:var(--text)}
.tech-example{font-size:12px;color:var(--dim);font-style:italic;border-left:2px solid var(--prop);padding:4px 8px;background:rgba(246,173,85,0.04);border-radius:0 4px 4px 0;margin-bottom:5px}
.tech-desc{font-size:12px;color:var(--muted);line-height:1.4}

/* Censorship */
.cens-assess{font-size:13.5px;color:var(--text);line-height:1.5;margin-bottom:12px;padding:10px 12px;background:rgba(183,148,244,0.05);border-radius:6px;border-left:2px solid var(--cens)}
.cens-pole-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.cens-pole{background:rgba(0,0,0,0.3);border:1px solid var(--border);border-radius:6px;padding:10px 12px}
.cens-pole-label{font-weight:700;font-size:12px;margin-bottom:6px;color:var(--cens)}
.cens-buried{display:flex;flex-direction:column;gap:3px}
.cens-buried-item{font-size:12px;color:var(--dim);display:flex;align-items:flex-start;gap:5px;line-height:1.35}
.blind-spots{display:flex;flex-direction:column;gap:6px}
.blind-spot{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;background:rgba(183,148,244,0.06);border:1px solid rgba(183,148,244,0.15);border-radius:5px;font-size:12.5px;color:var(--text);line-height:1.4}
.blind-spot-icon{color:var(--cens);flex-shrink:0;margin-top:1px}

/* Contested Claims */
.contested-table{width:100%;border-collapse:collapse}
.contested-table th{font-family:var(--mono);font-size:9.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);text-align:left;padding:6px 10px;border-bottom:1px solid var(--border)}
.contested-table td{padding:8px 10px;border-bottom:1px solid var(--border);font-size:12.5px;vertical-align:top;line-height:1.4}
.contested-table tr:last-child td{border-bottom:none}
.verdict-badge{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.5px;padding:2px 6px;border-radius:3px;text-transform:uppercase}
.verdict-disputed{background:rgba(252,129,129,0.12);color:var(--vd);border:1px solid rgba(252,129,129,0.25)}
.verdict-confirmed{background:rgba(72,187,120,0.12);color:var(--vg);border:1px solid rgba(72,187,120,0.25)}
.verdict-unverified{background:rgba(246,173,85,0.12);color:var(--prop);border:1px solid rgba(246,173,85,0.25)}
.summary-text{font-size:13.5px;color:var(--dim);line-height:1.5;padding:10px 12px;background:rgba(255,255,255,0.03);border-radius:6px}

/* === SOURCES TAB === */
.sources-table-wrap{padding:0 20px;margin-top:10px;overflow-x:auto}
.sources-table{width:100%;border-collapse:collapse}
.sources-table th{font-family:var(--mono);font-size:9.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);text-align:left;padding:10px 14px;border-bottom:1px solid var(--border-b);cursor:pointer;white-space:nowrap;user-select:none}
.sources-table th:hover{color:var(--cyan)}
.sources-table th .sort-arrow{margin-left:4px;opacity:.5}
.sources-table td{padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}
.sources-table tr:hover td{background:var(--card)}
.bias-pill{font-family:var(--mono);font-size:9.5px;font-weight:700;padding:2px 8px;border-radius:10px;letter-spacing:.5px;text-transform:uppercase}
.bias-pill-left{background:rgba(74,158,255,0.15);color:var(--left);border:1px solid rgba(74,158,255,0.3)}
.bias-pill-center{background:rgba(160,174,192,0.12);color:var(--center);border:1px solid rgba(160,174,192,0.25)}
.bias-pill-right{background:rgba(255,107,107,0.12);color:var(--right);border:1px solid rgba(255,107,107,0.25)}
.bias-pill-international{background:rgba(72,187,120,0.12);color:var(--intl);border:1px solid rgba(72,187,120,0.25)}

/* === ANALYZE TAB === */
.analyze-section{padding:0 20px;max-width:700px;margin-top:20px}
.analyze-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:24px}
.analyze-title{font-family:var(--mono);font-size:11px;letter-spacing:2px;color:var(--cyan);text-transform:uppercase;font-weight:700;margin-bottom:6px}
.analyze-desc{font-size:13.5px;color:var(--dim);margin-bottom:18px;line-height:1.5}
.analyze-input-row{display:flex;gap:8px}
.analyze-input{flex:1;background:rgba(0,0,0,0.4);border:1px solid var(--border-b);border-radius:6px;color:var(--text);font-family:var(--font);font-size:13.5px;padding:10px 14px;outline:none;transition:border-color .2s}
.analyze-input:focus{border-color:var(--accent)}
.analyze-submit{background:var(--accent);border:none;color:#fff;font-family:var(--mono);font-weight:700;font-size:11.5px;letter-spacing:.8px;padding:10px 18px;border-radius:6px;cursor:pointer;transition:all .2s;white-space:nowrap}
.analyze-submit:hover{background:#6a94ff;box-shadow:0 0 16px rgba(82,126,255,0.3)}
.analyze-status{margin-top:14px;padding:12px 16px;border-radius:6px;font-size:13px;display:none}
.analyze-status.show{display:block}
.analyze-status.info{background:rgba(82,126,255,0.08);border:1px solid rgba(82,126,255,0.2);color:var(--accent)}
.analyze-status.success{background:rgba(72,187,120,0.08);border:1px solid rgba(72,187,120,0.2);color:var(--vg)}
.analyze-status.error{background:rgba(252,129,129,0.08);border:1px solid rgba(252,129,129,0.2);color:var(--vd)}

/* === LOADING === */
.loading-state{display:flex;align-items:center;justify-content:center;height:200px;flex-direction:column;gap:14px}
.spinner{width:32px;height:32px;border:2px solid var(--border);border-top-color:var(--cyan);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-txt{font-family:var(--mono);font-size:11px;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase}

/* Sprint 15B: Skeleton loading cards */
.skeleton-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px;min-height:180px;position:relative;overflow:hidden}
.skeleton-card::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.04),transparent);animation:skeleton-shimmer 1.5s infinite}
@keyframes skeleton-shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.skeleton-card::before{content:'';display:block;height:10px;width:60%;background:rgba(255,255,255,0.06);border-radius:4px;margin-bottom:12px}

/* === EMPTY STATE === */
.empty-state{text-align:center;padding:50px 20px;color:var(--muted);font-size:14px}
.empty-icon{font-size:36px;margin-bottom:10px;opacity:.4}

/* === SCROLLBAR DETAIL === */
.dp-body::-webkit-scrollbar{width:4px}
.dp-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.1);border-radius:2px}

/* === TOOLTIP === */
.tooltip{position:fixed;z-index:9999;background:#1a2840;border:1px solid var(--border-b);border-radius:6px;padding:8px 12px;font-family:var(--mono);font-size:11px;color:var(--text);pointer-events:none;max-width:200px;box-shadow:0 4px 20px rgba(0,0,0,0.5);display:none}

/* === TICKER BAR (optional polish) === */
.ticker-bar{background:rgba(0,0,0,0.3);border-top:1px solid var(--border);border-bottom:1px solid var(--border);overflow:hidden;height:26px;display:flex;align-items:center}
.ticker-label{font-family:var(--mono);font-size:9px;letter-spacing:1.5px;color:var(--cyan);background:var(--cyan);color:#000;padding:0 10px;height:100%;display:flex;align-items:center;font-weight:700;flex-shrink:0}
.ticker-scroll{white-space:nowrap;animation:ticker-move 40s linear infinite;font-family:var(--mono);font-size:10px;color:var(--dim);padding-left:20px}
.ticker-scroll:hover{animation-play-state:paused}
@keyframes ticker-move{from{transform:translateX(100vw)}to{transform:translateX(-100%)}}

/* Legend */
.viz-legend{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.legend-item{display:flex;align-items:center;gap:4px;font-size:9.5px;color:var(--dim)}
.legend-dot{width:7px;height:7px;border-radius:50%}
.legend-sq{width:10px;height:7px;border-radius:1px}

/* ===================== STORY ANALYSIS CHARTS ===================== */
.chart-title{font-family:var(--mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.chart-wrap{margin-bottom:20px;background:rgba(0,0,0,0.2);border-radius:6px;padding:12px}
.chart-wrap svg{width:100%;display:block;overflow:visible}
.chart-no-data{color:var(--muted);font-size:12px;font-family:var(--mono);padding:12px 0;text-align:center}

/* === SPRINT 13: AUTH + PAYWALL + STORY PAGE === */
.auth-btn-primary{background:var(--accent);border:none;color:#fff;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.5px;padding:6px 14px;border-radius:4px;cursor:pointer;transition:all .2s}
.auth-btn-primary:hover{background:#6a94ff}
.auth-btn-secondary{background:transparent;border:1px solid var(--border-b);color:var(--dim);font-family:var(--mono);font-size:11px;font-weight:600;padding:5px 12px;border-radius:4px;cursor:pointer;transition:all .2s}
.auth-btn-secondary:hover{color:var(--text);border-color:var(--accent)}
.auth-btn-user{background:transparent;border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:11px;padding:5px 10px;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s}
.auth-btn-user:hover{border-color:var(--accent)}
.tier-badge{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:1px;padding:2px 6px;border-radius:3px}
.tier-free{background:rgba(160,174,192,0.15);color:var(--center);border:1px solid rgba(160,174,192,0.3)}
.tier-plus{background:rgba(82,126,255,0.15);color:var(--accent);border:1px solid rgba(82,126,255,0.3)}
.tier-pro{background:rgba(0,212,255,0.15);color:var(--cyan);border:1px solid rgba(0,212,255,0.3)}
.tier-edu{background:rgba(72,187,120,0.15);color:var(--vg);border:1px solid rgba(72,187,120,0.3)}
.user-dropdown{position:absolute;right:0;top:calc(100% + 6px);background:var(--surface2);border:1px solid var(--border-b);border-radius:8px;min-width:160px;z-index:500;box-shadow:0 8px 24px rgba(0,0,0,0.5)}
.user-dropdown-item{padding:10px 16px;font-size:13px;color:var(--text);cursor:pointer;transition:background .15s}
.user-dropdown-item:hover{background:var(--card)}
.user-dropdown-divider{height:1px;background:var(--border);margin:4px 0}
.auth-modal-overlay{position:fixed;inset:0;z-index:600;background:rgba(0,0,0,0.75);display:flex;align-items:center;justify-content:center;padding:20px}
.auth-modal{background:var(--surface);border:1px solid var(--border-b);border-radius:12px;padding:32px;width:100%;max-width:420px;position:relative}
.auth-modal-close{position:absolute;top:14px;right:14px;background:none;border:none;color:var(--dim);font-size:16px;cursor:pointer;padding:4px 8px}
.auth-modal-logo{font-family:var(--mono);font-size:10px;letter-spacing:3px;color:var(--muted);text-transform:uppercase;margin-bottom:20px}
.auth-modal-title{font-size:20px;font-weight:800;color:#fff;margin-bottom:20px}
.auth-field{margin-bottom:14px}
.auth-field label{display:block;font-size:11px;color:var(--muted);font-family:var(--mono);letter-spacing:.5px;text-transform:uppercase;margin-bottom:6px}
.auth-field input{width:100%;background:rgba(0,0,0,0.4);border:1px solid var(--border-b);border-radius:6px;color:var(--text);font-family:var(--font);font-size:14px;padding:10px 14px;outline:none;transition:border-color .2s}
.auth-field input:focus{border-color:var(--accent)}
.auth-submit-btn{width:100%;background:var(--accent);border:none;color:#fff;font-family:var(--mono);font-size:13px;font-weight:700;padding:12px;border-radius:6px;cursor:pointer;transition:all .2s;margin-top:6px}
.auth-submit-btn:hover{background:#6a94ff}
.auth-switch{font-size:12px;color:var(--muted);margin-top:16px;text-align:center}
.auth-switch a{color:var(--accent);text-decoration:none}
.auth-error{background:rgba(252,129,129,0.08);border:1px solid rgba(252,129,129,0.25);border-radius:6px;padding:10px 14px;color:var(--vd);font-size:13px;margin-bottom:14px}

/* === PAYWALL GATE === */
.paywall-gate{position:relative;overflow:hidden;border-radius:8px}
.paywall-blur{filter:blur(6px);pointer-events:none;user-select:none;opacity:0.4}
.paywall-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(8,15,26,0.85);backdrop-filter:blur(2px);border-radius:8px;padding:20px;text-align:center;border:1px solid var(--border)}
.paywall-icon{font-size:24px;margin-bottom:8px}
.paywall-title{font-size:15px;font-weight:700;color:#fff;margin-bottom:6px}
.paywall-desc{font-size:12px;color:var(--dim);margin-bottom:14px;line-height:1.5}
.paywall-cta-btn{background:var(--accent);border:none;color:#fff;font-family:var(--mono);font-size:11px;font-weight:700;padding:8px 18px;border-radius:6px;cursor:pointer;transition:all .2s}
.paywall-cta-btn:hover{background:#6a94ff}

/* === STORY PAGE === */
.story-page{padding:30px 24px 80px;max-width:900px;margin:0 auto}
.story-page-back{display:inline-flex;align-items:center;gap:6px;color:var(--dim);font-size:13px;cursor:pointer;margin-bottom:20px;transition:color .2s}
.story-page-back:hover{color:var(--text)}
.story-page-cat{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;color:var(--cyan);text-transform:uppercase;margin-bottom:8px}
.story-page-h1{font-size:28px;font-weight:900;color:#fff;line-height:1.25;margin-bottom:12px}
.story-page-sub{font-size:16px;color:var(--dim);margin-bottom:20px}
.story-page-meta{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--border)}
.story-page-section{margin-bottom:28px}
.story-page-sec-title{font-family:var(--mono);font-size:10px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.related-stories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:12px}
.related-story-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px;cursor:pointer;transition:all .2s}
.related-story-card:hover{border-color:var(--accent);transform:translateY(-1px)}
.related-story-card h4{font-size:13px;font-weight:600;color:var(--text);line-height:1.3;margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sources-coverage-grid{display:grid;gap:8px;margin-top:10px}
.source-coverage-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:6px}
.source-coverage-name{font-weight:600;font-size:13px;color:var(--text);min-width:120px}
.source-coverage-bias{font-family:var(--mono);font-size:10px}

/* === PRICING PAGE === */
.pricing-page{padding:40px 24px 80px;max-width:1000px;margin:0 auto}
.pricing-header{text-align:center;margin-bottom:40px}
.pricing-h1{font-size:32px;font-weight:900;color:#fff;margin-bottom:10px}
.pricing-sub{font-size:16px;color:var(--dim);max-width:500px;margin:0 auto 20px}
.pricing-toggle{display:inline-flex;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:4px;gap:2px}
.pricing-toggle-btn{background:none;border:none;color:var(--dim);font-family:var(--mono);font-size:11px;font-weight:600;padding:6px 16px;border-radius:6px;cursor:pointer;transition:all .2s}
.pricing-toggle-btn.active{background:var(--accent);color:#fff}
.pricing-cards{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:40px}
.pricing-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:28px 24px;position:relative;transition:all .2s}
.pricing-card.popular{border-color:var(--accent);box-shadow:0 0 30px rgba(82,126,255,0.2)}
.pricing-popular-badge{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--accent);color:#fff;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:1px;padding:3px 12px;border-radius:10px;white-space:nowrap}
.pricing-card-name{font-family:var(--mono);font-size:12px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;margin-bottom:8px}
.pricing-card-price{font-size:36px;font-weight:900;color:#fff;line-height:1;margin-bottom:4px}
.pricing-card-price span{font-size:16px;font-weight:400;color:var(--dim)}
.pricing-card-period{font-size:12px;color:var(--muted);margin-bottom:20px}
.pricing-card-features{list-style:none;margin-bottom:24px;display:flex;flex-direction:column;gap:8px}
.pricing-card-features li{display:flex;align-items:flex-start;gap:8px;font-size:13.5px;color:var(--text)}
.pricing-card-features li::before{content:'✓';color:var(--vg);font-weight:700;flex-shrink:0;margin-top:1px}
.pricing-card-features li.disabled{color:var(--muted)}
.pricing-card-features li.disabled::before{content:'✕';color:var(--muted)}
.pricing-cta-btn{width:100%;background:var(--accent);border:none;color:#fff;font-family:var(--mono);font-size:12px;font-weight:700;padding:12px;border-radius:8px;cursor:pointer;transition:all .2s}
.pricing-cta-btn:hover{background:#6a94ff;box-shadow:0 4px 16px rgba(82,126,255,0.3)}
.pricing-cta-btn.secondary{background:transparent;border:1px solid var(--border-b);color:var(--text)}
.pricing-cta-btn.secondary:hover{border-color:var(--accent);color:var(--accent);background:transparent}
.pricing-faq{max-width:700px;margin:0 auto}
.pricing-faq-title{font-family:var(--mono);font-size:11px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;margin-bottom:20px;text-align:center}
.faq-item{border-bottom:1px solid var(--border);padding:16px 0}
.faq-q{font-size:15px;font-weight:600;color:var(--text);cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.faq-a{font-size:13.5px;color:var(--dim);line-height:1.6;margin-top:10px;display:none}

/* === NEWSLETTER PAGE === */
.newsletter-page{padding:60px 24px;max-width:600px;margin:0 auto;text-align:center}
.newsletter-h1{font-size:32px;font-weight:900;color:#fff;margin-bottom:12px}
.newsletter-sub{font-size:16px;color:var(--dim);line-height:1.6;margin-bottom:32px}
.newsletter-form{display:flex;gap:8px;max-width:480px;margin:0 auto}
.newsletter-input{flex:1;background:rgba(0,0,0,0.4);border:1px solid var(--border-b);border-radius:8px;color:var(--text);font-size:14px;padding:12px 16px;outline:none}
.newsletter-input:focus{border-color:var(--accent)}
.newsletter-submit{background:var(--accent);border:none;color:#fff;font-family:var(--mono);font-size:12px;font-weight:700;padding:12px 20px;border-radius:8px;cursor:pointer;white-space:nowrap}
.newsletter-status{margin-top:16px;font-size:13.5px}
.newsletter-features{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-top:40px;text-align:left}
.newsletter-feature{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px}
.newsletter-feature-icon{font-size:20px;margin-bottom:8px}
.newsletter-feature-title{font-weight:700;font-size:13px;color:var(--text);margin-bottom:4px}
.newsletter-feature-desc{font-size:12px;color:var(--dim);line-height:1.5}

/* === ACCOUNT PAGE === */
.account-page{padding:30px 24px 80px;max-width:700px;margin:0 auto}
.account-h1{font-size:24px;font-weight:900;color:#fff;margin-bottom:6px}
.account-sub{font-size:13px;color:var(--dim);margin-bottom:28px}
.account-section{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:22px;margin-bottom:16px}
.account-sec-title{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;margin-bottom:16px}
.account-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}
.account-row:last-child{border-bottom:none}
.account-label{font-size:13px;color:var(--dim)}
.account-value{font-size:13px;color:var(--text);font-weight:600}
.usage-bar{height:6px;background:rgba(255,255,255,0.08);border-radius:3px;margin-top:8px;overflow:hidden}
.usage-bar-fill{height:100%;border-radius:3px;background:var(--accent);transition:width .5s}
.account-action-btn{background:transparent;border:1px solid var(--border-b);color:var(--dim);font-family:var(--mono);font-size:10px;padding:5px 12px;border-radius:4px;cursor:pointer;transition:all .2s}
.account-action-btn:hover{color:var(--text);border-color:var(--accent)}
.account-danger-btn{background:transparent;border:1px solid rgba(252,129,129,0.3);color:var(--vd);font-family:var(--mono);font-size:10px;padding:5px 12px;border-radius:4px;cursor:pointer;transition:all .2s}
.account-danger-btn:hover{background:rgba(252,129,129,0.08)}

/* === BLOG PAGE === */
.blog-page{padding:30px 24px 80px;max-width:900px;margin:0 auto}
.blog-h1{font-size:28px;font-weight:900;color:#fff;margin-bottom:6px}
.blog-sub{font-size:14px;color:var(--dim);margin-bottom:32px}
.blog-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.blog-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:22px;cursor:pointer;transition:all .2s}
.blog-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.blog-card-category{font-family:var(--mono);font-size:9px;letter-spacing:1.5px;color:var(--cyan);text-transform:uppercase;margin-bottom:8px}
.blog-card-title{font-size:17px;font-weight:700;color:#fff;line-height:1.3;margin-bottom:10px}
.blog-card-excerpt{font-size:13px;color:var(--dim);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.blog-card-meta{display:flex;gap:12px;margin-top:12px;font-size:11px;color:var(--muted);font-family:var(--mono)}
.blog-post-page{padding:40px 24px 80px;max-width:720px;margin:0 auto}
.blog-post-title{font-size:30px;font-weight:900;color:#fff;line-height:1.2;margin-bottom:16px}
.blog-post-meta{font-size:11px;color:var(--muted);font-family:var(--mono);margin-bottom:28px;display:flex;gap:16px}
.blog-post-body{font-size:15px;color:var(--text);line-height:1.75}
.blog-post-body h2{font-size:20px;font-weight:700;color:#fff;margin:32px 0 12px}
.blog-post-body h3{font-size:17px;font-weight:600;color:var(--text);margin:24px 0 10px}
.blog-post-body p{margin-bottom:16px;color:var(--dim)}
.blog-post-body ul,.blog-post-body ol{margin:0 0 16px 20px;color:var(--dim)}
.blog-post-body li{margin-bottom:6px}
.blog-post-body strong{color:var(--text)}
.blog-post-body a{color:var(--accent);text-decoration:none}
.blog-post-body a:hover{text-decoration:underline}

@media (max-width:640px) {
  .pricing-cards{grid-template-columns:1fr}
  .blog-grid{grid-template-columns:1fr}
  .newsletter-features{grid-template-columns:1fr}
  .newsletter-form{flex-direction:column}
}

/* ═══════════════════════════════════════════════════════════
   SPRINT 16: EDITORIAL MAGAZINE REDESIGN
═══════════════════════════════════════════════════════════ */

/* ── EDITORIAL MASTHEAD ── */
.editorial-masthead{border-bottom:2px solid #333;padding:14px 48px;display:flex;align-items:center;gap:20px;background:#0d0d0d;position:sticky;top:0;z-index:200}
.editorial-masthead .masthead-logo{display:inline-flex;align-items:center;font-family:var(--serif);font-size:28px;font-weight:900;letter-spacing:-1px;color:#f0ede8;text-decoration:none;line-height:0}
.editorial-masthead .masthead-logo img{height:76px;width:auto;display:block;max-width:440px;object-fit:contain}
.editorial-masthead .masthead-logo span{color:var(--accent-orange)}
@media (max-width:640px){.editorial-masthead .masthead-logo img{height:60px}}
.editorial-masthead .masthead-date{font-size:13px;font-weight:400;color:#666;letter-spacing:.05em;text-transform:uppercase}
.editorial-masthead .masthead-tagline{margin-left:auto;font-size:12px;color:#555;letter-spacing:.1em;text-transform:uppercase}
.editorial-masthead .masthead-right{display:flex;align-items:center;gap:14px}
.editorial-masthead .live-ind{display:flex;align-items:center;gap:6px}
.editorial-masthead .live-ind .live-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px #22c55e;animation:pulse-live 2s infinite}
.editorial-masthead .live-ind .live-label{font-family:var(--mono);font-size:10px;color:#22c55e;letter-spacing:1px}

/* ── SPRINT 16: DENSITY PICKER ── */
.density-picker{display:flex;gap:2px;background:#1a1a1a;border-radius:6px;padding:3px;margin-left:16px}
.density-btn{width:32px;height:28px;border:none;background:transparent;color:#666;cursor:pointer;border-radius:4px;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .15s}
.density-btn:hover{color:#999;background:#252525}
.density-btn.active{color:#f0ede8;background:#333}
.density-btn.active::after{content:'';position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);width:14px;height:2px;background:var(--accent-orange);border-radius:1px}
.density-btn{position:relative}
.density-btn[title]:hover::before{content:attr(title);position:absolute;bottom:-28px;left:50%;transform:translateX(-50%);background:#222;color:#ccc;font-size:10px;padding:3px 8px;border-radius:3px;white-space:nowrap;z-index:300;font-family:var(--font)}

/* ── SPRINT 16: WIRE DENSITY (text-only, ultra-compact) ── */
.wire-row{display:flex;align-items:center;padding:8px 48px;border-bottom:1px solid #1f2733;cursor:pointer;transition:background .15s}
.wire-row:hover{background:#111}
.wire-row .wire-headline{font-family:var(--serif);font-size:14px;font-weight:600;color:#e8e4df;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wire-row .wire-meta{display:flex;gap:12px;align-items:center;font-size:11px;color:#555;font-family:var(--mono)}
.wire-row .wire-cat{color:var(--accent-orange);letter-spacing:.05em;text-transform:uppercase;font-size:10px}
.wire-row .wire-sources{color:#666}
.wire-row .wire-time{color:#444}
.wire-row .wire-analyzed{color:#22c55e}

/* ── SPRINT 16: INDEX DENSITY (56×56 thumbnails) ── */
.index-row{display:flex;align-items:center;gap:16px;padding:12px 48px;border-bottom:1px solid #1f2733;cursor:pointer;transition:background .15s}
.index-row:hover{background:#111}
.index-row .index-thumb{width:56px;height:56px;border-radius:4px;background:#1a1a1a;flex-shrink:0;overflow:hidden}
.index-row .index-thumb img{width:100%;height:100%;object-fit:cover}
.index-row .index-content{flex:1;min-width:0}
.index-row .index-headline{font-family:var(--serif);font-size:15px;font-weight:600;color:#e8e4df;line-height:1.3;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.index-row .index-meta{display:flex;gap:10px;align-items:center;font-size:11px;color:#555}
.index-row .index-cat{color:var(--accent-orange);letter-spacing:.05em;text-transform:uppercase;font-size:10px}
.index-row .index-summary{font-size:12px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:400px}

/* ── SPRINT 16: DIGEST DENSITY (160×90 thumbnails, 2 lines) ── */
.digest-row{display:flex;align-items:flex-start;gap:20px;padding:20px 48px;border-bottom:1px solid #1f2733;cursor:pointer;transition:background .15s}
.digest-row:hover{background:#111}
.digest-row .digest-thumb{width:160px;height:90px;border-radius:4px;background:#1a1a1a;flex-shrink:0;overflow:hidden}
.digest-row .digest-thumb img{width:100%;height:100%;object-fit:cover}
.digest-row .digest-content{flex:1;min-width:0}
.digest-row .digest-eyebrow{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-orange);margin-bottom:8px;font-weight:600}
.digest-row .digest-headline{font-family:var(--serif);font-size:20px;font-weight:700;color:#e8e4df;line-height:1.25;margin-bottom:8px}
.digest-row .digest-summary{font-size:14px;color:#777;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:12px}
.digest-row .digest-meta{display:flex;gap:12px;align-items:center;font-size:11px;color:#555}
.digest-row .digest-bias-bar{height:3px;width:80px;background:#1a1a1a;border-radius:2px;display:flex;overflow:hidden}
.digest-row .digest-bias-bar span{height:100%}
.digest-row .bias-left{background:#3b82f6}
.digest-row .bias-center{background:#666}
.digest-row .bias-right{background:#ef4444}
.digest-row .bias-intl{background:#8b5cf6}

/* ── SPRINT 16: BROADSHEET DENSITY (full-bleed hero) ── */
.broadsheet-story{position:relative;min-height:85vh;background:#0a0a0a;border-bottom:2px solid #222;overflow:hidden;cursor:pointer}
.broadsheet-story .broadsheet-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.5}
.broadsheet-story .broadsheet-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,#0a0a0a 0%,transparent 40%,transparent 60%,rgba(10,10,10,.8) 100%)}
.broadsheet-story .broadsheet-content{position:relative;z-index:1;padding:80px 64px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;max-width:900px}
.broadsheet-story .broadsheet-eyebrow{font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--accent-orange);margin-bottom:24px;font-weight:600}
.broadsheet-story .broadsheet-headline{font-family:var(--serif);font-size:64px;font-weight:900;line-height:1.0;letter-spacing:-2px;color:#f0ede8;margin-bottom:24px}
.broadsheet-story .broadsheet-lede{font-size:20px;line-height:1.6;color:#aaa;margin-bottom:32px;max-width:700px}
.broadsheet-story .broadsheet-meta{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.broadsheet-story .broadsheet-source-pill{background:#1a1a1a;border:1px solid #333;padding:6px 12px;border-radius:20px;font-size:11px;color:#888}
.broadsheet-story .broadsheet-sparkbar{height:4px;width:120px;background:#1a1a1a;border-radius:2px;display:flex;overflow:hidden}
.broadsheet-story .broadsheet-sparkbar span{height:100%}

/* ── SECTION LABEL ── */
.ed-section-label{padding:20px 48px 16px;border-bottom:1px solid #222}
.ed-section-label h2{font-family:var(--serif);font-size:13px;font-weight:300;letter-spacing:.3em;text-transform:uppercase;color:#666}
.ed-section-label h2 span{color:var(--accent-orange);margin-right:12px}

/* ── EDITORIAL FEED CONTAINER ── */
.editorial-feed{max-width:1400px;margin:0 auto}

/* ── CATEGORY TABS (magazine section style) ── */
.ed-tabs{display:flex;gap:0;border-bottom:2px solid #222;padding:0 48px;background:#0d0d0d;position:sticky;top:76px;z-index:150}
.ed-tab{font-family:var(--serif);font-size:12px;font-weight:300;letter-spacing:.2em;text-transform:uppercase;color:#555;padding:16px 24px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}
.ed-tab:hover{color:#999}
.ed-tab.active{color:var(--accent-orange);border-bottom-color:var(--accent-orange)}
.ed-tab-count{font-family:var(--mono);font-size:10px;color:#444;margin-left:6px}

/* ═══════════════════════════════════════════════
   SPREAD TYPE 0 — HERO SPREAD
═══════════════════════════════════════════════ */
.spread-hero{display:grid;grid-template-columns:1fr 1.4fr;min-height:520px;background:#0d0d0d;border-bottom:1px solid #1a1a1a;position:relative;overflow:hidden;cursor:pointer;transition:all .3s}
.spread-hero:hover{background:#111}
.spread-hero .numeral{position:absolute;top:-40px;left:32px;font-family:var(--serif);font-size:320px;font-weight:900;color:#1a1a1a;line-height:1;pointer-events:none;user-select:none;z-index:0}
.spread-hero .spread-content{position:relative;z-index:1;padding:60px 48px;display:flex;flex-direction:column;justify-content:flex-end}
.spread-hero .eyebrow{font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:var(--accent-orange);margin-bottom:20px;font-weight:600;font-family:var(--font)}
.spread-hero h2{font-family:var(--serif);font-size:56px;font-weight:900;line-height:1.0;letter-spacing:-2px;color:#f0ede8;margin-bottom:24px}
.spread-hero .spread-summary{font-size:17px;line-height:1.65;color:#999;max-width:480px;margin-bottom:28px;font-weight:300}
.spread-hero .spread-meta{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.spread-hero .image-panel{background:#111;position:relative;overflow:hidden}
.spread-hero .image-panel img{width:100%;height:100%;object-fit:cover;opacity:.7;transition:opacity .3s}
.spread-hero:hover .image-panel img{opacity:.85}
.spread-hero .image-panel .img-gradient{position:absolute;inset:0;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);display:flex;align-items:center;justify-content:center}
.spread-hero.no-image{grid-template-columns:1fr;min-height:460px}
.spread-hero.no-image .spread-content{max-width:800px;padding:80px 64px;justify-content:center}

/* ═══════════════════════════════════════════════
   SPREAD TYPE 1 — MIDNIGHT SPREAD
═══════════════════════════════════════════════ */
.spread-midnight{background:linear-gradient(160deg,#0a0f1e 0%,#111827 100%);border-bottom:1px solid #1e2a3a;padding:64px 48px;display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:center;cursor:pointer;transition:all .3s;position:relative;overflow:hidden}
.spread-midnight:hover{background:linear-gradient(160deg,#0e1428 0%,#151f33 100%)}
.spread-midnight .eyebrow{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:#527eff;margin-bottom:20px;font-weight:600;font-family:var(--font)}
.spread-midnight h2{font-family:var(--serif);font-size:48px;font-weight:900;line-height:1.03;letter-spacing:-1.5px;color:#e8ecf8;margin-bottom:20px}
.spread-midnight .spread-summary{font-size:16px;line-height:1.7;color:#6a7fa0;margin-bottom:28px}
.spread-midnight .spread-meta{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.spread-midnight .stat-block{background:rgba(82,126,255,.08);border:1px solid rgba(82,126,255,.15);border-radius:4px;padding:32px;text-align:center}
.spread-midnight .stat-num{font-family:var(--serif);font-size:72px;font-weight:900;color:#527eff;line-height:1;margin-bottom:8px}
.spread-midnight .stat-label{font-size:13px;color:#4a5a7a;letter-spacing:.1em;text-transform:uppercase}

/* Phase 16 tweak 5: Thumbnails on every magazine spread */
.spread-thumb{position:relative;overflow:hidden;border-radius:4px;background:#0a0a0a}
.spread-thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease,opacity .3s ease}
.spread-thumb:hover img{transform:scale(1.02)}
.spread-thumb-midnight{aspect-ratio:4/3;border:1px solid rgba(82,126,255,.18)}
.spread-thumb-midnight::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,transparent 50%,rgba(13,24,41,.55) 100%);pointer-events:none}
.spread-thumb-academic{aspect-ratio:4/3;border:1px solid #d4c8b0;border-radius:2px}
.spread-thumb-academic::after{content:'';position:absolute;inset:0;background:rgba(110,90,50,.10);mix-blend-mode:multiply;pointer-events:none}
.spread-alert.has-thumb{grid-template-columns:auto 1fr 320px;align-items:stretch}
.spread-alert .spread-thumb-alert{align-self:stretch;min-height:240px;border-left:1px solid #2a1010}
.spread-alert .spread-thumb-alert::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,rgba(200,40,40,.18) 0%,transparent 70%);pointer-events:none}
.spread-terminal.has-thumb{padding-right:240px}
.spread-terminal .spread-thumb-terminal{position:absolute;top:48px;right:48px;width:180px;aspect-ratio:1/1;border:1px solid rgba(0,255,65,.25);box-shadow:0 0 24px rgba(0,255,65,.08)}
.spread-terminal .spread-thumb-terminal img{filter:saturate(.4) hue-rotate(80deg) brightness(.85)}
.spread-terminal .spread-thumb-terminal::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,255,65,.12) 0%,transparent 50%,rgba(10,26,10,.6) 100%);pointer-events:none}
.spread-bigstat.has-thumb .bigstat-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.18;filter:saturate(1.1)}
.spread-bigstat.has-thumb .bigstat-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,26,46,.6) 0%,rgba(26,26,46,.85) 100%);pointer-events:none}
.spread-bigstat.has-thumb .spread-content,.spread-bigstat.has-thumb .watermark{position:relative;z-index:1}
@media (max-width:880px){
  .spread-alert.has-thumb{grid-template-columns:auto 1fr}
  .spread-alert .spread-thumb-alert{display:none}
  .spread-terminal.has-thumb{padding-right:48px}
  .spread-terminal .spread-thumb-terminal{position:relative;top:auto;right:auto;width:140px;margin:0 0 20px auto}
}

/* ═══════════════════════════════════════════════
   SPREAD TYPE 2 — ROSE ALERT STAMP
═══════════════════════════════════════════════ */
.spread-alert{background:#1a0808;border-bottom:1px solid #2a1010;padding:64px 48px;display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:start;position:relative;overflow:hidden;cursor:pointer;transition:all .3s}
.spread-alert:hover{background:#1e0a0a}
.spread-alert::before{content:'';position:absolute;top:0;right:0;width:60%;height:100%;background:radial-gradient(ellipse at 80% 50%,rgba(200,40,40,.12) 0%,transparent 70%);pointer-events:none}
.spread-alert .alert-stamp{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);font-family:var(--serif);font-size:120px;font-weight:900;color:#c82828;opacity:.12;line-height:1;user-select:none;align-self:stretch}
.spread-alert .spread-content{position:relative;z-index:1}
.spread-alert .eyebrow{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:#c82828;margin-bottom:18px;font-weight:600;display:flex;align-items:center;gap:10px;font-family:var(--font)}
.spread-alert .eyebrow-dot{width:8px;height:8px;border-radius:50%;background:#c82828;display:inline-block;animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.spread-alert h2{font-family:var(--serif);font-size:46px;font-weight:700;line-height:1.05;letter-spacing:-1.5px;color:#f0ede8;margin-bottom:20px}
.spread-alert .spread-summary{font-size:16px;line-height:1.7;color:#aa8888;max-width:600px;margin-bottom:28px}
.spread-alert .spread-meta{display:flex;gap:20px;align-items:center;flex-wrap:wrap}

/* ═══════════════════════════════════════════════
   SPREAD TYPE 3 — TERMINAL SPREAD
═══════════════════════════════════════════════ */
.spread-terminal{background:#0a1a0a;border-bottom:1px solid #1a2a1a;padding:48px;position:relative;overflow:hidden;cursor:pointer;transition:all .3s}
.spread-terminal:hover{background:#0d1d0d}
.spread-terminal .terminal-prefix{font-family:var(--mono);font-size:13px;color:var(--terminal-green);opacity:.7;margin-bottom:12px;letter-spacing:.05em}
.spread-terminal h2{font-family:var(--serif);font-size:42px;font-weight:900;line-height:1.05;letter-spacing:-1px;color:#d1fae5;margin-bottom:20px}
.spread-terminal .terminal-facts{font-family:var(--mono);font-size:12px;color:var(--terminal-green);opacity:.6;line-height:2;margin-bottom:24px;max-width:600px}
.spread-terminal .terminal-facts span{display:block}
.spread-terminal .spread-meta{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.spread-terminal .numeral{position:absolute;top:20px;right:48px;font-family:var(--mono);font-size:16px;color:var(--terminal-green);opacity:.3}

/* ═══════════════════════════════════════════════
   SPREAD TYPE 4 — ACADEMIC DROP-CAP
═══════════════════════════════════════════════ */
.spread-academic{background:var(--cream);border-bottom:2px solid #e8e0d0;padding:64px 48px;display:grid;grid-template-columns:1fr 1fr;gap:64px;color:#1a1a1a;cursor:pointer;transition:all .3s}
.spread-academic:hover{background:#f2eee4}
.spread-academic .eyebrow{font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:#8a7a6a;margin-bottom:20px;font-weight:600;font-family:var(--font)}
.spread-academic h2{font-family:var(--serif);font-size:46px;font-weight:700;line-height:1.06;letter-spacing:-1.5px;color:#1a1a1a;margin-bottom:24px}
.spread-academic .drop-cap-text::first-letter{font-family:var(--serif);font-size:80px;font-weight:900;line-height:.75;float:left;margin:8px 12px 0 0;color:#8a3a1a}
.spread-academic .drop-cap-text{font-size:17px;line-height:1.75;color:#333;font-weight:300;margin-bottom:24px}
.spread-academic .spread-meta{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.spread-academic .aside{border-left:3px solid #8a3a1a;padding-left:24px}
.spread-academic .aside-label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#8a3a1a;margin-bottom:12px;font-weight:600;font-family:var(--font)}
.spread-academic .aside-stat{font-family:var(--serif);font-size:80px;font-weight:900;color:#1a1a1a;line-height:1;margin-bottom:8px}
.spread-academic .aside-desc{font-size:15px;color:#666;line-height:1.6}
.spread-academic .bias-pill{background:#ddeaff;color:#1a4a8a}
.spread-academic .chip{border-color:#ccc;color:#666;background:rgba(0,0,0,.04)}

/* ═══════════════════════════════════════════════
   SPREAD TYPE 5 — BIG-STAT FINISH
═══════════════════════════════════════════════ */
.spread-bigstat{background:var(--deep-indigo);border-bottom:1px solid #2a2a4e;padding:64px 48px;position:relative;overflow:hidden;cursor:pointer;transition:all .3s}
.spread-bigstat:hover{background:#1f1f33}
.spread-bigstat .watermark{position:absolute;top:50%;right:48px;transform:translateY(-50%);font-family:var(--serif);font-size:220px;font-weight:900;color:rgba(245,158,11,.08);line-height:1;pointer-events:none;user-select:none}
.spread-bigstat .spread-content{position:relative;z-index:1;max-width:700px}
.spread-bigstat .eyebrow{font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:#f59e0b;margin-bottom:20px;font-weight:600;font-family:var(--font)}
.spread-bigstat h2{font-family:var(--serif);font-size:46px;font-weight:900;line-height:1.05;letter-spacing:-1.5px;color:#f0ede8;margin-bottom:20px}
.spread-bigstat .spread-summary{font-size:16px;line-height:1.7;color:#8888aa;margin-bottom:28px}
.spread-bigstat .spread-meta{display:flex;gap:20px;align-items:center;flex-wrap:wrap}

/* ── SHARED EDITORIAL COMPONENTS ── */
.ed-bias-pill{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:6px 14px;border-radius:2px}
.ed-bias-left{background:#1c3a5e;color:#6ca4e0}
.ed-bias-center{background:#1e3a1e;color:#6cca6c}
.ed-bias-right{background:#3a1e1e;color:#e07070}
.ed-bias-intl{background:#2a2a0a;color:#c0a060}
.ed-source-count{font-size:12px;color:#555;letter-spacing:.05em;font-family:var(--mono)}
.ed-source-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px}
.ed-chip{font-size:10px;font-weight:500;letter-spacing:.05em;padding:3px 8px;border-radius:2px;text-transform:uppercase;border:1px solid;font-family:var(--mono)}
.ed-chip-l{color:#6ca4e0;border-color:#1c3a5e;background:rgba(28,58,94,.3)}
.ed-chip-c{color:#aaa;border-color:#333;background:rgba(50,50,50,.3)}
.ed-chip-r{color:#e07070;border-color:#3a1e1e;background:rgba(58,30,30,.3)}
.ed-chip-int{color:#c0a060;border-color:#3a2a0a;background:rgba(58,42,10,.3)}

/* ── STORY PAGE EDITORIAL REDESIGN ── */
.story-page-editorial{background:#0d0d0d;color:#f0ede8;min-height:100vh;padding-bottom:80px}
.sp-back-nav{padding:20px 48px;border-bottom:1px solid #1a1a1a;display:flex;align-items:center;gap:16px}
.sp-back-nav a{font-size:12px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:#555;text-decoration:none;cursor:pointer}
.sp-back-nav a:hover{color:var(--accent-orange)}
.sp-back-nav .sp-logo{display:inline-flex;align-items:center;font-family:var(--serif);font-size:22px;font-weight:900;letter-spacing:-.5px;color:#f0ede8;margin-left:auto;text-decoration:none;line-height:0}
.sp-back-nav .sp-logo img{height:32px;width:auto;display:block;max-width:180px;object-fit:contain}
.sp-back-nav .sp-logo span{color:var(--accent-orange)}

/* Story hero */
.sp-hero{padding:80px 48px 64px;background:#0d0d0d;border-bottom:1px solid #1a1a1a;position:relative;overflow:hidden}
.sp-hero::before{content:'';position:absolute;top:-60px;right:-60px;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(232,93,42,.06) 0%,transparent 65%);pointer-events:none}
.sp-hero .sp-hero-image{margin:-80px -48px 40px;position:relative;background:#0a0a0a;overflow:hidden;aspect-ratio:21/9;max-height:520px}
.sp-hero .sp-hero-image img{width:100%;height:100%;object-fit:cover;display:block}
.sp-hero .sp-hero-image::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,transparent 0%,transparent 55%,#0d0d0d 100%);pointer-events:none}
.sp-hero .sp-hero-credit{position:absolute;bottom:12px;right:16px;font-size:10px;letter-spacing:.05em;color:rgba(240,237,232,.55);font-family:var(--font);text-shadow:0 1px 4px rgba(0,0,0,.6);z-index:1}
.sp-hero .sp-eyebrow{font-size:11px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--accent-orange);margin-bottom:24px;font-family:var(--font)}
.sp-hero h1{font-family:var(--serif);font-size:clamp(48px,7vw,88px);font-weight:900;line-height:.97;letter-spacing:-3px;color:#f0ede8;max-width:900px;margin-bottom:32px}
.sp-hero .sp-lede{font-size:20px;line-height:1.65;color:#888;max-width:680px;font-weight:300;margin-bottom:36px}
.sp-hero .sp-meta-row{display:flex;flex-wrap:wrap;gap:16px;align-items:center;font-size:12px;color:#555;letter-spacing:.08em;text-transform:uppercase}
/* Phase 16 tweak 2: per-source image gallery on detail page */
.sp-gallery{padding:32px 48px;background:#0a0a0a;border-top:1px solid #1a1a1a;border-bottom:1px solid #1a1a1a}
.sp-gallery-label{font-family:var(--font);font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:var(--accent-orange);margin-bottom:18px;font-weight:600}
.sp-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.sp-gallery-card{display:block;background:#111;border:1px solid #1f2733;border-radius:4px;overflow:hidden;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}
.sp-gallery-card:hover{border-color:var(--accent-orange);transform:translateY(-1px)}
.sp-gallery-thumb{aspect-ratio:16/9;background:#0a0a0a;overflow:hidden;position:relative}
.sp-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.sp-gallery-card:hover .sp-gallery-thumb img{transform:scale(1.03)}
.sp-gallery-meta{padding:10px 12px}
.sp-gallery-source{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-orange);margin-bottom:6px}
.sp-gallery-title{display:block;font-family:var(--serif);font-size:13px;line-height:1.35;color:#cfcac3;font-weight:500}
@media (max-width:640px){
  .sp-gallery{padding:24px 20px}
  .sp-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
  .sp-gallery-meta{padding:8px 10px}
  .sp-gallery-title{font-size:12px}
}

/* Key facts strip */
.sp-facts-strip{padding:56px 48px;border-bottom:1px solid #1a1a1a;background:#0a0a0a}
.sp-facts-strip .label{font-size:10px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--accent-orange);margin-bottom:32px;font-family:var(--mono)}
.sp-facts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:32px}
.sp-fact-item{border-left:2px solid rgba(232,93,42,.22);padding-left:20px}
.sp-fact-item .check{color:var(--cyan);font-size:12px;margin-right:6px}
.sp-fact-item p{font-size:14px;color:var(--text);line-height:1.5}

/* Ground truth — academic treatment */
.sp-ground-truth{background:var(--cream);color:#1a1a1a;padding:64px 48px;border-bottom:2px solid #e8e0d0}
.sp-ground-truth .gt-label{font-size:10px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:#8a3a1a;margin-bottom:24px;font-family:var(--mono)}
.sp-ground-truth .gt-content{max-width:800px}
.sp-ground-truth .gt-content .drop-cap::first-letter{font-family:var(--serif);font-size:80px;font-weight:900;line-height:.75;float:left;margin:8px 16px 0 0;color:#8a3a1a}
.sp-ground-truth .gt-content p{font-size:17px;line-height:1.75;color:#333;font-weight:300;margin-bottom:16px}
.sp-ground-truth .gt-pull-quote{border-left:3px solid #8a3a1a;padding:16px 24px;margin:24px 0;font-family:var(--serif);font-size:22px;font-weight:700;line-height:1.3;color:#1a1a1a;font-style:italic}
.sp-ground-truth .gt-facts{margin-top:24px}
.sp-ground-truth .gt-fact{display:flex;gap:8px;padding:8px 0;border-bottom:1px solid #e0d8ca;font-size:14px;color:#333}
.sp-ground-truth .gt-fact:last-child{border-bottom:none}
.sp-ground-truth .gt-fact .check{color:#2a7a2a;flex-shrink:0}

/* Perspectives — colored columns */
.sp-perspectives{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));border-bottom:1px solid #1a1a1a}
.sp-pole-col{padding:48px 36px;border-right:1px solid #1a1a1a;position:relative}
.sp-pole-col:last-child{border-right:none}
.sp-pole-col.pole-left{background:rgba(6,20,40,.5)}
.sp-pole-col.pole-center{background:rgba(255,255,255,.02);border-left:2px solid #333;border-right:2px solid #333}
.sp-pole-col.pole-right{background:rgba(40,6,6,.5)}
.sp-pole-col.pole-intl{background:rgba(30,22,6,.5)}
.sp-pole-label{font-size:10px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.sp-pole-label::before{content:'';display:block;width:24px;height:2px;border-radius:1px;flex-shrink:0}
.pole-left .sp-pole-label{color:#6ca4e0}.pole-left .sp-pole-label::before{background:#6ca4e0}
.pole-center .sp-pole-label{color:#f0ede8}.pole-center .sp-pole-label::before{background:#f0ede8}
.pole-right .sp-pole-label{color:#e07070}.pole-right .sp-pole-label::before{background:#e07070}
.pole-intl .sp-pole-label{color:#c0a060}.pole-intl .sp-pole-label::before{background:#c0a060}
.sp-pole-headline{font-family:var(--serif);font-size:18px;font-weight:700;line-height:1.2;letter-spacing:-.3px;margin-bottom:14px}
.pole-left .sp-pole-headline{color:#c8dcf0}
.pole-center .sp-pole-headline{color:#f0ede8;font-size:22px}
.pole-right .sp-pole-headline{color:#f0c8c8}
.pole-intl .sp-pole-headline{color:#f0dca8}
.sp-pole-body{font-size:14px;line-height:1.75;color:#888;font-weight:300;margin-bottom:20px}
.sp-pole-claims{margin-bottom:16px}
.sp-pole-claim{font-size:13px;color:var(--text);padding-left:14px;position:relative;line-height:1.5;margin-bottom:6px}
.sp-pole-claim::before{content:'▸';position:absolute;left:0}
.sp-pole-sources{font-size:11px;color:#555;font-family:var(--mono)}

/* What's missing — rose alert */
.sp-missing{background:#1a0808;color:#f0ede8;padding:64px 48px;border-bottom:1px solid #2a1010;position:relative;overflow:hidden}
.sp-missing::before{content:'⚠';position:absolute;top:50%;right:80px;transform:translateY(-50%);font-size:200px;opacity:.04;pointer-events:none}
.sp-missing .missing-label{font-size:10px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:#c82828;margin-bottom:24px;font-family:var(--mono);display:flex;align-items:center;gap:10px}
.sp-missing .missing-label .dot{width:8px;height:8px;border-radius:50%;background:#c82828;animation:pulse 2s ease-in-out infinite}
.sp-missing h3{font-family:var(--serif);font-size:32px;font-weight:700;line-height:1.1;letter-spacing:-1px;color:#9090ff;margin-bottom:16px}
.sp-missing .missing-items{display:flex;flex-direction:column;gap:12px;max-width:800px}
.sp-missing .missing-item{display:flex;gap:12px;font-size:14px;line-height:1.6;color:#aa8888}
.sp-missing .missing-item::before{content:'▸';color:#c82828;flex-shrink:0;margin-top:2px}

/* Propaganda — terminal */
.sp-propaganda{background:#0a1a0a;color:#d1fae5;padding:64px 48px;border-bottom:1px solid #1a2a1a;position:relative;overflow:hidden}
.sp-propaganda .prop-label{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--terminal-green);margin-bottom:24px}
.sp-propaganda .prop-assessment{font-size:15px;line-height:1.6;color:rgba(209,250,229,.6);margin-bottom:24px;padding:16px;background:rgba(0,255,65,.04);border-left:2px solid var(--terminal-green);font-family:var(--mono);font-size:13px}
.sp-propaganda .tech-list{display:flex;flex-direction:column;gap:12px}
.sp-propaganda .tech-item{background:rgba(0,255,65,.04);border:1px solid rgba(0,255,65,.12);border-radius:4px;padding:14px;font-family:var(--mono);font-size:12px}
.sp-propaganda .tech-item .tech-name{color:var(--terminal-green);font-weight:700;margin-bottom:6px}
.sp-propaganda .tech-item .tech-source{color:rgba(0,255,65,.4);font-size:11px;margin-bottom:6px}
.sp-propaganda .tech-item .tech-desc{color:rgba(209,250,229,.5);line-height:1.5}

/* Sources — big stat */
.sp-sources{background:var(--deep-indigo);padding:64px 48px;position:relative;overflow:hidden;border-bottom:1px solid #2a2a4e}
.sp-sources .source-watermark{position:absolute;top:50%;right:48px;transform:translateY(-50%);font-family:var(--serif);font-size:200px;font-weight:900;color:rgba(245,158,11,.06);line-height:1;pointer-events:none;user-select:none}
.sp-sources .sources-label{font-size:10px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:#f59e0b;margin-bottom:24px;font-family:var(--mono)}
.sp-sources .sources-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;position:relative;z-index:1}
.sp-sources .source-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:12px 16px;display:flex;align-items:center;gap:10px}
.sp-sources .source-card .src-name{font-size:13px;font-weight:600;color:#f0ede8}
.sp-sources .source-card .src-bias{font-family:var(--mono);font-size:10px;padding:2px 6px;border-radius:2px;margin-left:auto}

/* CTA box */
.sp-cta{background:var(--surface);border:1px solid var(--accent);border-radius:10px;padding:24px;text-align:center;margin:32px 48px}

/* ── SKELETON LOADING ── */
.skeleton{background:linear-gradient(90deg,rgba(255,255,255,.04) 25%,rgba(255,255,255,.08) 50%,rgba(255,255,255,.04) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.skeleton-spread{min-height:400px;margin-bottom:1px}
.skeleton-spread-sm{min-height:240px;margin-bottom:1px}

/* ── RESPONSIVE: EDITORIAL ── */
@media(max-width:900px){
  .spread-hero{grid-template-columns:1fr;min-height:auto}
  .spread-hero .image-panel{min-height:200px}
  .spread-hero h2{font-size:36px}
  .spread-hero .numeral{font-size:180px}
  .spread-hero .spread-content{padding:40px 24px}
  .spread-midnight{grid-template-columns:1fr;padding:40px 24px}
  .spread-midnight h2{font-size:32px}
  .spread-midnight .stat-block{display:none}
  .spread-alert{grid-template-columns:1fr;padding:40px 24px}
  .spread-alert .alert-stamp{display:none}
  .spread-alert h2{font-size:32px}
  .spread-terminal{padding:40px 24px}
  .spread-terminal h2{font-size:28px}
  .spread-academic{grid-template-columns:1fr;padding:40px 24px;gap:24px}
  .spread-academic h2{font-size:32px}
  .spread-bigstat{padding:40px 24px}
  .spread-bigstat h2{font-size:32px}
  .spread-bigstat .watermark{font-size:120px}
  .editorial-masthead{padding:16px 20px}
  .ed-tabs{padding:0 20px;overflow-x:auto}
  .ed-section-label{padding:32px 20px 16px}
  .sp-hero{padding:48px 24px 40px}
  .sp-hero .sp-hero-image{margin:-48px -24px 28px;aspect-ratio:16/9;max-height:280px}
  .sp-hero h1{font-size:36px;letter-spacing:-1px}
  .sp-facts-strip{padding:40px 24px}
  .sp-facts-grid{grid-template-columns:1fr 1fr}
  .sp-ground-truth{padding:40px 24px}
  .sp-perspectives{grid-template-columns:1fr}
  .sp-pole-col{border-right:none;border-bottom:1px solid #1a1a1a}
  .sp-missing{padding:40px 24px}
  .sp-propaganda{padding:40px 24px}
  .sp-sources{padding:40px 24px}
  .sp-cta{margin:24px 20px}
}
@media(max-width:600px){
  .spread-hero h2{font-size:28px}
  .spread-midnight h2{font-size:26px}
  .spread-alert h2{font-size:26px}
  .spread-academic h2{font-size:26px}
  .spread-bigstat h2{font-size:26px}
  .sp-hero h1{font-size:28px}
  .sp-facts-grid{grid-template-columns:1fr}
}
/* SPRINT 16: Mobile density adjustments */
@media(max-width:768px){
  .density-picker{gap:1px;padding:2px}
  .density-btn{width:28px;height:24px;font-size:12px}
  .wire-row{padding:8px 20px}
  .wire-row .wire-headline{font-size:13px}
  .index-row{padding:10px 20px;gap:12px}
  .index-row .index-thumb{width:48px;height:48px}
  .index-row .index-headline{font-size:14px}
  .digest-row{padding:16px 20px;gap:14px}
  .digest-row .digest-thumb{width:100px;height:56px}
  .digest-row .digest-headline{font-size:17px}
  .digest-row .digest-summary{font-size:13px;-webkit-line-clamp:1}
  .broadsheet-story{min-height:60vh}
  .broadsheet-story .broadsheet-content{padding:40px 24px}
  .broadsheet-story .broadsheet-headline{font-size:36px}
  .broadsheet-story .broadsheet-lede{font-size:16px}
}
