/* GB VIP Motion 44 · Shared original motion layer for Android WebView and website.
   Inspired by public Material 3 Expressive / Apple motion principles.
   No network, authentication, storage or data operations. */
html.gb-motion44 {
  --gb44-fast: 150ms;
  --gb44-ui: 225ms;
  --gb44-expand: 320ms;
  --gb44-ease: cubic-bezier(.20,.78,.22,1);
  --gb44-exit: cubic-bezier(.38,0,.70,.48);
  --gb44-glow: rgba(152,179,252,.24);
}
/* Thin response on surfaces. No repeated blur sampling of photo grids. */
html.gb-motion44 :is(.btn,.iconbtn,.tab,.card-switch,.gb-pin-submit,.account-actions button) {
  transition-timing-function: var(--gb44-ease)!important;
  transition-duration: var(--gb44-ui)!important;
  touch-action:manipulation;
}
html.gb-motion44 :is(.btn,.iconbtn,.card-switch,.gb-pin-submit):active:not(:disabled) {
  transform:scale(.975);
}
html.gb-motion44 :is(.btn,.iconbtn,.tab,.gb-pin-submit):focus-visible {
  outline:2px solid rgba(195,211,255,.9);
  outline-offset:3px;
}
/* Material-like entering sheet. Account and shared-photo morphs stay in charge
   of their own frame-synchronised animation paths. */
@keyframes gb44SheetAppear {
  0% {opacity:.72;transform:translate3d(0,12px,0) scale(.983)}
  68% {opacity:1;transform:translate3d(0,-1px,0) scale(1.002)}
  100% {opacity:1;transform:translate3d(0,0,0) scale(1)}
}
@keyframes gb44BackdropAppear {from{opacity:0}to{opacity:1}}
html.gb-motion44 .modal-layer:not(.gb25-account-layer):not(.gb22-modal):not(.gb34-photo-modal):not(.gb34-focus-modal) .sheet:not(.photo-sheet):not(.vip-preview-sheet) {
  animation:gb44SheetAppear var(--gb44-expand) var(--gb44-ease) both!important;
  transform-origin:center 57%;
}
html.gb-motion44 .modal-layer:not(.gb25-account-layer):not(.gb22-modal):not(.gb34-photo-modal):not(.gb34-focus-modal) .modal-backdrop {
  animation:gb44BackdropAppear var(--gb44-ui) ease-out both!important;
}
/* When JS runs a matching exit WAAPI animation, suppress entrance keyframes. */
html.gb-motion44 .modal-layer.gb44-dismissing .sheet,
html.gb-motion44 .modal-layer.gb44-dismissing .modal-backdrop {
  animation:none!important;
  pointer-events:none;
}
/* Route pages use 13px travel rather than pushing full image grids 22px;
   the independent navigation bubble keeps its existing uninterrupted morph. */
@keyframes gb44PageForward {
 from{opacity:.93;transform:translate3d(13px,0,0)}
 to{opacity:1;transform:translate3d(0,0,0)}
}
@keyframes gb44PageBack {
 from{opacity:.93;transform:translate3d(-13px,0,0)}
 to{opacity:1;transform:translate3d(0,0,0)}
}
html.gb-motion44 .site-main > .page.gb31-from-right {
 animation:gb44PageForward var(--gb44-ui) var(--gb44-ease) both!important;
}
html.gb-motion44 .site-main > .page.gb31-from-left {
 animation:gb44PageBack var(--gb44-ui) var(--gb44-ease) both!important;
}
/* Keep focus, press response, and input feedback in a single quiet rhythm. */
html.gb-motion44 .gb-pin-field {
 transition:border-color var(--gb44-ui) var(--gb44-ease),box-shadow var(--gb44-ui) var(--gb44-ease)!important;
}
html.gb-motion44 .gb-pin-submit.gb-pin-ready:not(:disabled):active {
 filter:brightness(1.075);
}
/* Low-power and accessibility: no translation, scaling or pulsing. */
@media(prefers-reduced-motion:reduce) {
 html.gb-motion44 .modal-layer:not(.gb25-account-layer):not(.gb22-modal):not(.gb34-photo-modal):not(.gb34-focus-modal) .sheet:not(.photo-sheet):not(.vip-preview-sheet),
 html.gb-motion44 .modal-layer:not(.gb25-account-layer):not(.gb22-modal):not(.gb34-photo-modal):not(.gb34-focus-modal) .modal-backdrop,
 html.gb-motion44 .site-main > .page.gb31-from-right,
 html.gb-motion44 .site-main > .page.gb31-from-left {
   animation:none!important;
 }
 html.gb-motion44 :is(.btn,.iconbtn,.tab,.card-switch,.gb-pin-submit,.account-actions button,.gb-pin-field) {
   transition:none!important;
 }
 html.gb-motion44 :is(.btn,.iconbtn,.card-switch,.gb-pin-submit):active:not(:disabled) {transform:none!important;}
}
