/* ==========================================================================
   Editorial layouts + Elementor hooks + MOTION SYSTEM (v2)
   Add hook classes in Elementor → Advanced → CSS Classes.
   ========================================================================== */

/* ---------- Elementor section rhythm ---------- */
.elementor-page .afro-main > .elementor { overflow-x: clip; }
.e-con.afro-sec { padding-block: var(--afro-space-9); padding-inline: var(--afro-gutter); }
.e-con.afro-sec--tight { padding-block: var(--afro-space-7); padding-inline: var(--afro-gutter); }
.e-con.afro-sec > .e-con-inner, .e-con.afro-sec--tight > .e-con-inner { max-width: var(--afro-wrap); }
.afro-sticky { position: sticky; top: calc(var(--afro-header-h) + 2rem); align-self: flex-start; }
.afro-hairline { border-top: 1px solid var(--afro-border); padding-top: 1.5rem; }
.afro-centre { text-align: center; }
.afro-centre .afro-lede, .afro-centre .afro-lede p, .afro-centre .elementor-heading-title { margin-inline: auto; }
.afro-centre .afro-cta-group { justify-content: center; }
.afro-num p, .afro-h2 p, .afro-h3 p { margin: 0; }
.afro-index-label .elementor-heading-title { font-family: var(--afro-font-serif) !important; font-style: italic; text-transform: none; font-size: 1.5rem !important; color: var(--afro-yellow) !important; }
.afro-founder-alias .elementor-heading-title { font-family: var(--afro-font-serif) !important; font-style: italic; text-transform: none !important; font-weight: 500 !important; font-size: var(--afro-fs-h3) !important; color: var(--afro-yellow) !important; }

/* Photo-backed sections: put an Image widget with class "afro-bg-media" as the first child */
.afro-has-media { position: relative; isolation: isolate; overflow: hidden; }
.afro-bg-media { position: absolute !important; inset: 0; z-index: -2; width: 100% !important; max-width: none !important; margin: 0 !important; pointer-events: none; }
.afro-bg-media .elementor-widget-container, .afro-bg-media img { width: 100%; height: 100%; }
.afro-bg-media img { object-fit: cover; object-position: center 30%; border-radius: 0 !important; filter: grayscale(1) contrast(1.08) brightness(.75); }
.afro-has-media::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg, rgba(17,17,17,.96) 0%, rgba(17,17,17,.78) 42%, rgba(17,17,17,.25) 100%), linear-gradient(0deg, var(--afro-ink) 0%, transparent 35%); }
.afro-has-media--even::before { background: linear-gradient(180deg, rgba(17,17,17,.82) 0%, rgba(17,17,17,.62) 50%, rgba(17,17,17,.85) 100%); }
.afro-has-media--even .afro-bg-media img { filter: grayscale(.6) contrast(1.05) brightness(.85); }
.afro-has-media--colour .afro-bg-media img { filter: saturate(.85) brightness(.6); }

/* Pillar cards (Contact / About / FC pages) and statement headings */
.afro-pillar { padding: clamp(1.4rem, 3vw, 2rem) !important; border: 1px solid var(--afro-border); border-radius: var(--afro-radius-lg); background: rgba(255,255,255,.025); transition: transform .6s var(--afro-ease), border-color .6s, box-shadow .6s; }
.afro-pillar:hover { transform: translateY(-6px); border-color: rgba(219,161,77,.55); box-shadow: var(--afro-glow); }
.afro-statement .elementor-heading-title { font-family: var(--afro-font-display) !important; font-size: clamp(1.7rem, 1.1rem + 2.4vw, 3.2rem) !important; line-height: 1.18 !important; font-weight: 600 !important; text-transform: uppercase; }
.afro-poster__mega .elementor-heading-title { font-family: var(--afro-font-display) !important; font-size: clamp(5rem, 2rem + 14vw, 15rem) !important; line-height: .85 !important; background: var(--afro-gold); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.afro-hero.afro-bg-ink { background-color: var(--afro-black); }
.afro-hero.afro-bg-ink:not(.afro-has-media) { background-blend-mode: luminosity; }

/* ---------- Hero ---------- */
.afro-hero { min-height: calc(100svh - var(--afro-header-h) - 34px); }
.afro-hero .afro-bg-media img { animation: afro-kenburns 26s ease-in-out infinite alternate; transform-origin: 70% 40%; }
@keyframes afro-kenburns { from { transform: scale(1.04) translate3d(0,0,0); } to { transform: scale(1.16) translate3d(-2%, -1%, 0); } }
.afro-hero__title .elementor-heading-title { max-width: 13ch; }
.afro-hero-card { align-self: flex-end; }
.afro-hero-lines { position: absolute !important; inset: 0; z-index: -1; pointer-events: none; opacity: .5; }
.afro-hero-lines svg { width: 100%; height: 100%; }
.afro-hero-lines path { fill: none; stroke: url(#afroLineGrad); stroke-width: 1; stroke-dasharray: 2200; stroke-dashoffset: 2200; animation: afro-draw 6s var(--afro-ease) .4s forwards; }
.afro-hero-lines path:nth-child(2) { animation-delay: .9s; }
.afro-hero-lines path:nth-child(3) { animation-delay: 1.4s; }
@keyframes afro-draw { to { stroke-dashoffset: 0; } }
.afro-scroll-cue { position: absolute !important; left: 50%; bottom: 1.5rem; transform: translateX(-50%); width: auto !important; }
.afro-scroll-cue span { display: block; width: 22px; height: 36px; border: 1.5px solid rgba(255,255,255,.4); border-radius: 12px; position: relative; }
.afro-scroll-cue span::after { content: ""; position: absolute; left: 50%; top: 7px; width: 3px; height: 7px; margin-left: -1.5px; border-radius: 2px; background: var(--afro-yellow); animation: afro-cue 1.8s var(--afro-ease) infinite; }
@keyframes afro-cue { 0% { transform: translateY(0); opacity: 1; } 70% { transform: translateY(12px); opacity: 0; } 100% { opacity: 0; } }

/* ---------- Slat image (kit intro photo split into pill columns) ---------- */
.afro-slats { --n: 4; --gap: 10px; display: grid; grid-template-columns: repeat(var(--n), 1fr); gap: var(--gap); aspect-ratio: 1.1; position: relative; }
.elementor-widget-shortcode:has(.afro-slats), .e-con:has(> .elementor-widget-shortcode .afro-slats) { flex-shrink: 0 !important; }
.afro-slat { position: relative; overflow: hidden; border-radius: 999px; transform: translate3d(0, var(--ty, 0), 0); transition: transform .2s linear; }
.afro-slat:nth-child(even) { margin-top: 1.75rem; margin-bottom: -1.75rem; }
.afro-slat img { position: absolute; top: 0; height: 100%; max-width: none; width: calc(var(--n) * 100% + (var(--n) - 1) * var(--gap)); left: calc(var(--i) * -1 * (100% + var(--gap))); object-fit: cover; border-radius: 0; }
.afro-slat::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(255,219,73,.3); }
.al-ready .afro-slats .afro-slat { clip-path: inset(100% 0 0 0 round 999px); transition: clip-path 1.3s var(--afro-ease-in-out), transform .2s linear; transition-delay: calc(var(--i) * 120ms), 0s; }
.al-ready .afro-slats .afro-slat:nth-child(even) { clip-path: inset(0 0 100% 0 round 999px); }
.al-ready .afro-slats.is-in .afro-slat { clip-path: inset(0 0 0 0 round 999px); }

/* ---------- Counters (Elementor Counter widget + class "afro-counter") ---------- */
.afro-counters { border-top: 1px solid var(--afro-border); padding-top: 2.25rem !important; }
.afro-counter .elementor-counter { display: flex; align-items: center; gap: 1rem; }
.afro-counter .elementor-counter-number-wrapper { font-family: var(--afro-font-display) !important; font-weight: 600 !important; font-size: clamp(2.6rem, 2rem + 2.4vw, 4rem) !important; line-height: 1 !important; background: var(--afro-gold); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; order: 1; }
.afro-counter .elementor-counter-title { order: 2; font-family: var(--afro-font-display) !important; font-size: 1.05rem !important; font-weight: 500 !important; line-height: 1.25 !important; text-transform: uppercase; color: #fff !important; text-align: left !important; max-width: 13ch; }
.afro-counter + .afro-counter, .afro-counter:not(:first-child) { border-left: 1px solid var(--afro-border); padding-left: clamp(1rem, 3vw, 2.5rem) !important; }

/* ---------- Feature cards (kit discography) — Container with background image + class "afro-card" ---------- */
.afro-card { position: relative; isolation: isolate; overflow: hidden; border-radius: 24px; min-height: clamp(300px, 30vw, 400px); background-size: auto 112% !important; background-repeat: no-repeat !important; background-position: center !important; transition: background-size 1.4s var(--afro-ease), transform .7s var(--afro-ease), box-shadow .7s var(--afro-ease) !important; }
.afro-card::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(17,17,17,.15) 0%, rgba(17,17,17,.55) 50%, rgba(17,17,17,.92) 100%); transition: background .7s var(--afro-ease); }
.afro-card::after { content: ""; position: absolute; inset: 14px; border: 1px solid rgba(255,255,255,.35); border-radius: 16px; pointer-events: none; transition: inset .7s var(--afro-ease), border-color .7s; }
.afro-card:hover { background-size: auto 124% !important; transform: translateY(-8px); box-shadow: 0 40px 70px -35px rgba(219,161,77,.55) !important; }
.afro-card:hover::after { inset: 22px; border-color: rgba(255,219,73,.75); }
.afro-card:hover::before { background: linear-gradient(180deg, rgba(17,17,17,.05) 0%, rgba(17,17,17,.45) 50%, rgba(17,17,17,.95) 100%); }
.afro-card .elementor-heading-title { text-shadow: 0 2px 20px rgba(0,0,0,.5); }
.afro-card .afro-link { color: var(--afro-yellow-light) !important; }

/* ---------- Giant outlined title (kit "MEMBER OF THE BAND") — scroll-scrubbed ---------- */
.afro-giant { width: 100%; overflow: hidden; }
.afro-giant .elementor-heading-title { font-size: clamp(3.4rem, 1rem + 11vw, 11.5rem) !important; line-height: .9 !important; white-space: nowrap; text-align: center; color: transparent !important; -webkit-text-fill-color: transparent; -webkit-text-stroke: 1.5px rgba(249,178,24,.85); background: linear-gradient(180deg, rgba(255,210,90,.55) 0%, rgba(249,178,24,.28) 45%, rgba(249,178,24,.04) 95%); -webkit-background-clip: text; background-clip: text; text-shadow: 0 0 60px rgba(249,178,24,.18); will-change: transform; }
@media (max-width: 767px) { .afro-giant .elementor-heading-title { -webkit-text-stroke-width: 1px; } }

/* ---------- Poster / device (kit album cover) ---------- */
.afro-poster-card { position: relative; background: var(--afro-black); padding: clamp(.7rem, 1.2vw, 1rem); border: 1px solid var(--afro-border); border-radius: 30px; box-shadow: var(--afro-shadow); }
.afro-poster-card__media { position: relative; overflow: hidden; border-radius: 20px; aspect-ratio: 4 / 4.4; }
.afro-poster-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.6s var(--afro-ease); }
.afro-poster-card:hover .afro-poster-card__media img { transform: scale(1.06); }
.afro-poster-card--official .afro-poster-card__media { aspect-ratio: 706 / 1080; }
.afro-poster-card--official .afro-poster-card__media::after { background: linear-gradient(180deg, transparent 70%, rgba(17,17,17,.6) 100%); }
.afro-poster-card--official .afro-poster-card__edition { bottom: 1rem; }
.afro-poster-card__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17,17,17,.55) 0%, transparent 35%, transparent 55%, rgba(17,17,17,.85) 100%); }
.afro-poster-card__script { position: absolute; top: 1.25rem; left: 1.4rem; right: 1.4rem; z-index: 2; margin: 0; font-family: var(--afro-font-serif); font-style: italic; font-weight: 500; font-size: clamp(1.9rem, 1.4rem + 1.8vw, 3rem); line-height: .95; color: #fff; text-shadow: 0 4px 30px rgba(0,0,0,.5); }
.afro-poster-card__edition { position: absolute; right: 1.2rem; bottom: .6rem; z-index: 2; font-family: var(--afro-font-display); font-weight: 600; font-size: clamp(3.5rem, 2.5rem + 4vw, 6rem); line-height: 1; background: var(--afro-gold); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.afro-poster-card__bracket { position: absolute; left: 1.6rem; bottom: 1.6rem; z-index: 2; width: 46px; height: 46px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; }
.afro-poster-card__tag { position: absolute; left: 4.6rem; bottom: 1.7rem; z-index: 2; font-size: .62rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: #fff; }
.afro-metaline { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; font-size: .85rem; color: #fff; padding-bottom: 1.1rem; margin-bottom: 1.25rem; border-bottom: 1px solid var(--afro-border); }
.afro-metaline span + span { padding-left: 1.25rem; border-left: 1px solid var(--afro-border); }
.afro-metaline p { margin: 0; display: contents; }

/* Rotating seal positioned over media */
.afro-hero-media { position: relative; }
.afro-hero-seal { position: absolute !important; left: -3rem; bottom: 2.5rem; z-index: 3; width: auto !important; }
.afro-hero-seal svg { display: block; filter: drop-shadow(0 18px 30px rgba(0,0,0,.45)); }
.afro-strip .elementor-heading-title { white-space: nowrap; font-family: var(--afro-font-display) !important; font-weight: 600 !important; text-transform: uppercase; font-size: clamp(1.4rem, 1rem + 1.8vw, 2.4rem) !important; line-height: 1 !important; padding-right: 2.5rem; color: var(--afro-black) !important; }

/* ---------- Event hero (theme template) ---------- */
.afro-event-hero { position: relative; min-height: 88svh; display: flex; align-items: flex-end; padding-block: var(--afro-space-9) var(--afro-space-8); overflow: hidden; background: var(--afro-black); }
.afro-event-hero__media { position: absolute; inset: -10% 0 0; z-index: 0; }
.afro-event-hero__media img { width: 100%; height: 110%; object-fit: cover; filter: grayscale(1) brightness(.6); }
.afro-event-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(17,17,17,.95), rgba(17,17,17,.4)), linear-gradient(0deg, var(--afro-ink), transparent 40%); }
.afro-event-hero__inner { position: relative; z-index: 2; }
.afro-event-hero .afro-display { color: #fff; max-width: 15ch; }
.afro-event-hero__theme { font-family: var(--afro-font-serif); font-style: italic; font-size: var(--afro-fs-h3); line-height: 1.2; color: var(--afro-yellow); margin: 0 0 2rem; max-width: 30ch; }
.afro-event__story { margin-top: var(--afro-space-8); }

/* Profile */
.afro-profile__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.afro-profile__grid > .afro-frame { position: sticky; top: calc(var(--afro-header-h) + 2rem); }
.afro-profile .afro-prose { margin-inline: 0; }
.afro-profile__place { display: flex; gap: .5rem; align-items: center; font-size: var(--afro-fs-sm); color: var(--afro-text-muted); }
.afro-profile__place .afro-icon { color: var(--afro-yellow); }

/* Article */
.afro-article__head { text-align: center; padding-block: var(--afro-space-8) var(--afro-space-7); max-width: 64rem; }
.afro-article__head .afro-crumbs ol { justify-content: center; }
.afro-article__title { font-size: clamp(2.2rem, 1.4rem + 3.4vw, 4.6rem) !important; line-height: 1.06 !important; }
.afro-article__dek { font-family: var(--afro-font-serif); font-style: italic; font-size: var(--afro-fs-h3); line-height: 1.3; max-width: 34ch; margin: 1.5rem auto; color: var(--afro-yellow); }
.afro-article__byline { font-size: var(--afro-fs-sm); letter-spacing: .06em; }
.afro-article__byline strong { color: #fff; }
.afro-article__hero { width: min(1240px, calc(100% - 2 * var(--afro-gutter))); margin: 0 auto var(--afro-space-8); }
.afro-article__hero img { border-radius: var(--afro-radius-lg); }
.afro-article__hero figcaption { position: static; background: none; color: var(--afro-text-muted); text-transform: none; letter-spacing: 0; padding: .75rem 0 0; }
.afro-article__body { padding-inline: var(--afro-gutter); }
.afro-article__foot { padding: var(--afro-space-7) var(--afro-gutter) var(--afro-space-8); }
.afro-tags a { display: inline-block; margin: 0 .4rem .4rem 0; padding: .4rem .9rem; border: 1px solid var(--afro-border); border-radius: 999px; font-size: .68rem; font-weight: 700; text-decoration: none; letter-spacing: .1em; text-transform: uppercase; color: var(--afro-text); }
.afro-tags a:hover { border-color: var(--afro-yellow); color: var(--afro-yellow); }
.afro-author { display: grid; grid-template-columns: 72px 1fr; gap: 1.25rem; align-items: center; padding: 1.5rem; border: 1px solid var(--afro-border); border-radius: var(--afro-radius-lg); margin-block: 2rem; background: rgba(255,255,255,.02); }
.afro-author__img { border-radius: 50%; width: 72px; height: 72px; }
.afro-author__name { font-family: var(--afro-font-display); text-transform: uppercase; font-size: 1.4rem; margin: 0; color: #fff; }
.afro-author .afro-kicker { margin: 0; }
.afro-postnav { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.afro-postnav a { display: grid; gap: .35rem; text-decoration: none; padding: 1.25rem 1.4rem; border: 1px solid var(--afro-border); border-radius: var(--afro-radius); transition: border-color .3s, background .3s; }
.afro-postnav a:hover { border-color: var(--afro-yellow); background: rgba(219,161,77,.06); }
.afro-postnav__next { text-align: right; grid-column: 2; }
.afro-postnav span:last-child { font-family: var(--afro-font-display); text-transform: uppercase; font-size: 1.1rem; line-height: 1.25; color: #fff; }
.afro-archive-head { padding-bottom: var(--afro-space-6); }
.afro-404 { min-height: 70svh; display: flex; align-items: center; }
.afro-404__search { margin-top: 2.5rem; max-width: 30rem; }
.afro-404__search input[type="search"] { background: rgba(255,255,255,.04); border: 1px solid var(--afro-border); border-radius: 999px; color: #fff; padding: .8rem 1.2rem; }
.afro-session-hero__when { font-size: var(--afro-fs-lede); margin-bottom: 2rem; color: #fff; }

/* ==========================================================================
   MOTION SYSTEM
   al-split · al-reveal · al-left · al-right · al-zoom-in · al-stagger · al-mask
   al-parallax(-strong) · al-float · al-spin · al-marquee · al-tilt · al-zoom
   al-grain · al-glow · al-line · al-scrub · al-magnetic
   Hidden states only apply once JS adds .al-ready to <html>, so content is
   never invisible if scripts fail.
   ========================================================================== */
.al-ready .al-reveal { opacity: 0; transform: translate3d(0, 40px, 0); }
.al-ready .al-left { opacity: 0; transform: translate3d(-60px, 0, 0); }
.al-ready .al-right { opacity: 0; transform: translate3d(60px, 0, 0); }
.al-ready .al-zoom-in { opacity: 0; transform: scale(.92); }
.al-ready :is(.al-reveal, .al-left, .al-right, .al-zoom-in) { transition: opacity 1.1s var(--afro-ease), transform 1.1s var(--afro-ease); }
.al-ready :is(.al-reveal, .al-left, .al-right, .al-zoom-in).is-in { opacity: 1; transform: none; }

.al-ready .al-mask img { clip-path: inset(100% 0 0 0); transform: scale(1.15); transition: clip-path 1.4s var(--afro-ease-in-out), transform 2s var(--afro-ease); }
.al-ready .al-mask.is-in img { clip-path: inset(0 0 0 0); transform: scale(1); }
.al-ready .afro-frame-el--arch.al-mask img { clip-path: inset(100% 0 0 0 round 999px 999px 24px 24px); }
.al-ready .afro-frame-el--arch.al-mask.is-in img { clip-path: inset(0 0 0 0 round 999px 999px 24px 24px); }

.al-split .al-line-wrap { display: inline-block; overflow: hidden; vertical-align: bottom; padding-bottom: .1em; margin-bottom: -.1em; }
.al-split .al-word { display: inline-block; transform: translate3d(0, 110%, 0) rotate(4deg); transform-origin: 0 100%; transition: transform 1.1s var(--afro-ease); transition-delay: calc(var(--i, 0) * 60ms); }
.al-split.is-in .al-word { transform: none; }

.al-line { position: relative; }
.al-line::after { content: ""; position: absolute; left: 0; bottom: 0; height: 2px; width: 100%; background: var(--afro-gold); transform: scaleX(0); transform-origin: left; transition: transform 1.2s var(--afro-ease) .3s; }
.al-line.is-in::after { transform: scaleX(1); }

.al-float { animation: al-float 7s ease-in-out infinite; }
@keyframes al-float { 50% { transform: translateY(-14px) rotate(-.5deg); } }
.al-spin svg, .al-spin img, svg.al-spin { animation: al-spin 22s linear infinite; }
@keyframes al-spin { to { transform: rotate(360deg); } }

.al-marquee { overflow: hidden; }
.al-marquee .al-track { display: flex !important; flex-wrap: nowrap !important; width: max-content !important; max-width: none !important; gap: inherit; animation: al-marquee var(--al-speed, 38s) linear infinite; }
.al-marquee .al-track > * { flex: none !important; width: max-content !important; max-width: none !important; }
.al-marquee:hover .al-track { animation-play-state: paused; }

/* Official mark */
.afro-mark { display: block; width: var(--mark, 44px); height: auto; aspect-ratio: 648 / 647; color: #fff; overflow: visible; }
.afro-wordmark__mark { --mark: 46px; transition: transform .8s var(--afro-ease); }
.afro-wordmark:hover .afro-wordmark__mark { transform: rotate(-6deg) scale(1.06); }
.afro-footer .afro-wordmark__mark { --mark: 64px; }
.afro-bg-light .afro-mark, .afro-bg-mustard .afro-mark { color: var(--afro-black); }
.afro-logo-sc { display: inline-block; }
.afro-logo-sc .afro-mark { width: var(--mark); }
.afro-curtain__inner { display: grid; justify-items: center; gap: 1rem; }
.afro-curtain .afro-mark { --mark: clamp(80px, 10vw, 130px); opacity: 0; animation: afro-curtain-mark .9s var(--afro-ease) forwards; }
.afro-seal-mark { width: 74px; }
.afro-poster-card__logo { position: absolute; top: 1.1rem; right: 1.1rem; z-index: 3; width: 58px; filter: drop-shadow(0 6px 18px rgba(0,0,0,.6)); }
.afro-poster-card__logo .afro-mark { width: 100%; }
.afro-poster-card__script { right: 5.5rem; }
.afro-hero-watermark { position: absolute !important; right: -6vw; bottom: -8vw; width: min(52vw, 760px) !important; z-index: -1; opacity: .07; pointer-events: none; }
.afro-hero-watermark .afro-mark { width: 100%; color: #fff; }
@keyframes al-marquee { to { transform: translateX(-50%); } }

.al-tilt { transition: transform .6s var(--afro-ease); transform-style: preserve-3d; will-change: transform; }
.al-zoom { overflow: hidden; }
.al-zoom img { transition: transform 1.4s var(--afro-ease); }
.al-zoom:hover img { transform: scale(1.07); }
.al-magnetic { transition: transform .5s var(--afro-ease); }

.al-grain { position: relative; isolation: isolate; }
.al-grain::after {
	content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 3; opacity: .08; mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
.al-glow { position: relative; overflow: hidden; }
.al-glow::before { content: ""; position: absolute; width: 700px; height: 700px; left: var(--gx, 75%); top: var(--gy, 30%); transform: translate(-50%, -50%); background: radial-gradient(circle, rgba(219,161,77,.16), transparent 62%); pointer-events: none; z-index: 0; transition: left .35s linear, top .35s linear; }

/* Custom cursor (fine pointers only; injected by JS) */
.afro-cursor { position: fixed; left: 0; top: 0; z-index: 10000; pointer-events: none; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; background: var(--afro-yellow); mix-blend-mode: difference; transition: width .35s var(--afro-ease), height .35s var(--afro-ease), margin .35s var(--afro-ease), opacity .3s; }
.afro-cursor-ring { position: fixed; left: 0; top: 0; z-index: 10000; pointer-events: none; width: 38px; height: 38px; margin: -19px 0 0 -19px; border-radius: 50%; border: 1px solid rgba(219,161,77,.6); transition: width .45s var(--afro-ease), height .45s var(--afro-ease), margin .45s var(--afro-ease), opacity .3s, background .3s; }
.afro-cursor-hover .afro-cursor-ring { width: 70px; height: 70px; margin: -35px 0 0 -35px; background: rgba(219,161,77,.1); }
.afro-cursor-hover .afro-cursor { width: 4px; height: 4px; margin: -2px 0 0 -2px; }

/* Page entrance curtain (homepage only; skipped with reduced motion) */
.afro-curtain { position: fixed; inset: 0; z-index: 10001; background: var(--afro-black); display: grid; place-items: center; pointer-events: none; animation: afro-curtain-out 1s var(--afro-ease-in-out) .55s forwards; }
.afro-curtain__mark { font-family: var(--afro-font-serif); font-style: italic; font-size: clamp(2rem, 4vw, 3.2rem); color: var(--afro-yellow); opacity: 0; animation: afro-curtain-mark .9s var(--afro-ease) forwards; }
@keyframes afro-curtain-mark { from { opacity: 0; transform: translateY(14px); letter-spacing: .3em; } to { opacity: 1; transform: none; letter-spacing: 0; } }
@keyframes afro-curtain-out { to { clip-path: inset(0 0 100% 0); visibility: hidden; } }

/* Editor & reduced motion: everything visible, nothing moves */
.elementor-editor-active :is(.al-reveal, .al-left, .al-right, .al-zoom-in, .al-split .al-word) { opacity: 1 !important; transform: none !important; }
.elementor-editor-active .al-mask img, .elementor-editor-active .afro-slat { clip-path: none !important; transform: none !important; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	:is(.al-reveal, .al-left, .al-right, .al-zoom-in, .al-split .al-word) { opacity: 1 !important; transform: none !important; transition: none !important; }
	.al-mask img, .afro-slat { clip-path: none !important; transform: none !important; transition: none !important; }
	.al-float, .al-spin svg, .al-spin img, svg.al-spin, .al-marquee .al-track, .afro-announce__dot, .afro-badge::before, .afro-orb::before, .afro-orb::after, .afro-hero .afro-bg-media img, body.afro em, .afro-gold, .afro-scroll-cue span::after { animation: none !important; }
	.afro-hero-lines path { animation: none; stroke-dashoffset: 0; }
	.al-parallax, .al-parallax-strong, .afro-giant .elementor-heading-title { transform: none !important; }
	.al-line::after { transform: scaleX(1); transition: none; }
	.afro-curtain, .afro-cursor, .afro-cursor-ring { display: none !important; }
}
