/* snow-ground and snow-pile removed: no accumulation effect */
/* Snowflake animation */
/* Snowflake animation: always above all content */
/* snowflake animation removed */
/* Animated background gradient for hero */
.animated-bg {
  position: relative;
  background: linear-gradient(120deg, #232526 0%, #ff7a1a 60%, #7ad3ff 100%);
  background-size: 200% 200%;
  animation: bgMove 18s ease-in-out infinite;
}
@keyframes bgMove {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* (floating airplane icon removed) */

/* Pulsing CTA button */
.cta .btn {
  animation: pulseBtn 2.2s cubic-bezier(.4,.8,.4,1) infinite;
}
@keyframes pulseBtn {
  0% { box-shadow: 0 10px 22px rgba(0,0,0,.35), 0 0 0 0 rgba(255,122,26,.18); }
  60% { box-shadow: 0 10px 22px rgba(0,0,0,.35), 0 0 0 12px rgba(255,122,26,.08); }
  100% { box-shadow: 0 10px 22px rgba(0,0,0,.35), 0 0 0 0 rgba(255,122,26,.18); }
}
:root{
  --accent: #ff7a1a;
}

/* reveal on scroll / entrance */
.reveal{
  opacity: 0;
  transform: translateY(14px) scale(0.995);
  transition: opacity .6s ease, transform .6s cubic-bezier(.2,.9,.2,1);
  will-change: opacity, transform;
}
.reveal.in-view{
  opacity: 1;
  transform: none;
}

/* add small hover lift to actionable buttons */
.btn-anim{
  transition: transform .18s ease, box-shadow .18s ease;
  will-change: transform;
}
.btn-anim:hover,
.btn-anim:focus{
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 16px 30px rgba(0,0,0,.35);
}

/* subtle pulse for hero header */
@keyframes floaty {
  0%{ transform: translateY(0); }
  50%{ transform: translateY(-6px); }
  100%{ transform: translateY(0); }
}
header.reveal.in-view h1{ animation: floaty 6s ease-in-out infinite; }

/* gradient animated headline */
.gradient-text{
  display: inline-block;
  background: linear-gradient(90deg, #ff7a1a, #ffd166, #7bd389, #7ad3ff);
  background-size: 300% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: gradientShift 6s ease-in-out infinite;
}
@keyframes gradientShift{
  0%{ background-position: 0% 50%; }
  50%{ background-position: 100% 50%; }
  100%{ background-position: 0% 50%; }
}

/* tagline styling */
.tagline{
  display: inline-block;
  opacity: .95;
  font-weight: 600;
}

/* (per-letter heading animation removed) */

/* button loading spinner */
.btn{ position: relative; }
.btn .spinner{ display: none; position: absolute; right: 12px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; border-radius: 50%; border: 2px solid rgba(255,255,255,.25); border-top-color: #fff; }
.btn.loading .spinner{ display: inline-block; animation: spin 900ms linear infinite; }
@keyframes spin{ to { transform: translateY(-50%) rotate(360deg); } }

/* input focus glow */
input:focus, textarea:focus, select:focus{
  box-shadow: 0 6px 22px rgba(255,122,26,.08), 0 0 0 3px rgba(255,122,26,.06);
  border-color: rgba(255,255,255,.5);
}

/* subtle moving overlay for hero */
.hero::before{
  transition: transform 30s linear;
}
.hero:hover::before{
  transform: scale(1.08) translateX(-4%);
}

/* prefers-reduced-motion */
@media (prefers-reduced-motion: reduce){
  .reveal, .gradient-text, .btn-anim, .hero::before { transition: none !important; animation: none !important; }
  .btn.loading .spinner{ display:none; }
}

/* toast slide */
.toast{
  transition: transform .3s cubic-bezier(.2,.9,.2,1), opacity .3s ease;
}
.toast.show{
  transform: translateY(-6px);
  opacity: 1;
}

/* contact modal subtle scale when revealed (enhances existing transform) */
.overlay .contact.reveal{ opacity: 0; transform: translateY(18px) scale(.995); transition: opacity .28s ease, transform .28s cubic-bezier(.2,.9,.2,1); }
.overlay.open .contact.reveal.in-view{ opacity: 1; transform: translateY(0) scale(1); }

/* small responsive tweak for form actions */
@media (max-width:900px){
  .cta{ gap:10px; }
}
