.detail-description { white-space: pre-wrap; overflow-wrap: anywhere; }
/* An empty SSR SVG reserves the exact image ratio before decoding, including
   with JS disabled. It needs no inline style, which the page CSP forbids. */
.detail-image-frame { display: grid; grid-template-columns: minmax(0, 1fr); place-items: center; }
.detail-image-space { grid-area: 1 / 1; width: 100%; height: auto; max-height: 68dvh; visibility: hidden; }
.detail-cover { grid-area: 1 / 1; height: 100%; width: auto; max-height: 68dvh; max-width: 100%; object-fit: contain; }
#pattern-panel { position: relative; }
#detail-feedback { padding: 1.5rem; }
#detail-feedback[hidden] { display: none; }
.detail-related:not(.is-masonry) { row-gap: 0; }
/* Native anchor and server feedback keep the same report window without JS. */
#report-dialog:target { display: grid; opacity: 1; visibility: visible; pointer-events: auto; }
#report-dialog:target .modal-box { opacity: 1; translate: 0 0; scale: 1; }
#report-dialog [hidden] { display: none; }

html:not(.report-js) #report-dialog form[method="dialog"] { display: none; }
html.report-js #report-dialog noscript { display: none; }
html:not(.report-js) #report-dialog:is(:target,[open]) { background-color: #0006; transition: none; }
html:not(.report-js) #report-dialog:is(:target,[open]) .modal-box { opacity: 1; scale: 1; transition: none; }
