:root{
  --bgA:#065f46;
  --bgB:#020617;

  --card1-a:#065f46;
  --card1-b:#022c22;

  --card2-a:#1e40af;
  --card2-b:#1e1b4b;

  --card3-a:#0ea5e9;
  --card3-b:#0f172a;

  --accent-yellow:#fbbf24;

  --pill:#4338ca;
  --pill-border:#ffffff;

  --btn-green:#22c55e;
  --btn-shadow:#15803d;

  --white:#ffffff;

  --outline:
    2px 2px 0 #000,
    -2px -2px 0 #000,
    2px -2px 0 #000,
    -2px 2px 0 #000,
    4px 4px 0 rgba(0,0,0,.45);

  --radius: 28px;
  --shadow: 0 16px 36px rgba(0,0,0,.55);
  --shadow-hover: 0 18px 44px rgba(0,0,0,.45);

  --display-alt: "Lilita One", "Luckiest Guy", cursive;

  --t: 260ms;
  --e: cubic-bezier(.2,.85,.2,1);

  --side: 16px;
}

*{ box-sizing:border-box; }
html,body{ height:100%; }

body{
  margin:0;
  padding: clamp(28px, 5vw, 56px) var(--side) 0;
  font-family:"Nunito", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  color: var(--white);
  display:flex;
  flex-direction:column;
  align-items:center;
  background:none;
}

/* fixed full-screen background */
body::before{
  content:"";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at 25% 10%, rgba(255,255,255,.10) 0%, rgba(255,255,255,0) 45%),
    radial-gradient(circle at 80% 30%, rgba(251,191,36,.10) 0%, rgba(251,191,36,0) 40%),
    radial-gradient(circle, var(--bgA) 0%, var(--bgB) 100%);
}

/* Header */
.hero{ width:100%; }
.hero__inner{
  max-width: 980px;
  margin: 0 auto;
  text-align:center;
}

.domain{
  font-weight: 900;
  letter-spacing: .42em;
  opacity: .55;
  font-size: 12px;
  margin-bottom: 10px;
  text-transform: lowercase;
}

h1{
  font-family:"Luckiest Guy", cursive;
  font-size: clamp(30px, 4.6vw, 52px);
  text-align:center;
  letter-spacing: 1.5px;
  text-shadow: var(--outline);
  margin: 0 0 16px;
}

.header-pill{
  font-family:"Luckiest Guy", cursive;
  background: var(--pill);
  border: 4px solid var(--pill-border);
  padding: 10px clamp(22px, 5vw, 60px);
  border-radius: 999px;
  font-size: clamp(20px, 3.2vw, 34px);
  box-shadow: 0 8px 0 rgba(0,0,0,.32);
  margin: 0 auto clamp(26px, 4.5vw, 56px);
  transform: rotate(-1deg);
  display:inline-block;
  user-select:none;
  animation: pillFloat 3.8s ease-in-out infinite;
}
@keyframes pillFloat{
  0%,100%{ transform: rotate(-1deg) translateY(0); }
  50%{ transform: rotate(-1deg) translateY(-4px); }
}

.container{
  width:100%;
  max-width: 920px;
  position:relative;
}

.offers{ padding-bottom: 24px; }

/* Cards (sticker style) */
.card{
  position:relative;
  border-radius: var(--radius);
  padding: clamp(18px, 3.2vw, 30px);
  margin-bottom: 22px;
  overflow: visible;

  border: 4px solid rgba(255,255,255,.70);
  box-shadow:
    0 0 0 4px rgba(0,0,0,.35),
    var(--shadow);

  background:
    radial-gradient(circle at 10% 10%, rgba(255,255,255,.08), transparent 40%),
    linear-gradient(180deg, var(--card1-a) 0%, var(--card1-b) 100%);

  transition:
    transform var(--t) var(--e),
    box-shadow var(--t) var(--e),
    filter var(--t) var(--e);
  will-change: transform;
}

.card--2{
  background:
    radial-gradient(circle at 10% 10%, rgba(255,255,255,.08), transparent 40%),
    linear-gradient(180deg, var(--card2-a) 0%, var(--card2-b) 100%);
}
.card--3{
  background:
    radial-gradient(circle at 10% 10%, rgba(255,255,255,.08), transparent 40%),
    linear-gradient(180deg, var(--card3-a) 0%, var(--card3-b) 100%);
}

/* Soft hover */
@media (hover:hover){
  .card:hover,
  .card:focus-within{
    transform: translateY(-1px);
    box-shadow:
      0 0 0 4px rgba(0,0,0,.35),
      var(--shadow-hover);
    filter: brightness(1.02);
  }
  .card:hover{
    animation: wobble 520ms var(--e) 1;
  }
  @keyframes wobble{
    0%{ transform: translateY(-1px) rotate(0deg); }
    50%{ transform: translateY(-1px) rotate(-0.35deg); }
    100%{ transform: translateY(-1px) rotate(0deg); }
  }
}

/* ✅ Sweep for first two cards: INSIDE ONLY, no transform overflow, no border overlap */
.offers > .card:nth-child(1)::after,
.offers > .card:nth-child(2)::after,
.container > .card:nth-child(1)::after,
.container > .card:nth-child(2)::after{
  content:"";
  position:absolute;
  inset: 4px; /* keeps it off the white border */
  border-radius: calc(var(--radius) - 4px);
  pointer-events:none;
  z-index: 1;

  /* sweep lives inside this layer; we animate background-position only */
  background:
    linear-gradient(
      90deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,.22) 45%,
      rgba(255,255,255,.22) 55%,
      rgba(255,255,255,0) 100%
    );
  background-size: 240% 100%;
  background-position: -140% 0;
  opacity: 0;

  animation: sweepBG 6.8s ease-in-out infinite;
}

/* delay for 2nd */
.offers > .card:nth-child(2)::after,
.container > .card:nth-child(2)::after{
  animation-delay: 1.2s;
}

@keyframes sweepBG{
  0%   { opacity: 0; background-position: -140% 0; }
  10%  { opacity: 1; }
  35%  { opacity: 0; background-position: 140% 0; }
  100% { opacity: 0; background-position: 140% 0; }
}

/* Ensure sweep stays under content but above background */
.card > *{ position:relative; z-index: 2; }

/* Badge */
.number-badge{
  position:absolute;
  left: -18px;
  top: -16px;
  width: 62px;
  height: 62px;

  background: #3b82f6; /* default */
  border: 4px solid #fff;
  border-radius: 16px;

  display:flex;
  align-items:center;
  justify-content:center;

  transform: rotate(-10deg);
  box-shadow: 4px 4px 0 rgba(0,0,0,.33);
  z-index: 10;

  transition: transform 220ms var(--e);
}

/* ✅ First two badges: red + orange */
.offers > .card:nth-child(1) .number-badge,
.container > .card:nth-child(1) .number-badge{ background:#ef4444; }

.offers > .card:nth-child(2) .number-badge,
.container > .card:nth-child(2) .number-badge{ background:#f59e0b; }

.badge-num{
  font-family: var(--display-alt);
  font-size: 28px;
  line-height: 1;
  letter-spacing: .02em;
  transform: translateY(1px);
}

@media (hover:hover){
  .card:hover .number-badge{
    transform: rotate(-10deg) translateY(-2px) scale(1.02);
  }
}

/* Layout */
.card-content{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap: 18px;
  flex-wrap: nowrap;
}

/* Brand logo slot */
.brand-slot{
  width: 180px;
  min-width: 160px;
  height: 54px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}
.brand-slot img{
  max-width: 170px;
  max-height: 46px;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 10px 10px rgba(0,0,0,.25));
  border: 0;
  outline: 0;
}
.brand-slot.is-empty{ opacity: .55; }

.promo-text{
  flex: 1;
  font-size: clamp(16px, 2.1vw, 20px);
  font-weight: 800;
  text-align:center;
  line-height: 1.25;
  padding: 2px 6px;
}
.promo-text span{
  color: var(--accent-yellow);
  font-size: clamp(18px, 2.3vw, 24px);
  display:inline-block;
  transform: translateY(1px);
}

/* ✅ Button without “light spot” overlay */
.btn-claim{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;

  background: var(--btn-green);
  font-family: var(--display-alt);
  color:#fff;
  padding: 14px 22px;
  border-radius: 20px;
  border: none;
  font-size: clamp(18px, 2.2vw, 22px);
  cursor:pointer;

  box-shadow: 0 6px 0 var(--btn-shadow);
  transition:
    transform 180ms var(--e),
    box-shadow 180ms var(--e),
    filter 180ms var(--e);
  text-shadow: 2px 2px 0 rgba(0,0,0,.24);
  white-space: nowrap;
  user-select:none;
  letter-spacing: .04em;
}

@media (hover:hover){
  .btn-claim:hover{
    transform: translateY(1px);
    box-shadow: 0 5px 0 var(--btn-shadow);
    filter: brightness(1.03);
  }
}
.btn-claim:active{
  transform: translateY(3px);
  box-shadow: 0 3px 0 var(--btn-shadow);
}
.btn-claim:focus-visible{
  outline: 4px solid rgba(251,191,36,.85);
  outline-offset: 4px;
}

.divider{
  height: 2px;
  background: rgba(255,255,255,.12);
  margin: 18px 0 14px;
}

.features-list{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px 14px;
  list-style:none;
  margin:0;
  padding:0;
  font-size: 14px;
  font-weight: 800;
  color: rgba(255,255,255,.82);
}
.features-list li{
  display:flex;
  align-items:flex-start;
  gap: 8px;
  line-height: 1.2;
  min-width: 0;
}
.features-list li::before{
  content:"●";
  color: var(--accent-yellow);
  flex: 0 0 auto;
  transform: translateY(1px);
}

.footer-note{
  text-align:center;
  font-size: 11px;
  margin-top: 10px;
  color: rgba(255,255,255,.60);
}

/* Subscribe */
.subscribe{
  margin: 18px 0 26px;
  text-align:center;
  padding: 6px 8px;
}
.subform{
  display:flex;
  justify-content:center;
  gap: 10px;
  flex-wrap: wrap;
  margin: 8px auto 6px;
}
.subform input{
  width: min(420px, 92vw);
  padding: 12px 14px;
  border-radius: 10px;
  border: 2px solid rgba(255,255,255,.18);
  background: rgba(2,6,23,.35);
  color: #fff;
  font-weight: 800;
  outline: none;
  box-shadow: 0 10px 18px rgba(0,0,0,.12);
}
.subform button{
  padding: 12px 18px;
  border-radius: 10px;
  border: 2px solid rgba(255,255,255,.18);
  background: linear-gradient(180deg, #a78bfa, #7c3aed);
  color: #fff;
  font-weight: 900;
  cursor:pointer;
  box-shadow: 0 10px 18px rgba(0,0,0,.12);
  transition: transform 180ms var(--e), filter 180ms var(--e);
}
@media (hover:hover){
  .subform button:hover{ transform: translateY(-1px); filter: brightness(1.05); }
}
.subform button:active{ transform: translateY(0px) scale(.99); }

.seo{
  margin: 10px auto 34px;
  background: rgba(255,255,255,.06);
  border: 2px solid rgba(255,255,255,.10);
  border-radius: 22px;
  padding: 18px 16px;
  box-shadow: 0 14px 28px rgba(0,0,0,.28);
}

/* Footer full-bleed */
.footer{
  width: calc(100% + (var(--side) * 2));
  margin-left: calc(var(--side) * -1);
  margin-right: calc(var(--side) * -1);
  background:#07080b;
}
.footer__inner{
  max-width: 980px;
  margin: 0 auto;
  padding: 22px 14px 34px;
  text-align:center;
}

@media (max-width: 820px){
  .card-content{
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
  }
  .brand-slot{
    width:auto;
    min-width: 0;
    justify-content:center;
    height: 52px;
  }
  .promo-text{ text-align:center; }
  .btn-claim{
    width: 100%;
    padding: 16px 18px;
  }
  .features-list{
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .number-badge{
    left: -10px;
    top: -14px;
    transform: rotate(-8deg);
  }
}

@media (prefers-reduced-motion: reduce){
  .header-pill{ animation: none !important; }
  .card, .number-badge, .btn-claim, .subform button{
    transition: none !important;
    animation: none !important;
  }
  .offers > .card:nth-child(1)::after,
  .offers > .card:nth-child(2)::after,
  .container > .card:nth-child(1)::after,
  .container > .card:nth-child(2)::after{
    animation: none !important;
  }
}

/* ===== Ranking mascots decor ===== */

.offers{
  position: relative; /* anchor for absolute mascots */
}

/* cards above mascots */
.card{
  position: relative;
  z-index: 2;
}

/* mascots layer under cards, inside offers width */
.rank-decor{
  position: absolute;
  left: 0;
  right: 0;

  /* sits above header, slightly overlaps first card */
  top: -120px;

  height: 260px; /* space for mascots */
  pointer-events: none;
  z-index: 1; /* under cards, above background */
}

/* common image style */
.rank-decor__img{
  position: absolute;
  top: 0;
  width: clamp(160px, 18vw, 260px);
  height: auto;
  user-select: none;
  filter: drop-shadow(0 18px 16px rgba(0,0,0,.28));
  transform-origin: center;
  opacity: .98;
}

/* left mascot: slightly outside container, but still anchored to offers */
.rank-decor__img--left{
  left: clamp(-70px, -6vw, -20px);
  animation: mascotFloat 4.8s ease-in-out infinite;
}

/* right mascot */
.rank-decor__img--right{
  right: clamp(-70px, -6vw, -20px);
  animation: mascotFloat2 5.6s ease-in-out infinite;
}

/* subtle float (no appearance animation) */
@keyframes mascotFloat{
  0%,100%{ transform: translateY(0) rotate(-1.2deg); }
  50%{ transform: translateY(-8px) rotate(1.2deg); }
}
@keyframes mascotFloat2{
  0%,100%{ transform: translateY(-2px) rotate(1.4deg); }
  50%{ transform: translateY(-10px) rotate(-1.0deg); }
}

/* Mobile: smaller + keep inside, hide right on very small screens */
@media (max-width: 820px){
  .rank-decor{
    top: -86px;
    height: 180px;
  }
  .rank-decor__img{
    width: clamp(120px, 34vw, 180px);
    filter: drop-shadow(0 14px 12px rgba(0,0,0,.22));
    opacity: .96;
  }
  .rank-decor__img--left{ left: -18px; }
  .rank-decor__img--right{ right: -18px; }
}

@media (max-width: 420px){
  .rank-decor__img--right{ display:none; } /* щоб не тіснило */
  .rank-decor{ top: -78px; height: 160px; }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .rank-decor__img{ animation: none !important; }
}
