/* Raviyan Aseman 3.2 — foundations and design tokens */
:root {
  --ra-green-950:#0b2e24;
  --ra-green-900:#123f31;
  --ra-green-800:#18513d;
  --ra-green-700:#23674d;
  --ra-green-100:#e8f0ea;
  --ra-green-050:#f1f5f0;
  --ra-red-700:#96363b;
  --ra-red-100:#f3e6e5;
  --ra-bronze-700:#8e7040;
  --ra-bronze-500:#ab8b52;
  --ra-bronze-200:#ddcfad;
  --ra-ivory-050:#fffefa;
  --ra-ivory-100:#faf8f1;
  --ra-ivory-200:#f3efe5;
  --ra-ivory-300:#ebe4d6;
  --ra-ink-950:#17231d;
  --ra-ink-800:#2f3e36;
  --ra-ink-600:#627069;
  --ra-ink-400:#8b958f;
  --ra-border:rgba(23,54,40,.13);
  --ra-border-warm:rgba(142,112,64,.25);
  --ra-focus:#1f6e9d;
  --ra-font:"IRANSansXFaNum",Tahoma,Arial,sans-serif;
  --ra-space-1:.5rem;
  --ra-space-2:1rem;
  --ra-space-3:1.5rem;
  --ra-space-4:2rem;
  --ra-space-5:3rem;
  --ra-space-6:4.5rem;
  --ra-space-7:6.5rem;
  --ra-radius-sm:8px;
  --ra-radius-md:14px;
  --ra-radius-lg:22px;
  --ra-radius-xl:32px;
  --raviyan-radius-card:14px;
  --raviyan-radius-inner:12px;
  --raviyan-radius-control:10px;
  --raviyan-border-color:rgba(142,112,64,.28);
  --raviyan-shadow-soft:0 14px 34px rgba(13,48,34,.065);
  --raviyan-shadow-hover:0 20px 44px rgba(13,48,34,.105);
  --ra-shadow-1:0 8px 24px rgba(16,48,33,.055);
  --ra-shadow-2:0 22px 60px rgba(16,48,33,.09);
  --ra-ease:cubic-bezier(.22,.78,.2,1);
  --ra-fast:180ms;
  --ra-normal:360ms;
  --ra-slow:680ms;
  --ra-pattern:url('../images/islimi-pattern.svg');
  --ra-shamseh:url('../images/shamseh.svg');
}

*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:120px; }
body {
  min-width:320px; margin:0; color:var(--ra-ink-950); font-family:var(--ra-font);
  background:var(--ra-ivory-100); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
body::selection { color:#fff; background:var(--ra-green-800); }
img,svg,video { max-width:100%; }
img { height:auto; }
button,input,textarea,select { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
button { border:0; cursor:pointer; touch-action:manipulation; }
a { color:inherit; text-decoration:none; }
ul,ol { margin:0; padding:0; }
figure,blockquote,dl,dd { margin:0; }
[hidden] { display:none!important; }

.shell,.site-shell,.container {
  width:min(1280px,calc(100% - 64px)); margin-inline:auto;
}

:where(a,button,input,textarea,select,[tabindex]):focus-visible {
  outline:3px solid color-mix(in srgb,var(--ra-focus) 72%,white); outline-offset:3px;
}

.raviyan-skip-link {
  position:fixed; z-index:100000; top:12px; right:16px; padding:11px 16px;
  border-radius:var(--ra-radius-sm); color:#fff; background:var(--ra-green-900);
  font-size:13px; font-weight:800; transform:translateY(-160%); transition:transform var(--ra-fast);
}
.raviyan-skip-link:focus { transform:none; }

.section-kicker,.archive-eyebrow,.profile-hero__eyebrow,.chapter-heading>span,
.identity-panel header>span,.gallery-panel header>span,.testament-section header>span {
  display:block; color:var(--ra-bronze-700); font-size:11px; font-weight:800;
  letter-spacing:.08em; text-transform:none;
}

.primary-button,.archive-masthead__link,.profile-hero__action,.raviyan-biography-download-link,.raviyan-online-fatiha-link {
  min-height:46px; padding:0 20px; display:inline-flex; align-items:center; justify-content:center; gap:10px;
  border-radius:var(--ra-radius-sm); color:#fff; background:var(--ra-green-900);
  font-size:13px; font-weight:800; transition:background var(--ra-normal) var(--ra-ease),transform var(--ra-normal) var(--ra-ease),box-shadow var(--ra-normal) var(--ra-ease);
}
.primary-button:hover,.archive-masthead__link:hover,.profile-hero__action:hover,.raviyan-biography-download-link:hover,.raviyan-online-fatiha-link:hover {
  color:#fff; background:var(--ra-green-800); transform:translateY(-2px); box-shadow:0 12px 24px rgba(18,63,49,.16);
}
.primary-button:active,.archive-masthead__link:active,.profile-hero__action:active,.raviyan-biography-download-link:active,.raviyan-online-fatiha-link:active { transform:translateY(0) scale(.985); }

.raviyan-event-svg { width:1.5rem; height:1.5rem; display:block; }
