.olp-hero{background:var(--ink);padding:48px 24px 36px;text-align:center}.olp-hero .kicker{font-size:10px;letter-spacing:.5em;color:var(--brand,var(--lib-gold-ink));text-transform:uppercase}.olp-hero h1{font-family:var(--serif);font-weight:900;font-size:30px;letter-spacing:.3em;text-indent:.3em;color:#fff;margin-top:12px}.olp-hero .dek{margin:14px auto 0;max-width:460px;font-size:15px;line-height:2.1;color:rgba(255,255,255,.72)}.olp-hero .stats{display:flex;justify-content:center;gap:32px;margin-top:18px}.olp-hero .st{font-size:11px;letter-spacing:.1em;color:rgba(255,255,255,.5)}.olp-hero .st b{font-family:Georgia,serif;font-size:18px;color:var(--gold,#B08D57);margin-right:4px}.olp .cats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px;max-width:1120px;margin:36px auto 0;padding:0 24px}.cat-card{background:var(--card,#fff);border:1px solid var(--lib-line-soft);border-top:3px solid var(--ink);border-radius:0;padding:22px 18px 18px;box-shadow:none}.cat-zh{font-family:var(--serif);font-weight:900;font-size:28px;color:var(--brand-deep,var(--lib-main));line-height:1;margin-bottom:10px}.cat-card h3{font-size:16.5px;font-weight:800;color:var(--ink);letter-spacing:.06em;margin-bottom:2px}.cat-count{font-family:Georgia,serif;font-size:11px;color:var(--gold);margin-bottom:8px}.cat-desc{font-size:14px;line-height:1.95;color:var(--ink-soft);margin-bottom:12px}.cat-links{border-top:1px solid var(--lib-line-soft)}.cat-links a{display:flex;justify-content:space-between;align-items:center;padding:8px 2px;border-bottom:1px solid var(--lib-line-soft);font-size:14px;color:var(--ink);text-decoration:none;transition:background .12s}.cat-links a:last-child{border-bottom:none}.cat-links a:hover{background:rgba(114,47,55,.06);color:var(--brand-deep)}.cat-links .li-no{font-family:Georgia,serif;font-size:10px;color:var(--ink-soft);letter-spacing:.06em;flex-shrink:0;margin-left:8px}.latest{max-width:1120px;margin:36px auto 0;padding:0 24px}.lat-head{font-size:13px;font-weight:800;letter-spacing:.16em;color:var(--ink);border-bottom:2px solid var(--ink);padding-bottom:6px;margin-bottom:0}.lat-row{display:flex;align-items:baseline;gap:12px;padding:9px 4px;border-bottom:1px solid var(--lib-line-soft);text-decoration:none;color:var(--ink);transition:background .1s}.lat-row:hover{background:rgba(114,47,55,.05)}.lat-t{flex:1 1;font-size:15px}.lat-no{font-size:10.5px;letter-spacing:.04em}.lat-date,.lat-no{font-family:Georgia,serif;color:var(--ink-soft);flex-shrink:0}.lat-date{font-size:11px;min-width:56px;text-align:right}.cite-stmt{max-width:1120px;margin:28px auto 0;padding:16px 22px;background:rgba(176,141,87,.07);border-left:3px solid var(--gold);font-size:14px;line-height:2;color:var(--ink-soft)}.cite-stmt b{color:var(--ink)}@media (max-width:768px){.olp .cats{grid-template-columns:1fr 1fr}.olp-hero h1{font-size:22px}.lat-row{flex-wrap:wrap}}@media (max-width:480px){.olp .cats{grid-template-columns:1fr}.olp-hero h1{font-size:19px}}.od .doc-mast{background:var(--lib-warm);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:10px 20px;font-size:12px;flex-wrap:wrap;gap:5px}.od .doc-mast .logo{font-weight:700;letter-spacing:.04em}.od .doc-mast .logo i{font-style:normal;color:var(--lib-gold-ink);margin-right:5px}.od .doc-mast a.back{color:rgba(255,255,255,.8);text-decoration:underline;text-underline-offset:3px}.doc-wrap{max-width:1100px;margin:0 auto;padding:44px 56px 36px}.doc-badges{display:flex;gap:9px;flex-wrap:wrap}.doc-badge{font-size:12px;letter-spacing:.12em;padding:5px 14px;border-radius:999px;color:#fff}.doc-badge.pr{background:var(--lib-warm)}.doc-badge.cal{background:var(--lib-ink-mute)}.doc-badge.draft{background:transparent;color:var(--gold);border:1px solid var(--gold)}.doc-title{font-size:34px;line-height:1.55;font-weight:800;margin-top:16px;letter-spacing:.02em}.doc-dek{margin-top:12px;font-size:19px;line-height:2.1;color:var(--ink-neutral);max-width:44em}.doc-meta{margin:26px 0 0;padding:20px 26px;border:1px dashed var(--lib-line);border-radius:var(--r-card);background:var(--card);display:grid;grid-template-columns:1.2fr 1fr 1fr;grid-gap:18px;gap:18px}.doc-meta .k{font-family:Consolas,monospace;font-size:12px;letter-spacing:.18em;color:var(--lib-ink-mute)}.doc-meta .v{margin-top:6px;font-size:16px;line-height:1.8}.doc-meta .doi{font-family:Consolas,monospace;color:var(--lib-warm)}.doc-sec{margin-top:34px}.doc-sec h2{font-size:24px;font-weight:800;margin-bottom:12px;letter-spacing:.03em}.doc-sec h2 .no{font-family:Consolas,monospace;font-size:14px;color:var(--lib-ink-mute);font-weight:400;margin-right:9px}.doc-sec p{font-size:19px;line-height:2.15;margin:12px 0;color:var(--lib-ink)}.doc-sec p b{font-weight:700;color:var(--lib-ink)}.doc-sec ul{margin:11px 0;padding-left:24px}.doc-sec li{font-size:19px;line-height:2.1;margin-bottom:8px;color:var(--lib-ink)}.doc-table{width:100%;border-collapse:collapse;margin:16px 0;font-size:17px}.doc-table td,.doc-table th{border:1px solid var(--lib-line);padding:12px 16px;text-align:left;vertical-align:top;line-height:1.9}.doc-table th{background:var(--lib-tint);font-weight:800;white-space:nowrap}@media (max-width:640px){.doc-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.doc-table td,.doc-table th{white-space:normal}}.doc-note{background:rgba(176,141,87,.08);border-left:3px solid var(--gold);font-size:16.5px;color:var(--lib-gold-ink)}.doc-note,.doc-warn{margin:14px 0;padding:13px 18px;line-height:2}.doc-warn{background:rgba(176,58,43,.06);border-left:3px solid var(--seal,#b03a2b);font-size:17px;color:var(--lib-main)}.doc-refs{border-top:1px solid var(--lib-line-soft);margin-top:34px;padding-top:16px}.doc-refs .rt{font-family:Consolas,monospace;font-size:12px;letter-spacing:.2em;color:var(--lib-ink-mute)}.doc-refs ol{margin:10px 0 0;padding:0;list-style:none;counter-reset:ref}.doc-refs li{counter-increment:ref;display:flex;gap:9px;font-size:16px;line-height:2;color:var(--ink-neutral);padding:7px 0;border-bottom:1px dashed var(--lib-line-soft)}.doc-refs li:before{content:"["counter(ref)"]";font-family:Consolas,monospace;color:var(--lib-warm);font-weight:700;flex-shrink:0}.doc-compliance{font-size:16.5px;line-height:2.2;color:var(--lib-ink-mute);margin-top:24px}.doc-compliance b{color:var(--ink)}.doc-footcite{margin:18px 0 32px;padding:13px 18px;background:rgba(176,141,87,.08);border-left:2px solid var(--gold);font-size:14px;line-height:2;color:var(--lib-gold-ink)}.doc-backlink{display:inline-block;margin-top:10px;font-size:15px;color:var(--brand-deep);text-decoration:underline;text-underline-offset:3px}.olp-repo{max-width:1120px;margin:36px auto 0;padding:26px 30px;background:var(--ink);color:#FAF7F2}.repo-kicker{margin:0 0 8px;font-family:Georgia,serif;font-size:10px;letter-spacing:.3em;color:var(--gold)}.olp-repo h2{margin:0 0 12px;font-family:var(--serif);font-weight:900;font-size:22px;letter-spacing:.14em}.repo-dek{margin:0 0 20px;max-width:52em;font-size:15px;line-height:2;color:rgba(250,247,242,.85)}.repo-dek b{color:#fff}.repo-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px;margin-bottom:22px}.repo-cell{padding-top:12px;border-top:1px solid rgba(250,247,242,.22)}.repo-cell h3{margin:0 0 6px;font-family:var(--serif);font-weight:900;font-size:15px;letter-spacing:.12em;color:var(--gold)}.repo-cell p{margin:0;font-size:14px;line-height:1.95;color:rgba(250,247,242,.75)}.repo-links{display:flex;flex-wrap:wrap;gap:12px;margin:0}.repo-btn{display:inline-block;padding:10px 20px;border:1px solid var(--brand);background:var(--brand);color:var(--lib-ink);font-size:12.5px;letter-spacing:.12em;text-decoration:none;transition:.15s}.repo-btn:hover{background:var(--gold);border-color:var(--gold)}.repo-btn.alt{background:transparent;border-color:rgba(176,141,87,.6);color:var(--gold)}.repo-btn.alt:hover{background:rgba(176,141,87,.15);border-color:var(--gold);color:#fff}.cite-stmt a{color:var(--brand-deep);text-decoration:underline;text-underline-offset:3px}.doc-repo{margin:0 0 18px;padding:16px 18px;border:1px solid var(--line-strong);background:var(--card)}.dr-note{margin:0 0 14px;font-size:12px;line-height:2;color:var(--ink-soft)}.dr-note b{color:var(--ink)}.dr-links{display:flex;flex-wrap:wrap;gap:10px;margin:0}.dr-btn{display:inline-block;padding:8px 16px;border:1px solid var(--brand-deep);color:var(--brand-deep);font-size:12px;letter-spacing:.1em;text-decoration:none;transition:.15s}.dr-btn:hover{background:var(--brand-deep);color:#fff}.dr-btn.alt{border-color:var(--line-strong);color:var(--ink-soft)}.dr-btn.alt:hover{background:var(--surface);border-color:var(--ink);color:var(--ink)}@media (max-width:768px){.repo-grid{grid-template-columns:1fr}.olp-repo{padding:20px 18px}.doc-title{font-size:18px}.doc-meta{grid-template-columns:1fr 1fr;padding:9px 11px}.doc-mast{flex-direction:column;gap:5px;padding:8px 12px}}.doc-mast .mast-right{display:flex;align-items:center;gap:14px}.olp-crumb{font-size:12px;letter-spacing:.14em;color:var(--ink-soft);padding:18px 0 0}.olp-crumb a{color:var(--lib-main);text-decoration:none}.olp-crumb a:hover{text-decoration:underline;text-underline-offset:3px}.olp-crumb span{opacity:.55;margin:0 6px}.olp-crumb b{color:var(--lib-deep)}.dk-layout{display:grid;grid-template-columns:13rem minmax(0,1fr);grid-gap:3.5rem;gap:3.5rem;align-items:start}.dk-main{min-width:0}.dk-toc{position:-webkit-sticky;position:sticky;top:6rem;font-size:var(--fs-sm);line-height:1.85;border-top:2px solid var(--lib-main);padding-top:.875rem;max-height:calc(100vh - 8rem);overflow-y:auto}.dk-toc-h{display:flex;align-items:baseline;gap:.5rem;font-family:var(--serif);font-weight:var(--fw-title);font-size:var(--fs-h4);color:var(--lib-ink);margin-bottom:.75rem}.dk-toc-h .en{font-family:var(--mono);font-size:var(--fs-caps);letter-spacing:var(--ls-caps);color:var(--lib-gold-ink);font-weight:var(--fw-meta)}.dk-toc-list{list-style:none;margin:0;padding:0;border-left:1px solid var(--lib-line-soft)}.dk-toc-list li{margin:0}.dk-toc-list a{display:block;padding:.375rem 0 .375rem .8125rem;margin-left:-1px;border-left:2px solid transparent;color:var(--lib-ink-mute);transition:color .15s ease,border-color .15s ease}.dk-toc-list a:focus-visible,.dk-toc-list a:hover{color:var(--lib-main);border-left-color:var(--lib-main)}.dk-tocfold{display:none}.dk-tocfold summary{cursor:pointer;display:flex;align-items:baseline;gap:.625rem;padding:.75rem 1rem;border:1px solid var(--lib-line);background:#fff;font-family:var(--serif);font-weight:var(--fw-title);font-size:var(--fs-h4);color:var(--lib-ink);list-style:none}.dk-tocfold summary::-webkit-details-marker{display:none}.dk-tocfold summary:after{content:"";margin-left:auto;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--lib-ink-mute);transform:translateY(-2px)}.dk-tocfold[open] summary:after{border-top:0;border-bottom:5px solid var(--lib-ink-mute);transform:translateY(-4px)}.dk-tocfold summary .cnt{font-family:var(--sans);font-size:var(--fs-caption);font-weight:var(--fw-meta);color:var(--lib-ink-mute)}.dk-tocfold ol{list-style:none;margin:0;padding:.5rem 0 .25rem;border:1px solid var(--lib-line-soft);border-top:0;background:#fff}.dk-tocfold a{display:block;padding:.5rem 1rem;font-size:var(--fs-sm);color:var(--lib-ink-mute)}.dk-tocfold a:hover{color:var(--lib-main)}.dk-block{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--lib-line)}.dk-block-h{display:flex;align-items:baseline;gap:.625rem;font-family:var(--serif);font-weight:var(--fw-title);font-size:var(--fs-h3);color:var(--lib-ink);margin-bottom:.75rem}.dk-block-h .en{font-family:var(--mono);font-size:var(--fs-caps);letter-spacing:var(--ls-caps);color:var(--lib-gold-ink);font-weight:var(--fw-meta)}.dk-block-note{font-size:var(--fs-sm);line-height:1.9;color:var(--lib-ink-mute)}.dk-block-note,.doc-cite-row{margin-bottom:1rem}.doc-cite-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.375rem}.doc-cite-fmt{font-family:var(--mono);font-size:var(--fs-caps);letter-spacing:.18em;text-transform:uppercase;color:var(--lib-gold-ink)}.doc-cite-btn{padding:.3125rem .875rem;font-size:var(--fs-caption);letter-spacing:.08em}.doc-cite-text{margin:0;padding:.875rem 1rem;background:var(--lib-tint);border-left:3px solid var(--lib-main);font-family:var(--mono);font-size:var(--fs-caption);line-height:1.9;color:var(--lib-ink);white-space:pre-wrap;word-break:break-word;overflow-x:auto}.doc-cite-text:focus-visible{outline:2px solid var(--lib-main);outline-offset:2px}.doc-cite-note{margin-top:.75rem;font-size:var(--fs-caption);line-height:1.9;color:var(--lib-ink-mute)}.dk-related{list-style:none;margin:0;padding:0;border-top:1px solid var(--lib-line-soft)}.dk-related li{border-bottom:1px solid var(--lib-line-soft)}.dk-related a{display:grid;grid-template-columns:1fr auto;grid-gap:.25rem 1rem;gap:.25rem 1rem;padding:.75rem .25rem;transition:background .15s ease}.dk-related a:hover{background:var(--lib-tint)}.dk-related .no{grid-row:span 2;order:2;align-self:center;font-family:var(--mono);font-size:var(--fs-caption);color:var(--lib-gold-ink);white-space:nowrap}.dk-related .t{order:1;font-family:var(--serif);font-weight:var(--fw-title);font-size:var(--fs-body);color:var(--lib-ink)}.dk-related .m{order:1;font-size:var(--fs-caption);color:var(--lib-ink-mute)}.dk-pager{display:grid;grid-template-columns:1fr 1fr;grid-gap:1px;gap:1px;margin-top:2.5rem;border:1px solid var(--lib-line-soft);background:var(--lib-line-soft)}.dk-pager-item{display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.125rem;background:var(--lib-paper);transition:background .15s ease}.dk-pager-item:hover{background:var(--lib-tint)}.dk-pager-item .k{font-family:var(--mono);font-size:var(--fs-caps);letter-spacing:var(--ls-caps);color:var(--lib-gold-ink)}.dk-pager-item .t{font-family:var(--serif);font-weight:var(--fw-title);font-size:var(--fs-sm);line-height:1.65;color:var(--lib-ink)}.dk-pager-item .no{font-family:var(--mono);font-size:var(--fs-caption);color:var(--lib-ink-mute)}.dk-pager-item.next{text-align:right;align-items:flex-end}.dk-pager-gap{background:var(--lib-paper)}@media (max-width:1100px){.dk-layout{grid-template-columns:minmax(0,1fr);gap:1.75rem}.dk-toc{display:none}.dk-tocfold{display:block}}@media (max-width:768px){.dk-related a{grid-template-columns:1fr}.dk-related .no{grid-row:auto;order:3}.dk-pager{grid-template-columns:1fr}.dk-pager-item.next{text-align:left;align-items:flex-start}}@media (max-width:560px){.doc-cite-top{flex-wrap:wrap}}