.pdetail{padding:calc(var(--esp-space)*3) 0 calc(var(--esp-space)*8);display:flex;flex-direction:column;gap:calc(var(--esp-space)*2.5)}.pdetail .pdetail__hero{display:grid;grid-template-columns:minmax(0,460px) minmax(0,1fr);gap:calc(var(--esp-space)*4);align-items:start;background:var(--esp-bg-container);border:1px solid var(--esp-border);border-radius:var(--esp-radius-lg);box-shadow:var(--esp-shadow-sm);padding:calc(var(--esp-space)*3.5)}@media(max-width:900px){.pdetail .pdetail__hero{grid-template-columns:1fr;gap:calc(var(--esp-space)*3)}}.pdetail .pdetail__hero--nomedia{grid-template-columns:1fr}.pdetail .pdetail__hero-media{min-width:0;position:sticky;top:calc(var(--esp-header-height) + 16px)}@media(max-width:900px){.pdetail .pdetail__hero-media{position:static}}.pdetail .pdetail__cover{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--esp-radius-lg);overflow:hidden;border:1px solid var(--esp-border);background:var(--esp-bg-elevated)}.pdetail .pdetail__cover-img{-o-object-fit:cover;object-fit:cover}.pdetail .pdetail__hero-panel{min-width:0;display:flex;flex-direction:column;gap:calc(var(--esp-space)*2)}.pdetail .pdetail__eyebrow{font-family:var(--esp-mono);font-size:var(--esp-fs-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--esp-primary)}.pdetail .pdetail__title{margin:0;font-size:var(--esp-fs-3xl);font-weight:700;line-height:1.2;color:var(--esp-text)}.pdetail .pdetail__tags{display:flex;flex-wrap:wrap;gap:6px}.pdetail .pdetail__tags:empty{display:none}.pdetail .pdetail__ai-note{display:inline-flex;align-items:center;gap:calc(var(--esp-space)*.75);color:var(--esp-text-tertiary);font-size:var(--esp-fs-xs)}.pdetail .pdetail__ai-note svg{flex-shrink:0;color:var(--esp-primary)}.pdetail .pdetail__cta{display:flex;align-items:center;flex-wrap:wrap;gap:calc(var(--esp-space)*2);margin-top:calc(var(--esp-space)*.5)}.pdetail .pdetail__cta-primary{display:inline-flex}.pdetail .pdetail__cta-primary .ant-btn{min-width:200px;font-weight:600}.pdetail .pdetail__cta-hint{margin:-6px 0 0;color:var(--esp-text-tertiary);font-size:var(--esp-fs-xs)}.pdetail .pdetail__rows{display:flex;flex-direction:column;gap:10px}.pdetail .pdetail__row{border:1px solid var(--esp-border);border-radius:var(--esp-radius);background:var(--esp-bg-elevated);overflow:hidden}.pdetail .pdetail__row-head{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:none;background:none;text-align:left;cursor:pointer;transition:background .15s ease}.pdetail .pdetail__row-head:hover{background:var(--esp-primary-soft)}.pdetail .pdetail__row-icon{display:inline-flex;flex-shrink:0;color:var(--esp-primary)}.pdetail .pdetail__row-main{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.pdetail .pdetail__row-title{font-size:var(--esp-fs-sm);font-weight:600;color:var(--esp-text)}.pdetail .pdetail__row-sub{font-size:var(--esp-fs-xs);color:var(--esp-text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdetail .pdetail__row-toggle{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;color:var(--esp-text-secondary);font-size:var(--esp-fs-sm)}.pdetail .pdetail__row-chevron{transition:transform .2s ease}@media(prefers-reduced-motion:reduce){.pdetail .pdetail__row-chevron{transition:none}}.pdetail .pdetail__row.is-open .pdetail__row-chevron{transform:rotate(180deg)}.pdetail .pdetail__row-body{padding:14px;border-top:1px solid var(--esp-border);background:var(--esp-bg-container)}.pdetail .pdetail__info-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.pdetail .pdetail__info-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:var(--esp-fs-sm)}.pdetail .pdetail__info-k{display:inline-flex;align-items:center;gap:6px;color:var(--esp-text-secondary);flex-shrink:0}.pdetail .pdetail__info-v{font-weight:600;color:var(--esp-text);text-align:right;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdetail .pdetail__filegroup+.pdetail__filegroup{margin-top:14px}.pdetail .pdetail__filegroup-title{margin-bottom:8px;font-size:var(--esp-fs-xs);font-weight:600;color:var(--esp-text-tertiary);text-transform:uppercase;letter-spacing:.03em}.pdetail .pdetail__filelist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.pdetail .pdetail__file{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--esp-border);border-radius:var(--esp-radius-sm);background:var(--esp-bg-elevated);color:var(--esp-text);font-size:var(--esp-fs-sm);transition:border-color .15s ease,background .15s ease}.pdetail .pdetail__file:hover{border-color:var(--esp-primary)}.pdetail .pdetail__file:hover .pdetail__file-dl{color:var(--esp-primary)}.pdetail .pdetail__file-icon{flex-shrink:0;color:var(--esp-text-tertiary)}.pdetail .pdetail__file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdetail .pdetail__file-dl,.pdetail .pdetail__file-size{flex-shrink:0;color:var(--esp-text-tertiary);font-size:var(--esp-fs-xs);font-variant-numeric:tabular-nums}.pdetail .pdetail__file-dl{display:inline-flex;align-items:center;gap:4px;transition:color .15s ease}.pdetail .pdetail__linklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.pdetail .pdetail__linklist a{color:var(--esp-primary);font-size:var(--esp-fs-sm)}.pdetail .pdetail__linklist a:hover{text-decoration:underline}.pdetail .pdetail__desc{display:flex;flex-direction:column;gap:8px}.pdetail .pdetail__lead{margin:0;color:var(--esp-text-secondary);font-size:var(--esp-fs-md);line-height:1.7}.pdetail .pdetail__lead--clamp{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pdetail .pdetail__expand{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;padding:0;border:none;background:none;color:var(--esp-primary);font-size:var(--esp-fs-sm);font-weight:600;cursor:pointer}.pdetail .pdetail__expand:hover{text-decoration:underline}.pdetail .pdetail__expand-up{transform:rotate(180deg)}.pdetail .pdetail__creator{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding-top:calc(var(--esp-space)*2);border-top:1px solid var(--esp-border)}.pdetail .pdetail__creator-label{color:var(--esp-text-tertiary);font-size:var(--esp-fs-sm)}.pdetail .pdetail__author{display:inline-flex;align-items:center;gap:8px;color:var(--esp-text)}.pdetail .pdetail__author:hover .pdetail__author-name{color:var(--esp-primary)}.pdetail .pdetail__author-name{font-weight:600;transition:color .15s ease}.pdetail .pdetail__actionbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.pdetail .pdetail__actionbar :where(.ant-btn){font-size:var(--esp-fs-sm)}.pdetail .pdetail__likebtn{font-variant-numeric:tabular-nums}.pdetail .pdetail__likebtn.is-on{color:var(--esp-primary);border-color:var(--esp-primary)}.pdetail .pdetail__likebtn.is-on svg{fill:currentColor}.pdetail .pdetail__views{display:inline-flex;align-items:center;gap:6px;margin-left:auto;color:var(--esp-text-tertiary);font-size:var(--esp-fs-sm);font-variant-numeric:tabular-nums}.pdetail .pdetail__comments,.pdetail .pdetail__panel{background:var(--esp-bg-container);border:1px solid var(--esp-border);border-radius:var(--esp-radius-lg);box-shadow:var(--esp-shadow-sm);padding:calc(var(--esp-space)*3)}.pdetail .pdetail__article{min-height:80px}.pdetail .pdetail__engage{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px}.pdetail .pdetail__engage.pdetail__engage--divided{margin:calc(var(--esp-space)*3) calc(var(--esp-space)*-3) 0;padding:calc(var(--esp-space)*2.5) calc(var(--esp-space)*3) 0;border-top:1px solid var(--esp-border)}.pdetail .pdetail__reactions{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px}.pdetail .pdetail__reaction-btn{display:inline-flex;align-items:center;gap:7px;height:36px;margin:0;padding-inline:14px;border:1px solid var(--esp-border);border-radius:999px;background:rgba(0,0,0,0);font:inherit;font-size:var(--esp-fs-sm);font-weight:600;color:var(--esp-text-secondary);font-variant-numeric:tabular-nums;cursor:pointer;transition:color .18s ease,border-color .18s ease}.pdetail .pdetail__reaction-btn svg{transition:transform .18s ease}.pdetail .pdetail__reaction-btn.is-active,.pdetail .pdetail__reaction-btn:hover{color:var(--esp-primary);border-color:var(--esp-primary)}.pdetail .pdetail__reaction-btn.is-active svg{fill:currentColor}.pdetail .project-detail__share{display:inline-flex;align-items:center;gap:10px;margin-left:auto}.pdetail .project-detail__share-label{font-size:var(--esp-fs-sm);color:var(--esp-text-tertiary);white-space:nowrap}.pdetail .project-detail__share-actions{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px}.pdetail .project-detail__share-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;color:var(--esp-text-tertiary);background:rgba(0,0,0,0);border:1px solid var(--esp-border);border-radius:50%;cursor:pointer;transition:color .18s ease,border-color .18s ease}.pdetail .project-detail__share-btn .iconfont{font-size:19px;line-height:1}.pdetail .project-detail__share-btn:hover{color:var(--esp-primary);border-color:var(--esp-primary)}.pdetail .project-detail__share-btn[data-share=wechat]:hover{color:#07c160;border-color:color-mix(in srgb,#07c160 55%,var(--esp-border))}.pdetail .project-detail__share-btn[data-share=xiaohongshu]:hover{color:#ff2442;border-color:color-mix(in srgb,#ff2442 55%,var(--esp-border))}.pdetail .project-detail__share-btn[data-share=bilibili]:hover{color:#fb7299;border-color:color-mix(in srgb,#fb7299 55%,var(--esp-border))}.pdetail .project-detail__share-btn[data-share=linkedin]:hover{color:#0a66c2;border-color:color-mix(in srgb,#0a66c2 55%,var(--esp-border))}.pdetail .project-detail__share-btn[data-share=twitter]:hover{color:#1da1f2;border-color:color-mix(in srgb,#1da1f2 55%,var(--esp-border))}.pdetail .project-detail__share-btn[data-share=reddit]:hover{color:#ff4500;border-color:color-mix(in srgb,#ff4500 55%,var(--esp-border))}.pdetail .project-detail__share-btn[data-share=whatsapp]:hover{color:#25d366;border-color:color-mix(in srgb,#25d366 55%,var(--esp-border))}.pdetail .project-detail__share-btn[data-share=facebook]:hover{color:#1877f2;border-color:color-mix(in srgb,#1877f2 55%,var(--esp-border))}@media(max-width:640px){.pdetail .project-detail__share{margin-left:0}}@media(prefers-reduced-motion:reduce){.pdetail .pdetail__reaction-btn,.pdetail .pdetail__reaction-btn svg,.pdetail .project-detail__share-btn{transition:none}}.project-share-qr-modal__hint{margin:0 0 .85rem;font-size:var(--esp-fs-sm);line-height:1.5;color:var(--esp-text-tertiary)}.project-share-qr-modal__grid{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.project-share-qr-item{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:var(--esp-fs-sm);color:var(--esp-text-secondary)}.project-share-qr-item p{margin:0}.project-share-qr-modal__code{display:block;padding:4px;background:#fff;border-radius:var(--esp-radius-sm)}