/* ============================================================ Dark Hero — style.css Prefix: bkbg-dh- ============================================================ */ .bkbg-dh-wrap { position: relative; width: 100%; box-sizing: border-box; min-height: var(--bkbg-dh-mh, 620px); padding: var(--bkbg-dh-pt, 96px) 24px var(--bkbg-dh-pb, 96px); display: flex; align-items: center; overflow: hidden; } /* ---- Decorative layers ---- */ /* Radial glow */ .bkbg-dh-glow { pointer-events: none; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -60%); width: var(--bkbg-dh-glow-sz, 600px); height: var(--bkbg-dh-glow-sz, 600px); border-radius: 50%; background: radial-gradient(closest-side, var(--bkbg-dh-glow-c, #6c3fb5) 0%, transparent 100%); opacity: .35; filter: blur(40px); } /* Grid lines */ .bkbg-dh-grid { pointer-events: none; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px); background-size: 48px 48px; mask-image: radial-gradient(ellipse 80% 70% at 50% 50%, black, transparent); } /* Noise texture */ .bkbg-dh-noise { pointer-events: none; position: absolute; inset: 0; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E"); background-size: 200px 200px; opacity: .04; mix-blend-mode: screen; } /* ---- Content ---- */ .bkbg-dh-inner { position: relative; z-index: 1; max-width: var(--bkbg-dh-mw, 800px); margin: 0 auto; display: flex; flex-direction: column; gap: 24px; width: 100%; } .bkbg-dh-align--center .bkbg-dh-inner { align-items: center; text-align: center; } .bkbg-dh-align--left .bkbg-dh-inner { align-items: flex-start; text-align: left; } /* ---- Badge ---- */ .bkbg-dh-badge { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; cursor: default; width: fit-content; } .bkbg-dh-badge-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex-shrink: 0; } /* Glow style badge */ .bkbg-dh-badge--glow { padding: 6px 16px; border-radius: 999px; background: rgba(124,58,237,.18); border: 1px solid rgba(124,58,237,.45); color: #c4b5fd; box-shadow: 0 0 16px rgba(124,58,237,.2); } .bkbg-dh-badge--glow .bkbg-dh-badge-dot { background: #a78bfa; box-shadow: 0 0 6px #a78bfa; } /* Border style badge */ .bkbg-dh-badge--border { padding: 5px 14px; border-radius: 999px; border: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.75); background: rgba(255,255,255,.05); } .bkbg-dh-badge--border .bkbg-dh-badge-dot { background: rgba(255,255,255,.5); } /* Subtle badge */ .bkbg-dh-badge--subtle { padding: 4px 10px; color: rgba(255,255,255,.55); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; } .bkbg-dh-badge--subtle .bkbg-dh-badge-dot { width: 5px; height: 5px; background: rgba(255,255,255,.4); } /* ---- Headline ---- */ .bkbg-dh-inner .bkbg-dh-headline { margin: 0; font-family: var(--bkbg-dh-hdg-font-family, inherit); font-size: var(--bkbg-dh-hdg-font-size-d, var(--bkbg-dh-hl-sz, 64px)); font-weight: var(--bkbg-dh-hdg-font-weight, 800); line-height: var(--bkbg-dh-hdg-line-height-d, 1.1); letter-spacing: var(--bkbg-dh-hdg-letter-spacing-d, -.03em); word-spacing: var(--bkbg-dh-hdg-word-spacing-d, normal); text-transform: var(--bkbg-dh-hdg-text-transform, none); font-style: var(--bkbg-dh-hdg-font-style, normal); text-decoration: var(--bkbg-dh-hdg-text-decoration, none); } /* ---- Subtitle ---- */ .bkbg-dh-inner .bkbg-dh-subtitle { margin: 0; font-family: var(--bkbg-dh-sub2-font-family, inherit); font-size: var(--bkbg-dh-sub2-font-size-d, var(--bkbg-dh-sub-sz, 19px)); font-weight: var(--bkbg-dh-sub2-font-weight, normal); line-height: var(--bkbg-dh-sub2-line-height-d, 1.65); letter-spacing: var(--bkbg-dh-sub2-letter-spacing-d, normal); word-spacing: var(--bkbg-dh-sub2-word-spacing-d, normal); text-transform: var(--bkbg-dh-sub2-text-transform, none); font-style: var(--bkbg-dh-sub2-font-style, normal); text-decoration: var(--bkbg-dh-sub2-text-decoration, none); color: var(--bkbg-dh-sub-c, rgba(255,255,255,0.65)); max-width: 600px; } /* ---- Buttons ---- */ .bkbg-dh-buttons { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; } .bkbg-dh-align--center .bkbg-dh-buttons { justify-content: center; } .bkbg-dh-btn { display: inline-flex; align-items: center; gap: 6px; padding: 14px 30px; border-radius: var(--bkbg-dh-r, 8px); font-weight: 700; font-size: 15px; text-decoration: none; white-space: nowrap; cursor: pointer; transition: transform .15s, box-shadow .15s, opacity .15s; border: none; } .bkbg-dh-btn:hover { transform: translateY(-2px); } .bkbg-dh-btn--primary { background: var(--bkbg-dh-primary-bg, #7c3aed); color: var(--bkbg-dh-primary-c, #fff); box-shadow: 0 0 24px rgba(124,58,237,.4), 0 4px 12px rgba(0,0,0,.2); } .bkbg-dh-btn--primary:hover { box-shadow: 0 0 32px rgba(124,58,237,.55), 0 8px 20px rgba(0,0,0,.25); } .bkbg-dh-btn--ghost { background: rgba(255,255,255,.06); color: rgba(255,255,255,.8); border: 1px solid rgba(255,255,255,.15); backdrop-filter: blur(8px); } .bkbg-dh-btn--ghost:hover { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.3); color: #fff; } /* ---- Stats row ---- */ .bkbg-dh-stats { display: flex; flex-wrap: wrap; gap: 32px; margin-top: 8px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.08); align-self: stretch; } .bkbg-dh-align--center .bkbg-dh-stats { justify-content: center; } .bkbg-dh-stat { display: flex; flex-direction: column; gap: 3px; } .bkbg-dh-stat-value { font-size: 22px; font-weight: 800; color: #ffffff; letter-spacing: -.02em; line-height: 1; } .bkbg-dh-stat-label { font-size: 13px; color: var(--bkbg-dh-stats-c, rgba(255,255,255,0.5)); line-height: 1.3; } /* Responsive — Tablet */ @media (max-width: 1024px) { .bkbg-dh-inner .bkbg-dh-headline { font-size: var(--bkbg-dh-hdg-font-size-t, var(--bkbg-dh-hdg-font-size-d, var(--bkbg-dh-hl-sz, 64px))); line-height: var(--bkbg-dh-hdg-line-height-t, var(--bkbg-dh-hdg-line-height-d, 1.1)); letter-spacing: var(--bkbg-dh-hdg-letter-spacing-t, var(--bkbg-dh-hdg-letter-spacing-d, -.03em)); word-spacing: var(--bkbg-dh-hdg-word-spacing-t, var(--bkbg-dh-hdg-word-spacing-d, normal)); } .bkbg-dh-inner .bkbg-dh-subtitle { font-size: var(--bkbg-dh-sub2-font-size-t, var(--bkbg-dh-sub2-font-size-d, var(--bkbg-dh-sub-sz, 19px))); line-height: var(--bkbg-dh-sub2-line-height-t, var(--bkbg-dh-sub2-line-height-d, 1.65)); letter-spacing: var(--bkbg-dh-sub2-letter-spacing-t, var(--bkbg-dh-sub2-letter-spacing-d, normal)); word-spacing: var(--bkbg-dh-sub2-word-spacing-t, var(--bkbg-dh-sub2-word-spacing-d, normal)); } } /* Responsive — Mobile */ @media (max-width: 767px) { .bkbg-dh-inner .bkbg-dh-headline { font-size: var(--bkbg-dh-hdg-font-size-m, var(--bkbg-dh-hdg-font-size-t, var(--bkbg-dh-hdg-font-size-d, var(--bkbg-dh-hl-sz, 64px)))); line-height: var(--bkbg-dh-hdg-line-height-m, var(--bkbg-dh-hdg-line-height-t, var(--bkbg-dh-hdg-line-height-d, 1.1))); letter-spacing: var(--bkbg-dh-hdg-letter-spacing-m, var(--bkbg-dh-hdg-letter-spacing-t, var(--bkbg-dh-hdg-letter-spacing-d, -.03em))); word-spacing: var(--bkbg-dh-hdg-word-spacing-m, var(--bkbg-dh-hdg-word-spacing-t, var(--bkbg-dh-hdg-word-spacing-d, normal))); } .bkbg-dh-inner .bkbg-dh-subtitle { font-size: var(--bkbg-dh-sub2-font-size-m, var(--bkbg-dh-sub2-font-size-t, var(--bkbg-dh-sub2-font-size-d, var(--bkbg-dh-sub-sz, 19px)))); line-height: var(--bkbg-dh-sub2-line-height-m, var(--bkbg-dh-sub2-line-height-t, var(--bkbg-dh-sub2-line-height-d, 1.65))); letter-spacing: var(--bkbg-dh-sub2-letter-spacing-m, var(--bkbg-dh-sub2-letter-spacing-t, var(--bkbg-dh-sub2-letter-spacing-d, normal))); word-spacing: var(--bkbg-dh-sub2-word-spacing-m, var(--bkbg-dh-sub2-word-spacing-t, var(--bkbg-dh-sub2-word-spacing-d, normal))); } .bkbg-dh-buttons { flex-direction: column; align-items: stretch; } .bkbg-dh-btn { justify-content: center; } .bkbg-dh-stats { gap: 20px; } }