190 lines
4.3 KiB
CSS
190 lines
4.3 KiB
CSS
: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);
|
|
}
|