/* Galilee 2027 festival section (events page). Magic UI-style effects in plain CSS/JS:
   neon flicker letters, underwater caustics, stage beams, string lights, rising bubbles,
   aurora text, shiny badge, border beam, shimmer button, number ticker, marquee, blur fade. */
.gf{--gf-bg:#050a1c;--gf-ink:#EEF4FF;--gf-sea:#7FD3E3;--gf-violet:#A77BFF;--gf-pink:#FF5FD2;--gf-blue:#4C7DFF;--gf-gold:#F2C14E;
  position:relative;overflow:hidden;isolation:isolate;color:var(--gf-ink);text-align:center;
  background:radial-gradient(120% 80% at 50% 0%,#141a4a 0%,#0a1230 38%,var(--gf-bg) 75%)}
.gf *{box-sizing:border-box}

/* Water + light layers */
.gf-water{position:absolute;inset:0;width:100%;height:100%;z-index:-4;opacity:.75;pointer-events:none}
.gf::before{content:"";position:absolute;inset:0;z-index:-3;pointer-events:none;
  background:radial-gradient(60% 45% at 50% 30%,rgba(167,123,255,.22),transparent 70%),linear-gradient(180deg,rgba(5,10,28,.15),rgba(5,10,28,.55) 70%,rgba(5,10,28,.85))}
.gf-beam{position:absolute;top:-10%;width:42vw;max-width:620px;height:120%;z-index:-2;pointer-events:none;mix-blend-mode:screen;filter:blur(6px);
  background:conic-gradient(from 180deg at 50% 0%,transparent 0 168deg,rgba(167,123,255,.28) 176deg,rgba(127,211,227,.22) 180deg,rgba(255,95,210,.2) 184deg,transparent 192deg);
  transform-origin:50% 0;animation:gf-sweep 9s ease-in-out infinite alternate}
.gf-beam.l{left:2%;--from:-18deg;--to:22deg}
.gf-beam.r{right:2%;--from:18deg;--to:-22deg;animation-delay:-4.5s}
@keyframes gf-sweep{from{transform:rotate(var(--from))}to{transform:rotate(var(--to))}}

/* String lights */
.gf-lights{position:absolute;left:0;right:0;top:0;height:90px;z-index:-1;pointer-events:none}
.gf-lights svg{width:100%;height:100%;overflow:visible}
.gf-lights path{fill:none;stroke:rgba(238,244,255,.18);stroke-width:1.2}
.gf-lights circle{fill:#FFE6A6;filter:drop-shadow(0 0 6px rgba(255,214,128,.95));animation:gf-twinkle 2.8s ease-in-out infinite}
@keyframes gf-twinkle{0%,100%{opacity:1}50%{opacity:.35}}

/* Rising bubbles */
.gf-bubbles{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.gf-bubbles i{position:absolute;bottom:-20px;border-radius:50%;border:1px solid rgba(160,225,240,.45);background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.5),rgba(127,211,227,.08) 60%);animation:gf-rise linear infinite}
@keyframes gf-rise{0%{transform:translate(0,0);opacity:0}10%{opacity:.9}100%{transform:translate(var(--dx,20px),-110vh);opacity:0}}

/* Waves */
.gf-waves{position:absolute;left:0;right:0;bottom:58px;height:110px;z-index:-1;pointer-events:none;overflow:hidden}
.gf-wave{position:absolute;bottom:0;left:0;width:200%;height:100%;animation:gf-wave 26s linear infinite}
.gf-wave.w1{fill:rgba(127,140,255,.14);animation-duration:34s}
.gf-wave.w2{fill:rgba(80,170,215,.18);animation-duration:22s;animation-direction:reverse;height:82%}
.gf-wave.w3{fill:rgba(7,16,40,.92);animation-duration:17s;height:58%}
@keyframes gf-wave{to{transform:translateX(-50%)}}

.gf .wrap{position:relative;display:grid;justify-items:center;gap:clamp(16px,2.4vw,24px);padding-block:clamp(88px,10vw,128px) clamp(120px,12vw,160px)}

/* Shiny badge */
.gf-badge{display:inline-flex;gap:8px;align-items:center;border:1px solid rgba(167,123,255,.4);border-radius:999px;padding:9px 16px;font:700 .74rem/1 var(--f-body);letter-spacing:.18em;text-transform:uppercase;color:transparent;
  background:linear-gradient(110deg,#c9b8ff 35%,#fff 50%,#c9b8ff 65%) 0 0/250% 100% text,rgba(167,123,255,.1);-webkit-background-clip:text,padding-box;background-clip:text,padding-box;animation:gf-shine 3.5s linear infinite}
.gf-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gf-gold);box-shadow:0 0 10px var(--gf-gold);animation:gf-twinkle 1.6s ease-in-out infinite}
@keyframes gf-shine{to{background-position:-250% 0,0 0}}

/* Neon GALILEE letters (flicker) */
.gf-neon{margin:0;display:flex;justify-content:center;gap:clamp(2px,.6vw,10px);font:600 clamp(3.4rem,13vw,10.5rem)/.9 "Josefin Sans",var(--f-body);letter-spacing:.02em;text-transform:uppercase;user-select:none}
.gf-neon span{display:inline-block;color:#fff;
  background:linear-gradient(180deg,#fff 0%,var(--c1) 45%,var(--c2) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 0 6px var(--c1)) drop-shadow(0 0 22px var(--c2));animation:gf-flicker 5s linear infinite;animation-delay:var(--d,0s)}
.gf-neon span:nth-child(1){--c1:#c58bff;--c2:#7b4dff}
.gf-neon span:nth-child(2){--c1:#ff8be6;--c2:#ff4fc8}
.gf-neon span:nth-child(3){--c1:#9fb6ff;--c2:#4c7dff}
.gf-neon span:nth-child(4){--c1:#b49bff;--c2:#6c5cff}
.gf-neon span:nth-child(5){--c1:#8fe3ff;--c2:#3fa8ff}
.gf-neon span:nth-child(6){--c1:#d79bff;--c2:#9b4dff}
.gf-neon span:nth-child(7){--c1:#ff9bd9;--c2:#e04fff}
@keyframes gf-flicker{0%,18%,22%,62%,64%,100%{opacity:1}19%,21%,63%{opacity:.25;filter:none}}
.gf-neon span.pulse{animation:gf-flicker 5s linear infinite,gf-pop .6s ease}
@keyframes gf-pop{40%{transform:translateY(-6px) scale(1.06)}}

/* Title */
.gf h2{margin:0;font:400 clamp(2rem,4.6vw,3.6rem)/1.05 var(--f-display);color:#fff;letter-spacing:-.01em}
.gf-aurora{font-style:italic;background:linear-gradient(90deg,#7FD3E3,#A77BFF,#FF8BE6,#5BE0C4,#7FD3E3);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:gf-aurora 8s ease-in-out infinite alternate}
@keyframes gf-aurora{to{background-position:100% 0}}
.gf-lede{margin:0;max-width:58ch;color:#C7D3F0;font-size:1.06rem;line-height:1.6}

/* Facts */
.gf-facts{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.gf-facts li{display:grid;gap:3px;min-width:132px;padding:11px 16px;border-radius:14px;border:1px solid rgba(167,123,255,.25);background:rgba(255,255,255,.05);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.gf-facts b{font:800 .64rem/1.2 var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:var(--gf-sea)}
.gf-facts span{font-weight:700;color:#fff}
.gf-facts li.gold{border-color:rgba(242,193,78,.55);background:rgba(242,193,78,.1)}
.gf-facts li.gold b{color:var(--gf-gold)}
.gf-facts li.gold span{font:600 1.5rem/1 var(--f-display);font-variant-numeric:tabular-nums}

/* Gallery: centered, scaled, festival tilt */
.gf-gallery{width:min(100%,1120px);display:grid;grid-template-columns:1fr 2.1fr 1fr;align-items:center;gap:clamp(10px,2vw,22px);margin-top:clamp(8px,1.5vw,16px)}
.gf-gallery .tile{position:relative;display:block;padding:0;border:0;cursor:zoom-in;overflow:hidden;border-radius:18px;aspect-ratio:4/5;background:#0a1230;
  box-shadow:0 30px 60px -30px rgba(0,0,0,.9),0 0 0 1px rgba(167,123,255,.25);transition:transform .45s ease,box-shadow .45s ease}
.gf-gallery .tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.gf-gallery .tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(5,10,28,.85))}
.gf-gallery .side.a{transform:rotate(-4deg) translateY(14px)}
.gf-gallery .side.b{transform:rotate(4deg) translateY(14px)}
.gf-gallery .main{aspect-ratio:16/10;z-index:1;box-shadow:0 40px 80px -30px rgba(0,0,0,.95),0 0 60px -10px rgba(167,123,255,.55)}
.gf-gallery .main img{object-position:50% 50%}
.gf-gallery .tile:hover{transform:translateY(-6px) rotate(0)}
.gf-gallery .tile:hover img{transform:scale(1.06)}
.gf-gallery .main::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;z-index:3;pointer-events:none;
  background:conic-gradient(from var(--gf-a,0deg),transparent 0 70%,var(--gf-pink) 80%,var(--gf-sea) 88%,var(--gf-gold) 94%,transparent 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:gf-beamring 5s linear infinite}
@property --gf-a{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes gf-beamring{to{--gf-a:360deg}}
.gf-gallery .cap{position:absolute;left:14px;right:14px;bottom:12px;z-index:2;display:flex;justify-content:space-between;align-items:center;font:800 .95rem/1 var(--f-body);color:#fff;text-align:left}
.gf-gallery .cap span{color:var(--gf-gold)}
.gf-hint{margin:0;font-size:.86rem;color:#8EA0C8}

/* Buttons */
.gf-ctas{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:6px}
.gf-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:.6em;padding:1.15em 1.7em;border-radius:999px;background:var(--gf-gold);color:#1b1300;text-decoration:none;font:800 .86rem/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;
  box-shadow:0 0 0 1px rgba(255,255,255,.2) inset,0 14px 34px -12px rgba(242,193,78,.85);transition:transform .2s;animation:gf-glow 2.6s ease-out infinite}
.gf-btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.65) 50%,transparent 70%);transform:translateX(-120%);animation:gf-shimmer 2.8s ease-in-out infinite}
@keyframes gf-shimmer{60%,100%{transform:translateX(120%)}}
@keyframes gf-glow{0%{box-shadow:0 0 0 0 rgba(242,193,78,.55),0 14px 34px -12px rgba(242,193,78,.85)}80%,100%{box-shadow:0 0 0 16px rgba(242,193,78,0),0 14px 34px -12px rgba(242,193,78,.85)}}
.gf-btn:hover{transform:translateY(-2px)}
.gf-ghost{display:inline-flex;align-items:center;gap:.5em;padding:1.15em 1.6em;border-radius:999px;border:1px solid rgba(238,244,255,.5);color:#fff;text-decoration:none;font:800 .82rem/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;transition:background .2s,border-color .2s}
.gf-ghost:hover{background:rgba(255,255,255,.08);border-color:#fff}

/* Marquee */
.gf-marquee{position:absolute;left:0;right:0;bottom:0;background:rgba(7,16,40,.92);border-top:1px solid rgba(167,123,255,.2);overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.gf-track{display:flex;gap:42px;width:max-content;padding:18px 0;animation:gf-marquee 30s linear infinite;font:600 1.15rem/1 var(--f-display);color:#9FB0D8;white-space:nowrap}
.gf-track i{color:var(--gf-gold);font-style:normal}
@keyframes gf-marquee{to{transform:translateX(-50%)}}

/* Blur fade */
.gf [data-blur]{opacity:0;filter:blur(8px);transform:translateY(14px);transition:opacity .75s ease,filter .75s ease,transform .75s ease}
.gf [data-blur].in{opacity:1;filter:none}
.gf [data-blur].in:not(.gf-gallery){transform:none}
.gf .gf-gallery[data-blur].in{transform:none}

@media (max-width:760px){
  .gf-gallery{grid-template-columns:1fr 1fr;gap:12px}
  .gf-gallery .main{grid-column:1/-1;order:-1;aspect-ratio:16/10}
  .gf-gallery .side{aspect-ratio:1/1}
  .gf-gallery .side.a{transform:rotate(-2deg)}
  .gf-gallery .side.b{transform:rotate(2deg)}
  .gf-beam{width:70vw}
  .gf-facts li{min-width:0;flex:1 1 40%}
  .gf-ctas a{width:100%;justify-content:center}
  .gf-waves{height:80px}
  .gf-badge{font-size:.62rem;letter-spacing:.1em;padding:8px 12px;white-space:nowrap}
  .gf-facts li.gold b{letter-spacing:.1em}
}
@media (prefers-reduced-motion:reduce){
  .gf-beam,.gf-lights circle,.gf-bubbles,.gf-wave,.gf-badge,.gf-badge::before,.gf-neon span,.gf-aurora,.gf-gallery .main::before,.gf-btn,.gf-btn::after,.gf-track{animation:none}
  .gf-bubbles{display:none}
  .gf [data-blur]{opacity:1;filter:none;transform:none;transition:none}
}
