/* Raviyan Aseman 3.3 — calm, cinematic motion system */

/* Scroll motion: classes are added only after JavaScript is ready. */
.is-motion-reveal {
  --motion-from-y:18px;
  --motion-from-x:0px;
  --motion-from-scale:1;
  --motion-rest-y:0px;
  opacity:0;
  transform:translate3d(var(--motion-from-x),calc(var(--motion-rest-y) + var(--motion-from-y)),0) scale(var(--motion-from-scale));
  transition:opacity 720ms var(--ra-ease),transform 720ms var(--ra-ease),clip-path 850ms var(--ra-ease);
  transition-delay:var(--motion-delay,0ms);
  will-change:opacity,transform;
}
.is-motion-reveal--title { --motion-from-y:22px; }
.is-motion-reveal--card { --motion-from-y:20px; --motion-from-scale:.992; }
.is-motion-reveal--quote { --motion-from-y:10px; transition-duration:880ms; }
.is-motion-reveal--image { --motion-from-y:16px; --motion-from-scale:1.018; clip-path:inset(7% 0 0); }
.is-motion-reveal--image.is-motion-visible { clip-path:inset(0); }
.is-motion-reveal--aside { --motion-from-y:12px; --motion-from-x:8px; }
.is-motion-reveal.is-motion-visible { opacity:1; transform:translate3d(0,var(--motion-rest-y),0) scale(1); }

/* No alternating vertical offset */

/* Hero entrance and atmospheric motion. */
.home-hero.is-motion-visible .archive-masthead__copy>* { animation:ra-copy-reveal 760ms var(--ra-ease) both; }
.home-hero.is-motion-visible .archive-masthead__copy>*:nth-child(2) { animation-delay:80ms; }
.home-hero.is-motion-visible .archive-masthead__copy>*:nth-child(3) { animation-delay:150ms; }
.home-hero.is-motion-visible .archive-masthead__copy>*:nth-child(4) { animation-delay:220ms; }
.home-hero.is-motion-visible .archive-masthead__copy>*:nth-child(5) { animation-delay:290ms; }
.home-hero.is-motion-visible .home-hero__mark { animation:ra-soft-arrive 900ms 250ms var(--ra-ease) both; }
.home-hero__mark::before,.home-closing__ornament { animation:ra-ornament-drift 11s ease-in-out infinite alternate; }

.banner-slide.is-active,.hero-card.is-active { animation:ra-fade-in 680ms var(--ra-ease) both; }
.banner-slide.is-active .banner-slide-image { animation:ra-cinematic-scale 9s ease-out both; }
.hero-card.is-active .portrait-frame { animation:ra-image-reveal 880ms var(--ra-ease) both; }
.hero-card.is-active .martyr-hero__avatar-img { animation:ra-cinematic-scale 8s ease-out both; }
.hero-card.is-active .hero-copy>* { animation:ra-copy-reveal 680ms var(--ra-ease) both; }
.hero-card.is-active .hero-copy>*:nth-child(2) { animation-delay:75ms; }
.hero-card.is-active .hero-copy>*:nth-child(3) { animation-delay:135ms; }
.hero-card.is-active .hero-copy>*:nth-child(4) { animation-delay:195ms; }
.hero-card.is-active .hero-copy>*:nth-child(5) { animation-delay:255ms; }

/* Timeline reveal remains independent so mobile events arrive one by one. */
.journey-track.is-timeline-ready .journey-event { opacity:0; transform:translateY(13px); transition:opacity 560ms var(--ra-ease),transform 560ms var(--ra-ease); transition-delay:calc(var(--event-index) * 90ms); }
.journey-track.is-timeline-ready .journey-event.is-visible { opacity:1; transform:none; }

/* Micro motion */
.primary-button i,.archive-masthead__link i,.profile-hero__action i,.view-all i,.related-story__link i,.related-stories__head>a i,.footer-back-top i { transition:transform var(--ra-normal) var(--ra-ease); }
.primary-button:hover i,.archive-masthead__link:hover i,.profile-hero__action:hover i,.view-all:hover i,.related-story__link:hover i,.related-stories__head>a:hover i { transform:translateX(-4px); }
.footer-back-top:hover i { transform:translateY(-3px); }
.gallery-grid .raviyan-gallery-link { transition:transform var(--ra-normal) var(--ra-ease),box-shadow var(--ra-normal) var(--ra-ease); }
.gallery-grid .raviyan-gallery-link:hover,.gallery-grid .raviyan-gallery-link:focus-visible { box-shadow:0 14px 30px rgba(13,48,34,.11); transform:translateY(-3px); }
.gallery-grid .raviyan-gallery-link:hover img,.gallery-grid .raviyan-gallery-link:focus-visible img { transform:scale(1.025); }

@keyframes ra-fade-in { from { opacity:0; } to { opacity:1; } }
@keyframes ra-soft-arrive { from { opacity:0; transform:translateY(10px) scale(.98); } to { opacity:1; transform:none; } }
@keyframes ra-image-reveal { from { opacity:0; clip-path:inset(9% 0 0); transform:translateY(14px); } to { opacity:1; clip-path:inset(0); transform:none; } }
@keyframes ra-copy-reveal { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
@keyframes ra-cinematic-scale { from { transform:scale(1.025); } to { transform:scale(1.005); } }
@keyframes ra-ornament-drift { from { transform:translate3d(0,-2px,0) rotate(-.6deg); } to { transform:translate3d(0,5px,0) rotate(.7deg); } }

@media (max-width:760px) {
  .is-motion-reveal { --motion-from-y:11px; --motion-from-x:0px; transition-duration:520ms; }
  .is-motion-reveal--image { --motion-from-scale:1.008; clip-path:inset(4% 0 0); }
  /* No alternating vertical offset */
  .home-hero__mark::before,.home-closing__ornament,.banner-slide.is-active .banner-slide-image,.hero-card.is-active .martyr-hero__avatar-img { animation:none; }
  .martyr-card:active,.related-story:active,.raviyan-gallery-link:active { transform:scale(.992); }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
  .is-motion-reveal,.is-motion-reveal.is-motion-visible,.journey-track.is-timeline-ready .journey-event { opacity:1; clip-path:none; transform:none; will-change:auto; }
  .visual-archive__item:nth-child(even) { transform:translateY(var(--motion-rest-y,24px)); }
}

@media (prefers-contrast:more) {
  :root { --ra-border:rgba(15,35,25,.35); --ra-border-warm:rgba(100,76,35,.5); }
  .primary-button,.archive-masthead__link,.profile-hero__action { outline:2px solid var(--ra-green-950); }
}

/* Single martyr visible UI polish.
   This file is enqueued after components/responsive, so these scoped rules win on the real front-end. */
body.single-shahid {
  --raviyan-polish-border:rgba(142,112,64,.42);
  --raviyan-polish-border-strong:rgba(142,112,64,.58);
  --raviyan-polish-shadow:0 16px 38px rgba(13,48,34,.11);
  --raviyan-polish-shadow-hover:0 24px 52px rgba(13,48,34,.16);
}

/* Portrait-only interaction: touch and reduced-motion users keep a still image. */
body.single-shahid .martyr-portrait-card {
  transition:transform 420ms var(--ra-ease),box-shadow 420ms var(--ra-ease),border-color 420ms var(--ra-ease);
}
body.single-shahid .martyr-portrait-photo img {
  transition:transform 420ms var(--ra-ease);
}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  body.single-shahid .martyr-portrait-card:hover,
  body.single-shahid .martyr-portrait-card:focus-within {
    transform:translateY(-3px);
    border-color:rgba(142,112,64,.42);
    box-shadow:0 20px 46px rgba(13,48,34,.12),0 3px 10px rgba(13,48,34,.05);
  }
  body.single-shahid .martyr-portrait-card:hover .martyr-portrait-photo img,
  body.single-shahid .martyr-portrait-card:focus-within .martyr-portrait-photo img {
    transform:scale(1.012);
  }
}
@media (prefers-reduced-motion:reduce) {
  body.single-shahid .martyr-portrait-card,
  body.single-shahid .martyr-portrait-photo img {
    transition:none;
    transform:none;
  }
}

body.single-shahid .gallery-panel--story,
body.single-shahid .journey-card,
body.single-shahid .grave-location__card,
body.single-shahid .shahid-photo-form,
body.single-shahid .shahid-video-card {
  border:1px solid var(--raviyan-polish-border);
  border-radius:14px;
  box-shadow:var(--raviyan-polish-shadow);
}

body.single-shahid .gallery-panel--story {
  background:rgba(239,234,220,.66);
}

body.single-shahid .gallery-panel--story .gallery-grid {
  gap:14px;
}

body.single-shahid .gallery-panel--story .raviyan-gallery-link,
body.single-shahid .gallery-grid .raviyan-gallery-link {
  overflow:hidden;
  border:1px solid var(--raviyan-polish-border-strong);
  border-radius:12px;
  background:var(--ra-ivory-200);
  box-shadow:0 12px 28px rgba(13,48,34,.1);
  transition:border-color var(--ra-normal) var(--ra-ease),box-shadow var(--ra-normal) var(--ra-ease),transform var(--ra-normal) var(--ra-ease);
}

body.single-shahid .gallery-panel--story .raviyan-gallery-link:hover,
body.single-shahid .gallery-panel--story .raviyan-gallery-link:focus-visible,
body.single-shahid .gallery-grid .raviyan-gallery-link:hover,
body.single-shahid .gallery-grid .raviyan-gallery-link:focus-visible {
  border-color:var(--ra-bronze-700);
  box-shadow:var(--raviyan-polish-shadow-hover);
  transform:translateY(-3px);
}

body.single-shahid .gallery-panel--story .raviyan-gallery-link img,
body.single-shahid .gallery-grid .raviyan-gallery-link img {
  border-radius:11px;
}

body.single-shahid .gallery-panel--story .raviyan-gallery-link:hover img,
body.single-shahid .gallery-panel--story .raviyan-gallery-link:focus-visible img,
body.single-shahid .gallery-grid .raviyan-gallery-link:hover img,
body.single-shahid .gallery-grid .raviyan-gallery-link:focus-visible img {
  transform:scale(1.018);
}

body.single-shahid .journey-card {
  border-top-color:var(--ra-green-800);
}

body.single-shahid .journey-icon,
body.single-shahid .archive-item__icon {
  border-color:var(--raviyan-polish-border-strong);
  border-radius:12px;
  box-shadow:0 10px 24px rgba(13,48,34,.08);
}

body.single-shahid .journey-event:hover .journey-icon,
body.single-shahid .journey-event:focus-within .journey-icon,
body.single-shahid .archive-item:hover .archive-item__icon,
body.single-shahid .archive-item:focus-within .archive-item__icon {
  border-color:var(--ra-bronze-700);
  box-shadow:var(--raviyan-polish-shadow-hover);
}

body.single-shahid .testament-section {
  border:1px solid rgba(244,229,189,.18);
  border-radius:14px;
  box-shadow:0 20px 48px rgba(13,48,34,.16);
}

body.single-shahid .testament-original-button {
  border-radius:10px;
}

body.single-shahid .shahid-video-card {
  overflow:hidden;
  border-radius:16px;
  padding-bottom:22px;
}

body.single-shahid .shahid-video-card:hover,
body.single-shahid .shahid-video-card:focus-within {
  border-color:var(--ra-bronze-700);
  box-shadow:var(--raviyan-polish-shadow-hover);
  transform:translateY(-3px);
}

body.single-shahid .shahid-video-card__media {
  width:100%;
  margin:0;
  overflow:hidden;
  border-radius:0;
}

body.single-shahid button.shahid-video-card__media {
  display:block;
  padding:0;
  border:0;
  line-height:0;
}

body.single-shahid .shahid-video-card__media img {
  display:block;
}

body.single-shahid .shahid-video-card h3,
body.single-shahid .shahid-video-card p {
  padding-inline:22px;
}

body.single-shahid .shahid-video-card__fallback {
  margin-inline:22px;
}

body.single-shahid .grave-location__map {
  overflow:hidden;
  border:1px solid var(--raviyan-polish-border-strong);
  border-radius:12px;
}

body.single-shahid .shahid-photo-form input:not([type="checkbox"]):not([type="file"]),
body.single-shahid .shahid-photo-form textarea,
body.single-shahid .shahid-photo-form input[type="file"],
body.single-shahid .shahid-photo-type label {
  border-color:var(--raviyan-polish-border);
  border-radius:10px;
}

body.single-shahid .shahid-photo-form input:not([type="checkbox"]):not([type="file"]):focus,
body.single-shahid .shahid-photo-form textarea:focus {
  border-color:var(--ra-green-700);
  box-shadow:0 0 0 3px rgba(35,103,77,.16);
  outline:0;
}

body.single-shahid .shahid-photo-type label:has(input:checked) {
  border-color:var(--ra-green-700);
  background:var(--ra-green-050);
  box-shadow:0 10px 24px rgba(13,48,34,.1);
}

@media (max-width:760px) {
  body.single-shahid .gallery-panel--story,
  body.single-shahid .journey-card,
  body.single-shahid .testament-section,
  body.single-shahid .grave-location__card,
  body.single-shahid .shahid-photo-form,
  body.single-shahid .shahid-video-card {
    border-radius:14px;
  }

  body.single-shahid .gallery-panel--story .gallery-grid {
    gap:10px;
  }

  body.single-shahid .gallery-panel--story .raviyan-gallery-link,
  body.single-shahid .gallery-grid .raviyan-gallery-link,
  body.single-shahid .grave-location__map,
  body.single-shahid .shahid-video-card__media {
    border-radius:0;
  }
}
