:root {
  --surface: #f9f9ff;
  --surface-low: #f0f3ff;
  --surface-high: #d8e3fa;
  --ink: #03271a;
  --slate: #414844;
  --sage: #4a6549;
  --mint: #c5ebd7;
  --sand: #f4dfcb;
}
html { scroll-behavior: smooth; }
body { font-family: 'Inter', sans-serif; background: var(--surface); color: var(--ink); }
h1, h2, h3, .display-font { font-family: 'Playfair Display', serif; letter-spacing: -0.025em; }
main section { scroll-margin-top: 92px; }
.material-symbols-outlined { font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; vertical-align: middle; }
.image-shell { position: relative; overflow: hidden; border-radius: 1rem; box-shadow: 0 18px 40px rgba(3, 39, 26, 0.12); }
.image-shell::after { content: ''; position: absolute; inset: 0; border-radius: inherit; border: 1px solid rgba(255, 255, 255, 0.35); pointer-events: none; }
.reveal { opacity: 0; transform: translateY(22px); transition: opacity 700ms ease, transform 700ms ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.soft-grid { background-image: linear-gradient(to right, rgba(3,39,26,0.05) 1px, transparent 1px), linear-gradient(to bottom, rgba(3,39,26,0.05) 1px, transparent 1px); background-size: 32px 32px; }
.lift-card { transition: transform 220ms ease, box-shadow 220ms ease; }
.lift-card:hover { transform: translateY(-6px); box-shadow: 0 18px 45px rgba(27, 61, 47, 0.12); }
.pulse-dot { width: 10px; height: 10px; border-radius: 999px; background: #4bb387; box-shadow: 0 0 0 0 rgba(75, 179, 135, 0.6); animation: pulse 2s infinite; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(75, 179, 135, 0.6); } 70% { box-shadow: 0 0 0 12px rgba(75, 179, 135, 0); } 100% { box-shadow: 0 0 0 0 rgba(75, 179, 135, 0); } }
.healing-glow { box-shadow: 0 10px 30px -5px rgba(27, 61, 47, 0.06); }
.hero-room { background-image: linear-gradient(90deg, rgba(249,249,255,0.98) 0%, rgba(249,249,255,0.88) 44%, rgba(249,249,255,0.5) 100%), var(--hero-image); background-position: center; background-size: cover; }
.caps-label { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.app-card { border: 1px solid rgba(193, 200, 194, 0.55); border-radius: 1rem; background: #fff; box-shadow: 0 10px 30px -5px rgba(27, 61, 47, 0.06); }
.status-chip { border-radius: 999px; padding: 0.25rem 0.75rem; font-size: 0.75rem; font-weight: 700; }
