:root{--bg:#080908;--text:#e8e8e2;--muted:#969a93;--line:rgba(199,194,181,.15);--faint:rgba(199,194,181,.07);--blue:#586ff0;--display:"Barlow Condensed",sans-serif;--mono:"IBM Plex Mono",monospace;--body:"Inter",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{font:inherit}.grain{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}.haze{position:fixed;inset:-10%;z-index:-1;pointer-events:none;background:radial-gradient(circle at 20% 20%,rgba(143,145,133,.05),transparent 28%),radial-gradient(circle at 80% 65%,rgba(110,112,105,.045),transparent 30%);animation:haze 22s ease-in-out infinite alternate}@keyframes haze{to{transform:translate3d(2%,1%,0) scale(1.03)}}.site-header{position:fixed;top:0;left:0;right:0;z-index:50;height:74px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;transition:background .3s ease,border-color .3s ease;border-bottom:1px solid transparent}.site-header.scrolled{background:rgba(8,9,8,.94);border-bottom-color:var(--line);backdrop-filter:blur(10px)}.brand{display:flex;align-items:center;gap:12px;font:600 10px var(--mono);letter-spacing:.16em;color:#a9ada6}.brand img{width:50px;filter:grayscale(1) brightness(.9)}.nav{display:flex;gap:24px;font:500 10px var(--mono);letter-spacing:.12em;color:#8e938d}.nav a:hover{color:#e8e8e2}.menu-toggle{display:none;background:none;border:0;color:#bbb;font:500 10px var(--mono)}.hero{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;text-align:center}.hero-bg,.hero-shade{position:absolute;inset:0}.hero-bg{background:url("../assets/images/contaminated-military.webp") center 42%/cover no-repeat;filter:grayscale(.5) brightness(.32) contrast(1.08);transform:scale(1.02)}.hero-shade{background:radial-gradient(circle at center,transparent 0%,rgba(5,6,6,.38) 48%,rgba(5,6,6,.84) 100%),linear-gradient(180deg,rgba(4,5,5,.2),rgba(4,5,5,.68))}.hero-inner{position:relative;z-index:2;width:min(880px,90vw)}.hero h1{margin:0;font:800 clamp(78px,11vw,146px)/.85 var(--display);letter-spacing:.01em}.hero h2{margin:24px 0 0;font:700 clamp(36px,5vw,70px)/.95 var(--display)}.hero p{max-width:690px;margin:25px auto 30px;color:#a5aaa3;font-size:15px}.discord-cta{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:250px;padding:16px 24px;background:var(--blue);border:1px solid #7b8dff;color:#fff;font:600 11px var(--mono);letter-spacing:.13em;overflow:hidden;box-shadow:0 0 20px rgba(88,111,240,.18)}.discord-cta::before{content:"";position:absolute;inset:-1px;border:1px solid rgba(132,149,255,.45);animation:blueBreath 3.6s ease-in-out infinite}.discord-cta::after{content:"";position:absolute;top:0;left:-40%;width:28%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transform:skewX(-18deg);animation:bluePass 5.5s ease-in-out infinite}@keyframes blueBreath{50%{opacity:.4;box-shadow:0 0 20px rgba(88,111,240,.3)}}@keyframes bluePass{0%,58%{left:-40%;opacity:0}70%{opacity:.7}90%,100%{left:115%;opacity:0}}.hero-status{margin-top:38px;display:flex;justify-content:center;gap:16px;align-items:center;color:#747a74;font:500 9px var(--mono);letter-spacing:.16em}.hero-status i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:7px;background:#78a17b;box-shadow:0 0 8px rgba(120,161,123,.45)}.hero-status b{font-weight:400;color:#444}.reveal{opacity:0;filter:blur(4px);transition:opacity .75s ease,filter .75s ease;will-change:opacity,filter}.reveal.visible{opacity:1;filter:none}.video-section,.world-section,.editorial,.rules-section,.community-section,.server-section{padding:110px 7vw;border-top:1px solid var(--faint)}.section-copy{max-width:900px;margin-bottom:48px}.section-copy.centered{margin-left:auto;margin-right:auto;text-align:center}.overline{display:block;margin-bottom:14px;color:#858a83;font:500 9px var(--mono);letter-spacing:.17em;text-transform:uppercase}.section-copy h2,.story-copy h2{margin:0;font:700 clamp(48px,7vw,92px)/.92 var(--display);text-transform:uppercase}.section-copy p,.story-copy p{max-width:720px;color:var(--muted);font-size:15px;line-height:1.85}.video-frame{position:relative;width:min(1120px,100%);margin:auto;border:1px solid rgba(199,194,181,.25);padding:9px;background:#030404}.video-frame video{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:#000}.video-cover{position:absolute;inset:9px;border:0;background:linear-gradient(rgba(3,4,4,.58),rgba(3,4,4,.74));color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;cursor:pointer;overflow:hidden}.video-cover.hidden{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease}.video-cover::after{content:"";position:absolute;left:0;right:0;top:-16%;height:16%;background:linear-gradient(180deg,transparent,rgba(210,215,206,.1),transparent);animation:scanDown 6s linear infinite}.video-cover span{font:500 9px var(--mono);letter-spacing:.15em;color:#858b84}.video-cover strong{font:700 clamp(42px,6vw,78px)/1 var(--display)}.video-cover em{font-style:normal;font:600 10px var(--mono);letter-spacing:.13em;border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:5px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 24px}.photo{margin:0}.photo img{width:100%;aspect-ratio:16/10;object-fit:cover;border:1px solid rgba(199,194,181,.2);filter:saturate(.76) brightness(.84);transition:transform .7s ease,filter .5s ease}.photo:hover img{transform:scale(1.025);filter:saturate(.86) brightness(.9)}.photo figcaption{padding-top:14px}.photo figcaption span{font:500 8px var(--mono);letter-spacing:.14em;color:#767c76}.photo h3{margin:7px 0 7px;font:600 30px/1 var(--display);text-transform:uppercase}.photo p{margin:0;color:#858b85;font-size:13px;line-height:1.7}.story-section,.research-section{position:relative;min-height:78vh;display:flex;align-items:center;padding:8vw 7vw;overflow:hidden}.story-bg,.research-bg,.story-shade{position:absolute;inset:0}.story-bg{background:url("../assets/images/custom-poi.webp") center/cover no-repeat;filter:grayscale(.7) brightness(.5)}.research-bg{background:url("../assets/images/hidden-bunker.webp") center/cover no-repeat;filter:grayscale(.7) brightness(.45)}.story-shade{background:linear-gradient(90deg,rgba(6,7,7,.95),rgba(6,7,7,.72) 50%,rgba(6,7,7,.25)),linear-gradient(180deg,transparent,rgba(6,7,7,.65))}.story-copy{position:relative;z-index:2;max-width:830px}.line-list{border-top:1px solid var(--line)}.line-list article{display:grid;grid-template-columns:55px 1fr;gap:22px;padding:26px 0;border-bottom:1px solid var(--line)}.line-list article>span{font:500 9px var(--mono);color:#686e68;padding-top:7px}.line-list h3,.word-columns h3,.scavenge-list h3,.ways h3{margin:0 0 7px;font:600 clamp(28px,3vw,42px)/1 var(--display);text-transform:uppercase}.line-list p,.word-columns p,.scavenge-list p,.ways p{margin:0;color:#888e88;font-size:14px;line-height:1.75}.word-columns{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.word-columns article{padding:28px 25px 30px 0;margin-right:25px;border-right:1px solid var(--line)}.word-columns article:last-child{border-right:0}.word-columns span{font:500 9px var(--mono);color:#666c66}.word-columns h3{margin-top:36px}.scavenge-list{border-top:1px solid var(--line)}.scavenge-list article{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line)}.scavenge-list article>span{font:500 9px var(--mono);letter-spacing:.12em;color:#858a83;white-space:nowrap}.rules-list{border-top:1px solid var(--line)}.rules-list details{border-bottom:1px solid var(--line)}.rules-list summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:50px 1fr;gap:22px;padding:24px 0;align-items:center}.rules-list summary::-webkit-details-marker{display:none}.rules-list summary span{font:500 9px var(--mono);color:#6f746e}.rules-list summary strong{font:600 clamp(28px,3vw,40px)/1 var(--display);text-transform:uppercase}.rules-list summary strong::after{content:" +";color:#6c716c}.rules-list details[open] summary strong::after{content:" −"}.rule-copy{padding:0 0 28px 72px;max-width:980px;columns:2;column-gap:40px}.rule-copy p{break-inside:avoid;margin:0 0 13px;padding-left:14px;position:relative;color:#929891;font-size:13px;line-height:1.75}.rule-copy p::before{content:"";position:absolute;left:0;top:.75em;width:5px;height:1px;background:#6e736d}.ways{display:grid;grid-template-columns:1fr 1fr;gap:70px;border-top:1px solid var(--line);padding-top:40px}.ways article:first-child{padding-right:70px;border-right:1px solid var(--line)}.ways h3{font-size:clamp(48px,6vw,78px)}.ways div{margin-top:18px;color:#a0a49e;font:500 10px/2 var(--mono);letter-spacing:.06em}.community-section{text-align:center}.text-link{display:inline-block;margin-top:20px;border-bottom:1px solid rgba(199,194,181,.25);padding-bottom:5px;font:600 10px var(--mono);letter-spacing:.1em}.server-wrap{max-width:980px;margin:auto}.server-wrap dl{margin:30px 0;border-top:1px solid var(--line)}.server-wrap dl div{display:grid;grid-template-columns:170px 1fr;padding:17px 0;border-bottom:1px solid var(--line)}dt{font:500 9px var(--mono);color:#707670;letter-spacing:.12em}dd{margin:0;font:600 12px var(--mono);color:#b8bcb7}.server-links{display:flex;gap:28px;font:600 10px var(--mono);letter-spacing:.1em}footer{padding:34px 4vw;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#656b65;font:500 8px var(--mono);letter-spacing:.12em}.cipher,.cipher-mini{display:inline-block;min-height:1em}.cipher-loop{display:block;min-height:1em}.cipher-loop.is-scrambling,.cipher-mini.is-scrambling{color:#e1e1db;text-shadow:1px 0 rgba(175,183,170,.14),-1px 0 rgba(120,116,108,.1)}@media(max-width:1000px){.photo-grid{grid-template-columns:repeat(2,1fr)}.word-columns{grid-template-columns:repeat(2,1fr)}.word-columns article:nth-child(2){border-right:0}.rule-copy{columns:1}}@media(max-width:760px){.nav{display:none;position:absolute;top:74px;left:0;right:0;padding:22px 5vw;flex-direction:column;align-items:flex-start;background:#080908;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.nav.open{display:flex}.menu-toggle{display:block}.brand span{display:none}.photo-grid{grid-template-columns:1fr}.word-columns{grid-template-columns:1fr}.word-columns article{border-right:0;border-bottom:1px solid var(--line);margin-right:0}.line-list article{grid-template-columns:38px 1fr}.scavenge-list article{grid-template-columns:1fr;gap:8px}.rules-list summary{grid-template-columns:35px 1fr}.rule-copy{padding-left:57px}.ways{grid-template-columns:1fr;gap:40px}.ways article:first-child{border-right:0;border-bottom:1px solid var(--line);padding:0 0 40px}.server-wrap dl div{grid-template-columns:1fr;gap:5px}footer{flex-direction:column;gap:8px;text-align:center}.hero-status{font-size:8px;gap:9px}.video-section,.world-section,.editorial,.rules-section,.community-section,.server-section{padding:90px 6vw}}


/* ================================================================
   READABILITY / ALIGNMENT POLISH
================================================================ */
.section-copy > .overline{
  display:block;
  width:100%;
  margin:0 0 14px;
}

.section-copy > h2{
  display:block;
  width:100%;
}

.archive-heading{
  max-width:100%;
  text-align:center;
  margin-bottom:42px;
}

.archive-heading h2{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

/* Photo captions: keep them simple and clean */
.photo figcaption{
  padding-top:16px;
}

.photo h3{
  margin-top:0;
}

/* Rules are intentionally static for readability */
.rules-section .section-copy *,
.rules-section .rules-list *,
.server-section .static-title,
.server-section .static-overline{
  animation:none !important;
  transform:none !important;
  text-shadow:none;
}

.rules-section .section-copy h2{
  min-height:0;
}

.rules-list summary strong{
  min-height:0;
}

/* Static server title */
.server-section .static-title{
  display:block;
}

/* Prevent the cipher class sizing from affecting static areas */
.rules-section .cipher-loop,
.server-section .cipher-loop,
.archive-heading .cipher-loop{
  min-height:0;
}


@media (prefers-reduced-motion: reduce){.reveal{opacity:1!important;filter:none!important;transition:none!important}.cipher-loop,.cipher,.cipher-mini{animation:none!important;transition:none!important}}


/* ================================================================
   MULTI-PAGE STRUCTURE
   The original BlackFall visual language and image grid are preserved.
================================================================ */
.nav a.active{color:var(--text)}
.page-hero{position:relative;min-height:72svh;display:flex;align-items:flex-end;padding:150px 7vw 92px;overflow:hidden;border-bottom:1px solid var(--faint)}
.page-hero-bg,.page-hero-shade{position:absolute;inset:0}
.page-hero-bg{background-position:center;background-size:cover;background-repeat:no-repeat;filter:grayscale(.45) brightness(.38) contrast(1.05);transform:scale(1.01)}
.page-hero-shade{background:linear-gradient(90deg,rgba(5,6,6,.88),rgba(5,6,6,.46) 58%,rgba(5,6,6,.22)),linear-gradient(180deg,rgba(4,5,5,.1),rgba(4,5,5,.78))}
.page-hero-copy{position:relative;z-index:2;max-width:980px}
.page-hero-copy h1{margin:0;font:700 clamp(64px,9vw,124px)/.88 var(--display);text-transform:uppercase;letter-spacing:.005em}
.page-hero-copy p{max-width:720px;margin:24px 0 0;color:#a0a59e;font-size:15px;line-height:1.85}
.home-links-section,.faq-section{padding:110px 7vw;border-top:1px solid var(--faint)}
.section-end-link{margin-top:44px;border-top:1px solid var(--line);padding-top:24px;text-align:right}
.section-end-link a,.page-directory a em{font:600 10px var(--mono);letter-spacing:.1em;color:#a5aaa4}
.page-directory{border-top:1px solid var(--line)}
.page-directory a{display:grid;grid-template-columns:55px 1fr auto;gap:22px;align-items:center;padding:25px 0;border-bottom:1px solid var(--line)}
.page-directory a span{font:500 9px var(--mono);color:#686e68}
.page-directory a strong{font:600 clamp(30px,3vw,42px)/1 var(--display);text-transform:uppercase}
.page-directory a em{font-style:normal}
.page-directory a:hover strong,.section-end-link a:hover{color:#fff}
.faq-answer{padding:0 0 28px 72px;max-width:900px}
.faq-answer p{margin:0;color:#929891;font-size:13px;line-height:1.8}
.guide-visuals{border-top:1px solid var(--faint)}
.story-page-lead{border-top:0}
.lore-grid{margin-top:10px}
/* Source assets remain untouched and are rendered from their original high-resolution files. */
.photo img{image-rendering:auto}
@media(max-width:1100px){.nav{gap:15px}.nav a{font-size:9px}}
@media(max-width:900px){.nav{display:none;position:absolute;top:74px;left:0;right:0;padding:22px 5vw;flex-direction:column;align-items:flex-start;background:#080908;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.nav.open{display:flex}.menu-toggle{display:block}}
@media(max-width:760px){.page-hero{min-height:62svh;padding:130px 6vw 72px}.page-hero-copy h1{font-size:clamp(54px,16vw,82px)}.home-links-section,.faq-section{padding:90px 6vw}.page-directory a{grid-template-columns:38px 1fr}.page-directory a em{grid-column:2}.faq-answer{padding-left:57px}.section-end-link{text-align:left}}

/* Homepage rotating cipher word — red accent */
.hero .cipher-cycle,
.hero .cipher-cycle.is-scrambling {
  color: #d8a09a !important;
  text-shadow: 0 0 18px rgba(216,160,154, 0.14);
}

/* Archive overlay: static until play; no small labels or sweeping scan. */
.video-cover span,.video-cover em{display:none!important}.video-cover strong{position:relative;z-index:1}

@keyframes scanDown{to{top:110%}}


/* ================================================================
   ANNOUNCEMENTS — APOCALYPTIC BROADCAST PAGE
   Open editorial layout; no card grid.
================================================================ */
:root{--alert:#d8a09a;--alert-bright:#d8a09a}

.announcement-hero{
  position:relative;
  min-height:88svh;
  display:flex;
  align-items:flex-end;
  padding:150px 7vw 95px;
  overflow:hidden;
  border-bottom:1px solid var(--faint);
}
.announcement-hero-bg,
.announcement-hero-shade,
.announcement-signal{
  position:absolute;
  inset:0;
}
.announcement-hero-bg{
  background:url("../assets/images/forgotten-settlement.webp") center 45%/cover no-repeat;
  filter:grayscale(.55) brightness(.35) contrast(1.1);
  transform:scale(1.015);
}
.announcement-hero-shade{
  background:
    linear-gradient(90deg,rgba(5,6,6,.96) 0%,rgba(5,6,6,.72) 48%,rgba(5,6,6,.26) 100%),
    linear-gradient(180deg,rgba(5,6,6,.10),rgba(5,6,6,.80));
}
.announcement-signal{
  pointer-events:none;
  opacity:.22;
  background:
    repeating-linear-gradient(180deg,rgba(216,160,154,.03) 0,rgba(216,160,154,.03) 1px,transparent 1px,transparent 5px),
    linear-gradient(90deg,transparent 0 66%,rgba(216,160,154,.08) 66.1% 66.25%,transparent 66.35%);
}
.announcement-hero-copy{
  position:relative;
  z-index:2;
  width:min(980px,92vw);
}
.announcement-kicker{
  display:block;
  margin-bottom:18px;
  color:var(--alert-bright);
  font:600 9px var(--mono);
  letter-spacing:.19em;
}
.announcement-hero h1{
  margin:0;
  font:800 clamp(72px,10vw,138px)/.82 var(--display);
  text-transform:uppercase;
  letter-spacing:.005em;
}
.announcement-hero h1 span{
  color:#d6d6d0;
}
.announcement-hero p{
  max-width:700px;
  margin:30px 0 28px;
  color:#a1a69f;
  font-size:15px;
  line-height:1.85;
}
.announcement-primary{
  display:inline-block;
  padding:14px 0 8px;
  border-bottom:1px solid rgba(216,160,154,.72);
  color:#e5e5df;
  font:600 10px var(--mono);
  letter-spacing:.12em;
}
.announcement-primary:hover{
  color:#fff;
  border-color:var(--alert-bright);
}
.announcement-frequency{
  position:absolute;
  z-index:2;
  right:4vw;
  bottom:32px;
  color:#696e68;
  font:500 8px var(--mono);
  letter-spacing:.18em;
  writing-mode:vertical-rl;
}

.announcement-feed{
  padding:120px 7vw;
  border-bottom:1px solid var(--faint);
}
.announcement-feed-head{
  max-width:900px;
  margin-bottom:58px;
}
.announcement-feed-head h2{
  margin:8px 0 18px;
  font:700 clamp(56px,7vw,96px)/.9 var(--display);
  text-transform:uppercase;
}
.announcement-feed-head p{
  max-width:720px;
  color:#8f948e;
  font-size:14px;
  line-height:1.8;
}

.broadcast-lines{
  border-top:1px solid var(--line);
}
.broadcast-lines article{
  display:grid;
  grid-template-columns:150px minmax(260px,1fr) auto;
  gap:34px;
  align-items:center;
  padding:31px 0;
  border-bottom:1px solid var(--line);
  position:relative;
}
.broadcast-lines article::before{
  content:"";
  position:absolute;
  left:0;
  top:-1px;
  width:42px;
  height:1px;
  background:var(--alert);
}
.broadcast-code{
  color:#777d76;
  font:500 9px var(--mono);
  letter-spacing:.12em;
}
.broadcast-lines h3{
  margin:0 0 7px;
  font:600 clamp(30px,3vw,44px)/1 var(--display);
  text-transform:uppercase;
}
.broadcast-lines p{
  margin:0;
  max-width:760px;
  color:#858b85;
  font-size:13px;
  line-height:1.75;
}
.broadcast-lines strong{
  color:var(--alert-bright);
  font:600 9px var(--mono);
  letter-spacing:.16em;
}

.announcement-discord{
  position:relative;
  min-height:68vh;
  display:flex;
  align-items:center;
  overflow:hidden;
  padding:110px 7vw;
  background:
    linear-gradient(90deg,rgba(7,8,8,.95),rgba(7,8,8,.75)),
    url("../assets/images/hidden-bunker.webp") center/cover no-repeat;
}
.announcement-discord::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 72% 44%,rgba(216,160,154,.09),transparent 28%);
}
.announcement-discord-inner{
  position:relative;
  z-index:2;
  max-width:880px;
}
.announcement-discord h2{
  margin:10px 0 22px;
  font:700 clamp(58px,7vw,100px)/.88 var(--display);
  text-transform:uppercase;
}
.announcement-discord p{
  max-width:650px;
  margin:0 0 26px;
  color:#969b95;
  font-size:14px;
  line-height:1.8;
}
.announcement-distress{
  position:absolute;
  left:-3vw;
  right:-3vw;
  top:42px;
  color:rgba(216,160,154,.12);
  font:600 10px var(--mono);
  letter-spacing:.35em;
  white-space:nowrap;
  transform:rotate(-1deg);
}

@media(max-width:760px){
  .announcement-hero{min-height:78svh;padding:130px 6vw 75px}
  .announcement-hero h1{font-size:clamp(62px,18vw,88px)}
  .announcement-frequency{display:none}
  .announcement-feed,.announcement-discord{padding:90px 6vw}
  .broadcast-lines article{
    grid-template-columns:1fr auto;
    gap:12px 20px;
  }
  .broadcast-code{grid-column:1}
  .broadcast-lines article>div{grid-column:1/3}
  .broadcast-lines strong{grid-column:2;grid-row:1}
}


/* ================================================================
   LIVE DISCORD ANNOUNCEMENT FEED
================================================================ */
.live-feed-status{
  display:flex;align-items:center;gap:9px;margin-top:22px;
  color:#747a74;font:600 9px var(--mono);letter-spacing:.14em
}
.live-feed-dot{width:7px;height:7px;border-radius:50%;background:#d8a09a;box-shadow:0 0 0 rgba(216,160,154,0)}
.live-feed-status.online{color:#a5aaa4}
.live-feed-status.online .live-feed-dot{background:var(--alert-bright);box-shadow:0 0 14px rgba(216,160,154,.45)}
.discord-announcement-feed{border-top:1px solid var(--line)}
.discord-message{
  display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:28px;
  padding:34px 0;border-bottom:1px solid var(--line);position:relative
}
.discord-message::before{content:"";position:absolute;left:0;top:-1px;width:38px;height:1px;background:var(--alert)}
.discord-message-index{padding-top:7px;color:#5f655f;font:500 9px var(--mono);letter-spacing:.14em}
.discord-message-body{min-width:0;max-width:980px}
.discord-message-body header{display:flex;align-items:center;gap:12px;margin-bottom:17px}
.discord-author-avatar{width:34px;height:34px;border-radius:50%;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:#111413;display:grid;place-items:center;color:#8d938d;font:600 11px var(--mono)}
.discord-author-avatar img{width:100%;height:100%;object-fit:cover}
.discord-message-body header strong{display:block;color:#d7d9d4;font:600 12px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.discord-message-body header span{display:block;margin-top:4px;color:#666c66;font:500 8px var(--mono);letter-spacing:.1em}
.discord-message-content{color:#a9aea8;font-size:14px;line-height:1.85;overflow-wrap:anywhere}
.discord-message-content strong{color:#e0e2dd;font-weight:600}
.discord-message-content code{padding:2px 5px;background:#111312;border:1px solid rgba(255,255,255,.06);font-family:var(--mono);font-size:.9em}
.discord-message-jump{align-self:start;margin-top:6px;color:#777d77;font:600 9px var(--mono);letter-spacing:.12em;white-space:nowrap}
.discord-message-jump:hover{color:var(--alert-bright)}
.discord-attachments,.discord-embeds{display:grid;gap:12px;margin-top:18px;max-width:820px}
.discord-attachment-image{display:block;overflow:hidden;background:#050606}
.discord-attachment-image img{display:block;width:100%;max-height:620px;object-fit:contain;background:#050606}
.discord-attachment-file{display:inline-block;width:max-content;max-width:100%;padding:9px 0;border-bottom:1px solid rgba(216,160,154,.4);color:#a3a8a2;font:500 9px var(--mono);letter-spacing:.08em;overflow-wrap:anywhere}
.discord-embed{display:block;padding:18px 0 18px 18px;border-left:2px solid rgba(216,160,154,.48);color:inherit}
.discord-embed h4{margin:0 0 8px;color:#d4d6d1;font:600 20px var(--display);text-transform:uppercase}
.discord-embed p{margin:0;color:#8f958e;font-size:13px;line-height:1.75}
.discord-embed img{display:block;max-width:100%;max-height:500px;margin-top:14px;object-fit:contain}
.announcement-feed-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:28px}
.announcement-feed-actions a,.feed-refresh{color:#878d87;font:600 9px var(--mono);letter-spacing:.11em}
.feed-refresh{appearance:none;border:0;border-bottom:1px solid rgba(216,160,154,.35);background:transparent;padding:0 0 7px;cursor:pointer}
.feed-refresh:hover,.announcement-feed-actions a:hover{color:#d5d7d2}
.feed-refresh:disabled{opacity:.45;cursor:wait}
.announcement-loading,.announcement-empty,.announcement-error{padding:48px 0;border-bottom:1px solid var(--line)}
.announcement-loading span,.announcement-empty span,.announcement-error span{display:block;margin-bottom:9px;color:#6d736d;font:500 8px var(--mono);letter-spacing:.15em}
.announcement-loading strong,.announcement-empty strong,.announcement-error strong{display:block;color:#c8cbc5;font:600 clamp(25px,3vw,38px) var(--display);text-transform:uppercase}
.announcement-error p{max-width:650px;color:#858b85;font-size:13px;line-height:1.75}
.announcement-error a{display:inline-block;margin-top:14px;color:var(--alert-bright);font:600 9px var(--mono);letter-spacing:.1em;border-bottom:1px solid rgba(216,160,154,.45);padding-bottom:6px}
@media(max-width:760px){
  .discord-message{grid-template-columns:36px 1fr;gap:14px}
  .discord-message-jump{grid-column:2;margin-top:4px}
  .announcement-feed-actions{align-items:flex-start;flex-direction:column}
}


/* ================================================================
   COMMUNITY SECTION — TRUE CENTRING
================================================================ */
.community-section .section-copy.centered{
  width:min(100%, 980px);
  margin-left:auto;
  margin-right:auto;
  margin-bottom:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}

.community-section .section-copy.centered .overline,
.community-section .section-copy.centered h2,
.community-section .section-copy.centered p{
  width:100%;
  text-align:center;
}

.community-section .section-copy.centered p{
  margin-left:auto;
  margin-right:auto;
}

.community-section .section-copy.centered .text-link{
  align-self:center;
}

/* ================================================================
   WORLD SECTION — TRUE CENTRING
================================================================ */
.world-section > .section-copy.centered{
  width:min(100%, 1050px);
  max-width:1050px;
  margin-left:auto;
  margin-right:auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}

.world-section > .section-copy.centered .overline,
.world-section > .section-copy.centered h2{
  width:100%;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

.world-section > .section-copy.centered p{
  width:min(100%, 760px);
  max-width:760px;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}


/* ================================================================
   SMOOTH SCROLL / CINEMATIC SECTION TRANSITIONS
   Native scrolling is preserved; wheel/touch input is never hijacked.
================================================================ */
html{
  scroll-behavior:smooth;
  scroll-padding-top:90px;
}

/* Existing authored reveal elements: gentle fade, blur and upward drift. */
.scroll-fx .reveal{
  opacity:0;
  filter:blur(7px);
  transform:translate3d(0,22px,0);
  transition:
    opacity .95s cubic-bezier(.22,.61,.36,1),
    filter .95s cubic-bezier(.22,.61,.36,1),
    transform 1.05s cubic-bezier(.16,1,.3,1);
  transition-delay:var(--reveal-delay,0ms);
  will-change:opacity,filter,transform;
}
.scroll-fx .reveal.visible{
  opacity:1;
  filter:blur(0);
  transform:translate3d(0,0,0);
}

/* Automatically applied to sections, image tiles and information rows. */
.scroll-fx .scroll-reveal{
  opacity:0;
  filter:blur(5px);
  transform:translate3d(0,18px,0);
  transition:
    opacity 1s cubic-bezier(.22,.61,.36,1),
    filter 1s cubic-bezier(.22,.61,.36,1),
    transform 1.08s cubic-bezier(.16,1,.3,1);
  transition-delay:var(--reveal-delay,0ms);
  will-change:opacity,filter,transform;
}
.scroll-fx .scroll-reveal.visible{
  opacity:1;
  filter:blur(0);
  transform:translate3d(0,0,0);
}

/* Full sections use an even softer movement so the page feels continuous. */
.scroll-fx main > section.scroll-reveal{
  transform:translate3d(0,12px,0);
  transition-duration:1.15s,1.15s,1.2s;
}
.scroll-fx main > section.scroll-reveal.visible{
  transform:translate3d(0,0,0);
}

/* Images ease into their existing hover animation cleanly. */
.scroll-fx .photo.scroll-reveal img{
  transition:
    transform .75s cubic-bezier(.16,1,.3,1),
    filter .6s ease;
}

/* Header movement feels less abrupt while the page scrolls. */
.site-header{
  transition:
    background .45s ease,
    border-color .45s ease,
    backdrop-filter .45s ease;
}

/* Respect OS accessibility settings and never hide content. */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .scroll-fx .reveal,
  .scroll-fx .scroll-reveal{
    opacity:1!important;
    filter:none!important;
    transform:none!important;
    transition:none!important;
  }
}


/* ================================================================
   ULTRA-SMOOTH BIDIRECTIONAL SCROLL
   Elements reveal entering the viewport and soften away when leaving.
================================================================ */
.scroll-fx .reveal,
.scroll-fx .scroll-reveal{
  opacity:0;
  filter:blur(8px);
  transform:translate3d(0,var(--reveal-y,18px),0) scale(.992);
  transition:
    opacity .72s cubic-bezier(.22,.61,.36,1),
    filter .82s cubic-bezier(.22,.61,.36,1),
    transform .88s cubic-bezier(.16,1,.3,1);
  transition-delay:var(--reveal-delay,0ms);
  will-change:opacity,filter,transform;
  backface-visibility:hidden;
}

.scroll-fx .reveal.visible,
.scroll-fx .scroll-reveal.visible{
  opacity:1;
  filter:blur(0);
  transform:translate3d(0,0,0) scale(1);
}

/* Large sections move less than individual content, keeping the site calm. */
.scroll-fx main > section.scroll-reveal{
  transform:translate3d(0,var(--reveal-y,12px),0) scale(.996);
}
.scroll-fx main > section.scroll-reveal.visible{
  transform:translate3d(0,0,0) scale(1);
}

/* Keep hover effects from fighting the reveal animation. */
.scroll-fx .photo.scroll-reveal.visible img{
  transform:translateZ(0);
}

/* The page itself stays visually stable while the reveal system works. */
body{
  overflow-x:hidden;
}

@media (prefers-reduced-motion: reduce){
  .scroll-fx .reveal,
  .scroll-fx .scroll-reveal{
    opacity:1!important;
    filter:none!important;
    transform:none!important;
    transition:none!important;
  }
}


/* ================================================================
   PERFORMANCE SMOOTHING
   Reversible scroll reveals without expensive blur/filter effects.
================================================================ */

/* Native browser scrolling = lower input latency and no wheel jank. */
html{
  scroll-behavior:smooth;
  scroll-padding-top:90px;
}

/* Avoid animating expensive filter/blur/scale properties. */
.scroll-fx .reveal,
.scroll-fx .scroll-reveal{
  opacity:0;
  filter:none !important;
  transform:translate3d(0,12px,0);
  transition:
    opacity .48s cubic-bezier(.22,.61,.36,1),
    transform .52s cubic-bezier(.16,1,.3,1);
  transition-delay:var(--reveal-delay,0ms);
  will-change:auto;
  backface-visibility:visible;
}

.scroll-fx .reveal.visible,
.scroll-fx .scroll-reveal.visible{
  opacity:1;
  filter:none !important;
  transform:translate3d(0,0,0);
}

/* Do not animate full sections and their children simultaneously. */
.scroll-fx main > section.scroll-reveal{
  opacity:1 !important;
  transform:none !important;
  transition:none !important;
}

/* Keep image transitions GPU-light. */
.scroll-fx .photo.scroll-reveal img{
  transition:transform .35s ease;
}

/* Reduce paint/composite work on the fixed header while scrolling. */
.site-header{
  transition:background .25s ease,border-color .25s ease;
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .scroll-fx .reveal,
  .scroll-fx .scroll-reveal{
    opacity:1!important;
    filter:none!important;
    transform:none!important;
    transition:none!important;
  }
}


/* ================================================================
   LIVE LEADERBOARD — SURVIVOR RECORD / MILITARY ARCHIVE STYLE
================================================================ */
.leaderboard-hero{
  position:relative;
  min-height:78svh;
  display:flex;
  align-items:flex-end;
  padding:150px 7vw 90px;
  overflow:hidden;
  border-bottom:1px solid var(--faint);
}
.leaderboard-hero-bg,
.leaderboard-hero-shade,
.leaderboard-hero-scan{
  position:absolute;
  inset:0;
}
.leaderboard-hero-bg{
  background:url("../assets/images/contaminated-military.webp") center 38%/cover no-repeat;
  filter:grayscale(.42) brightness(.38) contrast(1.08);
  transform:scale(1.012);
}
.leaderboard-hero-shade{
  background:
    linear-gradient(90deg,rgba(5,6,6,.95),rgba(5,6,6,.63) 55%,rgba(5,6,6,.20)),
    linear-gradient(180deg,rgba(5,6,6,.10),rgba(5,6,6,.86));
}
.leaderboard-hero-scan{
  pointer-events:none;
  opacity:.25;
  background:
    repeating-linear-gradient(180deg,rgba(255,255,255,.015) 0,rgba(255,255,255,.015) 1px,transparent 1px,transparent 5px);
}
.leaderboard-hero-copy{
  position:relative;
  z-index:2;
  max-width:1020px;
}
.leaderboard-kicker{
  display:block;
  margin-bottom:18px;
  color:#d8a09a;
  font:600 9px var(--mono);
  letter-spacing:.18em;
}
.leaderboard-hero h1{
  margin:0;
  font:800 clamp(82px,11vw,150px)/.79 var(--display);
  text-transform:uppercase;
  letter-spacing:.005em;
}
.leaderboard-hero h1 span{color:#d9d9d4}
.leaderboard-hero p{
  max-width:700px;
  margin:30px 0 25px;
  color:#a0a59f;
  font-size:15px;
  line-height:1.85;
}
.leaderboard-signal{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:22px;
  color:#7f857f;
  font:500 8px var(--mono);
  letter-spacing:.16em;
}
.leaderboard-signal strong{color:#bfc4bd}
.leaderboard-live-dot{
  width:6px;height:6px;border-radius:50%;
  background:#70a87b;
  box-shadow:0 0 0 4px rgba(112,168,123,.06);
}
.leaderboard-signal.syncing .leaderboard-live-dot{
  animation:leaderboardPulse .8s ease-in-out infinite alternate;
}
@keyframes leaderboardPulse{to{opacity:.28;transform:scale(.7)}}

.leaderboard-section{
  padding:115px 7vw 130px;
}
.leaderboard-heading{
  max-width:920px;
  margin-bottom:50px;
}
.leaderboard-heading h2{
  margin:8px 0 18px;
  font:700 clamp(58px,7vw,100px)/.88 var(--display);
  text-transform:uppercase;
}
.leaderboard-heading p{
  max-width:720px;
  margin:0;
  color:#898f89;
  font-size:14px;
  line-height:1.8;
}

.leaderboard-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.leaderboard-tabs button{
  appearance:none;
  background:transparent;
  border:0;
  border-right:1px solid var(--line);
  color:#777d77;
  padding:18px 22px;
  font:600 9px var(--mono);
  letter-spacing:.12em;
  cursor:pointer;
  transition:color .2s ease,background .2s ease;
}
.leaderboard-tabs button:first-child{border-left:1px solid var(--line)}
.leaderboard-tabs button:hover{color:#d6d9d3}
.leaderboard-tabs button.active{
  color:#f0f0ea;
  background:rgba(216,160,154,.10);
  box-shadow:inset 0 -1px 0 #d8a09a;
}

.leaderboard-meta{
  display:grid;
  grid-template-columns:1fr 1fr 1fr auto;
  border-bottom:1px solid var(--line);
}
.leaderboard-meta>div{
  padding:24px 0;
  border-right:1px solid var(--line);
}
.leaderboard-meta>div+div{padding-left:26px}
.leaderboard-meta span{
  display:block;
  margin-bottom:7px;
  color:#676d67;
  font:500 8px var(--mono);
  letter-spacing:.15em;
}
.leaderboard-meta strong{
  color:#b7bcb6;
  font:600 11px var(--mono);
  letter-spacing:.08em;
}
.leaderboard-meta button{
  appearance:none;
  border:0;
  background:transparent;
  color:#9b9f99;
  padding:0 0 0 28px;
  font:600 9px var(--mono);
  letter-spacing:.12em;
  cursor:pointer;
}
.leaderboard-meta button:hover{color:#fff}
.leaderboard-meta button:disabled{opacity:.35;cursor:default}

.leaderboard-table-wrap{
  margin-top:34px;
  border-top:1px solid var(--line);
}
.leaderboard-table-head,
.leaderboard-row{
  display:grid;
  grid-template-columns:90px minmax(250px,1fr) 180px 120px 120px;
  gap:20px;
  align-items:center;
}
.leaderboard-table-head{
  min-height:54px;
  border-bottom:1px solid var(--line);
  color:#656b65;
  font:500 8px var(--mono);
  letter-spacing:.16em;
}
.leaderboard-row{
  position:relative;
  min-height:76px;
  border-bottom:1px solid var(--line);
  transition:background .2s ease,padding .2s ease;
}
.leaderboard-row::before{
  content:"";
  position:absolute;
  left:0;top:-1px;
  width:0;height:1px;
  background:#d8a09a;
  transition:width .25s ease;
}
.leaderboard-row:hover{
  background:linear-gradient(90deg,rgba(216,160,154,.055),transparent 60%);
  padding-left:8px;
}
.leaderboard-row:hover::before{width:50px}
.leaderboard-rank{
  color:#696f69;
  font:600 12px var(--mono);
}
.leaderboard-name{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#e3e4df;
  font:600 clamp(23px,2vw,31px)/1 var(--display);
  text-transform:uppercase;
  letter-spacing:.015em;
}
.leaderboard-primary-value{
  color:#d3d6cf;
  font:600 18px var(--mono);
}
.leaderboard-row>span:not(.leaderboard-rank){
  color:#90958f;
  font:500 11px var(--mono);
}
.leaderboard-row.first .leaderboard-rank,
.leaderboard-row.first .leaderboard-primary-value{color:#d2a65c}
.leaderboard-row.second .leaderboard-rank,
.leaderboard-row.second .leaderboard-primary-value{color:#b2b7b2}
.leaderboard-row.third .leaderboard-rank,
.leaderboard-row.third .leaderboard-primary-value{color:#a87251}

.leaderboard-loading,
.leaderboard-empty{
  min-height:190px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:14px;
  border-bottom:1px solid var(--line);
  color:#7e847e;
  text-align:center;
}
.leaderboard-loading strong,
.leaderboard-empty strong{
  font:600 10px var(--mono);
  letter-spacing:.14em;
}
.leaderboard-empty span{
  font-size:12px;
  color:#666c66;
}
.leaderboard-loader{
  width:28px;height:28px;border-radius:50%;
  border:1px solid #424742;
  border-top-color:#d8a09a;
  animation:leaderboardSpin .85s linear infinite;
}
@keyframes leaderboardSpin{to{transform:rotate(360deg)}}

.leaderboard-error{
  margin-top:32px;
  padding:28px 0;
  border-top:1px solid rgba(216,160,154,.45);
  border-bottom:1px solid var(--line);
}
.leaderboard-error span{
  color:#d8a09a;
  font:600 8px var(--mono);
  letter-spacing:.16em;
}
.leaderboard-error strong{
  display:block;
  margin:9px 0 8px;
  font:600 28px/1 var(--display);
  text-transform:uppercase;
}
.leaderboard-error p{
  margin:0;
  color:#7e847e;
  font-size:12px;
}

.leaderboard-footer-band{
  min-height:56vh;
  display:flex;
  align-items:center;
  padding:100px 7vw;
  border-top:1px solid var(--faint);
  background:
    linear-gradient(90deg,rgba(6,7,7,.95),rgba(6,7,7,.72)),
    url("../assets/images/hidden-bunker.webp") center/cover no-repeat;
}
.leaderboard-footer-band>div{max-width:900px}
.leaderboard-footer-band h2{
  margin:8px 0 18px;
  font:700 clamp(56px,7vw,96px)/.9 var(--display);
  text-transform:uppercase;
}
.leaderboard-footer-band p{
  max-width:660px;
  margin:0;
  color:#90958f;
  line-height:1.8;
}

@media(max-width:960px){
  .leaderboard-table-head,
  .leaderboard-row{
    grid-template-columns:62px minmax(190px,1fr) 130px 90px;
  }
  .leaderboard-table-head>*:last-child,
  .leaderboard-row>*:last-child{display:none}
  .leaderboard-meta{grid-template-columns:1fr 1fr}
  .leaderboard-meta>div:nth-child(2){border-right:0}
  .leaderboard-meta>div:nth-child(3){border-top:1px solid var(--line)}
  .leaderboard-meta button{
    border-top:1px solid var(--line);
    padding:20px 0 20px 26px;
    text-align:left;
  }
}
@media(max-width:700px){
  .leaderboard-hero{min-height:72svh;padding:130px 6vw 72px}
  .leaderboard-hero h1{font-size:clamp(66px,20vw,100px)}
  .leaderboard-section,.leaderboard-footer-band{padding-left:6vw;padding-right:6vw}
  .leaderboard-tabs button{padding:16px 14px}
  .leaderboard-table-head,
  .leaderboard-row{
    grid-template-columns:50px minmax(130px,1fr) 105px;
    gap:12px;
  }
  .leaderboard-table-head>*:nth-child(4),
  .leaderboard-row>*:nth-child(4){display:none}
  .leaderboard-name{font-size:22px}
  .leaderboard-primary-value{font-size:13px}
  .leaderboard-meta{grid-template-columns:1fr}
  .leaderboard-meta>div{
    border-right:0!important;
    border-top:1px solid var(--line);
    padding-left:0!important;
  }
  .leaderboard-meta button{padding-left:0}
}


/* ================================================================
   SIMPLE LEADERBOARD — COMPACT BLACKFALL VERSION
================================================================ */
.simple-leaderboard-hero{
  position:relative;
  min-height:46svh;
  display:flex;
  align-items:flex-end;
  padding:135px 7vw 58px;
  overflow:hidden;
  border-bottom:1px solid var(--faint);
}
.simple-leaderboard-bg,
.simple-leaderboard-shade{
  position:absolute;
  inset:0;
}
.simple-leaderboard-bg{
  background:url("../assets/images/contaminated-military.webp") center 42%/cover no-repeat;
  filter:grayscale(.48) brightness(.34);
}
.simple-leaderboard-shade{
  background:
    linear-gradient(90deg,rgba(5,6,6,.93),rgba(5,6,6,.60) 55%,rgba(5,6,6,.22)),
    linear-gradient(180deg,rgba(5,6,6,.04),rgba(5,6,6,.82));
}
.simple-leaderboard-copy{
  position:relative;
  z-index:1;
}
.simple-leaderboard-copy h1{
  margin:5px 0 8px;
  font:800 clamp(66px,9vw,118px)/.84 var(--display);
  letter-spacing:.01em;
}
.simple-leaderboard-copy p{
  margin:0;
  color:#939993;
  font-size:14px;
}

.simple-leaderboard-section{
  padding:78px 7vw 115px;
}
.simple-leaderboard-top{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:30px;
  padding-bottom:25px;
  border-bottom:1px solid var(--line);
}
.simple-leaderboard-top h2{
  margin:5px 0 0;
  font:700 clamp(44px,5vw,68px)/.9 var(--display);
}
.simple-live-status{
  display:flex;
  align-items:center;
  gap:10px;
  padding-bottom:5px;
  color:#666c66;
  font:500 8px var(--mono);
  letter-spacing:.12em;
}
.simple-live-status strong{color:#aeb3ad}

.simple-leaderboard-controls{
  display:grid;
  grid-template-columns:minmax(260px,1fr) minmax(200px,310px) auto;
  gap:18px;
  align-items:end;
  padding:25px 0 28px;
  border-bottom:1px solid var(--line);
}
.simple-search,
.simple-select{
  display:block;
}
.simple-search>span,
.simple-select>span{
  display:block;
  margin-bottom:9px;
  color:#626862;
  font:500 8px var(--mono);
  letter-spacing:.14em;
}
.simple-search input,
.simple-select select{
  width:100%;
  height:46px;
  border:1px solid #252925;
  border-radius:0;
  outline:0;
  background:#0b0c0c;
  color:#d9dbd6;
  padding:0 14px;
  font:500 10px var(--mono);
  letter-spacing:.08em;
}
.simple-search input:focus,
.simple-select select:focus{
  border-color:#5f665f;
}
.simple-search input::placeholder{color:#4f554f}
.simple-select select{cursor:pointer}
.simple-refresh{
  height:46px;
  padding:0 18px;
  border:1px solid #303530;
  background:transparent;
  color:#939993;
  font:600 9px var(--mono);
  letter-spacing:.10em;
  cursor:pointer;
}
.simple-refresh:hover{
  border-color:#6b716b;
  color:#fff;
}
.simple-refresh:disabled{
  opacity:.35;
  cursor:default;
}

.simple-leaderboard-table{
  margin-top:24px;
  border-top:1px solid var(--line);
}
.simple-leaderboard-head,
.simple-leaderboard-row{
  display:grid;
  grid-template-columns:72px minmax(260px,1fr) 150px 100px 150px;
  gap:20px;
  align-items:center;
}
.simple-leaderboard-head{
  min-height:48px;
  color:#5f655f;
  border-bottom:1px solid var(--line);
  font:500 8px var(--mono);
  letter-spacing:.14em;
}
.simple-leaderboard-row{
  min-height:62px;
  border-bottom:1px solid var(--line);
  transition:background .18s ease;
}
.simple-leaderboard-row:hover{
  background:linear-gradient(90deg,rgba(216,160,154,.045),transparent 64%);
}
.simple-rank{
  color:#666c66;
  font:600 10px var(--mono);
}
.simple-name{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#dfe1dc;
  font:600 clamp(20px,2vw,27px)/1 var(--display);
  text-transform:uppercase;
}
.simple-value{
  color:#d2d5ce;
  font:600 13px var(--mono);
}
.simple-leaderboard-row>span:not(.simple-rank){
  color:#868c86;
  font:500 10px var(--mono);
}
.simple-leaderboard-row.top-1 .simple-rank,
.simple-leaderboard-row.top-1 .simple-value{color:#c9a35c}
.simple-leaderboard-row.top-2 .simple-rank,
.simple-leaderboard-row.top-2 .simple-value{color:#adb3ad}
.simple-leaderboard-row.top-3 .simple-rank,
.simple-leaderboard-row.top-3 .simple-value{color:#9f7052}

@media(max-width:860px){
  .simple-leaderboard-controls{
    grid-template-columns:1fr 1fr;
  }
  .simple-refresh{
    grid-column:1/3;
  }
  .simple-leaderboard-head,
  .simple-leaderboard-row{
    grid-template-columns:52px minmax(180px,1fr) 110px 80px;
  }
  .simple-leaderboard-head>*:last-child,
  .simple-leaderboard-row>*:last-child{
    display:none;
  }
}
@media(max-width:640px){
  .simple-leaderboard-hero{
    min-height:40svh;
    padding:120px 6vw 48px;
  }
  .simple-leaderboard-section{
    padding:60px 6vw 90px;
  }
  .simple-leaderboard-top{
    display:block;
  }
  .simple-live-status{
    margin-top:18px;
  }
  .simple-leaderboard-controls{
    grid-template-columns:1fr;
  }
  .simple-refresh{
    grid-column:auto;
  }
  .simple-leaderboard-head,
  .simple-leaderboard-row{
    grid-template-columns:42px minmax(130px,1fr) 90px;
    gap:10px;
  }
  .simple-leaderboard-head>*:nth-child(4),
  .simple-leaderboard-row>*:nth-child(4){
    display:none;
  }
  .simple-name{font-size:19px}
  .simple-value{font-size:11px}
}


/* ================================================================
   SUBTLE BLACKFALL RED ACCENTS — LEADERBOARD
   Restrained use only: emphasis, focus, separators and interaction.
================================================================ */
:root{
  --bf-red:#d8a09a;
  --bf-red-bright:#d8a09a;
  --bf-red-soft:rgba(216,160,154,.10);
  --bf-red-line:rgba(216,160,154,.42);
}

/* Small red signal in the hero, not a full red treatment. */
.simple-leaderboard-copy .overline{
  color:var(--bf-red-bright);
}

/* Active leaderboard nav gets a thin red underline. */
.nav a[href="leaderboard.html"].active{
  color:#eceee9;
  box-shadow:inset 0 -1px 0 var(--bf-red);
}

/* Fine red divider at the top of the ranking area. */
.simple-leaderboard-top{
  position:relative;
}
.simple-leaderboard-top::before{
  content:"";
  position:absolute;
  left:0;
  bottom:-1px;
  width:54px;
  height:1px;
  background:var(--bf-red);
}

/* Inputs stay dark; red only appears when interacting. */
.simple-search input:focus,
.simple-select select:focus{
  border-color:var(--bf-red-line);
  box-shadow:0 0 0 1px rgba(216,160,154,.06);
}

/* Rank selector and refresh hover get a restrained red response. */
.simple-select select:hover,
.simple-refresh:hover{
  border-color:var(--bf-red-line);
}
.simple-refresh:hover{
  color:#e8e9e4;
  background:var(--bf-red-soft);
}

/* Table uses a tiny red cue on hover instead of large blocks of colour. */
.simple-leaderboard-row{
  position:relative;
}
.simple-leaderboard-row::before{
  content:"";
  position:absolute;
  left:0;
  top:-1px;
  width:0;
  height:1px;
  background:var(--bf-red);
  transition:width .22s ease;
}
.simple-leaderboard-row:hover::before{
  width:42px;
}
.simple-leaderboard-row:hover{
  background:linear-gradient(90deg,rgba(216,160,154,.045),transparent 58%);
}

/* Main selected statistic gets the red emphasis. */
.simple-value{
  color:#d8dad4;
}
.simple-leaderboard-row:hover .simple-value{
  color:#d8a09a;
}

/* Loader and offline states use the same muted red language. */
.leaderboard-loader{
  border-top-color:var(--bf-red)!important;
}
.leaderboard-error{
  border-top-color:var(--bf-red-line)!important;
}
.leaderboard-error span{
  color:var(--bf-red-bright)!important;
}

/* Keep live status green so red still reads as BlackFall accent, not status. */
.simple-live-status .leaderboard-live-dot{
  background:#70a87b;
}


/* ================================================================
   CENTERED LEADERBOARD PANEL
   Compact, boxed layout inspired by the reference site,
   but kept in BlackFall's own visual language.
================================================================ */
.leaderboard-page{
  min-height:100vh;
  background:#070808;
}

.leaderboard-stage{
  position:relative;
  min-height:calc(100svh - 54px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:125px 5vw 90px;
  overflow:hidden;
}

.leaderboard-stage-bg,
.leaderboard-stage-shade{
  position:absolute;
  inset:0;
}

.leaderboard-stage-bg{
  background:
    url("../assets/images/contaminated-military.webp")
    center 42%/cover no-repeat;
  filter:grayscale(.58) brightness(.27) contrast(1.08);
  transform:scale(1.015);
}

.leaderboard-stage-shade{
  background:
    radial-gradient(circle at 50% 42%,rgba(10,11,11,.28),rgba(5,6,6,.84) 70%),
    linear-gradient(180deg,rgba(5,6,6,.34),rgba(5,6,6,.90));
}

.leaderboard-shell{
  position:relative;
  z-index:2;
  width:min(1180px,100%);
  max-height:min(780px,calc(100svh - 165px));
  display:flex;
  flex-direction:column;
  background:rgba(8,9,9,.94);
  border:1px solid rgba(199,194,181,.18);
  box-shadow:
    0 35px 90px rgba(0,0,0,.48),
    inset 0 1px 0 rgba(255,255,255,.018);
  backdrop-filter:blur(8px);
}

.leaderboard-shell::before{
  content:"";
  position:absolute;
  left:-1px;
  right:-1px;
  top:-1px;
  height:2px;
  background:linear-gradient(
    90deg,
    transparent,
    rgba(216,160,154,.18) 20%,
    var(--bf-red) 50%,
    rgba(216,160,154,.18) 80%,
    transparent
  );
}

.leaderboard-shell-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:34px;
  padding:32px 34px 27px;
  border-bottom:1px solid var(--line);
}

.leaderboard-shell-head h1{
  margin:5px 0 4px;
  font:800 clamp(48px,5.3vw,76px)/.84 var(--display);
  letter-spacing:.01em;
}

.leaderboard-shell-head p{
  margin:0;
  color:#7f857f;
  font-size:12px;
}

.leaderboard-shell-head .overline{
  color:var(--bf-red-bright);
}

.leaderboard-shell-controls{
  display:grid;
  grid-template-columns:minmax(250px,1fr) minmax(190px,280px) auto;
  gap:14px;
  align-items:end;
  padding:20px 34px;
  border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.009);
}

.leaderboard-shell-controls .simple-search input,
.leaderboard-shell-controls .simple-select select{
  height:42px;
  background:#090a0a;
}

.leaderboard-shell-controls .simple-refresh{
  height:42px;
}

.leaderboard-box-table{
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

.leaderboard-box-table .simple-leaderboard-head{
  flex:0 0 44px;
  padding:0 34px;
  background:rgba(255,255,255,.012);
}

.leaderboard-box-table .simple-leaderboard-rows{
  min-height:0;
  overflow:auto;
  scrollbar-width:thin;
  scrollbar-color:#343934 transparent;
}

.leaderboard-box-table .simple-leaderboard-row{
  padding:0 34px;
}

.leaderboard-box-table .simple-leaderboard-row:hover{
  background:linear-gradient(90deg,rgba(216,160,154,.055),transparent 60%);
}

.leaderboard-box-table .simple-leaderboard-row::before{
  left:34px;
}

.leaderboard-box-table .leaderboard-loading,
.leaderboard-box-table .leaderboard-empty{
  min-height:250px;
}

.leaderboard-shell .leaderboard-error{
  margin:0;
  padding:22px 34px;
  background:rgba(216,160,154,.035);
}

.leaderboard-page footer{
  position:relative;
  z-index:3;
}

/* Give the internal scrollbar a cleaner desktop appearance. */
.leaderboard-box-table .simple-leaderboard-rows::-webkit-scrollbar{
  width:7px;
}
.leaderboard-box-table .simple-leaderboard-rows::-webkit-scrollbar-track{
  background:transparent;
}
.leaderboard-box-table .simple-leaderboard-rows::-webkit-scrollbar-thumb{
  background:#2c302c;
  border:2px solid #090a0a;
}
.leaderboard-box-table .simple-leaderboard-rows::-webkit-scrollbar-thumb:hover{
  background:#414641;
}

@media(max-width:900px){
  .leaderboard-stage{
    align-items:flex-start;
    padding-top:110px;
  }

  .leaderboard-shell{
    max-height:none;
  }

  .leaderboard-shell-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .leaderboard-shell-controls{
    grid-template-columns:1fr 1fr;
  }

  .leaderboard-shell-controls .simple-refresh{
    grid-column:1/3;
  }

  .leaderboard-box-table .simple-leaderboard-rows{
    max-height:620px;
  }
}

@media(max-width:640px){
  .leaderboard-stage{
    padding:95px 4vw 65px;
  }

  .leaderboard-shell-head,
  .leaderboard-shell-controls{
    padding-left:20px;
    padding-right:20px;
  }

  .leaderboard-shell-controls{
    grid-template-columns:1fr;
  }

  .leaderboard-shell-controls .simple-refresh{
    grid-column:auto;
  }

  .leaderboard-box-table .simple-leaderboard-head,
  .leaderboard-box-table .simple-leaderboard-row{
    padding-left:20px;
    padding-right:20px;
  }

  .leaderboard-box-table .simple-leaderboard-row::before{
    left:20px;
  }

  .leaderboard-shell-head h1{
    font-size:52px;
  }
}


/* ================================================================
   MINIMAL CLEAN CTA BUTTON SYSTEM
   Replaces the thin underlined action-link style across the website.
================================================================ */

/* Primary text-style CTAs used throughout the site */
.text-link,
.section-end-link a,
.server-links a,
.announcement-primary,
.announcement-feed-actions a,
.discord-message-jump,
.discord-attachment-file,
.announcement-error a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:max-content;
  min-height:38px;
  margin-top:0;
  padding:10px 15px;
  border:1px solid rgba(232,232,226,.16) !important;
  border-radius:2px;
  background:rgba(255,255,255,.025);
  color:#c9cdc7 !important;
  font:600 9px var(--mono);
  letter-spacing:.11em;
  line-height:1.2;
  text-decoration:none;
  box-shadow:none;
  transition:
    color .18s ease,
    background .18s ease,
    border-color .18s ease,
    transform .18s ease;
}

/* Undo the old underline spacing on these elements */
.text-link,
.announcement-primary,
.discord-attachment-file,
.announcement-error a {
  padding-bottom:10px !important;
  border-bottom:1px solid rgba(232,232,226,.16) !important;
}

.text-link {
  margin-top:22px;
}

.section-end-link {
  padding-top:24px;
}

.server-links {
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
}

.announcement-feed-actions {
  align-items:center;
}

/* Clean restrained hover state */
.text-link:hover,
.section-end-link a:hover,
.server-links a:hover,
.announcement-primary:hover,
.announcement-feed-actions a:hover,
.discord-message-jump:hover,
.discord-attachment-file:hover,
.announcement-error a:hover {
  color:#ffffff !important;
  background:rgba(255,255,255,.065);
  border-color:rgba(232,232,226,.34) !important;
  transform:translateY(-1px);
}

/* Keep the announcement page's red identity very subtle */
.announcement-primary:hover,
.announcement-feed-actions a:hover,
.announcement-error a:hover {
  border-color:rgba(216,160,154,.50) !important;
}

/* Refresh button now matches the same minimal system */
.feed-refresh {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:10px 15px;
  border:1px solid rgba(232,232,226,.16) !important;
  border-radius:2px;
  background:rgba(255,255,255,.025);
  color:#c9cdc7 !important;
  font:600 9px var(--mono);
  letter-spacing:.11em;
  line-height:1.2;
  transition:
    color .18s ease,
    background .18s ease,
    border-color .18s ease,
    transform .18s ease;
}

.feed-refresh:hover {
  color:#fff !important;
  background:rgba(255,255,255,.065);
  border-color:rgba(216,160,154,.50) !important;
  transform:translateY(-1px);
}

.feed-refresh:disabled {
  opacity:.42;
  transform:none;
}

/* Mobile CTAs remain compact and do not stretch awkwardly */
@media(max-width:760px){
  .text-link,
  .section-end-link a,
  .server-links a,
  .announcement-primary,
  .announcement-feed-actions a,
  .feed-refresh {
    min-height:40px;
    padding:11px 14px;
  }

  .announcement-feed-actions {
    align-items:flex-start;
    flex-direction:column;
  }
}


/* ================================================================
   ROUND CTA BUTTONS + SUBTLE SHIMMER GLOW
================================================================ */

.text-link,
.section-end-link a,
.server-links a,
.announcement-primary,
.announcement-feed-actions a,
.discord-message-jump,
.discord-attachment-file,
.announcement-error a,
.feed-refresh {
  position: relative;
  overflow: hidden;
  border-radius: 999px !important;
  padding: 11px 18px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02)) !important;
  border: 1px solid rgba(232,232,226,.18) !important;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.015) inset,
    0 0 18px rgba(255,255,255,.035);
}

/* remove old underline feel completely */
.text-link,
.announcement-primary,
.discord-attachment-file,
.announcement-error a,
.server-links a,
.section-end-link a,
.discord-message-jump,
.announcement-feed-actions a,
.feed-refresh {
  text-decoration: none !important;
}

/* shimmer sweep */
.text-link::before,
.section-end-link a::before,
.server-links a::before,
.announcement-primary::before,
.announcement-feed-actions a::before,
.discord-message-jump::before,
.discord-attachment-file::before,
.announcement-error a::before,
.feed-refresh::before {
  content: "";
  position: absolute;
  top: -40%;
  left: -30%;
  width: 28%;
  height: 180%;
  transform: rotate(18deg) translateX(-220%);
  background: linear-gradient(
    90deg,
    rgba(255,255,255,0),
    rgba(255,255,255,.08),
    rgba(255,255,255,.18),
    rgba(255,255,255,.08),
    rgba(255,255,255,0)
  );
  pointer-events: none;
  animation: ctaShimmer 4.8s ease-in-out infinite;
}

@keyframes ctaShimmer {
  0%, 72%, 100% {
    transform: rotate(18deg) translateX(-240%);
    opacity: 0;
  }
  8% {
    opacity: .75;
  }
  24% {
    transform: rotate(18deg) translateX(520%);
    opacity: .55;
  }
  30% {
    opacity: 0;
  }
}

.text-link:hover,
.section-end-link a:hover,
.server-links a:hover,
.announcement-primary:hover,
.announcement-feed-actions a:hover,
.discord-message-jump:hover,
.discord-attachment-file:hover,
.announcement-error a:hover,
.feed-refresh:hover {
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.04)) !important;
  border-color: rgba(232,232,226,.34) !important;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.02) inset,
    0 0 22px rgba(255,255,255,.06);
}

/* subtle announcement red identity only on hover glow */
.announcement-primary:hover,
.announcement-feed-actions a:hover,
.announcement-error a:hover,
.feed-refresh:hover {
  box-shadow:
    0 0 0 1px rgba(255,255,255,.02) inset,
    0 0 18px rgba(216,160,154,.12);
}

/* mobile balance */
@media (max-width: 760px) {
  .text-link,
  .section-end-link a,
  .server-links a,
  .announcement-primary,
  .announcement-feed-actions a,
  .discord-message-jump,
  .discord-attachment-file,
  .announcement-error a,
  .feed-refresh {
    padding: 11px 16px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .text-link::before,
  .section-end-link a::before,
  .server-links a::before,
  .announcement-primary::before,
  .announcement-feed-actions a::before,
  .discord-message-jump::before,
  .discord-attachment-file::before,
  .announcement-error a::before,
  .feed-refresh::before {
    animation: none !important;
    opacity: 0 !important;
  }
}


/* ================================================================
   CENTERED ANNOUNCEMENTS PANEL
   Matches the leaderboard page's contained presentation.
================================================================ */
.announcements-panel-page{
  min-height:100vh;
  background:#070808;
}

.announcements-stage{
  position:relative;
  min-height:calc(100svh - 54px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:125px 5vw 90px;
  overflow:hidden;
}

.announcements-stage-bg,
.announcements-stage-shade,
.announcements-stage-lines{
  position:absolute;
  inset:0;
}

.announcements-stage-bg{
  background:
    url("../assets/images/forgotten-settlement.webp")
    center 43%/cover no-repeat;
  filter:grayscale(.56) brightness(.29) contrast(1.08);
  transform:scale(1.015);
}

.announcements-stage-shade{
  background:
    radial-gradient(circle at 50% 42%,rgba(9,10,10,.23),rgba(5,6,6,.84) 72%),
    linear-gradient(180deg,rgba(5,6,6,.25),rgba(5,6,6,.90));
}

.announcements-stage-lines{
  pointer-events:none;
  opacity:.20;
  background:
    repeating-linear-gradient(
      180deg,
      rgba(216,160,154,.016) 0,
      rgba(216,160,154,.016) 1px,
      transparent 1px,
      transparent 6px
    );
}

.announcements-shell{
  position:relative;
  z-index:2;
  width:min(1080px,100%);
  max-height:min(790px,calc(100svh - 165px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:rgba(8,9,9,.945);
  border:1px solid rgba(199,194,181,.18);
  border-radius:8px;
  box-shadow:
    0 35px 90px rgba(0,0,0,.50),
    inset 0 1px 0 rgba(255,255,255,.018);
  backdrop-filter:blur(8px);
}

.announcements-shell::before{
  content:"";
  position:absolute;
  z-index:3;
  left:0;
  right:0;
  top:0;
  height:2px;
  background:linear-gradient(
    90deg,
    transparent,
    rgba(216,160,154,.14) 22%,
    rgba(216,160,154,.70) 50%,
    rgba(216,160,154,.14) 78%,
    transparent
  );
}

.announcements-shell-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:34px;
  padding:34px 36px 28px;
  border-bottom:1px solid var(--line);
}

.announcements-shell-head h1{
  margin:5px 0 6px;
  font:800 clamp(50px,5.5vw,78px)/.84 var(--display);
  letter-spacing:.01em;
}

.announcements-shell-head p{
  max-width:600px;
  margin:0;
  color:#808680;
  font-size:12px;
  line-height:1.7;
}

.announcements-shell-head .overline{
  color:var(--alert-bright);
}

.announcements-live-status{
  flex:0 0 auto;
  margin-bottom:4px;
  white-space:nowrap;
}

.announcements-shell-toolbar{
  min-height:66px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:12px 36px;
  border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.008);
}

.announcements-shell-toolbar>span{
  color:#686e68;
  font:500 8px var(--mono);
  letter-spacing:.16em;
}

.announcements-toolbar-actions{
  display:flex;
  align-items:center;
  gap:10px;
}

/* Compact the rounded shimmer controls inside this panel. */
.announcements-toolbar-actions .feed-refresh,
.announcements-toolbar-actions .announcement-primary{
  min-height:34px;
  margin:0 !important;
  padding:9px 15px !important;
  font-size:8px;
}

.announcements-feed-scroll{
  min-height:0;
  flex:1 1 auto;
  overflow:auto;
  scrollbar-width:thin;
  scrollbar-color:#343934 transparent;
}

.announcements-feed-scroll::-webkit-scrollbar{
  width:7px;
}
.announcements-feed-scroll::-webkit-scrollbar-track{
  background:transparent;
}
.announcements-feed-scroll::-webkit-scrollbar-thumb{
  background:#2c302c;
  border:2px solid #090a0a;
}
.announcements-feed-scroll::-webkit-scrollbar-thumb:hover{
  background:#414641;
}

.announcements-shell .discord-announcement-feed{
  border-top:0;
  padding:0 36px 12px;
}

/* Announcements become compact rows inside the panel. */
.announcements-shell .discord-message{
  grid-template-columns:54px minmax(0,1fr) auto;
  gap:20px;
  padding:25px 0;
}

.announcements-shell .discord-message-index{
  color:#5e645e;
}

.announcements-shell .discord-message-content{
  max-width:760px;
}

.announcements-shell .discord-message-jump{
  align-self:start;
  min-height:32px;
  padding:8px 13px !important;
  font-size:8px;
}

.announcements-shell .announcement-loading,
.announcements-shell .announcement-empty,
.announcements-shell .announcement-error{
  min-height:240px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:42px 0;
}

.announcements-shell .announcement-error .announcement-primary,
.announcements-shell .announcement-error a{
  width:max-content;
}

.announcements-panel-page footer{
  position:relative;
  z-index:3;
}

/* The old full-page announcement hero/feed/CTA aren't used on this page. */
.announcements-panel-page .announcement-hero,
.announcements-panel-page .announcement-feed,
.announcements-panel-page .announcement-discord{
  display:none !important;
}

@media(max-width:900px){
  .announcements-stage{
    align-items:flex-start;
    padding-top:110px;
  }

  .announcements-shell{
    max-height:none;
  }

  .announcements-shell-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .announcements-live-status{
    margin-top:3px;
  }

  .announcements-feed-scroll{
    max-height:650px;
  }
}

@media(max-width:700px){
  .announcements-stage{
    padding:95px 4vw 65px;
  }

  .announcements-shell-head{
    padding:29px 21px 22px;
  }

  .announcements-shell-head h1{
    font-size:50px;
  }

  .announcements-shell-toolbar{
    padding:14px 21px;
    align-items:flex-start;
    flex-direction:column;
  }

  .announcements-toolbar-actions{
    width:100%;
    flex-wrap:wrap;
  }

  .announcements-shell .discord-announcement-feed{
    padding-left:21px;
    padding-right:21px;
  }

  .announcements-shell .discord-message{
    grid-template-columns:1fr;
    gap:10px;
  }

  .announcements-shell .discord-message-index{
    display:none;
  }

  .announcements-shell .discord-message-jump{
    justify-self:start;
  }
}


/* ================================================================
   HEADER — BRAND BLOCK REMOVED
================================================================ */
.site-header{
  justify-content:flex-end;
}

.site-header .nav{
  margin-left:auto;
}

@media(max-width:900px){
  .site-header{
    justify-content:flex-end;
  }

  .site-header .menu-toggle{
    margin-left:auto;
  }
}


/* Footer after removing BLACKFALL.GG */
footer{
  justify-content:flex-end;
}


/* ================================================================
   HOMEPAGE LIVE BADGE
================================================================ */
.hero-status .live-badge{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
  border:1px solid rgba(216,160,154,.22);
  border-radius:999px;
  background:rgba(216,160,154,.06);
  color:#e7e5df;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.01),
    0 0 16px rgba(216,160,154,.07);
  text-shadow:0 0 7px rgba(255,255,255,.05);
  animation:liveBadgeFlicker 2.8s infinite steps(1,end);
}

.hero-status .live-badge::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:#d8a09a;
  box-shadow:
    0 0 0 1px rgba(216,160,154,.12),
    0 0 8px rgba(216,160,154,.55),
    0 0 14px rgba(216,160,154,.24);
  animation:liveDotPulse 1.4s ease-in-out infinite;
}

@keyframes liveDotPulse{
  0%,100%{
    transform:scale(1);
    opacity:.92;
    box-shadow:
      0 0 0 1px rgba(216,160,154,.12),
      0 0 8px rgba(216,160,154,.55),
      0 0 14px rgba(216,160,154,.24);
  }
  50%{
    transform:scale(1.08);
    opacity:1;
    box-shadow:
      0 0 0 1px rgba(216,160,154,.18),
      0 0 10px rgba(216,160,154,.78),
      0 0 18px rgba(216,160,154,.32);
  }
}

@keyframes liveBadgeFlicker{
  0%, 7%, 11%, 20%, 24%, 33%, 45%, 52%, 66%, 78%, 100%{
    opacity:1;
    color:#ece8df;
    text-shadow:
      0 0 5px rgba(255,255,255,.04),
      0 0 11px rgba(216,160,154,.06);
  }
  8%, 21%{
    opacity:.32;
    color:#b9b2ab;
    text-shadow:none;
  }
  9%, 22%{
    opacity:.86;
    transform:translateX(.4px);
  }
  10%, 23%{
    opacity:.54;
    transform:translateX(-.6px);
  }
  34%{
    opacity:.48;
  }
  35%{
    opacity:1;
    transform:translateX(.6px);
  }
  36%{
    transform:none;
  }
  53%{
    opacity:.38;
  }
  54%{
    opacity:1;
  }
  79%{
    opacity:.58;
  }
  80%{
    opacity:1;
  }
}

@media (prefers-reduced-motion: reduce){
  .hero-status .live-badge,
  .hero-status .live-badge::before{
    animation:none !important;
  }
}


/* ================================================================
   CENTERED RULES PANEL
   Matches the contained leaderboard / announcements page language.
================================================================ */
.rules-panel-page{
  min-height:100vh;
  background:#070808;
}

.rules-stage{
  position:relative;
  min-height:calc(100svh - 54px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:125px 5vw 90px;
  overflow:hidden;
}

.rules-stage-bg,
.rules-stage-shade,
.rules-stage-lines{
  position:absolute;
  inset:0;
}

.rules-stage-bg{
  background:url("../assets/images/sledgehammer-raiding.webp") center 45%/cover no-repeat;
  filter:grayscale(.58) brightness(.28) contrast(1.08);
  transform:scale(1.015);
}

.rules-stage-shade{
  background:
    radial-gradient(circle at 50% 44%,rgba(9,10,10,.20),rgba(5,6,6,.86) 72%),
    linear-gradient(180deg,rgba(5,6,6,.24),rgba(5,6,6,.92));
}

.rules-stage-lines{
  pointer-events:none;
  opacity:.16;
  background:
    repeating-linear-gradient(
      180deg,
      rgba(216,160,154,.015) 0,
      rgba(216,160,154,.015) 1px,
      transparent 1px,
      transparent 6px
    );
}

.rules-shell{
  position:relative;
  z-index:2;
  width:min(1080px,100%);
  max-height:min(800px,calc(100svh - 165px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:rgba(8,9,9,.95);
  border:1px solid rgba(199,194,181,.18);
  border-radius:8px;
  box-shadow:
    0 35px 90px rgba(0,0,0,.50),
    inset 0 1px 0 rgba(255,255,255,.018);
  backdrop-filter:blur(8px);
}

.rules-shell::before{
  content:"";
  position:absolute;
  z-index:3;
  left:0;
  right:0;
  top:0;
  height:2px;
  background:linear-gradient(
    90deg,
    transparent,
    rgba(216,160,154,.13) 22%,
    rgba(216,160,154,.64) 50%,
    rgba(216,160,154,.13) 78%,
    transparent
  );
}

.rules-shell-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:34px;
  padding:34px 36px 28px;
  border-bottom:1px solid var(--line);
}

.rules-shell-head h1{
  margin:5px 0 6px;
  font:800 clamp(50px,5.5vw,78px)/.84 var(--display);
  letter-spacing:.01em;
}

.rules-shell-head p{
  max-width:670px;
  margin:0;
  color:#808680;
  font-size:12px;
  line-height:1.7;
}

.rules-shell-head .overline{
  color:var(--alert-bright);
}

.rules-status{
  display:flex;
  align-items:center;
  gap:9px;
  flex:0 0 auto;
  padding-bottom:4px;
  color:#7b817b;
  font:500 8px var(--mono);
  letter-spacing:.14em;
  white-space:nowrap;
}

.rules-status-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:#d8a09a;
  box-shadow:0 0 10px rgba(216,160,154,.42);
}

.rules-shell-toolbar{
  min-height:66px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:12px 36px;
  border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.008);
}

.rules-shell-toolbar>span{
  color:#686e68;
  font:500 8px var(--mono);
  letter-spacing:.16em;
}

.rules-shell-toolbar .text-link{
  min-height:34px;
  margin:0 !important;
  padding:9px 15px !important;
  font-size:8px;
}

.rules-scroll{
  min-height:0;
  flex:1 1 auto;
  overflow:auto;
  scrollbar-width:thin;
  scrollbar-color:#343934 transparent;
}

.rules-scroll::-webkit-scrollbar{
  width:7px;
}
.rules-scroll::-webkit-scrollbar-track{
  background:transparent;
}
.rules-scroll::-webkit-scrollbar-thumb{
  background:#2c302c;
  border:2px solid #090a0a;
}
.rules-scroll::-webkit-scrollbar-thumb:hover{
  background:#414641;
}

.rules-shell .rules-list{
  margin:0;
  padding:0 36px 18px;
  border-top:0;
}

.rules-shell .rules-list details{
  background:transparent !important;
  border-radius:0 !important;
}

.rules-shell .rules-list summary{
  min-height:72px;
  padding:20px 0;
}

.rules-shell .rules-list summary span{
  color:#626862;
}

.rules-shell .rules-list summary strong{
  font-size:clamp(24px,2.7vw,36px);
}

.rules-shell .rule-copy{
  padding:0 0 28px 72px;
  max-width:none;
  columns:2;
  column-gap:42px;
}

.rules-shell .rule-copy p{
  color:#8d938d;
  font-size:12px;
  line-height:1.72;
}

.rules-panel-page footer{
  position:relative;
  z-index:3;
}

@media(max-width:900px){
  .rules-stage{
    align-items:flex-start;
    padding-top:110px;
  }

  .rules-shell{
    max-height:none;
  }

  .rules-shell-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .rules-scroll{
    max-height:650px;
  }

  .rules-shell .rule-copy{
    columns:1;
  }
}

@media(max-width:700px){
  .rules-stage{
    padding:95px 4vw 65px;
  }

  .rules-shell-head{
    padding:29px 21px 22px;
  }

  .rules-shell-head h1{
    font-size:50px;
  }

  .rules-shell-toolbar{
    padding:14px 21px;
    align-items:flex-start;
    flex-direction:column;
  }

  .rules-shell .rules-list{
    padding-left:21px;
    padding-right:21px;
  }

  .rules-shell .rules-list summary{
    grid-template-columns:34px 1fr;
  }

  .rules-shell .rule-copy{
    padding-left:56px;
  }
}


/* ================================================================
   GUIDES — CENTERED PANEL REDESIGN
================================================================ */
.guides-panel-page{
  min-height:100vh;
  background:#070808;
}

.guides-stage{
  position:relative;
  min-height:calc(100svh - 54px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:125px 5vw 90px;
  overflow:hidden;
}

.guides-stage-bg,
.guides-stage-shade,
.guides-stage-lines{
  position:absolute;
  inset:0;
}

.guides-stage-bg{
  background:url("../assets/images/watchtower-valley.png") center 46%/cover no-repeat;
  filter:grayscale(.62) brightness(.28) contrast(1.08);
  transform:scale(1.02);
}

.guides-stage-shade{
  background:
    radial-gradient(circle at 50% 40%,rgba(9,10,10,.18),rgba(5,6,6,.86) 72%),
    linear-gradient(180deg,rgba(5,6,6,.24),rgba(5,6,6,.92));
}

.guides-stage-lines{
  pointer-events:none;
  opacity:.15;
  background:
    repeating-linear-gradient(
      180deg,
      rgba(216,160,154,.014) 0,
      rgba(216,160,154,.014) 1px,
      transparent 1px,
      transparent 6px
    );
}

.guides-shell{
  position:relative;
  z-index:2;
  width:min(1180px,100%);
  max-height:min(820px,calc(100svh - 160px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:rgba(8,9,9,.95);
  border:1px solid rgba(199,194,181,.18);
  border-radius:8px;
  box-shadow:
    0 35px 90px rgba(0,0,0,.50),
    inset 0 1px 0 rgba(255,255,255,.018);
  backdrop-filter:blur(8px);
}

.guides-shell::before{
  content:"";
  position:absolute;
  z-index:3;
  left:0;
  right:0;
  top:0;
  height:2px;
  background:linear-gradient(
    90deg,
    transparent,
    rgba(216,160,154,.13) 22%,
    rgba(216,160,154,.64) 50%,
    rgba(216,160,154,.13) 78%,
    transparent
  );
}

.guides-shell-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:34px;
  padding:34px 36px 28px;
  border-bottom:1px solid var(--line);
}

.guides-shell-head h1{
  margin:5px 0 6px;
  font:800 clamp(50px,5.5vw,78px)/.84 var(--display);
  letter-spacing:.01em;
}

.guides-shell-head p{
  max-width:690px;
  margin:0;
  color:#808680;
  font-size:12px;
  line-height:1.7;
}

.guides-shell-head .overline{
  color:var(--alert-bright);
}

.guides-status{
  display:flex;
  align-items:center;
  gap:9px;
  flex:0 0 auto;
  padding-bottom:4px;
  color:#7b817b;
  font:500 8px var(--mono);
  letter-spacing:.14em;
  white-space:nowrap;
}

.guides-status-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:#d8a09a;
  box-shadow:0 0 10px rgba(216,160,154,.42);
}

.guides-shell-toolbar{
  min-height:66px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:12px 36px;
  border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.008);
}

.guides-shell-toolbar>span{
  color:#686e68;
  font:500 8px var(--mono);
  letter-spacing:.16em;
}

.guides-shell-toolbar .text-link{
  min-height:34px;
  margin:0 !important;
  padding:9px 15px !important;
  font-size:8px;
}

.guides-scroll{
  min-height:0;
  flex:1 1 auto;
  overflow:auto;
  scrollbar-width:thin;
  scrollbar-color:#343934 transparent;
}

.guides-scroll::-webkit-scrollbar{width:7px}
.guides-scroll::-webkit-scrollbar-track{background:transparent}
.guides-scroll::-webkit-scrollbar-thumb{
  background:#2c302c;
  border:2px solid #090a0a;
}
.guides-scroll::-webkit-scrollbar-thumb:hover{background:#414641}

.guide-articles{
  display:flex;
  flex-direction:column;
  gap:18px;
  padding:22px 36px 36px;
}

.guide-card{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);
  gap:28px;
  align-items:center;
  padding:24px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.012),rgba(255,255,255,.006));
  border:1px solid rgba(199,194,181,.12);
  border-radius:8px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.014);
}

.guide-copy h2{
  margin:8px 0 12px;
  font:800 clamp(28px,3vw,44px)/.95 var(--display);
  letter-spacing:.01em;
}

.guide-copy p{
  margin:0 0 15px;
  color:#929892;
  font-size:12px;
  line-height:1.75;
}

.guide-tag{
  display:inline-block;
  padding:6px 9px 5px;
  border:1px solid rgba(216,160,154,.18);
  border-radius:999px;
  background:rgba(216,160,154,.06);
  color:var(--alert-bright);
  font:600 8px var(--mono);
  letter-spacing:.15em;
}

.guide-steps{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-top:16px;
}

.guide-step-block,
.guide-note{
  padding:16px 18px 15px;
  background:rgba(255,255,255,.014);
  border:1px solid rgba(199,194,181,.10);
  border-radius:6px;
}

.guide-step-block h3,
.guide-note span{
  display:block;
  margin:0 0 10px;
  color:var(--alert-bright);
  font:700 9px var(--mono);
  letter-spacing:.16em;
}

.guide-step-block ol{
  margin:0;
  padding-left:18px;
  color:#929892;
}

.guide-step-block li,
.guide-bullets li{
  margin:0 0 8px;
  color:#929892;
  font-size:12px;
  line-height:1.75;
}

.guide-step-block code{
  display:inline-block;
  padding:2px 5px;
  border-radius:4px;
  background:rgba(216,160,154,.08);
  color:#f0e4e0;
  font:500 11px var(--mono);
}

.guide-bullets{
  margin:0 0 15px;
  padding-left:18px;
}

.guide-bullets strong,
.guide-step-block strong{
  color:#e6e3dc;
  font-weight:600;
}

.guide-note p{
  margin:0;
}

.guide-media{
  margin:0;
  overflow:hidden;
  border:1px solid rgba(216,160,154,.18);
  border-radius:6px;
  background:#0a0b0b;
  box-shadow:0 16px 35px rgba(0,0,0,.28);
}

.guide-media img{
  display:block;
  width:100%;
  height:auto;
  object-fit:cover;
}

@media(max-width:980px){
  .guides-stage{
    align-items:flex-start;
    padding-top:110px;
  }

  .guides-shell{
    max-height:none;
  }

  .guides-shell-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .guide-card{
    grid-template-columns:1fr;
  }

  .guides-scroll{
    max-height:680px;
  }
}

@media(max-width:700px){
  .guides-stage{
    padding:95px 4vw 65px;
  }

  .guides-shell-head{
    padding:29px 21px 22px;
  }

  .guides-shell-head h1{
    font-size:50px;
  }

  .guides-shell-toolbar{
    padding:14px 21px;
    align-items:flex-start;
    flex-direction:column;
  }

  .guide-articles{
    padding:18px 21px 24px;
  }

  .guide-card{
    padding:18px;
  }
}


/* ================================================================
   GUIDE IMAGE CLEANUP
================================================================ */
.guide-card-text-only{
  grid-template-columns:1fr !important;
}

.guide-card-text-only .guide-copy{
  max-width:900px;
}

.guide-media-stack{
  display:flex;
  flex-direction:column;
  gap:10px;
  overflow:visible;
  border:0;
  background:transparent;
  box-shadow:none;
}

.guide-media-stack img{
  width:100%;
  border:1px solid rgba(216,160,154,.18);
  border-radius:6px;
  background:#0a0b0b;
  box-shadow:0 16px 35px rgba(0,0,0,.24);
}

.guide-reference-image{
  opacity:.74;
}


/* Single raid image cleanup */
.guide-media-stack{
  gap:0;
}


/* ================================================================
   CENTERED LORE PANEL
   Matches the Rules / Announcements / Leaderboard presentation.
================================================================ */
.lore-panel-page{
  min-height:100vh;
  background:#070808;
}

.lore-stage{
  position:relative;
  min-height:calc(100svh - 54px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:125px 5vw 90px;
  overflow:hidden;
}

.lore-stage-bg,
.lore-stage-shade,
.lore-stage-lines{
  position:absolute;
  inset:0;
}

.lore-stage-bg{
  background:url("../assets/images/hidden-bunker.webp") center 46%/cover no-repeat;
  filter:grayscale(.62) brightness(.27) contrast(1.08);
  transform:scale(1.02);
}

.lore-stage-shade{
  background:
    radial-gradient(circle at 50% 42%,rgba(9,10,10,.18),rgba(5,6,6,.87) 72%),
    linear-gradient(180deg,rgba(5,6,6,.24),rgba(5,6,6,.93));
}

.lore-stage-lines{
  pointer-events:none;
  opacity:.14;
  background:
    repeating-linear-gradient(
      180deg,
      rgba(216,160,154,.014) 0,
      rgba(216,160,154,.014) 1px,
      transparent 1px,
      transparent 6px
    );
}

.lore-shell{
  position:relative;
  z-index:2;
  width:min(1080px,100%);
  max-height:min(800px,calc(100svh - 165px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:rgba(8,9,9,.95);
  border:1px solid rgba(199,194,181,.18);
  border-radius:8px;
  box-shadow:
    0 35px 90px rgba(0,0,0,.50),
    inset 0 1px 0 rgba(255,255,255,.018);
  backdrop-filter:blur(8px);
}

.lore-shell::before{
  content:"";
  position:absolute;
  z-index:3;
  left:0;
  right:0;
  top:0;
  height:2px;
  background:linear-gradient(
    90deg,
    transparent,
    rgba(216,160,154,.13) 22%,
    rgba(216,160,154,.64) 50%,
    rgba(216,160,154,.13) 78%,
    transparent
  );
}

.lore-shell-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:34px;
  padding:34px 36px 28px;
  border-bottom:1px solid var(--line);
}

.lore-shell-head h1{
  margin:5px 0 6px;
  font:800 clamp(50px,5.5vw,78px)/.84 var(--display);
  letter-spacing:.01em;
}

.lore-shell-head p{
  max-width:660px;
  margin:0;
  color:#808680;
  font-size:12px;
  line-height:1.7;
}

.lore-shell-head .overline{
  color:var(--alert-bright);
}

.lore-status{
  display:flex;
  align-items:center;
  gap:9px;
  flex:0 0 auto;
  padding-bottom:4px;
  color:#7b817b;
  font:500 8px var(--mono);
  letter-spacing:.14em;
  white-space:nowrap;
}

.lore-status-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:#d8a09a;
  box-shadow:0 0 10px rgba(216,160,154,.42);
}

.lore-shell-toolbar{
  min-height:66px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:12px 36px;
  border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.008);
}

.lore-shell-toolbar>span{
  color:#686e68;
  font:500 8px var(--mono);
  letter-spacing:.16em;
}

.lore-shell-toolbar .text-link{
  min-height:34px;
  margin:0 !important;
  padding:9px 15px !important;
  font-size:8px;
}

.lore-scroll{
  min-height:0;
  flex:1 1 auto;
  overflow:auto;
  scrollbar-width:thin;
  scrollbar-color:#343934 transparent;
}

.lore-scroll::-webkit-scrollbar{width:7px}
.lore-scroll::-webkit-scrollbar-track{background:transparent}
.lore-scroll::-webkit-scrollbar-thumb{
  background:#2c302c;
  border:2px solid #090a0a;
}
.lore-scroll::-webkit-scrollbar-thumb:hover{background:#414641}

.lore-story{
  padding:0 36px 22px;
}

.lore-entry{
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  gap:22px;
  padding:28px 0;
  border-bottom:1px solid rgba(199,194,181,.11);
}

.lore-entry-number{
  padding-top:5px;
  color:#646a64;
  font:500 9px var(--mono);
  letter-spacing:.12em;
}

.lore-entry-copy{
  max-width:820px;
}

.lore-entry h2{
  margin:0 0 14px;
  font:800 clamp(28px,3.4vw,46px)/.94 var(--display);
  letter-spacing:.01em;
}

.lore-entry p{
  margin:0 0 13px;
  color:#939993;
  font-size:12px;
  line-height:1.8;
}

.lore-entry p:last-child{
  margin-bottom:0;
}

.lore-entry-final{
  border-bottom:0;
  padding-bottom:36px;
}

.lore-final-lines{
  display:flex;
  flex-direction:column;
  gap:7px;
  margin-top:22px;
}

.lore-final-lines strong{
  color:#e5e2db;
  font:700 14px var(--mono);
  letter-spacing:.13em;
}

.lore-final-lines strong:last-child{
  color:var(--alert-bright);
}

.lore-panel-page footer{
  position:relative;
  z-index:3;
}

@media(max-width:900px){
  .lore-stage{
    align-items:flex-start;
    padding-top:110px;
  }

  .lore-shell{
    max-height:none;
  }

  .lore-shell-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .lore-scroll{
    max-height:680px;
  }
}

@media(max-width:700px){
  .lore-stage{
    padding:95px 4vw 65px;
  }

  .lore-shell-head{
    padding:29px 21px 22px;
  }

  .lore-shell-head h1{
    font-size:50px;
  }

  .lore-shell-toolbar{
    padding:14px 21px;
    align-items:flex-start;
    flex-direction:column;
  }

  .lore-story{
    padding-left:21px;
    padding-right:21px;
  }

  .lore-entry{
    grid-template-columns:34px minmax(0,1fr);
    gap:14px;
  }

  .lore-entry h2{
    font-size:30px;
  }
}


/* ================================================================
   PAGE POLISH
   Lightweight motion and emphasis for Announcements, Lore, Guides,
   Rules and Leaderboard. Designed to stay smooth.
================================================================ */

:root{
  --polish-red:#d8a09a;
  --polish-red-soft:#d8a09a;
  --polish-red-faint:rgba(216,160,154,.10);
}

/* Slightly stronger important text without turning the whole site red. */
.lore-panel-page .lore-entry-number,
.guides-panel-page .guide-tag,
.rules-panel-page .rules-list summary span,
.leaderboard-page .simple-value,
.announcements-panel-page .discord-message-content strong{
  color:var(--polish-red-soft);
}

.lore-panel-page .lore-accent{
  display:inline;
  color:#d8a09a;
  font-weight:600;
}

.lore-panel-page .lore-accent-short{
  color:var(--polish-red-soft);
  letter-spacing:.02em;
}

.guides-panel-page .guide-copy strong,
.guides-panel-page .guide-note span,
.rules-panel-page .rule-copy strong{
  color:#ded8d2;
}

.guides-panel-page .guide-copy li strong{
  color:#d8a09a;
}

.rules-panel-page .rules-list details[open] summary strong{
  color:#eeeae4;
}

.leaderboard-page .simple-leaderboard-row.top-1 .simple-rank,
.leaderboard-page .simple-leaderboard-row.top-2 .simple-rank,
.leaderboard-page .simple-leaderboard-row.top-3 .simple-rank{
  color:var(--polish-red-soft);
}

/* Gentle live/status pulse. */
.announcements-live-status .live-feed-dot,
.lore-status-dot,
.guides-status-dot,
.rules-status-dot,
.leaderboard-live-dot{
  animation:polishStatusPulse 2.2s ease-in-out infinite;
}

@keyframes polishStatusPulse{
  0%,100%{
    opacity:.72;
    transform:scale(.92);
    box-shadow:0 0 6px rgba(216,160,154,.28);
  }
  50%{
    opacity:1;
    transform:scale(1.08);
    box-shadow:0 0 13px rgba(216,160,154,.58);
  }
}

/* Moving accent across the top of each contained panel. */
.announcements-shell::before,
.lore-shell::before,
.guides-shell::before,
.rules-shell::before,
.leaderboard-shell::before{
  background-size:220% 100% !important;
  animation:polishSignalSweep 7s ease-in-out infinite;
}

@keyframes polishSignalSweep{
  0%,100%{background-position:0% 50%}
  50%{background-position:100% 50%}
}

/* Panel headers settle in softly. */
.announcements-shell-head > div:first-child,
.lore-shell-head > div:first-child,
.guides-shell-head > div:first-child,
.rules-shell-head > div:first-child,
.leaderboard-shell-head > div:first-child{
  animation:polishHeaderIn .55s ease both;
}

@keyframes polishHeaderIn{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:translateY(0)}
}

/* Internal content reveals stay tiny so scrolling remains smooth. */
.scroll-fx .lore-entry.scroll-reveal,
.scroll-fx .guide-card.scroll-reveal,
.scroll-fx .rules-list details.scroll-reveal{
  opacity:0;
  transform:translateY(9px);
  transition:
    opacity .32s ease var(--reveal-delay,0ms),
    transform .32s ease var(--reveal-delay,0ms),
    border-color .2s ease,
    background-color .2s ease;
}

.scroll-fx .lore-entry.scroll-reveal.visible,
.scroll-fx .guide-card.scroll-reveal.visible,
.scroll-fx .rules-list details.scroll-reveal.visible{
  opacity:1;
  transform:none;
}

/* Lore interaction */
.lore-entry{
  position:relative;
  transition:background-color .2s ease, padding-left .2s ease;
}

.lore-entry::before{
  content:"";
  position:absolute;
  left:-36px;
  top:24px;
  bottom:24px;
  width:2px;
  background:var(--polish-red);
  transform:scaleY(0);
  transform-origin:center;
  opacity:.65;
  transition:transform .22s ease;
}

.lore-entry:hover{
  background:linear-gradient(90deg,var(--polish-red-faint),transparent 54%);
  padding-left:8px;
}

.lore-entry:hover::before{
  transform:scaleY(1);
}

/* Guides */
.guide-card{
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}

.guide-card:hover{
  transform:translateY(-2px);
  border-color:rgba(216,160,154,.25);
  box-shadow:
    0 16px 38px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.018);
}

.guide-card:hover .guide-tag{
  background:rgba(216,160,154,.10);
  box-shadow:0 0 14px rgba(216,160,154,.08);
}

/* Rules */
.rules-list details{
  position:relative;
}

.rules-list summary{
  transition:padding-left .2s ease,color .2s ease,background-color .2s ease;
}

.rules-list summary:hover{
  padding-left:8px;
  background:linear-gradient(90deg,rgba(216,160,154,.07),transparent 65%);
}

.rules-list details[open] summary{
  box-shadow:inset 2px 0 0 rgba(216,160,154,.58);
  padding-left:10px;
}

.rules-list details[open] .rule-copy{
  animation:polishRuleOpen .28s ease both;
}

@keyframes polishRuleOpen{
  from{opacity:0;transform:translateY(-4px)}
  to{opacity:1;transform:translateY(0)}
}

/* Announcements */
.discord-message{
  animation:polishRowIn .34s ease both;
  animation-delay:var(--row-delay,0ms);
  transition:background-color .2s ease,padding-left .2s ease;
}

.discord-message:hover{
  background:linear-gradient(90deg,rgba(216,160,154,.055),transparent 60%);
  padding-left:7px;
}

.discord-message:hover .discord-message-index{
  color:var(--polish-red-soft);
}

.discord-author-avatar{
  transition:box-shadow .2s ease,transform .2s ease;
}

.discord-message:hover .discord-author-avatar{
  transform:scale(1.03);
  box-shadow:0 0 0 1px rgba(216,160,154,.28),0 0 15px rgba(216,160,154,.08);
}

/* Leaderboard */
.simple-leaderboard-row{
  animation:polishRowIn .32s ease both;
  animation-delay:var(--row-delay,0ms);
  transition:background-color .18s ease,transform .18s ease;
}

.simple-leaderboard-row:hover{
  background:linear-gradient(90deg,rgba(216,160,154,.075),rgba(255,255,255,.006));
  transform:translateX(3px);
}

.simple-leaderboard-row:hover .simple-name{
  color:#f1eee8;
}

.simple-leaderboard-row.top-1{
  box-shadow:inset 2px 0 0 rgba(216,160,154,.62);
}

@keyframes polishRowIn{
  from{opacity:0;transform:translateY(7px)}
  to{opacity:1;transform:none}
}

/* Controls get a tiny lift, not a large hover effect. */
.announcements-toolbar-actions button,
.announcements-toolbar-actions a,
.lore-shell-toolbar .text-link,
.guides-shell-toolbar .text-link,
.rules-shell-toolbar .text-link,
.leaderboard-shell-controls button,
.leaderboard-shell-controls input,
.leaderboard-shell-controls select{
  transition:
    border-color .18s ease,
    box-shadow .18s ease,
    background-color .18s ease,
    transform .18s ease;
}

.announcements-toolbar-actions button:hover,
.announcements-toolbar-actions a:hover,
.lore-shell-toolbar .text-link:hover,
.guides-shell-toolbar .text-link:hover,
.rules-shell-toolbar .text-link:hover,
.leaderboard-shell-controls button:hover{
  transform:translateY(-1px);
  border-color:rgba(216,160,154,.36);
  box-shadow:0 0 18px rgba(216,160,154,.07);
}

/* Keep motion accessible and avoid repeating work on users who prefer less. */
@media(prefers-reduced-motion:reduce){
  .announcements-live-status .live-feed-dot,
  .lore-status-dot,
  .guides-status-dot,
  .rules-status-dot,
  .leaderboard-live-dot,
  .announcements-shell::before,
  .lore-shell::before,
  .guides-shell::before,
  .rules-shell::before,
  .leaderboard-shell::before,
  .announcements-shell-head > div:first-child,
  .lore-shell-head > div:first-child,
  .guides-shell-head > div:first-child,
  .rules-shell-head > div:first-child,
  .leaderboard-shell-head > div:first-child,
  .discord-message,
  .simple-leaderboard-row,
  .rules-list details[open] .rule-copy{
    animation:none !important;
  }

  .scroll-fx .lore-entry.scroll-reveal,
  .scroll-fx .guide-card.scroll-reveal,
  .scroll-fx .rules-list details.scroll-reveal{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}

/* ================================================================
   FAQ — MATCHED TO THE CONTAINED PAGE PANELS
================================================================ */
.faq-panel-page{
  min-height:100vh;
  background:#070808;
}

.faq-stage{
  position:relative;
  min-height:calc(100svh - 54px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:125px 5vw 90px;
  overflow:hidden;
}

.faq-stage-bg,
.faq-stage-shade,
.faq-stage-lines{
  position:absolute;
  inset:0;
}

.faq-stage-bg{
  background:url("../assets/images/tower-forest.png") center 45%/cover no-repeat;
  filter:grayscale(.58) brightness(.28) contrast(1.08);
  transform:scale(1.015);
}

.faq-stage-shade{
  background:
    radial-gradient(circle at 50% 44%,rgba(9,10,10,.20),rgba(5,6,6,.86) 72%),
    linear-gradient(180deg,rgba(5,6,6,.24),rgba(5,6,6,.92));
}

.faq-stage-lines{
  pointer-events:none;
  opacity:.16;
  background:repeating-linear-gradient(180deg,rgba(216,160,154,.015) 0,rgba(216,160,154,.015) 1px,transparent 1px,transparent 6px);
}

.faq-shell{
  position:relative;
  z-index:2;
  width:min(1080px,100%);
  max-height:min(800px,calc(100svh - 165px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:rgba(8,9,9,.95);
  border:1px solid rgba(199,194,181,.18);
  border-radius:8px;
  box-shadow:0 35px 90px rgba(0,0,0,.50),inset 0 1px 0 rgba(255,255,255,.018);
  backdrop-filter:blur(8px);
}

.faq-shell::before{
  content:"";
  position:absolute;
  z-index:3;
  left:0;
  right:0;
  top:0;
  height:2px;
  background:linear-gradient(90deg,transparent,rgba(216,160,154,.13) 22%,rgba(216,160,154,.64) 50%,rgba(216,160,154,.13) 78%,transparent);
  background-size:220% 100%;
  animation:polishSignalSweep 7s ease-in-out infinite;
}

.faq-shell-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:34px;
  padding:34px 36px 28px;
  border-bottom:1px solid var(--line);
}

.faq-shell-head > div:first-child{
  animation:polishHeaderIn .55s ease both;
}

.faq-shell-head h1{
  margin:5px 0 6px;
  font:800 clamp(50px,5.5vw,78px)/.84 var(--display);
  letter-spacing:.01em;
}

.faq-shell-head p{
  max-width:670px;
  margin:0;
  color:#808680;
  font-size:12px;
  line-height:1.7;
}

.faq-shell-head .overline{
  color:var(--alert-bright);
}

.faq-status{
  display:flex;
  align-items:center;
  gap:9px;
  flex:0 0 auto;
  padding-bottom:4px;
  color:#7b817b;
  font:500 8px var(--mono);
  letter-spacing:.14em;
  white-space:nowrap;
}

.faq-status-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:#d8a09a;
  box-shadow:0 0 10px rgba(216,160,154,.42);
  animation:polishStatusPulse 2.2s ease-in-out infinite;
}

.faq-shell-toolbar{
  min-height:66px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:12px 36px;
  border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.008);
}

.faq-shell-toolbar>span{
  color:#686e68;
  font:500 8px var(--mono);
  letter-spacing:.16em;
}

.faq-shell-toolbar .text-link{
  min-height:34px;
  margin:0 !important;
  padding:9px 15px !important;
  font-size:8px;
}

.faq-scroll{
  min-height:0;
  flex:1 1 auto;
  overflow:auto;
  scrollbar-width:thin;
  scrollbar-color:#343934 transparent;
}

.faq-scroll::-webkit-scrollbar{width:7px}
.faq-scroll::-webkit-scrollbar-track{background:transparent}
.faq-scroll::-webkit-scrollbar-thumb{background:#2c302c;border:2px solid #090a0a}
.faq-scroll::-webkit-scrollbar-thumb:hover{background:#414641}

.faq-shell .rules-list{
  margin:0;
  padding:0 36px 18px;
  border-top:0;
}

.faq-shell .rules-list details{
  background:transparent !important;
  border-radius:0 !important;
}

.faq-shell .rules-list summary{
  min-height:72px;
  padding:20px 0;
}

.faq-shell .rules-list summary span{color:#626862}
.faq-shell .rules-list summary strong{font-size:clamp(24px,2.7vw,36px)}

.faq-shell .faq-answer{
  max-width:none;
  padding:0 0 28px 72px;
}

.faq-shell .faq-answer p{
  color:#8d938d;
  font-size:12px;
  line-height:1.72;
}

.faq-panel-page footer{
  position:relative;
  z-index:3;
}

@media(max-width:900px){
  .faq-stage{align-items:flex-start;padding-top:110px}
  .faq-shell{max-height:none}
  .faq-shell-head{align-items:flex-start;flex-direction:column}
  .faq-scroll{max-height:650px}
}

@media(max-width:700px){
  .faq-stage{padding:95px 4vw 65px}
  .faq-shell-head{padding:29px 21px 22px}
  .faq-shell-head h1{font-size:50px}
  .faq-shell-toolbar{padding:14px 21px;align-items:flex-start;flex-direction:column}
  .faq-shell .rules-list{padding-left:21px;padding-right:21px}
  .faq-shell .rules-list summary{grid-template-columns:34px 1fr}
  .faq-shell .faq-answer{padding-left:56px}
}

@media(prefers-reduced-motion:reduce){
  .faq-status-dot,
  .faq-shell::before,
  .faq-shell-head > div:first-child{
    animation:none !important;
  }
}
