
/* Lusty Looters v84 announcements redesign */
:root {
  --ll-ann-glow: rgba(15,104,234,.28);
  --ll-ann-blue: rgba(95,161,255,.9);
  --ll-ann-blue-soft: rgba(95,161,255,.16);
  --ll-ann-gold: rgba(247,198,107,.94);
}

.ll-ann-page {
  position: relative;
}

.ll-ann-page::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 520px;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 15%, rgba(95,161,255,.12), transparent 28%),
    radial-gradient(circle at 80% 0%, rgba(15,104,234,.20), transparent 34%),
    linear-gradient(180deg, rgba(8,14,26,.55), transparent);
}

.ann-hero {
  position: relative;
  padding: 46px 0 18px;
}

.ann-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(320px, .8fr);
  gap: 26px;
  align-items: stretch;
}

.ann-hero-main,
.ann-hero-side,
.ann-feed-shell,
.ann-info-card,
.ann-empty-card,
.ann-error-card,
.ann-post {
  background: linear-gradient(160deg, rgba(10,18,32,.96), rgba(4,8,16,.96));
  border: 1px solid rgba(35,85,150,.55);
  border-radius: 22px;
  box-shadow: 0 20px 54px rgba(0,0,0,.34), inset 0 0 0 1px rgba(255,255,255,.03);
}

.ann-hero-main,
.ann-hero-side,
.ann-feed-shell {
  position: relative;
  overflow: hidden;
}

.ann-hero-main::before,
.ann-hero-side::before,
.ann-feed-shell::before,
.ann-post::before,
.ann-info-card::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(95,161,255,.85), transparent);
  opacity: .85;
}

.ann-hero-main {
  padding: 30px 32px;
}

.ann-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(95,161,255,.28);
  background: rgba(15,104,234,.08);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: rgba(205,225,255,.88);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.ann-kicker-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #5fa1ff;
  box-shadow: 0 0 12px rgba(95,161,255,.92);
  animation: annPulse 1.5s ease-in-out infinite;
}

@keyframes annPulse {
  0%, 100% { opacity: .45; transform: scale(.82); }
  50% { opacity: 1; transform: scale(1.22); }
}

.ann-hero-title {
  margin: 18px 0 14px;
  font-family: 'Cinzel', serif;
  font-size: clamp(30px, 4.8vw, 58px);
  line-height: .98;
  letter-spacing: -.02em;
  color: #fff;
}

.ann-hero-title em {
  color: #5fa1ff;
  font-style: normal;
}

.ann-hero-desc {
  max-width: 760px;
  color: rgba(212,226,249,.84);
  font-size: 15px;
  line-height: 1.65;
}

.ann-stat-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 24px;
}

.ann-stat {
  padding: 14px 14px 13px;
  border-radius: 18px;
  border: 1px solid rgba(95,161,255,.18);
  background: rgba(9,18,34,.72);
}

.ann-stat-label {
  display: block;
  margin-bottom: 8px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  color: rgba(164,192,235,.72);
  letter-spacing: .15em;
  text-transform: uppercase;
}

.ann-stat-value {
  display: block;
  font-family: 'Cinzel', serif;
  font-size: 18px;
  color: #fff;
}

.ann-hero-side {
  padding: 24px 24px 22px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.ann-side-title {
  font-family: 'Cinzel', serif;
  font-size: 18px;
  color: #fff;
}

.ann-side-list {
  display: grid;
  gap: 12px;
}

.ann-side-item {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  align-items: start;
  padding: 12px 12px;
  border-radius: 16px;
  border: 1px solid rgba(95,161,255,.14);
  background: rgba(9,16,28,.66);
}

.ann-side-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 12px;
  background: rgba(15,104,234,.12);
  border: 1px solid rgba(95,161,255,.18);
  font-size: 16px;
}

.ann-side-item strong {
  display: block;
  margin-bottom: 4px;
  color: #fff;
  font-size: 13px;
}

.ann-side-item span {
  display: block;
  color: rgba(200,220,248,.74);
  font-size: 12px;
  line-height: 1.5;
}

.ann-feed-wrap {
  padding: 6px 0 60px;
}

.ann-feed-shell {
  padding: 20px;
}

.ann-feed-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
  padding: 4px 4px 18px;
  border-bottom: 1px solid rgba(95,161,255,.12);
  margin-bottom: 20px;
}

.ann-feed-heading {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.ann-feed-heading h2 {
  margin: 0;
  font-family: 'Cinzel', serif;
  font-size: 24px;
  color: #fff;
}

.ann-feed-heading p,
.ann-top-meta,
.ann-empty-card p,
.ann-error-card p,
.ann-info-card p {
  margin: 0;
  color: rgba(196,217,247,.72);
  font-size: 13px;
  line-height: 1.6;
}

.ann-feed-chipbar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.ann-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(95,161,255,.18);
  background: rgba(15,104,234,.07);
  color: rgba(215,230,255,.88);
  font-size: 11px;
  font-family: 'JetBrains Mono', monospace;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.ann-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  gap: 18px;
}

.ann-post {
  position: relative;
  overflow: hidden;
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transform: translateY(10px);
  opacity: 0;
  animation: annCardIn .55s cubic-bezier(.2,.65,.2,1) forwards;
  animation-delay: calc(var(--i, 0) * 70ms);
}

@keyframes annCardIn {
  to { transform: translateY(0); opacity: 1; }
}

.ann-post:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 64px rgba(0,0,0,.4), 0 0 26px rgba(15,104,234,.14);
  border-color: rgba(95,161,255,.42);
}

.ann-post-head {
  display: flex;
  align-items: center;
  gap: 14px;
}

.ann-avatar,
.ann-avatar-fallback {
  width: 48px;
  height: 48px;
  border-radius: 16px;
  flex: 0 0 48px;
  object-fit: cover;
  border: 1px solid rgba(95,161,255,.28);
  box-shadow: 0 0 24px rgba(15,104,234,.12);
  background: linear-gradient(160deg, rgba(15,104,234,.22), rgba(95,161,255,.10));
}

.ann-avatar-fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: 'Cinzel', serif;
  font-size: 18px;
}

.ann-author-block {
  min-width: 0;
  flex: 1;
}

.ann-author {
  margin: 0 0 2px;
  color: #fff;
  font-weight: 800;
  font-size: 15px;
}

.ann-meta-line {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 11px;
  font-family: 'JetBrains Mono', monospace;
  color: rgba(187,210,244,.72);
}

.ann-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid rgba(247,198,107,.22);
  background: rgba(247,198,107,.08);
  color: rgba(255,226,163,.92);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 10px;
}

.ann-post-index {
  align-self: flex-start;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(95,161,255,.16);
  background: rgba(15,104,234,.08);
  color: rgba(205,225,255,.88);
  font-size: 10px;
  font-family: 'JetBrains Mono', monospace;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.ann-reply {
  position: relative;
  padding: 12px 13px 12px 14px;
  border-radius: 16px;
  border: 1px solid rgba(95,161,255,.14);
  background: linear-gradient(180deg, rgba(14,26,46,.76), rgba(9,17,30,.82));
}

.ann-reply::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 12px;
  bottom: 12px;
  width: 2px;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(95,161,255,.92), rgba(95,161,255,.18));
}

.ann-reply-label,
.ann-files-label {
  display: block;
  margin-left: 12px;
  margin-bottom: 4px;
  font-family: 'JetBrains Mono', monospace;
  color: rgba(155,191,242,.84);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.ann-reply-author {
  display: block;
  margin-left: 12px;
  font-weight: 800;
  color: #fff;
  font-size: 13px;
}

.ann-reply-text {
  display: block;
  margin-left: 12px;
  margin-top: 5px;
  color: rgba(200,220,248,.72);
  font-size: 12px;
  line-height: 1.55;
}

.ann-body {
  color: rgba(231,240,255,.92);
  font-size: 14px;
  line-height: 1.72;
  word-break: break-word;
}

.ann-body a {
  color: #7eb6ff;
  text-decoration: underline;
  text-decoration-color: rgba(126,182,255,.45);
}

.ann-files {
  display: grid;
  gap: 10px;
}

.ann-image-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 10px;
}

.ann-image-link {
  position: relative;
  display: block;
  aspect-ratio: 1.08;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(95,161,255,.16);
  background: rgba(8,14,24,.82);
}

.ann-image-link img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .32s ease, filter .32s ease;
}

.ann-image-link:hover img {
  transform: scale(1.04);
  filter: brightness(1.05);
}

.ann-file-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.ann-file-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(95,161,255,.16);
  background: rgba(9,17,30,.74);
  color: rgba(220,233,255,.88);
  font-size: 12px;
  text-decoration: none;
}

.ann-post-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding-top: 4px;
  border-top: 1px solid rgba(95,161,255,.10);
}

.ann-post-foot .ann-top-meta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.ann-post-foot strong {
  color: #fff;
}

.ann-loader-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 18px;
}

.ann-skel {
  position: relative;
  overflow: hidden;
  min-height: 230px;
  padding: 18px;
  border-radius: 22px;
  border: 1px solid rgba(35,85,150,.45);
  background: linear-gradient(160deg, rgba(10,18,32,.96), rgba(4,8,16,.96));
}

.ann-skel::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 0%, rgba(95,161,255,.08) 42%, rgba(95,161,255,.24) 50%, rgba(95,161,255,.08) 58%, transparent 100%);
  transform: translateX(-130%);
  animation: annSkel 1.7s ease-in-out infinite;
}

@keyframes annSkel {
  0% { transform: translateX(-130%); }
  100% { transform: translateX(130%); }
}

.ann-skel-line,
.ann-skel-avatar {
  border-radius: 999px;
  background: rgba(95,161,255,.12);
}

.ann-skel-top {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
}

.ann-skel-avatar {
  width: 48px;
  height: 48px;
  border-radius: 16px;
}

.ann-skel-line { height: 10px; margin-bottom: 10px; }
.ann-skel-line.short { width: 36%; }
.ann-skel-line.mid { width: 62%; }
.ann-skel-line.long { width: 88%; }
.ann-skel-box {
  margin-top: 18px;
  height: 56px;
  border-radius: 16px;
  background: rgba(95,161,255,.09);
}

.ann-empty-card,
.ann-error-card,
.ann-info-card {
  position: relative;
  padding: 20px;
}

.ann-info-card {
  margin-bottom: 18px;
}

.ann-info-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.ann-info-grid strong {
  display: block;
  margin-bottom: 6px;
  color: #fff;
  font-size: 13px;
}

@media (max-width: 1080px) {
  .ann-hero-grid { grid-template-columns: 1fr; }
  .ann-stat-row { grid-template-columns: 1fr; }
}

@media (max-width: 780px) {
  .ann-grid,
  .ann-loader-grid,
  .ann-info-grid { grid-template-columns: 1fr; }
  .ann-hero-main,
  .ann-hero-side,
  .ann-feed-shell { padding: 18px; }
  .ann-post { padding: 15px; }
}


/* v85 live announcements cleanup */
.ann-hero {
  padding: 92px 0 20px !important;
}
.ann-hero-grid {
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr) !important;
  align-items: stretch !important;
}
.ann-hero-main,
.ann-hero-side,
.ann-feed-shell {
  backdrop-filter: blur(14px) saturate(120%);
  -webkit-backdrop-filter: blur(14px) saturate(120%);
}
.ann-hero-title {
  margin-top: 16px !important;
  font-size: clamp(34px, 4.2vw, 64px) !important;
}
.ann-hero-desc {
  max-width: 720px !important;
}
.ann-side-title {
  display: flex;
  align-items: center;
  gap: 10px;
}
.ann-side-title::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #55e68c;
  box-shadow: 0 0 14px rgba(85,230,140,.72);
  animation: annPulse 1.5s ease-in-out infinite;
}
.ann-side-list {
  gap: 10px !important;
}
.ann-side-item {
  padding: 13px 14px !important;
}
.ann-side-icon {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px !important;
  font-weight: 900;
  color: #5fa1ff;
}
.ann-feed-wrap {
  padding-top: 18px !important;
}
.ann-grid {
  grid-template-columns: repeat(auto-fit, minmax(390px, 1fr)) !important;
  align-items: stretch !important;
}
.ann-post {
  min-width: 0;
}
.ann-post-head {
  align-items: flex-start !important;
}
.ann-badge {
  border-color: rgba(85,230,140,.24) !important;
  background: rgba(85,230,140,.08) !important;
  color: rgba(174,247,200,.95) !important;
}
.ann-post-index {
  color: rgba(205,225,255,.74) !important;
}
.ann-body {
  position: relative;
  max-height: 320px;
  overflow: hidden;
}
.ann-post.is-long:not(.expanded) .ann-body::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 86px;
  pointer-events: none;
  background: linear-gradient(180deg, transparent, rgba(5,10,19,.96));
}
.ann-post.expanded .ann-body {
  max-height: none;
}
.ann-expand {
  align-self: flex-start;
  display: none;
  margin-top: -4px;
  padding: 9px 12px;
  border-radius: 999px;
  border: 1px solid rgba(95,161,255,.24);
  background: rgba(15,104,234,.08);
  color: rgba(220,234,255,.92);
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform .22s ease, border-color .22s ease, background .22s ease;
}
.ann-post.is-long .ann-expand {
  display: inline-flex;
}
.ann-expand:hover {
  transform: translateY(-2px);
  border-color: rgba(95,161,255,.55);
  background: rgba(15,104,234,.18);
}
.ann-reply-label,
.ann-files-label {
  margin-left: 14px !important;
}
.ann-info-card {
  display: none !important;
}
.ann-feed-heading p {
  max-width: 620px;
}
.ann-top-meta,
.ann-meta-line,
.ann-stat-label,
.ann-chip,
.ann-post-index,
.ann-badge {
  font-weight: 900 !important;
}
@media (max-width: 1080px) {
  .ann-hero {
    padding-top: 104px !important;
  }
  .ann-hero-grid {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 780px) {
  .ann-grid {
    grid-template-columns: 1fr !important;
  }
  .ann-feed-topbar {
    align-items: flex-start !important;
  }
  .ann-body {
    max-height: 260px;
  }
}



/* v88 news page alignment: home/status visual system, without cursor-follow effects */
.ll-ann-page::before {
  display: none;
}

.ann-page-hero {
  padding-bottom: 26px;
}

.ann-stats-wrap .stats-strip {
  grid-template-columns: repeat(3, 1fr);
  margin: 0 0 72px;
}

.ann-stats-strip .stat-num {
  min-height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(24px, 2.65vw, 36px);
  line-height: 1.15;
}

.ann-stats-strip .ann-stat-freshness {
  font-size: clamp(18px, 2.1vw, 30px);
}

.ann-feed-wrap {
  padding: 0 0 68px !important;
}

.ann-feed-wrap .ornament {
  margin-bottom: 60px;
}

.ann-feed-wrap .section-desc {
  margin-bottom: 34px;
}

.ann-feed-shell,
.ann-empty-card,
.ann-error-card,
.ann-post {
  background: linear-gradient(160deg, rgba(10,18,32,.96), rgba(4,8,16,.96));
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: none;
}

.ann-feed-shell {
  padding: 22px;
  position: relative;
  overflow: hidden;
}

.ann-feed-shell::before,
.ann-post::before,
.ann-empty-card::before,
.ann-error-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(to right, transparent, var(--accent), transparent);
  opacity: 0;
  transition: opacity .26s ease;
}

.ann-post:hover::before {
  opacity: 1;
}

.ann-post {
  transition: transform .26s cubic-bezier(.4,0,.2,1), box-shadow .26s, border-color .26s;
}

.ann-post:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 60px rgba(0,0,0,.50), 0 0 36px rgba(15,104,234,.18);
  border-color: rgba(15,104,234,.55);
}

.ann-feed-topbar {
  justify-content: flex-end;
  padding: 0 0 18px;
  margin-bottom: 20px;
  border-bottom: 1px solid rgba(15,104,234,.16);
}

.ann-feed-chipbar {
  justify-content: flex-end;
}

.ann-chip {
  font-family: 'Cinzel', serif;
  font-size: 10px;
  letter-spacing: 1.7px;
  color: var(--accent2);
  border: 1px solid rgba(15,104,234,.35);
  background: rgba(15,104,234,.08);
  padding: 8px 15px;
}

.ann-chip:hover,
.ann-file-chip:hover,
.ann-expand:hover {
  transform: translateY(-2px);
  border-color: rgba(15,104,234,.55);
  background: rgba(15,104,234,.16);
}

.ann-grid {
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)) !important;
  gap: 18px;
}

.ann-post {
  padding: 22px;
  gap: 16px;
}

.ann-post-head {
  align-items: center !important;
}

.ann-author {
  font-family: 'Cinzel', serif;
  letter-spacing: .4px;
}

.ann-badge {
  color: #aef7c8 !important;
  border-color: rgba(85,230,140,.34) !important;
  background: rgba(85,230,140,.07) !important;
}

.ann-post-index {
  color: rgba(95,161,255,.88) !important;
  border-color: rgba(15,104,234,.24);
  background: rgba(15,104,234,.07);
}

.ann-reply,
.ann-image-link,
.ann-file-chip,
.ann-expand {
  border-color: rgba(15,104,234,.22);
}

.ann-reply {
  background: rgba(15,104,234,.05);
}

.ann-image-link:hover {
  border-color: rgba(15,104,234,.55);
}

.ann-file-chip,
.ann-expand {
  background: rgba(15,104,234,.07);
}

.ann-empty-card,
.ann-error-card {
  padding: 26px;
}

.ann-side-title {
  font-family: 'Cinzel', serif;
  font-size: 20px;
  color: #fff;
  margin: 0 0 10px;
}

.ann-loader-grid {
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

.ann-skel {
  border-radius: var(--radius);
  border-color: var(--line);
}

@media (max-width: 1024px) {
  .ann-stats-wrap .stats-strip {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 780px) {
  .ann-stats-wrap .stats-strip {
    grid-template-columns: 1fr;
    margin-bottom: 56px;
  }

  .ann-feed-shell {
    padding: 18px;
  }

  .ann-grid,
  .ann-loader-grid {
    grid-template-columns: 1fr !important;
  }

  .ann-feed-topbar,
  .ann-feed-chipbar {
    justify-content: flex-start;
  }

  .ann-post {
    padding: 18px;
  }
}


/* v89 news feed card alignment: keep each grid row even */
.ann-grid {
  align-items: stretch !important;
}
.ann-post {
  height: 100%;
}
.ann-post-foot {
  margin-top: auto;
}
