/* Rasht Neon — phase 3: interactive cards + branded route transition */
:root{
  --rn-card-cyan:#55f3ff;
  --rn-card-pink:#ff58d3;
  --rn-card-violet:#a875ff;
  --rn-card-ease:cubic-bezier(.2,.78,.2,1);
}

/* Interactive service / gallery cards */
.rn-card-enhanced{
  --rn-local-x:50%;
  --rn-local-y:50%;
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.rn-card-enhanced>.rn-card-beam{
  position:absolute;
  inset:-38%;
  z-index:3;
  pointer-events:none;
  opacity:0;
  background:
    radial-gradient(240px circle at var(--rn-local-x) var(--rn-local-y),rgba(255,255,255,.14),rgba(85,243,255,.055) 35%,transparent 68%),
    linear-gradient(112deg,transparent 38%,rgba(255,255,255,.09) 49%,transparent 60%);
  transform:translateX(-18%) rotate(2deg);
  transition:opacity .28s ease,transform .65s var(--rn-card-ease);
  mix-blend-mode:screen;
}
.rn-card-enhanced:hover>.rn-card-beam{opacity:1;transform:translateX(16%) rotate(2deg)}

.rn-card-enhanced>.rn-card-edge{
  position:absolute;
  inset:0;
  z-index:4;
  border-radius:inherit;
  pointer-events:none;
  opacity:.28;
  background:
    linear-gradient(90deg,transparent 0 12%,rgba(85,243,255,.42) 34%,rgba(168,117,255,.30) 58%,rgba(255,88,211,.34) 78%,transparent 100%) top/180% 1px no-repeat,
    linear-gradient(90deg,transparent 0 22%,rgba(255,88,211,.22) 48%,rgba(85,243,255,.28) 76%,transparent 100%) bottom/180% 1px no-repeat;
  background-position:110% 0,-15% 100%;
  transition:opacity .3s ease,background-position .8s var(--rn-card-ease);
}
.rn-card-enhanced:hover>.rn-card-edge{opacity:.78;background-position:-70% 0,105% 100%}

/* Keep real content above the decorative beams. */
.rn-card-enhanced>.rn-card-beam,
.rn-card-enhanced>.rn-card-edge{transform-style:preserve-3d}
.rn-service-card .rn-service-art,
.rn-service-card .rn-service-content,
.rn-quick-card>span,
.rn-quick-card>em,
.design-card .media,
.design-card .card-body,
.portfolio-card .overlay{position:relative;z-index:5}

.rn-service-card .rn-service-art,
.rn-service-card .rn-service-content,
.rn-quick-card>span,
.rn-quick-card>em,
.design-card .media,
.design-card .card-body{
  transition:transform .42s var(--rn-card-ease),filter .32s ease;
}
.rn-service-card:hover .rn-service-art{transform:translateZ(18px) translateY(-2px)}
.rn-service-card:hover .rn-service-content{transform:translateZ(24px) translateY(-1px)}
.rn-quick-card:hover>span{transform:translateZ(18px) translateX(-2px)}
.rn-quick-card:hover>em{transform:translateZ(24px) translateX(-7px) scale(1.08)}
.design-card:hover .media{transform:translateZ(16px)}
.design-card:hover .card-body{transform:translateZ(20px) translateY(-2px)}

/* Directional arrow / CTA reactions */
.rn-service-card b em,
.rn-service-card b,
.rn-quick-card>em,
.rn-photo-design .media>span{
  transition:transform .3s var(--rn-card-ease),color .25s ease,background .25s ease,box-shadow .25s ease;
}
.rn-service-card:hover b em{display:inline-block;transform:translateX(-6px)}
.rn-service-card:hover b{color:#fff;text-shadow:0 0 14px rgba(85,243,255,.24)}
.rn-photo-design:hover .media>span{transform:translateY(-4px);box-shadow:0 10px 24px rgba(0,0,0,.28)}

/* Quick-launch cards get a subtle moving luminous border. */
.rn-quick-card.rn-card-enhanced{
  box-shadow:inset 0 1px rgba(255,255,255,.025),0 10px 30px rgba(0,0,0,.18);
}
.rn-quick-card.rn-card-enhanced:hover{
  box-shadow:inset 0 1px rgba(255,255,255,.045),0 18px 44px rgba(0,0,0,.28),0 0 30px rgba(85,243,255,.055);
}

/* A short press state makes navigation feel app-like. */
.rn-card-enhanced.rn-card-pressed{
  transition-duration:.11s!important;
  transform:perspective(900px) rotateX(var(--rn-rx,0deg)) rotateY(var(--rn-ry,0deg)) scale(.985)!important;
}

/* Branded navigation loader — glowing RN logo instead of diagonal sweep. */
.rn-page-transition{
  position:fixed;
  inset:0;
  z-index:12000;
  display:grid;
  place-items:center;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  background:
    radial-gradient(circle at 50% 47%,rgba(85,243,255,.075),transparent 24%),
    radial-gradient(circle at 54% 54%,rgba(255,88,211,.055),transparent 32%),
    rgba(4,7,12,.94);
  transition:opacity .16s ease,visibility 0s linear .16s;
}
.rn-page-loader{
  position:relative;
  display:grid;
  place-items:center;
  width:136px;
  height:154px;
  opacity:0;
  transform:scale(.92) translateY(6px);
  transition:opacity .16s ease,transform .24s var(--rn-card-ease);
}
.rn-page-loader img,.rn-page-loader>b{
  position:relative;
  z-index:3;
  width:74px;
  height:74px;
  object-fit:contain;
  filter:brightness(1.08) drop-shadow(0 0 8px rgba(255,255,255,.28)) drop-shadow(0 0 18px rgba(85,243,255,.34));
  animation:rn-loader-logo-glow .92s ease-in-out infinite alternate;
}
.rn-page-loader>b{display:grid;place-items:center;color:#eaffff;font-size:29px;letter-spacing:.08em}
.rn-page-loader small{
  position:absolute;
  bottom:0;
  z-index:3;
  color:#92a8b7;
  font-size:9px;
  font-weight:800;
  letter-spacing:.28em;
  direction:ltr;
  opacity:.82;
}
.rn-page-loader-ring,
.rn-page-loader-halo{
  position:absolute;
  top:18px;
  width:98px;
  height:98px;
  border-radius:50%;
  pointer-events:none;
}
.rn-page-loader-ring{
  z-index:1;
  border:1px solid rgba(85,243,255,.15);
  border-top-color:rgba(85,243,255,.7);
  border-right-color:rgba(255,88,211,.42);
  box-shadow:0 0 20px rgba(85,243,255,.08),inset 0 0 18px rgba(255,88,211,.035);
  animation:rn-loader-ring 1.1s linear infinite;
}
.rn-page-loader-halo{
  z-index:0;
  transform:scale(.72);
  background:radial-gradient(circle,rgba(85,243,255,.16),rgba(168,117,255,.07) 38%,transparent 68%);
  filter:blur(12px);
  animation:rn-loader-halo 1s ease-in-out infinite alternate;
}
@keyframes rn-loader-logo-glow{
  from{transform:scale(.97);filter:brightness(.9) drop-shadow(0 0 5px rgba(255,255,255,.18)) drop-shadow(0 0 12px rgba(85,243,255,.24))}
  to{transform:scale(1.035);filter:brightness(1.18) drop-shadow(0 0 9px rgba(255,255,255,.34)) drop-shadow(0 0 24px rgba(85,243,255,.52)) drop-shadow(0 0 30px rgba(255,88,211,.17))}
}
@keyframes rn-loader-ring{to{transform:rotate(360deg)}}
@keyframes rn-loader-halo{from{opacity:.55;transform:scale(.68)}to{opacity:1;transform:scale(1)}}
body.rn-page-exit .rn-page-transition{opacity:1;visibility:visible;transition:opacity .14s ease,visibility 0s}
body.rn-page-exit .rn-page-loader{opacity:1;transform:none}
body.rn-page-exit main{filter:brightness(.72);transform:scale(.998);transition:filter .12s ease,transform .14s ease}

/* Better keyboard focus on interactive cards. */
.rn-card-enhanced:focus-visible{
  outline:none;
  box-shadow:0 0 0 2px rgba(85,243,255,.75),0 0 0 6px rgba(85,243,255,.08),0 22px 60px rgba(0,0,0,.3)!important;
}

@media(max-width:760px){
  .rn-card-enhanced>.rn-card-beam{display:none}
  .rn-card-enhanced>.rn-card-edge{opacity:.22}
  .rn-service-card:hover .rn-service-art,
  .rn-service-card:hover .rn-service-content,
  .rn-quick-card:hover>span,
  .rn-quick-card:hover>em,
  .design-card:hover .media,
  .design-card:hover .card-body{transform:none}
  .rn-page-transition{background:rgba(4,7,12,.96)}
  .rn-page-loader{width:118px;height:138px}
  .rn-page-loader img,.rn-page-loader>b{width:64px;height:64px}
  .rn-page-loader-ring,.rn-page-loader-halo{top:17px;width:86px;height:86px}
}

@media(prefers-reduced-motion:reduce){
  .rn-card-enhanced>.rn-card-beam{display:none}
  .rn-card-enhanced>.rn-card-edge{transition:none}
  .rn-page-transition{display:none}
  body.rn-page-exit main{filter:none;transform:none}
}
