/* Nordic Design Atelier — Motion System / calm, cinematic, accessible */
:root{
  --nd-motion-duration:770ms;
  --nd-motion-ease:cubic-bezier(.2,.78,.18,1);
}

/* Progressive enhancement: no JS means everything stays visible. */
html.nd-motion-ready .nd-motion-target:not(.nd-motion-visible){
  opacity:0;
  transform:translate3d(0,24px,0);
}
html.nd-motion-ready .nd-motion-target.nd-motion-visible{
  opacity:1;
  transform:translate3d(0,0,0);
  transition:
    transform var(--nd-motion-duration) var(--nd-motion-ease) var(--nd-motion-delay,0ms),
    opacity var(--nd-motion-duration) var(--nd-motion-ease) var(--nd-motion-delay,0ms);
}
/* Slightly gentler image reveals. */
html.nd-motion-ready :is(.nd-hero-visual,.nd-about-hero-art,.nd-philosophy-graphic,.nd-single-product-media).nd-motion-target:not(.nd-motion-visible){
  opacity:0;
  transform:translate3d(0,14px,0) scale(.985);
}
html.nd-motion-ready :is(.nd-hero-visual,.nd-about-hero-art,.nd-philosophy-graphic,.nd-single-product-media).nd-motion-target.nd-motion-visible{
  transform:translate3d(0,0,0) scale(1);
}
.nd-site .nd-btn,
.nd-site .nd-home-product-cta,
.nd-site .nd-home-explore-link,
.nd-site .nd-catalog-intro-scroll,
.nd-site .nd-catalog-product-details,
.nd-site .nd-about-cta-btn,
.nd-site .nd-account-header-shop,
.nd-site .nd-product-editorial>a{
  transition:
    background-color .28s ease,
    color .28s ease,
    border-color .28s ease,
    transform .34s var(--nd-motion-ease);
}
.nd-site .nd-btn svg,
.nd-site .nd-catalog-product-details svg,
.nd-site .nd-about-cta-btn svg,
.nd-site .nd-home-explore-link svg,
.nd-site .nd-product-editorial>a svg{
  transition:transform .3s var(--nd-motion-ease);
}
@media(hover:hover) and (pointer:fine){
  .nd-site .nd-about-cta-btn:hover,
  .nd-site .nd-btn:hover{transform:translateY(-3px)}
  .nd-site :is(.nd-btn,.nd-about-cta-btn,.nd-product-editorial>a):hover .nd-ui-arrow--up-right{transform:translate(2px,-2px)}
  .nd-site .nd-product-card:hover .nd-product-photo img{transform:scale(1.045)}
  .nd-site .nd-catalog-category:hover{transform:translateY(-2px)}
  .nd-site .nd-account-nav-item>a:hover .nd-account-svg{transform:translateX(2px)}
  .nd-site .nd-account-svg{transition:transform .23s ease}
}
.nd-site .nd-touch-target:active{transform:scale(.985);transition-duration:.12s}
.nd-site .nd-header-actions svg{transition:transform .3s var(--nd-motion-ease)}
@media(hover:hover) and (pointer:fine){
  .nd-site .nd-header-actions a:hover svg{transform:translateY(-2px)}
}
/* Keep native focus rings readable throughout animations. */
.nd-site :focus-visible{outline:2px solid #74977a;outline-offset:3px}
/* Avoid expensive, perpetual animations on mobile and low-power devices. */
@media(max-width:640px){
  :root{--nd-motion-duration:560ms}
  html.nd-motion-ready .nd-motion-target:not(.nd-motion-visible){transform:translate3d(0,14px,0)}
  html.nd-motion-ready :is(.nd-hero-visual,.nd-about-hero-art,.nd-philosophy-graphic,.nd-single-product-media).nd-motion-target:not(.nd-motion-visible){transform:translate3d(0,9px,0)}
}
@media(prefers-reduced-motion:reduce){
  html.nd-motion-ready .nd-motion-target,
  html.nd-motion-ready .nd-motion-target.nd-motion-visible{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
  .nd-site *, .nd-site *::before, .nd-site *::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
  }
}
