/* Character gallery layout; theme tokens and native costume controls are shared. */
.contents.character-gallery{max-width:1168px;margin-block:40px 0}
.character-intro{max-width:720px;margin-bottom:30px}
.character-intro>.eyebrow{padding-bottom:12px;border-bottom:1px solid var(--line);margin:0 0 22px}
.character-intro h1{font-size:clamp(52px,8vw,80px);line-height:1;margin:0 0 20px}
.character-intro>p:last-child{font-family:BookSerif,Georgia,serif;font-size:17px;line-height:1.8;margin:0}
.character-filters{border:0;border-top:1px solid var(--line);margin:0;padding:18px 0 0;min-width:0}
.character-filters legend{padding:0 16px 0 0;font-size:12px;font-weight:650;color:var(--muted)}
.character-filter-buttons{display:flex;flex-wrap:wrap;gap:10px}
.character-filter-buttons button{min-height:46px;padding:10px 20px;border-color:var(--control);font-size:14px;font-weight:650;border-radius:3px;background:var(--surface)}
.character-filter-buttons button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.character-filter-buttons button:hover{box-shadow:3px 3px 0 var(--accent)}
.character-filter-status{margin:18px 0 0;color:var(--muted);font-size:12px;line-height:1.7;min-height:1.7em}
.character-gallery .profiles{grid-template-columns:minmax(0,1fr);gap:24px;margin-block:24px 38px}
.character-gallery .character-card{display:flex;flex-direction:column;align-items:flex-start;padding:24px;transition:transform .2s ease,box-shadow .2s ease;scroll-margin-top:130px}
.character-media{width:100%;min-width:0;min-height:310px}
.character-gallery .character-media>img,.character-gallery .character-portrait-stack{height:260px;width:100%}
.character-gallery .character-media>img{object-fit:contain;display:block}
.character-gallery .character-portrait-stack img{height:100%;width:100%;object-fit:contain}
.character-gallery .character-pin-note{font-size:11px;line-height:1.7;min-height:44px;padding:12px 0}
.character-identity{min-height:74px;margin:12px 0 16px}
.character-gallery .character-identity h2{font-family:BookDisplay,Impact,sans-serif;font-size:34px;font-weight:400;line-height:1.05;margin:0;letter-spacing:.5px;overflow-wrap:anywhere}
.character-alias{font-size:12px;color:var(--muted);margin:8px 0 0}
.character-tag{display:inline-block;border:1px solid var(--control);border-radius:2px;padding:4px 9px;font-size:10px;line-height:1.5;font-weight:750;letter-spacing:.7px;text-transform:uppercase}
.character-tag-heroes{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.character-tag-villains{color:var(--accent);border-color:var(--accent)}
.character-tag-allies{color:var(--muted)}
.character-description{font-size:13px;line-height:1.75;margin:18px 0;padding-left:12px;border-left:2px solid var(--accent);overflow-wrap:anywhere}
.character-gallery .character-transform-help{font-size:11px;line-height:1.8;margin:0 0 20px;max-width:40ch}
.character-first-book{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;min-height:44px;font-size:12px;text-decoration:underline;text-underline-offset:5px;line-height:1.6;margin-top:auto;padding-top:8px}
.character-portrait-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;width:100%;height:260px;border:1px dashed var(--control);padding:20px;text-align:center;background:linear-gradient(135deg,var(--glow),transparent 70%)}
.character-portrait-placeholder>span{font-family:BookDisplay,Impact,sans-serif;font-size:70px;line-height:1;color:var(--accent)}
.character-portrait-placeholder p{font-size:12px;color:var(--muted);margin:0;line-height:1.8}
.character-roster-note{border-left:3px solid var(--accent);padding:12px 20px;background:var(--surface);margin-bottom:38px}
.character-roster-note h2{font-size:26px;line-height:1.1;margin:0 0 12px}
.character-roster-note p{font-size:12px;line-height:1.85;max-width:85ch;margin:8px 0}
.character-closing{display:grid;gap:20px;padding:30px 24px;background:var(--night);color:#fff7e9;border-top:4px solid var(--sun);margin-bottom:40px}
.character-closing .eyebrow{color:var(--sun);font-size:10px;line-height:1.8;margin:0 0 12px}
.character-closing h2{font-size:clamp(36px,5vw,50px);line-height:1.05;margin:0}
.character-closing-links{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.character-closing-links>.button{background:var(--sun);border-color:var(--sun);color:#102735;text-align:left;gap:16px}
.character-closing-links>.button:hover{box-shadow:3px 3px 0 #fff7e9}
.character-closing .actions{gap:12px;justify-content:flex-start}
.character-closing .button.secondary{color:#fff7e9;border-color:#c2cdd0;background:transparent}
.character-series-link{display:inline-flex;align-items:center;gap:14px;min-height:44px;font-size:13px;text-decoration:underline;text-underline-offset:5px;line-height:1.7}
.character-closing a:focus-visible{outline-color:#fff7e9}
@media(min-width:640px){.character-gallery .profiles{grid-template-columns:repeat(2,minmax(0,1fr))}.character-closing{padding:36px}}
@media(min-width:960px){.character-gallery .profiles{grid-template-columns:repeat(3,minmax(0,1fr))}.character-closing{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:40px}.contents.character-gallery{margin-top:48px}}
@media(hover:hover) and (pointer:fine){.character-gallery .character-card:hover{transform:translateY(-4px);box-shadow:4px 6px 0 var(--line)}}
@media(max-width:380px){.character-filter-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.character-filter-buttons button{padding-inline:14px}.character-gallery .character-card{padding:22px}.character-closing .actions{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.character-closing .actions .button{font-size:12px;padding-inline:8px}}
@media(prefers-reduced-motion:reduce){.character-gallery .character-card{transition:none}.character-gallery .character-card:hover{transform:none}}

.comic-origin-link{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px;font-size:14px}
