/* ══════════════════════════════════════════════════════════════
   艾露猫的小屋 · 主站
   方向：块面 + 大圆角 + 克制回弹（Sakura / Sky / Lemon）
   主色 樱红 #FF3B6B　强调 天蓝 #00A3FF　第三 柠檬 #FFE44D
   展示字：系统中文字体（黑体族）　标签数字：IBM Plex Mono
   ══════════════════════════════════════════════════════════════ */

@font-face {
  font-family: "IBM Plex Mono";
  src: url("fonts/ibm-plex-mono-latin-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122, U+2190-2193;
}

@font-face {
  font-family: "IBM Plex Mono";
  src: url("fonts/ibm-plex-mono-latin-500.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122, U+2190-2193;
}

/* ── 令牌 ─────────────────────────────────────────────────── */

:root {
  /* 每种彩色只有一个值，填充与文字共用；深底配白字，浅底（柠檬）配墨字 */
  --sakura: #e11945;
  --sky: #0073c0;
  --lemon: #ffe44d;

  --paper: #fff7f8;
  --surface: #ffffff;
  --ink: #14161c;
  --ink-2: #565b66;
  --ink-3: #8a909c;
  --line: rgba(20, 22, 28, .08);
  --line-2: rgba(20, 22, 28, .16);
  --veil: #f4f5f8;

  --sans: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans SC", system-ui, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;

  --r-xl: 28px;
  --r-lg: 20px;
  --r-md: 14px;
  --r-sm: 10px;
  --pill: 999px;

  --sh-sm: 0 2px 10px -4px rgba(20, 22, 28, .10);
  --sh-md: 0 14px 34px -18px rgba(214, 25, 76, .30);

  --bounce: cubic-bezier(.34, 1.56, .64, 1);
  --out: cubic-bezier(.16, 1, .3, 1);

  --maxw: 1080px;
  --pad: clamp(18px, 4.5vw, 36px);
}

/* ── 基底 ─────────────────────────────────────────────────── */

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background:
    radial-gradient(900px 460px at 50% -8%, #ffe8ee 0%, rgba(255, 232, 238, 0) 72%),
    var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.65;
  letter-spacing: .01em;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

a { color: inherit; text-decoration: none; }

::selection { background: var(--sakura); color: #fff; }

:focus-visible {
  outline: 3px solid var(--sakura);
  outline-offset: 3px;
  border-radius: 6px;
}

/* ── 容器 ─────────────────────────────────────────────────── */

.site {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--pad) 40px;
  /* 贴底布局：内容不满一屏时把页脚推到视口底部 */
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
}

.list { flex: 1; }

/* ── 顶栏 ─────────────────────────────────────────────────── */

.bar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  padding: 22px 0 clamp(20px, 3.6vw, 30px);
}

.bar-nav {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--mono);
  font-size: 11.5px;
  letter-spacing: .04em;
  color: var(--ink-3);
}

.bar-nav a { color: var(--ink-2); transition: color .18s ease; }
.bar-nav a:hover { color: var(--sakura); }
.bar-slash { color: var(--line-2); }
.bar-host { color: var(--ink-3); }

/* ── 首屏色块 ─────────────────────────────────────────────── */

.hero {
  position: relative;
  overflow: hidden;
  background: var(--sakura);
  border-radius: var(--r-xl);
  padding: clamp(30px, 4.8vw, 56px);
  color: #fff;
  isolation: isolate;
}

/* 柔和圆斑：只做体积，不抢内容 */
.hero::before {
  content: "";
  position: absolute;
  width: 340px;
  height: 340px;
  right: -100px;
  top: -120px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .10);
  pointer-events: none;
  z-index: -1;
}

.hero-tag {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 5px 12px;
  border-radius: var(--pill);
  background: #fff;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink);
}

.tag-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--sakura);
}

.hero-title {
  margin: 20px 0 0;
  font-size: clamp(34px, 6.6vw, 68px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.04em;
}

.hero-em {
  display: inline-block;
  /* 补偿 .hero-title 的负字距，让左右留白看起来等宽 */
  margin-left: .16em;
  padding: .05em .2em .15em;
  border-radius: .26em;
  line-height: 1.14;
  background: var(--lemon);
  color: var(--ink);
}

.hero-lede {
  margin: 16px 0 0;
  max-width: 40ch;
  font-size: clamp(15px, 1.7vw, 17px);
  line-height: 1.75;
  letter-spacing: .01em;
  color: rgba(255, 255, 255, .92);
}

/* ── 分节标题 ─────────────────────────────────────────────── */

.list { margin-top: clamp(34px, 6vw, 58px); }

.sec-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}

.sec-head h2 {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -.01em;
}

.sec-count {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink-3);
}

/* ── 卡片 ─────────────────────────────────────────────────── */

.cards {
  display: grid;
  /* 条目会继续加，列数交给容器自己算 */
  grid-template-columns: repeat(auto-fit, minmax(272px, 1fr));
  gap: 14px;
  margin-top: 14px;
}

.card {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  padding: 20px 22px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-sm);
  transition:
    transform .26s var(--bounce),
    box-shadow .26s var(--out),
    border-color .2s ease;
}

a.card:hover,
a.card:focus-visible {
  transform: translateY(-3px) scale(1.012);
  box-shadow: var(--sh-md);
  border-color: rgba(225, 25, 69, .25);
}

.card-icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 15px;
  transition: transform .26s var(--bounce);
}

a.card:hover .card-icon { transform: scale(1.06) rotate(-3deg); }

/* 实心色块 + 纯色文字：深底（樱红 / 天蓝）白字，浅底（柠檬）墨字 */
.i-sakura { background: var(--sakura); color: #fff; }
.i-sky { background: var(--sky); color: #fff; }
.i-lemon { background: var(--lemon); color: var(--ink); }

.card-main { flex: 1; min-width: 0; }

.card-top {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 5px;
}

.card-top h3 {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -.015em;
}

.card-main p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.68;
  color: var(--ink-2);
}

.card-go {
  flex: none;
  align-self: center;
  font-size: 17px;
  color: var(--ink-3);
  transition: transform .24s var(--bounce), color .2s ease;
}

a.card:hover .card-go {
  transform: translateX(4px);
  color: var(--sakura);
}

.card-off {
  background: #fcfcfd;
  box-shadow: none;
}

.card-off .card-top h3 { color: var(--ink-2); }

/* ── 标签 ─────────────────────────────────────────────────── */

.pill {
  flex: none;
  padding: 3px 10px;
  border-radius: var(--pill);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .04em;
  line-height: 1.6;
}

.pill-live { background: var(--sky); color: #fff; }
.pill-soon { background: #dde0e7; color: #464b56; }

/* ── 页脚 ─────────────────────────────────────────────────── */

.foot {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: clamp(36px, 6vw, 60px);
  padding-top: 16px;
  border-top: 1px solid var(--line);
  font-size: 12px;
  color: var(--ink-3);
}

.foot a { color: var(--ink-2); transition: color .18s ease; }
.foot a:hover { color: var(--sakura); }
.foot-sep { color: var(--line-2); }

/* ── 入场 ─────────────────────────────────────────────────── */

@keyframes rise {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}

.bar,
.hero-tag,
.hero-title,
.hero-lede,
.sec-head,
.card,
.foot {
  animation: rise .58s var(--out) both;
}

.bar { animation-delay: .02s; }
.hero-tag { animation-delay: .08s; }
.hero-title { animation-delay: .14s; }
.hero-lede { animation-delay: .2s; }
.sec-head { animation-delay: .26s; }
.card:nth-child(1) { animation-delay: .32s; }
.card:nth-child(2) { animation-delay: .38s; }
.card:nth-child(3) { animation-delay: .44s; }
.foot { animation-delay: .5s; }

/* ── 响应式 ───────────────────────────────────────────────── */

@media (max-width: 760px) {
  .cards { grid-template-columns: 1fr; }
  .card { padding: 18px; }
}

@media (max-width: 620px) {
  .hero::before { display: none; }
  .foot { gap: 12px; }
  .foot-sep { display: none; }
}

@media (max-width: 460px) {
  .bar-nav .bar-host { display: none; }
  .bar-slash { display: none; }
}

/* ── 动效降级 ─────────────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-delay: 0ms !important;
    transition-duration: .001ms !important;
  }
}
