@font-face{font-family:Montserrat;font-weight:100 900;src:url(fonts/montserrat.woff2) format("woff2");font-display:swap}@font-face{font-family:Geist Mono;font-weight:100 900;src:url(fonts/geist-mono.woff2) format("woff2");font-display:swap}@view-transition{navigation:auto}:root{color-scheme:dark;--ink:#0a0b0d;--surface:#14161a;--surface-2:#1c1f24;--graph:#191b1f;--graph-minor:#212429;--graph-major:#0f1013;--line:rgba(255,255,255,.09);--line-strong:rgba(255,255,255,.16);--field:#747a84;--text:#f5f5f3;--text-2:#c8cbd1;--text-3:#a1a6b0;--gold:#efc76c;--teal:#4fd0c2;--paper:#ece2ca;--paper-ink:#1c1813;--red-thread:#d9503a;--on-gold:#15110a;--err:#ff9b8f;--acc:var(--gold);--acc-ink:var(--on-gold);--pin-exec:#f5f5f3;--pin-bool:#e0533f;--pin-str:#e356cf;--pin-int:#4fd0c2;--pin-obj:#4aa8f5;--pin-off:#5b5f66;--font:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"Geist Mono",ui-monospace,Consolas,monospace;--fs-xs:12px;--fs-s:14px;--fs-m:16px;--fs-l:18px;--fs-xl:22px;--fs-2xl:28px;--fs-3xl:36px;--fs-4xl:clamp(36px,4.6vw,48px);--fs-5xl:clamp(40px,5.6vw,64px);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:clamp(56px,7vw,88px);--r-s:6px;--r-m:10px;--r-l:14px;--r-full:999px;--shadow:0 12px 32px rgba(0,0,0,.5);--gut-l:max(24px,env(safe-area-inset-left,0px));--gut-r:max(24px,env(safe-area-inset-right,0px));--top:56px;--tap:44px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--ink)}body{margin:0;background:var(--ink);color:var(--text);font:400 var(--fs-m)/1.65 var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;height:auto;display:block}a{color:inherit}h1,h2,h3{margin:0;text-wrap:balance}h1{font-weight:700;font-size:var(--fs-5xl);line-height:1.1;letter-spacing:-.025em}h2{font-weight:700;font-size:var(--fs-2xl);line-height:1.2;letter-spacing:-.02em;margin-bottom:var(--sp-5)}h3{font-weight:600;font-size:var(--fs-l);line-height:1.3;letter-spacing:-.01em}p{margin:0;text-wrap:pretty}ul,ol{margin:0;padding:0;list-style:none}time{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--acc);outline-offset:3px}.page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}main{flex:1;min-width:0}.wrap{max-width:1160px;margin-inline:auto;padding-left:var(--gut-l);padding-right:var(--gut-r)}.wrap--t{max-width:760px}.skip{position:absolute;left:-999px;top:var(--sp-2);background:var(--gold);color:var(--on-gold);padding:var(--sp-3) var(--sp-4);z-index:40}.skip:focus{left:var(--sp-4)}.t-coc{--acc:#c94430;--acc-ink:#fff}.t-trash{--acc:#f6c944;--acc-ink:var(--on-gold)}.t-illicit{--acc:#c49bff;--acc-ink:#160c28}.t-ckpt{--acc:#5de8c1;--acc-ink:#04201c}.top{height:var(--top);background:#0a0b0de0;backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}.top-in{height:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);padding-left:var(--gut-l);padding-right:var(--gut-r);position:relative}.crumbs{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-s);color:var(--text-3);min-width:0;white-space:nowrap;overflow:hidden}.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--text)}.brand{display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:700;font-size:var(--fs-m);letter-spacing:-.015em;color:var(--text);min-height:var(--tap)}.mark{width:14px;height:14px;color:var(--gold);flex:none}.sep{opacity:.5}.nav{display:flex;align-items:center;gap:var(--sp-5);flex:none}.nav a{text-decoration:none;font-weight:500;font-size:var(--fs-s);color:var(--text-2);padding-block:var(--sp-1)}.nav a:hover,.nav a[aria-current]{color:var(--text)}.nav a[aria-current]{box-shadow:0 2px 0 var(--acc)}.nav .top-cta{color:var(--acc-ink);font-weight:600;font-size:var(--fs-xs);padding:0 var(--sp-4)}.nav .top-cta:hover{color:var(--acc-ink)}.nav-t{display:none;background:none;border:1px solid var(--line-strong);color:var(--text);font:500 var(--fs-s) var(--font);padding:0 var(--sp-4);min-height:var(--tap);border-radius:var(--r-s)}.pill{display:inline-block;max-width:100%;font-weight:600;font-size:var(--fs-xs);line-height:1.3;background:var(--gold);color:var(--on-gold);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-full)}.pill--line{background:#efc76c24;color:var(--gold)}.pill--teal{background:#4fd0c229;color:var(--teal)}.btn{display:inline-flex;align-items:center;min-height:var(--tap);background:var(--acc);color:var(--acc-ink);font-weight:600;font-size:var(--fs-s);line-height:1;font-family:var(--font);padding:0 var(--sp-5);text-decoration:none;border:1px solid var(--acc);border-radius:var(--r-s);cursor:pointer;transition:filter .12s}.btn:hover{filter:brightness(1.1)}.btn--2{background:transparent;color:var(--text);border-color:var(--line-strong)}.btn--2:hover{border-color:var(--acc);filter:none}.btn--s{min-height:36px;padding:0 var(--sp-4);font-size:var(--fs-xs)}.acts{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-5)}.acts--0{margin:0 0 var(--sp-4)}.lede{font-size:var(--fs-l);line-height:1.55;max-width:56ch;color:var(--text-2)}.note{color:var(--text-3);font-size:var(--fs-s);margin-top:var(--sp-4)}.lnk{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer;text-decoration:none}.lnk:hover{color:var(--text)}.page--graph main{display:flex;flex-direction:column}.gv{--gs:16px;--gx:0px;--gy:0px;flex:1;position:relative;overflow:hidden;min-height:calc(100dvh - var(--top));cursor:grab;touch-action:none;user-select:none;background-color:var(--graph);background-image:linear-gradient(var(--graph-major) 1px,transparent 1px),linear-gradient(90deg,var(--graph-major) 1px,transparent 1px),linear-gradient(var(--graph-minor) 1px,transparent 1px),linear-gradient(90deg,var(--graph-minor) 1px,transparent 1px);background-size:calc(var(--gs)*8) calc(var(--gs)*8),calc(var(--gs)*8) calc(var(--gs)*8),var(--gs) var(--gs),var(--gs) var(--gs);background-position:var(--gx) var(--gy)}.gv:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(75% 95% at 50% 45%,transparent 50%,rgba(0,0,0,.45))}.gv.moving{cursor:grabbing}.gw{position:absolute;left:0;top:0;transform-origin:0 0}.gv.enter .gw{transition:transform .42s cubic-bezier(.7,0,.25,1)}.gfade{position:absolute;inset:0;background:var(--ink);opacity:0;pointer-events:none;transition:opacity .34s .08s;z-index:6}.gv.enter .gfade{opacity:1}.gs{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:2}.w{fill:none;stroke:var(--pin-exec);stroke-width:2.4;opacity:.9;transition:stroke .15s}.w--obj{stroke:var(--pin-obj)}.w.hot{stroke:var(--gold);stroke-width:3.4;opacity:1;filter:drop-shadow(0 0 5px rgba(239,199,108,.7))}.fl{fill:none;stroke:#fff;stroke-width:4;stroke-linecap:round;stroke-dasharray:.1 16;opacity:.75;animation:flow 1.6s linear infinite}.fl--obj{stroke:#bfe1ff}.fl.hot{stroke:#fff3c9;stroke-width:5;animation-duration:.8s;opacity:1}@keyframes flow{to{stroke-dashoffset:-16.1}}.nd{position:absolute;z-index:3;display:block;background:#121418f5;border:1px solid #000;border-radius:var(--r-m);color:var(--text);text-decoration:none;box-shadow:var(--shadow),inset 0 1px #ffffff0f;font:500 var(--fs-s)/1.35 var(--font);text-align:left;padding:0;cursor:pointer;--h:#444;transition:box-shadow .14s}a.nd:hover,button.nd:hover,.nd.sel{box-shadow:0 0 0 2px var(--gold),var(--shadow)}div.nd{cursor:default}.nd-h{display:flex;align-items:center;gap:var(--sp-2);height:36px;padding:0 var(--sp-3);background:linear-gradient(90deg,var(--h),color-mix(in srgb,var(--h) 35%,transparent));border-radius:9px 9px 0 0;font-weight:600;font-size:var(--fs-s);line-height:1;letter-spacing:-.01em;color:#fff;box-shadow:inset 0 1px #fff3}.nd-h span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ic{width:14px;height:14px;flex:none;opacity:.92}.nd-x{display:flex;justify-content:space-between;padding:var(--sp-2) var(--sp-3) 6px}.nd-i{display:block;margin:0 10px 10px;border-radius:var(--r-s);overflow:hidden;background:#000}.nd-i img,.nd-g img{width:100%;height:auto;pointer-events:none}.nd-g{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2);margin:0 10px 10px}.nd-g>span{display:block;border-radius:var(--r-s);overflow:hidden;background:#000}.nd-r{display:flex;align-items:center;gap:var(--sp-2);padding:3px var(--sp-3);min-height:26px}.nd-r:last-child{padding-bottom:var(--sp-3)}.nd-r b{font-weight:500;color:var(--gold);margin-left:auto}.nd-r--o{justify-content:flex-end}.nd-f{display:block;padding:0 10px var(--sp-3)}.nd-n{display:grid;gap:2px;padding:var(--sp-3);border-top:1px solid var(--line)}.nd-n:first-of-type{border-top:0}.nd-n time{font-size:var(--fs-xs);font-weight:500;color:var(--text-3)}.nd-n span{font-weight:500;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.nd--slim .nd-x{display:none}.nd--slim:not(:has(.nd-n)) .nd-h{border-radius:9px}.p{display:block;flex:none;width:11px;height:11px;border-radius:50%;background:var(--pc,var(--pin-exec))}.p-x{border-radius:0;width:13px;height:13px;background:var(--pin-exec);clip-path:polygon(0 0,55% 0,100% 50%,55% 100%,0 100%)}.p-str{--pc:var(--pin-str)}.p-bool{--pc:var(--pin-bool)}.p-int{--pc:var(--pin-int)}.p-obj{--pc:var(--pin-obj)}.p-off{--pc:var(--pin-off)}.nd--off{opacity:.8}.nd--off .nd-h{background:linear-gradient(90deg,#3b3e44,#24262b)}.nd--off .nd-r{color:var(--text-3)}.cm{position:absolute;z-index:1;border:1px solid var(--line-strong);background:#ffffff06;border-radius:var(--r-l)}.cm-h{padding:var(--sp-3) var(--sp-5) 0}.cm h2{font-size:var(--fs-l);font-weight:700;letter-spacing:-.01em;line-height:1.5;margin:0;color:var(--c)}.cm h2 a{text-decoration:none}.cm h2 a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.cm--h1 .cm-h{padding-top:var(--sp-5)}.cm h1{font-size:44px;line-height:1.08;color:var(--text);margin-bottom:var(--sp-3)}.cm--s h1{font-size:var(--fs-2xl);margin-bottom:var(--sp-1)}.cm p{font-size:var(--fs-s);line-height:1.55;color:var(--text-2)}.cm .btn{margin-top:var(--sp-3)}.gzoom{position:absolute;right:var(--sp-4);top:var(--sp-2);z-index:5;font:400 var(--fs-xs) var(--mono);color:var(--text-3)}.gmark{position:absolute;right:var(--sp-5);bottom:var(--sp-6);z-index:0;font-weight:800;font-size:var(--fs-4xl);line-height:1;letter-spacing:.02em;color:#ffffff0a;pointer-events:none}.ghud{position:absolute;left:0;right:0;bottom:0;z-index:5;display:flex;justify-content:space-between;gap:var(--sp-5);padding:var(--sp-1) var(--sp-4);font-size:var(--fs-xs);color:var(--text-3);pointer-events:none}.ghud nav{display:flex;gap:var(--sp-4);flex-wrap:wrap;pointer-events:auto}.ghud a{text-decoration:none}.ghud a:hover{color:var(--text)}.ph{padding-block:var(--sp-8) var(--sp-6)}.ph h1{margin-block:var(--sp-3)}.sec{padding-block:var(--sp-7)}.sec--0{padding-top:var(--sp-2)}.sec--end{border-top:1px solid var(--line)}.endc{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-5);flex-wrap:wrap}.endc h2,.endc .acts{margin:0}.foot{border-top:1px solid var(--line);font-size:var(--fs-s);color:var(--text-3)}.foot-in{display:flex;justify-content:space-between;gap:var(--sp-3) var(--sp-5);flex-wrap:wrap;padding-block:var(--sp-4)}.foot nav{display:flex;gap:var(--sp-4);flex-wrap:wrap}.foot a{text-decoration:none}.foot a:hover{color:var(--text)}.gbs{display:grid;gap:var(--sp-5)}.gcs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-5)}.gc{text-decoration:none;display:block;min-width:0}.gc img{border-radius:var(--r-l);width:100%}.gc-t{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-1) var(--sp-3);margin-top:var(--sp-3)}.gc-t strong{font-weight:700;font-size:var(--fs-xl);letter-spacing:-.015em}.gc:hover strong{color:var(--acc)}.gc-s{display:block;color:var(--text-3);font-size:var(--fs-s);margin-top:var(--sp-1)}.gb{position:relative;display:block;border-radius:var(--r-l);overflow:hidden;background:var(--surface);aspect-ratio:21/9;text-decoration:none;isolation:isolate}.gb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.gb:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,9,12,.94) 10%,rgba(8,9,12,.62) 48%,transparent 76%)}.gb-t{position:absolute;left:var(--sp-7);bottom:var(--sp-6);max-width:min(520px,70%);display:grid;gap:var(--sp-2);justify-items:start}.gb-t strong{font-weight:700;font-size:var(--fs-4xl);line-height:1.1;letter-spacing:-.025em}.gb-t>span:last-child{color:var(--text-2)}.hero{position:relative;min-height:min(70vh,640px);display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}.hero-i{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,var(--ink) 2%,rgba(10,11,13,.82) 42%,rgba(10,11,13,.2) 80%),linear-gradient(90deg,rgba(10,11,13,.88),transparent 70%)}.hero-t{width:100%;padding-block:0 var(--sp-6)}.hero h1{margin-block:var(--sp-3)}.hero .pill,.pro .pill{background:var(--acc);color:var(--acc-ink)}.nums{padding-block:var(--sp-5);border-block:1px solid var(--line);background:var(--surface)}.nums-in{display:flex;gap:var(--sp-7);flex-wrap:wrap}.nums p{display:flex;align-items:baseline;gap:var(--sp-2)}.nums b{font-weight:700;font-size:var(--fs-3xl);line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--acc)}.t-coc .nums b{color:#ef7a68}.nums span{color:var(--text-3);font-size:var(--fs-s)}.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-5)}.steps img{border-radius:var(--r-m);aspect-ratio:16/10;object-fit:cover;width:100%;margin-bottom:var(--sp-3)}.steps h3{margin-bottom:var(--sp-1)}.steps p{font-size:var(--fs-s);line-height:1.55;color:var(--text-3)}.board{position:relative;height:410px;background-color:#1d1913;border-radius:var(--r-l);background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1.4px);background-size:9px 9px;overflow:hidden}.board-s{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}.board ol{position:absolute;inset:0}.board li{position:absolute;left:var(--x);top:var(--y);width:212px;margin-left:-106px;margin-top:-14px;background:var(--paper);color:var(--paper-ink);padding:var(--sp-5) var(--sp-4) var(--sp-3);transform:rotate(var(--r));box-shadow:0 10px 22px #00000080;border-radius:2px;z-index:1}.board li:before{content:"";position:absolute;top:7px;left:50%;width:15px;height:15px;margin-left:-7px;border-radius:50%;background:var(--red-thread);box-shadow:0 2px 3px #00000080;z-index:3}.board code{font:500 var(--fs-xs) var(--mono);color:#8a2d20}.board h3{font-size:var(--fs-m);margin:var(--sp-1) 0}.board p{font-size:var(--fs-s);line-height:1.4}.gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3)}.gal button{padding:0;border:0;background:var(--surface);cursor:zoom-in;aspect-ratio:16/9;overflow:hidden;border-radius:var(--r-m)}.gal img{width:100%;height:100%;object-fit:cover}.lb{border:0;padding:0;background:none;max-width:none;max-height:none;width:100vw;height:100vh;color:var(--text)}.lb::backdrop{background:#000000eb}.lb[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-5)}.lb img{max-height:calc(100vh - 110px);object-fit:contain;border-radius:var(--r-s)}.lb-b{display:flex;gap:var(--sp-3)}.lb-b button{background:var(--surface-2);color:var(--text);border:1px solid var(--line-strong);font:500 var(--fs-s) var(--font);min-height:var(--tap);padding:0 var(--sp-4);border-radius:var(--r-s);cursor:pointer}.upd{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--sp-7);align-items:start}.card{background:var(--surface);border-radius:var(--r-l);padding:var(--sp-5)}.card-m{display:flex;align-items:center;gap:var(--sp-3);color:var(--text-3);font-size:var(--fs-s);margin-bottom:var(--sp-3)}.card h3{font-size:var(--fs-xl);line-height:1.25;letter-spacing:-.015em;margin-bottom:var(--sp-2)}.card .pill{background:var(--acc);color:var(--acc-ink)}.card>p{color:var(--text-2)}details summary{cursor:pointer;font-weight:600;font-size:var(--fs-s);min-height:var(--tap);display:flex;align-items:center;gap:var(--sp-2);list-style:none}details summary::-webkit-details-marker{display:none}details summary:before{content:"";width:0;height:0;border-left:6px solid currentColor;border-block:4px solid transparent;transition:transform .12s}details[open]>summary:before{transform:rotate(90deg)}.card details{margin-top:var(--sp-2)}.card summary{color:var(--text)}.mini li{border-top:1px solid var(--line)}.mini li:first-child{border-top:0}.mini a{display:grid;gap:2px;padding:var(--sp-3) 0;text-decoration:none}.mini a:hover span{color:var(--acc)}.mini li:not(:has(a)){padding:var(--sp-3) 0;display:grid;gap:2px}.mini time{font-size:var(--fs-xs);font-weight:500;color:var(--text-3)}.mini span{font-weight:500;font-size:var(--fs-s)}.prose{max-width:68ch}.prose a,.note a{color:var(--gold);text-underline-offset:3px}.prose code{font:400 var(--fs-xs) var(--mono);overflow-wrap:anywhere}.prose .tbl,.prose .acts{margin-block:var(--sp-3)}.prose p,.prose li{color:var(--text-2)}.prose h2,.prose h3{font-size:var(--fs-m);font-weight:600;line-height:1.3;letter-spacing:-.01em;margin:var(--sp-5) 0 var(--sp-2)}.prose h2:first-child,.prose h3:first-child{margin-top:0}.prose p+p{margin-top:var(--sp-3)}.prose ul{display:grid;gap:var(--sp-1)}.prose li{padding-left:var(--sp-4);position:relative;font-size:var(--fs-s);line-height:1.55}.prose li:before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--acc)}.fold{background:var(--surface);border-radius:var(--r-m);padding:var(--sp-1) var(--sp-4)}.tbl{overflow-x:auto;padding-bottom:var(--sp-3)}table{border-collapse:collapse;width:100%;min-width:560px;font-size:var(--fs-s)}th,td{padding:var(--sp-2) var(--sp-3);text-align:left;border-bottom:1px solid var(--line);vertical-align:top}thead th{font-weight:600}tbody th{font-weight:500;color:var(--text-3)}tbody tr:last-child>*{border-bottom:0}.pro{padding-block:var(--sp-7) var(--sp-3);background:radial-gradient(760px 420px at 22% 30%,color-mix(in srgb,var(--tint) 14%,transparent),transparent 70%)}.pro-in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--sp-7);align-items:center}.pro-i{border-radius:var(--r-l);overflow:hidden;box-shadow:var(--shadow)}.pro-i img{width:100%}.pro h1{font-size:var(--fs-4xl);margin-block:var(--sp-3)}.acc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2) var(--sp-4);align-items:start}.acc details{background:var(--surface);border-radius:var(--r-m);padding:var(--sp-1) var(--sp-4)}.acc ul{display:grid;gap:var(--sp-1);padding-bottom:var(--sp-3)}.acc li{font-size:var(--fs-s);line-height:1.5;color:var(--text-3);padding-left:var(--sp-3);position:relative}.acc li:before{content:"";position:absolute;left:0;top:.6em;width:5px;height:5px;border-radius:50%;background:var(--gold)}.pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-5)}.pt{text-decoration:none;font-weight:600;font-size:var(--fs-s)}.pt img{border-radius:var(--r-m);margin-bottom:var(--sp-2);width:100%}.pt:hover span{color:var(--gold)}.nl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}.nl a{display:grid;grid-template-columns:112px minmax(0,1fr);gap:var(--sp-4);align-items:center;padding:var(--sp-3);border-radius:var(--r-m);background:var(--surface);text-decoration:none;height:100%}.nl a:hover strong{color:var(--gold)}.nl img{border-radius:var(--r-s);width:112px;aspect-ratio:16/9;object-fit:cover}.nl time{display:block;font-size:var(--fs-xs);font-weight:500;color:var(--text-3)}.nl strong{font-weight:600;font-size:var(--fs-s);line-height:1.4;display:block}.post{padding-block:var(--sp-8)}.post time{color:var(--text-3);font-size:var(--fs-s)}.post h1{font-size:var(--fs-4xl);margin-block:var(--sp-2) var(--sp-3)}.post .lede{margin-bottom:var(--sp-6)}.post .note{margin:var(--sp-2) 0 var(--sp-6)}.me{padding-block:var(--sp-8)}.me-in{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:var(--sp-7);align-items:center}.me-i{border-radius:var(--r-l);overflow:hidden}.me-i img{width:100%}.me h1{margin-bottom:var(--sp-3)}.me .lede+p{margin-top:var(--sp-4);color:var(--text-3);max-width:58ch}.uai{display:flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-5)}.uai-i{width:64px;height:64px;flex:none}.uai p{display:grid;gap:2px}.uai strong{font-weight:600;font-size:var(--fs-m);line-height:1.3;letter-spacing:-.01em}.uai span{font-size:var(--fs-s);line-height:1.3;color:var(--text-3)}.cv{padding-bottom:var(--sp-8)}.cv-r{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:var(--sp-7);padding-block:var(--sp-6);border-top:1px solid var(--line)}.cv-h h2{font-size:var(--fs-xl);margin-bottom:var(--sp-2)}.cv-h p{font-size:var(--fs-s);line-height:1.5;color:var(--text-3)}.cv-l{display:grid;gap:var(--sp-4)}.cv-l li{display:grid;gap:2px}.cv-l p{font-size:var(--fs-s);line-height:1.5;color:var(--text-3);max-width:62ch}.cv-l p:first-child{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-2);color:var(--text)}.cv-n{display:inline-flex;align-items:center;min-height:24px;font-weight:600;font-size:var(--fs-m);line-height:1.3;color:var(--text)}a.cv-n{text-decoration-color:var(--gold);text-underline-offset:3px}a.cv-n:hover{color:var(--gold)}.cv-st{display:flex;flex-wrap:wrap;gap:var(--sp-4) var(--sp-7);margin-bottom:var(--sp-5)}.cv-st p{display:grid;align-content:start;gap:2px;max-width:26ch}.cv-st b{font-weight:700;font-size:var(--fs-2xl);line-height:1.15;letter-spacing:-.02em;color:var(--gold)}.cv-st span{font-size:var(--fs-s);line-height:1.4;color:var(--text-3)}.cv-f{margin-top:var(--sp-4);font-size:var(--fs-xs);line-height:1.5;color:var(--text-3)}.cv-c{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.cv-m{display:inline-flex;align-items:center;min-height:24px;margin-top:var(--sp-4);font-size:var(--fs-s);color:var(--gold);text-decoration:underline;text-underline-offset:3px}.uai-l{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3)}.uai-l a{display:inline-flex;align-items:center;min-height:24px;color:var(--gold);text-decoration:underline;text-underline-offset:3px}.mail{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);margin-top:var(--sp-5)}.mail a{font-weight:700;font-size:var(--fs-xl);letter-spacing:-.02em;text-decoration:none;color:var(--gold)}.ct{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:var(--sp-7);align-items:start}.fm{position:relative;display:grid;gap:var(--sp-4);background:var(--surface);border-radius:var(--r-l);padding:var(--sp-5)}.fm .note{margin:0}.fm-f{display:grid;gap:var(--sp-1);min-width:0}.fm-f>label:not(.fm-c){font-weight:600;font-size:var(--fs-s)}.fm input:not([type=checkbox]),.fm select,.fm textarea{width:100%;min-height:var(--tap);background:var(--ink);color:var(--text);border:1px solid var(--field);border-radius:var(--r-s);padding:var(--sp-2) var(--sp-3);font:400 var(--fs-m)/1.5 var(--font)}.fm textarea{resize:vertical;min-height:140px}.fm [aria-invalid=true]{border-color:var(--err)}.fm-c{display:flex;gap:var(--sp-3);align-items:flex-start;min-height:var(--tap);font-size:var(--fs-s);color:var(--text-2);cursor:pointer}.fm-c input{width:24px;height:24px;margin:0;flex:none;accent-color:var(--acc)}.fm-c a{color:var(--gold);text-underline-offset:3px}.fm-e{color:var(--err);font-size:var(--fs-s);font-weight:500}.fm-h{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.fm-b{justify-self:start}.fm-b[disabled]{opacity:.6;cursor:progress}.fm-st{font-size:var(--fs-s);font-weight:500;min-height:1.65em}.fm-st.ok{color:var(--teal)}.fm-st.err{color:var(--err)}.au{flex:1;display:flex;align-items:center;justify-content:center;min-height:calc(100dvh - var(--top) - 80px);padding-block:var(--sp-7);padding-left:var(--gut-l);padding-right:var(--gut-r)}.au-c{width:min(100%,460px);display:grid;gap:var(--sp-4)}.au-c h1{font-size:var(--fs-3xl)}.au-c .acts,.au-c .note{margin:0}.au-h{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-5)}.au-h h1{font-size:var(--fs-4xl)}.au-new{grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:end;margin-bottom:var(--sp-7)}.au-new .fm-b{min-height:var(--tap)}.au-link{display:grid;gap:var(--sp-2);background:var(--surface);border:1px solid var(--gold);border-radius:var(--r-l);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-6);font-size:var(--fs-s)}.au-url{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.au-url code{font:400 var(--fs-xs) var(--mono);overflow-wrap:anywhere;min-width:0;flex:1 1 280px}.au-pay{margin-bottom:var(--sp-7)}.au-pay-in{display:grid;gap:var(--sp-3);padding-block:var(--sp-2) var(--sp-4)}.au-pay .fm{padding:0;background:none;max-width:560px}.au-url span{font-size:var(--fs-s);font-weight:600;min-width:96px}.au-t td{white-space:nowrap}.au-t td:nth-child(2){white-space:normal}.au-acc{display:flex;align-items:center;gap:var(--sp-2)}.au-del summary{color:var(--err);min-height:36px;padding-inline:var(--sp-2);white-space:nowrap}.au-del[open]{display:flex;align-items:center}.ck{position:fixed;left:max(var(--sp-4),env(safe-area-inset-left,0px));bottom:max(var(--sp-4),env(safe-area-inset-bottom,0px));z-index:50;width:min(460px,calc(100vw - var(--sp-6)));background:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--r-l);box-shadow:var(--shadow);padding:var(--sp-4) var(--sp-5)}.ck p{font-size:var(--fs-s);line-height:1.5;color:var(--text-2)}.ck a{color:var(--gold);text-underline-offset:3px}.ck .acts{margin-top:var(--sp-3);flex-wrap:nowrap}.ck .btn{flex:1;justify-content:center;padding:0 var(--sp-3)}.nf{flex:1;display:flex;align-items:center;min-height:calc(100dvh - var(--top) - 80px);background-color:var(--graph);background-image:linear-gradient(var(--graph-minor) 1px,transparent 1px),linear-gradient(90deg,var(--graph-minor) 1px,transparent 1px);background-size:16px 16px}.nf-in{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:var(--sp-7);align-items:center;padding-block:var(--sp-7)}.nf-g{display:flex;align-items:flex-start}.nf .nd{position:static;width:216px;flex:none;cursor:default;padding-bottom:var(--sp-2)}.nf-w{width:150px;margin-top:6px;flex:0 1 auto;min-width:0;overflow:visible}.nf-w path{fill:none;stroke:var(--pin-bool);stroke-width:2.4;stroke-dasharray:7 7}.nf-w circle{fill:none;stroke:var(--pin-bool);stroke-width:2.4}.nf h1{margin-bottom:var(--sp-3)}.vd{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--sp-3) var(--sp-4)}.vd-g{display:flex;align-items:center;gap:var(--sp-6);padding:var(--sp-5);border-radius:var(--r-l);background-color:var(--graph);background-image:linear-gradient(var(--graph-minor) 1px,transparent 1px),linear-gradient(90deg,var(--graph-minor) 1px,transparent 1px);background-size:16px 16px;min-width:0}.vd .nd{position:static;width:230px;max-width:100%}.vd-c{display:grid;gap:var(--sp-4);min-width:0}.vd-code{margin:0;padding:var(--sp-5);background:var(--surface);border-radius:var(--r-l);font:400 var(--fs-s)/1.8 var(--mono);overflow-x:auto;display:flex;align-items:center}.vd-code code{font:inherit;display:block;width:100%}.vd-code span{display:block;min-height:1.8em;white-space:pre;padding:0 var(--sp-2);border-radius:var(--r-s)}.vd-code span.on{background:color-mix(in srgb,var(--acc) 20%,transparent);color:var(--acc)}.vd-t{grid-column:1 / -1;color:var(--text-3);font-size:var(--fs-s);min-height:2em}@media(max-width:1040px){.crumbs>:not(.brand){display:none}.steps{grid-template-columns:repeat(2,minmax(0,1fr))}.nl,.vd{grid-template-columns:minmax(0,1fr)}.board{height:auto;padding:var(--sp-5)}.board-s{display:none}.board ol{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4)}.board li{position:relative;left:auto;top:auto;width:auto;margin:0}}@media(max-width:899px){.gv{display:flex;flex-direction:column;overflow:visible;cursor:auto;touch-action:auto;user-select:auto;background-image:none;padding:var(--sp-4) var(--gut-r) var(--sp-3) var(--gut-l);background-color:var(--ink)}.gv:before,.gfade,.gs,.gzoom,.gmark,.ghint,.nd-x{display:none}.gw{position:relative;width:auto!important;height:auto!important;display:flex;flex-direction:column;gap:var(--sp-4);padding-left:var(--sp-5)}.gw:before{content:"";position:absolute;left:5px;top:60px;bottom:30px;width:2px;background:var(--pin-exec);opacity:.5}.nd,.cm{position:relative;left:auto!important;top:auto!important;width:auto!important;height:auto!important}.gw .nd:before{content:"";position:absolute;left:-23px;top:12px;width:12px;height:12px;background:var(--pin-exec);clip-path:polygon(0 0,55% 0,100% 50%,55% 100%,0 100%)}[data-n=seq]{display:none}.cm{border:0;background:var(--ink);margin-left:calc(var(--sp-5)*-1);margin-top:var(--sp-3);z-index:1;padding-block:var(--sp-1)}.cm-h,.cm--h1 .cm-h{padding:0}.cm h1{font-size:var(--fs-3xl)}.cm h2{font-size:var(--fs-xl)}.cm .btn,.btn--s,.nd--slim{min-height:var(--tap)}.ghud{position:static;padding:var(--sp-5) 0 var(--sp-2)}.ghud a,.foot a,.lnk,.cm h2 a{display:inline-flex;align-items:center;min-height:var(--tap)}.nav a{min-height:var(--tap);display:flex;align-items:center}}@media(max-width:820px){.nav-t{display:block}.nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--ink);border-bottom:1px solid var(--line);flex-direction:column;gap:0;padding:var(--sp-1) var(--gut-r) var(--sp-3) var(--gut-l)}.nav.open{display:flex}.nav a{font-size:var(--fs-m);align-self:stretch}.nav .top-cta{justify-content:center;font-size:var(--fs-s);margin-top:var(--sp-2);min-height:var(--tap)}.ct,.nf-in,.au-new{grid-template-columns:minmax(0,1fr)}.ct{gap:var(--sp-6)}.pro-in,.upd,.me-in,.gcs,.cv-r{grid-template-columns:minmax(0,1fr)}.cv-r{gap:var(--sp-4)}.upd,.pro-in,.me-in{gap:var(--sp-5)}.acc{grid-template-columns:minmax(0,1fr)}.gb{aspect-ratio:4/3}.gb:after{background:linear-gradient(0deg,rgba(8,9,12,.94) 26%,transparent 80%)}.gb-t{left:var(--sp-5);bottom:var(--sp-5);max-width:none;right:var(--sp-5)}.hero{min-height:560px}.hero:after{background:linear-gradient(0deg,var(--ink) 6%,rgba(10,11,13,.86) 52%,transparent 86%)}.nums-in{gap:var(--sp-5)}}@media(max-width:560px){.steps,.board ol,.gal,.pgrid{grid-template-columns:minmax(0,1fr)}.vd-g{flex-direction:column;align-items:stretch;gap:var(--sp-3);padding:var(--sp-4)}.vd .nd{width:auto}.btn{padding:0 var(--sp-4)}}@media(max-width:400px){.mail a{font-size:var(--fs-l)}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}@view-transition{navigation:none}}
