:root {
  --bg-top: #f8ecd0;
  --bg-bottom: #d9efe8;
  --ink: #192633;
  --muted: #536678;
  --admin-a: #173d57;
  --admin-b: #256985;
  --admin-glow: rgba(138, 214, 255, 0.24);
  --workflow-a: #733510;
  --workflow-b: #c96e1d;
  --workflow-glow: rgba(255, 205, 118, 0.26);
  --shop-a: #4b3a0c;
  --shop-b: #9a7a19;
  --shop-glow: rgba(255, 222, 96, 0.26);
  --mall-a: #4f2416;
  --mall-b: #b9422c;
  --mall-glow: rgba(255, 132, 93, 0.26);
  --main-a: #0d6b61;
  --main-b: #19905d;
  --main-glow: rgba(123, 236, 192, 0.22);
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  font-family: "Microsoft YaHei UI", "PingFang SC", sans-serif;
  color: var(--ink);
  background:
    radial-gradient(900px 420px at 8% 0%, #fff1bf 0%, transparent 70%),
    radial-gradient(820px 480px at 100% 100%, #bfe5dd 0%, transparent 72%),
    linear-gradient(150deg, var(--bg-top), var(--bg-bottom));
}

.landing {
  width: min(1160px, calc(100vw - 40px));
  margin: 0 auto;
  min-height: 100vh;
  display: grid;
  align-content: center;
  gap: 26px;
  padding: 42px 0;
}

.tag {
  margin: 0 0 10px;
  font-size: 12px;
  letter-spacing: 0.18em;
  color: #295567;
}

h1 {
  margin: 0;
  font-size: clamp(34px, 5vw, 52px);
  line-height: 1.06;
}

.subtitle {
  margin: 14px 0 0;
  max-width: 920px;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.75;
}

.hero-tips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.hero-tips span {
  padding: 9px 13px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(25, 38, 51, 0.08);
  color: #274152;
  font-size: 13px;
  backdrop-filter: blur(10px);
}

.entry-groups {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  align-items: start;
}

.entry-group {
  min-width: 0;
  padding: 14px;
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.32);
  border: 1px solid rgba(25, 38, 51, 0.08);
  box-shadow: 0 16px 34px rgba(18, 34, 46, 0.1);
  backdrop-filter: blur(12px);
}

.group-heading {
  min-height: 66px;
  padding: 14px 16px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.62);
  border: 1px solid rgba(25, 38, 51, 0.08);
  margin-bottom: 14px;
}

.group-heading span,
.group-heading small {
  display: block;
}

.group-heading span {
  font-size: 17px;
  font-weight: 800;
  color: #203241;
}

.group-heading small {
  margin-top: 5px;
  color: var(--muted);
  line-height: 1.42;
}

.group-grid {
  display: grid;
  gap: 14px;
  min-width: 0;
}

.entry-card {
  position: relative;
  display: block;
  min-height: 238px;
  padding: 20px;
  border-radius: 24px;
  color: #fff;
  text-decoration: none;
  overflow: hidden;
  background: linear-gradient(140deg, #24384a, #46667a);
  box-shadow: 0 14px 26px rgba(18, 34, 46, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.17);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.entry-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(125deg, rgba(255, 255, 255, 0.18), transparent 36%),
    radial-gradient(circle at top right, rgba(255, 255, 255, 0.16), transparent 34%);
  pointer-events: none;
}

.entry-card::after {
  content: "";
  position: absolute;
  width: 160px;
  height: 160px;
  right: -38px;
  top: -48px;
  border-radius: 50%;
  pointer-events: none;
}

.entry-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 36px rgba(18, 34, 46, 0.22);
}

.entry-card.admin {
  background: linear-gradient(140deg, var(--admin-a), var(--admin-b));
}

.entry-card.admin::after {
  background: var(--admin-glow);
}

.entry-card.workflow {
  background: linear-gradient(140deg, var(--workflow-a), var(--workflow-b));
}

.entry-card.workflow::after {
  background: var(--workflow-glow);
}

.entry-card.shop {
  background: linear-gradient(140deg, var(--shop-a), var(--shop-b));
}

.entry-card.shop::after {
  background: var(--shop-glow);
}

.entry-card.mall {
  background: linear-gradient(140deg, var(--mall-a), var(--mall-b));
}

.entry-card.mall::after {
  background: var(--mall-glow);
}

.entry-card.main {
  background: linear-gradient(140deg, var(--main-a), var(--main-b));
}

.entry-card.main::after {
  background: var(--main-glow);
}

.entry-kicker {
  position: relative;
  display: block;
  font-size: 11px;
  letter-spacing: 0.14em;
  opacity: 0.84;
  z-index: 1;
}

.entry-role {
  position: relative;
  display: inline-flex;
  margin-top: 12px;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.18);
  font-size: 12px;
  letter-spacing: 0.06em;
  z-index: 1;
}

.entry-path {
  position: relative;
  display: inline-flex;
  max-width: 100%;
  margin-top: 10px;
  padding: 5px 8px;
  border-radius: 10px;
  background: rgba(10, 18, 26, 0.24);
  border: 1px solid rgba(255, 255, 255, 0.16);
  font-size: 11px;
  font-family: "Consolas", "SFMono-Regular", monospace;
  letter-spacing: 0.01em;
  overflow-wrap: anywhere;
  z-index: 1;
}

.entry-card strong {
  position: relative;
  display: block;
  margin-top: 14px;
  font-size: 24px;
  line-height: 1.15;
  z-index: 1;
}

.entry-note {
  position: relative;
  display: block;
  margin-top: 12px;
  line-height: 1.62;
  font-size: 14px;
  opacity: 0.95;
  z-index: 1;
}

.entry-list {
  position: relative;
  display: block;
  margin-top: 8px;
  padding-left: 16px;
  font-size: 13px;
  line-height: 1.48;
  opacity: 0.9;
  z-index: 1;
}

.entry-list::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
}

@media (max-width: 1080px) {
  .landing {
    width: min(100vw - 28px, 980px);
  }

  .entry-groups {
    grid-template-columns: 1fr;
  }

  .group-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .workflow-center .group-grid {
    grid-template-columns: minmax(0, 0.5fr);
  }
}

@media (max-width: 720px) {
  .landing {
    padding: 28px 0;
  }

  .group-grid,
  .workflow-center .group-grid {
    grid-template-columns: 1fr;
  }

  .entry-card {
    min-height: auto;
  }

  .hero-tips {
    gap: 9px;
  }
}