/* Warm Organic — frequencybreathwork-inspired palette
  暖奶油底色 + 沙色浅底 + 鼠尾草绿点缀 + 留白呼吸感 */
html, body {
  background: #F2F0EB !important;
  color: #242424 !important;
}
/* ---------- backgrounds ---------- */
.bg-white { background-color: #FFFFFF !important; }
.bg-\[\#FAF8F5\] { background-color: #F2F0EB !important; }
.bg-\[\#FFFDF9\] { background-color: #FAFAF7 !important; }
.bg-\[\#E8E4DD\] { background-color: #E8E3DA !important; }
.bg-\[\#D9D4CB\] { background-color: #D9D3C8 !important; }
.bg-cream-50 { background-color: #FAFAF7 !important; }
.bg-cream-100 { background-color: #F2F0EB !important; }
.bg-cream-200 { background-color: #E8E3DA !important; }
.bg-cream-300 { background-color: #D9D3C8 !important; }
.bg-cream-100\/60 { background-color: rgba(242,240,235,.6) !important; }

/* ---------- text ---------- */
.text-ink-900 { color: #242424 !important; }
.text-ink-800 { color: #3A3530 !important; }
.text-ink-700 { color: #4F4A42 !important; }
.text-ink-600 { color: #5C5548 !important; }
.text-ink-500 { color: #6B6358 !important; }
.text-ink-400 { color: #7A7368 !important; }
.text-\[\#2C2416\] { color: #242424 !important; }
.text-\[\#5C5144\] { color: #5C5548 !important; }
.text-\[\#8B7355\] { color: #6B6358 !important; }
.text-\[\#B8926A\] { color: #2B7A5E !important; }
.text-accent { color: #2B7A5E !important; }

/* ---------- hover ---------- */
.hover\:text-accent:hover { color: #1F5C46 !important; }
.hover\:text-\[\#2C2416\]:hover { color: #000000 !important; }
.hover\:text-ink-700:hover { color: #3A3530 !important; }
.hover\:text-ink-800:hover { color: #242424 !important; }
.hover\:bg-\[\#B8926A\]:hover { background-color: #2B7A5E !important; }
.hover\:bg-\[\#A67D55\]:hover { background-color: #1F5C46 !important; }
.hover\:bg-accent:hover { background-color: #2B7A5E !important; }
.hover\:bg-accent\/90:hover { background-color: rgba(43,122,94,.9) !important; }
.hover\:border-accent\/40:hover { border-color: rgba(43,122,94,.3) !important; }
.hover\:border-accent\/50:hover { border-color: rgba(43,122,94,.4) !important; }
.hover\:border-\[\#B8926A\]:hover { border-color: #2B7A5E !important; }
.hover\:decoration-\[\#B8926A\]:hover { text-decoration-color: #2B7A5E !important; }

/* ---------- accent backgrounds (sage green) ---------- */
.bg-\[\#B8926A\] { background-color: #2B7A5E !important; }
.bg-\[\#B8926A\]\/10 { background-color: rgba(43,122,94,.08) !important; }
.bg-\[\#B8926A\]\/20 { background-color: rgba(43,122,94,.14) !important; }
.bg-\[\#B8926A\]\/30 { background-color: rgba(43,122,94,.2) !important; }
.border-\[\#B8926A\]\/30 { border-color: rgba(43,122,94,.2) !important; }
.border-\[\#B8926A\]\/50 { border-color: rgba(43,122,94,.35) !important; }
.decoration-\[\#B8926A\]\/50 { text-decoration-color: rgba(43,122,94,.35) !important; }
.bg-accent { background-color: #2B7A5E !important; }
.bg-\[\#FEF3C7\] { background-color: rgba(43,122,94,.07) !important; }
.bg-\[\#FEF3C7\]\/30 { background-color: rgba(43,122,94,.05) !important; }
.bg-\[\#FEF3C7\]\/40 { background-color: rgba(43,122,94,.08) !important; }

/* ---------- borders ---------- */
.border-cream-200 { border-color: rgba(36,36,36,.10) !important; }
.border-cream-300 { border-color: rgba(36,36,36,.14) !important; }
.border-\[\#E8E4DD\] { border-color: rgba(36,36,36,.10) !important; }
.border-accent\/30 { border-color: rgba(43,122,94,.25) !important; }
.divide-cream-200 > * + * { border-color: rgba(36,36,36,.10) !important; }
.border-\[\#2C2416\]\/25 { border-color: rgba(36,36,36,.18) !important; }
.hover\:border-\[\#2C2416\]:hover { border-color: rgba(36,36,36,.4) !important; }

/* ---------- shadows (warm organic: 极淡, 不喧哗) ---------- */
.hover\:shadow-lg { box-shadow: 0 4px 20px rgba(36,36,36,.06) !important; }
.shadow-lg { box-shadow: 0 2px 12px rgba(36,36,36,.05) !important; }

/* ---------- prose / typography ---------- */
.prose h1, .prose h2, .prose h3, .prose h4, .prose strong, .prose b, .prose th { color: #242424 !important; }
.prose p, .prose li, .prose td, .prose blockquote, .prose dd { color: #5C5548 !important; }
.prose a { color: #2B7A5E !important; text-decoration: underline; text-underline-offset: 3px; }
.prose code { color: #242424 !important; background: rgba(43,122,94,.08) !important; }
.prose ul li::marker, .prose ol li::marker { color: #2B7A5E !important; }
.prose hr { border-color: rgba(36,36,36,.12) !important; }

/* ---------- code blocks ---------- */
pre { background: #FFFFFF !important; border: 1px solid rgba(36,36,36,.10) !important; }

/* ---------- inputs / forms ---------- */
input, textarea, select {
  background: #FFFFFF !important;
  border-color: rgba(36,36,36,.14) !important;
  color: #242424 !important;
}
input::placeholder, textarea::placeholder { color: #7A7368 !important; }
input:focus, textarea:focus, select:focus { border-color: #2B7A5E !important; }

/* ---------- misc ---------- */
img { border-radius: 8px; transition: filter .2s ease; }
a, button { transition: color .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 2px solid #2B7A5E; outline-offset: 2px; border-radius: 6px;
}
::selection { background: rgba(43,122,94,.2); color: #242424; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: #F2F0EB; }
::-webkit-scrollbar-thumb { background: #D9D3C8; border-radius: 6px; }
::-webkit-scrollbar-thumb:hover { background: #C4BDB2; }

/* ---------- floating mail CTA (暖有机版) ---------- */
.fab-mail {
  position: fixed; right: 22px; bottom: 22px; z-index: 60;
  display: inline-flex; align-items: center; gap: 9px;
  background: #2B7A5E; color: #FFFFFF; font-weight: 600; font-size: 14px;
  padding: 12px 18px; border-radius: 999px;
  box-shadow: 0 4px 16px rgba(43,122,94,.25);
  transition: background .2s ease, box-shadow .2s ease;
}
.fab-mail:hover { background: #1F5C46; box-shadow: 0 6px 20px rgba(43,122,94,.3); }
.fab-mail svg { width: 17px; height: 17px; }
@media (max-width: 640px) { .fab-mail span { display: none; } .fab-mail { padding: 14px; } }

/* ---------- loading splash (暖有机版) ---------- */
#splash { position: fixed; inset: 0; z-index: 100; background: #F2F0EB; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px; transition: opacity .5s ease, visibility .5s; }
#splash.done { opacity: 0; visibility: hidden; }
#splash .mark { width: 54px; height: 54px; border-radius: 50%; background: #2B7A5E; display: flex; align-items: center; justify-content: center; font-weight: 700; color: #FFFFFF; font-size: 20px; animation: breathe 4s ease-in-out infinite; }
#splash .line { width: min(320px, 70vw); height: 3px; background: #D9D3C8; border-radius: 2px; overflow: hidden; }
#splash .line i { display: block; height: 100%; width: 40%; background: #2B7A5E; border-radius: 2px; animation: slide 2s ease-in-out infinite; }
#splash p { font-size: 12px; letter-spacing: .2em; color: #6B6358; text-transform: uppercase; }
@keyframes breathe { 0%,100% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.08); opacity: 1; } }
@keyframes slide { 0% { transform: translateX(-110%); } 100% { transform: translateX(320%); } }

/* ---------- unified heading type (serif) ---------- */
.font-serif, .font-serif span {
  font-family: Georgia, "Times New Roman", "Songti SC", "SimSun", "Noto Serif SC", serif !important;
}
h1:not([class*="font-"]), h2:not([class*="font-"]), h3:not([class*="font-"]) {
  font-family: Georgia, "Times New Roman", "Songti SC", "SimSun", "Noto Serif SC", serif;
  letter-spacing: -0.005em;
}
