/* Gerbang 99 - asian4d99.com. Light field-notebook theme, system fonts, no JS. */
:root{
  --paper:#F7F5EF; --card:#FFFFFF; --ink:#1E1C2A; --muted:#55526A; --line:#DAD5C8;
  --indigo:#2F3A8F; --indigo-dk:#1F2766; --indigo-lt:#E8EAF7;
  --amber:#E2A50F; --amber-lt:#FFF3D1; --red:#A3261C; --red-lt:#FBE9E6; --green:#2D6A46;
  --mono:ui-monospace,"Cascadia Mono","Segoe UI Mono",Consolas,"Liberation Mono",monospace;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 var(--sans);overflow-wrap:break-word}
img,svg{max-width:100%;height:auto}
a{color:var(--indigo);text-underline-offset:2px}
a:hover{color:var(--indigo-dk)}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.gb-skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:10px 14px;z-index:9}
.gb-skip:focus{left:8px}
.gb-mono{font-family:var(--mono);font-size:.92em}

/* strip + masthead */
.gb-strip{background:var(--ink);color:#E9E6F2;font-size:14px;line-height:1.45}
.gb-strip p{margin:0;padding:8px 16px;max-width:1180px;margin-inline:auto}
.gb-strip a{color:#FFD879}
.gb-age{display:inline-block;font:700 12px/1 var(--mono);padding:4px 6px;border:1.5px solid currentColor;border-radius:3px;margin-right:6px;vertical-align:1px}
.gb-mast{border-bottom:1px solid var(--line);background:var(--paper)}
.gb-mast-in{max-width:1180px;margin:0 auto;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.gb-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);min-height:48px}
.gb-mark{flex:0 0 40px}
.gb-brand-t{display:flex;flex-direction:column;line-height:1.2}
.gb-brand-n{font-weight:800;font-size:21px;letter-spacing:-.01em}
.gb-brand-s{font-size:13px;color:var(--muted)}
.gb-stamp{margin:0;font:13px/1.2 var(--mono);color:var(--muted);border:1px dashed var(--line);padding:6px 10px;border-radius:4px;background:var(--card)}
.gb-stamp span{text-transform:uppercase;letter-spacing:.06em}

/* nav */
.gb-nav{background:var(--card);border-bottom:2px solid var(--ink);position:sticky;top:0;z-index:5}
.gb-nav ul{list-style:none;margin:0 auto;padding:0 8px;display:flex;gap:2px;overflow-x:auto;max-width:1180px;scrollbar-width:thin}
.gb-nav a{display:block;padding:13px 12px;min-height:48px;white-space:nowrap;text-decoration:none;color:var(--ink);font-weight:600;font-size:15px;border-bottom:3px solid transparent;margin-bottom:-2px}
.gb-nav a:hover{color:var(--indigo)}
.gb-nav a[aria-current="page"]{border-bottom-color:var(--amber);color:var(--indigo-dk)}

/* layout */
.gb-shell{max-width:1180px;margin:0 auto;padding:20px 16px 40px;display:grid;grid-template-columns:minmax(0,1fr);gap:28px}
@media (min-width:980px){.gb-shell{grid-template-columns:minmax(0,1fr) 320px;gap:44px;padding-top:28px}
  .gb-side{position:sticky;top:72px;align-self:start}}
.gb-art{max-width:760px}
.gb-crumb ol{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:6px;font:14px/1.4 var(--mono);color:var(--muted)}
.gb-crumb li+li::before{content:"/";margin-right:6px;color:var(--line)}
.gb-crumb a{display:inline-block;padding:4px 0}
h1{font-size:clamp(28px,4.6vw,40px);line-height:1.15;letter-spacing:-.02em;margin:0 0 12px}
h2{font-size:clamp(22px,3vw,27px);line-height:1.25;margin:40px 0 12px;padding-top:12px;border-top:1px solid var(--line);scroll-margin-top:70px}
h3{font-size:18px;line-height:1.35;margin:0}
.gb-meta{font-size:14px;color:var(--muted);margin:0 0 18px}
.gb-lead{font-size:19px;line-height:1.6;margin:0 0 20px;padding-left:14px;border-left:4px solid var(--amber)}
.gb-upd{margin-top:36px;font:14px/1.4 var(--mono);color:var(--muted)}
p,ul,ol{margin:0 0 16px}
li{margin-bottom:6px}

/* toc */
.gb-toc{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:14px 18px;margin:0 0 8px}
.gb-toc-h{margin:0 0 6px;font:700 13px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.gb-toc ol{margin:0;padding-left:22px;font-size:16px}
.gb-toc li{margin:0;padding:7px 0;line-height:1.45}
.gb-toc a{display:inline}

/* facts */
.gb-facts h2{border-top:0;margin-top:20px}
.gb-dl{margin:0 0 12px;display:grid;grid-template-columns:1fr;gap:10px}
@media (min-width:640px){.gb-dl{grid-template-columns:1fr 1fr}}
.gb-dl div{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--indigo);border-radius:4px;padding:10px 14px}
.gb-dl dt{font:700 12px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}
.gb-dl dd{margin:0;font-weight:600}
.gb-note{font-size:14px;color:var(--muted)}

/* lists */
.gb-steps{counter-reset:s;list-style:none;padding:0}
.gb-steps>li{counter-increment:s;position:relative;padding:0 0 0 46px;margin-bottom:14px}
.gb-steps>li::before{content:counter(s);position:absolute;left:0;top:1px;width:32px;height:32px;border-radius:50%;background:var(--indigo);color:#fff;font:700 15px/32px var(--mono);text-align:center}
.gb-flags{list-style:none;padding:0}
.gb-flags li{padding:8px 12px 8px 40px;background:var(--red-lt);border-left:4px solid var(--red);border-radius:0 4px 4px 0;position:relative}
.gb-flags li::before{content:"!";position:absolute;left:14px;top:8px;font:800 16px/1.6 var(--mono);color:var(--red)}
.gb-ticks{list-style:none;padding:0;margin:0 0 10px;font-size:15px}
.gb-ticks li{padding-left:24px;position:relative}
.gb-ticks li::before{content:"";position:absolute;left:4px;top:7px;width:8px;height:12px;border:solid var(--green);border-width:0 3px 3px 0;transform:rotate(40deg)}
.gb-rank{list-style:none;padding:0}
.gb-rank li{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:12px 16px;margin-bottom:12px}
.gb-rank-k{font:700 16px/1.4 var(--mono);color:var(--indigo-dk)}
.gb-rank-v{float:right;font:13px/1.8 var(--mono);color:var(--muted)}
.gb-rank p{margin:6px 0 0;clear:both}
.gb-map{padding-left:20px}

/* tables */
.gb-table-wrap{overflow-x:auto;margin:0 0 18px;border:1px solid var(--line);border-radius:6px;background:var(--card)}
.gb-table{width:100%;border-collapse:collapse;font-size:15px;min-width:520px}
.gb-table caption{text-align:left;padding:10px 14px;font:600 13px/1.4 var(--mono);color:var(--muted);border-bottom:1px solid var(--line)}
.gb-table th,.gb-table td{padding:10px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.gb-table thead th{background:var(--indigo-lt);font-size:14px}
.gb-table tbody tr:last-child td,.gb-table tbody tr:last-child th{border-bottom:0}
.gb-table tbody th{width:44%;font-weight:600}
.gb-log td:first-child{font-family:var(--mono);font-size:14px;white-space:nowrap}
code{font-family:var(--mono);font-size:.9em;background:var(--indigo-lt);padding:1px 5px;border-radius:3px}
.gb-formula{font:600 16px/1.5 var(--mono);background:var(--amber-lt);border:1px dashed var(--amber);padding:12px 14px;border-radius:4px}

/* callouts */
.gb-callout{border-radius:6px;padding:14px 16px;margin:0 0 18px}
.gb-callout p:last-child{margin:0}
.gb-callout-warn{background:var(--amber-lt);border:1px solid var(--amber)}

/* faq + related */
.gb-faq details{background:var(--card);border:1px solid var(--line);border-radius:6px;margin-bottom:10px}
.gb-faq summary{cursor:pointer;padding:14px 16px;list-style:none;display:flex;justify-content:space-between;gap:12px;min-height:48px}
.gb-faq summary::-webkit-details-marker{display:none}
.gb-faq summary::after{content:"+";font:700 22px/1 var(--mono);color:var(--indigo)}
.gb-faq details[open] summary::after{content:"\2212"}
.gb-faq details p{padding:0 16px 14px;margin:0}
.gb-rel ul{list-style:none;padding:0}
.gb-rel li{padding:10px 0;border-bottom:1px dashed var(--line)}
.gb-rel span{color:var(--muted);font-size:15px}

/* side + ad */
.gb-card{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:16px 18px;margin-bottom:18px}
.gb-card-h{margin:0 0 10px;font:700 13px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.gb-card-more{margin:0;font-size:15px}
.gb-ad{background:var(--indigo-dk);color:#EDEBF7;border-radius:6px;padding:16px 18px;margin:0 0 18px}
.gb-ad p{margin:0 0 10px;font-size:15px}
.gb-ad strong{color:#fff}
.gb-ad-tag{font:700 12px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:#FFD879}
.gb-ad-h{font-weight:800;font-size:19px;color:#fff}
.gb-ad-btn{display:inline-block;background:var(--amber);color:var(--ink);font-weight:800;text-decoration:none;padding:12px 20px;border-radius:4px;min-height:48px}
.gb-ad-btn:hover{background:#F4BC33;color:var(--ink)}
.gb-ad-fine{font-size:13px !important;color:#C9C6DC;margin:0 !important}
.gb-ad-inline{margin-top:28px}

/* footer */
.gb-foot{background:var(--ink);color:#D9D6E6;font-size:15px}
.gb-foot a{color:#FFFFFF;display:inline-block;padding:4px 0}
.gb-foot-in{max-width:1180px;margin:0 auto;padding:32px 16px 8px;display:grid;grid-template-columns:1fr;gap:24px}
@media (min-width:760px){.gb-foot-in{grid-template-columns:1.4fr 1fr 1fr}}
.gb-foot ul{list-style:none;padding:0;margin:0}
.gb-foot li{margin:0}
.gb-foot-n{font-weight:800;font-size:19px;color:#fff;margin-bottom:8px}
.gb-foot-h{font:700 13px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:#FFD879;margin-bottom:8px}
.gb-foot-base{max-width:1180px;margin:0 auto;padding:16px;border-top:1px solid #3A3750;font-size:14px;color:#B8B5CB}
