/* ═══════════════════════════════════════════════════════
   ZEVSAMA STUDIO — base.css
   Layer 1: Design tokens · CSS reset · Body base · Noise
   Phase 02 — diekstrak dari index.html & zevsama-gallery.html
   ═══════════════════════════════════════════════════════ */

/* ── DESIGN TOKENS ── */
:root {
  /* Core palette */
  --pink:          #FF007A;
  --cyan:          #00FFCC;
  --black:         #050505;
  --blush:         #FCE4EC;
  --white:         #f5f5f0;
  --g1:            #0a0a0a;
  --gray:          #1a1a1a;
  --gray2:         #111111;
  --gray3:         #1e1e1e;
  --text:          #f0ede6;
  --dim:           rgba(240, 237, 230, 0.4);
  --text-dim:      rgba(240, 237, 230, 0.35);
  --text-mid:      rgba(240, 237, 230, 0.6);
  --border:        rgba(255, 255, 255, 0.07);
  --border-bright: rgba(255, 255, 255, 0.1);

  /* Typography families */
  --mono: 'Share Tech Mono', monospace;
  --disp: 'Bebas Neue', sans-serif;
  --body: 'Inter', sans-serif;
}

/* ── CSS RESET ── */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* scroll-behavior: smooth removed — handled by Lenis */
html {
  scroll-behavior: auto;
}

/* ── BODY BASE ── */
body {
  overflow-x: hidden;
  background: var(--black);
  color: var(--white);
  font-family: var(--body);
  cursor: none;
  padding-top: 90px;
}

@media (max-width: 900px) {
  body { padding-top: 0; }
}

/* ── NOISE OVERLAY ── */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  opacity: 0.4;
  pointer-events: none;
  z-index: 9998;
}