/* tanso.news */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { background: #FAFAF8; color: #1A1A1A; font-family: 'Source Sans Pro', Georgia, serif; font-weight: 400; line-height: 1.75; }
.ticker-banner { background: #D32F2F; overflow: hidden; white-space: nowrap; padding: 6px 0; }
.ticker-track { display: inline-block; animation: tickerScroll 30s linear infinite; }
@keyframes tickerScroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
.ticker-text { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 0.75rem; color: #FFFFFF; letter-spacing: 0.02em; padding: 0 2rem; }
.masthead { border-bottom: 3px solid #1A1A1A; }
.masthead-inner { max-width: 960px; margin: 0 auto; padding: 1rem 2rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.5rem; }
.masthead-brand { font-family: Georgia, serif; font-weight: 700; font-size: 1.5rem; color: #1A1A1A; letter-spacing: -0.01em; }
.masthead-nav { display: flex; gap: 1.25rem; }
.masthead-nav a { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.1em; color: #333333; text-decoration: none; }
.masthead-nav a:hover { color: #D32F2F; }
.category-label { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.1em; color: #D32F2F; display: block; margin-bottom: 0.35rem; }
.section-rule { border: none; border-top: 1px solid #CCCCCC; margin-bottom: 1.25rem; }
.lead-story { border-bottom: 1px solid #CCCCCC; }
.lead-inner { max-width: 960px; margin: 0 auto; padding: 2.5rem 2rem; }
.lead-headline { font-family: Georgia, serif; font-weight: 700; font-size: 2.8rem; color: #1A1A1A; letter-spacing: -0.01em; line-height: 1.15; margin-bottom: 0.75rem; }
.lead-meta { font-size: 0.85rem; color: #999999; margin-bottom: 1rem; }
.lead-lede { font-size: 1.15rem; color: #333333; max-width: 720px; }
.news-grid { max-width: 960px; margin: 0 auto; padding: 2rem; }
.news-grid-inner { display: grid; grid-template-columns: 2fr 1fr; gap: 2rem; }
.main-column { min-width: 0; }
.story-item { padding: 1.25rem 0; border-bottom: 1px solid #CCCCCC; }
.story-marker { width: 6px; height: 6px; background: #D32F2F; display: inline-block; margin-right: 0.5rem; vertical-align: middle; }
.story-headline { font-family: Georgia, serif; font-weight: 700; font-size: 1.3rem; color: #1A1A1A; letter-spacing: -0.01em; line-height: 1.25; margin-bottom: 0.4rem; }
.story-summary { font-size: 0.95rem; color: #333333; margin-bottom: 0.4rem; }
.story-meta { font-size: 0.8rem; color: #999999; }
.sidebar-column { position: sticky; top: 1rem; align-self: start; }
.sidebar-widget { background: #F5F5F0; padding: 1.25rem; margin-bottom: 1rem; }
.data-card { display: flex; justify-content: space-between; padding: 0.4rem 0; border-bottom: 1px solid #CCCCCC; }
.data-label { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.1em; color: #999999; }
.data-value { font-family: Georgia, serif; font-weight: 700; font-size: 0.95rem; color: #1A1A1A; }
.trending-list { padding-left: 1.25rem; }
.trending-list li { font-size: 0.9rem; color: #333333; padding: 0.3rem 0; border-bottom: 1px solid #CCCCCC; }
.trending-list li:last-child { border-bottom: none; }
.opinion-item { display: flex; gap: 0.75rem; align-items: flex-start; padding: 0.5rem 0; border-bottom: 1px solid #CCCCCC; }
.opinion-item:last-child { border-bottom: none; }
.opinion-avatar { width: 40px; height: 40px; border-radius: 50%; background: #CCCCCC; border: 1px solid #999999; flex-shrink: 0; }
.opinion-title { font-family: Georgia, serif; font-weight: 700; font-size: 0.9rem; color: #1A1A1A; line-height: 1.25; }
.opinion-author { font-size: 0.75rem; color: #999999; }
.subscribe-section { background: #1A1A1A; padding: 3rem 2rem; text-align: center; }
.subscribe-inner { max-width: 600px; margin: 0 auto; }
.subscribe-title { font-family: Georgia, serif; font-weight: 700; font-size: 2rem; color: #FAFAF8; letter-spacing: -0.01em; margin-bottom: 0.5rem; }
.subscribe-desc { font-size: 1rem; color: #999999; margin-bottom: 1.25rem; }
.subscribe-btn { display: inline-block; background: #D32F2F; color: #FFFFFF; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 0.85rem; padding: 0.65rem 2rem; text-decoration: none; letter-spacing: 0.02em; }
.footer { border-top: 1px solid #CCCCCC; }
.footer-inner { max-width: 960px; margin: 0 auto; padding: 2rem; }
.footer-topics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; margin-bottom: 1.5rem; }
.topic-heading { font-family: 'Inter', sans-serif; font-weight: 600; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.1em; color: #1A1A1A; display: block; margin-bottom: 0.5rem; }
.topic-group a { display: block; font-size: 0.85rem; color: #0066CC; text-decoration: none; padding: 0.15rem 0; }
.footer-bottom { display: flex; justify-content: center; gap: 1.5rem; margin-bottom: 0.75rem; }
.flink { font-size: 0.8rem; color: #0066CC; text-decoration: none; }
.footer-copy { font-size: 0.75rem; color: #999999; text-align: center; }
@media (max-width: 640px) { .news-grid-inner { grid-template-columns: 1fr; } .footer-topics { grid-template-columns: 1fr 1fr; } .lead-headline { font-size: 1.8rem; } }
.fade-in { opacity: 0; transform: translateY(12px); transition: opacity 0.5s ease, transform 0.5s ease; }
.fade-in.visible { opacity: 1; transform: translateY(0); }
