/* ==========================================================================
   花不弃庄园 · 基础排版与手机外壳
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
body{
  font-family:var(--font-sans);
  background:var(--linen);          /* 手机外壳外的背景 */
  color:var(--ink);
  font-size:14px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
input,textarea,select{font:inherit;color:inherit}
ul,ol{list-style:none}

/* ---- 手机外壳：PC 居中模拟手机；手机端全屏 ---- */
.phone{
  position:relative;
  width:100%;
  max-width:430px;
  min-height:100vh;
  margin:0 auto;
  background:var(--cream);
  overflow-x:hidden;
}
@media(min-width:480px){
  body{display:flex;justify-content:center;align-items:flex-start;padding:24px 0}
  .phone{
    min-height:calc(100vh - 48px);
    border-radius:36px;
    box-shadow:0 20px 60px rgba(61,52,42,.18);
    overflow:hidden;
  }
}

/* ---- 页面通用容器 ---- */
.page{padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 16px)}
.section{padding:var(--sp-6) var(--page-pad)}
.section-tight{padding:var(--sp-4) var(--page-pad)}

/* ---- 标题层级 ---- */
.h1{font-family:var(--font-serif);font-size:24px;font-weight:700;line-height:1.35;color:var(--ink)}
.h2{font-size:18px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:8px}
.h3{font-size:15px;font-weight:600;color:var(--ink)}
.muted{color:var(--ink-60)}
.tiny{font-size:12px;color:var(--ink-60)}
.serif{font-family:var(--font-serif)}

/* ---- 行尾省略 ---- */
.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.clamp-1{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* ---- 进入动画（克制） ---- */
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.fade-up{animation:fadeUp .4s ease both}
.fade-up:nth-child(2){animation-delay:.06s}
.fade-up:nth-child(3){animation-delay:.12s}
.fade-up:nth-child(4){animation-delay:.18s}
.fade-up:nth-child(5){animation-delay:.24s}
.fade-up:nth-child(6){animation-delay:.30s}

/* ---- 顶部状态栏占位（沉浸式 NavBar 用） ---- */
.statusbar-h{height:0}
@supports(padding:max(0px)){
  .immersive{padding-top:env(safe-area-inset-top)}
}
