/* =========================================================
   news_duskviolet · 暮色紫罗兰
   Class prefix: dsv-
   ========================================================= */

:root {
  --dsv-violet: #5b3a8e;
  --dsv-violet-light: #7a4fb5;
  --dsv-rose: #c15f8f;
  --dsv-orange: #e8798a;
  --dsv-indigo: #1c1730;
  --dsv-bg: #faf8fc;
  --dsv-ink: #2a2338;
  --dsv-muted: #7a7288;
  --dsv-line: #e7e0f0;
  --dsv-sky: linear-gradient(180deg, var(--dsv-violet) 0%, var(--dsv-rose) 55%, var(--dsv-indigo) 100%);
  --dsv-radius: 14px;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }

.dsv-body {
  font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  background: var(--dsv-bg);
  color: var(--dsv-ink);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

a { text-decoration: none; color: inherit; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, p { margin: 0; }
img { max-width: 100%; display: block; }

.dsv-page { max-width: 1200px; margin: 0 auto; padding: 0 20px 60px; }

/* ---------- Header ---------- */
.dsv-header {
  position: relative;
  background: var(--dsv-indigo);
  overflow: hidden;
}
.dsv-header__glow {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--dsv-violet), var(--dsv-orange), var(--dsv-indigo));
}
.dsv-header__bar {
  max-width: 1200px;
  margin: 0 auto;
  padding: 14px 20px;
  display: flex;
  align-items: center;
  gap: 24px;
}
.dsv-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex-shrink: 0;
}
.dsv-brand__logo { height: 40px; width: auto; }
.dsv-brand__name {
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: .5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 220px;
  min-width: 0;
}
.dsv-navtoggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 32px;
  height: 32px;
  background: transparent;
  border: none;
  cursor: pointer;
  margin-left: auto;
}
.dsv-navtoggle i {
  display: block;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transition: transform .2s ease, opacity .2s ease;
}
.dsv-navtoggle.is-open i:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.dsv-navtoggle.is-open i:nth-child(2) { opacity: 0; }
.dsv-navtoggle.is-open i:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.dsv-nav { flex: 1; min-width: 0; }
.dsv-nav__list {
  display: flex;
  flex-wrap: wrap;
  gap: 2px;
}
.dsv-nav__item { position: relative; }
.dsv-nav__link {
  display: block;
  padding: 10px 16px;
  color: rgba(255,255,255,.82);
  font-size: 14.5px;
  border-left: 3px solid transparent;
  background: linear-gradient(90deg, transparent, transparent);
  transition: background .25s ease, color .2s ease, border-color .2s ease;
}
.dsv-nav__link:hover {
  color: #fff;
  background: linear-gradient(90deg, transparent, rgba(232,121,138,.22));
}
.dsv-nav__link.is-active {
  color: #fff;
  border-left-color: var(--dsv-orange);
  background: linear-gradient(90deg, rgba(91,58,142,.45), rgba(232,121,138,.12));
}

/* ---------- Hero (star sky) ---------- */
.dsv-hero {
  position: relative;
  background: var(--dsv-sky);
  overflow: hidden;
  padding: 64px 20px 96px;
}
.dsv-hero__sky {
  position: absolute;
  inset: 0;
  width: 1600px;
  max-width: none;
}
.dsv-hero__sky::before,
.dsv-hero__sky::after {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background: transparent;
}
.dsv-hero__sky::before {
  box-shadow: 1309px 57px #fff, 51px 379px #fff, 563px 125px #fff, 457px 71px #fff, 1508px 52px #fff, 1385px 379px #fff, 1116px 44px #fff, 1209px 216px #fff, 65px 15px #fff, 191px 111px #fff, 476px 258px #fff, 1232px 13px #fff, 1149px 101px #fff, 1466px 332px #fff, 1436px 279px #fff, 859px 112px #fff, 919px 301px #fff, 569px 414px #fff, 13px 388px #fff, 326px 357px #fff, 865px 174px #fff, 569px 79px #fff, 440px 390px #fff, 689px 52px #fff, 189px 194px #fff, 198px 183px #fff, 704px 309px #fff, 541px 413px #fff, 88px 373px #fff, 940px 274px #fff, 255px 193px #fff, 161px 282px #fff, 600px 321px #fff, 1266px 185px #fff, 1182px 98px #fff, 1442px 35px #fff, 93px 338px #fff, 466px 395px #fff, 592px 40px #fff, 476px 51px #fff, 778px 142px #fff, 928px 325px #fff, 747px 83px #fff, 758px 181px #fff, 429px 343px #fff, 546px 359px #fff, 1399px 331px #fff, 146px 311px #fff, 1300px 87px #fff, 1093px 373px #fff, 501px 83px #fff, 946px 194px #fff, 552px 327px #fff, 1409px 285px #fff, 449px 350px #fff, 664px 393px #fff, 1589px 28px #fff, 469px 420px #fff, 65px 412px #fff, 646px 205px #fff, 548px 33px #fff, 432px 290px #fff, 1470px 161px #fff, 435px 335px #fff, 1022px 202px #fff, 1316px 234px #fff, 292px 135px #fff, 285px 126px #fff, 1525px 287px #fff, 1103px 134px #fff, 1529px 299px #fff, 877px 298px #fff, 817px 185px #fff, 449px 70px #fff, 1043px 252px #fff, 186px 386px #fff, 96px 56px #fff, 313px 321px #fff, 327px 405px #fff, 1393px 216px #fff, 1221px 32px #fff, 788px 195px #fff, 1220px 239px #fff, 1083px 128px #fff, 1133px 5px #fff, 1393px 369px #fff, 234px 349px #fff, 1099px 384px #fff, 546px 393px #fff, 1312px 174px #fff;
  opacity: .8;
}
.dsv-hero__sky::after {
  width: 3px;
  height: 3px;
  box-shadow: 228px 150px #fff, 890px 80px #fff, 929px 1px #fff, 1478px 368px #fff, 539px 256px #fff, 1560px 91px #fff, 1039px 54px #fff, 1280px 152px #fff, 1308px 259px #fff, 1247px 101px #fff, 313px 191px #fff, 1561px 82px #fff, 1104px 398px #fff, 1086px 0px #fff, 1226px 165px #fff, 1000px 9px #fff, 229px 185px #fff, 629px 122px #fff, 118px 123px #fff, 1161px 40px #fff, 175px 374px #fff, 995px 417px #fff, 141px 389px #fff, 1090px 392px #fff, 257px 65px #fff, 1351px 243px #fff, 1125px 84px #fff, 542px 270px #fff, 1242px 216px #fff, 433px 276px #fff, 1546px 373px #fff, 1412px 102px #fff, 1460px 159px #fff, 817px 343px #fff, 1330px 191px #fff;
  opacity: .9;
}
.dsv-hero__content {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  text-align: left;
}
.dsv-hero__kicker {
  color: rgba(255,255,255,.75);
  font-size: 13px;
  letter-spacing: 2px;
  margin-bottom: 14px;
  text-transform: uppercase;
}
.dsv-hero__title {
  font-size: 42px;
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 14px;
  color: #f4eefc;
  background: linear-gradient(90deg, #ffffff 0%, #ffd9e2 55%, #e8798a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.dsv-hero__sub {
  color: rgba(255,255,255,.82);
  font-size: 15.5px;
  max-width: 640px;
}

/* ---------- Trio panel: 2fr 1fr 1fr ---------- */
.dsv-triopanel {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 20px;
  margin: -48px auto 40px;
  max-width: 1200px;
  padding: 0 20px;
  position: relative;
  z-index: 2;
}
.dsv-feature {
  background: #fff;
  border-radius: var(--dsv-radius);
  box-shadow: 0 18px 40px rgba(28,23,48,.16);
  overflow: hidden;
  height: 100%;
}
.dsv-feature__link {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 28px;
  height: 100%;
}
.dsv-feature__corner {
  position: absolute;
  right: 0; bottom: 0;
  width: 90px; height: 90px;
  clip-path: polygon(100% 100%, 100% 60%, 40% 100%);
  background: linear-gradient(135deg, var(--dsv-violet), var(--dsv-orange));
  pointer-events: none;
}
.dsv-feature__meta { display: flex; align-items: center; gap: 10px; }
.dsv-feature__tag {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  background: var(--dsv-violet);
  color: #fff;
  font-size: 12px;
}
.dsv-feature__date { color: var(--dsv-muted); font-size: 13px; }
.dsv-feature__title {
  font-size: 24px;
  font-weight: 800;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.dsv-feature__info {
  color: var(--dsv-muted);
  font-size: 14px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.dsv-feature__hits { color: var(--dsv-muted); font-size: 12.5px; margin-top: auto; }
.dsv-feature:hover .dsv-feature__title { color: var(--dsv-violet); }

.dsv-triopanel__col {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.dsv-minicard {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 10px 24px rgba(28,23,48,.10);
  overflow: hidden;
  flex: 1;
}
.dsv-minicard__link {
  position: relative;
  display: block;
  padding: 16px 18px;
  height: 100%;
}
.dsv-minicard__corner {
  position: absolute;
  right: 0; bottom: 0;
  width: 46px; height: 46px;
  clip-path: polygon(100% 100%, 100% 60%, 40% 100%);
  pointer-events: none;
}
.dsv-triopanel__col:first-of-type .dsv-minicard:nth-child(1) .dsv-minicard__corner { background: linear-gradient(135deg, var(--dsv-violet), var(--dsv-violet-light)); }
.dsv-triopanel__col:first-of-type .dsv-minicard:nth-child(2) .dsv-minicard__corner { background: linear-gradient(135deg, var(--dsv-violet-light), var(--dsv-rose)); }
.dsv-triopanel__col:first-of-type .dsv-minicard:nth-child(3) .dsv-minicard__corner { background: linear-gradient(135deg, var(--dsv-rose), var(--dsv-orange)); }
.dsv-triopanel__col:first-of-type .dsv-minicard:nth-child(4) .dsv-minicard__corner { background: linear-gradient(135deg, var(--dsv-orange), var(--dsv-rose)); }
.dsv-triopanel__col:last-of-type .dsv-minicard:nth-child(1) .dsv-minicard__corner { background: linear-gradient(135deg, var(--dsv-orange), var(--dsv-violet)); }
.dsv-triopanel__col:last-of-type .dsv-minicard:nth-child(2) .dsv-minicard__corner { background: linear-gradient(135deg, var(--dsv-rose), var(--dsv-violet-light)); }
.dsv-triopanel__col:last-of-type .dsv-minicard:nth-child(3) .dsv-minicard__corner { background: linear-gradient(135deg, var(--dsv-violet-light), var(--dsv-violet)); }
.dsv-triopanel__col:last-of-type .dsv-minicard:nth-child(4) .dsv-minicard__corner { background: linear-gradient(135deg, var(--dsv-violet), var(--dsv-rose)); }
.dsv-minicard__title {
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.dsv-minicard__date { color: var(--dsv-muted); font-size: 12px; }
.dsv-minicard:hover .dsv-minicard__title { color: var(--dsv-violet); }

/* ---------- Layout: main + right aside ---------- */
.dsv-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 30px;
  align-items: start;
}
.dsv-main { min-width: 0; }
.dsv-aside { min-width: 0; }

.dsv-section { margin-bottom: 36px; }
.dsv-section__head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 18px;
}
.dsv-section__title {
  font-size: 20px;
  font-weight: 800;
  color: var(--dsv-ink);
  background: linear-gradient(90deg, var(--dsv-violet), var(--dsv-orange));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.dsv-section__line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, var(--dsv-line), transparent);
  min-width: 0;
}

/* card grid: up to 3 columns on desktop (>=260px each within 1200px container) */
.dsv-cardgrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(260px, 1fr));
  gap: 18px;
}
.dsv-card {
  background: #fff;
  border-radius: var(--dsv-radius);
  box-shadow: 0 8px 22px rgba(28,23,48,.08);
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease;
}
.dsv-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 32px rgba(28,23,48,.14);
}
.dsv-card__link {
  position: relative;
  display: block;
  padding: 18px;
}
.dsv-card__corner {
  position: absolute;
  right: 0; bottom: 0;
  width: 54px; height: 54px;
  clip-path: polygon(100% 100%, 100% 60%, 40% 100%);
  pointer-events: none;
}
.dsv-card:nth-child(3n+1) .dsv-card__corner { background: linear-gradient(135deg, var(--dsv-violet), var(--dsv-violet-light)); }
.dsv-card:nth-child(3n+2) .dsv-card__corner { background: linear-gradient(135deg, var(--dsv-violet-light), var(--dsv-rose)); }
.dsv-card:nth-child(3n+3) .dsv-card__corner { background: linear-gradient(135deg, var(--dsv-rose), var(--dsv-orange)); }
.dsv-card__body { padding-right: 20px; }
.dsv-card__title {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.dsv-card__info {
  color: var(--dsv-muted);
  font-size: 13px;
  margin-bottom: 10px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.dsv-card__meta {
  display: flex;
  justify-content: space-between;
  color: var(--dsv-muted);
  font-size: 12px;
}
.dsv-card:hover .dsv-card__title { color: var(--dsv-violet); }

.dsv-linelist__item { border-bottom: 1px dashed var(--dsv-line); }
.dsv-linelist__item:last-child { border-bottom: none; }
.dsv-linelist__link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 4px;
}
.dsv-linelist__title {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 14.5px;
}
.dsv-linelist__date { color: var(--dsv-muted); font-size: 12.5px; flex-shrink: 0; }
.dsv-linelist__link:hover .dsv-linelist__title { color: var(--dsv-violet); }

/* ---------- Aside (right, non-sticky) ---------- */
.dsv-aside__block {
  background: #fff;
  border-radius: var(--dsv-radius);
  padding: 18px 20px;
  margin-bottom: 20px;
  box-shadow: 0 6px 18px rgba(28,23,48,.06);
}
.dsv-aside__title {
  font-size: 15px;
  font-weight: 800;
  margin-bottom: 12px;
  padding-left: 10px;
  border-left: 4px solid var(--dsv-orange);
}
.dsv-aside__catlist li,
.dsv-aside__linklist li,
.dsv-aside__navlist li {
  border-bottom: 1px solid var(--dsv-line);
}
.dsv-aside__catlist li:last-child,
.dsv-aside__linklist li:last-child,
.dsv-aside__navlist li:last-child { border-bottom: none; }
.dsv-aside__catlist a,
.dsv-aside__linklist a,
.dsv-aside__navlist a {
  display: block;
  padding: 9px 2px;
  font-size: 14px;
  color: var(--dsv-ink);
}
.dsv-aside__catlist a:hover,
.dsv-aside__linklist a:hover,
.dsv-aside__navlist a:hover { color: var(--dsv-violet); }

.dsv-aside__ranklist { counter-reset: dsv-rank; }
.dsv-aside__ranklist li {
  counter-increment: dsv-rank;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid var(--dsv-line);
}
.dsv-aside__ranklist li:last-child { border-bottom: none; }
.dsv-aside__ranklist li::before {
  content: counter(dsv-rank);
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  line-height: 20px;
  text-align: center;
  border-radius: 5px;
  font-size: 12px;
  color: #fff;
  background: linear-gradient(135deg, var(--dsv-violet), var(--dsv-orange));
}
.dsv-aside__ranklist li a {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 14px;
  flex: 1;
}
.dsv-aside__ranklist li a:hover { color: var(--dsv-violet); }

/* ---------- Breadcrumbs ---------- */
.dsv-crumbs { padding: 16px 20px 0; max-width: 1200px; margin: 0 auto; }
.dsv-crumbs__inner {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--dsv-muted);
}
.dsv-crumbs__link:hover { color: var(--dsv-violet); }
.dsv-crumbs__sep { color: var(--dsv-line); }
.dsv-crumbs__current {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--dsv-ink);
}

/* ---------- List head ---------- */
.dsv-listhead {
  position: relative;
  padding: 18px 20px 22px;
  max-width: 1200px;
  margin: 0 auto;
}
.dsv-listhead__title {
  font-size: 26px;
  font-weight: 800;
  color: var(--dsv-ink);
  background: linear-gradient(90deg, var(--dsv-violet), var(--dsv-orange));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
}
.dsv-listhead__glow {
  display: block;
  width: 64px;
  height: 4px;
  border-radius: 4px;
  margin-top: 10px;
  background: linear-gradient(90deg, var(--dsv-violet), var(--dsv-orange));
}

/* ---------- Post rows (list page) ---------- */
.dsv-postrows { display: flex; flex-direction: column; gap: 14px; }
.dsv-postrow {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 6px 16px rgba(28,23,48,.06);
  overflow: hidden;
}
.dsv-postrow__link {
  position: relative;
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 18px 20px;
}
.dsv-postrow__corner {
  position: absolute;
  right: 0; bottom: 0;
  width: 44px; height: 44px;
  clip-path: polygon(100% 100%, 100% 60%, 40% 100%);
  pointer-events: none;
}
.dsv-postrow:nth-child(3n+1) .dsv-postrow__corner { background: linear-gradient(135deg, var(--dsv-violet), var(--dsv-violet-light)); }
.dsv-postrow:nth-child(3n+2) .dsv-postrow__corner { background: linear-gradient(135deg, var(--dsv-violet-light), var(--dsv-rose)); }
.dsv-postrow:nth-child(3n+3) .dsv-postrow__corner { background: linear-gradient(135deg, var(--dsv-rose), var(--dsv-orange)); }
.dsv-postrow__text { flex: 1; min-width: 0; }
.dsv-postrow__title {
  font-size: 16.5px;
  font-weight: 700;
  margin-bottom: 6px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.dsv-postrow__info {
  color: var(--dsv-muted);
  font-size: 13px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.dsv-postrow__meta {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-end;
  color: var(--dsv-muted);
  font-size: 12px;
  min-width: 90px;
}
.dsv-postrow:hover .dsv-postrow__title { color: var(--dsv-violet); }

.dsv-pager {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 26px;
}
.dsv-pager__btn {
  padding: 8px 14px;
  border-radius: 8px;
  background: #fff;
  border: 1px solid var(--dsv-line);
  font-size: 13.5px;
  color: var(--dsv-ink);
}
.dsv-pager__btn:hover {
  border-color: var(--dsv-violet);
  color: var(--dsv-violet);
  background: linear-gradient(90deg, rgba(91,58,142,.06), rgba(232,121,138,.06));
}

/* ---------- Article (show page) ---------- */
.dsv-article {
  background: #fff;
  border-radius: var(--dsv-radius);
  box-shadow: 0 8px 24px rgba(28,23,48,.08);
  padding: 30px 32px;
  margin-bottom: 22px;
}
.dsv-article__head {
  border-bottom: 1px solid var(--dsv-line);
  padding-bottom: 16px;
  margin-bottom: 20px;
}
.dsv-article__title {
  font-size: 26px;
  font-weight: 800;
  line-height: 1.4;
  margin-bottom: 12px;
}
.dsv-article__meta { color: var(--dsv-muted); font-size: 13px; }
.dsv-article__body {
  font-size: 15.5px;
  color: var(--dsv-ink);
  line-height: 1.9;
}
.dsv-article__body img { border-radius: 10px; margin: 10px 0; }
.dsv-article__body p { margin-bottom: 14px; }

/* ---------- Prev / Next ---------- */
.dsv-prevnext {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.dsv-prevnext__item {
  background: #fff;
  border-radius: 12px;
  padding: 16px 18px;
  box-shadow: 0 6px 16px rgba(28,23,48,.06);
  min-width: 0;
}
.dsv-prevnext__label {
  display: block;
  font-size: 12px;
  color: var(--dsv-muted);
  margin-bottom: 6px;
}
.dsv-prevnext__link {
  display: block;
  font-size: 14.5px;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}
.dsv-prevnext__link:hover { color: var(--dsv-violet); }

/* ---------- Footer ---------- */
.dsv-footer {
  position: relative;
  margin-top: 40px;
  background: var(--dsv-indigo);
  overflow: hidden;
}
.dsv-footer__sky {
  position: absolute;
  inset: 0;
  width: 1600px;
}
.dsv-footer__sky::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 2px; height: 2px;
  border-radius: 50%;
  background: transparent;
  box-shadow: 897px 231px #fff, 247px 126px #fff, 460px 32px #fff, 692px 10px #fff, 1204px 117px #fff, 1205px 112px #fff, 14px 36px #fff, 1449px 30px #fff, 468px 34px #fff, 64px 169px #fff, 145px 121px #fff, 570px 248px #fff, 438px 67px #fff, 1481px 242px #fff, 497px 242px #fff, 833px 97px #fff, 193px 49px #fff, 1349px 220px #fff, 725px 216px #fff, 841px 239px #fff, 1493px 27px #fff, 1379px 50px #fff, 124px 206px #fff, 1491px 173px #fff, 223px 127px #fff, 392px 97px #fff, 1098px 229px #fff, 287px 216px #fff, 375px 142px #fff, 947px 127px #fff, 154px 226px #fff, 1127px 50px #fff, 103px 7px #fff, 191px 121px #fff, 340px 208px #fff, 994px 246px #fff, 437px 205px #fff, 120px 84px #fff, 776px 1px #fff, 799px 135px #fff, 931px 146px #fff, 866px 249px #fff, 317px 97px #fff, 607px 111px #fff, 119px 31px #fff, 1531px 160px #fff, 117px 25px #fff, 1196px 244px #fff, 1029px 80px #fff, 116px 260px #fff, 164px 95px #fff, 140px 34px #fff, 1382px 120px #fff, 826px 61px #fff, 1166px 126px #fff, 1185px 20px #fff, 1268px 41px #fff, 858px 161px #fff, 534px 104px #fff, 1371px 160px #fff;
  opacity: .6;
}
.dsv-footer__inner {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 20px 20px;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 24px;
}
.dsv-footer__col--brand { min-width: 0; }
.dsv-footer__logo { height: 34px; filter: brightness(0) invert(1); margin-bottom: 12px; }
.dsv-footer__desc { color: rgba(255,255,255,.65); font-size: 13.5px; }
.dsv-footer__title {
  color: #fff;
  font-size: 14.5px;
  font-weight: 700;
  margin-bottom: 14px;
}
.dsv-footer__list li { margin-bottom: 9px; }
.dsv-footer__list a { color: rgba(255,255,255,.65); font-size: 13.5px; }
.dsv-footer__list a:hover { color: var(--dsv-orange); }
.dsv-footer__bottom {
  position: relative;
  z-index: 1;
  border-top: 1px solid rgba(255,255,255,.1);
  padding: 16px 20px 22px;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  color: rgba(255,255,255,.55);
  font-size: 12.5px;
}

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .dsv-triopanel { grid-template-columns: 1fr; }
  .dsv-triopanel__col { flex-direction: row; }
  .dsv-minicard { flex: 1; }
  .dsv-cardgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dsv-layout { grid-template-columns: 1fr 260px; }
  .dsv-footer__inner { grid-template-columns: 1.2fr 1fr 1fr; }
  .dsv-footer__col--brand { grid-column: 1 / -1; }
}

@media (max-width: 768px) {
  .dsv-nav { flex-basis: 100%; order: 3; max-height: 0; overflow: hidden; transition: max-height .25s ease; }
  .dsv-nav.is-open { max-height: 480px; }
  .dsv-header__bar { flex-wrap: wrap; }
  .dsv-navtoggle { display: flex; }
  .dsv-nav__list { flex-direction: column; padding: 6px 0 14px; }

  .dsv-cardgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dsv-layout { grid-template-columns: 1fr; }
  .dsv-aside { order: 2; }
  .dsv-hero__title { font-size: 32px; }
  .dsv-footer__inner { grid-template-columns: 1fr 1fr; }
  .dsv-postrow__link { flex-wrap: wrap; }
  .dsv-postrow__meta { flex-direction: row; align-items: center; min-width: 0; }
}

@media (max-width: 480px) {
  .dsv-cardgrid { grid-template-columns: 1fr; }
  .dsv-triopanel__col { flex-direction: column; }
  .dsv-hero { padding: 48px 16px 72px; }
  .dsv-hero__title { font-size: 26px; }
  .dsv-prevnext { grid-template-columns: 1fr; }
  .dsv-footer__inner { grid-template-columns: 1fr; }
  .dsv-article { padding: 20px; }
}
