/* UI typography: system fonts, relative sizes, meaningful hierarchy, readable captions. */
:root{--muted:#b3c1c1}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}h1,h2,h3{overflow-wrap:anywhere;text-wrap:balance}p{text-wrap:pretty}.page-heading{align-items:flex-start}.page-heading>div{min-width:0}.page-heading p{max-width:65ch}.button{min-height:44px;border-radius:10px;white-space:normal;overflow-wrap:anywhere}.plain-button{white-space:normal;min-height:44px}.tool{min-height:64px}.journey-goal small{display:inline-block;margin-top:6px}.dialog label{display:block;margin-top:12px}.dialog input,.dialog textarea{width:100%;min-height:44px}.dialog textarea{resize:vertical}.dialog-actions{gap:10px;flex-wrap:wrap}.shop-comparison th{text-align:left}.campus-task h2{margin:6px 0 12px}
/* Gallery: keep captions outside art and never truncate names or unlock conditions. */
.book-collection-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px}.book-profile{display:block;width:100%;text-align:left;padding:0;overflow:hidden}.book-profile img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:top;height:auto}.book-profile .character-identity{position:static!important;inset:auto!important;padding:18px 18px 20px;background:#122329!important;text-align:left;transform:none!important}.character-identity h3,.character-name,.card-name{text-transform:none;white-space:normal;overflow:visible;overflow-wrap:anywhere}.character-identity p{margin-top:6px;color:#c2cecd}.character-identity small{display:block;margin-top:10px;color:#c2cecd}.book-profile.card-inactive{filter:none;opacity:1}.book-profile.card-inactive img{filter:grayscale(1);opacity:.7}.scene-card-list{gap:12px;padding:16px;grid-template-columns:repeat(3,minmax(0,1fr))}.scene-card{min-width:0;text-align:left;display:flex;flex-direction:column;gap:6px}.scene-card strong{text-transform:none;white-space:normal;overflow:visible;overflow-wrap:anywhere}.scene-card small{white-space:normal;overflow:visible;color:#bbc9c8}.scene-card.card-inactive{filter:none;opacity:1}.scene-card.card-inactive img{filter:grayscale(1);opacity:.55}.collection-jump{gap:10px;flex-wrap:wrap;margin-bottom:24px}.collection-note{max-width:75ch}.card-inactive .character-identity{opacity:1}#book-roster>h2{margin-bottom:10px}.book-collection-card{min-width:0;border-radius:16px;overflow:hidden}
@media(max-width:600px){.book-collection-grid{grid-template-columns:1fr;gap:20px}.book-profile{display:grid;grid-template-columns:minmax(110px,36%) minmax(0,1fr);align-items:stretch}.book-profile img{height:100%;min-height:180px;aspect-ratio:3/4}.book-profile .character-identity{padding:16px 14px}.scene-card-list{padding:14px;gap:10px}.page-heading{flex-wrap:wrap}.topbar{height:auto;min-height:80px;flex-wrap:wrap;padding-block:14px}.resources{gap:12px;flex-wrap:wrap}.main{padding-inline:16px}.practice-top{padding:18px 16px}.tools{gap:8px}.tool{min-width:76px}}
@media(prefers-contrast:more){:root{--muted:#dae4e2}.scene-card small,.character-identity p,.character-identity small{color:#e5edeb}}
.academy-all-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:24px}.academy-family>.character-identity{position:static;padding:0 0 16px;text-align:left}.academy-family .age-portraits{gap:12px}.age-portraits .card-inactive{filter:none;opacity:1}.age-portraits .card-inactive img{filter:grayscale(1);opacity:.6}.age-portraits button{padding:0;min-width:0}.age-portraits span{padding:5px 2px;color:var(--muted);overflow-wrap:anywhere}.age-portraits span:first-of-type{color:var(--text)}@media(max-width:380px){.book-profile{display:block}.book-profile img{max-height:300px;width:100%;object-fit:cover}.scene-card-list{grid-template-columns:1fr}.scene-card{display:grid;grid-template-columns:72px minmax(0,1fr);column-gap:12px;align-items:start}.scene-card img{grid-row:1/4;width:72px}.scene-number,.scene-card strong,.scene-card small{grid-column:2}.age-portraits{gap:8px}}
