html {
  /* ===== CSS 变量系统（设计令牌）===== */
  --color-primary: #4BB596;
  --color-primary-light: #6DD4B0;
  --color-primary-dark: #38956B;
  
  --color-accent: #FF6B6B;
  --color-accent-light: #FF8E8E;
  
  --color-text: #2D3436;
  --color-text-secondary: #636E72;
  --color-text-tertiary: #B2BEC3;
  
  --color-bg: #FFFFFF;
  --color-bg-secondary: #F8F9FA;
  --color-bg-hover: #F0F2F5;
  
  --color-border: #DFE6E9;
  --color-shadow: rgba(0, 0, 0, 0.08);
  --color-shadow-hover: rgba(0, 0, 0, 0.15);
  
  /* 深色模式 */
  --color-bg-dark: #0D1117;
  --color-text-dark: #C9D1D9;
  --color-text-secondary-dark: #8B949E;
  --color-border-dark: #3B434B;
  --color-shadow-dark: rgba(0, 0, 0, 0.3);
  
  /* 代码块和表单 */
  --color-code-bg: #f5f5f5;
  --color-code: #d63384;
  --color-input-bg: white;
  
  /* 间距系统 */
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 12px;
  --space-lg: 16px;
  --space-xl: 24px;
  --space-xxl: 32px;
  
  /* 圆角半径 */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  
  /* 过渡时间 */
  --transition-fast: 150ms ease-out;
  --transition-normal: 300ms ease;
  --transition-smooth: 500ms ease-out;
  
  /* ===== 基础样式 ===== */
  color: var(--color-text);
  background: var(--color-bg);
  scroll-behavior: smooth;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-family: 'Segoe UI', -apple-system, system-ui, Helvetica, 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', sans-serif;
  overflow-y: overlay;
  font-size: 16px;
  line-height: 1.6;
}
html[transition] {
  transition: all 500ms ease;
}
html {
  --color-code-bg: #f5f5f5;
  --color-code: #d63384;
  --color-input-bg: white;
}

html.dark {
  --color-text: var(--color-text-dark);
  --color-text-secondary: var(--color-text-secondary-dark);
  --color-bg: var(--color-bg-dark);
  --color-bg-secondary: #161B22;
  --color-border: var(--color-border-dark);
  --color-shadow: var(--color-shadow-dark);
  --color-code-bg: #161B22;
  --color-code: #FF7B72;
  --color-input-bg: #0D1117;
}
body {
  max-width: 900px;
  padding: var(--space-md);
  margin: 0 auto;
  background: var(--color-bg);
}
* {
  -webkit-tap-highlight-color: transparent;
}
ol,
ul {
  list-style: none;
}
p,
h1,
h2,
h3,
h4,
h5,
ul,
ol,
li,
blockquote {
  padding: 0;
  margin: 0;
}
a {
  color: inherit;
  text-decoration: none;
  transition: color var(--transition-fast);
}

a:hover {
  color: var(--color-primary);
}
input,
select,
textarea {
  font-family: inherit;
  outline: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none;
}
pre,
code {
  font-family: inherit;
}
input:-webkit-autofill {
  /* 自动填充的文本颜色 */
  -webkit-text-fill-color: #333333 !important;
  /* -webkit-text-fill-color: var(--text-color) !important; */

  /* 方式1：使用内阴影覆盖自动填充的背景色 */
  /* box-shadow: 0 0 0 1000px #ffffff inset !important; */

  /* 方式2：通过延迟一个月，取消自动填充的背景色 */
  -webkit-transition: background-color 2592000s ease-in-out 0s;
  transition: background-color 2592000s ease-in-out 0s;
}
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
  background-color: transparent;
}
::-webkit-scrollbar-thumb {
  border-radius: 3px;
  background: linear-gradient(180deg, var(--color-primary), var(--color-primary-dark));
  transition: background var(--transition-normal);
}
::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, var(--color-primary-light), var(--color-primary));
}
::selection {
  background-color: var(--color-primary);
  color: #ffffff;
}
.hide {
  display: none !important;
}
.hover-underline {
  position: relative;
  cursor: pointer;
}
.hover-underline::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 2px;
  bottom: -4px;
  left: 0;
  background-color: var(--color-primary);
  visibility: hidden;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition-fast);
}
.hover-underline:hover::after {
  visibility: visible;
  transform: scaleX(1);
}
.header {
  padding: var(--space-xl) 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--color-border);
  margin-bottom: var(--space-xl);
}
.header .logo {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  margin-right: var(--space-lg);
  -webkit-user-drag: none;
  box-shadow: 0 2px 8px var(--color-shadow);
  background-image: url(../img/jetbrains.svg);
  background-size: cover;
  transition: transform var(--transition-normal), box-shadow var(--transition-normal);
}
.header .logo:hover {
  transform: scale(1.08);
  box-shadow: 0 4px 16px var(--color-shadow-hover);
}
.header .menu {
  margin-right: -9px;
  text-align: right;
  user-select: none;
  display: flex;
  gap: var(--space-md);
}
.header .menu a {
  display: inline-block;
  font-size: 14px;
  padding: var(--space-sm) var(--space-md);
  margin: 0;
  white-space: nowrap;
  user-select: auto;
  font-weight: 500;
  border-radius: var(--radius-sm);
  transition: all var(--transition-fast);
}
.header .menu a:hover {
  background: var(--color-bg-secondary);
  color: var(--color-primary);
}
.footer {
  padding: var(--space-lg) 0;
  margin-top: var(--space-xxl);
  border-top: 1px solid var(--color-border);
  font-size: 13px;
  color: var(--color-text-secondary);
  display: flex;
  gap: var(--space-md);
  align-items: center;
  flex-wrap: wrap;
}
.footer a {
  text-decoration: underline;
  color: var(--color-primary);
  padding: 0 var(--space-sm);
  white-space: nowrap;
  transition: all var(--transition-fast);
}
.footer a:hover {
  color: var(--color-primary-dark);
  text-decoration-thickness: 2px;
}
.footer-btn {
  position: fixed;
  z-index: 99;
  width: 40px;
  height: 40px;
  cursor: pointer;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0;
  box-shadow: 0 4px 12px var(--color-shadow);
  transition: all var(--transition-normal);
}
.footer-btn:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px var(--color-shadow-hover);
}
.footer-btn:active {
  transform: scale(0.95);
}
.footer-btn i {
  font-size: 20px;
  background-color: #ffffff;
}
.footer-btn.theme-toggler {
  right: 16px;
  bottom: 64px;
}
.footer-btn.to-top {
  right: 16px;
  bottom: -50px;
  transition: bottom var(--transition-normal), transform var(--transition-normal);
}
.footer-btn.to-top.show {
  bottom: 16px;
}
.svg-icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  mask-size: 100% 100%;
  -webkit-mask-size: 100% 100%;
  background-color: #000000;
}
.icon-loading {
  mask-image: url('../img/icon-loading.svg');
  -webkit-mask-image: url('../img/icon-loading.svg');
}
.icon-theme-dark {
  mask-image: url('../img/icon-theme-dark.svg');
  -webkit-mask-image: url('../img/icon-theme-dark.svg');
}
.icon-arrow-top {
  mask-image: url('../img/icon-arrow-top.svg');
  -webkit-mask-image: url('../img/icon-arrow-top.svg');
}

/* ===== 动画和过渡效果 ===== */
/* 平滑出现动画 */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 链接悬停下划线动画 */
@keyframes slideLineFromLeft {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}

/* 获得焦点的脉冲效果 */
@keyframes pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.7;
  }
}

/* 页面加载动画 */
body {
  animation: fadeIn var(--transition-smooth) ease-out;
}

/* 点击涟漪效果 */
.btn-ripple {
  position: relative;
  overflow: hidden;
}

.btn-ripple::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background: rgba(75, 181, 150, 0.3);
  transform: translate(-50%, -50%);
  opacity: 1;
}

.btn-ripple:active::after {
  animation: ripple 0.6s ease-out;
}

@keyframes ripple {
  0% {
    width: 0;
    height: 0;
    opacity: 1;
  }
  100% {
    width: 300px;
    height: 300px;
    opacity: 0;
  }
}

@media screen and (max-width: 560px) {
  html {
    font-size: 15px;
  }
  
  .header {
    padding: var(--space-lg) 0;
    justify-content: flex-start;
    margin-bottom: var(--space-lg);
  }
  
  .header .menu {
    margin-right: -2px;
    text-align: left;
    gap: var(--space-sm);
  }
  
  .header .menu a {
    font-size: 13px;
    padding: var(--space-xs) var(--space-sm);
  }
  
  .footer-btn {
    width: 36px;
    height: 36px;
  }
  
  .footer-btn i {
    font-size: 18px;
  }
}

/* 减少移动设备动效 */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
