*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-body); font-size:var(--fs-base); line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{margin:0; line-height:1.3; text-wrap:balance}
p,ul,ol{margin:0}
a{color:var(--blue); text-decoration:none}
button{font:inherit; cursor:pointer}
:focus-visible{outline:3px dashed var(--blue); outline-offset:3px}
img,svg{max-width:100%; height:auto}

.en{font-family:var(--font-en); font-weight:400}
.mono{font-family:var(--font-mono)}
.soft{color:var(--soft)}
.small{font-size:var(--fs-sm)}

.wrap{
  max-width:640px; margin:0 auto;
  padding:16px 16px calc(var(--tabbar-h) + 28px + env(safe-area-inset-bottom, 0px));
  padding-left:calc(16px + env(safe-area-inset-left, 0px));
  padding-right:calc(16px + env(safe-area-inset-right, 0px));
  display:flex; flex-direction:column; gap:var(--gap);
}
.scroll-x{overflow-x:auto}

@media (prefers-reduced-motion:reduce){
  *{transition:none !important; animation:none !important}
}

/* ---- 手机适配 ---- */
html{
  -webkit-text-size-adjust:100%;      /* 横竖屏切换时 iOS 不要自作主张放大字号 */
  overscroll-behavior-y:none;         /* 关掉整页橡皮筋，避免误触发下拉刷新 */
}
body{
  -webkit-tap-highlight-color:transparent;   /* 去掉点按时的蓝色方块 */
}
button, .btn, .pill, .mv, .tabbar a, summary{
  touch-action:manipulation;          /* 去掉 300ms 双击缩放延迟 */
}
/* iOS 规则：输入框字号 < 16px 时聚焦会自动放大整页，且退不回来 */
input, select, textarea{ font-size:16px }
/* 顶栏也躲开刘海（横屏时左右会有安全区） */
.topbar{
  padding-left:calc(16px + env(safe-area-inset-left, 0px));
  padding-right:calc(16px + env(safe-area-inset-right, 0px));
}
/* 小屏收窄一点内边距，让内容多占地方 */
@media (max-width:380px){
  :root{ --pad:14px }
  main{ padding-left:12px; padding-right:12px }
}
