/* RAEVIA project coverflow. Static cards remain available before JavaScript. */
.rv-project-carousel { --carousel-gold: #b28b53; width: 100%; min-width: 0; }
.rv-project-carousel .rv-project-carousel-stage { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.rv-project-carousel .rv-project-slide { display: block; position: relative; min-width: 0; overflow: hidden; border-radius: 24px; aspect-ratio: 4 / 3; isolation: isolate; background: #24221f; color: #f5f0e7; text-decoration: none; -webkit-tap-highlight-color: transparent; }
.rv-project-carousel .rv-project-carousel-image { position: absolute; inset: 0; }
.rv-project-carousel .rv-project-carousel-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(9, 9, 8, .12) 52%, rgba(9, 9, 8, .86) 100%); pointer-events: none; }
.rv-project-carousel .rv-project-carousel-image img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; user-select: none; -webkit-user-drag: none; }
.rv-project-carousel .rv-project-carousel-caption { position: absolute; inset-inline: 0; bottom: 0; padding: clamp(24px, 3.6vw, 54px); text-align: start; }
.rv-project-carousel .rv-project-carousel-caption .eyebrow { display: block; color: #e6d6be; font-size: 11px; line-height: 1.7; letter-spacing: .15em; }
.rv-project-carousel .rv-project-carousel-title { margin: 10px 0 0; color: #fffaf1; font-family: "Playfair Display", Georgia, serif; font-weight: 400; font-size: clamp(25px, 3.2vw, 49px); line-height: 1.15; letter-spacing: -.02em; }
.rv-project-carousel .rv-project-carousel-open { display: inline-block; margin-top: 20px; border-bottom: 1px solid rgba(239, 224, 200, .65); padding-bottom: 5px; font-size: 12px; line-height: 1.7; letter-spacing: .025em; color: #f5f0e7; }
.rv-project-carousel .rv-project-slide:focus-visible { outline: 3px solid #dfb575; outline-offset: 5px; }
.rv-project-carousel.is-ready .rv-project-carousel-stage { display: block; position: relative; height: clamp(340px, 43vw, 650px); overflow: hidden; perspective: 1600px; touch-action: pan-y pinch-zoom; }
.rv-project-carousel.is-ready .rv-project-slide { position: absolute; top: 20px; bottom: 20px; left: 50%; width: 72%; height: auto; aspect-ratio: auto; opacity: 0; visibility: hidden; pointer-events: none; transform: translateX(-50%) translateZ(-260px) scale(.8); transform-origin: center; transition: transform 650ms cubic-bezier(.22, .68, 0, 1), opacity 500ms ease, visibility 650ms; box-shadow: 0 24px 65px rgba(0, 0, 0, .28); will-change: transform; }
.rv-project-carousel.is-ready .rv-project-slide[data-position="0"] { z-index: 3; visibility: visible; opacity: 1; pointer-events: auto; transform: translateX(-50%) translateZ(0) rotateY(0); }
.rv-project-carousel.is-ready .rv-project-slide[data-position="-1"] { z-index: 2; visibility: visible; opacity: .56; pointer-events: auto; transform: translateX(-129%) translateZ(-160px) rotateY(23deg) scale(.9); }
.rv-project-carousel.is-ready .rv-project-slide[data-position="1"] { z-index: 2; visibility: visible; opacity: .56; pointer-events: auto; transform: translateX(29%) translateZ(-160px) rotateY(-23deg) scale(.9); }
.rv-project-carousel.is-ready .rv-project-slide:not([data-position="0"]) .rv-project-carousel-caption { opacity: 0; }
.rv-project-carousel .rv-project-carousel-caption { transition: opacity 400ms ease; }
.rv-project-carousel .rv-project-carousel-controls { display: grid; grid-template-columns: 48px minmax(0, 1fr) 48px; align-items: center; gap: 8px 20px; width: min(620px, 100%); margin: 20px auto 0; }
.rv-project-carousel .rv-project-carousel-controls[hidden] { display: none; }
.rv-project-carousel .rv-project-carousel-prev, .rv-project-carousel .rv-project-carousel-next { display: inline-flex; justify-content: center; align-items: center; padding: 0; width: 48px; height: 48px; border: 1px solid rgba(201, 183, 156, .42); border-radius: 50%; background: transparent; color: #ede5d7; cursor: pointer; transition: border-color 180ms, background 180ms; }
.rv-project-carousel .rv-project-carousel-prev:hover, .rv-project-carousel .rv-project-carousel-next:hover { border-color: var(--carousel-gold); background: rgba(178, 139, 83, .1); }
.rv-project-carousel .rv-project-carousel-controls button:focus-visible { outline: 2px solid #dfb575; outline-offset: 3px; }
.rv-project-carousel .rv-project-carousel-controls svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.rv-project-carousel .rv-project-carousel-hint { margin: 0; text-align: center; color: #c9b79c; font-size: 12px; line-height: 1.8; }
.rv-project-carousel .rv-project-carousel-dots { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 2px; padding: 0 4px; }
.rv-project-carousel .rv-project-carousel-dot { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 32px; width: 32px; height: 32px; min-height: 32px; padding: 0; border: 0; background: transparent; cursor: pointer; border-radius: 50%; }
.rv-project-carousel .rv-project-carousel-dot::after { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #7f796e; transition: background 200ms, transform 200ms; }
.rv-project-carousel .rv-project-carousel-dot[aria-current="true"]::after { background: #c5a36f; transform: scale(1.55); }
.rv-project-carousel .rv-project-carousel-status { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; white-space: nowrap; clip-path: inset(50%); }
html[dir="rtl"] .rv-project-carousel .rv-project-carousel-controls svg { transform: scaleX(-1); }
html[lang="ar"] .rv-project-carousel .rv-project-carousel-title { font-family: "Noto Kufi Arabic", sans-serif; font-size: clamp(22px, 2.5vw, 37px); line-height: 1.7; letter-spacing: 0; }
html[lang="ar"] .rv-project-carousel .rv-project-carousel-caption .eyebrow { letter-spacing: 0; }
@media (max-width: 700px) {
  .rv-project-carousel .rv-project-carousel-stage { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .rv-project-carousel.is-ready .rv-project-carousel-stage { height: clamp(290px, 83vw, 490px); margin-inline: -16px; width: calc(100% + 32px); perspective: 1100px; }
  .rv-project-carousel.is-ready .rv-project-slide { width: 84%; top: 12px; bottom: 12px; border-radius: 20px; }
  .rv-project-carousel.is-ready .rv-project-slide[data-position="-1"] { transform: translateX(-134%) translateZ(-130px) rotateY(20deg) scale(.92); }
  .rv-project-carousel.is-ready .rv-project-slide[data-position="1"] { transform: translateX(34%) translateZ(-130px) rotateY(-20deg) scale(.92); }
  .rv-project-carousel .rv-project-carousel-caption { padding: 22px; }
  .rv-project-carousel .rv-project-carousel-title { font-size: clamp(25px, 6vw, 36px); }
  .rv-project-carousel .rv-project-carousel-open { margin-top: 13px; font-size: 11px; }
  .rv-project-carousel .rv-project-carousel-controls { gap: 6px 12px; margin-top: 12px; }
  .rv-project-carousel .rv-project-carousel-hint { font-size: 11px; }
  html[lang="ar"] .rv-project-carousel .rv-project-carousel-title { font-size: clamp(21px, 5.2vw, 29px); }
}
@media (prefers-reduced-motion: reduce) {
  .rv-project-carousel *, .rv-project-carousel *::after { transition: none !important; scroll-behavior: auto !important; }
}
