/* Film worlds: small decorative banners, never dog-media frames. */
.breed-chapter[data-world] { background: radial-gradient(ellipse at 15% 0, color-mix(in srgb, var(--world-accent) 7%, transparent), transparent 60%); }
.breed-world { margin-bottom: 16px; }
.breed-world .world-banner { position: relative; isolation: isolate; display: grid; place-items: center; min-height: 240px; overflow: hidden; border: 1px solid #4a5059; border-radius: 14px; background: #14171d; }
.breed-world .world-banner::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #090a0c22, #090a0c66 35%, #090a0c66 65%, #090a0c22); pointer-events: none; }
.breed-world .world-art { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center 48%; opacity: .84; }
.breed-world .world-title { padding: 24px 190px; text-align: center; }
.breed-world .world-caption { margin: 0 0 3px; color: #f0f2f5; font: 600 13px/18px var(--font-heading); }
.breed-world h2 { margin: 0; color: #f7f8fa; font-size: clamp(36px, 3.5vw, 48px); text-shadow: 0 2px 14px #000; }
.breed-world .world-trail { display: block; width: 96px; height: 2px; margin: 5px auto 0; background: linear-gradient(90deg, transparent, var(--world-accent), transparent); }
.breed-world .world-link { position: absolute; right: 14px; bottom: 12px; display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 7px 12px; border: 1px solid #717985; border-radius: 9px; color: #f0f2f5; background: #161a20dc; font: 500 14px/20px var(--font-body); text-decoration: none; }
.breed-world .world-link:hover, .breed-world .world-link:focus-visible { border-color: var(--world-accent); background: #303640; }
.breed-world .chapter-story { max-width: 800px; margin: 12px auto 0; text-align: center; color: #f0f2f5; font: 400 14px/21px var(--font-body); text-shadow: 0 1px 8px #000; }
.breed-world .world-particles { position: absolute; inset: 0; color: var(--world-accent); pointer-events: none; }
.breed-world .world-particles span { position: absolute; opacity: .6; font-size: 18px; }
.breed-world .world-particles span:nth-child(1) { left: 15%; top: 25%; }
.breed-world .world-particles span:nth-child(2) { left: 29%; bottom: 16%; animation-delay: .3s; }
.breed-world .world-particles span:nth-child(3) { right: 22%; top: 18%; animation-delay: .6s; }
.breed-world .world-particles span:nth-child(4) { right: 10%; bottom: 22%; animation-delay: .2s; }
.breed-world.world-entered h2 { animation: world-title-in 1s ease-out both; }
.breed-world.world-entered .world-art { animation: world-scene-in 4.5s ease-out both; }
.breed-world.world-entered .world-trail { animation: world-trail-in 1.2s ease-out both; }
.breed-world.world-entered .world-particles span { animation-name: world-twinkle; animation-duration: 1.1s; animation-iteration-count: 3; animation-timing-function: ease-in-out; }
@keyframes world-title-in { from { transform: translateY(6px); text-shadow: 0 0 16px var(--world-accent); } to { transform: translateY(0); text-shadow: 0 2px 14px #000; } }
@keyframes world-scene-in { from { transform: scale(1.035); opacity: .65; } to { transform: scale(1); opacity: .84; } }
@keyframes world-trail-in { from { transform: scaleX(.15); } to { transform: scaleX(1); } }
@keyframes world-twinkle { 50% { opacity: 1; transform: translateY(-3px) scale(1.12); } }
@media (max-width: 1199px) { .breed-world .world-title { padding: 24px 32px 72px; } }
@media (max-width: 759px) {
  .breed-world .world-banner { min-height: 280px; }
  .breed-world .world-art { object-position: 20% center; }
  .breed-world .world-title { padding: 24px 18px 76px; }
  .breed-world h2 { font-size: 36px; }
  .breed-world .world-caption { font-size: 12px; }
  .breed-world .world-link { right: 50%; bottom: 10px; transform: translateX(50%); min-height: 44px; white-space: nowrap; }
  .breed-world .chapter-story { font-size: 14px; line-height: 22px; }
}
@media (prefers-reduced-motion: reduce) { .breed-world.world-entered :is(h2, .world-art, .world-trail, .world-particles span) { animation: none; } }

/* GSD keeps the existing banner height with two subtitle lines. */
.breed-chapter--gsd .world-banner { height: 240px; min-height: 240px; }
.breed-chapter--gsd .world-title { width: 100%; padding: 16px 80px 40px; }
.breed-chapter--gsd .world-title h2 { font-size: clamp(32px, 3vw, 44px); line-height: 1.1; }
.chapter-second-line { display: block; margin-top: 4px; }
@media (max-width: 1199px) {
  .breed-chapter--gsd .world-title { padding: 12px 24px 56px; }
  .breed-chapter--gsd .chapter-story { font-size: 13px; line-height: 18px; margin-top: 8px; }
}
@media (max-width: 759px) {
  .breed-chapter--gsd .world-banner { height: 280px; min-height: 280px; }
  .breed-chapter--gsd .world-title { padding: 12px 12px 62px; }
  .breed-chapter--gsd .world-title h2 { font-size: clamp(25px, 8vw, 30px); }
  .breed-chapter--gsd .chapter-story { font-size: 12px; line-height: 16px; margin-top: 6px; }
}
