/* ════════════════════════════════════════════════
   BASE — Tokens · Reset · Global Utilities
   ════════════════════════════════════════════════ */

/* ─── TOKENS: DARK MODE (default) ─── */
:root {
  --bg: #0a0a0f;
  --bg2: #111118;
  --bg3: #18181f;
  --border: rgba(255, 255, 255, 0.07);
  --accent: #e8ff47;
  --accent2: #ff6b35;
  --accent-rgb: 232, 255, 71;
  --accent2-rgb: 255, 107, 53;
  --text: #f0eff5;
  --muted: #7a7a8f;
  --card: rgba(255, 255, 255, 0.03);
  --card-hover: rgba(255, 255, 255, 0.055);
  --nav-bg: rgba(10, 10, 15, 0.85);
  --shadow: rgba(0, 0, 0, 0.5);
  --photo-glow: rgba(232, 255, 71, 0.35);

  --font-body: 'Inter', sans-serif;
  --font-head: 'Syne', sans-serif;

  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 22px;
  --radius-xl: 32px;

  --transition: 0.25s ease;
}

/* ─── TOKENS: LIGHT MODE ─── */
[data-theme="light"] {
  --bg: #f4f4f8;
  --bg2: #eaeaf0;
  --bg3: #dddde8;
  --border: rgba(0, 0, 0, 0.09);
  --accent: #b5c800;
  --accent2: #e05a20;
  --accent-rgb: 181, 200, 0;
  --text: #0e0e18;
  --muted: #5a5a72;
  --card: rgba(255, 255, 255, 0.7);
  --card-hover: rgba(255, 255, 255, 0.95);
  --nav-bg: rgba(244, 244, 248, 0.88);
  --shadow: rgba(0, 0, 0, 0.12);
  --photo-glow: rgba(181, 200, 0, 0.4);
}

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

html,
body {
  overflow-x: clip;
  max-width: 100vw;
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-body);
  background-color: var(--bg);
  color: var(--text);
  line-height: 1.7;
  transition: background 0.4s ease, color 0.4s ease;
  position: relative;
}

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

ul {
  list-style: none;
}

button {
  font-family: inherit;
}

a {
  text-decoration: none;
}

/* ─── SCROLLBAR ─── */
::-webkit-scrollbar {
  width: 4px;
}

::-webkit-scrollbar-track {
  background: var(--bg);
}

::-webkit-scrollbar-thumb {
  background: var(--accent);
  border-radius: 2px;
}

/* ─── FOCUS STATES (accessibility) ─── */
:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ─── NOISE OVERLAY ─── */
.noise-overlay {
  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");
  pointer-events: none;
  z-index: 9999;
  opacity: 0.35;
}

[data-theme="light"] .noise-overlay {
  opacity: 0.15;
}