.fx-aurora-canvas{
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  z-index:-1;
  pointer-events:none;
  display:block;
  background:#060b09;
  opacity:1;
  contain:strict;
  will-change:transform;
}

@media (prefers-reduced-motion: reduce){
  .fx-aurora-canvas{ opacity:.85; }
}


.reveal { transition-delay: var(--fx-stagger, 0ms); }

.hero-shot.fx-parallax {
  will-change: transform;
  transform: translate3d(0, var(--fx-parallax, 0px), 0);
}

.book.fx-tilt-ready { will-change: transform; }
.book.fx-tilting {
  animation: none;
  transition: transform .12s ease-out;
  transform: rotateY(var(--fx-ry, -28deg)) rotateX(var(--fx-rx, 6deg));
}
.book.fx-tilt-leaving {
  transition: transform .6s cubic-bezier(.2,.8,.2,1);
}

.grad-text.fx-shimmer {
  background-size: 220% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  animation: fx-shimmer 4.2s linear infinite;
}
@keyframes fx-shimmer {
  0%   { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}

.stat .num.fx-counting { will-change: contents; }

@media (prefers-reduced-motion: reduce) {
  .reveal { transition-delay: 0ms !important; }
  .hero-shot.fx-parallax { transform: none !important; }
  .book.fx-tilting, .book.fx-tilt-leaving {
    transform: none !important; animation: none !important;
  }
  .grad-text.fx-shimmer { animation: none !important; background-size: 100% 100%; }
}

.fx-social-stack{
  position:fixed;
  left:18px;
  bottom:18px;
  z-index:60;
  display:flex;
  flex-direction:column;
  gap:10px;
  width:min(340px,calc(100vw - 36px));
  pointer-events:none;
}
.fx-social-stack > *{ pointer-events:auto; }

.fx-social-live{
  display:inline-flex;
  align-items:center;
  gap:9px;
  align-self:flex-start;
  max-width:100%;
  padding:8px 12px 8px 11px;
  border-radius:999px;
  background:rgba(14,26,21,.86);
  border:1px solid rgba(255,255,255,.08);
  color:#eaf3ee;
  font:600 12.5px/1.2 'Inter',system-ui,sans-serif;
  letter-spacing:.1px;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  box-shadow:0 8px 26px rgba(0,0,0,.38);
  transform:translateY(8px);
  opacity:0;
  transition:opacity .45s ease,transform .45s ease;
}
.fx-social-live.fx-in{ opacity:1; transform:translateY(0); }
.fx-social-live .fx-live-dot{
  width:9px;height:9px;border-radius:50%;
  background:#19e08a;flex:none;
  box-shadow:0 0 0 0 rgba(25,224,138,.55);
  animation:fx-live-pulse 2.2s ease-out infinite;
}
.fx-social-live b{ color:#b6ff5b; font-weight:700; }
.fx-social-live .fx-live-x{
  margin-left:2px;
  width:18px;height:18px;flex:none;
  display:grid;place-items:center;
  border:0;border-radius:50%;
  background:transparent;color:#9fb3a8;
  font-size:14px;line-height:1;cursor:pointer;
  transition:color .2s ease,background .2s ease;
}
.fx-social-live .fx-live-x:hover{ color:#eaf3ee; background:rgba(255,255,255,.08); }

@keyframes fx-live-pulse{
  0%{ box-shadow:0 0 0 0 rgba(25,224,138,.5); }
  70%{ box-shadow:0 0 0 7px rgba(25,224,138,0); }
  100%{ box-shadow:0 0 0 0 rgba(25,224,138,0); }
}

.fx-social-card{
  display:flex;
  align-items:center;
  gap:11px;
  padding:11px 12px;
  border-radius:14px;
  background:linear-gradient(180deg,#0e1a15,#0b1611);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 14px 34px rgba(0,0,0,.46);
  color:#eaf3ee;
  font:500 13px/1.35 'Inter',system-ui,sans-serif;
  transform:translateX(-115%);
  opacity:0;
  transition:transform .5s cubic-bezier(.22,.9,.32,1),opacity .5s ease;
  will-change:transform,opacity;
}
.fx-social-card.fx-in{ transform:translateX(0); opacity:1; }
.fx-social-card.fx-out{ transform:translateX(-115%); opacity:0; }

.fx-social-card .fx-av{
  width:38px;height:38px;flex:none;
  border-radius:50%;
  display:grid;place-items:center;
  font:800 16px/1 'Plus Jakarta Sans','Inter',sans-serif;
  color:#042017;
  box-shadow:0 4px 12px rgba(0,0,0,.35),inset 0 0 0 1.5px rgba(255,255,255,.18);
}
.fx-social-card .fx-body{ min-width:0; }
.fx-social-card .fx-line{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;
}
.fx-social-card .fx-line b{ color:#eaf3ee; font-weight:700; }
.fx-social-card .fx-meta{
  margin-top:3px;
  display:flex;align-items:center;gap:6px;
  color:#9fb3a8;font-size:11.5px;
}
.fx-social-card .fx-check{ color:#19e08a; flex:none; }
.fx-social-card .fx-ago{ color:#ffce4d; }

@media (max-width:560px){
  .fx-social-stack{
    left:10px;bottom:12px;
    width:min(300px,calc(100vw - 20px));
  }
}
@media (max-height:560px){
  .fx-social-stack{ display:none !important; }
}

@media (prefers-reduced-motion:reduce){
  .fx-social-live,
  .fx-social-card{ transition-duration:.001s; }
  .fx-social-live .fx-live-dot{ animation:none; }
}

.fx-confetti-canvas{
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
  z-index:9999;
  display:block;
}
@media (prefers-reduced-motion: reduce){
  .fx-confetti-canvas{z-index:9999}
}


.fx-stickybar{
  position:fixed; left:0; right:0; bottom:0; z-index:60;
  background:linear-gradient(180deg,rgba(14,26,21,.92),rgba(6,11,9,.98));
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-top:1px solid rgba(255,255,255,.08);
  box-shadow:0 -14px 40px rgba(0,0,0,.45);
  transform:translateY(110%);
  transition:transform .42s cubic-bezier(.22,1,.36,1);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));
  will-change:transform;
}
.fx-stickybar.fx-show{ transform:translateY(0); }
.fx-sb-inner{
  max-width:1180px; margin:0 auto; display:flex; align-items:center; gap:14px;
}
.fx-sb-cover{
  flex:0 0 auto; width:46px; height:46px; border-radius:12px;
  display:grid; place-items:center;
  background:linear-gradient(135deg,#19e08a,#b6ff5b);
  box-shadow:0 6px 18px rgba(25,224,138,.35);
}
.fx-sb-cover svg{ width:24px; height:24px; }
.fx-sb-info{ flex:1 1 auto; min-width:0; line-height:1.2; }
.fx-sb-title{
  font-weight:800; color:#eaf3ee; font-size:15px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.fx-sb-price{ display:flex; align-items:baseline; gap:8px; margin-top:2px; }
.fx-sb-price b{ color:#19e08a; font-size:16px; font-weight:800; }
.fx-sb-price s{ color:#9fb3a8; font-size:12.5px; text-decoration:line-through; }
.fx-sb-cta{
  flex:0 0 auto; cursor:pointer; border:0; border-radius:12px;
  padding:12px 20px; font-weight:800; font-size:14.5px; color:#042017;
  background:linear-gradient(135deg,#19e08a,#07c977);
  box-shadow:0 8px 22px rgba(25,224,138,.35);
  transition:transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.fx-sb-cta:hover{ filter:brightness(1.05); box-shadow:0 10px 26px rgba(25,224,138,.5); }
.fx-sb-cta:active{ transform:translateY(1px) scale(.99); }
.fx-sb-sentinel{
  position:absolute; left:0; bottom:0; width:1px; height:1px;
  pointer-events:none; opacity:0;
}

@media (max-width:640px){
  .fx-sb-cover{ width:40px; height:40px; }
  .fx-sb-cover svg{ width:20px; height:20px; }
  .fx-sb-title{ font-size:13.5px; }
  .fx-sb-price b{ font-size:14.5px; }
  .fx-sb-cta{ padding:11px 14px; font-size:13px; }
}
@media (max-width:380px){
  .fx-sb-info{ display:none; }
}

.fx-exit{ position:fixed; inset:0; z-index:120; display:grid; place-items:center; }
.fx-exit-overlay{
  position:absolute; inset:0; background:rgba(3,7,5,.72);
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
  opacity:0; transition:opacity .3s ease;
}
.fx-exit.fx-show .fx-exit-overlay{ opacity:1; }
.fx-exit-box{
  position:relative; z-index:1; width:min(92vw,440px);
  background:linear-gradient(180deg,#0e1a15,#091310);
  border:1px solid rgba(255,255,255,.08);
  border-radius:20px; padding:34px 28px 26px; text-align:center;
  box-shadow:0 30px 80px rgba(0,0,0,.6), 0 0 0 1px rgba(25,224,138,.12) inset;
  transform:translateY(18px) scale(.96); opacity:0;
  transition:transform .42s cubic-bezier(.22,1,.36,1), opacity .32s ease;
}
.fx-exit.fx-show .fx-exit-box{ transform:translateY(0) scale(1); opacity:1; }
.fx-exit-x{
  position:absolute; top:12px; right:12px; width:36px; height:36px;
  border:0; border-radius:10px; cursor:pointer;
  background:rgba(255,255,255,.06); color:#eaf3ee; display:grid; place-items:center;
  transition:background .15s ease;
}
.fx-exit-x:hover{ background:rgba(255,255,255,.14); }
.fx-exit-x svg{ width:18px; height:18px; }
.fx-exit-eyebrow{
  display:inline-block; font-size:12px; font-weight:700; letter-spacing:.04em;
  color:#ffce4d; margin-bottom:10px;
}
.fx-exit-title{ font-size:27px; line-height:1.1; color:#eaf3ee; font-weight:800; }
.fx-exit-title span{
  background:linear-gradient(135deg,#19e08a,#b6ff5b);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.fx-exit-sub{ color:#9fb3a8; font-size:14px; line-height:1.5; margin:12px 4px 22px; }
.fx-exit-coupon{
  display:flex; align-items:center; gap:12px; width:100%;
  border:1.5px dashed rgba(25,224,138,.55); border-radius:14px;
  background:rgba(25,224,138,.06); padding:12px 16px; margin-bottom:14px;
  cursor:pointer; transition:background .15s ease, border-color .15s ease;
}
.fx-exit-coupon:hover{ background:rgba(25,224,138,.12); border-color:#19e08a; }
.fx-exit-coupon-label{
  font-size:10.5px; font-weight:700; letter-spacing:.12em; color:#9fb3a8;
}
.fx-exit-coupon-code{
  flex:1 1 auto; text-align:left; font-size:20px; font-weight:800;
  letter-spacing:.08em; color:#b6ff5b;
}
.fx-exit-coupon-copy{
  font-size:12px; font-weight:700; color:#19e08a; text-transform:uppercase;
}
.fx-exit-coupon.fx-copied .fx-exit-coupon-copy{ color:#ffce4d; }
.fx-exit-coupon.fx-copied .fx-exit-coupon-copy::after{ content:' \2713'; }
.fx-exit-go{
  width:100%; cursor:pointer; border:0; border-radius:13px;
  padding:14px; font-weight:800; font-size:15.5px; color:#042017;
  background:linear-gradient(135deg,#19e08a,#07c977);
  box-shadow:0 10px 26px rgba(25,224,138,.32);
  transition:filter .15s ease, transform .12s ease;
}
.fx-exit-go:hover{ filter:brightness(1.05); }
.fx-exit-go:active{ transform:translateY(1px); }
.fx-exit-dismiss{
  margin-top:12px; background:none; border:0; cursor:pointer;
  color:#9fb3a8; font-size:12.5px; text-decoration:underline; text-underline-offset:2px;
}
.fx-exit-dismiss:hover{ color:#eaf3ee; }

@media (max-width:420px){
  .fx-exit-box{ padding:30px 20px 22px; }
  .fx-exit-title{ font-size:23px; }
  .fx-exit-coupon-code{ font-size:17px; }
}

@media (prefers-reduced-motion: reduce){
  .fx-stickybar{ transition:none; }
  .fx-exit-overlay,
  .fx-exit-box{ transition:opacity .01ms linear; transform:none; }
  .fx-exit.fx-show .fx-exit-box{ transform:none; }
}
