
/* Printola V28 cinematic motion, progressive enhancement only */
@media (prefers-reduced-motion: no-preference) {
  .v28-motion .v28-progress { position:fixed;top:0;left:0;width:100%;height:3px;z-index:1001;pointer-events:none;transform-origin:left;transform:scaleX(0);background:linear-gradient(90deg,#b7698a,#e6bd88,#1e6456);box-shadow:0 0 14px rgba(183,105,138,.35); }
  .v28-motion .hero { isolation:isolate; }
  .v28-motion .hero::after { content:'';position:absolute;width:min(42vw,640px);aspect-ratio:1;right:-9vw;bottom:-22%;border-radius:50%;z-index:0;pointer-events:none;opacity:.55;background:radial-gradient(circle at 35% 35%,rgba(231,176,142,.35),rgba(194,109,142,.13) 48%,transparent 72%);filter:blur(21px);animation:v28-orb-float 11s ease-in-out infinite alternate; }
  .v28-motion .hero-content {opacity:var(--v28-hero-fade,1);transform:translate3d(0,var(--v28-hero-shift,0px),0);}
  .v28-motion .hero h1{animation:v28-title-rise 1.2s cubic-bezier(.16,1,.3,1) both;}
  @keyframes v28-title-rise{from{opacity:0;filter:blur(8px);transform:translate3d(0,40px,0)}to{opacity:1;filter:blur(0);transform:translate3d(0,0,0)}}
  @keyframes v28-orb-float{0%{transform:translate3d(0,0,0) scale(.94)}100%{transform:translate3d(-30px,-48px,0) scale(1.12)}}
  .v28-motion .v28-reveal{transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1.1s cubic-bezier(.16,1,.3,1),filter 1s ease;transition-delay:var(--v28-delay,0ms)}
  .v28-motion .v28-reveal:not(.v28-visible){opacity:0;transform:translate3d(0,48px,0) scale(.97);filter:blur(5px)}
  .v28-motion .v28-reveal.v28-visible{opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0)}
  /* Respect existing V27 motion classes, combine via visibility state */
  .v28-motion .v28-reveal.motion-reveal:not(.v28-visible){opacity:0}
  .v28-motion .v28-reveal.motion-in.v28-visible{opacity:1}
  .v28-motion .v28-depth{position:relative;isolation:isolate;transform-style:preserve-3d;transition:box-shadow .6s ease,translate .55s cubic-bezier(.2,.8,.2,1),rotate .55s ease!important}
  .v28-motion .v28-depth:hover{box-shadow:0 28px 65px rgba(19,52,44,.19);translate:0 -9px}
  .v28-motion .v28-depth::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(460px circle at var(--v28-x,50%) var(--v28-y,50%),rgba(255,255,255,.23),transparent 55%);opacity:0;transition:opacity .35s;z-index:3}
  .v28-motion .v28-depth:hover::after{opacity:1}
  .v28-motion .catalogue-v21-card img{transition:transform .9s cubic-bezier(.16,1,.3,1),filter .7s ease}
  .v28-motion .catalogue-v21-card:hover img{transform:scale(1.095);filter:saturate(1.07)}
  .v28-motion .v28-magnetic{transform:translate3d(var(--v28-mx,0px),var(--v28-my,0px),0);transition:transform .25s ease,background .25s ease,box-shadow .25s ease}
  .v28-motion .v28-magnetic:hover{box-shadow:0 12px 26px rgba(18,48,40,.18)}
  .v28-motion .inner-hero{position:relative;overflow:hidden}
  .v28-motion .inner-hero::before{content:'';position:absolute;inset:-15%;background:radial-gradient(ellipse at 78% 20%,rgba(219,163,176,.14),transparent 55%);pointer-events:none;animation:v28-glow 9s ease-in-out infinite alternate}
  @keyframes v28-glow{from{transform:translate3d(-3%,0,0)}to{transform:translate3d(3%,4%,0)}}
}
@media(min-width:900px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.v28-motion .v28-depth:hover{rotate:x var(--v28-rx,0deg) y var(--v28-ry,0deg)}}
@media(max-width:899px){.v28-motion .v28-depth{rotate:none!important;transform-style:flat}.v28-motion .hero::after{animation:none!important;filter:blur(12px);opacity:.35}.v28-motion .hero-content{transform:none!important}}
@media(prefers-reduced-motion:reduce){.v28-progress{display:none!important}.v28-reveal{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}.v28-depth{rotate:none!important}.v28-magnetic{transform:none!important}}
