/* ============================================================
   Legion Comps — Planetfall skin ("Planetfall Inbound")
   Homepage-only reskin, switched on by SiteConfig.seasonal_skin.
   Everything is scoped under body.lc-skin-planetfall, so the file is
   inert anywhere the class isn't set.

   Direction: a pixel-art orbital assault. Under a burning dusk sky,
   drop capsules streak down trailing fire, slam into the battlefield in
   a mushroom of smoke and stand there steaming with their hatches blown
   open. An armoured squad marches across the rubble and an outrider
   tears past on an assault bike, while searchlights sweep the smoke and
   flak pops overhead. Gunmetal and burnt-orange hazard colours, hard
   pixel shadows and notched corners in place of crimson and gold.

   Presentation only: no copy, prices or compliance text change. Decor
   is aria-hidden, absolutely positioned and click-through, and all motion
   stops under prefers-reduced-motion (the landed capsules and the squad
   stay, as a still battlefield).
   ============================================================ */

.lc-skin-planetfall {
  /* Skin palette */
  --pf-void:    #0d0e12;
  --pf-steel:   #16181e;
  --pf-steel-2: #1d2027;
  --pf-steel-3: #262a33;
  --pf-edge:    #333944;
  --pf-edge-2:  #474f5c;
  --pf-bone:    #f2ebe1;
  --pf-bone-2:  #d8cec1;
  --pf-dust:    #b5aa9b;   /* 8.3:1 on --pf-steel */
  --pf-dust-2:  #9a8f81;   /* 5.9:1 on --pf-steel */
  --pf-ember:   #ff8b3d;   /* 8.1:1 on --pf-void */
  --pf-ember-2: #e0611b;
  --pf-amber:   #ffc56b;
  --pf-burn:    #3b1607;

  /* Pixel-notched corners for buttons, tags and chips */
  --pf-notch: polygon(0 4px, 4px 4px, 4px 0, calc(100% - 4px) 0, calc(100% - 4px) 4px, 100% 4px,
                      100% calc(100% - 4px), calc(100% - 4px) calc(100% - 4px), calc(100% - 4px) 100%,
                      4px 100%, 4px calc(100% - 4px), 0 calc(100% - 4px));

  /* Flip the light canvas to a night battlefield. Semantic aliases are
     re-pointed rather than the ink scale, because ink stays correct as text
     on the light ember badges. */
  --paper-0:   var(--pf-steel);
  --paper-50:  var(--pf-steel-2);
  --paper-100: var(--pf-void);
  --paper-200: var(--pf-steel-3);
  --paper-300: var(--pf-edge);
  --paper-400: var(--pf-edge-2);

  --surface-page:    var(--pf-void);
  --surface-card:    var(--pf-steel);
  --surface-raised:  var(--pf-steel-2);
  --surface-sunken:  var(--pf-steel-3);
  --border-soft:     var(--pf-edge);
  --border-strong:   var(--pf-edge-2);

  --text-display:   var(--pf-bone);
  --text-heading:   var(--pf-bone);
  --text-body:      var(--pf-bone-2);
  --text-secondary: var(--pf-dust);
  --text-muted:     var(--pf-dust-2);

  --accent-gold-ink:   var(--pf-ember);
  --accent-action-ink: var(--pf-ember);

  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.5);
  --shadow-md: 0 6px 18px rgba(0, 0, 0, 0.55);
  --shadow-lg: 0 16px 36px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 139, 61, 0.16);
  /* Component depth tokens resolve at :root, so re-point them here or the
     shadow overrides above never reach the cards and buttons. */
  --shadow-card:       var(--shadow-sm);
  --shadow-card-hover: var(--shadow-lg);
  --shadow-btn:        var(--shadow-sm);
  --shadow-btn-hover:  var(--shadow-md);

  background: var(--pf-void);
  color: var(--text-body);
}

/* ---- Promo bar: hazard tape ------------------------------------- */
.lc-skin-planetfall .lc-promo {
  background:
    repeating-linear-gradient(135deg, rgba(0, 0, 0, 0.12) 0 12px, transparent 12px 24px),
    linear-gradient(90deg, var(--pf-ember-2), var(--pf-amber) 50%, var(--pf-ember-2));
  color: var(--ink-900);
}

/* ---- Nav: armoured glass ----------------------------------------- */
.lc-skin-planetfall .lc-nav {
  background: rgba(13, 14, 18, 0.88);
  border-bottom-color: var(--pf-edge);
}
.lc-skin-planetfall .lc-navlink:hover,
.lc-skin-planetfall .lc-basket-btn:hover { background: var(--pf-steel-3); color: var(--pf-bone); }
.lc-skin-planetfall .lc-btn-secondary { background: var(--pf-steel-2); color: var(--pf-bone); border-color: var(--pf-edge-2); }
.lc-skin-planetfall .lc-btn-primary { background: #b4470f; border-color: #8a350a; } /* white text 5.4:1 */

/* ---- Hero ------------------------------------------------------ */
.lc-skin-planetfall .lc-hero {
  background: #1a1210;
  /* A battlefield strip below the content for the squad, bike and capsules */
  padding-bottom: clamp(150px, 13vw, 190px);
}
.lc-skin-planetfall .lc-hero-grid { opacity: 0.08; }
.lc-skin-planetfall .lc-hero-ring { border-color: rgba(255, 139, 61, 0.05); }
.lc-skin-planetfall .lc-hero-glow { display: none; }
.lc-skin-planetfall .lc-hero h1 > span {
  color: var(--pf-ember) !important; /* beats the inline gold on "Glory" */
  background: linear-gradient(180deg, #fff1cf 0%, var(--pf-amber) 32%, var(--pf-ember) 62%, #c4470d 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  /* Hard, unblurred offsets: a pixel-art drop shadow */
  filter: drop-shadow(3px 3px 0 var(--pf-burn)) drop-shadow(0 0 14px rgba(255, 139, 61, 0.3));
}
.lc-skin-planetfall .lc-eyebrow-gold { color: var(--pf-ember) !important; }
.lc-skin-planetfall .lc-live-dot {
  background: var(--pf-ember);
  box-shadow: 0 0 8px var(--pf-ember);
  border-radius: 0;
}
.lc-skin-planetfall .lc-btn-gold {
  background: linear-gradient(180deg, var(--pf-amber), var(--pf-ember) 55%, var(--pf-ember-2));
  border-color: #b4470f;
  color: var(--ink-900);
  box-shadow: inset 0 -4px 0 rgba(59, 22, 7, 0.35), inset 0 3px 0 rgba(255, 241, 207, 0.45);
  clip-path: var(--pf-notch);
}
.lc-skin-planetfall .lc-btn-gold:hover { filter: brightness(1.08); }
.lc-skin-planetfall .lc-hero .lc-btn-dark {
  background: rgba(22, 24, 30, 0.85);
  border-color: var(--pf-edge-2);
  clip-path: var(--pf-notch);
}

/* Seasonal tag above the eyebrow */
.lc-pf-tag {
  display: none;
}
.lc-skin-planetfall .lc-pf-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  padding: 6px 12px 6px 14px;
  background:
    repeating-linear-gradient(135deg, var(--pf-ember) 0 5px, var(--pf-void) 5px 10px) left / 5px 100% no-repeat,
    rgba(13, 14, 18, 0.8);
  color: var(--pf-ember);
  font-family: var(--font-display);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  clip-path: var(--pf-notch);
  box-shadow: inset 0 0 0 1px rgba(255, 139, 61, 0.45);
}

/* Spotlight card on the battlefield */
.lc-skin-planetfall .lc-spotlight {
  border-color: rgba(255, 139, 61, 0.38);
  box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.45), 0 20px 60px rgba(0, 0, 0, 0.55);
}
.lc-skin-planetfall .lc-hero .lc-mini {
  background: rgba(22, 24, 30, 0.88);
}

/* ---- Hero decor ------------------------------------------------- */
.lc-pf-decor { display: none; }
.lc-skin-planetfall .lc-pf-decor {
  --pf-k: 1;          /* sprite scale; stepped down on smaller screens */
  --pf-floor: 46px;   /* where the squad's feet meet the rubble */
  display: block;
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.lc-pf-decor i { display: block; position: absolute; }

/* Sky: a 512x288 SpriteCook backdrop scaled up with hard pixel edges */
.lc-pf-sky {
  position: absolute;
  inset: 0;
  background: url("../../images/skins/planetfall/sky.webp") 50% 100% / cover no-repeat;
  image-rendering: pixelated;
}
/* Darken behind the copy column and fade the top into the nav */
.lc-pf-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(13, 14, 18, 0.7) 0%, transparent 28%),
    linear-gradient(90deg, rgba(13, 14, 18, 0.82) 0%, rgba(13, 14, 18, 0.6) 30%, rgba(13, 14, 18, 0.15) 52%, transparent 70%);
}

/* Searchlights sweeping the smoke */
.lc-pf-beams i {
  bottom: 60px;
  width: 70px;
  height: 120%;
  margin-left: -35px;
  transform-origin: 50% 100%;
  background: linear-gradient(0deg, rgba(255, 228, 170, 0.32), rgba(255, 228, 170, 0.06) 70%, transparent);
  clip-path: polygon(46% 100%, 54% 100%, 100% 0, 0 0);
  mix-blend-mode: screen;
  animation: lc-pf-sweep 11s ease-in-out infinite alternate;
}
.lc-pf-beams i:nth-child(1) { left: 34%; }
.lc-pf-beams i:nth-child(2) { left: 88%; animation-duration: 14s; animation-delay: -6s; }

/* Flak: hard-edged pixel bursts popping high in the sky */
.lc-pf-flak i {
  width: 6px;
  height: 6px;
  background: var(--pf-amber);
  box-shadow:
    6px 0 0 var(--pf-ember), -6px 0 0 var(--pf-ember), 0 6px 0 var(--pf-ember), 0 -6px 0 var(--pf-ember),
    6px 6px 0 rgba(90, 80, 75, 0.8), -6px -6px 0 rgba(90, 80, 75, 0.8), 12px 0 0 rgba(90, 80, 75, 0.6), 0 -12px 0 rgba(90, 80, 75, 0.6);
  opacity: 0;
  animation: lc-pf-flak 5s steps(1, end) infinite;
}
.lc-pf-flak i:nth-child(1) { left: 58%; top: 9%; }
.lc-pf-flak i:nth-child(2) { left: 71%; top: 4%; animation-delay: -1.3s; animation-duration: 6s; }
.lc-pf-flak i:nth-child(3) { left: 50%; top: 16%; animation-delay: -2.6s; animation-duration: 7s; }
.lc-pf-flak i:nth-child(4) { left: 92%; top: 12%; animation-delay: -3.4s; }
.lc-pf-flak i:nth-child(5) { left: 81%; top: 21%; animation-delay: -4.1s; animation-duration: 6.5s; }

/* Sprite strips: eight frames side by side. Each sprite clips a ::before
   eight frames wide and slides it one frame at a time with transform, which
   the compositor runs off the main thread; stepping background-position
   instead repaints every sprite on every frame. */
.lc-pf-pod,
.lc-pf-boom,
.lc-pf-squad i,
.lc-pf-bike i { overflow: hidden; }
.lc-pf-pod::before,
.lc-pf-boom::before,
.lc-pf-squad i::before,
.lc-pf-bike i::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 800%;
  height: 100%;
  background: 0 0 / 100% 100% no-repeat;
  animation: lc-pf-frames 1s steps(8, jump-none) infinite;
}

/* Drop capsules. Each .lc-pf-drop is a landing spot on the ground line; on
   its 14s cycle the capsule falls in (fire trail and all), the impact
   explosion plays out over it, and the landed, burst-open capsule is left
   steaming until it fades before the next drop. The falling capsule passes
   in front of the hero content; what lands stays behind it. */
.lc-pf-drop {
  position: absolute;
  bottom: 40px;
  width: 0;
  height: 0;
}
.lc-pf-drop i { bottom: 0; }
.lc-pf-pod {
  z-index: 2;
  width: calc(54px * var(--pf-k));
  height: calc(198px * var(--pf-k));
  margin-left: calc(-27px * var(--pf-k));
  transform: translateY(-1400px);
  animation: lc-pf-fall 14s cubic-bezier(0.45, 0, 1, 1) infinite both;
}
.lc-pf-pod::before {
  background-image: url("../../images/skins/planetfall/pod-fall.webp");
  animation-duration: 0.6s;
}
.lc-pf-landed {
  width: calc(98px * var(--pf-k));
  height: calc(150px * var(--pf-k));
  margin-left: calc(-49px * var(--pf-k));
  bottom: -6px !important;
  background: url("../../images/skins/planetfall/pod-landed.webp") 0 0 / 100% 100% no-repeat;
  opacity: 0;
  animation: lc-pf-landed 14s linear infinite both;
}
.lc-pf-boom {
  z-index: 2;
  width: calc(176px * var(--pf-k));
  height: calc(190px * var(--pf-k));
  margin-left: calc(-88px * var(--pf-k));
  bottom: -14px !important;
  /* The sprite's last frames run the smoke cap into its top edge; fade it
     out so the rising cloud doesn't end on a hard straight line. */
  mask-image: linear-gradient(to bottom, transparent, black 18%);
  -webkit-mask-image: linear-gradient(to bottom, transparent, black 18%);
  opacity: 0;
  animation: lc-pf-boom 14s step-end infinite both;
}
/* The frames run on the burst's own clock: same length, same delay */
.lc-pf-boom::before {
  background-image: url("../../images/skins/planetfall/boom.webp");
  animation: lc-pf-boom-frames 14s step-end infinite both;
  animation-duration: inherit;
  animation-delay: inherit;
}
.lc-pf-drop-1 { left: 47%; }
.lc-pf-drop-2 { left: 95%; }
.lc-pf-drop-3 { left: 74%; }
.lc-pf-drop-1 i { animation-delay: 0.6s; }
.lc-pf-drop-2 i { animation-delay: 5.2s; }
.lc-pf-drop-3 i { animation-delay: 9.8s; }

/* The rubble line: a 512x47 strip doubled up, tiled across */
.lc-pf-ground {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 94px;
  background: url("../../images/skins/planetfall/ground.webp") 0 100% / auto 100% repeat-x;
  image-rendering: pixelated;
}

/* The squad: three marching soldiers, one shared drift, offset walk phases */
.lc-pf-squad {
  position: absolute;
  left: 0;
  bottom: var(--pf-floor);
  width: calc(290px * var(--pf-k));
  height: calc(104px * var(--pf-k));
  animation: lc-pf-march 42s linear infinite;
  animation-delay: -6s;
}
.lc-pf-squad i {
  bottom: 0;
  width: calc(77px * var(--pf-k));
  height: calc(104px * var(--pf-k));
}
.lc-pf-squad i::before {
  background-image: url("../../images/skins/planetfall/marine-march.webp");
  animation-delay: inherit; /* each soldier's own walk phase, set below */
}
.lc-pf-squad i:nth-child(1) { left: calc(200px * var(--pf-k)); }
.lc-pf-squad i:nth-child(2) { left: calc(100px * var(--pf-k)); bottom: 6px; animation-delay: -0.37s; filter: brightness(0.85); }
.lc-pf-squad i:nth-child(3) { left: 0; animation-delay: -0.62s; filter: brightness(0.92); }

/* The outrider: a fast pass every 20s, kicking up dust */
.lc-pf-bike {
  position: absolute;
  left: 0;
  bottom: 14px;
  width: calc(107px * var(--pf-k));
  height: calc(86px * var(--pf-k));
  animation: lc-pf-ride 20s linear infinite;
  animation-delay: 3s;
  transform: translateX(-200px);
}
.lc-pf-bike i { inset: 0; }
.lc-pf-bike i::before {
  background-image: url("../../images/skins/planetfall/bike-ride.webp");
  animation-duration: 0.5s;
}
.lc-pf-bike::before {
  content: "";
  position: absolute;
  right: 80%;
  bottom: 2px;
  width: 120px;
  height: 26px;
  background:
    radial-gradient(ellipse 30% 60% at 85% 70%, rgba(150, 120, 95, 0.55), transparent 70%),
    radial-gradient(ellipse 40% 50% at 45% 60%, rgba(120, 100, 85, 0.35), transparent 70%);
  filter: blur(3px);
}

/* Embers rising off the rubble: square, unblurred pixels */
.lc-pf-embers i {
  bottom: 30px;
  width: 3px;
  height: 3px;
  background: var(--pf-amber);
  box-shadow: 0 0 4px var(--pf-ember);
  opacity: 0;
  animation: lc-pf-ember 7s steps(28, end) infinite;
}
.lc-pf-embers i:nth-child(1) { left: 6%; }
.lc-pf-embers i:nth-child(2) { left: 19%; animation-delay: -2s; animation-duration: 8s; }
.lc-pf-embers i:nth-child(3) { left: 31%; animation-delay: -4.5s; }
.lc-pf-embers i:nth-child(4) { left: 43%; animation-delay: -1s; animation-duration: 9s; }
.lc-pf-embers i:nth-child(5) { left: 57%; animation-delay: -5.5s; }
.lc-pf-embers i:nth-child(6) { left: 66%; animation-delay: -3s; animation-duration: 8s; }
.lc-pf-embers i:nth-child(7) { left: 79%; animation-delay: -6s; }
.lc-pf-embers i:nth-child(8) { left: 90%; animation-delay: -2.5s; animation-duration: 9s; }

/* The copy and cards must sit above the decor */
.lc-skin-planetfall .lc-hero-inner { z-index: 1; }

/* ---- Stat bar + ticker ------------------------------------------ */
.lc-skin-planetfall .lc-statbar {
  background:
    repeating-linear-gradient(135deg, rgba(255, 139, 61, 0.9) 0 8px, var(--pf-void) 8px 16px) top / 100% 4px no-repeat,
    linear-gradient(180deg, #17191f, #111318);
  border-color: var(--pf-edge);
}
.lc-skin-planetfall .lc-statbar-item + .lc-statbar-item { border-left-color: var(--pf-edge); }
.lc-skin-planetfall .lc-statbar-item > i {
  color: var(--pf-ember) !important;
  filter: drop-shadow(2px 2px 0 var(--pf-burn));
}
.lc-skin-planetfall .lc-ticker-wrap { background: #0f1014; border-bottom-color: var(--pf-edge); }
.lc-skin-planetfall .lc-ticker-fade-l { background: linear-gradient(90deg, #0f1014, transparent); }
.lc-skin-planetfall .lc-ticker-fade-r { background: linear-gradient(270deg, #0f1014, transparent); }
.lc-skin-planetfall .lc-ticker-item { border-right-color: var(--pf-steel-3); }
.lc-skin-planetfall .lc-ticker-victor { background: var(--pf-ember); }

/* ---- Hand-set panels that name slate directly -------------------- */
.lc-skin-planetfall main > .lc-band-dark {
  --slate-900: #121419;
  --slate-800: var(--pf-edge);
  --slate-700: var(--pf-edge);
  --surface-dark:      var(--slate-900);
  --surface-dark-card: var(--slate-800);
  --border-dark:       var(--slate-700);
  --border-dark-soft:  var(--slate-800);
}

/* ---- Filter bar + quest grid ------------------------------------ */
.lc-skin-planetfall .lc-filterbar { background: rgba(22, 24, 30, 0.95); backdrop-filter: blur(8px); }
.lc-skin-planetfall .lc-chip { border-radius: 0; clip-path: var(--pf-notch); }
.lc-skin-planetfall .lc-chip:hover { border-color: var(--pf-ember); color: var(--pf-bone); }
.lc-skin-planetfall .lc-chip-active {
  background: var(--pf-ember);
  border-color: var(--pf-ember);
  color: var(--ink-900);
}
.lc-skin-planetfall .lc-compcard {
  background: linear-gradient(180deg, var(--pf-steel-2), var(--pf-steel));
  border-color: var(--pf-edge);
}
.lc-skin-planetfall .lc-compcard:hover {
  border-color: rgba(255, 139, 61, 0.6);
  box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.45), 0 0 24px rgba(224, 97, 27, 0.2);
}
.lc-skin-planetfall .lc-progress { background: var(--pf-steel-3); }

/* ---- How it works ------------------------------------------------ */
.lc-skin-planetfall #how-it-works {
  background:
    radial-gradient(ellipse 60% 55% at 50% 100%, rgba(224, 97, 27, 0.08), transparent 70%),
    var(--pf-steel) !important;
}
.lc-skin-planetfall .lc-step-icon {
  background: var(--pf-steel-2);
  border-color: rgba(255, 139, 61, 0.4);
  border-radius: 0;
  clip-path: var(--pf-notch);
  color: var(--pf-ember) !important;
}
.lc-skin-planetfall .lc-howitworks-warrior {
  filter: brightness(0.8) sepia(0.25) drop-shadow(4px 4px 0 rgba(0, 0, 0, 0.5));
}

/* ---- Fair play pillars ------------------------------------------- */
.lc-skin-planetfall .lc-pillar {
  background: linear-gradient(180deg, var(--pf-steel-2), var(--pf-steel));
  border-color: var(--pf-edge);
}
.lc-skin-planetfall .lc-pillar-icon {
  background: rgba(255, 139, 61, 0.08);
  border-color: rgba(255, 139, 61, 0.4);
  border-radius: 0;
  clip-path: var(--pf-notch);
  color: var(--pf-ember);
}

/* ---- Motion ------------------------------------------------------ */
@keyframes lc-pf-frames {
  from { transform: translateX(0); }
  to   { transform: translateX(-87.5%); }
}
/* Drop cycle (14s): fall 0-9% (~1.3s), impact at 9% */
@keyframes lc-pf-fall {
  0%         { transform: translateY(-1400px); opacity: 1; }
  9%         { transform: translateY(0); opacity: 1; }
  9.01%, 100% { transform: translateY(0); opacity: 0; }
}
/* One frame per 1% (~0.14s), then the smoke thins away */
@keyframes lc-pf-boom {
  0%    { opacity: 0; }
  8.9%  { opacity: 1; }
  17%   { opacity: 0.8; }
  18.5% { opacity: 0.55; }
  20%   { opacity: 0.3; }
  21.5%, 100% { opacity: 0; }
}
@keyframes lc-pf-boom-frames {
  0%, 8.9%    { transform: translateX(0); }
  10%         { transform: translateX(-12.5%); }
  11%         { transform: translateX(-25%); }
  12%         { transform: translateX(-37.5%); }
  13%         { transform: translateX(-50%); }
  14%         { transform: translateX(-62.5%); }
  15.5%       { transform: translateX(-75%); }
  17%, 100%   { transform: translateX(-87.5%); }
}
@keyframes lc-pf-landed {
  0%, 9.6%   { opacity: 0; transform: translateY(6px); }
  10.5%      { opacity: 1; transform: translateY(0); }
  84%        { opacity: 1; }
  92%, 100%  { opacity: 0; }
}
@keyframes lc-pf-march {
  from { transform: translateX(calc(-100% - 20px)); }
  to   { transform: translateX(calc(100vw + 20px)); }
}
@keyframes lc-pf-ride {
  0%        { transform: translateX(-200px); }
  24%       { transform: translateX(calc(100vw + 60px)); }
  24.01%, 100% { transform: translateX(-200px); }
}
@keyframes lc-pf-sweep {
  from { transform: rotate(-24deg); }
  to   { transform: rotate(20deg); }
}
@keyframes lc-pf-flak {
  0%   { opacity: 0; transform: scale(1); }
  70%  { opacity: 1; transform: scale(0.6); }
  73%  { opacity: 1; transform: scale(1); }
  76%  { opacity: 0.6; transform: scale(1.4); }
  79%, 100% { opacity: 0; transform: scale(1.4); }
}
@keyframes lc-pf-ember {
  0%   { transform: translate(0, 0); opacity: 0; }
  10%  { opacity: 1; }
  50%  { transform: translate(14px, -110px); }
  80%  { opacity: 0.6; }
  100% { transform: translate(-6px, -240px); opacity: 0; }
}

/* ---- Smaller screens --------------------------------------------- */
@media (max-width: 1024px) {
  .lc-skin-planetfall .lc-pf-decor { --pf-k: 0.85; }
  .lc-pf-shade {
    background:
      linear-gradient(180deg, rgba(13, 14, 18, 0.8) 0%, rgba(13, 14, 18, 0.55) 60%, rgba(13, 14, 18, 0.2) 85%, transparent 100%);
  }
  /* Columns stack, so the falling capsules drift behind the copy */
  .lc-pf-pod,
  .lc-pf-boom { z-index: auto; }
}
@media (max-width: 640px) {
  .lc-skin-planetfall .lc-hero { padding-bottom: 150px; }
  .lc-skin-planetfall .lc-pf-decor { --pf-k: 0.72; --pf-floor: 40px; }
  .lc-pf-drop-1 { left: 16%; }
  .lc-pf-drop-2 { left: 84%; }
  .lc-pf-drop-3 { left: 50%; }
  .lc-pf-beams i:nth-child(2),
  .lc-pf-flak i:nth-child(n+4),
  .lc-pf-embers i:nth-child(n+5) { display: none; }
}

/* ---- Reduced motion: a still battlefield ---------------------------- */
@media (prefers-reduced-motion: reduce) {
  .lc-pf-pod,
  .lc-pf-boom,
  .lc-pf-bike,
  .lc-pf-flak,
  .lc-pf-embers { display: none; }
  .lc-pf-beams i,
  .lc-pf-squad,
  .lc-pf-squad i::before { animation: none; }
  .lc-pf-landed { animation: none; opacity: 1; }
  .lc-pf-squad { transform: translateX(6vw); }
  .lc-pf-beams i:nth-child(1) { transform: rotate(-14deg); }
  .lc-pf-beams i:nth-child(2) { transform: rotate(12deg); }
}
