/* Obsidian Serpent — shared design tokens */
:root {
  /* Core palette */
  --os-black: #07090a;
  --os-ink: #0d1112;
  --os-stone: #1a1f1f;
  --os-stone-2: #232a2a;
  --os-bone: #e9e2cf;
  --os-bone-dim: #b8b09a;
  --os-bone-soft: #8a8472;

  /* Obsidian green accents */
  --os-green: #2f8f6e;       /* primary serpent green */
  --os-green-bright: #4ed4a3;/* highlight */
  --os-green-deep: #0e3d31;  /* deep shadow green */
  --os-green-glow: #6effc2;  /* candlelight-on-jade */

  /* Candlelight */
  --os-flame: #f3a857;
  --os-ember: #c9551e;

  /* Type */
  --os-display: "Cinzel", "Trajan Pro", "EB Garamond", serif;
  --os-serif: "EB Garamond", "Cormorant Garamond", Georgia, serif;
  --os-mono: "JetBrains Mono", "IBM Plex Mono", ui-monospace, monospace;
  --os-sans: "Inter Tight", "Inter", system-ui, sans-serif;

  /* Texture */
  --os-noise:
    radial-gradient(rgba(233, 226, 207, 0.04) 1px, transparent 1px) 0 0/3px 3px,
    radial-gradient(rgba(0, 0, 0, 0.6) 1px, transparent 1px) 1px 1px/3px 3px;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--os-black);
  color: var(--os-bone);
  font-family: var(--os-serif);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Subtle texture overlay helper */
.os-noise::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: var(--os-noise);
  opacity: 0.35;
  mix-blend-mode: overlay;
}

/* Reusable serpent glyph (inline SVG via mask) — used for ornaments */
.os-glyph {
  display: inline-block;
  width: 1em;
  height: 1em;
  background: currentColor;
  mask: var(--glyph) center/contain no-repeat;
  -webkit-mask: var(--glyph) center/contain no-repeat;
}
