
/* ─── RESET ─────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{-webkit-user-select:none;-moz-user-select:none;user-select:none}
img,a img{-webkit-user-drag:none;user-drag:none;pointer-events:auto}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-gutter:stable}
body{
  font-family:'DM Sans',system-ui,sans-serif;
  background:#030c1a;color:#fff;
  overflow-x:hidden;line-height:1.6;min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{text-decoration:none;color:inherit}
button{cursor:pointer;font-family:inherit;border:none;background:none}
::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:#030c1a}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#2dc9f0,#0d5fa0);border-radius:2px}

/* ─── TOKENS ─────────────────────────────────────────── */
:root{
  --ice:#ffffff;
  --cyan:#2dc9f0;
  --blue:#0d5fa0;
  --silver:rgba(255,255,255,.72);
  --gold:#ffd060;
  --green:#00e888;
  --red:#ff5577;
  --dark:#030c1a;

  --g:  rgba(2,8,22,.40);
  --g2: rgba(2,8,22,.40);
  --g3: rgba(2,8,22,.40);
  --gb: rgba(255,255,255,.14);
  --gb2:rgba(45,201,240,.50);

  --sh: inset 0 1px 0 rgba(255,255,255,.16),inset 0 -1px 0 rgba(0,0,0,.20),0 4px 20px rgba(0,0,0,.40);
  --glow: 0 0 20px rgba(45,201,240,.48),0 0 50px rgba(45,201,240,.14);
  --r:14px;--r2:10px;
}

/* ─── BACKGROUND ────────────────────────────────────── */
#bg{position:fixed;top:0;left:0;width:100%;height:100%;height:100dvh;z-index:0;pointer-events:none}
#bg-grad{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse 140% 65% at 50% -8%,rgba(13,95,160,.50) 0%,transparent 56%),
    radial-gradient(ellipse 65% 55% at 90% 90%,rgba(45,201,240,.12) 0%,transparent 52%),
    radial-gradient(ellipse 50% 45% at 5%  75%,rgba(70,25,180,.15)  0%,transparent 48%),
    #030c1a;
}
#bg-img{
  position:absolute;inset:0;
  background-image:url('../images/background/lumoramu_background.webp');
  background-size:cover;
  /* 5% = shifted down so character heads are fully visible above header */
  background-position:center 5%;
  background-repeat:no-repeat;
  opacity:.82;
  filter:contrast(1.06) saturate(1.08);
}
/* Fine grain overlay — masks the softness that comes from stretching a
   1536x1024 source past its native resolution on large/wide screens
   via background-size:cover. Cheap (pure CSS, no JS, no extra image
   request) and a common technique on modern game sites for exactly
   this reason. */
#bg-grain{
  position:absolute;inset:0;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:120px 120px;
}
@media(max-width:820px){
  /* Reverted — the mobile-specific crop position was calculated
     without being able to see it on a real device and ended up
     wrong. Back to the same "center 5%" as desktop. */
}
#bg-vg{
  position:absolute;inset:0;
  background:linear-gradient(180deg,
    rgba(3,12,26,.10) 0%,
    rgba(3,12,26,.35) 55%,
    rgba(3,12,26,.92) 100%);
}

/* Particles */
#pts{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:hidden}
.pt{
  position:absolute;border-radius:50%;
  background:radial-gradient(circle,rgba(45,201,240,.85),transparent 65%);
  animation:ptFall linear infinite;opacity:0;will-change:transform,opacity;
}
.pt.gold{background:radial-gradient(circle,rgba(255,208,96,.85),transparent 65%)}
@keyframes ptFall{
  0%  {transform:translate3d(0,-6vh,0);opacity:0}
  8%  {opacity:.60}
  50% {transform:translate3d(18px,50vh,0)}
  92% {opacity:.10}
  100%{transform:translate3d(-14px,104vh,0);opacity:0}
}

/* ─── LIQUID GLASS ──────────────────────────────────── */
.g1{
  background:rgba(2,8,22,.40);
  backdrop-filter:blur(1px) saturate(20%);-webkit-backdrop-filter:blur(1px) saturate(20%);
  border:1px solid rgba(255,255,255,.14);
  border-top-color:rgba(255,255,255,.22);
  border-radius:var(--r);
  box-shadow:var(--sh);
  position:relative;will-change:transform;
}
.g1::before{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(160deg,rgba(255,255,255,.06) 0%,transparent 40%);
}
.g1::after{
  content:'';position:absolute;top:0;left:14%;right:14%;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.24),transparent);
}
.g2{
  background:rgba(2,8,22,.40);
  backdrop-filter:blur(1px) saturate(20%);-webkit-backdrop-filter:blur(1px) saturate(20%);
  border:1px solid rgba(255,255,255,.12);border-top-color:rgba(255,255,255,.18);
  border-radius:var(--r);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 16px 48px rgba(0,0,0,.55);
}
.g3{
  background:rgba(2,8,22,.40);
  backdrop-filter:blur(1px) saturate(20%);-webkit-backdrop-filter:blur(1px) saturate(20%);
  border:1px solid rgba(255,255,255,.09);border-top-color:rgba(255,255,255,.14);
  border-radius:var(--r2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}
.lift{transition:transform .20s ease,border-color .20s,box-shadow .20s,background .20s}
.lift:hover{
  transform:translateY(-4px) scale(1.012);
  background:rgba(10,30,70,.68);
  border-color:var(--gb2);
  box-shadow:var(--glow),var(--sh);
}
/* Rune corner brackets — fantasy-RPG accent on hover, pure CSS, no JS cost.
   Add <span class="rune-corners"><i></i><i></i><i></i><i></i></span> inside
   any .lift card to enable; harmless (invisible) if omitted. */
.rune-corners{position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .25s ease}
.rune-corners i{position:absolute;width:16px;height:16px;border:2px solid var(--cyan);opacity:.9;filter:drop-shadow(0 0 6px rgba(45,201,240,.7))}
.rune-corners i:nth-child(1){top:-1px;left:-1px;border-right:0;border-bottom:0;border-top-left-radius:6px}
.rune-corners i:nth-child(2){top:-1px;right:-1px;border-left:0;border-bottom:0;border-top-right-radius:6px}
.rune-corners i:nth-child(3){bottom:-1px;left:-1px;border-right:0;border-top:0;border-bottom-left-radius:6px}
.rune-corners i:nth-child(4){bottom:-1px;right:-1px;border-left:0;border-top:0;border-bottom-right-radius:6px}
.lift:hover .rune-corners{opacity:1}

/* ─── 3D TILT + CURSOR SPOTLIGHT (shared with index.html) ─── */
.tilt{transition:transform .35s cubic-bezier(.22,1,.36,1);will-change:transform}
.tilt.tilting{transition:transform .05s linear}
#cursorGlow{
  position:fixed;top:0;left:0;width:420px;height:420px;margin:-210px 0 0 -210px;
  border-radius:50%;pointer-events:none;z-index:1;opacity:0;
  background:radial-gradient(circle,rgba(45,201,240,.10) 0%,rgba(45,201,240,.04) 40%,transparent 70%);
  transition:opacity .4s ease;will-change:transform;
}
#cursorGlow.on{opacity:1}
@media(hover:none),(pointer:coarse){#cursorGlow{display:none}}

/* ─── LOGIN / REGISTER two-column layout (shared by both pages) ─── */
.login-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:20px;align-items:start}
.login-form-card{padding:32px}
.login-input-label{display:block;margin-bottom:16px}
.login-input-label>span:not(.login-input-wrap){display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:rgba(255,255,255,.5);margin-bottom:6px}
.login-input-wrap{position:relative;display:block}
.login-input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;stroke:rgba(255,255,255,.4);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.login-input-wrap input{padding-left:38px!important}
.login-idle-note{
  display:flex;align-items:flex-start;gap:10px;margin-top:18px;padding:12px 14px;
  background:rgba(45,201,240,.06);border:1px solid rgba(45,201,240,.20);border-radius:var(--r2);
  font-size:.74rem;color:rgba(255,255,255,.6);line-height:1.5;
}
.login-idle-note svg{width:16px;height:16px;stroke:var(--cyan);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;margin-top:1px}
.login-side{display:flex;flex-direction:column;gap:16px}
.login-side-card{padding:22px 20px;border-radius:var(--r2)}
.login-side-title{display:flex;align-items:center;gap:9px;font-family:'Cinzel',serif;font-size:.86rem;font-weight:700;color:#fff;margin-bottom:16px}
.login-side-title svg{width:17px;height:17px;stroke:var(--gold);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 5px rgba(255,208,96,.5))}
.login-side-stats{display:flex;flex-direction:column;gap:8px}
.login-side-stat{
  display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 16px;border-radius:14px;position:relative;overflow:hidden;
  background:linear-gradient(155deg,rgba(255,255,255,.04),rgba(255,255,255,0) 60%),rgba(2,8,22,.45);
  border:1px solid rgba(45,201,240,.20);
  transition:transform .18s,box-shadow .18s,border-color .18s;
}
.login-side-stat::before{content:'';position:absolute;top:0;bottom:0;left:-1px;width:2px;border-radius:2px;
  background:var(--cyan);box-shadow:0 0 8px var(--cyan);opacity:.7}
.login-side-stat:hover{transform:translateX(4px);border-color:rgba(45,201,240,.45);box-shadow:0 8px 22px -8px rgba(45,201,240,.5)}
.login-side-stat label{
  font-family:'Cinzel',serif;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;
  color:rgba(255,255,255,.55);font-weight:700;order:2;
}
.login-side-stat span{
  font-family:'Cinzel',serif;font-weight:900;font-size:1.4rem;letter-spacing:.02em;order:1;
  background:linear-gradient(180deg,#ffffff 0%,#d4f2ff 55%,var(--cyan) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
  text-shadow:0 0 20px rgba(45,201,240,.40);
}
.login-side-stat label{font-size:.58rem;text-transform:uppercase;letter-spacing:.02em;color:rgba(255,255,255,.5);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;display:block;text-align:center}
.login-side-text{font-size:.78rem;color:rgba(255,255,255,.6);line-height:1.6;margin-bottom:12px}
.login-side-link{color:var(--cyan);font-weight:700;font-size:.8rem;text-decoration:none}
.login-side-link:hover{text-decoration:underline}
@media(max-width:760px){
  .login-grid{grid-template-columns:1fr}
}
@media(max-width:400px){
  .login-side-stat span{font-size:1.25rem}
}

/* ─── LAYOUT ────────────────────────────────────────── */
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.sec{position:relative;z-index:2;padding:80px 24px;contain:layout}
.sec-alt{background:rgba(255,255,255,.018)}

/* Section title glow + line animate */
.sh{text-align:center;margin-bottom:48px}
.sh h2{
  font-family:'Cinzel',serif;font-size:clamp(1.8rem,4.2vw,2.7rem);
  font-weight:900;letter-spacing:.13em;text-transform:uppercase;
  background:linear-gradient(180deg,#ffffff 0%,#cdeeff 50%,var(--cyan) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
  text-shadow:0 4px 30px rgba(45,201,240,.35),0 2px 6px rgba(0,0,0,.65);
  margin-bottom:14px;position:relative;overflow:hidden;
}
.sh h2::after{
  content:'';position:absolute;top:0;left:-150%;width:60%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.20),transparent);
  transform:skewX(-18deg);
}
.sh.vis h2{animation:titleGlow .9s ease forwards}
.sh.vis h2::after{animation:sweep .8s ease .5s forwards}
@keyframes titleGlow{
  from{opacity:0;transform:translateY(14px);text-shadow:none}
  60% {text-shadow:0 0 36px rgba(45,201,240,.85),0 0 72px rgba(45,201,240,.35)}
  to  {opacity:1;transform:translateY(0);text-shadow:0 0 18px rgba(45,201,240,.35)}
}
@keyframes sweep{from{left:-150%}to{left:200%}}
.sh-line{
  position:relative;
  width:0;height:2px;margin:0 auto;
  background:linear-gradient(90deg,transparent,var(--cyan),var(--ice),var(--cyan),transparent);
  box-shadow:0 0 14px var(--cyan),0 0 30px rgba(45,201,240,.35);
  transition:width .8s cubic-bezier(.4,0,.2,1) .35s;
}
.sh-line::before{
  content:'';position:absolute;top:50%;left:50%;
  width:7px;height:7px;
  transform:translate(-50%,-50%) rotate(45deg);
  background:var(--ice);box-shadow:0 0 12px var(--cyan);
}
.sh.vis .sh-line{width:130px}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ─── BUTTONS ───────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  font-family:'Cinzel',serif;font-size:.82rem;font-weight:700;letter-spacing:.08em;
  padding:11px 24px;border-radius:var(--r2);border:1px solid transparent;
  cursor:pointer;white-space:nowrap;position:relative;overflow:hidden;
  transition:transform .18s,box-shadow .18s,background .18s,border-color .18s;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;
}
.btn::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.10) 0%,transparent 48%);
  pointer-events:none;border-radius:inherit;
}
.btn:hover{transform:translateY(-2px)}

/* Primary CTA — bold filled gradient, the main "punch" action */
.btn-p{
  background:linear-gradient(135deg,var(--blue) 0%,var(--cyan) 55%,#5be8ff 100%);
  border-color:rgba(255,255,255,.32);border-top-color:rgba(255,255,255,.60);
  color:#031320;font-weight:900;
  box-shadow:0 4px 24px rgba(45,201,240,.48),inset 0 1px 0 rgba(255,255,255,.40);
  animation:bpulse 3.4s ease-in-out infinite;
}
@keyframes bpulse{
  0%,100%{box-shadow:0 4px 24px rgba(45,201,240,.48),inset 0 1px 0 rgba(255,255,255,.40)}
  50%    {box-shadow:0 10px 46px rgba(45,201,240,.80),inset 0 1px 0 rgba(255,255,255,.50)}
}
.btn-p:hover{
  animation-play-state:paused;
  transform:translateY(-2px) scale(1.015);
  box-shadow:0 12px 54px rgba(45,201,240,.90),inset 0 1px 0 rgba(255,255,255,.50);
}
.btn-p::after{
  content:'';position:absolute;top:0;left:-60%;width:40%;height:100%;
  background:linear-gradient(115deg,transparent,rgba(255,255,255,.65),transparent);
  transform:skewX(-20deg);transition:left .55s ease;pointer-events:none;
}
.btn-p:hover::after{left:130%}
/* Secondary CTA — glass outline, quieter */
.btn-o{
  background:rgba(4,12,32,.55);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-color:rgba(255,255,255,.26);
  border-top-color:rgba(255,255,255,.20);
  color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 4px 18px rgba(0,0,0,.35);
}
.btn-o:hover{
  background:rgba(10,30,80,.70);
  border-color:var(--cyan);
  box-shadow:var(--glow),inset 0 1px 0 rgba(255,255,255,.18);
}

/* Discord */
.btn-dc{
  background:linear-gradient(135deg,#3a45b0,#5865F2);
  color:#fff;border:1px solid rgba(88,101,242,.40);
  box-shadow:0 4px 16px rgba(88,101,242,.38);
  animation:none;
}
.btn-dc:hover{box-shadow:0 6px 28px rgba(88,101,242,.62)}

/* Floating Discord widget — positioned under the header's right side
   (below the language switcher / D-SERV button), not bottom-right of
   the viewport anymore. */
/* (old floating Discord widget removed — moved into the header, see .btn-discord-hdr) */

/* D-SERV */
.btn-ds{
  background:rgba(4,12,32,.55);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(45,201,240,.46);border-top-color:rgba(255,255,255,.18);
  color:#fff;letter-spacing:.12em;font-weight:700;
  text-align:center;justify-content:center;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 3px 16px rgba(45,201,240,.18);
  animation:none;
}
.btn-login{
  position:relative;overflow:hidden;
  background:rgba(4,12,32,.55);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.18);border-top-color:rgba(255,255,255,.24);
  color:#fff;letter-spacing:.12em;text-transform:uppercase;
  text-align:center;justify-content:center;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 3px 16px rgba(0,0,0,.25);
  transition:background .2s,border-color .2s,color .2s,box-shadow .2s,transform .15s;
}
.btn-login::after{
  content:'';position:absolute;top:0;left:-60%;width:40%;height:100%;
  background:linear-gradient(115deg,transparent,rgba(255,255,255,.35),transparent);
  transform:skewX(-20deg);transition:left .55s ease;pointer-events:none;
}
.btn-login:hover::after{left:130%}
.btn-login:hover{
  background:rgba(10,30,80,.72);border-color:rgba(45,201,240,.60);color:var(--cyan);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 5px 24px rgba(45,201,240,.32);
  transform:translateY(-1px);
}

.btn-ds:hover{
  background:rgba(10,30,80,.72);
  border-color:rgba(45,201,240,.70);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 5px 24px rgba(45,201,240,.40);
}

/* ─── UNIFIED BUTTON EFFECTS — same shimmer + pulse language as the hero CTAs, applied everywhere ─── */
.btn-dc,.btn-ds,.btn-dl,.pag-btn,.si-tab{position:relative;overflow:hidden}
.btn-dc::after,.btn-ds::after,.btn-dl::after,.pag-btn::after,.si-tab::after{
  content:'';position:absolute;top:0;left:-60%;width:40%;height:100%;
  background:linear-gradient(115deg,transparent,rgba(255,255,255,.45),transparent);
  transform:skewX(-20deg);transition:left .55s ease;pointer-events:none;
}
.btn-dc:hover::after,.btn-ds:hover::after,.btn-dl:hover::after,.pag-btn:hover::after,.si-tab:hover::after{left:130%}

@keyframes softPulseCyan{
  0%,100%{box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 3px 16px rgba(45,201,240,.18)}
  50%    {box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 5px 28px rgba(45,201,240,.40)}
}
@keyframes softPulseDc{
  0%,100%{box-shadow:0 4px 16px rgba(88,101,242,.38)}
  50%    {box-shadow:0 6px 30px rgba(88,101,242,.62)}
}
.btn-ds,.btn-dl,.si-tab.on{animation:softPulseCyan 3.6s ease-in-out infinite}
.btn-dc{animation:softPulseDc 3.6s ease-in-out infinite}
.btn-dc:hover,.btn-ds:hover,.btn-dl:hover,.si-tab.on:hover{animation-play-state:paused}


/* Language switch */
.lang-sw{
  display:inline-flex;align-items:center;gap:1px;
  background:rgba(4,12,32,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.14);border-top-color:rgba(255,255,255,.20);
  border-radius:30px;padding:8px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
  user-select:none;
}
.lang-opt{
  padding:6px 7px;border-radius:24px;cursor:pointer;transition:all .22s;
  opacity:.45;filter:grayscale(65%);
  display:inline-flex;align-items:center;justify-content:center;
  line-height:0;
}
.lang-opt img{
  width:25px;height:16px;object-fit:cover;
  border-radius:3px;
  box-shadow:0 0 0 1px rgba(255,255,255,.18);
  display:block;
}
.lang-opt.on{
  opacity:1;filter:grayscale(0%);
  background:rgba(45,201,240,.20);
  box-shadow:0 2px 12px rgba(45,201,240,.38),inset 0 1px 0 rgba(255,255,255,.14);
  transform:scale(1.08);
}

/* ══════════════════════════════════════════════════════
   HEADER LAYOUT + MOBILE NAV
══════════════════════════════════════════════════════ */

/* Desktop-only header items */
.hdr-desk-only{display:inline-flex}
/* Mobile nav close button — hidden on desktop */
.nav-close{display:none}

/* ─── Desktop header ─────────────────────────────── */
#hdr{
  /* ALWAYS sticky — never hides on scroll */
position:fixed;
top:0;
left:0;
right:0;
z-index:300;
width:100%;
  background:rgba(2,8,22,.40);
  backdrop-filter:blur(1px) saturate(20%);
  -webkit-backdrop-filter:blur(1px) saturate(20%);
  border-bottom:1px solid rgba(255,255,255,.10);
  box-shadow:0 2px 28px rgba(0,0,0,.40);
  will-change:auto;
  /* NO will-change:transform — that hides position:fixed children */
  transition:background .3s,box-shadow .3s;
}
/* Stronger glass after scroll (JS adds .scrolled) */
#hdr.scrolled{
  background:rgba(2,8,22,.40);
  box-shadow:0 2px 36px rgba(0,0,0,.60);
}
/* Scroll-progress hairline under the header — subtle modern touch */
#scrollProg{
  position:absolute;left:0;bottom:-1px;height:2px;width:0%;
  background:linear-gradient(90deg,var(--cyan),var(--gold,#ffd060));
  box-shadow:0 0 8px var(--cyan);transition:width .1s linear;pointer-events:none;
}

/* Logo fallback text — always hidden */
.logo-fallback{display:none!important}

.hdr-wrap{
  max-width:1400px;margin:0 auto;
  display:flex;align-items:center;
  padding:10px 32px;gap:16px;
}
.hdr-logo{flex:0 0 auto}

/* Nav centered between logo and right buttons */
nav.hnav{
  flex:1;
  display:flex;gap:4px;align-items:center;
  justify-content:center;
  flex-wrap:nowrap;
}
nav.hnav a{
  font-family:'Inter',sans-serif;
  font-size:.88rem;
  font-weight:600;
  letter-spacing:.02em;
  color:rgba(255,255,255,.90);
  padding:8px 16px;
  border-radius:6px;
  background:none;
  border:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  transition:color .16s, background .16s;
  white-space:nowrap;
  position:relative;
  min-height:36px;
  display:flex;
  align-items:center;
}
nav.hnav a:hover, nav.hnav a.on{
  color:#fff;
  background:rgba(255,255,255,.08);
}
nav.hnav a:hover,nav.hnav a.on{
  color:#fff;
  background:rgba(45,201,240,.18);
  border-color:rgba(45,201,240,.42);
  text-shadow:0 0 12px rgba(45,201,240,.65);
  box-shadow:0 0 14px rgba(45,201,240,.20);
}
.hdr-right{flex:0 0 auto;display:flex;flex-direction:row;align-items:center;gap:8px}

/* Discord widget — docked under the language row (was a fixed floating
   widget before; same look, just positioned inline in the header now). */
.dc-widget{
  display:flex;align-items:stretch;text-decoration:none;
  background:rgba(10,14,26,.88);
  border:1px solid rgba(255,255,255,.10);
  border-radius:14px;overflow:hidden;
  box-shadow:0 10px 34px rgba(0,0,0,.5),0 0 0 1px rgba(88,101,242,.10);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
.dcf-left{display:flex;align-items:center;gap:10px;padding:10px 14px}
.dcf-ava{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0}
.dcf-name{font-size:13px;font-weight:600;color:#fff;line-height:1.3;display:block}
.dcf-sub{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--silver);letter-spacing:.02em}
.dcf-sub .dot{width:6px;height:6px;border-radius:50%;background:#3ee06f;box-shadow:0 0 6px #3ee06f;animation:dcPulse 1.6s ease-in-out infinite;display:inline-block}
@keyframes dcPulse{0%,100%{opacity:1}50%{opacity:.35}}
.dcf-right{
  display:flex;align-items:center;gap:8px;padding:0 16px;
  background:linear-gradient(135deg,#5865F2,#4752c4);
  color:#fff;font-weight:700;font-size:13px;letter-spacing:.03em;
  transition:filter .2s;
}
.dc-widget:hover .dcf-right{filter:brightness(1.12)}
.dcf-right svg{flex-shrink:0}
.dcf-arrow{font-size:15px;opacity:.85}
.dc-widget-under{
  position:fixed;top:108px;right:32px;z-index:290;
  animation:dcSlideIn .4s ease-out .2s both;
}
@keyframes dcSlideIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}

/* Mobile-drawer-only wrapper elements — must stay neutral/hidden on desktop,
   they only become visible inside the @media(max-width:960px) block below */
.nav-mhead{display:none}
.nav-links{display:contents}
.nav-mfoot{display:none}
.nav-idx{display:none}

/* Hamburger — hidden on desktop */
.ham{display:none}

/* ─── Intermediate breakpoint: even with the Discord widget now living
   outside the header, the header's own content (logo + nav + online
   badge + D-SERV + 5 flags) can still get tight before the mobile
   hamburger takes over at 960px — compact spacing/hide the badge to
   keep everything on one row without overflowing. Also compacts the
   floating Discord widget below the header at the same range, since
   they share the same .dc-widget classes. ─── */
@media(max-width:1180px){
  .dcf-left{display:none}
  .dc-widget{border-radius:10px}
  .dcf-right{padding:0 12px}
  .dc-widget-under{top:98px;right:18px}
  .hdr-wrap{padding:10px 14px;gap:8px}
  nav.hnav a{padding:7px 8px;font-size:.78rem}
  .lang-opt img{width:20px;height:13px}
  .lang-sw{gap:4px}
  .btn-ds,.btn-login{padding:0 12px;font-size:.7rem;letter-spacing:.04em}
}

/* ─── Mobile breakpoint 1100px ─── see index.html for the full
   rationale (lowered from 1300px — that was too aggressive for
   common 1280-1366px laptop viewports). ────────────────────── */
@media(max-width:1100px){

  /* Show hamburger */
  .ham{
    display:flex!important;
    flex-direction:column;justify-content:center;align-items:center;gap:5px;
    width:44px;height:44px;
    z-index:350;flex-shrink:0;border-radius:8px;
    background:rgba(4,12,32,.65);
    border:1px solid rgba(45,201,240,.32);
    transition:background .18s,border-color .18s;
    -webkit-tap-highlight-color:transparent;
  }
  .ham:hover,.ham:active{background:rgba(45,201,240,.18);border-color:rgba(45,201,240,.60)}
  .ham span{display:block;width:22px;height:2px;background:#fff;border-radius:2px;transition:all .24s;pointer-events:none}
  .ham.on span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .ham.on span:nth-child(2){opacity:0;transform:scaleX(0)}
  .ham.on span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

  /* Close button visible in overlay */
  .nav-close{display:flex}

  /* Header: Logo | lang-sw | HAM (far right, last in DOM) */
  .hdr-wrap{padding:8px 14px;gap:6px}
  .hdr-logo{flex:0 0 auto}

  /* Discord stays visible on mobile too — only D-SERV is desktop-only */
  .hdr-desk-only{display:none!important}
  .btn-dc{padding:9px 12px}
  .btn-dc .dc-txt{display:none}

  /* hdr-right: Discord icon + lang-sw */
  .hdr-right{margin-left:auto;flex:0 0 auto;gap:6px}

  /* ── Nav: full-screen overlay ─────────────────── */
  nav.hnav{
    flex:none;
    position:fixed;
    top:0;left:0;
    width:100%;
    height:100%;
    min-height:100vh;
    z-index:400;
    background:
      radial-gradient(ellipse at 50% 0%,rgba(45,201,240,.14),transparent 60%),
      linear-gradient(180deg,rgba(2,6,18,1),rgba(2,6,18,1));
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    display:flex!important;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:0;
    flex-wrap:nowrap;
    transform:translateX(100%);
    pointer-events:none;
    visibility:hidden;
    opacity:0;
    transition:
      transform .34s cubic-bezier(.4,0,.2,1),
      visibility  0s linear .34s,
      opacity     .34s ease;
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    padding:86px 26px calc(40px + env(safe-area-inset-bottom,0px));
    border:none;border-radius:0;
    margin:0;order:0;
  }
  nav.hnav.open{
    transform:translateX(0);
    pointer-events:auto;
    visibility:visible;
    opacity:1;
    transition:
      transform .34s cubic-bezier(.4,0,.2,1),
      visibility  0s linear 0s,
      opacity     .34s ease;
  }

  /* Brand header inside the drawer */
  .nav-mhead{
    display:flex;flex-direction:column;align-items:center;gap:8px;
    padding-bottom:22px;margin-bottom:22px;
    border-bottom:1px solid rgba(45,201,240,.18);
  }
  .nav-mhead img{max-height:46px;max-width:170px;filter:drop-shadow(0 0 16px rgba(45,201,240,.45))}
  .nav-meyebrow{
    font-family:'Cinzel',serif;font-size:.66rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
    color:var(--cyan);opacity:.85;
  }

  .nav-links{display:flex;flex-direction:column;gap:8px;width:100%;flex:1 0 auto}

  /* Nav links inside overlay — left-aligned numbered rows */
  nav.hnav a{
    font-family:'Cinzel',serif;
    font-size:.98rem;font-weight:700;letter-spacing:.08em;
    color:#fff;
    width:100%;
    justify-content:flex-start;
    padding:16px 18px;min-height:56px;
    border-radius:12px;
    border:1px solid rgba(255,255,255,.08);
    border-top-color:rgba(255,255,255,.12);
    background:rgba(255,255,255,.03);
    backdrop-filter:none;-webkit-backdrop-filter:none;
    box-shadow:none;
    position:relative;overflow:hidden;
    transition:background .18s,border-color .18s,transform .18s;
    opacity:0;transform:translateX(26px);
  }
  nav.hnav a::before{
    content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
    background:transparent;transition:background .18s,box-shadow .18s;
  }
  nav.hnav a:hover::before,nav.hnav a.on::before{
    background:var(--cyan);box-shadow:0 0 12px var(--cyan);
  }
  nav.hnav.open a{
    opacity:1;transform:translateX(0);
    transition:opacity .40s ease,transform .40s cubic-bezier(.2,.8,.2,1),background .18s,border-color .18s;
  }
  nav.hnav.open a:nth-child(1){transition-delay:.06s}
  nav.hnav.open a:nth-child(2){transition-delay:.11s}
  nav.hnav.open a:nth-child(3){transition-delay:.16s}
  nav.hnav.open a:nth-child(4){transition-delay:.21s}
  nav.hnav.open a:nth-child(5){transition-delay:.26s}
  nav.hnav a:hover,nav.hnav a:active,nav.hnav a.on{
    background:rgba(45,201,240,.12);
    border-color:rgba(45,201,240,.45);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
  }
  nav.hnav a::after{display:none!important}
  .nav-idx{
    display:inline-block;
    font-family:'Cinzel',serif;font-size:.72rem;font-weight:900;color:var(--cyan);
    opacity:.75;margin-right:16px;letter-spacing:.05em;flex-shrink:0;
  }
  nav.hnav a.on .nav-idx{opacity:1}
  .nav-txt{flex:1}

  /* Footer row inside the drawer — Login/My Account is the PRIMARY
     action (bigger, glowing), D-SERV + Discord are secondary
     quick-links side-by-side below it. Mirrors index.html's own
     nav-mfoot styling exactly — see there for the fuller rationale. */
  .nav-mfoot{
    display:flex;flex-direction:column;align-items:center;gap:12px;padding-top:22px;margin-top:18px;
    border-top:1px solid rgba(45,201,240,.14);width:100%;
  }
  .nav-mfoot-primary{
    width:min(280px,84vw);justify-content:center;height:50px;gap:9px;font-size:.82rem;font-weight:800;
    background:linear-gradient(135deg,#2dc9f0,#0d5fa0);color:#fff;border-radius:12px;
    box-shadow:0 8px 24px -6px rgba(45,201,240,.55);display:flex;align-items:center;
  }
  .nav-mfoot-row{display:flex;gap:10px;width:min(280px,84vw)}
  .nav-mfoot-sec{flex:1;justify-content:center;height:42px;gap:7px;font-size:.72rem;padding:0 10px;display:flex;align-items:center}
  .nav-mfoot-discord{background:linear-gradient(135deg,#5865F2,#4752c4);color:#fff}
  #hnav .nav-mfoot-logout{
    background:none!important;box-shadow:none!important;color:rgba(255,255,255,.55)!important;height:auto!important;
    font-size:.74rem!important;font-weight:600!important;text-decoration:underline;width:auto!important;
    display:inline-flex!important;
  }
  .mfoot-icon{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}

  /* Fixed hint at the bottom of the screen — subtle fade suggesting
     there's more to scroll to; nav.hnav is transformed (slide-in), so
     this fixed child positions relative to it, which fills the
     viewport when open — same visual effect as fixed-to-viewport. */
  .nav-scroll-fade{
    position:fixed;left:0;right:0;bottom:0;height:56px;z-index:401;pointer-events:none;
    background:linear-gradient(180deg,transparent,rgba(2,6,18,.92));
    opacity:0;transition:opacity .25s ease;
  }
  nav.hnav.open .nav-scroll-fade{opacity:1}

  /* Close (X) button */
  .nav-close{
    position:absolute;top:16px;right:16px;
    width:44px;height:44px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:rgba(4,12,32,.80);
    border:1px solid rgba(45,201,240,.24);
    color:#fff;font-size:1.1rem;cursor:pointer;
    transition:background .18s,border-color .18s;
    -webkit-tap-highlight-color:transparent;
    font-family:system-ui,sans-serif;
    z-index:410;
  }
  .nav-close:hover,.nav-close:active{
    background:rgba(45,201,240,.24);border-color:rgba(45,201,240,.60);
  }
}

@media(max-width:600px){
  .hdr-wrap{padding:7px 12px;gap:6px}
  .hdr-logo img{max-height:40px;max-width:148px}
  .lang-sw{padding:8px}
  .lang-opt{padding:5px 6px}
  .lang-opt img{width:20px;height:15px}
}
@media(max-width:400px){
  .hdr-logo img{max-height:36px;max-width:126px}
  .lang-opt{padding:4px 5px}
  .lang-opt img{width:18px;height:14px}
}

/* iOS scroll lock */
body.nav-open{position:fixed;width:100%;overflow-y:scroll;-webkit-overflow-scrolling:touch}
/* The floating Discord bubble sits above the mobile nav drawer
   (z-index 500 > 400) and was covering the D-SERV button in the
   drawer's footer — hide it while the drawer is open. */
body.nav-open #dc-float{display:none!important}

/* Global touch */
a,button,[role="button"]{-webkit-tap-highlight-color:transparent;touch-action:manipulation}

/* Prevent horizontal overflow */
html,body{overflow-x:hidden}
.hdr-wrap,.sec,.ftr-grid,.ftr-bar,.news-grid,.dl-grid,
.info-grid,.si-table,.part-grid,.reg-steps,.cd-card{max-width:100%}

/* ─── HERO ──────────────────────────────────────────── */
#hero{
  position:relative;z-index:2;
  min-height:96vh;min-height:96svh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:100px 24px 60px;
}
.hero-logo{margin-bottom:20px}
.hero-logo img{
  max-width:min(560px,88vw);
  filter:drop-shadow(0 0 44px rgba(45,201,240,.65)) drop-shadow(0 0 88px rgba(45,201,240,.22));
  animation:hfloat 5s ease-in-out infinite;will-change:transform;
}
.hero-txt-logo{
  font-family:'Cinzel',serif;font-size:clamp(2.8rem,10vw,5.5rem);font-weight:900;
  color:#fff;text-shadow:0 0 44px rgba(45,201,240,.65);
  animation:hfloat 5s ease-in-out infinite;display:none;
}
@keyframes hfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}

/* Glass panel behind the welcome text — guarantees contrast against any background art */
.hero-panel{
  width:100%;max-width:680px;
  display:flex;flex-direction:column;align-items:center;
  padding:38px 42px 42px;
  background:rgba(2,8,22,.40);
  backdrop-filter:blur(1px) saturate(20%);
  -webkit-backdrop-filter:blur(1px) saturate(20%);
  border:1px solid rgba(45,201,240,.22);border-top-color:rgba(255,255,255,.20);
  border-radius:22px;
  box-shadow:0 24px 70px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.10);
}
.hero-badge{
  display:inline-flex;align-items:center;gap:9px;
  padding:9px 24px;border-radius:30px;margin-bottom:20px;
  font-family:'Cinzel',serif;font-size:.70rem;font-weight:700;letter-spacing:.20em;text-transform:uppercase;
  background:rgba(45,201,240,.16);
  border:1px solid rgba(45,201,240,.50);
  color:#eaf9ff;
  box-shadow:0 0 22px rgba(45,201,240,.35),inset 0 1px 0 rgba(255,255,255,.14);
  animation:badgeGlow 3s ease-in-out infinite;
}
@keyframes badgeGlow{
  0%,100%{box-shadow:0 0 22px rgba(45,201,240,.35),inset 0 1px 0 rgba(255,255,255,.14)}
  50%    {box-shadow:0 0 38px rgba(45,201,240,.62),inset 0 1px 0 rgba(255,255,255,.20)}
}
.hero-tag{
  font-family:'Cinzel',serif;font-size:clamp(1.05rem,3.6vw,1.9rem);
  font-weight:900;letter-spacing:.13em;text-transform:uppercase;
  background:linear-gradient(180deg,#ffffff 0%,#d4f2ff 45%,var(--cyan) 100%);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
  text-shadow:0 0 32px rgba(45,201,240,.50);
  margin-bottom:14px;
}
.hero-sub{font-size:clamp(.88rem,1.8vw,1.08rem);color:rgba(255,255,255,.86);letter-spacing:.02em;margin-bottom:32px;max-width:520px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.hero-cta .btn{font-size:1rem;padding:14px 36px;border-radius:13px}
@media(max-width:960px){#hero{padding:90px 18px 50px;min-height:auto}}
@media(max-width:640px){
  .hero-panel{padding:30px 22px 32px;border-radius:18px}
  .hero-cta{flex-direction:column;align-items:center;width:100%;gap:10px}
  .hero-cta .btn{font-size:.88rem;padding:13px 24px;width:min(280px,85vw)}
}

/* ─── COUNTDOWN ─────────────────────────────────────── */
#cds{position:relative;z-index:2;padding:0 24px 60px}
.cd-card{
  max-width:740px;margin:0 auto;padding:40px 44px 38px;text-align:center;
  position:relative;overflow:hidden;
}
.cd-card::after{
  content:'';position:absolute;top:0;left:14%;right:14%;height:1px;
  background:linear-gradient(90deg,transparent,rgba(45,201,240,.40),transparent);
}
.cd-label{
  font-family:'Cinzel',serif;font-size:.72rem;letter-spacing:.26em;
  color:var(--cyan);text-transform:uppercase;margin-bottom:28px;
}
.cd-card-unset{padding:20px 0;text-align:center}
.cd-card-unset .cd-label{margin-bottom:0;font-size:1.1rem;letter-spacing:.14em}
.cd-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;align-items:flex-start}
.cd-unit{display:flex;flex-direction:column;align-items:center}
.cd-num{
  font-family:'Cinzel',serif;font-size:clamp(2rem,5.5vw,3.2rem);font-weight:900;line-height:1;
  color:#fff;text-shadow:0 0 20px rgba(184,240,255,.75);
  background:rgba(4,12,32,.68);
  border:1px solid rgba(45,201,240,.18);border-top:1px solid rgba(255,255,255,.14);
  border-radius:12px;padding:14px 18px;min-width:82px;text-align:center;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 6px 24px rgba(0,0,0,.45);
  transition:transform .12s;
}
.cd-num.bump{transform:scale(1.08)}
.cd-sep{font-family:'Cinzel',serif;font-size:2.6rem;font-weight:600;color:rgba(45,201,240,.38);align-self:flex-start;padding-top:14px;user-select:none}
.cd-lbl{font-family:'Cinzel',serif;font-size:.56rem;letter-spacing:.20em;color:rgba(255,255,255,.48);text-transform:uppercase;margin-top:9px}

/* Server Is Open */
#srv-open{display:none}
#srv-open.show{display:flex;flex-direction:column;align-items:center;gap:20px;animation:srvIn .85s cubic-bezier(.22,1,.36,1) both}
@keyframes srvIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.srv-badge{
  display:inline-flex;align-items:center;gap:14px;
  padding:14px 44px;border-radius:60px;
  background:rgba(0,40,22,.60);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border:1px solid rgba(0,232,136,.22);border-top:1px solid rgba(0,255,155,.14);
  box-shadow:0 0 40px rgba(0,232,136,.18),inset 0 1px 0 rgba(255,255,255,.10);
  animation:srvGlow 3.5s ease-in-out infinite;
}
@keyframes srvGlow{
  0%,100%{box-shadow:0 0 40px rgba(0,232,136,.18),inset 0 1px 0 rgba(255,255,255,.10)}
  50%    {box-shadow:0 0 64px rgba(0,232,136,.36),inset 0 1px 0 rgba(255,255,255,.16)}
}
.srv-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;background:#00f090;box-shadow:0 0 10px #00f090;animation:dotB 1.8s ease-in-out infinite}
@keyframes dotB{0%,100%{transform:scale(1)}50%{transform:scale(1.35);opacity:.72}}
.srv-label{font-family:'Cinzel',serif;font-weight:900;font-size:clamp(.88rem,2.6vw,1.36rem);letter-spacing:.16em;color:#fff;text-shadow:0 0 16px rgba(0,240,130,.50)}
.srv-cards{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.srv-card{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:11px 18px;border-radius:11px;min-width:120px;
  background:rgba(4,12,32,.60);
  border:1px solid rgba(45,201,240,.14);border-top:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.srv-card-lbl{font-family:'Cinzel',serif;font-size:.58rem;letter-spacing:.13em;color:rgba(255,255,255,.52);text-transform:uppercase}
.srv-card-val{font-size:.90rem;color:#fff;font-weight:600}
.srv-uptime{
  display:inline-flex;align-items:center;gap:8px;padding:8px 20px;border-radius:28px;
  background:rgba(4,12,32,.60);
  border:1px solid rgba(45,201,240,.14);
  font-family:'Cinzel',serif;font-size:.76rem;letter-spacing:.08em;
  color:rgba(45,201,240,.80);
}
@media(max-width:620px){
  .cd-card{padding:24px 12px}
  .cd-num{font-size:1.9rem;min-width:66px;padding:11px 11px}
  .cd-sep{font-size:2rem;padding-top:12px}
  .srv-badge{padding:12px 20px;gap:10px}
}

/* ─── NEWS ──────────────────────────────────────────── */
.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:20px;max-width:1100px;margin:0 auto}
.nc{
  padding:26px 24px 20px;position:relative;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;
  transition:transform .20s ease,border-color .20s,box-shadow .20s,background .20s;
}
.nc:hover{border-color:rgba(45,201,240,.65)}
.nc::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--blue),var(--cyan),var(--ice));box-shadow:0 0 8px rgba(45,201,240,.50)}
.nb{display:inline-block;font-size:.62rem;letter-spacing:.12em;padding:3px 10px;border-radius:18px;margin-bottom:11px;font-weight:700;text-transform:uppercase;font-family:'Cinzel',serif}
.b-a{background:rgba(255,208,96,.08);color:var(--gold);border:1px solid rgba(255,208,96,.20)}
.b-e{background:rgba(45,201,240,.10);color:var(--cyan);border:1px solid rgba(45,201,240,.24)}
.b-u{background:rgba(33,150,243,.10);color:#74b9ff;border:1px solid rgba(33,150,243,.24)}
.nb-custom{color:#fff;border:1px solid rgba(255,255,255,.22);background-color:var(--cyan)}
.ntl{font-family:'Cinzel',serif;font-size:.98rem;color:#fff;margin-bottom:9px;line-height:1.4}
.nbd{font-size:.82rem;color:rgba(255,255,255,.78);line-height:1.72;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
/* Bottom row: date LEFT, Read More RIGHT */
.nc-footer{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:12px;
}
.ndt{font-size:.66rem;color:rgba(255,255,255,.42)}
.nr{
  display:flex;align-items:center;gap:4px;
  font-size:.70rem;color:var(--cyan);
  font-family:'Cinzel',serif;letter-spacing:.08em;
  opacity:.65;transition:opacity .18s;
}
.nc:hover .nr{opacity:1}

/* Pagination – more readable */
.pag{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:36px}
.pag-btn{
  background:rgba(4,12,32,.65);
  border:1px solid rgba(255,255,255,.18);border-top-color:rgba(255,255,255,.26);
  color:#fff;
  font-family:'Cinzel',serif;font-size:.75rem;font-weight:700;letter-spacing:.09em;
  padding:9px 22px;border-radius:9px;cursor:pointer;transition:all .20s;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
.pag-btn:hover,.pag-btn.on{
  background:rgba(45,201,240,.22);border-color:var(--cyan);color:#fff;
  box-shadow:0 0 16px rgba(45,201,240,.35),inset 0 1px 0 rgba(255,255,255,.16);
}
.pag-btn:disabled{opacity:.28;pointer-events:none}
.pag-info{font-family:'Cinzel',serif;font-size:.72rem;color:rgba(255,255,255,.72);padding:8px 12px}

/* ─── MODAL ─────────────────────────────────────────── */
#modal{display:none;position:fixed;inset:0;z-index:500;background:rgba(1,4,12,.84);backdrop-filter:blur(16px);align-items:center;justify-content:center;padding:16px}
#modal.open{display:flex;animation:fIn .22s ease both}
@keyframes fIn{from{opacity:0}to{opacity:1}}
.modal-box{
  max-width:630px;width:100%;padding:42px 44px;position:relative;max-height:90vh;overflow-y:auto;
  animation:mIn .32s cubic-bezier(.34,1.4,.64,1) both;
}
@keyframes mIn{from{opacity:0;transform:scale(.90) translateY(22px)}to{opacity:1;transform:none}}
.modal-box::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--blue),var(--cyan),var(--ice));box-shadow:0 0 12px var(--cyan);border-radius:14px 14px 0 0}
.modal-close{position:absolute;top:12px;right:14px;background:rgba(45,201,240,.08);border:1px solid rgba(45,201,240,.22);color:rgba(255,255,255,.80);font-size:1rem;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .18s;z-index:2}
.modal-close:hover{background:rgba(45,201,240,.22);color:#fff}
.m-badge{margin-bottom:12px}
.m-title{font-family:'Cinzel',serif;font-size:clamp(1.1rem,3vw,1.45rem);color:#fff;margin-bottom:9px;line-height:1.32}
.m-date{font-size:.68rem;color:rgba(255,255,255,.42);margin-bottom:20px}
.m-body{font-size:.88rem;color:rgba(255,255,255,.80);line-height:1.85}
@media(max-width:560px){.modal-box{padding:28px 18px}}

#legal-modal{display:none;position:fixed;inset:0;z-index:610;background:rgba(1,4,12,.86);backdrop-filter:blur(14px);align-items:center;justify-content:center;padding:16px}
#legal-modal.open{display:flex;animation:fIn .22s ease both}
.legal-box{max-width:640px;max-height:80vh;overflow-y:auto;text-align:left}
.legal-box h2{font-family:'Cinzel',serif;font-size:1.3rem;margin-bottom:16px;color:var(--cyan)}
.legal-body p{margin-bottom:14px;font-size:.9rem;color:rgba(255,255,255,.82);line-height:1.7}
.legal-body strong{color:#fff}

/* ─── DOWNLOADS ─────────────────────────────────────── */
.dl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;max-width:1100px;margin:0 auto}
.dl-card{
  padding:26px 24px;display:flex;flex-direction:column;gap:10px;overflow:hidden;
}
.dl-name{font-family:'Cinzel',serif;font-size:1.04rem;color:#fff}
.dl-desc{font-size:.82rem;color:rgba(255,255,255,.80);line-height:1.65;flex:1}
.dl-size{font-size:.66rem;color:var(--cyan)}
.btn-dl{
  display:inline-flex;align-items:center;gap:6px;width:fit-content;
  font-family:'Cinzel',serif;font-size:.74rem;font-weight:700;letter-spacing:.06em;
  padding:9px 20px;border-radius:9px;
  background:rgba(4,12,32,.60);
  border:1px solid rgba(45,201,240,.40);border-top-color:rgba(255,255,255,.16);
  color:#fff;cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 3px 14px rgba(45,201,240,.18);
  transition:all .20s;
}
.btn-dl:hover{background:rgba(45,201,240,.22);border-color:var(--cyan);box-shadow:var(--glow);transform:translateY(-2px)}

/* ─── SERVER INFO ───────────────────────────────────── */
.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(195px,1fr));gap:12px;max-width:1100px;margin:0 auto 28px}
.info-card{padding:20px 18px;position:relative;overflow:hidden}
.info-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(45,201,240,.55),transparent)}
.info-lbl{font-size:.60rem;letter-spacing:.20em;color:var(--cyan);text-transform:uppercase;margin-bottom:7px}
.info-val{font-family:'Cinzel',serif;font-size:1.10rem;color:#fff;font-weight:700;margin-bottom:3px}
.info-sub{font-size:.72rem;color:rgba(255,255,255,.58)}

/* Tabs */
.si-tabs{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;margin:0 auto 28px;max-width:1000px}
.si-tab{
  font-family:'Cinzel',serif;font-size:.71rem;font-weight:700;letter-spacing:.09em;
  padding:8px 18px;border-radius:8px;cursor:pointer;
  background:rgba(4,12,32,.60);
  border:1px solid rgba(255,255,255,.14);border-top-color:rgba(255,255,255,.22);
  color:rgba(255,255,255,.72);
  transition:all .20s;white-space:nowrap;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.si-tab:hover{color:#fff;background:rgba(45,201,240,.16);border-color:rgba(45,201,240,.40)}
.si-tab.on{
  background:linear-gradient(135deg,var(--blue),var(--cyan));
  border-color:rgba(255,255,255,.35);color:#031320;font-weight:900;
  box-shadow:0 4px 22px rgba(45,201,240,.45),inset 0 1px 0 rgba(255,255,255,.30);
}
.si-panel{display:none}
.si-panel.on{display:block;animation:fIn .24s ease both}

.si-table{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(218px,1fr));gap:9px}
.si-row{display:flex;align-items:center;justify-content:space-between;padding:10px 15px;gap:10px;border-radius:8px;position:relative}
.si-row::before{content:'';position:absolute;top:0;left:0;bottom:0;width:2px;background:rgba(45,201,240,.26);border-radius:2px 0 0 2px;transition:background .18s}
.si-row:hover::before{background:var(--cyan)}
.si-k{font-size:.81rem;color:rgba(255,255,255,.82);flex:1}
.si-v{font-family:'Cinzel',serif;font-size:.81rem;font-weight:700;color:#fff;text-align:right;white-space:nowrap}
.si-v.green{color:#00e888}
.si-v.gold{color:var(--gold)}
.si-v.red{color:#ff5577}

/* ─── PARTNERS ──────────────────────────────────────── */
.part-grid{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;max-width:980px;margin:0 auto}
.part-card{width:200px;height:100px;display:flex;align-items:center;justify-content:center;padding:18px 22px}

/* ─── BACK TO TOP ────────────────────────────────────── */
.totop{
  position:fixed;right:20px;bottom:20px;z-index:280;
  width:46px;height:46px;border-radius:50%;
  background:rgba(4,12,32,.70);backdrop-filter:blur(10px);
  border:1px solid rgba(45,201,240,.40);color:#fff;font-size:1.2rem;
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transform:translateY(10px);
  transition:opacity .22s,transform .22s,background .18s,border-color .18s;
  box-shadow:0 4px 20px rgba(0,0,0,.4);
}
.totop.show{opacity:1;pointer-events:auto;transform:translateY(0)}
.totop:hover{background:rgba(10,30,80,.80);border-color:var(--cyan);box-shadow:var(--glow)}
@media(max-width:640px){.totop{right:14px;bottom:14px;width:42px;height:42px}}

/* ─── COOKIE BAR ─────────────────────────────────────── */
.cookie-bar{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:590;
  max-width:760px;margin:0 auto;
  display:none;align-items:center;gap:16px;flex-wrap:wrap;
  background:rgba(3,10,24,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.14);border-radius:var(--r);
  padding:16px 20px;box-shadow:0 12px 40px rgba(0,0,0,.5);
}
.cookie-bar.show{display:flex}
.cookie-bar p{flex:1 1 260px;font-size:.85rem;color:rgba(255,255,255,.82);margin:0}
.cookie-bar .btn{flex:0 0 auto;padding:9px 20px;font-size:.76rem}
@media(max-width:520px){.cookie-bar{padding:14px 16px}.cookie-bar .btn{width:100%}}

/* ─── SCREENSHOTS ────────────────────────────────────── */
.ss-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:18px;max-width:1180px;margin:0 auto;
}
.ss-card{
  position:relative;border-radius:var(--r2);overflow:hidden;cursor:pointer;
  aspect-ratio:16/9;border:1px solid rgba(255,255,255,.14);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.ss-card:hover{transform:translateY(-4px);border-color:var(--gb2);box-shadow:var(--glow)}
.ss-card img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.ss-card:hover img{transform:scale(1.06)}
.ss-card::after{
  content:'⤢';position:absolute;top:8px;right:8px;left:auto;
  width:28px;height:28px;border-radius:50%;
  background:rgba(2,8,22,.55);color:#fff;font-size:.9rem;
  display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(255,255,255,.20);pointer-events:none;
}
#ss-modal{
  display:none;position:fixed;inset:0;z-index:600;
  background:rgba(1,4,12,.92);backdrop-filter:blur(10px);
  align-items:center;justify-content:center;padding:24px;
}
#ss-modal.open{display:flex;animation:fIn .2s ease both}
#ss-modal img{max-width:min(1200px,92vw);max-height:82vh;border-radius:var(--r2);box-shadow:0 20px 60px rgba(0,0,0,.6)}
.ss-close{position:absolute;top:18px;right:22px;width:40px;height:40px;border-radius:50%;
  background:rgba(45,201,240,.10);border:1px solid rgba(45,201,240,.30);color:#fff;font-size:1.1rem;
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .18s;}
.ss-close:hover{background:rgba(45,201,240,.24)}
.ss-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;
  background:rgba(45,201,240,.10);border:1px solid rgba(45,201,240,.30);color:#fff;font-size:1.6rem;
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .18s;}
.ss-nav:hover{background:rgba(45,201,240,.24)}
.ss-prev{left:18px}.ss-next{right:18px}
.ss-count{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);
  font-family:'Cinzel',serif;font-size:.85rem;letter-spacing:.08em;color:rgba(255,255,255,.75);
  background:rgba(2,8,22,.55);padding:6px 16px;border-radius:20px;border:1px solid rgba(255,255,255,.14);}
@media(max-width:640px){.ss-nav{width:38px;height:38px;font-size:1.3rem}.ss-prev{left:6px}.ss-next{right:6px}}
.part-img,.part-card img{
  width:100%;height:auto;max-height:62px;
  object-fit:contain;
  filter:brightness(.85) saturate(.70);
  transition:filter .30s,transform .24s;
  display:block;
}
.part-card:hover .part-img,.part-card:hover img{
  filter:brightness(1.10) saturate(1.10) drop-shadow(0 0 12px rgba(45,201,240,.55));
  transform:scale(1.06);
}
/* Contact us text – readable */
.part-contact{
  text-align:center;margin-top:26px;
  font-size:.82rem;color:rgba(255,255,255,.70);
}
.part-contact a{color:var(--cyan);border-bottom:1px solid rgba(45,201,240,.30);transition:color .18s,border-color .18s}
.part-contact a:hover{color:#fff;border-color:#fff}

/* ─── REGISTER SECTION ──────────────────────────────── */
.reg-intro{text-align:center;font-size:1rem;color:rgba(255,255,255,.80);margin-bottom:32px}
.reg-steps-label{text-align:center;font-family:'Cinzel',serif;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);margin-bottom:20px}
.reg-intro strong{color:var(--cyan)}
.reg-steps{display:flex;flex-direction:column;gap:14px;max-width:760px;margin:0 auto 24px}
.reg-step{display:flex;align-items:center;gap:20px;padding:22px 24px}
.reg-num{
  font-family:'Cinzel',serif;font-size:1.4rem;font-weight:900;
  color:#fff;text-shadow:0 0 10px rgba(45,201,240,.65);
  flex-shrink:0;width:46px;height:46px;text-align:center;line-height:46px;
  background:linear-gradient(135deg,rgba(45,201,240,.22),rgba(13,95,160,.10));
  border:1px solid rgba(45,201,240,.45);border-top-color:rgba(255,255,255,.20);
  border-radius:10px;
  box-shadow:0 0 18px rgba(45,201,240,.25),inset 0 1px 0 rgba(255,255,255,.10);
}
.reg-body{display:flex;flex-direction:column;gap:7px}
.reg-title{font-family:'Cinzel',serif;font-size:.98rem;font-weight:700;color:#fff}
.reg-desc{font-size:.84rem;color:rgba(255,255,255,.75);line-height:1.70}
.reg-desc strong{color:var(--cyan)}
.reg-desc em{color:var(--gold);font-style:normal}
.reg-note{
  max-width:760px;margin:0 auto;padding:16px 22px;
  display:flex;align-items:center;gap:14px;
  background:rgba(255,200,0,.06);
  border-color:rgba(255,200,0,.20)!important;
}
.reg-note-icon{font-size:1.4rem;flex-shrink:0}
.reg-note-text{font-size:.82rem;color:rgba(255,255,255,.80);line-height:1.65}
.reg-note-text strong{color:var(--gold)}
/* Register buttons – full width on mobile, spaced on desktop */
.reg-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:32px}
.reg-cta .btn{font-size:.95rem;padding:14px 32px;border-radius:12px;min-width:200px}
@media(max-width:580px){
  .reg-step{flex-direction:column;align-items:flex-start;gap:10px}
  .reg-num{font-size:1.5rem}
  .reg-cta{flex-direction:column;align-items:center;gap:12px}
  .reg-cta .btn{
    width:min(300px,88vw);
    font-size:.92rem;padding:15px 20px;min-height:52px;
    letter-spacing:.06em;
  }
}

/* ─── FOOTER ────────────────────────────────────────── */
#ftr{
  position:relative;z-index:2;
  background:rgba(2,8,22,.40);
  backdrop-filter:blur(1px) saturate(20%);
  -webkit-backdrop-filter:blur(1px) saturate(20%);
  border-top:1px solid rgba(255,255,255,.10);
}
#ftr::before{
  content:'';position:absolute;top:-1px;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--cyan),transparent);
  opacity:.55;
}
.ftr-grid{
  max-width:960px;margin:0 auto;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));
  gap:26px;padding:38px 24px 20px;
}
.fc h4{font-family:'Cinzel',serif;font-size:.72rem;color:var(--cyan);letter-spacing:.18em;text-transform:uppercase;margin-bottom:13px}
.fc ul{list-style:none}
.fc ul li{margin-bottom:8px}
.fc ul li a{color:rgba(255,255,255,.65);font-size:.79rem;transition:color .18s}
.fc ul li a:hover{color:#fff}
.fc p{color:rgba(255,255,255,.65);font-size:.79rem;line-height:1.72}
.ftr-logo{height:38px;margin-bottom:13px;filter:drop-shadow(0 0 12px rgba(45,201,240,.38))}
.ftr-logo-txt{font-family:'Cinzel',serif;font-size:1rem;font-weight:900;color:#fff;margin-bottom:11px;display:none}
.hosted{display:flex;align-items:center;gap:6px;font-size:.76rem;color:rgba(255,255,255,.65);margin-top:11px}
.hosted a{
  font-family:'Cinzel',serif;font-weight:900;font-size:.84rem;letter-spacing:.12em;
  background:linear-gradient(90deg,var(--cyan),#fff,var(--cyan));
  background-size:220% auto;
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
  animation:dservShine 2.6s linear infinite,dservPulse 1.8s ease-in-out infinite;
}
@keyframes dservShine{to{background-position:-220% center}}
@keyframes dservPulse{
  0%,100%{filter:drop-shadow(0 0 5px rgba(45,201,240,.55))}
  50%    {filter:drop-shadow(0 0 15px rgba(45,201,240,.95))}
}
.socials{display:flex;gap:8px;margin-top:13px}
.soc{
  width:34px;height:34px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;color:#fff;
  background:rgba(4,12,32,.60);
  border:1px solid rgba(255,255,255,.14);
  transition:all .20s;
}
.soc:hover{background:rgba(45,201,240,.16);border-color:var(--cyan);transform:translateY(-2px)}
.status-list{display:flex;flex-direction:column;gap:10px}
.status-row{display:flex;align-items:center;gap:8px;font-size:.79rem;color:rgba(255,255,255,.70)}
.dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--green);box-shadow:0 0 7px var(--green);transition:background .3s,box-shadow .3s}
#ftr-status-text{transition:color .3s}

/* ── Live status card v2: angular gaming-HUD layout — a diagonal-cut
   icon panel on the left (matching the site's cut-corner card style
   used elsewhere), big glowing stat on the right, animated scan sweep.
   Card chrome stays on-brand blue/cyan always; only the icon panel +
   "Online/Offline" word react to --stc (green/red/grey). ── */
.status-card{
  position:relative;display:flex;align-items:stretch;gap:0;
  background:linear-gradient(160deg,rgba(45,201,240,.08),rgba(13,95,160,.04));
  border:1px solid rgba(45,201,240,.30);
  border-radius:12px;overflow:hidden;
  box-shadow:0 0 0 1px rgba(0,0,0,.25), 0 0 24px -6px rgba(45,201,240,.45),inset 0 1px 0 rgba(255,255,255,.06);
}
.status-card::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(140px 90px at 0% 0%, rgba(45,201,240,.12), transparent 70%);
}
.status-icon-panel{
  position:relative;flex:0 0 62px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg,color-mix(in srgb, var(--stc) 22%, transparent),color-mix(in srgb, var(--stc) 6%, transparent));
  border-right:1px solid color-mix(in srgb, var(--stc) 35%, transparent);
  clip-path:polygon(0 0,100% 0,78% 100%,0 100%);
  transition:background .4s;
}
.status-ping{position:relative;width:13px;height:13px}
.status-ping-ring{position:absolute;inset:0;border-radius:50%;background:var(--stc);animation:statusPing 1.8s cubic-bezier(0,0,.2,1) infinite;opacity:.6}
.status-ping-core{position:absolute;inset:2.5px;border-radius:50%;background:var(--stc);box-shadow:0 0 10px 2px var(--stc)}
@keyframes statusPing{0%{transform:scale(1);opacity:.6}75%,100%{transform:scale(3);opacity:0}}
.status-card-body{position:relative;flex:1;min-width:0;padding:12px 16px 12px 14px}
.status-card-label{font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.5);font-weight:700}
.status-card-value{font-family:'Cinzel',serif;font-size:.94rem;font-weight:800;color:var(--stc);transition:color .4s;letter-spacing:.02em}
.status-row-line{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:7px 0}
.status-row-line+.status-row-line{border-top:1px solid rgba(45,201,240,.14)}
.status-card-frac{display:flex;align-items:baseline;gap:1px}
.status-card-num{
  font-family:'Cinzel',serif;font-size:1.15rem;font-weight:900;line-height:1;color:#fff;
  text-shadow:0 0 12px color-mix(in srgb, var(--stc) 75%, transparent);
}
.status-card-slash{font-size:.9rem;color:rgba(255,255,255,.3);margin:0 1px}
.status-card-max{font-size:.85rem;font-weight:700;color:rgba(255,255,255,.42)}
.status-card-bar{height:4px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:8px}
.status-card-bar-fill{
  height:100%;border-radius:3px;background:linear-gradient(90deg,var(--stc),color-mix(in srgb, var(--stc) 55%, #fff));
  box-shadow:0 0 10px color-mix(in srgb, var(--stc) 75%, transparent);
  transition:width .7s cubic-bezier(.16,1,.3,1);
}
@media(prefers-reduced-motion:reduce){.status-ping-ring{animation:none;opacity:0}}

.status-runes{opacity:1!important}
.status-runes i{border-color:var(--cyan)!important;filter:drop-shadow(0 0 6px var(--cyan))!important;opacity:.75}
.status-scan{
  position:absolute;left:0;right:0;top:0;height:40%;pointer-events:none;
  background:linear-gradient(180deg,color-mix(in srgb, var(--stc) 20%, transparent),transparent);
  animation:statusScan 3.4s ease-in-out infinite;
}
@keyframes statusScan{
  0%{transform:translateY(-10%);opacity:0}
  15%{opacity:1}
  55%{transform:translateY(160%);opacity:.6}
  75%{opacity:0}
  100%{transform:translateY(-10%);opacity:0}
}
@media(prefers-reduced-motion:reduce){.status-scan{animation:none;display:none}}
.ftr-bar{
  border-top:1px solid rgba(255,255,255,.12);
  padding:22px 24px 24px;
  max-width:960px;margin:0 auto;
}
.ftr-copy{
  display:flex;align-items:center;justify-content:center;
  flex-wrap:wrap;gap:6px 0;
  font-size:.74rem;color:rgba(255,255,255,.48);
  line-height:1.8;text-align:center;
}
.ftr-copy a{
  color:rgba(255,255,255,.72);
  font-weight:600;
  transition:color .18s;
}
.ftr-copy a:hover{color:#fff}
.sep{margin:0 7px;opacity:.30}

/* ─── REVEAL ────────────────────────────────────────── */
.rv{opacity:0;transform:translateY(20px);transition:opacity .55s ease,transform .55s ease}
.rv.vis{opacity:1;transform:none}

/* ─── LANGUAGE ──────────────────────────────────────── */
[data-lang="bg"] .en,[data-lang="bg"] .ru,[data-lang="bg"] .ro,[data-lang="bg"] .ptbr{display:none!important}
[data-lang="en"] .bg,[data-lang="en"] .ru,[data-lang="en"] .ro,[data-lang="en"] .ptbr{display:none!important}
[data-lang="ru"] .bg,[data-lang="ru"] .en,[data-lang="ru"] .ro,[data-lang="ru"] .ptbr{display:none!important}
[data-lang="ro"] .bg,[data-lang="ro"] .en,[data-lang="ro"] .ru,[data-lang="ro"] .ptbr{display:none!important}
[data-lang="pt"] .bg,[data-lang="pt"] .en,[data-lang="pt"] .ru,[data-lang="pt"] .ro{display:none!important}

/* ─── RESPONSIVE ────────────────────────────────────── */
@media(max-width:768px){
  .sec{padding:52px 16px}
  .ftr-grid{padding:34px 16px 18px;gap:20px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
  .news-grid{grid-template-columns:1fr}
  .dl-grid{grid-template-columns:1fr}
  .si-table{grid-template-columns:1fr}
  .info-grid{grid-template-columns:repeat(2,1fr)}
  .si-tabs{flex-wrap:wrap}
  /* Perf: skip backdrop-blur on the ~90 rate rows on mobile GPUs — keep a slightly deeper tint instead */
  .si-row{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(2,8,22,.40)}
}
@media(max-width:480px){
  .info-grid{grid-template-columns:1fr 1fr}
  .part-grid{gap:12px}
  .part-card{width:140px;height:80px;padding:12px 14px}
  .si-tabs{gap:4px}
  .si-tab{font-size:.64rem;padding:6px 10px}
  .cd-card{padding:20px 10px}
  .ftr-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:360px){
  .part-card{width:120px;height:72px}
  .ftr-grid{grid-template-columns:1fr}
  .lang-opt{padding:3px 4px}
  .lang-opt img{width:16px;height:12px}
  .hdr-wrap{gap:4px}
}

/* ─── ACCESSIBILITY: keyboard focus ─────────────────── */
a:focus-visible,button:focus-visible,[role="button"]:focus-visible{
  outline:2px solid var(--cyan);outline-offset:3px;border-radius:4px;
}

/* ─── REDUCED MOTION ────────────────────────────────── */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}

/* ── Maintenance mode ── html.maint is toggled by maintenance.js,
   which runs synchronously before the rest of body paints ── */
#maintOverlay{display:none}
html.maint body>*:not(#maintOverlay){display:none!important}
html.maint #maintOverlay{
  display:flex!important;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;
  background:radial-gradient(ellipse at 50% 30%,#0a2040 0%,#03060f 75%);padding:24px;text-align:center;
}
.mo-box{max-width:480px}
.mo-lang{justify-content:center;margin-bottom:20px}
.mo-sigil{font-size:3rem;color:var(--cyan,#2dc9f0);text-shadow:0 0 30px rgba(45,201,240,.6);margin-bottom:18px;
  animation:moSpin 6s linear infinite}
@keyframes moSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.mo-title{font-family:'Cinzel',serif;font-size:2rem;letter-spacing:.1em;color:#fff;margin-bottom:14px;text-transform:uppercase}
.mo-box p{color:rgba(255,255,255,.75);line-height:1.6;margin-bottom:22px}
.mo-box a{display:inline-block;padding:12px 28px;border-radius:10px;background:var(--cyan,#2dc9f0);color:#031320;font-weight:800;text-decoration:none}

/* ─────────────────────────────────────────────────────────
   Player Portal (register/login/dashboard) — reuses the exact
   same variables, glass panels (.g1), and rune corners as the
   rest of the site so these pages feel like part of one real
   site instead of a bolted-on separate app.
   ───────────────────────────────────────────────────────── */
.pp-main{
  position:relative;z-index:2;min-height:100vh;
  padding:200px 24px 90px; /* header + logo intrinsic height (~99px) + the floating Discord widget below it (~56px) + margin */
  display:flex;flex-direction:column;align-items:center;
}
.pp-formwrap{max-width:460px;margin:0 auto}
.pp-formwrap.wide{max-width:820px}
.pp-card{padding:34px 32px}
.pp-eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--cyan);margin:0 0 6px;font-weight:700}
h1.pp-title{font-family:'Cinzel',serif;font-size:1.4rem;text-align:center;margin:0 0 6px;letter-spacing:.03em;color:#fff}
h2.pp-h2{font-family:'Cinzel',serif;font-size:1.05rem;margin:0 0 18px;letter-spacing:.02em;color:#fff}
p.pp-sub{text-align:center;color:rgba(255,255,255,.55);font-size:.85rem;margin:0 0 28px}
.pp-card label{display:block;margin-bottom:16px;font-size:.85rem;color:rgba(255,255,255,.8)}
.pp-card input{
  width:100%;margin-top:6px;padding:12px 14px;border-radius:9px;
  border:1px solid rgba(255,255,255,.14);background:rgba(3,12,26,.6);
  color:#fff;font-size:16px;font-family:inherit;
}
.pp-card input:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(45,201,240,.15)}
.pp-submit{
  width:100%;background:linear-gradient(135deg,var(--cyan),var(--blue));color:#031320;
  border:none;padding:13px 20px;border-radius:9px;font-weight:800;cursor:pointer;
  font-size:.9rem;letter-spacing:.02em;transition:filter .15s,transform .15s;
}
.pp-submit:hover{filter:brightness(1.1);transform:translateY(-1px)}
.pp-btn-ghost{background:transparent;border:1px solid rgba(255,255,255,.2);color:#fff;padding:9px 20px;border-radius:9px;font-size:.82rem;font-weight:700}
.pp-btn-ghost:hover{border-color:var(--cyan);color:var(--cyan)}
.pp-links{text-align:center;margin-top:20px;font-size:.82rem;color:rgba(255,255,255,.5)}
.pp-account-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px}
.pp-tiles{display:flex;gap:14px;margin-bottom:22px;flex-wrap:wrap}
.pp-tile{flex:1 1 120px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:16px;text-align:center}
.pp-tile b{display:block;font-size:1.4rem;font-family:'Cinzel',serif;color:var(--cyan)}
.pp-tile span{font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.5)}
table.pp-table{width:100%;border-collapse:collapse;font-size:.85rem}
table.pp-table th{text-align:left;color:rgba(255,255,255,.5);font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.14)}
table.pp-table td{padding:12px;border-bottom:1px solid rgba(255,255,255,.06)}
.pp-inline-form{max-width:380px}
@media(max-width:600px){
  .pp-main{padding:100px 16px 60px}
  .pp-card{padding:26px 20px}
}

/* Player dashboard — per-character detail cards */
.pp-char-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:18px 20px;margin-bottom:14px}
.pp-char-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.pp-char-name{font-family:'Cinzel',serif;font-weight:800;color:var(--cyan);font-size:1.05rem}
.pp-char-class{font-size:.78rem;color:rgba(255,255,255,.5)}
.pp-char-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08)}
.pp-char-grid>div span{display:block;font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.4);margin-bottom:2px}
.pp-char-grid>div b{font-size:.88rem;color:#fff}
.pp-char-stats{font-size:.82rem;color:rgba(255,255,255,.6);margin-bottom:10px}
.pp-char-stats b{color:#fff}
.pp-char-inv span{font-size:.78rem;color:rgba(255,255,255,.6)}
.pp-char-inv b{color:var(--cyan)}
.pp-bar{height:5px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden;margin:6px 0}
.pp-bar-fill{height:100%;background:linear-gradient(90deg,var(--cyan),var(--blue));border-radius:3px}
.pp-char-inv small{color:rgba(255,255,255,.35);font-size:.68rem}

/* Player Rankings page — tabs */
.pp-tabs{display:flex;gap:10px;margin-bottom:22px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:2px}
.pp-tab{padding:10px 4px;font-size:.85rem;font-weight:700;color:rgba(255,255,255,.5);border-bottom:2px solid transparent;margin-bottom:-1px}
.pp-tab.on{color:var(--cyan);border-bottom-color:var(--cyan)}
.pp-tab:hover{color:#fff}

