/* Landing & dokumentasi — gaya Caldera: kanvas hangat, aksen Ember, datar (tanpa bayangan), radius besar. */
:root{--ember:#fc5000;--violet:#524ae9;--sulfur:#f5f28e;--stone:#f7f6f2;--pumice:#e2e2df;--ink:#070607;--chalk:#fff;--muted:#5c5a56;--ok:#1a7f3c;
 --display:'Anton','Bebas Neue',Impact,'Arial Narrow',sans-serif;--sans:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--pumice);color:var(--ink);font:500 17px/1.6 var(--sans)}
a{color:inherit}img,svg{max-width:100%}
.wrap{max-width:1280px;margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--chalk);padding:8px 16px;border-radius:800px;z-index:100}.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--violet);outline-offset:3px}
/* nav */
header.nav{position:sticky;top:0;z-index:50;padding:14px 0;background:color-mix(in srgb,var(--pumice) 92%,transparent);backdrop-filter:blur(8px)}
.nav .wrap{display:flex;align-items:center;gap:16px}
.logo{display:flex;align-items:center;gap:8px;text-decoration:none;font:400 18px/.95 var(--display);letter-spacing:.04em;text-transform:uppercase}.logo svg{color:var(--ember)}
.pillnav{display:flex;gap:2px;background:var(--stone);border-radius:800px;padding:5px;margin:0 auto}
.pillnav a{padding:8px 16px;border-radius:800px;text-decoration:none;font-size:15px}.pillnav a:hover{background:var(--ink);color:var(--chalk)}
.nav .right{display:flex;gap:8px;align-items:center;margin-left:auto}.pillnav+.right{margin-left:0}
.btn{display:inline-flex;align-items:center;gap:8px;font:inherit;cursor:pointer;border-radius:800px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);padding:10px 22px;text-decoration:none;line-height:1.3;transition:background .15s,color .15s}
.btn:hover{background:var(--ink);color:var(--chalk)}.btn.primary{background:var(--ember);border-color:var(--ember)}.btn.primary:hover{background:var(--ink);border-color:var(--ink);color:var(--chalk)}
.btn.lg{padding:15px 30px;font-size:18px}.btn.sm{padding:6px 16px;font-size:15px}.btn.light{border-color:var(--chalk);color:var(--chalk)}.btn.light:hover{background:var(--chalk);color:var(--ink)}
.menu{display:none}
/* hero */
.hero{padding:56px 0 24px}.hero .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}
.eyebrow{display:inline-block;background:var(--sulfur);border-radius:800px;padding:4px 14px;font-size:14px}
h1,h2,h3{font-family:var(--display);font-weight:400;letter-spacing:.02em;line-height:1;margin:0;text-transform:uppercase}
h1{font-size:clamp(46px,5.6vw,88px);line-height:.98;margin:18px 0 22px}h2{font-size:clamp(38px,5vw,64px);margin-bottom:16px}h3{font-size:24px;margin-bottom:8px}
.lead{font-size:20px;max-width:34em;margin:0 0 24px}.lead b{background:var(--ember);color:var(--ink);padding:0 10px;border-radius:12px;white-space:nowrap}
.cta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}.note{font-size:14px;color:var(--muted)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:40px}.stat{background:var(--stone);border-radius:28px;padding:18px 22px}.stat b{display:block;font:400 34px/1 var(--display);letter-spacing:.02em}.stat span{font-size:14px;color:var(--muted)}
/* mock editor */
.vis{position:relative}
.halftone{position:absolute;inset:-14px -14px -14px 30px;border-radius:40px;background:linear-gradient(135deg,var(--violet),var(--ember));overflow:hidden}
.halftone::before{content:"";position:absolute;inset:0;background:radial-gradient(circle,rgba(252,80,0,.95) 2.2px,transparent 2.6px) 0 0/14px 14px;-webkit-mask-image:linear-gradient(60deg,transparent 10%,#000 95%);mask-image:linear-gradient(60deg,transparent 10%,#000 95%)}
.win{position:relative;background:var(--chalk);border-radius:28px;overflow:hidden;border:1.5px solid var(--ink)}
.win .tabs{display:flex;gap:2px;padding:10px 12px 0;background:var(--stone);font-size:12px;overflow:hidden}.win .tabs span{padding:5px 10px;border-radius:10px 10px 0 0}.win .tabs .on{background:var(--chalk)}.win .tabs .file{background:var(--ember);border-radius:10px 10px 0 0}
.win .ribbon{display:flex;gap:10px;padding:10px 14px;border-bottom:1.5px dotted var(--ink);align-items:center}.win .ribbon i{display:block;width:34px;height:28px;border-radius:8px;background:var(--pumice)}.win .ribbon i:nth-child(3n){width:54px}.win .ribbon .g{width:1px;height:26px;background:#ccc;border-radius:0}
.win .body{display:grid;grid-template-columns:1fr 66px;background:var(--pumice)}
.win .page{margin:16px;background:var(--chalk);padding:22px 24px;border-radius:6px;min-height:290px;font:11px/1.55 Georgia,'Times New Roman',serif;border:1px solid #d6d4cf}
.page h4{margin:0 0 6px;font:400 17px/1.05 var(--display);letter-spacing:.02em;text-transform:uppercase;text-align:center}.page .au{text-align:center;font-size:9px;font-family:var(--sans);margin-bottom:10px}.page .ab{font:700 10px var(--sans);margin:8px 0 3px}.page p{margin:0 0 6px;text-align:justify}.page .ln{height:6px;border-radius:3px;background:#e7e5e0;margin:4px 0}
.win .side{padding:12px 6px;display:flex;flex-direction:column;gap:8px;align-items:center}.win .side span{writing-mode:vertical-rl;font-size:10px;background:var(--stone);border-radius:10px;padding:8px 4px}
.chip{position:absolute;background:var(--sulfur);border:1.5px solid var(--ink);border-radius:800px;padding:8px 16px;font-size:14px;display:flex;gap:8px;align-items:center}.chip.a{left:-18px;bottom:44px}.chip.b{right:-8px;top:-18px;background:var(--chalk)}
.xml{position:absolute;right:-12px;bottom:-26px;background:var(--ink);color:#f2e6dc;border-radius:20px;padding:12px 16px;font:12px/1.5 ui-monospace,Menlo,monospace;max-width:240px}.xml b{color:#fc9d6e;font-weight:400}
/* sections */
section{padding:48px 0}.sec-h{margin-bottom:28px;max-width:44em}.sec-h p{font-size:19px;margin:0;color:var(--muted)}
.strip{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:28px 0}.strip span{background:var(--stone);border-radius:800px;padding:6px 18px;font-size:15px}.strip small{color:var(--muted);margin-right:6px}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{background:var(--stone);border-radius:40px;padding:36px}
.card.ember{background:var(--ember)}.card.dark{background:var(--ink);color:var(--chalk)}.card .n{font:400 56px/1 var(--display);color:var(--ember)}
.bigflow{background:var(--ink);color:var(--chalk);border-radius:40px;padding:44px}.bigflow h2{color:var(--chalk)}.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:20px}.flow div{border:1.5px dotted #777;border-radius:28px;padding:18px 20px;font-size:16px}.flow b{display:block;font:400 22px var(--display);letter-spacing:.03em;text-transform:uppercase;color:var(--sulfur);margin-bottom:4px}
.fgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.feat{background:var(--stone);border-radius:36px;padding:30px;display:flex;flex-direction:column;gap:6px;position:relative}
.ico{width:52px;height:52px;border-radius:50%;background:var(--ember);display:grid;place-items:center;margin-bottom:8px}.feat h3{font-size:22px;text-transform:none;font-family:var(--sans);font-weight:700;letter-spacing:0;line-height:1.2}.feat p{margin:0;font-size:16px;color:#3d3b37}
.tag{position:absolute;top:22px;right:22px;font-size:12px;border-radius:800px;padding:2px 10px;background:var(--sulfur)}.tag.soon{background:var(--ink);color:var(--chalk)}
.road{margin-top:16px;background:var(--stone);border-radius:800px;padding:14px 26px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.road b{font:400 20px var(--display);letter-spacing:.03em;text-transform:uppercase;margin-right:8px}.road span{background:var(--pumice);border-radius:800px;padding:4px 14px;font-size:15px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:s}.step{background:var(--stone);border-radius:36px;padding:28px;counter-increment:s}.step::before{content:counter(s);font:400 64px/1 var(--display);color:var(--ember);display:block;margin-bottom:6px}.step h3{font-family:var(--sans);font-weight:700;text-transform:none;font-size:21px;letter-spacing:0}.step p{margin:6px 0 0;font-size:16px;color:#3d3b37}
/* pricing */
.price{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;align-items:stretch}
.plan{background:var(--ember);border-radius:40px;padding:44px;color:var(--ink)}.plan .big{font:400 clamp(72px,10vw,140px)/.95 var(--display);letter-spacing:.02em}.plan .per{font-size:20px;margin-left:8px}
.plan ul{list-style:none;padding:0;margin:20px 0 26px;display:grid;gap:8px}.plan li{display:flex;gap:10px;align-items:flex-start}.plan li svg{flex:none;margin-top:3px}
.plan .free{display:inline-block;background:var(--ink);color:var(--chalk);border-radius:800px;padding:4px 16px;font-size:15px;margin-bottom:14px}
.side-cards{display:grid;gap:16px}.qris{display:flex;gap:16px;align-items:center}.qris .qr{flex:none;width:76px;height:76px;border-radius:20px;background:var(--ink);color:var(--chalk);display:grid;place-items:center}
.badge{display:inline-block;background:var(--sulfur);border-radius:800px;padding:2px 12px;font-size:13px;margin-left:6px;vertical-align:middle}
.calc label{display:block;font-size:15px;margin-bottom:6px}.calc input[type=range]{width:100%;accent-color:var(--ember)}.calc output{font:400 54px/1 var(--display);letter-spacing:.02em;display:block;margin:6px 0 2px}.calc .row{display:flex;justify-content:space-between;align-items:end;gap:12px}.calc .num{width:96px;border-radius:800px;border:1.5px solid var(--ink);background:var(--chalk);padding:6px 14px;font:inherit}
.calc small{color:var(--muted)}
/* faq */
.faq details{background:var(--stone);border-radius:28px;padding:20px 28px;margin-bottom:10px}.faq summary{cursor:pointer;font-weight:700;font-size:18px;list-style:none;display:flex;justify-content:space-between;gap:14px}.faq summary::after{content:"+";font:400 28px/1 var(--display)}.faq details[open] summary::after{content:"–"}.faq p{margin:10px 0 0;color:#3d3b37}
.final{background:linear-gradient(135deg,var(--violet),var(--ember));border-radius:40px;padding:56px;color:var(--chalk);text-align:center;position:relative;overflow:hidden}.final::before{content:"";position:absolute;inset:0;background:radial-gradient(circle,rgba(252,80,0,.9) 2.2px,transparent 2.6px) 0 0/14px 14px;-webkit-mask-image:linear-gradient(60deg,transparent 20%,#000 100%);mask-image:linear-gradient(60deg,transparent 20%,#000 100%)}.final>*{position:relative}.final h2{font-size:clamp(44px,6vw,84px)}.final p{font-size:20px;margin:0 0 22px}
footer.foot{background:var(--ink);color:var(--chalk);margin-top:56px;padding:48px 0 32px;border-radius:40px 40px 0 0}.foot .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px}.foot a{display:block;text-decoration:none;color:#d8d5cf;padding:3px 0}.foot a:hover{color:var(--ember)}.foot small{color:#9a968f}.foot .logo{color:var(--chalk);margin-bottom:10px}
/* docs */
.docs{display:grid;grid-template-columns:280px 1fr;gap:28px;padding:32px 0 0}.toc{position:sticky;top:84px;align-self:start;background:var(--stone);border-radius:28px;padding:18px 14px;max-height:calc(100vh - 110px);overflow:auto}.toc a{display:block;padding:7px 14px;border-radius:800px;text-decoration:none;font-size:15px}.toc a:hover{background:var(--pumice)}
.doc{background:var(--stone);border-radius:40px;padding:44px 52px}.doc h1{font-size:clamp(44px,6vw,80px);margin:0 0 8px}.doc h2{font-size:38px;margin:44px 0 12px;padding-top:6px;border-top:1.5px dotted var(--ink)}.doc h2:first-of-type{border:0;margin-top:20px}.doc h3{font-family:var(--sans);font-weight:700;text-transform:none;letter-spacing:0;font-size:20px;margin:22px 0 6px}
.doc p,.doc li{font-size:17px}.doc code{background:var(--pumice);border-radius:8px;padding:1px 7px;font:14px ui-monospace,Menlo,monospace}.doc pre{background:var(--ink);color:#f2e6dc;border-radius:20px;padding:16px 20px;overflow:auto;font:13px/1.55 ui-monospace,Menlo,monospace}.doc pre code{background:none;padding:0;color:inherit}
.doc table{width:100%;border-collapse:collapse;margin:12px 0}.doc th,.doc td{text-align:left;padding:10px 12px;border-bottom:1.5px dotted var(--ink);font-size:16px;vertical-align:top}.doc th{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.callout{background:var(--sulfur);border-radius:24px;padding:14px 22px;margin:14px 0}.callout.warn{background:#ffd9c7}
.pill{display:inline-block;border-radius:800px;padding:1px 10px;font-size:13px;background:var(--pumice);margin-right:4px}.pill.ok{background:#cfeedb}.pill.soon{background:var(--ink);color:var(--chalk)}
@media(max-width:1000px){.hero .grid,.price,.docs{grid-template-columns:1fr}.fgrid,.cards3,.steps,.flow{grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr}.toc{position:static;max-height:none}.pillnav{display:none}.menu{display:inline-flex}.vis{margin:20px 14px 40px}.xml{display:none}.doc{padding:28px 24px}.foot .cols{grid-template-columns:1fr}.nav .right{margin-left:auto}header.nav.open .pillnav{display:flex;position:absolute;left:24px;right:24px;top:70px;flex-direction:column;border-radius:28px}}
@media(max-width:640px){.wrap{padding:0 16px}.fgrid,.cards3,.steps,.flow,.stats{grid-template-columns:1fr}.bigflow,.plan,.final{padding:26px}.card{padding:24px}.chip.a{left:0}.chip.b{right:0}
 .nav .wrap{gap:8px}.logo{font-size:15px}.nav .right{gap:6px}.nav .right .btn.sm{padding:5px 12px;font-size:14px}.nav .right a.login{display:none}
 .hero{padding-top:28px}.hero h1{font-size:clamp(38px,12vw,56px)}.lead{font-size:18px}.lead b{white-space:normal}.cta .btn.lg{padding:12px 22px;font-size:16px}
 .vis{margin:16px 8px 36px}.halftone{inset:-8px -8px -8px 18px}.win .body{grid-template-columns:1fr 40px}.win .page{margin:10px;padding:14px}.win .ribbon{overflow:hidden}.win .tabs span{padding:4px 7px}
 .plan .big{font-size:clamp(60px,20vw,96px)}.calc .row{flex-direction:column;align-items:stretch}.calc .num{width:100%}.doc{padding:22px 18px;border-radius:28px}.doc h2{font-size:30px}.foot .cols{gap:18px}}
.doc table{display:block;overflow-x:auto;max-width:100%}.only-m{display:none}
@media(max-width:1000px){.only-m{display:block}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* grid children must be able to shrink (mock editor has wide intrinsic content) */
.hero .grid>*,.price>*,.docs>*,.cards3>*,.fgrid>*,.steps>*,.flow>*,.stats>*,.foot .cols>*{min-width:0}.win{min-width:0;max-width:100
/* anak grid harus bisa menyusut (mock editor punya konten intrinsik lebar) */
.hero .grid>*,.price>*,.docs>*,.cards3>*,.fgrid>*,.steps>*,.flow>*,.stats>*,.foot .cols>*{min-width:0}
.win{min-width:0;max-width:100%}.win .tabs,.win .ribbon{overflow:hidden;white-space:nowrap}

/* animasi ringan: hanya opacity/transform; dimatikan bila pengguna memilih gerak minimal */
@media (prefers-reduced-motion:no-preference){
 @view-transition{navigation:auto}
 ::view-transition-old(root),::view-transition-new(root){animation-duration:.18s;animation-timing-function:ease-out}
 .anim .rv{opacity:0;transform:translateY(14px);transition:opacity .45s ease var(--d,0ms),transform .45s ease var(--d,0ms)}
 .anim .rv.in{opacity:1;transform:none}
 .win,.chip,.xml{animation:rise .6s ease-out both}.chip.a{animation-delay:.15s}.chip.b{animation-delay:.25s}.xml{animation-delay:.35s}
 @keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
}
