@keyframes bhe-up { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes bhe-down { from { opacity: 0; transform: translateY(-22px); } to { opacity: 1; transform: none; } }
@keyframes bhe-left { from { opacity: 0; transform: translateX(-28px); } to { opacity: 1; transform: none; } }
@keyframes bhe-right { from { opacity: 0; transform: translateX(28px); } to { opacity: 1; transform: none; } }
@keyframes bhe-zoom { from { opacity: 0; transform: scale(.92); } to { opacity: 1; transform: none; } }
@keyframes bhe-pop { 0% { opacity: 0; transform: scale(.8); } 70% { transform: scale(1.04); } 100% { opacity: 1; transform: none; } }
@keyframes bhe-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@keyframes bhe-float2 { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(10px); } }
@keyframes bhe-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }
@keyframes bhe-spin { to { transform: rotate(360deg); } }
@keyframes bhe-blob { 0%, 100% { border-radius: 46% 54% 62% 38%; } 50% { border-radius: 60% 40% 36% 64%; } }
@keyframes bhe-ken { from { transform: scale(1); } to { transform: scale(1.08); } }
@keyframes bhe-wobble { 0%, 100% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } }
@keyframes bhe-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes bhe-eq { from { transform: scaleY(.35); } to { transform: scaleY(1); } }
@keyframes bhe-shine { from { transform: translateX(-120%); } to { transform: translateX(120%); } }

.a-up { animation: bhe-up .75s both; }
.a-down { animation: bhe-down .75s both; }
.a-left { animation: bhe-left .75s both; }
.a-right { animation: bhe-right .75s both; }
.a-zoom { animation: bhe-zoom .8s both; }
.a-pop { animation: bhe-pop .7s both; }
.d1 { animation-delay: .05s; }
.d2 { animation-delay: .16s; }
.d3 { animation-delay: .28s; }
.d4 { animation-delay: .4s; }
.d5 { animation-delay: .52s; }
.f-float, .bhe-float { animation: bhe-float 5.6s ease-in-out infinite; }
.f-float2 { animation: bhe-float2 6.4s ease-in-out infinite; }
.f-pulse, .bhe-pulse { animation: bhe-pulse 3.2s ease-in-out infinite; }
.f-spin, .bhe-spin { animation: bhe-spin 18s linear infinite; }
.f-blob { animation: bhe-blob 8s ease-in-out infinite; }
.f-ken, .bhe-ken img { animation: bhe-ken 16s ease-in-out infinite alternate; }
.f-wobble, .bhe-wobble { animation: bhe-wobble 4.5s ease-in-out infinite; }
.bhe-tilt-l { transform: rotate(-6deg); }
.bhe-tilt-r { transform: rotate(6deg); }
.bhe-shadow img { box-shadow: 0 18px 40px rgba(15, 23, 42, .18); }

.bhe-blue, .c-blue { color: #2563eb; }
.bhe-orange, .c-orange { color: #f97316; }
.bhe-pink, .c-pink { color: #db2777; }
.bhe-cyan, .c-cyan { color: #06b6d4; }
.bhe-hot { color: #e11d2e; box-shadow: inset 0 -.12em 0 #e11d2e; }
.bhe-script { font-family: Caveat, cursive; }

.bhe-blob { width: 140px; height: 140px; border-radius: 50%; display: block; filter: blur(2px); }
.bhe-blob--blue { background: #bfdbfe; }
.bhe-blob--yellow { background: #fde68a; }
.bhe-blob--ink { width: 84px; height: 84px; background: #1d4ed8; filter: none; border-radius: 40% 60% 70% 30%; }
.bhe-arch { width: min(320px, 80vw); height: 360px; border-radius: 180px 180px 28px 28px; background: linear-gradient(#fed7aa, #fb923c); }
.bhe-geo { width: 280px; height: 280px; border-radius: 50%; background: conic-gradient(#7c3aed 0 38%, #ddd6fe 0 62%, #5b21b6 0 100%); }
.bhe-ring { width: min(360px, 86vw); height: min(360px, 86vw); border-radius: 50%; border: 14px solid #f5d000; box-sizing: border-box; }
.bhe-watermark { font-size: clamp(72px, 12vw, 140px); font-weight: 800; color: rgba(15, 23, 42, .06); line-height: .8; }
.bhe-seal { width: 96px; height: 96px; border-radius: 50%; display: grid; place-items: center; text-align: center; background: #f97316; color: #fff; font-weight: 800; font-size: 13px; line-height: 1.25; }
.bhe-seal--light { background: #1d4ed8; box-shadow: 0 0 0 6px rgba(255, 255, 255, .35); }
.bhe-bars, .bhe-eq { display: flex; align-items: flex-end; gap: 8px; height: 110px; }
.bhe-bars span, .bhe-eq i { display: block; flex: 1; background: #818cf8; border-radius: 8px 8px 0 0; transform-origin: bottom; animation: bhe-eq 1.1s ease-in-out infinite alternate; }
.bhe-eq { height: 54px; }
.bhe-eq i { background: #f9a8d4; animation-duration: .9s; }
.bhe-bars span:nth-child(2), .bhe-eq i:nth-child(2) { animation-delay: .15s; }
.bhe-bars span:nth-child(3), .bhe-eq i:nth-child(3) { animation-delay: .28s; }
.bhe-bars span:nth-child(4), .bhe-eq i:nth-child(4) { animation-delay: .08s; }
.bhe-bars span:nth-child(5), .bhe-eq i:nth-child(5) { animation-delay: .22s; }
.bhe-meter { height: 10px; border-radius: 999px; background: rgba(255, 255, 255, .28); overflow: hidden; }
.bhe-meter span { display: block; width: 68%; height: 100%; background: #fb923c; }
.bhe-marquee { overflow: hidden; color: #a5f3fc; font-weight: 700; letter-spacing: .08em; }
.bhe-marquee span { display: inline-block; white-space: nowrap; animation: bhe-marquee 22s linear infinite; }

.bhe-drop, .bhe-locked { padding: 28px; border: 1px dashed #94a3b8; border-radius: 16px; text-align: center; background: #f8fafc; color: #0f172a; }
.bhe-drop strong, .bhe-locked { display: block; margin-bottom: 6px; }
.bhe-locked { border-color: #f59e0b; background: #fffbeb; }

.bhe-form { background: #e7eef5; padding: 26px 20px 20px; display: grid; gap: 10px; }
.bhe-form__title { margin: 0; text-align: center; font-family: "Libre Baskerville", Georgia, serif; font-size: 28px; }
.bhe-form__note, .bhe-form__ok, .bhe-form__err { margin: 0; text-align: center; }
.bhe-form__ok { color: #047857; }
.bhe-form__err { color: #b91c1c; }
.bhe-form__label { display: grid; gap: 4px; font-size: 13px; color: #334155; }
.bhe-form input, .bhe-form textarea { width: 100%; border: 0; background: #fff; min-height: 40px; padding: 8px 10px; font: inherit; }
.bhe-form__pair { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.bhe-form__submit { border: 0; min-height: 46px; font-weight: 800; letter-spacing: .04em; cursor: pointer; background: #d91010; color: #fff; }
.bhe-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }

.bhe-search { background: #fff; border-radius: 16px; box-shadow: 0 16px 40px rgba(15, 23, 42, .12); overflow: hidden; max-width: 760px; }
.bhe-search__tabs { display: flex; gap: 0; }
.bhe-search__tab { border: 0; background: #f8fafc; color: #0f172a; padding: 12px 22px; cursor: pointer; font-weight: 700; }
.bhe-search__tab.is-active { background: #e11d2e; color: #fff; }
.bhe-search__row { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 8px; padding: 14px; align-items: end; }
.bhe-search__field { display: grid; gap: 4px; font-size: 12px; color: #64748b; }
.bhe-search__field input { border: 0; border-bottom: 1px solid #e2e8f0; font: inherit; font-weight: 700; color: inherit; padding: 6px 0; background: transparent; }
.bhe-search__go { width: 48px; height: 48px; border: 0; border-radius: 10px; background: #e11d2e; color: #fff; font-size: 18px; cursor: pointer; }

@media (max-width: 800px) {
  .bhe-search__row, .bhe-form__pair { grid-template-columns: 1fr; }
  .bhe-tilt-l, .bhe-tilt-r { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .a-up, .a-down, .a-left, .a-right, .a-zoom, .a-pop,
  .f-float, .f-float2, .f-pulse, .f-spin, .f-blob, .f-ken, .f-wobble,
  .bhe-float, .bhe-pulse, .bhe-spin, .bhe-wobble, .bhe-ken img,
  .bhe-bars span, .bhe-eq i, .bhe-marquee span { animation: none !important; }
}
