.publication-ribbon{z-index:1;box-sizing:border-box;color:#171b23;clip-path:polygon(0 0,100% 0,calc(100% - 19px) 50%,100% 100%,0 100%);filter:drop-shadow(0 5px 8px #0002);background:#fff;justify-content:flex-start;align-items:center;width:min(230px,88%);height:62px;padding:11px 34px 11px 20px;display:flex;position:absolute;top:16px;left:0}.publication-ribbon[data-logo-surface=dark]{color:#fff;background:#20252e}.publication-ribbon .publication-ribbon-frame{align-items:center;width:100%;height:40px;display:flex;overflow:hidden}.publication-ribbon .publication-ribbon-logo{object-fit:contain;object-position:left center;width:166px;max-width:100%;height:40px;max-height:100%;display:block}.publication-ribbon[data-logo-canvas^=padded] .publication-ribbon-logo{flex-shrink:0;height:auto;max-height:none}.publication-ribbon[data-logo-canvas=padded-tall-mark] .publication-ribbon-logo{width:136px}.publication-ribbon .publication-ribbon-word{font-family:var(--em-font-display);overflow-wrap:anywhere;font-size:16px;font-weight:650;line-height:1.2}.publication-ribbon [hidden]{display:none}.ep-section{padding:26px 0}.ep-wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 22px}.ep-head{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:16px;display:flex}.ep-heading{min-width:0;max-width:760px}.ep-kicker{color:var(--em-text);font:var(--em-weight-semibold) var(--em-size-100)/var(--em-line-snug) var(--em-font-mono);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:8px;display:inline-flex}.ep-kicker-dot{background:var(--em-accent-text);border-radius:50%;flex:0 0 5px;width:5px;height:5px}.ep-h{font-family:var(--em-font-display);font-size:var(--em-size-700);font-weight:var(--em-weight-bold);line-height:var(--em-line-tight);letter-spacing:var(--em-track-display);color:var(--em-text);margin:7px 0 8px}.ep-intro{max-width:650px;font-size:var(--em-size-300);line-height:var(--em-line-normal);color:var(--em-text-dim);margin:0}.ep-all{border:1px solid var(--em-line-strong);border-radius:var(--em-radius-md);background:var(--em-surface);min-height:44px;color:var(--em-text);font-size:var(--em-size-200);font-weight:var(--em-weight-semibold);flex:none;justify-content:space-between;align-items:center;gap:16px;padding:8px 12px;text-decoration:none;display:inline-flex}.ep-all:hover{border-color:var(--em-accent-edge);background:var(--em-surface-2)}.ep-all span{color:var(--em-accent-text)}.ep-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.ep-card{border:1px solid var(--em-line);border-radius:var(--em-radius-xl);background:var(--em-surface);min-width:0;transition:border-color .2s,transform .2s;overflow:hidden}.ep-card:hover{border-color:var(--em-accent-edge);transform:translateY(-3px)}.ep-link{height:100%;color:var(--em-text);flex-direction:column;text-decoration:none;display:flex}.ep-link:focus-visible,.ep-all:focus-visible{outline:2px solid var(--em-accent-text);outline-offset:-4px}.ep-cover{aspect-ratio:2;isolation:isolate;background:var(--em-surface-2);position:relative;overflow:hidden}.ep-cover-fallback{background:radial-gradient(ellipse at 25% 0%, var(--em-accent-soft), transparent 75%);color:var(--em-text-dim);font:var(--em-weight-semibold) var(--em-size-300)/var(--em-line-normal) var(--em-font-display);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.ep-cover-fallback i{color:var(--em-accent-text);font-size:32px}.ep-cover>img{object-fit:cover;width:100%;height:100%;transition:transform .35s;display:block;position:absolute;inset:0}.ep-cover>img[hidden]{display:none}.ep-card:hover .ep-cover>img{transform:scale(1.035)}.ep-cover-arrow{width:28px;height:28px;color:var(--em-text);background:var(--em-bg);border:1px solid var(--em-line-strong);font-size:var(--em-size-400);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:10px;right:10px}.ep-body{flex-direction:column;flex:1;padding:14px;display:flex}.ep-meta{white-space:nowrap;text-overflow:ellipsis;height:1.5em;font:var(--em-weight-medium) var(--em-size-100)/var(--em-line-normal) var(--em-font-mono);color:var(--em-text-muted);overflow:hidden}.ep-title{-webkit-line-clamp:3;min-height:3.9em;font:var(--em-weight-bold) var(--em-size-500)/var(--em-line-snug) var(--em-font-display);letter-spacing:var(--em-track-heading);color:var(--em-text);-webkit-box-orient:vertical;margin:6px 0 0;display:-webkit-box;overflow:hidden}.ep-excerpt{-webkit-line-clamp:2;min-height:3em;font-size:var(--em-size-200);line-height:var(--em-line-normal);color:var(--em-text-dim);-webkit-box-orient:vertical;margin:8px 0 0;display:-webkit-box;overflow:hidden}.ep-bottom{justify-content:space-between;align-items:center;gap:10px;min-height:28px;margin-top:auto;padding-top:10px;display:flex}.ep-read{font-size:var(--em-size-200);font-weight:var(--em-weight-bold);color:var(--em-accent-text);align-items:center;gap:8px;display:inline-flex}.ep-language{font:var(--em-weight-medium) var(--em-size-100)/var(--em-line-snug) var(--em-font-mono);color:var(--em-text-muted)}.ab-main>.ep-section .ep-wrap{padding-left:0;padding-right:0}@media (width<=1000px){.ep-head{align-items:flex-start}.ep-grid{gap:12px}}@media (width<=900px){.ep-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=760px){.ep-section{padding:22px 0}.ep-wrap{padding-left:16px;padding-right:16px}.ep-head{flex-direction:column;gap:12px;margin-bottom:14px}}@media (width<=375px){.ep-h{font-size:var(--em-size-600)}}@media (prefers-reduced-motion:reduce){.ep-card,.ep-cover>img{transition:none}.ep-card:hover,.ep-card:hover .ep-cover>img{transform:none}}
