.cc-banner[data-astro-cid-kror3uvh]{left:var(--space-6);bottom:var(--space-6);z-index:1200;width:min(30rem, calc(100vw - 2 * var(--space-6)));background:var(--color-card);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);animation:.4s cubic-bezier(.22,.61,.36,1) both cc-in;position:fixed}.cc-banner[data-astro-cid-kror3uvh][hidden]{display:none}.cc-inner[data-astro-cid-kror3uvh]{padding:var(--space-5) var(--space-5) var(--space-4)}.cc-title[data-astro-cid-kror3uvh]{letter-spacing:-.01em;color:var(--color-fg);margin:0 0 var(--space-2);font-size:1.0625rem;font-weight:800}.cc-title[data-astro-cid-kror3uvh]:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px;border-radius:var(--radius-sm)}.cc-desc[data-astro-cid-kror3uvh]{color:var(--color-muted);margin:0 0 var(--space-4);font-size:.875rem;line-height:1.6}.cc-desc[data-astro-cid-kror3uvh] strong[data-astro-cid-kror3uvh]{color:var(--color-body);font-weight:700}.cc-desc[data-astro-cid-kror3uvh] a[data-astro-cid-kror3uvh]{color:var(--color-link);text-underline-offset:2px;text-decoration:underline}.cc-actions[data-astro-cid-kror3uvh]{gap:var(--space-3);flex-wrap:wrap;display:flex}.cc-btn[data-astro-cid-kror3uvh]{border-radius:var(--radius-button);cursor:pointer;flex:1 1 0;min-width:8rem;padding:.75rem 1.25rem;font-family:inherit;font-size:.9375rem;font-weight:700;transition:background .2s,border-color .2s,transform .2s}.cc-btn[data-astro-cid-kror3uvh]:hover{transform:translateY(-1px)}.cc-btn-primary[data-astro-cid-kror3uvh]{background:var(--color-primary);color:var(--color-on-primary);border:1px solid var(--color-primary)}.cc-btn-primary[data-astro-cid-kror3uvh]:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.cc-btn-secondary[data-astro-cid-kror3uvh]{background:var(--color-card);color:var(--color-fg);border:1px solid var(--color-border-strong)}.cc-btn-secondary[data-astro-cid-kror3uvh]:hover{background:var(--color-surface);border-color:var(--color-muted)}@keyframes cc-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.cc-banner[data-astro-cid-kror3uvh]{animation:none}.cc-btn[data-astro-cid-kror3uvh]:hover{transform:none}}@media (width<=30rem){.cc-banner[data-astro-cid-kror3uvh]{left:var(--space-3);right:var(--space-3);bottom:var(--space-3);width:auto}}@media print{.cc-banner[data-astro-cid-kror3uvh]{display:none!important}}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/plus-jakarta-sans-vietnamese-wght-normal.qRpaaN48.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/plus-jakarta-sans-latin-ext-wght-normal.DmpS2jIq.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/plus-jakarta-sans-latin-wght-normal.eXO_dkmS.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg:#faf9f7;--color-card:#fff;--color-surface:#f1f4f9;--color-surface-2:#eceef3;--color-fg:#1b1f27;--color-body:#2b3340;--color-muted:#5a6473;--color-faint:#6e6a60;--color-border:#ebe8e2;--color-border-strong:#dcd8d0;--color-primary:#2563eb;--color-primary-hover:#1e4fd0;--color-link:#1d4ed8;--color-on-primary:#fff;--color-accent-bg:#eef3ff;--color-accent-fg:#1e4fd0;--color-code-bg:#eef2f9;--color-code-fg:#1e4fd0;--color-focus:#0b3d91;--color-footer-bg:#1b1f27;--color-footer-fg:#d6dae1;--color-footer-muted:#7f8795;--color-footer-border:#2c3140;--font-sans:"Plus Jakarta Sans Variable", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;--container:75rem;--gutter:clamp(1.25rem, .4rem + 3vw, 3.5rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:.3125rem;--radius:.8125rem;--radius-md:.75rem;--radius-lg:1rem;--radius-button:.6875rem;--radius-pill:999px;--shadow-card:0 24px 60px -28px #1b1f2747}*,:before,:after{box-sizing:border-box}html{font-family:var(--font-sans);color:var(--color-body);background:var(--color-bg);-webkit-text-size-adjust:100%;scroll-behavior:smooth;line-height:1.6}body{background:var(--color-bg);flex-direction:column;min-height:100vh;margin:0;font-size:1.0625rem;display:flex}main{flex:1 0 auto}h1,h2,h3,h4{color:var(--color-fg);letter-spacing:-.02em;text-wrap:balance;line-height:1.12}h1{letter-spacing:-.025em;margin:0 0 var(--space-4);font-size:clamp(2.1rem,1.4rem + 3.2vw,3.1rem)}p{margin:0 0 var(--space-4)}a{color:var(--color-link);text-underline-offset:.15em}a:hover{color:var(--color-primary-hover)}img{max-width:100%;height:auto}code,kbd,samp,pre{font-family:var(--font-mono)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px;border-radius:2px}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.page{padding-block:var(--space-8) var(--space-16)}.skip-link{left:var(--space-2);top:var(--space-2);z-index:1000;padding:var(--space-2) var(--space-4);background:var(--color-fg);color:#fff;border-radius:var(--radius-button);transition:transform .15s;position:absolute;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.eyebrow{font-family:var(--font-mono);letter-spacing:.04em;color:var(--color-primary);margin:0 0 var(--space-2);font-size:.8125rem;font-weight:500}.pill{align-items:center;gap:var(--space-2);background:var(--color-accent-bg);color:var(--color-accent-fg);border-radius:var(--radius-pill);padding:.4rem .85rem;font-size:.8125rem;font-weight:600;line-height:1;display:inline-flex}.pill:before{content:"";background:var(--color-primary);border-radius:50%;width:.4375rem;height:.4375rem}.pill.no-dot:before{display:none}.brand-mark{background:var(--color-primary);color:#fff;font-family:var(--font-mono);border-radius:7px;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.prose{color:var(--color-body)}.prose>*+*{margin-top:var(--space-4)}.prose>p{font-size:1.0625rem;line-height:1.75}.prose>p:first-of-type{font-size:1.1875rem;font-weight:500;line-height:1.7}.prose h2{margin:var(--space-12) 0 var(--space-4);font-size:clamp(1.45rem,1.2rem + 1vw,1.6875rem);font-weight:800}.prose h3{letter-spacing:-.01em;margin:var(--space-8) 0 var(--space-2);font-size:1.1875rem;font-weight:700}.prose :is(h2,h3,h4)[id]{scroll-margin-top:var(--space-6)}.prose a{color:var(--color-link);text-underline-offset:2px;text-decoration:underline}.prose strong{color:var(--color-fg);font-weight:700}.prose ul,.prose ol{padding-left:1.35em}.prose li{margin-top:var(--space-2);line-height:1.6}.prose ul>li::marker{color:var(--color-primary)}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--color-code-bg);color:var(--color-code-fg);border-radius:var(--radius-sm);padding:.1em .4em;font-size:.86em}.prose pre{margin:var(--space-6) 0;padding:var(--space-4) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.875rem;line-height:1.7;overflow-x:auto}.prose pre>code{font-size:inherit;background:0 0;padding:0}.code-block{position:relative}.code-copy{top:var(--space-2);right:var(--space-2);border-radius:var(--radius-sm);color:#d6dae1;cursor:pointer;background:#24292ebf;border:1px solid #ffffff38;place-items:center;width:2rem;height:2rem;padding:0;transition:background .15s,color .15s,border-color .15s;display:grid;position:absolute}.code-copy:hover{color:#fff;background:#ffffff2e}.code-copy:focus-visible{outline-color:#9ec1ff}.code-copy.is-copied{color:#7ee2a8;border-color:#7ee2a88c}.code-copy svg{display:block}.article-figure{margin:var(--space-8) 0}.article-figure img{border:1px solid var(--color-border);border-radius:var(--radius-md);max-width:100%;height:auto;display:block}.article-figure figcaption{margin-top:var(--space-3);color:var(--color-muted);font-size:.875rem;line-height:1.6}.prose table{width:100%;margin:var(--space-6) 0;border:1px solid var(--color-border);border-radius:var(--radius-md);border-collapse:separate;border-spacing:0;font-size:.95rem;overflow:hidden}.prose caption{text-align:left;color:var(--color-muted);margin-bottom:var(--space-2)}.prose th,.prose td{text-align:left;vertical-align:top;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.prose tbody tr:last-child td{border-bottom:0}.prose thead th{background:var(--color-surface);color:var(--color-fg);border-bottom:1px solid var(--color-border-strong);font-weight:700}@media (width<=40rem){.prose table{font-size:.875rem}.prose th,.prose td{padding:var(--space-2) var(--space-3);hyphens:auto}.prose th code,.prose td code{hyphens:none;overflow-wrap:anywhere}}.prose blockquote{margin:var(--space-6) 0;padding:var(--space-4) var(--space-6);border-left:4px solid var(--color-primary);background:var(--color-accent-bg);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--color-body)}.prose blockquote>:last-child{margin-bottom:0}.page-meta{color:var(--color-muted);font-size:.9rem}.bfsg-cta{align-items:center;gap:var(--space-4);margin:var(--space-8) 0;padding:var(--space-5) var(--space-6);background:var(--color-accent-bg);border-radius:var(--radius);flex-wrap:wrap;display:flex}.prose a.bfsg-cta-btn,a.bfsg-cta-btn{align-items:center;gap:var(--space-2);background:var(--color-primary);color:var(--color-on-primary);border-radius:var(--radius-button);flex:none;padding:.8125rem 1.5rem;font-weight:700;text-decoration:none;transition:background .2s,transform .2s;display:inline-flex}.prose a.bfsg-cta-btn:hover,a.bfsg-cta-btn:hover{background:var(--color-primary-hover);color:var(--color-on-primary);transform:translateY(-1px)}.bfsg-cta-btn:after{content:"→"}.bfsg-cta-note{color:var(--color-accent-fg);flex:14rem;font-size:.9rem;line-height:1.5}.decision{counter-reset:decision;margin:var(--space-6) 0;gap:var(--space-3);list-style:none;display:grid}.prose ol.decision{padding-left:0}.decision>li{counter-increment:decision;padding:var(--space-4) var(--space-5) var(--space-4) calc(var(--space-10) + var(--space-3));background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);margin:0;position:relative}.decision>li:before{content:counter(decision);left:var(--space-4);top:var(--space-4);background:var(--color-primary);width:1.75rem;height:1.75rem;color:var(--color-on-primary);font-family:var(--font-mono);border-radius:8px;justify-content:center;align-items:center;font-size:.8125rem;font-weight:700;display:inline-flex;position:absolute}.decision-q{margin:0 0 var(--space-2);color:var(--color-fg);font-weight:700}.decision-o{margin:var(--space-1) 0 0;font-size:.95rem;line-height:1.55}.decision-tag{min-width:3.4em;margin-right:var(--space-2);border-radius:var(--radius-sm);text-align:center;padding:.08em .55em;font-size:.75rem;font-weight:700;display:inline-block}.decision-tag.yes{background:var(--color-primary);color:var(--color-on-primary)}.decision-tag.no{background:var(--color-surface-2);color:var(--color-fg)}.prose .sources{font-size:.95rem}.prose .sources li{line-height:1.55}.demo{margin:var(--space-6) 0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card);overflow:hidden}.demo-label{padding:var(--space-2) var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);margin:0;font-size:.72rem;font-weight:700}.demo-stage{padding:var(--space-5) var(--space-6)}.demo-stage>*+*{margin-top:var(--space-3)}.demo-stage>:first-child{margin-top:0}.demo-stage summary{cursor:pointer}.demo-form{gap:var(--space-4);max-width:26rem;display:grid}.demo-field{gap:var(--space-1);margin:0;display:grid}.demo-form label{font-size:.95rem;font-weight:600}.demo-form input[type=text],.demo-form input[type=email],.demo-form select{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font:inherit;background:var(--color-bg);color:var(--color-fg);padding:.5rem .65rem;font-size:.95rem}.demo-form input:focus-visible,.demo-form select:focus-visible,.demo-stage a:focus-visible,.demo-stage button:focus-visible,.demo-stage summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:1px}.demo-form input:user-invalid{border-color:#c0392b}.demo-mega{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);max-width:32rem;overflow:hidden}.demo-mega>summary{background:var(--color-surface);padding:.55rem 1.1rem;font-weight:700;list-style:none}.demo-mega>summary::-webkit-details-marker{display:none}.demo-mega>summary:after{content:" ▾";color:var(--color-muted)}.demo-mega[open]>summary{border-bottom:1px solid var(--color-border)}.demo-mega[open]>summary:after{content:" ▴"}.demo-mega-panel{gap:var(--space-4);padding:var(--space-4) var(--space-5);display:grid}@media (width>=30rem){.demo-mega-panel{grid-template-columns:1fr 1fr}}.demo-mega-head{margin:0 0 var(--space-2);letter-spacing:.05em;text-transform:uppercase;color:var(--color-muted);font-size:.72rem;font-weight:700}.demo-mega-panel ul{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.demo-mega-panel a{color:var(--color-primary);text-decoration:none}.demo-mega-panel a:hover{text-decoration:underline}.demo-fieldset{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);gap:var(--space-2);margin:0;display:grid}.demo-fieldset legend{padding:0 var(--space-2);font-weight:700}.demo-fieldset label{align-items:center;gap:var(--space-2);font-weight:400;display:flex}.demo-row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.demo-stage a.demo-btnlike,.demo-stage button.demo-btnlike{border-radius:var(--radius-button);background:var(--color-primary);color:var(--color-on-primary);border:1px solid var(--color-primary);font:inherit;cursor:pointer;justify-content:center;align-items:center;padding:.55rem 1.1rem;font-weight:700;text-decoration:none;display:inline-flex}.demo-figure{margin:0}.demo-figure svg,.demo-figure img{border-radius:var(--radius-sm);max-width:100%;height:auto;display:block}.demo-figure figcaption{margin-top:var(--space-2);color:var(--color-muted);font-size:.9rem}.demo-hint{color:var(--color-muted);font-size:.8rem}.demo-stage button{background:var(--color-primary);color:var(--color-on-primary);border:1px solid var(--color-primary);border-radius:var(--radius-button);font:inherit;cursor:pointer;justify-self:start;padding:.55rem 1.1rem;font-weight:700}.demo-stage button:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
