/* Icecrown Citadel / Arthas theme
   Drop-in replacement for the original palette + adds frost, runes, mist, and subtle snow.
*/

:root{
  --void: #02040a;
  --obsidian: rgba(10,16,28,.92);
  --ice-0: #eaf6ff;
  --ice-1: #bfe7ff;
  --ice-2: #8fd3ff;
  --ice-3: #4aa3e6;
  --rune: #6bbcff;
  --steel: rgba(140,190,255,.18);
  --steel-2: rgba(140,190,255,.12);
  --frost: rgba(120,200,255,.18);
  --frost-2: rgba(120,200,255,.10);
  --shadow: rgba(0,0,0,.78);
  --scourge: rgba(0,255,150,.10);
  --blood: rgba(120,0,0,.18);
}

* { box-sizing: border-box; font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }

body {
  margin: 0;
  color: var(--ice-0);
  background: var(--void);
}

/* Northrend sky: cold void + rune glow + aurora bands */
.bg{
  position: fixed;
  inset: 0;
  background:
    radial-gradient(circle at 50% 25%, rgba(75,155,230,.18), rgba(0,0,0,.96)),
    radial-gradient(circle at 18% 18%, rgba(160,235,255,.10), transparent 58%),
    radial-gradient(circle at 82% 62%, rgba(80,160,240,.08), transparent 62%),
    linear-gradient(180deg, rgba(5,10,22,.0), rgba(5,10,22,.55));
  filter: saturate(1.06) contrast(1.02);
  overflow: hidden;
}

/* Rune lattice + subtle film grain */
.bg::before{
  content:"";
  position:absolute;
  inset:-30%;
  pointer-events:none;
  background:
    /* rune grid */
    repeating-linear-gradient(90deg, rgba(140,200,255,.035) 0 1px, transparent 1px 36px),
    repeating-linear-gradient(0deg,  rgba(140,200,255,.028) 0 1px, transparent 1px 44px),
    /* aurora ribbons */
    radial-gradient(1200px 500px at 20% 10%, rgba(120,220,255,.10), transparent 60%),
    radial-gradient(900px 420px at 80% 12%, rgba(100,180,255,.07), transparent 60%),
    /* grain */
    repeating-linear-gradient(135deg,
      rgba(255,255,255,.012) 0 2px,
      rgba(0,0,0,.012) 2px 4px
    );
  opacity: .85;
  transform: rotate(-2deg);
  animation: runeDrift 22s linear infinite;
}

/* Mist + snow specks */
.bg::after{
  content:"";
  position:absolute;
  inset:-40%;
  pointer-events:none;
  background:
    radial-gradient(circle at 30% 35%, rgba(210,245,255,.08), transparent 55%),
    radial-gradient(circle at 70% 55%, rgba(140,215,255,.06), transparent 58%),
    radial-gradient(circle at 45% 80%, rgba(140,215,255,.04), transparent 60%),
    /* snow */
    radial-gradient(circle, rgba(255,255,255,.18) 0 1px, transparent 1px) 0 0/120px 120px,
    radial-gradient(circle, rgba(255,255,255,.12) 0 1px, transparent 1px) 20px 30px/180px 180px,
    radial-gradient(circle, rgba(255,255,255,.10) 0 1px, transparent 1px) 70px 10px/220px 220px;
  mix-blend-mode: screen;
  opacity: .6;
  animation: mist 14s ease-in-out infinite, snowFall 18s linear infinite;
}

@keyframes runeDrift{
  0%{ transform: translate3d(0,0,0) rotate(-2deg); }
  50%{ transform: translate3d(-2.5%, 1.5%, 0) rotate(-2deg); }
  100%{ transform: translate3d(0,0,0) rotate(-2deg); }
}

@keyframes mist{
  0%{ filter: blur(0px); transform: translate3d(0,0,0) scale(1); }
  50%{ filter: blur(0.6px); transform: translate3d(1.5%, -1.2%, 0) scale(1.02); }
  100%{ filter: blur(0px); transform: translate3d(0,0,0) scale(1); }
}

@keyframes snowFall{
  0%{ background-position: 0 0, 20px 30px, 70px 10px; }
  100%{ background-position: 0 260px, 20px 360px, 70px 420px; }
}

.wrap{
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 28px 18px 50px;
}

.topbar{
  width: min(880px, 94vw);
  display:flex;
  align-items:center;
  justify-content: space-between;
  margin-bottom: 18px;
}

.brand{ display:flex; align-items:center; gap: 10px; }

.brand-icon{
  width: 34px; height: 34px; display:grid; place-items:center;
  border-radius: 10px;
  background: rgba(120,200,255,.18);
  color: var(--ice-1);
  box-shadow: 0 0 0 1px rgba(140,190,255,.16), 0 10px 30px rgba(80,160,240,.10);
}

.brand-name{ font-weight: 800; letter-spacing: .2px; }
.brand-sub{ font-size: 12px; opacity: .72; margin-top: 1px; }

.nav{ display:flex; gap: 16px; }

.navlink{
  color: rgba(230,245,255,.78);
  text-decoration: none;
  padding: 8px 12px;
  border-radius: 10px;
  background: rgba(120,180,255,.06);
  border: 1px solid rgba(140,190,255,.10);
  backdrop-filter: blur(6px);
}
.navlink:hover{
  background: rgba(120,180,255,.12);
  border-color: rgba(140,190,255,.18);
}

/* Icecrown card: obsidian + runic edge + cold glow */
.card{
  width: min(420px, 94vw);
  background: var(--obsidian);
  border-radius: 14px;
  box-shadow:
    0 30px 80px var(--shadow),
    0 0 40px rgba(80,160,240,.10);
  border: 1px solid rgba(140,190,255,.10);
  overflow:hidden;
  position: relative;
}

/* Runic border illusion */
.card::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius: 14px;
  padding: 1px;
  background:
    linear-gradient(180deg, rgba(185,235,255,.35), rgba(80,160,240,.18) 55%, rgba(10,16,28,0) 100%),
    linear-gradient(90deg, rgba(110,190,255,.22), rgba(255,255,255,.10), rgba(110,190,255,.22));
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  opacity: .9;
  pointer-events:none;
}

.card-accent{
  height: 3px;
  background: linear-gradient(90deg, var(--rune), var(--ice-1), var(--rune));
  box-shadow: 0 0 18px rgba(120,200,255,.25);
}

.card-header{
  text-align:center;
  padding: 22px 22px 10px;
}

.card-logo{
  width: 46px; height: 46px; border-radius: 16px;
  display:grid; place-items:center;
  margin: 0 auto 10px;
  background: rgba(120,200,255,.18);
  color: var(--ice-1);
  font-size: 20px;
  box-shadow:
    0 0 0 1px rgba(140,190,255,.16),
    0 0 26px rgba(120,200,255,.10);
}

h1{
  margin: 0;
  font-size: 24px;
  letter-spacing: .3px;
  text-shadow: 0 0 22px rgba(120,200,255,.14);
}

.card-header p{
  margin: 8px 0 0;
  opacity:.74;
  font-size: 13px;
}

.form{ padding: 8px 22px 22px; }

label{
  display:block;
  margin-top: 14px;
  font-size: 12px;
  font-weight: 700;
  opacity: .88;
}

.field{
  margin-top: 7px;
  display:flex;
  align-items:center;
  gap: 10px;
  background: rgba(5,10,20,.55);
  border: 1px solid rgba(140,190,255,.18);
  border-radius: 10px;
  padding: 10px 12px;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.25);
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.field:focus-within{
  border-color: rgba(160,225,255,.34);
  box-shadow:
    inset 0 0 0 1px rgba(0,0,0,.25),
    0 0 0 3px rgba(110,190,255,.14),
    0 10px 30px rgba(80,160,240,.10);
  background: rgba(8,14,28,.62);
}

.icon{ width: 18px; opacity: .78; font-size: 14px; }

input{
  width:100%;
  border: none;
  outline: none;
  background: transparent;
  color: var(--ice-0);
  font-size: 14px;
}

input::placeholder{ color: rgba(200,220,255,.35); }

.btn{
  width:100%;
  margin-top: 18px;
  padding: 12px 14px;
  border: none;
  border-radius: 10px;
  background: linear-gradient(180deg, var(--ice-2), var(--ice-3));
  color: #020814;
  font-weight: 900;
  cursor:pointer;
  box-shadow:
    0 12px 30px rgba(80,160,240,.14),
    0 0 0 1px rgba(140,190,255,.16);
  transition: transform .08s ease, filter .12s ease, box-shadow .12s ease;
}

.btn:hover{
  filter: brightness(1.08);
  box-shadow:
    0 14px 38px rgba(80,160,240,.18),
    0 0 0 1px rgba(160,225,255,.22);
}

.btn:active{
  transform: translateY(1px);
}

.msg{
  margin-top: 14px;
  text-align:center;
  font-size: 13px;
  padding: 10px 12px;
  border-radius: 10px;
  backdrop-filter: blur(6px);
}

.msg.ok{
  color: #caffdf;
  background: var(--scourge);
  border: 1px solid rgba(0,255,150,.20);
}

.msg.err{
  color: #ffd0d0;
  background: var(--blood);
  border: 1px solid rgba(190,40,40,.26);
}

.footer{
  margin-top: 26px;
  height: 44px; /* reserved space for logo */
  width: min(420px, 94vw);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity: .65;
}
