
:root{--purple:#4b1374;--purple-dark:#28043f;--purple-light:#6b2a9e;--gold:#f0b429;--teal:#007f72;--ink:#17121b;--muted:#6a626f;--line:#e9e4ec;--white:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:Arial,Helvetica,sans-serif}.site-header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,5vw,78px);border-bottom:3px solid var(--purple);background:#fff;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;color:var(--purple);text-decoration:none}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--purple);color:var(--gold);font-family:Impact,sans-serif;font-size:25px}.brand b{display:block;font-family:Impact,sans-serif;letter-spacing:.08em;font-size:22px;line-height:18px}.brand small{font-weight:800;font-size:9px;letter-spacing:.26em}.site-header nav{display:flex;gap:28px}.site-header nav a{color:var(--ink);text-decoration:none;font-size:14px;font-weight:800}.site-header nav a:hover{color:var(--purple)}.nav-cta{background:var(--purple);color:#fff;border-radius:999px;padding:11px 18px;text-decoration:none;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.hero{min-height:610px;padding:90px clamp(24px,7vw,110px);display:grid;grid-template-columns:1.15fr .85fr;align-items:center;overflow:hidden}.home-hero{background:radial-gradient(circle at 80% 20%,#6f24a4 0,#4b1374 38%,#28043f 100%);color:#fff}.hero-copy{max-width:760px;position:relative;z-index:2}.eyebrow{display:block;color:#ffd966;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:900;margin-bottom:16px}.eyebrow.dark{color:var(--purple)}h1,h2,h3{font-family:Impact,"Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:.015em;margin:0}.hero h1{font-size:clamp(58px,8vw,112px);line-height:.86}.hero h1 em{color:var(--gold);font-style:normal}.hero p{font-size:20px;line-height:1.6;max-width:650px;color:#eee2f3}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border-radius:6px;text-decoration:none;text-transform:uppercase;font-weight:900;font-size:12px;letter-spacing:.1em}.button.gold{background:var(--gold);color:var(--ink)}.button.ghost{border:2px solid rgba(255,255,255,.7);color:#fff}.hero-art{height:450px;position:relative}.drum-mark{position:absolute;right:-110px;top:20px;width:460px;height:460px;border-radius:50%;border:32px solid var(--gold);display:grid;place-items:center;font-family:Impact;font-size:240px;color:#ffd966;opacity:.92}.stick{position:absolute;width:26px;height:420px;border-radius:30px;background:linear-gradient(90deg,#b46d03,#ffd966,#a75d00);z-index:2;transform:rotate(34deg)}.stick.one{right:230px;top:0}.stick.two{right:160px;top:40px}.trust{display:flex;justify-content:center;align-items:center;gap:28px;padding:18px;background:var(--gold);font-weight:900;text-transform:uppercase;letter-spacing:.18em;font-size:12px}.trust i{width:6px;height:6px;border-radius:50%;background:var(--purple)}.section{padding:90px clamp(24px,7vw,110px);max-width:1440px;margin:auto}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:34px}.section h2,.split-band h2,.bottom-cta h2{font-size:clamp(42px,5vw,72px);line-height:.95}.text-link{color:var(--purple);font-weight:900;text-decoration:none}.offer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.offer-card{padding:32px;border:1px solid var(--line);border-top:7px solid var(--purple);border-radius:14px;background:#fff;box-shadow:0 14px 42px rgba(55,25,73,.08)}.offer-card.c2{border-top-color:var(--gold)}.offer-card.c3{border-top-color:var(--teal)}.offer-card>span{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--purple);font-weight:900}.offer-card h3{font-size:32px;margin:14px 0 8px}.offer-card strong{font-size:17px;color:var(--purple)}.offer-card p,.steps p{color:var(--muted);line-height:1.7}.offer-card a{color:var(--ink);font-weight:900;text-decoration:none}.offer-card a b{color:var(--purple)}.split-band{display:grid;grid-template-columns:1fr 1fr;background:var(--purple-dark);color:#fff;align-items:center}.split-band>div{padding:70px clamp(24px,7vw,100px)}.split-band p{font-size:18px;line-height:1.6;color:#ded0e5}.split-band img{width:100%;height:100%;min-height:440px;object-fit:cover}.pathway{text-align:center}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px;text-align:left}.steps>div{padding:28px;border-left:5px solid var(--gold);background:#faf9fb}.steps b{color:var(--purple);font-size:13px}.steps h3{font-size:30px;margin-top:8px}.page-hero{padding:100px clamp(24px,8vw,128px);background:linear-gradient(135deg,var(--purple-dark),var(--purple));color:#fff}.page-hero h1{font-size:clamp(58px,8vw,110px);line-height:.9;max-width:1000px}.page-hero p{font-size:20px;line-height:1.65;max-width:760px;color:#e9deee}.bottom-cta{padding:85px clamp(24px,8vw,128px);background:var(--purple);color:#fff}.bottom-cta p{color:#e7dce9;font-size:18px}.content-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.content-card{border:1px solid var(--line);border-radius:14px;padding:30px;background:#fff}.content-card h3{font-size:30px}.content-card p,.prose p,.prose li{color:var(--muted);line-height:1.75}.price{font-family:Impact;font-size:34px;color:var(--purple);margin:12px 0}.pill{display:inline-block;border-radius:99px;background:#eee7f3;color:var(--purple);padding:7px 11px;text-transform:uppercase;font-size:10px;font-weight:900;letter-spacing:.1em}.feature-image{width:100%;max-height:640px;object-fit:cover}.prose{max-width:900px;margin:auto}.prose h2{font-size:45px;margin:54px 0 16px}.prose h3{font-size:28px;margin-top:30px}.prose ul,.prose ol{padding-left:22px}.notice{padding:22px;border-left:6px solid var(--gold);background:#fff7df;margin:30px 0}.booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px}.booking-panel{padding:34px;border:1px solid var(--line);border-radius:16px}.booking-panel h2{font-size:42px}.field-list{display:grid;gap:12px;margin:24px 0}.field-list span{padding:15px;border:1px solid var(--line);border-radius:7px;color:var(--muted)}footer{padding:58px clamp(24px,7vw,110px) 26px;background:#170222;color:#fff;display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;position:relative}footer>div{display:flex;flex-direction:column;align-items:flex-start;gap:11px}footer p{color:#bdaec5;max-width:440px;line-height:1.6}footer a{color:#ddd1e2;text-decoration:none}.footer-brand{color:#fff}.copyright{position:absolute;right:7vw;bottom:12px;font-size:11px}
@media(max-width:850px){.site-header{height:70px}.site-header nav{display:none}.hero{grid-template-columns:1fr;padding-top:70px;min-height:650px}.hero-art{position:absolute;right:-160px;opacity:.32}.offer-grid,.content-grid,.steps,.booking-grid{grid-template-columns:1fr}.split-band{grid-template-columns:1fr}.split-band img{min-height:280px}.section-heading{align-items:flex-start;flex-direction:column}.trust{gap:10px;font-size:9px}.trust i{width:4px;height:4px}footer{grid-template-columns:1fr}.copyright{position:static}.nav-cta{padding:10px 12px;font-size:10px}}

/* Buk It Fest editorial imagery, forms and purposeful motion */
.buk-page .page-hero{position:relative;overflow:hidden}.buk-page .page-hero:after{content:"";position:absolute;width:44vw;height:44vw;right:-15vw;top:-22vw;border:28px solid var(--gold);border-radius:50%;opacity:.18;animation:rhythm-ring 8s ease-in-out infinite}.hero-image{background:var(--purple-dark);overflow:hidden}.hero-image img{display:block;width:100%;max-height:690px;object-fit:cover;animation:cinema-in 1.1s cubic-bezier(.2,.7,.2,1) both}.image-cinema{position:relative}.image-cinema:after,.cinema-frame:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 55%,rgba(22,2,34,.52))}.intro-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;align-items:start}.intro-grid p{font-size:18px;color:var(--muted);line-height:1.75}.jamaica-gallery{max-width:none;background:#170222;color:#fff;display:grid;grid-template-columns:1.05fr .9fr 1.05fr;gap:22px;align-items:center}.gallery-copy{padding:30px;text-align:center}.gallery-copy h2{font-size:55px}.gallery-copy p{color:#cdbdd5;line-height:1.7}.cinema-frame{position:relative;overflow:hidden;margin:0;border:1px solid rgba(255,255,255,.14);min-height:380px}.cinema-frame.tall{min-height:510px}.cinema-frame img{position:absolute;width:100%;height:100%;object-fit:cover;filter:saturate(1.08) contrast(1.08);transition:transform .8s cubic-bezier(.2,.7,.2,1)}.cinema-frame:hover img{transform:scale(1.055)}.cinema-frame figcaption{position:absolute;z-index:2;bottom:14px;left:16px;right:16px;color:#fff;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.stagger>*{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}.stagger>*:nth-child(2){animation-delay:.12s}.stagger>*:nth-child(3){animation-delay:.24s}.stagger>*:nth-child(4){animation-delay:.36s}.stagger>*:nth-child(5){animation-delay:.48s}.stagger>*:nth-child(6){animation-delay:.6s}.content-card{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.content-card:hover{transform:translateY(-7px);box-shadow:0 18px 40px rgba(53,18,73,.12);border-color:#cbb3d8}.pulse{animation:soft-pulse 2.5s ease-in-out infinite}.big-list{list-style:none;padding:0!important;counter-reset:path}.big-list li{display:grid;grid-template-columns:90px 1fr;gap:18px;padding:24px 0;border-bottom:1px solid var(--line);counter-increment:path}.big-list li:before{content:"0" counter(path);font-family:Impact;font-size:42px;color:var(--gold);grid-row:1/3}.big-list li b{font-family:Impact;font-size:28px;text-transform:uppercase}.big-list li span{grid-column:2}.accent{background:var(--purple);color:#fff}.accent p{color:#dfd1e5;line-height:1.7}.application-form{max-width:1000px;margin:auto;border:1px solid var(--line);border-top:9px solid var(--gold);border-radius:18px;padding:clamp(24px,5vw,54px);box-shadow:0 18px 54px rgba(59,18,84,.1)}.form-heading{max-width:680px;margin-bottom:30px}.form-heading h2{font-size:48px;margin:14px 0}.form-heading p{color:var(--muted);line-height:1.7}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid label{display:grid;gap:8px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.form-grid .full{grid-column:1/-1}.form-grid input,.form-grid textarea,.form-grid select{width:100%;border:1px solid #d9d1dd;border-radius:7px;padding:14px;font:inherit;color:var(--ink);background:#fff}.form-grid input:focus,.form-grid textarea:focus,.form-grid select:focus{outline:3px solid rgba(240,180,41,.35);border-color:var(--purple)}.check{display:flex!important;grid-template-columns:22px 1fr!important;align-items:start;line-height:1.5;text-transform:none!important;font-weight:600!important}.check input{width:18px;height:18px}.application-form .button{border:0;cursor:pointer;width:max-content}.booking-panel ol{padding-left:20px;color:var(--muted);line-height:2}
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes cinema-in{from{opacity:.25;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes soft-pulse{0%,100%{box-shadow:0 0 0 0 rgba(240,180,41,.2)}50%{box-shadow:0 0 0 12px rgba(240,180,41,0)}}@keyframes rhythm-ring{0%,100%{transform:scale(.95) rotate(0)}50%{transform:scale(1.05) rotate(8deg)}}
@media(max-width:850px){.intro-grid,.jamaica-gallery,.form-grid{grid-template-columns:1fr}.jamaica-gallery{padding:44px 20px}.cinema-frame,.cinema-frame.tall{min-height:360px}.form-grid .full{grid-column:auto}.gallery-copy{order:-1}.big-list li{grid-template-columns:64px 1fr}.form-heading h2{font-size:38px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition:none!important}}

/* Subsite navigation: Home always returns to the parent Bekelé.org site. */
.header-actions{display:flex;align-items:center;gap:12px}.home-return{display:none;color:var(--purple);font-size:11px;font-weight:900;text-decoration:none;text-transform:uppercase}.site-header nav .home-nav{color:var(--purple)}

/* The original Buk It Fest artwork remains the lead image. */
.festival-poster-hero{position:relative;background:var(--purple-dark);overflow:hidden}.festival-poster-hero>img{display:block;width:100%;height:auto;min-height:420px;object-fit:cover;animation:poster-arrive 1.1s cubic-bezier(.18,.72,.2,1) both}.poster-actions{position:absolute;z-index:3;left:clamp(20px,6vw,90px);bottom:clamp(28px,6vw,82px);display:flex;gap:12px}.poster-ghost{background:rgba(38,4,61,.76);border:2px solid #fff;color:#fff;backdrop-filter:blur(8px)}.rhythm-meter{position:absolute;right:clamp(20px,5vw,70px);bottom:clamp(28px,6vw,78px);height:74px;display:flex;align-items:end;gap:7px;z-index:3}.rhythm-meter i{display:block;width:8px;background:var(--gold);border-radius:99px;animation:beat 1.1s ease-in-out infinite}.rhythm-meter i:nth-child(1),.rhythm-meter i:nth-child(5){height:22px}.rhythm-meter i:nth-child(2),.rhythm-meter i:nth-child(6){height:52px;animation-delay:.12s}.rhythm-meter i:nth-child(3),.rhythm-meter i:nth-child(7){height:72px;animation-delay:.24s}.rhythm-meter i:nth-child(4),.rhythm-meter i:nth-child(8){height:38px;animation-delay:.36s}.festival-heading{font-size:clamp(52px,7vw,94px);line-height:.92;color:var(--purple)}

/* Human photography is supporting material, not a replacement for the poster. */
.human-story{display:grid;grid-template-columns:1.2fr .75fr .85fr;min-height:650px;background:#170222;color:#fff;overflow:hidden}.human-photo{margin:0;position:relative;overflow:hidden;min-height:520px}.human-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(1.08) contrast(1.06);transition:transform 1s cubic-bezier(.18,.72,.2,1),filter .5s}.human-photo:hover img{transform:scale(1.055);filter:saturate(1.2) contrast(1.08)}.human-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(23,2,34,.8));pointer-events:none}.human-photo figcaption{position:absolute;z-index:2;left:20px;bottom:18px;color:#fff;font-size:10px;text-transform:uppercase;letter-spacing:.12em}.human-copy{padding:54px 34px;display:flex;flex-direction:column;justify-content:center;position:relative}.human-copy:before,.human-copy:after{content:"";position:absolute;width:110px;height:8px;background:var(--gold);left:34px;animation:slide-bar 3s ease-in-out infinite}.human-copy:before{top:46px}.human-copy:after{bottom:46px;animation-delay:1.5s}.human-copy h2{font-size:clamp(42px,5vw,70px);line-height:.93}.human-copy p{color:#d8c9df;line-height:1.75}.human-photo.secondary{margin:80px 0 0;min-height:470px}

/* Scroll reveals apply progressively and keep content visible without JS. */
.reveal-on-scroll{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.18,.72,.2,1),transform .8s cubic-bezier(.18,.72,.2,1)}.reveal-on-scroll.is-visible{opacity:1;transform:none}.festival-poster-hero.reveal-on-scroll{transform:none}.festival-poster-hero.reveal-on-scroll.is-visible{opacity:1}
@keyframes poster-arrive{from{opacity:.4;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes beat{0%,100%{transform:scaleY(.5);opacity:.55}50%{transform:scaleY(1);opacity:1}}@keyframes slide-bar{0%,100%{transform:translateX(0);width:74px}50%{transform:translateX(54px);width:126px}}
@media(max-width:850px){.home-return{display:inline}.header-actions{gap:8px}.festival-poster-hero>img{min-height:500px;object-position:62% center}.poster-actions{left:18px;right:18px;bottom:24px}.poster-actions .button{flex:1;padding:0 12px}.rhythm-meter{top:20px;right:20px;bottom:auto;height:48px}.human-story{grid-template-columns:1fr}.human-photo,.human-photo.secondary{min-height:420px;margin:0}.human-copy{padding:70px 28px}.human-photo.secondary{min-height:380px}}
@media(prefers-reduced-motion:reduce){.reveal-on-scroll{opacity:1!important;transform:none!important}}

[data-form-status].error{display:block;color:#9b1c1c;background:#fff1f1;border:1px solid #e4b3b3;padding:10px 12px;border-radius:10px;margin-top:10px}
