/* AUTO-GENERATED — do not edit by hand.
 * Regenerate: python scripts/build_app_shell_bundle.py
 * Sources: assets/css/app_shell/platform/modules/welcome-empty-home/root/index.css, assets/css/app_shell/platform/modules/welcome-empty-home/shell-card/index.css, assets/css/app_shell/platform/modules/welcome-empty-home/body-hero/index.css
 */

/* === import from ./viewport.css (viewport.css) */
.home-welcome-root {
  /* 与壳层 token / app-shell--no-* 覆盖对齐，避免写死 118px 与真实顶底栏不一致 */
  --home-chrome: calc(var(--header-height, 70px) + var(--footer-height, 48px));
  --home-container-y: clamp(0.5rem, 2vw, 1.25rem);
  --welcome-h-cap: calc(100vh - var(--home-chrome) - 2 * var(--home-container-y) - 2.25rem);
  --welcome-h-cap: calc(100svh - var(--home-chrome) - 2 * var(--home-container-y) - 2.25rem);
  --welcome-h-cap: calc(100dvh - var(--home-chrome) - 2 * var(--home-container-y) - 2.25rem);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: min(var(--welcome-h-cap), 28rem);
  width: 100%;
  height: 100%;
  max-height: 100%;
  overflow: auto;
}

/* 欢迎页：主内容区尽量不滚动；min-height 防止高度链断裂时整页空白 */
.platform-page-scroll:has(.home-welcome-root) {
  overflow: auto;
  display: flex;
  flex-direction: column;
}

.platform-page-scroll:has(.home-welcome-root) > div {
  flex: 1 1 auto;
  min-height: 28rem;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.platform-page-scroll:has(.home-welcome-root) .mantine-Container-root {
  flex: 1 1 auto;
  min-height: 28rem;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.home-main-content:has(.home-welcome-root) {
  flex: 1 1 auto;
  min-height: 28rem;
  display: flex;
  flex-direction: column;
  height: 100%;
}



/* === import from ./shell.css (shell.css) */
.welcome-shell {
  flex: 1 1 auto;
  min-height: min(var(--welcome-h-cap), 28rem);
  height: 100%;
  max-height: 100%;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(0.5rem, 1.5vmin, 1rem) clamp(0.75rem, 2.5vw, 1.5rem);
  overflow: auto;
  box-sizing: border-box;
}




/* === import from ./card.css (card.css) */
.welcome-shell__card {
  position: relative;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  /* 相对主内容区宽度，勿用 92vw（会把侧栏算进视口，宽屏时卡片偏右、左侧灰边过大） */
  width: min(100%, 76rem, calc(var(--welcome-h-cap) * 16 / 9));
  max-width: 100%;
  max-height: var(--welcome-h-cap);
  /* 勿用 0：父级 flex 高度链偶发为 0 时会被压扁，再被 overflow:hidden 裁成空白 */
  min-height: min(var(--welcome-h-cap), 28rem);
  aspect-ratio: 16 / 9;
  height: auto;
  flex-shrink: 0;
  border-radius: 1.35rem;
  overflow: hidden;
  background: var(--panel, #ffffff);
  border: 1px solid color-mix(in srgb, var(--text0, #0f172a) 7%, transparent);
  box-shadow:
    0 1px 2px color-mix(in srgb, var(--text0, #0f172a) 5%, transparent),
    0 22px 50px -28px color-mix(in srgb, var(--brand1, #228be6) 28%, transparent);
  container-type: size;
  container-name: welcome-card;
}



/* === import from ./fill.css (fill.css) */
.welcome-shell__card-fill {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.welcome-shell__card-fill-blob {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 120%;
  height: 55%;
  border-radius: 50%;
  filter: blur(0px);
}

.welcome-shell__card-fill-blob--a {
  top: -18%;
  background: radial-gradient(
    ellipse 55% 50% at 50% 55%,
    color-mix(in srgb, var(--brand1, #228be6) 22%, transparent) 0%,
    transparent 72%
  );
}

.welcome-shell__card-fill-blob--b {
  bottom: -28%;
  height: 52%;
  background: radial-gradient(
    ellipse 48% 45% at 50% 100%,
    color-mix(in srgb, var(--brand1, #228be6) 14%, transparent) 0%,
    transparent 68%
  );
}

.welcome-shell__card-noise {
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0.055;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}



/* 主图与标题区 */

/* === import from ./layout.css (layout.css) */
.welcome-shell__body {
  position: relative;
  z-index: 1;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: clamp(0.22rem, 0.65vmin, 0.42rem);
  padding: clamp(0.85rem, 2.8vmin, 1.35rem) clamp(1.1rem, 3.5vw, 2.25rem)
    clamp(0.75rem, 2.2vmin, 1.1rem);
  overflow: hidden;
  animation: welcome-shell-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes welcome-shell-in {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.99);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.welcome-shell__intro,
.welcome-shell__foot {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.welcome-shell__intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(0.28rem, 0.85vmin, 0.5rem);
  flex-shrink: 0;
  margin-top: auto;
  padding-top: clamp(0.35rem, 1.2vmin, 0.65rem);
}

.welcome-shell__hero,
.welcome-shell__copy {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.welcome-shell__copy {
  justify-self: center;
}

.welcome-shell__foot {
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(0.45rem, 1.5vmin, 0.85rem);
  overflow: hidden;
  flex-shrink: 0;
  margin-bottom: auto;
  padding-bottom: clamp(0.35rem, 1.2vmin, 0.65rem);
}



/* === import from ./hero.css (hero.css) */
.welcome-shell__hero {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0;
  overflow: visible;
}

.welcome-shell__hero-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(0.12rem, 0.55vmin, 0.35rem);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.welcome-shell__hero-wordmark {
  margin: 0;
  padding: 0;
  color: #023456;
  font-weight: 800;
  letter-spacing: -0.045em;
  line-height: 1.05;
  text-align: center;
  white-space: nowrap;
  font-size: clamp(1.55rem, 2.2rem + 1.2cqi, 2.35rem);
}

.welcome-shell__mark {
  display: block;
  width: auto;
  height: auto;
  max-width: min(100%, 13.5rem, 38cqi);
  max-height: clamp(4.5rem, 14cqh, 7.5rem);
  margin-inline: auto;
  object-fit: contain;
  object-position: center center;
  filter: drop-shadow(0 8px 22px color-mix(in srgb, var(--brand1, #228be6) 14%, transparent));
}

@container welcome-card (max-height: 520px) {
  .welcome-shell__mark {
    max-width: min(100%, 11rem, 34cqi);
    max-height: clamp(3.75rem, 12cqh, 6.25rem);
  }

  .welcome-shell__hero-wordmark {
    font-size: clamp(1.35rem, 1.85rem, 2rem);
  }
}

@supports not (height: 1cqh) {
  .welcome-shell__mark {
    max-width: min(100%, 13.5rem, 42vw);
    max-height: clamp(4.5rem, 22vmin, 7.5rem);
  }

  .welcome-shell__hero-wordmark {
    font-size: clamp(1.55rem, 4.5vmin + 0.35rem, 2.35rem);
  }
}



/* === import from ./copy.css (copy.css) */
.welcome-shell__copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: clamp(0.28rem, 0.9vmin, 0.45rem);
}

.welcome-shell__headline {
  margin: 0;
  font-size: clamp(1.05rem, 1.35rem + 0.8cqi, 1.75rem);
  font-weight: 750;
  letter-spacing: -0.03em;
  line-height: 1.15;
  background: linear-gradient(
    118deg,
    var(--text0, #0f172a) 0%,
    color-mix(in srgb, var(--text0, #0f172a) 70%, var(--brand1, #228be6)) 42%,
    var(--brand1, #228be6) 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.welcome-shell__tagline {
  margin: 0;
  max-width: min(34rem, 100%);
  padding: 0 clamp(0.35rem, 1.5vw, 0.75rem);
  line-height: 1.55;
  font-size: clamp(0.82rem, 0.88rem + 0.35cqi, 0.98rem);
  color: color-mix(in srgb, var(--text0, #0f172a) 48%, var(--bg0, #fff));
}

@container welcome-card (max-height: 520px) {
  .welcome-shell__headline {
    font-size: clamp(0.98rem, 1.15rem, 1.45rem);
  }

  .welcome-shell__tagline {
    font-size: clamp(0.78rem, 0.84rem, 0.9rem);
    line-height: 1.45;
  }
}



/* === import from ./foot.css (foot.css) */
.welcome-shell__foot {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(0.45rem, 1.5vmin, 0.85rem);
  min-height: 0;
  width: 100%;
}

.welcome-shell__pillar-grid {
  width: 100%;
  max-width: min(54rem, 100%);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(0.65rem, 2vw, 1.1rem);
  padding-top: clamp(0.45rem, 1.4vmin, 0.85rem);
  border-top: 1px solid color-mix(in srgb, var(--text0, #0f172a) 8%, transparent);
}
