/* 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 {
  --home-chrome: 118px;
  --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;
  width: 100%;
  min-height: calc(100vh - var(--home-chrome) - 2 * var(--home-container-y));
  min-height: calc(100svh - var(--home-chrome) - 2 * var(--home-container-y));
  min-height: calc(100dvh - var(--home-chrome) - 2 * var(--home-container-y));
}



/* === import from ./shell.css (shell.css) */
.welcome-shell {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(0.5rem, 1.8vmin, 1.25rem) clamp(0.65rem, 2.5vw, 1.5rem);
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}




/* === import from ./card.css (card.css) */
.welcome-shell__card {
  position: relative;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  width: min(94vw, 80rem, calc(var(--welcome-h-cap) * 16 / 9));
  max-width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  border-radius: 1.35rem;
  overflow: hidden;
  background: var(--bg0, #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%;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto auto;
  align-content: stretch;
  padding: clamp(0.65rem, 2vmin, 1.1rem) clamp(1rem, 3.5vw, 2.25rem)
    clamp(0.55rem, 1.8vmin, 1rem);
  gap: clamp(0.35rem, 1.2vmin, 0.75rem);
  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);
  }
}



/* === import from ./hero.css (hero.css) */
.welcome-shell__hero {
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: clamp(0.15rem, 0.8vmin, 0.5rem);
}

.welcome-shell__hero-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  /* 主图与字标尽量贴近 */
  gap: clamp(0, 0.22cqh, 0.12rem);
  min-height: 0;
  max-width: 100%;
}

.welcome-shell__hero-wordmark {
  margin: 0;
  padding: 0;
  margin-top: -0.06em;
  color: #023456;
  font-weight: 800;
  letter-spacing: -0.045em;
  line-height: 1.05;
  text-align: center;
  white-space: nowrap;
  /* 与卡片同容器：用 cqi 缩放；下限须大于「欢迎回来」上限，保证始终更大 */
  font-size: clamp(1.95rem, 2.75cqi + 0.72rem, 2.9rem);
}

@supports not (height: 1cqh) {
  .welcome-shell__hero-stack {
    gap: clamp(0, 0.35vmin, 0.12rem);
  }

  .welcome-shell__hero-wordmark {
    font-size: clamp(1.95rem, 5.5vmin + 0.45rem, 2.9rem);
  }
}

.welcome-shell__mark {
  width: auto;
  max-width: min(86cqi, 34rem, 92%);
  max-height: min(50cqh, 14rem);
  height: auto;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 10px 28px color-mix(in srgb, var(--brand1, #228be6) 16%, transparent));
}

@supports not (height: 1cqh) {
  .welcome-shell__mark {
    max-width: min(86%, 34rem);
    max-height: min(30vmin, 14rem);
  }
}



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

.welcome-shell__headline {
  margin: 0;
  /* 小于主图下项目名称字标；与字标同用容器 inline 百分比便于对比 */
  font-size: clamp(1.05rem, 1.75cqi + 0.48rem, 1.85rem);
  font-weight: 750;
  letter-spacing: -0.03em;
  line-height: 1.12;
  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(36rem, 92%);
  padding: 0 clamp(0.35rem, 1.5vw, 0.75rem);
  line-height: 1.55;
  font-size: clamp(0.85rem, 1.6cqw + 0.35rem, 1rem);
  color: color-mix(in srgb, var(--text0, #0f172a) 48%, var(--bg0, #fff));
}



/* === 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: min-content;
}

.welcome-shell__pillar-grid {
  width: 100%;
  max-width: min(54rem, 100%);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(0.7rem, 2.2vw, 1.25rem);
  padding-top: clamp(0.5rem, 1.8vmin, 0.95rem);
  border-top: 1px solid color-mix(in srgb, var(--text0, #0f172a) 8%, transparent);
}
