﻿/* Content stays visible when JavaScript or observers are unavailable. */
:root{--motion-duration:650ms;--motion-ease:cubic-bezier(.2,.7,.2,1)}
.reveal{opacity:0;transform:translateY(16px);transition:opacity var(--motion-duration) var(--motion-ease),transform var(--motion-duration) var(--motion-ease)}
.reveal.is-revealed{opacity:1;transform:none}
.bubble-atmosphere,.bubble-bursts {
  position:fixed;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  user-select:none;
}
.bubble-atmosphere { z-index:30; }
.bubble-bursts { z-index:260; }
.ambient-bubble,.burst-bubble {
  position:absolute;
  display:block;
  width:var(--bubble-size);
  height:var(--bubble-size);
  border:1px solid rgba(210,173,22,.55);
  border-radius:50%;
  background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.95) 0 8%,rgba(255,255,255,.2) 17%,rgba(243,205,50,.2) 65%,rgba(243,205,50,.42));
  box-shadow:inset 0 0 8px rgba(255,255,255,.7);
}
.ambient-bubble {
  left:var(--bubble-left);
  top:100%;
  opacity:0;
  animation:bubble-float var(--bubble-duration) linear var(--bubble-delay) infinite;
}
.ambient-bubble:nth-child(3n) {
  border-color:rgba(130,130,130,.4);
  background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.9),rgba(180,180,180,.12) 65%,rgba(180,180,180,.28));
}
.burst-bubble {
  margin:calc(var(--bubble-size) / -2);
  animation:bubble-pop 800ms cubic-bezier(.16,.7,.3,1) both;
}
.bubble-atmosphere.is-paused .ambient-bubble { animation-play-state:paused; }
@keyframes bubble-float {
  0% { opacity:0; transform:translate3d(0,0,0) scale(.8); }
  12%,80% { opacity:.5; }
  100% { opacity:0; transform:translate3d(var(--bubble-drift),calc(-100vh - 90px),0) scale(1.1); }
}
@keyframes bubble-pop {
  0% { opacity:0; transform:translate3d(0,0,0) scale(.3); }
  15% { opacity:1; }
  70% { opacity:.85; }
  100% { opacity:0; transform:translate3d(var(--burst-x),var(--burst-y),0) scale(1.35); }
}
@media(max-width:650px) {
  .ambient-bubble:nth-child(n+5) { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  .bubble-atmosphere,.bubble-bursts { display:none; }
}
@media print {
  .bubble-atmosphere,.bubble-bursts { display:none; }
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
@media print{.reveal{opacity:1;transform:none}}
