/* ============================================================
   INVENTECT — card-glow.css  (SHARED — edit here, all cards update)
   Rotating "sweep" glow that hugs the OUTSIDE of a card's image
   on hover. Used by every card surface:
     .acard-media   — work.html / catalogue.html grid cards
     .pcard-media   — landing "Featured catalogue"
     .projcard-media— landing "Selected work" rail
     .sp-media      — spatial-system feature card
   Tune the whole site from ONE place: change --glow-inset (thickness),
   the conic-gradient stops (colour/arc), or the sweep duration below.
   ============================================================ */
@property --cardsweep{syntax:"<angle>";inherits:false;initial-value:0deg}

/* --- let the ring sit OUTSIDE the image with no gap ---
   remove the frame border, stop clipping, and neutralise hover-zoom
   (a scaled image would bleed once overflow is visible). */
.acard-media,.pcard-media,.projcard-media,.sp-media,.crcard-media{
  overflow:visible !important;border:0 !important;position:relative;z-index:1}
.acard-media image-slot,.acard-media img,
.pcard-media image-slot,.pcard-media img,
.projcard-media image-slot,.projcard-media img,
.sp-media image-slot,.sp-media img,
.crcard-media image-slot,.crcard-media img{border-radius:0}
.pcard-img{transform:none !important}
.pcard:hover .pcard-media .ph,
.projcard:hover .projcard-media .ph{transform:none !important}
/* the spatial card clips its grid — let the ring show */
.sp-card{overflow:visible !important}

/* --- the rotating sweep ring (::before crisp, ::after soft halo) --- */
.acard-media::before,.acard-media::after,
.pcard-media::before,.pcard-media::after,
.projcard-media::before,.projcard-media::after,
.sp-media::before,.sp-media::after,
.crcard-media::before,.crcard-media::after{
  content:"";position:absolute;inset:-1px;border-radius:0;pointer-events:none;z-index:2;
  background:conic-gradient(from var(--cardsweep),transparent 0deg 252deg,rgba(243,241,236,.18) 290deg,rgba(243,241,236,.95) 320deg,transparent 360deg);
  padding:1px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;
  opacity:0;transition:opacity .35s var(--ease)}
.acard-media::after,.pcard-media::after,.projcard-media::after,.sp-media::after,.crcard-media::after{filter:blur(4px)}

@media(prefers-reduced-motion:no-preference){
  .acard-media::before,.acard-media::after,
  .pcard-media::before,.pcard-media::after,
  .projcard-media::before,.projcard-media::after,
  .sp-media::before,.sp-media::after,
  .crcard-media::before,.crcard-media::after{animation:cardSweep 3.4s linear infinite}
  @keyframes cardSweep{to{--cardsweep:360deg}}
}

/* --- reveal on hover of each card --- */
.acard:hover .acard-media::before,
.pcard:hover .pcard-media::before,
.projcard:hover .projcard-media::before,
.sp-card:hover .sp-media::before,
.crcard:hover .crcard-media::before{opacity:1}
.acard:hover .acard-media::after,
.pcard:hover .pcard-media::after,
.projcard:hover .projcard-media::after,
.sp-card:hover .sp-media::after,
.crcard:hover .crcard-media::after{opacity:.6}
