*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:112px}body{background:linear-gradient(180deg,#fbfbfc 0%,var(--bg) 340px,var(--bg-2) 100%);color:var(--t1);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;background-attachment:fixed}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:6px}.wrap{max-width:var(--maxw);padding:0 var(--space-lg);margin:0 auto}.panel,.chip,.metric,.tablewrap,blockquote,.pn a,.callout{border:1px solid var(--line)}.btn{align-items:center;gap:var(--space-xs);font-family:var(--display);border-radius:var(--r-pill);font-weight:500;transition:background .15s ease-out,box-shadow .2s ease-out,transform .2s ease-out;display:inline-flex}.btn-ghost{font-size:var(--fs-body);padding:var(--space-xs) var(--space-md);border:1px solid var(--line);background:var(--card)}.btn svg{width:15px;height:15px;transition:transform .2s cubic-bezier(.2,.7,.3,1)}.title{padding:var(--space-2xl) 0 var(--space-xl)}.back{align-items:center;gap:var(--space-xs);font-family:var(--display);font-size:var(--fs-meta);color:var(--t3);padding:var(--space-xs) var(--space-sm) var(--space-xs) 13px;border-radius:var(--r-pill);border:1px solid var(--line);transition:background .16s ease-out,color .16s ease-out;display:inline-flex}.back svg{width:14px;height:14px}h1{margin-top:var(--space-lg);font-family:var(--display);font-weight:700;font-size:var(--fs-display);letter-spacing:-.035em;text-wrap:balance;line-height:1.08}.title .sub{margin-top:var(--space-md);font-size:var(--fs-lead);color:var(--t2);max-width:38em;line-height:1.9}.chips{margin-top:var(--space-md);gap:var(--space-xs);flex-wrap:wrap;display:flex}.chip{background:var(--card);color:var(--t2);font-family:var(--display);font-size:var(--fs-meta);padding:var(--space-xs) var(--space-sm);border-radius:var(--r-pill);box-shadow:var(--sh-card)}.layout{padding:var(--space-sm) 0 0;display:block}aside{z-index:20;padding:var(--space-sm) 12px var(--space-sm) 44px;justify-content:flex-end;display:flex;position:fixed;top:50%;right:0;transform:translateY(-50%)}.panel{border-radius:var(--r-card);box-shadow:none;background:0 0;border:none;padding:0;transition:background .2s ease-out,box-shadow .2s ease-out,padding .2s ease-out}.toc{font-family:var(--display);font-size:var(--fs-body);flex-direction:column;align-items:flex-end;list-style:none;display:flex}.toc a{padding:var(--space-xs) 0;border-radius:var(--r-chip);white-space:nowrap;color:#0000;justify-content:flex-end;align-items:center;gap:12px;transition:background .16s ease-out,color .16s ease-out,padding .2s ease-out;display:flex}.toc a .i{font-size:var(--fs-meta);color:inherit;font-weight:600;display:none}.toc a:after{content:"";background:var(--t3);opacity:1;border-radius:2px;flex:none;width:17px;height:2px;transition:background .16s ease-out,width .16s ease-out,opacity .16s ease-out}.toc a.on:after{background:var(--ink);opacity:1;width:22px}aside:hover .panel,aside:focus-within .panel{padding:var(--space-sm);background:var(--card);box-shadow:var(--sh-card-h)}aside:hover .toc,aside:focus-within .toc{align-items:stretch}aside:hover .toc a,aside:focus-within .toc a{padding:var(--space-xs) var(--space-sm);color:var(--t3);justify-content:flex-start}aside:hover .toc a .i,aside:focus-within .toc a .i{color:var(--t3);display:block}aside:hover .toc a:after,aside:focus-within .toc a:after{display:none}aside:hover .toc a.on,aside:focus-within .toc a.on{background:var(--ink);color:#fff}aside:hover .toc a.on .i,aside:focus-within .toc a.on .i{color:#fff9}article{width:100%;max-width:none;margin:0}.media{border-radius:var(--r-media);aspect-ratio:16/9;background:repeating-linear-gradient(-45deg,#457eab29 0 1px,transparent 1px 12px),var(--chip)}figcaption{font-family:var(--display);font-size:var(--fs-meta);color:var(--t3);margin:12px 2px 0;line-height:1.7}figure img{border-radius:var(--r-media);background:var(--card);border:1px solid var(--line);width:100%;height:auto;display:block}strong{color:var(--t1);font-weight:600}.callout{gap:var(--space-sm);background:var(--card);border-radius:var(--r-card);box-shadow:var(--sh-card);padding:var(--space-md);margin:0 0 var(--space-xl);font-size:var(--fs-lead);color:var(--t1);grid-template-columns:auto 1fr;align-items:start;line-height:1.95;display:grid}.callout p{margin:0}.callout .ic{border-radius:var(--r-chip);background:var(--tint);width:36px;height:36px;color:var(--ink);flex:none;justify-content:center;align-items:center;margin-top:2px;display:inline-flex}.callout .ic svg{width:19px;height:19px}.facts{gap:var(--space-sm);margin:var(--space-xl) 0 0;grid-template-columns:repeat(4,1fr);display:grid}.facts div{font-family:var(--display)}.facts .k{font-size:var(--fs-meta);color:var(--t3);letter-spacing:.04em}.facts .v{font-size:var(--fs-body);color:var(--t1);margin-top:var(--space-2xs);overflow-wrap:anywhere;line-height:1.6}.cols2{gap:var(--space-xl);grid-template-columns:1fr 1fr;align-items:start;display:grid}.cols3{gap:var(--space-md);grid-template-columns:repeat(3,1fr);display:grid}.cols2>div>:first-child,.cols3>div>:first-child{margin-top:0}.cols2 p,.cols3 p{line-height:var(--leading-compact)}.cols3>div{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--sh-card);padding:var(--space-md)}section.blk{padding:var(--space-section) 0}section.blk+section.blk{border-top:1px solid var(--line)}.h2{gap:var(--space-sm);margin-bottom:var(--space-md);align-items:center;display:flex}.h2 .n{border-radius:var(--r-chip);background:var(--tint);min-width:34px;height:26px;color:var(--ink);font-family:var(--display);font-size:var(--fs-meta);letter-spacing:.06em;justify-content:center;align-items:center;padding:0 10px;font-weight:600;display:inline-flex}.h2 h2{font-family:var(--display);font-size:var(--fs-h2);letter-spacing:-.025em;color:var(--ink);font-weight:600;line-height:1.3}h3 .h3-ic{vertical-align:-3px;margin-right:var(--space-xs);color:var(--ink-2);display:inline-flex}h3 .h3-ic svg{width:18px;height:18px}h3{font-family:var(--display);font-size:var(--fs-h3);letter-spacing:-.015em;color:var(--t1);margin:var(--space-lg) 0 var(--space-sm);font-weight:600;line-height:1.4}p{font-size:var(--fs-body);line-height:var(--leading-body);color:var(--t2);margin-bottom:var(--space-sm)}.lead{font-size:var(--fs-lead);color:var(--t1);line-height:1.95}em{color:var(--ink);font-style:normal;font-weight:500}ul.body{margin:var(--space-xs) 0 var(--space-md);list-style:none}ul.body li{padding-left:var(--space-md);font-size:var(--fs-body);line-height:var(--leading-list);color:var(--t2);margin-bottom:var(--space-sm);position:relative}ul.body li:before{content:"";background:var(--ink-2);border-radius:50%;width:7px;height:7px;position:absolute;top:11px;left:0}ol.body{counter-reset:n;margin:var(--space-xs) 0 var(--space-md);list-style:none}ol.body li{font-size:var(--fs-body);line-height:var(--leading-list);color:var(--t2);margin-bottom:var(--space-sm);counter-increment:n;padding-left:30px;position:relative}ol.body li:before{content:counter(n);font-family:var(--display);font-size:var(--fs-meta);color:var(--color-action-primary);font-weight:600;position:absolute;top:3px;left:0}blockquote{background:var(--card);border-radius:var(--r-card);box-shadow:var(--sh-card);padding:var(--space-md);margin:var(--space-lg) 0;font-size:var(--fs-lead);color:var(--t1);line-height:1.9}.metrics{gap:var(--space-sm);margin:var(--space-md) 0;grid-template-columns:1.4fr 1fr 1fr;display:grid}.metric{background:var(--card);border-radius:var(--r-card);box-shadow:var(--sh-card);padding:var(--space-md)}.metric .v{font-family:var(--display);font-size:var(--type-metric-size);letter-spacing:-.035em;color:var(--ink-2);font-weight:600;line-height:1}.metric .l{font-family:var(--display);font-size:var(--fs-meta);color:var(--t3);margin-top:var(--space-sm);line-height:1.7}.metric.primary{background:var(--ink);padding:var(--space-lg) var(--space-md)}.metric.primary .v{font-size:var(--type-metric-primary-size);color:#fff}.metric.primary .l{color:#ffffffb8}.tablewrap{background:var(--card);border-radius:var(--r-card);box-shadow:var(--sh-card);padding:var(--space-xs);margin:var(--space-md) 0;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--fs-body);min-width:520px}thead th{font-family:var(--display);font-size:var(--fs-meta);color:var(--t3);text-align:left;padding:var(--space-sm);border-bottom:1px solid var(--line);font-weight:600}td{padding:var(--space-sm);border-bottom:1px solid var(--line);color:var(--t2);vertical-align:top;line-height:1.75}tbody th{font-family:var(--sans);font-weight:500;font-size:var(--fs-body);color:var(--t1);text-align:left;padding:var(--space-sm);border-bottom:1px solid var(--line);vertical-align:top}tr:last-child td,tr:last-child th{border-bottom:none}td.hi,th.hi{color:var(--ink);font-weight:500}.breakout{width:min(1116px,calc(100vw - var(--space-2xl)));margin:var(--space-lg) 0 0;margin-left:50%;transform:translate(-50%)}.pn{margin-top:var(--space-sm);padding:var(--space-lg) 0 var(--space-3xl);grid-template-columns:1fr 1fr;gap:18px;display:grid}.pn a{background:var(--card);border-radius:var(--r-card);box-shadow:var(--sh-card);padding:var(--space-md);transition:box-shadow .22s ease-out,transform .22s ease-out}.pn .lbl{font-family:var(--display);font-size:var(--fs-meta);color:var(--t3)}.pn .t{margin-top:var(--space-xs);font-family:var(--display);font-size:var(--fs-h3);letter-spacing:-.02em;font-weight:600;line-height:1.35}.pn .r{text-align:right}@media (hover:hover) and (pointer:fine){.btn-ghost:hover,.back:hover{background:var(--chip);color:var(--t1)}.btn:hover svg{transform:translate(3px)}.back:hover svg{transform:translate(-3px)}.toc a:hover:not(.on){background:var(--chip);color:var(--t1)}.pn a:hover{box-shadow:var(--sh-card-h);transform:translateY(-2px)}}.back svg{transition:transform .2s cubic-bezier(.2,.7,.3,1)}@media (width<=980px){.wrap{padding-left:18px;padding-right:18px}.breakout{width:100%;margin-left:0;transform:none}aside{padding:var(--space-sm) var(--space-xs) var(--space-sm) var(--space-lg)}.toc a:after{width:13px}.toc a.on:after{width:17px}aside:hover .toc a,aside:focus-within .toc a{padding:var(--space-xs) var(--space-sm)}.metrics{grid-template-columns:1fr}.facts{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr))}.cols2,.cols3{gap:var(--space-lg);grid-template-columns:1fr}.callout{padding:var(--space-md)}.pn{grid-template-columns:1fr}.pn .r{text-align:left}.title{padding:var(--space-xl) 0 var(--space-lg)}}@media (width<=680px){aside{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}h4.sub-h{font-family:var(--display);font-size:var(--fs-h3);letter-spacing:-.015em;color:var(--t1);margin:var(--space-lg) 0 var(--space-sm);font-weight:600;line-height:1.4}.cols2>div>h4.sub-h:first-child,.cols3>div>h4.sub-h:first-child{margin-top:0}.cols2 figure,.cols3 figure{margin:0}.cols2 figure img,.cols3 figure img{width:100%;height:auto}.cols2 figure+figure,.cols3 figure+figure{margin-top:var(--space-sm)}.cols2.center{align-items:center}.cols2.narrow-left{grid-template-columns:1fr 1.2fr}details.fold{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--sh-card);margin:var(--space-lg) 0}details.fold>summary{cursor:pointer;align-items:center;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--r-card);font-family:var(--display);font-size:var(--fs-h3);letter-spacing:-.015em;color:var(--t1);font-weight:600;line-height:1.4;list-style:none;transition:background .16s ease-out;display:flex}details.fold>summary::-webkit-details-marker{display:none}details.fold>summary::marker{content:""}.fold-ic{border-radius:var(--r-chip);background:var(--tint);width:26px;height:26px;color:var(--ink);flex:none;justify-content:center;align-items:center;transition:transform .22s cubic-bezier(.2,.7,.3,1);display:inline-flex}.fold-ic svg{width:15px;height:15px}details.fold[open]>summary .fold-ic{transform:rotate(90deg)}.fold-hint{font-family:var(--display);font-size:var(--fs-meta);color:var(--t3);white-space:nowrap;margin-left:auto;font-weight:400}.fold-body{padding:0 var(--space-md) var(--space-md);border-top:1px solid var(--line);margin:0 var(--space-md);padding-left:0;padding-right:0}.fold-body>:first-child{margin-top:var(--space-md)}.fold-body>:last-child{margin-bottom:0}.fold-body .tablewrap{box-shadow:none;border:1px solid var(--line);border-radius:var(--r-media);background:0 0}.fold-body blockquote{background:var(--chip);box-shadow:none;border-color:#0000}@media (hover:hover) and (pointer:fine){details.fold>summary:hover{background:var(--chip)}}@media (width<=980px){details.fold>summary{padding:var(--space-md) var(--space-sm)}.fold-body{margin:0 var(--space-sm);padding-bottom:var(--space-sm)}.fold-hint{display:none}}pre.code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Noto Sans TC,monospace;font-size:var(--fs-meta);color:var(--t2);background:var(--chip);border:1px solid var(--line);border-radius:var(--r-media);padding:var(--space-md);margin:var(--space-md) 0 0;white-space:pre-wrap;overflow-wrap:anywhere;tab-size:2;line-height:1.9}.fold-body pre.code{background:0 0}figure{margin:var(--space-md) 0 0}figure+figure{margin-top:var(--space-md)}figure img.diagram{background:0 0;border:none}figure.portrait img{width:auto;max-width:min(100%,900px);margin-left:auto;margin-right:auto}figure.native img{width:auto;max-width:100%;margin-left:auto;margin-right:auto}figure.video .frame{aspect-ratio:16/9;border-radius:var(--r-media);background:var(--chip);width:100%;position:relative;overflow:hidden}figure.video iframe,figure.video video{border:0;width:100%;height:100%;position:absolute;inset:0}figure.video video{object-fit:contain;background:#000}.cols2>*,.cols3>*,.facts>*,.metrics>*{min-width:0}@media (width<=900px){.cols2.narrow-left{grid-template-columns:minmax(0,1fr)}}aside .panel{max-width:calc(100vw - 32px);max-height:calc(100dvh - 144px);overflow-y:auto}aside:is(:hover,:focus-within) .toc a{white-space:normal;overflow-wrap:anywhere;min-height:var(--control-min-size)}@media (hover:none) and (width>=681px){aside{margin-bottom:var(--space-lg);padding:0;display:block;position:static;transform:none}aside .panel{padding:var(--space-sm);background:var(--card);border:1px solid var(--line);max-width:100%;max-height:none}aside .toc{align-items:stretch}aside .toc a{color:var(--t3);padding:var(--space-xs) var(--space-sm);white-space:normal;min-height:var(--control-min-size);justify-content:flex-start}aside .toc a .i{display:block}aside .toc a:after{display:none}aside .toc a.on{background:var(--ink);color:#fff}}
