/* Bellflower cinematic effects — CSS only, paused by toggle, off for reduced motion */
.fx-hero,.fx-dark,.fx-band{position:relative;isolation:isolate;overflow:hidden}
.fx-layer{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.fx-hero>.wrap,.fx-dark>.wrap,.fx-band>.wrap{position:relative;z-index:1}
.fx-glow{position:absolute;border-radius:50%;filter:blur(60px);opacity:.75;will-change:transform}
.lime .fx-glow.g1{width:46vw;height:46vw;left:-12vw;top:-18vw;background:radial-gradient(circle,#d4f56a 0%,rgba(165,221,18,0) 70%)}
.lime .fx-glow.g2{width:40vw;height:40vw;right:-10vw;bottom:-20vw;background:radial-gradient(circle,#6fa000 0%,rgba(152,209,15,0) 70%);opacity:.55}
.lime .fx-glow.g3{width:26vw;height:26vw;left:40%;top:30%;background:radial-gradient(circle,#ecffb0 0%,rgba(165,221,18,0) 70%);opacity:.5}
.dark .fx-glow.g1{width:50vw;height:50vw;left:-15vw;top:-25vw;background:radial-gradient(circle,rgba(158,214,17,.35),transparent 70%)}
.dark .fx-glow.g2{width:40vw;height:40vw;right:-10vw;bottom:-25vw;background:radial-gradient(circle,rgba(158,214,17,.22),transparent 70%)}
.fx-hex{position:absolute;inset:-60px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='97' viewBox='0 0 56 97'%3E%3Cpath d='M28 0l28 16v32L28 64 0 48V16zM28 64v33M0 16L-28 0M56 16l28-16' fill='none' stroke='%23000' stroke-opacity='.10' stroke-width='1.4'/%3E%3C/svg%3E");background-size:56px 97px;-webkit-mask-image:radial-gradient(ellipse at 75% 40%,#000 0%,transparent 70%);mask-image:radial-gradient(ellipse at 75% 40%,#000 0%,transparent 70%)}
.fx-hex.dark-hex,.dark .fx-hex{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='97' viewBox='0 0 56 97'%3E%3Cpath d='M28 0l28 16v32L28 64 0 48V16zM28 64v33' fill='none' stroke='%239ED611' stroke-opacity='.16' stroke-width='1.2'/%3E%3C/svg%3E");-webkit-mask-image:radial-gradient(ellipse at 20% 20%,#000 0%,transparent 65%);mask-image:radial-gradient(ellipse at 20% 20%,#000 0%,transparent 65%)}
.fx-pollen,.fx-petals{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(0,0,0,.28) 1.6px,transparent 2px),radial-gradient(circle,rgba(255,255,255,.75) 1.3px,transparent 1.8px);background-size:120px 140px,170px 190px;background-position:0 0,60px 80px;opacity:.6}
.fx-petals{background-image:radial-gradient(circle,rgba(158,214,17,.55) 1.8px,transparent 2.4px),radial-gradient(circle,rgba(165,221,18,.3) 1.2px,transparent 1.8px);background-size:140px 160px,210px 230px}
.fx-scan{position:absolute;left:0;right:0;top:0;height:28%;background:linear-gradient(180deg,transparent,rgba(158,214,17,.0) 40%,rgba(158,214,17,.28) 92%,rgba(200,255,90,.9) 100%);border-bottom:1px solid rgba(200,255,90,.9);pointer-events:none;opacity:0;z-index:1}
.hero-card .fx-scan{z-index:0}
.fx-scanbox{position:relative}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin:0 0 2rem}
.stat{border:1px solid rgba(158,214,17,.35);border-radius:14px;padding:1.1rem 1.3rem;background:rgba(158,214,17,.06)}
.stat .num{display:block;font:900 2.6rem/1 var(--head);color:var(--lime)}
.stat .lbl{display:block;margin-top:.4rem;color:#d6d6d6;font-size:.95rem}
@media (max-width:640px){.stats{grid-template-columns:1fr}}
/* hover glow */
.card:hover{box-shadow:0 18px 40px -22px rgba(0,0,0,.35),0 0 0 3px rgba(158,214,17,.55)}
.dark .card:hover,.feature:hover{box-shadow:0 0 0 1px rgba(158,214,17,.7),0 12px 40px -12px rgba(158,214,17,.35)}
.feature{transition:box-shadow .25s ease,transform .25s ease}
.feature:hover{transform:translateY(-3px)}
.btn-lime:hover{box-shadow:0 0 0 4px rgba(158,214,17,.35),0 10px 30px -8px rgba(158,214,17,.8)}
.btn-black:hover{box-shadow:0 10px 28px -10px rgba(0,0,0,.6),0 0 0 3px rgba(0,0,0,.18)}
.fx-shine{position:relative}
.fx-shine::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.18) 48%,transparent 62%);transform:translateX(-120%);pointer-events:none}
/* motion toggle */
.motion-toggle{position:fixed;left:1rem;bottom:1rem;z-index:60;display:inline-flex;align-items:center;gap:.5rem;background:#000;color:#fff;border:2px solid var(--lime);border-radius:999px;padding:.5rem .9rem;font:600 .85rem var(--body);cursor:pointer;box-shadow:0 6px 20px -8px rgba(0,0,0,.5)}
.motion-toggle .mt-dot{width:.6rem;height:.6rem;border-radius:50%;background:var(--lime)}
.motion-toggle[aria-pressed="true"] .mt-dot{background:#8a8a8a}
.motion-toggle:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
html:not(.js) .motion-toggle{display:none}

@media (prefers-reduced-motion:no-preference){
  .fx-glow.g1{animation:fxFloat1 14s ease-in-out infinite alternate}
  .fx-glow.g2{animation:fxFloat2 18s ease-in-out infinite alternate}
  .fx-glow.g3{animation:fxPulse 7s ease-in-out infinite alternate}
  .fx-hex{animation:fxHex 40s linear infinite}
  .fx-pollen,.fx-petals{animation:fxDrift 26s linear infinite}
  .fx-scan{animation:fxScan 5.5s cubic-bezier(.45,.05,.55,.95) infinite}
  .fx-shine.in::after{animation:fxShine 1.6s .3s ease forwards}
  .lime.fx-hero{background-size:200% 200%;animation:fxGrad 16s ease-in-out infinite alternate;background-image:linear-gradient(135deg,#A5DD12 0%,#9ED611 35%,#b4e83a 55%,#98D10F 100%)}
  @keyframes fxFloat1{to{transform:translate(8vw,6vw) scale(1.15)}}
  @keyframes fxFloat2{to{transform:translate(-9vw,-5vw) scale(1.2)}}
  @keyframes fxPulse{from{opacity:.25;transform:scale(.9)}to{opacity:.65;transform:scale(1.15)}}
  @keyframes fxHex{to{transform:translate(56px,97px)}}
  @keyframes fxDrift{from{background-position:0 0,60px 80px}to{background-position:120px -280px,-110px -300px}}
  @keyframes fxScan{0%{top:-28%;opacity:0}12%{opacity:1}80%{opacity:1}100%{top:100%;opacity:0}}
  @keyframes fxShine{to{transform:translateX(120%)}}
  @keyframes fxGrad{from{background-position:0% 30%}to{background-position:100% 70%}}
  .reveal{transition-delay:var(--d,0s)}
}
/* paused: by toggle or hidden tab or offscreen stage */
html.motion-paused *,html.motion-paused *::before,html.motion-paused *::after,
html.tab-hidden .fx-layer *,.is-offstage .fx-layer *,.is-offstage .fx-scan{animation-play-state:paused!important}
html.motion-paused .reveal{opacity:1!important;transform:none!important;transition:none!important}
html.motion-paused .fx-scan{opacity:0!important}
@media (prefers-reduced-motion:reduce){.fx-scan{display:none}.motion-toggle{display:none}}
