/* =========================================================
   Disqon — dasar bersama (landing + panduan)
   Token, reset, tombol, header, footer. Warna hanya lewat variabel.
   ========================================================= */
:root{
  --blue:#2f6bff; --blue-600:#1d4fd8; --blue-ink:#1d4fd8;
  --orange:#f97316; --orange-600:#ea580c; --on-orange:#1a0f00;
  --mint:#10b981;
  --navy:#071a33; --navy-2:#0d2a52; --navy-line:rgba(160,190,255,.16);
  --on-navy:#eef3ff; --on-navy-2:#b4c4de;

  --bg:#ffffff; --bg-soft:#f3f6fb; --surface:#ffffff; --surface-2:#f7f9fd;
  --ink:#0b1b33; --ink-2:#44526a; --line:#e2e8f1; --line-2:#cdd6e4;
  --shadow-1:0 1px 2px rgba(11,27,51,.05),0 6px 18px rgba(11,27,51,.06);
  --shadow-2:0 2px 4px rgba(11,27,51,.06),0 24px 48px -16px rgba(11,27,51,.22);

  --font-display:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --font-body:"Plus Jakarta Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  --r-sm:10px; --r-md:16px; --r-lg:24px; --r-xl:32px;
  --e-out:cubic-bezier(.16,1,.3,1); --e-io:cubic-bezier(.65,0,.35,1); --e-spring:cubic-bezier(.34,1.56,.64,1);
  --d1:150ms; --d2:280ms; --d3:560ms; --d4:900ms;
  --z-nav:40; --z-menu:50;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --blue-ink:#8db0ff;
    --bg:#08111f; --bg-soft:#0c1829; --surface:#101e33; --surface-2:#13233b;
    --ink:#e9eef7; --ink-2:#a7b4c9; --line:#1f3150; --line-2:#2c4166;
    --shadow-1:0 1px 2px rgba(0,0,0,.4),0 6px 18px rgba(0,0,0,.3);
    --shadow-2:0 2px 4px rgba(0,0,0,.4),0 24px 48px -16px rgba(0,0,0,.6);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --blue-ink:#8db0ff;
  --bg:#08111f; --bg-soft:#0c1829; --surface:#101e33; --surface-2:#13233b;
  --ink:#e9eef7; --ink-2:#a7b4c9; --line:#1f3150; --line-2:#2c4166;
  --shadow-1:0 1px 2px rgba(0,0,0,.4),0 6px 18px rgba(0,0,0,.3);
  --shadow-2:0 2px 4px rgba(0,0,0,.4),0 24px 48px -16px rgba(0,0,0,.6);
  color-scheme:dark;
}

/* ---------- dasar ---------- */
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;touch-action:manipulation}
ul,ol{padding:0;list-style:none}
h1,h2,h3{font-family:var(--font-display);line-height:1.08;letter-spacing:-.02em;font-weight:800;text-wrap:balance}
h2{font-size:clamp(1.9rem,4.2vw,3rem)}
h3{font-size:1.12rem;font-weight:600;letter-spacing:-.01em;line-height:1.25}
p{text-wrap:pretty}
.wrap{width:100%;max-width:1200px;margin-inline:auto;padding-inline:20px}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--orange);color:var(--on-orange);padding:10px 16px;border-radius:10px;font-weight:700}
.skip:focus{top:12px}
.i{width:20px;height:20px;flex:none}

.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--orange-600);margin-bottom:14px}
.eyebrow.on-dark{color:#ffb27a}
.lead{color:var(--ink-2);font-size:1.08rem;max-width:58ch}
.sec{padding:clamp(72px,10vw,128px) 0}
.sec-head{margin-bottom:clamp(36px,5vw,60px);max-width:720px}
.sec-head .lead{margin-top:16px}

/* ---------- tombol ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:10px 20px;border-radius:999px;font-weight:700;font-size:.95rem;border:1.5px solid transparent;white-space:nowrap;transition:transform var(--d1) var(--e-out),background-color var(--d2),border-color var(--d2),box-shadow var(--d2)}
.btn:active{transform:scale(.97)}
.btn-lg{min-height:52px;padding:12px 26px;font-size:1rem}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 8px 22px -8px rgba(47,107,255,.7)}
.btn-primary:hover{background:var(--blue-600)}
.btn-accent{background:var(--orange);color:var(--on-orange);box-shadow:0 10px 30px -10px rgba(249,115,22,.8)}
.btn-accent:hover{background:#ff8a35}
.btn-ghost{border-color:var(--line-2);color:var(--ink);background:var(--surface)}
.btn-ghost:hover{border-color:var(--blue)}
.btn-ghost-dark{border-color:rgba(255,255,255,.28);color:#fff}
.btn-ghost-dark:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.btn .i{width:18px;height:18px}
.btn-ghost-dark .i,.link-arrow .i{transition:transform var(--d2) var(--e-out)}
.btn-ghost-dark:hover .i,.link-arrow:hover .i{transform:translateX(4px)}
.icon-btn{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;color:var(--ink);transition:background-color var(--d1)}
.icon-btn:hover{background:var(--bg-soft)}

/* ---------- navigasi ---------- */
.nav{position:sticky;top:0;z-index:var(--z-nav);background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:border-color var(--d2),background-color var(--d2)}
.nav.is-stuck{border-bottom-color:var(--line)}
.nav-row{display:flex;align-items:center;gap:20px;height:68px}
.logo{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:800;font-size:1.3rem;letter-spacing:-.02em}
.logo b{color:var(--blue)}
.logo-mark{flex:none;width:34px;height:34px}
.nav nav{flex:1}
.nav-links{display:flex;justify-content:center;gap:4px}
.nav-links a{display:block;padding:10px 12px;border-radius:10px;color:var(--ink-2);font-weight:600;font-size:.92rem;transition:color var(--d1),background-color var(--d1)}
.nav-links a:hover,.nav-links a[aria-current="true"]{color:var(--ink);background:var(--bg-soft)}
.nav-cta{display:flex;align-items:center;gap:8px}
[data-theme-toggle] .i-moon{display:none}
:root[data-theme="dark"] [data-theme-toggle] .i-sun{display:none}
:root[data-theme="dark"] [data-theme-toggle] .i-moon{display:block}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) [data-theme-toggle] .i-sun{display:none}
  :root:not([data-theme="light"]) [data-theme-toggle] .i-moon{display:block}
}
.show-sm{display:none}
[data-menu] .i-close{display:none}
[data-menu][aria-expanded="true"] .i-open{display:none}
[data-menu][aria-expanded="true"] .i-close{display:block}
@media (max-width:960px){
  .hide-sm{display:none}
  .show-sm{display:grid}
  .nav nav{flex:0}
  .nav-cta{margin-left:auto}
  .nav-links{position:fixed;inset:68px 0 auto 0;z-index:var(--z-menu);flex-direction:column;gap:2px;padding:12px 20px 24px;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:var(--shadow-2);transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity var(--d2),transform var(--d2) var(--e-out),visibility 0s var(--d2)}
  .nav-links.open{opacity:1;transform:none;visibility:visible;transition:opacity var(--d2),transform var(--d2) var(--e-out)}
  .nav-links a{padding:14px 12px;font-size:1rem}
}

/* ---------- footer ---------- */
.foot{background:#04101f;color:#b4c4de;padding-top:64px}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px;padding-bottom:40px}
.logo-dark{color:#fff}
.logo-dark b{color:#8db0ff}
.foot p{font-size:.9rem;margin-top:14px;max-width:34ch;color:#93a6c2}
.foot h4{color:#fff;font-size:.88rem;margin-bottom:12px}
.foot ul{display:grid;gap:2px}
.foot ul a{display:inline-block;padding:6px 0;font-size:.9rem;transition:color var(--d1)}
.foot ul a:hover{color:#fff}
.foot-bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:20px;padding-bottom:24px;font-size:.82rem;color:#7d90ad}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr 1fr}.foot-grid > div:first-child{grid-column:1 / -1}}

/* ---------- gerak dikurangi ---------- */
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}}
