/* chli 的摸鱼小站 —— 蓝白 / 简洁明快 / 鲸鱼娘气质 */
:root{
  --sky-50:#f0f9ff; --sky-100:#e0f2fe; --sky-200:#bae6fd; --sky-300:#7dd3fc;
  --sky-500:#0ea5e9; --sky-600:#0284c7; --sky-700:#0369a1;
  --ink:#0f172a; --ink-2:#334155; --muted:#64748b; --line:#e2e8f0;
  --card:#ffffff; --radius:20px;
  --shadow:0 8px 30px rgba(2,132,199,.08);
  --shadow-hover:0 16px 40px rgba(2,132,199,.16);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; color:var(--ink);
  font:16px/1.75 system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;
  background:
    radial-gradient(900px 500px at 85% -10%, #bae6fd 0%, rgba(186,230,253,0) 60%),
    radial-gradient(700px 420px at 5% 0%, #e0f2fe 0%, rgba(224,242,254,0) 55%),
    linear-gradient(180deg,#f8fbff 0%,#ffffff 45%);
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}

/* ---------- 背景气泡 ---------- */
.bubbles{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.bubbles span{
  position:absolute;bottom:-80px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.9),rgba(125,211,252,.35));
  border:1px solid rgba(186,230,253,.8);
  animation:float linear infinite;
}
.bubbles span:nth-child(1){width:18px;height:18px;left:8%;animation-duration:26s;animation-delay:0s}
.bubbles span:nth-child(2){width:10px;height:10px;left:22%;animation-duration:20s;animation-delay:4s}
.bubbles span:nth-child(3){width:26px;height:26px;left:41%;animation-duration:32s;animation-delay:9s}
.bubbles span:nth-child(4){width:14px;height:14px;left:63%;animation-duration:24s;animation-delay:2s}
.bubbles span:nth-child(5){width:8px;height:8px;left:78%;animation-duration:18s;animation-delay:12s}
.bubbles span:nth-child(6){width:20px;height:20px;left:91%;animation-duration:29s;animation-delay:6s}
@keyframes float{
  0%{transform:translateY(0) translateX(0);opacity:0}
  10%{opacity:.9}
  50%{transform:translateY(-45vh) translateX(14px)}
  100%{transform:translateY(-105vh) translateX(-10px);opacity:0}
}

/* ---------- 顶栏 ---------- */
.topbar{
  position:relative;z-index:2;
  max-width:1080px;margin:0 auto;padding:22px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.brand{display:inline-flex;align-items:center;gap:10px;font-weight:650;letter-spacing:.2px}
.brand-whale{width:30px;height:30px;color:var(--sky-500);flex:none}
.topbar-meta{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13.5px}
.pill{
  padding:4px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);
  color:var(--sky-600);font-weight:600;font-variant-numeric:tabular-nums;
  box-shadow:0 2px 8px rgba(2,132,199,.06);
}

main{position:relative;z-index:2;max-width:1080px;margin:0 auto;padding:0 24px}

/* ---------- Hero ---------- */
.hero{
  display:grid;grid-template-columns:1.15fr .85fr;gap:34px;align-items:center;
  padding:34px 0 18px;
}
.greeting{
  display:inline-block;margin:0 0 14px;padding:5px 14px;border-radius:999px;
  background:var(--sky-100);color:var(--sky-700);font-size:13.5px;font-weight:600;
}
.hero h1{
  margin:0 0 16px;font-size:clamp(30px,4.4vw,46px);line-height:1.22;font-weight:750;
  letter-spacing:-.5px;
}
.hero h1::after{
  content:"";display:inline-block;width:10px;height:10px;margin-left:6px;border-radius:50%;
  background:linear-gradient(135deg,var(--sky-300),var(--sky-500));vertical-align:middle;
}
.lead{margin:0 0 18px;color:var(--ink-2);font-size:16.5px}
.quote{
  margin:0;padding-left:14px;border-left:3px solid var(--sky-200);
  color:var(--muted);font-size:14.5px;
}
.hero-figure{position:relative;display:grid;place-items:center}

.hero-figure::before{
  content:"";position:absolute;inset:-4% -6% -12%;z-index:0;filter:blur(8px);
  background:radial-gradient(closest-side,rgba(186,230,253,.75),rgba(224,242,254,.32) 58%,transparent 78%);
}
.hero-img{
  position:relative;z-index:1;width:min(100%,430px);height:auto;display:block;
  mix-blend-mode:multiply;
  -webkit-mask-image:radial-gradient(ellipse 72% 80% at 50% 52%,#000 58%,rgba(0,0,0,.72) 76%,transparent 100%);
  mask-image:radial-gradient(ellipse 72% 80% at 50% 52%,#000 58%,rgba(0,0,0,.72) 76%,transparent 100%);
  animation:floaty 9s ease-in-out infinite;
}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

.hero-figure .bubble{
  position:absolute;border-radius:50%;border:1.5px solid var(--sky-200);
  background:rgba(255,255,255,.7);
}
.hero-figure .b1{width:12px;height:12px;top:12%;right:14%;animation:bob 5s ease-in-out infinite}
.hero-figure .b2{width:8px;height:8px;top:26%;right:4%;animation:bob 6.5s ease-in-out infinite .8s}
.hero-figure .b3{width:16px;height:16px;bottom:14%;left:6%;animation:bob 7s ease-in-out infinite .4s}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

/* ---------- 状态板 ---------- */
.board{
  display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;
  margin:26px 0 34px;padding:18px 22px;
  background:rgba(255,255,255,.75);backdrop-filter:blur(8px);
  border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);
}
.board-item{display:flex;flex-direction:column;gap:2px}
.board-num{font-size:22px;font-weight:700;color:var(--sky-600);font-variant-numeric:tabular-nums;letter-spacing:-.5px}
.board-num small{font-size:13px;color:var(--muted);font-weight:600;margin-left:2px}
.board-label{font-size:12.5px;color:var(--muted)}
.board-bar{gap:8px}
.bar-head{display:flex;justify-content:space-between;font-size:12.5px;color:var(--muted)}
.bar-head b{color:var(--sky-600);font-variant-numeric:tabular-nums}
.bar{height:8px;border-radius:999px;background:var(--sky-100);overflow:hidden}
.bar i{
  display:block;height:100%;border-radius:999px;
  background:linear-gradient(90deg,var(--sky-300),var(--sky-500));
}

/* ---------- 工具区 ---------- */
.tools{padding-bottom:20px}
.tools-head{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}
.tools-head h2{margin:0;font-size:19px;font-weight:700;letter-spacing:-.2px}
.tools-sub{font-size:13px;color:var(--muted)}
.grid{
  display:grid;gap:16px;
  grid-template-columns:repeat(auto-fill,minmax(238px,1fr));
}
.card{
  display:flex;flex-direction:column;gap:8px;
  padding:20px;border-radius:var(--radius);
  background:var(--card);border:1px solid var(--line);
  box-shadow:var(--shadow);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
a.card:hover,a.card:focus-visible{
  transform:translateY(-4px);box-shadow:var(--shadow-hover);
  border-color:var(--sky-200);outline:none;
}
.card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.icon{
  display:grid;place-items:center;width:42px;height:42px;border-radius:14px;
  background:linear-gradient(160deg,var(--sky-50),var(--sky-100));
  border:1px solid rgba(186,230,253,.9);font-size:20px;line-height:1;
}
.tag{
  font-size:11.5px;font-weight:600;color:var(--sky-700);
  background:var(--sky-50);border:1px solid var(--sky-100);
  padding:2px 9px;border-radius:999px;
}
.card h3{margin:0;font-size:16.5px;font-weight:650;letter-spacing:-.2px}
.card p{margin:0;color:var(--muted);font-size:13.8px;line-height:1.65;flex:1}
.go{font-size:13px;font-weight:600;color:var(--sky-600)}
.card.is-soon{background:linear-gradient(180deg,#ffffff,#fbfdff);border-style:dashed;box-shadow:none}
.card.is-soon .go{color:#94a3b8}
.card-more{border-style:dashed;border-color:var(--sky-200);background:linear-gradient(180deg,var(--sky-50),#ffffff)}
.card-more .go{color:var(--sky-600)}

/* ---------- 页脚 ---------- */
footer{
  position:relative;z-index:2;max-width:1080px;margin:44px auto 0;padding:22px 24px 34px;
  border-top:1px solid var(--line);
  color:var(--muted);font-size:13px;
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;
}
footer .dot{color:var(--sky-300)}

/* ---------- 响应式 ---------- */
@media (max-width:820px){
  .hero{grid-template-columns:1fr;gap:8px;padding-top:16px;text-align:left}
  .hero-figure{order:-1;justify-items:start}
  .hero-img{width:min(80%,330px)}
  .board{grid-template-columns:1fr 1fr;gap:14px;padding:16px 18px}
  .board-bar{grid-column:1 / -1;order:3}
  .hide-sm{display:none}
  .topbar{padding:16px 18px}
  main{padding:0 18px}
  footer{padding:18px 18px 30px}
}
@media (max-width:420px){
  .grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .bubbles span,.hero-figure .bubble,.hero-img{animation:none}
  .card{transition:none}
}
