:root { --bg1: #0d1321; --bg2: #1d2d50; --accent: #1f3b98; --panel: rgba(12, 18, 32, 0.55); --panel-2: rgba(10, 12, 22, 0.72); --text: #eef2ff; --muted: rgba(238, 242, 255, 0.7); --headline-font: clamp(18px, 2.4vw, 40px); } * { box-sizing: border-box; } html, body { height: 100%; } body { margin: 0; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Helvetica Neue", sans-serif; color: var(--text); overflow: hidden; background: #070b14; } .stage { position: relative; height: 100vh; width: 100vw; display: grid; grid-template-rows: auto 1fr auto; } .bg { position: absolute; inset: 0; background: /* Dark overlay for readability */ /*linear-gradient(180deg, rgba(0,0,0,0.55), rgba(0,0,0,0.55)),*/ /* Default/fallback background */ radial-gradient(1200px 600px at 70% 20%, rgba(100, 150, 255, 0.35), transparent 55%), radial-gradient(900px 500px at 20% 70%, rgba(20, 255, 190, 0.16), transparent 55%), linear-gradient(130deg, var(--bg1), var(--bg2)); background-position: center; background-repeat: no-repeat; background-size: cover; transform: scale(1.02); filter: saturate(1.2) contrast(1.05); animation: bgFloat 18s ease-in-out infinite; } @keyframes bgFloat { 0%, 100% { transform: scale(1.03) translate3d(0, 0, 0); } 50% { transform: scale(1.06) translate3d(-1.2%, -0.8%, 0); } } .feed-header { position: relative; z-index: 2; padding: clamp(16px, 3vw, 32px); } .brand { display: inline-flex; align-items: center; gap: 14px; background: rgba(255, 255, 255, 0.92); color: #0b1020; border-radius: 10px; padding: 10px 14px; box-shadow: 0 14px 40px rgba(0,0,0,0.35); transform-origin: left center; animation: popIn 600ms cubic-bezier(.2,.9,.2,1) both; } @keyframes popIn { from { opacity: 0; transform: translateY(8px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } } .brand__logo { width: 48px; height: 48px; } .brand__title { font-weight: 700; font-size: 22px; letter-spacing: 0.2px; } .headline { position: relative; z-index: 2; align-self: end; margin: 0 clamp(12px, 3vw, 32px) clamp(56px, 8vh, 96px); max-width: min(1100px, 94vw); } .headline__link { display: block; text-decoration: none; color: var(--text); background: linear-gradient(90deg, rgba(9, 14, 30, 0.0), rgba(12, 18, 40, 0.86) 12%, rgba(12, 18, 40, 0.86) 88%, rgba(9, 14, 30, 0.0)); border-left: 8px solid rgba(66, 120, 255, 0.85); padding: clamp(14px, 2vw, 22px) clamp(14px, 2.6vw, 28px); box-shadow: 0 18px 60px rgba(0,0,0,0.45); backdrop-filter: blur(10px); } .headline__text { display: block; font-size: var(--headline-font); line-height: 1.15; letter-spacing: 0.2px; text-wrap: balance; } .headline__progress { height: 3px; background: rgba(255,255,255,0.18); margin-top: 10px; border-radius: 999px; overflow: hidden; } .headline__progressFill { height: 100%; width: 0%; background: linear-gradient(90deg, rgba(90, 160, 255, 0.9), rgba(20, 255, 200, 0.75)); } .meta { position: relative; z-index: 2; display: flex; justify-content: space-between; align-items: end; gap: 12px; padding: 16px clamp(12px, 3vw, 32px); } .meta__time { font-variant-numeric: tabular-nums; background: rgba(12, 18, 40, 0.85); padding: 8px 12px; border-radius: 8px; box-shadow: 0 12px 34px rgba(0,0,0,0.35); border: 1px solid rgba(255,255,255,0.14); display: inline-flex; flex-direction: column; gap: 2px; } .meta__hint { color: var(--muted); font-size: 12px; user-select: none; } /* Slide animation states (toggled by JS) */ .slide-out { animation: slideOut 360ms ease both; } .slide-in { animation: slideIn 520ms cubic-bezier(.16,.9,.2,1) both; } @keyframes slideOut { from { opacity: 1; transform: translateX(0); filter: blur(0); } to { opacity: 0; transform: translateX(-16px); filter: blur(2px); } } @keyframes slideIn { from { opacity: 0; transform: translateX(18px); filter: blur(3px); } to { opacity: 1; transform: translateX(0); filter: blur(0); } } @media (max-width: 560px) { .brand__title { font-size: 18px; } .brand__logo { width: 40px; height: 40px; } .meta__hint { display: none; } .headline { margin-bottom: 64px; } } .meta__timePrimary { font-size: 14px; } .meta__timeSecondary { font-size: 12px; color: var(--muted); }