:root{--bg:#0f1115;--bg2:#161a22;--card:#1b2029;--card2:#202734;--gold:#f5a623;--gold2:#ffbc4d;--orange:#e8871e;--blue:#3fa7e8;--text:#e8eaf0;--muted:#9aa3b5;--line:#2a3140;--ok:#3ecf8e;--radius:12px}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.7;font-size:17px;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:var(--gold2);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{line-height:1.25;font-weight:800;letter-spacing:-.01em}
h1{font-size:clamp(1.7rem,4vw,2.6rem)}
h2{font-size:clamp(1.3rem,2.6vw,1.6rem);margin:2.2em 0 .6em;color:#fff}
h3{font-size:1.12rem;margin:1.6em 0 .4em;color:#fff}
p{margin:0 0 1em}
ul,ol{margin:0 0 1.2em 1.3em}
li{margin:.35em 0}
strong{color:#fff}
.wrap{max-width:1080px;margin:0 auto;padding:0 22px}
.prose{max-width:800px;margin:0 auto}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(15,17,21,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hd{display:flex;align-items:center;gap:20px;height:64px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.25rem;color:#fff;text-decoration:none}
.brand:hover{text-decoration:none}
.brand img{width:40px;height:40px;border-radius:8px}
.brand b{color:var(--gold)}
.main-nav{display:flex;gap:4px;margin-left:auto;align-items:center}
.main-nav>details{position:relative}
.main-nav summary{list-style:none;cursor:pointer;padding:10px 12px;color:var(--text);border-radius:8px;font-size:.95rem;white-space:nowrap}
.main-nav summary::-webkit-details-marker{display:none}
.main-nav summary:hover{background:var(--card);text-decoration:none}
.main-nav a{padding:10px 12px;color:var(--text);border-radius:8px;font-size:.95rem;white-space:nowrap}
.main-nav a:hover{background:var(--card);text-decoration:none;color:var(--gold2)}
.dd-menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--card);border:1px solid var(--line);border-radius:10px;min-width:190px;padding:6px;box-shadow:0 12px 30px rgba(0,0,0,.45)}
.dd-menu a{display:block;padding:10px 14px}
.hd-cta{margin-left:6px}
.nav-toggle{display:none}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;border-radius:10px;padding:14px 26px;font-size:1rem;letter-spacing:.02em;min-height:44px;border:2px solid transparent;cursor:pointer;text-decoration:none}
.btn:hover{text-decoration:none;transform:translateY(-1px)}
.btn-gold{background:linear-gradient(135deg,var(--gold2),var(--orange));color:#1a1206;box-shadow:0 4px 18px rgba(245,166,35,.35)}
.btn-gold:hover{box-shadow:0 6px 24px rgba(245,166,35,.5)}
.btn-ghost{border-color:var(--line);color:var(--text);background:transparent}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold2)}
.btn-sm{padding:10px 18px;font-size:.92rem}
.btn-lg{padding:17px 34px;font-size:1.08rem;width:100%;max-width:420px}

/* ---------- hero ---------- */
.hero{position:relative;text-align:center;padding:72px 22px 64px;overflow:hidden;
 background:radial-gradient(ellipse 80% 60% at 50% -10%,rgba(245,166,35,.13),transparent 60%),
 radial-gradient(ellipse 50% 40% at 85% 20%,rgba(63,167,232,.08),transparent 60%),var(--bg)}
.hero-logo{width:180px;height:180px;margin:0 auto 26px;display:block;filter:drop-shadow(0 12px 34px rgba(245,166,35,.28));animation:float 5s ease-in-out infinite}
.hero h1{max-width:820px;margin:0 auto 18px}
.hero h1 em{font-style:normal;color:var(--gold)}
.tagline{max-width:680px;margin:0 auto 32px;color:var(--muted);font-size:1.1rem}
.hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.sparkles{position:absolute;inset:0;pointer-events:none}
.sparkles span{position:absolute;width:8px;height:8px;background:var(--gold);border-radius:2px;opacity:0;animation:sparkle 4s linear infinite}
.sparkles span::before{content:"";position:absolute;inset:-4px;background:var(--gold);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);filter:blur(.5px)}
.sparkles span:nth-child(1){left:12%;top:24%;animation-delay:0s}
.sparkles span:nth-child(2){left:24%;top:62%;animation-delay:1.2s;width:6px;height:6px}
.sparkles span:nth-child(3){left:47%;top:14%;animation-delay:2.1s;width:5px;height:5px}
.sparkles span:nth-child(4){left:70%;top:30%;animation-delay:.7s;width:7px;height:7px}
.sparkles span:nth-child(5){left:84%;top:58%;animation-delay:2.8s;width:6px;height:6px}
.sparkles span:nth-child(6){left:58%;top:72%;animation-delay:1.8s;width:5px;height:5px}
@keyframes sparkle{0%,100%{opacity:0;transform:scale(.4) rotate(0)}50%{opacity:.9;transform:scale(1) rotate(90deg)}}
@media (prefers-reduced-motion:reduce){.sparkles,.hero-logo{animation:none}}

/* ---------- sections/cards ---------- */
.section{padding:34px 0}
.section>h2,.section>header h2{margin-top:0}
.score-card{display:flex;gap:26px;background:linear-gradient(160deg,var(--card2),var(--card));border:1px solid var(--line);border-radius:var(--radius);padding:28px;margin-top:14px}
.score-num{font-size:3.2rem;font-weight:900;color:var(--gold);line-height:1;min-width:150px}
.score-num span{font-size:1.3rem;color:var(--muted);font-weight:700}
.score-body p{color:var(--text)}
.score-points{list-style:none;margin:10px 0 18px}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;color:var(--text);transition:transform .15s,border-color .15s}
.card:hover{transform:translateY(-3px);border-color:var(--gold);text-decoration:none}
.card-emoji{font-size:2rem;margin-bottom:10px}
.card h3{margin:.2em 0 .4em;font-size:1.08rem}
.card p{color:var(--muted);font-size:.95rem;flex:1}
.card-more{color:var(--gold2);font-weight:700;font-size:.92rem}
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px}
.cat{display:flex;flex-direction:column;gap:2px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;color:var(--text)}
.cat:hover{border-color:var(--gold);text-decoration:none}
.cat span{font-size:1.5rem}
.cat small{color:var(--muted)}
.prose .cat-grid{margin:1.4em 0 1.8em}
.cat-grid a{font-size:.98rem}

/* ---------- article bits ---------- */
.updated-note{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:10px;padding:12px 18px;margin-bottom:22px;color:var(--muted);font-size:.95rem}
.verdict-box{display:flex;gap:24px;align-items:center;background:linear-gradient(160deg,rgba(245,166,35,.14),var(--card));border:1px solid var(--gold);border-radius:var(--radius);padding:26px;margin:0 0 26px}
.verdict-score{font-size:3rem;font-weight:900;color:var(--gold);min-width:130px;line-height:1}
.verdict-score span{font-size:1.2rem;color:var(--muted)}
.verdict-box h2{margin:0 0 6px;font-size:1.25rem}
.verdict-box p{margin:0;color:var(--text)}
.pros li,.cons li{list-style:none;padding-left:0}
.pros li::before{content:"✅ "}.cons li::before{content:"⚠️ "}
ul.pros,ul.cons{margin-left:0}
.info-box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin:26px 0}
.info-box h2{margin-top:0;font-size:1.2rem}
.info-box ul{margin-bottom:0}
.cta-inline{background:var(--card);border:1px dashed var(--gold);border-radius:var(--radius);padding:20px 24px;margin:22px 0;text-align:center}
.cta-inline p{margin-bottom:12px}
.cta-band{text-align:center;background:linear-gradient(160deg,rgba(245,166,35,.12),var(--card));border:1px solid var(--line);border-radius:var(--radius);padding:34px 26px;margin:34px 0}
.cta-band h2{margin:0 0 8px}
.cta-band p{color:var(--muted);margin-bottom:18px}
.cta-note{font-size:.92rem;margin-top:14px}
.cta-note a{color:var(--gold2)}
.link-box{background:linear-gradient(160deg,var(--card2),var(--card));border:1px solid var(--gold);border-radius:var(--radius);padding:32px;text-align:center;margin:26px 0}
.link-box h2{margin:0 0 10px}
.link-status{color:var(--muted);margin-bottom:18px}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok);margin-right:6px;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.link-alt-note{color:var(--muted);font-size:.94rem;margin:16px 0 0}
.archive-link{margin-top:18px;text-align:center}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.faq h3{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 18px;margin:12px 0 0;color:var(--gold2);font-size:1.02rem}
.faq h3+p{background:var(--card);border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px;padding:4px 18px 14px;margin:0}

/* ---------- steps ---------- */
.steps{margin:30px 0;position:relative}
.step{display:flex;gap:22px;position:relative;padding-bottom:30px}
.step:not(:last-child)::before{content:"";position:absolute;left:23px;top:52px;bottom:4px;width:3px;background:linear-gradient(var(--gold),rgba(245,166,35,.15));border-radius:2px}
.step-num{flex:0 0 48px;width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--gold2),var(--orange));color:#1a1206;font-weight:900;font-size:1.4rem;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(245,166,35,.4);position:relative;z-index:1}
.step-body{flex:1;padding-top:2px}
.step-body h2{margin:6px 0 8px;font-size:1.22rem}

/* ---------- breadcrumb ---------- */
.breadcrumb{font-size:.88rem;color:var(--muted);padding:16px 0 0}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0}
.breadcrumb li+li::before{content:"›";margin-right:6px;color:var(--line)}
.breadcrumb a{color:var(--muted)}
.breadcrumb [aria-current]{color:var(--gold2)}

/* ---------- page hero (interior) ---------- */
.page-head{padding:40px 0 8px}
.page-head .kicker{color:var(--gold);font-weight:800;text-transform:uppercase;letter-spacing:.14em;font-size:.8rem}
.page-head h1{margin:6px 0 10px}
.page-head .lede{color:var(--muted);max-width:760px;font-size:1.06rem}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--line);background:var(--bg2);margin-top:50px;padding:46px 0 120px}
.ft-grid{display:grid;grid-template-columns:1.3fr 1fr 1.3fr;gap:34px}
.ft-grid h3{margin:0 0 12px;font-size:.95rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gold)}
.ft-grid ul{list-style:none;margin:0}
.ft-grid a{color:var(--muted);font-size:.95rem}
.ft-grid a:hover{color:var(--gold2)}
.ft-brand{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.ft-brand img{width:34px;height:34px;border-radius:8px}
.ft-brand b{color:#fff;font-size:1.1rem}.ft-brand b em{color:var(--gold);font-style:normal}
.ft-desc{color:var(--muted);font-size:.92rem}
.ft-bottom{border-top:1px solid var(--line);margin-top:34px;padding-top:22px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:.85rem}
.ft-disclaimer{color:var(--muted);font-size:.82rem;margin-top:14px;line-height:1.6}

/* ---------- 404 ---------- */
.error-wrap{text-align:center;padding:80px 22px 60px;max-width:640px;margin:0 auto}
.error-paw{font-size:4rem;margin-bottom:10px}
.error-wrap h1{margin-bottom:14px}
.error-wrap p{color:var(--muted)}
.error-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:26px 0}
.error-note{font-size:.94rem}
.error-wrap .cta-band{margin-top:40px}

/* ---------- mobile sticky CTA ---------- */
.mobile-cta{display:none}

/* ---------- responsive ---------- */
@media (max-width:900px){
 .card-grid,.cat-grid{grid-template-columns:repeat(2,1fr)}
 .ft-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:768px){
 body{font-size:16px}
 .hd{height:58px;gap:10px}
 .main-nav{position:fixed;inset:58px 0 auto 0;background:var(--bg2);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:10px 16px 18px;display:none;max-height:calc(100vh - 58px);overflow:auto}
 .main-nav a,.main-nav summary{padding:14px 10px;font-size:1.02rem;border-bottom:1px solid var(--line);border-radius:0}
 .main-nav .dd-menu{position:static;box-shadow:none;border:0;background:transparent;padding:0 0 0 16px}
 .nav-toggle:checked~.main-nav{display:flex}
 .nav-btn{display:flex;margin-left:auto;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--gold);font-size:1.3rem;cursor:pointer}
 /* header mobile bersih: logo kiri + hamburger ujung kanan saja;
    LOGIN/DAFTAR tetap tersedia via sticky bar bawah (tanpa duplikat di header) */
 .hd-cta{display:none}
 .hero{padding:52px 18px 46px}
 .hero-logo{width:200px;height:200px;animation:none}
 .card-grid,.cat-grid{grid-template-columns:1fr}
 .score-card,.verdict-box{flex-direction:column;gap:10px;text-align:center}
 .score-points{text-align:left}
 .step{gap:14px}.step-num{flex-basis:42px;width:42px;height:42px;font-size:1.15rem}
 .step:not(:last-child)::before{left:20px;top:48px}
 .ft-grid{grid-template-columns:1fr;gap:26px}
 .ft-bottom{flex-direction:column}
 .site-footer{padding-bottom:96px}
 .mobile-cta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;gap:10px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(15,17,21,.97);border-top:1px solid var(--line);backdrop-filter:blur(8px)}
 .mobile-cta .btn{flex:1;min-height:52px;font-size:1rem;padding:12px 8px}
 .btn-lg{max-width:none}
}
@media (min-width:769px){.nav-btn{display:none}}
