.ad-slot[data-astro-cid-ygkiugat]{text-align:center;min-height:var(--slot-height,auto);justify-content:center;align-items:center;margin:24px 0;display:flex;position:relative;overflow:hidden}.ad-link[data-astro-cid-ygkiugat]{border-radius:8px;line-height:0;transition:opacity .2s,transform .2s;display:inline-block;overflow:hidden}.ad-link[data-astro-cid-ygkiugat]:hover{opacity:.92;transform:translateY(-1px)}.ad-link[data-astro-cid-ygkiugat] img[data-astro-cid-ygkiugat]{max-width:100%;height:auto;display:block}@media (width<=480px){.ad-slot--sidebar[data-astro-cid-ygkiugat] .ad-link[data-astro-cid-ygkiugat] img[data-astro-cid-ygkiugat],.ad-slot--header[data-astro-cid-ygkiugat] .ad-link[data-astro-cid-ygkiugat] img[data-astro-cid-ygkiugat]{max-width:100%;height:auto}}*,:before,:after{box-sizing:border-box;border-width:0;margin:0;padding:0}html{text-size-adjust:100%;overscroll-behavior:auto;font-size:100%;line-height:1.5;overflow-x:clip}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;transition:background-color .3s var(--ease-out,ease),color .3s var(--ease-out,ease);margin:0;padding:0;font-family:Hanken Grotesk,system-ui,-apple-system,sans-serif;line-height:1.65;display:block;overflow:hidden auto}[data-theme=dark] body{transition:background-color .3s,color .3s}img{max-width:100%;height:auto;display:block}a{color:var(--ember);text-decoration:none}:root{--paper:#faf7f2;--paper-2:#f1ece3;--paper-3:#eae3d8;--ink:#1a1712;--ink-2:#565047;--muted:#8c8479;--line:#e4ddd1;--line-2:#efeae0;--ember:#c2410c;--ember-strong:#9a3412;--ember-soft:#fbeee7;--ember-tint:#f6e7df;--shadow-sm:0 1px 2px #1a17120a;--shadow-md:0 10px 28px -16px #1a171238;--shadow-lg:0 22px 48px -20px #1a171247;--r:12px;--r-sm:5px;--r-xs:3px;--r-pill:999px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s7:32px;--s8:40px;--s9:48px;--font-body:"Hanken Grotesk", system-ui, -apple-system, sans-serif;--font-display:"Fraunces", Georgia, "Times New Roman", serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.0625rem;--text-xl:1.25rem;--cat-teknologi:#2f6fed;--cat-tutorial:#0e9b68;--cat-keamanan:#d8443f;--cat-docker:#7c3aed;--cat-tools-review:#b45309;--cat-bisnis:#a16207;--cat-finance:#0e9b68;--cat-ai-tech:#7c3aed;--cat-startup:#db2777;--cat-linux:#5b6770;--cat-devops:#2563eb;--footer-bg:#221b12;--footer-text:#c9c1b4;--footer-heading:#f4efe6;--footer-muted:#9a9082;--footer-border:#2c261e;--footer-bottom:#6a6256;--ease-out:cubic-bezier(.22,1,.36,1);--ease-spring:cubic-bezier(.34,1.56,.64,1);--dur-fast:.15s;--dur-base:.25s;--dur-mid:.3s;--dur-slow:.4s;--header-h:63px}[data-theme=dark]{--paper:#15120d;--paper-2:#1e1a14;--paper-3:#272019;--ink:#f3ede3;--ink-2:#b8af9f;--muted:#8b8275;--line:#2d271f;--line-2:#241f18;--ember:#ee6a33;--ember-strong:#d8551f;--ember-soft:#2a1810;--ember-tint:#33211a;--shadow-sm:0 1px 2px #0006;--shadow-md:0 10px 28px -16px #0009;--shadow-lg:0 22px 48px -20px #000000b3;--cat-teknologi:#6fa0f7;--cat-tutorial:#45c890;--cat-keamanan:#ef7a76;--cat-docker:#b58bf5;--cat-tools-review:#e09a4e;--cat-bisnis:#d6a35c;--cat-finance:#45c890;--cat-ai-tech:#b58bf5;--cat-startup:#f075a8;--cat-linux:#97a2ab;--cat-devops:#6fa0f7;--footer-bg:#1a150f;--footer-text:#bdb5a8;--footer-heading:#f4efe6;--footer-muted:#8c8478;--footer-border:#271f18;--footer-bottom:#5c554a}.container{width:100%;padding:0 var(--s4);margin:0 auto}.reading-progress{background:var(--ember);z-index:200;width:0;height:3px;transition:width 80ms linear;position:fixed;top:0;left:0}.site-header{background:color-mix(in srgb,var(--paper) 94%,transparent);-webkit-backdrop-filter:saturate(140%)blur(12px);border-bottom:1px solid var(--line);z-index:100;position:sticky;top:0;box-shadow:0 1px 3px #1a17120a}.header-bar{padding:var(--s3) 0;justify-content:space-between;align-items:center;display:flex;position:relative}.site-logo{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);align-items:center;gap:9px;font-size:1.4rem;font-weight:600;line-height:1;display:inline-flex}.logo-mark{background:var(--ember);border-radius:2px;flex-shrink:0;width:11px;height:11px}.logo-kuy{color:var(--ember)}.header-actions{align-items:center;gap:8px;display:flex}.theme-toggle,.nav-toggle-btn{position:relative}.theme-toggle:before,.nav-toggle-btn:before{content:"";position:absolute;inset:-3px}.theme-toggle{border:1px solid var(--line);border-radius:var(--r-sm);width:38px;height:38px;color:var(--ink-2);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.theme-toggle:hover{border-color:var(--ember);color:var(--ember)}[data-theme=dark] .site-header{background:color-mix(in srgb,var(--paper) 90%,transparent);box-shadow:0 1px 3px #0000004d}[data-theme=dark] .theme-toggle{background:var(--paper-2);border-color:var(--line);color:var(--ink)}.theme-toggle .icon-moon,[data-theme=dark] .theme-toggle .icon-sun{display:none}[data-theme=dark] .theme-toggle .icon-moon{display:block}.nav-toggle-btn{border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;background:0 0;flex-direction:column;justify-content:center;gap:5px;width:38px;height:38px;padding:0 9px;transition:border-color .2s;display:inline-flex}.nav-toggle-btn:hover{border-color:var(--ember)}.nav-toggle-btn .bar{background:var(--ink);border-radius:2px;width:100%;height:1.5px;transition:transform .25s,opacity .25s;display:block}body.nav-open .nav-toggle-btn .bar:first-child{transform:translateY(6.5px)rotate(45deg)}body.nav-open .nav-toggle-btn .bar:nth-child(2){opacity:0}body.nav-open .nav-toggle-btn .bar:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.nav-backdrop{opacity:0;visibility:hidden;z-index:98;background:#1a171273;transition:opacity .3s,visibility .3s;position:fixed;inset:0}body.nav-open .nav-backdrop{opacity:1;visibility:visible}.nav-menu{background:var(--paper);z-index:99;width:min(80vw,300px);padding:72px var(--s5) var(--s5);border-left:1px solid var(--line);flex-direction:column;gap:2px;transition:transform .32s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-12px 0 40px -20px #1a171266}body.nav-open .nav-menu{transform:translate(0)}.nav-menu a{font-family:var(--font-body);color:var(--ink-2);border-bottom:1px solid var(--line-2);padding:18px 4px;font-size:1rem;font-weight:500;transition:color .2s;position:relative}.nav-menu a:last-child{border-bottom:none}.nav-menu a:hover,.nav-menu a.active{color:var(--ember)}.nav-menu a.active:before{content:"";background:var(--ember);border-radius:2px;width:3px;height:18px;position:absolute;top:50%;left:-16px;transform:translateY(-50%)}.ticker{background:var(--ink);color:var(--paper);top:var(--header-h);z-index:90;position:sticky;overflow:hidden}.ticker-inner{white-space:nowrap;align-items:center;display:flex;position:relative;overflow:hidden}.ticker-label{font-family:var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--paper);background:var(--ember);padding:10px var(--s4);z-index:3;flex-shrink:0;font-size:.6875rem;font-weight:700;line-height:1;position:relative}.ticker-scroll{color:var(--paper);opacity:.9;padding:10px 0 10px var(--s4);font-size:.875rem;animation:40s linear infinite tick;display:inline-block}.ticker-scroll:hover{animation-play-state:paused}.ticker-inner:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(to left,var(--ink),transparent);width:48px;position:absolute;top:0;bottom:0;right:0}.ticker-item{display:inline-block}.ticker-link{color:inherit;text-decoration:none;transition:color .2s}.ticker-link:hover{color:var(--ember);text-decoration:underline}.ticker-sep{opacity:.5}@keyframes tick{0%{transform:translate(0)}to{transform:translate(-50%)}}.hero-section{padding:var(--s5) 0 var(--s6)}.hero-lead{gap:var(--s4);background:linear-gradient(180deg,color-mix(in srgb,var(--hero-cat,var(--ember)) 7%,var(--paper-2)) 0%,var(--paper-2) 60%);border:1px solid var(--line);border-top:4px solid var(--hero-cat,var(--ember));border-radius:var(--r);color:inherit;grid-template-columns:1fr;text-decoration:none;transition:border-color .25s,box-shadow .25s,transform .25s;display:grid;overflow:hidden}.hero-lead:hover{border-color:color-mix(in srgb,var(--ember) 45%,var(--line));box-shadow:var(--shadow-md);transform:translateY(-2px)}.hero-lead-img{-o-object-fit:cover;object-fit:cover;background:var(--paper-3);width:100%;display:none}.hero-lead-body{padding:var(--s4) var(--s4) var(--s5)}.hero-cat{border-radius:var(--r-xs);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--s4);color:#fff;padding:3px 9px;font-size:.6875rem;font-weight:700;display:inline-block}.hero-title{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:10px;font-size:clamp(1.75rem,7vw,2.75rem);font-weight:600;line-height:1.08}.hero-meta{color:var(--muted);font-size:.8125rem}.hero-excerpt{font-size:var(--text-sm);color:var(--ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:12px;line-height:1.6;display:-webkit-box;overflow:hidden}.hero-readmore{color:var(--ember);letter-spacing:.02em;margin-top:14px;font-size:.8125rem;font-weight:600;transition:transform .2s;display:inline-block}.hero-lead:hover .hero-readmore{transform:translate(4px)}.lead-row{gap:var(--s4);padding:var(--s4) 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);color:inherit;grid-template-columns:1fr;text-decoration:none;transition:padding-left .2s;display:grid}.lead-row+.news-grid{margin-top:var(--s5)}.lead-row:hover{padding-left:6px}.lead-row:hover .lead-row-title{color:var(--ember)}.lead-row-img{-o-object-fit:cover;object-fit:cover;border-radius:var(--r-sm);background:var(--paper-3);width:100%;height:180px}.lead-row-body{min-width:0}.lead-row-title{font-family:var(--font-display);letter-spacing:-.015em;margin:6px 0 8px;font-size:clamp(1.4rem,5vw,2rem);font-weight:600;line-height:1.12;transition:color .2s}.lead-row-excerpt{font-size:var(--text-sm);color:var(--ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:64ch;margin-bottom:8px;line-height:1.6;display:-webkit-box;overflow:hidden}.cat-index-section{padding:var(--s7) 0 0}.cat-index{gap:var(--s3);grid-template-columns:repeat(2,1fr);display:grid}.cat-index-item{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);color:inherit;align-items:center;gap:10px;padding:14px 16px;text-decoration:none;transition:border-color .2s,transform .2s,box-shadow .2s;display:flex}.cat-index-item:hover{border-color:color-mix(in srgb,var(--ember) 40%,var(--line));box-shadow:var(--shadow-sm);transform:translateY(-2px)}.cat-index-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.cat-index-name{font-family:var(--font-display);flex:1;font-size:1.0625rem;font-weight:500}.cat-index-count{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:600}.section-header{margin-bottom:var(--s4);border-bottom:1px solid var(--ink);align-items:baseline;gap:10px;padding-bottom:10px;display:flex}.section-header h2{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.5rem;font-weight:600}.section-header .section-link{color:var(--ember);letter-spacing:.02em;margin-left:auto;font-size:.75rem;font-weight:600}.news-grid{gap:var(--s4);grid-template-columns:1fr;display:grid}.news-card{gap:var(--s3);background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);color:inherit;text-decoration:none;transition:border-color .25s,box-shadow .25s,transform .25s;display:flex;overflow:hidden}.news-card:hover{border-color:color-mix(in srgb,var(--ember) 40%,var(--line));box-shadow:var(--shadow-md);transform:translateY(-2px)}.news-card-img{-o-object-fit:cover;object-fit:cover;background:var(--paper-3);flex-shrink:0;width:112px;height:100%;min-height:104px}.news-card-body{padding:var(--s3) var(--s3) var(--s3) 0;flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex}.news-card-cat{border-radius:var(--r-xs);text-transform:uppercase;letter-spacing:.06em;color:#fff;align-self:flex-start;margin-bottom:6px;padding:2px 7px;font-size:.625rem;font-weight:700;display:inline-block}.news-card-title{font-family:var(--font-display);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:5px;font-size:1.0625rem;font-weight:500;line-height:1.28;display:-webkit-box;overflow:hidden}.news-card-excerpt{color:var(--ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:6px;font-size:.8125rem;line-height:1.5;display:-webkit-box;overflow:hidden}.news-card-meta{color:var(--muted);font-size:.75rem}.article-list{flex-direction:column;display:flex}.article-list-item{gap:var(--s3);padding:var(--s4) 0;border-bottom:1px solid var(--line-2);color:inherit;align-items:flex-start;text-decoration:none;transition:padding-left .2s;display:flex}.article-list-item:last-child{border-bottom:none}.article-list-item:hover{padding-left:6px}.article-list-item:hover .article-list-title{color:var(--ember)}.article-list-img{-o-object-fit:cover;object-fit:cover;border-radius:var(--r-sm);background:var(--paper-3);flex-shrink:0;width:84px;height:64px}.article-list-body{flex:1;min-width:0}.article-list-title{font-family:var(--font-display);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:4px;font-size:1.0625rem;font-weight:500;line-height:1.3;transition:color .2s;display:-webkit-box;overflow:hidden}.article-list-meta{color:var(--muted);font-size:.75rem}.sidebar-box{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);padding:var(--s5);margin-bottom:var(--s5);border-top:3px solid var(--ember)}.sidebar-title{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.14em;color:var(--ink);border-bottom:1px solid var(--ink);margin-bottom:var(--s3);padding-bottom:10px;font-size:.75rem;font-weight:700}.trending-list .trending-item{border-bottom:1px solid var(--line-2);color:inherit;align-items:flex-start;gap:12px;padding:11px 0;text-decoration:none;transition:transform .2s;display:flex}.trending-item:last-child{border-bottom:none}.trending-item:hover{transform:translate(3px)}.trending-item:hover .trending-title{color:var(--ember)}.trending-num{font-family:var(--font-display);color:var(--ember);flex-shrink:0;min-width:26px;font-size:1.5rem;font-weight:600;line-height:1}.trending-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.875rem;font-weight:500;line-height:1.4;transition:color .2s;display:-webkit-box;overflow:hidden}.trending-meta{color:var(--muted);margin-top:3px;font-size:.6875rem}.cat-list-item{border-bottom:1px solid var(--line-2);color:inherit;justify-content:space-between;align-items:center;padding:9px 0;text-decoration:none;transition:padding-left .2s;display:flex}.cat-list-item:last-child{border-bottom:none}.cat-list-item:hover{padding-left:5px}.cat-list-item:hover .cat-list-left{color:var(--ember)}.cat-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-right:9px}.cat-list-left{align-items:center;font-size:.9375rem;font-weight:500;transition:color .2s;display:flex}.cat-count{color:var(--ink-2);background:var(--paper-3);border-radius:var(--r-pill);font-variant-numeric:tabular-nums;padding:1px 8px;font-size:.75rem;font-weight:600}.about-author-name{font-family:var(--font-display);margin-bottom:6px;font-size:1.125rem;font-weight:600}.about-author-bio{color:var(--ink-2);font-size:.875rem;line-height:1.55}.cat-hero{padding:var(--s6) 0;border-bottom:2px solid var(--ink);align-items:flex-end;gap:14px;display:flex}.cat-hero h1{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(2rem,9vw,3rem);font-weight:600;line-height:1}.cat-hero p{color:var(--muted);padding-bottom:8px;font-size:.8125rem}.article-header{padding:var(--s5) 0 0}.article-cat-badge{border-radius:var(--r-xs);text-transform:uppercase;letter-spacing:.08em;color:#fff;margin-bottom:12px;padding:3px 10px;font-size:.6875rem;font-weight:700;display:inline-block}.article-title{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:12px;font-size:clamp(1.9rem,7vw,2.75rem);font-weight:600;line-height:1.1}.article-meta-row{color:var(--muted);padding-bottom:var(--s4);border-bottom:1px solid var(--line);flex-wrap:wrap;gap:12px;font-size:.875rem;display:flex}.article-hero-img{-o-object-fit:cover;object-fit:cover;border-radius:var(--r);width:100%;height:auto;max-height:420px;margin:var(--s4) 0;background:var(--paper-3)}.article-content{padding:var(--s5) 0;color:var(--ink);font-size:clamp(1.0625rem,1.2vw + .5rem,1.2rem);line-height:1.8}.article-content p{max-width:68ch;margin-bottom:1.4rem}.article-content h2{font-family:var(--font-display);letter-spacing:-.01em;border-top:1px solid var(--line);margin:2.5rem 0 1rem;padding-top:1.5rem;font-size:1.6rem;font-weight:600;line-height:1.2}.article-content h2:first-child{border-top:none;margin-top:0;padding-top:0}.article-content h3{margin:1.75rem 0 .625rem;font-size:1.0625rem;font-weight:700}.article-content ul,.article-content ol{margin:0 0 1.5rem 1.5rem}.article-content li{margin-bottom:.625rem}.article-content ul{list-style:outside}.article-content ol{list-style:decimal}.article-content strong{color:var(--ink);font-weight:700}.article-content a{color:var(--ember);text-underline-offset:3px;text-decoration:underline 1px}.article-content a:hover{text-decoration-thickness:2px}.article-content pre{background:var(--paper-3);border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--s5);-webkit-overflow-scrolling:touch;margin:1.5rem 0;font-size:.875rem;line-height:1.7;overflow-x:auto}.article-content pre code{font-size:inherit;color:inherit;background:0 0;border:none;padding:0}.article-content table{border-collapse:collapse;width:100%;margin:1.5rem 0;font-size:.9375rem}.article-content table thead th{background:var(--paper-3);text-align:left;border-bottom:2px solid var(--ink);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);padding:10px 14px;font-size:.8125rem;font-weight:700}.article-content table tbody td{border-bottom:1px solid var(--line-2);vertical-align:top;padding:10px 14px}.article-content table tbody tr:hover{background:var(--ember-tint)}.article-content table tbody tr:last-child td{border-bottom:none}@media (width<=640px){.article-content table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}}.article-content code{background:var(--ember-tint);color:var(--ember-strong);border-radius:var(--r-xs);font-size:.875em;font-family:var(--font-mono);border:1px solid color-mix(in srgb,var(--ember) 15%,transparent);padding:2px 7px}[data-theme=dark] .article-content code{background:var(--ember-soft);color:#f4885f}.article-content blockquote{border-left:3px solid var(--ember);background:var(--paper-2);border-radius:0 var(--r-sm) var(--r-sm) 0;color:var(--ink-2);margin:1.5rem 0;padding:16px 24px;font-style:italic}.article-content blockquote p{margin-bottom:0}.article-content img{-o-object-fit:cover;object-fit:cover;border-radius:var(--r-sm);background:var(--paper-3);width:100%;height:auto;max-height:440px;margin:1.5rem 0;display:block}.article-content pre .copy-btn{z-index:2;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-pill);color:var(--muted);cursor:pointer;opacity:.7;white-space:nowrap;align-items:center;gap:4px;padding:5px 10px;font-family:inherit;font-size:.72rem;line-height:1;transition:opacity .2s,color .2s,border-color .2s;display:inline-flex;position:absolute;top:8px;right:8px}.article-content pre .copy-btn:hover,.article-content pre .copy-btn.copied{opacity:1;color:var(--ember);border-color:var(--ember)}@media (hover:hover){.article-content pre:not(:hover) .copy-btn{opacity:0;pointer-events:none}}@media (hover:none){.article-content pre .copy-btn{opacity:.9}}.article-tags{padding:var(--s4) 0;border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;display:flex}.tag{border:1px solid var(--line);border-radius:var(--r-pill);color:var(--ink-2);padding:4px 12px;font-size:.8125rem;transition:background .15s,color .15s,border-color .15s;display:inline-block}.tag:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}.related-section{padding:var(--s6) 0;border-top:1px solid var(--line)}.related-grid{gap:var(--s4);grid-template-columns:1fr;display:grid}.blog-header{padding:var(--s6) 0;border-bottom:2px solid var(--ink);margin-bottom:var(--s5)}.blog-header h1{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(2rem,9vw,3rem);font-weight:600}.blog-list{flex-direction:column;display:flex}.blog-list-item{gap:var(--s3);padding:var(--s4) 0;border-bottom:1px solid var(--line-2);color:inherit;align-items:flex-start;text-decoration:none;transition:padding-left .2s;display:flex}.blog-list-item:last-child{border-bottom:none}.blog-list-item:hover{padding-left:6px}.blog-list-item:hover .blog-list-title{color:var(--ember)}.blog-list-cat{border-radius:var(--r-xs);text-transform:uppercase;letter-spacing:.06em;color:#fff;align-self:flex-start;margin-bottom:6px;padding:2px 7px;font-size:.625rem;font-weight:700;display:inline-block}.blog-list-body{flex:1;min-width:0}.blog-list-title{font-family:var(--font-display);margin-bottom:5px;font-size:1.125rem;font-weight:500;line-height:1.3;transition:color .2s}.blog-list-excerpt{color:var(--ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:6px;font-size:.8125rem;line-height:1.5;display:-webkit-box;overflow:hidden}.blog-list-meta{color:var(--muted);font-size:.75rem}.about-hero{padding:var(--s6) 0;border-bottom:2px solid var(--ink)}.about-hero h1{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:8px;font-size:clamp(2rem,9vw,3rem);font-weight:600}.about-content{padding:var(--s6) 0}.about-content p{color:var(--ink-2);margin-bottom:1rem;font-size:.9375rem;line-height:1.8}.topics-grid{gap:var(--s3);margin:var(--s5) 0;grid-template-columns:1fr;display:grid}.topic-card{padding:var(--s4);border:1px solid var(--line);border-radius:var(--r);background:var(--paper-2)}.topic-card h3{font-family:var(--font-display);margin-bottom:5px;font-size:1.0625rem;font-weight:600}.topic-card p{color:var(--muted);margin-bottom:0;font-size:.8125rem;line-height:1.5}.cat-bg-teknologi,.cat-bg-Teknologi{background:var(--cat-teknologi)}.cat-bg-tutorial,.cat-bg-Tutorial{background:var(--cat-tutorial)}.cat-bg-keamanan,.cat-bg-Keamanan{background:var(--cat-keamanan)}.cat-bg-docker,.cat-bg-Docker{background:var(--cat-docker)}.cat-bg-tools-review,.cat-bg-Tools-Review{background:var(--cat-tools-review)}.cat-bg-bisnis,.cat-bg-Bisnis{background:var(--cat-bisnis)}.cat-bg-finance,.cat-bg-Finance{background:var(--cat-finance)}.cat-bg-ai-tech,.cat-bg-AI-Tech{background:var(--cat-ai-tech)}.cat-bg-startup,.cat-bg-Startup{background:var(--cat-startup)}.cat-bg-devops,.cat-bg-DevOps{background:var(--cat-devops)}.cat-bg-uncategorized,.cat-bg-Uncategorized{background:#6b7280}.cat-bg-linux,.cat-bg-Linux{background:var(--cat-linux)}.img-placeholder{position:relative;overflow:hidden}.img-placeholder img{-o-object-fit:cover;object-fit:cover;z-index:2;width:100%;height:100%;display:block;position:relative}.img-placeholder span{display:none}.site-footer{background:var(--footer-bg);color:var(--footer-text);margin-top:var(--s7);padding-top:var(--s7);border-top:1px solid var(--footer-border)}.footer-grid{gap:var(--s6);padding-bottom:var(--s7);border-bottom:1px solid var(--footer-border);grid-template-columns:1fr;display:grid}.footer-section h4{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.14em;color:var(--footer-heading);margin-bottom:var(--s3);font-size:.75rem;font-weight:700}.footer-section p{color:var(--footer-muted);font-size:.875rem;line-height:1.6}.footer-links{flex-direction:column;gap:10px;display:flex}.footer-links a{color:var(--footer-text);font-size:.875rem;transition:color .2s}.footer-links a:hover{color:var(--ember)}.footer-bottom{padding:var(--s4) 0;color:var(--footer-bottom);align-items:center;gap:var(--s3);text-align:center;flex-direction:column;font-size:.8125rem;display:flex}.footer-legal-links{flex-wrap:wrap;justify-content:center;gap:8px 18px;width:100%;display:flex}.footer-legal-links a{color:var(--footer-text);align-items:center;min-height:36px;padding:8px 4px;font-size:.8125rem;transition:color .2s;display:inline-flex}.footer-legal-links a:hover{color:var(--ember)}.footer-copyright{color:var(--footer-bottom);opacity:.85;font-size:.75rem;display:block}@media (width>=768px){.footer-bottom{flex-direction:row;justify-content:space-between}}.back-to-top{z-index:90;border-radius:var(--r-pill);background:var(--ink);width:44px;height:44px;color:var(--paper);border:1px solid var(--line);cursor:pointer;opacity:0;visibility:hidden;justify-content:center;align-items:center;transition:opacity .25s,transform .25s,visibility .25s,background .2s;display:flex;position:fixed;bottom:20px;right:20px;transform:translateY(8px)}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{background:var(--ember);border-color:var(--ember)}@supports (padding:env(safe-area-inset-top)){.site-header{padding-top:env(safe-area-inset-top)}.ticker{top:calc(var(--header-h) + env(safe-area-inset-top,0px))}.reading-progress{top:env(safe-area-inset-top,0)}.back-to-top{bottom:calc(20px + env(safe-area-inset-bottom,0))}.ad-slot--anchor{padding-bottom:env(safe-area-inset-bottom)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.ticker-scroll{animation:none}.js .reveal{opacity:1!important;transition:none!important;transform:none!important}.hero-lead:hover,.news-card:hover,.lead-row:hover,.cat-index-item:hover{transform:none!important}}img[loading=lazy]{transition:opacity .3s}.js img[loading=lazy]:not(.loaded){opacity:0}img[loading=lazy].loaded,img[loading=lazy]:not([src=""]){opacity:1}img{background:var(--line-2)}@media (width>=640px){.container{padding:0 20px}.lead-row-img{height:200px}.news-grid{grid-template-columns:repeat(2,1fr)}.news-card{flex-direction:column}.news-card-img{width:100%;height:150px}.news-card-body{padding:var(--s3) var(--s4) var(--s4)}.related-grid,.topics-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=768px){.container{max-width:720px;padding:0 24px}.nav-toggle-btn,.nav-backdrop{display:none!important}.nav-menu{width:auto;box-shadow:none;background:0 0;border:none;flex-direction:row;align-items:center;gap:2px;padding:0;position:static;overflow:visible;transform:none}.nav-menu a{border-bottom:none;padding:9px 11px;font-size:.8125rem}.nav-menu a.active:before{display:none}.nav-menu a.active{position:relative}.nav-menu a.active:after{content:"";background:var(--ember);border-radius:2px;height:2px;position:absolute;bottom:2px;left:11px;right:11px}.news-grid{gap:var(--s4);grid-template-columns:repeat(2,1fr)}.news-card-img{height:168px}.article-title{font-size:clamp(2.2rem,4vw,2.75rem)}.related-grid,.footer-grid,.topics-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=900px){.hero-lead{align-items:center;gap:var(--s6);grid-template-columns:1.1fr .9fr}.hero-lead-img{height:420px;display:block}.hero-lead-body{padding:var(--s5) var(--s6) var(--s6)}.hero-excerpt{-webkit-line-clamp:3}.lead-row{gap:var(--s5);grid-template-columns:300px 1fr;align-items:center}.lead-row-img{height:200px}.cat-index{grid-template-columns:repeat(3,1fr)}}@media (width>=1024px){:root{--header-h:71px}.container{max-width:1024px}.site-header .header-bar{padding:16px 0}.content-grid{gap:var(--s7);grid-template-columns:1fr 300px;align-items:start;display:grid}.news-grid{gap:var(--s4);grid-template-columns:repeat(3,1fr)}.news-card-title{font-size:1rem}.article-title{font-size:2.75rem}.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr}.topics-grid{grid-template-columns:repeat(3,1fr)}.blog-grid,.article-grid{gap:var(--s7);grid-template-columns:1fr 300px;align-items:start;display:grid}}@media (width>=1280px){.container{max-width:1180px}.hero-lead-img{height:480px}.article-content p{max-width:68ch}.lead-row-excerpt{max-width:64ch}}@media (width>=1600px){.container{max-width:1240px}.article-content{max-width:760px}.lead-row-body{max-width:640px}.news-card-excerpt,.article-list-title{max-width:none}}.js .reveal{opacity:0;transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out);transition-delay:calc(var(--i,0) * 60ms);transform:translateY(16px)}.js .reveal.is-in{opacity:1;transform:none}.theme-toggle:active,.nav-toggle-btn:active,.back-to-top:active{transition-duration:var(--dur-fast);transform:scale(.92)}.copy-btn:active{transition-duration:var(--dur-fast);transform:scale(.94)}.news-card:active,.hero-lead:active,.lead-row:active,.article-list-item:active,.trending-item:active,.cat-index-item:active{transition-duration:var(--dur-fast);transform:translateY(0)scale(.99)}.nav-menu{transition:transform var(--dur-mid) var(--ease-out)}.nav-backdrop{transition:opacity var(--dur-mid) var(--ease-out),visibility var(--dur-mid)}.back-to-top{transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-spring),visibility var(--dur-base),background var(--dur-base)}.ticker-scroll{animation:40s linear infinite tick}.theme-toggle:active,.nav-toggle-btn:active,.back-to-top:active{transform:scale(.94)}.news-card:active,.hero-lead:active,.lead-row:active,.article-list-item:active,.trending-item:active,.cat-index-item:active{transform:translateY(0)scale(.992)}.copy-btn:active{transform:scale(.96)}:focus-visible{outline:2px solid var(--ember);outline-offset:2px;border-radius:2px}.theme-toggle:focus-visible,.nav-toggle-btn:focus-visible,.back-to-top:focus-visible{outline-offset:3px}.nav-menu a:focus-visible{color:var(--ember);outline-offset:-2px}@media (hover:none){.news-card:hover,.hero-lead:hover,.lead-row:hover,.article-list-item:hover,.trending-item:hover,.cat-index-item:hover{transform:none}.article-list-item:hover,.lead-row:hover,.trending-item:hover{padding-left:0}}.copy-btn.copied{color:var(--ember);border-color:var(--ember)}.copy-btn.copied span:last-child{font-weight:600}
