/* =========================================================
   Bossy — Shared Animations
   ========================================================= */

/* Scroll-reveal base */
.reveal{
  opacity:0; transform:translateY(28px);
  transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1);
  transition-delay:var(--d,0ms);
  will-change:transform,opacity;
}
.reveal.in{ opacity:1; transform:translateY(0); }

.reveal-scale{
  opacity:0; transform:translateY(36px) scale(.97);
  transition:opacity 1s cubic-bezier(.2,.7,.2,1), transform 1s cubic-bezier(.2,.7,.2,1);
  transition-delay:var(--d,0ms);
  will-change:transform,opacity;
}
.reveal-scale.in{ opacity:1; transform:translateY(0) scale(1); }

/* Hero headline — char rise on load */
[data-hero-headline] .ch{
  display:inline-block; opacity:0;
  transform:translateY(80%) rotate(4deg);
  animation:bossyChRise .9s cubic-bezier(.2,.7,.2,1) forwards;
  animation-delay:calc(var(--i,0) * 32ms + 120ms);
}
[data-hero-headline] .ch.sp{ width:.28em; }
@keyframes bossyChRise{ to{ opacity:1; transform:translateY(0) rotate(0); } }

/* Tags — stagger pop-in */
.cover .tag, .chips .chip, .tags .tag{
  opacity:0; transform:translateY(8px) scale(.92);
  animation:bossyTagPop .55s cubic-bezier(.2,.9,.3,1.2) forwards;
  animation-delay:calc(var(--i,0) * 60ms + 600ms);
  transition:transform .25s ease, background .25s ease;
}
@keyframes bossyTagPop{ to{ opacity:1; transform:translateY(0) scale(1); } }
.cover .tag:hover, .tags .tag:hover{ transform:translateY(-2px) rotate(-1.5deg); }

/* Strip stats stagger */
.strip .inner.in .s{ animation:bossySIn .7s cubic-bezier(.2,.7,.2,1) backwards; }
.strip .inner.in .s:nth-child(1){ animation-delay:.05s; }
.strip .inner.in .s:nth-child(2){ animation-delay:.18s; }
.strip .inner.in .s:nth-child(3){ animation-delay:.31s; }
.strip .inner.in .s:nth-child(4){ animation-delay:.44s; }
.strip .inner.in .s:nth-child(5){ animation-delay:.57s; }
@keyframes bossySIn{ from{ opacity:0; transform:translateY(20px); } to{ opacity:1; transform:translateY(0); } }
.strip .n{ display:inline-block; transition:transform .35s cubic-bezier(.2,.9,.3,1.4); }
.strip .s:hover .n{ transform:translateY(-4px) scale(1.04); }

/* Image slots / generic frames — hover lift + zoom */
.wide .slot, .pack .slot, .ads .slot, .event .slot, .cover .lead-img,
.duo .frame, .grid .slot, .pair .slot, .trio .slot, .lead-img{
  overflow:hidden;
  transition:transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s ease;
}
.wide .slot:hover, .pack .slot:hover, .ads .slot:hover, .event .slot:hover,
.duo .frame:hover, .pair .slot:hover, .trio .slot:hover{
  transform:translateY(-6px);
  box-shadow:0 22px 50px rgba(0,0,0,.15);
}
.wide .slot image-slot, .pack .slot image-slot, .ads .slot image-slot,
.event .slot image-slot, .cover .lead-img image-slot, .lead-img image-slot,
.duo .frame image-slot, .pair .slot image-slot, .trio .slot image-slot{
  transition:transform .9s cubic-bezier(.2,.7,.2,1);
  display:block;
}
.wide .slot:hover image-slot, .pack .slot:hover image-slot, .ads .slot:hover image-slot,
.event .slot:hover image-slot, .duo .frame:hover image-slot,
.pair .slot:hover image-slot, .trio .slot:hover image-slot{
  transform:scale(1.04);
}

/* Brief blockquote — lime bar grow */
.brief blockquote{
  position:relative;
  border-left-color:transparent !important;
}
.brief blockquote::before{
  content:''; position:absolute; left:-4px; top:0; bottom:0; width:4px;
  background:#E9FC88;
  transform-origin:top; transform:scaleY(0);
  transition:transform .9s cubic-bezier(.2,.7,.2,1) .15s;
}
.brief blockquote.in::before{ transform:scaleY(1); }

/* Quote card — settle into rotation */
.quote .card, .testimonial .card{
  transition:transform 1s cubic-bezier(.2,.7,.2,1), box-shadow 1s ease, opacity 1s ease;
  opacity:0;
}
.quote .card{ transform:rotate(-3deg) translateY(40px); }
.quote .card.in{ transform:rotate(-0.8deg) translateY(0); opacity:1; }
.quote .card:hover{ transform:rotate(-1.6deg) translateY(-4px); }
.testimonial .card{ transform:translateY(40px); }
.testimonial .card.in{ transform:translateY(0); opacity:1; }

/* CTA */
.cta a, .submit-row .send, .send{
  transition:transform .3s cubic-bezier(.2,.9,.3,1.2), background .3s ease, color .3s ease, box-shadow .3s ease;
}
.cta a:hover, .submit-row .send:hover, .send:hover{
  transform:translateY(-3px) scale(1.03);
  box-shadow:0 12px 30px rgba(0,0,0,.18);
}
.cta h2 em{ display:inline-block; animation:bossyEmFloat 4s ease-in-out infinite; }
@keyframes bossyEmFloat{ 0%,100%{ transform:translateY(0) rotate(0); } 50%{ transform:translateY(-8px) rotate(-1.5deg); } }

/* Nav — pill hover */
.pill{ transition:transform .25s ease, background .25s ease; }
.pill:hover{ transform:translateY(-2px) rotate(-1deg); }
header nav{ gap:6px !important; align-items:center; }
header nav a{
  padding:9px 16px !important;
  border-radius:999px !important;
  text-decoration:none !important;
  color:var(--ink, #0E0E14) !important;
  font-weight:600 !important;
  letter-spacing:.2px;
  position:relative;
  transition:background .22s ease, color .22s ease, transform .22s cubic-bezier(.2,.8,.2,1);
  display:inline-block;
}
header nav a:hover{ background:var(--lime, #E9FC88) !important; transform:translateY(-1px) rotate(-1.2deg); }
header nav a.active{ background:var(--ink, #0E0E14) !important; color:var(--lime, #E9FC88) !important; }
header nav a.active:hover{ transform:translateY(-1px) rotate(1.2deg); }
header nav a.active::after, header nav a:not(.active)::after{ display:none !important; }

/* Logo wink — accent star wiggles on hover */
.logo span, .logo .accent{
  display:inline-block; transition:transform .5s cubic-bezier(.2,.9,.3,1.4);
}
.logo:hover span, .logo:hover .accent{ transform:rotate(180deg) scale(1.2); }

/* Bossy logo (SVG mask) — continuous slow spin, speeds up on hover (same as homepage) */
.nav .logo-img{
  transform-origin:center;
  animation:bossyLogoSpin 14s linear infinite;
  transition:transform .35s ease, animation-duration .35s ease;
}
.nav .logo:hover .logo-img{ animation-duration:1.6s; }
@keyframes bossyLogoSpin{
  from{ transform:rotate(0deg); }
  to  { transform:rotate(360deg); }
}
@media (prefers-reduced-motion: reduce){
  .nav .logo-img{ animation:none; transition:none; transform:none; }
}
/* Stop the spin on small viewports — when Safari throttles/pauses the
   animation on scroll it freezes the logo at a random angle, which looks
   broken in the tight mobile header. Static is cleaner. */
@media (max-width: 767px){
  .nav .logo-img{ animation:none !important; transition:none !important; transform:none !important; }
}

/* Footer star spin on heading hover */
.footer h3 .star{
  display:inline-block;
  transition:transform .6s cubic-bezier(.2,.9,.3,1.2);
}
.footer h3:hover .star{ transform:rotate(180deg) scale(1.15); }

/* Form-field focus glow (Contact) */
.fld input, .fld textarea, .fld select{
  transition:border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.fld input:focus, .fld textarea:focus, .fld select:focus{
  outline:none;
  box-shadow:0 0 0 4px rgba(188,180,255,.35);
}

/* Chip / budget hover */
.chip, .budget .b{
  transition:transform .25s ease, background .25s ease, color .25s ease;
}
.chip:hover, .budget .b:hover{ transform:translateY(-2px); }

/* Founder cards / generic cards lift */
.founder-card, .pillar, .stat, .box{
  transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease;
}
.founder-card:hover, .pillar:hover, .stat:hover, .box:hover{
  transform:translateY(-4px);
}

/* Floating sticker / accent shapes — gentle bob */
.sticker, .sig{
  animation:bossyBob 5.5s ease-in-out infinite;
}
@keyframes bossyBob{
  0%,100%{ transform:translateY(0) rotate(var(--bob-rot,-6deg)); }
  50%{ transform:translateY(-10px) rotate(calc(var(--bob-rot,-6deg) + 3deg)); }
}

/* Hash / numeral marquee accent */
.hash{ transition:transform .35s ease; }
.hash:hover{ transform:rotate(15deg) scale(1.1); }

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  .reveal, .reveal-scale, .quote .card, .testimonial .card{ opacity:1 !important; transform:none !important; }
  [data-hero-headline] .ch{ opacity:1 !important; transform:none !important; }
  .cover .tag, .tags .tag, .chips .chip{ opacity:1 !important; transform:none !important; }
}
