/* ======================================================
   ImperiumAO Landing — Section Styles (v0 Migration)
   ====================================================== */

/* --- Section Kicker (common) --- */
.section-kicker {
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: rgba(201,168,76,.7);
  margin-bottom: 1rem;
}

.section-heading {
  font-family: var(--font-serif);
  font-size: 2rem;
  font-weight: 700;
  color: var(--foreground);
  line-height: 1.2;
  margin-bottom: 1.25rem;
}

.section-subtext {
  color: var(--muted-foreground);
  font-size: 1rem;
  line-height: 1.7;
  max-width: 42rem;
}

/* ===================== 1. HERO ===================== */
#hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
}

.hero-bg {
  position: absolute;
  inset: 0;
  background-image: url('/assets/img/hero-bg.jpg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* Multiple overlays — heavy darkening so text is readable */
.hero-overlay-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom,
    rgba(7,7,12,.78) 0%,
    rgba(7,7,12,.62) 30%,
    rgba(7,7,12,.7) 60%,
    rgba(7,7,12,.97) 100%
  );
}

.hero-overlay-sides {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right,
    rgba(7,7,12,.7) 0%,
    rgba(7,7,12,.15) 30%,
    rgba(7,7,12,.15) 70%,
    rgba(7,7,12,.7) 100%
  );
}

.hero-overlay-vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, rgba(7,7,12,.3) 20%, rgba(7,7,12,.75) 100%);
}

.hero-content {
  position: relative;
  z-index: 10;
  max-width: 52rem;
  padding: 2rem 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero-kicker {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: rgba(201,168,76,.7);
  margin-bottom: 1.5rem;
}

.hero-title {
  font-family: var(--font-serif);
  font-size: 3rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #c9a84c;
  background: linear-gradient(135deg, #dfc06a 0%, #c9a84c 40%, #a68a3a 70%, #c9a84c 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-shadow: none;
  line-height: 1.1;
  margin-bottom: 1rem;
}

/* Hero particles canvas */
.hero-particles {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 5;
  pointer-events: none;
}

/* Hero logo image */
.hero-logo {
  width: 90vw;
  max-width: 480px;
  height: auto;
  margin-bottom: 1rem;
  animation: logo-breathe 4s ease-in-out infinite;
}

@keyframes logo-breathe {
  0%, 100% {
    filter:
      drop-shadow(0 0 12px rgba(201,168,76,.3))
      drop-shadow(0 0 40px rgba(201,168,76,.1));
    transform: scale(1);
  }
  50% {
    filter:
      drop-shadow(0 0 24px rgba(201,168,76,.5))
      drop-shadow(0 0 64px rgba(201,168,76,.2))
      drop-shadow(0 0 100px rgba(201,168,76,.08));
    transform: scale(1.015);
  }
}

/* Glow effect on title wrapper */
.hero-title-wrap {
  filter: none;
}

.hero-subtitle {
  font-family: var(--font-serif);
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(237,230,218,.3);
  margin-bottom: 1.5rem;
}

.hero-description {
  color: var(--muted-foreground);
  font-size: 0.95rem;
  line-height: 1.8;
  max-width: 36rem;
  margin-bottom: 2rem;
}

.hero-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  margin-bottom: 1.5rem;
}

.hero-trust {
  font-size: 0.75rem;
  color: var(--muted-foreground);
  margin-bottom: 2rem;
}

/* Server Status Row (two pills) */
.server-status-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  margin-bottom: 0.5rem;
}

.server-updated {
  font-size: 0.65rem;
  color: rgba(122,117,107,.5);
  margin-bottom: 2rem;
  text-align: center;
}

/* Server Status Pill */
.server-status {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.45rem 1rem;
  border-radius: 9999px;
  border: 1px solid var(--border);
  background: rgba(14,14,22,.8);
  font-size: 0.75rem;
  color: var(--muted-foreground);
}

.server-flag {
  width: 18px;
  height: 13px;
  border-radius: 2px;
  object-fit: cover;
}

.server-status-dot {
  position: relative;
  width: 8px;
  height: 8px;
}

.server-status-dot::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: #22c55e;
}

.server-status-dot::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: #22c55e;
  animation: ping-dot 1.5s cubic-bezier(0,0,.2,1) infinite;
}

.server-status span {
  color: #22c55e;
  font-weight: 600;
}

.server-status .separator {
  width: 1px;
  height: 12px;
  background: var(--border);
}

/* Scroll indicator */
.hero-scroll {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  color: rgba(201,168,76,.4);
}

.hero-scroll svg {
  width: 24px;
  height: 24px;
}

/* ===================== 2. FEATURES ===================== */
#features {
  position: relative;
  text-align: center;
}

.features-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  margin-top: 3rem;
}

.feature-card {
  padding: 2rem;
  text-align: left;
  position: relative;
  overflow: hidden;
}

.feature-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(201,168,76,.03), rgba(139,34,50,.02));
  opacity: 0;
  transition: opacity .4s;
}

.feature-card:hover::before {
  opacity: 1;
}

.feature-icon {
  margin-bottom: 1.25rem;
}

.feature-title {
  font-family: var(--font-serif);
  font-size: 1rem;
  font-weight: 600;
  color: var(--foreground);
  margin-bottom: 0.75rem;
}

.feature-desc {
  font-size: 0.85rem;
  color: var(--muted-foreground);
  line-height: 1.7;
}

/* ===================== 3. GAMEPLAY ===================== */
#gameplay {
  position: relative;
  text-align: center;
}

.gameplay-viewer {
  margin-top: 3rem;
  position: relative;
}

.gameplay-main {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  height: 0;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid rgba(201,168,76,.08);
}
@supports (aspect-ratio: 16/9) {
  .gameplay-main {
    aspect-ratio: 16/9;
    padding-bottom: 0;
    height: auto;
  }
}

.gameplay-media {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity .4s ease;
}

.gameplay-media.fade-out {
  opacity: 0;
}

.gameplay-media.fade-in {
  opacity: 1;
}

.gameplay-main .vignette {
  position: absolute;
  inset: 0;
  box-shadow: inset 0 0 80px rgba(7,7,12,.4);
  pointer-events: none;
}

.gameplay-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 3rem 1.5rem 1.25rem;
  background: linear-gradient(to top, rgba(7,7,12,.9), transparent);
  text-align: left;
}

.gameplay-caption p {
  font-size: 0.85rem;
  color: rgba(237,230,218,.7);
}

.gameplay-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(201,168,76,.15);
  background: rgba(7,7,12,.8);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: var(--foreground);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .3s;
  z-index: 5;
}

.gameplay-nav:hover {
  border-color: rgba(201,168,76,.3);
  background: rgba(7,7,12,.95);
}

.gameplay-nav svg {
  width: 18px;
  height: 18px;
}

.gameplay-prev { left: 1rem; }
.gameplay-next { right: 1rem; }

.gameplay-thumbnails {
  display: flex;
  gap: 0.75rem;
  justify-content: center;
  margin-top: 1.25rem;
}

.gameplay-thumb {
  width: 80px;
  height: 45px;
  border-radius: calc(var(--radius) - 2px);
  overflow: hidden;
  cursor: pointer;
  border: 2px solid transparent;
  opacity: 0.5;
  transition: all .3s;
}

.gameplay-thumb.active {
  border-color: rgba(201,168,76,.6);
  opacity: 1;
  box-shadow: 0 0 12px rgba(201,168,76,.15);
}

.gameplay-thumb:hover {
  opacity: 0.8;
}

.gameplay-thumb {
  position: relative;
}

.gameplay-thumb img,
.gameplay-thumb video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.thumb-video-badge {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
  pointer-events: none;
}

.thumb-video-badge svg {
  width: 18px;
  height: 18px;
  color: white;
  filter: drop-shadow(0 1px 3px rgba(0,0,0,.6));
}

/* ===================== 6. COMMUNITY & TRUST ===================== */
#community {
  position: relative;
  text-align: center;
}

.section-subtitle {
  color: var(--muted-foreground);
  font-size: 0.92rem;
  line-height: 1.7;
  max-width: 38rem;
  margin: -1rem auto 0;
}

.pillars-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  margin-top: 3.5rem;
  background: rgba(201,168,76,.06);
  border: 1px solid rgba(201,168,76,.08);
  border-radius: 16px;
  overflow: hidden;
}

.pillar-card {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
  padding: 1.75rem 1.5rem;
  background: var(--dark-surface);
  transition: background .3s ease;
  overflow: hidden;
}

.pillar-card:hover {
  background: rgba(201,168,76,.04);
}

.pillar-icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: rgba(201,168,76,.06);
  border: 1px solid rgba(201,168,76,.1);
  transition: border-color .3s, background .3s;
}

.pillar-card:hover .pillar-icon {
  background: rgba(201,168,76,.1);
  border-color: rgba(201,168,76,.25);
}

.pillar-icon svg {
  width: 22px;
  height: 22px;
  color: var(--gold);
}

.pillar-content {
  flex: 1;
  text-align: left;
}

.pillar-title {
  font-family: var(--font-serif);
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--foreground);
  margin-bottom: 0.3rem;
  transition: color .3s;
}

.pillar-card:hover .pillar-title {
  color: var(--gold);
}

.pillar-desc {
  font-size: 0.82rem;
  color: var(--muted-foreground);
  line-height: 1.65;
}

.pillar-glow {
  position: absolute;
  top: 50%;
  left: 0;
  width: 3px;
  height: 0;
  background: linear-gradient(to bottom, transparent, var(--gold), transparent);
  transform: translateY(-50%);
  transition: height .3s ease;
  opacity: 0;
}

.pillar-card:hover .pillar-glow {
  height: 60%;
  opacity: 1;
}

.pillar-card:last-child {
  border-bottom: none;
}

/* --- Discord Pillar Card --- */
.pillar-card--discord {
  text-decoration: none;
  cursor: pointer;
  background: linear-gradient(135deg, rgba(88,101,242,.08) 0%, var(--dark-surface) 60%);
  border-left: 2px solid rgba(88,101,242,.25);
}

.pillar-card--discord:hover {
  background: linear-gradient(135deg, rgba(88,101,242,.15) 0%, rgba(88,101,242,.04) 100%);
}

.pillar-icon--discord {
  background: rgba(88,101,242,.12);
  border-color: rgba(88,101,242,.25);
}

.pillar-card--discord:hover .pillar-icon--discord {
  background: rgba(88,101,242,.2);
  border-color: rgba(88,101,242,.45);
}

.pillar-icon--discord svg {
  color: #5865F2;
}

.pillar-card--discord .pillar-title {
  color: #7b8af4;
}

.pillar-card--discord:hover .pillar-title {
  color: #5865F2;
}

.pillar-glow--discord {
  background: linear-gradient(to bottom, transparent, #5865F2, transparent);
}

.pillar-card--discord .pillar-content {
  display: grid;
}

.pillar-card--discord .pillar-title {
  grid-column: 1;
  grid-row: 1;
}

.pillar-card--discord .pillar-desc,
.pillar-discord-cta {
  grid-column: 1;
  grid-row: 2;
  align-self: start;
}

.pillar-card--discord .pillar-desc {
  transition: opacity .2s ease;
}

.pillar-card--discord:hover .pillar-desc {
  opacity: 0;
}

.pillar-discord-cta {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: #5865F2;
  opacity: 0;
  transition: opacity .2s ease;
  pointer-events: none;
}

.pillar-card--discord:hover .pillar-discord-cta {
  opacity: 1;
  pointer-events: auto;
}

.pillar-discord-particles {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
}

.pillar-card--discord > *:not(.pillar-discord-particles) {
  position: relative;
  z-index: 1;
}

/* --- Transparency Block (Bans & Frags) --- */
.transparency-block {
  margin-top: 3.5rem;
  text-align: center;
}

.transparency-heading {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--foreground);
  margin-bottom: 1rem;
}

.transparency-heading svg {
  width: 28px;
  height: 28px;
  color: var(--gold);
}

.transparency-intro {
  max-width: 640px;
  margin: 0 auto 2rem;
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--muted-foreground);
}

.transparency-intro strong {
  color: var(--gold);
  font-weight: 600;
}

.transparency-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
  max-width: 720px;
  margin: 0 auto;
}

.transparency-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: linear-gradient(168deg, rgba(14,14,22,.96), rgba(7,7,12,.99));
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 2rem 1.5rem;
  text-align: center;
  transition: border-color .3s, box-shadow .3s;
}

.transparency-card:hover {
  border-color: rgba(201,168,76,.2);
  box-shadow: 0 4px 30px rgba(201,168,76,.06);
}

.transparency-card--bans {
  border-color: rgba(239,68,68,.15);
}

.transparency-card--bans:hover {
  border-color: rgba(239,68,68,.3);
  box-shadow: 0 4px 30px rgba(239,68,68,.1);
}

.transparency-card-icon {
  width: 48px;
  height: 48px;
  margin: 0 auto 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}

.transparency-card-icon svg {
  width: 26px;
  height: 26px;
}

.transparency-card-icon--bans {
  background: rgba(239,68,68,.1);
  color: #f87171;
}

.transparency-card-icon--frags {
  background: rgba(201,168,76,.1);
  color: var(--gold);
}

.transparency-card-title {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--foreground);
  margin-bottom: 0.6rem;
}

.transparency-card p {
  font-size: 0.85rem;
  line-height: 1.6;
  color: var(--muted-foreground);
  margin-bottom: 1.25rem;
}

.transparency-card .btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: auto;
}


@media (max-width: 599px) {
  .transparency-cards {
    grid-template-columns: 1fr;
  }
  .transparency-card {
    padding: 1.5rem 1.25rem;
  }
  .transparency-heading {
    font-size: 1.25rem;
  }
}

/* ===================== NEWS GRID ===================== */
#noticias {
  position: relative;
  text-align: center;
}

.news-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 1.25rem;
  margin-top: 3rem;
}

.news-grid-loading {
  grid-column: 1 / -1;
  display: flex;
  justify-content: center;
  padding: 4rem 0;
}

.news-grid-empty {
  grid-column: 1 / -1;
  padding: 3rem 1rem;
  color: var(--muted-foreground);
  font-size: .9rem;
}

/* --- News Card --- */
.news-card {
  display: flex;
  flex-direction: column;
  background: linear-gradient(168deg, rgba(14,14,22,.96), rgba(7,7,12,.99));
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  cursor: pointer;
  transition: border-color .3s, box-shadow .3s, transform .3s;
}

.news-card:hover {
  border-color: rgba(201,168,76,.2);
  box-shadow: 0 4px 32px rgba(201,168,76,.06), 0 1px 2px rgba(0,0,0,.5);
  transform: translateY(-2px);
}

/* Featured card spans 2 rows */
.news-card--featured {
  grid-row: 1 / 3;
}

/* Card image */
.news-card-img {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: rgba(0,0,0,.3);
}

.news-card--featured .news-card-img {
  height: 220px;
}

.news-card:not(.news-card--featured) .news-card-img {
  height: 120px;
}

.news-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}

.news-card:hover .news-card-img img {
  transform: scale(1.03);
}

/* Card body */
.news-card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 1.25rem;
  text-align: left;
}

/* Meta row */
.news-card-meta {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .75rem;
  flex-wrap: wrap;
}

.news-card-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid var(--border);
  object-fit: cover;
}

.news-card-author {
  font-size: .78rem;
  font-weight: 600;
  color: var(--gold);
}

.news-card-dot {
  color: var(--muted-foreground);
  font-size: .7rem;
}

.news-card-time {
  font-size: .72rem;
  color: var(--muted-foreground);
}

/* Title */
.news-card-title {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--foreground);
  line-height: 1.35;
  margin-bottom: .5rem;
  transition: color .3s;
}

.news-card--featured .news-card-title {
  font-size: 1.2rem;
}

.news-card:hover .news-card-title {
  color: var(--gold);
}

/* Excerpt */
.news-card-excerpt {
  font-size: .82rem;
  color: var(--muted-foreground);
  line-height: 1.65;
  flex: 1;
  overflow: hidden;
  max-height: calc(1.65em * 8);
  text-align: left;
}

.news-card-excerpt strong {
  color: #fff;
  font-weight: 600;
}

.news-card--featured .news-card-excerpt {
  max-height: calc(1.65em * 12);
}

/* Read more link */
.news-card-readmore {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  margin-top: .75rem;
  font-size: .78rem;
  font-weight: 600;
  color: var(--gold);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
  transition: opacity .2s;
}

.news-card-readmore:hover {
  opacity: .75;
}

/* Footer */
.news-grid-footer {
  display: flex;
  justify-content: center;
  margin-top: 2.5rem;
}

/* Responsive */
@media (max-width: 768px) {
  .news-grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }
  .news-card--featured {
    grid-row: auto;
  }
}

/* ===================== NEWS DETAIL MODAL ===================== */
.news-detail-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0);
  padding: 1rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .3s ease, visibility .3s ease, background .3s ease;
}

.news-detail-overlay.active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  background: rgba(0,0,0,.8);
}

.news-detail-modal {
  position: relative;
  width: 100%;
  max-width: 620px;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  background: linear-gradient(168deg, rgba(14,14,22,.98), rgba(7,7,12,.99));
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 4px 60px rgba(0,0,0,.6);
  overflow: hidden;
  transform: translateY(20px) scale(.97);
  transition: transform .3s cubic-bezier(.16,1,.3,1);
}

.news-detail-overlay.active .news-detail-modal {
  transform: translateY(0) scale(1);
}

.news-detail-close {
  position: absolute;
  top: .75rem;
  right: .75rem;
  z-index: 5;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.5);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 10px;
  color: rgba(255,255,255,.6);
  cursor: pointer;
  transition: all .2s;
}

.news-detail-close:hover {
  color: #fff;
  border-color: rgba(201,168,76,.3);
  background: rgba(0,0,0,.7);
}

.news-detail-close svg {
  width: 18px;
  height: 18px;
}

.news-detail-body {
  overflow-y: auto;
  padding: 1.75rem;
}

.news-detail-body::-webkit-scrollbar { width: 4px; }
.news-detail-body::-webkit-scrollbar-track { background: transparent; }
.news-detail-body::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }

/* Reuse news-feed classes inside detail modal */
.news-feed-header {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1.25rem;
}

.news-feed-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--border);
  flex-shrink: 0;
  object-fit: cover;
}

.news-feed-author-info {
  display: flex;
  flex-direction: column;
  gap: .15rem;
  text-align: left;
}

.news-feed-author {
  font-size: .9rem;
  font-weight: 600;
  color: var(--gold);
}

.news-feed-time {
  font-size: .72rem;
  color: var(--muted-foreground);
}

.news-feed-content {
  font-size: .9rem;
  line-height: 1.75;
  color: var(--foreground);
  word-break: break-word;
  text-align: left;
}

.news-feed-content strong {
  font-weight: 700;
  color: #fff;
}

.news-feed-content a {
  color: var(--gold);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.news-feed-attachments {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  gap: .5rem;
}

.news-feed-att-img {
  max-width: 100%;
  max-height: 400px;
  border-radius: 8px;
  border: 1px solid var(--border);
  object-fit: contain;
}

@media (max-width: 599px) {
  .news-detail-modal {
    max-height: 90vh;
    border-radius: 12px;
  }
  .news-detail-body {
    padding: 1.25rem;
  }
}

.changelog-list {
  margin-top: 3rem;
  display: flex;
  flex-direction: column;
  gap: 1px;
  background: rgba(201,168,76,.06);
  border: 1px solid rgba(201,168,76,.08);
  border-radius: 16px;
  overflow: hidden;
}

.changelog-entry {
  background: var(--dark-surface);
  padding: 1.5rem;
  text-align: left;
  cursor: pointer;
  transition: background .3s;
}

.changelog-entry:hover {
  background: rgba(201,168,76,.04);
}

.changelog-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.changelog-version {
  font-family: var(--font-serif);
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.2rem 0.7rem;
  border-radius: 9999px;
  background: linear-gradient(135deg, rgba(201,168,76,.15), rgba(201,168,76,.05));
  color: var(--gold);
  border: 1px solid rgba(201,168,76,.2);
  flex-shrink: 0;
}

.changelog-title {
  font-family: var(--font-serif);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--foreground);
  flex: 1;
  min-width: 0;
  transition: color .3s;
}

.changelog-entry:hover .changelog-title {
  color: var(--gold);
}

.changelog-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-left: auto;
  flex-shrink: 0;
}

.changelog-date {
  font-size: 0.75rem;
  color: var(--muted-foreground);
}

.changelog-size {
  font-size: 0.7rem;
  color: var(--muted-foreground);
  padding: 0.15rem 0.5rem;
  border-radius: 6px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.06);
}

.changelog-chevron {
  width: 16px;
  height: 16px;
  color: var(--muted-foreground);
  flex-shrink: 0;
  transition: transform .3s, color .3s;
}

.changelog-entry.open .changelog-chevron {
  transform: rotate(180deg);
  color: var(--gold);
}

.changelog-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s cubic-bezier(.16,1,.3,1);
}

.changelog-entry.open .changelog-body {
  max-height: 8000px;
}

.changelog-changes {
  padding-top: 1.25rem;
  margin-top: 1rem;
  border-top: 1px solid rgba(201,168,76,.06);
  list-style: none;
  padding-left: 0;
}

.changelog-changes li {
  position: relative;
  padding: 0.3rem 0 0.3rem 1.25rem;
  font-size: 0.82rem;
  color: var(--muted-foreground);
  line-height: 1.65;
}

.changelog-changes li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.7rem;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--gold);
  opacity: .4;
}

.changelog-more {
  margin: 2.5rem auto 0;
  display: block;
}

/* Changelog loading */
.changelog-loading {
  padding: 3rem;
  display: flex;
  justify-content: center;
}

.changelog-spinner {
  width: 28px;
  height: 28px;
  border: 2px solid rgba(201,168,76,.15);
  border-top-color: var(--gold);
  border-radius: 50%;
  animation: spin .7s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

/* ===================== 11. FOOTER ===================== */
.site-footer {
  background: var(--dark-deeper);
  border-top: 1px solid rgba(201,168,76,.06);
  padding: 4rem 0 0;
}

.footer-grid {
  max-width: 80rem;
  margin: 0 auto;
  padding: 0 1.5rem;
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
}

.footer-brand-desc {
  font-size: 0.82rem;
  color: var(--muted-foreground);
  line-height: 1.7;
  margin-top: 1rem;
  margin-bottom: 1.25rem;
}

.footer-socials {
  display: flex;
  gap: 0.75rem;
}

.footer-social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  color: var(--muted-foreground);
  transition: all .3s;
}

.footer-social-link:hover {
  border-color: rgba(201,168,76,.2);
  color: var(--gold);
  background: rgba(201,168,76,.05);
}

.footer-social-link svg {
  width: 16px;
  height: 16px;
}

.footer-col h4 {
  font-family: var(--font-serif);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--foreground);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}

.footer-col ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-col ul li {
  margin-bottom: 0.5rem;
}

.footer-col ul li a {
  font-size: 0.82rem;
  color: var(--muted-foreground);
  transition: color .2s;
}

.footer-col ul li a:hover {
  color: var(--gold);
}

.footer-bottom {
  max-width: 80rem;
  margin: 3rem auto 0;
  padding: 1.5rem;
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  text-align: center;
}

.footer-bottom p {
  font-size: 0.75rem;
  color: var(--muted-foreground);
}

/* ===================== 12. RESPONSIVE ===================== */

/* sm: 640px */
@media (min-width: 640px) {
  .features-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-grid   { grid-template-columns: repeat(2, 1fr); }
}

/* md: 768px */
@media (min-width: 768px) {
  .section-heading { font-size: 2.5rem; }
  .hero-title { font-size: 4rem; }
  .pillars-grid { grid-template-columns: repeat(2, 1fr); }

  .changelog-header { flex-wrap: nowrap; }

  .footer-bottom {
    flex-direction: row;
    justify-content: space-between;
    text-align: left;
  }
}

/* lg: 1024px */
@media (min-width: 1024px) {
  .section-padding {
    padding-top: 9rem;
    padding-bottom: 9rem;
  }
  .section-heading { font-size: 3rem; }
  .hero-title { font-size: 5.5rem; }
  .features-grid  { grid-template-columns: repeat(3, 1fr); }
  .pillars-grid   { grid-template-columns: repeat(3, 1fr); }
  .gameplay-thumb { width: 120px; height: 68px; }

  .footer-grid {
    grid-template-columns: 2fr repeat(4, 1fr);
  }
}

/* ===================== PLAY MODAL ===================== */
.play-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, .7);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  padding: 1.5rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .3s ease, visibility .3s ease;
}

.play-modal-overlay.active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.play-modal {
  position: relative;
  width: 100%;
  max-width: 460px;
  padding: 2.5rem 2rem 2rem;
  text-align: center;
  transform: translateY(24px) scale(.97);
  opacity: 0;
  transition: transform .35s cubic-bezier(.16,1,.3,1), opacity .3s ease;
}

.play-modal-overlay.active .play-modal {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.play-modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--muted-foreground);
  cursor: pointer;
  transition: all .2s;
}

.play-modal-close:hover {
  color: var(--foreground);
  border-color: rgba(201,168,76,.25);
}

.play-modal-close svg {
  width: 16px;
  height: 16px;
}

.play-modal-title {
  font-size: 1.35rem;
  font-weight: 700;
  color: #c9a84c;
  background: linear-gradient(135deg, #dfc06a 0%, #c9a84c 40%, #a68a3a 70%, #c9a84c 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 0.5rem;
}

.play-modal-sub {
  font-size: 0.85rem;
  color: var(--muted-foreground);
  line-height: 1.7;
  margin-bottom: 1.75rem;
}

.play-modal-options {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.play-modal-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 1.25rem;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: all .3s ease;
  font-family: var(--font-sans);
}

.play-modal-card:hover {
  border-color: rgba(201,168,76,.35);
  background: rgba(201,168,76,.06);
  transform: translateX(4px);
}

.play-modal-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  min-width: 42px;
  border-radius: 50%;
  background: rgba(201,168,76,.06);
  border: 1px solid rgba(201,168,76,.12);
}

.play-modal-card-icon svg {
  width: 18px;
  height: 18px;
  color: var(--gold);
}

.play-modal-card-title {
  display: block;
  font-family: var(--font-serif);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--foreground);
  margin-bottom: 0.2rem;
}

.play-modal-card-desc {
  display: block;
  font-size: 0.78rem;
  color: var(--muted-foreground);
  line-height: 1.5;
}

/* --- Play Modal: Login Hint --- */
.play-modal-login-hint {
  text-align: center;
  font-size: 0.82rem;
  color: var(--muted-foreground);
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}

.play-modal-login-hint a {
  color: var(--gold);
  text-decoration: none;
  font-weight: 600;
  margin-left: 0.25rem;
  transition: color .2s;
}

.play-modal-login-hint a:hover {
  color: #dfc06a;
}

/* ===================== REGISTER MODAL ===================== */
.register-modal {
  position: relative;
  width: 100%;
  max-width: 480px;
  max-height: 90vh;
  overflow-y: auto;
  padding: 2.5rem 2rem 2rem;
  text-align: center;
  transform: translateY(24px) scale(.97);
  opacity: 0;
  transition: transform .35s cubic-bezier(.16,1,.3,1), opacity .3s ease;
}

.play-modal-overlay.active .register-modal {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.register-modal-back {
  position: absolute;
  top: 1rem;
  left: 1rem;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--muted-foreground);
  cursor: pointer;
  transition: all .2s;
}

.register-modal-back:hover {
  color: var(--foreground);
  border-color: rgba(201,168,76,.25);
}

.register-modal-back svg {
  width: 16px;
  height: 16px;
}

/* --- Register Form (shared with register page) --- */
.register-header {
  text-align: center;
  margin-bottom: 1.75rem;
}

.register-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(201,168,76,.08);
  border: 1px solid rgba(201,168,76,.15);
  margin-bottom: 1rem;
}

.register-icon svg {
  width: 22px;
  height: 22px;
  color: var(--gold);
}

.register-title {
  font-size: 1.35rem;
  font-weight: 700;
  color: #c9a84c;
  background: linear-gradient(135deg, #dfc06a 0%, #c9a84c 40%, #a68a3a 70%, #c9a84c 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 0.375rem;
}

.register-subtitle {
  font-size: 0.85rem;
  color: var(--muted-foreground);
  line-height: 1.6;
}

.register-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  text-align: left;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.form-group label {
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--foreground);
  letter-spacing: 0.02em;
}

.form-group input,
.form-group select {
  width: 100%;
  padding: 0.625rem 0.875rem;
  font-family: var(--font-sans);
  font-size: 0.85rem;
  color: var(--foreground);
  background: rgba(14,14,22,.6);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  outline: none;
  transition: border-color .2s, box-shadow .2s;
}

.form-group input::placeholder {
  color: rgba(122,117,107,.5);
}

.form-group input:focus,
.form-group select:focus {
  border-color: rgba(201,168,76,.4);
  box-shadow: 0 0 0 3px rgba(201,168,76,.08);
}

.form-group select {
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237a756b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  padding-right: 2.5rem;
}

.form-group select option {
  background: var(--card);
  color: var(--foreground);
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

@media (max-width: 480px) {
  .form-row {
    grid-template-columns: 1fr;
  }
}

.form-captcha {
  display: flex;
  justify-content: center;
}

.form-terms label {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  cursor: pointer;
}

.form-terms input[type="checkbox"] {
  width: 16px;
  height: 16px;
  min-width: 16px;
  margin-top: 2px;
  accent-color: var(--gold);
  cursor: pointer;
}

.form-terms span {
  font-size: 0.75rem;
  color: var(--muted-foreground);
  line-height: 1.5;
}

.form-terms span a {
  color: var(--gold);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.form-warning {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  padding: 0.75rem 1rem;
  background: rgba(139,34,50,.1);
  border: 1px solid rgba(139,34,50,.25);
  border-radius: var(--radius);
  font-size: 0.8rem;
  color: var(--crimson-light);
  line-height: 1.5;
}

.form-warning svg {
  width: 18px;
  height: 18px;
  min-width: 18px;
  color: var(--crimson-light);
  margin-top: 1px;
}

.register-submit {
  width: 100%;
  padding: 0.75rem;
  font-size: 0.9rem;
}

/* --- Success State --- */
.register-success {
  text-align: center;
  padding: 1rem 0;
}

.register-success-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(39,112,0,.1);
  border: 1px solid rgba(39,112,0,.25);
  margin-bottom: 1.25rem;
}

.register-success-icon svg {
  width: 28px;
  height: 28px;
  color: #5cb85c;
}

/* Scrollbar inside register modal */
.register-modal::-webkit-scrollbar { width: 4px; }
.register-modal::-webkit-scrollbar-track { background: transparent; }
.register-modal::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }

/* ===================== TERMS MODAL ===================== */
.terms-modal {
  position: relative;
  width: 100%;
  max-width: 600px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  padding: 2.5rem 2rem 2rem;
  text-align: center;
  transform: translateY(24px) scale(.97);
  opacity: 0;
  transition: transform .35s cubic-bezier(.16,1,.3,1), opacity .3s ease;
}

.play-modal-overlay.active .terms-modal {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.terms-tabs {
  display: flex;
  gap: 0.25rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--border);
  padding-bottom: 0;
}

.terms-tab {
  flex: 1;
  padding: 0.6rem 0.5rem;
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted-foreground);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: color .2s, border-color .2s;
}

.terms-tab:hover {
  color: var(--foreground);
}

.terms-tab.active {
  color: var(--gold);
  border-bottom-color: var(--gold);
}

.terms-content {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  margin-bottom: 1.25rem;
}

.terms-panel {
  display: none;
  height: 320px;
  overflow-y: auto;
  text-align: left;
  padding: 1rem;
  background: rgba(7,7,12,.5);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: 0.78rem;
  color: var(--muted-foreground);
  line-height: 1.8;
  white-space: pre-wrap;
  word-wrap: break-word;
}

.terms-panel.active {
  display: block;
}

.terms-panel::-webkit-scrollbar { width: 4px; }
.terms-panel::-webkit-scrollbar-track { background: transparent; }
.terms-panel::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }

#terms-accept-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  filter: grayscale(0.4);
}

/* Legacy alert styles (used by update-password, update-email, login, etc.) */
.warning-msg { margin: 10px 0; padding: 16px; border-radius: 4px; color: #9f6000; background-color: #feefb3; font-size: 0.9rem; }

