/* =============================================
   BASE: Reset, Variables, Typography
   ============================================= */

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --bg: #FAF7F2;
  --bg-alt: #F2EBE0;
  --bg-dark: #1F1B17;
  --text: #1A1A1A;
  --text-sub: #6B6258;
  --text-mute: #A39A8E;
  --accent: #C45A3E;
  --accent-dark: #A04830;
  --accent-light: #E8B7A5;
  --border: #E5DDD0;
  --border-strong: #C9BFAE;

  --ease-out-expo: cubic-bezier(.16, 1, .3, 1);
  --ease-in-out-expo: cubic-bezier(.87, 0, .13, 1);
  --ease-soft: cubic-bezier(.22, 1, .36, 1);
}

html {
  scroll-behavior: auto; /* Lenis takes over */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  background: var(--bg);
  color: var(--text);
  font-family: 'Inter', 'Zen Kaku Gothic Antique', sans-serif;
  font-weight: 400;
  line-height: 1.8;
  overflow-x: hidden;
  cursor: none; /* Custom cursor */
}

/* Fallback cursor for touch / when JS disabled */
body.no-custom-cursor,
body.is-touch {
  cursor: auto;
}

/* Typography helpers */
.serif {
  font-family: 'Shippori Mincho B1', serif;
  font-feature-settings: "palt";
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  max-width: 100%;
  display: block;
}

button {
  background: none;
  border: none;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

::selection {
  background: var(--accent);
  color: var(--bg);
}
