  /* ===== PROMO MODAL ===== */
  .promo-overlay{
    position:fixed;inset:0;z-index:300;
    background:rgba(2,3,10,.82);backdrop-filter:blur(8px);
    display:flex;align-items:center;justify-content:center;
    padding:24px;
    opacity:0;pointer-events:none;
    transition:opacity .35s ease;
  }
  .promo-overlay.open{opacity:1;pointer-events:auto;}
  .promo-modal{
    position:relative;width:100%;max-width:920px;max-height:94vh;overflow:hidden;
    border-radius:32px;padding:clamp(24px,4.5vh,52px) clamp(24px,4.5vw,52px);
    background:
      radial-gradient(ellipse 60% 50% at 15% 10%, rgba(90,140,255,.25), transparent 60%),
      radial-gradient(ellipse 55% 55% at 90% 90%, rgba(168,112,255,.25), transparent 60%),
      linear-gradient(160deg,#080b22,#0b0f2c 55%,#100a30);
    border:1px solid rgba(138,124,255,.4);
    box-shadow:
      0 0 0 1px rgba(138,124,255,.1) inset,
      0 0 0 1.5px rgba(90,170,255,.3),
      0 0 50px rgba(90,170,255,.2),
      0 0 90px rgba(168,112,255,.18),
      0 30px 90px rgba(0,0,0,.65);
    color:#fff;
    transform:scale(.92) translateY(10px);
    transition:transform .35s cubic-bezier(.2,.9,.3,1.3);
  }
  .promo-overlay.open .promo-modal{transform:scale(1) translateY(0);}
  .promo-close{
    position:absolute;top:22px;right:22px;z-index:6;
    width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.22);
    background:rgba(255,255,255,.07);color:#fff;font-size:16px;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    transition:background .2s ease, transform .2s ease;
  }
  .promo-close:hover{background:rgba(255,255,255,.18);}
  .promo-close span.close-ic{font-size:20px;line-height:1;}

  /* Minimized floating orb */
  .promo-orb{
    position:fixed;bottom:26px;right:26px;z-index:290;
    display:flex;align-items:center;justify-content:flex-end;flex-direction:row-reverse;
    cursor:pointer;
    transform:scale(0);opacity:0;pointer-events:none;
    transform-origin:right center;
    transition:transform .3s cubic-bezier(.2,.9,.3,1.3), opacity .25s ease;
  }
  .promo-orb.visible{transform:scale(1);opacity:1;pointer-events:auto;}
  body.mobile-nav-active .promo-orb{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:scale(.88)!important;}
  .promo-orb-ring{
    position:absolute;inset:-10px;border-radius:999px;
    border:1px solid rgba(138,124,255,.3);
    pointer-events:none;
  }
  .promo-orb-ring::before{
    content:'';position:absolute;inset:-9px;border-radius:999px;
    border:1px solid rgba(138,124,255,.18);
  }
  .promo-orb-ball{
    position:relative;z-index:2;flex-shrink:0;
    width:50px;height:50px;border-radius:50%;
    background:radial-gradient(circle at 32% 28%, #7a9bff, #4f6bf0 45%, #3550c8 78%, #2538a0 100%);
    box-shadow:
      0 8px 22px rgba(0,0,0,.4),
      inset 0 -5px 10px rgba(0,0,30,.3),
      inset 0 5px 8px rgba(255,255,255,.35),
      0 0 0 0 rgba(107,140,255,.5),
      0 0 22px rgba(90,120,255,.55);
    border:1.5px solid rgba(255,255,255,.3);
    display:flex;align-items:center;justify-content:center;
  }
  /* The expanding ring is a separate layer that grows and fades (scale and opacity only), instead of animating box-shadow on every frame. */
  .promo-orb-ball::after{
    content:'';position:absolute;inset:0;border-radius:50%;pointer-events:none;opacity:0;
    background:radial-gradient(circle,transparent 64%,rgba(107,140,255,.55) 66%);
    animation:promo-orb-ring 2.8s ease-in-out infinite;
  }
  .promo-orb-ball svg{width:21px;height:21px;}
  .promo-orb:hover .promo-orb-ball{transform:scale(1.04);}
  @keyframes promo-orb-ring{0%{opacity:.9;scale:1;}70%{opacity:0;scale:1.5;}100%{opacity:0;scale:1.5;}}
  .promo-orb .orb-badge{
    position:absolute;top:-4px;right:-4px;z-index:3;
    min-width:24px;height:18px;border-radius:999px;padding:0 5px;
    background:linear-gradient(135deg,#ff6a9e,#e0457c);color:#fff;font-size:9.5px;font-weight:800;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 0 0 2.5px #080b22, 0 4px 8px rgba(224,69,124,.5);
  }
  .promo-orb-expand{
    position:relative;z-index:1;margin-right:-25px;
    display:flex;align-items:center;gap:8px;
    height:50px;padding-right:34px;padding-left:0;
    border-radius:999px;
    background:linear-gradient(270deg, rgba(60,80,220,0), rgba(70,90,230,.92) 42%, rgba(120,80,230,.92));
    box-shadow:0 8px 22px rgba(0,0,0,.35), 0 0 22px rgba(90,120,255,.4);
    white-space:nowrap;overflow:hidden;
    max-width:0;opacity:0;
    transition:max-width .32s cubic-bezier(.2,.8,.3,1.1), opacity .25s ease, padding-left .32s ease;
  }
  .promo-orb:hover .promo-orb-expand{max-width:230px;opacity:1;padding-left:18px;}
  .promo-orb-expand .oe-title{color:#fff;font-weight:800;font-size:13px;font-family:'Baloo 2',sans-serif;}
  .promo-orb-expand .oe-link{
    display:inline-flex;align-items:center;gap:5px;
    color:#dbe2ff;font-size:11px;font-weight:600;font-family:'Nunito',sans-serif;
  }

  /* Genie-style minimize/restore */
  .promo-modal.genie-out{
    animation:genie-minimize .45s cubic-bezier(.5,0,.75,0) forwards;
  }
  .promo-modal.genie-in{
    animation:genie-restore .4s cubic-bezier(.2,.8,.3,1.1) forwards;
  }
  @keyframes genie-minimize{
    0%{transform:scale(1) translate(0,0);opacity:1;}
    60%{opacity:.7;}
    100%{
      transform:scale(.05) translate(var(--genie-x,45vw), var(--genie-y,45vh));
      opacity:0;
    }
  }
  @keyframes genie-restore{
    0%{
      transform:scale(.05) translate(var(--genie-x,45vw), var(--genie-y,45vh));
      opacity:0;
    }
    40%{opacity:1;}
    100%{transform:scale(1) translate(0,0);opacity:1;}
  }
  .promo-orb.popping{animation:orb-pop .4s cubic-bezier(.3,1.6,.4,1) forwards;}
  @keyframes orb-pop{
    0%{transform:scale(.2);opacity:0;}
    60%{transform:scale(1.15);opacity:1;}
    100%{transform:scale(1);opacity:1;}
  }

  @media(max-width:560px){
    .promo-orb-ball{width:44px;height:44px;}
    .promo-orb-ball svg{width:18px;height:18px;}
    .promo-orb-expand{height:44px;}
  }
  .promo-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(24px,4vh,46px);align-items:center;position:relative;}
  .promo-visual{position:relative;height:clamp(220px,38vh,340px);display:flex;align-items:center;justify-content:center;}
  .promo-sparkle{
    position:absolute;border-radius:50%;background:#fff;
    box-shadow:0 0 10px 2px rgba(255,255,255,.8);
    animation:promo-twinkle ease-in-out infinite;
  }
  @keyframes promo-twinkle{0%,100%{opacity:.15;transform:scale(.7);}50%{opacity:1;transform:scale(1.3);}}
  .promo-badge{
    display:inline-flex;align-items:center;gap:8px;
    background:linear-gradient(90deg,#ffc14d,#ff8a3d);color:#2a1a00;
    font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
    padding:8px 18px;border-radius:999px;margin-bottom:22px;
    box-shadow:0 8px 20px rgba(255,176,32,.35);
  }
  .promo-card{
    position:absolute;z-index:3;
    background:linear-gradient(160deg, rgba(60,90,220,.28), rgba(30,40,110,.35));
    border:1.5px solid rgba(160,190,255,.55);border-radius:16px;
    padding:16px 22px 16px 16px;display:flex;align-items:center;gap:14px;
    box-shadow:0 18px 40px rgba(0,0,0,.4), 0 0 30px rgba(107,150,255,.4), inset 0 1px 0 rgba(255,255,255,.2);
    backdrop-filter:blur(10px);
    animation:promo-float 4.5s ease-in-out infinite;
  }
  .promo-card .p-ic{
    width:46px;height:46px;border-radius:12px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;font-size:21px;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.3), 0 0 16px rgba(90,150,255,.5);
  }
  .promo-card b{font-size:21px;font-family:'Baloo 2',sans-serif;display:block;line-height:1.1;}
  .promo-card span.p-sub{font-size:12px;color:#c7d2ff;display:block;font-family:'Nunito',sans-serif;line-height:1.35;max-width:150px;}
  .promo-card.p1{top:4%;left:-6%;transform:rotate(-6deg);}
  .promo-card.p1 .p-ic{background:linear-gradient(135deg,#3f5fe0,#6a86ff);}
  .promo-card.p2{
    bottom:10%;right:-10%;transform:rotate(4deg);animation-delay:.8s;
    background:linear-gradient(160deg, rgba(140,90,230,.3), rgba(70,40,130,.38));
    border-color:rgba(210,180,255,.55);
  }
  .promo-card.p2 .p-ic{background:linear-gradient(135deg,#8a4fe0,#c084fc);box-shadow:inset 0 0 0 1px rgba(255,255,255,.3), 0 0 16px rgba(192,132,252,.5);}
  @keyframes promo-float{0%,100%{transform:translateY(0) rotate(var(--rot,0deg));}50%{transform:translateY(-12px) rotate(var(--rot,0deg));}}
  .promo-coin-wrap{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;}
  .promo-coin{
    position:relative;width:clamp(120px,22vh,180px);height:clamp(120px,22vh,180px);border-radius:50%;
    background:radial-gradient(circle at 35% 28%, #fff3cf, #ffc02e 45%, #e08a10 75%, #a85f08 100%);
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    box-shadow:0 0 70px rgba(255,176,32,.7), inset 0 -10px 22px rgba(0,0,0,.3), inset 0 8px 14px rgba(255,255,255,.5);
    color:#3a2200;font-family:'Baloo 2',sans-serif;
    animation:coin-pulse 3s ease-in-out infinite;
  }
  @keyframes coin-pulse{0%,100%{box-shadow:0 0 70px rgba(255,176,32,.7), inset 0 -10px 22px rgba(0,0,0,.3), inset 0 8px 14px rgba(255,255,255,.5);}50%{box-shadow:0 0 100px rgba(255,176,32,.95), inset 0 -10px 22px rgba(0,0,0,.3), inset 0 8px 14px rgba(255,255,255,.5);}}
  .promo-coin .coin-num{font-size:clamp(28px,5.4vh,44px);font-weight:800;line-height:1;}
  .promo-coin .coin-lbl{font-size:clamp(12px,2vh,16px);font-weight:800;letter-spacing:.04em;}
  .promo-coin-base{
    width:clamp(100px,18vh,150px);height:22px;border-radius:50%;margin-top:-14px;
    background:radial-gradient(ellipse at center, rgba(107,92,248,.45), transparent 75%);
    filter:blur(2px);
  }
  .promo-orbit{
    position:absolute;width:clamp(200px,34vh,280px);height:clamp(200px,34vh,280px);border-radius:50%;
    border:1px solid rgba(138,124,255,.35);
    box-shadow:inset 0 0 40px rgba(138,124,255,.12);
  }
  .promo-orbit::before,.promo-orbit::after{
    content:'';position:absolute;border-radius:50%;
    border:1px solid rgba(138,124,255,.2);
  }
  .promo-orbit::before{inset:-26px;}
  .promo-orbit::after{inset:-52px;}
  .promo-dot{
    position:absolute;border-radius:50%;
    background:radial-gradient(circle at 35% 30%, #c084fc, #6a3fd8 70%);
    box-shadow:0 0 24px rgba(192,132,252,.8);
  }
  .promo-dot.d1{width:18px;height:18px;top:14%;right:8%;}
  .promo-dot.d2{width:12px;height:12px;bottom:10%;left:10%;}
  .promo-cap{font-size:clamp(22px,4vh,34px);margin-bottom:clamp(4px,1vh,12px);filter:drop-shadow(0 4px 14px rgba(90,140,255,.5));}
  .promo-content h3{font-size:clamp(22px,4.4vh,38px);line-height:1.2;font-weight:800;margin-bottom:clamp(5px,1.2vh,12px);font-family:'Baloo 2',sans-serif;}
  .promo-content h3 .grad{
    background:linear-gradient(90deg,#7c9bff,#c084fc);
    -webkit-background-clip:text;background-clip:text;color:transparent;
  }
  .promo-content .promo-sub{color:#aab4e0;font-size:14px;margin-bottom:clamp(10px,2.4vh,26px);font-family:'Nunito',sans-serif;}
  .promo-save{
    background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);
    border-radius:18px;padding:clamp(10px,2vh,20px) 24px;margin-bottom:clamp(8px,1.6vh,18px);
    display:flex;align-items:baseline;gap:12px;
  }
  .promo-save .save-lbl{font-size:16px;font-weight:700;font-family:'Baloo 2',sans-serif;}
  .promo-save .save-num{
    font-size:clamp(30px,4.4vh,46px);font-weight:800;font-family:'Baloo 2',sans-serif;
    background:linear-gradient(90deg,#7c9bff,#c084fc);
    -webkit-background-clip:text;background-clip:text;color:transparent;
  }
  .promo-code{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    background:rgba(255,255,255,.06);border:1.5px dashed rgba(138,124,255,.6);
    border-radius:14px;padding:clamp(8px,1.6vh,15px) 20px;margin-bottom:clamp(10px,2vh,22px);
  }
  .promo-code .code-label{display:flex;align-items:center;gap:9px;font-size:13.5px;color:#aab4e0;font-family:'Nunito',sans-serif;}
  .coupon-ic{width:19px;height:19px;flex-shrink:0;}
  .promo-code .code-value{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:17px;letter-spacing:.03em;color:#fff;}
  .promo-code-copy{
    background:rgba(138,124,255,.2);border:1px solid rgba(138,124,255,.45);
    color:#c6d0ff;border-radius:9px;width:34px;height:34px;
    display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;
    transition:background .2s ease;font-size:14px;
  }
  .promo-code-copy:hover{background:rgba(138,124,255,.35);}
  .promo-cta{
    display:block;width:100%;text-align:center;
    background:linear-gradient(90deg,#3b6bf5,#8b5cf6);color:#fff;
    font-family:'Baloo 2',sans-serif;font-weight:700;font-size:16px;
    padding:clamp(12px,2.2vh,18px);border-radius:999px;border:none;cursor:pointer;
    box-shadow:0 14px 34px rgba(107,92,248,.45);
    transition:transform .2s ease;margin-bottom:clamp(10px,2.4vh,26px);
  }
  .promo-cta:hover{transform:translateY(-2px);}
  .promo-features{
    display:flex;gap:16px;flex-wrap:wrap;
    border-top:1px solid rgba(255,255,255,.12);padding-top:22px;
  }
  .promo-features .pf-item{
    display:flex;flex-direction:column;align-items:flex-start;gap:9px;
    font-size:12.5px;color:#d7dbf0;font-family:'Nunito',sans-serif;font-weight:600;
    flex:1;min-width:120px;
  }
  .promo-features .pf-ic{
    width:38px;height:38px;border-radius:11px;
    background:rgba(138,124,255,.16);border:1px solid rgba(138,124,255,.3);
    display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;
  }

  @media(max-width:860px){
    .promo-modal{max-width:640px;}
  }
  @media(max-width:720px){
    .promo-grid{grid-template-columns:1fr;}
    .promo-visual{height:260px;}
    .promo-modal{padding:32px 24px;}
    .promo-content h3{font-size:28px;}
    .promo-features{gap:20px;}
    .promo-features .pf-item{flex-direction:row;align-items:center;}
  }
