/* Publishing styles are scoped; shared navigation/footer changes are deliberate. */
.site-head { flex-wrap: wrap; }
.site-head__actions { flex-wrap: wrap; }
.wiki-head__actions { flex-wrap: wrap; }
.dnd-global-footer.site-footer { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:0; padding:1rem var(--page-gutter); min-height:70px; border-top:1px solid #35353b; background:#09090b; color:var(--muted); font-size:.8rem; }
.dnd-global-footer p { margin:.15rem 0 0; }
.dnd-global-footer nav { display:flex; flex-wrap:wrap; gap:1.3rem; }
.dnd-global-footer a { text-decoration:none; }
.dnd-global-footer a:hover { color:var(--gold-light); }
.dpub-page { width:min(1200px,90%); margin:0 auto; padding-bottom:3rem; min-height:calc(100vh - 160px); }
.dpub-page h1 { font-size:clamp(2.5rem,5vw,4.5rem); letter-spacing:-.035em; color:#f5ecd7; overflow-wrap:anywhere; }
.dpub-page h2 { font-size:clamp(1.7rem,3vw,2.5rem); color:#f5ecd7; }
.dpub-overview-content { min-height:0; }
.dpub-overview-content:empty { display:none; }
.dnd-tag-filters { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:2rem; }
.dnd-project-search { position:relative; max-width:40rem; margin-top:2rem; }
.dnd-project-search[hidden], [data-project-search-clear][hidden], [data-project-empty][hidden] { display:none; }
.dnd-project-search label { display:block; }
.dnd-project-search label span { display:block; margin-bottom:.5rem; color:#f5ecd7; }
.dnd-project-search input { width:100%; min-height:48px; padding:.7rem 3rem .7rem 1rem; border:1px solid #655c48; border-radius:.7rem; background:#1b1b1f; color:var(--text); font:inherit; }
.dnd-project-search input::-webkit-search-cancel-button { -webkit-appearance:none; }
.dnd-project-search button { position:absolute; right:.2rem; bottom:.15rem; width:44px; height:44px; border:0; background:transparent; color:var(--text); font-size:1.6rem; cursor:pointer; }
.dnd-project-search input:focus-visible,.dnd-project-search button:focus-visible { outline:2px solid #f5ecd7; outline-offset:2px; }
.dnd-project-search + .dnd-tag-filters { margin-top:1rem; }
.dnd-tag-filters[hidden], .dpub-project-card[hidden] { display:none; }
.dnd-tag-filters button { font:inherit; color:var(--text); background:#222226; border:1px solid #655c48; border-radius:2rem; padding:.45rem 1rem; cursor:pointer; }
.dnd-tag-filters button[aria-pressed="true"] { border-color:#f5ecd7; background:#3b3933; }
.dnd-tag-filters button:focus-visible { outline:3px solid #f5ecd7; outline-offset:3px; }
.dnd-filter-reset { margin-top: .8rem; padding: .5rem 1rem; border: 1px solid #655c48; border-radius: 2rem; color: var(--text); background: #222226; font: inherit; cursor: pointer; }
.dnd-filter-reset[hidden] { display: none; }
.dnd-filter-reset:focus-visible { outline: 3px solid #f5ecd7; outline-offset: 3px; }
.dnd-card-tags { display:flex; flex-wrap:wrap; gap:.5rem; padding:0; margin:0 0 1rem; list-style:none; }
.dnd-card-tags li { border:1px solid #655c48; border-radius:2rem; padding:.15rem .6rem; font-size:.8rem; }
.dpub-breadcrumb { display:flex; flex-wrap:wrap; gap:1.2rem; padding:1.8rem 0 0; color:var(--muted); font-size:.8rem; }
.dpub-breadcrumb a { text-underline-offset:4px; }
.dpub-intro,.dpub-title { position:relative; padding:3.5rem 0 2.5rem; overflow:hidden; }
.dpub-intro h1,.dpub-intro h2,.dpub-intro p,.dpub-lead { position:relative; z-index:1; }
.dpub-eyebrow { color:var(--gold-light); font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; margin:0 0 1rem; }
.dpub-lead { max-width:640px; font-size:1.1rem; color:var(--muted); margin-top:1.3rem; }
.dpub-dice { position:absolute; width:185px; right:20px; top:25px; opacity:.17; transform:rotate(12deg); color:var(--gold); }
.dpub-content { line-height:1.75; }
.dpub-content:empty { display:none; }
.dpub-content h2,.dpub-content h3 { margin:1.8rem 0 1rem; }
.dpub-heading-row { border-bottom:1px solid #35353b; margin-bottom:2rem; }
.dpub-heading-row--project:has(.dpub-project-image) { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; align-items:center; padding-bottom:2rem; }
.dpub-project-image { margin:2rem 0 0; }
.dpub-project-image img { display:block; width:100%; height:auto; border:1px solid #35353b; border-radius:14px; }
.dpub-project-image figcaption { font-size:.8rem; color:var(--muted); margin-top:.6rem; }
.dpub-projects { display:grid; gap:1.5rem; margin:2rem 0; }
.dpub-project-card { border:1px solid #35353b; border-radius:18px; background:#1b1b1f; overflow:hidden; }
.dpub-project-card:has(.dpub-card-image) { display:grid; grid-template-columns:1.1fr 1fr; }
.dpub-card-image { padding:1.5rem; display:flex; align-items:center; background:#141416; }
.dpub-card-image img { width:100%; height:auto; border-radius:8px; }
.dpub-card-copy { padding:2rem; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.dpub-card-copy h2 { margin-bottom:1rem; }
.dpub-card-copy p,.dpub-download-card p { color:var(--muted); }
.dpub-button { display:inline-flex; justify-content:center; align-items:center; min-height:45px; padding:.65rem 1.1rem; background:var(--gold-light); border:1px solid var(--gold-light); border-radius:8px; color:#181614; font-weight:700; text-decoration:none; font-size:.88rem; }
.dpub-button:hover { background:#f8e4b1; }
.dpub-downloads { display:flex; flex-wrap:wrap; justify-content:center; gap:1.3rem; margin:2rem 0; }
.dpub-downloads > .dpub-download-card { box-sizing:border-box; flex:0 0 calc((100% - 1.3rem) / 2); max-width:100%; }
.dpub-download-card { display:flex; flex-direction:column; padding:2rem; border:1px solid #35353b; border-radius:14px; background:#1b1b1f; min-width:0; }
.dpub-download-card h2 { margin-bottom:1rem; }
.dpub-download-card dl { margin:.5rem 0 1.5rem; font-size:.86rem; }
.dpub-download-card dl div { display:flex; justify-content:space-between; gap:1rem; padding:.6rem 0; border-bottom:1px solid #35353b; }
.dpub-download-card dt { color:var(--muted); }
.dpub-download-card dd { margin:0; text-align:right; overflow-wrap:anywhere; }
.dpub-download-card .dpub-button { margin-top:auto; }
.dnd-manifest { margin-top:auto; }
.dnd-manifest .dpub-button { width:100%; font-family:inherit; cursor:pointer; }
.dnd-manifest [hidden] { display:none !important; }
.dnd-manifest label { display:block; font-size:.85rem; margin-top:.8rem; }
.dnd-manifest input { box-sizing:border-box; width:100%; min-width:0; padding:.6rem; background:#101013; color:var(--text); border:1px solid #655c48; border-radius:6px; }
.dnd-copy-status { display:block; font-size:.8rem; color:var(--muted); }
.dnd-copy-status:not(:empty) { margin-top:.5rem; }
.dpub-download-card .dnd-zip-link { color:var(--muted); }
.dnd-github-content p,.dnd-github-content li { white-space:pre-line; overflow-wrap:anywhere; }
.dnd-github-content ul { padding-left:1.5rem; }
.dpub-guide-link { text-align:center; margin-top:.8rem; font-size:.85rem; text-underline-offset:4px; }
.dpub-page a:focus-visible,.dnd-global-footer a:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
@media(max-width:700px) {
 .dpub-project-card:has(.dpub-card-image),.dpub-heading-row--project:has(.dpub-project-image) { grid-template-columns:1fr; }
 .dpub-downloads > .dpub-download-card { flex-basis:100%; }
 .dpub-heading-row--project:has(.dpub-project-image) { gap:0; }
 .dpub-intro,.dpub-title { padding:2.5rem 0 2rem; }
 .dpub-card-copy,.dpub-download-card { padding:1.4rem; }
 .dpub-dice { right:-50px; width:140px; }
 .dnd-global-footer.site-footer { align-items:flex-start; flex-direction:column; }
}
.members-head__inner { flex-wrap:wrap; }
.wiki-shell { flex:1; }
.dpub-accordion { padding:1rem 0; border-bottom:1px solid #35353b; }
.dpub-accordion summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; cursor:pointer; list-style:none; font-weight:700; }
.dpub-accordion summary::-webkit-details-marker { display:none; }
.dpub-accordion summary svg { width:18px; flex-shrink:0; }
.dpub-accordion[open] summary svg { transform:rotate(180deg); }
.dpub-accordion > div { padding-top:1rem; }
.dpub-accordion summary:focus-visible { outline:2px solid var(--gold); outline-offset:4px; }

