/* =========================================================
   Christmas Tree + New Year Countdown + Ride Animation
   ========================================================= */

.ny-wrap{
  position: relative;
  border: 1px solid rgba(246,196,83,0.22);
  background: rgba(0,0,0,0.18);
  border-radius: 22px;
  padding: 16px;
  overflow: hidden;
}

.ny-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  align-items: stretch;
}

@media (max-width: 980px){
  .ny-grid{ grid-template-columns: 1fr; }
}

/* ---------- Festive sparkles background ---------- */
.ny-wrap::before{
  content:"";
  position:absolute;
  inset:-40px;
  pointer-events:none;
  background-image:
    radial-gradient(2px 2px at 15% 25%, rgba(246,196,83,0.85), transparent),
    radial-gradient(2px 2px at 35% 55%, rgba(124,243,255,0.80), transparent),
    radial-gradient(2px 2px at 70% 30%, rgba(167,139,250,0.80), transparent),
    radial-gradient(2px 2px at 85% 60%, rgba(246,196,83,0.85), transparent),
    radial-gradient(2px 2px at 55% 75%, rgba(124,243,255,0.80), transparent);
  opacity: 0.55;
  animation: nySparkle 6s linear infinite;
}

@keyframes nySparkle{
  0%{ opacity: .25; transform: translateY(0); }
  50%{ opacity: .70; transform: translateY(-6px); }
  100%{ opacity: .25; transform: translateY(0); }
}

.ny-card{
  position: relative;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.06);
  border-radius: 18px;
  padding: 16px;
  box-shadow: 0 16px 46px rgba(0,0,0,0.35);
}

.ny-title{
  margin: 0 0 6px;
  font-size: 16px;
  letter-spacing: -0.2px;
}
.ny-sub{
  margin: 0 0 14px;
  color: rgba(255,255,255,0.70);
  font-size: 13px;
}

/* =========================================================
   🎄 CSS CHRISTMAS TREE
   ========================================================= */
.tree{
  position: relative;
  width: min(240px, 100%);
  margin: 4px auto 0;
  height: 300px;
}

.tree .star{
  position:absolute;
  top: 8px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 28px;
  filter: drop-shadow(0 0 10px rgba(246,196,83,0.7));
  animation: starPulse 1.6s ease-in-out infinite;
}
@keyframes starPulse{
  0%,100%{ transform: translateX(-50%) scale(1); opacity: .95; }
  50%{ transform: translateX(-50%) scale(1.12); opacity: 1; }
}

/* Tree layers */
.tree .layer{
  position:absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 120px solid transparent;
  border-right: 120px solid transparent;
  border-bottom: 96px solid rgba(34,197,94,0.95);
  filter: drop-shadow(0 10px 24px rgba(0,0,0,0.35));
