/* =====================================================
   HERO v2 — assets/css/hero.css  (kelas berawalan "lx-")
   Gelap & imersif: labu kimia besar yang isinya naik sesuai
   persentase alat kondisi baik, formula melayang, jaring molekul
   yang mengikuti kursor, dan warna aksen berganti per bidang.
   ===================================================== */
.lx-hero{
  --acc:#34d399; --acc-rgb:52,211,153;
  position:relative;isolation:isolate;overflow:hidden;color:#fff;
  margin-top:-88px;padding:118px 0 150px;min-height:clamp(640px,100svh,860px);
  display:flex;align-items:center;
  background:linear-gradient(160deg,#03141d 0%,#052a3c 52%,#07405a 100%);
}
.lx-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:110px;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,transparent,var(--bg))}

/* ---------- latar ---------- */
.lx-bg{position:absolute;inset:0;z-index:-1;overflow:hidden}
.lx-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.08);transition:opacity 1.4s ease,transform 9s ease}
.lx-slide.on{opacity:.32;transform:scale(1)}
.lx-veil{position:absolute;inset:0;background:radial-gradient(ellipse 70% 80% at 78% 40%,rgba(7,64,90,.0),rgba(3,20,29,.55) 75%),linear-gradient(100deg,rgba(3,20,29,.85),rgba(3,20,29,.25) 70%)}
.lx-dots{position:absolute;inset:0;opacity:.5;background-image:radial-gradient(rgba(255,255,255,.22) 1px,transparent 1.4px);background-size:30px 30px;
  -webkit-mask-image:radial-gradient(ellipse 75% 70% at 70% 45%,#000 10%,transparent 75%);mask-image:radial-gradient(ellipse 75% 70% at 70% 45%,#000 10%,transparent 75%)}
#lxCanvas{position:absolute;inset:0;width:100%;height:100%}
html:not(.fx-partikel) #lxCanvas{display:none}
.lx-spot{position:absolute;inset:0;background:radial-gradient(520px circle at var(--mx,70%) var(--my,40%),rgba(var(--acc-rgb),.16),transparent 62%);transition:background .4s}
.lx-orb{position:absolute;border-radius:50%;filter:blur(100px);background:var(--acc);opacity:.26;transition:background 1s}
.lx-orb.a{width:480px;height:480px;right:-80px;top:40px;animation:lxDrift calc(16s*var(--spd,1)) ease-in-out infinite alternate}
.lx-orb.b{width:340px;height:340px;left:-90px;bottom:-40px;opacity:.14;animation:lxDrift calc(20s*var(--spd,1)) ease-in-out -8s infinite alternate}
html:not(.fx-aurora) .lx-orb{display:none}

/* ---------- susunan ---------- */
.lx-in{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);grid-template-areas:"copy stage" "pick stage";gap:22px 40px;align-items:center;width:100%}
.lx-copy{grid-area:copy;min-width:0}
.lx-stage{grid-area:stage}
.lx-pick{grid-area:pick;min-width:0}

.lx-chip{display:inline-flex;align-items:center;gap:9px;padding:7px 15px;border-radius:99px;font-size:13px;font-weight:700;color:#d7eef7;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(8px);margin-bottom:18px;animation:lxUp .7s cubic-bezier(.2,.85,.25,1) both}
.lx-chip i{color:var(--acc);transition:color .6s}

.lx-h1{margin:0 0 16px;font-weight:800;letter-spacing:-.035em;line-height:1.04;font-size:clamp(38px,5vw,62px)}
.lx-line{display:block}
.lx-h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding:0 .03em .14em;margin-bottom:-.14em}
.lx-h1 .w>span{display:inline-block;animation:lxRise .9s cubic-bezier(.2,.85,.25,1) both;animation-delay:calc(.15s + var(--i)*.09s)}
.lx-sch{font-size:.58em;letter-spacing:-.02em;margin-top:.12em;
  background:linear-gradient(90deg,#fff,rgb(var(--acc-rgb)));-webkit-background-clip:text;background-clip:text;color:transparent}
.lx-sch .w>span{-webkit-text-fill-color:transparent}

.lx-sub{max-width:520px;margin:0 0 14px;font-size:clamp(15px,1.35vw,17px);line-height:1.7;color:#bcd9e5;animation:lxUp .8s cubic-bezier(.2,.85,.25,1) .5s both}
.lx-type{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 22px;min-height:1.7em;font-size:clamp(15px,1.3vw,17px);font-weight:700;animation:lxUp .8s cubic-bezier(.2,.85,.25,1) .65s both}
.lx-type-l{color:#8fb9ca;font-weight:600}
.lx-type-t{display:inline-flex;align-items:center;gap:3px;color:#fff}
.lx-caret{display:inline-block;width:2px;height:1.15em;background:var(--acc);border-radius:2px;animation:lxBlink 1s steps(1) infinite}

.lx-btns{display:flex;flex-wrap:wrap;align-items:center;gap:12px;animation:lxUp .8s cubic-bezier(.2,.85,.25,1) .8s both}
.lx-btn{display:inline-flex;align-items:center;gap:9px;font-weight:800;font-size:14.5px;padding:14px 22px;border-radius:14px;cursor:pointer;transition:transform .18s,box-shadow .25s,background .25s}
.lx-btn.pri{background:linear-gradient(120deg,var(--gold),var(--gold2));color:#3a2600;box-shadow:0 14px 30px -10px rgba(255,171,31,.7)}
.lx-btn.sec{background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.28);color:#fff;backdrop-filter:blur(8px)}
.lx-btn.txt{padding-inline:10px;color:#b6d6e3}
.lx-btn:hover{transform:translateY(-2px)}
.lx-btn.sec:hover{background:rgba(255,255,255,.16)}
.lx-btn.txt:hover{color:#fff}
.lx-btn:focus-visible,.lx-tab:focus-visible{outline:3px solid var(--acc);outline-offset:3px}

/* ---------- pilih bidang ---------- */
.lx-pick{display:flex;align-items:center;gap:18px;flex-wrap:wrap;animation:lxUp .8s cubic-bezier(.2,.85,.25,1) .95s both}
.lx-tabs{display:flex;gap:8px}
.lx-tab{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:9px;padding:11px 15px;border-radius:14px;font:inherit;font-size:14px;font-weight:700;cursor:pointer;
  color:#a9cbd9;background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.12);transition:color .25s,border-color .25s,background .25s}
.lx-tab:hover{color:#fff;background:rgba(255,255,255,.12)}
.lx-tab.on{color:#fff;border-color:var(--acc);background:rgba(var(--acc-rgb),.16);box-shadow:0 10px 26px -12px var(--acc)}
.lx-tab.on i{color:var(--acc)}
.lx-tab em{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--acc);transform:scaleX(0);transform-origin:left}
.lx-tab.on em{animation:lxFillBar var(--lx-dur,5.5s) linear forwards}
.lx-hero.paused .lx-tab.on em{animation-play-state:paused}
.lx-hero.static .lx-tab.on em{animation:none;transform:scaleX(1)}
.lx-now{margin:0;display:flex;flex-direction:column;gap:1px;min-width:0;transition:opacity .22s,transform .22s}
.lx-now.swap{opacity:0;transform:translateY(6px)}
.lx-now-t{font-size:15px;color:var(--acc);transition:color .6s}
.lx-now-d{font-size:13.5px;color:#a9cbd9;font-weight:600}

/* ---------- panggung: labu kimia ---------- */
.lx-stage{position:relative;width:100%;max-width:520px;justify-self:center;aspect-ratio:1/1.04;animation:lxZoom 1s cubic-bezier(.2,.85,.25,1) .2s both}
.lx-halo{position:absolute;left:50%;top:52%;width:86%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;
  background:radial-gradient(circle,rgba(var(--acc-rgb),.42),rgba(var(--acc-rgb),.08) 55%,transparent 70%);filter:blur(8px);transition:background .9s;animation:lxPulse calc(5s*var(--spd,1)) ease-in-out infinite}
.lx-layer,.lx-fm,.lx-card{translate:calc(var(--rx,0)*var(--k,0)*-1px) calc(var(--ry,0)*var(--k,0)*-1px)}
[data-d="1"]{--k:12}[data-d="2"]{--k:22}[data-d="3"]{--k:34}
html:not(.fx-parallax) .lx-layer,html:not(.fx-parallax) .lx-fm,html:not(.fx-parallax) .lx-card{translate:none}
.lx-layer{position:absolute;inset:0;display:grid;place-items:center}
.lx-flask{width:80%;height:auto;overflow:visible;filter:drop-shadow(0 30px 40px rgba(0,0,0,.45));animation:lxBob calc(7s*var(--spd,1)) ease-in-out infinite}
.lx-body{fill:url(#lxGl)}
.lx-edge{fill:none;stroke:rgba(255,255,255,.7);stroke-width:3.2;stroke-linejoin:round}
.lx-rim{stroke:#fff;stroke-width:6;stroke-linecap:round;opacity:.9}
.lx-shine{fill:none;stroke:#fff;stroke-width:5;stroke-linecap:round;opacity:.55}
.lx-tick{fill:none;stroke:rgba(255,255,255,.5);stroke-width:2.4;stroke-linecap:round}
.s1{stop-color:var(--acc)}.s2{stop-color:color-mix(in srgb,var(--acc) 45%,#02131b)}
.lx-liqg{transform:translateY(calc(var(--y) - 150px));animation:lxFillUp 2.4s cubic-bezier(.2,.8,.2,1) .5s both}
.lx-w1{fill:url(#lxLiq);animation:lxSlide 5s linear infinite}
.lx-w2{fill:rgb(var(--acc-rgb));opacity:.45;animation:lxSlide2 7.5s linear infinite}
.lx-bubs circle{fill:rgba(255,255,255,.75);opacity:0;animation:lxBub 4.2s ease-in infinite}
.lx-bubs circle:nth-child(2){animation-delay:.7s}.lx-bubs circle:nth-child(3){animation-delay:1.5s}
.lx-bubs circle:nth-child(4){animation-delay:2.1s}.lx-bubs circle:nth-child(5){animation-delay:2.8s}.lx-bubs circle:nth-child(6){animation-delay:3.4s}

/* formula melayang */
.lx-fm{position:absolute;padding:6px 12px;border-radius:99px;font-size:13px;font-weight:800;letter-spacing:.02em;color:#d5eef8;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(6px);animation:lxFloat calc(6s*var(--spd,1)) ease-in-out infinite}
.lx-fm.f1{left:8%;top:30%}.lx-fm.f2{right:6%;top:10%;animation-delay:-1.5s}.lx-fm.f3{left:2%;bottom:24%;animation-delay:-3s}
.lx-fm.f4{right:2%;bottom:34%;animation-delay:-4.2s}.lx-fm.f5{left:26%;top:6%;animation-delay:-2.2s}.lx-fm.f6{right:20%;bottom:6%;animation-delay:-5s}

/* kartu data (angka asli dari database) */
.lx-card{position:absolute;display:flex;align-items:center;gap:12px;padding:12px 16px 12px 12px;border-radius:18px;white-space:nowrap;
  background:rgba(8,38,54,.62);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(14px);box-shadow:0 22px 44px -18px rgba(0,0,0,.65)}
.lx-card b{display:block;font-size:14px;font-weight:800;line-height:1.25}
.lx-card small{font-size:12px;font-weight:600;color:#9fc3d3}
.lx-card-ic{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-size:18px;background:linear-gradient(135deg,var(--gold),var(--gold2));color:#3a2600}
.lx-qr{left:-6%;top:44%;animation:lxFloat calc(6.5s*var(--spd,1)) ease-in-out -1s infinite}
.lx-health{right:-4%;top:62%;animation:lxFloat calc(7.5s*var(--spd,1)) ease-in-out -3s infinite}
html:not(.fx-panel) .lx-card,html:not(.fx-panel) .lx-fm{display:none}
.lx-ring{position:relative;width:46px;height:46px;flex:0 0 46px}
.lx-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.lx-ring circle{fill:none;stroke-width:4.5}
.lx-ring .rb{stroke:rgba(255,255,255,.18)}
.lx-ring .rf{stroke:var(--acc);stroke-linecap:round;stroke-dasharray:113;stroke-dashoffset:calc(113 - 113*var(--p)/100);animation:lxRing 1.8s cubic-bezier(.2,.85,.25,1) 1.2s both;transition:stroke .6s}
.lx-ring b{position:absolute;inset:0;display:grid;place-items:center;font-size:11px}

/* pita pengumuman di dasar hero */
.lx-news{position:absolute;left:0;right:0;bottom:86px;z-index:2}
.lx-news-in{display:flex;align-items:center;gap:12px;height:44px;padding:0 8px!important;border-radius:16px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(12px)}
.lx-news .pb-wrap{max-width:1200px}
.lx-news-tag{flex-shrink:0;display:inline-flex;gap:6px;align-items:center;background:linear-gradient(120deg,var(--gold),var(--gold2));color:#3a2600;font-weight:800;font-size:11.5px;padding:5px 12px;border-radius:20px}
.lx-news-track{flex:1;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.lx-news-move{display:inline-flex;gap:46px;white-space:nowrap;font-size:13px;font-weight:600;color:#d7eef7;animation:lxTick 46s linear infinite}
.lx-news-track:hover .lx-news-move{animation-play-state:paused}
.nw i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:9px;vertical-align:middle;background:#7fdbff}
.nw-penting i{background:var(--gold)}.nw-darurat i{background:#ff6b81}

.lx-hero + .pb-stats{margin-top:-64px}

@keyframes lxRise{from{transform:translateY(112%) rotate(4deg);opacity:0}}
@keyframes lxUp{from{opacity:0;transform:translateY(22px)}}
@keyframes lxZoom{from{opacity:0;transform:scale(.9) translateY(24px)}}
@keyframes lxBlink{50%{opacity:0}}
@keyframes lxFillBar{to{transform:scaleX(1)}}
@keyframes lxFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes lxBob{0%,100%{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-8px) rotate(.6deg)}}
@keyframes lxPulse{0%,100%{opacity:.85;scale:1}50%{opacity:1;scale:1.07}}
@keyframes lxDrift{from{transform:translate(0,0)}to{transform:translate(-60px,70px)}}
@keyframes lxFillUp{from{transform:translateY(270px)}}
@keyframes lxSlide{to{transform:translateX(180px)}}
@keyframes lxSlide2{from{transform:translateX(180px)}}
@keyframes lxBub{0%{opacity:0;transform:translateY(0)}15%{opacity:.9}100%{opacity:0;transform:translateY(calc(var(--rise) * -1))}}
@keyframes lxRing{from{stroke-dashoffset:113}}
@keyframes lxTick{to{transform:translateX(-50%)}}
html[data-anim="off"] .lx-w1,html[data-anim="off"] .lx-w2,html[data-anim="off"] .lx-bubs circle,html[data-anim="off"] .lx-news-move{animation:none}

/* ---------- Responsif ---------- */
@media(max-width:1020px){
  .lx-in{gap:20px 24px}
  .lx-qr{left:-3%}.lx-health{right:-2%}
}
@media(max-width:860px){
  .lx-hero{padding:108px 0 140px;min-height:0;display:block}
  .lx-in{grid-template-columns:1fr;grid-template-areas:"copy" "stage" "pick";gap:22px}
  .lx-stage{max-width:380px;aspect-ratio:1/.95}
  .lx-fm.f5,.lx-fm.f6{display:none}
  .lx-pick{flex-direction:column;align-items:flex-start;gap:12px}
  .lx-tabs{overflow-x:auto;max-width:100%;scrollbar-width:none}
  .lx-tabs::-webkit-scrollbar{display:none}
  .lx-tab{flex:0 0 auto}
  .lx-news{bottom:78px}
  .lx-hero + .pb-stats{margin-top:-60px}
}
@media(max-width:480px){
  .lx-h1{font-size:clamp(34px,10.5vw,42px)}
  .lx-btns .lx-btn.pri,.lx-btns .lx-btn.sec{flex:1 1 100%;justify-content:center}
  .lx-stage{max-width:320px}
  .lx-qr{left:0;top:auto;bottom:2%}.lx-health{display:none}
  .lx-news-tag{display:none}
}
