.pg-landing{margin:0;font-family:Public Sans,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.pg-landing a{color:inherit;text-decoration:none}.pg-landing .m{font-family:Fragment Mono,ui-monospace,monospace}.pg-landing .n{font-family:Share Tech Mono,ui-monospace,monospace}.pg-landing .lbl{font-family:Fragment Mono,ui-monospace,monospace;font-size:11.5px;letter-spacing:1.2px;text-transform:uppercase}.pg-landing .grain{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.05 0 0 0 0 0.08 0 0 0 0 0.2 0 0 0 0.6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.pg-landing .ba{background:#f2a72e;color:#0e1435;transition:background-color .15s ease-out}.pg-landing .ba:hover{background:#f6b94f}.pg-landing .bw{border:1px solid #ffffff;color:#fff;transition:background-color .15s ease-out,color .15s ease-out}.pg-landing .bw:hover{background:#fff;color:#2546c2}.pg-landing .bp{background:#2546c2;color:#fff;transition:background-color .15s ease-out}.pg-landing .bp:hover{background:#1b3596}.pg-landing .bk{border:1px solid #0e1435;color:#0e1435;transition:background-color .15s ease-out,color .15s ease-out}.pg-landing .bk:hover{background:#0e1435;color:#fff}.pg-landing .ar{display:inline-block;transition:transform .15s ease-out}.pg-landing a:hover .ar{transform:translate(4px)}.pg-landing .nv{transition:color .12s ease-out}.pg-landing .nv:hover{color:#f2a72e}.pg-landing .cell{transition:background-color .15s ease-out}.pg-landing .cell:hover{background:#e8e7e1}.pg-d1,.pg-d2,.pg-d3{margin:0}.pg-d3 .lim{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink);margin-top:28px}.pg-d3 .lim>div{padding:22px 0 26px}.pg-d3 .lim>div:first-child{padding-right:28px;border-right:1px solid var(--line)}.pg-d3 .lim>div:last-child{padding-left:28px}.pg-d3 .lim .k{font-family:Fragment Mono,monospace;font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:8px}.pg-d3 .lim b{font-size:18px;line-height:24px;display:block}.pg-d3 .lim p{margin:6px 0 0;font-size:16px;line-height:25px}.pg-d4{margin:0}.pg-d4 .dev{background:#0b1030;color:#dde2f2}.pg-d4 .dev .dmain h1{font-family:Share Tech Mono,monospace;font-weight:400;font-size:56px;line-height:58px;letter-spacing:-1px;color:#fff}.pg-d4 .dev .dmain h2{font-family:Share Tech Mono,monospace;font-weight:400;font-size:28px;letter-spacing:0;border-top:1px dashed #3A4580;color:#fff}.pg-d4 .dev .dmain .lead{color:#a9b0cc}.pg-d4 .dev .dmain p{color:#c3c9e0}.pg-d4 .dev .dside a{color:#a9b0cc}.pg-d4 .dev .dside a.on{background:#f2a72e;color:#0e1435}.pg-d4 .dev .dside .sec{color:#6b7499}.pg-d4 .dev .dtoc{border-left-color:#2b356f;color:#a9b0cc}.pg-d4 .dev .code{background:#121a45;border:1px solid #2B356F}.pg-d4 .dev .dtable{background:#121a45;border-color:#2b356f;color:#dde2f2}.pg-d4 .dev .dtable .h{border-bottom-color:#2b356f;color:#6b7499}.pg-d4 .dev .dtable .r{border-bottom-color:#232c60}.pg-d4 .dev .pager a{border-color:#3a4580}.pg-d4 .dev .pager a:hover{background:#f2a72e;color:#0e1435}.pg-d4 .dev .dfoot{border-top-color:#232c60}.pg-d5{margin:0}.pg-d5 .tx{color:var(--blue);font-family:Fragment Mono,monospace;font-size:12px}.app{display:flex;min-height:100vh;background:var(--paper);color:var(--ink);font-family:Public Sans,system-ui,sans-serif;-webkit-font-smoothing:antialiased;position:relative}.app .rail{position:sticky;top:0;height:100vh;overflow-y:auto}.app .main{min-height:100vh}.app .body{overflow:visible}.app a{color:inherit;text-decoration:none}.app .ri,.app .rsafe{cursor:pointer;border:0;background:transparent;width:100%;text-align:left;font-family:inherit}.app .rsafe:not(.on):hover{background:#1b2350;color:#fff}.app button{font-family:inherit;cursor:pointer}.app button:disabled{opacity:.5;cursor:default}.app button.btn{font-size:14px}.app button.btn-lg{font-size:15px}.app .btn-a:hover{background:#f6b94f}.app .btn-of:hover{background:#c9512e}.app .btn-o:hover{background:var(--orange);color:#fff}.app .btn-g:hover{text-decoration:underline}.app .tab{cursor:pointer;font-family:inherit}.app .tab:not(.on):hover{background:var(--paper3);color:var(--ink)}.app input.input,.app textarea.input,.app select.input{width:100%;font-family:inherit;color:var(--ink);outline:none}.app input.input:focus,.app textarea.input:focus{border-color:var(--blue);outline:1px solid var(--blue);outline-offset:-2px}.app .seg button{font-family:Fragment Mono,monospace;font-size:12px;padding:9px 16px;border:0;border-right:1px solid var(--ink);background:transparent;color:var(--ink)}.app .seg button:last-child{border-right:none}.app .seg button.on{background:var(--ink);color:#fff}.app .err{color:var(--red);font-size:14px;margin:8px 0 0}.app .scrim,.app .drawer,.app .modal{position:fixed}.app .drawer{z-index:20}.app .scrim{z-index:19}.app .modal{z-index:21}.app .drawer .db{overflow-y:auto}.app .x{border:0;background:transparent;font-size:22px;line-height:22px;color:var(--ink);padding:2px 6px}.app .tbl{overflow:hidden}.app .tbl .tr{cursor:default}.app .check{width:18px;height:18px;border:1.5px solid var(--ink);border-radius:5px;display:inline-flex;align-items:center;justify-content:center;flex:none;background:#fff}.app .check.on{background:var(--blue);border-color:var(--blue)}.app .muted-row{color:var(--faint)}.app .safe-card{transition:border-color .15s ease-out,background-color .15s ease-out}.app .safe-card:hover{border-color:var(--blue)}.app .fd{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;font-size:14px;border:0;background:transparent;color:var(--ink);text-align:left;font-family:inherit;cursor:pointer;transition:background-color .14s ease-out}.app .fd.on{background:var(--sky2);color:var(--blue-d);font-weight:600}.app .fd:not(.on):hover{background:var(--paper2)}.app .drop{border:1px dashed var(--line2);border-radius:14px;padding:18px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:14px;color:var(--mute);cursor:pointer;transition:border-color .15s ease-out,background-color .15s ease-out}.app .drop:hover,.app .drop.on{border-color:var(--blue);background:var(--sky2)}.app .file-name:hover span{text-decoration:underline;text-underline-offset:3px}.app .crumb a:hover{color:var(--ink)}html,body{margin:0;background:#f3f2ee;color:#0e1435}body{font-family:Public Sans,system-ui,sans-serif;-webkit-font-smoothing:antialiased}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.pg-landing,.pg-landing *,.pg-landing *:before,.pg-landing *:after{box-sizing:content-box}:root{--paper:#F3F2EE;--paper2:#E8E7E1;--paper3:#DDDCD5;--line:#CFCDC5;--line2:#B8B6AE;--ink:#0E1435;--mute:#4B5068;--faint:#7A7F95;--blue:#2546C2;--blue-d:#1B3596;--sky:#A9C2EC;--sky2:#DFE7F6;--amber:#F2A72E;--amber2:#FBE7C2;--orange:#E2603A;--orange2:#FADFD5;--red:#C0392B;--white:#FFFFFF}*{box-sizing:border-box}.scr{width:1440px;height:900px;display:flex;background:var(--paper);color:var(--ink);font-family:Public Sans,system-ui,sans-serif;overflow:hidden;position:relative;-webkit-font-smoothing:antialiased}.m{font-family:Fragment Mono,ui-monospace,monospace}.n{font-family:Share Tech Mono,ui-monospace,monospace}.lbl{font-family:Fragment Mono,ui-monospace,monospace;font-size:11px;letter-spacing:1.1px;text-transform:uppercase}.mute{color:var(--mute)}.faint{color:var(--faint)}.rail{width:236px;flex:none;background:var(--ink);color:#c3c9e0;display:flex;flex-direction:column;padding:22px 14px 18px}.logo{display:flex;align-items:center;gap:11px;padding:0 8px 26px;color:#fff;font-weight:700;font-size:19px;letter-spacing:-.3px}.ri{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:8px;font-size:14px;font-weight:500;color:#c3c9e0}.ri svg{flex:none}.ri.on{background:var(--blue);color:#fff}.rsec{font-family:Fragment Mono,monospace;font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:#7c84a6;padding:22px 12px 8px}.rsafe{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:8px;font-size:13px;color:#c3c9e0}.rsafe.on{background:#1b2350;color:#fff}.rfoot{margin-top:auto;border-top:1px solid #2A3260;padding:14px 8px 0;display:flex;flex-direction:column;gap:8px}.main{flex:1;min-width:0;display:flex;flex-direction:column}.top{height:66px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 36px;border-bottom:1px solid var(--line)}.crumb{font-family:Fragment Mono,monospace;font-size:12px;color:var(--faint)}.crumb b{color:var(--ink);font-weight:400}.body{flex:1;min-height:0;padding:28px 36px}.h1{font-size:30px;line-height:34px;font-weight:700;letter-spacing:-1px;margin:0}.h2{font-size:20px;line-height:26px;font-weight:700;letter-spacing:-.4px;margin:0}.btn{display:inline-flex;align-items:center;gap:10px;font-family:Public Sans,sans-serif;font-weight:600;font-size:14px;line-height:18px;padding:10px 16px;border-radius:8px;border:1px solid transparent;white-space:nowrap}.btn-p{background:var(--blue);color:#fff}.btn-s{border-color:var(--ink);color:var(--ink);background:transparent}.btn-a{background:var(--amber);color:var(--ink)}.btn-o{border-color:var(--orange);color:var(--orange);background:transparent}.btn-of{background:var(--orange);color:#fff}.btn-g{color:var(--ink);padding-left:6px;padding-right:6px}.btn-lg{font-size:15px;padding:13px 20px}.chip{display:inline-flex;align-items:center;gap:6px;font-family:Fragment Mono,monospace;font-size:10.5px;letter-spacing:1px;text-transform:uppercase;padding:4px 9px;border-radius:999px;border:1px solid var(--ink);white-space:nowrap}.chip-b{background:var(--blue);border-color:var(--blue);color:#fff}.chip-a{background:var(--amber);border-color:var(--amber);color:var(--ink)}.chip-o{background:var(--orange);border-color:var(--orange);color:#fff}.chip-r{background:var(--red);border-color:var(--red);color:#fff}.chip-s{background:var(--sky2);border-color:var(--sky2);color:var(--blue-d)}.chip-m{border-color:var(--line2);color:var(--mute)}.tabs{display:flex;gap:4px;align-items:flex-end;border-bottom:1px solid var(--ink)}.tab{font-size:14px;font-weight:600;padding:9px 16px;border:1px solid var(--line2);border-bottom:none;border-radius:8px 8px 0 0;color:var(--mute);background:var(--paper2)}.tab.on{background:var(--ink);border-color:var(--ink);color:#fff}.panel{background:var(--white);border:1px solid var(--ink);border-radius:14px}.well{background:var(--paper2);border-radius:10px}.hr{height:1px;background:var(--line)}.th{font-family:Fragment Mono,monospace;font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--faint);padding:11px 18px;border-bottom:1px solid var(--ink);display:grid;align-items:center;gap:12px}.tr{padding:13px 18px;border-bottom:1px solid var(--line);display:grid;align-items:center;gap:12px;font-size:14px}.tr:last-child{border-bottom:none}.tr.sel{background:var(--sky2)}.fl{font-family:Fragment Mono,monospace;font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--faint);margin-bottom:7px}.input{background:var(--white);border:1px solid var(--ink);border-radius:8px;padding:11px 13px;font-size:15px;line-height:20px}.seg{display:inline-flex;border:1px solid var(--ink);border-radius:8px;overflow:hidden}.seg span{font-family:Fragment Mono,monospace;font-size:12px;padding:9px 16px;border-right:1px solid var(--ink)}.seg span:last-child{border-right:none}.seg span.on{background:var(--ink);color:#fff}.scrim{position:absolute;inset:0;background:#0e143580}.drawer{position:absolute;right:0;top:0;bottom:0;width:480px;background:var(--paper);border-left:1px solid var(--ink);display:flex;flex-direction:column}.dh{padding:24px 28px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start}.db{padding:22px 28px;display:flex;flex-direction:column;gap:20px;flex:1;min-height:0}.df{padding:18px 28px;border-top:1px solid var(--line);display:flex;gap:10px}.modal{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:520px;background:var(--paper);border:1px solid var(--ink);border-radius:16px}.btn,.ri,.tr,.tab{transition:background-color .14s ease-out,color .14s ease-out,border-color .14s ease-out}.btn-p:hover{background:var(--blue-d)}.btn-s:hover{background:var(--ink);color:#fff}.ri:not(.on):hover{background:#1b2350;color:#fff}.tr:not(.sel):hover{background:var(--paper2)}.doc{width:100%;background:var(--paper);color:var(--ink);font-family:Public Sans,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.doc a{color:inherit;text-decoration:none}.dtop{background:var(--ink);color:#fff}.dtop-in{max-width:1320px;margin:0 auto;padding:18px 40px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.dlogo{display:flex;align-items:center;gap:11px;font-weight:700;font-size:19px}.dnav{display:flex;gap:28px;flex-wrap:wrap;font-family:Fragment Mono,monospace;font-size:11.5px;letter-spacing:1.2px;text-transform:uppercase;color:#c3c9e0}.dnav a.on{color:var(--amber)}.dwrap{max-width:1320px;margin:0 auto;padding:48px 40px 96px;display:grid;grid-template-columns:220px minmax(0,1fr) 200px;gap:48px;align-items:start}.dside{display:flex;flex-direction:column;gap:2px;font-size:14px}.dside .sec{font-family:Fragment Mono,monospace;font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--faint);padding:16px 12px 8px}.dside a{padding:8px 12px;border-radius:8px;color:var(--mute)}.dside a.on{background:var(--ink);color:#fff;font-weight:600}.dmain{min-width:0;max-width:780px}.dmain h1{font-size:48px;line-height:52px;font-weight:700;letter-spacing:-2px;margin:14px 0 0;text-wrap:balance}.dmain .lead{font-size:20px;line-height:31px;color:var(--mute);margin:20px 0 0;max-width:680px}.dmain h2{font-size:26px;line-height:32px;font-weight:700;letter-spacing:-.6px;margin:56px 0 0;padding-top:24px;border-top:1px solid var(--ink)}.dmain h3{font-size:18px;line-height:24px;font-weight:700;margin:28px 0 0}.dmain p{font-size:17px;line-height:28px;margin:12px 0 0}.dmain ul{margin:12px 0 0;padding-left:20px;font-size:17px;line-height:28px}.dtoc{display:flex;flex-direction:column;gap:10px;font-size:13px;color:var(--mute);border-left:1px solid var(--line);padding-left:16px}.dtoc .t{font-family:Fragment Mono,monospace;font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--faint);margin-bottom:4px}.dtable{margin-top:18px;background:#fff;border:1px solid var(--ink);border-radius:12px;overflow:hidden;font-size:15px}.dtable .h{display:grid;gap:16px;padding:11px 18px;border-bottom:1px solid var(--ink);font-family:Fragment Mono,monospace;font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--faint)}.dtable .r{display:grid;gap:16px;padding:14px 18px;border-bottom:1px solid var(--line);align-items:start;line-height:22px}.dtable .r:last-child{border-bottom:none}.callout{margin-top:22px;border-radius:12px;padding:18px 20px;font-size:16px;line-height:25px}.callout.sky{background:var(--sky2)}.callout.amber{background:var(--amber2)}.code{margin-top:16px;background:var(--ink);color:#dde2f2;border-radius:12px;font-family:Fragment Mono,monospace;font-size:13.5px;line-height:23px;overflow:hidden}.code .bar{display:flex;gap:7px;padding:11px 14px;border-bottom:1px solid #2B356F}.code .bar i{width:10px;height:10px;border-radius:50%;display:block}.code pre{margin:0;padding:16px 18px;white-space:pre-wrap;font-family:inherit}.code .p{color:var(--amber)}.code .c{color:#7c84a6}.pager{margin-top:64px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.pager a{border:1px solid var(--ink);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:4px;transition:background-color .15s ease-out,color .15s ease-out}.pager a:hover{background:var(--ink);color:#fff}.pager .k{font-family:Fragment Mono,monospace;font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--faint)}.dfoot{border-top:1px solid var(--line)}.dfoot-in{max-width:1320px;margin:0 auto;padding:24px 40px;display:flex;justify-content:space-between;font-family:Fragment Mono,monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--faint)}.legacy{--bg:#0f1115;--panel:#171a21;--line:#262b36;--text:#e8eaf0;--mute:#9aa3b2;--accent:#6ea8ff;--ok:#46c28a;--warn:#e0a84a;--bad:#e5645b;color-scheme:dark}.legacy *{box-sizing:border-box}.legacy{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.legacy main{max-width:1000px;margin:0 auto;padding:24px 16px 80px}.legacy h1{font-size:22px;margin:0 0 4px}.legacy h2{font-size:18px;margin:24px 0 8px}.legacy .sub{color:var(--mute);margin:0 0 20px}.legacy .card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin:12px 0}.legacy .row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.legacy .grow{flex:1}.legacy button{background:var(--accent);color:#0b1220;border:0;border-radius:8px;padding:10px 16px;font-weight:600;cursor:pointer;font-size:15px}.legacy button.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}.legacy button.danger{background:var(--bad);color:#fff}.legacy button:disabled{opacity:.5;cursor:default}.legacy input,.legacy select{background:#0c0e13;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:15px;width:100%}.legacy .pill{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;border:1px solid var(--line);color:var(--mute)}.legacy .pill.ok{color:var(--ok);border-color:var(--ok)}.legacy .pill.warn{color:var(--warn);border-color:var(--warn)}.legacy .pill.bad{color:var(--bad);border-color:var(--bad)}.legacy .tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:16px 0;flex-wrap:wrap}.legacy .tab{padding:8px 14px;border-radius:8px 8px 0 0;cursor:pointer;color:var(--mute);background:none;font-weight:500}.legacy .tab.on{color:var(--text);border-bottom:2px solid var(--accent)}.legacy .mono{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--mute);word-break:break-all}.legacy .err{color:var(--bad)}.legacy .note{color:var(--mute);font-size:14px}.legacy table{width:100%;border-collapse:collapse}.legacy td,.legacy th{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);font-size:14px}.legacy a{color:var(--accent)}
