:root {
  color-scheme: light;
  --text: #263751;
  --muted: #7d8898;
  --blue: #4077ee;
  --blue-hover: #3264d8;
  --blue-soft: rgba(64, 119, 238, 0.08);
  --border: rgba(130, 151, 181, .28);
  --border-subtle: rgba(130, 151, 181, .16);
  --border-strong: rgba(130, 151, 181, .45);
  --danger: #e04b4b;
  --danger-soft: rgba(224, 75, 75, 0.08);
  --warn: #e68a00;
  --warn-soft: rgba(230, 138, 0, 0.08);
  --success: #1fa463;
  --success-soft: rgba(31, 164, 99, 0.08);
  --card-bg: rgba(255, 255, 255, 0.88);
  --card-bg-subtle: rgba(255, 255, 255, 0.65);
  --shadow-sm: 0 4px 16px rgba(38, 55, 81, 0.04);
  --shadow-md: 0 8px 30px rgba(38, 55, 81, 0.08);
  --shadow-lg: 0 16px 40px rgba(38, 55, 81, 0.12);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  min-height: 100svh;
  color: var(--text);
  background: #f4f7fa;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

button, input, select, textarea { font: inherit; outline: none; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }

.background {
  position: fixed;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: -1;
  background: linear-gradient(#f8fbff, #e5edf6 66%, #f6f7f8);
}

.cloud {
  position: absolute;
  border-radius: 50%;
  filter: blur(64px);
  will-change: transform;
}

.cloud--top {
  width: 680px;
  height: 340px;
  left: 35%;
  top: -180px;
  background: rgba(113, 146, 200, .42);
  animation: drift-top 16s ease-in-out infinite alternate;
}

.cloud--bottom {
  width: 520px;
  height: 380px;
  right: 5%;
  bottom: -150px;
  background: rgba(170, 195, 230, .35);
  animation: drift-bottom 20s ease-in-out infinite alternate;
}

@keyframes drift-top {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to { transform: translate3d(-40px, 30px, 0) scale(1.06); }
}

@keyframes drift-bottom {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to { transform: translate3d(30px, -25px, 0) scale(1.08); }
}
