.wh-head{max-width:1080px;margin:0 auto;padding:32px 24px 6px}.wh-h1{font-size:clamp(28px,5vw,40px);font-weight:800;letter-spacing:-1px;line-height:1.15;margin:16px 0 14px;color:var(--ink)}.wh-sub{font-size:16px;color:var(--ink-2);line-height:1.65;max-width:640px}.wh-scope{font-size:12px;color:var(--ink-3);letter-spacing:.2px;line-height:1.5}.wh-meta{font-size:11px;color:var(--ink-3);margin-top:4px;font-family:var(--font-mono),monospace}.wh-note{max-width:860px;margin:0 auto;padding:0 24px 64px}.wh-note p{font-size:13px;color:var(--ink-3);line-height:1.6;margin-bottom:8px}.wh-note a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}.wb-wrap{max-width:760px;margin:0 auto;padding:0 24px 80px}.wb-hero{padding:48px 0 32px;border-bottom:1px solid var(--rule);margin-bottom:40px}.wb-h1{font-size:clamp(22px,4vw,34px);font-weight:800;letter-spacing:-.8px;line-height:1.2;margin:14px 0 16px;color:var(--ink)}.wb-meta-row{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.wb-author{font-size:13px;color:var(--ink-2)}.wb-verified{color:var(--green);background:color-mix(in srgb,var(--green) 12%,#0000);border-radius:20px;padding:3px 10px}.wb-readtime,.wb-verified{font-size:12px;font-family:var(--font-mono),monospace}.wb-readtime{color:var(--ink-3)}.wb-footer{display:flex;justify-content:space-between;align-items:center;padding-top:40px;border-top:1px solid var(--rule);margin-top:48px;flex-wrap:wrap;gap:12px}.wb-back{font-size:14px;color:var(--ink-2);text-decoration:none;transition:color .15s}.wb-back:hover{color:var(--ink)}.wb-build{font-size:14px;font-weight:600;color:var(--primary);text-decoration:none}.wb-body{font-size:15px;line-height:1.7;color:var(--ink-2)}.wb-body h2{font-size:22px;margin:40px 0 14px;letter-spacing:-.4px}.wb-body h2,.wb-body h3{font-weight:700;color:var(--ink)}.wb-body h3{font-size:17px;margin:28px 0 10px}.wb-body h4{font-size:15px;font-weight:700;color:var(--ink);margin:20px 0 8px}.wb-body p{margin-bottom:16px}.wb-body ol,.wb-body ul{margin:12px 0 16px 20px}.wb-body li{margin-bottom:6px;line-height:1.6}.wb-body strong{color:var(--ink);font-weight:600}.wb-body a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}.wb-body blockquote{border-left:3px solid var(--primary);padding:12px 20px;background:var(--bg-2);border-radius:0 8px 8px 0;margin:20px 0;font-style:italic;color:var(--ink-2)}.wb-body table{width:100%;border-collapse:collapse;margin:24px 0 32px;font-size:14px}.wb-body th{text-align:left;background:var(--bg-2);font-weight:600;color:var(--ink);font-size:13px}.wb-body td,.wb-body th{padding:10px 14px;border:1px solid var(--rule)}.wb-body td{color:var(--ink-2);vertical-align:top;line-height:1.5}.wb-body td:first-child{font-weight:500;color:var(--ink);white-space:nowrap}.wb-body tr:hover td{background:var(--bg-2)}.wb-body hr{border:none;border-top:1px solid var(--rule);margin:40px 0}@media (max-width:640px){.wb-body table{font-size:13px}.wb-body td:first-child{white-space:normal}}.wh-wrap{max-width:1280px;margin:0 auto;padding:4px 24px 40px}.wh-sec-h{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}.wh-sec-h h2{font-size:20px;font-weight:800;letter-spacing:-.5px;color:var(--ink)}.wh-k{font-family:var(--font-mono),ui-monospace,monospace;font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:var(--ink-3);font-weight:700}.wh-dos{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.wh-dc{border:1px solid var(--rule);border-radius:16px;background:var(--bg-base);padding:22px 24px;display:grid;grid-gap:14px;gap:14px;text-decoration:none;transition:border-color .14s,box-shadow .14s,transform .14s}.wh-dc:hover{border-color:var(--primary);box-shadow:0 22px 48px -26px #7c3aed38;transform:translateY(-2px)}.wh-hd{justify-content:space-between;gap:12px}.wh-hd,.wh-id{display:flex;align-items:flex-start}.wh-id{gap:14px;min-width:0}.wh-dc h3{font-size:21px;font-weight:800;letter-spacing:-.6px;color:var(--ink);margin:0;line-height:1.15}.wh-dc:hover h3{color:var(--primary)}.wh-who{font-size:12.5px;color:var(--ink-2);margin-top:4px;line-height:1.4}.wh-who b{color:var(--ink);font-weight:700}.wh-logo{width:44px;height:44px;object-fit:contain;flex:none;border-radius:10px;background:var(--bg-2);padding:6px;border:1px solid var(--rule)}[data-theme=dark] .wh-logo{background:#f4f1fb}.wh-mono{width:44px;height:44px;flex:none;border-radius:10px;display:grid;place-items:center;font-size:14px;font-weight:800;letter-spacing:-.5px;color:#f4f1fb;background:#1c1c24}.wh-mono,.wh-pi{font-family:var(--font-mono),ui-monospace,monospace}.wh-pi{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:5px;border:1px solid;white-space:nowrap;flex:none}.wh-pi.y{color:var(--green);background:var(--status-ok-bg);border-color:var(--status-ok-border)}.wh-pi.n{color:var(--ink-3);background:#0000;border-color:var(--rule);font-weight:600}.wh-pi.p{color:var(--amber,#b45309);background:var(--status-warn-bg,#fffbeb);border-color:var(--status-warn-border,#fde68a)}.wh-fg{display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid var(--rule);padding-top:12px;grid-gap:10px;gap:10px}.wh-fg div{font-size:12.5px;color:var(--ink);line-height:1.35}.wh-fg span{display:block;font-size:9.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:4px}.wh-fg span,.wh-tel{font-family:var(--font-mono),ui-monospace,monospace;color:var(--ink-3)}.wh-tel{font-size:11.5px;display:flex;gap:14px;flex-wrap:wrap}.wh-tel em{font-style:normal;color:var(--ink)}.wh-note{max-width:1280px}@media (max-width:860px){.wh-dos{grid-template-columns:1fr}}@media (max-width:640px){.wh-dc{padding:18px}.wh-fg{grid-template-columns:1fr 1fr}.wh-hd{flex-direction:column}}