:root {
  --ewp-bg-a: #f8fbff;
  --ewp-bg-b: #e8f3fb;
  --ewp-bg-c: #fbf7ee;
  --ewp-text-glow: rgba(255,255,255,.65);
  --ewp-fall-color: rgba(255,255,255,.88);
  --ewp-fall-color-2: rgba(219,234,248,.78);
  --ewp-drift-a: rgba(245,250,255,.92);
  --ewp-drift-b: rgba(219,233,246,.86);
  --ewp-sky-filter: none;
}

html.ewp-env-ready body {
  background:
    radial-gradient(circle at 12% 8%, rgba(255,255,255,.88), transparent 28%),
    linear-gradient(135deg, var(--ewp-bg-a), var(--ewp-bg-b) 48%, var(--ewp-bg-c)) !important;
  transition: background 1.2s ease, color 1s ease, filter 1s ease;
}

html.ewp-dawn {
  --ewp-bg-a: #fff8fb;
  --ewp-bg-b: #e8f3ff;
  --ewp-bg-c: #f7e9d8;
  --ewp-drift-a: rgba(255,249,252,.92);
  --ewp-drift-b: rgba(225,238,250,.86);
}

html.ewp-morning {
  --ewp-bg-a: #fbfdff;
  --ewp-bg-b: #e6f3ff;
  --ewp-bg-c: #f8fbff;
  --ewp-drift-a: rgba(250,253,255,.94);
  --ewp-drift-b: rgba(219,236,250,.88);
}

html.ewp-noon {
  --ewp-bg-a: #fffdf4;
  --ewp-bg-b: #edf7ff;
  --ewp-bg-c: #ffeec0;
  --ewp-text-glow: rgba(255,246,214,.72);
  --ewp-drift-a: rgba(255,253,241,.94);
  --ewp-drift-b: rgba(235,244,250,.82);
}

html.ewp-afternoon {
  --ewp-bg-a: #f8fbff;
  --ewp-bg-b: #dcecf8;
  --ewp-bg-c: #f8f0df;
  --ewp-drift-a: rgba(248,252,255,.92);
  --ewp-drift-b: rgba(219,234,246,.86);
}

html.ewp-dusk {
  --ewp-bg-a: #fff4df;
  --ewp-bg-b: #d8e2f4;
  --ewp-bg-c: #c9b4df;
  --ewp-text-glow: rgba(255,218,160,.48);
  --ewp-drift-a: rgba(255,245,226,.9);
  --ewp-drift-b: rgba(221,225,242,.82);
}

html.ewp-night {
  --ewp-bg-a: #101d35;
  --ewp-bg-b: #172f55;
  --ewp-bg-c: #0d1426;
  --ewp-text-glow: rgba(139,183,226,.32);
  --ewp-fall-color: rgba(215,232,255,.78);
  --ewp-fall-color-2: rgba(169,199,235,.58);
  --ewp-drift-a: rgba(207,226,246,.72);
  --ewp-drift-b: rgba(91,126,164,.52);
}

html.ewp-deep_night {
  --ewp-bg-a: #030712;
  --ewp-bg-b: #071527;
  --ewp-bg-c: #01030a;
  --ewp-text-glow: rgba(89,133,185,.24);
  --ewp-fall-color: rgba(202,224,255,.7);
  --ewp-fall-color-2: rgba(122,164,214,.46);
  --ewp-drift-a: rgba(196,218,242,.62);
  --ewp-drift-b: rgba(48,76,111,.5);
}

html.ewp-night body,
html.ewp-deep_night body {
  color-scheme: dark;
}

html.ewp-banquet-aurora {
  --ewp-bg-a: #fff7d8;
  --ewp-bg-b: #22304f;
  --ewp-bg-c: #6e4c1f;
  --ewp-text-glow: rgba(255,226,152,.62);
  --ewp-fall-color: rgba(255,236,172,.92);
  --ewp-fall-color-2: rgba(151,235,236,.62);
  --ewp-drift-a: rgba(255,243,205,.88);
  --ewp-drift-b: rgba(232,193,111,.66);
}

html.ewp-banquet-aurora.ewp-night,
html.ewp-banquet-aurora.ewp-deep_night {
  --ewp-bg-a: #2a1a09;
  --ewp-bg-b: #513519;
  --ewp-bg-c: #0f111d;
  --ewp-text-glow: rgba(255,210,116,.68);
  color-scheme: dark;
}

html.ewp-banquet-aurora body {
  background:
    radial-gradient(circle at 16% 12%, rgba(255,234,166,.42), transparent 25%),
    radial-gradient(circle at 80% 10%, rgba(126,238,229,.26), transparent 28%),
    radial-gradient(circle at 50% 40%, rgba(255,183,218,.16), transparent 32%),
    linear-gradient(135deg, var(--ewp-bg-a), var(--ewp-bg-b) 48%, var(--ewp-bg-c)) !important;
}

html.ewp-banquet-aurora.ewp-night body,
html.ewp-banquet-aurora.ewp-deep_night body {
  background:
    radial-gradient(circle at 18% 16%, rgba(255,210,116,.38), transparent 28%),
    radial-gradient(circle at 72% 18%, rgba(255,188,112,.26), transparent 26%),
    radial-gradient(circle at 52% 48%, rgba(126,238,229,.18), transparent 38%),
    linear-gradient(145deg, #2a1a09 0%, #513519 48%, #0f111d 100%) !important;
}

.ewp-weather-layer,
.ewp-drift-layer,
.ewp-sky-veil {
  position: fixed;
  pointer-events: none;
  z-index: 9990;
}

.ewp-banquet-aurora-layer,
.ewp-banquet-ribbons,
.ewp-banquet-top-drape,
.ewp-banquet-star {
  pointer-events: none;
  position: fixed;
}

.ewp-banquet-aurora-layer {
  inset: -14vh -18vw auto;
  height: 76vh;
  z-index: 10005;
  opacity: .9;
  mix-blend-mode: screen;
  filter: blur(16px) saturate(1.38);
  background:
    linear-gradient(108deg, transparent 2%, rgba(112,225,230,.20) 14%, rgba(255,214,112,.40) 28%, rgba(255,144,202,.26) 43%, rgba(130,185,255,.34) 58%, transparent 80%),
    linear-gradient(82deg, transparent 5%, rgba(255,248,191,.30) 22%, rgba(110,231,216,.38) 38%, rgba(197,160,255,.28) 58%, transparent 84%);
  transform: skewY(-8deg);
  animation: ewpBanquetAurora 14s ease-in-out infinite alternate;
}

.ewp-banquet-aurora-layer::before,
.ewp-banquet-aurora-layer::after {
  content: "";
  position: absolute;
  left: -6vw;
  right: -6vw;
  height: 44%;
  border-radius: 50%;
  filter: blur(10px);
  opacity: .72;
}

.ewp-banquet-aurora-layer::before {
  top: 14%;
  background:
    linear-gradient(102deg, transparent, rgba(105,238,226,.34), rgba(255,232,152,.42), rgba(255,137,205,.28), transparent);
  animation: ewpBanquetAuroraRibbon 9s ease-in-out infinite alternate;
}

.ewp-banquet-aurora-layer::after {
  top: 34%;
  background:
    linear-gradient(78deg, transparent, rgba(255,246,186,.30), rgba(130,182,255,.34), rgba(122,239,216,.26), transparent);
  animation: ewpBanquetAuroraRibbon 12s ease-in-out infinite alternate-reverse;
}

@keyframes ewpBanquetAurora {
  0% { transform: translate3d(-3vw, -1vh, 0) skewY(-8deg); opacity: .58; }
  50% { transform: translate3d(3vw, 2vh, 0) skewY(-5deg); opacity: .86; }
  100% { transform: translate3d(7vw, 0, 0) skewY(-9deg); opacity: .68; }
}

@keyframes ewpBanquetAuroraRibbon {
  0% { transform: translate3d(-4vw, -1vh, 0) rotate(-2deg); }
  100% { transform: translate3d(5vw, 2vh, 0) rotate(2deg); }
}

.ewp-banquet-ribbons {
  inset: 0;
  z-index: 10040;
}

.ewp-banquet-ribbons .corner {
  position: absolute;
  width: 138px;
  height: 138px;
  background:
    linear-gradient(135deg, rgba(255,248,218,.94), rgba(218,171,72,.72) 54%, rgba(160,111,34,.86));
  clip-path: polygon(0 0, 100% 0, 0 100%);
  filter: drop-shadow(0 10px 20px rgba(100,70,20,.22));
}

.ewp-banquet-ribbons .corner::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 14px;
  width: 80px;
  height: 16px;
  border-top: 1px solid rgba(255,255,255,.58);
  border-bottom: 1px solid rgba(137,94,27,.28);
  transform: rotate(-45deg);
}

.ewp-banquet-ribbons .corner::after {
  content: "";
  position: absolute;
  width: 38px;
  height: 46px;
  left: 20px;
  top: 70px;
  background:
    repeating-linear-gradient(90deg, rgba(120,80,26,.48) 0 2px, transparent 2px 7px),
    linear-gradient(180deg, rgba(255,232,157,.82), rgba(198,143,46,.65));
  border-radius: 0 0 18px 18px;
  transform: rotate(-45deg);
}

.ewp-banquet-ribbons .ne { right: 0; top: 0; transform: scaleX(-1); }
.ewp-banquet-ribbons .nw { left: 0; top: 0; }
.ewp-banquet-ribbons .sw { left: 0; bottom: 0; transform: scaleY(-1); }
.ewp-banquet-ribbons .se { right: 0; bottom: 0; transform: scale(-1); }

.ewp-banquet-star {
  z-index: 10030;
  left: 0;
  top: 0;
  width: var(--s);
  height: var(--s);
  transform: translate(-50%, -50%);
  animation: ewpBanquetStar .86s ease-out forwards;
}

.ewp-banquet-star::before {
  content: "✦";
  position: absolute;
  left: 0;
  top: -8px;
  color: rgba(255,228,142,.96);
  font-size: calc(var(--s) * 2.2);
  text-shadow:
    0 0 8px rgba(255,239,186,.88),
    0 0 18px rgba(229,177,76,.46);
}

@keyframes ewpBanquetStar {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.5); }
  18% { opacity: 1; }
  100% { opacity: 0; transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(0); }
}

.ewp-banquet-star {
  z-index: 10060;
  transform: translate(-50%, -50%) rotate(var(--rot, 0deg));
  animation: ewpBanquetStar .96s ease-out forwards;
}

.ewp-banquet-star::before {
  content: "";
  inset: 0;
  left: auto;
  top: auto;
  color: transparent;
  font-size: 0;
  background:
    linear-gradient(90deg, transparent 42%, rgba(255,238,164,.98) 43% 57%, transparent 58%),
    linear-gradient(0deg, transparent 42%, rgba(255,238,164,.98) 43% 57%, transparent 58%),
    radial-gradient(circle, rgba(255,255,255,.98) 0 18%, rgba(255,228,142,.95) 19% 42%, transparent 43%);
  clip-path: polygon(50% 0, 62% 36%, 100% 50%, 62% 64%, 50% 100%, 38% 64%, 0 50%, 38% 36%);
  filter:
    drop-shadow(0 0 6px rgba(255,239,186,.92))
    drop-shadow(0 0 14px rgba(229,177,76,.58));
}

.ewp-banquet-star::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: calc(var(--s) * .46);
  height: calc(var(--s) * .46);
  border-radius: 50%;
  background: rgba(255,255,255,.92);
  transform: translate(-50%, -50%);
  box-shadow: 0 0 12px rgba(255,232,150,.82);
}

@keyframes ewpBanquetStar {
  0% { opacity: 0; transform: translate(-50%, -50%) rotate(var(--rot, 0deg)) scale(.45); }
  18% { opacity: 1; }
  100% { opacity: 0; transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) rotate(calc(var(--rot, 0deg) + 95deg)) scale(0); }
}

.ewp-sky-veil {
  inset: 0;
  background:
    radial-gradient(circle at 22% 12%, var(--ewp-text-glow), transparent 28%),
    radial-gradient(circle at 78% 18%, rgba(255,255,255,.18), transparent 20%);
  mix-blend-mode: screen;
  opacity: .7;
}

html.ewp-night .ewp-sky-veil,
html.ewp-deep_night .ewp-sky-veil {
  background:
    radial-gradient(circle at 16% 14%, rgba(117,163,218,.25), transparent 20%),
    radial-gradient(circle at 74% 18%, rgba(255,255,255,.12), transparent 18%),
    radial-gradient(circle at 48% 42%, rgba(70,103,156,.13), transparent 34%);
  opacity: .86;
}

.ewp-weather-layer {
  inset: 0;
  overflow: hidden;
  z-index: 9991;
}

.ewp-particle {
  position: absolute;
  left: var(--x);
  top: -8vh;
  width: var(--s);
  height: var(--s);
  opacity: var(--o);
  transform: translate3d(0,0,0) rotate(var(--r));
  animation: ewpFall var(--d) linear infinite;
  animation-delay: var(--delay);
}

@keyframes ewpFall {
  0% {
    transform: translate3d(0, -10vh, 0) rotate(var(--r));
  }
  100% {
    transform: translate3d(var(--wind), 115vh, 0) rotate(calc(var(--r) + 260deg));
  }
}

html.ewp-weather-reverse_snow .ewp-particle {
  top: auto;
  bottom: -10vh;
  animation-name: ewpRise;
}

@keyframes ewpRise {
  0% {
    transform: translate3d(0, 10vh, 0) rotate(var(--r));
  }
  100% {
    transform: translate3d(var(--wind), -115vh, 0) rotate(calc(var(--r) - 220deg));
  }
}

html.ewp-weather-snow .ewp-particle {
  border-radius: 50%;
  background: var(--ewp-fall-color);
  box-shadow: 0 0 9px rgba(255,255,255,.72);
}

html.ewp-weather-gold_dust .ewp-particle {
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, rgba(255,250,235,.98) 0%, rgba(248,231,185,.92) 42%, rgba(232,208,146,.72) 78%, rgba(255,244,214,.18) 100%);
  box-shadow:
    0 0 10px rgba(255,241,205,.55),
    0 0 18px rgba(245,223,166,.28);
}

html.ewp-weather-clock_ash .ewp-particle {
  width: calc(var(--s) * 1.6);
  height: 2px;
  border-radius: 999px;
  background: rgba(103,114,128,.55);
  box-shadow: 0 0 6px rgba(70,80,96,.22);
}

html.ewp-weather-blue_petals .ewp-particle {
  width: calc(var(--s) * 1.6);
  height: var(--s);
  border-radius: 80% 20% 70% 30%;
  background: rgba(110,168,220,.72);
  box-shadow: 0 0 10px rgba(110,168,220,.32);
}

html.ewp-weather-paper_snow .ewp-particle {
  width: calc(var(--s) * 1.8);
  height: calc(var(--s) * 1.15);
  border-radius: 2px;
  background: rgba(255,255,246,.78);
  box-shadow: inset 0 0 0 1px rgba(137,141,150,.12);
}

html.ewp-weather-star_frost .ewp-particle {
  background: transparent;
}

html.ewp-weather-star_frost .ewp-particle::before {
  content: "✦";
  color: rgba(210,230,255,.82);
  text-shadow: 0 0 10px rgba(154,197,255,.5);
  font-size: calc(var(--s) * 1.8);
  position: absolute;
  left: 0;
  top: -8px;
}

html.ewp-weather-silent_rain .ewp-particle {
  width: 1px;
  height: calc(var(--s) * 4);
  border-radius: 999px;
  background: rgba(166,197,230,.42);
  box-shadow: 0 0 8px rgba(166,197,230,.22);
}

html.ewp-weather-reverse_snow .ewp-particle {
  border-radius: 50%;
  background: rgba(229,242,255,.74);
  box-shadow: 0 0 9px rgba(229,242,255,.42);
}

html.ewp-weather-banquet_aurora .ewp-particle {
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 35%, rgba(255,255,255,.98), rgba(255,228,142,.95) 30%, rgba(136,238,226,.78) 58%, rgba(255,149,207,.36) 100%);
  box-shadow:
    0 0 14px rgba(255,232,150,.84),
    0 0 28px rgba(114,232,224,.48),
    0 0 38px rgba(255,150,210,.30);
}

html.ewp-banquet-aurora .snow-layer span {
  background:
    radial-gradient(circle, rgba(255,255,255,.95), rgba(255,230,144,.88) 44%, rgba(126,238,229,.42));
  box-shadow:
    0 0 12px rgba(255,232,150,.72),
    0 0 24px rgba(114,232,224,.34);
}

.ewp-drift-layer {
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--ewp-drift-height, 24px);
  z-index: 9992;
  background:
    radial-gradient(ellipse at 12% 100%, var(--ewp-drift-a) 0 28%, transparent 29%),
    radial-gradient(ellipse at 36% 100%, var(--ewp-drift-b) 0 26%, transparent 27%),
    radial-gradient(ellipse at 66% 100%, var(--ewp-drift-a) 0 30%, transparent 31%),
    radial-gradient(ellipse at 88% 100%, var(--ewp-drift-b) 0 24%, transparent 25%),
    linear-gradient(180deg, transparent 0%, var(--ewp-drift-a) 68%, var(--ewp-drift-b) 100%);
  filter: drop-shadow(0 -8px 18px rgba(93,121,151,.08));
  transition: height .8s ease, background 1s ease;
}

.ewp-drift-layer::before {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 12px;
  background: linear-gradient(180deg, transparent, rgba(255,255,255,.24));
  opacity: .7;
}

.ewp-env-widget {
  position: absolute;
  left: 26px;
  top: 24px;
  z-index: 20;
  max-width: 270px;
  border-radius: 20px;
  padding: 13px 14px;
  border: 1px solid rgba(207,181,103,.34);
  background: rgba(255,255,255,.76);
  backdrop-filter: blur(12px);
  box-shadow: 0 14px 34px rgba(58,84,112,.14);
  color: #2d4965;
}

html.ewp-night .ewp-env-widget,
html.ewp-deep_night .ewp-env-widget {
  background: rgba(13,25,45,.72);
  border-color: rgba(153,184,218,.26);
  color: #d7e7f8;
}

html.ewp-banquet-aurora .ewp-env-widget,
html.ewp-banquet-aurora .weather-box {
  border-color: rgba(226,185,88,.48) !important;
  background:
    radial-gradient(circle at 14% 12%, rgba(255,255,255,.54), transparent 26%),
    linear-gradient(135deg, rgba(255,250,226,.82), rgba(222,242,255,.72)) !important;
  box-shadow:
    0 18px 46px rgba(133,96,32,.16),
    0 0 34px rgba(126,238,229,.14) !important;
}

html.ewp-banquet-aurora.ewp-night .ewp-env-widget,
html.ewp-banquet-aurora.ewp-deep_night .ewp-env-widget,
html.ewp-banquet-aurora.ewp-night .weather-box,
html.ewp-banquet-aurora.ewp-deep_night .weather-box {
  color: #fff3cc !important;
  background:
    radial-gradient(circle at 20% 16%, rgba(255,218,130,.22), transparent 28%),
    linear-gradient(135deg, rgba(55,34,12,.86), rgba(24,22,34,.80)) !important;
  border-color: rgba(226,185,88,.42) !important;
}

html.ewp-banquet-aurora .weather-main strong,
html.ewp-banquet-aurora .weather-desc {
  color: #6c4d1e !important;
}

html.ewp-banquet-aurora.ewp-night .weather-main strong,
html.ewp-banquet-aurora.ewp-night .weather-desc,
html.ewp-banquet-aurora.ewp-deep_night .weather-main strong,
html.ewp-banquet-aurora.ewp-deep_night .weather-desc {
  color: #ffe7a8 !important;
}

.ewp-env-widget .env-kicker {
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #9a7c35;
  font-weight: 900;
  margin-bottom: 5px;
}

.ewp-env-widget .env-title {
  font-size: 16px;
  font-weight: 900;
  margin-bottom: 4px;
}

.ewp-env-widget .env-desc {
  font-size: 12px;
  line-height: 1.6;
  opacity: .82;
}

@media (max-width: 720px) {
  .ewp-env-widget {
    position: relative;
    left: auto;
    top: auto;
    margin: 0 0 14px;
    max-width: none;
  }

  .ewp-drift-layer {
    height: min(var(--ewp-drift-height, 24px), 38px);
  }
}

/* Banquet aurora pass: visible light bands, proper hanging ribbons, and heavier star dust. */
.ewp-banquet-aurora-layer {
  inset: 0;
  height: auto;
  z-index: 10005;
  opacity: .92;
  mix-blend-mode: normal;
  filter: saturate(1.35);
  background:
    linear-gradient(102deg, transparent 0 9%, rgba(70,220,232,.18) 18%, rgba(255,229,128,.30) 31%, rgba(255,128,204,.20) 44%, rgba(118,168,255,.25) 57%, transparent 72%),
    linear-gradient(74deg, transparent 8%, rgba(255,247,179,.22) 24%, rgba(112,240,218,.24) 38%, rgba(190,142,255,.20) 54%, transparent 78%);
  animation: ewpBanquetAurora 11s ease-in-out infinite alternate;
}

.ewp-banquet-aurora-layer::before {
  top: 8%;
  height: 34%;
  opacity: .86;
  background:
    linear-gradient(100deg, transparent 4%, rgba(92,238,225,.34) 19%, rgba(255,232,139,.44) 35%, rgba(255,132,203,.30) 53%, transparent 78%);
}

.ewp-banquet-aurora-layer::after {
  top: 28%;
  height: 36%;
  opacity: .76;
  background:
    linear-gradient(78deg, transparent 6%, rgba(255,248,188,.32) 25%, rgba(134,187,255,.38) 43%, rgba(117,241,220,.28) 61%, transparent 84%);
}

.ewp-banquet-ribbons {
  z-index: 10070;
}

.ewp-banquet-ribbons .corner,
.ewp-banquet-ribbons .ne,
.ewp-banquet-ribbons .nw,
.ewp-banquet-ribbons .sw,
.ewp-banquet-ribbons .se {
  width: 210px;
  height: 210px;
  background: none;
  clip-path: none;
  filter: none;
  transform: none;
}

.ewp-banquet-ribbons .corner::before {
  content: "";
  position: absolute;
  width: 220px;
  height: 34px;
  border-radius: 999px;
  border: 1px solid rgba(132,86,24,.22);
  background:
    linear-gradient(90deg, rgba(255,255,255,.50), transparent 16% 84%, rgba(132,86,24,.18)),
    repeating-linear-gradient(90deg, rgba(255,255,255,.20) 0 1px, transparent 1px 18px),
    linear-gradient(180deg, #fff0b7, #d8a84c 48%, #a66b22);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.62),
    inset 0 -5px 9px rgba(112,70,18,.22),
    0 12px 26px rgba(112,70,18,.18);
}

.ewp-banquet-ribbons .corner::after {
  content: "";
  position: absolute;
  width: 62px;
  height: 86px;
  border-radius: 0 0 30px 30px;
  background:
    repeating-linear-gradient(90deg, rgba(104,66,18,.50) 0 2px, transparent 2px 7px),
    linear-gradient(180deg, rgba(255,241,181,.98), rgba(211,154,46,.88) 58%, rgba(166,103,22,.74));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.45),
    0 12px 22px rgba(96,61,18,.20);
}

.ewp-banquet-ribbons .nw::before { left: -50px; top: 34px; transform: rotate(-42deg); }
.ewp-banquet-ribbons .ne::before { right: -50px; top: 34px; transform: rotate(42deg); }
.ewp-banquet-ribbons .sw::before { left: -50px; bottom: 34px; transform: rotate(42deg); }
.ewp-banquet-ribbons .se::before { right: -50px; bottom: 34px; transform: rotate(-42deg); }

.ewp-banquet-ribbons .nw::after { left: 72px; top: 76px; transform: rotate(-7deg); }
.ewp-banquet-ribbons .ne::after { right: 72px; top: 76px; transform: rotate(7deg); }
.ewp-banquet-ribbons .sw::after { left: 72px; bottom: 76px; transform: rotate(187deg); }
.ewp-banquet-ribbons .se::after { right: 72px; bottom: 76px; transform: rotate(173deg); }

.ewp-banquet-star {
  width: calc(var(--s) * 1.35);
  height: calc(var(--s) * 1.35);
  z-index: 10090;
}

html.ewp-weather-banquet_aurora .ewp-particle {
  width: calc(var(--s) * 1.25);
  height: calc(var(--s) * 1.25);
}

/* Banquet visibility pass: make the preview read clearly in screenshots and real browsing. */
.ewp-banquet-aurora-layer {
  inset: -10vh -12vw 0;
  height: auto;
  z-index: 0;
  opacity: .48;
  mix-blend-mode: screen;
  filter: blur(12px) saturate(1.28);
  background:
    linear-gradient(104deg, transparent 0 7%, rgba(85,225,236,.34) 15%, rgba(255,231,126,.36) 27%, rgba(255,137,205,.25) 42%, rgba(122,167,255,.34) 56%, transparent 73%),
    linear-gradient(72deg, transparent 5%, rgba(255,248,183,.24) 22%, rgba(104,241,219,.30) 38%, rgba(199,142,255,.22) 57%, transparent 80%),
    radial-gradient(ellipse at 18% 16%, rgba(83,227,241,.20), transparent 34%),
    radial-gradient(ellipse at 78% 24%, rgba(255,211,124,.22), transparent 32%);
  animation: ewpBanquetAuroraSweepSoft 14s ease-in-out infinite alternate;
}

.ewp-banquet-aurora-layer::before,
.ewp-banquet-aurora-layer::after {
  left: -12vw;
  right: -12vw;
  border-radius: 46%;
  filter: blur(14px) saturate(1.2);
}

.ewp-banquet-aurora-layer::before {
  top: 10%;
  height: 28%;
  opacity: .40;
  background:
    linear-gradient(100deg, transparent 7%, rgba(69,239,230,.34) 19%, rgba(255,236,147,.36) 35%, rgba(255,121,201,.27) 50%, rgba(111,185,255,.28) 63%, transparent 82%);
  animation: ewpBanquetAuroraRibbon 7s ease-in-out infinite alternate;
}

.ewp-banquet-aurora-layer::after {
  top: 38%;
  height: 24%;
  opacity: .34;
  background:
    linear-gradient(78deg, transparent 8%, rgba(255,248,188,.26) 24%, rgba(118,191,255,.32) 43%, rgba(111,240,218,.24) 60%, transparent 82%);
  animation: ewpBanquetAuroraRibbon 9s ease-in-out infinite alternate-reverse;
}

@keyframes ewpBanquetAuroraSweepSoft {
  0% { transform: translate3d(-7vw, -1vh, 0) skewY(-7deg); opacity: .34; }
  45% { transform: translate3d(2vw, 1.5vh, 0) skewY(-4deg); opacity: .54; }
  100% { transform: translate3d(8vw, -.5vh, 0) skewY(-8deg); opacity: .40; }
}

.ewp-banquet-ribbons {
  display: none !important;
  z-index: 10080;
}

.ewp-banquet-top-drape {
  left: 50%;
  top: -4px;
  z-index: 65;
  width: clamp(1320px, 106vw, 2050px);
  height: auto;
  overflow: visible;
  transform: translateX(-50%);
  filter: drop-shadow(0 10px 16px rgba(98,70,28,.14));
}

.ewp-banquet-top-drape img {
  display: block;
  width: 100%;
  height: auto;
  user-select: none;
}

.ewp-banquet-top-drape picture {
  display: block;
  width: 100%;
}

@media (max-width: 720px) {
  .ewp-banquet-top-drape {
    width: 210vw;
    top: -5px;
  }
}

html.ewp-banquet-aurora .nav {
  z-index: 90;
}

html.ewp-banquet-aurora .birthday-banquet-link,
html.ewp-banquet-aurora .hero,
html.ewp-banquet-aurora .palace-map,
html.ewp-banquet-aurora .map-stage,
html.ewp-banquet-aurora .hall,
html.ewp-banquet-aurora .invite-paper {
  background-color: rgba(255, 255, 255, .78) !important;
  isolation: isolate;
}

.ewp-banquet-ribbons .corner,
.ewp-banquet-ribbons .ne,
.ewp-banquet-ribbons .nw,
.ewp-banquet-ribbons .sw,
.ewp-banquet-ribbons .se {
  width: 190px;
  height: 190px;
  background: none;
  clip-path: none;
  filter: drop-shadow(0 16px 20px rgba(103,70,20,.18));
  transform: none;
}

.ewp-banquet-ribbons .corner::before,
.ewp-banquet-ribbons .corner::after {
  content: none;
}

.ewp-banquet-ribbons .corner i {
  position: absolute;
  display: block;
}

.ewp-banquet-ribbons .tail {
  width: 178px;
  height: 30px;
  border-radius: 999px;
  border: 1px solid rgba(137,94,27,.24);
  background:
    linear-gradient(90deg, rgba(255,255,255,.62), transparent 18% 82%, rgba(109,66,16,.22)),
    repeating-linear-gradient(90deg, rgba(255,255,255,.22) 0 1px, transparent 1px 16px),
    linear-gradient(180deg, #fff3bc, #e1b252 50%, #a86b21);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.7),
    inset 0 -5px 9px rgba(119,75,18,.2),
    0 12px 24px rgba(104,66,18,.2);
}

.ewp-banquet-ribbons .t1 { top: 30px; left: -34px; transform: rotate(-42deg); }
.ewp-banquet-ribbons .t2 { top: 30px; left: 46px; transform: rotate(42deg); }

.ewp-banquet-ribbons .knot {
  width: 58px;
  height: 44px;
  left: 66px;
  top: 56px;
  border-radius: 50% 50% 45% 45%;
  border: 1px solid rgba(137,94,27,.28);
  background:
    radial-gradient(circle at 34% 30%, rgba(255,255,255,.7), transparent 34%),
    linear-gradient(135deg, #fff2b4, #d39a32 58%, #925713);
  box-shadow:
    inset 0 -8px 12px rgba(109,66,16,.22),
    0 10px 18px rgba(104,66,18,.22);
  animation: ewpBanquetRibbonBob 3.8s ease-in-out infinite;
}

.ewp-banquet-ribbons .tassel {
  width: 52px;
  height: 96px;
  left: 69px;
  top: 92px;
  border-radius: 2px 2px 26px 26px;
  background:
    repeating-linear-gradient(90deg, rgba(102,65,16,.55) 0 2px, transparent 2px 7px),
    linear-gradient(180deg, rgba(255,242,182,.98), rgba(220,164,50,.9) 58%, rgba(150,91,17,.76));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.48),
    0 13px 22px rgba(96,61,18,.2);
  transform-origin: 50% 0;
  animation: ewpBanquetTasselSway 4.4s ease-in-out infinite;
}

.ewp-banquet-ribbons .nw { left: 0; top: 0; }
.ewp-banquet-ribbons .ne { right: 0; top: 0; transform: scaleX(-1); }
.ewp-banquet-ribbons .sw { left: 0; bottom: 0; transform: scaleY(-1); }
.ewp-banquet-ribbons .se { right: 0; bottom: 0; transform: scale(-1); }

@keyframes ewpBanquetRibbonBob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(2px); }
}

@keyframes ewpBanquetTasselSway {
  0%, 100% { transform: rotate(-2deg); }
  50% { transform: rotate(2.5deg); }
}

.ewp-banquet-star {
  width: calc(var(--s) * 1.75);
  height: calc(var(--s) * 1.75);
  z-index: 10100;
}

.ewp-banquet-star::before {
  filter:
    drop-shadow(0 0 8px rgba(255,246,190,.98))
    drop-shadow(0 0 22px rgba(229,177,76,.76))
    drop-shadow(0 0 34px rgba(255,220,104,.44));
}

html.ewp-banquet-aurora .banquet-shell,
html.ewp-banquet-aurora .page {
  position: relative;
  z-index: 2;
}
