:root{
  --bg:#000000;
  --bg2:#000000;
  --panel:#07111d;
  --panel2:#0a1625;
  --panel3:#0d1b2c;
  --line:#48b7ff24;
  --line-strong:#56c4ff5c;
  --text:#f4f8ff;
  --muted:#90a8c8;
  --blue:#29b9ff;
  --blue2:#1389ff;
  --cyan:#60d8ff;
  --shadow:#00000088;
  --chip:#0b2034;
  --chat-green:#1ABD0B;
  --score-green:#1AB80B;
}

*{box-sizing:border-box}

html,body{
  width:100%;
  height:100%;
  margin:0;
  background:transparent;
  font-family:"Orbitron", "Segoe UI", Roboto, Arial, sans-serif;
  font-weight:700;
}

body{
  color:var(--text);
  overflow:hidden;
}

/* =========================
   GLOBAL BACKGROUND
========================= */
#bgGlow{
  position:fixed;
  inset:0;
  pointer-events:none;
  background:#000000;
  overflow:hidden;
}

#bgGlow::before{
  content:"";
  position:absolute;
  inset:0;
  background:none;
  transform:none;
  opacity:0;
}

#bgGlow::after{
  content:"";
  position:absolute;
  inset:0;
  background:none;
  opacity:0;
}

.wrap{
  width:1920px;
  height:1080px;
  padding:28px 44px;
  background:transparent;
}

/* =========================
   LAYOUT
========================= */
.layout{
  display:grid;
  grid-template-columns:260px 1fr 760px;
  grid-template-rows:240px auto 1fr;
  gap:18px;
  align-items:stretch;
}

#seasonCard{grid-column:1;grid-row:1}
#winnerCard{grid-column:2;grid-row:1}
#chatCard{
  grid-column:3;
  grid-row:1 / span 2;
  margin-bottom:-112px;
}
#sessionCard{
  grid-column:1 / span 2;
  grid-row:2 / span 2;
}
#roundCard{
  grid-column:3;
  grid-row:3;
  height:calc(100% - 118px);
  align-self:end;
}

/* =========================
   PANEL / CARD
========================= */
.card{
  position:relative;
  overflow:hidden;
  border-radius:26px;
  border:1px solid var(--line);
  background:
    linear-gradient(145deg, rgba(9,20,33,.96) 0%, rgba(6,14,25,.96) 42%, rgba(8,19,34,.98) 100%);
  box-shadow:
    0 18px 52px rgba(0,0,0,.52),
    inset 0 1px 0 rgba(255,255,255,.035),
    inset 0 0 0 1px rgba(255,255,255,.008);
}

.card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(135deg, rgba(255,255,255,.045) 0%, transparent 20%, transparent 74%, rgba(255,255,255,.025) 100%);
  opacity:.52;
}

.card::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(500px 200px at 90% 0%, rgba(42,185,255,.08) 0%, transparent 60%),
    radial-gradient(450px 180px at 0% 100%, rgba(22,119,255,.07) 0%, transparent 60%);
  opacity:.75;
}

/* =========================
   FLASH EFFECTS
========================= */
.flash-red{
  animation:flashRed .6s linear infinite;
}
.flash-green{
  animation:flashGreen .6s linear infinite;
}
.flash-timer{
  animation:flashTimer .6s ease-in-out infinite;
}
.season-tick{
  animation:seasonStrokePulse .75s ease-in-out;
}

@keyframes flashRed{
  0%,100%{
    border:1px solid var(--line);
    box-shadow:
      0 18px 52px rgba(0,0,0,.52),
      inset 0 1px 0 rgba(255,255,255,.035);
  }
  50%{
    border:2px solid rgba(255,78,78,.92);
    box-shadow:
      0 0 0 1px rgba(255,78,78,.16),
      0 0 18px rgba(255,78,78,.12),
      0 18px 52px rgba(0,0,0,.52),
      inset 0 1px 0 rgba(255,255,255,.035);
  }
}
@keyframes flashGreen{
  0%,100%{
    border:3px solid var(--chat-green);
    box-shadow:
      0 18px 52px rgba(0,0,0,.52),
      inset 0 1px 0 rgba(255,255,255,.035);
  }
  50%{
    border:3px solid #2ce41a;
    box-shadow:
      0 0 0 1px rgba(26,189,11,.16),
      0 0 18px rgba(26,189,11,.12),
      0 18px 52px rgba(0,0,0,.52),
      inset 0 1px 0 rgba(255,255,255,.035);
  }
}
@keyframes flashTimer{
  0%,100%{
    color:#ffffffee;
    text-shadow:
      0 0 8px rgba(255,255,255,.10),
      0 0 12px rgba(41,185,255,.08);
  }
  50%{
    color:#ff4e4e;
    text-shadow:
      0 0 8px rgba(255,78,78,.20),
      0 0 14px rgba(255,78,78,.14);
  }
}
@keyframes seasonStrokePulse{
  0%{
    border:2px solid rgba(26,184,11,.82);
    box-shadow:
      0 0 0 0 rgba(26,184,11,.00),
      0 18px 52px rgba(0,0,0,.52),
      inset 0 1px 0 rgba(255,255,255,.035);
  }
  50%{
    border:2px solid rgba(26,184,11,1);
    box-shadow:
      0 0 0 1px rgba(26,184,11,.14),
      0 0 18px rgba(26,184,11,.16),
      0 18px 52px rgba(0,0,0,.52),
      inset 0 1px 0 rgba(255,255,255,.035);
  }
  100%{
    border:2px solid rgba(26,184,11,.82);
    box-shadow:
      0 0 0 0 rgba(26,184,11,.00),
      0 18px 52px rgba(0,0,0,.52),
      inset 0 1px 0 rgba(255,255,255,.035);
  }
}

@keyframes textBlink{
  0%,100%{opacity:.75}
  50%{opacity:.32}
}
@keyframes userBlink{
  0%,100%{opacity:1}
  50%{opacity:.5}
}
@keyframes zoomPulse{
  0%{transform:scale(1)}
  50%{transform:scale(1.025)}
  100%{transform:scale(1)}
}
@keyframes winnerZoomPulse{
  0%{transform:scale(1)}
  50%{transform:scale(1.055)}
  100%{transform:scale(1)}
}
@keyframes scorePulse{
  0%,100%{
    transform:scale(1);
    text-shadow:
      0 0 6px rgba(26,184,11,.08);
  }
  50%{
    transform:scale(1.09);
    text-shadow:
      0 0 10px rgba(26,184,11,.18),
      0 0 16px rgba(26,184,11,.10);
  }
}

/* =========================
   GLOBAL TEXT
========================= */
.label,
.title{
  font-size:52px;
  font-weight:900;
  letter-spacing:.05em;
  line-height:1.02;
  color:#ffffff;
  text-shadow:
    0 0 6px rgba(68,183,255,.05);
}

.pulse-green{
  display:inline-block;
  animation:scorePulse 1.2s ease-in-out infinite;
}

.score-green{
  color:var(--score-green) !important;
  text-shadow:
    0 0 8px rgba(26,184,11,.10),
    0 0 14px rgba(26,184,11,.06) !important;
}

.score-pulse{
  display:inline-block;
  animation:scorePulse .95s ease-in-out infinite;
}

/* =========================
   SEASON
========================= */
#seasonCard{
  padding:14px 14px 15px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  text-align:center;
  border:2px solid rgba(26,184,11,.82);
}

#seasonCard::after{
  background:
    radial-gradient(260px 150px at 50% 20%, rgba(63,188,255,.10) 0%, transparent 62%),
    linear-gradient(180deg, rgba(9,26,44,.08), transparent);
}

.seasonLabel{
  width:100%;
  text-align:center;
  font-weight:900;
  letter-spacing:.12em;
  color:#97c3f5;
  line-height:1;
  display:block;
  text-shadow:0 0 8px rgba(41,185,255,.08);
}
.seasonLabelTop{
  font-size:40px;
  margin-top:0;
  margin-bottom:10px;
}
.seasonLabelBottom{
  font-size:40px;
  margin-top:0;
  margin-bottom:15px;
}
.bigTime{
  margin-top:0;
  margin-bottom:0;
  font-size:51px;
  font-weight:900;
  line-height:1;
  text-align:center;
  width:100%;
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  color:#ffffff;
  text-shadow:
    0 0 8px rgba(41,185,255,.12),
    0 0 14px rgba(41,185,255,.07);
}

.seasonTimeMain{
  color:#ffffff;
}

.seasonTimeSec{
  color:var(--score-green);
  text-shadow:
    0 0 8px rgba(26,184,11,.10),
    0 0 14px rgba(26,184,11,.06);
}

/* =========================
   WINNER
========================= */
.winnerCard{
  padding:12px 22px 18px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}

.winnerCard::after{
  background:
    radial-gradient(420px 170px at 80% 0%, rgba(53,182,255,.10) 0%, transparent 58%),
    linear-gradient(135deg, rgba(10,24,43,.10), transparent 60%);
}

.winnerCard .label{
  text-align:center;
  font-size:52px;
  color:#ffffff;
  margin-top:4px;
  margin-bottom:8px;
  line-height:1;
}

.winnerName{
  margin-top:10px;
  width:100%;
  min-height:152px;
  max-height:170px;
  padding:0 8px 6px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  overflow:hidden;
  white-space:normal;
  word-break:break-word;
  overflow-wrap:anywhere;
  line-height:1.02;
  font-size:72px;
  font-weight:900;
  color:#ffffff;
  text-shadow:
    0 0 7px rgba(41,185,255,.10),
    0 0 14px rgba(41,185,255,.06);
}

.winner-zoom{
  animation:winnerZoomPulse 1.45s ease-in-out infinite;
}

.winnerRoundNum{
  color:var(--score-green);
  text-shadow:
    0 0 8px rgba(26,184,11,.10),
    0 0 14px rgba(26,184,11,.06);
}

/* =========================
   CHAT
========================= */
.chatCard{
  padding:16px 18px 14px;
  display:flex;
  flex-direction:column;
  border:3px solid var(--chat-green);
  box-shadow:
    0 18px 52px rgba(0,0,0,.52),
    0 0 14px rgba(26,189,11,.10),
    inset 0 1px 0 rgba(255,255,255,.035),
    inset 0 0 0 1px rgba(255,255,255,.008);
}

.chatCard::after{
  background:
    radial-gradient(430px 180px at 86% 0%, rgba(40,174,255,.08) 0%, transparent 58%),
    radial-gradient(250px 120px at 10% 100%, rgba(16,112,255,.06) 0%, transparent 70%);
}

.titleRow{
  display:flex;
  justify-content:center;
  align-items:center;
  text-align:center;
}
.titleCenter{ justify-content:center !important; }

.chatTitle{
  font-size:46px;
  line-height:1.02;
  white-space:nowrap;
  letter-spacing:.06em;
}

.bigChat{
  margin-top:0;
  display:flex;
  flex-direction:column;
  gap:12px;
  height:100%;
  overflow:hidden;
}

.chatEmpty{
  position:absolute;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  font-size:50px;
  font-weight:900;
  letter-spacing:.08em;
  opacity:.82;
  pointer-events:none;
  animation:textBlink 1.25s linear infinite;
  margin-top:0;
  color:#9ccdf6;
  text-shadow:0 0 8px rgba(41,185,255,.08);
}

.chatBoxWord{
  color:var(--chat-green);
  text-shadow:0 0 8px rgba(26,189,11,.12);
}

.chatCard.show-empty #chatEmpty{ display:flex; }
.chatCard.show-empty #chatList{ visibility:hidden; }

.lbCard{
  padding:18px 18px 16px;
}

.list{
  margin-top:16px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.titleInlineCenter{
  justify-content:center !important;
  align-items:center !important;
}

.inlineTitleWrap{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  width:100%;
}

.inlineTitle{
  font-size:52px;
  line-height:1;
}

.inlineTimer{
  font-size:52px;
  font-weight:900;
  line-height:1;
  color:#ffffffee;
  text-shadow:0 0 8px rgba(41,185,255,.08);
}

.inlineTimer.boost-timer{
  color:var(--score-green);
  text-shadow:
    0 0 8px rgba(26,184,11,.10),
    0 0 14px rgba(26,184,11,.06);
}

.roundNumber{
  color:var(--score-green);
  text-shadow:
    0 0 8px rgba(26,184,11,.10),
    0 0 14px rgba(26,184,11,.06);
}

.topWord{
  color:var(--score-green);
  text-shadow:
    0 0 8px rgba(26,184,11,.10),
    0 0 14px rgba(26,184,11,.06);
}

/* =========================
   ROW STYLE
========================= */
.row{
  position:relative;
  border-radius:20px;
  border:1px solid rgba(84,176,255,.14);
  background:
    linear-gradient(135deg, rgba(10,21,34,.96) 0%, rgba(8,18,31,.95) 55%, rgba(12,27,44,.98) 100%);
  display:grid;
  align-items:center;
  column-gap:10px;
  padding:0 16px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.02),
    0 8px 18px rgba(0,0,0,.22);
  overflow:hidden;
}

.row::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg, rgba(39,185,255,.07) 0%, transparent 20%, transparent 80%, rgba(39,185,255,.05) 100%);
  opacity:.75;
}

.row::after{
  content:"";
  position:absolute;
  top:10px;
  bottom:10px;
  left:0;
  width:4px;
  border-radius:0 8px 8px 0;
  background:linear-gradient(180deg, #33d4ff, #1179ff);
  box-shadow:0 0 8px rgba(41,185,255,.16);
}

.rank{display:none !important;}

.name{
  position:relative;
  z-index:1;
  font-weight:900;
  line-height:1.08;
  overflow:hidden;
  display:block;
  white-space:nowrap;
  text-overflow:ellipsis;
  align-self:center;
  color:#ffffff;
}

.score{
  position:relative;
  z-index:1;
  justify-self:end;
  text-align:right;
  font-weight:900;
  white-space:nowrap;
  line-height:1.02;
  color:#ffffff;
  text-shadow:0 0 6px rgba(41,185,255,.06);
}

.score small{
  font-weight:900;
  margin-left:10px;
  color:#8dd2ff;
  line-height:1.02;
}

.lastGift{display:none;}

/* =========================
   SESSION
========================= */
#sessionCard .title{ font-size:52px; }

#sessionCard::after{
  background:
    radial-gradient(500px 210px at 92% 0%, rgba(45,186,255,.10) 0%, transparent 58%),
    radial-gradient(280px 140px at 0% 100%, rgba(17,112,255,.06) 0%, transparent 70%);
}

#sessionCard .row{
  grid-template-columns:1fr 240px 0px;
  padding:0 20px;
  column-gap:12px;
}

#sessionCard .row.top1,
#sessionCard .row.top2,
#sessionCard .row.top3{
  height:118px;
}
#sessionCard .row.top4,
#sessionCard .row.top5{
  height:104px;
}

#sessionCard .row.top1 .name,
#sessionCard .row.top2 .name,
#sessionCard .row.top3 .name{
  font-size:64px;
  line-height:1.08;
  padding-top:6px;
  padding-bottom:10px;
  display:block;
  width:100%;
  transform:scale(1);
  transform-origin:center center;
  will-change:transform,text-shadow,opacity;
  transition:
    transform 520ms cubic-bezier(.22,1,.36,1),
    text-shadow 520ms cubic-bezier(.22,1,.36,1),
    opacity 520ms cubic-bezier(.22,1,.36,1);
}

#sessionCard .row.top1 .name.topgift-active,
#sessionCard .row.top2 .name.topgift-active,
#sessionCard .row.top3 .name.topgift-active{
  transform:scale(1.055);
  text-shadow:
    0 0 12px rgba(41,185,255,.18),
    0 0 22px rgba(41,185,255,.10);
}

#sessionCard .row.top4 .name,
#sessionCard .row.top5 .name{
  font-size:60px;
  line-height:1.08;
  padding-top:6px;
  padding-bottom:10px;
}

#sessionCard .row.top1 .score,
#sessionCard .row.top2 .score,
#sessionCard .row.top3 .score,
#sessionCard .row.top1 .score small,
#sessionCard .row.top2 .score small,
#sessionCard .row.top3 .score small{
  font-size:64px;
}
#sessionCard .row.top4 .score,
#sessionCard .row.top5 .score,
#sessionCard .row.top4 .score small,
#sessionCard .row.top5 .score small{
  font-size:60px;
}

/* =========================
   ROUND
========================= */
.roundBoard{
  padding:16px 18px 18px;
}

#roundCard::after{
  background:
    radial-gradient(420px 170px at 90% 0%, rgba(47,186,255,.10) 0%, transparent 58%),
    radial-gradient(240px 120px at 10% 100%, rgba(11,98,255,.06) 0%, transparent 68%);
}

#roundCard .title{ font-size:52px; }

#roundCard .list{
  margin-top:18px;
  gap:14px;
}

#roundCard .row{
  grid-template-columns:1fr 110px 0px;
  padding:0 14px;
  column-gap:10px;
  height:108px;
}

#roundCard .row.top1 .name,
#roundCard .row.top2 .name,
#roundCard .row.top3 .name,
#roundCard .row.top4 .name{
  font-size:55px;
  font-weight:900;
  line-height:1.08;
  padding-top:6px;
  padding-bottom:10px;
  transform:scaleX(.90);
  transform-origin:left center;
  text-overflow:clip;
}

#roundCard .row.top1 .score,
#roundCard .row.top2 .score,
#roundCard .row.top3 .score,
#roundCard .row.top4 .score,
#roundCard .row.top1 .score small,
#roundCard .row.top2 .score small,
#roundCard .row.top3 .score small,
#roundCard .row.top4 .score small{
  font-size:55px;
}

/* =========================
   CHAT LINE
========================= */
.chatLine{
  position:relative;
  border:1px solid rgba(86,186,255,.14);
  background:
    linear-gradient(135deg, rgba(10,21,34,.97) 0%, rgba(7,16,28,.95) 60%, rgba(10,24,40,.98) 100%);
  border-radius:18px;
  padding:12px 16px 14px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  gap:6px;
  overflow:hidden;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.02),
    0 8px 14px rgba(0,0,0,.20);
}

.chatLine::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  bottom:0;
  width:4px;
  background:linear-gradient(180deg, #43dbff, #1788ff);
  box-shadow:0 0 8px rgba(41,185,255,.14);
}

.chatUser{
  width:100%;
  display:block;
  font-weight:900;
  line-height:1.02;
  animation:userBlink 1.15s infinite;
  color:var(--score-green);
  text-shadow:0 0 6px rgba(26,184,11,.08);
  padding-left:4px;
  font-size:var(--chat-user-size, 34px);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.chatMsg{
  width:100%;
  display:block;
  font-weight:900;
  line-height:1.05;
  color:#f7fbff;
  font-size:var(--chat-msg-size, 31px);
  white-space:normal;
  overflow:hidden;
  word-break:break-word;
  overflow-wrap:anywhere;
}

.adminPanel{display:none !important;}

/* =========================
   IDLE TAKE OVERLAY
========================= */
#idleTakeOverlay{
  position:fixed;
  inset:0;
  display:none;
  z-index:8000;
  pointer-events:none;
  background:transparent;
}

#idleTakeOverlay.active{
  display:block;
}

#idleTakeOverlay video{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* =========================
   WINNER TAKEOVER
========================= */
#winnerTakeover{
  position:fixed;
  inset:0;
  display:none;
  z-index:9000;
  pointer-events:none;
  background:transparent;
  opacity:0;
}

#winnerTakeover.active{
  display:block;
  opacity:1;
  animation:winnerTakeFade 11s ease-in-out forwards;
}

#winnerTakeover video{
  width:100%;
  height:100%;
  object-fit:cover;
}

.winnerTakeContent{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:28px;
  text-align:center;
  pointer-events:none;
}

.winnerTakeLabel{
  font-size:60px;
  font-weight:900;
  letter-spacing:.14em;
  color:#ffffff;
  text-transform:uppercase;
  text-shadow:
    0 0 10px rgba(41,185,255,.30),
    0 0 18px rgba(41,185,255,.18);
  transform-origin:center center;
  animation:
    winnerTakeIntro 2s cubic-bezier(.22,1,.36,1) forwards,
    winnerTakePulse 2.2s ease-in-out 2s infinite;
}

.winnerTakeName{
  max-width:80%;
  min-height:120px;
  padding:0 32px;
  font-weight:900;
  font-size:140px;
  color:#ffffff;
  text-shadow:
    0 0 12px rgba(0,0,0,.65),
    0 0 22px rgba(41,185,255,.24);
  line-height:1.02;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  white-space:normal;
  word-break:break-word;
  overflow-wrap:anywhere;
  transform-origin:center center;
  animation:
    winnerTakeIntro 2s cubic-bezier(.22,1,.36,1) forwards,
    winnerTakePulse 2.2s ease-in-out 2s infinite;
}

@keyframes winnerTakeIntro{
  0%{
    transform:scale(0.1);
    opacity:0;
  }
  60%{
    transform:scale(1.08);
    opacity:1;
  }
  100%{
    transform:scale(1);
    opacity:1;
  }
}

@keyframes winnerTakePulse{
  0%{
    transform:scale(1) translateY(0);
  }
  50%{
    transform:scale(1.07) translateY(-4px);
  }
  100%{
    transform:scale(1) translateY(0);
  }
}

@keyframes winnerTakeFade{
  0%{
    opacity:0;
  }
  10%{
    opacity:1;
  }
  80%{
    opacity:1;
  }
  100%{
    opacity:0;
  }
}

/* =========================
   BIG GIFT TAKEOVER
========================= */
#bigGiftTakeover{
  position:fixed;
  inset:0;
  display:none;
  z-index:9999;
  overflow:hidden;
  pointer-events:none;
}

#bigGiftTakeover.active{
  display:block;
}

.bigGiftVideoWrap{
  position:absolute;
  inset:0;
  z-index:0;
}
.bigGiftVideo{
  width:100%;
  height:100%;
  object-fit:cover;
}

.bigGiftOverlay{
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.5) 50%, rgba(0,0,0,.35) 100%);
  pointer-events:none;
}

.bigGiftParticles{
  position:absolute;
  inset:0;
  overflow:hidden;
  z-index:2;
}

.bigGiftParticle{
  position:absolute;
  top:-10%;
  user-select:none;
  animation:bigGiftFall linear infinite;
  filter:drop-shadow(0 0 8px rgba(255,255,255,.16));
}

.bigGiftContent{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
  text-align:center;
  z-index:3;
  padding:40px;
}

.bigGiftLine1{
  font-size:64px;
  font-weight:900;
  letter-spacing:.14em;
  color:#ffffff;
  text-transform:uppercase;
  text-shadow:
    0 0 10px rgba(41,185,255,.35),
    0 0 18px rgba(41,185,255,.2),
    0 2px 4px rgba(0,0,0,.4);
  line-height:1;
  transform-origin:center center;
  animation:bigGiftPulse 2.2s ease-in-out infinite;
}

.bigGiftLine2{
  font-size:180px;
  font-weight:900;
  color:#ffffff;
  text-shadow:
    0 0 12px rgba(0,0,0,.7),
    0 0 22px rgba(41,185,255,.28),
    0 2px 6px rgba(0,0,0,.5);
  line-height:1.02;
  max-width:95%;
  word-break:break-word;
  overflow-wrap:anywhere;
  transform-origin:center center;
  animation:bigGiftPulse 2.2s ease-in-out infinite;
}

.bigGiftLine3{
  font-size:44px;
  font-weight:900;
  letter-spacing:.08em;
  color:#b8e8ff;
  text-shadow:
    0 0 10px rgba(41,185,255,.3),
    0 0 16px rgba(41,185,255,.15),
    0 2px 4px rgba(0,0,0,.4);
  line-height:1.1;
  transform-origin:center center;
  animation:bigGiftPulse 2.2s ease-in-out infinite;
}

.bigGiftLine4{
  font-size:52px;
  font-weight:900;
  letter-spacing:.14em;
  color:#ffffff;
  text-transform:uppercase;
  text-shadow:
    0 0 10px rgba(41,185,255,.35),
    0 0 18px rgba(41,185,255,.2),
    0 2px 4px rgba(0,0,0,.4);
  line-height:1;
  transform-origin:center center;
  animation:bigGiftPulse 2.2s ease-in-out infinite;
  margin-top:26px;
}

@keyframes bigGiftPulse{
  0%  { transform:scale(1) translateY(0); }
  50% { transform:scale(1.06) translateY(-4px); }
  100%{ transform:scale(1) translateY(0); }
}

@keyframes bigGiftFall{
  0%   { transform:translateY(-10vh) rotate(0deg); opacity:0; }
  10%  { opacity:1; }
  100% { transform:translateY(120vh) rotate(360deg); opacity:.95; }
}