:root{--paper: #f5f8f3;--paper-2: #eaf0e6;--paper-3: #dee7d9;--ink: #0d140d;--ink-2: #38443a;--muted: #5c6b5e;--line: #d3ddce;--line-strong: #a9b8a4;--copper: #00a804;--copper-soft: #d7f0d3;--resist: #5f7d00;--resist-soft: #edefc2;--logo-hi: #48c82e;--logo-main: #1faf19;--logo-mid: #138a12;--logo-deep: #0b620d;--logo-core: #e8ffe0;--code-bg: #eef2ea;--grid: rgba(20, 26, 34, .045);--ok: #12833f;--ok-soft: #d7f0dd;--warn: #8a6410;--warn-soft: #f4ecd0;--danger: #c03a30;--danger-soft: #f6dcd8;--scrim: rgba(20, 26, 34, .5);--grid-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28'%3E%3Cpath d='M0 .5H28M.5 0V28' stroke='rgba(20,26,34,0.045)' fill='none'/%3E%3C/svg%3E");--die-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Crect x='5' y='5' width='2' height='2' fill='rgba(20,26,34,0.14)'/%3E%3C/svg%3E");color-scheme:light;--font-display: "Noto Serif SC", "Songti SC", "STSong", serif;--font-sans: "IBM Plex Sans", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;--fs-1: 12px;--fs-2: 13px;--fs-3: 14px;--fs-4: 16.5px;--fs-5: 20px;--fs-6: 27px;--fs-7: 36px;--fs-8: 48px;--r-1: 3px;--r-2: 6px;--gap: 12px;--gap-lg: 20px;--container: 1200px;--nav-h: 56px;--bg: var(--paper);--bg-elev: var(--paper-2);--bg-elev-2: var(--paper-3);--bg-inset: var(--code-bg);--fg: var(--ink);--fg-muted: var(--muted);--fg-faint: color-mix(in srgb, var(--muted) 72%, var(--paper));--copper-strong: var(--copper);--copper-dim: var(--copper-soft);--cyan: var(--resist);--cyan-strong: var(--resist);--cyan-dim: var(--resist-soft);--ok-dim: var(--ok-soft);--warn-dim: var(--warn-soft);--danger-dim: var(--danger-soft);--info: var(--resist);--info-dim: var(--resist-soft);--shadow: none;--radius-sm: var(--r-1);--radius: var(--r-1);--radius-lg: var(--r-2);--fs-xs: var(--fs-1);--fs-sm: var(--fs-2);--fs-md: var(--fs-3);--fs-lg: var(--fs-5);--fs-xl: var(--fs-6);--fs-2xl: var(--fs-7);--fs-3xl: var(--fs-8)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--paper: #0a0d0a;--paper-2: #111511;--paper-3: #181e17;--ink: #e9f1ea;--ink-2: #aebbb0;--muted: #77866f;--line: #232b22;--line-strong: #33402d;--copper: #00d40a;--copper-soft: #0e2410;--resist: #c6ff3a;--resist-soft: #1d2b0e;--logo-hi: #a8ff5c;--logo-main: #00d40a;--logo-mid: #00a804;--logo-deep: #006e1e;--logo-core: #e8ffe0;--code-bg: #101610;--grid: rgba(230, 235, 240, .05);--ok: #3fd07a;--ok-soft: #0f2a1a;--warn: #e8b23a;--warn-soft: #2a2410;--danger: #f0584e;--danger-soft: #331615;--scrim: rgba(4, 8, 12, .6);--grid-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28'%3E%3Cpath d='M0 .5H28M.5 0V28' stroke='rgba(230,235,240,0.05)' fill='none'/%3E%3C/svg%3E");--die-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Crect x='5' y='5' width='2' height='2' fill='rgba(230,235,240,0.16)'/%3E%3C/svg%3E");color-scheme:dark}}:root[data-theme=dark]{--paper: #0a0d0a;--paper-2: #111511;--paper-3: #181e17;--ink: #e9f1ea;--ink-2: #aebbb0;--muted: #77866f;--line: #232b22;--line-strong: #33402d;--copper: #00d40a;--copper-soft: #0e2410;--resist: #c6ff3a;--resist-soft: #1d2b0e;--logo-hi: #a8ff5c;--logo-main: #00d40a;--logo-mid: #00a804;--logo-deep: #006e1e;--logo-core: #e8ffe0;--code-bg: #101610;--grid: rgba(230, 235, 240, .05);--ok: #3fd07a;--ok-soft: #0f2a1a;--warn: #e8b23a;--warn-soft: #2a2410;--danger: #f0584e;--danger-soft: #331615;--scrim: rgba(4, 8, 12, .6);--grid-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28'%3E%3Cpath d='M0 .5H28M.5 0V28' stroke='rgba(230,235,240,0.05)' fill='none'/%3E%3C/svg%3E");--die-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Crect x='5' y='5' width='2' height='2' fill='rgba(230,235,240,0.16)'/%3E%3C/svg%3E");color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--fs-4);line-height:1.6;color:var(--ink);background:var(--paper);background-image:var(--grid-img);background-attachment:fixed;min-height:100vh;-webkit-font-smoothing:antialiased}a{color:var(--ink);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--copper)}a.mono,.num a{color:var(--ink-2)}.lede a,.note a,.callout a,.seealso a{text-decoration:underline;text-decoration-color:var(--line-strong);text-decoration-thickness:1px;text-underline-offset:2px}.lede a:hover,.note a:hover,.callout a:hover,.seealso a:hover{color:var(--copper);text-decoration-color:var(--copper)}h1,h2,h3,h4{margin:0 0 .5em;line-height:1.25;font-weight:700;letter-spacing:0;color:var(--ink)}h1,h2{font-family:var(--font-display);text-wrap:balance}h1{font-size:var(--fs-7)}h2{font-size:var(--fs-6)}h3{font-size:var(--fs-5);font-weight:600}h4{font-size:var(--fs-4);font-weight:600}p{margin:0 0 .75em}code,pre,kbd,.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}pre{background:var(--code-bg);border:1px solid var(--line);border-radius:var(--r-2);padding:12px 14px;overflow-x:auto;font-size:var(--fs-2);line-height:1.6}code{font-size:.9em;background:var(--code-bg);padding:.1em .35em;border-radius:var(--r-1)}pre code{background:none;padding:0}hr{border:0;border-top:1px solid var(--line);margin:var(--gap-lg) 0}img,svg{max-width:100%}button,input,select,textarea{font:inherit;color:inherit}::selection{background:var(--copper-soft)}:focus-visible{outline:2px solid var(--resist);outline-offset:2px}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.eyebrow{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.app{min-height:100vh;display:flex;flex-direction:column}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 20px}.main{flex:1;padding:var(--gap-lg) 0 56px}.page-title{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:var(--gap-lg);padding-bottom:8px;border-bottom:2px solid var(--ink)}.page-title h1{margin:0;font-size:var(--fs-7)}.page-title .sub{color:var(--muted);font-size:var(--fs-2);font-family:var(--font-mono)}.grid{display:grid;gap:var(--gap)}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 24px;row-gap:24px;align-items:stretch}.grid-4>*{border-top:1px solid var(--line-strong);padding-top:12px;min-width:0}.grid-4>.card,.grid-4>a>.card{border-top:1px solid var(--line-strong)}.grid-4>a{color:inherit}.row{display:flex;align-items:center;gap:var(--gap);flex-wrap:wrap}.row.between{justify-content:space-between}.col{display:flex;flex-direction:column;gap:var(--gap)}.stack>*+*{margin-top:var(--gap)}.muted{color:var(--muted)}.faint{color:var(--fg-faint)}.small{font-size:var(--fs-2)}.xs{font-size:var(--fs-1)}.copper{color:var(--copper)}.cyan,.resist{color:var(--resist)}.ok{color:var(--ok)}.warn{color:var(--warn)}.danger{color:var(--danger)}.right{text-align:right}.center{text-align:center}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}.hide-mobile{display:initial}.show-mobile{display:none}.nav{position:sticky;top:0;z-index:50;height:var(--nav-h);background:var(--paper);border-bottom:1px solid var(--line)}.nav .container{height:100%;display:flex;align-items:center;gap:20px}.brand{display:inline-flex;align-items:baseline;gap:8px;color:var(--ink);white-space:nowrap;font-family:var(--font-display);font-weight:700;font-size:20px;line-height:1}.brand:hover{text-decoration:none}.brand .zh{font-family:var(--font-mono);font-weight:400;font-size:var(--fs-1);color:var(--muted);letter-spacing:.08em}.brand-logo{display:block;flex:0 0 auto;align-self:center}.nav-links{display:flex;align-items:stretch;gap:2px;flex:1;height:100%;overflow-x:auto;scrollbar-width:none}.nav-links::-webkit-scrollbar{display:none}.nav-link{display:inline-flex;align-items:center;padding:0 10px;color:var(--muted);font-family:var(--font-mono);font-size:13px;white-space:nowrap;border-bottom:2px solid transparent;background:none;border-top:0;border-left:0;border-right:0;cursor:pointer}.nav-link:hover{color:var(--ink);text-decoration:none}.nav-link.active{color:var(--ink);border-bottom-color:var(--copper)}.nav-right{display:flex;align-items:center;gap:6px;margin-left:auto}.nav-more{position:relative;display:inline-flex;align-items:stretch}.nav-menu{position:absolute;right:0;top:calc(100% + 1px);min-width:200px;background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--r-2);padding:4px 0;display:flex;flex-direction:column;z-index:60}.nav-menu .nav-link{display:block;padding:8px 14px;border-bottom:0;text-align:left}.nav-menu .nav-link.active{color:var(--copper)}.nav-menu .nav-link:hover{background:var(--paper-2)}.burger,.mobile-drawer{display:none}.sq-btn{display:inline-grid;place-items:center;height:28px;min-width:28px;padding:0 6px;border:1px solid var(--line-strong);border-radius:var(--r-1);background:var(--paper);color:var(--ink-2);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.06em;cursor:pointer}.sq-btn:hover{border-color:var(--ink);color:var(--ink)}.footer{border-top:1px solid var(--line);padding:28px 0 36px;color:var(--muted);font-size:var(--fs-1);font-family:var(--font-mono);background:var(--paper)}.footer .container{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 32px}.footer .foot-col{display:flex;flex-direction:column;gap:6px;min-width:0}.footer .foot-head{color:var(--ink);letter-spacing:.14em;text-transform:uppercase;font-size:11.5px;border-top:2px solid var(--ink);padding-top:8px;margin-bottom:4px}.footer a{color:var(--ink-2)}.footer a:hover{color:var(--copper)}.footer .foot-brand{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:18px;color:var(--ink)}.footer .foot-addr{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:4px}.footer .foot-addr .k{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 14px;border-radius:var(--r-1);border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-size:var(--fs-3);font-weight:500;line-height:1;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,color .12s;user-select:none}.btn:hover{background:var(--ink-2);border-color:var(--ink-2);text-decoration:none}.btn:focus-visible{outline:2px solid var(--resist);outline-offset:2px}.btn:active{transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--ink);border-color:var(--ink);color:var(--paper)}.btn.primary:hover{background:var(--copper);border-color:var(--copper)}.btn.accent{background:var(--paper);border-color:var(--resist);color:var(--resist)}.btn.accent:hover{background:var(--resist-soft)}.btn.danger{background:var(--paper);border-color:var(--danger);color:var(--danger)}.btn.danger:hover{background:var(--danger-soft)}.btn.ghost{background:transparent;border-color:var(--line-strong);color:var(--ink-2)}.btn.ghost:hover{border-color:var(--ink);color:var(--ink);background:transparent}.btn.sm{height:28px;padding:0 10px;font-size:var(--fs-2)}.btn.xs{height:24px;padding:0 8px;font-size:var(--fs-1)}.btn.lg{height:44px;padding:0 20px;font-size:var(--fs-4)}.btn.block{width:100%}.btn.mono{font-family:var(--font-mono)}.btn .spinner{width:12px;height:12px;border-color:color-mix(in srgb,currentColor 35%,transparent);border-top-color:currentColor}.btn .led{width:6px;height:6px;background:var(--ok);flex:none}.input,.select,.textarea{width:100%;height:36px;padding:0 10px;border-radius:var(--r-1);border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);font-size:var(--fs-3);outline:none;transition:border-color .12s}.textarea{height:auto;min-height:90px;padding:8px 10px;resize:vertical;line-height:1.5}.input:focus,.select:focus,.textarea:focus{border-color:var(--ink)}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:2px solid var(--resist);outline-offset:1px}.input::placeholder,.textarea::placeholder{color:var(--fg-faint)}.input.mono,.number-input input{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.input[aria-invalid=true]{border-color:var(--danger)}.field{display:flex;flex-direction:column;gap:5px}.field>label{font-family:var(--font-mono);font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.field .hint{font-size:var(--fs-1);color:var(--muted)}.field .error{font-size:var(--fs-1);color:var(--danger)}.number-input{position:relative;display:flex;align-items:center}.number-input input{padding-right:72px;text-align:left}.number-input .suffix{position:absolute;right:8px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-1);display:flex;gap:6px;align-items:center}.number-input .suffix button{background:none;border:1px solid var(--line-strong);border-radius:var(--r-1);color:var(--ink-2);cursor:pointer;padding:1px 5px;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em}.number-input .suffix button:hover{border-color:var(--ink);color:var(--ink)}.card{background:var(--paper-2);border:1px solid var(--line);border-radius:0;padding:16px;position:relative}.card.flat{background:transparent;border-color:var(--line)}.card.inset{background:var(--code-bg)}.card.copper{border-left:3px solid var(--copper)}.card.cyan{border-left:3px solid var(--resist)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}.card-head h3{margin:0;font-size:var(--fs-3);font-family:var(--font-mono);font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.card-head .actions{display:flex;gap:6px}.card.clickable{cursor:pointer;transition:border-color .12s}.card.clickable:hover{border-color:var(--ink)}.stat{display:flex;flex-direction:column;gap:2px}.stat .label{font-family:var(--font-mono);font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.stat .value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-6);font-weight:500;color:var(--ink);line-height:1.2}.stat .value.copper{color:var(--copper)}.stat .value.cyan{color:var(--resist)}.stat .sub{font-family:var(--font-mono);font-size:var(--fs-1);color:var(--muted)}.kv{display:grid;grid-template-columns:max-content 1fr;gap:0 16px;font-size:var(--fs-2);margin:0}.kv dt{color:var(--muted);padding:5px 0;border-bottom:1px solid var(--line)}.kv dd{margin:0;padding:5px 0;font-family:var(--font-mono);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;border-bottom:1px solid var(--line)}.table-wrap,.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-2);background:var(--paper-2)}.table{width:100%;border-collapse:collapse;font-size:var(--fs-2)}.table th,.table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle;line-height:1.4}.table th{font-family:var(--font-mono);font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-weight:500;background:var(--paper-2);border-bottom:1px solid var(--line-strong);position:sticky;top:0;z-index:1}.table td.num,.table th.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.table tbody tr:hover{background:var(--paper-3)}.table tbody tr:last-child td{border-bottom:0}.table tr.clickable{cursor:pointer}.table td .row-go{display:inline-block;width:100%;text-align:right;color:var(--muted);font-family:var(--font-mono);transition:color .12s}.table tr.clickable:hover .row-go{color:var(--copper)}.table .empty{text-align:center;color:var(--muted);padding:28px;font-family:var(--font-mono);font-size:var(--fs-1);letter-spacing:.08em}.tabs{display:flex;gap:0;border-bottom:1px solid var(--line-strong);margin-bottom:var(--gap-lg);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{padding:8px 14px;border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);font-family:var(--font-mono);font-size:13px;cursor:pointer;white-space:nowrap;margin-bottom:-1px}.tab:hover{color:var(--ink)}.tab.active{color:var(--ink);border-bottom-color:var(--copper)}.tab:disabled{opacity:.4;cursor:not-allowed}.tab .count{margin-left:6px;font-size:var(--fs-1);color:var(--muted)}.tabs.pill{border:0;gap:6px}.tabs.pill .tab{border:1px solid var(--line-strong);border-radius:var(--r-1);padding:4px 10px;font-size:var(--fs-1);margin:0}.tabs.pill .tab.active{border-color:var(--ink);background:var(--ink);color:var(--paper)}.badge,.tag{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 6px;border-radius:var(--r-1);font-family:var(--font-mono);font-size:11.5px;font-weight:500;letter-spacing:.04em;line-height:1;border:1px solid var(--line-strong);color:var(--ink-2);background:transparent;white-space:nowrap}.badge.official{color:var(--copper);border-color:var(--copper);background:var(--copper-soft)}.badge.certified{color:var(--resist);border-color:var(--resist);background:var(--resist-soft)}.badge.unknown{color:var(--muted);border-color:var(--line-strong)}.badge.unofficial{color:var(--warn);border-color:var(--warn);background:var(--warn-soft)}.badge.ok{color:var(--ok);border-color:var(--ok);background:var(--ok-soft)}.badge.warn{color:var(--warn);border-color:var(--warn);background:var(--warn-soft)}.badge.danger{color:var(--danger);border-color:var(--danger);background:var(--danger-soft)}.badge.info{color:var(--resist);border-color:var(--resist);background:var(--resist-soft)}.badge.neutral{color:var(--muted);border-color:var(--line);background:var(--paper-3)}.badge.nand{color:var(--copper);border-color:var(--copper)}.badge.latch{color:var(--resist);border-color:var(--resist)}.addr{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--fs-2);max-width:100%}.addr .addr-text{color:var(--ink)}.addr .addr-name{font-family:var(--font-sans);font-weight:600}.addr .icon-btn{opacity:.55}.addr:hover .icon-btn{opacity:1}.icon-btn{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:var(--r-1);border:0;background:transparent;color:var(--muted);cursor:pointer;padding:0;font-family:var(--font-mono);font-size:var(--fs-2);line-height:1}.icon-btn:hover{background:var(--paper-3);color:var(--ink);text-decoration:none}.icon-btn svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:square}.callout{display:flex;gap:10px;padding:10px 14px;border-radius:0;border:0;border-left:3px solid var(--line-strong);background:var(--paper-2);font-size:var(--fs-2);line-height:1.55;align-items:flex-start;color:var(--ink)}.callout .ico{flex:none;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-top:3px;min-width:0}.callout .ico:empty{display:none}.callout .body{flex:1;min-width:0}.callout .title{font-weight:600;margin-bottom:2px}.callout.warn{background:var(--warn-soft);border-left-color:var(--warn)}.callout.warn .ico{color:var(--warn)}.callout.danger{background:var(--danger-soft);border-left-color:var(--danger)}.callout.danger .ico{color:var(--danger)}.callout.info{background:var(--resist-soft);border-left-color:var(--resist)}.callout.info .ico{color:var(--resist)}.callout.ok{background:var(--ok-soft);border-left-color:var(--ok)}.callout.ok .ico{color:var(--ok)}.tx-status{display:flex;align-items:center;gap:8px;font-size:var(--fs-2);font-family:var(--font-mono);padding:8px 12px;border-left:3px solid var(--line-strong);background:var(--paper-2)}.tx-status.signing,.tx-status.pending{border-left-color:var(--resist);background:var(--resist-soft)}.tx-status.success{border-left-color:var(--ok);background:var(--ok-soft);color:var(--ok)}.tx-status.error{border-left-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.tx-status .msg{flex:1;min-width:0;overflow-wrap:anywhere}.tx-status .mark{font-weight:500}.spinner{width:14px;height:14px;border-radius:50%;border:2px solid var(--line-strong);border-top-color:var(--copper);animation:spin .8s linear infinite;flex:none}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{display:inline-block;height:.9em;min-width:4em;border-radius:0;background:var(--paper-3);vertical-align:middle}.state-box{display:flex;flex-direction:column;align-items:center;gap:10px;padding:36px 16px;color:var(--muted);text-align:center;border:1px dashed var(--line-strong);font-family:var(--font-mono);font-size:var(--fs-2)}.state-box .mark{font-size:var(--fs-1);letter-spacing:.14em;text-transform:uppercase;color:var(--copper)}.modal-backdrop{position:fixed;inset:0;z-index:100;background:var(--scrim);display:flex;align-items:center;justify-content:center;padding:16px}.modal{width:100%;max-width:520px;max-height:calc(100vh - 32px);overflow:auto;background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--r-2);padding:18px 20px}.modal.wide{max-width:820px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--ink)}.modal-head h3{margin:0;font-family:var(--font-display);font-size:var(--fs-5)}.modal-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}.divider-v{width:1px;height:20px;background:var(--line)}.progress{height:6px;border-radius:0;background:var(--paper-3);border:1px solid var(--line);overflow:hidden}.progress>span{display:block;height:100%;background:var(--copper)}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.etched{color:var(--ink);font-family:var(--font-display)}:root{--wafer-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3CclipPath id='c'%3E%3Ccircle cx='60' cy='60' r='54'/%3E%3C/clipPath%3E%3Cg clip-path='url(%23c)' stroke='%23141a22' stroke-opacity='.22'%3E%3Cpath d='M0 15H120M0 30H120M0 45H120M0 60H120M0 75H120M0 90H120M0 105H120M15 0V120M30 0V120M45 0V120M60 0V120M75 0V120M90 0V120M105 0V120'/%3E%3C/g%3E%3Ccircle cx='60' cy='60' r='54' fill='none' stroke='%23b8722e' stroke-width='1.5'/%3E%3Cg fill='none' stroke='%23b8722e' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M30 62H90'/%3E%3Cpath d='M44 62V86M76 62V86'/%3E%3Cpath d='M44 62Q60 42 76 62'/%3E%3C/g%3E%3Ccircle cx='60' cy='50' r='4.5' fill='%231f7a4d'/%3E%3C/svg%3E")}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--wafer-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3CclipPath id='c'%3E%3Ccircle cx='60' cy='60' r='54'/%3E%3C/clipPath%3E%3Cg clip-path='url(%23c)' stroke='%23e6ebf0' stroke-opacity='.2'%3E%3Cpath d='M0 15H120M0 30H120M0 45H120M0 60H120M0 75H120M0 90H120M0 105H120M15 0V120M30 0V120M45 0V120M60 0V120M75 0V120M90 0V120M105 0V120'/%3E%3C/g%3E%3Ccircle cx='60' cy='60' r='54' fill='none' stroke='%23d99a57' stroke-width='1.5'/%3E%3Cg fill='none' stroke='%23d99a57' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M30 62H90'/%3E%3Cpath d='M44 62V86M76 62V86'/%3E%3Cpath d='M44 62Q60 42 76 62'/%3E%3C/g%3E%3Ccircle cx='60' cy='50' r='4.5' fill='%233fae6a'/%3E%3C/svg%3E")}}:root[data-theme=dark]{--wafer-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3CclipPath id='c'%3E%3Ccircle cx='60' cy='60' r='54'/%3E%3C/clipPath%3E%3Cg clip-path='url(%23c)' stroke='%23e6ebf0' stroke-opacity='.2'%3E%3Cpath d='M0 15H120M0 30H120M0 45H120M0 60H120M0 75H120M0 90H120M0 105H120M15 0V120M30 0V120M45 0V120M60 0V120M75 0V120M90 0V120M105 0V120'/%3E%3C/g%3E%3Ccircle cx='60' cy='60' r='54' fill='none' stroke='%23d99a57' stroke-width='1.5'/%3E%3Cg fill='none' stroke='%23d99a57' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M30 62H90'/%3E%3Cpath d='M44 62V86M76 62V86'/%3E%3Cpath d='M44 62Q60 42 76 62'/%3E%3C/g%3E%3Ccircle cx='60' cy='50' r='4.5' fill='%233fae6a'/%3E%3C/svg%3E")}.wafer{position:relative;overflow:hidden;border-left:3px solid var(--copper);background-color:var(--paper-2);background-image:var(--die-img)}.wafer:after{content:"";position:absolute;right:-28px;bottom:-28px;width:140px;height:140px;background:var(--wafer-img) no-repeat center / contain;opacity:.35;pointer-events:none}.wafer>*{position:relative}.wafer-mark{display:block;width:100%;height:auto}.hero{position:relative;padding:48px 0 32px;border-bottom:2px solid var(--ink);margin-bottom:28px}.hero:before{content:"";position:absolute;right:0;top:24px;width:240px;height:240px;background:var(--wafer-img) no-repeat center / contain;opacity:.9;pointer-events:none}.hero>*{position:relative}.hero .kicker{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-bottom:14px}.hero h1{font-size:clamp(var(--fs-6),4vw,var(--fs-8));max-width:760px;line-height:1.15}.hero p{max-width:640px;color:var(--ink-2);font-size:var(--fs-4)}.hero .cta{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.step-card .n{font-family:var(--font-mono);color:var(--ink-2);font-size:12.5px;letter-spacing:.14em}.section{margin-top:40px}.section>h2,.section>.row>h2{font-size:var(--fs-5);margin-bottom:12px;display:flex;align-items:center;gap:8px}.section>.row.between{border-top:2px solid var(--ink);padding-top:8px}.proc-tile{display:flex;align-items:center;justify-content:space-between;gap:10px}.proc-tile .meta{min-width:0}.proc-tile .name{font-weight:600}.proc-tile .tag{border:0;padding:0;height:auto;font-size:var(--fs-1);color:var(--muted);white-space:normal}.diff-list{list-style:none;padding:0;margin:0;display:grid;gap:0}.diff-list li{display:flex;gap:10px;font-size:var(--fs-2);padding:6px 0;border-bottom:1px solid var(--line)}.diff-list li:before{content:"—";color:var(--copper);flex:none;font-family:var(--font-mono)}.step-list{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:6px}.step-list li{display:flex;align-items:center;gap:10px;font-size:var(--fs-2);color:var(--muted)}.step-list li .n{flex:none;min-width:22px;height:22px;padding:0 4px;display:grid;place-items:center;font-family:var(--font-mono);font-size:11px;border:1px solid var(--line-strong);border-radius:var(--r-1)}.step-list li.active{color:var(--ink)}.step-list li.active .n{border-color:var(--copper);color:var(--copper);background:var(--copper-soft)}.step-list li.done .n{border-color:var(--ok);color:var(--ok);background:var(--ok-soft)}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:12px;border-bottom:2px solid var(--ink);margin-bottom:var(--gap-lg)}.page-header .ph-main{min-width:0;flex:1}.page-header .eyebrow{margin-bottom:8px}.page-header h1{font-size:var(--fs-7);margin:0}.page-header .lede{margin:8px 0 0;max-width:680px;color:var(--ink-2)}.page-header .ph-aside{flex:none;font-family:var(--font-mono);font-size:var(--fs-2);color:var(--muted);text-align:right}.rule{display:flex;align-items:baseline;gap:12px;border-top:2px solid var(--ink);padding-top:8px;margin:32px 0 16px}.rule.thin{border-top-width:1px;border-top-color:var(--line-strong)}.rule h2,.rule h3{margin:0;font-size:var(--fs-5)}.rule .rule-n{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.14em;color:var(--ink-2)}.rule .rule-aside{margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-1);color:var(--muted)}.seealso{border-top:1px solid var(--line);margin:32px 0 0;padding-top:10px;font-family:var(--font-mono);font-size:var(--fs-1);line-height:1.7;color:var(--muted)}.seealso .seealso-tag{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-right:12px}.seealso a{color:var(--ink)}.seealso .sep{margin:0 8px;color:var(--line-strong)}.stat-strip{display:flex;overflow-x:auto;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);scrollbar-width:thin}.stat-strip .ss-item{flex:1 0 auto;min-width:150px;padding:10px 16px 10px 0;margin-right:16px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:2px}.stat-strip .ss-item:last-child{border-right:0;margin-right:0}.stat-strip .ss-label{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.stat-strip .ss-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-5);color:var(--ink);line-height:1.2;white-space:nowrap}.stat-strip .ss-unit{font-size:var(--fs-1);color:var(--muted);margin-left:4px}.stat-strip .ss-hint{font-family:var(--font-mono);font-size:var(--fs-1);color:var(--muted)}.die-lattice{display:block;width:100%;position:relative}.die-lattice canvas{display:block;width:100%;height:100%}@media (max-width: 900px){.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.footer .container{grid-template-columns:1fr}.hero:before{width:140px;height:140px;opacity:.4}.nav-links{display:none}.burger{display:inline-grid}.mobile-drawer{display:block;position:fixed;top:var(--nav-h);left:0;right:0;bottom:0;z-index:49;background:var(--paper);border-top:1px solid var(--line);padding:12px 20px;overflow-y:auto}.mobile-drawer .nav-link{display:block;padding:12px 4px;font-size:var(--fs-3);border-bottom:1px solid var(--line)}.mobile-drawer .nav-link.active{color:var(--copper)}.hide-mobile{display:none}.show-mobile{display:initial}.page-header{flex-direction:column;align-items:flex-start}.page-header .ph-aside{text-align:left}.proc-page .stat-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;border-bottom:0}.proc-page .stat-strip .ss-item{min-width:0;margin-right:0;padding:10px 12px 10px 0;border-right:1px solid var(--line);border-bottom:1px solid var(--line-strong)}.proc-page .stat-strip .ss-item:nth-child(2n){border-right:0;padding-left:12px}}@media (max-width: 560px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.brand .zh{display:none}.hero{padding:28px 0 20px}.hero:before{display:none}.stat .value{font-size:var(--fs-5)}.card{padding:12px}.page-header h1,.page-title h1{font-size:var(--fs-6)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2s}.btn,.card.clickable,.input{transition:none}}.react-flow__edges,.react-flow__connectionline,.react-flow__edgelabel-renderer,.react-flow__marker{width:100%!important;height:100%!important;overflow:visible!important;display:block}.react-flow svg{max-width:none}.react-flow__edge-path{fill:none}
