/* ============================================================
   Startseite / Landing (#/)
   Hero mit Logo, Portal-Karten zu den Bereichen, Info + Discord.
   ============================================================ */

.landing-hero { text-align: center; padding: clamp(10px, 3vw, 30px) 0 8px; }
.landing-hero__logo {
  width: clamp(240px, 46vw, 440px); height: auto; margin: 0 auto 18px; display: block;
  filter: drop-shadow(0 0 30px rgba(255, 46, 151, 0.28)) drop-shadow(0 0 60px rgba(0, 229, 255, 0.18));
}
.landing-hero__eyebrow { font-family: var(--font-mono); font-size: 12px; letter-spacing: 3px; text-transform: uppercase; color: var(--cyan); }
.landing-hero__title {
  font-family: var(--font-display); font-weight: 900; text-transform: uppercase;
  font-size: clamp(28px, 5.5vw, 52px); line-height: 1; margin: 10px 0 12px;
}
.landing-hero__title .grad-text { filter: drop-shadow(0 0 22px rgba(255, 46, 151, 0.35)); }
.landing-hero__sub { color: var(--text-dim); font-size: 16.5px; line-height: 1.5; max-width: 60ch; margin: 0 auto; }

/* --- Portal-Karten ----------------------------------------- */
.portal-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; margin-bottom: 30px; }
.portal {
  display: flex; align-items: center; gap: 16px; padding: 18px 20px; border-radius: var(--radius);
  background: var(--card-strong); border: 1px solid var(--line); border-left: 3px solid var(--rowc, var(--cyan));
  cursor: var(--cur-pointer); transition: transform 0.18s, background 0.18s, border-color 0.18s, box-shadow 0.18s;
  position: relative; overflow: hidden;
}
.portal[data-class="GT3"] { --rowc: var(--gt3); }
.portal[data-class="GTE"] { --rowc: var(--gte); }
.portal[data-class="GT4"] { --rowc: var(--gt4); }
.portal::after {
  content: ''; position: absolute; inset: 0; pointer-events: none; opacity: 0.06; transition: opacity 0.18s;
  background: radial-gradient(ellipse 70% 80% at 0% 0%, var(--rowc, var(--cyan)), transparent 70%);
}
.portal:hover { transform: translateY(-4px); background: var(--card-hover); border-color: var(--line-strong); box-shadow: 0 16px 38px -18px rgba(0, 0, 0, 0.75); }
.portal:hover::after { opacity: 0.18; }
.portal:hover .portal__go { color: var(--rowc, var(--cyan)); transform: translateX(4px); }
.portal:hover .portal__title { color: var(--rowc, var(--cyan)); }
.portal__icon {
  flex-shrink: 0; width: 54px; height: 54px; display: grid; place-items: center; font-size: 26px;
  border-radius: 14px; background: rgba(8, 10, 18, 0.5); border: 1px solid var(--line);
}
.portal__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.portal__title { font-family: var(--font-display); font-weight: 700; font-size: 19px; transition: color 0.18s; }
.portal__desc { color: var(--text-dim); font-size: 13.5px; line-height: 1.45; }
.portal__go { margin-left: auto; font-size: 26px; font-weight: 700; color: var(--text-faint); transition: color 0.18s, transform 0.18s; align-self: center; }

/* --- Info + Discord ---------------------------------------- */
.landing-info { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 24px; }
.linfo { padding: 20px 22px; border-radius: var(--radius); background: var(--card); border: 1px solid var(--line); }
.linfo h3 { font-family: var(--font-display); font-weight: 700; font-size: 18px; margin-bottom: 8px; }
.linfo p { color: var(--text-dim); font-size: 14.5px; line-height: 1.5; }
.linfo b { color: var(--text); }
.linfo__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.cta-btn {
  display: inline-flex; align-items: center; gap: 9px; padding: 11px 20px;
  border-radius: 11px; color: #fff; font-weight: 700; font-size: 15px;
  transition: transform 0.16s, box-shadow 0.16s, filter 0.16s;
}
.cta-btn:hover { transform: translateY(-2px); filter: brightness(1.08); }
.cta-btn__ico { font-size: 17px; }
.cta-btn--discord { background: #5865f2; box-shadow: 0 8px 26px -8px #5865f2; }
.cta-btn--server { background: linear-gradient(120deg, #2bbd5e, #15924a); box-shadow: 0 8px 26px -8px #2bbd5e; }

.landing-credit { text-align: center; font-family: var(--font-mono); font-size: 12.5px; letter-spacing: 1px; color: var(--text-faint); padding: 8px 0 4px; }
.landing-credit b { color: var(--magenta-soft); font-weight: 700; }

/* --- Responsive -------------------------------------------- */
@media (max-width: 720px) {
  .landing-info { grid-template-columns: 1fr; }
  .portal { padding: 16px; gap: 13px; }
  .portal__icon { width: 46px; height: 46px; font-size: 22px; }
}
