:root {
  --neoline: #6d3c91;
  --neoline-dark: #24182b;
  --ink: #211b25;
  --muted: #6e6870;
  --prime: #8c5c58;
  --prime-soft: #d8c0bc;
  --paper: #f7f3ed;
  --white: #fffdf9;
  --navy: #12344a;
  --sky: #b9dbef;
  --lime: #66c27a;
  --line: rgba(24, 43, 58, .15);
  --line-light: rgba(255, 255, 255, .25);
  --safe-x: clamp(44px, 5vw, 96px);
  --safe-y: clamp(30px, 4svh, 64px);
  --radius: 8px;
  --motion: 320ms;
  --ease: cubic-bezier(.22, .75, .2, 1);
  --shadow: 0 24px 70px rgba(18, 52, 74, .18);
}

@font-face { font-family: Vazirmatn; src: url('../fonts/vazirmatn-arabic.woff2') format('woff2'); font-display: swap; font-style: normal; font-weight: 100 900; }
@font-face { font-family: Vazirmatn; src: url('../fonts/vazirmatn-latin-ext.woff2') format('woff2'); font-display: swap; font-style: normal; font-weight: 100 900; unicode-range: U+0000-024F; }

*, *::before, *::after { box-sizing: border-box; }
html { background: #101b24; scroll-behavior: smooth; scroll-snap-type: y mandatory; }
body { margin: 0; min-width: 320px; background: #101b24; color: var(--ink); font-family: Vazirmatn, Tahoma, Arial, sans-serif; overflow-x: hidden; }
button, a { font: inherit; }
button { color: inherit; }
button:focus-visible, a:focus-visible, iframe:focus-visible { outline: 3px solid #efb6ff; outline-offset: 4px; }
[hidden] { display: none !important; }
noscript { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; background: var(--paper); }
