/* Final polish: image size appropriate to the actual cover originals, plus small-screen stability. */
/* The official JPGs are 213 x 320: do not expand the displayed cover beyond its source dimensions. */
.hero-cover-main,.hero-cover-back { max-width: 205px; }
.feature-cover .cover-frame { max-width: 205px; }
.book-card-cover .cover-frame,
.book-index .book-grid>.book-card:first-child .book-card-cover .cover-frame,
.book-index .book-grid>.book-card:not(:first-child) .book-card-cover .cover-frame { max-height: 314px; max-width: 209px; width:auto; height:auto; aspect-ratio: 213/320; }
.book-card-cover .cover-frame img { aspect-ratio: 213/320; width:100%; height:100%; object-fit:contain; }
.extra-card .cover-frame { max-width: 165px; }
.detail-image .cover-frame { width: min(100%, 209px); max-width:209px; margin-inline:auto; }
.detail-image .cover-frame img,.feature-cover .cover-frame img { object-fit:contain; }
.cover-frame img { image-rendering:auto; }
/* Remove constraint leakage where long decorative headlines meet 320 px phone viewports. */
.bio-feature-grid,.bio-feature-identity,.bio-feature-intro,.bio-identity,
.detail-grid,.detail-image,.detail-content { min-width:0; max-width:100%; }
@media(max-width:610px) {
 .bio-identity strong {font-size:clamp(61px,19vw,85px) !important; line-height:1.04 !important; }
 .bio-feature-identity .bio-identity {width:100%;min-width:0;}
 .bio-feature-intro h2 {font-size:clamp(60px,12vw,81px) !important;}
 .detail-content h1 {font-size:clamp(65px,13vw,85px) !important;overflow-wrap:break-word;}
 .detail-content h2 {font-size:clamp(35px,9vw,43px) !important;}
 .book-index .book-grid>.book-card:first-child .book-card-cover .cover-frame {max-height: 280px;}
}
@media(max-width:370px) {
 .bio-identity strong {font-size:62px !important;}
 .detail-content h1 {font-size:66px !important;}
 .detail-content h2 {font-size:36px !important;}
}
