:root{
  --bg:#0c1520;--panel:#0f1b2a;--panel-2:#102232;--txt:#dfe9f6;--muted:#96a7bf;
  --brand:#5ef3ff;--brand2:#4de1b7;--chip:#192a3d;--chip-bd:#2a3f57;
  --glow:0 0 30px rgba(94,243,255,.35),0 0 60px rgba(77,225,183,.2)
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--txt);font:500 16px/1.6 Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial}
a{color:inherit;text-decoration:none}
#bg{position:fixed;inset:0;z-index:-1}
.hero{position:relative;padding:64px 20px 0}
.hero-inner{display:flex;gap:28px;align-items:center;justify-content:space-between;max-width:1100px;margin:0 auto;flex-wrap:wrap;background:linear-gradient(180deg,rgba(16,34,50,.6),rgba(16,34,50,.2));border:1px solid rgba(94,243,255,.1);border-radius:18px;padding:32px 28px;box-shadow:var(--glow)}
.badge{display:inline-block;padding:6px 10px;border:1px solid var(--chip-bd);border-radius:999px;background:var(--chip);color:var(--brand2);font-weight:700;letter-spacing:.08em}
h1{font-size:40px;margin:10px 0 6px;text-shadow:0 0 18px rgba(94,243,255,.25)}
.subtitle{color:var(--muted);margin:0 0 12px}
.social-row{display:flex;gap:10px;flex-wrap:wrap}
.chip{padding:8px 12px;border-radius:999px;border:1px solid var(--chip-bd);background:var(--chip);color:var(--txt);opacity:.9;transition:.2s}
.chip:hover{transform:translateY(-1px);box-shadow:var(--glow)}
.avatar-card{position:relative;width:140px;height:140px;border-radius:22px;overflow:hidden}
.avatar-card .glow{position:absolute;inset:-30px;background:radial-gradient(120px 120px at 70% 30%,rgba(94,243,255,.35),transparent 60%);filter:blur(8px)}
.avatar-card img{position:relative;width:100%;height:100%;object-fit:cover;border-radius:16px;border:1px solid rgba(255,255,255,.08)}
.ticker-wrap{margin:18px auto 0;max-width:1100px;border-radius:12px;overflow:hidden;border:1px solid rgba(94,243,255,.12);background:linear-gradient(180deg,var(--panel),var(--panel-2))}
.ticker{white-space:nowrap;display:inline-block;padding:10px 0;animation:marq 28s linear infinite}
@keyframes marq{0%{transform:translateX(100%)}100%{transform:translateX(-100%)}}
.grid{max-width:1100px;margin:28px auto;padding:0 20px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.card{background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:18px;min-height:140px;transition:.2s;box-shadow:0 10px 30px rgba(0,0,0,.15)}
.card:hover{transform:translateY(-2px);box-shadow:0 16px 42px rgba(0,0,0,.22)}
.list{margin:8px 0 0 18px;padding:0}.list li{margin:.25rem 0}
.btn{display:inline-block;margin-top:10px;padding:10px 14px;border-radius:10px;background:linear-gradient(90deg,var(--brand),var(--brand2));color:#0b1420;font-weight:800}
.footer{max-width:1100px;margin:30px auto 40px;padding:0 20px;color:var(--muted)}
.hero.secondary{display:none!important}

/* === Mobile BG visibility & neon accents (override) === */
html{background:var(--bg)}                 /* fallback gelap kalau canvas gagal */
body{background:transparent}               /* biar canvas kelihatan */
#bg{z-index:0}                             /* dulu -1, bikin ketutup di HP */
.hero,.grid,.footer{position:relative;z-index:1}

/* Judul neon gradien */
h1{
  background:linear-gradient(90deg,#5ef3ff,#4de1b7);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;
  text-shadow:0 0 18px rgba(94,243,255,.25);
}

/* Ticker biar kontras & rapi di HP */
.ticker-wrap{border:1px solid rgba(94,243,255,.18)}
.ticker{padding:12px 0;font-weight:600}

/* Chips sosial sedikit lebih kontras */
.chip{color:#e8f4ff;border-color:#2e516d}
.chip:hover{box-shadow:0 0 24px rgba(94,243,255,.35),0 0 40px rgba(77,225,183,.22)}

/* === MARQUEE TICKER === */
.ticker-bar{
  margin: 10px 0 18px;
  overflow: hidden;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.06);
  background: linear-gradient(180deg, rgba(10,18,25,.85), rgba(7,14,20,.85));
  box-shadow: 0 10px 30px rgba(0,0,0,.25) inset, 0 4px 12px rgba(0,0,0,.25);
}
.ticker-track{
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  /* kunci mulus */
  will-change: transform;
  animation: ticker-scroll 38s linear infinite;
  padding: 10px 0;
}
@keyframes ticker-scroll{
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); } /* karena konten kita duplikat 2x */
}
.ticker-item{
  display: inline-flex;
  gap: 8px;
  align-items: baseline;
  padding: 0 18px;
  margin-right: 6px;
  border-right: 1px solid rgba(255,255,255,.06);
  opacity: .95;
}
.ticker-item:last-child{ border-right: none; }
.ticker-label{
  font-weight: 700;
  letter-spacing: .3px;
  color: #CFE9FF;
}
.ticker-price{
  font-variant-numeric: tabular-nums;
  color: #E9F5FF;
}
.ticker-change{
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}
.ticker-change.up{   color: #37d67a; }   /* hijau */
.ticker-change.down{ color: #ff5c5c; }   /* merah */
.ticker-updated{
  opacity:.55; margin-left:14px; font-size:.85rem;
}

/* === MARQUEE TICKER === */
.ticker-bar{
  margin: 10px 0 18px;
  overflow: hidden;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.06);
  background: linear-gradient(180deg, rgba(10,18,25,.85), rgba(7,14,20,.85));
  box-shadow: 0 10px 30px rgba(0,0,0,.25) inset, 0 4px 12px rgba(0,0,0,.25);
}
.ticker-track{
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  will-change: transform;
  animation: ticker-scroll 38s linear infinite;
  padding: 10px 0;
}
@keyframes ticker-scroll{
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.ticker-item{
  display: inline-flex;
  gap: 8px;
  align-items: baseline;
  padding: 0 18px;
  margin-right: 6px;
  border-right: 1px solid rgba(255,255,255,.06);
  opacity: .95;
}
.ticker-item:last-child{ border-right: none; }
.ticker-label{
  font-weight: 700;
  letter-spacing: .3px;
  color: #CFE9FF;
}
.ticker-price{
  font-variant-numeric: tabular-nums;
  color: #E9F5FF;
}
.ticker-change{
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}
.ticker-change.up{   color: #37d67a; }
.ticker-change.down{ color: #ff5c5c; }
.ticker-updated{
  opacity:.55; margin-left:14px; font-size:.85rem;
}

/* ===== RAINBOW THEME (lightweight) ===== */
:root{--rainbow1:#00e5ff;--rainbow2:#00ff95;--rainbow3:#ffe600;--rainbow4:#ff7a00;--rainbow5:#ff3d7f}
.rainbow-text{background:linear-gradient(90deg,var(--rainbow1),var(--rainbow2),var(--rainbow3),var(--rainbow4),var(--rainbow5));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 6px rgba(0,255,200,.25))}
.card.rainbow{border:1px solid rgba(255,255,255,.06);box-shadow:0 0 0 1px rgba(255,255,255,.02) inset,0 0 20px rgba(0,200,255,.08)}
.grid .card:nth-child(1){--glow:#00e5ff}.grid .card:nth-child(2){--glow:#00ff95}.grid .card:nth-child(3){--glow:#ffe600}.grid .card:nth-child(4){--glow:#ff7a00}.grid .card:nth-child(5){--glow:#ff3d7f}
.grid .card{box-shadow:0 0 0 1px rgba(255,255,255,.03) inset,0 0 18px color-mix(in srgb,var(--glow) 35%,transparent);border-radius:14px}
.pill{background:color-mix(in srgb,var(--glow) 12%,rgba(255,255,255,.06));border:1px solid color-mix(in srgb,var(--glow) 30%,transparent)}
.ticker-bar.rainbow{background:rgba(10,18,25,.85);border:1px solid rgba(255,255,255,.06)}

/* === Rainbow Gradient Glow Text === */
.rainbow-glow {
  background: linear-gradient(90deg,#ff4d4d,#ff9f0a,#f7d51d,#3ddc84,#0abde3,#845ef7,#ff4d4d);
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-weight: 900;
  animation: rainbow-shift 6s linear infinite;
  text-shadow: 0 0 8px rgba(255,255,255,0.5),
               0 0 15px rgba(255,255,255,0.3);
}
@keyframes rainbow-shift {
  0%   { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}

/* --- Icon-only buttons --- */
.btn-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.375rem;
  width:42px;height:42px;
  border-radius:9999px;
  border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.06);
  backdrop-filter: blur(6px);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
}
.btn-icon i{ font-size:16px; }
.btn-icon:hover{
  transform:translateY(-1px);
  border-color:rgba(255,255,255,.35);
  background:rgba(255,255,255,.12);
  box-shadow:0 0 0 6px rgba(255,255,255,.05), 0 8px 24px rgba(0,0,0,.35);
}
.btn-icon:active{ transform:translateY(0); }
/* screen-reader text */
.sr-only{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* section header icons */
.card h3{
  display:flex;
  align-items:center;
  gap:.5rem;              /* jarak ikon-teks */
  line-height:1.15;
}
.card h3 i{
  font-size:0.95em;       /* ikut tinggi teks */
  opacity:.95;
  translate: 0 1px;       /* turun 1px biar center */
  filter: drop-shadow(0 0 6px rgba(255,255,255,.18));
}

/* header icons */
.card h3 {
  display: flex;
  align-items: center;
  gap: .5rem;
}
.card h3 i {
  font-size: 1rem;
  opacity: .9;
  filter: drop-shadow(0 0 6px rgba(255,255,255,.18));
}

/* header svg icons */
.card h3{
  display:flex; align-items:center; gap:.5rem;
}
.card h3 .hdr-icn{
  display:inline-flex; width:18px; height:18px; opacity:.9;
  filter: drop-shadow(0 0 6px rgba(255,255,255,.15));
}
.card h3 .hdr-icn svg{
  width:18px; height:18px; display:block; fill:currentColor;
}

/* header svg icons */
.card h3{display:flex;align-items:center;gap:.5rem}
.card h3 .hdr-icn{display:inline-flex;width:18px;height:18px;opacity:.95;filter:drop-shadow(0 0 6px rgba(255,255,255,.15))}
.card h3 .hdr-icn svg{width:18px;height:18px;display:block;fill:currentColor}
/* === Header Icons Rainbow Style === */
.hdr-icn {
  display: inline-flex;
  align-items: center;
  margin-right: .35rem;
}
.hdr-icn svg {
  width: 1.25em;
  height: 1.25em;
  animation: rainbow-shift 6s linear infinite;
  filter: drop-shadow(0 0 6px rgba(255,255,255,.7));
}

/* Animasi warna ikon header */
@keyframes rainbow-shift {
  0%   { fill: #ff0080; filter: drop-shadow(0 0 6px #ff0080); }
  25%  { fill: #7928ca; filter: drop-shadow(0 0 6px #7928ca); }
  50%  { fill: #00bfff; filter: drop-shadow(0 0 6px #00bfff); }
  75%  { fill: #00ff6a; filter: drop-shadow(0 0 6px #00ff6a); }
  100% { fill: #ff0080; filter: drop-shadow(0 0 6px #ff0080); }
}

