:root{--g-header-h: 60px;--g-toc-w: 248px;--g-content-maxw: 760px;--g-gutter: var(--s-6)}html{scroll-behavior:smooth}body.g-body{margin:0;background:var(--surface-page);color:var(--ink);font-family:var(--body);font-size:16px;line-height:var(--lh-relaxed);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;display:block;height:auto;min-height:100vh;overflow-x:hidden;overflow-y:auto}.g-body a{text-decoration:none}.g-main a{color:var(--accent)}.g-main a:hover{color:var(--accent-hover);text-decoration:underline}.g-skip{position:absolute;left:-9999px;top:0;background:var(--accent);color:var(--accent-on);padding:var(--s-2) var(--s-4);border-radius:var(--r-sm);z-index:var(--z-toast)}.g-skip:focus{left:var(--s-4);top:var(--s-2)}.g-header{position:sticky;top:0;z-index:var(--z-sticky);height:var(--g-header-h);background:var(--surface-base);border-bottom:1px solid var(--line)}.g-header-inner{max-width:1200px;margin:0 auto;height:100%;padding:0 var(--g-gutter);display:flex;align-items:center;justify-content:space-between;gap:var(--s-4)}.g-brand{display:inline-flex;align-items:center;gap:var(--s-2);color:var(--ink)}.g-brand:hover{text-decoration:none}.g-brand-mark{display:block}.g-brand-word{font-family:var(--display);font-weight:700;letter-spacing:.01em;font-size:18px}.g-brand-sep{color:var(--ink-faint)}.g-brand-sub{color:var(--ink-mute);font-size:var(--t-base)}.g-header-actions{display:inline-flex;align-items:center;gap:var(--s-2)}.g-btn-app{display:inline-flex;align-items:center;padding:var(--s-2) var(--s-4);background:var(--accent);color:var(--accent-on);border-radius:var(--r-md);font-weight:var(--w-semibold);font-size:var(--t-base);transition:background var(--dur-2) var(--ease-out)}.g-btn-app:hover{background:var(--accent-hover);color:var(--accent-on);text-decoration:none}.g-layout{max-width:1200px;margin:0 auto;padding:0 var(--g-gutter);display:grid;grid-template-columns:var(--g-toc-w) minmax(0,1fr);gap:var(--s-7);align-items:start}.g-toc{position:sticky;top:calc(var(--g-header-h) + var(--s-5));align-self:start;max-height:calc(100vh - var(--g-header-h) - var(--s-6));overflow-y:auto;padding:var(--s-5) 0}.g-toc-head{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.08em;font-weight:var(--w-bold);color:var(--ink-mute);padding:0 var(--s-3) var(--s-3)}.g-toc-nav{display:flex;flex-direction:column;gap:1px}.g-toc-link{display:block;padding:var(--s-2) var(--s-3);color:var(--ink-soft);font-size:var(--t-base);border-left:2px solid transparent;border-radius:0 var(--r-sm) var(--r-sm) 0;transition:color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.g-toc-link:hover{color:var(--ink);background:var(--surface-sunken);text-decoration:none}.g-toc-link.is-active{color:var(--accent);font-weight:var(--w-semibold);border-left-color:var(--accent);background:var(--accent-soft)}.g-toc-toggle{display:none;position:sticky;top:var(--g-header-h);z-index:var(--z-overlay);width:100%;align-items:center;gap:var(--s-2);padding:var(--s-3) var(--g-gutter);background:var(--surface-base);border:none;border-bottom:1px solid var(--line);color:var(--ink-soft);font:inherit;font-weight:var(--w-medium);cursor:pointer}.g-main{max-width:var(--g-content-maxw);padding:var(--s-6) 0 var(--s-8);min-width:0}.g-intro{padding:var(--s-5) 0 var(--s-6);border-bottom:1px solid var(--line);margin-bottom:var(--s-4)}.g-eyebrow{margin:0 0 var(--s-3);font-size:var(--t-sm);font-weight:var(--w-bold);text-transform:uppercase;letter-spacing:.1em;color:var(--accent)}.g-title{margin:0 0 var(--s-4);font-family:var(--display);font-size:var(--t-2xl);font-weight:600;line-height:var(--lh-tight);letter-spacing:-.02em;color:var(--ink)}.g-lead{margin:0;font-size:var(--t-lg);line-height:var(--lh-relaxed);color:var(--ink-soft)}.g-section{padding:var(--s-6) 0;border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--g-header-h) + var(--s-4))}.g-section:last-of-type{border-bottom:none}.g-h2{margin:0 0 var(--s-4);font-family:var(--display);font-size:var(--t-xl);font-weight:600;line-height:var(--lh-snug);letter-spacing:-.012em;color:var(--ink)}.g-h3{margin:var(--s-5) 0 var(--s-3);font-family:var(--display);font-size:var(--t-lg);font-weight:600;color:var(--ink)}.g-section p{margin:0 0 var(--s-4);color:var(--ink-soft)}.g-section p:last-child{margin-bottom:0}.g-muted{color:var(--ink-mute);font-size:var(--t-sm)}.g-list{margin:0 0 var(--s-4);padding-left:0;list-style:none;display:flex;flex-direction:column;gap:var(--s-3)}.g-list li{position:relative;padding-left:var(--s-5);color:var(--ink-soft)}.g-list li:before{content:"";position:absolute;left:4px;top:.62em;width:6px;height:6px;border-radius:var(--r-pill);background:var(--accent)}.g-list strong,.g-section strong{color:var(--ink);font-weight:var(--w-semibold)}.g-body code{font-family:var(--mono);font-size:.88em;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--r-xs);padding:1px 5px;color:var(--ink)}.g-callout{margin:var(--s-4) 0;padding:var(--s-4) var(--s-5);background:var(--accent-soft);border:1px solid var(--accent-medium);border-radius:var(--r-md);color:var(--ink-soft);line-height:var(--lh-relaxed)}.g-callout strong{color:var(--ink)}.g-table-wrap{margin:var(--s-4) 0;overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-md)}.g-table{width:100%;border-collapse:collapse;font-size:var(--t-base)}.g-table th,.g-table td{text-align:left;padding:var(--s-3) var(--s-4);vertical-align:top;border-bottom:1px solid var(--line)}.g-table thead th{background:var(--surface-sunken);color:var(--ink-mute);font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--w-bold)}.g-table tbody tr:last-child td{border-bottom:none}.g-table td{color:var(--ink-soft)}.g-table td strong{color:var(--ink)}.g-faq{display:flex;flex-direction:column;gap:var(--s-3)}.g-faq-item{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-base);overflow:hidden}.g-faq-item>summary{list-style:none;cursor:pointer;padding:var(--s-4) var(--s-5);font-weight:var(--w-semibold);color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.g-faq-item>summary::-webkit-details-marker{display:none}.g-faq-item>summary:after{content:"+";font-family:var(--mono);font-size:var(--t-lg);color:var(--ink-mute);line-height:1;transition:transform var(--dur-2) var(--ease-out)}.g-faq-item[open]>summary:after{content:"–"}.g-faq-item[open]>summary{border-bottom:1px solid var(--line)}.g-faq-item>p{margin:0;padding:var(--s-4) var(--s-5);color:var(--ink-soft);line-height:var(--lh-relaxed)}.g-faq-item>p strong{color:var(--ink)}.g-footer{padding:var(--s-6) 0;color:var(--ink-mute);font-size:var(--t-base)}.g-footer p{margin:0 0 var(--s-2)}.g-footer-links{color:var(--ink-faint)}@media(max-width:860px){.g-layout{grid-template-columns:1fr;gap:0}.g-toc-toggle{display:flex}.g-toc{position:static;max-height:none;overflow:visible;padding:var(--s-3) 0 var(--s-4);border-bottom:1px solid var(--line);display:none}.g-toc.is-open{display:block}.g-toc-nav{display:grid;grid-template-columns:1fr 1fr;gap:1px}.g-main{padding-top:var(--s-5)}.g-brand-sep,.g-brand-sub{display:none}}@media(max-width:480px){:root{--g-gutter: var(--s-4)}.g-toc-nav{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.g-theme-btn,.g-btn-app,.g-toc-link,.g-faq-item>summary:after{transition:none}}.g-theme-btn:focus-visible,.g-btn-app:focus-visible,.g-toc-link:focus-visible,.g-toc-toggle:focus-visible,.g-brand:focus-visible{outline:2px solid var(--accent, #0F7A91);outline-offset:2px}
