html, body { margin: 0; }

@keyframes ping {
  75%, 100% { transform: scale(2); opacity: 0; }
}
@keyframes bounce {
  0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(0.8,0,1,1); }
  50% { transform: none; animation-timing-function: cubic-bezier(0,0,0.2,1); }
}
@keyframes pulse {
  50% { opacity: .5; }
}
.animate-ping { animation: ping 1s cubic-bezier(0,0,0.2,1) infinite; }
.animate-bounce { animation: bounce 1s infinite; }
.animate-pulse { animation: pulse 2s cubic-bezier(0.4,0,0.6,1) infinite; }

/* Feature app-only links */
#root [data-app-link] { display: none !important; }
#root[data-cta-mode="inapp-glok"] [data-app-link="inapp-all"],
#root[data-cta-mode="inapp-glng"] [data-app-link="inapp-all"],
#root[data-cta-mode="inapp-glok"] [data-app-link="inapp-glok"],
#root[data-cta-mode="inapp-glng"] [data-app-link="inapp-glng"] { display: inline-flex !important; }

/* Show price/campaign block only for web and inapp-free */
#root [data-web-or-free] { display: none !important; }
#root[data-cta-mode="web"] [data-web-or-free] { display: block !important; }

/* Fixed CTA: SP mode switching */
[data-sp-cta] { display: none; }
@media (max-width: 767px) {
  #root[data-cta-mode="web"]        [data-sp-cta="web"]        { display: flex; }
  #root[data-cta-mode="inapp-glok"] [data-sp-cta="inapp-glok"] { display: flex; }
  #root[data-cta-mode="inapp-glng"] [data-sp-cta="inapp-glng"] { display: flex; }
}

/* PCでもアプリ内時はSP用CTAを表示 */
@media (min-width: 768px) {
  #root[data-cta-mode="inapp-glok"] [data-sp-cta="inapp-glok"],
  #root[data-cta-mode="inapp-glng"] [data-sp-cta="inapp-glng"] {
    display: flex !important;
  }
  #root[data-cta-mode="web"] #pc-download-btns {
    display: flex !important;
  }
  #root[data-cta-mode="inapp-glok"] #pc-download-btns,
  #root[data-cta-mode="inapp-glng"] #pc-download-btns {
    display: none !important;
  }
}

#root {
    opacity: 0;
}

#root.ready {
    opacity: 1;
    animation: appFadeIn .4s ease-out forwards
}