/*
 * Isolated campaign theme slot for Kaguya Play.
 *
 * This file is loaded only while Promotion mode is active. Future campaign
 * work should be scoped to:
 *   body.kaguya-campaign-mode
 *   body.kaguya-campaign-{identifier}
 *   .kaguya-campaign-banner
 *
 * Keep the permanent cosmic theme untouched. Campaigns stay opt-in and
 * scoped to their own body class.
 */

/* Kaguya Pixel Party — reusable lunar birthday/festival campaign layer. */
body.kaguya-campaign-pixel-party {
  --kpp-cyan: #67e8f9;
  --kpp-pink: #f472d0;
  --kpp-gold: #fbbf24;
}
body.kaguya-campaign-pixel-party .kaguya-campaign-banner {
  position: relative;
  left: 0;
  width: 100vw;
  max-width: 100vw;
  margin-left: 0;
  margin-right: 0;
  box-sizing: border-box;
  align-self: stretch;
  isolation: isolate;
  min-height: 168px;
  padding: 22px 18px;
  overflow: hidden;
  border-bottom: 2px solid rgba(251,191,36,.76);
  background:
    linear-gradient(110deg, rgba(17,13,52,.98), rgba(38,18,80,.96) 48%, rgba(10,35,68,.98)),
    radial-gradient(circle at 50% 10%, rgba(244,114,208,.22), transparent 32%);
  box-shadow: 0 8px 32px rgba(0,0,0,.4), inset 0 -1px rgba(103,232,249,.22);
}
body.kaguya-campaign-pixel-party .kaguya-campaign-banner::before,
body.kaguya-campaign-pixel-party .kaguya-campaign-banner::after {
  content: "";
  position: absolute;
  z-index: 0;
  bottom: 0;
  width: min(48vw, 620px);
  height: 100%;
  pointer-events: none;
  background-image: url('kaguya-pixel-party-overlay.png');
  background-repeat: no-repeat;
  background-size: 860px auto;
  mix-blend-mode: screen;
  opacity: .88;
  image-rendering: pixelated;
}
body.kaguya-campaign-pixel-party .kaguya-campaign-banner::before { left: 0; background-position: left bottom; }
body.kaguya-campaign-pixel-party .kaguya-campaign-banner::after { right: 0; background-position: right bottom; }
body.kaguya-campaign-pixel-party .kaguya-campaign-banner > div { position: relative; z-index: 1; gap: 10px 18px; }
body.kaguya-campaign-pixel-party .kaguya-campaign-banner strong {
  width: 100%;
  color: #fff7d1 !important;
  font-family: "Kaguya Orbitron", "Orbitron", sans-serif;
  font-size: clamp(1.08rem, 2vw, 1.55rem);
  font-weight: 900;
  letter-spacing: .045em;
  text-shadow: 3px 3px 0 #1d1245, 0 0 18px rgba(251,191,36,.55);
}
body.kaguya-campaign-pixel-party .kaguya-campaign-banner span {
  color: #e9e6ff !important;
  font-size: .96rem;
  text-shadow: 0 1px 10px #110c2b;
}
body.kaguya-campaign-pixel-party .kaguya-campaign-banner a {
  padding: 9px 14px;
  border: 2px solid #090b1b;
  border-radius: 7px;
  background: #fbbf24;
  color: #160d2c !important;
  box-shadow: 3px 3px 0 #090b1b;
  font-family: "Kaguya Orbitron", "Orbitron", sans-serif;
  font-size: .76rem;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}
body.kaguya-campaign-pixel-party .kaguya-campaign-banner a:hover { transform: translate(1px,1px); box-shadow: 2px 2px 0 #090b1b; }
body.kaguya-campaign-pixel-party.woocommerce-shop .kaguya-v6-hero-catalog,
body.kaguya-campaign-pixel-party.woocommerce-shop .kaguya-v9-shop-top {
  border-color: rgba(251,191,36,.5) !important;
  box-shadow: 0 0 0 1px rgba(244,114,208,.15), 0 22px 58px rgba(0,0,0,.34) !important;
}
body.kaguya-campaign-pixel-party .wc-block-components-product-sale-badge {
  border-color: #fbbf24 !important;
  box-shadow: 0 0 0 2px #2a124c, 3px 3px 0 #080a18 !important;
}
/* The celebration extends through the browsing surfaces, not the checkout. */
body.kaguya-campaign-pixel-party.home .kaguya-v6-storefront,
body.kaguya-campaign-pixel-party.woocommerce-shop .kaguya-v9-shop-top {
  position: relative;
  padding-top: calc(clamp(44px,11.2vw,166px) + 18px) !important;
}
body.kaguya-campaign-pixel-party.home .kaguya-v6-storefront::after,
body.kaguya-campaign-pixel-party.woocommerce-shop .kaguya-v9-shop-top::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: 2;
  top: 8px;
  left: 50%;
  width: 100vw;
  height: clamp(44px,11.2vw,166px);
  transform: translateX(-50%);
  opacity: .94;
  background-image: url('kaguya-pixel-party-bunting-v1-trimmed.png');
  background-repeat: no-repeat;
  background-position: center clamp(-41px,-2.6vw,-10px);
  background-size: min(100%,1500px) auto;
  filter: drop-shadow(0 0 5px rgba(244,114,208,.42));
  image-rendering: pixelated;
}

/* Product pages receive the same real pixel bunting without crowding the buy box. */
body.kaguya-campaign-pixel-party.single-product main#wp--skip-link--target > .wp-block-columns.alignwide {
  position: relative;
  overflow: hidden;
  padding-top: clamp(82px,6.5vw,96px) !important;
  border-color: rgba(251,191,36,.42) !important;
  box-shadow: 0 0 0 1px rgba(244,114,208,.12), 0 34px 90px rgba(0,0,0,.40) !important;
}
body.kaguya-campaign-pixel-party.single-product main#wp--skip-link--target > .wp-block-columns.alignwide::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0 0 auto;
  height: 94px;
  pointer-events: none;
  background-image: url('kaguya-pixel-party-bunting-v1-trimmed.png');
  background-repeat: no-repeat;
  background-position: center -5px;
  background-size: auto 104px;
  opacity: .92;
  filter: drop-shadow(0 0 5px rgba(244,114,208,.36));
  image-rendering: pixelated;
}
body.kaguya-campaign-pixel-party.single-product main#wp--skip-link--target > .wp-block-columns.alignwide > * {
  position: relative;
  z-index: 1;
}
/* Informational pages share one continuous in-card garland. */
body.kaguya-campaign-pixel-party.page-id-45 .kaguya-info-hero,
body.kaguya-campaign-pixel-party.page-id-125 .kaguya-info-hero,
body.kaguya-campaign-pixel-party.page-id-44 .kaguya-info-hero {
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
  padding-top: 86px !important;
}
body.kaguya-campaign-pixel-party.page-id-45 .kaguya-info-hero::before,
body.kaguya-campaign-pixel-party.page-id-125 .kaguya-info-hero::before,
body.kaguya-campaign-pixel-party.page-id-44 .kaguya-info-hero::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0 0 auto;
  height: 64px;
  pointer-events: none;
  background-image: url('kaguya-pixel-party-bunting-v1-trimmed.png');
  background-repeat: no-repeat;
  background-position: center top;
  background-size: auto 64px;
  opacity: .82;
  filter: drop-shadow(0 0 5px rgba(244,114,208,.32));
  image-rendering: pixelated;
}
body.kaguya-campaign-pixel-party.page-id-45 .kaguya-info-hero > *,
body.kaguya-campaign-pixel-party.page-id-125 .kaguya-info-hero > *,
body.kaguya-campaign-pixel-party.page-id-44 .kaguya-info-hero > * {
  position: relative;
  z-index: 1;
}
body.kaguya-campaign-pixel-party.woocommerce-cart main#wp--skip-link--target,
body.kaguya-campaign-pixel-party.woocommerce-account main#wp--skip-link--target {
  position: relative;
  padding-top: calc(clamp(44px,11.2vw,166px) + 12px) !important;
}
body.kaguya-campaign-pixel-party.woocommerce-cart main#wp--skip-link--target::before,
body.kaguya-campaign-pixel-party.woocommerce-account main#wp--skip-link--target::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 0;
  left: 50%;
  width: 100vw;
  height: clamp(44px,11.2vw,166px);
  transform: translateX(-50%);
  pointer-events: none;
  background-image: url('kaguya-pixel-party-bunting-v1-trimmed.png');
  background-repeat: no-repeat;
  background-position: center clamp(-41px,-2.6vw,-10px);
  background-size: min(100%,1500px) auto;
  opacity: .94;
  filter: drop-shadow(0 0 5px rgba(244,114,208,.42));
  image-rendering: pixelated;
}
body.kaguya-campaign-pixel-party.woocommerce-cart main#wp--skip-link--target > *,
body.kaguya-campaign-pixel-party.woocommerce-account main#wp--skip-link--target > * {
  position: relative;
  z-index: 1;
}
body.kaguya-campaign-pixel-party .kaguya-v4-footer {
  position: relative;
  overflow: hidden;
  padding-bottom: 128px !important;
  border-top-color: rgba(251,191,36,.58) !important;
}
body.kaguya-campaign-pixel-party .kaguya-v4-footer::before,
body.kaguya-campaign-pixel-party .kaguya-v4-footer::after {
  content: "";
  position: absolute;
  z-index: 0;
  bottom: 0;
  width: 250px;
  height: 194px;
  pointer-events: none;
  background-image: url('kaguya-pixel-party-overlay.png');
  background-repeat: no-repeat;
  background-size: 520px auto;
  mix-blend-mode: screen;
  opacity: .62;
  image-rendering: pixelated;
}
body.kaguya-campaign-pixel-party .kaguya-v4-footer::before {
  left: 0;
  background-position: left bottom;
}
body.kaguya-campaign-pixel-party .kaguya-v4-footer::after {
  right: 0;
  background-position: right bottom;
}
body.kaguya-campaign-pixel-party .kaguya-v4-footer > * { position: relative; z-index: 1; }
body.kaguya-campaign-pixel-party .kaguya-v4-footer a {
  min-height: 34px;
  padding: 5px 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}
@media (min-width: 761px) {
  body.kaguya-campaign-pixel-party .kaguya-campaign-banner {
    background:
      linear-gradient(90deg, rgba(17,13,52,.62), rgba(38,18,80,.78) 50%, rgba(10,35,68,.62)),
      url('kaguya-pixel-party-bunting-v1-trimmed.png') center -24px / 100% auto no-repeat,
      linear-gradient(110deg, rgba(17,13,52,.98), rgba(38,18,80,.96) 48%, rgba(10,35,68,.98)),
      radial-gradient(circle at 50% 10%, rgba(244,114,208,.22), transparent 32%);
  }
  body.kaguya-campaign-pixel-party .kaguya-campaign-banner::before,
  body.kaguya-campaign-pixel-party .kaguya-campaign-banner::after {
    width: min(34vw,490px);
    max-width: none;
    background-size: auto 100%;
    opacity: .9;
  }
  body.kaguya-campaign-pixel-party .kaguya-campaign-banner::before {
    background-image: url('kaguya-pixel-party-astronaut-side.png');
    background-position: left center;
  }
  body.kaguya-campaign-pixel-party .kaguya-campaign-banner::after {
    background-image: url('kaguya-pixel-party-alien-side.png');
    background-position: right center;
  }
  body.kaguya-campaign-pixel-party.home .kaguya-v6-storefront,
  body.kaguya-campaign-pixel-party.woocommerce-shop .kaguya-v9-shop-top {
    padding-top: calc(clamp(58px,4.6vw,90px) + 18px) !important;
  }
  body.kaguya-campaign-pixel-party.home .kaguya-v6-storefront::after,
  body.kaguya-campaign-pixel-party.woocommerce-shop .kaguya-v9-shop-top::after {
    height: clamp(58px,4.6vw,90px);
    background-image:
      url('kaguya-pixel-party-bunting-v1-trimmed.png'),
      url('kaguya-pixel-party-bunting-v1-trimmed.png'),
      url('kaguya-pixel-party-bunting-v1-trimmed.png');
    background-position: left top, center top, right top;
    background-size: auto 100%, auto 100%, auto 100%;
    background-repeat: no-repeat;
  }
  body.kaguya-campaign-pixel-party.single-product main#wp--skip-link--target > .wp-block-columns.alignwide::before {
    height: clamp(82px,6.5vw,94px);
    background-image:
      url('kaguya-pixel-party-bunting-v1-trimmed.png'),
      url('kaguya-pixel-party-bunting-v1-trimmed.png');
    background-position:
      left -3.8vw top -5px,
      right -3.8vw top -5px;
    background-size: 55.5% auto, 55.5% auto;
    background-repeat: no-repeat;
  }
  body.kaguya-campaign-pixel-party.page-id-45 .kaguya-info-hero,
  body.kaguya-campaign-pixel-party.page-id-125 .kaguya-info-hero,
  body.kaguya-campaign-pixel-party.page-id-44 .kaguya-info-hero {
    padding-top: 104px !important;
  }
  body.kaguya-campaign-pixel-party.page-id-45 .kaguya-info-hero::before,
  body.kaguya-campaign-pixel-party.page-id-125 .kaguya-info-hero::before,
  body.kaguya-campaign-pixel-party.page-id-44 .kaguya-info-hero::before {
    height: 72px;
    background-image:
      url('kaguya-pixel-party-bunting-v1-trimmed.png'),
      url('kaguya-pixel-party-bunting-v1-trimmed.png'),
      url('kaguya-pixel-party-bunting-v1-trimmed.png');
    background-position: left top, center top, right top;
    background-size: 36% auto, 36% auto, 36% auto;
    background-repeat: no-repeat;
  }
  body.kaguya-campaign-pixel-party.woocommerce-cart main#wp--skip-link--target,
  body.kaguya-campaign-pixel-party.woocommerce-account main#wp--skip-link--target {
    padding-top: calc(clamp(58px,4.6vw,90px) + 18px) !important;
  }
  body.kaguya-campaign-pixel-party.woocommerce-cart main#wp--skip-link--target::before,
  body.kaguya-campaign-pixel-party.woocommerce-account main#wp--skip-link--target::before {
    height: clamp(58px,4.6vw,90px);
    background-image:
      url('kaguya-pixel-party-bunting-v1-trimmed.png'),
      url('kaguya-pixel-party-bunting-v1-trimmed.png'),
      url('kaguya-pixel-party-bunting-v1-trimmed.png');
    background-position: left top, center top, right top;
    background-size: auto 100%, auto 100%, auto 100%;
    background-repeat: no-repeat;
  }
}
@media (max-width: 760px) {
  body.kaguya-campaign-pixel-party .kaguya-campaign-banner { min-height: 142px; padding: 17px 16px; }
  body.kaguya-campaign-pixel-party .kaguya-campaign-banner::before,
  body.kaguya-campaign-pixel-party .kaguya-campaign-banner::after { width: 55vw; background-size: 550px auto; opacity: .25; }
  body.kaguya-campaign-pixel-party .kaguya-campaign-banner > div { max-width: 78%; }
  body.kaguya-campaign-pixel-party .kaguya-campaign-banner span { font-size: .84rem; }
  body.kaguya-campaign-pixel-party .kaguya-campaign-banner a { padding: 8px 11px; font-size: .67rem; }
  body.kaguya-campaign-pixel-party.home .kaguya-v6-storefront,
  body.kaguya-campaign-pixel-party.woocommerce-shop .kaguya-v9-shop-top {
    padding-top: calc(clamp(44px,11.2vw,166px) + 12px) !important;
  }
  body.kaguya-campaign-pixel-party.single-product main#wp--skip-link--target > .wp-block-columns.alignwide {
    padding: 70px 14px 14px !important;
  }
  body.kaguya-campaign-pixel-party.single-product main#wp--skip-link--target > .wp-block-columns.alignwide::before {
    height: 64px;
    background-position: center top;
    background-size: auto 64px;
    opacity: .94;
  }
  body.kaguya-campaign-pixel-party .kaguya-v4-footer {
    min-height: 270px;
    padding-bottom: 22px !important;
  }
  body.kaguya-campaign-pixel-party .kaguya-v4-footer::before,
  body.kaguya-campaign-pixel-party .kaguya-v4-footer::after {
    width: 190px;
    height: 178px;
    background-size: 470px auto;
    opacity: .58;
  }
  body.kaguya-campaign-pixel-party .kaguya-v4-footer a {
    min-height: 30px;
    padding: 4px 6px;
    border-radius: 8px;
    background: rgba(5,9,28,.62);
    box-shadow: 0 0 14px rgba(5,9,28,.44);
  }

  /* FOOTER-COMPACT-1: keep the party art while avoiding seven tall button rows. */
  body.kaguya-campaign-pixel-party .kaguya-v4-footer .kaguya-v4-footer-inner {
    padding: 14px 0 !important;
  }
  body.kaguya-campaign-pixel-party .kaguya-v4-footer strong {
    margin-bottom: 8px !important;
  }
  body.kaguya-campaign-pixel-party .kaguya-v4-footer nav {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: center !important;
    width: min(344px, calc(100% - 24px));
    margin: 0 auto !important;
    gap: 4px 8px !important;
  }
  body.kaguya-campaign-pixel-party .kaguya-v4-footer nav a:nth-child(5) {
    grid-column: 1 / -1;
    justify-self: center;
    width: min(230px, 100%);
  }
}
@media (prefers-reduced-motion: no-preference) {
  body.kaguya-campaign-pixel-party .kaguya-campaign-banner::before { animation: kaguya-party-float-left 7s ease-in-out infinite alternate; }
  body.kaguya-campaign-pixel-party .kaguya-campaign-banner::after { animation: kaguya-party-float-right 8s ease-in-out infinite alternate; }
}
@keyframes kaguya-party-float-left { to { transform: translateY(-4px); } }
@keyframes kaguya-party-float-right { to { transform: translateY(4px); } }
