@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--xw-red: #C8102E;--xw-red-strong: #A50D25;--xw-gold: #EAB308;--xw-font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--xw-font-mono: ui-monospace, SFMono-Regular, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--xw-font-display: "Space Grotesk Variable", "Space Grotesk", var(--xw-font-sans);--r-sm: 6px;--r: 10px;--r-lg: 14px;--r-xl: 20px;--r-full: 999px;--ease: cubic-bezier(.16, 1, .3, 1);--bg: #ffffff;--bg-muted: #F7F7F5;--surface: #ffffff;--surface-2: #FAFAF9;--border: #ECECEA;--border-2: #DEDEDB;--text: #14140F;--text-soft: #4A4A45;--text-mute: #78786F;--faint: #A6A69C;--rail-bg: #0d1017;--rail-2: #161a23;--rail-line: rgba(255,255,255,.08);--rail-text: #e6e8ee;--rail-mute: #8a93a6;--sh-sm: 0 1px 2px rgb(20 20 15 / .05);--sh: 0 6px 24px -8px rgb(20 20 15 / .14);--sh-lg: 0 24px 60px -20px rgb(20 20 15 / .28);--get: #16A34A;--post: #2563EB;--put: #D97706;--patch: #7C3AED;--delete: #DC2626;--head: #0891B2;--opt: #64748B;--brand-grad: linear-gradient(92deg, var(--xw-red), var(--xw-gold));--accent: var(--xw-red)}[data-theme=dark]{--bg: #0A0A0A;--bg-muted: #161616;--surface: #121212;--surface-2: #1a1a1a;--border: #262626;--border-2: #383838;--text: #F4F4F2;--text-soft: #D8D8D2;--text-mute: #9A9A90;--faint: #6c6c64;--rail-bg: #0b0d12;--rail-2: #131722;--sh-sm: 0 1px 2px rgb(0 0 0 / .5);--sh: 0 8px 30px -10px rgb(0 0 0 / .6);--sh-lg: 0 30px 70px -24px rgb(0 0 0 / .8)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--xw-font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.doc-head h1,.folder-h,.brand,.hero h1,.sec-head h2,.cta h2,.privacy h2,.logo,.step b{font-family:var(--xw-font-display);letter-spacing:-.03em}kbd{font-family:var(--xw-font-mono);font-size:.72em;background:var(--bg-muted);border:1px solid var(--border-2);border-bottom-width:2px;border-radius:5px;padding:.05em .4em;color:var(--text-mute)}.dim{color:var(--faint)}.land{min-height:100%;display:grid;place-items:center;padding:2rem 1.25rem 4rem;position:relative;overflow:hidden}.land:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(60% 45% at 50% 0%,color-mix(in srgb,var(--xw-red) 8%,transparent),transparent 70%);pointer-events:none}.land-inner{text-align:center;max-width:46rem;position:relative}.land-badge{font-family:var(--xw-font-mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:700}.land h1{font-size:clamp(2rem,5.5vw,3.4rem);letter-spacing:-.035em;line-height:1.03;margin:.7rem 0 .5rem;font-weight:800}.land h1 .accent{background:var(--brand-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.land p.sub{color:var(--text-mute);font-size:1.05rem;line-height:1.55;margin:0 auto 2rem;max-width:40rem}.land p.sub code,.land p.sub b{color:var(--text-soft)}.land p.sub code{font-family:var(--xw-font-mono);font-size:.9em;background:var(--bg-muted);padding:.1em .4em;border-radius:5px}.drop{border:1.5px dashed var(--border-2);border-radius:var(--r-xl);background:var(--surface-2);padding:2.6rem 1.5rem;cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.drop:hover{transform:translateY(-1px)}.drop.over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface-2))}.drop-ic{font-size:1.8rem;color:var(--accent)}.drop b{display:block;font-size:1.05rem;margin-top:.4rem}.drop span{display:block;color:var(--text-mute);font-size:.86rem;margin-top:.3rem;font-family:var(--xw-font-mono)}.land-actions{margin-top:1.1rem}.land-err{margin-top:1rem;color:var(--xw-red);font-weight:600;font-size:.86rem}.land-note{margin-top:1.7rem;font-size:.8rem;color:var(--faint)}.land-feats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2.6rem;text-align:left}.land-feats>div{font-size:.8rem;color:var(--text-mute);border-top:2px solid var(--border);padding-top:.6rem}.land-feats b{display:block;color:var(--text);font-size:.9rem;margin-bottom:.15rem}@media (max-width: 640px){.land-feats{grid-template-columns:1fr 1fr}}.btn{font:inherit;font-size:.86rem;font-weight:600;border-radius:var(--r);border:1px solid var(--border-2);background:var(--surface);color:var(--text);padding:.55rem 1rem;cursor:pointer}.btn:hover{border-color:var(--text-mute)}.btn.primary{background:var(--brand-grad);color:#fff;border:none}.btn.ghost{background:transparent}.shell{display:grid;grid-template-columns:288px minmax(0,1fr);grid-template-rows:auto 1fr;height:100%}.topbar{grid-column:1 / -1;display:flex;align-items:center;gap:.7rem;padding:.55rem 1rem;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:.5rem;font-weight:800;letter-spacing:-.01em;white-space:nowrap}.brand .dot{width:.6rem;height:.6rem;border-radius:50%;background:var(--brand-grad)}.crumb{display:flex;align-items:center;gap:.45rem;font-size:.82rem;color:var(--text-mute);min-width:0;overflow:hidden}.crumb .cr-path{color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crumb b{color:var(--text);white-space:nowrap}.spacer{flex:1}.kbtn{display:inline-flex;align-items:center;gap:.45rem;font:inherit;font-size:.82rem;color:var(--text-mute);background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--r);padding:.4rem .7rem;cursor:pointer}.kbtn:hover{border-color:var(--border-2);color:var(--text)}.iconbtn{border:1px solid var(--border);background:var(--surface);color:var(--text);width:2.1rem;height:2.1rem;border-radius:9px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:.95rem}.iconbtn:hover{border-color:var(--text-mute)}.sidebar{border-right:1px solid var(--border);overflow-y:auto;padding:.75rem .55rem 4rem;background:var(--surface)}.side-search{width:100%;font:inherit;font-size:.82rem;padding:.45rem .65rem;border:1px solid var(--border);border-radius:var(--r);background:var(--bg-muted);color:var(--text);outline:none;margin-bottom:.5rem}.side-search:focus{border-color:var(--xw-gold)}.side-title{font-family:var(--xw-font-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);padding:.3rem .6rem .5rem}.nav-folder>.nav-folder-h{display:flex;align-items:center;gap:.35rem;padding:.34rem .55rem;font-weight:700;font-size:.8rem;color:var(--text-soft);cursor:pointer;border-radius:7px}.nav-folder>.nav-folder-h:hover{background:var(--bg-muted)}.nav-folder .kids{margin-left:.55rem;border-left:1px solid var(--border);padding-left:.3rem}.nav-req{display:flex;align-items:center;gap:.5rem;padding:.3rem .55rem;border-radius:7px;cursor:pointer;font-size:.82rem;color:var(--text-soft);text-decoration:none}.nav-req:hover{background:var(--bg-muted);color:var(--text)}.nav-req.active{background:color-mix(in srgb,var(--accent) 11%,transparent);color:var(--text);font-weight:600;box-shadow:inset 2px 0 0 var(--accent)}.nav-req .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chev{transition:transform .15s;font-size:.66rem;color:var(--faint)}.nav-folder.collapsed .chev{transform:rotate(-90deg)}.nav-folder.collapsed .kids{display:none}.m-GET{background:var(--get)}.m-POST{background:var(--post)}.m-PUT{background:var(--put)}.m-PATCH{background:var(--patch)}.m-DELETE{background:var(--delete)}.m-HEAD{background:var(--head)}.m-OPTIONS{background:var(--opt)}.m-tag{flex:0 0 auto;font-family:var(--xw-font-mono);font-size:.56rem;font-weight:800;letter-spacing:.02em;padding:.08rem .32rem;border-radius:4px;color:#fff}.m-tag.big{font-size:.72rem;padding:.22rem .55rem;border-radius:6px}.dotc{display:inline-block;width:.5rem;height:.5rem;border-radius:50%;margin-right:.35rem}.dotc.s2{background:var(--get)}.dotc.s3{background:var(--head)}.dotc.s4{background:var(--put)}.dotc.s5{background:var(--delete)}.dotc.s0{background:var(--opt)}.content{overflow-y:auto;padding:1.8rem clamp(1rem,3.5vw,3rem) 7rem;scroll-behavior:smooth}.doc{max-width:74rem;margin:0 auto}.doc-head h1{font-size:clamp(1.7rem,4vw,2.5rem);letter-spacing:-.03em;margin:0 0 .4rem;font-weight:800}.doc-head .meta{display:flex;gap:.45rem;flex-wrap:wrap;margin-bottom:1rem}.pill{font-family:var(--xw-font-mono);font-size:.66rem;border:1px solid var(--border-2);border-radius:var(--r-full);padding:.12rem .6rem;color:var(--text-mute)}.section{scroll-margin-top:4.5rem}.grp{border-top:1px solid var(--border);margin-top:2.2rem;padding-top:.4rem}.grp:first-of-type{border-top:none;margin-top:1.4rem}.folder-h{font-size:1.3rem;letter-spacing:-.02em;margin:1.2rem 0 .5rem;font-weight:800}.folder-h.sub{font-size:1.05rem}.anchor{color:var(--faint);text-decoration:none;margin-left:.5rem;opacity:0;font-weight:400;transition:opacity .12s}.folder-h:hover .anchor,.ep-head h3:hover .anchor{opacity:1}.anchor:hover{color:var(--accent)}.progress{position:fixed;top:0;left:0;right:0;height:2px;background:var(--brand-grad);transform-origin:0 0;transform:scaleX(0);z-index:40;transition:transform .08s linear}.ep{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,30rem);gap:1.8rem;align-items:start;padding:1.8rem 0 1.8rem 1.4rem;border-top:1px solid var(--border);border-left:3px solid color-mix(in srgb,var(--mc, var(--border-2)) 55%,transparent);transition:border-left-color .2s}.ep:hover{border-left-color:var(--mc, var(--border-2))}.ep-main{min-width:0}.ep-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.ep-head h3{margin:0;font-size:1.15rem;letter-spacing:-.01em;font-weight:700}.auth-chip{display:inline-flex;align-items:center;gap:.25rem;font-family:var(--xw-font-mono);font-size:.62rem;color:var(--text-mute);background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--r-full);padding:.1rem .5rem;margin-left:auto}.ep-url{display:flex;align-items:center;gap:.4rem;margin:.55rem 0 .7rem;font-family:var(--xw-font-mono);font-size:.82rem;background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--r);padding:.45rem .6rem}.ep-url .u{flex:1;overflow-x:auto;white-space:nowrap;color:var(--text-soft);scrollbar-width:none}.ep-url .u::-webkit-scrollbar{display:none}.url-copy{flex:0 0 auto;border:none;background:transparent;color:var(--text-mute);cursor:pointer;font-size:.85rem;padding:0 .15rem}.url-copy:hover{color:var(--accent)}.var{color:var(--accent);font-weight:700}.toggle{display:inline-flex;align-items:center;gap:.45rem;font:inherit;font-size:.76rem;font-weight:600;color:var(--text-mute);background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--r-full);padding:.3rem .7rem .3rem .35rem;cursor:pointer;font-family:var(--xw-font-mono)}.toggle .tg-knob{width:1.6rem;height:.95rem;border-radius:var(--r-full);background:var(--border-2);position:relative;transition:background .18s}.toggle .tg-knob:after{content:"";position:absolute;top:1px;left:1px;width:.75rem;height:.75rem;border-radius:50%;background:#fff;transition:transform .18s var(--ease);box-shadow:0 1px 2px #0000004d}.toggle.on{color:var(--text);border-color:color-mix(in srgb,var(--xw-gold) 45%,var(--border))}.toggle.on .tg-knob{background:var(--xw-gold)}.toggle.on .tg-knob:after{transform:translate(.65rem)}.ovw{border:1px solid var(--border);border-radius:var(--r-lg);margin:1.4rem 0 .4rem;overflow:hidden;background:var(--surface-2)}.ovw-h{display:flex;align-items:center;gap:.5rem;width:100%;text-align:left;font:inherit;background:transparent;border:none;padding:.7rem .9rem;cursor:pointer}.ovw-t{font-weight:700;font-size:.9rem;letter-spacing:-.01em}.ovw-n{font-family:var(--xw-font-mono);font-size:.66rem;color:var(--text-mute);background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--r-full);padding:.08rem .5rem}.ovw-h .chev{margin-left:auto;transition:transform .15s}.ovw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:.1rem;padding:.4rem;border-top:1px solid var(--border)}.ovw-row{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border-radius:7px;text-decoration:none;color:var(--text-soft)}.ovw-row:hover{background:var(--bg-muted);color:var(--text)}.ovw-name{font-size:.84rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ovw-path{margin-left:auto;font-size:.7rem;color:var(--faint);white-space:nowrap}.ep-aside{position:sticky;top:4.5rem;align-self:start;min-width:0}.prose{color:var(--text-soft);line-height:1.62;font-size:.92rem}.prose p{margin:.5rem 0}.prose>:first-child{margin-top:0}.prose code{font-family:var(--xw-font-mono);background:var(--bg-muted);padding:.06rem .35rem;border-radius:5px;font-size:.86em}.prose pre{background:var(--rail-bg);color:var(--rail-text);padding:.8rem;border-radius:var(--r);overflow-x:auto}.prose pre code{background:none;padding:0}.prose a{color:var(--accent)}.prose h1,.prose h2,.prose h3{letter-spacing:-.01em;margin:1.1rem 0 .4rem;font-weight:700}.prose table{border-collapse:collapse;width:100%;font-size:.86rem}.prose th,.prose td{border:1px solid var(--border);padding:.35rem .55rem;text-align:left}.prose ul,.prose ol{padding-left:1.3rem}.prose img{max-width:100%}.prose blockquote{border-left:3px solid var(--border-2);margin:.6rem 0;padding:.1rem .9rem;color:var(--text-mute)}.block-label{font-family:var(--xw-font-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:1.1rem 0 .4rem;font-weight:700}table.kv{border-collapse:collapse;width:100%;font-size:.83rem;margin:.1rem 0 .3rem}table.kv th{text-align:left;font-family:var(--xw-font-mono);font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--border);padding:.3rem .5rem;font-weight:700}table.kv td{border-bottom:1px solid var(--border);padding:.4rem .5rem;vertical-align:top}table.kv td.k{font-family:var(--xw-font-mono);color:var(--text);white-space:nowrap}table.kv td.v{font-family:var(--xw-font-mono);color:var(--text-mute);word-break:break-word}table.kv td.d{color:var(--text-mute)}table.kv td.d .prose{font-size:.83rem}table.kv tr.off td{opacity:.45;text-decoration:line-through}details.blk{border:1px solid var(--border);border-radius:var(--r);margin:.7rem 0;overflow:hidden}details.blk>summary{cursor:pointer;padding:.5rem .7rem;font-size:.8rem;font-weight:600;background:var(--bg-muted);list-style:none}details.blk>summary::-webkit-details-marker{display:none}details.blk>.blk-in{padding:.6rem .7rem}.codewrap{position:relative;margin:.3rem 0}.codewrap .lang{position:absolute;top:.45rem;right:.6rem;font-family:var(--xw-font-mono);font-size:.58rem;text-transform:uppercase;letter-spacing:.06em;color:var(--rail-mute)}.codewrap .copy{position:absolute;top:.35rem;right:3.1rem;font-size:.6rem;font-family:var(--xw-font-mono);background:#ffffff14;color:#cbd3e1;border:none;border-radius:5px;padding:.15rem .45rem;cursor:pointer;z-index:1}.codewrap .copy:hover{background:#ffffff2e}pre.code{margin:0;background:var(--rail-bg);color:var(--rail-text);border-radius:var(--r);padding:.8rem .9rem;overflow-x:auto;font-family:var(--xw-font-mono);font-size:.78rem;line-height:1.55}.codewrap.onrail .copy{top:.3rem;right:.5rem}.rail{background:var(--rail-bg);border:1px solid var(--rail-line);border-radius:var(--r-lg);overflow:hidden;margin-bottom:.9rem;box-shadow:var(--sh)}.rail-bar{display:flex;align-items:center;gap:.5rem;padding:.5rem .7rem;background:var(--rail-2);border-bottom:1px solid var(--rail-line)}.rail-req{font-family:var(--xw-font-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--rail-mute);font-weight:700}.rail-copy{margin-left:auto;font-family:var(--xw-font-mono);font-size:.64rem;background:#ffffff14;color:#cbd3e1;border:none;border-radius:5px;padding:.2rem .5rem;cursor:pointer}.rail-copy:hover{background:#ffffff2e}.rail-tabs{display:flex;gap:.1rem;padding:.35rem .45rem 0;background:var(--rail-2);overflow-x:auto;scrollbar-width:none}.rail-tabs::-webkit-scrollbar{display:none}.rail-tab{font:inherit;font-size:.72rem;font-weight:600;color:var(--rail-mute);background:transparent;border:none;border-bottom:2px solid transparent;padding:.35rem .6rem .45rem;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center}.rail-tab:hover{color:var(--rail-text)}.rail-tab.on{color:#fff;border-bottom-color:var(--xw-gold)}.rail-code{margin:0;padding:.85rem .95rem;overflow-x:auto;font-family:var(--xw-font-mono);font-size:.77rem;line-height:1.6;color:var(--rail-text);background:var(--rail-bg)}.rail-meta{display:flex;align-items:center;gap:.5rem;padding:.55rem .7rem}.status{font-family:var(--xw-font-mono);font-size:.68rem;font-weight:800;padding:.1rem .45rem;border-radius:5px;color:#fff}.status.s2{background:var(--get)}.status.s3{background:var(--head)}.status.s4{background:var(--put)}.status.s5{background:var(--delete)}.status.s0{background:var(--opt)}.rr-name{color:var(--rail-text);font-size:.78rem;font-weight:600}.rr-hbtn{margin-left:auto;font-family:var(--xw-font-mono);font-size:.62rem;color:var(--rail-mute);background:#ffffff0f;border:none;border-radius:5px;padding:.15rem .45rem;cursor:pointer}.rr-hbtn:hover{color:var(--rail-text)}table.kv.rail{margin:0 .7rem .4rem;width:calc(100% - 1.4rem)}table.kv.rail td{border-color:var(--rail-line);color:var(--rail-mute)}table.kv.rail td.k{color:var(--rail-text)}.rail-resp .codewrap{margin:0}.rail-resp pre.code{border-radius:0}.rail-empty{color:var(--rail-mute);font-size:.78rem;padding:0 .7rem .6rem}.empty{text-align:center;color:var(--text-mute);padding:3rem 1rem}.pal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0a80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:60;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh}.pal{width:min(38rem,92vw);background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-lg);box-shadow:var(--sh-lg);overflow:hidden;animation:pop .16s var(--ease)}@keyframes pop{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}.pal-in{width:100%;font:inherit;font-size:1rem;padding:.9rem 1rem;border:none;border-bottom:1px solid var(--border);background:transparent;color:var(--text);outline:none}.pal-list{max-height:52vh;overflow-y:auto;padding:.35rem}.pal-item{display:flex;align-items:center;gap:.55rem;padding:.5rem .6rem;border-radius:8px;cursor:pointer}.pal-item.on{background:color-mix(in srgb,var(--accent) 12%,transparent)}.pal-name{font-size:.9rem;font-weight:600}.pal-path{margin-left:auto;font-size:.74rem;color:var(--faint);white-space:nowrap}.pal-empty{padding:1.2rem;text-align:center;color:var(--text-mute);font-size:.88rem}.pal-foot{display:flex;gap:.6rem;padding:.5rem .8rem;border-top:1px solid var(--border);font-size:.72rem;color:var(--faint)}.floatrail{display:none}@media screen and (min-width: 1260px){.shell{grid-template-columns:288px minmax(0,1fr) minmax(29rem,33rem)}.ep{grid-template-columns:1fr}.ep-aside{display:none}.floatrail{display:flex;flex-direction:column;overflow-y:auto;border-left:1px solid var(--border);background:var(--bg-muted);padding:1.3rem 1.2rem 4rem}.fr-in{animation:frIn .28s var(--ease)}@keyframes frIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.fr-hint{color:var(--text-mute);font-size:.85rem;margin-top:2rem;text-align:center;line-height:1.5}.floatrail .rail{margin-bottom:1rem}}@media (max-width: 1080px){.ep{grid-template-columns:1fr;gap:.9rem}.ep-aside{position:static}}@media (max-width: 820px){.shell{grid-template-columns:1fr}.sidebar,.crumb,.kbtn kbd{display:none}}.site{min-height:100%}.logo{display:inline-flex;align-items:center;gap:.5rem;font-weight:800;font-size:1.02rem}.logo svg{flex:0 0 auto}.snav{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:1rem;padding:.75rem clamp(1rem,4vw,3rem);background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid transparent}.snav-brand{text-decoration:none;color:var(--text)}.snav-links{display:flex;gap:1.4rem;margin-left:1.4rem}.snav-links a{color:var(--text-mute);text-decoration:none;font-size:.88rem;font-weight:500}.snav-links a:hover{color:var(--text)}.snav-right{margin-left:auto;display:flex;align-items:center;gap:.6rem}.btn.sm{padding:.4rem .85rem;font-size:.82rem}.btn.lg{padding:.75rem 1.4rem;font-size:.95rem}@media (max-width: 720px){.snav-links{display:none}}.hero{position:relative;display:grid;grid-template-columns:1.05fr 1.15fr;gap:clamp(1.5rem,4vw,4rem);align-items:center;padding:clamp(2.5rem,6vw,5.5rem) clamp(1rem,5vw,4rem) clamp(2rem,5vw,4rem);max-width:84rem;margin:0 auto}.hero-glow{position:absolute;inset:-10% -20% auto -20%;height:60%;z-index:-1;pointer-events:none;background:radial-gradient(50% 60% at 30% 20%,color-mix(in srgb,var(--xw-red) 22%,transparent),transparent 70%),radial-gradient(45% 55% at 75% 10%,color-mix(in srgb,var(--xw-gold) 20%,transparent),transparent 70%);filter:blur(20px);opacity:.7}.eyebrow{font-family:var(--xw-font-mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:700}.hero h1{font-size:clamp(2.3rem,5.2vw,4rem);line-height:1.02;font-weight:700;margin:.7rem 0 .9rem}.hero h1 .grad{background:var(--brand-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.lede{color:var(--text-mute);font-size:clamp(1rem,1.6vw,1.15rem);line-height:1.55;max-width:34rem}.hero-cta{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.6rem}.btn.ghost.lg{text-decoration:none;display:inline-flex;align-items:center}.resume{margin-top:1rem;display:inline-flex;align-items:center;gap:.4rem;font:inherit;font-size:.84rem;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:var(--r-full);padding:.4rem .9rem;cursor:pointer}.trust{margin-top:1.4rem;font-size:.82rem;color:var(--faint)}.hero-art{perspective:1600px}.mock{border:1px solid var(--border-2);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-lg);background:var(--surface);transform:rotateY(-9deg) rotateX(3deg) translateZ(0);transform-origin:left center;animation:floaty 7s ease-in-out infinite}@keyframes floaty{0%,to{transform:rotateY(-9deg) rotateX(3deg) translateY(0)}50%{transform:rotateY(-7deg) rotateX(2deg) translateY(-8px)}}.mock-bar{display:flex;align-items:center;gap:.4rem;padding:.5rem .7rem;background:var(--surface-2);border-bottom:1px solid var(--border)}.md{width:.6rem;height:.6rem;border-radius:50%}.md.r{background:#f87171}.md.y{background:#fbbf24}.md.g{background:#34d399}.mock-url{margin:0 auto;font-family:var(--xw-font-mono);font-size:.66rem;color:var(--text-mute);background:var(--bg-muted);border-radius:var(--r-full);padding:.1rem .7rem}.mock-body{display:grid;grid-template-columns:8rem 1fr 10rem;height:20rem;font-size:.72rem}.mock-side{border-right:1px solid var(--border);padding:.5rem .4rem;display:flex;flex-direction:column;gap:.15rem;overflow:hidden}.mrow{display:flex;align-items:center;gap:.35rem;padding:.25rem .35rem;border-radius:5px;color:var(--text-soft)}.mrow.on{background:color-mix(in srgb,var(--accent) 10%,transparent);box-shadow:inset 2px 0 0 var(--accent)}.mt{font-family:var(--xw-font-mono);font-size:.5rem;font-weight:800;color:#fff;padding:.06rem .26rem;border-radius:3px}.mt.big{font-size:.62rem;padding:.14rem .4rem}.mock-main{padding:.7rem .8rem;overflow:hidden;border-right:1px solid var(--border)}.mm-h{display:flex;align-items:center;gap:.4rem}.mm-h b{font-size:.82rem}.mm-url{font-family:var(--xw-font-mono);font-size:.66rem;background:var(--bg-muted);border:1px solid var(--border);border-radius:6px;padding:.3rem .45rem;margin:.4rem 0;color:var(--text-soft)}.mm-p{color:var(--text-mute);line-height:1.4}.mm-lbl{font-family:var(--xw-font-mono);font-size:.54rem;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:.7rem 0 .3rem}.mm-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--border);padding:.25rem 0;font-family:var(--xw-font-mono)}.mm-v{color:var(--text-mute)}.mock-rail{background:var(--rail-bg);color:var(--rail-text);padding:.5rem .55rem;overflow:hidden}.mr-bar{font-family:var(--xw-font-mono);font-size:.52rem;letter-spacing:.08em;color:var(--rail-mute);display:flex;align-items:center;gap:.35rem;margin:.35rem 0 .25rem}.mr-tabs{display:flex;gap:.5rem;font-family:var(--xw-font-mono);font-size:.56rem;color:var(--rail-mute);margin-bottom:.3rem}.mr-tabs b{color:#fff;border-bottom:2px solid var(--xw-gold)}.mr-code{margin:0;font-family:var(--xw-font-mono);font-size:.56rem;line-height:1.5;color:#cbd3e1;white-space:pre-wrap}.mr-code.sm{color:#9ae6b4}.mr-status{font-size:.6rem;color:var(--rail-text);margin:.3rem 0 .2rem}.mr-2{font-family:var(--xw-font-mono);font-weight:800;color:#fff;background:var(--get);border-radius:3px;padding:.05rem .3rem;font-size:.54rem}@media (max-width: 880px){.hero{grid-template-columns:1fr}.hero-art{display:none}}.strip{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;justify-content:center;padding:1.4rem clamp(1rem,4vw,3rem);border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg-muted)}.strip>span:first-child{font-family:var(--xw-font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.fbadge{font-family:var(--xw-font-mono);font-size:.74rem;color:var(--text-soft);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-full);padding:.25rem .7rem}.sec-head{text-align:center;max-width:40rem;margin:0 auto clamp(1.6rem,3vw,2.4rem)}.sec-head h2,.cta h2,.privacy h2{font-size:clamp(1.6rem,3.4vw,2.3rem);font-weight:700;margin:.5rem 0 0}section.features,section.how{padding:clamp(3rem,6vw,5rem) clamp(1rem,5vw,4rem);max-width:78rem;margin:0 auto}.fgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}@media (max-width: 720px){.fgrid{grid-template-columns:1fr}}.fcard{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);padding:1.4rem;transition:transform .18s var(--ease),border-color .18s}.fcard:hover{transform:translateY(-3px);border-color:var(--border-2);box-shadow:var(--sh)}.fcard-tag{font-family:var(--xw-font-mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.fcard h3{margin:.5rem 0 .4rem;font-size:1.1rem;letter-spacing:-.01em}.fcard p{color:var(--text-mute);line-height:1.55;font-size:.92rem;margin:0}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}@media (max-width: 760px){.steps{grid-template-columns:1fr}}.step{border-top:2px solid var(--border-2);padding-top:1rem}.step-n{font-family:var(--xw-font-mono);font-size:1.6rem;font-weight:700;color:color-mix(in srgb,var(--accent) 70%,var(--text-mute))}.step b{display:block;font-size:1.05rem;margin:.4rem 0 .3rem}.step p{color:var(--text-mute);line-height:1.5;font-size:.9rem;margin:0}.step code{font-family:var(--xw-font-mono);background:var(--bg-muted);border-radius:5px;padding:.06rem .35rem;font-size:.86em}.privacy{padding:clamp(2rem,5vw,4rem) clamp(1rem,5vw,4rem)}.priv-card{max-width:48rem;margin:0 auto;text-align:center;background:var(--rail-bg);color:var(--rail-text);border-radius:var(--r-xl);padding:clamp(2rem,5vw,3.5rem);box-shadow:var(--sh-lg)}.priv-lock{font-size:2rem}.priv-card h2{color:#fff;margin:.6rem 0 .8rem}.priv-card p{color:var(--rail-mute);line-height:1.65;max-width:40rem;margin:0 auto}.priv-card b{color:#fff}.cta{text-align:center;padding:clamp(3rem,6vw,5rem) clamp(1rem,5vw,4rem) clamp(2rem,4vw,3rem);max-width:46rem;margin:0 auto}.cta-sub{color:var(--text-mute);margin:.4rem 0 1.6rem}.drop.big{padding:3rem 1.5rem}.foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:2rem clamp(1rem,5vw,4rem);border-top:1px solid var(--border);color:var(--text-mute);font-size:.84rem}.foot-l{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}.foot-tag{color:var(--faint)}.foot-r{display:flex;align-items:center;gap:.6rem}.foot-r a{color:var(--accent);text-decoration:none}@media print{@page{margin:13mm 11mm}:root{--bg:#fff;--surface:#fff;--surface-2:#fff;--bg-muted:#f3f3f2;--text:#000;--text-soft:#1a1a1a;--text-mute:#444;--border:#ddd;--border-2:#bbb}.topbar,.sidebar,.pal-mask,.no-print,.anchor{display:none!important}.shell{display:block;height:auto}.content{overflow:visible;padding:0}.doc{max-width:none}.ep{grid-template-columns:1fr;gap:.6rem;break-inside:avoid}.ep-aside{position:static}.rail{break-inside:avoid;box-shadow:none}.rail-code,pre.code,.prose pre{white-space:pre-wrap;word-break:break-word;-webkit-print-color-adjust:exact;print-color-adjust:exact}details:not([open])>*:not(summary){display:block!important}.m-tag,.status,.rail,.rail-bar,.rail-code{-webkit-print-color-adjust:exact;print-color-adjust:exact}.folder-h{break-after:avoid}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}
