@font-face{font-family:Jakarta;src:url(/fonts/plus-jakarta-sans-latin.woff2) format("woff2");font-weight:400 800;font-style:normal;font-display:swap}@font-face{font-family:Jakarta;src:url(/fonts/plus-jakarta-sans-latin-italic.woff2) format("woff2");font-weight:400 600;font-style:italic;font-display:swap}:root{--paper: #fbfaf8;--surface: #ffffff;--sunk: #f1efea;--ink: #14161a;--ink-soft: #5c6470;--ink-faint: #949ba6;--line: #e7e3dc;--line-soft: #f0ede7;--brand: #1b44d8;--brand-ink: #12308f;--brand-soft: #eceffe;--ok: #12794f;--ok-soft: #eaf6f0;--warn: #97590a;--warn-soft: #fdf3e4;--danger: #b4231f;--danger-soft: #fdefee;--r: 16px;--r-sm: 11px;--tap: 48px;--safe-b: env(safe-area-inset-bottom, 0px);--shadow: 0 1px 2px rgba(20, 22, 26, .04), 0 6px 20px -14px rgba(20, 22, 26, .14);--shadow-lift: 0 2px 6px rgba(20, 22, 26, .06), 0 14px 34px -18px rgba(20, 22, 26, .2);--font: "Jakarta", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace}@media(prefers-color-scheme:dark){:root{--paper: #101215;--surface: #181b20;--sunk: #21252b;--ink: #e9eaec;--ink-soft: #a2a9b3;--ink-faint: #6f7783;--line: #292e35;--line-soft: #21252b;--brand: #829dff;--brand-ink: #b9c8ff;--brand-soft: #171f37;--ok: #4cc38a;--ok-soft: #12241c;--warn: #e0a340;--warn-soft: #251d10;--danger: #f26d69;--danger-soft: #2a1616;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 6px 20px -14px rgba(0, 0, 0, .6);--shadow-lift: 0 2px 6px rgba(0, 0, 0, .35), 0 14px 34px -18px rgba(0, 0, 0, .7)}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:76px}body{margin:0;font-family:var(--font);background:var(--paper);color:var(--ink);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-wrap:break-word}.wrap{max-width:680px;margin:0 auto;padding:0 18px}.ico{flex-shrink:0;vertical-align:middle}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}:focus:not(:focus-visible){outline:none}.top{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 85%,transparent);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line-soft)}.top-in{max-width:680px;margin:0 auto;padding:0 12px;height:58px;display:flex;align-items:center;gap:6px}.top .back{display:flex;align-items:center;justify-content:center;min-width:44px;height:44px;margin-left:-4px;color:var(--ink-soft);text-decoration:none;border-radius:10px;transition:background .18s ease,color .18s ease}.top .back:hover{background:var(--sunk);color:var(--ink)}.top .title{flex:1;min-width:0;font-weight:700;font-size:15.5px;letter-spacing:-.011em;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top .badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;padding:5px 10px;border-radius:999px;background:var(--sunk);color:var(--ink-soft);white-space:nowrap;letter-spacing:-.005em}.readbar{position:absolute;left:0;bottom:-1px;height:2px;width:0;background:var(--brand);transition:width .1s linear}.card{display:block;position:relative;text-decoration:none;color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 15px;margin-bottom:9px;box-shadow:var(--shadow);cursor:pointer;transition:box-shadow .2s ease,border-color .2s ease,transform .12s ease}.card:hover{border-color:color-mix(in srgb,var(--brand) 32%,var(--line));box-shadow:var(--shadow-lift)}.card:active{transform:scale(.99)}.card-row{display:flex;align-items:center;gap:13px}.card-ico{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--sunk);color:var(--ink-soft);flex-shrink:0;transition:background .2s ease,color .2s ease}.card:hover .card-ico{background:var(--brand-soft);color:var(--brand)}.card-body{flex:1;min-width:0}.card-t{font-weight:700;font-size:15.5px;letter-spacing:-.012em;line-height:1.3}.card-s{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--ink-faint);margin-top:3px;font-weight:500}.card-go{color:var(--ink-faint);flex-shrink:0;transition:transform .2s ease,color .2s ease}.card:hover .card-go{color:var(--brand);transform:translate(2px)}.card.done .card-ico{background:var(--ok-soft);color:var(--ok)}.card.done .card-t{color:var(--ink-soft)}.step{display:flex;gap:14px;text-decoration:none;color:inherit;position:relative;padding:3px 0;cursor:pointer}.step-rail{position:relative;display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:30px}.step-dot{width:30px;height:30px;border-radius:999px;display:grid;place-items:center;background:var(--surface);border:1.5px solid var(--line);color:var(--ink-faint);font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums;z-index:1;transition:all .2s ease}.step-rail:after{content:"";position:absolute;top:30px;bottom:-3px;width:1.5px;background:var(--line)}.step:last-of-type .step-rail:after{display:none}.step-in{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:9px 12px 9px 13px;margin-bottom:6px;border-radius:13px;border:1px solid transparent;transition:background .18s ease,border-color .18s ease}.step:hover .step-in{background:var(--surface);border-color:var(--line)}.step-t{font-weight:650;font-size:15.5px;letter-spacing:-.011em;line-height:1.35}.step-m{display:flex;align-items:center;gap:4px;font-size:12.5px;color:var(--ink-faint);font-weight:500;margin-top:1px;font-variant-numeric:tabular-nums}.step:hover .step-dot{border-color:var(--brand);color:var(--brand)}.step.done .step-dot{background:var(--ok);border-color:var(--ok);color:#fff}.step.done .step-t{color:var(--ink-soft)}.step.now .step-dot{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 0 0 4px var(--brand-soft)}.step.now .step-in{background:var(--surface);border-color:color-mix(in srgb,var(--brand) 28%,var(--line));box-shadow:var(--shadow)}.step.now .step-t{color:var(--ink)}.resume{display:block;text-decoration:none;color:inherit;background:var(--surface);border:1px solid color-mix(in srgb,var(--brand) 26%,var(--line));border-radius:var(--r);padding:16px 17px;box-shadow:var(--shadow-lift);position:relative;overflow:hidden;cursor:pointer;transition:transform .12s ease,box-shadow .2s ease}.resume:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--brand)}.resume:active{transform:scale(.99)}.resume-k{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--brand);margin-bottom:7px}.resume-t{font-size:19px;font-weight:750;letter-spacing:-.02em;line-height:1.25}.resume-s{font-size:13.5px;color:var(--ink-faint);margin-top:3px;font-weight:500}.resume-foot{display:flex;align-items:center;gap:11px;margin-top:13px}.resume-foot .bar{flex:1}.resume-n{font-size:12.5px;color:var(--ink-faint);font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 20px;width:100%;border:1px solid transparent;border-radius:13px;cursor:pointer;background:var(--brand);color:#fff;font:inherit;font-weight:700;font-size:15.5px;letter-spacing:-.011em;text-decoration:none;transition:filter .18s ease,transform .12s ease,background .18s ease}.btn:hover{filter:brightness(1.08)}.btn:active{transform:scale(.985)}.btn.ghost{background:var(--surface);color:var(--ink);border-color:var(--line);box-shadow:var(--shadow)}.btn.ghost:hover{border-color:color-mix(in srgb,var(--brand) 32%,var(--line));color:var(--brand);filter:none}.btn.ok{background:var(--ok)}.btn.quiet{background:transparent;color:var(--ink-soft);border-color:transparent;box-shadow:none;font-weight:600}.btn.quiet:hover{color:var(--brand);background:var(--brand-soft);filter:none}.btn:disabled{opacity:.55;cursor:not-allowed}.seg{display:flex;gap:3px;padding:3px;background:var(--sunk);border-radius:12px;margin:14px 0}.seg button{flex:1;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:9px;background:transparent;color:var(--ink-soft);font:inherit;font-size:13.5px;font-weight:650;cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.seg button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.md{padding:6px 0 40px}.md h1{font-size:28px;line-height:1.18;margin:20px 0 14px;letter-spacing:-.032em;font-weight:800}.md h2{font-size:20px;line-height:1.3;margin:40px 0 12px;padding-top:20px;border-top:1px solid var(--line-soft);letter-spacing:-.02em;font-weight:750;scroll-margin-top:76px}.md h3{font-size:17px;margin:26px 0 8px;letter-spacing:-.014em;font-weight:700;scroll-margin-top:76px}.md h4{font-size:13px;margin:22px 0 6px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;font-weight:750}.md p{margin:0 0 15px}.md ul,.md ol{padding-left:20px;margin:0 0 15px}.md li{margin-bottom:8px;padding-left:3px}.md li::marker{color:var(--ink-faint)}.md a{color:var(--brand);font-weight:600;text-decoration-color:color-mix(in srgb,var(--brand) 35%,transparent);text-decoration-thickness:1.5px;text-underline-offset:2.5px;transition:text-decoration-color .18s ease}.md a:hover{text-decoration-color:var(--brand)}.md hr{border:0;border-top:1px solid var(--line);margin:32px 0}.md strong{font-weight:700;color:var(--ink)}.md blockquote{margin:20px 0;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:0 12px 12px 0;color:var(--ink-soft)}.md blockquote>:last-child{margin-bottom:0}.callout{display:flex;gap:12px;margin:20px 0;padding:14px 15px;border-radius:14px;border:1px solid var(--line);background:var(--surface);font-size:15.5px;line-height:1.6}.callout>.ico{margin-top:1px;color:var(--ink-faint)}.callout-body{flex:1;min-width:0}.callout-body>:first-child{margin-top:0}.callout-body>:last-child{margin-bottom:0}.callout-k{display:block;font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:5px}.callout p{margin:0 0 9px}.callout ul,.callout ol{margin:0;padding-left:18px}.callout li{margin-bottom:5px}.callout.intisari{background:var(--brand-soft);border-color:color-mix(in srgb,var(--brand) 22%,transparent)}.callout.intisari>.ico,.callout.intisari .callout-k{color:var(--brand)}.callout.intisari .callout-body{color:var(--ink)}.callout.intisari strong{color:var(--brand-ink)}.callout.awas{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 22%,transparent)}.callout.awas>.ico,.callout.awas .callout-k{color:var(--danger)}.callout.penting{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 24%,transparent)}.callout.penting>.ico,.callout.penting .callout-k{color:var(--warn)}.callout.tip{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 20%,transparent)}.callout.tip>.ico,.callout.tip .callout-k{color:var(--ok)}.callout.prasyarat,.callout.glosarium{background:transparent;border-style:dashed;color:var(--ink-soft);font-size:14.5px;padding:12px 14px}.toc{background:var(--surface);border:1px solid var(--line);border-radius:14px;margin:20px 0 26px;box-shadow:var(--shadow);overflow:hidden}.toc>summary{display:flex;align-items:center;gap:9px;padding:13px 15px;cursor:pointer;list-style:none;font-weight:700;font-size:14px;letter-spacing:-.008em;min-height:48px;color:var(--ink)}.toc>summary::-webkit-details-marker{display:none}.toc>summary .ico:last-child{margin-left:auto;color:var(--ink-faint);transition:transform .22s ease}.toc[open]>summary .ico:last-child{transform:rotate(180deg)}.toc-n{color:var(--ink-faint);font-weight:600;font-variant-numeric:tabular-nums}.toc ol{list-style:none;margin:0;padding:0 8px 8px}.toc li{margin:0;padding:0}.toc a{display:flex;gap:10px;padding:10px;border-radius:9px;text-decoration:none;color:var(--ink-soft);font-size:14.5px;font-weight:550;line-height:1.4;transition:background .16s ease,color .16s ease}.toc a:hover{background:var(--sunk);color:var(--brand)}.toc a i{font-style:normal;color:var(--ink-faint);font-variant-numeric:tabular-nums;font-weight:650;flex-shrink:0;min-width:16px}.md .tablebox{position:relative;margin:18px 0}.md .tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.md .tablefade{position:absolute;top:0;right:0;bottom:4px;width:44px;display:none;align-items:center;justify-content:flex-end;padding-right:3px;pointer-events:none;color:var(--ink-faint);background:linear-gradient(to right,transparent,var(--paper) 72%);border-radius:0 12px 12px 0;animation:nudge 1.6s ease-in-out 2}.md .tablebox.scrollable .tablefade{display:flex}.md .tablebox.at-end .tablefade{display:none}@keyframes nudge{0%,to{transform:translate(0)}50%{transform:translate(-3px)}}.md table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:14.5px;line-height:1.5}.md th,.md td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top;max-width:38ch}.md th{background:var(--sunk);font-weight:750;font-size:12.5px;text-transform:uppercase;letter-spacing:.045em;color:var(--ink-soft);white-space:nowrap}.md td{background:var(--surface)}.md tr>*:first-child{border-left:1px solid var(--line)}.md thead tr>*{border-top:1px solid var(--line)}.md table th:first-child,.md table td:first-child{position:sticky;left:0;z-index:2}.md table th:first-child{background:var(--sunk)}.md table td:first-child{background:var(--surface)}.md code{font-family:var(--mono);font-size:.85em;background:var(--sunk);padding:2px 6px;border-radius:6px;border:1px solid var(--line-soft)}.md pre{background:var(--sunk);border:1px solid var(--line);padding:14px;border-radius:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:13.5px;line-height:1.6;margin:18px 0}.md pre code{background:none;padding:0;border:0;font-size:inherit}.md img,.md video{max-width:100%;height:auto;border-radius:12px}.videoblock{margin:20px 0;background:#000;border-radius:14px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}.videoblock video{display:block;width:100%;height:auto;border-radius:0}.videoblock .cap{background:var(--surface);padding:10px 14px;font-size:13px;color:var(--ink-soft);font-weight:550;display:flex;justify-content:space-between;gap:10px;align-items:center}.videoblock .cap .tag{display:inline-flex;align-items:center;gap:5px;color:var(--ink-faint);font-size:12px;font-weight:650;white-space:nowrap}.videoblock.portrait video{max-height:70vh;width:auto;margin:0 auto}.videoblock.inline{margin:12px 0}.md a.vlink{display:inline-flex;align-items:center;gap:5px;padding:6px 11px 6px 9px;border-radius:9px;background:var(--brand-soft);color:var(--brand);border:1px solid transparent;font-weight:700;font-size:13px;text-decoration:none;white-space:nowrap;font-variant-numeric:tabular-nums;transition:background .18s ease,border-color .18s ease}.md a.vlink:hover{border-color:color-mix(in srgb,var(--brand) 40%,transparent)}.md a.vlink .ico{fill:currentColor;stroke:none}.md .g{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;vertical-align:-4px;margin-right:1px;flex-shrink:0}.md .g-crit{background:var(--danger-soft);color:var(--danger)}.md .g-warn{background:var(--warn-soft);color:var(--warn)}.md .g-ok{background:var(--ok-soft);color:var(--ok)}.md .g-no{background:var(--danger-soft);color:var(--danger)}.md .g-ask,.md .g-old,.md .g-note{background:var(--sunk);color:var(--ink-faint)}.md .g-key{background:var(--brand-soft);color:var(--brand)}.md .g-red{background:transparent;color:var(--danger)}.md .g-open{background:transparent;color:var(--ink-faint)}.md .g-arrow{background:transparent;color:var(--ink-faint);width:17px}.md .task{list-style:none;margin-left:0;padding-left:0}.md .task li{display:flex;gap:11px;align-items:flex-start;padding:10px 13px;background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:7px}.md .task li:has(input:checked){background:transparent;border-style:dashed;color:var(--ink-faint)}.md .task li:has(input:checked) strong{color:var(--ink-faint);font-weight:600}.md input[type=checkbox]{width:21px;height:21px;margin-top:1px;flex-shrink:0;accent-color:var(--ok);cursor:pointer}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:60;display:flex;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:saturate(180%) blur(14px);border-top:1px solid var(--line-soft);padding-bottom:max(var(--safe-b),12px)}.tabbar a{flex:1;min-height:52px;padding:9px 2px 3px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-decoration:none;color:var(--ink-faint);font-size:10.5px;font-weight:650;transition:color .18s ease;position:relative}.tabbar a[aria-current]{color:var(--brand)}.tabbar a[aria-current]:before{content:"";position:absolute;top:0;width:18px;height:2.5px;border-radius:0 0 3px 3px;background:var(--brand)}body.has-tabbar{padding-bottom:calc(78px + var(--safe-b))}.bar{height:6px;background:var(--sunk);border-radius:999px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--ok);border-radius:999px;transition:width .45s cubic-bezier(.4,0,.2,1)}.pill{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.dim{background:var(--sunk);color:var(--ink-soft)}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.brand{background:var(--brand-soft);color:var(--brand)}.note{display:flex;gap:11px;padding:13px 15px;border-radius:14px;font-size:14.5px;line-height:1.55;margin:14px 0;border:1px solid transparent}.note .ico{margin-top:1px}.note.warn{background:var(--warn-soft);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 22%,transparent)}.note.danger{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 22%,transparent)}.note.quiet{background:transparent;border:1px dashed var(--line);color:var(--ink-soft);font-size:13.5px}.note.brand{background:var(--brand-soft);color:var(--ink);border-color:color-mix(in srgb,var(--brand) 20%,transparent)}.note strong{font-weight:700}.note a{color:inherit;font-weight:700}h2.sec{display:flex;align-items:center;gap:8px;font-size:11.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);font-weight:800;margin:30px 0 12px}h2.sec:after{content:"";flex:1;height:1px;background:var(--line)}.h-page{font-size:27px;line-height:1.18;margin:0 0 6px;letter-spacing:-.032em;font-weight:800}.sub{color:var(--ink-soft);margin:0 0 16px;font-size:15px;line-height:1.55}.lede{padding:22px 0 4px}.fab{position:fixed;right:16px;z-index:55;bottom:calc(90px + var(--safe-b));width:50px;height:50px;border-radius:999px;display:grid;place-items:center;background:var(--ink);color:var(--paper);text-decoration:none;box-shadow:0 5px 18px -4px #14161a59;transition:transform .14s ease}.fab:hover{transform:translateY(-1px)}.fab:active{transform:scale(.94)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
