/* 62.BOOST · Subpage Motion Layer · v149
   Progressive enhancement: page content stays visible if JS/IntersectionObserver fails. */
:root{
  --boost-motion-fast:160ms;
  --boost-motion-base:420ms;
  --boost-motion-ease:cubic-bezier(.22,.8,.22,1);
}

/* Visible by default. JS only hides items after the motion layer is safely armed. */
.boost-motion-item{
  opacity:1;
  transform:none;
  filter:none;
  transition:
    opacity var(--boost-motion-base) var(--boost-motion-ease),
    transform var(--boost-motion-base) var(--boost-motion-ease),
    filter var(--boost-motion-base) var(--boost-motion-ease);
  transition-delay:var(--boost-delay,0ms);
  will-change:opacity,transform;
}
html.boost-motion-armed .boost-motion-item:not(.boost-motion-in){
  opacity:0;
  transform:translate3d(0,18px,0) scale(.986);
  filter:blur(2px);
}
.boost-motion-item.boost-motion-in{
  opacity:1 !important;
  transform:translate3d(0,0,0) scale(1) !important;
  filter:none !important;
  will-change:auto;
}

.boost-motion-card{
  transition:
    transform 220ms var(--boost-motion-ease),
    box-shadow 220ms var(--boost-motion-ease),
    border-color 220ms ease !important;
  will-change:transform;
}
@media (hover:hover) and (pointer:fine){
  .boost-motion-card:hover{transform:translate3d(0,-4px,0) scale(1.004)}
}

.boost-motion-click{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  transition:transform var(--boost-motion-fast) var(--boost-motion-ease), filter var(--boost-motion-fast) ease !important;
  -webkit-tap-highlight-color:transparent;
}
.boost-motion-click:active{transform:scale(.972) !important}
@media (hover:hover) and (pointer:fine){
  .boost-motion-click:hover{transform:translateY(-1px);filter:brightness(1.04)}
}
.boost-motion-ripple{
  position:absolute;
  width:16px;
  height:16px;
  border-radius:999px;
  pointer-events:none;
  z-index:30;
  background:rgba(255,255,255,.32);
  transform:translate(-50%,-50%) scale(0);
  animation:boost-ripple 560ms ease-out forwards;
}
@keyframes boost-ripple{
  0%{opacity:.9;transform:translate(-50%,-50%) scale(0)}
  75%{opacity:.18}
  100%{opacity:0;transform:translate(-50%,-50%) scale(18)}
}

.boost-motion-field{
  transition:transform 180ms var(--boost-motion-ease), box-shadow 220ms ease, border-color 220ms ease !important;
}
.boost-motion-field:focus,
.boost-motion-field:focus-within{transform:translateY(-1px)}

.boost-motion-click .ph,
.boost-motion-click svg,
.boost-motion-click i{transition:transform 200ms var(--boost-motion-ease)}
@media (hover:hover) and (pointer:fine){
  .boost-motion-click:hover .ph-arrow-right,
  .boost-motion-click:hover .ph-arrow-square-out{transform:translateX(3px)}
  .boost-motion-click:hover .ph-instagram-logo,
  .boost-motion-click:hover .ph-tiktok-logo{transform:rotate(-5deg) scale(1.08)}
}

.boost-motion-status-active{animation:boost-status-pop 360ms var(--boost-motion-ease) both}
@keyframes boost-status-pop{
  0%{opacity:.25;transform:translateY(5px) scale(.985)}
  100%{opacity:1;transform:none}
}

.boost-motion-title{transform-origin:left center}
.boost-motion-title.boost-motion-in{animation:boost-title-settle 620ms var(--boost-motion-ease) both}
@keyframes boost-title-settle{
  0%{letter-spacing:.02em}
  100%{letter-spacing:normal}
}

/* V149: ambient white/grey orb removed completely. */
.boost-motion-orb{display:none !important}

body.boost-motion-leaving{
  opacity:.86;
  transform:translateY(-3px);
  transition:opacity 130ms ease, transform 130ms ease;
}

/* Mobile: the rise-in effect is kept, but content is never left invisible. */
@media (max-width:820px){
  html.boost-motion-armed .boost-motion-item:not(.boost-motion-in){
    transform:translate3d(0,12px,0) scale(.992);
    filter:blur(1px);
  }
}

@media (prefers-reduced-motion:reduce){
  html.boost-motion-armed .boost-motion-item,
  .boost-motion-item,
  .boost-motion-card,
  .boost-motion-click,
  .boost-motion-field,
  .boost-motion-title,
  body.boost-motion-leaving{
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
    animation:none !important;
    transition:none !important;
  }
  .boost-motion-orb,
  .boost-motion-ripple{display:none !important}
}
