:root{
  --teal:#118d85;
  --text:#ffffff;
  --accent:#f3bf3c;
  --pill:#0e736d;
  --box:#0a5b56;
  --boxText:#ffcc3d;
}

*{ box-sizing:border-box; }

.bannercc{
  width:100%;
  background:var(--teal);
  color:var(--text);
  border-radius: 0px 0px 0px 0px;
  padding: 5px 0px 0px;
  position: relative;
  overflow:hidden;
  isolation:isolate;
}

/* --- Firecracker layer --- */
.fx{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
}

/* soft glowing haze */
.fx::before{
  content:"";
  position:absolute;
  inset:-40%;
  background:
    radial-gradient(circle at 20% 40%, rgba(255,255,255,.14), transparent 45%),
    radial-gradient(circle at 80% 20%, rgba(255,255,255,.12), transparent 45%),
    radial-gradient(circle at 75% 80%, rgba(255,255,255,.10), transparent 50%);
  filter: blur(1px);
  opacity:.9;
}

/* Each burst */
.burst{
  position:absolute;
  width:8px;
  height:8px;
  left:var(--x);
  top:var(--y);
  transform: translate(-50%, -50%);
}

/* a faint core flash */
.burst::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:999px;
  background: rgba(255,255,255,.85);
  transform: scale(0);
  opacity:0;
  animation: coreFlash var(--dur) ease-out infinite;
  animation-delay: var(--delay);
}

/* 10 spark rays per burst */
.spark{
  position:absolute;
  left:50%;
  top:50%;
  width:3px;
  height:3px;
  border-radius:999px;
  background: rgba(255,255,255,.9);
  transform: translate(-50%,-50%) rotate(var(--a)) translateX(0) scale(1);
  opacity:0;
  filter: drop-shadow(0 0 6px rgba(255,255,255,.55));
  animation: sparkFly var(--dur) ease-out infinite;
  animation-delay: var(--delay);
}

/* add some yellow sparks too */
.spark.is-gold{
  background: rgba(255,204,61,.95);
  filter: drop-shadow(0 0 7px rgba(255,204,61,.55));
}

@keyframes coreFlash{
  0%   { transform: scale(0); opacity:0; }
  8%   { transform: scale(1.6); opacity:.9; }
  18%  { transform: scale(2.4); opacity:.25; }
  28%  { transform: scale(3.2); opacity:0; }
  100% { transform: scale(3.2); opacity:0; }
}

@keyframes sparkFly{
  0%   { opacity:0; transform: translate(-50%,-50%) rotate(var(--a)) translateX(0) scale(1); }
  10%  { opacity:1; }
  30%  { opacity:.95; transform: translate(-50%,-50%) rotate(var(--a)) translateX(var(--r)) scale(1); }
  60%  { opacity:.25; transform: translate(-50%,-50%) rotate(var(--a)) translateX(calc(var(--r) * 1.35)) scale(.9); }
  80%  { opacity:0; transform: translate(-50%,-50%) rotate(var(--a)) translateX(calc(var(--r) * 1.55)) scale(.8); }
  100% { opacity:0; transform: translate(-50%,-50%) rotate(var(--a)) translateX(calc(var(--r) * 1.55)) scale(.8); }
}

/* --- Content layer --- */
.banner__inner{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
}

.content{ text-align:left; }

.titleRow{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
}

.title{
  margin:0;
  font-weight:700;
  letter-spacing:.6px;
  text-transform:uppercase;
  font-size: 23px;
  line-height:1.1;
  white-space:nowrap;
  padding: 0px;
}

.sub{
  margin:8px 0 0;
  font-size:20px;
  line-height:1.35;
  opacity:.95;
  color: #fff !important;
}

.hl, .hl2{
  color:var(--accent);
  font-weight: 700;
  font-family: 'Inter' !important;
}

/* Countdown capsule */
.countdown{
  display:flex;
  align-items:center;
  gap:8px;
  border: none;
  /* background:var(--pill); */
  border-radius: 5px;
  padding:8px 10px;
  /* box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); */
}

.box{
  background:var(--box);
  border-radius: 5px;
  padding: 7px 0px 7px;
  min-width: 50px;
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:4px;
  line-height:1;
}

.num{
  color:var(--boxText);
  font-weight: 700;
  font-size: 18px;
  letter-spacing:.2px;
  font-variant-numeric: tabular-nums;
}

.unit{
  color:rgba(255,255,255,.85);
  font-weight:700;
  font-size:13px;
  transform: translateY(-1px);
}

@media (max-width: 900px){
  .title{ font-size:20px; line-height: 35px !important; white-space:normal; }
  .sub{ font-size:16px; margin: 5px 0px 0px 0px !important; }
  .box{ min-width:48px; padding:7px 9px 6px; }
  .num{ font-size:18px; }
  .unit{ font-size:12px; }
  .bannercc{ padding:10px 18px; }
  .titleRow {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0px !important;
    flex-wrap: wrap;
  }
  .content {
    position: relative;
    color: #FEFEFE;
    padding: 0px 0 0px 0 !IMPORTANT;
  }
}

@media (max-width: 560px){
  .countdown{ padding:7px 8px; gap:7px; }
  .box{ min-width:44px; border-radius:8px; }
}