.contributor-directory { margin-top:1.1rem; }
.directory-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.contributor-search { display:flex; align-items:center; gap:10px; margin:0; padding:0 10px; border:1px solid var(--editorial-rule); background:transparent; }
.contributor-search:focus-within { outline:1px solid var(--accent); border-color:var(--accent); }
.contributor-search > svg { width:20px; height:20px; flex-shrink:0; }
.contributor-search input { width:100%; min-width:0; min-height:46px; padding:10px 0; border:0; outline:0; color:var(--paper-ink); background:transparent; font:400 16px/1.4 var(--text-font); }
.contributor-search input::-webkit-search-cancel-button { display:none; }
.contributor-search input::placeholder { color:var(--quiet-ink); opacity:1; }
.contributor-clear,.contributor-close { display:flex; align-items:center; justify-content:center; flex-shrink:0; width:44px; height:44px; padding:0; border:0; color:var(--paper-ink); background:transparent; font:400 26px/1 var(--text-font); cursor:pointer; }
.contributor-clear { margin-right:-8px; }
.contributor-count { margin:1rem 0 5px; font:400 0.85rem/1.5 var(--text-font); color:var(--quiet-ink); }
.contributor-hint { margin:0 0 12px; color:var(--quiet-ink); font:400 0.8rem/1.5 var(--text-font); }
.contributor-directory .member-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 22px; margin:0; }
.contributor-directory .member-list > li { min-width:0; margin:0; padding:0; border:0; border-radius:0; background:none; }
.contributor-name { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; min-height:44px; padding:8px 0; border:0; border-bottom:1px solid rgba(107,81,69,0.22); border-radius:0; text-align:left; color:var(--paper-ink); background:none; font:400 0.95rem/1.45 var(--display-font); cursor:pointer; }
.contributor-name-label { min-width:0; overflow-wrap:anywhere; text-decoration-thickness:1px; text-underline-offset:4px; }
.contributor-name-arrow { flex-shrink:0; font-size:1.25rem; line-height:1; }
.contributor-name:focus-visible,.contributor-clear:focus-visible,.contributor-close:focus-visible,.contributor-work-link:focus-visible,.contributor-retry:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.contributor-name:focus-visible,.contributor-name[aria-expanded="true"] { color:var(--accent); }
.contributor-name:focus-visible .contributor-name-label,.contributor-name[aria-expanded="true"] .contributor-name-label { text-decoration-line:underline; }
@media(hover:hover) { .contributor-name:hover { color:var(--accent); } .contributor-name:hover .contributor-name-label { text-decoration-line:underline; } .contributor-work-link:hover .contributor-work-title { text-decoration:underline; text-underline-offset:4px; } .contributor-close:hover,.contributor-clear:hover { color:var(--accent); } }
.contributor-empty { color:var(--quiet-ink); font:400 0.95rem/1.6 var(--text-font); }
.contributor-dialog { box-sizing:border-box; width:min(740px,calc(100% - 32px)); max-width:none; max-height:calc(100dvh - 40px); margin:auto; padding:28px 32px 0; border:1px solid var(--editorial-rule); border-radius:6px; background:var(--paper); color:var(--paper-ink); box-shadow:0 16px 65px rgba(20,12,7,0.2); overflow:hidden; font-family:var(--text-font); }
.contributor-dialog[open] { display:flex; flex-direction:column; }
.contributor-dialog::backdrop { background:rgba(20,12,7,0.46); }
body:has(.contributor-dialog[open]) { overflow:hidden; }
.contributor-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-shrink:0; }
.contributor-dialog-label { margin:0 0 5px; color:var(--quiet-ink); font-size:0.82rem; line-height:1.5; }
.contributor-dialog-head h2 { margin:0; font:400 clamp(1.8rem,4vw,2.5rem)/1.15 var(--display-font); overflow-wrap:anywhere; }
.contributor-close { margin-top:-8px; margin-right:-12px; }
.contributor-close svg { width:22px; height:22px; }
.contributor-dialog-intro { margin:12px 0 20px; font:400 0.95rem/1.55 var(--text-font); color:var(--quiet-ink); flex-shrink:0; }
.contributor-work-area { min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; border-top:1px solid var(--editorial-rule); }
.contributor-work-status { margin:18px 0; color:var(--quiet-ink); line-height:1.6; }
.contributor-work-status:empty { display:none; }
.contributor-works { list-style:none; margin:0; padding:0; }
.contributor-works > li { margin:0; padding:0; }
.contributor-works > li + li { border-top:1px solid var(--editorial-rule); }
.contributor-work-link { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 3px; color:var(--accent); text-decoration:none; }
.contributor-work-content { min-width:0; }
.contributor-work-title { display:block; font:700 clamp(1.15rem,2.5vw,1.45rem)/1.25 var(--display-font); overflow-wrap:anywhere; }
.contributor-work-meta,.contributor-work-credit { display:block; margin-top:8px; font:400 0.8rem/1.6 var(--text-font); color:var(--quiet-ink); }
.contributor-work-credit { margin-top:4px; }
.contributor-work-arrow { flex-shrink:0; font-size:1.6rem; line-height:1; color:var(--paper-ink); }
.contributor-dialog-footer { flex-shrink:0; margin:0; padding:14px 0 18px; border-top:1px solid var(--editorial-rule); color:var(--quiet-ink); font:400 0.82rem/1.5 var(--text-font); }
.contributor-retry { min-height:44px; margin:0 0 18px; padding:8px 15px; border:1px solid var(--accent); color:var(--accent); background:transparent; font:400 1rem/1.3 var(--display-font); cursor:pointer; }
.contributor-directory [hidden],.contributor-dialog [hidden] { display:none !important; }
@media(max-width:520px) { .contributor-directory .member-list { gap:0 18px; } .contributor-dialog { width:calc(100% - 24px); max-height:calc(100dvh - 24px); padding:20px 18px 0; } .contributor-dialog-intro { margin-bottom:14px; font-size:0.88rem; } .contributor-work-link { padding:18px 2px; gap:12px; } .contributor-close { margin-right:-8px; } }
@media(max-width:360px) { .contributor-directory .member-list { grid-template-columns:1fr; } }
@media(max-height:500px) { .contributor-dialog { padding-top:14px; } .contributor-dialog-label { display:none; } .contributor-dialog-head h2 { font-size:1.7rem; } .contributor-dialog-intro { margin:6px 0 10px; font-size:0.8rem; } .contributor-dialog-footer { padding:8px 0; } }
