/* ============================================================
   MoneyBuddy Seasonal Experience v2
   Immersive, cosmetic-only season layer. No financial logic changes.
   ============================================================ */

/* --- Buddy speech bubble --- */
#heroBuddyMessageBubble {
  position: relative;
  margin-top: 18px !important;
  padding: 14px 16px !important;
  border-radius: 20px !important;
  background: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(24,60,53,.10) !important;
  box-shadow: 0 15px 34px -27px rgba(30,42,58,.38), 0 3px 10px -8px rgba(30,42,58,.14) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  overflow: visible !important;
}
#heroBuddyMessageBubble::before {
  content: "";
  position: absolute;
  top: -12px;
  left: 50%;
  width: 24px;
  height: 24px;
  background: rgba(255,255,255,.92);
  border-left: 1px solid rgba(24,60,53,.10);
  border-top: 1px solid rgba(24,60,53,.10);
  transform: translateX(-50%) rotate(45deg);
  border-radius: 5px 0 0 0;
  z-index: 0;
}
#heroBuddyMessageBubble > * { position: relative; z-index: 1; }
#heroBuddyMessageBubble .material-symbols-outlined { display: none !important; }
#heroBuddyMessage {
  font-weight: 650 !important;
  letter-spacing: -.01em;
}
#heroBuddyMessageBubble.buddy-message-pop {
  animation: buddySpeechPop .38s cubic-bezier(.2,.85,.32,1.25);
}
@keyframes buddySpeechPop {
  0% { opacity:.35; transform: translateY(6px) scale(.97); }
  100% { opacity:1; transform: translateY(0) scale(1); }
}

/* Insight quote becomes a side speech bubble pointing to the mini Buddy avatar. */
#insightBuddySpeech {
  position: relative;
  margin-top: 5px;
  padding: 11px 13px;
  border-radius: 16px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(24,60,53,.08);
  box-shadow: 0 9px 22px -20px rgba(30,42,58,.32);
}
#insightBuddySpeech::before {
  content:"";
  position:absolute;
  left:-7px;
  top:16px;
  width:14px;
  height:14px;
  background:rgba(255,255,255,.78);
  border-left:1px solid rgba(24,60,53,.08);
  border-bottom:1px solid rgba(24,60,53,.08);
  transform:rotate(45deg);
}

/* --- Seasonal mini-world inside Buddy hero card --- */
#buddyHeroCard { isolation:isolate; }
#buddySeasonWorld {
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
  border-radius:inherit;
  opacity:0;
  transition: opacity .45s ease, background .45s ease;
}
html[data-season]:not([data-season="classic"]) #buddySeasonWorld { opacity:1; }
#buddySeasonWorld::before,
#buddySeasonWorld::after {
  content:"";
  position:absolute;
  pointer-events:none;
}
#buddySeasonWorld::before {
  inset:0;
  opacity:.82;
}
#buddySeasonWorld::after {
  left:-8%; right:-8%; bottom:-12%; height:43%;
  border-radius:50% 50% 0 0 / 24% 24% 0 0;
  opacity:.80;
}
#buddySeasonWorld .buddy-world-sun {
  position:absolute;
  width:78px; height:78px;
  right:8%; top:13%;
  border-radius:50%;
  opacity:.60;
  filter:blur(.2px);
}
#buddySeasonWorld .buddy-world-decor {
  position:absolute;
  z-index:2;
  font-size:18px;
  line-height:1;
  opacity:.52;
  filter:drop-shadow(0 3px 7px rgba(30,42,58,.08));
  animation: buddyWorldFloat 6.5s ease-in-out infinite alternate;
}
#buddySeasonWorld .buddy-world-decor:nth-child(3n) { animation-duration:8s; }
#buddySeasonWorld .buddy-world-decor:nth-child(2n) { animation-direction:alternate-reverse; }
@keyframes buddyWorldFloat {
  from { transform:translate3d(0,0,0) rotate(-3deg); }
  to { transform:translate3d(7px,13px,0) rotate(7deg); }
}

/* Spring garden */
html[data-season="spring"] #buddySeasonWorld {
  background: linear-gradient(180deg, rgba(226,247,255,.82) 0%, rgba(246,249,239,.74) 52%, rgba(238,248,229,.86) 100%);
}
html[data-season="spring"] #buddySeasonWorld::before {
  background:
    radial-gradient(circle at 14% 18%, rgba(255,255,255,.92) 0 7%, transparent 8%),
    radial-gradient(circle at 30% 12%, rgba(255,255,255,.70) 0 5%, transparent 6%),
    linear-gradient(180deg, transparent 0 58%, rgba(177,215,154,.28) 59% 100%);
}
html[data-season="spring"] #buddySeasonWorld::after { background:linear-gradient(180deg,#dff0cf,#c6e3b8); }
html[data-season="spring"] #buddySeasonWorld .buddy-world-sun { background:radial-gradient(circle,#fff6c3 0 28%,rgba(255,239,168,.24) 55%,transparent 72%); }

/* Summer park */
html[data-season="summer"] #buddySeasonWorld {
  background: linear-gradient(180deg, rgba(218,245,255,.88) 0%, rgba(242,251,244,.72) 53%, rgba(229,245,213,.88) 100%);
}
html[data-season="summer"] #buddySeasonWorld::before {
  background:
    radial-gradient(circle at 84% 11%, rgba(255,231,134,.32), transparent 20%),
    linear-gradient(180deg, transparent 0 62%, rgba(109,169,83,.16) 63% 100%);
}
html[data-season="summer"] #buddySeasonWorld::after { background:linear-gradient(180deg,#dcefc8,#b9db9b); }
html[data-season="summer"] #buddySeasonWorld .buddy-world-sun { background:radial-gradient(circle,#ffd965 0 25%,rgba(255,205,77,.32) 50%,transparent 72%); opacity:.78; }

/* Fall forest */
html[data-season="fall"] #buddySeasonWorld {
  background: linear-gradient(180deg, rgba(255,236,200,.80) 0%, rgba(255,243,224,.70) 49%, rgba(241,217,182,.88) 100%);
}
html[data-season="fall"] #buddySeasonWorld::before {
  background:
    radial-gradient(ellipse at 7% 13%, rgba(175,83,31,.18), transparent 22%),
    radial-gradient(ellipse at 95% 20%, rgba(206,112,35,.22), transparent 26%),
    linear-gradient(180deg, transparent 0 60%, rgba(173,103,46,.13) 61% 100%);
}
html[data-season="fall"] #buddySeasonWorld::after { background:linear-gradient(180deg,#e9c38f,#d9a76c); }
html[data-season="fall"] #buddySeasonWorld .buddy-world-sun { background:radial-gradient(circle,#ffd590 0 24%,rgba(224,128,44,.22) 54%,transparent 72%); }

/* Winter cabin / snowy world */
html[data-season="winter"] #buddySeasonWorld {
  background: linear-gradient(180deg, rgba(212,232,244,.88) 0%, rgba(238,246,249,.82) 46%, rgba(225,239,245,.94) 100%);
}
html[data-season="winter"] #buddySeasonWorld::before {
  background:
    radial-gradient(circle at 80% 22%, rgba(255,208,113,.34), transparent 13%),
    linear-gradient(135deg, transparent 0 67%, rgba(74,104,119,.08) 68% 70%, transparent 71%),
    linear-gradient(180deg, transparent 0 60%, rgba(255,255,255,.44) 61% 100%);
}
html[data-season="winter"] #buddySeasonWorld::after { background:linear-gradient(180deg,#f8fcfe,#dcebf1); box-shadow:0 -7px 22px rgba(255,255,255,.46); }
html[data-season="winter"] #buddySeasonWorld .buddy-world-sun { background:radial-gradient(circle,#ffd98b 0 22%,rgba(255,204,104,.22) 48%,transparent 70%); width:60px;height:60px;top:17%; }

/* Existing hero content already uses z-indexed layers; the world remains behind them. */

/* --- Seasonal Money Plant environment --- */
#plantVisualContainer { position:relative; isolation:isolate; }
#plantVisualContainer::before { z-index:0 !important; }
#plantSvgStage { position:relative; z-index:2; }
#seasonPlantAtmosphere {
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  overflow:hidden;
  border-radius:inherit;
}
#seasonPlantAtmosphere span {
  position:absolute;
  line-height:1;
  animation: plantSeasonFloat 4.8s ease-in-out infinite alternate;
}
@keyframes plantSeasonFloat {
  from { transform:translateY(0) rotate(-4deg); }
  to { transform:translateY(7px) rotate(7deg); }
}
html[data-season="spring"] #seasonPlantAtmosphere span { color:#e894b0; }
html[data-season="summer"] #seasonPlantAtmosphere span { color:#d9a92e; }
html[data-season="fall"] #seasonPlantAtmosphere span { color:#c56c2b; }
html[data-season="winter"] #seasonPlantAtmosphere span { color:#8dc5da; }

/* subtle plant-world visual grading */
html[data-season="spring"] #plantSvgStage svg { filter:drop-shadow(0 6px 8px rgba(27,77,62,.12)) saturate(1.08) brightness(1.02); }
html[data-season="summer"] #plantSvgStage svg { filter:drop-shadow(0 7px 9px rgba(27,77,62,.12)) saturate(1.12) brightness(1.03); }
html[data-season="fall"] #plantSvgStage svg { filter:drop-shadow(0 7px 9px rgba(140,82,33,.13)) saturate(.98) sepia(.08) brightness(1.01); }
html[data-season="winter"] #plantSvgStage svg { filter:drop-shadow(0 7px 10px rgba(80,125,148,.14)) saturate(.88) brightness(1.04); }

/* --- Season change cinematic --- */
#moneyBuddySeasonTransition {
  position:fixed;
  inset:0;
  z-index:12050;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transition:opacity .22s ease, visibility .22s ease;
  overflow:hidden;
}
#moneyBuddySeasonTransition.is-active { opacity:1; visibility:visible; }
#moneyBuddySeasonTransition .season-transition-wash {
  position:absolute; inset:0;
  opacity:.94;
}
#moneyBuddySeasonTransition[data-season="spring"] .season-transition-wash { background:linear-gradient(145deg,#fff8fb 0%,#f8e7ef 46%,#e9f4e5 100%); }
#moneyBuddySeasonTransition[data-season="summer"] .season-transition-wash { background:linear-gradient(145deg,#fffaf0 0%,#fff0bd 45%,#dcf3e0 100%); }
#moneyBuddySeasonTransition[data-season="fall"] .season-transition-wash { background:linear-gradient(145deg,#fff8ed 0%,#f4c993 46%,#c7783c 100%); }
#moneyBuddySeasonTransition[data-season="winter"] .season-transition-wash { background:linear-gradient(145deg,#f8fcff 0%,#e1eff5 48%,#a9c7d5 100%); }
#moneyBuddySeasonTransition[data-season="classic"] .season-transition-wash { background:linear-gradient(145deg,#fbf9f4,#edf5f1); }
#moneyBuddySeasonTransition .season-transition-center {
  position:relative;
  z-index:3;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:22px 30px;
  border-radius:28px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(255,255,255,.72);
  box-shadow:0 28px 70px -34px rgba(30,42,58,.36);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  transform:translateY(10px) scale(.96);
  opacity:0;
  transition:transform .35s cubic-bezier(.2,.85,.3,1),opacity .3s ease;
}
#moneyBuddySeasonTransition.is-active .season-transition-center { transform:translateY(0) scale(1); opacity:1; }
#moneyBuddySeasonTransition .season-transition-icon { font-size:34px; line-height:1; }
#moneyBuddySeasonTransition .season-transition-title { color:#183c35; font-size:22px; font-weight:850; letter-spacing:-.025em; }
#moneyBuddySeasonTransition .season-transition-sub { color:#56676c; font-size:12px; font-weight:600; }
#moneyBuddySeasonTransition .season-transition-particle {
  position:absolute;
  z-index:2;
  top:-12%;
  font-size:22px;
  opacity:.70;
  animation: seasonTransitionFall 1.3s cubic-bezier(.16,.7,.35,1) forwards;
}
#moneyBuddySeasonTransition[data-season="summer"] .season-transition-particle {
  top:auto;
  animation: seasonTransitionGlow 1.15s ease-out forwards;
}
@keyframes seasonTransitionFall {
  0% { transform:translate3d(0,-10vh,0) rotate(-15deg); opacity:0; }
  14% { opacity:.75; }
  100% { transform:translate3d(22px,115vh,0) rotate(160deg); opacity:.15; }
}
@keyframes seasonTransitionGlow {
  0% { transform:scale(.2); opacity:0; }
  35% { opacity:.85; }
  100% { transform:scale(3.5); opacity:0; }
}

/* Accessibility / performance */
@media (prefers-reduced-motion: reduce) {
  #buddySeasonWorld .buddy-world-decor,
  #seasonPlantAtmosphere span,
  #moneyBuddySeasonTransition .season-transition-particle,
  #heroBuddyMessageBubble.buddy-message-pop { animation:none !important; }
  #moneyBuddySeasonTransition { display:none !important; }
}

@media (max-width:767px) {
  #heroBuddyMessageBubble {
    margin-top:16px !important;
    padding:12px 13px !important;
    border-radius:18px !important;
  }
  #heroBuddyMessageBubble::before { width:20px;height:20px;top:-10px; }
  #heroBuddyMessage { font-size:13px !important; line-height:1.45 !important; }
  #buddySeasonWorld .buddy-world-sun { width:58px;height:58px; }
  #buddySeasonWorld .buddy-world-decor { font-size:14px; opacity:.44; }
  #moneyBuddySeasonTransition .season-transition-center { padding:18px 24px; border-radius:24px; }
  #moneyBuddySeasonTransition .season-transition-title { font-size:20px; }
  #moneyBuddySeasonTransition .season-transition-icon { font-size:30px; }
  #insightBuddySpeech { padding:10px 11px; }
}

/* ============================================================
   Seasonal Experience v2.1 — visible Buddy worlds + stronger speech bubble
   ============================================================ */

/* Make the Buddy's message look unmistakably like spoken dialogue. */
#heroBuddyMessageBubble {
  margin-top: 20px !important;
  padding: 13px 16px 15px !important;
  border: 2px solid rgba(24,60,53,.18) !important;
  background: rgba(255,255,255,.97) !important;
  box-shadow:
    0 18px 38px -24px rgba(30,42,58,.34),
    0 5px 14px -10px rgba(30,42,58,.20),
    inset 0 1px 0 rgba(255,255,255,.9) !important;
}
#heroBuddyMessageBubble::before {
  width: 25px !important;
  height: 25px !important;
  top: -13px !important;
  left: 58% !important;
  background: rgba(255,255,255,.97) !important;
  border-left: 2px solid rgba(24,60,53,.18) !important;
  border-top: 2px solid rgba(24,60,53,.18) !important;
  box-shadow: -3px -3px 8px -7px rgba(30,42,58,.24);
}
#heroBuddyMessageBubble::after {
  content: "";
  position: absolute;
  inset: 5px;
  border-radius: 15px;
  border: 1px solid rgba(201,162,74,.12);
  pointer-events: none;
  z-index: 0;
}
#heroBuddySpeechLabel {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin: -3px 0 7px;
  padding: 4px 9px;
  border-radius: 999px;
  background: #183c35;
  color: #fff;
  font-size: 9px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
  box-shadow: 0 7px 15px -12px rgba(24,60,53,.55);
}
#heroBuddySpeechLabel::before {
  content: "chat_bubble";
  font-family: 'Material Symbols Outlined';
  font-size: 12px;
  font-weight: normal;
  letter-spacing: normal;
}
#heroBuddyMessage {
  position: relative;
  z-index: 2;
  font-size: 14px !important;
  line-height: 1.5 !important;
  font-weight: 700 !important;
  color: #243d38 !important;
}

/* Turn the Buddy card into a clearly seasonal miniature world. */
#buddySeasonWorld {
  opacity: 0;
  z-index: 0 !important;
}
html[data-season]:not([data-season="classic"]) #buddySeasonWorld {
  opacity: 1 !important;
}
#buddySeasonWorld::before { opacity: 1 !important; }
#buddySeasonWorld::after {
  bottom: -7% !important;
  height: 38% !important;
  opacity: .96 !important;
}
#buddySeasonWorld .buddy-world-sun {
  z-index: 1;
  opacity: .86 !important;
  box-shadow: 0 0 34px rgba(255,218,123,.25);
}
#buddySeasonWorld .buddy-world-decor {
  z-index: 5 !important;
  opacity: .62 !important;
}
.buddy-world-scene {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  overflow: hidden;
}
.buddy-world-scene > span { position: absolute; display: block; }

/* reusable clouds */
.scene-cloud {
  width: 62px;
  height: 18px;
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  filter: blur(.1px);
  box-shadow: 18px -7px 0 -3px rgba(255,255,255,.72), 36px 1px 0 -7px rgba(255,255,255,.62);
}
.scene-cloud.cloud-a { left: 8%; top: 20%; transform: scale(.78); }
.scene-cloud.cloud-b { right: 12%; top: 32%; transform: scale(.54); opacity: .72; }

/* SPRING — flower garden + white fence */
.spring-scene .scene-fence {
  left: -4%;
  right: -4%;
  bottom: 24%;
  height: 30px;
  opacity: .58;
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.94) 0 8px, transparent 8px 24px),
    linear-gradient(180deg, transparent 9px, rgba(255,255,255,.92) 9px 14px, transparent 14px 21px, rgba(255,255,255,.88) 21px 25px, transparent 25px);
  filter: drop-shadow(0 4px 5px rgba(74,106,65,.08));
}
.scene-flowerbed {
  bottom: 8%;
  width: 42%;
  height: 27%;
  border-radius: 50% 50% 20% 20%;
  background:
    radial-gradient(circle at 14% 42%, #f2a7c2 0 3px, transparent 4px),
    radial-gradient(circle at 31% 58%, #fff 0 3px, #f0b3cc 4px 5px, transparent 6px),
    radial-gradient(circle at 48% 31%, #f6c8d7 0 4px, transparent 5px),
    radial-gradient(circle at 66% 55%, #fff 0 3px, #f2a7c2 4px 5px, transparent 6px),
    radial-gradient(circle at 83% 35%, #ffd768 0 2px, #f5a6c1 3px 5px, transparent 6px),
    linear-gradient(180deg, transparent 0 40%, rgba(114,172,91,.72) 42% 100%);
  opacity: .82;
}
.flowerbed-a { left: 3%; }
.flowerbed-b { right: 1%; transform: scale(.83); transform-origin: bottom right; }

/* SUMMER — park trees + bench + path */
.scene-tree {
  width: 76px;
  height: 105px;
  bottom: 10%;
}
.scene-tree::before {
  content: "";
  position: absolute;
  left: 34px;
  bottom: 0;
  width: 9px;
  height: 54px;
  border-radius: 7px;
  background: rgba(112,82,48,.62);
}
.scene-tree::after {
  content: "";
  position: absolute;
  left: 2px;
  top: 0;
  width: 72px;
  height: 65px;
  border-radius: 48% 52% 46% 54%;
  background: radial-gradient(circle at 42% 32%, rgba(105,175,82,.94), rgba(63,137,69,.88) 65%, rgba(45,113,58,.86));
  box-shadow: 19px 16px 0 -10px rgba(83,155,73,.72), -15px 18px 0 -13px rgba(92,161,75,.72);
}
.summer-scene .tree-a { left: -2%; transform: scale(.78); transform-origin: bottom left; }
.summer-scene .tree-b { right: -2%; transform: scale(.67); transform-origin: bottom right; }
.scene-bench {
  left: 50%;
  bottom: 18%;
  width: 74px;
  height: 25px;
  transform: translateX(-50%);
  border-radius: 4px;
  background:
    linear-gradient(180deg, rgba(111,78,46,.82) 0 7px, transparent 7px 11px, rgba(111,78,46,.82) 11px 18px, transparent 18px),
    linear-gradient(90deg, transparent 8px, rgba(74,82,58,.70) 8px 13px, transparent 13px 61px, rgba(74,82,58,.70) 61px 66px, transparent 66px);
  opacity: .58;
}
.scene-path {
  left: 34%;
  bottom: -5%;
  width: 34%;
  height: 33%;
  border-radius: 50% 50% 0 0;
  background: linear-gradient(180deg, rgba(244,229,192,.58), rgba(220,198,153,.70));
  transform: perspective(80px) rotateX(13deg);
  opacity: .7;
}

/* FALL — layered forest */
.fall-scene .scene-tree::after {
  background: radial-gradient(circle at 40% 30%, rgba(225,142,54,.96), rgba(187,83,39,.92) 62%, rgba(138,60,34,.88));
  box-shadow: 18px 14px 0 -9px rgba(215,116,42,.78), -16px 17px 0 -11px rgba(202,91,39,.72);
}
.fall-scene .tree-a { left: -2%; transform: scale(.76); transform-origin: bottom left; }
.fall-scene .tree-b { right: -2%; transform: scale(.73); transform-origin: bottom right; }
.fall-scene .tree-c { left: 17%; bottom: 16%; transform: scale(.42); opacity: .65; }
.scene-leafbed {
  left: -2%;
  right: -2%;
  bottom: 0;
  height: 20%;
  background:
    radial-gradient(ellipse at 10% 60%, #d77a35 0 7px, transparent 8px),
    radial-gradient(ellipse at 24% 72%, #b95c32 0 8px, transparent 9px),
    radial-gradient(ellipse at 43% 65%, #e4a247 0 6px, transparent 7px),
    radial-gradient(ellipse at 64% 72%, #c86735 0 8px, transparent 9px),
    radial-gradient(ellipse at 82% 61%, #e19a43 0 7px, transparent 8px),
    linear-gradient(180deg, transparent, rgba(177,94,45,.26));
  opacity: .75;
}

/* WINTER — cabin + pine trees + snowbanks */
.scene-pine {
  width: 58px;
  height: 94px;
  bottom: 11%;
}
.scene-pine::before {
  content: "";
  position: absolute;
  left: 25px;
  bottom: 0;
  width: 8px;
  height: 35px;
  background: rgba(83,72,59,.58);
}
.scene-pine::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 0;
  width: 50px;
  height: 72px;
  clip-path: polygon(50% 0, 72% 29%, 62% 29%, 82% 57%, 68% 57%, 94% 100%, 6% 100%, 32% 57%, 18% 57%, 38% 29%, 28% 29%);
  background: linear-gradient(180deg, rgba(62,113,93,.90), rgba(34,83,71,.92));
  filter: drop-shadow(0 5px 3px rgba(44,75,71,.08));
}
.pine-a { left: -1%; transform: scale(.74); transform-origin: bottom left; }
.pine-b { right: -1%; transform: scale(.66); transform-origin: bottom right; }
.scene-cabin {
  right: 11%;
  bottom: 15%;
  width: 68px;
  height: 52px;
  border-radius: 5px 5px 2px 2px;
  background: repeating-linear-gradient(180deg, rgba(113,73,48,.82) 0 6px, rgba(91,61,44,.82) 6px 8px);
  box-shadow: 0 7px 14px -8px rgba(44,52,52,.28);
  opacity: .72;
}
.scene-cabin::before {
  content: "";
  position: absolute;
  left: -8px;
  top: -25px;
  width: 84px;
  height: 32px;
  clip-path: polygon(50% 0,100% 100%,0 100%);
  background: linear-gradient(180deg, #eaf4f8 0 16%, rgba(76,66,59,.90) 18% 100%);
}
.scene-window {
  left: 17px;
  bottom: 14px;
  width: 18px;
  height: 18px;
  border: 2px solid rgba(76,54,41,.7);
  background: radial-gradient(circle, rgba(255,218,124,.95), rgba(238,165,61,.78));
  box-shadow: 0 0 13px rgba(255,190,75,.42);
}
.scene-snowbank {
  bottom: -6%;
  height: 24%;
  border-radius: 50% 50% 0 0;
  background: rgba(255,255,255,.88);
  box-shadow: inset 0 6px 18px rgba(173,205,220,.18);
}
.snowbank-a { left: -8%; width: 64%; transform: rotate(4deg); }
.snowbank-b { right: -8%; width: 62%; transform: rotate(-5deg); }

/* Keep the Buddy itself above the scenery, while retaining scenery around them. */
#heroBuddyStage { position: relative; z-index: 4 !important; }
#buddyHeroCard > .relative.z-10,
#buddyHeroCard > .relative.z-10 + .relative.z-10 { z-index: 6 !important; }

@media (max-width: 767px) {
  #heroBuddyMessageBubble {
    margin-top: 17px !important;
    padding: 12px 13px 14px !important;
    border-width: 2px !important;
    box-shadow: 0 16px 30px -23px rgba(30,42,58,.38), 0 4px 12px -9px rgba(30,42,58,.22) !important;
  }
  #heroBuddyMessageBubble::before {
    width: 21px !important;
    height: 21px !important;
    top: -11px !important;
  }
  #heroBuddySpeechLabel {
    margin-bottom: 6px;
    padding: 4px 8px;
    font-size: 8px;
  }
  #heroBuddyMessage { font-size: 13.25px !important; line-height: 1.48 !important; }
  .buddy-world-scene { opacity: .88; }
  .spring-scene .scene-fence { opacity: .48; }
  .scene-tree { transform-origin: bottom center; }
  .scene-cabin { right: 7%; transform: scale(.82); transform-origin: bottom right; }
}


/* ============================================================
   Launch polish: keep seasonal Buddy worlds behind the mascot, not the speech bubble
   ============================================================ */
#buddySeasonWorld {
  top: 24px !important;
  left: 14px !important;
  right: 14px !important;
  bottom: auto !important;
  height: min(248px, 44%) !important;
  border-radius: 28px !important;
  opacity: 1;
}
#buddySeasonWorld::before {
  opacity: .94 !important;
}
#buddySeasonWorld::after {
  bottom: -6% !important;
  height: 30% !important;
}
#buddyHeroCard > .absolute.-top-16.-right-16,
#buddyHeroCard > .absolute.-bottom-10.-left-10 {
  opacity: .78;
}
#heroBuddyStage {
  margin-top: 0 !important;
  margin-bottom: 10px !important;
}
#heroBuddyMessageBubble {
  margin-top: 22px !important;
}
@media (max-width: 767px) {
  #buddySeasonWorld {
    top: 22px !important;
    left: 10px !important;
    right: 10px !important;
    height: min(188px, 40%) !important;
    border-radius: 22px !important;
  }
  #heroBuddyStage { margin-top: 0 !important; }
}
