/* Sculpt & Doshas  — base styles */
:root {
  --bg: #faf8f3;
  --ink: #1a1410;
  --ink-soft: #5a4f48;
  --line: #e8e0d3;
  --primary: #6b1f2c;
  --primary-soft: #8a3645;
  --cream: #f3ebdc;
  --gold: #b88a4a;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { background: var(--bg); color: var(--ink); -webkit-font-smoothing: antialiased; }
body { font-family: 'Inter', ui-sans-serif, system-ui, sans-serif; font-size: 16px; line-height: 1.55; }
img { display: block; max-width: 100%; }
button { font: inherit; cursor: pointer; border: 0; background: transparent; color: inherit; }
a { color: inherit; text-decoration: none; }

.font-display { font-family: 'Cormorant Garamond', 'Playfair Display', serif; font-weight: 500; letter-spacing: -0.005em; }
.font-display-italic { font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 400; }

/* Reveal-on-scroll */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s cubic-bezier(.2,.7,.3,1), transform .9s cubic-bezier(.2,.7,.3,1); }
.reveal.in { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: .08s; }
.reveal-delay-2 { transition-delay: .16s; }
.reveal-delay-3 { transition-delay: .24s; }
.reveal-delay-4 { transition-delay: .32s; }

/* Marquee */
@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.marquee-track { display: inline-flex; gap: 4rem; animation: marquee 38s linear infinite; white-space: nowrap; }

/* Letter reveal */
@keyframes letterIn {
  0%   { opacity: 0; transform: translateY(40%) rotate(2deg); filter: blur(4px); }
  100% { opacity: 1; transform: none; filter: blur(0); }
}
.letter-reveal span { display: inline-block; opacity: 0; animation: letterIn .9s cubic-bezier(.2,.7,.3,1) forwards; }

/* Scrollbar polish */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(0,0,0,.15); border-radius: 8px; }
::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,.25); }

/* Selection */
::selection { background: var(--primary); color: #fff; }

/* Magnetic button base */
.mag-btn { transition: transform .25s cubic-bezier(.2,.7,.3,1); }

/* Number counter pulse */
@keyframes softGlow {
  0%,100% { opacity: .85; }
  50% { opacity: 1; }
}

/* Cursor (custom) */
.lbh-cursor {
  position: fixed; pointer-events: none; z-index: 99999;
  width: 28px; height: 28px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,.7); mix-blend-mode: difference;
  transform: translate(-50%, -50%);
  transition: width .25s ease, height .25s ease, border-color .25s ease;
}
.lbh-cursor.hover { width: 56px; height: 56px; }
.lbh-cursor-dot {
  position: fixed; pointer-events: none; z-index: 99999;
  width: 4px; height: 4px; border-radius: 50%;
  background: #fff; mix-blend-mode: difference;
  transform: translate(-50%, -50%);
}
@media (hover: none) { .lbh-cursor, .lbh-cursor-dot { display: none; } }

/* Accordion */
details summary { list-style: none; cursor: pointer; }
details summary::-webkit-details-marker { display: none; }
