/* M4 homepage, hubs and character presentation. */
.home-section { padding-block: 3.5rem; }
.section-heading-row { display:flex; justify-content:space-between; gap:1.5rem; align-items:end; }
.text-link { color:#a6192e; font-size:.85rem; font-weight:600; text-underline-offset:.25em; }
.text-link:visited { color:#79364d; }
.home-hero { position:relative; isolation:isolate; color:#fff; background:radial-gradient(ellipse at 80% 30%,#501c2c,transparent 50%),#0b0b0f; overflow:hidden; }
.hero-inner { position:relative; min-height:570px; display:grid; grid-template-columns:1.25fr 1fr; align-items:center; gap:3rem; padding-block:5rem; z-index:1; }
.hero-copy { max-width:680px; }
.hero-copy h1 { font-size:clamp(2.8rem,5.8vw,5.35rem); line-height:1.06; letter-spacing:-.045em; }
.hero-copy h1 em { display:block; color:#f04459; font-style:normal; }
.hero-copy .eyebrow,.hero-quote .eyebrow { color:#ff8b99; }
.hero-description { color:#ddd3df; max-width:410px; font-size:1.05rem; margin-top:1.5rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:1rem; margin-top:2rem; }
.button-outline,.button-outline:visited { background:transparent; border-color:#c9becd; color:#fff; }
.button-outline:hover { background:#fff; color:#17151b; }
.hero-atmosphere { position:relative; min-height:380px; display:flex; align-items:end; justify-content:center; }
.crimson-moon { width:320px; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle at 30% 25%,#f05565,#a62139 60%,#64142c); position:absolute; top:0; right:0; box-shadow:0 0 80px #d62b4b24; opacity:.65; }
.crimson-moon::before,.crimson-moon::after { content:""; position:absolute; border:1px solid #f5c1cb33; border-radius:50%; inset:-22px; transform:rotate(-20deg) scaleY(.7); }
.crimson-moon::after { inset:-40px; transform:rotate(25deg) scaleY(.8); }
.hero-quote { position:relative; z-index:1; max-width:350px; padding:2rem; margin-bottom:-.5rem; border:1px solid #8f526050; border-radius:14px; background:#0b0b0fe8; }
.hero-quote blockquote { margin:0 0 1rem; font:600 1.75rem/1.3 var(--al-font-heading); }
.hero-quote > p:last-child { margin:0; color:#d1bbc7; font-size:.85rem; }
.hero-artwork { position:absolute; inset:0; z-index:-1; }
.hero-artwork img { width:100%; height:100%; object-fit:cover; object-position:70% center; }
.home-hero.has-artwork::after { content:""; position:absolute; inset:0; z-index:0; background:linear-gradient(90deg,#0b0b0ff5 0,#0b0b0fb5 45%,#0b0b0f20 85%); }
.quick-start-section { background:#14121a; color:#f6f6f8; border-top:1px solid #51303f; border-bottom:1px solid #352b38; }
.quick-start { display:grid; grid-template-columns:280px minmax(0,1fr); align-items:center; gap:2.5rem; padding-block:2.5rem; }
.quick-start .section-heading { margin:0; }
.quick-start .section-heading p:last-child { color:#c7bccd; font-size:.9rem; margin:0; }
.quick-start .eyebrow { color:#ff8b99; }
.experience-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.experience-card,.experience-card:visited { display:flex; align-items:start; gap:1.25rem; border:1px solid #d7d0dc; background:#fff; border-radius:14px; padding:1.75rem; color:#17151b; text-decoration:none; min-width:0; }
.experience-card:hover { border-color:#a6192e; box-shadow:0 8px 26px #4412230a; }
.experience-number { display:grid; place-items:center; flex-shrink:0; width:46px; height:46px; border:1px solid #edb5bf; border-radius:50%; background:#f8e5e9; color:#9d1c34; font:600 1.15rem var(--al-font-heading); }
.experience-copy { min-width:0; }
.experience-copy h3 { font-size:1.35rem; margin-bottom:.65rem; }
.experience-copy p { font-size:.85rem; color:#615c66; margin-bottom:1rem; }
.experience-copy .text-link { text-decoration:underline; }
.status-label { display:block; color:#775b65; text-transform:uppercase; font-size:.6rem; letter-spacing:.12em; font-weight:600; margin-bottom:.6rem; }
.quick-start .experience-card { background:#1b1821; border-color:#51434f; color:#f6f6f8; }
.quick-start .experience-copy p { color:#cfc4d1; }
.quick-start .status-label,.quick-start .text-link { color:#ff9aaa; }
.quick-start .experience-number { background:#341d2b; border-color:#8c3d50; color:#ff98a8; }
.genre-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:1rem; }
.genre-tile,.genre-tile:visited { min-width:0; min-height:156px; position:relative; isolation:isolate; overflow:hidden; display:flex; align-items:end; justify-content:center; border:1px solid #53404e; border-radius:12px; background:radial-gradient(circle at 80% 20%,#7b2942,transparent 65%),#17131e; color:#fff; text-decoration:none; padding:1rem .5rem; font-weight:500; font-size:.85rem; }
.genre-tile:hover { border-color:#e63946; }
.genre-orbit { position:absolute; width:90px; height:90px; top:12px; border:1px solid #e39aad55; border-radius:50%; z-index:-1; }
.genre-orbit::after { content:""; position:absolute; inset:15px; border:1px solid #e39aad55; transform:rotate(45deg); }
.genre-mystery { background:radial-gradient(circle at 70% 30%,#493451,transparent 65%),#15121d; }
.genre-slice-of-life { background:radial-gradient(circle at 70% 30%,#65534c,transparent 65%),#21151b; }
.genre-comedy { background:radial-gradient(circle at 70% 30%,#7c474e,transparent 65%),#24141f; }
.character-feature-section { background:#eeebf0; border-block:1px solid #dfd9e2; }
.quiet-empty { border:1px solid #ded7e1; border-radius:14px; padding:2rem; background:#fff; color:#615c66; }
.quiet-empty p { max-width:650px; }
.zerumiya-teaser { background:radial-gradient(ellipse at 85% 20%,#4a1c2b,transparent 65%),#0b0b0f; border-top:1px solid #4c2a3a; color:#f6f6f8; }
.zerumiya-teaser-inner { display:grid; grid-template-columns:1.2fr 1fr; gap:5rem; align-items:center; padding-block:4rem; }
.zerumiya-teaser .eyebrow { color:#ff8b99; }
.zerumiya-teaser h2 { font-size:clamp(2.5rem,4vw,4rem); color:#f45a70; }
.zerumiya-teaser p:not(.eyebrow) { max-width:550px; color:#d3c8d8; }
.zerumiya-teaser blockquote { margin:0; border-left:1px solid #714253; padding-left:2rem; font:600 clamp(1.75rem,3vw,2.5rem)/1.35 var(--al-font-heading); color:#f4d6dd; }
.topic-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
.topic-card,.topic-card:visited { display:block; position:relative; border:1px solid #d7d0dc; border-radius:14px; padding:2rem 4rem 2rem 2rem; background:#fff; color:#17151b; text-decoration:none; }
.topic-card h2 { font-size:1.8rem; }
.topic-card p { color:#615c66; font-size:.9rem; margin:0; }
.topic-card > span { position:absolute; right:1.5rem; top:1.5rem; color:#a6192e; font-size:1.5rem; }
.topic-card:hover { border-color:#a6192e; }
.review-note { background:#f6e9df; border:1px solid #d6bba7; padding:.7rem 1rem; border-radius:8px; font-size:.8rem; color:#624125; }
.character-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.character-card { display:flex; flex-direction:column; min-width:0; background:#fff; border:1px solid #d8d2dd; border-radius:14px; overflow:hidden; }
.character-image-link { display:block; text-decoration:none; }
.character-image-link img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; object-position:center 25%; }
.character-monogram { aspect-ratio:4/3; display:grid; place-items:center; background:radial-gradient(circle at 70% 25%,#69263b,transparent 60%),#17131e; }
.character-monogram span { display:grid; place-items:center; width:100px; height:100px; border:1px solid #b75b7055; border-radius:50%; font:600 3.5rem var(--al-font-heading); color:#e1a7b6; }
.character-card-body { padding:1.5rem; }
.character-card-body h2 { font-size:1.65rem; }
.character-card-body h2 a { color:#17151b; text-decoration:none; }
.character-card-body h2 a:hover { color:#a6192e; text-decoration:underline; }
.character-card-body > p:not(.eyebrow) { color:#615c66; font-size:.9rem; }
.character-badge { display:inline-block; border:1px solid #edbec8; border-radius:999px; background:#fbe8ed; color:#93213a; font-size:.75rem; font-weight:500; padding:.2rem .8rem; }
.directory-content { padding-block:2.5rem 5rem; }
.directory-filters { display:flex; align-items:end; flex-wrap:wrap; gap:1rem; padding:1.5rem; border:1px solid #d8d2dd; background:#fff; border-radius:14px; }
.directory-filters > div { flex:1 1 170px; min-width:0; }
.directory-filters label { display:block; font-size:.8rem; font-weight:600; margin-bottom:.4rem; }
.directory-filters input,.directory-filters select { width:100%; min-width:0; min-height:46px; border:1px solid #aaa1b0; border-radius:8px; padding:.6rem .75rem; color:#17151b; background:#fff; font-size:.9rem; }
.filter-reset { min-height:46px; display:inline-flex; align-items:center; padding-inline:.5rem; font-size:.85rem; }
.result-count { margin-top:1.5rem; color:#615c66; font-size:.85rem; }
.filter-error { margin-top:1rem; background:#f8d7dc; padding:1rem; color:#791c2c; border-radius:8px; }
.character-profile-header { padding-block:3rem; color:#f6f6f8; background:radial-gradient(ellipse at 90% 0,#4a1c2b,transparent 60%),#0b0b0f; }
.character-profile-intro { display:grid; grid-template-columns:280px minmax(0,1fr); align-items:center; gap:3rem; }
.profile-portrait { border:1px solid #6e3e50; border-radius:14px; overflow:hidden; }
.profile-portrait img { width:100%; display:block; max-height:380px; object-fit:cover; }
.profile-portrait .character-monogram { aspect-ratio:3/4; }
.character-profile-header h1 { font-size:clamp(2.5rem,5vw,4.25rem); }
.character-profile-header .eyebrow { color:#ff8b99; }
.profile-summary { color:#d4c8d9; max-width:650px; }
.character-profile-body { display:grid; grid-template-columns:280px minmax(0,1fr); gap:3rem; align-items:start; padding-block:3rem; }
.character-facts { background:#fff; border:1px solid #ddd5e1; border-radius:14px; padding:1.5rem; }
.character-facts h2 { font-size:1.5rem; }
.character-facts dl { margin-bottom:1.5rem; }
.character-facts dl > div { padding-block:.7rem; border-bottom:1px solid #ede8ef; }
.character-facts dt { color:#615c66; font-size:.75rem; }
.character-facts dd { margin:0; font-size:.9rem; overflow-wrap:anywhere; }
.character-analysis { min-width:0; }
.character-analysis > .wp-block-details { margin-top:0; }
@media(max-width:63.99rem) {
	.hero-inner { gap:2rem; min-height:500px; }
	.crimson-moon { width:260px; }
	.hero-quote { padding:1.5rem; max-width:300px; }
	.quick-start { grid-template-columns:1fr; gap:1.5rem; }
	.genre-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
	.character-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.character-profile-intro,.character-profile-body { grid-template-columns:220px minmax(0,1fr); gap:2rem; }
}
@media(max-width:40rem) {
	.hero-inner { grid-template-columns:1fr; padding-block:3rem; gap:2rem; }
	.hero-copy h1 { font-size:clamp(2.9rem,12vw,4rem); }
	.hero-atmosphere { min-height:280px; }
	.crimson-moon { width:230px; right:1.5rem; top:0; }
	.hero-quote { max-width:300px; align-self:end; }
	.home-hero.has-artwork .hero-inner { padding-top:17rem; }
	.home-hero.has-artwork::after { background:linear-gradient(0deg,#0b0b0ff5 0,#0b0b0fe0 45%,#0b0b0f10 100%); }
	.hero-artwork img { object-position:70% top; }
	.home-section { padding-block:2.5rem; }
	.experience-grid,.topic-grid,.character-grid { grid-template-columns:minmax(0,1fr); }
	.experience-card { padding:1.5rem; gap:1rem; }
	.genre-grid { gap:.7rem; }
	.genre-tile { min-height:140px; font-size:.75rem; }
	.genre-orbit { width:70px; height:70px; }
	.section-heading-row { display:block; }
	.section-heading-row > a { display:inline-block; margin-top:.5rem; }
	.zerumiya-teaser-inner { grid-template-columns:1fr; gap:2.5rem; padding-block:3rem; }
	.zerumiya-teaser blockquote { border-left:2px solid #714253; padding-left:1.5rem; }
	.character-profile-intro,.character-profile-body { grid-template-columns:minmax(0,1fr); gap:2rem; }
	.profile-portrait { width:min(100%,280px); }
	.profile-portrait .character-monogram { aspect-ratio:4/3; }
	.character-profile-header { padding-block:2rem; }
	.directory-filters { padding:1rem; }
}

.hub-copy { padding-block:2.5rem 0; }

/* M8: full approved compositions, explicit responsive space and text reflow. */
.home-hero.has-artwork .hero-artwork { position: relative; display: block; inset: auto; z-index: 0; }
.home-hero.has-artwork .hero-artwork img { display: block; width: 100%; height: auto; object-fit: contain; aspect-ratio: 1672 / 941; }
.home-hero.has-artwork { display: grid; }
.home-hero.has-artwork .hero-artwork { grid-area: 1 / 1; align-self: center; }
.home-hero.has-artwork .hero-inner { position: relative; grid-area: 1 / 1; min-height: 0; display: flex; align-items: center; padding-block: 2rem; }
.home-hero.has-artwork .hero-copy { width: 42%; max-width: 560px; min-width: 0; }
.home-hero.has-artwork .hero-copy h1 { font-size: clamp(2.5rem, 4.5vw, 4.65rem); }
.home-hero.has-artwork::after { pointer-events: none; background: linear-gradient(90deg,#0b0b0ff5 0,#0b0b0fd9 30%,#0b0b0f60 48%,transparent 65%); }
.zerumiya-teaser-inner { grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); }
.zerumiya-teaser-inner > * { min-width: 0; }
.zerumiya-teaser .button { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.zerumiya-teaser-artwork { margin: 0; }
.zerumiya-teaser-artwork img { display: block; width: 100%; height: auto; }
.al-tool-artwork { max-width: 600px; margin: 0 auto 2rem; }
.al-tool-artwork img { display: block; width: 100%; height: auto; border-radius: 12px; }
.al-about-artwork { max-width: 320px; margin: 2rem auto; }
.al-about-artwork img { display: block; width: 100%; height: auto; border-radius: 12px; }
.entry-content .wp-block-table { overflow-x: auto; }
@media (max-width: 63.99rem) {
 .home-hero.has-artwork { display: block; }
 .home-hero.has-artwork .hero-inner { position: relative; display: block; inset: auto; padding-block: 2.5rem; }
 .home-hero.has-artwork .hero-copy { width: 100%; max-width: 680px; }
 .home-hero.has-artwork::after { display: none; }
}
@media (max-width: 40rem) {
 .home-hero.has-artwork .hero-artwork img { aspect-ratio: 941 / 1672; }
 .zerumiya-teaser-inner { grid-template-columns: minmax(0,1fr); }
}

/* Long editorial words and labels must reflow at enlarged text sizes. */
main, .site-footer { overflow-wrap: anywhere; }

@media (min-width: 64rem) {
 .header-inner { flex-wrap: wrap; }
 .primary-panel { flex: 1 1 600px; min-width: 0; flex-wrap: wrap; justify-content: flex-end; }
 .primary-navigation { max-width: 100%; }
 .primary-navigation > .menu { flex-wrap: wrap; }
}
